4.3 Multiview registration
4.3.2 Virtual cycles generation
Rerror=nR1−Id terror =nt1−Id
Figure 4.8: Rotation and translation errors between the two views closing the cycle.
Once a cycle has been detected, this information can be used to minimize the error accumulated in the registration process, following the strategy presented in Section 4.3.3.
However, with the aim of improving the accuracy of the final result, an intermediate step is proposed: virtual cycles generation. A description of thevirtual cycles generation strategy and the advantages of including it in the multiview minimization process are provided in next section.
4.3 Multiview registration 87
detection steps. This process is detailed in the following subsections.
Neighbor view detection and graph generation
An accurate way of detecting neighbors within a cycle is to register each view with all the others composing the cycle and determine the closest ones depending on the registration results. The views with lower distances between point correspondences are chosen. How- ever, as it has been mentioned in previous sections, this method has a high computational cost. An alternative is to use a variation of the cycle detection technique, proposed in Section 4.3.1, adapted to the new purpose. That is, it must be taken into account that two neighbor views do not represent the same region and, in consequence, the thresholds used in the cycle detection strategy must be relaxed. Figure 4.9 shows an example of the obtained graph after determining the views that are close to each other within areal cycle. The trajectory followed by the camera is showed in black, and the edges that relate neighbor views in red. Note that the cycle is closed by the viewsV1 and V15
Figure 4.9: Graph representing the correlations between acquired views. Black edges show the sequential path followed by the camera and red edges the neighbor views.
Once the graph relating the closest views is generated, weights could be assigned to each edge. The weights can represent several parameters such as the distances between the neighbor views or the registration error between them. Depending on the characteristics of the object/scene to be registered and the trajectory followed by the camera, one parameter may be more appropriate than the other. For example, if a cycle contains a huge number of views, then the propagation error along the sequence can lead to a poor calculation of the translation between the two views, mainly if one of the views resides in the last part of the cycle. In that case, the use of the registration error between views may offer a better solution. Be aware that the discrepancy between view distances are more significative
than the discrepancy between registration errors and therefore, when the situation allows it, it is more recommendable to weight the graph using such distances between views.
The distances between two views can be calculated by computing the norm of the accumulated translation motion between them, as showed in Equation 4.2.
ei,j =kti,jk=k Xj−1
k=i
iRk∗ktk+1k (4.2)
wereei,j is the edge that joins the partial viewsiandj,iRkis the 3×3 rotation matrix that transforms the views k to the view i, and ktk+1 is the translation between views k and k+ 1.
Figure 4.10 shows the weighted graph where edges represent the distances between views. In the chosen example it can be verified that some of the non-consecutive views are really close to each other, sometimes even closer than two consecutive views. Notice that for example viewsV2 and V14 have a distance of 0.14 (norm of the translation vector between them) while the distance between the consecutive viewsV2 and V3 is 0.54. This demonstrates that the registration of two non-consecutive neighbor views can provide a valuable additional information of the views and contributes to a more accurate error minimization process.
Figure 4.10: Weighted Graph where edges represent the distances between acquired views.
Virtual cycles
Once the weighted graph is obtained, the following step is to detect all thevirtual cycles within it. Remember that these cycles are considered virtual because the path between the views that compose the cycle do not follow the real trajectory of the acquisition system. The idea is to use the correlations between views in order to determine the
4.3 Multiview registration 89
fundamental cycles of the graph. If the graph is weighted, then a minimum cycle can be obtained. As shown in chapter 3, several techniques have been proposed in order to detect the fundamental cycles of a graph [69] [21]. In this work, a variation of the strategy proposed by Paton has been used [69]. First, the minimum spanning tree of the graph is generated using Kruskal’s algorithm [22]. Then, the tree is traversed and edges composing fundamental cycles are progressively added.
An example of virtual cycles within a graph can be observed in Figure 4.11. Edge weights have not been represented to facilitate figure understanding.
Figure 4.11: Virtual cycles within a real cycle.
Figure 4.12: New virtual cycles obtained by joining several cycles of the graph depicted in Figure 4.11
Once thereal and all thevirtual cycles have been detected, the next step is to minimize the registration error. As it is described in the following section, each cycle includes a constraint in the minimization process. Hence, the morevirtual cycles we have, the more information can be used to minimize the error. However, every time a new constraint is added to the minimization process, the efficiency of the algorithm decreases. Therefore, it is important to find a balance between efficiency and accuracy and sometimes the number of virtual cycles should be limited. A way to reduce the number of virtual cycles is to
detect and merge the cycles that have an edge in common, that is to merge adjacent cycles depending on the desired size (number of nodes) of a cycle (see Figure 4.12).