123
ĐẠI HC QUC GIA THÀNH PHHCHÍ MINH TRƢỜNG ĐẠI HC BÁCH KHOA KHOA ĐIỆN ĐIỆN TBMÔN VIN THÔNG -----o0o----- LUẬN VĂN TỐT NGHIP NG DNG GII THUT ICP KT HP TÁI TO MÔ HÌNH 3D CA VT THTNH DEPTH MAP GVHD: PGS.TS LÊ TIẾN THƢỜNG SVTH: TRẦN TRƢỜNG SƠN 40801831 VÕ XUÂN XĂNG 40802712 TP. HCHÍ MINH, THÁNG 12 - 2012 www.clbrobot.com www.robotgiaoduc.com

Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Embed Size (px)

Citation preview

Page 1: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƢỜNG ĐẠI HỌC BÁCH KHOA

KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN VIỄN THÔNG

-----o0o-----

LUẬN VĂN TỐT NGHIỆP

ỨNG DỤNG GIẢI THUẬT ICP KẾT HỢP

TÁI TẠO MÔ HÌNH 3D CỦA VẬT THỂ

TỪ ẢNH DEPTH MAP

GVHD: PGS.TS LÊ TIẾN THƢỜNG

SVTH: TRẦN TRƢỜNG SƠN 40801831

VÕ XUÂN XĂNG 40802712

TP. HỒ CHÍ MINH, THÁNG 12 - 2012

www.clbrobot.com www.robotgiaoduc.com

Page 2: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƢỜNG ĐẠI HỌC BÁCH KHOA Độc Lập – Tự Do – Hạnh Phúc

Số:______/BKĐT

Khoa: Điện – Điện tử

Bộ Môn: Viễn Thông

NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP

Họ và tên: TRẦN TRƢỜNG SƠN MSSV: 40801831

Họ và tên: VÕ XUÂN XĂNG MSSV: 40802712

Ngành : VIỄN THÔNG LỚP : DD08KSVT

1. Đầu đề luận văn:

“Ứng dụng giải thuật ICP kết hợp - tái tạo mô hình 3D của vật thể từ ảnh depth map”

2. Nhiệm vụ ( Yêu cầu về nội dung và số liệu ban đầu):

.................................................................................................................................

............................................................................................................................. ....

............................................................................................................................. ....

................................................................................................................... ..............

3. Ngày giao nhiệm vụ luận văn: ..............................

4. Ngày hoàn thành nhiệm vụ: .................................

5. Họ và tên ngƣời hƣớng dẫn : ................................ Phần hƣớng dẫn ...............

Nội dung và yêu cầu LVTN đã đƣợc thông qua Bộ Môn.

............................................................................................................................. .....

..................................................................................................................................

............................................................................................................................. .....

............................................................................................................................. .....

Ngày ....... tháng ........ năm 2012

CHỦ NHIỆM BỘ MÔN NGƢỜI HƢỚNG DẪN CHÍNH

(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)

www.clbrobot.com www.robotgiaoduc.com

Page 3: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

TRƢỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA ĐIỆN – ĐIỆN TỬ Độc Lập – Tự Do – Hạnh Phúc

Ngày ........... tháng .......... năm 201…

PHIẾU CHẤM BẢO VỆ LVTN

(Dành cho ngƣời hƣớng dẫn)

Họ và tên: TRẦN TRƢỜNG SƠN MSSV: 40801831

Họ và tên: VÕ XUÂN XĂNG MSSV: 40802712

Ngành: VIỄN THÔNG LỚP: DD08KSVT

1. Đề tài:

“Ứng dụng giải thuật ICP kết hợp - tái tạo mô hình 3D của vật thể từ ảnh depth map”.

2. Họ tên ngƣời hƣớng dẫn: PGS. TS. LÊ TIẾN THƢỜNG

3. Tổng quát về bản thuyết minh:

Số trang ........ Số chƣơng ........

Số bảng số liệu ........ Số hình vẽ ........

Số tài liệu tham khảo ........ Phần mềm tính toán ........

4. Tổng quát về các bản vẽ:

- Số bản vẽ: ........bản A1 .........bản A2 ......... khổ khác

- Số bản vẽ tay ............ - Số bản vẽ trên máy tính ..............

5. Những ƣu điểm chính của LVTN:

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

6. Những thiếu sót chính của LVTN:

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

7. Đề nghị: Đƣợc bảo vệ , Bổ sung thêm để bảo vệ ,

Không đƣợc bảo vệ .

8. 3 câu hỏi sinh viên trả lời trƣớc Hội Đồng:

a) ..............................................................................................................................

b)........................................................................................................................... ...

c) .......................................................................................................................... ....

9. Đánh giá chung (bằng chữ: giỏi, khá, TB): Điểm …………………….

Ký tên (ghi rõ họ tên)

www.clbrobot.com www.robotgiaoduc.com

Page 4: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

TRƢỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA ĐIỆN – ĐIỆN TỬ Độc Lập – Tự Do – Hạnh Phúc

Ngày ........... tháng .......... năm 201…

PHIẾU CHẤM BẢO VỆ LVTN

(Dành cho ngƣời phản biện)

Họ và tên: TRẦN TRƢỜNG SƠN MSSV: 40801831

Họ và tên: VÕ XUÂN XĂNG MSSV: 40802712

Ngành: VIỄN THÔNG LỚP: DD08KSVT

1. Đề tài:

“Ứng dụng giải thuật ICP kết hợp - tái tạo mô hình 3D của vật thể từ ảnh depth map”.

2. Họ tên ngƣời hƣớng dẫn: PGS. TS. LÊ TIẾN THƢỜNG

3. Tổng quát về bản thuyết minh:

Số trang ........ Số chƣơng ........

Số bảng số liệu ........ Số hình vẽ ........

Số tài liệu tham khảo ........ Phần mềm tính toán ........

4. Tổng quát về các bản vẽ:

- Số bản vẽ: ........bản A1 .........bản A2 ......... khổ khác

- Số bản vẽ tay ............ - Số bản vẽ trên máy tính ..............

5. Những ƣu điểm chính của LVTN:

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

6. Những thiếu sót chính của LVTN:

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

7. Đề nghị: Đƣợc bảo vệ , Bổ sung thêm để bảo vệ ,

Không đƣợc bảo vệ .

8. 3 câu hỏi sinh viên trả lời trƣớc Hội Đồng:

a) ..............................................................................................................................

b)........................................................................................................................... ...

c) ..............................................................................................................................

9. Đánh giá chung (bằng chữ: giỏi, khá, TB): Điểm …………………….

Ký tên (ghi rõ họ tên)

www.clbrobot.com www.robotgiaoduc.com

Page 5: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN:

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

Điểm: (Bằng chữ: )

Tp.Hồ Chí Minh

Ngày tháng năm 2012

Giáo viên hƣớng dẫn

www.clbrobot.com www.robotgiaoduc.com

Page 6: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

i

LỜI CẢM ƠN

Lời đầu tiên, chúng em xin đƣợc gửi đến Thầy, PGS. TS. Lê Tiến Thƣờng lời cảm ơn chân

thành và sâu sắc nhất, ngƣời đã tạo điều kiện cho chúng em làm việc trong một môi trƣờng

gợi mở, tạo cơ hội cho chúng em phát triển ý tƣởng của mình. Nhờ có sự hƣớng dẫn và giúp

đỡ tận tình của Thầy trong suốt thời gian qua, chúng em đã có thể thực hiện và hoàn thành

đồ án môn học 2, thực tập tốt nghiệp và luận văn tốt nghiệp. Những lời nhận xét, góp ý và

hƣớng dẫn tận tình của Thầy đã giúp chúng em có một định hƣớng đúng đắn trong suốt quá

trình thực hiện luận văn, giúp chúng em nhìn ra đƣợc những ƣu khuyết điểm của Đề tài và

từng bƣớc hoàn thiện hơn.

Đồng thời, chúng em xin trân trọng cảm ơn các Thầy Cô của Trƣờng Đại Học Bách Khoa

nói chung và của khoa Điện - Điện Tử nói riêng đã dạy dỗ chúng em suốt quãng thời gian

ngồi trên ghế giảng đƣờng Đại học. Những lời giảng của Thầy Cô trên bục giảng đã trang bị

những kiến thức và giúp chúng em tích lũy thêm những kinh nghiệm quý báu cho bản thân

trong những năm qua.

Bên cạnh đó, chúng tôi cũng xin cảm ơn toàn thể các bạn bè tại Trƣờng Đại Học Bách

Khoa, cảm ơn cộng đồng phát triển thƣ viện xử lý ảnh 3D - PCL, vì sự hỗ trợ và giúp đỡ của

các bạn trong suốt thời gian học tập tại trƣờng và suốt quá trình hoàn thành luận văn tốt

nghiệp này.

Và cuối cùng, chúng con gửi đến cha mẹ và các anh chị lời cảm ơn chân thành và sâu sắc

nhất. Sự quan tâm, lo lắng và hy sinh lớn lao của cha mẹ luôn là động lực cho chúng con nỗ

lực hết mình trong cuộc sống.

Tp HCM, tháng 12 năm 2012

Trần Trƣờng Sơn – Võ Xuân Xăng

www.clbrobot.com www.robotgiaoduc.com

Page 7: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

ii

TÓM TẮT LUẬN VĂN

Camera Kinect của Microsoft là một thiết bị có khả năng tạo ảnh depth map đƣợc biểu diễn

dƣới dạng đám mây điểm, tức là ảnh màu RGB có kèm theo thông tin độ sâu trong mỗi pixel.

Thiết bị này có giá cả rẻ hơn các thiết bị quét bề mặt 3D truyền thống, do đó có tiềm năng

phát triển thành thiết bị quét 3D cầm tay phổ thông. Tuy nhiên, dữ liệu độ sâu (khoảng cách

từ vật thể đến camera) chụp từ Kinect có chất lƣợng không ổn định. Trong luận văn này, tập

hợp giải thuật cho phép ngƣời dùng chụp lại đám mây điểm của vật thể từ nhiều góc nhìn,

ghép nối, cải thiện chất lƣợng của đám mây điểm thu đƣợc từ Kinect và tái tạo mô hình 3D

của vật thể sẽ đƣợc thực hiện.

Phƣơng pháp ghép nối cổ điển dùng giải thuật lặp điểm gần nhất (ICP) trong việc ghép nối

nhiều đám mây điểm lại thành một vật thể hoàn chỉnh chỉ tỏ ra đơn giản và cho kết quả tốt khi

giữa hai đám mây điểm có góc lệch nhỏ trong hệ tọa độ toàn cục. Do đó, phƣơng pháp này

yêu cầu ngƣời dùng phải thu thập một lƣợng lớn các đám mây điểm xung quanh vật thể để

đảm bảo góc lệch giữa các đám mây điểm không quá lớn. Nếu số đám mây điểm thu đƣợc quá

ít, các đám mây có góc lệch quá lớn thì phƣơng pháp ICP cho kết quả không tốt.

Giải thuật ICP kết hợp là phƣơng pháp mở rộng giải thuật ICP, bằng cách quan sát đánh

giá chỉ số khớp (Euclidian fitness score) để kết hợp một cách hài hòa giải thuật ICP cổ điển

với thuật toán ghép đồng nhất mẫu ban đầu (SAC-IA), bao gồm các phƣơng pháp ƣớc lƣợng

vector pháp tuyến bề mặt, ƣớc lƣợng đặc tính bề mặt vật thể, sau đó quá trình ghép nối thô sẽ

đƣợc thực hiện để định hƣớng các đám mây về hƣớng tƣơng đồng nhau trƣớc khi dùng giải

thuật ICP, nhằm tăng độ trùng khớp giữa chúng, và qua đó giảm số lƣợng các đám mây cần

thu thập, giảm thời gian thực thi thuật toán.

Cuối cùng, để phục vụ yêu cầu đánh giá chi tiết bề mặt trong một số ứng dụng, bề mặt vật

thể sẽ đƣợc tái tạo sau giai đoạn liên kết đám mây điểm thông qua các thuật toán tái tạo bề

mặt 3D tối ƣu nhƣ chiếu tam giác hóa, dạng alpha, chiếu lƣới, Marching Cubes.

www.clbrobot.com www.robotgiaoduc.com

Page 8: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

iii

MỤC LỤC

ĐỀ MỤC Trang

LỜI CẢM ƠN ....................................................................................................................... i

TÓM TẮT LUẬN VĂN ....................................................................................................... ii

MỤC LỤC ........................................................................................................................... iii

DANH SÁCH HÌNH VẼ ..................................................................................................... vi

DANH MỤC BẢNG BIỂU .................................................................................................. x

DANH MỤC TỪ VIẾT TẮT .............................................................................................. xi

Chƣơng 1 - Giới thiệu .......................................................................................................... 1

1.1 Đặt vấn đề .................................................................................................................... 2

1.2 Mục tiêu Luận văn........................................................................................................ 2

1.3 Phƣơng pháp thực hiện ................................................................................................. 3

1.4 Sơ lƣợc về nội dung luận văn ....................................................................................... 3

1.5 Những nghiên cứu liên quan ......................................................................................... 4

Chƣơng 2 – Tìm hiểu về camera Kinect .............................................................................. 5

2.1 Giới thiệu tổng quan về camera Kinect ......................................................................... 6

2.2 Những thành phần chính của camera Kinect ................................................................. 7

2.3 Tính toán thông tin độ sâu .......................................................................................... 10

2.3.1 Thu thập thông tin độ sâu..................................................................................... 10

2.3.2 Độ chính xác của giá trị độ sâu ............................................................................ 13

2.4 Một số đặc tính khác .................................................................................................. 14

2.4.1 Hạn chế từ ánh sáng cấu trúc ............................................................................... 14

2.4.2 Tiêu cự, góc mở IR camera và RGB camera ........................................................ 14

2.4.3 Công suất tiêu thụ và nguồn cung cấp .................................................................. 15

2.4.4 Môi trƣờng hoạt động .......................................................................................... 16

Chƣơng 3 – Các thƣ viện hỗ trợ ........................................................................................ 17

3.1 APIs hỗ trợ Kinect ...................................................................................................... 18

MỤC LỤC

www.clbrobot.com www.robotgiaoduc.com

Page 9: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

iv

3.2 So sánh Kinect SDK và OpenNI ................................................................................. 19

3.3 Thƣ viện PCL ............................................................................................................. 23

Chƣơng 4 –Tái tạo mô hình 3D ......................................................................................... 26

4.1 Sơ đồ giải thuật .......................................................................................................... 27

4.2 Cấu trúc của dữ liệu đám mây điểm ............................................................................ 29

4.3 Giai đoạn tiền xử lý đám mây điểm ............................................................................ 32

4.3.1 Lọc dữ liệu .......................................................................................................... 32

4.3.1.1 Bộ lọc không gian ......................................................................................... 33

4.3.1.2 Bộ lọc lƣới .................................................................................................... 34

4.3.2 Phân đoạn và phân nhóm vật thể .......................................................................... 35

4.3.2.1 Phân đoạn ..................................................................................................... 35

4.3.2.2 Phân nhóm .................................................................................................... 39

4.4 Giai đoạn liên kết đám mây điểm ............................................................................... 41

4.4.1 Giải thuật ICP ...................................................................................................... 42

4.4.2 Phƣơng pháp ghép thô SAC-IA ........................................................................... 45

4.4.2.1 Ƣớc lƣợng vector pháp tuyến bề mặt ............................................................. 45

4.4.2.2 Ƣớc lƣợng đặc tính đám mây điểm ............................................................... 48

4.4.2.3 Giải thuật đồng nhất mẫu ngẫu nhiên SAC-IA .............................................. 54

4.4.3 Quá trình liên kết từng cặp đám mây điểm thành vật thể hoàn chỉnh .................... 59

4.5 Giai đoạn cải thiện chất lƣợng đám mây điểm sau liên kết. ......................................... 65

4.5.1 Loại bỏ các phần tử nhiễu sử dụng phƣơng pháp thống kê ................................... 65

4.5.2 Xử lý bề mặt dùng phƣơng pháp Moving Least Squares ...................................... 67

4.6 Nhận xét ..................................................................................................................... 73

Chƣơng 5 – Tái tạo bề mặt vật thể .................................................................................... 76

5.1 Giới thiệu các phƣơng pháp tái tạo bề mặt .................................................................. 77

5.2 Các phƣơng pháp xây dựng lƣới đa giác ..................................................................... 78

5.2.1 Cấu trúc dữ liệu lƣới đa giác ................................................................................ 78

5.2.2 Hình dạng Alpha ................................................................................................. 79

5.2.2 Phƣơng pháp chiếu tam giác hóa .......................................................................... 83

5.3 Các phƣơng pháp tái tạo bề mặt .................................................................................. 85

5.3.1 Phƣơng pháp chiếu lƣới ....................................................................................... 85

www.clbrobot.com www.robotgiaoduc.com

Page 10: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

v

5.3.2 Thuật toán Marching Cubes ................................................................................. 90

5.4 Nhận xét các thuật toán tái tạo .................................................................................... 94

Chƣơng 6: Kết luận và hƣớng phát triển .......................................................................... 97

Tài liệu tham khảo ............................................................................................................. 99

Phụ lục A – Sample Consensus ........................................................................................ 103

Phụ lục B - Các khái niệm cơ bản về hình dạng Alpha .................................................. 104

www.clbrobot.com www.robotgiaoduc.com

Page 11: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

vi

DANH SÁCH HÌNH VẼ

Hình 2.1: Camera thu ảnh 3D – stereo camera ...................................................................... 6

Hình 2.2: Kết cấu của Kinect................................................................................................ 7

Hình 2.3: Ảnh RGB thu đƣợc từ camera Kinect ................................................................... 8

Hình 2.4: Bên trong Kinect: RGB camera, IR camera, Projector ........................................... 9

Hình 2.5: Động cơ điều khiển góc ngẩng Kinect .................................................................. 9

Hình 2.6: Mẫu hình đƣợc chiếu bởi projector và chụp lại bằng IR camera .......................... 10

Hình 2.7: Giả lập Kinect trong trƣờng hợp bộ phát IR chiếu một điểm duy nhất ................. 11

Hình 2.8: Ảnh độ sâu: điểm càng sáng thì càng gần. ........................................................... 12

Hình 2.9: Vùng nằm trong hình chữ nhật màu đỏ không xác định đƣợc độ sâu do cách Kinect

dƣới 50 cm. .......................................................................................................................... 13

Hình 2.10: Ví dụ về sự đổ bóng và nhiễu hồng ngoại gây ra bởi ánh sáng mặt trời. .............. 14

Hình 2.11: Bộ nguồn của cảm biến Kinect ........................................................................... 15

Hình 3.1: OpenNI, cung cấp giao diện tƣơng tác với các cảm biến và các thành phần trung

gian phân tích dữ liệu từ cảm biến…………………………………………………………………………………………..22

Hình 3.2: Logo của Thƣ viện đám mây điểm………………...……………………………………………………...24

Hình 4.1: Sơ đồ giải thuật: Giai đoạn tiền xử lý........................................................................................................27

Hình 4.2: Sơ đồ giải thuật: giai đoạn liên kết đám mây điểm dùng giải thuật ICP kết hợp (chỉ

mô tả một vòng lặp cho một cặp đám mây điểm). ................................................................. 28

Hình 4.3: Sơ đồ giải thuật: giai đoạn cải thiện chất lƣợng đám mây điểm sau liên kết ......... 28

Hình 4.4: Các ví dụ về đám mây điểm ................................................................................. 29

Hình 4.5: Ví dụ về đám mây điểm PointXYZRGB (trái) và PointXYZ (phải) đƣợc hình dung

dƣới dạng màu xanh ............................................................................................................. 32

Hình 4.6: Ảnh hƣởng của bộ lọc không gian lên đám mây ở bên trái. Vùng không gian theo

trục z đƣợc giữ lại trong khoảng từ 0.3 đến 1.1m. ................................................................. 33

Hình 4.7: Ảnh hƣởng của bộ lọc không gian lên đám mây ở bên trái. Vùng không gian theo

trục x đƣợc giữ lại trong khoảng từ -0.5 đến 1m. .................................................................. 34

www.clbrobot.com www.robotgiaoduc.com

Page 12: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

vii

Hình 4.8: Đám mây điểm trƣớc và sau khi áp dụng bộ lọc lƣới với leaf size là 0.005 .......... 35

Hình 4.9: Đám mây điểm đƣợc phân đoạn và phân nhóm thành nhiều vật thể khác nhau. ... 36

Hình 4.10: Biểu diễn thuật toán 2D RANSAC, bên trái: một tập dữ liệu ngoại lai trong đó mô

hình đƣợc một đƣờng thẳng; bên phải: xác định đƣờng thẳng với RANSAC, các điểm ngoại

lai không ảnh hƣởng đến kết quả .......................................................................................... 37

Hình 4.11: Các Đám mây điểm trƣớc và sau quá trình phân đoạn. Những mảnh vỡ từ đám

mây điểm ban đầu trở thành nhiễu của đám mây điểm mới................................................... 38

Hình 4.12: Một ví dụ về kết quả phân nhóm Euclide ........................................................... 39

Hình 4.13: Các đám mây điểm trƣớc khi phân nhóm và sau khi xử lý phân nhóm. Các mẫu

nhỏ (nhiễu) đã bị biến mất khỏi còn đối tƣợng chính chúng ta quan tâm thì đƣợc giữ lại. ..... 41

Hình 4.14: Kết quả ghép nối hai đám mây điểm dùng ICP. .................................................. 43

Hình 4.15: Kết quả ghép nối hai đám mây điểm dùng ICP khi góc lệch hai đám mây điểm gần

bằng 30 độ. .......................................................................................................................... 44

Hình 4.16: Kết quả ghép nối ICP sai số nhiều khi hai đám mây điểm có góc lệch lớn. .......... 45

Hình 4.17: Ƣớc lƣợng vector pháp tuyến bề mặt: pháp tuyến tại một điểm đƣợc ƣớc lƣợng từ

các lân cận của nó nằm trong mặt cầu có bán kính 0.03 m .................................................... 47

Hình 4.18: Biểu diễn khung Darboux và góc đặc tính PFH cho cặp điểm 𝑝𝑠 và 𝑝𝑡 cũng với

vector pháp tuyến tƣơng ứng 𝑛𝑠 và 𝑛𝑡………………………………………………………..50

Hình 4.19: Biểu đồ vùng tính toán đặc tính PFH. Điểm truy vấn (đỏ) và 𝑘-điểm lân cận (xanh)

đƣợc nối với nhau thành lƣới. ............................................................................................... 51

Hình 4.20: Ví dụ biểu diễn PFH của hai lớp điểm trong cùng đám mây điểm. ...................... 51

Hình 4.21: Biểu đồ vùng tính toán đặc tính Fast Point Feature Histogram. ........................... 53

Hình 4.22: Vector pháp tuyến bề mặt can nhựa. ................................................................... 54

Hình 4.23: Biểu đồ FPFH của đám mây điểm can nhựa. ....................................................... 54

Hình 4.24: Các đám mây điểm sau khi ghép nối thô sử dụng SAC-IA, và ghép nối tinh chỉnh

sử dụng ICP. ........................................................................................................................ 58

Hình 4.25: Hình ảnh 2D của vật thể sử dụng làm mẫu. ......................................................... 59

www.clbrobot.com www.robotgiaoduc.com

Page 13: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

viii

Hình 4.26: Mƣời hai đám mây điểm thu đƣợc từ mọi góc nhìn khác nhau của vật thể, đủ để tái

tạo hoàn toàn mô hình của vật thể. ....................................................................................... 62

Hình 4. 27: Sơ đồ ghép nối từng cặp đám mây điểm............................................................. 63

Hình 4.28: Hai đám mây điểm của một nửa trái, phải của vật thể, (mỗi đám mây đƣợc ghép từ

sáu đám mây điểm ban đầu ở mỗi phía)................................................................................ 63

Hình 4.29: Đám mây điểm hoàn chỉnh sau khi ghép nối, nhìn từ hai góc khác nhau. ............ 64

Hình 4.30: Đám mây điểm trƣớc và sau khi áp dụng statistical outlier removal với 𝜇𝑘 = 50 và

𝜎𝑘 = 2. Giá trị 𝛼 đƣợc chọn là 1 .......................................................................................... 65

Hình 4.31: Đám mây điểm sau khi đã loại bỏ bớt outliers ..................................................... 66

Hình 4.32: Đám mây điểm bên trái thu đƣợc sau giai đoạn liên kết có outlier, nhiễu, chồng

chập của hai mặt, lỗ trống. Bên phải là đám mây điểm đã đƣợc làm trơn. ............................. 69

Hình 4.33: Bên trái là đám mây điểmthu đƣợc sau giai đoạn liên kết các đám mây điểm và

bên phải là kết quả sau khi thực hiện phƣơng pháp SAMPLE LOCAL PLANE làm trơn và

upsampling của MLS. .......................................................................................................... 70

Hình 4.34: Đám mây điểm trƣớc và sau khi RANDOM UNIFORM DENSITY MLS

upsampling. ......................................................................................................................... 71

Hình 4.35: Mô hình vật thể đƣợc tái tạo hoàn chỉnh dƣới các góc nhìn khác nhau. ............... 72

Hình 4.36: Đám mây điểm thu đƣợc của cơ thể ngƣời (đối tƣợng động) ............................... 73

Hình 4.37:Cơ thể ngƣời (đối tƣợng động) sau khi ghép nối, với chỉ số fitness score ngƣỡng là

0.001 và số vòng lặp (iterative) của thuật toán ICP + SAC-IA là 300. .................................. 74

Hình 4.38: Ghép nối đám mây điểm dùng ICP kết hợp SAC-IA giữ lại thông tin màu của các

đám mây điểm. .................................................................................................................... 75

Hình 5.1: Các thành phần trong mô hình lƣới…………………………………………………………………………78

Hình 5.2: Lƣới đa giác đƣợc biểu diễn bằng phƣơng pháp mặt – đỉnh để lƣu trữ dữ liệu của

các đỉnh, các cạnh và mặt. .................................................................................................... 78

Hình 5.3: Các nhóm hình dạng bất quy tắc trong không gian thuộc tính 2D. So sánh các nhóm

đại diện bởi một đƣờng tròn, một ellip, một bao lồi và dạng 𝛼.............................................. 79

Hình 5.4: Một ví dụ về dạng 𝛼 trong không quan 2D (trong đó các “muỗng” hình cầu lúc này

trở thành các “muỗng” đƣờng tròn). ..................................................................................... 80

www.clbrobot.com www.robotgiaoduc.com

Page 14: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

ix

Hình 5.5: Giản đồ Voronoi trƣờng hợp 2D chia mặt phẳng thành các đa giác, mỗi đa giác

chứa một điểm 𝑝𝑖 ∈ 𝑆 thỏa mãn mọi vị trí bất kì trong đa giác 𝑃𝑖 có khoảng cách điểm

𝑝𝑖 ∈ 𝑃𝑖 là ngắn nhất so với khoảng cách từ vị trí đó đến điểm 𝑝𝑗 ∈ 𝑃𝑗. ................................ 81

Hình 5.6: Tái tạo bề mặt dùng dạng 𝛼 cho kết quả tốt, không nhiều và không có lỗ trống với

𝛼 = 0.01 .............................................................................................................................. 82

Hình 5.7: Lƣới tam giác của não bộ. ..................................................................................... 83

Hình 5.8: Phƣơng pháp xây dựng lƣới đa giác dùng thuật toán chiếu tam giác hóa. .............. 85

Hình 5.9: Giải thuật chiếu lƣới xấp xỉ bề mặt ẩn (đƣờng xanh lam) và tạo bề mặt đơn hình

(đƣờng xanh lá) thông qua sự định hƣớng và độ lớn của các vector (màu cam) xác định tại hai

đầu của cạnh cắt bề mặt đám mây điểm ................................................................................ 86

Hình 5.10: Dữ liệu đầu vào và các cell đệm.......................................................................... 86

Hình 5.11: Vector tại đỉnh các voxel. ................................................................................... 87

Hình 5.12: Các vector có hƣớng ngƣợc nhau quanh các voxel chứa các điểm thuộc đám mây

điểm. .................................................................................................................................... 87

Hình 5.13: Các cạnh nối đỉnh chứa vector ngƣợc chiều nhau. ............................................... 88

Hình 5.14: Các cạnh có giao điểm với bề mặt và tâm của voxel. .......................................... 88

Hình 5.15: Hình chiếu của tâm voxel lên bề mặt đám mây điểm và sự hình thành bề mặt. .... 89

Hình 5.16: Tái tạo bề mặt dùng thuật toán chiếu lƣới cho kết quả rất đẹp, không nhiễu và

không lỗ trống. ..................................................................................................................... 90

Hình 5.17: 15 dạng cấu hình của các mặt tam giác ............................................................... 92

Hình 5.18: Mã hóa bảng tra cứu LUT ................................................................................... 92

Hình 5.19: Nội suy vị trí của tam giác .................................................................................. 93

Hình 5.20: Kết quả của thuật toán Marching cubes chấp nhận đƣợc, không có lỗ trống và

nhiều (với LeafSize = 0.003,isoLevel =0.003, useDot = 0). .................................................. 93

Hình 5.21: Tái tạo bề mặt 3D cơ thể ngƣời: ngực và đầu, sử dụng dạng alpha và chiếu tam

giác. ..................................................................................................................................... 95

Hình 5.22: Tái tạo mô hình 3D một phần cơ thể ngƣời: ngực và bụng. Từ trái qua, sử dụng

dạng alpha, chiếu lƣới và chiếu tam giác. ............................................................................. 96

www.clbrobot.com www.robotgiaoduc.com

Page 15: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

x

Hình B.1: Các cửa hàng trong thành phố phẳng và cell Voronoi cell tƣơng ứng (theo khoảng

cách Euclide). .................................................................................................................... 104

Hình B.2: Trái: tam giác hóa Delaunay triangulation cùng với các đƣờng trong ngoại tiếp và

tâm đỏ. Phải: kết nối các tâm của đƣờng tròn ngoại tiếp tạo thành giản đồ (đỏ). ................. 105

Hình B.3: Các dạng alpha shape cho các giá trị alpha phát triển. ........................................ 106

DANH MỤC BẢNG BIỂU

Bảng 2.1 Góc mở và tiêu cự của RGB và IR camera [3] ............................................ 15

www.clbrobot.com www.robotgiaoduc.com

Page 16: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

xi

DANH MỤC TỪ VIẾT TẮT

0

3D Three Dimensional – Ba chiều

6DoF Six Degrees of Freedom – Sáu mức tự do

A

API Application Programming Interface – Giao diện lập trình ứng dụng

AUX Auxiliary Port – Cổng bổ trợ

C

CAD Computer Aided Design – Thiết kế đƣợc Máy tính Hỗ trợ

CMOS Complementary Metal-Oxide Semiconductor –

Bán dẫn oxit kim loại bổ sung

CPU Central Processing Unit – Đơn vị Xử lí Trung tâm

F

FLANN Fast Library for Approximate Nearest Neighbors –

Thƣ viện Hỗ trợ Tính toán Điểm Lân cận Gần nhất

FPFH Fast Point Feature Histogram – Biểu đồ Đặc tính Điểm Thu gọn

G

GUI Graphical User Interface – Giao diện ngƣời sử dụng

GPU General-Purpose Computing on Graphics Processing Units –

Tính toán Mục đích Chung trên Bộ Xử lý Đồ họa

I

IR Infrared – Hồng ngoại

NI Natural Interaction – Tƣơng tác Tự nhiên

ICP Iterative Closest Point – Phƣơng pháp Lặp Điểm Gần nhất

www.clbrobot.com www.robotgiaoduc.com

Page 17: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

xii

L

LED Light Emitting Diode – Điốt Phát Quang

M

MLS Moving Least Squares – Phƣơng pháp Bình phƣơng Cực tiểu Động

N

NARF Normal Aligned Radial Feature –

Đặc tính Liên kết Hƣớng Vector Pháp tuyến Bề mặt

NURBS Non-Uniform Rational B-Spline – Mô hình B-Spline Hữu tỷ Không Đều

P

PCA Principal Component Analysis – Phân tích Thành phần Chính

PCD Point Cloud Data – Dữ liệu Đám mây Điểm

PCL Point Cloud Library – Thƣ viện Đám mây Điểm

PFH Point Feature Histogram – Biểu đồ Đặc tính Điểm

R

RANSAC RANdom SAmple Consensus – Giải thuật Đồng nhất Mẫu Ngẫu nhiên

RGB Red Green Blue – Màu thực

S

SAC SAmple Consensus – Đồng nhất Mẫu

SAC-IA SAmple Consensus Initial Alignment – Ghép Đồng nhất Mẫu Ban đầu

SDK Software Development Kit – Bộ công cụ Phát triển Phần mềm

T

TOF Time Of Flight

V

VTK Visualization Toolkit – Thƣ viện Hiển thị

www.clbrobot.com www.robotgiaoduc.com

Page 18: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 1: Giới thiệu 1 SVTH: T.T Sơn - V.X Xăng

Chƣơng 1 - Giới thiệu

___________________________________________________________________________

www.clbrobot.com www.robotgiaoduc.com

Page 19: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 1: Giới thiệu 2 SVTH: T.T Sơn - V.X Xăng

1.1 Đặt vấn đề

Tái tạo bề mặt 3D của các vật thể nhỏ trong điều kiện giới hạn về không gian, thiết bị, chất

lƣợng… đã đƣợc nghiên cứu và áp dụng vào nhiều lĩnh vực nhƣ thiết kế và tạo mẫu ảo, kiểm

định chất lƣợng, trò chơi điện tử, tạo mô hình thế giới ảo, mô hình hóa sản phẩm, mô phỏng

mặt ngƣời làm hình đại diện,… Kỹ thuật quét hình 3D hiện hành thƣờng dựa trên những thiết

bị cảm biến phức tạp và chuyên nghiệp nhƣ hệ thống camera/máy chiếu dùng công nghệ ánh

sáng cấu trúc (structured light) hoặc laser định tầm. Mặc dù dữ liệu thu đƣợc có chất lƣợng

cao nhƣng các thiết bị trên tốn kém và thƣờng đòi hỏi ngƣời sử dụng có kiến thức chuyên

môn để có thể vận hành. Vì thế ngƣời dùng bán chuyên nghiệp không đƣợc sử dụng những

công nghệ đó. Mặt khác, nếu máy quét 3D giá rẻ và dễ vận hành trở nên phổ biến hơn thì mô

hình vật thể 3D có thể đƣợc sử dụng rộng rãi hơn giống nhƣ hình ảnh và video hiện nay. Điều

này có thể mở rộng sự phát triển của nhiều ứng dụng mới, ví dụ nhƣ trong lĩnh vực hội họa và

điêu khắc, trong các nền tảng web cộng đồng hoặc mua sắm trực tuyến.

Camera độ sâu (depth camera) nhƣ cảm biến Microsoft Kinect là một loại thiết bị mới phát

triển trong thời gian gần đây đã thu hút sự chú ý của đông đảo giới giải trí và cộng đồng khoa

học. So với các loại máy quét 3D thông thƣờng, camera độ sâu có thể thu thập đƣợc dữ liệu

màu và chiều sâu của vật thể (khoảng cách từ vật thể đến camera) ở tốc độ khung hình khá

tốt, ít phụ thuộc vào điều kiện ánh sáng và hoa vân bề mặt (texture). Camera Kinect nhỏ gọn,

giá rẻ và dễ dùng nhƣ một máy quay video thích hợp cho ngƣời dùng phổ thông.

Kinect đã đƣợc dùng nhƣ là một máy quét 3D, tuy nhiên độ phân giải X/Y và độ chính xác

của thông tin độ sâu trong dữ liệu thu đƣợc còn tƣơng đối thấp. Do đó, luận văn này sẽ khắc

phục các vấn đề trên, tái tạo mô hình 3D của vật thể với chất lƣợng tốt trên máy tính chỉ với

camera Kinect cầm tay.

1.2 Mục tiêu Luận văn

Luận văn này sử dụng phƣơng pháp ghép nối, tái tạo mô hình từ các đám mây điểm thu

đƣợc từ camera Kinect dƣới các góc nhìn khác nhau thỏa mãn điều kiện các đám mây điểm

phải có miền phủ chồng lên nhau đủ lớn, tức là góc nhìn vật thể giữa các đám mây điểm kế

cận không chênh lệch quá lớn. Ngƣời dùng có thể thu đƣợc các đám mây điểm này bằng cách

di chuyển camera Kinect tự do xung quanh vật thể. Chuyển động hoặc thiết lập của camera

không nhất thiết phải xác định cụ thể. Từ đó, các đám mây điểm đƣợc ghép lại với nhau tạo

thành một mô hình đám mây điểm hoàn chỉnh, số điểm của đám mây điểm cuối bằng tổng số

điểm của các đám mây điểm ghép lại, có thể lấy mẫu downsample hoặc upsample bằng thuật

www.clbrobot.com www.robotgiaoduc.com

Page 20: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 1: Giới thiệu 3 SVTH: T.T Sơn - V.X Xăng

toán để cải thiện độ phân giải (mật độ). Thuật toán tái tạo mô hình 3D thích hợp sẽ tạo đƣợc

bề mặt 3D từ mô hình đám mây điểm hoàn chỉnh này.

Quá trình quét và xử lý này đơn giản đối với ngƣời dùng phổ thông, chỉ với máy vi tính và

camera Kinect. Các kết quả thực nghiệm cho thấy kết quả đảm bảo tốt hình dạng của vật thể

trong giới hạn cho phép. Với chi phí cho camera khoảng 150$, phƣơng pháp này rẻ hơn nhiều

so với phƣơng pháp sử dụng máy quét 3D truyền thống.

Mục tiêu của Luận văn này đƣợc tóm gọn lại nhƣ sau:

Thu dữ liệu đám mây điểm từ camera Kinect, tiền xử lý dữ liệu bằng các thuật toán lọc

để chuẩn bị tốt cho công đoạn ghép nối và tái tạo vật thể.

Sử dụng giải thuật liên kết các đám mây điểm (registration) dùng giải thuật ICP kết hợp

bao gồm giải thuật ghép thô (coarse alignment) và ghép tinh chỉnh (fine alignment) khôi

phục mô hình 3D của vật thể.

Thực thi các giải thuật cải thiện chất lƣợng bề mặt tối ƣu sau quá trình ghép nối các đám

mây điểm.

Tái tạo lại bề mặt của vật thể.

1.3 Phƣơng pháp thực hiện

Hai giai đoạn chính của quá trình xử lý là liên kết các đám mây điểm (registration) và tái

tạo bề mặt (reconstruction). Trƣớc khi các đám mây điểm đƣợc liên kết, chúng đƣợc tiền xử

lý thông qua các bộ lọc nhiễu và vật thể xung quanh không cần thiết. Giai đoạn liên kết các

đám mây điểm đƣợc chia làm hai tác vụ kết hợp một cách hợp lý là ghép nối thô và ghép nối

tinh chỉnh. Sau đó, các giải thuật cải thiện chất lƣợng bề mặt gồm có giải thuật làm trơn bề

mặt, upsampling sẻ đƣợc thực thi. Giai đoạn cuối cùng là tái tạo bề mặt. Các giải thuật tái tạo

bề mặt gồm có chiếu tam giác hóa với ƣu điểm bảo toàn màu sắc của vật thể, dạng alpha có

ƣu điểm tạo đƣợc bề mặt chi tiết, chiếu lƣới tạo bề mặt trơn và marching cubes với giải thuật

không quá phức tạp, thời gian thực thi ngắn và đƣợc sử dụng rộng rãi từ lâu, chất lƣợng bề

mặt chấp nhận đƣợc.

1.4 Sơ lƣợc về nội dung luận văn

Luận văn gồm có các chƣơng:

• Chƣơng 1 – Giới thiệu: Sơ lƣợc về tái tạo bề mặt 3D, những vấn đề hiện tại và tổng

quan về nội dung luận văn.

www.clbrobot.com www.robotgiaoduc.com

Page 21: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 1: Giới thiệu 4 SVTH: T.T Sơn - V.X Xăng

• Chƣơng 2 – Tìm hiểu camera Kinect: phân tích chuyên sâu về cấu tạo và nguyên tắc

hoạt động của camera Kinect.

• Chƣơng 3 – Các thƣ viện hỗ trợ: giới thiệu về API OpenNI và Thƣ viện đám mây

điểm (PCL) dùng trong luận văn này.

• Chƣơng 4 – Tái tạo mô hình 3D: chƣơng này phân tích lý thuyết, phƣơng pháp thực

hiện và kết quả của các giải thuật xử lý liên kết đám mây điểm.

• Chƣơng 5 – Tái tạo bề mặt 3D: chƣơng này phân tích lý thuyết, phƣơng pháp thực

hiện và kết quả của các thuật toán tái tạo bề mặt.

• Chƣơng 6 – Kết luận và hƣớng phát triển.

1.5 Những nghiên cứu liên quan

Dự án KinectFusion của Microsoft [38] hợp tác với các trƣờng ở Anh và Canada cho phép

tái tạo không gian 3D thời gian thực. Quá trình tái tạo 3D đƣợc thực hiện ở tốc độ khung hình

cao nhƣng không dùng phƣơng pháp liên kết các đám mây điểm có lƣới tam giác, cho phép

tái tạo chi tiết cụ của vật thể do bề mặt luôn đƣợc cải thiện chất lƣợng khi có thêm nhiều góc

quay. Điều này cho phép tích hợp các tƣơng tác đồ họa máy tính vào môi trƣờng quét ngay

trong quá trình quét và tái tạo bề mặt.

Viện nghiên cứu Intel thực hiện một hệ thống tái tạo 3D tinh vi và phức tạp dùng Kinect

vào năm 2010 . Hệ thống này dùng kĩ thuật tái tạo 3D quy mô lớn dùng vòng lặp kín, một ký

thuật cực tiểu hóa lỗi toàn cục, vƣợt xa tầm của luận văn này.

Nicolas Burrus, ngƣời nghiên cứu Kinect đã công bố thông tin lý thuyết và thực nghiệm về

camera này trƣớc khi driver OpenNI xuất hiện, đã viết phần mềm RGBDemo dựa vào ý tƣởng

trên của Intel vào tháng 1 năm 2011. Tháng 4 năm 2011, Burrus đã cập nhật quá trình liên kết

đám mây điểm tối ƣu hóa trên GPU cho chƣơng trình này.

www.clbrobot.com www.robotgiaoduc.com

Admin
Typewriter
1
Admin
Typewriter
Admin
Rectangle
Page 22: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 5 SVTH: T.T Sơn - V.X Xăng

Chƣơng 2 – Tìm hiểu về camera Kinect

___________________________________________________________________________

www.clbrobot.com www.robotgiaoduc.com

Page 23: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 6 SVTH: T.T Sơn - V.X Xăng

Chƣơng này mô tả công nghệ cốt lõi liên quan đến quá trình thu thập các đám mây điểm.

Một cách thông dụng để thu thập các đám mây điểm là sử dụng stereo camera. Mô tả tóm tắt

công nghệ sử dụng stereo camera đƣợc trình bày dƣới đây:

Hình 2.1: Camera thu ảnh 3D – stereo camera

Stereo camera có hơn 2 thấu kính và một cảm biến ảnh hoặc màng film tách biệt cho mỗi

thấu kính, cho phép camera mô phỏng cơ quan thị giác hai mắt của ngƣời, do đó nó có thể

chụp đƣợc ảnh 3D, quá trình này đƣợc gọi là stereo photography. Tuy nhiên nhƣ đã giới thiệu

ở chƣơng 1, stereo camera là một thiết bị đắt tiền và phức tạp, độ linh động còn hạn chế mặc

dù độ chính xác của đám mây điểm rất cao. Vào ngày 4 tháng 11 năm 2010, thiết bị cảm biến

chuyển động thiết Microsoft Kinect cho máy chơi game Xbox 360 đƣợc phát hành. Kinect là

sản phẩm của Microsoft dựa trên công nghệ camera đƣợc phát triển bởi PrimeSense, Kinect

là thiết bị phần cứng chi phí thấp và giá cả phải chăng đƣợc sử dụng trong Luận văn này với

mục đích chính là thu dữ liệu đám mây điểm của vật thể.

2.1 Giới thiệu tổng quan về camera Kinect

Kinect đƣợc coi nhƣ là một thiết bị ngoại vi cho Xbox 360, cho phép giao tiếp với con

ngƣời thông qua các cử chỉ, đem lại những cảm giác thú vị cho ngƣời chơi game trên Xbox.

Khả năng hiểu đƣợc cử chỉ con ngƣời của Kinect dựa trên hai đặc tính chính sau: thông tin về

độ sâu ảnh (depth map), khả năng phát hiện và bám theo đặc tính cơ thể ngƣời (body skeleton

tracking). Bên cạnh phục vụ cho mục đích chơi game, sản phẩm Kinect còn đƣợc dùng vào

mục đích nghiên cứu xử lý ảnh 3D, phát hiện cử chỉ (gesture recognition), bám theo ngƣời

www.clbrobot.com www.robotgiaoduc.com

Admin
Rectangle
Admin
Rectangle
Admin
Typewriter
màn
Admin
Typewriter
Admin
Typewriter
Page 24: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 7 SVTH: T.T Sơn - V.X Xăng

(body tracking) đƣợc dùng trong các ứng dụng điều khiển robot tự động và nhiều mục đích

khác.

Kinect đang giữ kỷ lục Guiness thế giới về “Thiết bị điện tử đƣợc tiêu thụ nhanh nhất” với

8 triệu sản phẩm trong 60 ngày. Mƣời triệu sản phẩm Kinect đã đƣợc phân phối trên thế giới

vào ngày 9 tháng 3 năm 2011. Lý do chính cho sự thành công của sản phẩm Kinect là giá cả

khá rẻ (khoảng 140$ trên 1 sản phẩm) cho thiết bị có khả năng cung cấp các thông tin 3D với

chất đủ tốt để nghiên cứu và phát triển. Ngoài ra, nhờ khả năng theo giỏi và phát hiện cử chỉ

của Kinect, ngƣời ta ví Kinect nhƣ là “mắt thần” trong những ứng dụng liên quan đến thị giác

máy tính. Hiện tại Kinect đang cạnh tranh với Wii Remote Plus và PlayStation Move với bộ

điều khiển chuyển động PlayStation Eye. Phiên bản cho Windows đã đƣợc phát hành vào

ngày 12 tháng 2 năm 2012. Các bản hack Kinect – những phần mềm nhỏ cho phép ngƣời

dùng tƣơng tác với các ứng dụng độc lập nhƣ game có rất nhiều trên internet

2.2 Những thành phần chính của camera Kinect

Cấu tạo của camera Kinect là một hộp ngang kết nối với một chân đế nhỏ có một trục động

cơ, đƣợc thiết kế để bố trí nằm trên hoặc dƣới màn hình hiển thị.

Kinect gồm có: RGB camera, cảm biến độ sâu (3D Depth Sensors), dãy microphone

(Multi-array Mic) và động cơ điều khiển góc ngẩng (Motorized Tilt).

Hình 2.2: Kết cấu của Kinect

www.clbrobot.com www.robotgiaoduc.com

Admin
Rectangle
dõi
Page 25: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 8 SVTH: T.T Sơn - V.X Xăng

RGB Camera: nhƣ một camera RGB thông thƣờng, có tốc độ khung hình 30Hz.

Video stream RGB có độ phân giải chuẩn VGA (640 × 480 điểm ảnh) 8 bit đi qua

bộ lọc màu Bayer.

Hình 2.3: Ảnh RGB thu đƣợc từ camera Kinect

Cảm biến độ sâu: bao gồm một thiết bị chiếu tia laser hồng ngoại (IR projector)

kết hợp với một bộ cảm biến CMOS đơn sắc (IR camera), cho phép thu thập dữ

liệu độ sâu dƣới hầu hết mọi điều kiện ánh sáng xung quanh. Phân tích video

stream đơn sắc từ cảm biến độ sâu có độ phân giải chuẩn VGA (640 × 480 điểm

ảnh) độ sâu 11-bit, và có 2048 cấp nhạy.

Khoảng hoạt động của cảm biến chiều sâu có thể điều chỉnh đƣợc và các phần

mềm hack Kinect hoặc driver từ các nhà phát triển thứ ba có khả năng tự động điều

chỉnh cảm biến dựa vào game và môi trƣờng vật lý xung quanh ngƣời chơi. Cảm

biến Kinect có khoảng giới hạn thực tế tầm 1.2 - 3.5m khi đƣợc sử dụng với các

phần mềm Xbox. Khu vực cần thiết để chơi Kinect là khoảng 6m2, mặc dù bộ cảm

biến có thể duy trì tracking trong phạm vi mở rộng tầm 0.7 - 6m. Cảm biến này có

góc nhìn 57° theo chiều ngang và 43° theo chiều dọc. Do đó, phạm vi nhận diện

chiều ngang của camera Kinect ở khoảng cách tối thiểu của tầm Kinect vào khoảng

0.8m là 87cm, và phạm vi nhận diện theo chiều dọc là 63cm, dẫn đến độ phân giải

vào khoảng hơn 1.3mm cho mỗi pixel.

Dãy đa microphone: gồm các microphone đƣợc bố trí dọc Kinect nhƣ trong hình

2.2 đƣợc dùng vào các ứng dụng điều khiển bằng giọng nói. Dãy microphone gồm

có bốn bộ thu âm và xử lý âm thanh 16-bit ở mỗi kênh tại tốc độ lấy mẫu 16 kHz.

www.clbrobot.com www.robotgiaoduc.com

Admin
Rectangle
Admin
Rectangle
Admin
Rectangle
Page 26: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 9 SVTH: T.T Sơn - V.X Xăng

Sức mạnh của dãy đa microphone này phụ thuộc driver của nhà phát triển thứ ba,

hiện nay, theo đánh giá thì gói phần mềm Microsoft Kinect SDK hỗ trợ chức năng

này tốt hơn gói phần mềm OpenNI.

Hình 2.4: Bên trong Kinect: RGB camera, IR camera, Projector

Động cơ điều khiển góc ngẩng: là loại động cơ DC khá nhỏ, cho phép ta điều

chỉnh góc ngẩng camera lên xuống để bảo đảm camera có đƣợc góc nhìn tốt nhất,

trục động cơ có thể nâng cảm biến lên hoặc xuống tới 27°. Đây đƣợc coi nhƣ là một

tính năng rất hữu dụng trong các mục đích sử dụng Kinect nhƣ là một thiết bị hỗ trợ

thị giác cho robot tự hành.

Hình 2.5: Động cơ điều khiển góc ngẩng Kinect

www.clbrobot.com www.robotgiaoduc.com

Page 27: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 10 SVTH: T.T Sơn - V.X Xăng

2.3 Tính toán thông tin độ sâu

2.3.1 Thu thập thông tin độ sâu

Kinect sử dụng camera hồng ngoại cùng với bộ phát ánh sáng cấu trúc (structured light)

để ƣớc tính bề mặt của một cảnh nhìn từ camera. Máy chiếu phóng một tia hồng ngoại vào

môi trƣờng xung quanh và máy ảnh hồng ngoại chụp lại nó. Cặp cảm biến IR camera và IR

projector sẽ phối hợp với nhau để cho ra giá trị độ sâu ảnh bằng công nghệ Light Coding

của PrimeSense [2].

Hình 2.6: Mẫu hình đƣợc chiếu bởi projector và chụp lại bằng IR camera

Khác với kỹ thuật Stereo Camera với việc dùng cặp camera giống nhau để xây dựng nên

bản đồ độ sâu, hay kỹ thuật Time-Of-Flight (TOF) định nghĩa khoảng cách bằng ƣớc lƣợng

thời gian di chuyển của tia sáng đi và về trong không gian; kỹ thuật Light Coding dùng

một nguồn sáng hồng ngoại chiếu liên tục kết hợp với một camera hồng ngoại để tính toán

khoảng cách [3]. Công việc tính toán này đƣợc thực hiện bên trong Kinect bằng chip

PS1080 SoC của PrimeSense . Công nghệ mới này đƣợc cho là đáp ứng chính xác hơn, giá

cả rẻ hơn cho việc sử dụng ở môi trƣờng trong nhà.

www.clbrobot.com www.robotgiaoduc.com

Page 28: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 11 SVTH: T.T Sơn - V.X Xăng

Projector sẽ chiếu một chùm sáng hồng ngoại, tạo nên những đốm sáng ở không gian

phía trƣớc Kinect, tập hợp đốm sáng đƣợc phát ra này là cố định. Những đốm sáng này

đƣợc tạo ra nhờ một nguồn sáng truyền qua lƣới nhiễu xạ (diffraction gratings). Tập hợp

các đốm sáng này đƣợc IR camera chụp lại, thông qua giải thuật đặc biệt đƣợc tích hợp

trong PS1080 SoC [4] cho ra bản đồ độ sâu. Bản chất của giải thuật này là các phép toán

hình học dựa trên quan hệ giữa hai cảm biến IR camera và Projector mà ta sẽ đề cập sau.

Hình 2.6 cho ta thấy rõ mẫu hình tập hợp các đốm sáng từ Projector và đƣợc chụp lại bởi

IR camera.

Hình 2.7: Giả lập Kinect trong trƣờng hợp bộ phát IR chiếu một điểm duy nhất

Để hiểu cách thức Kinect ƣớc lƣợng khoảng cách tới vật thể trong môi trƣờng nhƣ thế

nào, ta quan sát hình 2.7, ta giả sử Projector phát đi một tia sáng dọc đƣờng màu xanh lá,

nó sẽ đƣợc chụp lại dƣới dạng một đốm sáng bởi IR camera khi chạm vào bề mặt vật thể

trong không gian. Ta xét ba mặt phẳng ở ba khoảng cách khác nhau: mặt phẳng gần Kinect

(close plane), mặt phẳng ở xa Kinect (distant plane) và mặt phẳng tham chiếu (reference

plane) ở giữa hai mặt phẳng trên. Trong đó, mặt phẳng tham chiếu ngầm đƣợc biết trƣớc

bên trong Kinect với đầy đủ thông tin về khoảng cách. Ngoài ra, ta cũng đề cập thêm mặt

phẳng ảnh (image plane) của IR camera, là mặt phẳng hình chiếu của các điểm trong

không gian thu về bởi IR camera. Ta xét trong ba trƣờng hợp khi tia sáng màu xanh lá

chạm vào ba điểm trên ba mặt phẳng lần lƣợt là A, B, C; ba điểm này đƣợc chiếu lên mặt

phẳng ảnh tƣơng ứng là A’, B’, C’. Quan sát vị trí A’, B’ và C’, ta có nhận xét:

www.clbrobot.com www.robotgiaoduc.com

Page 29: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 12 SVTH: T.T Sơn - V.X Xăng

Điểm A càng gần Kinect (hay close plane càng gần Kinect) thì A’ càng xa B’ về phía

bên phải; ngƣợc lại, điểm C càng xa Kinect (hay distant plane càng xa Kinect) thì C’ càng

xa B’ về phía bên trái. Từ đó: khi ta biết trƣớc hƣớng, điểm xuất phát của tia sáng từ

Projector và vị trí B’ là hình chiếu của điểm B trên mặt phẳng tham chiếu lên mặt phẳng

ảnh, ta hoàn toàn có thể tính toán đƣợc độ sâu ảnh hay khoảng cách tới vật thể.

Kinect làm điều tƣơng tự với tập hợp các đốm sáng còn lại phát đi từ projector, với mặt

phẳng tham chiếu biết trƣớc. Nó tìm điểm là tâm của đốm sáng mà IR camera chụp lại

đƣợc và điểm tƣơng đồng của đốm sáng đó trên mặt phẳng tham chiếu (ví dụ: hình 2.7 ta

có A và B, C và B là các cặp điểm tƣơng đồng), để tìm khoảng chênh lệch giữa hai điểm

này theo chiều ngang khi chiếu về trên mặt phẳng ảnh; và lƣu ý là giá trị chênh lệch này

đƣợc tính bằng đơn vị pixel. Tập hợp của tất cả các giá trị chênh lệch từ tập hợp đốm sáng,

sẽ tạo nên bản đồ độ chênh lệch (disparity map), giá trị này càng lớn thì khoảng cách hay

giá trị độ sâu ảnh (depth) càng lớn, từ đó mà ta xây dựng đƣợc bản đồ độ sâu (depth map)

với giá trị tính bằng mét thực sự. Tuy nhiên, do tập hợp số lƣợng đốm sáng phát đi từ

projector nhỏ hơn so với tổng số pixel trên mặt phẳng ảnh của IR camera nên một phần

giá trị độ sâu ảnh còn lại sẽ đƣợc nội suy.

Hình 2.8: Ảnh độ sâu: điểm càng sáng thì càng gần.

Bản thân Kinect thực sự không tính toán độ sâu, nhƣng trả về một giá trị trừu tƣợng hơn

cho hệ thống xử lý (xem mục 2.4). Trong khi OpenNI xuất giá trị này ra dƣới dạng khác dễ

hơn cho các nhà phát triển, libfreenect, một trình điều khiển và thƣ viện nền tảng khác,

xuất ra các giá trị 11-bit này.

www.clbrobot.com www.robotgiaoduc.com

Page 30: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 13 SVTH: T.T Sơn - V.X Xăng

2.3.2 Độ chính xác của giá trị độ sâu

Vì một số phần của ảnh độ sâu là giá trị nội suy [5], điều đó có nghĩa rằng ngƣời ta

không thể mong đợi Kinect cho ra mọi pixel chính xác. Kinect hoạt động tốt nhất đối với

các bề mặt trơn liên tục.

Theo Nicolas Burrus, ngƣời đi tiên phong về Kinect từ các thí nghiệm riêng của mình,

độ sâu của một điểm 𝑧 có thể đƣợc tính bằng mét từ độ chênh lệch liệu của các điểm 𝑑 (từ

phần cứng Kinect) từ phƣơng trình [6]:

𝑧 =1

−0.0030711016 ∙𝑑 + 3.3309495161, (2.1)

Trong đó, 𝑑 là số nguyên 11-bit nằm trong khoảng 0 đến 2047. 𝑧 sẽ thay đổi dấu từ

dƣơng sang âm khi 𝑑 ở gần 1084, vì vậy giá trị ở ngoài khoảng đó không có tác dụng cho

việc tính toán độ sâu. Đo lƣờng giá trị độ sâu dƣới 50 cm tính từ Kinect không chính xác,

nhƣ trong hình dƣới đây, trong đó khu vực không thể đo lƣờng đƣợc là phần màu đen của

bàn tay. Điều này có nghĩa là chỉ có giá trị 𝑑 trong khoảng 434 - 1084 bảo đảm giá trị độ

sâu thực tế. Đây là 650 giá trị độ chênh lệch duy nhất. Trong số này, tất cả các giá trị lên

đến 759 biểu diễn đƣợc độ sâu dƣới 1.0 m, có nghĩa là một nửa giá trị độ chênh lệch tƣơng

ứng với độ sâu trong khoảng từ 50 cm đến 1 m. Và nó giảm theo hàm mũ, chỉ có 16 giá trị

trong phạm vi của độ chênh lệch tƣơng ứng với độ sâu từ 4 đến 5 m..

Hình 2.9: Vùng nằm trong hình chữ nhật màu đỏ không xác định đƣợc độ sâu do cách

Kinect dƣới 50 cm.

www.clbrobot.com www.robotgiaoduc.com

Page 31: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 14 SVTH: T.T Sơn - V.X Xăng

Không chỉ các đối tƣợng ở xa ngƣời xem chứa ít các điểm hơn bởi vì chúng chiếm một

diện tích nhỏ hơn của hình ảnh. Đối với bất kỳ vật thể nào xa hơn hơn 2.5 – 3.0 m, ngƣời

ta không thể mong đợi độ chính xác cao về bề mặt, bất kỳ chi tiết cụ thể nào phải đƣợc

chụp trong một phạm vi của 60 cm đến 1.5 m. Cho dù phần cứng thực sự là chính xác ở

khoảng cao hơn thì định dạng của giá trị 𝑑 vẫn có độ chính xác không cao ngoài khoảng đo

tin cậy.

2.4 Một số đặc tính khác

2.4.1 Hạn chế từ ánh sáng cấu trúc

Bởi vì camera và thiết bị phát nằm cách nhau đáng kể theo thiết kế, không phải tất cả

các điểm có thể nhìn thấy từ camera luôn luôn có thể đƣợc máy phát chiếu đến. Kết quả là

lỗ hổng có thể xuất hiện trong ảnh độ sâu nơi mô hình chiếu mẫu bị che khuất (hình dƣới).

Hình 2.10: Ví dụ về sự đổ bóng và nhiễu hồng ngoại gây ra bởi ánh sáng mặt trời.

2.4.2 Tiêu cự, góc mở IR camera và RGB camera

Hai camera RGB và IR đƣợc đặt cách nhau 2.5 cm nên có chút khác nhau ở khung hình

thu về từ hai camera. Để đảm bảo khung hình RGB có thể chứa đƣợc khung hình IR,

ngƣời ta thiết kế góc mở của RGB camera lớn hơn. Điều này cũng dẫn đến tiêu cự của

RGB camera nhỏ hơn. Các thông số trong bảng 2.1 đƣợc đo đạc bằng thực nghiệm nhƣ

sau:

www.clbrobot.com www.robotgiaoduc.com

Page 32: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 15 SVTH: T.T Sơn - V.X Xăng

Bảng 2.1 Góc mở và tiêu cự của RGB và IR camera [3]

2.4.3 Công suất tiêu thụ và nguồn cung cấp

Bởi vì cơ chế nâng của bộ cảm biến cơ giới đòi hỏi công suất cao hơn so với công suất

cổng USB của Xbox 360 có thể cung cấp, thiết bị cần dùng thêm một kết nối kết hợp giao

tiếp USB với nguồn điện bổ sung. Mô hình Xbox 360S bao gồm một cổng AUX đặc biệt

để chứa các kết nối, trong khi các mô hình cũ đòi hỏi một dây sạc (đi kèm cảm biến) có hai

đầu ra riêng biệt, một cổng kết nối vào cổng USB của máy tính và một cổng cung cấp điện

cho Kinect; nguồn điện đƣợc cung cấp từ adapter 12 volt. Kết quả thử nghiệm cho thấy

năng lƣợng tiêu thụ từ nguồn cấp ngoài khoảng chừng:

3.3W ở chế độ chờ và 4.7W khi hoạt động

Hình 2.11: Bộ nguồn của cảm biến Kinect

www.clbrobot.com www.robotgiaoduc.com

Page 33: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 2: Tìm hiểu về camera Kinect 16 SVTH: T.T Sơn - V.X Xăng

Năng lƣợng đƣợc lấy từ cổng USB 2.0 chƣa đƣợc xác định. Thông tin từ PrimeSense

cho thấy hệ thống chỉ tiêu tốn 2.25 W, mức công suất có thể đạt đƣợc thông qua kết nối

USB 2.0.

2.4.4 Môi trƣờng hoạt động

Từ khẳng định cảm biến Kinect gần nhƣ không bị tác động từ ánh sáng xung quanh khi

sử dụng trong nhà từ PrimeSense, do đó có thể hiểu Kinect không thích hợp để dùng ngoài

trời. Các thử nghiệm cho thấy dữ liệu độ sâu khả dụng khi Kinect hoạt động ngoài trời,

miễn là một phần môi trƣờng quan sát không chịu quá nhiều ảnh hƣởng từ ánh sáng môi

trƣơng xunh quanh, Kinect vẫn có thể thu đƣợc thông tin độ sâu chi tiết của các bề mặt

chịu nhiều ánh sáng.

Nhƣ vậy là Kinect không đáng tin cậy để sử dụng ngoài trời, mặc dù các thu thập về

việc thu thập thông tin độ sâu rất khả quan tại bức tƣờng hoặc các mặt trơn liên tục nằm

trong bóng râm. Nhóm cũng xem xét hoạt động của cảm biến Kinect vào ban đêm, vì bản

chất Kinect là một camera hồng ngoại nên thu đƣợc những kết quả độ sâu khá tốt ở môi

trƣờng trong nhà.

www.clbrobot.com www.robotgiaoduc.com

Page 34: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 3: Các thƣ viện hỗ trợ 17 SVTH: T.T Sơn - V.X Xăng

Chƣơng 3 – Các thƣ viện hỗ trợ

___________________________________________________________________________

www.clbrobot.com www.robotgiaoduc.com

Page 35: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 3: Các thƣ viện hỗ trợ 18 SVTH: T.T Sơn - V.X Xăng

3.1 APIs hỗ trợ Kinect

Ngay khi mới ra đời, Kinect đã đƣợc quan tâm bởi rất nhiều nhà phát triển phần mềm,

không chỉ trên mảng phát triển game cho Xbox mà còn trên mảng xử lý ảnh ứng dụng trong y

học, robot, mapping … Do đó mà nhiều thƣ viện đƣợc viết cho Kinect ra đời. Cho đến thời

điểm hiện tại, các thƣ viện đáng chú ý là Libfreenect, Code Laboratories Kinect, OpenNI

và Kinect SDK.

Libfreenect:

Libfreenect [7] là thƣ viện đƣợc phát triển bởi OpenKinect, do một cộng đồng

những ngƣời quan tâm đến phần cứng Kinect viết ra và chia sẻ. Cộng đồng

OpenKinect làm việc hoàn toàn tự nguyện và không vì mục đích lợi nhuận, họ phát

triển Libfreenect thành một mã nguồn mở cho các hệ điều hành khác nhau Windows, Linux

và OS X. Hiện tại, Libfreenect đƣợc đóng gói cho việc sử dụng trên Python, C, C++, C#, Java

JNI, Java JNA, Javascript.

Code Laboratories Kinect:

Code Laboratories (CL) [8] là một công ty về phần mềm chuyên hỗ trợ các nhà

phát triển, lập trình viên khai thác các tính năng của các thiết bị xử lý ảnh. Trong số đó Kinect

không phải là ngoại lệ, CL cung cấp cho ngƣời sử dụng những tính năng cơ bản nhất của

Kinect về camera, audio và motor.

OpenNI:

OpenNI (Open Natural Interaction) là môt framework đa nền tảng, đa ngôn ngữ, và nó

định nghĩa giao diện lập trình ứng dụng (API) để viết các ứng dụng dùng Tƣơng tác Tự nhiên.

OpenNI API bao gồm một tập hợp các giao diện để viết các ứng dụng tƣơng tác tự nhiên.

Mục đích chính của OpenNI là tạo nên API tiêu chuẩn cho phép giao tiếp với:

Cảm biến âm thanh và hình ảnh.

Các middleware cảm nhận hình ảnh và âm thanh (các thành phần phần mềm mà phân

tích các dữ liệu âm thanh và hình ảnh đƣợc ghi lại, và hiểu nó). Ví dụ, phần mềm nhận

dữ liệu hình ảnh, chẳng hạn nhƣ một hình ảnh, trả về vị trí của lòng bàn tay của một

bàn tay đƣợc phát hiện trong hình ảnh.

OpenNI API tiêu chuẩn cho phép nhà phát triển ứng dụng tƣơng tác tự nhiên theo dõi

những hình ảnh thực (3D) bằng cách sử dụng các kiểu dữ liệu đƣợc tính toán từ đầu vào của

www.clbrobot.com www.robotgiaoduc.com

Page 36: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 3: Các thƣ viện hỗ trợ 19 SVTH: T.T Sơn - V.X Xăng

một bộ cảm biến (nhƣ hình ảnh toàn thân, biểu diễn vị trí tay, một mảng điểm ảnh trong ảnh

độ sâu). Các ứng dụng có thể đƣợc viết không phụ thuộc vào các nhà cung cấp cảm biến hoặc

middleware.

Kinect SDK:

Vào tháng 6 năm 2011, Microsoft thông báo phát hành phiên bản miễn phí bộ phát triển

phần mềm Kinect (SDK) dành cho Windows. SDK chứa các trình điều khiển tƣơng thích hệ

điều hành Windows 7 cho Kinect. SDK cho phép nhà phát triển xây dựng các ứng dụng

Kinect với C++, C# hoặc Visual Basic trên Microsoft Visual Studio 2010 và bao gồm các đặc

tính:

Stream dữ liệu cảm biến gốc: truy cập đến stream cấp thấp thu đƣợc từ cảm biến độ sâu,

cảm biến màu sắc, và mảng micro bốn phần tử.

Theo dõi cơ thể: khả năng theo dõi skeleton nhiều ngƣời di chuyển trong vùng nhận biết

của Kinect phục vụ cho ứng dụng điều khiển bởi cử chỉ.

Nâng cao khả năng xử lý âm thanh: khả năng xử lý âm thanh bao gồm bộ khử nhiễu và

bộ lọc tiếng vang, hình thành chùm tia để xác định nguồn âm thanh, và tích hợp API

nhận dạng giọng nói của Windows.

Tại thời điểm này, OpenNI API và Kinect SDK là các lựa chọn tối ƣu cho lập trình Kinect

nhờ vào khả năng hỗ trợ mạnh. Mục 3.2 sẽ phân tích và so sánh hai API và chọn lựa API phù

hợp cho đề tài luận văn.

3.2 So sánh Kinect SDK và OpenNI

Sau đây là nhận định về ƣu, khuyết điểm của hai thƣ viện trên:

Ƣu điểm của Kinect SDK:

Hỗ trợ xử lý âm thanh.

Hỗ trợ động cơ điều khiển góc ngẩng.

Skeleton tracking (bám đặc tính cơ thể ngƣời):

o Không cần hiệu chỉnh trƣớc khi bám

o Bao gồm đầu, tay, chân, xƣơng đòn

o Giải quyết tốt với các khớp

Hỗ trợ đa truy xuất các cảm biến của Kinect đồng thời.

Cài đặt đơn giản.

www.clbrobot.com www.robotgiaoduc.com

Page 37: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 3: Các thƣ viện hỗ trợ 20 SVTH: T.T Sơn - V.X Xăng

SDK tạo sự kiện khi một video hoặc depth frame mới xuất hiện.

Nhƣợc điểm của Kinect SDK:

Giấy phép chỉ cho mục đích phi thƣơng mại.

Chỉ theo dõi toàn bộ cơ thể (không có cơ chế theo dõi riêng cho một bộ phận)

Không cung cấp liên kết của các stream hình ảnh màu và độ sâu với nhau mặc dù có

những tính năng sắp xếp các tọa độ cá nhân.

Không hỗ trợ nhận biết cử chỉ.

Theo dõi toàn bộ cơ thể

o Chỉ tính toán vị trí cho các khớp cố định

o Chỉ theo dõi toàn thân, không hỗ trợ phần trên của cơ thể hoặc chỉ hỗ trợ bàn tay.

o CPU tiêu tốn nhiều công suất hơn OpenNI/NITE

Không có hệ thống nhận dạng cử chỉ

Không hỗ trợ cho PrimeSense và bộ cảm biến ASUS WAVI Xtion

Chỉ hỗ trợ cho hệ điều hành Win7 (32bit và 64bit) với đòi hỏi khá cao:

+ Máy tính dual-core, tốc độ 2.66 GHz hoặc nhanh hơn.

+Windows 7 với hỗ trợ của DirectX 9.0 trở lên.

+Ram tối thiểu 2 GB.

+Lập trình trên Visual Studio 2010.

Không hỗ trợ cơ cấu game Unity3D.

Không hỗ trợ tích hợp ghi/phát lại vào ổ cứng.

Không hỗ trợ việc thu ảnh trực tiếp từ IR camera.

SDK tạo sự kiện khi ngƣời sử dụng mới vào khung hình, rời khung hình

Ƣu điểm của PrimeSense OpenNI/NITE:

Cho phép xây dựng các ứng dụng thƣơng mại hóa.

Hỗ trợ framework theo dõi vị trí bàn tay

Hỗ trợ framework nhận diện cử chỉ tay

Có thể tự động liên kết stream ảnh độ sâu với stream ảnh màu.

Skeleton tracking: hỗ trợ bám từng phần cơ thể ngƣời và hand tracking

thông qua liên kết với các middleware. Hơn nữa, tiêu thụ công suất của CPU ít hơn so

với khi sử dụng Kinect SDK.

Theo dõi toàn thân:

www.clbrobot.com www.robotgiaoduc.com

Page 38: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 3: Các thƣ viện hỗ trợ 21 SVTH: T.T Sơn - V.X Xăng

o Tính toán đến việc quay khớp

o Hỗ trợ chế độ chỉ theo dõi tay

o CPU tiêu thụ điện năng ít hơn so với Kinect SDK

Hỗ trợ cảm biến PrimeSense (Kinect) và Xtion ASUS WAVI

Hỗ trợ đa cảm biến

Hỗ trợ Windows (bao gồm cả Vista & XP), Linux và Mac OSX

Đi kèm với mã hỗ trợ đầy đủ cho cơ cấu game Unity3D

Hỗ trợ ghi/phát lại đến/từ ổ cứng

Hỗ trợ truyền video hồng ngoại gốc

Tạo sự kiện khi ngƣời sử dụng mới vào frame, rời frame

Nhƣợc điểm của PrimeSense OpenNI/NITE:

Không hỗ trợ cho âm thanh

Không có hỗ trợ cho động cơ/góc ngẩng

Theo dõi toàn thân:

o Thiếu hỗ trợ quay đầu, tay, bàn chân, xƣơng đòn

o Cần cử chỉ hiệu chỉnh trƣớc khi theo dõi

Không tạo sự kiện mới khi video hoặc frame độ sâu mới khả dụng

Kết luận: Theo kinh nghiệm cá nhân của nhóm, Kinect SDK có lợi thế khi làm việc với

skeleton và âm thanh, trong khi đó OpenNI phù hợp hơn khi làm việc với ảnh màu, đám mây

điểm màu trên nền hệ điều hành khác Windows 7. Khi xử lý cử chỉ, nhóm nhận thấy:

Nếu cảm biến chỉ thu đƣợc phần trên cơ thể hoặc tay, hoặc muốn làm việc với một

framework có sẵn thì nên sử dụng OpenNI/NITE.

Nếu cảm biến có thể thu đƣợc toàn bộ cơ thể thì nên dùng Kinect SDK, tuy nhiên ngƣời

dùng phải tự viết code cho phần nhận diện cử chỉ.

OpenNI cho phép thu bản đồ độ sâu trong giới hạn từ 0.5 mét trở về phía trƣớc Kinect

trong khi Kinect SDK thì giới hạn này là 0.8 mét về phía trƣớc, chất lƣợng bản đồ độ sâu thu

về trên hai thƣ viện là nhƣ nhau. Kinect SDK là thƣ viện mới ra đời đang trong giai đoạn beta

và cũng chƣa có sự hỗ trợ của các thƣ viện xử lý ảnh khác nhƣ Point Cloud. Trong khi đó

OpenNI ra đời trƣớc và gần nhƣ đƣợc tích hợp với thƣ viện xử lý ảnh Point Cloud.

Nói đến tầm nhìn xa hơn thì ta thấy: về tính phổ biến, OpenNI có thể phát triển trên các

nền tảng hệ điều hành khác nhau và nhận đƣợc sự đóng góp của cộng đồng xây dựng mã

www.clbrobot.com www.robotgiaoduc.com

Page 39: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 3: Các thƣ viện hỗ trợ 22 SVTH: T.T Sơn - V.X Xăng

nguồn mở rộng lớn; về chuyện kinh doanh, ta có thể phát triển thành các sản phẩm thƣơng

mại hóa trên thị trƣờng trong rất nhiều lĩnh vực nhƣ robot, y tế, giáo dục, giải trí…

OpenNI Framework là một lớp trừu tƣợng cung cấp giao diện cho cả thiết bị lớp vật lý và

thành phần trung gian. Giao diện lập trình ứng dụng API cho phép nhiều thành phần đăng ký

vào OpenNI Framework. Những thành phần này đƣợc coi là những module và đƣợc sử dụng

để tạo ra dữ liệu cũng nhƣ xử lý dữ liệu. Do đó việc chọn thiết bị phần cứng hay thành phần

trung gian là dễ dàng và linh hoạt.

Hình 3.1: OpenNI, cung cấp giao diện tƣơng tác với các cảm biến và các thành phần trung

gian phân tích dữ liệu từ cảm biến.

Những module hiện đang đƣợc hỗ trợ là:

+ Các module cảm biến:

- Cảm biến 3D.

- Cảm biến màu RGB.

- Camera hồng ngoại IR.

- Thiết bị âm thanh (một microphone hay một dãy các microphone).

+ Các phần trung gian:

www.clbrobot.com www.robotgiaoduc.com

Page 40: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 3: Các thƣ viện hỗ trợ 23 SVTH: T.T Sơn - V.X Xăng

- Thành phần phân tích toàn bộ cơ thể: là một phần mềm xử lý dữ liệu từ cảm biến

và tạo cơ thể liên quan đến thông tin ( thƣờng là cấu trúc dữ liệu mô tả chỗ nối các

khớp, sự định hƣớng, trung tâm khối, ...).

- Thành phần phân tích điểm tay: là một phần mềm xử lý dữ liệu từ cảm biến và tạo

vị trí của điểm trên tay.

- Thành phần phát hiện cử chỉ: là một phần mềm nhận ra cử chỉ đƣợc định nghĩa

trƣớc (ví dụ: vẫy tay) và báo hiệu cho ứng dụng.

- Thành phần phân tích cảnh vật: là phần mềm phân tích ảnh của cảnh vật để tạo ra

những thông tin nhƣ :

Sự phân biệt giữa ảnh chính và ảnh nền.

Sự phối hợp của mặt phẳng sàn nhà.

Sự nhận dạng những ảnh riêng trong cảnh vật.

Kinect SDK hơn OpenNI ở phần hỗ trợ cho xử lý âm thanh, cho phép xây dựng các ứng

dụng điều khiển bằng giọng nói dễ dàng hơn. OpenNI cho phép thu ảnh độ sâu trong phạm vi

0.4 m tính từ cảm biến Kinect ra xa, trong khi khoảng cách ban đầu chỉ là 0.8 m khi sử dụng

Kinect SDK, với chất lƣợng ảnh độ sâu giống nhau từ hai API. Do Kinect SDK đƣợc phát

hành gần đây nên chƣa hỗ trợ Thƣ viện đám mây điểm nhƣ OpenNI. Một điểm quan trọng của

OpenNI là framework đa nền tảng. Ứng dụng OpenNI có thể đƣợc phát triển trong các hệ điều

hành khác nhau và nhận đƣợc đóng góp rất lớn từ cộng đồng mạng.

Để tận dụng tối ƣu sức mạnh của thƣ viện OpenNI ta kết hợp nó cùng thƣ viện xử lý ảnh

trong không gian 3D là Point Cloud (PCL) mà sẽ đƣợc đề cập trong mục 3.3 dƣới đây. Đó

cũng chính là lý do nhóm chọn thƣ viện OpenNI kết hợp với Point Cloud cho đề tài luận văn

này.

3.3 Thƣ viện PCL

Thƣ viện đám mây điểm (PCL) là một dự án mở, độc lập, quy mô lớn nhằm xử lý đám

mây điểm 3D. PCL framework chứa các thuật toán tối ƣu gồm lọc, ƣớc lƣợng đặc tính

(feature), tái tạo bề mặt, ghép mô hình và phân đoạn, liên kết đám mây điểm, so sánh mô hình

và nhận diện đối tƣợng. Thƣ viện này miễn phí cho các mục đích thƣơng mại và nghiên cứu

và đƣợc hỗ trợ tài chính từ Willow Garage, nVidia, Google, Toyota, Trimble, Urban Robotics,

Honda Research Institute, và Sandia Intelligent Systems and Robotics. PCL có thể dùng trên

nhiều platform nhƣ Linux, MacOS, Windows và Android. Phiên bản mới nhất PCL 1.6 phát

www.clbrobot.com www.robotgiaoduc.com

Page 41: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 3: Các thƣ viện hỗ trợ 24 SVTH: T.T Sơn - V.X Xăng

hành ngày 17 tháng 7 năm 2012. Ngoài ra, vì PCL là một dự án mở nên còn có một phiên bản

PCL trunk đƣợc cộng đồng ngƣời sử dụng PCL phát triển và cập nhật hàng ngày.

Hình 3.2: Logo của Thƣ viện đám mây điểm.

Để đơn giản hóa việc phát triển, thƣ viện đƣợc chia ra các thƣ viện nhỏ hơn, có thể đƣợc

biên dịch riêng lẻ:

libpcl_filters – bao gồm các bộ lọc dữ liệu nhƣ downsampling, loại bỏ điểm không

thuộc mô hình ƣớc lƣợng (outlier), xuất ra chỉ số đám mây điểm có đặc tính nhất định,

chiếu đám mây điểm,…

libpcl_features – ƣớc lƣợng 3D feature (đặc tính 3D) nhƣ vector pháp tuyến và độ cong

của bề mặt, ƣớc lƣợng điểm biên, mô tả đặc tính PFH và FPFH, mô tả đặc tính

NARF,…

libpcl_io – thực thi các tác vụ I/O nhƣ ghi/đọc file PCD.

libpcl_segmentation – thực thi xuất lớp, ƣớc lƣợng mô hình mẫu thông qua phƣơng

pháp sample consensus cho các mô hình có tham số (mặt phẳng, hình trụ, hình cầu,

đƣờng thẳng)

libpcl_surface – thực thi các giải thuật tái tạo bề mặt, tạo lƣới, bao lồi, làm trơn…

libpcl_registration – thực thi các thuật toán ghép liên kết đám mây điểm.

libpcl_keypoints – thực thi các phƣơng pháp trích xuất keypoint.

libpcl_range_image – hỗ trợ range image tạo đƣợc từ các đám mây điểm

libpcl_visualization – hỗ trợ hiển thị đám mây điểms dựa trên thƣ viện VTK

Để biên dịch các thành phần của thƣ viện PCL ngƣời dùng cần tải và biên dịch các thƣ viện

phụ thuộc từ bên thứ ba trƣớc đó:

www.clbrobot.com www.robotgiaoduc.com

Page 42: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 3: Các thƣ viện hỗ trợ 25 SVTH: T.T Sơn - V.X Xăng

Eigen, một thƣ viện mã nguồn mở hỗ trợ tính toán đại số tuyến tính, đƣợc sử dụng cho

hầu hết các tính toán trong PCL

FLANN (Fast Library for Approximate Nearest Neighbors) hỗ trợ cho phép tính xác

định k-điểm gần nhất trong không gian.

Boost: con trỏ dùng chung trong hầu hết các module và thuật toán nhằm giảm thiểu sao

chép lại dữ liệu đã có trong hệ thống

VTK (Visualization toolkit) cung cấp hỗ trợ đa nền tảng để render đám mây điểm 3D và

dữ liệu bề mặt 3D, kể cả hiển thị tensor, texture và các phƣơng pháp thể tích.

Qhull thực hiện các thuật toán Quickhull tính toán bao lồi, bao lõm, tính toán thể tích,

diện tích bề mặt.

OpenNI sử dụng để thu thập đám mây điểm.

Qt đƣợc sử dụng để phát triển các ứng dụng có giao diện đồ họa ngƣời dùng (GUI).

www.clbrobot.com www.robotgiaoduc.com

Page 43: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 26 SVTH: T.T Sơn - V.X Xăng

Chƣơng 4 –Tái tạo mô hình 3D

www.clbrobot.com www.robotgiaoduc.com

Page 44: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 27 SVTH: T.T Sơn - V.X Xăng

4.1 Sơ đồ giải thuật

Giải thuật tái tạo mô hình 3D đi qua ba giai đoạn chính: giai đoạn tiền xử lý đám mây

điểm, giai đoạn liên kết các đám mây điểm và giai đoạn cải thiện bề mặt đám mây điểm sau

liên kết. Trong giai đoạn đầu, các đám mây điểm thu thập đƣợc từ Kinect thông qua OpenNI

API sẽ đƣợc lọc nhiễu và vật cản, phân đoạn, phân nhóm. Giai đoạn tiếp theo là ứng dụng giải

thuật ICP (Iterative Closest Point) để liên kết các đám mây điểm với nhau theo thứ tự từng

cặp một. Trong giai đoạn này có thể kết hợp giải thuật SAC-IA (Sample Consensus Intial

Alignment) gồm các bƣớc ƣớc lƣợng vector pháp tuyến bề mặt, ƣớc lƣợng đặc tính của bề

mặt vật thể, để tăng độ chính xác và khả năng hội tụ khi ghép nối các đám mây điểm. Giai

đoạn cuối cùng là giai đoạn tái tạo bề mặt bao gồm lọc outlier tạo ra từ quá trình liên kết đám

mây điểm không hoàn hảo khỏi vật thể, sau đó là làm trơn bề mặt để nâng cao chất lƣợng đám

mây điểm sau khi ghép nối.

Hình 4.1: Sơ đồ giải thuật: Giai đoạn tiền xử lý.

Sử dụng thƣ viện PCL

Sử dụng thƣ viện OpenNI

www.clbrobot.com www.robotgiaoduc.com

Page 45: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 28 SVTH: T.T Sơn - V.X Xăng

Hình 4.2: Sơ đồ giải thuật: giai đoạn liên kết đám mây điểm dùng giải thuật ICP kết hợp (chỉ

mô tả một vòng lặp cho một cặp đám mây điểm).

Hình 4.3: Sơ đồ giải thuật: giai đoạn cải thiện chất lƣợng đám mây điểm sau liên kết

www.clbrobot.com www.robotgiaoduc.com

Page 46: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 29 SVTH: T.T Sơn - V.X Xăng

4.2 Cấu trúc của dữ liệu đám mây điểm

Một đám mây điểm là một tập hợp của các đỉnh trong hệ trục tọa độ không gian 3 chiều.

Các đỉnh này thƣờng đƣợc định nghĩa bởi các tọa độ X,Y,Z và thƣờng đƣợc sử dụng để biểu

diễn bề mặt ngoài của một vật thể.

Hình 4.4: Các ví dụ về đám mây điểm

Các đám mây điểm có thể đƣợc thu nhận đƣợc từ các thiết bị cảm biến nhƣ camera hình

ảnh, các máy scan 3D, hay các camera tính toán khoảng cách dựa trên thời gian truyền của tia

sáng, hoặc có thể tạo ra từ các chƣơng trình tổng hợp trên máy tính. Thƣ viện đám mây điểm

PCL đã có hỗ trợ sẵn các giao tiếp 3D dựa trên OpenNI, và do đó có thể thu thập và xử lý dữ

liệu từ các thiết bị nhƣ là camera 3D Prime Sensor, Kinect Xbox 360 của Microsoft, hay là

cảm biến XTion PRO của Asus. Các thiết bị này đo lƣờng một cách tự động một số lƣợng lớn

các điểm trên bề mặt của vật thể, và dữ liệu đầu ra của chúng thƣờng là các đám mây điểm.

Đám mây điểm đặc trƣng cho tập hợp các điểm mà thiết bị đo đƣợc.

Là kết quả của một quả trình scan 3D, các đám mây điểm đƣợc sử dụng cho nhiều mục

đích khác nhau, bao gồm việc tạo ra mô hình CAD 3D cho các bộ phận cần sản xuất, kiểm

định chất lƣợng, và nhiều ứng dụng khác nhƣ hoạt hình, hiển thị hình ảnh, vẽ phối cảnh và

hàng loạt ứng dụng theo yêu cầu của ngƣời sử dụng.

Một ứng dụng mà các đám mây điểm đƣợc sử dụng trực tiếp là trong công nghiệp đo lƣờng

hay kiểm định. Đám mây điểm của một chi tiết cần sản xuất có thể đƣợc liên kết với mô hình

CAD (hay thậm chí là với đám mây điểm khác), và đƣợc sử dụng để so sánh để kiểm tra điểm

khác biệt. Những sự sai khác này có thể đƣợc hiển thị dƣới dạng bản đồ màu sắc, từ đó cho ta

chỉ số về độ sai lệch giữa sản phẩm chế tạo và mô hình CAD. Các kích thƣớc hình học và

dung sai cũng có thể đƣợc tính ra trực tiếp từ đám mây điểm.

www.clbrobot.com www.robotgiaoduc.com

Page 47: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 30 SVTH: T.T Sơn - V.X Xăng

Các đám mây điểm cũng có thể đƣợc sử dụng để đặc trƣng cho dữ liệu thể tích đƣợc sử

dụng ví dụ nhƣ trong ảnh y tế. Trong hệ thống thông tin địa lý, các đám mây điểm là một

trong những nguồn để tạo ra mô hình số hóa độ cao của địa hình. Chúng cũng đƣợc sử dụng

để tạo ra mô hình 3D của môi trƣờng đô thị.

Trong khi các đám mây điểm có thể đƣợc sử dụng trực tiếp để phối cảnh và kiểm định,

thƣờng thì chính các đám mây điểm lại không đƣợc sử dụng trực tiếp trong các ứng dụng 3D,

và do đó thƣờng đƣợc chuyển đổi sang dạng mô hình lƣới đa giác hay lƣới tam giác, mô hình

bề mặt NURBS, hay mô hình CAD thông qua một quá trình xử lý đƣợc gọi chung là tái tạo bề

mặt.

Biểu diễn một đám mây điểm

Thƣ viện đám mây điểm PCL đƣợc xây dựng với nhiều tiền định nghĩa về các loại điểm, từ

cấu trúc dữ liệu đơn giản XYZ (pcl::PointXYZ), XYZI (pcl::PointXYZI), XYZRGB

(pcl::PointXYZRGB) cho đến các biểu đồ có kích thƣớc phức tạp hơn nhƣ XYZ-Normals

(pcl::PointXYZNormal), PFH (biểu đồ đặc tính điểm - Point Feature Histograms), FPFH

(biểu đồ đặc tính điểm thu gọn – Fast Point Feature Histogram). Loại đơn giản nhất là

PointXYZ, bao gồm 3 kích thƣớc đƣợc lƣu ở dạng dấu chấm động (float), và theo sau là một

dấu chấm động mở rộng cho bộ đệm (padding). Trong trƣờng hợp ngƣời dùng tìm kiếm biên

dịch PCL trên một nền tảng nhúng, thành phần theo sau có thể tạo nên sự lãng phí về bộ nhớ.

Do đó, một cấu trúc PointXYZ đơn giản hơn không có thành phần chấm động cuối có thể

đƣợc sử dụng thay thế.

struct PointXYZ

{

float x,y,z;

float padding;

};

Bên cạnh đó, để biểu diễn các điểm màu nhƣ trong thế giới thực, một thành phần chỉ định

màu dạng dấu chấm động đƣợc thêm vào kiểu PointXYZ, tạo thành kiểu đám mây điểm mới

PointXYZRGB hoặc PointXYZRGBA. Dƣới đây là một ví dụ về khai báo cấu trúc

PointXYZRGBA trong C++:

www.clbrobot.com www.robotgiaoduc.com

Page 48: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 31 SVTH: T.T Sơn - V.X Xăng

union

{

float data[4];

struct

{

float x,y,z;

};

};

union

{

struct

{

uint32_t rgba;

};

float data_c[4];

};

Các đám mây điểm có thể đƣợc lƣu trữ trong ở đĩa dƣới định dạng PCD của thƣ viện PCL.

Ta cũng có thể chuyển đổi sang các định dạng khác nhƣ PLY đƣợc sử dụng trong MeshLab

hay AutoCAD. Dữ liệu có là ascii hoặc binary. Dƣới đây là file dạng ASCII của một đám mây

điểm có lƣu thông tin màu RGB.

___________________________________________________________________________

# .PCD v0.7 – Point Cloud Data file format

VERSION 0.7

FIELDS x y z rgb

SIZE 4 4 4 4

TYPE F F F F

COUNT 1 1 1 1

WIDTH 55576

HEIGHT 1

VIEWPOINT 0 0 0 0 1 0 0

POINTS 55576

DATA ascii

www.clbrobot.com www.robotgiaoduc.com

Page 49: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 32 SVTH: T.T Sơn - V.X Xăng

-0.7019428 -0.48377141 1.245 1.668957e-038

-0.70181906 -0.48532575 1.2490001 1.6597732e-038

-0.70504004 -0.48921141 1.2590001 1.6782476e-038

0.077104762 -0.23306666 0.92000002 1.0513589e-038

0.078857146 -0.23306666 0.92000002 1.0701554e-038

0.034590479 -0.22829716 0.90800005 1.4016599e-038

0.036320001 -0.22829716 0.90800005 1.4567616e-038

0.038133334 -0.2288 0.91000003 1.4292113e-038

0.039866667 -0.2288 0.91000003 1.4016969e-038

0.0416 -0.2288 0.91000003 1.4752013e-038

______________________________________________________________

Trong một số trƣờng hợp, thay vì các thông tin về màu sắc, mỗi điểm có thể lƣu giữ một

giá trị cƣờng độ, một khoảng cách hay pháp tuyến…

Hình 4.5: Ví dụ về đám mây điểm PointXYZRGB (trái) và PointXYZ (phải) đƣợc hình dung

dƣới dạng màu xanh

4.3 Giai đoạn tiền xử lý đám mây điểm

4.3.1 Lọc dữ liệu

Việc thu nhận các đám mây điểm từ Kinect đối mặt với nhiều thách thức, trong số đó có

thể kể đến nhƣ là lƣợng dữ liệu rất lớn có thể lên đến 640 × 480 điểm đƣợc lấy từ bản đồ

phân giải độ sâu của cảm biến CMOS bên trong Kinect, nhiều đối tƣợng ngoại vi có đặc

tính hấp thụ ánh sáng hồng ngoại chiếu ra từ projector của Kinect làm giảm độ tin cậy của

thông tin độ sâu thu đƣợc, sự phân bố mật độ không đều và nhiễu từ các nguồn sáng hồng

ngoại khác ở môi trƣờng xung quanh.

www.clbrobot.com www.robotgiaoduc.com

Page 50: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 33 SVTH: T.T Sơn - V.X Xăng

Để thực hiện lọc dữ liệu, ta sử dụng thƣ viện pcl_filters, cho phép sửa đổi các đám mây

điểm hay trích lọc các thuộc tính của các điểm. Một đám mây điểm có thể bị lọc một phần

sử dụng các điều kiện loại bỏ, loại bỏ các phần tử nhiễu sử dụng phƣơng pháp thống kê,

lọc màu, hay sử dụng bộ lọc không gian. Ta cũng có thể lấy mẫu đám mây điểm sử dụng

bộ lọc lƣới, bộ lọc lƣới xấp xỉ hay chỉnh sửa dữ liệu thông qua bộ lọc tƣơng phản (contrast

filter) hay bộ lọc làm trơn (bilateral filter).

4.3.1.1 Bộ lọc không gian

Mục đích của chúng ta trong bƣớc xử lý này là loại bỏ các đối tƣợng thừa nằm trƣớc

hay sau vật thể chính (nếu có thể), và khi đó, bộ lọc không gian(passthough filter) sẽ

đƣợc sử dụng. Bộ lọc không gian cho các điểm trong đám mây điểm ban đầu đi qua dựa

trên những ràng buộc đối với một thành phần xác định của trƣờng dữ liệu (point type),

mặc định là là theo hƣớng của trục z, là trục vuông góc với mặt phẳng tham chiếu của

Kinect. Bộ lọc tiến hành lặp một lần trên đám mây điểm, tự động loại bỏ các điểm

không xác định và các điểm nằm ngoài vùng giới hạn đƣợc xác định bởi

setFilterLimits(), và chỉ áp dụng lọc đối với miền của trƣờng dữ liệu đƣơc xác định bởi

hàm setFilterFieldName() đƣợc định nghĩa trong class pcl::PassThrough. Có thể thay

đổi hƣớng của bộ lọc không gian sang trƣờng dữ liệu tham chiếu theo trục x hoặc trục y.

Tác dụng của bộ lọc không gian rất mạnh, nó vừa giúp giảm một số lƣợng đáng kể tập

hợp điểm trong đám mây ở những vùng mà chúng ta không quan tâm, vừa giúp cho

chúng ta kiểm soát quá trình phân đoạn và phân nhóm nhằm đảm bảo chỉ duy nhất đối

tƣợng cần tái tạo mô hình 3D đƣợc phát hiện. Việc sử dụng bộ lọc không gian một cách

hợp lý, gần nhƣ chúng ta có thể chọn lựa một phần đám mây điểm bất kì trong toàn bộ

đám mây điểm thu đƣợc.

Hình 4.6: Ảnh hƣởng của bộ lọc không gian lên đám mây ở bên trái. Vùng không gian

theo trục z đƣợc giữ lại trong khoảng từ 0.3 đến 1.1m.

www.clbrobot.com www.robotgiaoduc.com

Page 51: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 34 SVTH: T.T Sơn - V.X Xăng

Ở hình 4.6 đã sử dụng bộ lọc không gian theo trục z, kết quả sau khi lọc vẫn còn một

phần của bức tƣờng mà ta không mong muốn giữ lại. Để có thể loại bỏ tiếp những phần

không quan tâm trong đám mây điểm chúng ta có thể linh hoạt sử dụng tiếp bộ lọc

không gian theo trục x và cả trục y bằng cách gán giá trị phù hợp cho hàm

setFilterLimits(). Hình 4.7 là đám mây điểm sau khi tiếp tục qua bộ lọc không gian theo

trục x.

Hình 4.7: Ảnh hƣởng của bộ lọc không gian lên đám mây ở bên trái. Vùng không gian

theo trục x đƣợc giữ lại trong khoảng từ -0.5 đến 1m.

4.3.1.2 Bộ lọc lƣới

Một bộ lọc khác đƣợc đề cập đến trong mục này là bộ lọc lƣới (VoxelGrid). Sau khi

áp dụng bộ lọc không gian, số điểm còn lại của đám mây điểm vẫn còn rất lớn, đó là

một thách thức cho thời gian xử lý các thuật toán phía sau, do đó việc lấy mẫu

downsampling là việc làm cần thiết để giảm thời xử lý và giảm độ phức tạp của các

thuật toán và các vấn đề nảy sinh sau này, khi mà rất nhiều đám mây điểm sẽ đƣợc sử

dụng để ghép nối với nhau tạo thành một đám mây điểm hoàn chỉnh.

Việc tạo ra lƣới các pixel thể tích (volumetric pixel – voxel) là loại kỹ thuật có thể

đƣợc sử dụng để chia không gian 3 chiều thành những khối lập phƣơng 3D có kích

thƣớc nhỏ hay những khối hộp 3D chữ nhật nếu ta sử dụng kích thƣớc thay đổi cho các

trục x, y và z. Ý tƣởng chính của bộ lọc lƣới là nếu số lƣợng các điểm ở bên trong một

khối lập phƣơng có kích thƣớc xác định vƣợt quá một ngƣỡng nào đó thì toàn bộ khối

lập phƣơng sẽ đƣợc rút gọn và đƣợc thay thế thành 1 điểm nằm ở trọng tâm của các

điểm, không phải là tâm của pixel thể tích. Cách tiếp cận này cần thời gian xử lý lâu

hơn so với khi thay thế xấp xỉ các điểm bởi tâm của pixel thể tích, nhƣng nó sẽ giúp cho

việc biểu diễn bề mặt đƣợc chính xác hơn.

www.clbrobot.com www.robotgiaoduc.com

Page 52: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 35 SVTH: T.T Sơn - V.X Xăng

Tùy thuộc vào mật độ của các điểm trong đám mây điểm, ta thiết lập kích thƣớc

“leaf size” xấp xỉ cho các pixel thể tích (là chiều dài cạnh của khối lập phƣơng). Khi

kích thƣớc của “leaf size” càng lớn thì mật độ điểm còn lại sau khi lọc sẽ càng nhỏ. Ở

hình 4.8 dƣới đây, kích thƣớc “leaf size” là 0.01 (m). Hình ở trên là bản màu của đám

mây điểm trƣớc và sau khi áp dụng bộ lọc lƣới, còn hình dƣới là kiểu đồng nhất (không

màu) của dữ liệu.

Hình 4.8: Đám mây điểm trƣớc và sau khi áp dụng bộ lọc lƣới với leaf size là 0.005

4.3.2 Phân đoạn và phân nhóm vật thể

Nội dung phần này sẽ giới thiệu quá trình phân đoạn và phân nhóm các điểm trong đám

mây điểm. Các khái niệm là hơi tƣơng tự và trong một số trƣờng hợp chúng có thể đƣợc sử

dụng để thay thế cho nhau. Trong nội dung của luận văn, mục đích chính của chúng có lúc

tƣơng tự nhau, có lúc lại hỗ trợ cho nhau và đƣợc thực hiện hài hòa cùng nhau trong một

cấu trúc nhằm giảm thiểu các tài nguyên tính toán cần thiết bởi các giải thuật xử lý tiếp

theo.

4.3.2.1 Phân đoạn

Thƣ viện pcl_sample_consensus cung cấp cho ta các phƣơng pháp đồng nhất mẫu

nhƣ là RANSAC với các mô hình là đƣờng thẳng, mặt phẳng, mặt trụ và mặt cầu.

Chúng có thể đƣợc sử dụng kết hợp với nhau để dò tìm các mô hình đặc biệt và các

thông số của chúng trong đám mây điểm.

Mô hình mặt phẳng thƣờng đƣợc áp dụng cho các nhiệm vụ dò tìm các bề mặt thông

thƣờng trong nhà nhƣ là tƣờng, sàn nhà, hay mặt bàn… Các mô hình khác có thể đƣợc

sử dụng để dò tìm và phân đoạn đối tƣợng với các cấu trúc hình học thông thƣờng (ví

dụ, tìm một mặt trụ để khớp với một chiếc ly hình trụ).

www.clbrobot.com www.robotgiaoduc.com

Page 53: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 36 SVTH: T.T Sơn - V.X Xăng

Trong khuôn khổ luận văn, nhóm đề cập đến phân đoạn theo cấu trúc mặt phẳng vì

nó chiếm một số lƣợng lớn các điểm trong đám mây điểm 𝒫. Khi các đối tƣợng không

cần thiết ở phía sau của vật thể chính đã đƣợc loại bỏ, mặt phẳng sàn nhà vẫn còn nằm

lẫn phía dƣới của vật thể. Dựa trên sự phân đoạn này, ta có thể dễ dàng phân tách mặt

phẳng này ra khỏi đám mây điểm 𝒫∗ để thu đƣợc thành phần của đám mây điểm chứa

vật thể chính. Cần lƣu ý trong quá trình sử dụng bộ lọc không gian ở phần trƣớc, phải

đảm bảo mặt phẳng phía dƣới đối tƣợng chúng ta quan tâm là mặt phẳng lớn nhất có

trong đám mây điểm, đề phòng trƣờng hợp thuật toán phân đoạn nhầm lẫn ngẫu nhiên

một mặt phẳng nào khác xung quanh đối tƣợng (ví dụ nhƣ bức tƣờng) và loại bỏ nhầm

mặt phẳng đó thay vì mặt phẳng phía dƣới đối tƣợng chúng ta đang quan tâm.

Hình 4.9: Đám mây điểm đƣợc phân đoạn và phân nhóm thành nhiều vật thể khác nhau.

Thuật toán RANSAC để dò tìm mặt phẳng [9]

RANSAC là từ viết tắt của "RANdom SAmple Consensus", là phƣơng pháp lặp để

ƣớc lƣợng các thông số của một mô hình toán học từ tập hợp các dữ liệu quan sát

đƣợc mà chúng có chứa giá trị ngoại lai. Đó là phƣơng pháp tất định hiểu theo nghĩa là

nó tạo ra một kết quả hợp lý với một xác suất nhất định, xác suất này tăng lên khi mà số

vòng lặp cho phép càng lớn. Thuật toán này đƣợc giới thiệu lần đầu tiên bởi Fischler và

Bolles vào năm 1981. Hình 4.10 dƣới đây mô tả trực quan thuật toán 2D RANSAC.

www.clbrobot.com www.robotgiaoduc.com

Page 54: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 37 SVTH: T.T Sơn - V.X Xăng

Hình 4.10: Biểu diễn thuật toán 2D RANSAC, bên trái: một tập dữ liệu ngoại lai trong

đó mô hình đƣợc một đƣờng thẳng; bên phải: xác định đƣờng thẳng với RANSAC, các

điểm ngoại lai không ảnh hƣởng đến kết quả

Thuật toán này cần 4 dữ liệu đầu vào đó là:

Đám mây điểm 3D (𝒫).

Ngƣỡng sai số về khoảng cách 𝑑𝑡 giữa mặt phẳng đƣợc chọn và những điểm khác

trong đám mây điểm. Giá trị của nó liên quan đến độ chính xác của đám mây

điểm thu đƣợc từ máy đo.

Ω𝑓 là số lƣợng tối đa có thể có của các điểm thuộc cùng một mặt phẳng. Nó đƣợc

rút ra từ mật độ các điểm và mặt phẳng mặt phẳng gốc tối đa có thể dự đoán đƣợc.

Xác suất 𝛼 là xác suất tối thiểu của việc tìm kiếm ít nhất đƣợc một kết quả tốt từ

tập N kết quả thu đƣợc. 𝛼 thƣờng có giá trị giữa 0.90 và 0.99.

Vì mô hình tìm đƣợc biểu diễn một mặt phẳng, và vì qua 3 điểm không thẳng hàng ta

định nghĩa đƣợc một mặt phẳng, thuật toán dò sử dụng các bƣớc sau đây:

Lựa chọn một cách ngẫu nhiên 3 điểm không thẳng hàng 𝑝𝑖 , 𝑝𝑗 , 𝑝𝑘 từ đám mây

điểm 𝒫,

Tính toán mô hình mặt phẳng từ 3 điểm đó 𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑 = 0

Tính khoảng cách từ tất cả các điểm 𝑝 ∈ 𝒫 đến mặt phẳng 𝑎, 𝑏, 𝑐, 𝑑 ở trên,

Đếm số lƣợng các điểm 𝑝∗ ∈ 𝒫 mà khoảng cách từ điểm đó đến mô hình mặt

phẳng nằm trong khoảng 0≤ 𝑑 ≤ 𝑑𝑡 .

Mọi tập hợp các điểm 𝑝∗ đƣợc lƣu lại, và các bƣớc ở trên đƣợc lặp lại 𝑘 lần, với k có

thể ƣớc lƣợng ví dụ nhƣ sau:

www.clbrobot.com www.robotgiaoduc.com

Page 55: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 38 SVTH: T.T Sơn - V.X Xăng

𝑘 =log 1−𝛼

log 1− 1−𝜖 𝑠 , (4.1)

Trong đó, 𝜖 là xác suất chọn một mẫu tạo ra một ƣớc lƣợng xấu (ví dụ nhƣ các điểm

ngoại lai), đánh giá tỷ số giữa Ω𝑓 và tổng số điểm Ω trong đám mây điểm. Xem thêm

trong phần phụ lục A.

Hình 4.11: Các Đám mây điểm trƣớc và sau quá trình phân đoạn. Những mảnh vỡ từ

đám mây điểm ban đầu trở thành nhiễu của đám mây điểm mới.

Kết quả của quá trình phân đoạn đƣợc dẫn chứng trong các đám mây điểm có màu

(trên) và đơn sắc (dƣới) ở hình 4.11 trên đây. Mặt phẳng sàn đƣợc loại bỏ ra khỏi đám

mây điểm ban đầu 𝒫. Tuy nhiên, một số mảnh vỡ vẫn còn sót lại trong đám mây điểm

kết quả 𝒫∗, bởi vì chúng không thuộc mặt phẳng, có thể nguyên nhân đơn giản nhất là

vì mặt phẳng phía dƣới vật thể là gồ ghề gây nên sai số trong quá trình Kinect thu thập

thông tin độ sâu, hoặc cũng có thể do khoảng cách lấy ngƣỡng 𝑑𝑡 đƣợc chọn quá chặt

chẽ. Đây đƣợc xem là nhiễu trong đám mây điểm 𝒫∗, để ƣớc lƣợng những mảnh vỡ

(nhiễu) này, quá trình phân nhóm nên đƣợc thực hiện sau quá trình phân đoạn.

www.clbrobot.com www.robotgiaoduc.com

Page 56: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 39 SVTH: T.T Sơn - V.X Xăng

4.3.2.2 Phân nhóm

Phân nhóm là bƣớc cuối cùng trong gia đoạn tiền xử lý đám mây điểm. Đây là một

bƣớc cần thiết để có thể ƣớc lƣợng những mảnh vỡ (nhiễu) còn sót lại sau quá trình

phân đoạn.

Trong trƣờng hợp tổng quát, một đám mây điểm không có cấu trúc 𝒫 (các đám mây

điểm không có cấu trúc là những đám mây điểm đƣợc lƣu dƣới dạng file PCD thành

một mảng dài các phần tử, trong khi các đám mây điểm có cấu trúc thì các phần tử đƣợc

lƣu dƣới dạng ma trận) là sự kết hợp của nhiều đối tƣợng chính nằm trên cùng một mặt

phẳng. Sau quá trình phân đoạn, mặt phẳng bị bỏ đi, nhƣng phần còn lại 𝒫∗ của đám

mây điểm ban đầu vẫn còn là sự trộn lẫn của các đối trƣợng trên và nhiễu sinh ra. Do

đó, cần có một phƣơng pháp phân nhóm để chia 𝒫∗ thành các phần nhỏ hơn, từ đó mọi

đối tƣợng đều có thể đƣợc xử lý thông qua các quá trình thích hợp.

Hình 4.12: Một ví dụ về kết quả phân nhóm Euclide

Trƣớc tiên, hệ thống cần phải hiểu một nhóm điểm đối tƣợng là gì và sự khác biệt

giữa nó với các nhóm điểm khác là gì. Hiểu theo nghĩa toán học, một nhóm đƣợc định

nghĩa nhƣ sau:

Nhóm điểm 𝒪𝑖 = 𝑝𝑖 ∈ 𝒫 là khác biệt với nhóm điểm 𝒪𝑗 = 𝑝𝑗 ∈ 𝒫 nếu:

min 𝑝𝑖 − 𝑝𝑗 2= 𝑑𝑡ℎ (4.2)

với 𝑑𝑡ℎ là khoảng cách ngƣỡng tối đa. Phƣơng trình trên chỉ ra rằng nếu khoảng cách tối

thiểu giữa tập các điểm 𝑝𝑖 ∈ 𝒫 với một tập các điểm khác 𝑝𝑗 ∈ 𝒫 lớn hơn một giá trị

cho trƣớc, thì các điểm 𝑝𝑖 đƣợc xác định là thuộc nhóm điểm 𝒪𝑖 và các điểm còn lại 𝑝𝑗

thuộc nhóm điểm khác là 𝒪𝑗 . Từ nhận định thực tế ở trên, ta thấy điều quan trọng là phải

có một ý niệm là làm cách nào để có thể ƣớc lƣợng khoảng cách tối thiểu giữa hai nhóm

điểm. Một giải pháp là sử dụng truy vấn xấp xỉ các điểm lân cận gần nhất thông qua

biểu diễn kd-tree.

www.clbrobot.com www.robotgiaoduc.com

Page 57: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 40 SVTH: T.T Sơn - V.X Xăng

Do đó các bƣớc của thuật toán cần đƣợc xem xét nhƣ sau:

1. Tạo ra biểu diễn kd-tree cho tập dữ liệu đám mây điểm đầu vào 𝒫;

2. Thiết lập một danh sách trống 𝒞 của các nhóm điểm, và một hàng đợi các điểm

cần đƣợc kiểm tra 𝒬;

3. Sau đó với mọi điểm 𝑝𝑖 ∈ 𝒫, thực hiện các bƣớc sau:

o Thêm 𝑝𝑖 vào hàng đợi hiện tại 𝒬;

o Với mọi điểm 𝑝𝑖 ∈ 𝒬, tiến hành:

Tìm kiếm tập 𝒫𝑖𝑘 là tập các điểm lân cận của 𝑝𝑖 trong một mặt cầu có bán

kính 𝑟 < 𝑑𝑡ℎ ;

Với mỗi lân cận 𝑝𝑖𝑘 ∈ 𝒫𝑖

𝑘 , kiểm tra nếu điểm đó đã đƣợc xử lý rồi, và nếu

chƣa thì thêm nó vào trong 𝒬;

o Khi danh sách của tất cả các điểm trong 𝒬 đã đƣợc xử lý, thêm 𝒬 vào trong

danh sách nhóm 𝒞, và thiết lập lại cho 𝒬 thành danh sách rỗng.

4. Thuật toán ngừng lại khi tất cả các điểm 𝑝𝑖 ∈ 𝒫 đã đƣợc xử lý và trở thành thành

phần của danh sách các nhóm điểm 𝒞.

Áp dụng lên tập dữ liệu đám mây điểm còn lại sau khi đã phân đoạn, thuật toán xây

dựng một tập hợp các nhóm đối tƣợng Euclide riêng biệt nhƣ ở hình 4.12. Để đảm bảo

quá trình phân nhóm chỉ chọn lại những đối tƣợng mong muốn, ta nên linh động định

nghĩa số điểm tối thiểu và tối da của một cluster, đây chính là cách đơn giản nhất để có

thể loại bỏ các mảnh vỡ (nhiễu) sinh ra từ quá trình phân đoạn.

www.clbrobot.com www.robotgiaoduc.com

Page 58: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 41 SVTH: T.T Sơn - V.X Xăng

Hình 4.13: Các đám mây điểm trƣớc khi phân nhóm và sau khi xử lý phân nhóm. Các

mẫu nhỏ (nhiễu) đã bị biến mất khỏi còn đối tƣợng chính chúng ta quan tâm thì đƣợc

giữ lại.

Trở lại với đám mây điểm sau khi phân đoạn ở phần trên. Ta thấy có một lƣợng nhỏ

các điểm tách ra khỏi đối tƣợng và tạo thành một nhóm riêng biệt. Áp dụng quá trình xử

lý phân nhóm cho đám mây điểm này với việc chọn số điểm min và max của cluster phù

hợp, phần chính của đối tƣợng có thể đƣợc tách ra thể hiện cả trong đám mây điểm có

màu (trên) và đơn sắc (dƣới) nhƣ trong hình 4.13 trên đây. Sau bƣớc phân nhóm đối

tƣợng, chúng ta đã hoàn thành việc chuẩn bị những đám mây điểm tốt nhất cho các

thuật toán ghép nối đám mây điểm ở phần sau.

4.4 Giai đoạn liên kết đám mây điểm

Vấn đề sắp xếp liên tục các đám mây điểm khác nhau vào một mô hình hoàn chỉnh gọi là

quá trình liên kết đám mấy điểm, thƣờng đƣợc biết đến với thuật ngữ REGISTRATION.

Mục tiêu của nó là tìm ra vị trí tƣơng đối của các đám mây điểm thu đƣợc từ các góc nhìn

khác nhau và định hƣớng chúng lại chung trong một hệ trục tọa độ toàn cục, và nhƣ vậy, các

khu vực giao nhau của chúng sẽ chồng lên nhau một cách hoàn hảo, đó chính là ý tƣởng cơ sở

của việc tái tạo mô hình 3D của vật thể. Để hiện thực hóa ý tƣởng đó trong luận văn này,

nhóm sẽ sử dụng giải thuật chính là giải thuật lặp điểm gần nhất - ICP (Iterative Closest

Point) kết hợp với giải thuật bổ trợ là giải thuật SAC-IA (SAmple Consensus Intial

Alignment) một cách hài hòa bằng cách quan sát chỉ số Euclidian Fitness score nhằm tạo ra

một phƣơng pháp ghép nối hiệu quả, thoả mãn các tiêu chí nhƣ chất lƣợng ghép nối tốt, sai số

ghép nối thấp, tối thiểu thời gian thực thi thuật toán và quan trọng nhất là tái tạo hoàn chỉnh

mô hình 3D của vật thể.

www.clbrobot.com www.robotgiaoduc.com

Page 59: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 42 SVTH: T.T Sơn - V.X Xăng

4.4.1 Giải thuật ICP

Giải thuật ICP là giải thuật xử lý khá nổi tiếng về hiệu chỉnh hai đám mây điểm về cùng

một định hƣớng bằng cách cực tiểu khoảng cách Euclide giữa chúng, đƣợc mô tả lần đầu

bởi Paul J. Besl và Neil D. McKay [10]. Thuật toán tìm những cặp điểm 3D trong đám

mây điểm nguồn và đích, định nghĩa chúng là tƣơng ứng nếu khoảng cách của chúng nhỏ

hơn một khoảng cách nhất định. Sau đó ICP ƣớc lƣợng một phép biến đổi để cực tiểu

khoảng cách giữa chúng và lặp đến khi nào sự khác biệt giữa những lần biến đổi liên tiếp

là nhỏ hơn một giới hạn đƣợc định nghĩa trƣớc hoặc đến khi số vòng lặp giới hạn cho trƣớc

đạt giá trị cực đại.

Cơ sở toán học của giải thuật ICP đƣợc trình bày chi tiết ở tài liệu tham khảo[10]. Ở đây

ta sẽ mô tả các bƣớc của giải thuật, với 𝓠 là ký hiệu của đám mây điểm chuẩn bị đƣợc

ghép nối và di chuyển đến vị trí của một đám mây điểm tĩnh 𝓟:

1. Với tất cả các điểm 𝑞 ∈ 𝒬, tìm điểm lân cận gần nhất 𝑝 ∈ 𝒫.

2. Tìm phép biến đổi cứng, một phép quay trực giao 𝑹 và một phép tịnh tiến 𝒕 để tối

thiểu hóa bình phƣơng khoảng cách giữa các cặp điểm lân cận (liệt kê theo 𝑖):

min𝑹,𝒕 𝑅𝑞𝑖 + 𝑡 − 𝑝𝑖 2

𝑖 (4.3)

3. Áp dụng phép biến đổi cho 𝒬.

4. Lặp lại cho đến khi thuật toán hội tụ hoặc đến khi đạt đƣợc kết quả mong muốn.

Giải thuật có một số điều kiện để kết thúc:

Số vòng lặp tiến đến số vòng lặp tối đa mà ngƣời sử dụng đặt trƣớc (thông qua

setMaximumIterations).

Sự sai lệch (epsilon) giữa phép biến đổi trƣớc và phép biến đổi ƣớc lƣợng hiện tại

nhỏ hơn giá trị do ngƣời dùng định trƣớc (thông qua setTransformationEpsilon).

Tổng của bình phƣơng sai số Euclide nhỏ hơn ngƣỡng do ngƣời sử dụng quy định

(thông qua setEuclideFitnessEpsilon).

Một tiêu chí đánh giá phƣơng pháp ghép nối ICP là chỉ số Euclidian fitness score (là

tổng bình phƣơng khoảng cách từ nguồn đến mục tiêu) từ hai tập các điểm tƣơng đồng

(khoảng cách giữa các điểm nguồn và mục tiêu). Một cách tổng quát, hai đám mây điểm

đƣợc ghép nối hoàn hảo khi chỉ số trùng khớp tiến đến 0. Quan sát chỉ số Euclidian chính

là chìa khóa của phƣơng pháp ICP kết hợp nhằm đảm bảo cho kết quả ghép nối có chất

lƣợng tốt sẽ đƣợc đề cập ở phần tiếp theo.

www.clbrobot.com www.robotgiaoduc.com

Page 60: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 43 SVTH: T.T Sơn - V.X Xăng

Hình 4.14: Kết quả ghép nối hai đám mây điểm dùng ICP.

Hình 4.14 , phía bên trái là hai đám mây điểm thu đƣợc từ hai góc nhìn cách nhau khảng

20 độ, có diện tích trùng lặp tƣơng đối đủ để thuật toán ICP cho ra kết quả ghép nối chấp

nhận đƣợc, phía phải là kết quả đám mây điểm sau ghép nối, chỉ số Euclidian fitness score

trong trƣờng hợp này bằng 0.00024792. Hình 4.15 ở dƣới cũng thể hiện kết quả ghép nối

ICP của hai đám mây điểm khác, có góc lệch lớn hơn nên diện tích trùng lặp giữa hai đám

mây điểm giảm đi, lúc này chỉ số Euclidian fitness score bằng 0.000783823, có giảm hơn

so với trƣờng hợp trên, nhƣng vẫn đủ nhỏ để thỏa mãn yêu cầu về chỉ số trùng khớp cho

phép.

www.clbrobot.com www.robotgiaoduc.com

Page 61: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 44 SVTH: T.T Sơn - V.X Xăng

Hình 4.15: Kết quả ghép nối hai đám mây điểm dùng ICP khi góc lệch hai đám mây

điểm gần bằng 30 độ.

Theo dõi các kết quả ghép nối đám mây điểm ở trên ta thấy, khi góc lệch giữa hai đám

mây điểm càng lớn thì chỉ số Euclidian fitness score càng nhỏ, tƣơng ứng với độ chính xác

ghép nối càng giảm. Sẽ tới một lúc nào đó, khi hai đám mây điểm thu đƣợc có sự khác biệt

định hƣớng trong không gian quá lớn, lúc này thuật toán ICP sẽ xẩy ra hiện tƣợng hội tụ về

vùng cực tiểu cục bộ, và vì vậy có thể đƣa ra kết quả ghép nối không tốt cho dù số vòng

lặp đƣợc tăng lên đi chăng nữa. Hình 4.16 dƣới đây thể hiện cho trƣờng hợp ICP hội tụ về

vùng cục bộ, chỉ số Euclidian fitness score giảm mạnh và kết quả ghép nối hầu nhƣ là

không chính xác.

www.clbrobot.com www.robotgiaoduc.com

Page 62: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 45 SVTH: T.T Sơn - V.X Xăng

Hình 4.16: Kết quả ghép nối ICP sai số nhiều khi hai đám mây điểm có góc lệch lớn.

Để khắc phục nhƣợc điểm của phƣơng pháp ICP đơn thuần, ta sẽ quan chỉ số Euclidian

fitness score, khi thực hiện ghép hai đám mây điểm thu đƣợc ở hai góc liên tiếp nhau nếu

chỉ số Euclidian fitness score lớn hơn giá trị cho phép ta sẽ tiến hành ghép nối thô hai đám

mây điểm dùng phƣơng pháp SAC-IA, mục đích giảm thiểu góc lệch giữa hai đám mây

điểm trƣớc khi sử dụng ghép nối tinh chỉnh ICP.

4.4.2 Phƣơng pháp ghép thô SAC-IA

Phƣơng pháp SAC-IA (Sample Consensus Intial Alignment) yêu cầu thông tin từ kết

quả của phép ƣớc lƣợng đặc tính đám mây điểm, phép ƣớc lƣợng đặc tính đám mây điểm

lại yêu cầu thông tin từ kết quả của phép ƣớc lƣợng vector pháp tuyến bề mặt. Do đó, ở

phần này lần lƣợt trình bày ba bƣớc của phƣơng pháp ghép thô SAC-IA: ƣớc lƣợng vector

pháp tuyến bề mặt, ƣớc lƣợng đặc tính đám mây điểm, giải thuật đồng nhất mẫu ngầu

nhiên SAC-IA.

4.4.2.1 Ƣớc lƣợng vector pháp tuyến bề mặt

Sau khi đã đƣợc xác định, tập các điểm lân cận 𝑃𝑘 của điểm đang cần xử lý 𝑝𝑞 có thể

đƣợc sử dụng để ƣớc lƣợng biểu diễn đặc tính cục bộ của một mẫu bề mặt vật thể xung

quanh điểm 𝑝𝑞 . Một vấn đề quan trọng trong biểu diễn hình học của bề mặt là trƣớc hết

phải suy ra sự định hƣớng của nó trong hệ trục tọa độ, đó là ƣớc lƣợng pháp tuyến của

nó. Pháp tuyến bề mặt là một đặc tính quan trọng của bề mặt và đƣợc sử dụng rộng rãi

trong nhiều lĩnh vực nhƣ ứng dụng đồ họa máy tính để áp dụng đúng nguồn sáng tạo

bóng và các hiệu ứng hình ảnh khác.

www.clbrobot.com www.robotgiaoduc.com

Page 63: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 46 SVTH: T.T Sơn - V.X Xăng

Mặc dù tồn tại nhiều phƣơng pháp ƣớc lƣợng pháp tuyến bề mặt khác nhau, phƣơng

pháp đơn giản nhất dựa trên sự điều chỉnh mặt phẳng 3D bậc nhất nhƣ trong tài liệu

tham khảo [11]. Vấn đề của việc xác định pháp tuyến rại một điểm trên bề mặt tƣơng

đƣơng với việc ƣớc lƣợng vector pháp tuyến của mặt phẳng tiếp tuyến với bề mặt, do đó

trở thành vấn đề ƣớc lƣợng mặt phẳng bình phƣơng tối thiểu phù hợp nhất trong 𝑃𝑘 . Mặt

phẳng đƣợc biểu diễn tại một điểm x và vector pháp tuyến 𝑛 , và khoảng cách từ một

điểm 𝑝𝑖 ∈ 𝒫𝑘 đến mặt phẳng đƣợc định nghĩa là 𝑑𝑖 = (𝑝𝑖 − 𝑥)𝑛 . Giá trị của x và 𝑛

đƣợc tính toán theo cách bình phƣơng tối thiểu để cho 𝑑𝑖 = 0.

Bằng cách lấy:

𝑥 = 𝑝 =1

𝑘 𝑝𝑖

𝑘𝑖=1 (4.4)

nhƣ là tâm của 𝑃𝑘 , lời giải cho 𝑛 nhận đƣợc bằng cách phân tích giá trị riêng và vector

riêng của ma trận hiệp phƣơng sai 𝒞 ∈ ℝ3×3 của 𝑃𝑘 , đƣợc diễn đạt bằng biểu thức sau:

𝒞 =1

𝑘 𝜉𝑖 𝑝𝑖 − 𝑝 𝑝𝑖 − 𝑝 𝑇𝑘

𝑖=1 , 𝒞 ⋅ 𝑣𝑗 = 𝜆𝑗 ⋅ 𝑣𝑗 , 𝑗 ∈ {0,1,2} (4.5)

Số hạng 𝜉 đặc trƣng cho trọng số có thể có của 𝑝𝑖 , và thƣờng bằng 1. 𝒞 là ma

trận đối xứng và bán xác định dƣơng, và các trị riêng của nó là các số thực 𝜆𝑗 ∈ ℝ. Các

vector riêng 𝑣𝑗 tạo thành một cấu trúc trực giao, tƣơng ứng với các thành phần chính của

𝒫𝑘 . Nếu 0 ≤ 𝜆0 ≤ 𝜆1 ≤ 𝜆2, vector riêng 𝑣0 tƣơng ứng với trị riêng nhỏ nhất 𝜆0 là xấp

xỉ của vector pháp tuyến +𝑛 = 𝑛𝑥 , 𝑛𝑦 , 𝑛𝑧 hoặc −𝑛 . Ngoài ra, 𝑛 có thẻ đƣợc biểu diễn

dƣới dạng một cặp góc (𝜙, 𝜃) trong tọa độ cầu, đó là:

𝜙 = arctan 𝑛𝑧

𝑛𝑦 , 𝜃 = arctan

𝑛𝑦2 +𝑛𝑧

2

𝑛𝑥 (4.6)

Nói chung, bởi vì không có một phƣơng pháp toán học để giải ra dấu của 𝑛 , định

hƣớng của tính toán pháp tuyến thông qua phân tích thành phần cơ bản (Principal

Component Analysis – PCA) nhƣ ở trên là mơ hồ và không định hƣớng nhất quán trên

một tập dữ liệu đám mây điểm 𝒫.

Lời giải cho vấn đề này là tầm thƣờng nếu điểm quan sát 𝑣𝑝 thật sự biết đƣợc. Để

định hƣớng tất cả vector pháp tuyến 𝑛𝑖 nhất quán về phía điểm quan sát, chúng phải

thỏa mãn phƣơng trình:

www.clbrobot.com www.robotgiaoduc.com

Page 64: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 47 SVTH: T.T Sơn - V.X Xăng

𝑛𝑖 ⋅ 𝑣𝑝 − 𝑝𝑖 > 0 (4.7)

Độ cong của bề mặt xuất ra đƣợc ƣớc lƣợng nhƣ là mối quan hệ giữa các giá trị riêng

của ma trận hiệp phƣơng sai (nhƣ giới thiệu ở trên), là:

𝜎 =𝜆0

𝜆0 +𝜆1 +𝜆2 (4.8)

Hình 4.17: Ƣớc lƣợng vector pháp tuyến bề mặt: pháp tuyến tại một điểm đƣợc ƣớc

lƣợng từ các lân cận của nó nằm trong mặt cầu có bán kính 0.03 m

www.clbrobot.com www.robotgiaoduc.com

Page 65: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 48 SVTH: T.T Sơn - V.X Xăng

4.4.2.2 Ƣớc lƣợng đặc tính đám mây điểm

a) Point Feature Histogram

Trong số các đặc tính của đám mây điểm, vector pháp tuyến và độ cong của bề

mặt là đặc tính hình học cơ bản và sơ cấp quanh một điểm xác định. Mặc dù dễ xác

định và tốn ít thời gian nhƣng những đặc tính trên không đặc trƣng cho sự chi tiết của

bề mặt đám mây điểm 𝑃𝑘 do chúng ƣớc đoán hình dạng của 𝑃𝑘 cho điểm truy vấn

𝑝𝑞và cả các điểm trong miền lân cận 𝑝𝑞 . Do đó, các đám mây điểm đều chứa nhiều

điểm có giá trị đặc tính giống hoặc tƣơng tự nhau, điều này làm giảm đi lƣợng thông

tin đặc trƣng. Nếu quá trình liên kết đám mây điểm chỉ phụ thuộc vào hai yếu tố trên

thì dễ tạo ra những điểm tƣơng đồng sai giữa hai đám mây điểm, từ đó quá trình

không hội tụ.

Nếu có thể có một đặc tính mang thông tin cụ thể cho riêng từng điểm nhƣ điểm

𝑝𝑞 thuộc một cạnh biên, thuộc một mặt cầu hoặc một mặt phẳng… thì cùng với tập

các điều kiện ràng buộc hình học, đặc tính nhƣ trên có thể làm tăng xác suất để xác

định đƣợc một bề mặt hình học duy nhất cho đám mây điểm. Point Feature

Histogram (PFH - biểu đồ đặc tính của điểm) là một phƣơng pháp nhận diện không

gian đặc tính đa chiều có khả năng phân biệt mạnh sao cho biểu diễn PFH của những

điểm lấy mẫu từ cùng một bề mặt có thể đƣợc nhóm vào cùng một lớp (class), và

điểm thuộc các mặt khác phải thuộc các lớp khác.

Để xác định không gian đặc tính mới, trƣớc tiên ta tìm hiểu khái niệm lân cận hai

lớp. Với 𝒫 là tập các điểm trong đám mây điểm có tọa độ hình học {𝑥𝑖 , 𝑦𝑖 , 𝑧𝑖}. Một

điểm 𝑝𝑖 ∈ 𝒫 đƣợc gọi là có tính lân cận hai lớp nếu:

∃𝑟1, 𝑟2 ∈ ℝ, 𝑟1 < 𝑟2 thỏa mãn 𝑟1 ⇒ 𝒫𝑘1

𝑟2 ⇒ 𝒫𝑘2

, với 0 < 𝑘1 < 𝑘2 (4.9)

Trong đó, 𝒫𝑘 chỉ tập 𝑘-điểm lân cận gần nhất của 𝑝𝑖 . Hai bán kính 𝑟1 và 𝑟2 đƣợc

dùng để xác định hai lớp (layer) biểu diễn đặc tính phân biệt cho 𝑝𝑖 . Lớp đầu tiên đã

đƣợc giới thiệu ở mục 4.3.5, chính là vector pháp tuyến ở điểm truy vấn thu đƣợc từ

Phân tích Thành phần Cơ bản (PCA) của tập lân cận 𝒫𝑘1 . Lớp thứ hai gồm biểu diễn

PFH đƣợc trình bày trong phần này.

Mục địch xác định đặc tính PFH là để mã hóa đặc điểm hình học của tập lân cận

𝒫𝑘2 bằng cách tổng quát hóa độ cong trung bình quanh 𝑝𝑖 dùng biểu đồ giá trị đa

www.clbrobot.com www.robotgiaoduc.com

Page 66: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 49 SVTH: T.T Sơn - V.X Xăng

chiều. Siêu không gian đa chiều này cung cấp ký số mang thông tin cho việc biểu

diễn đặc tính, giải quyết đƣợc rất tốt đám mây điểm có mật độ mẫu không đồng nhất

hoặc có nhiễu hiện diện trong vùng lân cận.

Biểu diễn PFH dựa vào mối quan hệ giữa những điểm thuộc tập lân cận 𝒫𝑘2 và

vector pháp tuyến tƣơng ứng. Một cách đơn giản, PFH lƣu lại sự biến thiên của bề

mặt các điểm lấy mẫu bằng cách xét đến quan hệ giữa các vector pháp tuyến ƣớc

lƣợng đƣợc. Do đó, siêu không gian hình thành từ đó phụ thuộc vào độ tin cậy của

ƣớc lƣợng vector pháp tuyến tại mỗi điểm.

Nhìn chung, có nhiều cách để lƣu lại sự biến thiên của vector pháp tuyến của bề

mặt lân cận. Do mục đích của PFH không phải để trung bình hóa các giá trị/yếu tố

nhƣ những biểu diễn khác mà để mô hình hóa đặc điểm cơ bản của bề mặt chi tiết,

phép đo sự biến thiên sẽ đƣợc ƣớc lƣợng cho mỗi cặp điểm 𝑝𝑖và 𝑝𝑗 thuộc 𝒫𝑘2 . Do

vậy, bƣớc đầu tiên trong ƣớc lƣợng PFH cho một điểm 𝑝𝑖 là ƣớc lƣợng tất cả vector

pháp tuyến 𝑛𝑖 của các điểm trong 𝒫𝑘2 . Sau đó, để tính toán độ lệch tƣơng đối giữa

hai điểm 𝑝𝑖và 𝑝𝑗 cùng với vector pháp tuyến 𝑛𝑖 và 𝑛𝑗 , ta xác định khung tọa độ

Darboux cố định tại một điểm thuộc tập 𝒫𝑘2 . Để khung này là xác định duy nhất thì:

nếu arccos 𝑛𝑖 ⋅ 𝑝𝑗𝑖 ≤ arccos 𝑛𝑗 ⋅ 𝑝𝑖𝑗 , 𝑝𝑗𝑖 = 𝑝𝑗 − 𝑝𝑖 , 𝑝𝑖𝑗 = 𝑝𝑖 − 𝑝𝑗

thì 𝑝𝑠 = 𝑝𝑖 , 𝑛𝑠 = 𝑛𝑖

𝑝𝑡 = 𝑝𝑗 , 𝑛𝑡 = 𝑛𝑗 (4.10)

không thì 𝑝𝑠 = 𝑝𝑗 , 𝑛𝑠 = 𝑛𝑗

𝑝𝑡 = 𝑝𝑖 , 𝑛𝑡 = 𝑛𝑖

(4.11)

trong đó 𝑝𝑠đƣợc định nghĩa là điểm nguồn và 𝑝𝑡 là điểm đích. Điểm nguồn đƣợc chọn

sao cho góc giữa vector pháp tuyến tƣơng ứng và đƣờng thẳng nối hai điểm là nhỏ

nhất. Khung Darboux sau đó đƣợc định nghĩa tại 𝑝𝑠nhƣ sau:

𝑢 = 𝑛𝑠 (4.12)

𝑣 = 𝑢 ×𝑝𝑡−𝑝𝑠

𝑝𝑡−𝑝𝑠 2 (4.13)

𝑤 = 𝑢 × 𝑣 (4.14)

www.clbrobot.com www.robotgiaoduc.com

Page 67: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 50 SVTH: T.T Sơn - V.X Xăng

Hình 4.18: Biểu diễn khung Darboux và góc đặc tính PFH cho cặp điểm 𝑝𝑠 và

𝑝𝑡 cũng với vector pháp tuyến tƣơng ứng 𝑛𝑠 và 𝑛𝑡 .

Dùng khung Darboux 𝑢𝑣𝑤, độ lệch giữa hai vector pháp tuyến 𝑛𝑠và 𝑛𝑡 đƣợc biểu thị

thông qua tập các đặc tính góc nhƣ sau:

𝛼 = 𝑣 ⋅ 𝑛𝑡 (4.15)

𝜙 = 𝑢 ⋅𝑝𝑡−𝑝𝑠

𝑑 (4.16)

𝜃 = arctan 𝑤 ⋅ 𝑛𝑡 , 𝑢 ⋅ 𝑛𝑡 (4.17)

trong đó 𝑑 là khoảng cách Euclide giữa hai điểm 𝑝𝑠và 𝑝𝑡 , 𝑑 = 𝑝𝑡 − 𝑝𝑠 2. Nhóm bốn

đặc tính 𝛼, 𝜙, 𝜃, 𝑑 đƣợc tính cho mỗi cặp điểm trong tập lân cận 𝒫𝑘2 , do đó giảm 12

giá trị đặc trƣng ban đầu (𝑥, 𝑦, 𝑧, 𝑛𝑥 , 𝑛𝑦 , 𝑛𝑧cho mỗi điểm) của hai điểm và vector pháp

tuyến tƣơng ứng xuống còn 4.

Số lƣợng nhóm bốn đặc tính tạo thành trong tập lân cận 𝒫𝑘bằng 𝑘2 =

1

2𝑘(𝑘 − 1),

có độ phức tạp tính toán trên lý thuyết là 𝑂(𝑘2). Điều đó có nghĩa là đối với một tập

𝑛 điểm thuộc đám mây điểm 𝒫, độ phức tạp tính toán là 𝑂(𝑛𝑘2).

Hình 4.19 biểu diễn biểu đồ vùng tính toán đặc tính PFH đối với điểm truy vấn

(𝑝𝑞) đƣợc đánh dấu màu đỏ, nằm giữa hình tròn (hình cầu trong 3D) có bán kính 𝑟, và

tất cả 𝑘-điểm lân cận (điểm có khoảng cách đến 𝑝𝑞 nhỏ hơn bán kính 𝑟) đƣợc nối với

nhau.

www.clbrobot.com www.robotgiaoduc.com

Page 68: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 51 SVTH: T.T Sơn - V.X Xăng

Hình 4.19: Biểu đồ vùng tính toán đặc tính PFH. Điểm truy vấn (đỏ) và 𝑘-điểm lân

cận (xanh) đƣợc nối với nhau thành lƣới.

Để tạo biểu diễn PFH cuối cùng của điểm truy vấn 𝑝𝑖 , tập hợp các nhóm bốn đặc

tính đƣợc đƣa vào một biểu đồ. Khoảng giá trị của mỗi đặc tính đƣợc chia làm b

khoảng con, từ đó số lần mà giá trị đặc tính của một cặp điểm thuộc khoảng

𝑣𝑘 , 𝑣𝑘+1 , 𝑘 = 1, 𝑏 đƣợc lƣu lại. Do ba trong số bốn đặc tính là góc giữa các vector

pháp tuyến, giá trị của ba đặc tính góc có thể đƣợc chuẩn hóa về cùng khoảng trên

đƣờng tròn lƣợng giác. Ta có thể chia khoảng giá trị của mỗi đặc tính thành 𝑏 phần

bằng nhau, do đó tạo ra một biểu đồ có 𝑏4đoạn trong một không gian tƣơng quan tuyệt

đối.Trong không gian này, một sự dịch chuyển lên một đoạn trong biểu đồ PFH tương

ứng với một điểm có một giá trị nào đó cho cả bốn đặc tính của nó. Hình 4.20 là ví dụ

biểu diễn PFH cho các điểm khác nhau trong một đám mây điểm.

Hình 4.20: Ví dụ biểu diễn PFH của hai lớp điểm trong cùng đám mây điểm.

www.clbrobot.com www.robotgiaoduc.com

Page 69: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 52 SVTH: T.T Sơn - V.X Xăng

Trong một số trƣờng hợp, khoảng cách giữa các điểm lân cận tăng theo góc nhìn.

Do đó, bỏ 𝑑–khoảng cách giữa hai điểm lân cận trong những đám mây điểm có mật độ

điểm ảnh hƣởng đến biểu đồ PFH là cần thiết.

b) Fast Point Feature Histogram

Độ phức tạp tính toán trên lý thuyết của đặc tính PFH cho đám mây điểm 𝒫 gồm 𝑛

điểm là 𝑂(𝑛𝑘2), trong đó 𝑘là số điểm lân cận quanh điểm truy vấn 𝑝𝑞 ∈ 𝒫. Nhƣ đã

trình bày, một phƣơng pháp tối ƣu hóa đơn giản là lƣu lại các giá trị đặc tính và sắp

xếp lại dữ liệu trong đám mây điểm để quá trình tìm kiếm nhanh hơn so với việc tính

toán lại.Đối với các ứng dụng (gần nhƣ) thời gian thực, thời gian tính toán đặc tính

PFH của các đám mây điểm có mật độ lớn có thể là trở ngại.

Mục này giới thiệu bản thu gọn của PFH gọi là Fast Point Feature Histograms

(FPFH) [12], làm giảm độ phức tạp tính toán xuống còn 𝑂(𝑛𝑘), trong khi vẫn giữ

đƣợc hầu hết tính phân biệt của PFH.

Để đơn giản hóa tính toán đặc tính PFH, ta làm nhƣ sau:

Bƣớc đầu tiên, với mỗi điểm truy vấn 𝑝𝑞một tập nhóm ba đặc tính 𝛼, 𝜙, 𝜃 giữa

điểm 𝑝𝑞 và các điểm lân cận đƣợc tính theo phƣơng trình sau – ba đặc tính này

đƣợc gọi là Simplified Point Feature Histogram (SPFH):

𝛼 = 𝑣 ⋅ 𝑛𝑡 (4.18)

𝜙 = 𝑢 ⋅𝑝𝑡−𝑝𝑠

𝑑 (4.19)

𝜃 = arctan 𝑤 ⋅ 𝑛𝑡 , 𝑢 ⋅ 𝑛𝑡 (4.20)

Bƣớc hai, với mỗi điểm, 𝑘 điểm lân cận đƣợc xác định lại, và các giá trị SPFH

(của điểm) lân cận đƣợc dùng để tính giá trị các đặc tính FPFH của điểm truy vấn

𝑝𝑞nhƣ sau:

𝐹𝑃𝐹𝐻 𝑝𝑞 = 𝑆𝑃𝐹𝐻 𝑝𝑞 +1

𝑘

1

𝜔𝑘⋅ 𝑆𝑃𝐹𝐻(𝑝𝑘)𝑘

𝑖=1 (4.21)

trong đó trọng số 𝜔𝑘 biểu diễn khoảng cách giữa điểm truy vấn 𝑝𝑞và điểm lân cận

𝑝𝑖 trong không gian metric. Để hiểu rõ tầm quan trọng của phƣơng pháp trọng số này,

ta xem hình 4.21 biểu diễn biểu đồ vùng tính toán cho tập lân cận 𝒫𝑘quanh điểm truy

vấn 𝑝𝑞 .

www.clbrobot.com www.robotgiaoduc.com

Page 70: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 53 SVTH: T.T Sơn - V.X Xăng

Hình 4.21: Biểu đồ vùng tính toán đặc tính Fast Point Feature Histogram.

Trong hình 4.21, mỗi điểm truy vấn (đỏ) chỉ nối trực tiếp đến 𝑘 điểm lân cận (trong

hình tròn màu xám). Mỗi điểm lân cận trực tiếp này đƣợc nối đến các điểm lân cận của

chính nó và giá trị đặc tính từ các điểm lân cận cùng với giá trị đặc tính tại điểm truy

vấn và giá trị trọng số tạo nên giá trị đặc tính FPFH tại điểm truy vấn. Các liên kết

mảnh hơn ảnh hƣởng đến FPFH nhiều hơn hai lần.

Do đó, đối với một điểm truy cấn 𝑝𝑞 , thuật toán ƣớc đƣợc giá trị SPFH trƣớc tiên từ

các cặp điểm giữa nó và các điểm lân cận (đƣờng đỏ). Quá trình này lặp lại cho tất cả

các điểm trong tập 𝒫, sau đó các giá trị SPFH đƣợc nhân trọng số thì thu đƣợc giá trị

FPFH cho 𝑝𝑞 . Các kết nối FPFH mở rộng, hình thành do phƣơng pháp trọng số bổ

sung đƣợc vẽ màu đen. Nhƣ trong hình, một số cặp điểm sẽ đƣợc đếm hai lần (đƣờng

nối mảnh). Sự khác biệt chính giữa PFH và FPFH tóm gọn nhƣ sau:

FPFH không kết nối với toàn bộ điểm lân cận của điểm truy vấn 𝑝𝑞nhƣ trong

hình 4.20 và 4.22, do đó mất đi một số cặp giá trị ảnh hƣởng đến hình dạng bề mặt

quanh 𝑝𝑞 .

PFH mô hình hóa chính xác bề mặt xác định quanh 𝑝𝑞 , trong khi đó FPFH bao

hàm cả những cặp điểm ngoài hình cầu bán kính 𝑟 (bán kính 2𝑟 tối đa),

Cuối cung, do phƣơng pháp trọng số, FPFH tổng hợp giá trị SPFH và chụp lại

một số giá trị SPFH của cặp điểm lân cận.

www.clbrobot.com www.robotgiaoduc.com

Page 71: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 54 SVTH: T.T Sơn - V.X Xăng

Hình 4.22: Vector pháp tuyến bề mặt can nhựa.

Hình 4.23: Biểu đồ FPFH của đám mây điểm can nhựa.

4.4.2.3 Giải thuật đồng nhất mẫu ngẫu nhiên SAC-IA

Nhƣ đã nói ở mục 4.4.1, phƣơng pháp ghép nối đám mây điểm đơn thuần dùng giải

thuật ICP sẽ cho kết quả không tốt khi hai đám mây điểm có góc lệch nhau quá lớn

trong không gian, hay diện tích trùng lặp giữa hai đám mây quá ít. Ở mục này sẽ trình

bày ý tƣởng giải thuật ghép thô SAC-IA, nó là một bƣớc hiệu chỉnh hƣớng của hai đám

mây điểm trong hệ trục tọa độ toàn cục để giảm thiểu góc lệch trƣớc khi áp dụng

phƣơng pháp ICP.

Trong bƣớc đầu tiên của phƣơng pháp ghép nối thô, giải thuật tìm kiếm tập các điểm

tƣơng ứng trong đám mây điểm mục tiêu cho các thuộc tính của nguồn. Để đo lƣờng sự

www.clbrobot.com www.robotgiaoduc.com

Page 72: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 55 SVTH: T.T Sơn - V.X Xăng

tƣơng tự của hai đặc tả thuộc tính điểm, ta tính khoảng cách giữa các PFH bằng cách sử

dụng một khoảng cách thích hợp sẽ đề cập ở phía sau.

Để thực hiện điều này một cách có hiệu quả, một kd-tree n-chiều đƣợc tạo ra trong

không gian biểu đồ thuộc tính PFH, với 𝑛đại diện cho số khoảng PFHđƣợc sử dụng, và

với mỗi điểm thuộc tính trong tập dữ liệu nguồn, một giải thuật tìm kiếm k điểm lân cận

gần nhất (𝑘-nearest neighbor search) đƣợc thực hiện trong đám mây điểm mục tiêu. Do

đó, ta nhìn vào k điểm với biểu đồ giống nhau nhất và thêm chúng vào trong 𝑝𝑖 . Ta gọi

tập các điểm tƣơng ứng đó:

𝒞 = 𝑐𝑖 ||𝑐𝑖 = 𝑝𝑖 , 𝑞𝑖1 , … , 𝑞𝑖𝑘 , 0 < 𝑖 < 𝑚 (4.22)

Trong giai đoạn thứ hai của thuật toán ghép nối thô, đối tƣợng tốt nhất 𝑐𝑖 , 𝑐𝑗 từ tập

𝒞 đƣợc kết hợp với nhau thành một tập của 2-điểm tƣơng đồng 𝐸2. Với mọi sự kết hợp

của 𝑝𝑖 và 𝑝𝑗 , mục đích là tìm hai điểm 𝑞𝑖𝑟 và 𝑞𝑗𝑠 để tối thiểu hóa:

𝑝𝑖 − 𝑝𝑗 − 𝑞𝑖𝑟 − 𝑞𝑗𝑠 (4.23)

và thêm 𝑞𝑖𝑟 và 𝑞𝑗𝑠 vào trong 𝐸2, làm tăng bậc của nó. Sau đó phƣơng pháp sẽ xử lý kết

hợp cặp đầu vào 𝑒2.𝑖 , 𝑒2,𝑗 từ 𝐸2 nếu 𝑒2,𝑖 là đầu vào tiếp theo chƣa đƣợc kết hợp. Nếu:

𝒫∗ = 𝑝𝑖∗ ∈ 𝑒2,𝑖 ∪ 𝑒2,𝑗 (4.24)

𝒬∗ = 𝑞𝑖∗ ∈ 𝑒2,𝑖 ∪ 𝑒2,𝑗 (4.25)

thì 𝑒2,𝑗 tối thiểu hóa 𝑑𝑅𝑀𝑆(𝒫∗, 𝒬∗) với:

𝑑𝑅𝑀𝑆 𝒫∗, 𝒬∗ =1

𝑛2 𝑝𝑖

∗ − 𝑝𝑗∗ − 𝑞𝑖

2 − 𝑞𝑗2

2𝑛𝑗 =1

𝑛𝑖=1 (4.26)

tƣơng tự để xây dựng 𝐸2. Hệ thống tiếp tục kết hợp các đầu vào từ 𝐸2𝑘 tạo ra 𝐸2𝑘+1 theo

cách nhƣ trên, cho đến khi không còn lại đủ các cặp tƣơng đồng trong 𝐸𝑘 (𝑘 = 𝑘max ) để

tạo ra 2𝑘 điểm tƣơng đồng. Kết quả là một tập gồm 2𝑘𝑚𝑎𝑥 điểm trong đám mây điểm

nguồn, và mỗi điểm có một điểm tƣơng đồng với nó trong đám mây điểm mục tiêu, nhƣ

vậy khoảng cách điểm-điểm giữa các cặp tƣơng đồng trong hai tập khác nhau đƣợc tối

thiểu hóa. 2𝑘𝑚𝑎𝑥 điểm tƣơng đồng này có thể đƣợc sử dụng để xây dựng phép biến đổi

www.clbrobot.com www.robotgiaoduc.com

Page 73: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 56 SVTH: T.T Sơn - V.X Xăng

(tịnh tiến và quay) để sắp xếp các điểm này và sau đó áp dụng cho đám mây điểm

nguồn để sắp xếp thô nó tƣơng ứng với đám mây điểm mục tiêu.

Phƣơng pháp ghép thô mô tả ở phần trên rất mạnh mẽ vì nó sử dụng các đám mây

điểm nội tại, luân chuyển các thuộc tính bất biến. Tuy nhiên, độ phức tạp của thuật toán

là tƣơng đối cao vì bƣớc kết hợp đòi hỏi phải tìm kiếm tất cả các cặp tƣơng đồng có thể

có. Hơn nữa, có thể xảy ra những trƣờng hợp thuật toán bị mắc kẹt trong cực tiểu cục

bộ. Do đó, một phƣơng pháp ghép thô khác gọi là giải thuật đồng nhất mẫu ngẫu nhiên

(SAC-IA) đƣợc sử dụng. Thuật toán này dựa trên cách xây dựngđồng nhất mẫu ngẫu

nhiên trong đó cố gắng duy trì các mối quan hệ hình học tƣơng tự của các điểm tƣơng

đồng mà không phải kết hợp tất cả các cặp điểm của một tập có giới hạn. Thay vào đó,

ta lấy mẫu một số lƣợng lớn các ứng viên tƣơng đồng và xếp hạng chúng rất nhanh

chóng theo cách sau đây:

1. Chọn 𝑠 điểm mẫu từ 𝒫 trong đó chắc chắn rằng khoảng cách giữa chúng từng đôi

một lớn hơn khoảng cách nhỏ nhất 𝑑𝑚𝑖𝑛 mà ngƣời dùng định nghĩa;

2. Với mỗi điểm mẫu, tìm một danh sách các điểm trong 𝒬 mà biểu đồ của chúng

tƣơng tự nhƣ biểu đồ của điểm làm mẫu. Từ đó lựa chọn một cách ngẫu nhiên một

điểm đƣợc xem nhƣ là điểm tƣơng đồng của mẫu;

3. Tính biến đổi cứng đƣợc định nghĩa bởi các điểm mẫu và các điểm tƣơng đồng

của nó và tính toán lỗi số liệu cho các đám mây điểm để suy ra chất lƣợng của

phép biến.

Sự lựa chọn ngẫu nhiên các điểm tƣơng đồng trong bƣớc thứ hai có thể không tốt.

Tuy nhiên, nó là một quyết định có thể đƣợc thực hiện nhanh chóng, với một chiến lƣợc

phức tạp hơn để cố gắng cực đại sự tƣơng đồng của biểu đồ và sự tƣơng đồng về

khoảng cách có thể đòi hỏi bỏ qua nhiều điểm trong danh sách các điểm tƣơng.

Quá trình này đƣợc lặp lại nhiều lần cho đến khi lỗi sắp xếp là cực tiểu giữa hai mô

hình. Lỗi số liệu tính toán ở mỗi bƣớc là hàm hao tổn Huber 𝐿ℎ :

𝐿ℎ 𝑒𝑖 = 1

2𝑒𝑖

2, 𝑒𝑖 ≤ 𝑡𝑒1

2𝑡𝑒 2 𝑒𝑖 − 𝑡𝑒 , 𝑒𝑖 > 𝑡𝑒

(4.27)

Sau khi sắp xếp các phần góc nhìn khác nhau của vật thể sử dụng giải thuật SAC-

IA, ta dùng một bộ tối ƣu không tuyến tính cục bộ sử dụng thuật toán Levenberg-

www.clbrobot.com www.robotgiaoduc.com

Page 74: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 57 SVTH: T.T Sơn - V.X Xăng

Marquardt [13]. Bƣớc tối ƣu này giúp các liên kết cục bộ tốt hơn và cải thiện các lỗi sắp

xếp toàn cục.

Thuật toán SAC-IA

1 Đầu vào: Mô hình đám mây điểm: 𝒫, đám mây điểm mẫu 𝒬

2 Đầu ra: Phép biến đổi cứng 𝒯: 𝑄 → 𝒫

3 𝐿ℎ𝑚𝑖𝑛 = 0

4 For𝑘 = 1 to 𝑁do

5 Lấy mẫu một tâp các điểm 𝑆𝑘 từ 𝒫 sao cho ∀ 𝑠𝑖 , 𝑠𝑗 ∈ 𝑆𝑘 , 𝑠𝑖 − 𝑠𝑗 2≥ 𝑑𝑚𝑖𝑛

6 for∀𝑠𝑖 ∈ 𝑆𝑘do

7 tìm một tập 𝑞 = 𝑞1, 𝑞2, … , 𝑞𝑛 sao cho ∀𝑞𝑖 ∈ 𝑞: 𝐹𝑃𝐹𝐻 𝑞𝑖 ∼ 𝐹𝑃𝐹𝐻 𝑠𝑖

8 lựa chọn ngẫu nhiên 𝑞𝑖 từ tập 𝑞, sao cho 𝑞𝑖 tƣơng đồng với 𝑠𝑖

9 𝑄𝑘 = 𝑞𝑖

10 ∀ 𝑄𝑘 , 𝑆𝑘 tính 𝒯𝑘 : 𝒬 → 𝒫 để tối thiểu 𝐿ℎ

11 if𝐿ℎ < 𝐿𝑚𝑖𝑛 then

12 𝒯 = 𝒯𝑘

13 𝐿ℎ𝑚𝑖𝑛 = 𝐿ℎ

14 end for

15 return 𝒯

Kết quả của ghép nối thô ban đầu sử dụng thuật toán SAC-IA áp dụng lên hai phần

đám mây điểm chồng chập lên nhau của vật thể đƣợc mô tả nhƣ hình dƣới. Hình (a) thể

hiện hai góc nhìn khác nhau của hai đám mây điểm có góc lệch lớn nếu xem xét theo

chiều dọc, hình (b) thể hiện đầy đủ kết quả sau khi ghép nối chỉ dùng thuật toán ICP hay

chỉ dùng thuật toán SAC – IA, bƣớc ghép nối thô SAC-IA chỉ nhằm mục tiêu là giảm

thiểu góc lệch giữa hai đám mây điểm trong hệ tọa độ toàn cục, do đó, ta tiếp tục áp

dụng lại thuật toán ghép nối tinh chỉnh ICP lần hai để cải thiện chỉ số Euclidian fitness

score, đạt đƣợc kết quả ghép nối mong muốn. Kết quả mong muốn đƣợc thể hiện ở hình

(c) là kết quả ghép nối khi sử dụng phƣơng pháp ICP kết hợp SAC – IA. Đến đây ta

thấy rằng, với phƣơng pháp ICP kết hợp SAC – IA, chúng ta đã có một cách giải quyết

tổng thể cho quá trình ghép nối các đám mây điểm.

www.clbrobot.com www.robotgiaoduc.com

Page 75: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 58 SVTH: T.T Sơn - V.X Xăng

a) Hai đám mây điểm chƣa ghép nối, đƣợc nhìn từ hai góc khác nhau

b) Hai đám mây điểm đã ghép nối, bên trái chỉ sử dụng ICP, bên phải là SAC –IA

Hình 4.24: Các đám mây điểm sau khi ghép nối thô sử dụng SAC-IA, và ghép nối tinh

chỉnh sử dụng ICP.

www.clbrobot.com www.robotgiaoduc.com

Page 76: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 59 SVTH: T.T Sơn - V.X Xăng

4.4.3 Quá trình liên kết từng cặp đám mây điểm thành vật thể hoàn chỉnh

Nhƣ đã trình bày trong một vài ví dụ ở phần trên, vật thể đƣợc nhóm chọn làm mẫu

chính để thực thi giải thuật trong luận văn này là một con thú bằng nhựa, thỏa mãn các yêu

cầu để kiểm định thuật toán nhƣ là: hình dạng đủ độ phức tạp, cần thu thập và ghép nối

nhiều góc để có thể tái tạo mô hình hoàn chỉnh, bề mặt đủ trơn để giảm sai số từ đặc tính

thu ảnh của Kinect và chất liệu bề mặt ít có đặc tính hấp thụ hồng ngoại…

Hình 4.25: Hình ảnh 2D của vật thể sử dụng làm mẫu.

Để khôi phục đƣợc toàn bộ mô hình của vật thể, đầu tiên, dữ liệu thu đƣợc từ cảm biến

Kinect theo nhiều hƣớng nhìn vật thể tại nhiều góc khác. Thông thƣờng, không có một yêu

cầu nào về số lƣợng cụ thể cần bao nhiêu góc nhìn xung quanh vật thể, số góc nhìn cần thu

thập tùy thuộc vào độ phức tạp của vật thể và kinh nghiệm của ngƣời thực thi giải thuật.

Theo kinh nghiệm, ý tƣởng của nhóm là ghi nhận sáu đám mây điểm từ mỗi phía của vật

thể, tổng cộng hai phía ( trái và phải, nhìn từ hƣớng đầu con thú) thu đƣợc mƣời hai đám

mây điểm.

Các đám mây điểm sau khi đã đƣợc tiền xử lý qua bộ lọc không gian (pass_through),

phân đoạn và phân nhóm đƣợc trình bày trong các hình bên dƣới. Các hình bên dƣới bao

gồm thông tin màu RGB của vật thể để ta có cái nhìn trực quan hơn, tuy nhiên phƣơng

pháp ghép nối các đám mây điểm làm tích lũy sai số khoảng cách bề mặt càng nhiều, khi

số đám mây điểm đƣợc dùng để ghép lớn, do đó, rất khó khăn khi giữ thông tin màu RGB

ở kết quả cuối cùng. Trong khuôn khổ Luận văn này chỉ bao gồm các phƣơng pháp tái tạo

mô hình đơn sắc của vật thể.

www.clbrobot.com www.robotgiaoduc.com

Page 77: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 60 SVTH: T.T Sơn - V.X Xăng

www.clbrobot.com www.robotgiaoduc.com

Page 78: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 61 SVTH: T.T Sơn - V.X Xăng

www.clbrobot.com www.robotgiaoduc.com

Page 79: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 62 SVTH: T.T Sơn - V.X Xăng

Hình 4.26: Mƣời hai đám mây điểm thu đƣợc từ mọi góc nhìn khác nhau của vật thể,

đủ để tái tạo hoàn toàn mô hình của vật thể.

www.clbrobot.com www.robotgiaoduc.com

Page 80: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 63 SVTH: T.T Sơn - V.X Xăng

Nhóm áp dụng quy trình ghép nối từng cặp cho mỗi hai đám mây điểm. Ví dụ, đẩu tiên

sẽ tiến hành ghép nối hai đám mây điểm thứ nhất và thứ hai. Khi đó đám mây điểm đầu

tiên sẽ đƣợc biến đổi về vị trí trùng với đám mây điểm thứ hai. Tiếp theo, ta tiến hành ghép

nối cặp đám mây điểm thứ hai và thứ ba, rồi tiếp đến là cặp thứ ba và thứ tƣ…Cứ thế tiếp

tục cho đến hết sáu đám mây điểm mỗi phía thành một đám mây điểm lớn.

Hình 4. 27: Sơ đồ ghép nối từng cặp đám mây điểm

Sau khi kết hợp sáu đám mây điểm đã biến đổi ở mỗi phía lại với nhau để đƣợc một

đám mây điểm hoàn chỉnh của một nữa vật thể, ta có kết quả nhƣ hình dƣới:

Hình 4.28: Hai đám mây điểm của một nửa trái, phải của vật thể, (mỗi đám mây

đƣợc ghép từ sáu đám mây điểm ban đầu ở mỗi phía).

www.clbrobot.com www.robotgiaoduc.com

Page 81: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 64 SVTH: T.T Sơn - V.X Xăng

Và sau khi kết hợp hai đám mây điểm ở trên, ta có kết quả ghép hoàn chỉnh mô hình của

vật thể:

Hình 4.29: Đám mây điểm hoàn chỉnh sau khi ghép nối, nhìn từ hai góc khác nhau.

Mô hình hoàn chỉnh tích lũy rất nhiều sai số và nhiễu, điều này là khó tránh khỏi khi

ghép nối một số lƣợng lớn các đám mây điểm. Ở phần tiếp theo sẽ trình bày các phƣơng

cải thiện chất lƣợng đám mây điểm để khắc phục vấn đề này.

www.clbrobot.com www.robotgiaoduc.com

Page 82: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 65 SVTH: T.T Sơn - V.X Xăng

4.5 Giai đoạn cải thiện chất lƣợng đám mây điểm sau liên kết.

4.5.1 Loại bỏ các phần tử nhiễu sử dụng phƣơng pháp thống kê

Nhƣ đã thấy ở phần trƣớc, đám mây điểm sau khi ghép nối có sự chồng chập bởi rất

nhiều đám mây điểm nên bề mặt chất lƣợng rất kém. Mục 4.3.1 đã đề cập đến các bộ lọc

phổ biến là bộ lọc không gian và lƣới. Mục này chúng ta đề cập tiếp tới bộ lọc loại bỏ các

phần tử nhiễu sử dụng phƣơng pháp thống kê (Statistical outlier removal) lên đám mây

điểm sau khi đã ghép nối với sự hỗ trợ của thƣ viện pcl_filters.

Đối với bộ lọc statistical outlier removal, với bất kỳ tập hợp điểm 𝒫 của đám mây

điểm, phần lớn các đặc trƣng thuộc tính của một điểm đòi hỏi cần có tối thiểu 𝑘 ≥ 𝑘𝑚𝑖𝑛

các điểm láng giềng trong vùng lân cận của một điểm đang truy vấn 𝑝𝑞 để có thể tính toán

đƣợc. Tuy nhiên do sự thay đổi mật độ các điểm trong đám mây điểm ghép nối, có nhiều

điểm không tuân theo những ràng buộc trên. Các điểm này xuất hiện trên các bề mặt có đặc

tính phản xạ cao nhƣ kim loại bóng, hay xuất hiện nhƣ là các điểm ngoại lai tại cùng

chuyển tiếp giữa hai bề mặt do sự hấp thụ. Hiện tƣợng sau cũng đƣợc biết đến nhƣ là sự

“nhảy cạnh”, không liên tục về độ sâu hay sự hấp thụ đƣờng bao. Loại bỏ những điểm này

trong đám mây điểm giúp giảm đƣợc thời gian xử lý, do làm giảm đƣợc số lƣợng điểm còn

lại.

Hình 4.30: Đám mây điểm trƣớc và sau khi áp dụng statistical outlier removal với

𝜇𝑘 = 50 và 𝜎𝑘 = 2. Giá trị 𝛼 đƣợc chọn là 1

www.clbrobot.com www.robotgiaoduc.com

Page 83: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 66 SVTH: T.T Sơn - V.X Xăng

Có nhiều phƣơng pháp để loại bỏ hoặc đánh dấu các cạnh nhảy, dựa trên nguyên lý

phân đoạn, hay bằng cách khai thác các đặc tính của một cảm biến đặc biệt. Tuy nhiên, từ

góc nhìn ƣớc lƣợng thuộc tính, một công thức thống nhất có thể loại bỏ tất cả các điểm

trong vùng không gian có mật độ thƣa thớt (do nhiễu…), bao gồm cả các cạnh nhảy, sẽ

giải quyết vấn đề tốt hơn.

Cách giải quyết đã đƣa ra dựa trên phân tích thống kê các điểm lân cận 𝒫𝑘 [14] của mỗi

điểm. Với mỗi điểm 𝑝𝑞 ∈ 𝒫, khoảng cách trung bình 𝑑 tới 𝑘 điểm lân cận gần nhất đƣợc

tính toán trƣớc tiên. Sau đó, một sự phân bố trên không gian khoảng cách trung bình cho

toàn bộ đám mây điểm 𝒫 đƣợc thu thập và ta có thể ƣớc lƣợng đƣợc trung bình 𝜇𝑘 và độ

lệch chuẩn 𝜎𝑘 . Mục đích là để giữ lại các điểm mà khoảng cách trung bình của nó 𝑑 tới k

điểm gần nhất tƣơng tự nhƣ khoảng cách từ điểm đó đến các điểm còn lại. Điều này mô tả

một cách đo lƣờng mật độ đám mây điểm xung quanh một điểm, phần đám mây điểm còn

lại 𝒫∗ đƣợc ƣớc lƣợng đơn giản nhƣ sau:

𝒫∗ = 𝑝𝑞∗ ∈ 𝒫 𝜇𝑘 − 𝛼 ⋅ 𝜎𝑘 ≤ 𝑑

∗≤ (𝜇𝑘 + 𝛼 ⋅ 𝜎𝑘) (4.28)

Với 𝛼 là hệ số giới hạn mật độ mong muốn. Một ví dụ để minh chứng cho ảnh hƣởng

của phân tích thống kê và bộ lọc đƣợc đƣa ra ở hình 4.30. Phần bên trái giới thiệu một tập

dữ liệu đám mây điểm 𝒫 chứa nhiều vùng với mật độ điểm thấp hơn (đƣợc đánh dấu tròn

trong hình) sinh ra do nhảy cạnh hay tạp nhiễu khi đo lƣờng. Phần bên phải là đám mây

điểm kết quả 𝒫∗, sau khi loại bỏ các điểm trong vùng không gian có mật độ thƣa thớt.

Hình 4.31: Đám mây điểm sau khi đã loại bỏ bớt outliers

www.clbrobot.com www.robotgiaoduc.com

Page 84: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 67 SVTH: T.T Sơn - V.X Xăng

4.5.2 Xử lý bề mặt dùng phƣơng pháp Moving Least Squares

Sau giai đoạn liên kết các đám mây điểm, do diện tích vùng trùng lặp nhau của các đám

mây điểm kế cận 𝒫1 và 𝒫2 lớn nên mật độ điểm trong vùng đó tăng xấp xỉ hai lần so với

vùng không bị trùng lặp. Mật độ điểm không đồng nhất này có ảnh hƣởng tiêu cực đến quá

trình ƣớc lƣợng vector pháp tuyến và độ cong của bề mặt đám mây điểm ở vùng trùng lặp.

Ngoài mật độ điểm không đồng nhất, một mô hình đám mây điểm trọn vẹn có thể có

vùng hai lớp do sai số luôn tồn tại trong giai đoạn liên kết các đám mây điểm, và lỗ trống

có thể hình thành do từ bề mặt vật thể không có tia hồng ngoại phản xạ về camera chụp (ví

dụ, bề mặt sáng bóng, kim loại).

Để xóa bỏ đi những điểm yếu này, ta tiến hành nhƣ sau. Với một đám mây điểm 𝒫, ta

muốn tái tạo bề mặt trơn bằng cái tái lấy mẫu (upsampling hoặc downsampling) và loại bỏ

những điểm không mong muốn. Bƣớc đầu tiên, toạ độ trong 𝒫 đƣợc chuẩn hóa bằng

đƣờng chéo của hình hộp chữ nhật bao quanh đám mây điểm, cho phép cực đại hóa khoảng

cách giữa các điểm. Trọng số đƣợc tính nhƣ sau:

ℎ = 𝜇𝑑 + 𝑘 ⋅ 𝜎𝑑 (4.29)

trong đó 𝜇𝑑 là giá trị trung bình là 𝜎𝑑 là độ lệch chuẩn của hàm phân phối khoảng cách

trung bình giữa các điểm trong đám mây điểm, 𝑘 là hệ số tự chọn. Sau đó, một dự đoán

ban đầu đƣợc xác định bằng cách xấp xỉ đám mây điểm này với tập hợp các điểm 𝒬, đƣợc

lấy mẫu từ đám mây điểm 𝒫. Để tái lấy mẫu bề mặt 𝒫 đều nhất có thể, 𝒬 đƣợc biểu diễn

nhƣ là một tập của các điểm cách đều nhau trong lân cận các điểm của đám mây điểm ban

đầu.

Để lấp đầy lỗ trống trong 𝒫, các điểm mới đƣợc thêm vào vùng phát hiện đƣợc lỗ

trống. Giải thuật phát hiện lỗ trống thực hiện phân tích ở một số điểm cùng với các điểm

trong lân cận của chúng. Nếu Θ = {𝜃1 , 𝜃2 , … , 𝜃𝑛 }là tập các góc có sắp xếp giữa các đƣờng

thẳng tạo bởi hai điểm 𝑝𝑘1và 𝑝𝑘2

trong tập điểm lân cận 𝒫𝑘của điểm truy vấn 𝑝𝑞 , thì 𝑝𝑞 là

một điểm thuộc đƣờng biên của lỗ trống nếu thỏa:

max 𝛼 ≥ 𝛼𝑡ℎ , 𝛼 = 𝜃𝑖+1 − 𝜃𝑖 (4.30)

Trong đó 𝛼𝑡ℎ biểu diễn góc tới hạn cực đại cho trƣớc. Để đảm bảo điểm truy vấn nằm

gần bề mặt đám mây điểm, độ cao của điểm so với mặt phẳng tham chiếu cần đƣợc giới

www.clbrobot.com www.robotgiaoduc.com

Page 85: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 68 SVTH: T.T Sơn - V.X Xăng

hạn bằng một kích thƣớc bƣớc đơn vị. Phƣơng pháp lấp lỗ trống nhƣ giới thiệu trong

[15],với điều kiện mọi lỗ trống có bán kính nhỏ hơn bán kính tới hạn sẽ đƣợc lấp đầy.

Những điểm lấp đầy lỗ trống này sẽ đƣợc chiếu lên mặt phẳng tham chiếu cục bộ đƣợc

tạo nên bằng cách ƣớc lƣợng xấp xỉ mặt phẳng qua 𝑘 điểm lân cận gần nhất 𝒫𝑘của điểm

truy vấn 𝑝𝑞 , do đó chúng nằm trong vùng lân cận của bề mặt đám mây điểm. Sau đó, mỗi

điểm 𝑞từ tập dự đoán 𝒬 sau khi đã đƣợc chiếu lên mặt phẳng tham chiếu cục bộđƣợc fit

vào bề mặt đám mây điểm xấp xỉ với dữ liệu đám mây điểm đầu vào bằng cách dùng hàm

đa thức hai biến trong frame Darboux cục bộ tại điểm 𝑞. Frame Darboux gồm có ba vector

𝑢 , 𝑣 , 𝑛 vuông góc nhau, trong đó 𝑣 song song với vector pháp tuyến của mặt phẳng ƣớc

lƣợng.

Trong bƣớc xấp xỉ bề mặt đám mây điểm bằng đa thức hai biến, với mỗi điểm 𝑞 ∈ 𝒬,

một tập các trọng số 𝑤𝑖 𝑖=1𝑘 đƣợc xác định cho 𝑘điểm lân cận gần nhất của điểm 𝑞 nhƣ

sau:

𝑤𝑖 = exp − 𝑞−𝑝𝑖

2

ℎ (4.31)

với ℎ là tham số Gausstƣơng ứng với khoảng cách đều giữa các điểm trong 𝒬, tham số này

ảnh hƣởng đến tỉ lệ giữa các trọng số của các điểm lân cận. Nếu 𝑢, 𝑣, 𝑛 là các trục toạn độ

dọc theo khung Darboux 𝑢 , 𝑣 , 𝑛 , ta có thể xác định một giá trị 𝑥 của hàm cao độ 𝑓𝑢 ,𝑣|𝑗 , 𝑗 =

1, 𝑥 đƣợc chọn nhƣ là một thành phần của các đa thức hai biến có tổng khi đem nhân với

các hệ số 𝑐𝑗 sẽ xấp xỉ bề mặt đám mây điểm của các điểm trong miền lân cận của 𝑞:

𝑛𝑢 ,𝑣 = 𝑐𝑗𝑓𝑢 ,𝑣|𝑗𝑥𝑗 =1 = 𝒇𝑢 ,𝑣

𝑇 𝒄 (4.32)

Để tính toán giá trị của các hệ số 𝑐𝑗 ngƣời ta cực tiểu hóa hàm sai số:

𝐸 𝑠 = 𝑤𝑖 𝒇𝑢 ,𝑣𝑇 𝒄 − 𝑛𝑢 .𝑣

2𝑘𝑖=1 (4.33)

Sau quá trình tái lấy mẫu, vector pháp tuyến bề mặt cần đƣợc ƣớc lƣợng lại, lúc này đó

là các vector pháp tuyến của đa thức xấp xỉ ở mỗi điểm trong 𝒬. Thông thƣờng đa thức bậc

hai là đủ để xấp xỉ bề mặt đám mây điểm vì phần lớn bề mặt đám mây điểm đều cong hoặc

phẳng theo một hƣớng nhất định.

Trong Thƣ viện đám mây điểm, ta có bốn lựa chọn cho phƣơng pháp xấp xỉ Moving

Least Squares (MLS):

www.clbrobot.com www.robotgiaoduc.com

Page 86: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 69 SVTH: T.T Sơn - V.X Xăng

Lựa chọn NONE:

Kích thƣớc đám mây điểm đầu ra không đổi so với đám mây điểm đầu vào. Đây là

phƣơng pháp làm trơn bề mặt MLS, chỉ khác là các điểm sẽ di chuyển đến vị trí mới thuộc

bề mặt đã đƣợc làm trơn bằng đa thức hai biến.

Hình 4.32: Đám mây điểm bên trái thu đƣợc sau giai đoạn liên kết có outlier, nhiễu,

chồng chập của hai mặt, lỗ trống. Bên phải là đám mây điểm đã đƣợc làm trơn.

SAMPLE LOCAL PLANE:

Tại mỗi điểm, mặt phẳng cục bộ tƣơng ứng đƣợc lấy mẫu bằng với kích thƣớc bƣớc cố

định trong đƣờng tròn có bán kính cố định. Sau đó sử dụng đa thực ƣớc lƣợng từ đám mây

điểm đầu vào để xác định vector pháp tuyến tại các vị trí lấy mẫu và tịnh tiến đến vị trí xấp

xỉ. Để loại bỏ nhiễu, ngƣỡng tới hạn của số điểm cần thiết cho ƣớc lƣợng đa thức xấp xỉ

cục bộ phải tăng lên. Điều này đảm bảo những điểm có ít điểm lân cận sẽ không xuất hiện

trong đám mây điểm đầu ra.

Dễ thấy trong hình dƣới, đám mây điểm phía trái là đám mây điểm đầu vào, đám mây

điểm phía phải là đám mây điểm tạo ra sau làm trơn đã đƣợc upsampling lên rất nhiều, tại

vòng tròn vàng thì xuất hiện những điểm lấy mẫu trong đƣờng tròn có tâm là những điểm

nằm trong vòng tròn vàng, xuất hiện do phần đuôi của vật thể mẫu có nhiêu đám mây

www.clbrobot.com www.robotgiaoduc.com

Page 87: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 70 SVTH: T.T Sơn - V.X Xăng

chồng chập nhau không hoàn hảo, dẫn đến sự hình thành đa thức xấp xỉ tại đây. Để loại bỏ

những điểm đƣợc xem nhƣ là nhiễu này, ta dùng bộ lọc radius outler removal. Tại vòng

tròn màu xanh, chất lƣợng bề mặt khi áp dụng lựa chọn này đã đƣợc nâng lên rất nhiều.

Một vấn đề nữa, tất cả các điểm lấy mẫu mới đều đƣợc đƣợc thêm vào đám mây điểm

sau khi xấp xỉ đa thức hai biến mà không xét đến mật độ điểm cục bộ (ví du, điểm gần cảm

biến hơn sẽ có mật độ điểm lân cận lớn hơn, mật độ này sẽ tăng lên nhiều hơn trong đám

mây điểm đầu ra; điều ngƣợc lại xay ra đối với các điểm cách xa cảm biến). Để cải thiện

điều này, ta có thể dung bộ lọc Lƣới để có mật độ điểm đồng đều hơn.

Hình 4.33: Bên trái là đám mây điểmthu đƣợc sau giai đoạn liên kết các đám mây điểm và

bên phải là kết quả sau khi thực hiện phƣơng pháp SAMPLE LOCAL PLANE làm trơn và

upsampling của MLS.

RANDOM UNIFORM DENSITY:

Phƣơng pháp này nhận tạo ra mật độ điểm cố định mong muốn trong đƣờng tròn bán

kính cố định có tâm là điểm tham chiếu. Với mỗi điểm, dựa vào mật độ của vùng lân cận,

các điểm mới đƣợc thêm vào mặt phẳng cục bộ dựa theo bộ tạo số ngẫu nhiên có phân phối

đều cho đến khi mật độ điểm mong muốn đạt đƣợc. Sau đó quá trình giống nhƣ trong

phƣơng pháp SAMPLE LOCAL PLANE đƣợc thực hiện, chiếu các điểm mới tạo ra lên bề

www.clbrobot.com www.robotgiaoduc.com

Page 88: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 71 SVTH: T.T Sơn - V.X Xăng

mặt xấp xỉ đa thức MLS. Kết quả đạt đƣợc có chất lƣợng rất tốt. So với các phƣơng pháp

trƣớc, ta không cần thêm bộ lọc voxel grid để có đƣợc mật độ điểm đồng nhất.

Hình 4.34: Đám mây điểm trƣớc và sau khi RANDOM UNIFORM DENSITY MLS

upsampling.

Một ƣu điểm mạnh của lựa chọn RANDOM UNIFORM DENSITY là khả năng loại bỏ

outliers, nhƣ ở hình trên, trong vòng tròn màu xanh, số outliers đã đƣợc loại đi đáng kể mà

không cần sử dụng tới bộ lọc radius outler removal.

VOXEL GRID DILATION:

Từ đám mây điểm đầu vào, lƣới voxel đƣợc tạo ra. Lƣới này sẽ đƣợc phát triển (phép

toán hình thái dilation) lên n lần tùy theo input mong muốn. Các điểm mới tạo ra sẽ đƣợc

chiếu lên bề mặt xấp xỉ MLS. Đầu ra là đám mây điểm có mật độ đồng nhất, lỗ trống có

kích thƣớc khác nhau đƣợc trám đều, dựa vào kích thƣớc của lƣới voxel và số vòng lặp

phát triển do đầu vào quy định.

Dựa vào sự trình bày ƣu nhƣợc điểm của bốn lựa chọn cho phƣơng pháp làm trơn và

upsampling MLS ở trên đây,tùy theo đặc tính hình thái của đám mây điểm cụ thể để chúng

ta có thể quyết định một lựa chọn mang lại hiệu quả cao nhất. Hình dƣới đây trình bày đám

mây điểm hoàn chỉnh của vật thể sau khi sử dụng MLS:

www.clbrobot.com www.robotgiaoduc.com

Page 89: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 72 SVTH: T.T Sơn - V.X Xăng

Hình 4.35: Mô hình vật thể đƣợc tái tạo hoàn chỉnh dƣới các góc nhìn khác nhau.

www.clbrobot.com www.robotgiaoduc.com

Page 90: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 73 SVTH: T.T Sơn - V.X Xăng

4.6 Nhận xét

Nhƣ đã đề cập, để đánh giá chất lƣợng đám mây điểm sau giai đoạn liên kết các đám mây

điểm, ta dùng chỉ số Chỉ số khớp (Euclidian fitness score), bằng tổng bình phƣơng khoảng

cách giữa các cặp điểm tƣơng quan giữa đám mây điểm nguồn và đích. Nói chung, hệ số

fitness score đƣợc xem là đủ tốt nếu thấp hơn 10−3. Hệ số này cũng phụ thuộc vào tỷ lệ phần

trăm của khu vực chồng chéo trên tổng diện tích của một đám mây điểm. Các khu vực chồng

chéo càng lớn, giá trị fitness score đạt đƣợc càng thấp. Vật thể có bề mặt càng phức tạp thì

fitness score càng thấp.

Thông thƣờng, nếu vật thể là đối tƣợng tĩnh, khi dùng Kinect để thu thập dữ liệu từ các góc

khác nhau ở những thời điểm khác nhau vẫn đảm bảo không có biến dạng bề mặt, điều này

đảm bảo cho quá trình liên kết đám mây điểm diển ra suôn sẻ. Khi vật thể là một đối tƣợng

động, ví dụ nhƣ cơ thể ngƣời, trong quá trình thu thập dữ liệu có thể xẩy ra tình trạng hình

dạng bề mặt khác nhau giữa lúc này và lúc khác phụ thuộc tƣ thế, điều này làm cho chỉ số

fitness score có thể không tốt, cần tăng số vòng lặp khi sử dụng thuật toán ICP và SAC-IA,

điều chỉnh một vài thông số trong thuật toán cho phù hợp.

Hình 4.36: Đám mây điểm thu đƣợc của cơ thể ngƣời (đối tƣợng động)

từ 4 góc khác nhau.

www.clbrobot.com www.robotgiaoduc.com

Admin
Rectangle
Page 91: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 74 SVTH: T.T Sơn - V.X Xăng

Đối với đối tƣợng là cơ thể ngƣời trong hình trên, mỗi góc quay của đối tƣợng làm

rung động trang phục trên ngƣời, kéo theo sự thay đổi bề mặt ở các thời điểm khác

nhau, theo kinh nghiệm nhóm lựa chọn chỉ số fitness score ngƣỡng là 0.001, là mức

ngƣỡng thấp nhất có thể chấp nhận đƣợc thông thƣờng. Kết quả ghép nối tƣơng đối tốt

khi tăng số vòng lặp trong giải thuật ICP và SAC-IA.

Hình 4.37:Cơ thể ngƣời (đối tƣợng động) sau khi ghép nối, với chỉ số fitness

score ngƣỡng là 0.001 và số vòng lặp (iterative) của thuật toán ICP + SAC-IA là

300.

Việc sử dụng thêm thuật toán SAC-IA để hỗ trợ thuật toán ICP cải thiện đƣợc

fitness score nhƣng lại làm tăng độ phức tạp của giải thuật qua các bƣớc ƣớc lƣợng

vector pháp tuyến, ƣớc lƣợng đặc tính đám mây điểm và ghép nối thô. Do đó, khi thực

hiện ghép nối các đám mây điểm ta cần xác định chỉ số fitness score ở ngƣỡng bao

nhiêu là phù hợp, điều này phụ thuộc kinh nghiệm của ngƣời sử dụng thuật toán.

www.clbrobot.com www.robotgiaoduc.com

Page 92: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 4: Tái tạo mô hình 3D 75 SVTH: T.T Sơn - V.X Xăng

Nhƣ đã đề cập, đối với yêu cầu liên kết ít đám mây điểm, sai số tích lũy sau quá

trình liên kết ít, giải thuật ICP và SAC-IA vẫn có thể lƣu giữ thông tin màu RGB của

đối tƣợng. Do đó, giải thuật ICP kết hợp SAC-IA có thể đƣợc ứng dụng tạo avatar 3D.

Hình 4.38: Ghép nối đám mây điểm dùng ICP kết hợp SAC-IA giữ lại thông tin

màu của các đám mây điểm.

www.clbrobot.com www.robotgiaoduc.com

Page 93: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 76 SVTH: T.T Sơn - V.X Xăng

Chƣơng 5 – Tái tạo bề mặt vật thể

___________________________________________________________________________

www.clbrobot.com www.robotgiaoduc.com

Page 94: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 77 SVTH: T.T Sơn - V.X Xăng

5.1 Giới thiệu các phƣơng pháp tái tạo bề mặt

Ở chƣơng 4, đã đề cập một cách hoàn chỉnh các bƣớc khôi phục mô hình 3D của vật thể

dƣới dạng đám mây điểm đơn sắc. Tuy vậy, mô hình đám mây điểm chỉ cung cấp cái nhìn

trực quan về hình dạng của vật thể, chứ không thể cung cấp chi tiết về thông tin độ nhẵn của

bề mặt. Nhu cầu tái tạo bề mặt 3D là một nhiệm vụ cần thiết để có đƣợc một bề mặt nhẵn

bóng và không nhiễu. Trong PCL, thƣ viện pcl_surface các phƣơng pháp tái tạo bề mặt đƣợc

chia thành các loại sau:

Loại đầu tiên là xây dựng lƣới đa giác – là các thuật toán tái tạo bề mặt luôn luôn bảo toàn

đám mây điểm đầu vào và tạo lƣới đa giác nằm trên (ví dụ, liên kết các điểm). Lƣới đa giác

này có cùng số điểm với đám mây điểm đầu vào. Các lớp thừa kế là:

Concave Hull (Alpha-shapes)

Convex Hull

Organized Fast Mesh (chỉ dành cho các đám mây điểm không sắp xếp)

Greedy Projection Triangulation

Loại thứ hai là tái tạo bề mặt – gồm các phƣơng pháp tạo bề mặt mới hoặc lớp điểm mới ở

vị trí khác với vị trí các điểm trong đám mây điểm đầu vào. Đầu vào là đám mây điểm và đầu

ra là lƣới đa giác có tập điểm nằm ngay dƣới đám mây điểm đầu vào. Các lớp thừa kế gồm:

Grid Projection

Marching Cubes

Surfel Smoothing

Với các đám mây điểm không sắp xếp thu đƣợc từ Kinect, sau khi đƣợc xử lý bề mặt dùng

phƣơng pháp Moving Least Squares để khử nhiễu, lấp lỗ trống tạo ra từ đặc tính của Kinect

và quá trình liên kết đám mây điểm đã đề cập ở chƣơng 4, ta sẽ tìm hiểu lý thuyết và thực

hiện cả hai phƣơng pháp xây dựng lƣới đa giác và tái tạo bề mặt. Trong mỗi loại phƣơng pháp

tái tạo sẽ thực hiện các lớp thừa kế sau:

Hình dạng Alpha và chiếu tam giác hóa (Greedy projection triangulation) của lớp

xây dựng lƣới đa giác.

Thuật toán chiếu lƣới (Grid Projection) và Marching Cubes của lớp tái tạo bề mặt.

Các phƣơng pháp trên đƣợc chọn dựa vào chất lƣợng bề mặt tạo ra, hoặc hiệu năng, hoặc

tính phổ biến.

www.clbrobot.com www.robotgiaoduc.com

Page 95: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 78 SVTH: T.T Sơn - V.X Xăng

5.2 Các phƣơng pháp xây dựng lƣới đa giác

5.2.1 Cấu trúc dữ liệu lƣới đa giác

Lƣới đa giác là định dạng dữ liệu đƣợc sử dụng rộng rãi để lƣu trữ các mô hình 3D, khi

chúng đƣợc lấy ra từ bộ nhớ. Các thành phần của mô hình 3D thông thƣờng là các đỉnh,

các cạnh, các mặt, các đa giác và các bề mặt. Mỗi đỉnh đƣợc xác định bởi vị trí của nó và

hai đỉnh tạo ra một cạnh. Ba cạnh tạo ra một mặt, do đó mặt là một tập các cạnh khép kín.

Hình 5.1: Các thành phần trong mô hình lƣới

Hình 5.2: Lƣới đa giác đƣợc biểu diễn bằng phƣơng pháp mặt – đỉnh để lƣu trữ dữ liệu của

các đỉnh, các cạnh và mặt.

www.clbrobot.com www.robotgiaoduc.com

Page 96: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 79 SVTH: T.T Sơn - V.X Xăng

Một đa giác là tập hợp của các mặt, và nếu hệ thống hỗ trợ các mặt đa hƣớng thì không

có sự khác biệt giữa các đa giác và các mặt. Thông thƣờng, hệ thống phối cảnh không hỗ

trợ cho các mặt đa hƣớng, do đó không có lựa chọn nào khác là phải biểu diễn các đa giác

bằng nhiều mặt.

Các bề mặt, còn đƣợc gọi là nhóm mịn, có thể cung cấp dữ liệu bổ sung cho các tính

toán lƣới trong phép phối cảnh. Với các dữ liệu bổ sung, có thể tạo ra các đối tƣợng tƣơng

đối tròn chỉ từ vài mặt. Trong một lƣới đa giác, mỗi đa giác đƣợc xây dựng từ 3 đỉnh và

mỗi đỉnh có thể thuộc nhiều đa giác khác nhau (hình 5.2).

5.2.2 Hình dạng Alpha

Hình 5.3: Các nhóm hình dạng bất quy tắc trong không gian thuộc tính 2D. So sánh các nhóm

đại diện bởi một đƣờng tròn, một ellip, một bao lồi và dạng 𝛼

Edelsbrunner và Mucke giới thiệu khái niệm dạng 𝛼 (𝛼- shapes) nhƣ là định nghĩa và

tính toán hình dạng của một tập hữu hạn điểm trong không gian Euclide ba chiều [20].

Dạng 𝛼 có thể đƣợc xem ta tổng quát hóa của khái niệm bao lồi của tập điểm. Nó chính

thức hóa các khái niệm trực quan của hình dạng, và đối với tham số 𝛼 thay đổi, hình dạng

thay đổi từ hình thô đến hình chi tiết. Gọi 𝑆 là một tập hữu hạn điểm trong không gian 𝑑

chiều ℝ𝑑 và một số thực 0 ≤ 𝛼 ≤ ∞. Dạng 𝛼-shape của 𝑆 là một đa diện không nhất thiết

phải lồi hoặc kín. Với 𝛼 = ∞, dạng 𝛼-shape giống nhƣ bao lồi của 𝑆. Khi 𝛼 giảm, dạng 𝛼-

shape co lại dần, từ từ xuất hiện lỗ nhỏ (cavity). Những lỗ nhỏ này có thể ghép lại với nhau

tạo nên các lỗ hổng.

www.clbrobot.com www.robotgiaoduc.com

Page 97: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 80 SVTH: T.T Sơn - V.X Xăng

Kaspar Fischer (2004) diễn đạt ẩn dụ dạng dạng 𝛼 nhƣ kem lạnh chứa nhiều mảnh

chocolate nhỏ. Ta có mƣờng tƣợng về dạng 𝛼-shape nhƣ là một mảng kem lớn tạo thành

không gian ℝ𝑑 chứa các điểm S nhƣ là những mảnh chocolate. Dùng những “muỗng” kem

hình cầu cạo ra những mảng kem mà không lấy ra những mảnh chocolate, tƣơng tự ta

tƣởng tƣợng có thể tạo ra những mảng kem bên trong lòng và giữ nguyên các mảnh

chocolate. Cuối cùng ta thu đƣợc vật thể không nhất thiết phải lồi, bị giới hạn bởi các điểm

và mặt cầu (lõm). Nếu lúc này các mặt cầu này đƣợc thay thế bởi mặt tam giác và các đoạn

thẳng nối các điểm, đó là dạng 𝛼 của 𝑆.

Hình 5.4: Một ví dụ về dạng 𝛼 trong không quan 2D (trong đó các “muỗng” hình cầu lúc này

trở thành các “muỗng” đƣờng tròn).

Dạng 𝛼 phụ thuộc vào thông số 𝛼 là bình phƣơng bán kính của “muỗng” kem (hình

cầu/đƣờng tròn). Một giá trị nhỏ của 𝛼 sẽ cho phép ta ăn hết tất cả số kem mà không động

đến các mảnh chocolate (các điểm). Nhƣ vậy, dạng 𝛼-shape suy biến về tập điểm 𝑆 khi

𝛼 → 0. Mặt khác, giá trị 𝛼 quá lớn sẽ thì phần kem nằm trong bao lồi sẽ không thể đƣợc

tách ra. Do đó, dạng 𝛼-shape khi 𝛼 → ∞ là bao lồi của S.

Chính xác hơn, định nghĩa của dạng 𝛼-shape dựa vào phƣơng pháp tam giác hóa gọi là

Delaunay triangulation [Phụ lục B] trong dạng 𝛼-shape thông thƣờng hoặc regular

triangulation trong trƣờng hợp 𝛼-shape trọng số.

www.clbrobot.com www.robotgiaoduc.com

Admin
Rectangle
Page 98: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 81 SVTH: T.T Sơn - V.X Xăng

Dạng 𝛼-shape thích hợp có thể đƣợc lựa chọn để tạo bề mặt 3D của vật thể vì các đặc

tính:

Họ dạng 𝛼-shape cho tập hợp 𝑛 điểm có thể đƣợc tính toán trong thời gian 𝑂(𝑛2)

[17],

Mức chi tiết của mặt 𝛼-shape đƣợc kiểm soát bới thông số 𝛼 thông qua cơ chế

trực quan: khi 𝛼 giảm, các đặc điểm của bề mặt vật thể trở nên rõ nét,

Mỗi dạng 𝛼-shape có một tập hợp ký số, mỗi ký số đặc trƣng một đặc tính hình

học hoặc tôpô nhƣ là hàm của 𝛼 [17].

Ta dùng dạng 𝛼 vì hai nguyên nhân. Đầu tiên, một phƣơng pháp tái tạo bề mặt dựa

trên dạng 𝛼-shape là khả dụng đối với nhiều trƣờng hợp. Do toàn bộ họ 𝛼-shape và các ký

số của họ đƣợc tính toán trƣớc, ta có thể tái tạo bề mặt của bất kì tôpô nào mà không cần

dùng dữ liệu bổ sung cho tập điểm đã lấy mẫu, chỉ cần tinh chỉnh giá trị 𝛼. Lý do thứ hai là

tăng khả năng kiểm soát tập điểm lấy mẫu dị hƣớng và xử lý tập điểm có mật độ thấp bằng

cách chọn dạng 𝛼-shape cho phép tạo ra mức chi tiết lớn nhất có thể.

Thuật toán 𝜶-shape:

Hình 5.5: Giản đồ Voronoi trƣờng hợp 2D chia mặt phẳng thành các đa giác, mỗi đa giác

chứa một điểm 𝑝𝑖 ∈ 𝑆 thỏa mãn mọi vị trí bất kì trong đa giác 𝑃𝑖 có khoảng cách điểm 𝑝𝑖 ∈ 𝑃𝑖

là ngắn nhất so với khoảng cách từ vị trí đó đến điểm 𝑝𝑗 ∈ 𝑃𝑗 .

www.clbrobot.com www.robotgiaoduc.com

Page 99: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 82 SVTH: T.T Sơn - V.X Xăng

Đầu vào: tập điểm 𝑃, đầu ra: 𝛼-shape của 𝑃

Tính toán giản đồ Voronoi của tập 𝑃.

Với mỗi cạnh 𝑒 của giản đồ Voronoi xác định giá trị góc 𝛼𝑚𝑖𝑛 (𝑒) và 𝛼𝑚𝑎𝑥 (𝑒).

Với mỗi cạnh 𝑒, nếu 𝛼𝑚𝑖𝑛 𝑒 ≤ 𝛼 ≤ 𝛼𝑚𝑎𝑥 (𝑒) thì 𝑒 thuộc dạng 𝛼-shape của 𝑃.

Một thách thức khi dùng dạng 𝛼 để tái tạo bề mặt đó là, dạng 𝛼 là không gian ẩn của

một phức đơn hình ở hầu hết các dạng. Một dạng 𝛼-shape đơn giản nhƣ hình xuyến có thể

có cấu trúc nội phức tạp gồm các mặt, lỗ trống hoặc tứ diện gần phẳng. Mặt khác, bề mặt

cần tái tạo nên là đa tạp 2D. Do đó, thách thức chính trong phƣơng pháp này là sự sản sinh

các mặt đơn hình từ 𝛼-shape. Do vậy, đƣa vào các điều kiện toàn cục, ví dụ mặt cần tạo là

đa tạp 2D.

Hình 5.6: Tái tạo bề mặt dùng dạng 𝛼 cho kết quả tốt, không nhiễu và không có lỗ trống với

𝛼 = 0.01

www.clbrobot.com www.robotgiaoduc.com

Page 100: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 83 SVTH: T.T Sơn - V.X Xăng

Thuật toán dạng alpha là thuật toán rất mạnh và linh động trong việc biểu diễn bề mặt

vật thể, từ dạng bao lồi đến bao lõm. Kết quả tái tạo rất tốt, nhiễu và lỗ trống đƣợc hạn chế

tối đa và chi tiết bề mặt hiển thị khá rõ.

5.2.2 Phƣơng pháp chiếu tam giác hóa

Một phƣơng pháp phổ biến trong tái tạo vật thể 3D là dùng thuật toán tam giác hóa

(triangulation) để kết nối các điểm. Tam giác hóa là phƣơng pháp chia bề mặt đám mây

điểm thành tập hợp các tam giác với ràng buộc mỗi cạnh của tam giác này chỉ có thể là

cạnh của chỉ một tam giác khác. Ngƣời ta chứng minh đƣợc rằng mọi cách sắp xếp các

điểm trong không gian luôn luôn tạo đƣợc tập tam giác, nhƣng số lƣợng tam giác có thể là

vô hạn và lời giải có thể rất phức tạp (Francis and Weeks 1999). Một bề mặt đƣợc tạo nên

từ hữu hạn số tam giác đƣợc gọi là compact [30].

Nhìn chung, phƣơng pháp tam giác hóa khớp một miền không bị chặn với các tam giác

dựa trên tập điểm đầu vào. Mục tiêu khi tạo lƣới tam giác của phƣơng pháp này là tối thiểu

hóa tổng chiều dài cạnh các tam giác. Điều này có thể đạt đƣợc bằng cách tạo đƣờng nối

chéo nội ngắn nhất có thể ở mỗi giai đoạn tạo tam giác. Một cạnh bất kì không đƣợc cắt

bất kì cạnh nào khác trong lƣới tam giác. Thuật toán này là tham lam (greedy) vì thời gian

tính toán của nó. Trong trƣờng hợp xấu nhất, tất cả 𝑂(𝑛2) đƣờng nối có thể xảy ra, nhƣng

đối với giác lồi, thời gian tính toán có thể đƣợc cải thiện xuống còn 𝑂(𝑛). Hình 5.7 minh

họa kết quả của thuật toán tam giác hóa greedy từ hệ điểm mẫu. Ta có thể thấy đƣợc tính

quy luật đã nêu của các phần tử bên trong.

Hình 5.7: Lƣới tam giác của não bộ.

www.clbrobot.com www.robotgiaoduc.com

Admin
Typewriter
18
Admin
Typewriter
Admin
Typewriter
Page 101: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 84 SVTH: T.T Sơn - V.X Xăng

Ƣu điểm của phƣơng pháp này là các cạnh tạo nên tam giác không bị xóa đi do nó

xác định các tam giác, không dùng phƣơng pháp nội suy, nhanh và ít tốn bộ nhớ.

Thuật toán tam giác hóa gồm các bƣớc theo thứ tự sau:

Với mỗi điểm 𝑝, 𝑘 điểm lân cận gần nhất đƣợc xác định từ hình cầu bán kính

𝑟 = 𝜇 ⋅ 𝑑0 thay đổi theo mật độ điểm cục bộ (𝑑0 là khoảng cách từ điểm 𝑝 đến

điểm lân cận gần nhất và 𝜇 là hằng số do ta chọn trƣợc;

Các điểm lân cận đƣợc chiếu lên mặt phẳng xúc với bề mặt tạo bởi các điểm lân

cận quanh 𝑝;

Các điểm lân cận này sau đó bị loại bớt rồi nối đến 𝑝 và các điểm lân cận khác

theo nguyên lý góc lớn nhất và góc nhỏ nhất (tùy chọn).

Phép chiếu dọc theo vector pháp tuyến ƣớc lƣợng đƣợc xảy ra trong hai bƣớc cuối

trên đây. Trong bài [19], vector pháp tuyến tại đƣợc ƣớc lƣợng nhƣ là trung bình của

các vector pháp tuyến của các mặt tam giác tạo nên từ điểm 𝑝. Sự đơn giản hóa này có

nghĩa nếu và chỉ nếu bề mặt đám mây điểm đầu vào đủ trơn, tức là độ lệch giữa các

vector pháp tuyến của hai tam giác bất kì có chung cạnh phải nhỏ hơn 90∘. Các điểm

lân cận đƣợc chiếu dọc theo vector pháp tuyến ƣớc lƣợng sẽ phân bố quanh 𝑝, các điểm

nối đến 𝑝 sẽ đƣợc nhận diện dựa theo góc nhìn so với cạnh của tam giác trƣớc. Các

điểm còn lại lần lƣợt nối đến 𝑝 theo từng cặp kế cận gần nhất, tạo nên các tam giác.

Tuy nhiên, dữ liệu màu trên chỉ có thể giữ đƣợc đối với thuật toán chiếu tam giác hóa

do MLS chỉ lƣu trữ màu đối với phƣơng pháp làm trơn NONE của MLS. Ngoài ra, các

phƣơng pháp làm trơn và upsampling khác của MLS chỉ tạo đƣợc bề mặt đơn sắc có

thêm phần shading.

Hình dƣới đây cho thấy sau khi đƣợc làm trơn bề măt, kết quả tái tạo 3D có kết quả

tốt. Bề mặt tái tạo biểu diễn đƣợc hình dạng cơ bản của vật thể nhƣng lại có nhiễu lỗ

trống do bề mặt chƣa làm trơn chƣa đủ tốt cho giải thuật chiếu tam giác hóa.

www.clbrobot.com www.robotgiaoduc.com

Page 102: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 85 SVTH: T.T Sơn - V.X Xăng

Hình 5.8: Phƣơng pháp xây dựng lƣới đa giác dùng thuật toán chiếu tam giác hóa.

5.3 Các phƣơng pháp tái tạo bề mặt

5.3.1 Phƣơng pháp chiếu lƣới

Thuật toán chiếu lƣới (Grid Projection) [13] là phƣơng pháp tái tạo vật thể 3D dựa trên

lƣới. Không gian đƣợc chia thành các voxel, trƣờng vector tại mỗi voxel đƣợc xây dựng,

trong đó các vector ở mỗi vị trí xét hƣớng về điểm gần nhất thuộc đám mây điểm. Bề mặt

vật thể đƣợc xác định bằng cách kiểm tra vị trí voxel nào có chứa các vector có hƣớng

ngƣợc chiều nhau. Cạnh của các voxel này đƣợc xác định, các cell đệm đƣợc thêm vào.

Tâm của mỗi voxel đƣợc chiếu dựa theo giao điểm của các cạnh. Bề mặt đƣợc hình thành

bằng cách nối những tâm điểm này.

Hình dƣới đây mô tả trực quan cho giải thuật chiếu lƣới

www.clbrobot.com www.robotgiaoduc.com

Page 103: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 86 SVTH: T.T Sơn - V.X Xăng

Hình 5.9: Giải thuật chiếu lƣới xấp xỉ bề mặt ẩn (đƣờng xanh lam) và tạo bề mặt đơn

hình (đƣờng xanh lá) thông qua sự định hƣớng và độ lƣớn của các vector (màu cam) xác

định tại hai đầu của cạnh cắt bề mặt đám mây điểm

Minh họa cụ thể của phƣơng pháp này nhƣ dƣới đây:

Hình 5.10: Dữ liệu đầu vào và các cell đệm

Với một tập hợp điểm 𝒫 trong không gian, đầu tiên lƣới voxel đƣợc tạo ra, bao quanh

các điểm (hình 5.9). Tại mỗi đỉnh của voxel, một vector hƣớng thẳng về điểm 𝑝𝑖 ∈ 𝒫 đƣợc

xây dựng (hình 5.10).

www.clbrobot.com www.robotgiaoduc.com

Page 104: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 87 SVTH: T.T Sơn - V.X Xăng

Hình 5.11: Vector tại đỉnh các voxel.

Với mỗi cạnh của một voxel, nếu các vector tại hai đầu ngƣợc chiều nhau thì ta đánh

dấu lại cạnh đó (hình 5.12). Khoảng cách từ mỗi đỉnh đến bề mặt vật thể có thể đƣợc xác

định thông qua việc tối thiểu hóa hàm năng lƣợng 𝑉 của trƣờng vector 𝐹:

𝐹 = grad 𝑉

Hình 5.12: Các vector có hƣớng ngƣợc nhau quanh các voxel chứa các điểm thuộc đám

mây điểm.

www.clbrobot.com www.robotgiaoduc.com

Page 105: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 88 SVTH: T.T Sơn - V.X Xăng

Dùng các đỉnh và các vector đó, ta xấp xỉ đƣợc giao điểm của cạnh và bề mặt đám mây

điểm.

Hình 5.13: Các cạnh nối đỉnh chứa vector ngƣợc chiều nhau.

Trong mỗi voxel có cạnh đƣợc đánh dấu, tâm của voxel đƣợc đƣợc xem nhƣ là trung

bình của các giao điểm của bề mặt đám mây điểm và các cạnh đƣợc đánh dấu (hình 5.13).

Hình 5.14: Các cạnh có giao điểm với bề mặt và tâm của voxel.

Cuối cùng, với mỗi cạnh đƣợc đánh dấu, bề mặt xấp xỉ đƣợc tạo ra bằng cách tạo lƣới

đa giác nối các điểm hình chiếu của tâm lên bề mặt đám mây điểm. Do ta không xây dựng

www.clbrobot.com www.robotgiaoduc.com

Page 106: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 89 SVTH: T.T Sơn - V.X Xăng

hàm toàn cục cho cả bề mặt trong và bề mặt ngoài, phƣơng pháp này có thể xử lý đƣợc bề

mặt có biên miễn là xây dựng đƣợc trƣờng vector thích hợp (hình 5.15).

Hình 5.15: Hình chiếu của tâm voxel lên bề mặt đám mây điểm và sự hình thành bề mặt.

Trong thuật toán này, hai trƣờng vector đƣợc sử dụng: trƣờng gradient và trƣờng vector

lân cận cục bộ. Thực tế cho thấy trƣờng vector lân cận cục bộ có thời gian xử lý ngắn hơn

[16]. Tuy nhiên, do trƣờng gradient đƣợc tính từ trƣờng khoảng cách, nó có thể xử lý đƣợc

bề mặt có biên trong khi trƣờng lân cận cục bộ không thể.

Nếu độ phân giải của lƣới không đủ lớn ở vị trí bề mặt có độ cong lớn thì sẽ xuất hiện lỗ

trống trong bề mặt vật thể 3D do trƣờng vector trong lân cận của điểm thuộc vùng này thay

đổi rất nhanh (bề mặt có độ cong lớn). Lƣới (grid) thích bát phân (octree) có thể giải quyết

điều này nhƣng thời gian xử lý sẽ lâu hơn.

Đầu vào ngoài tập hợp điểm đám mây điểm thì có hai thông số là độ phân giải (của

lƣới) và số lƣợng padding cell. Thuật toán chiếu lƣới cho hiệu quả tƣơng tự nhƣ thuật toán

dạng alpha nhƣng thời gian tính toán lâu hơn rất nhiều.

www.clbrobot.com www.robotgiaoduc.com

Admin
Typewriter
21
Page 107: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 90 SVTH: T.T Sơn - V.X Xăng

Hình 5.16: Tái tạo bề mặt dùng thuật toán chiếu lƣới cho kết quả rất đẹp, không nhiễu và

không lỗ trống.

5.3.2 Thuật toán Marching Cubes

Marching cubes là thuật toán đồ họa đƣợc đề xuất bới Lorensen và Cline [22], cho phép

tạo lƣới tam giác của mặt đồng mức (isosurface) từ trƣờng vô hƣớng. Thuật toán này kết

hợp sự đơn giản và thời gian xử lý nhanh do xử lý hầu hết là so sánh với bảng tra cứu.

Thuật toán đƣợc ứng dụng trong tái tạo ảnh y học 3D từ MRI hoặc tạo đƣờng bao 3D của

lƣới voxel.

Trong trƣờng vô hƣớng của không gian đƣợc chia thành các khối lập phƣơng (voxel),

một khối lập phƣơng có thể đƣợc xác định từ các giá trị pixel ở tám góc của khối lập

phƣơng. Nếu một hoặc nhiều pixel của khối lập phƣơng có giá trị nhỏ hơn giá trị isovalue

ngƣời lập trình nhập vào, và một hoặc nhiều pixel có giá trị lớn hơn giá trị isovalue này, ta

www.clbrobot.com www.robotgiaoduc.com

Admin
Typewriter
Page 108: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 91 SVTH: T.T Sơn - V.X Xăng

biết rằng khối lập phƣơng phải chứa thành phần của bề mặt đồng mức. Bằng cách xác định

cạnh nào của khối cầu cắt mặt đồng mức, ta có thể tạo các tam giác chia khối lập phƣơng

làm hai phần, phần bên trong và phần bên ngoài bề mặt. Kết nối các tam giác này từ các

voxel lại với nhau, ta có đƣợc bề mặt vật thể.

Tuy nhiên, đám mây điểm không phải là trƣờng vô hƣớng, do đó, Hoppe và đồng

nghiệp [34] đã đề xuất việc sử dụng hàm khoảng cách có dấu để chuyển đám mây điểm

thành trƣờng vô hƣớng. Hàm khoảng cách có dấu 𝑑𝑈(𝑥) từ một điểm bất kì 𝑥 ∈ ℝ3 đến

mặt 𝑆 của đám mây điểm 𝒫 chứa các điểm 𝑝 đƣợc xác định nhƣ sau:

𝑑𝑆 𝑥 = inf𝑝∈S 𝑑(𝑥, 𝑝) nếu 𝑥 ∈ 𝑆𝑖

− inf𝑝∈S 𝑑(𝑥, 𝑝) nếu 𝑥 ∈ 𝑆𝑜 (5.1)

với 𝑆𝑖 , 𝑆𝑜 lần lƣợt là mặt trong và mặt ngoài của 𝑆.

Nhƣ vậy, thuật toán marching cubes gồm có hai bƣớc cơ bản: xác định hàm khoảng

cách có dấu và tạo lƣới tam giác.

Bước đầu tiên là tính toán hàm khoảng cách có dấu: Từ mỗi điểm thuộc khối lập

phƣơng 𝑥𝑖 ∈ ℝ3 xác định điểm 𝑝𝑗 ∈ 𝒫 sao cho 𝑑(𝑥𝑖 , 𝑝𝑗 ) ngắn nhất, từ đó tính toán mặt

phẳng tiếp xúc 𝑇(𝑝𝑗 ) với mặt các điểm lân cận của 𝑝𝑗 và suy ra hàm khoảng cách:

𝑑𝑆 𝑥𝑖 = 𝑑𝑖𝑠𝑡𝑖 𝑥𝑖 , 𝑇 𝑝𝑗 ≅ 𝑥𝑖 − 𝑝𝑗 (5.2)

Bề mặt cần tái tạo đƣợc hình thành ở những vị trí có hàm khoảng cách dấu đƣợc nội suy

mà ở đó, hàm nhận giá trị không (0).

Bước hai là hình thành các mặt tam giác. Nếu một đỉnh thuộc hình khối lập phƣơng

nằm ngoài bề mặt, nó đƣợc gán giá trị nhị phân một (1), ngƣợc lại nó lấy giá trị không (0).

Do mỗi điểm có thể là một (1) hoặc (0) nên về cơ bản có 28 = 256 cấu hình có thể xảy ra,

nhƣng nhiều cấu hình trong số đó tƣơng đƣơng với nhau, đƣợc thu gọn lại còn 15 trƣờng

hợp duy nhất.

www.clbrobot.com www.robotgiaoduc.com

Page 109: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 92 SVTH: T.T Sơn - V.X Xăng

Hình 5.17: 15 dạng cấu hình của các mặt tam giác

Ta tạo một bảng tra cứu LUT, di chuyển khối cầu qua tất cả các khối lập phƣơng, và

thêm các mặt tam giác vào danh sách, bề mặt lƣới đa giác cuối cùng là hợp của tất cả

những tam giác này.

Hình 5.18: Mã hóa bảng tra cứu LUT

Ngƣời ta dùng bit nhị phân tại mỗi điểm để tạo ra chỉ số cho mỗi trƣờng hợp dựa vào

trạng thái của các điểm. Chỉ số này cho biết cạnh nào cắt bề mặt point cloud, từ đó có thể

nội suy tuyến tính vị trí giao điểm trên cạnh của voxel theo công thức:

𝑣 = 𝑢 ⋅ 𝑑 𝑥𝑖+1

𝑑 𝑥𝑖 + 𝑑(𝑥𝑖+1) (5.3)

www.clbrobot.com www.robotgiaoduc.com

Page 110: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 93 SVTH: T.T Sơn - V.X Xăng

Hình 5.19: Nội suy vị trí của tam giác

Hình 5.20: Kết quả của thuật toán Marching cubes chấp nhận đƣợc, không có lỗ trống và

nhiều (với LeafSize = 0.003,isoLevel =0.003, useDot = 0).

www.clbrobot.com www.robotgiaoduc.com

Page 111: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 94 SVTH: T.T Sơn - V.X Xăng

Một điểm lƣu ý đối với thuật toán này là chất lƣợng bề mặt phụ thuộc vào kích thƣớc

các khối lập phƣơng khi có nhiễu. Nhìn chung Marching Cubes xấp xỉ bề mặt tốt khi kích

thƣớc khối lập phƣơng nhỏ, nhƣng tốn nhiều bộ nhớ và thời gian tính toán hơn. Nếu kích

thƣớc khối lập phƣơng quá lớn thì bề mặt tái tạo sẽ khác xa bề mặt thật của vật thể nhƣng

tốn ít bộ nhớ và thời gian hơn.

5.4 Nhận xét các thuật toán tái tạo

Bốn thuật toán tái tạo đều tạo ra bề mặt có kết quả tốt, thể hiện đƣợc hình dạng cơ bản

của vật thể thật. Trong số đó, dạng alpha tái tạo bề mặt có thể tùy biến đƣợc mức độ chi

tiết và độ trơn mà thực thi trong khoảng thời gian ngắn. Chiếu lƣới cũng là một lựa chọn

tốt khi mà bề mặt tạo ra có độ trơn rất cao, ít bị nhiễu nhƣng thời gian xử lý rất lâu.Tam

giác hóa có ƣu điểm lƣu giữ lại thông tin màu sắc vật thể trên lƣới đa giác, cơ chế trám lỗ

trống của thuật toán còn hạn chế mặc dù điều này nên đƣợc thực hiện ở giai đoạn liên kết

các đám mây điểm và quá trình upsampling bề mặt. Marching cubes cho kết quả khá tốt

nhƣng không tạo đƣợc bề mặt chi tiết hoặc trơn, tuy nhiên nguyên lý thuật toán này đơn

giản, dễ thực thi và thời gian xử lý ngắn.

Ngoại trừ thuật toán marching cubes, lựa chọn tối ƣu trong thuật toán MLS cho ba thuật

toán tái tạo bề mặt là NONE (nếu chất lƣợng registration tốt) và VOXEL GRID

DILATION do khoảng cách tƣơng đối giữa các điểm đƣợc đảm bảo so với khoảng cách

thực. Lựa chọn thích hợp trong thuật toán MLS cho marching cubes is SAMPLE LOCAL

PLANE, mật độ point cloud sau đó rất lớn, dẫn đến thời gian thực thị quá trình clustering

lấy phần tử vật thể lớn nhất thêm một khoảng thời gian gần 1 phút so với hai thuật toán

tam giác hóa và dạng Alpha. Quá trình phân nhóm lúc này đóng vai trò khử nhiễu và loại

bỏ vùng có mật độ điểm quá thấp, không thuộc bề mặt cần tái tạo.

Trong thực tế, hai phƣơng pháp đƣợc sử dụng nhiều nhất là hình dạng alpha và chiếu

lƣới. Khi cần một bề mặt có độ trơn chấp nhận đƣợc, yêu cầu về thời gian xử lý đặt lên

hàng đầu thì chúng ta sẽ chọn hình dạng alpha. Khi cần một bề mặt với độ trơn hoàn hảo

nhất chúng ta sẽ chọn phƣơng pháp chiếu lƣới.

Cơ thể ngƣời là một trong những đối tƣợng đƣợc quan tâm nhất của phƣơng pháp tạo

ảnh 3D. Dƣới đây là một số hình ảnh về kết quả tái tạo bề mặt 3D của các phần trên cơ thể

ngƣời:

www.clbrobot.com www.robotgiaoduc.com

Page 112: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 95 SVTH: T.T Sơn - V.X Xăng

Hình 5.21: Tái tạo bề mặt 3D cơ thể ngƣời: ngực và đầu, sử dụng dạng alpha và chiếu tam

giác.

.

www.clbrobot.com www.robotgiaoduc.com

Page 113: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 5: Tái tạo bề mặt vật thể 96 SVTH: T.T Sơn - V.X Xăng

Hình 5.22: Tái tạo mô hình 3D một phần cơ thể ngƣời: ngực và bụng. Từ trái qua, sử dụng

dạng alpha, chiếu lƣới và chiếu tam giác.

www.clbrobot.com www.robotgiaoduc.com

Page 114: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 6: Kết luận và hƣớng phát triển 97 SVTH: T.T Sơn - V.X Xăng

Chƣơng 6: Kết luận và hƣớng phát triển

Mục tiêu tái tạo mô hình 3D của vật thể trong thế giới thực từ ảnh depth map thu đƣợc từ

nhiều góc nhìn vật thể, nhóm đã dùng camera Kinect – thiết bị ) có giá thấp và dễ vận hành

hơn so với các thiết bị quét 3D chuyên nghiệp cho phép xuất ra dữ liệu độ sâu của vật thể

(khoảng cách từ vật thể đến thiết bị). Qua thực nghiệm, hệ thống gồm camera Kinect và giải

thuật ICP kết hợp cho phép tạo ra mô hình 3D của vật thể với độ chính xác tƣơng đối. Với sự

hỗ trợ của các phƣơng pháp cải thiện chất lƣợng bề mặt, các phƣơng pháp tái tạo bề mặt ta đã

khôi phục đƣợc mô hình 3D hoàn chỉnh của vật thể mẫu tƣơng đối phức tạp.

Đối với những yêu cầu tái tạo mô hình của vật thể đơn giản, ghép nối ít đám mây điểm,

phƣơng pháp ICP kết hợp có thể dữ lại thông tin màu RGB của đám mây điểm ban đầu, phù

hợp với các ứng dụng cơ bản nhƣ tạo hình ảnh đại diện, bán hàng qua mạng… bằng cách

dùng camera Kinect di chuyển tự do quanh vật thể và thực hiện quá trình xử lý trên máy tính.

Giải thuật lặp điểm gần nhất (ICP) cho kết quả tốt trong giai đoạn liên kết các đám mây

điểm có diện tích chồng lặp đủ lớn thu đƣợc từ Kinect dƣới các góc nhìn vật thể lệch nhau

không quá lớn. Để cải thiện chất lƣợng liên kết các đám mây điểm trong trƣờng hợp diện tích

chồng lặp bị hạn chế hoặc góc lệch giữa hai lần chụp kế tiếp quá lớn, giải thuật ghép thô dùng

thuật toán ghép đồng nhất mẫu ban đầu (SAC-IA) đƣợc thực thi trƣớc giải thuật ghép tinh

chỉnh dùng ICP. Lúc này, chỉ số trùng khớp của các đám mây điểm đƣợc cải thiện rõ rệt so

với khi chỉ dùng giải thuật lặp điểm gần nhất.

Để có thể thực thi giải thuật ghép thô SAC-IA cần phải qua các bƣớc ƣớc lƣợng vector

pháp tuyến, ƣớc lƣợng đặc tính bề mặt. Do đó, nó làm cho giải thuật trở nên cồng kềnh, việc

quyết định lúc nào chỉ nên dùng ICP, lúc nào dùng ICP kết hợp SAC-IA dựa vào đánh giá chỉ

số Euclidian Fitness Score sau khi sử dụng ICP lần đầu. Chọn ngƣỡng Fitness Score hợp lý

phụ thuộc vào kinh nghiệm của ngƣời thực thi thuật toán. Theo kinh nghiệm của nhóm, đối

với những vật thể có bề mặt ít phức tạp, ít gồ ghề, chỉ cần thực thi giải thuật ICP là đủ cho kết

quả tốt. Ngƣợc lại, khi bề mặt vật thể càng phức tạp, càng nhiều chi tiết đặc trƣng thì phƣơng

pháp ghép thô SAC-IA nên đƣợc sử dụng trƣớc khi áp dụng tiếp thuật toán ICP. Việc kết hợp

hài hòa thuật toán ICP và SAC-IA sẽ giúp giảm thời gian xử lý xuống rất nhiều.

www.clbrobot.com www.robotgiaoduc.com

Page 115: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

Chƣơng 6: Kết luận và hƣớng phát triển 98 SVTH: T.T Sơn - V.X Xăng

Các phƣơng pháp tái tạo bề mặt cho kết quả tốt, đặc biệt là hai phƣơng pháp dạng alpha và

chiếu lƣới. Hai phƣơng pháp trên cho kết quả vƣợt trội trong việc tái tạo đƣợc bề mặt không

có lỗ trống, đủ trơn và vẫn giữ đƣợc những chi tiết nhỏ. Phƣơng pháp chiếu tam giác hóa tuy

không thực sự hiệu quả trong việc trám lỗ trống nhƣng có thể bảo toàn màu sắc của mô hình

sau khi tái tạo bề mặt, nên nó là một lựa chọn trong mục đích tái tạo mô hình đơn giản kèm

thông tin màu RGB.

Một số điểm cần khắc phục:

Tƣơng nhƣợng giữa thời gian thực thi giải thuật và độ chính xác của mô hình ghép

nối.

Tăng độ chính xác ở các chi tiết nhỏ của vật thể sau khi ghép nối tái tạo mô hình.

Ngoài phƣơng pháp bình phƣơng cực tiểu động, các phƣơng pháp tái tạo bề mặt

chƣa mạnh trong việc nội suy bề mặt.

Lƣu giữ thông tin màu ở những vật thể phức tạp hơn

Hƣớng phát triển:

Tích hợp ứng dụng tạo hình đại diện lên các thiết bị di động đời mới có hỗ trợ của

GPU nhƣ điện thoại iPhone, Galaxy hoặc máy tính bảng iPad…

Giảm thời gian thực thi thuật toán bằng cách chuyển quá trình tính toán từ CPU

sang GPU ở các máy tính dùng dòng chip 64 bit.

Nội suy và tích hợp thông tin màu vật thể vào mô hình 3D để phân biệt vật thể và

đƣa mô hình vào game 3D.

Thực hiện tái tạo mô hình 3D thời gian thực của vật thể và môi trƣờng xung quanh

dùng ảnh độ sâu kết hợp với đám mây điểm. Việc tái tạo 3D thời gian thực có ý

nghĩa lớn trong thị lực máy tính, tƣơng tác ngƣời – máy, định vị đồng thời và lập

bản đồ (SLAM).

www.clbrobot.com www.robotgiaoduc.com

Page 116: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

99 SVTH: T.T Sơn - V.X Xăng

Tài liệu tham khảo

[1] http://en.wikipedia.org/wiki/Kinect

[2] http://www.ros.org/wiki/kinect_calibration/technical

[3] Mikkel Viager, “Analysis of Kinect for Mobile Robots,” Technical University of

Denmark, March 2011.

[4] http://www.primesense.com/en/technology

[5] Jacob Kjær. A Qualitative Analysis of Two Automated Registration Algorithms In

a Real World Scenario Using Point Clouds from the Kinect. June 27, 2011.

[6] Nicolas Burrus, Kinect Calibration at :

http://nicolas.burrus.name/index.php/Research/KinectCalibration

[7] http://openkinect.org/wiki/Main_Page

[8] http://codelaboratories.com/nui

[9] Michael Ying Yang, Wolfgang Forstner, Plane Detection in Point Clouds Data, Technical

Report Nr. 1, University of Bonn, 2010

[10] Paul J. Besl and Neil D. McKay. A Method for Registration of 3-D Shapes. IEEE

Transactions on Pattern Analysis and. Machine. Intelligence., Vol 14, No. 2, February 1992.

[11] Jens Berkmann and Terry Caelli, Computation of Surface Geometry and Segmentation

Using Covariance Techniques, IEEE Transactions on Pattern Analysis and Machine

Intelligence, November 1994.

[12] Radu Bogdan Rusu, Nico Blodow, and Michael Beetz, Fast Point Feature Histograms

(FPFH) for 3D Registration, In Proceedings of the IEEE International Conference on

Robotics and Automation (ICRA), Kobe, Japan, May 12-17 2009.

[13] A. W. Fitzgibbon, Robust registration of 2d and 3d point sets, Image Vision Computing,

2003.

www.clbrobot.com www.robotgiaoduc.com

Page 117: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

100 SVTH: T.T Sơn - V.X Xăng

[14] Radu Bogdan Rusu, Semantic 3D Object Maps for Everyday Manipulation in Human

Living Environments, PhD. Dissertation, Technical University Munich, 2009.

[15] Jianning Wang and Manuel M. Oliveira, A Hole-Filling Strategy for Reconstruction of

Smooth Surfaces in Range Images, In proceeding of: Computer Graphics and Image

Processing, SIBGRAPI 2003, Sao Carlos, Brazil, October 12-15 2003.

[16] H. Edelsbrunner and E. P. Mücke. Three-dimensional alpha shapes, ACM Transactions

on Graphics, January 1994.

[17] Edelsbrunner, H. and Mucke, E. 3D Alpha Shapes, ACM Transactions on Graphics,

1994.

[18] http://mathworld.wolfram.com/Triangulation.html

[19] M. Gopi and S. Krishnan, A Fast and Efficient Projection-Based Approach for Surface

Reconstruction, Proceedings of the 15th Brazilian Symposium on Computer Graphics and

Image Processing, 2002.

[20] Rosie Li, Surface Reconstruction from point cloud, Google Summer of Code,

Washington University in St. Louis, April 13, 2011.

[21] Ly Phan, Lu Liu, Sasakthi Abeysinghe, Tao Ju, Cindy Grimm, Surface Reconstruction

from Point Set Using Projection Operator, Washington University in St. Louis, Siggraph08.

[22] W. Lorensen and H. Cline, Marching cubes: A High Resolution 3D Surface Construction

Algorithm”, Proceedings of SIGGRAPH, 1987. ACM New York, NY, USA, pp. 163-169.

[23] Hoppe H., Derose T., Duchamp T., McDonald J., Tuetzle W.: Surface reconstruction

from unorganized points, SIGGRAPH 1992, New York, ACM, pp. 71–78.

[24] Yan Cui and Didier Stricker, 3D Shape Scanning with a Kinect, proceeding of

SIGGRAPH 2011, ACM New York, NY, USA, Posters Article No.57

[25] Yan Cui, Sebastian Schuon, Derek Chan, Sebastian Thrun, Christian Theobalt, 3D Shape

Scanning with a Time-of-Flight Camera, CVPR2010, San Francisco, CA, USA, June 13-18,

2010.

www.clbrobot.com www.robotgiaoduc.com

Page 118: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

101 SVTH: T.T Sơn - V.X Xăng

[26] Peter Henry, Michael Krainin, Evan Herbst, Xiaofeng Ren and Dieter Fox, RGB-D

Mapping: Using Depth Cameras for Dense 3D Modeling of Indoor Environments,

International Symposium on Experimental Robotics, 2010. Dec 18-21, 2010, Delhi, India.

[27] Mikkel Viager, Analysis of Kinect for mobile robots, Individual course report, Technical

University of Denmark, March 2011

[28] Juha Hyvärinen, Surface Reconstruction of Point Clouds captured with Microsoft

Kinect, Bachelor Thesis, Oulu University of Applied Sciences, Spring 2012

[29] Gael Charpentier, Accurate 3D Rigged Avater Generation with a Kinect, MRes

Dissertation, Bangor University, October 2011

[30] Jacob Kjaer, A Qualitative Analysis of Two Automated Registration Algorithms In a Real

World Scenario Using Point Clouds from the Kinect, Bachelor Thesis, Technical University

of Denmark, June 2011.

[31] Jing Tong, Jin Zhou, Ligang Liu, Zhigeng Pan, and Hao Yan, Scanning 3D Full Human

Bodies using Kinects, VR2012.

[32] Radu Bogdan Rusu, Nico Blodow, Zoltan Csaba Marton, Michael Beetz, Aligning Point

Clouds Views using Persistent Feature Histograms, Intelligent Autonomous Systems,

Technical University Munich, IROS2011

[33] Zoltan Csaba Marton, Radu Bogdan Rusu, Michael Beetz, On Fast Surface

Reconstruction Methods for Large and Noisy Point Clouds, Intelligent Autonomous Systems,

Technical University Munich, April 2011.

[34] C. E. Scheidegger, S. Fleishman, and C. T. Silva, Triangulating point set surfaces with

bounded error, Proceedings of the third Eurographics symposium on Geometry processing,

2005.

[35] Zhengyou Zhang, Iterative Point Matching for Registration of Free-Form Curves and

Surfaces, 1994.

[36] A. Martin Fischler and C. Robert Bolles, Random sample consensus: a paradigm for

model fitting with applications to image analysis and automated cartography,

Communications of the ACM, June 1981.

www.clbrobot.com www.robotgiaoduc.com

Page 119: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

102 SVTH: T.T Sơn - V.X Xăng

[37] P. Torr and A. Zisserman. MLESAC: A new robust estimator with application to

estimating image geometry, Computer Vision and Image Understanding, April 2000.

[38] Richard A. Newcombe et al, KinectFusion: Real-Time Dense Surface Mapping and

Tracking, Mixed and Augmentsed Reality, ISMAR2007, Nara, Japan, Nov. 16, 2007.

[39] Mikkel Viager, “Analysis of Kinect for Mobile Robots,” Technical University of

Denmark, March 2011, p. 11.

[40] http://www.primesense.com/en/technology

[41] ROS.org: Technical aspects of the Kinect device and its calibration at

www.ros.org/wiki/kinect_technical/calibration

www.clbrobot.com www.robotgiaoduc.com

Page 120: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

103 SVTH: T.T Sơn - V.X Xăng

Phụ lục A – Sample Consensus

Nguyên lý RANdom SAmple Consensus (RANSAC) [28] phát biểu nhƣ sau. Nếu 𝜖 là xác

suất chọn đƣợc một cho ƣớc lƣợng xấu (ví dụ, outlier), thì 1 − 𝜖 xác suất chọn ít đƣợc ít nhất

một mẫu tốt (ví dụ, inlier). Điều này có nghĩa rằng xác suất chọn đƣợc 𝑠 mẫu tốt là 1 − 𝜖 𝑠 .

Với 𝑘 lần th, xác suất thất bại là 1 − 1 − 𝜖 𝑠 𝑘 . Nếu 𝛼 là xác suất thành công mong muốn

(ví dụ, 𝛼 = 0.99), thì:

1 − 𝛼 = 1 − 1 − 𝜖 𝑠 𝑘 ⇒ 𝑘 =log 1−𝑝

log 1− 1−𝜖 𝑠 (A.1)

Hàm chi phí RANSAC đƣợc định nghĩa nhƣ sau:

𝐶𝑟 = 𝜌𝑟 𝑒𝑖2 ,𝑖 𝜌𝑟 𝑒

2 = 0, 𝑒2 < 𝑇2

𝑐𝑜𝑛𝑠𝑡, 𝑒2 ≥ 𝑇2 (A.2)

Và hàm chi phí MSAC (M-estimator SAmple Consensus) [29] đƣợc định nghĩa:

𝐶𝑚 = 𝜌𝑚 𝑒𝑖2 𝑖 , 𝜌𝑚 𝑒2 =

𝑒2, 𝑒2 < 𝑇2

𝑇2, 𝑒2 ≥ 𝑇2 (A3)

Trong đó 𝑇 là ngƣỡng cho trƣớc để xác định inlier.

www.clbrobot.com www.robotgiaoduc.com

Page 121: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

104 SVTH: T.T Sơn - V.X Xăng

Phụ lục B - Các khái niệm cơ bản về hình

dạng Alpha

Một tập hợp các điểm 𝑃 ⊂ ℝ𝑑 đƣợc gọi là thuộc trường hợp tổng quát nếu không có

𝑘 ≤ 𝑑 + 1 điểm trên một (𝑘 − 2)-phẳng chung hoặc 𝑘 ≤ 𝑑 + 2 điểm trong một common

(𝑘 − 3)-cầu. Trong phần sau, trƣờng hợp tổng quát đƣợc xem là trƣờng hợp mặc định vì

trƣờng hợp này đơn giản hóa trình bày. Một 𝑘-đơn hình 𝜎 là bao lồi của 𝑘 + 1 điểm 𝑆 ⊆ 𝑃.

Một đơn hình 𝜏 xác định bởi 𝑇 ⊆ 𝑆 là một mặt của 𝜎 và 𝜎 là một đồng mặt của 𝜏. Một phức

đơn hình 𝐾 là một tập hữu hạn các đơn hình gồm nhiều mặt thuộc 𝐾. Một phân dãy lọc

(filtration) của phức 𝐾 là phân dãy lồng nhau của ∅ = 𝐾0 ⊆ 𝐾1 ⊆ ⋯ ⊆ 𝐾𝑚 = 𝐾.

Giản đồ Voronoi 𝑉(𝑃) của 𝑃 hình thành từ sự phân hoạch các ô trong ℝ𝑑 thành các đa

diện lồi. Mỗi ô Voronoi 𝑉𝑝 tƣơng ứng với đúng một điểm 𝑝 ∈ 𝑃 và chứa tất cả các điểm của

ℝ𝑑 gần 𝑝 nhất. Tức là,

𝑉𝑝 = 𝑥 ∈ ℝ𝑑 | 𝑥 − 𝑝 ≤ 𝑥 − 𝑞 , ∀𝑞 ∈ 𝑃 (B1)

Các mặt đóng có cạnh chung với 𝑑 − 𝑘 + 1 ô Voronoi đƣợc gọi là các 𝑘-mặt Voronoi.

Hình B.1: Các cửa hàng trong thành phố phẳng và cell Voronoi cell tƣơng ứng (theo khoảng

cách Euclide).

Tam giác hóa Delaunay triangulation 𝐷(𝑃) của 𝑃 là đối ngẫu của giản đồ Voronoi. Mỗi

khi tập 𝑉𝑝1, 𝑉𝑝2

, … , 𝑉𝑝𝑘 các ô Voronoi có sự giao nhau khác rỗng, đơn hình tạo nên từ các điểm

tƣơng ứng 𝑝1, 𝑝2 , … , 𝑝𝑘 thuộc 𝐷(𝑃). Delaunay triangulation là phức đơn hình phân tách bao

lồi của các điểm trong 𝑃.

www.clbrobot.com www.robotgiaoduc.com

Page 122: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

105 SVTH: T.T Sơn - V.X Xăng

Hình B.2: Trái: tam giác hóa Delaunay triangulation cùng với các đƣờng trong ngoại tiếp và

tâm đỏ. Phải: kết nối các tâm của đƣờng tròn ngoại tiếp tạo thành giản đồ (đỏ).

Hình dạng alpha

Với một giá trị 𝛼 ∈ [0, ∞) cho trƣớc, các hình cầu alpha are các hình cầu bán kính 𝛼 có

tâm là các điểm thuộc 𝑃. Phức alpha tƣơng ứng của 𝑃 là tam giác hóa Delaunay triangulation

của 𝑃 giới hạn trong các hình cầu alpha. Một đơn hình thuộc về phức alpha nếu các ô Voronoi

tạo nên từ tập điểm của nó giao điểm chung không rỗng với tập các hình cầu alpha. Chú ý tại

𝛼 = 0, phức alpha chỉ chứa tập 𝑃, khi 𝛼 đủ lớn, phức alpha là tam giác hóa Delaunay

triangulation 𝐷(𝑃) của 𝑃. Với mọi phức đơn hình 𝜎 ∈ 𝐷(𝑃), cho 𝛼(𝜎) là giá trị 𝛼 mà tại đó 𝜎

xuất hiện lần đầu trong phức alpha. Phân dãy lọc dạng alpha shape là dãy các phức alpha thu

đƣợc bằng cách phát triển 𝛼 từ 0 đến vô cùng. Dƣới đây là một số đơn hình từ phân dãy lọc

alpha shape cho một tập nhỏ.

www.clbrobot.com www.robotgiaoduc.com

Page 123: Ung Dung Giai Thuat ICP_ Tai Tao 3D Tu Death Map _VoXuanXang_BK08

Ứng dụng ICP kết hợp - tái tạo mô hình 3D GVHD: PGS.TS Lê Tiến Thƣờng

106 SVTH: T.T Sơn - V.X Xăng

Hình B.3: Các dạng alpha shape cho các giá trị alpha phát triển.

www.clbrobot.com www.robotgiaoduc.com