Model-based Pose Estimation for Texture-less Objects with Differential Evolution Algorithm

This paper proposes a novel object-tracking method to estimate three dimensions position of texture-less objects using one camera system and 3D model. The system uses efficient chamfer matching method to calculated distances between 2D edge templates of pose hypotheses with edges from the Canny edge query image. Differential Evolution algorithm uses those distances as inputs to ensure the close optimum results and find the most suitable position of objects. For initialization the exhaustive searching is employed. With the good initialization, a smaller searching space is set to guaranty the online tracking ability. The first results showed the potential of the method in solving object tracking and detection problem.


Introduction
In the last decade, object detection and recognition have gained significant improvement by using keypoint features [1].Since geometric transformations and illumination changes has no effect on finding keypoints, they have been widely used for matching images from slightly different viewpoints [2].Keypoint-based approaches work well in textured objects but texture-less objects.Textured objects have various keypoints, those have high potential appearing on both images.After finding keypoints, sample consensus such as RANSAC [3] calculates the most suitable transformation of the object from reference position to current position.The more matched keypoints, the more accurate the transformation is.
On texture-less objects lack of keypoint repeatability and stability on texture-less regions neither reduces the accuracy of sample consensus method nor leads to wrong results.Like keypoints, edges are also invariant to general geometric transformations and illumination changes [4].Using edges are more suitable as a general approach even with textureless objects.
In early computer vision research, to find the best alignment between two edge maps, a given priori set of edge templates compare their suitability to the current edge maps to draw the mot suitable transformation.The current proposed method of chamfer distance matching [5] enhances the cost functions enable for applying global searching algorithm into object tracking problem.
Harris [6] and various proposed edge-based tracking system such as [7] used edges and contours for visual tracking task.One drawback of using edges is that they are not distinctive enough to provide effective discrimination in complex background or occlusions, there have been efforts to enhance the previous one by unifying interest points or considering multiple but limited hypotheses on edge correspondences.For consideration of multiple hypotheses in a more general sense global searching algorithm should come into consideration.
We propose an approach of using Differential Evolution (DE) [8] as the global searching method to continuously search for the 3D position of object in camera coordinate.

Methodology
Initialization is the most important step, a subject of the paper's interest, in tracking algorithm.Following steps presents the implementation pipeline of the initialization: -Canny edge image is employed to archive edge images from query images.
-Distance maps or chamfer matching maps is calculated from edge images.
-Differential Evolution is employed to calculate the best fit pose of the object which create an 2D edge images fitted into the chamfer matching maps for initialization.
After initialization, narrower searching boundary is used to get the accurate results at on-line speed.If the cost function goes large, initialization is required.

Canny edge detection
The white lines in Fig1 are output of Canny [9] edge detection method.Canny method includes five different steps: 1. Apply Gaussian filter to smooth the image in order to remove the noise.
2. Find the intensity gradients of the image 3. Apply non-maximum suppression to get rid of spurious response to edge detection 4. Apply double threshold to determine potential edges. 5. Track edge by hysteresis: Finalize the detection of edges by suppressing all the other edges that are weak and not connected to strong edges.

Camera model and edges from CAD
From a camera with prior-known configuration and object CAD model, we are able to archive ideal visible edges of objects by using camera model matrix.This matrix convert a point with coordinate of (x, y, z) in real coordinate to a image point (u, v) as Equation 1.
To determine visibility of object edges we use edge features based method from [12]. Figure 3 shows an edge between adjacent faces A =< v , v ଵ , v ଶ > and B =< v , v ଵ , v ଷ > with unit face normal n and n calculated as in Equation 2,3.
To determine the visibility of edge E =< v , v ଵ >, we uses additional vector v ୣ with direction from v to the camera center.E is visible edge if cross manipulation value of v ୣ with n or v ୣ with n positive.

Cost function calculation
The cost function for global searching algorithm is a comparison result between edge maps from image and edge maps from CAD model.To gain a equivalent between ideal edge maps, a re-sampling step is applied, so the number of edge points in different ideal maps is set equally at N=200 points.

Figure 3. Edge of two surfaces
The error cost function is calculated as in Equation 2, where f(n) is function depended on number of inlier (n) as in Equation 3. E ୧ is value of real edge images at inlier i, M ୧ is value of CAD model edge images at inlier number i.The initial population was generated uniformly at random in the range lower boundary (LB) and upper boundary (UB).

b) Mutation operation
In this process, DE creates a mutant vector, X ୧ ୋ = (X ୧,ଵ ୋ , X ୧,ଶ ୋ , … , X ୧,୬ ୋ ).For each individual at each generation ୋ and V ୧ ୋ to generate a trial vector for each particle i as shown as Equation 5.

d) Selection
The selection operator is to select the better vector between the target vector X ୧,୨ ୋ and the trial vector U ୧,୨ ୋ to enter the next generation.
where i =1, …, NP, X ୧ ୋାଵ is target vector in the next generation.

Experiment setup
To implement the algorithm, the system hardware included a iBuffalo BSW20KKM11BK camera.We used small box as a tracking object.All code is implemented on C++ code on a standard Desktop Computer powered with Intel Core i7-4790 CPU 3.6x8.
In the experiment, we used the box object with size of 145x95x40(mm) in white colour as the tracking object.The object "*.ply" extension is use the input model.

Results
Fig. 4 and Fig. 5 show results from Canny edge detection method.The result images showed that, the method were able to find the position of the object so the boundary could fit into the edge maps.
Depend on the objects, symmetric or non-symmetric, we need to set different searching boundaries for the searching algorithm (DE).Table 2 shows consuming time depend on number of population of DE.We proposed a novel approach of using differential evolution as a global searching method to find the best 3D position of objects.The experimental results showed promising results.
In the future work, we would like to improve cost function with the method to narrow searching area for more accuracy but smaller generation of searching.By doing so, we expect to reduce the runtime but remains the accuracy and robustness.

Figure 2 .
Figure 2. Chamfer maps of edge image example

2
Differential evolution Differential evolution (DE), proposed by Storn and Price, is a very popular EA.Like other EAs, DE is a populationbased stochastic search technique.It uses mutation, crossover and selection operators at each generation to move its population toward the global optimum minimum.a) Initialization in DE a target vector in the current population.There are several variants of DE based on mutation schemes, which are: DE/rand/1, DE/best/1, DE/current to best/1, DE/rand/2, DE/best/2, DE/rand to best/1.c) Crossover operation After mutation process, DE performs a binomial crossover operation on X ୧

Figure 4 .Fig. 6 and
Figure 4.A canny edge detection result

Table 2 .
Time consuming on population size Object tracking has been always a challenging task in computer vision.Recently, evolution based global searching methods have proved its potential of tackling the tracking problem with ability of finding robust and accurate global optima solutions.