Log-Aesthetic Curves for Shape Completion Problem

. An object with complete boundary or silhouette is essential in various design and computer graphics feats. Due to various reasons, somepartsoftheobjectcanbemissinghenceincreasingthecomplexityindesigningprocess.Itisthereforeimportanttoreconstruct themissingpartsofanobjectwhileretainingitsaestheticappearance.Inthispaper,weproposeLog-AestheicCurves(LAC)for shapecompletionproblem.WeproposeanalgorithmtoconstructLACsegmentandsubsequentlyfitintothegapofthemissing partswithC-shapeorS-shape.ForC-shapecompletion,wedefineLACsegmentbyspecifyingtwoendpointsandtheirrespective tangentdirectionsbetweenthegapswhile,forS-shape,theuserdefinesaninflectionpointinbetweentheendpoints.Thefinal sectionillustratesthreeexamplestoshowcasetheefficiencyoftheproposedalgorithm.Theresultsarefurthercomparedwith Kimia’smethodtoprovethatthealgorithmproducesequallygoodresult.Additionally,theproposedalgorithmprovidesanextra degreeoffreedominwhichtheuserwouldbeabletochoosethetypeofspiralthattheydesiretosolvetheshapecompletion problem.


Introduction
In a design environment, there are situations in which the outlines of an object are missing or occluded.These scenarios are commonly known as shape completion, gap completion, or curve completion problem.It is important to recomplete the shape of the missing object while retaining its aesthetic appearance since a complete object can be used further for applications in modeling, mesh analysis, and computer-aided design as well as manufacturing purposes.The complete boundary or silhouette provides geometrical information of a model which is significant in engineering analysis and manufacturing process.In order to reconstruct the missing boundaries of an object, the associated curve segment must satisfy the boundary conditions so that the curve passes through the endpoints with specified tangent direction.To date, there are numbers of algorithms available for shape completion problem (see the works of [1][2][3][4][5][6]).
A notable work which received much attention is by Kimia et al. [3], where they proposed an algorithm which utilizes Euler spiral to solve shape completion problem.
Euler spiral is also known as Cornu's spiral or clothoid.The Euler spiral is widely applied in highway/railway or robotic trajectories design due to its linear curvature property (curvature varies linearly with respect to arc length).The algorithm proposed by Kimia et al. [3] is the implementation of Euler spiral to solve the shape completion problem.In their proposed algorithm, two endpoints ( 0 ,  2 ) and their tangential angles ( 0 ,  2 ) are the inputs.In order to construct Euler spiral for the given problem, curvature and arc length of the curve are required to be identified.Since the proposed Euler spiral algorithm is an iterative process, initial guess for these two parameters (curvature and arc length) is needed.Kimia et al. [3] recommended the use of biarc to obtain the initial curve with its corresponding curvature and arc length for the proposed algorithm.Note that the goal of their proposed algorithm is to minimalize the distance between last point and resulting curve in order for the gap to be filled using gradient descent method.
Log-Aesthetic Curves (LAC) are curves where the logarithmic curvature graph (LCG) can be represented by a straight line.The idea of LCG was formulated by They found that all the curves employed in automobile design depict linear gradient of LDDC.Kanaya et al. [7] refined the formulation of LDDC which is now known as LCG.The horizontal axis of LCG represents log  and the vertical axis represents log (  /  ) [8]. Figure 1 illustrates the two segments of Euler spiral.In 2005, Miura et al. [9] derived a fundamental formula of LAC based on a linear representation of LCG.A year later, Yoshida and Saito [10] investigated the characteristics and overall shape of LAC.They also proposed a method to construct LAC segment interactively by specifying endpoints and their tangent vectors.In 2009, they further extended LAC into space curve and proposed a method to interactively control the curves, which is similar to quadratic Bezier curves.
LAC has become a promising curve in graphic and industrial design due to its monotonic curvature property.There are two shape parameters of LAC denoted by  and Λ.The shape parameter  is used to determine the type of spiral within the family of LAC, and Λ is used to satisfy the  1 constraint during the design process.LAC comprises Euler spiral ( = −1), Nielsen spiral ( = 0), logarithmic or equiangular spiral ( = 1), circle involute ( = 2), and others.
In 2011, Gobithaasan and Miura [11] expanded the family of LAC into Generalized Log-Aesthetic Curve (GLAC) by adding generalized Cornu spiral (GCS) to the family of LAC.This includes Euler spiral, logarithmic spiral, circle involute, Nielsen spiral, LAC, and GCS as the members of GLAC.
To note, GCS is proposed by Ali et al. [12] where it becomes Euler spiral when the shape parameter of GCS is zero.GLAC has an extra shape parameter compared to LAC in which it can be used to satisfy additional constraints that occur during design process [13].The curvature function of GLAC is also monotonic similar to LAC.In 2012, they further extended GLAC into space curve.
In 2012, Ziatdinov et al. [14] defined LAC in the form of incomplete gamma functions.They claimed that this new expression of LAC is capable of reducing the computation time up to 13 times faster.In 2013, the problem of  2 Hermite interpolation was dealt with by Miura and Gobithaasan [15] by introducing log-aesthetic splines which consists of triple LAC segments.Readers are referred to [16] for a detailed review on aesthetic curves.
In this paper, we introduce the implementation of  1 LAC algorithm to fit the gap in between the outlines of missing/occlusion objects.We compare the performance of this algorithm with the results obtained by Kimia et al. 's [3] method on the same examples in order to show the effectiveness of LAC to solve shape completion problem.
The rest of this paper is organized as follows.First, the formulation of LAC is reviewed followed by a detailed explanation on the LAC algorithm for solving the shape completion problem.In Section 3, we demonstrate the implementation of the proposed algorithm with various  values with three examples to show the implementation of this method.The data and calculation used in the examples are also depicted in this section.The output of shape completion using Kimia's method is also depicted for comparison purposes.We also make comparison of the results obtained using Kimia et al. 's [3] method and our algorithm.We further show some shape variations which can be obtained by using S-shape LAC in which the designer tweaks the segment in order to obtain the desired shape.

Log-Aesthetic Curves in Shape Completion
In this section, we show the parametric expression of LAC and the algorithm used to obtain the solution for shape completion problem with various  values.

The Analytical Formulas and Parameters.
There are two shape parameters used to define LAC segment:  and Λ.The shape parameter  determines the type of spiral and Λ is used to control the curve so that the constraints are satisfied.Let  and  represent radius of curvature and tangent angle of the curve, respectively.Equation ( 1) shows the radius of curvature function in terms of its turning angle.To note, ( 1) is used to define the parametric expression of LAC in terms of its turning angle as shown in (2) as follows: where   represents starting point and  and  represent the imaginary unit and exponent, respectively.LAC can also be represented in the arc length parameter, , as follows: (((Λ+1) (−1)/ −1)/Λ(−1)) , otherwise. ( Both ( 2) and (3) generate the same LAC.The curve can be drawn in complex plane by the -axis representing real numbers and the -axis representing imaginary numbers.
Readers are referred to [10] for a detailed derivation of the parametric expression of LAC.

The LAC Algorithm
C-Shape.We customize the algorithm of constructing LAC segment to fill the gap by specifying two endpoints, its tangent vector, and  value.The C-shape LAC curve is a direct process in which the user may interactively input the endpoints and the tangent direction of those points.We can further automate the identification of tangents at the endpoints by using three-point circular arc approximation around the endpoints as explained in Steps 1 and 2 in the algorithm below.
Using these tangents, we may calculate the midpoint.These three points are then used to fit LAC segment in the gap for shape completion problem.The idea of this method is to find a LAC segment defined in a triangle composed of  three control points as proposed by Yoshida and Saito [10].Therefore, by using this method, it is only possible to generate a C-curve.Figures 2 and 3 show the configuration of the triangle formed by three control points for cases  > 1 and  ≤ 1, respectively.Step 5 in the algorithm below elaborates these configurations.S-Shape.Basically, a S-shape LAC segment consists of two Cshape curves joined with  1 continuity.In order to construct the S-curve for a given gap, the inflection point is essential.A simple approach used is that users are given the freedom to define the inflection point so that the algorithm is carried out twice consisting of two C-shape segments of LAC.Thus, this approach needs two endpoints, its tangent vectors,  value, and an inflection point.
The process involves breaking the S-curve into two Ccurves so the first piece of curve is constructed between starting point (black) and inflection point (gray), while the second piece is between inflection point (gray) and endpoint (black).Figure 4 illustrates the inflection point that we define for one of the numerical examples in this paper.
Algorithm 1 demonstrates the LAC algorithm.

Computation of Tangent Angles (Step 1-Step 3).
To automate the process of defining the tangents at the endpoints, we may use circular arc approximation (osculating circle) that best fits the endpoints and points surrounding them in order to determine the tangent angle at both endpoints.Since it is an osculating circle, we substitute the points into the equation of circle.Then, we identify the center (ℎ, ), radius , and turning angle  of circle from three points which include the endpoint.Next, we determine the unit tangent vector at the endpoints and subsequently calculate the corresponding tangent angle by using specified formula as indicated in the algorithm.Alternately, we may also allow the user to directly define tangent vectors at those points.Step 13.Scale  scale to the curve and transform inversely the triangle to its original position.
Step 15.OUTPUT (  , Λ,  scale , LAC segment).End Algorithm 1 the intersection point of the tangential line at both endpoints by solving the equations simultaneously.

Affirmation of Initial and Last Point Position (Step 5).
We assume the distance between   and   is less than   and   as proposed by Yoshida and Saito [10].The position of   and   is switched if the criterion is not satisfied.Otherwise, the position remains unchanged.Note that there are two cases of constructing LAC segment based on the  value as illustrated in Figures 2 and 3.For case  ≤ 1, the initial endpoint   is the starting point during the curve construction process  start .On the other hand, starting point of curve construction process for case  > 1 is the last endpoint   .

Transformation Process (Step 6).
The transformation process includes translation, rotation, and reflection of the original triangle that consist of   ,   ,   .Initially, the original triangle is translated to the origin so that the starting point  start is located at the origin.Next, we rotate the triangle so that the second control point is placed on the -axis.Finally, we ensure the last point of the curve construction process  end is located at the positive -axis region.If not, the reflection process is needed to reflect the last point with negative -coordinate through the -axis.The configuration after transformation is illustrated in Figures 2 and 3.

Computation of Tangent and Turning Angle (Step 7 and Step 8).
We apply the law of cosine of a triangle to calculate corresponding angles as shown in Figures 2 and 3.The tangent angle   and turning angle   for case  ≤ 1 or   for case  > 1 will be used in the subsequent step for calculating shape parameter Λ.

Upper Bound of Shape Parameter Λ (Step 9).
For the case when  = 1, there is no upper bound for shape parameter Λ.So, the value of Λ can be arbitrarily large.However, there are upper bounds for Λ when  < 1 and  > 1.Therefore, the Λ value of these two cases is restricted within the range of (, ) where  and  are assigned a specified value as indicated in the algorithm above.

Shape Parameter Λ Calculation (Step 10 and Step 11).
We determine the Λ value that satisfies the constraints of endpoints and angles by using bisection method.First, tolerance and bound of Λ are used in the calculation of iteration number for bisection method.Then, the calculating process will run until the iteration number is met.Once the Λ  value of the curve is obtained, it is an interpolating curve that satisfies boundary constraints as shape parameter Λ is used to control the curve so that the constraints are satisfied.The obtained Λ value ensures the generated LAC segment starts at the starting point and ends at the last point while the shape of curve follows the specified tangent vectors at two endpoints.

Computation of Scale Factor (Step 12
).We calculate the scaling factor by using the formula as shown in the algorithm where   and   are endpoints of the original triangle while  0 and  2 are endpoints of the transformed triangle.

Construction of LAC Segment (Step 13-Step 15)
. In order to obtain the curve which is defined in the original triangle, we inversely transform the triangle to its original position.
The curve segment is constructed using (2) with the obtained value of Λ,   ,  scale .

Numerical Examples and Discussion
This section shows the input data and numerical and graphical results of implementing the algorithm presented in Section 2 for three examples.For comparison purpose, we present the results of Kimia's algorithm [3] algorithm on the same examples as well.
3.1.The Graphical Results. Figure 5 shows the first example of fitting Euler spiral and LAC segment to two parts of a jug.The results of the second example (artifact) and third example (vase) are depicted in Figures 6 and 7, respectively.Based on the comparison of graphical results in Figures 5, 6 and 7 we found that Kimia's algorithm [3] and the LAC algorithm behave similarly.However, the proposed LAC algorithm gives more flexibility to designers as they can manipulate the shape parameter  and the tangent direction at the inflection point in order to get various S-shaped LAC segments.

Conclusion
A LAC segment can be constructed by specifying the endpoints and their tangent directions.LAC is a family of aesthetic curves where their curvature changes monotonically.It comprises Euler spiral, logarithmic spiral, Nielsen spiral, and circle involute with different  values.The algorithm for constructing LAC segment to solve shape completion problem is defined in Section 2. The results of implementing both Kimia et al. 's [3] algorithm and the proposed LAC algorithm on the same images are depicted in Section 3. LAC has an upper hand due to its flexibility although both algorithms are capable of solving shape completion problems.Since LAC represents a bigger family rather than Euler spiral alone, it is clear that more shapes are available to fill the missing gap.Moreover, the resulting LAC segments are satisfying  1 continuity where the curve segments interpolate both endpoints in the specified tangent directions.In case the user wants a  2 LAC solution, one may plug in the technique proposed by Miura et al. [15] or employ  2 GLAC [17] in which we may use shape parameter V in GLAC to satisfy the desired curvatures.

Figure 2 :
Figure 2: The configuration of triangle consists of three control points for case  > 1.The curve inside the triangle represents the generated LAC segment.
e  (b) Position of control points after transformation

Figure 3 :
Figure 3: The configuration of triangle consists of three control points for case  ≤ 1.The curve inside the triangle represents the generated LAC segment.

Figure 4 :
Figure 4: The input for S-shape completion problem.

( a )
Euler spiral algorithm (b) LAC algorithm with two tangents setting for sshaped curve and  = −1 (c) LAC algorithm with two tangents setting for s-shaped curve and  = 2

Figure 5 :
Figure 5: The results of fitting Euler spiral and LAC segment for two missing parts of a jug.

Figure 6 :
Figure 6: The results of fitting Euler spiral and LAC segment for an artifact.

3. 2 .
The Numerical Results.The input data and the obtained parameter values to render LAC segment for C-shaped and S-shaped gaps are shown in Tables1, 2, and 3, respectively.3.3.Discussion.We implemented LAC algorithm with various  values for each example.In Figures5, 6, and 7, we showed a subfigure of LAC with  = −1 in between the gaps for the missing part of the objects.These examples are indeed Euler spiral similar to the work of Kimia et al.[3].Users are indeed fitting a circle involute when  = 2 as shown in each figure; Nielsen spiral is fitted when  = 0 and logarithmic spiral when  = 1.The shape parameter  definitely dictates the type of spiral the user desires to fit into the gap.
(a) Euler spiral algorithm (b) Three types of tangents at the inflection points and  = −1 (c) Tangents setting as in 7(b) and  = −1 (d) Tangents setting as in 7(b) and  = 1

Figure 7 :
Figure 7: The results of fitting Euler spiral and LAC segment to a vase.

Table 1 :
The input data for LAC algorithm.

Table 2 :
The value of parameters obtained in LAC algorithm for C-shaped gap.

Table 3 :
The value of parameters obtained in LAC algorithm for S-shaped gap.