Upload
anonymous-chf3xejjr
View
272
Download
12
Embed Size (px)
Citation preview
ĐẠ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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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)
và
𝒬∗ = 𝑞𝑖∗ ∈ 𝑒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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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
Ứ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