Presentation is loading. Please wait.

Presentation is loading. Please wait.

CENG 789 – Digital Geometry Processing 07- Rigid-Body Alignment Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey.

Similar presentations


Presentation on theme: "CENG 789 – Digital Geometry Processing 07- Rigid-Body Alignment Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey."— Presentation transcript:

1 CENG 789 – Digital Geometry Processing 07- Rigid-Body Alignment Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey

2 Rigid vs. Non-rigid 2 / 43 Rigid shapesNon-rigid shapes (Differ by rigid vs. (Differ by non-rigid transformatns transformations = rigid + bending) = rotation & translation)

3 Rigid vs. Non-rigid 3 / 43 Rigid shapesNon-rigid shapes (Easier to align/register vs. (Harder to align/register due to low degree- due to high DOF) of-freedom)

4 Rigid vs. Non-rigid 4 / 43 Rigid shapesNon-rigid shapes (Main app: 3D scan registration) vs. (Main apps: shape completion & information transfer via shape correspondence)

5 Rigid Alignment 5 / 43 We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes.

6 Rigid Alignment 6 / 43 We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Translation disambiguation handled by moving centers to the origin.

7 Rigid Alignment 7 / 43 We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. PCA on covariance matrix C that encodes variances between x,y,z coordinate pairs of all n shape points.

8 Rigid Alignment 8 / 43 We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. PCA on covariance matrix C that encodes variances between x,y,z coordinate pairs of all n shape points. Eigenvectors of C provide principal axes/directions (of variations) of the shape, which are then aligned w/ the standard Euclidean axes. Same alignment is applied to the 2 nd shape.

9 Rigid Alignment 9 / 43 We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis.

10 Rigid Alignment 10 / 43 We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis.

11 Rigid Alignment 11 / 43 We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis.

12 Rigid Alignment 12 / 43 We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis. Blue (zAngle) and dark (xAngle) angles?

13 Rigid Alignment 13 / 43 We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis. Blue (zAngle) and dark (xAngle) angles?

14 Rigid Alignment 14 / 43 We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis. This was cool; but not exactly solving our alignment problem  It rather moves object from one position to another within a single reference frame. In our case we want switching coordinates from one system (principles) to another (Euclidean); like this: Tables, chairs, and other furniture is defined in a local (modeling) coordinate system. They can be placed into a room, defined in another coordinate system, by transforming furniture (modeling) coordinates to room (world) coordinates.

15 Rigid Alignment 15 / 43 We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis. Switching coordinates from one system (principles) to another (Euclidean).

16 Rigid Alignment 16 / 43 We will do rigid-body alignment this lecture. Harder scenario: Alignment of 2 partial shapes. PCA-based solution is a global approach. Based on variations on coordinates. Two partially overlapped shapes have different variations; so, PCA fails.

17 Rigid Alignment 17 / 43 We will do rigid-body alignment this lecture. Harder scenario: Alignment of 2 partial shapes. PCA-based solution is a global approach. Based on variations on coordinates. Two partially overlapped shapes have different variations; so, PCA fails.

18 Rigid Alignment 18 / 43 We will do rigid-body alignment this lecture. Harder scenario: Alignment of 2 partial shapes. Partial shapes arise frequently in life: 3D scans. Handle them using Direct rotation computation (when map b/w 2 shapes known). Iterative Closest Point algorithm (when map unknown). RANSAC (when map unknown).

19 Rigid Alignment 19 / 43 If map/correspondences are known, we can derive rotation and translation that aligns the 1 st shape with the 2 nd.

20 Rigid Alignment 20 / 43 If map/correspondences are known, we can derive rotation and translation that aligns the 1 st shape with the 2 nd. If correspondences are perfect, you can find the optimal rotation w/ no error.

21 Rigid Alignment 21 / 43 If map/correspondences are known, we can derive rotation and translation that aligns the 1 st shape with the 2 nd. If correspondences are not perfect, you can find the optimal rotation by minimizing an error.

22 Rigid Alignment 22 / 43 If map/correspondences are known, we can derive rotation and translation that aligns the 1 st shape with the 2 nd. Note that if correspondences were perfect, no least-squares minimiztn would be necessary; just solve 2 equations: R*p1 + t = q1 and R*p2 + t = q2 for the variables R & t.

23 Rigid Alignment 23 / 43 If map/correspondences are known, we can derive rotation and translation that aligns the 1 st shape with the 2 nd. Do energy functional minimization using matrix algebra. Take the derivative of E(x) w.r.t. x and search for its roots.

24 Rigid Alignment 24 / 43 Translation.

25 Rigid Alignment 25 / 43 Rotation. Recall SVD:

26 Rigid Alignment 26 / 43 Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Assume closest points correspond. Compute the rotation and translation based on this correspondence/map. Update coordinates and re-compute closest-point correspondences. Re-compute rotation and translation based on this map. Repeat.

27 Rigid Alignment 27 / 43 Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Original ICP paper (Besl & McKay, A Method for Registration of 3-D Shapes, PAMI, 1992) uses closed-form solution to compute the rotations (unlike our least-squares solution in prev. slides). Converges if starting point is close enough. For efficiency, you can do sampling on point sets. Also, use k-d trees. For accuracy, you can replace your matching criteria (point to plane).

28 Rigid Alignment 28 / 43 Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Resulting ICP session; pretty robust:

29 Rigid Alignment 29 / 43 Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Basic ICP algo; again:

30 Rigid Alignment 30 / 43 Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Basic ICP algo; again: For the rotation R in, one can use the closed formula (original paper): or the SVD-based energy minimization described in slide 25.

31 Rigid Alignment 31 / 43 Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points.

32 Rigid Alignment 32 / 43 Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. If this is done perfectly, you do not need to iterate (ICP). You just compute rotations and translations in one shot.

33 Rigid Alignment 33 / 43 Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. Hint: Are the surroundings similar?

34 Rigid Alignment 34 / 43 Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. Hint: Are the surroundings similar? Recall rotation-invariant shape histograms descriptor.

35 Rigid Alignment 35 / 43 Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. Hint: Are the surroundings similar? Lots of descriptors defined over the years.

36 Rigid Alignment 36 / 43 Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. Hint: Are the surroundings similar? One of my favorites: shape diameter function (for non-rigid case).

37 Rigid Alignment 37 / 43 RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. RANSAC algo. Pick a random pair of 3 points on 2 shapes. Estimate alignment (compute rotation translation) in the least-squares sense. Check for the error of this alignment (e.g. sum of distnces b/w matching pnts).

38 Rigid Alignment 38 / 43 RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. RANSAC algo. Pick a random pair of 3 points on 2 shapes. Estimate alignment (compute rotation translation) in the least-squares sense. Check for the error of this alignment (e.g. sum of distnces b/w matching pnts).

39 Rigid Alignment 39 / 43 RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. RANSAC algo. Pick a random pair of 3 points on 2 shapes. Estimate alignment (compute rotation translation) in the least-squares sense. Check for the error of this alignment (e.g. sum of distnces b/w matching pnts).

40 Rigid Alignment 40 / 43 RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. RANSAC algo. Pick a random pair of 3 points on 2 shapes. Estimate alignment (compute rotation translation) in the least-squares sense. Check for the error of this alignment (e.g. sum of distnces b/w matching pnts).

41 Rigid Alignment 41 / 43 RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. RANSAC algo. Pick a random pair of 3 points on 2 shapes. Estimate alignment (compute rotation translation) in the least-squares sense. Check for the error of this alignment (e.g. sum of distnces b/w matching pnts). Random picks do not have to be exact.

42 Rigid Alignment 42 / 43 RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. Resulting RANSAC session:

43 Rigid Alignment 43 / 43 RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. Resulting RANSAC session:


Download ppt "CENG 789 – Digital Geometry Processing 07- Rigid-Body Alignment Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey."

Similar presentations


Ads by Google