From the built shape model, we retrieved a mean shape (called source shape) which is used for initial alignment with target shape captured from Kinect.
Step 1: Scale source shape and target shape into same metric so only rigid transformation need to be considered. The shapes are shown in Figrue 1.
 |
Figure 1 Target shapes (left) and source shapes (right) |
Step 2: Select at least 3 key points correspondence at both shape manually. A larger number of correspondence is recommended as the error can be reduced. For offline processing, I select the key points using MeshLab as shown in the Figure 2.
 |
Figure 2 Select key points correspondence in source shape (left) and target shape (right) |
Step 3: According to the selected correspondence, we can use RANSAC method to estimate the 6 DoF rigid transformation. I also tried to use function estimateAffine3D() given by OpenCV, but the returned matrix is useless. The failure may caused by too few correspondences(3) were applied. Finally I get the transformation using MeshLab and the result is shown in Figure 3. In later stage, which combine 3D reconstruction and recognition, I will use the function in PCL to estimate the transformation and hope that works.
 |
Figure 3 Result after two shapes are aligned based on the estimated transformation |
Based on the alignment, I will fine adapt the source shape to the target shape with constraints from the statistical shape model.
No comments:
Post a Comment