Bên cạnh đó thiết bị cảm biến được dùng để lấy dữ liệu Kinect là một thiết bị cảm biến dựa trên kỹ thuật Structed Light cũng có đầu ra là đám mây điểm sẽ được dùng trong xử lý nhiễu của
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG –HCM
Cán bộ hướng dẫn khoa học : TS Lê Ngọc Minh
Cán bộ chấm nhận xét 1 : TS Nguyễn Anh Tuấn
Cán bộ chấm nhận xét 2 : TS Lê Thành Sách
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 22 tháng 07 năm 2013 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: 1 TS Trần Văn Hoài
2 TS Nguyễn Anh Tuấn
3 TS Lê Thành Sách
4 TS Huỳnh Tường Nguyên
5 TS Lê Thanh Vân
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Nguyễn Ngọc Lễ MSHV: 09070448
Ngày, tháng, năm sinh: 16/10/1983 Nơi sinh: Tây Ninh
Chuyên ngành: Khoa Học Máy Tính Mã số : 60.48.01
I TÊN ĐỀ TÀI: LỌC NHIỄU DỮ LIỆU CẢM BIẾN ĐỘ SÂU
II NHIỆM VỤ VÀ NỘI DUNG: Dữ liệu đầu ra của thiết bị Kinect là tập điểm 3D bị nhiễu, nên cần lọc nhiễu trước khi tạo mô hình bề mặt 3D của đối tượng
III NGÀY GIAO NHIỆM VỤ : 02/07/2012
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 30/11/2012
V CÁN BỘ HƯỚNG DẪN: TS LÊ NGỌC MINH
Tp HCM, ngày tháng năm
CÁN BỘ HƯỚNG DẪN (Họ tên và chữ ký) CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên và chữ ký)
TRƯỞNG KHOA
(Họ tên và chữ ký)
Trang 4LỜI CẢM ƠN
Luận văn Thạc Sĩ này sẽ không thể được thực mà không cần sự động viên, giúp
đỡ và tạo điều kiện tốt nhất của nhiều người dành cho Tôi
Đầu tiên, Tôi xin gởi lời cảm ơn chân thành và sâu sắc nhất đến TS Lê Ngọc Minh, Thầy đã tận tình hướng dẫn tôi cũng như sự quan tâm trong suốt quá trình thực hiện đề cương và luận văn cao học, nhưng cũng tạo môi trường tự do và độc lập trong nghiên cứu, tạo mọi điều kiện để Tôi có thể hoàn thành tốt luận văn
Tôi cũng muốn cảm ơn đến bạn bè Tôi và tất cả mọi người khác đã dành thời gian của mình để giúp đỡ cho Tôi, đây luôn là kỉ niệm đáng nhớ
Sau cùng, luôn là cần thiết cảm ơn đến những người thân yêu trong gia đình đã luôn hỗ trợ và ở bên cạnh Tôi
Trang 5Thiết bị cảm biến độ sâu Kinect for XBox của Microsoft được sử dụng cho việc lấy
dữ liệu điểm mẫu của bề mặt thực tế
Lọc nhiễu dữ liệu đám mây điểm được xem như bước tiền xử lý cho việc tạo mô hình 3D
Trang 6ABSTRACT
This Thesis describes a method to denoise data directly from point cloud is sampled
from a surface The denoising method, using associate Moving Least Squares
(MLS) with Non-Localtechniquesfor deal with points whether they belong to a
feature region or non feature region
Depth Kinect sensor for XBox of Microsoft used to catch point sampled surface in
real
Denoising point cloud data as a preprocessing step in 3D model reconstruction
Trang 7LỜI CAM ĐOAN
Tôi xin cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như
đã ghi rõ trọng luận văn, các công việc được trình bày trong luận văn này là do chính Tôi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác
Trang 8MỤC LỤC
NHIỆM VỤ LUẬN VĂN THẠC SĨ ii
LỜI CẢM ƠN iii
TÓM TẮT LUẬN VĂN iv
ABSTRACT v
LỜI CAM ĐOAN vi
DANH MỤC BẢNG ix
DANH MỤC HÌNH x
Chương 1 GIỚI THIỆU 1
1.1 Động lực 1
1.2 Mục tiêu 2
1.3 Hướng tiếp cận 3
1.4 Kết cấu luận văn 4
Chương 2 TỔNG QUAN 5
2.1 Kinect 5
2.2 Một số thuật ngữ 7
2.2 Đám mây điểm (Point Clouds) 8
2.3 Point Cloud Library (PCL) 8
2.3.1 Một số thư viện module C++: 9
2.3.2 Bộ lọc (filter) 9
2.3.3 Những đặc tính điểm (Point Features) 10
2.3.4 Ước lượng Normal 11
2.3.5 PFH (Point Feature Histogram) 12
2.3.6 FPFH (Fast Point Feature Histogram) 13
Chương 3 CƠ SỞ LÝ THUYẾT 15
3.1 Khoảng cách Euclidean 15
3.2 Phân tích thành phần chính - Principal Component Analysis (PCA) 15
3.3 Random Sample Concensus (RANSAC) 16
3.4 Kd-tree 16
Chương 4 NGHIÊN CỨU LIÊN QUAN 18
4.1 Mesh-Independent Surface Interpolation [7] 18
Trang 94.2 Curve Reconstruction from Unorganized Points [9] 20
4.3 Point set surfaces [13] 20
4.4 Robust moving Least-squares Fitting with Sharp Features [26] 21
4.5 Similarity-based denoising of point-sampled surface [24] 22
4.6 Adaptive feature-preserving non-local denoising of static and time-varying range data [17] 22
4.7 Efficient Spatio-Temporal Hole Filling Strategy for Kinect Depth Maps [14] 23 4.8 Adaptive Spatio-Temporal Filter For Low-Cost Camera Depth Maps [15] 24
Chương 5 TRÍCH ĐỐI TƯỢNG 26
5.1 Thu thập dữ liệu 26
5.2 Filtering 27
5.3 Sự phân chia (Segmentation) 28
Chương 6 PHƯƠNG PHÁP KHỬ NHIỂU 30
6.1 Định nghĩa phép đo 30
6.2 Phương pháp khử nhiễu đề xuất 31
Chương 7 KẾT QUẢ VÀ KẾT LUẬN 40
7.1 Dữ liệu là DOUBLE-TORUS2 40
7.1.1 Tìm tham số k 42
7.1.2 Áp dụng thuật toán MLS cho dữ liệu DOUBLE-TORUS2 43
7.1.3 Áp dụng thuật toán MSL và Non-Local cho dữ liệu Double-Torus2 46
7.2 Dữ liệu được lấy từ thiết bị quét Kinect 55
7.2.1 Áp dụng thuật toán MLS 56
7.2.2 Áp dụng giải thuật MLS và NON-LOCAL 57
7.3 Thảo luận 63
7.4 Kết luận 63
TÀI LIỆU THAM KHẢO 65
Trang 10DANH MỤC BẢNG
Bảng 6-1: Bảng biến thiên Gaussian Kernel 39
Bảng 7-1: Bảng số liệu chọn tham số k 42
Bảng 7-2: Bảng số liệu Double-Torus2, MLS 43
Bảng 7-3: Bảng số liệu Double-Torus2, MLS và Non-Local, bán kính 1.5 49
Bảng 7-4: Bảng số liệu những điểm thuộc vùng đặc tính Double-Torus2, MLS và Non-Local, bán kính 1.5 50
Bảng 7-5: Bảng số liệu Double-Torus2, MLS và Non-Local, bán kính 2 52
Bảng 7-6: Bảng số liệu những điểm thuộc vùng đặc tính Double-Torus2, MLS và Non-Local, bán kính 2 53
Trang 11DANH MỤC HÌNH
Hình 2-1: Lấy dữ liệu độ sâu của Kinect 7
Hình 2-2: Sơ đồ Class của PCL 9
Hình 2-3: Bộ lọc PassThrough 10
Hình 2-4: Sơ đồ class đặc tính điểm 11
Hình 2-5: Đám mây điểm 3D 11
Hình 2-6: Tính normal của dữ liệu điểm 11
Hình 2-7: Ước lượng bề mặt normal 12
Hình 2-8: Hàng xóm xung quanh từng cặp điểm 12
Hình 2-9: Histogram đặc tính 14
Hình 2-10: Hàng xóm xung quanh điểm 14
Hình 2-11: Hàng xóm của những hàng xóm 14
Hình 4-1: Tìm mặt phẳng 18
Hình 4-2: Tìm mặt phẳng Hr tối ưu 19
Hình 4-3: Chiếu của r trên S 19
Hình 4-4: Mối quan hệ giữa ri với r và ri với q 20
Hình 4-5: Chiếu lên bề mặt gần cạnh 21
Hình 4-6: Bề mặt mịn từng phần được xây dựng 21
Hình 4-7: Non-Local trên ảnh 23
Hình 4-8: Sơ đồ khối của chiến lượt làm đầy chổ trống 24
Hình 5-1: Sơ đồ thuật toán trích đối tượng 26
Hình 5-2: Đám mây điểm dữ liệu lấy được từ thiết bị Kinect 27
Hình 5-3: Đám mây điểm được lọc với phương pháp Pass Through 28
Trang 12Hình 5-4: Một phần của hình hộp sau tiến trình phân chia 29
Hình 6-1: Tính khoảng cách từ điểm đến mặt phẳng qua k điểm 31
Hình 6-2: Sơ đồ thuật toán khử nhiễu 32
Hình 6-3: Giá trị cường độ của pixel trong ảnh 35
Hình 6-4: Minh họa bộ lọc Non-Local cho ảnh 36
Hình 6-5: Chiếu của một điểm lên mặt phẳng 36
Hình 6-6: Chiếu của các điểm hàng xóm 37
Hình 6-7: Đồ thị hàm e x và e -x 38
Hình 6-8: Đồ thị Gaussian Kernel 39
Hình 7-1: Lưới Double-Torus2 40
Hình 7-2: Dữ liệu điểm Double-Torus2 40
Hình 7-3: Tạo mẫu nhiễu trong 2D 41
Hình 7-4: Tạo mẫu nhiễu trong 3D 41
Hình 7-5: Mô hình Double-Torus2 nhiễu được thêm vào 42
Hình 7-6: Radius = 0.8, thời gian 1403ms 44
Hình 7-7: Radius = 1, thời gian 1555ms 44
Hình 7-8: Radius = 1.5, thời gian 2049ms 45
Hình 7-9: Radius = 2, thời gian 1839ms 45
Hình 7-10: Radius = 2.5, thời gian 2555ms 45
Hình 7-11: Radius = 3, thời gian 3266ms 45
Hình 7-12 : Bán kính tìm normal vector 0.7 46
Hình 7-13: Bán kính tìm normal vector 1 46
Hình 7-14: Bán kính tìm normal vector 1.5 47
Hình 7-15: Bán kính tìm normal vector 2 47
Hình 7-16: tolerance 0.5 eps_angle 30 47
Trang 13Hình 7-17: tolerance 0.7 eps_angle 30 47
Hình 7-18: tolerance 1 eps_angle 30 48
Hình 7-19: tolerance 2 eps_angle 30 48
Hình 7-20: bán kính 1.5, tolerance 0.7 49
Hình 7-21: h = 2, bán kính 1.5 50
Hình 7-22: h = 3, bán kính 1.5 51
Hình 7-23: h = 5, bán kính 1.5 51
Hình 7-24: h = 10, bán kính 1.5 51
Hình 7-25: bán kính 2, tolerance 0.7 52
Hình 7-26: h = 2, bán kính 2 53
Hình 7-27: h = 3, bán kính 2 54
Hình 7-28: h = 5, bán kính 2 54
Hình 7-29: h = 10, bán kính 2 54
Hình 7-30: Cạnh của hộp đƣợc quét bởi Kinect 55
Hình 7-31: Góc của hộp đƣợc quét bởi Kinect 55
Hình 7-32: Radius = 0.01, cạnh, MLS 56
Hình 7-33: Radius = 0.02, cạnh, MLS 56
Hình 7-34: Radius = 0.03, cạnh, MLS 56
Hình 7-35: Radius = 0.01, góc, MLS 57
Hình 7-36: Radius = 0.02, góc, MLS 57
Hình 7-37: Radius = 0.03, góc, MLS 57
Hình 7-38: Đặc tính cạnh, số cụm 4, số hàng xóm 8 58
Hình 7-39: h = 5, cụm 4, hàng xóm 8, cạnh 58
Hình 7-40: h =10, cụm 4, hàng xóm 8, cạnh 58
Hình 7-41: Đặc tính cạnh, số cụm 7, số hàng xóm 8 59
Trang 14Hình 7-42: h = 5, cụm 7, hàng xóm 8, cạnh 59
Hình 7-43: h = 10, cụm 7, hàng xóm 8, cạnh 59
Hình 7-44: Đặc tính góc, số cụm 4, số hàng xóm 8 60
Hình 7-45: h = 5, bán kính 0.02, số cụm 4, số hàng xóm 8, góc 60
Hình 7-46: h = 10, bán kính 0.02, số cụm 4, số hàng xóm 8, góc 61
Hình 7-47: Đặc tính góc, số cụm7, số hàng xóm 8 61
Hình 7-48: h = 5, bán kính 0.02, số cụm 7, số hàng xóm 8, góc 62
Hình 7-49: h = 10, bán kính 0.02, số cụm 7, số hàng xóm 8, góc 62
Trang 15Chương 1 GIỚI THIỆU
Chương này đưa ra một giới thiệu chung về chủ đề lọc nhiễu dữ liệu thiết bị cảm biến
độ sâu tập trung vào đảm bảo đặc tính hình học Trình bày về động lực, phạm vi của luận văn và giới thiệu phương pháp dịch chuyển bình phương tối thiểu (Moving Least Squares) kết hợp với phương pháp khử nhiễu không cục bộ (Non-Local denoising)
1.1 Động lực
Cũng như nhiều công nghệ hiện đại khác, máy quét bề mặt 3D đã đi qua nhiều giai đoạn phát triển Những thiết bị quét được đề cập chủ yếu là thiết bị cảm biến Time-of-Flight và Structured Light đã nhận được nhiều sự quan tâm gần đây Đối với những công nghệ, phát triển gần đây có nghĩa là các thiết bị rẻ hơn, mà đồng thời cho phép việc bắt giữ những cảnh vật lớn hơn với các chi tiết tốt hơn Trong nhiều lĩnh vực, các máy quét được áp dụng thành công cho nhiều mục đích khác nhau Các lĩnh vực gồm:
đồ họa máy tính, robot Thiết bị cảm biến “Kinect for Xbox” đang nhận được rất nhiều sự chú ý nhờ vào khả năng nhận dạng cử động con người Bên cạnh đó chi phí thấp, độ tin cậy và tốc độ của phép đo hứa hẹn Kinect sẽ tạo ra nhiều cơ hội hơn cho nhiều người quan tâm tìm hiểu
Tùy thuộc vào loại thiết bị cảm biến mà dữ liệu thu được sẽ cho dữ liệu đầu ra khác nhau Việc quét các đối tượng của thiết bị cảm biến sinh ra nhiều điểm dữ liệu được đo gọi là đám mây điểm (point clouds) Luận văn đặc biệt tập trung vào tập dữ liệu, được biểu diễn như là đám mây điểm “không cấu trúc” Thuật ngữ không cấu trúc nghĩa là thuật ngữ đó không có thông tin liên thông có sẵn giữa các điểm mẫu Bên cạnh đó thiết bị cảm biến được dùng để lấy dữ liệu Kinect là một thiết bị cảm biến dựa trên kỹ thuật Structed Light cũng có đầu ra là đám mây điểm sẽ được dùng trong xử lý nhiễu của luận văn
Trong giai đoạn lấy đám mây điểm của một bề mặt từ thiết bị quét miền 3D, vẫn tồn tại
dữ liệu thể hiện không tự nhiên nhưng vẫn xuất hiện trong kết quả thu được Những bất
Trang 16thường có thể xảy ra trong quá trình đo này phụ thuộc vào nhiều ảnh hưởng: các thuộc tính của bề mặt quét, các thiết bị thu thập, khoảng cách giữa các thiết bị quét và bề mặt
và các điều kiện ánh sáng, đó chỉ là những cái nổi bậc nhất Với một số ảnh hưởng đó dẫn đến dữ liệu thu được sẽ bị nhiễu (noise) hay tạo ra những khoảng trống của dữ liệu được quét
Đối với một số lĩnh vực cần sự chính xác như thiết kế một thuật toán xây dựng lại một
bề mặt thì để đảm bảo hình dạng hay cấu trúc của một bề mặt gốc là một việc khó Một bước chung trong việc xây dựng lại bề mặt 3D là việc tạo ra một lưới tam giác Tuy nhiên phương pháp chia tam giác rất nhạy cảm với nhiễu Do đó để sử dụng một số thuật toán tam giác, nó là cần thiết để loại bỏ hoặc lọc lại nhiễu xuất hiện ngẫu nhiên trong dữ liệu, được gọi là “khử nhiễu” (denoising) Như vậy, dữ liệu cần được loại nhiễu hoặc làm mịn trước khi thực hiện bất kỳ xử lý hình học tiếp theo là điều cần thiết
1.2 Mục tiêu
Như đã giới thiệu ở phần trước luận văn chỉ tập trung vào những thiết bị cảm biến thu được đám mây điểm bao gồm tập các điểm 3D Do đó tập điểm được thể hiện dưới dạng công thức như sau:
Với S là một bề mặt đối tượng, P = {p1, …, pn}, là tập điểm được lấy mẫu từ
bề mặt đó Trong đó tập mẫu P có thể bị nhiễu
Với tập điểm mẫu 3D, được gọi là đám mây điểm 3D, của một bề mặt S được đo bởi thiết bị cảm biến độ sâu vẫn còn bị nhiễu, cần một phương pháp ước lượng để có được tập điểm mẫu 3D đã khử nhiễu, sao cho vẫn giữ được đặc tính hình học của bề mặt S Trên dữ liệu thực tế, đối với một đối tượng có cấu trúc phức tạp thì một thách thức lớn
là để phân biệt nhiễu từ các cấu trúc tốt, mà cấu trúc tốt đó thể hiện trong các bề mặt ban đầu là lởm chởm, nhấp nhô (ví dụ như lưỡi cưa), hoặc từ các bề mặt có góc, cạnh hay độ cong cao
Trang 17Nó vẫn còn một vấn đề khó là để loại bỏ nhiễu không thể tránh khỏi trong khi vẫn giữ các đặc tính bề mặt cơ bản của đối tượng Đặc biệt, đặc tính tốt là thường bị mất nếu không có xử lý thích hợp được cung cấp
Đầu ra là đám mây điểm đã được lọc nhiễu được xem như là bước tiền xử lý cho các
xử lý tiếp theo trong việc tạo mô hình bề mặt của đối tượng
Cuối cùng, phạm vi của luận văn chỉ xét đến đối tượng là hình hộp với thuộc tính cạnh
và góc được dùng để quét bởi thiết bị Kinect
1.3 Hướng tiếp cận
Nhiều cách tiếp cận khác nhau để giải quyết vấn đề loại bỏ nhiễu bề mặt trên dữ liệu điểm gồm có: theo hướng nội suy hay xấp xỉ một bề mặt mịn như Moving Least Squares (MLS) Đây là phương pháp dựa trên phép chiếu được nhiều người biết đến được giới thiệu bởi Levin (1998) [7] đã có nhiều ứng dụng và mở rộng tiêu biểu như Mederos (2003) đã áp dụng để khử nhiễu đám mây điểm Fleishman (2005) và Oztireli (2009) đã mở rộng để cung cấp một phép chiếu mạnh lên bề mặt MLS: Robust Moving Least Square (RMLS) và Robust Implicit Moving Least Square (RIMLS); áp dụng kỹ thuật thống kê Mark Pauly (2004) đề xuất một kỹ thuật định lượng không chắc chắn trong các đám mây điểm dữ liệu, phương pháp thống kê Bayesian được sử dụng trong bài báo [19] hay Schall (2005) lọc nhiễu đám mây điểm theo cách để xác định vị trí của các điểm trên bề mặt bằng cách di chuyển chúng đến những vị trí cực đại likelihood trong cụm chứa chúng; một hướng tiếp cận khác là từ những thuật toán lọc nhiễu đã được nghiên cứu và ứng dụng trong 2D sẽ được chuyển đổi sang 3D tiêu biểu như từ bài báo lọc nhiễu cho ảnh (bilateral filtering) của tác giả Tomasi và Manduchi (1998), sau đó đã được Shachar Fleishman mở rộng và ứng dụng trong lọc nhiễu trên lưới [25] hay Oliver Schall đã giới thiệu một phương pháp mới trong việc loại bỏ nhiễu đối với dữ liệu tĩnh và dữ liệu thay đổi theo thời gian Trong phương pháp này tác giả cũng đã có sự chuyển đổi từ thuật toán khử nhiễu không cục bộ cho ảnh trong bài báo [3]
Trang 18Với mục tiêu khử nhiễu đám mây điểm sao cho vẫn giữ đặc tính vốn có của đối tượng Phương pháp đề xuất được lấy ý tưởng từ phương pháp Moving Least Squares và từ bài báo của tác giả Oliver Schall Trong phương pháp đề xuất này có sự kết hợp giữa hai phương phương pháp: Thứ nhất là phương pháp MLS, thứ hai là phương pháp không cục bộ cho lọc nhiễu ảnh của tác giả Buades (2005) [3]
1.4 Kết cấu luận văn
Luận văn gồm các chương:
Chương 1 GIỚI THIỆU
Chương 2 TỔNG QUAN
Trình bày về thiết bị Kinect, một số thuật ngữ liên quan đến vấn đề lọc nhiễu dữ liệu, Point Cloud Library (PCL) để có được sự hiểu biết rõ ràng hơn về vấn đề đang được tìm hiểu để có hướng tiếp cận đúng
Chương 3 CƠ SỞ LÝ THUYẾT
Giới thiệu một số lý thuyết cơ bản cần thiết để có liên quan hay được sử dụng trong luận văn
Chương 4 NGHIÊN CỨU LIÊN QUAN
Trình bày tổng quan về các công trình liên quan đến bài toán lọc nhiễu dữ liệu thiết bị cảm biến độ sâu
Chương 5 TRÍCH ĐỐI TƯỢNG
Trình bày các bước để có thể trích đối tượng cần khảo sát ra khỏi cảnh vật, để sau đó đối tượng sẽ được dùng như là đầu vào cho phương pháp khử nhiễu
Chương 6 PHƯƠNG PHÁP KHỬ NHIỄU
Trình bày độ đo cho phương pháp khử nhiễu và phương pháp khử nhiễu cho dữ liệu đám mây
Chương 7 KẾT QUẢ VÀ KẾT LUẬN
Đây là phần để trình bày kết quả thực nghiệm giữa phương pháp đề xuất và phương pháp Moving Least Squares (MLS) Từ kết quả thu được và những nhận xét trên kết quả đó để đưa ra kết luận về phương pháp đã được đề xuất
Trang 19Chương 2 TỔNG QUAN
Chương này bắt đầu bằng việc mô tả tổng quát thiết bị Kinect, bên cạnh đó cũng mô tả cách tính những thuộc tính điểm như: tính normal, 2 phương pháp PFH và FPFH được dùng để tìm điểm tương xứng trong đăng ký (registration) 2 tập điểm
2.1 Kinect
Thiết bị cảm biến Kinect
Thiết bị cảm ứng Microsoft Kinect được phát hành cho Microsoft Xbox 360 video game vào cuối năm 2010 Thiết bị này cho phép người dùng tương tác trò chơi video bằng cách di chuyển cơ thể của mình trong một cách tự nhiên và do đó cho phép chơi game mà không cần dùng bất kỳ phím điều khiển nào Ngoài ra, cảm biến Kinect với Xbox cũng nhận biết khi người dùng nói, nên cho người dùng tìm những chương trình tivi, thể thao, …
Bên cạnh những thành công trong công nghiệp trò chơi Với chi phí thấp cho một thiết
bị Kinect, nhiều nhà nghiên cứu và các sinh viên, học viên trong các lĩnh vực khoa học máy tính, kỹ thuật điện tử và ứng dụng robot đã tận dụng công nghệ cảm biến để phát triển những cách mới trong tương tác và thực hiện nhiều công việc khác nhau
Cảm biến Kinect bao gồm một camera màu, một cảm biến độ sâu (depth sensor) được tạo bởi Microsoft hay còn gọi là RGB-D camera Công nghệ cảm biến theo chiều sâu được tạo bởi công ty PrimeSense Israel, chi tiết bên trong chưa được tiết lộ vẫn còn là
bí mật nhưng nguyên lý hoạt động dựa trên nền tảng “structured light” Bộ phận chiếu
Trang 20hồng ngoại (infrared (IR) projector) của thiết bị Kinect phóng ra các điểm sáng và tối liên tục vào mỗi bề mặt đồi tượng Các điểm mẫu đó sẽ được thu giữ bởi bộ phận camera hồng ngoại (IR camera) Cảm biến Kinect dùng vị trí tương đối của những đốm nhỏ để tính khoảng cách tại mỗi vị trí pixel
Cảm biến độ sâu: 320x240 pixels 16-bit độ sâu
RGB Camera: 640x480 pixels 32-bit màu
Audio: 16-bit @ 16 kHz
Hệ thống theo dõi khung xương
Theo dõi lên đến 6 người, bao gồm 2 người chơi
Theo dõi 20 khớp trên người, 33ms thời gian trả lời
Khả năng ánh xạ người chơi đến LIVE Avatars
Trang 21Hình 2-1: Lấy dữ liệu độ sâu của Kinect
Trang 22xung quanh 3 m theo phân bố Gaussian với một độ lệch chuẩn nhất định Độ lệch chuẩn được xem như là nhiễu trong phép đo
Outliers (big errors)
Một outliers là một phép đo mà sai lệch quá nhiều so với những phép khác Chúng là những phép đo không tuân theo hình học bề mặt cục bộ
2.2 Đám mây điểm (Point Clouds)
Phương pháp lọc nhiễu dữ liệu 3 chiều (3D) được tạo ra từ thiết bị Kinect, được gọi là đám mây điểm 3D Đám mây điểm 3D là một tập điểm 3 chiều không liên thông thể hiện thế giới được thu giữ bởi thiết bị cảm biến Kinect Thể hiện đơn giản của mỗi điểm trong đám mây điểm 3D có tọa độ (x, y, z), nhưng chúng vẫn có thể chứa các thuộc tính khác màu và hướng normal vector
Đám mây điểm 3D được sinh ra từ những ảnh độ sâu (depth image) hay bản đồ độ sâu (depth map) Ảnh độ sâu là một ma trận pixels, mỗi pixel chứa một giá trị độ sâu trong
đó giá trị độ sâu chính là khoảng cách từ bề mặt của đối tượng trong thế giới thực đến camera, sau đó ảnh độ sâu được chuyển đổi sang thể hiện 3D
Một đám mây điểm là một cấu trúc dữ liệu được sử dụng để thể hiện một tập hợp các điểm đa chiều và thường được sử dụng để biểu diễn dữ liệu ba chiều Trong một đám mây điểm 3D, các điểm thường được biểu diễn với tọa độ hình học X, Y, và Z của một
bề mặt mẫu Khi có thêm thông tin màu sắc, các đám mây trở thành điểm 4D
2.3 Point Cloud Library (PCL)
Point Cloud Library (PCL) là thư viện mã nguồn mở được viết trong ngôn ngữ C++, miễn phí trong thương mại và trong nghiên cứu, được sử dụng trong xử lý hình học 3D
và đám mây điểm n-D PCL đã hỗ trợ trên nhiều hệ điều hành như: Windows, MacOS, Linux, và Android đang được cộng đồng sử dụng
Do dữ liệu đám mây (PCD) là lớn và phải thực hiện các tính toán hình học phức tạp nên tốc độ xử lý chậm PCL đã dùng tập lệnh Streaming SIMD Extensions (SSE) cho
Trang 23việc tính toán nhanh trên những CPU hiện đại Bên cạnh PCL cung cấp OpenMP và thư viện Intel Threading Building Blocks (TBB) trong việc xử lý song song Truyền giữ liệu giữa các module (ví dụ như các thuật toán) sử dụng Boost shared pointers [23]
Hình 2-2: Sơ đồ Class của PCL
2.3.1 Một số thư viện module C++:
libpcl_features: chứa các cấu trúc dữ liệu và các kỹ thuật ước lượng dặc tính 3D
từ dữ liệu đám mây điểm Ví dụ normal, độ cong (curvatures), những điểm biên (boundary points), Point Feature Histograms (PFH), Fast PFH…
libpcl_surface: gồm những kỹ thuật xây dựng lại bề mặt như meshing, convex hulls, Moving Least Squares,
libpcl_filters: gồm những kỹ thuật lọc nhiễu, outliers, nó cũng chứa một số phương pháp trích tập con của đám mây điểm, hay loại bỏ những phần của đám mây điểm như downsampling, outlier removal, indices extraction, projections,
libpcl_io: xử lý việc đọc ghi dữ liệu (files: PCD, PLY)
libpcl_segmentation: những xử lý lấy đoạn dữ liệu gồm có cluster extraction, Sample Consensus model fitting, polygonal prism extraction,
libpcl_registration: những phương pháp đăng ký đám mây dữ liệu Iterative Closest Point (ICP), non linear optimizations,
2.3.2 Bộ lọc (filter)
Giới hạn phạm vi (PassThrough)
Trang 24Lọc ra các điểm nằm ngoài phạm vi được chỉ định
Giảm mẫu (Voxel Grid)
Đám mây dữ liệu được thể hiện dưới dạng lưới 3D Mỗi phần tử của lưới 3D là những hộp (box) hay còn gọi là “voxel” chứa các điểm dữ liệu Mỗi voxel mà hoàn toàn bị chiếm giữ thì được lấy thay thế bởi tâm của những điểm bên trong nó
Loại bỏ Outliers (StatisticalOutlierRemoval / RadiusOutlierRemoval)
Loại ra điểm dựa trên mật độ điểm cục bộ của chúng Loại bỏ các điểm có thưa thớt so với mật độ điểm trung bình của toàn bộ đám mây
Hình 2-3: Bộ lọc PassThrough
2.3.3 Những đặc tính điểm (Point Features)
Việc thể hiện Point Features được mô tả như một vector mà nó mô tả thông tin hình học cục bộ xung quanh một điểm đang được xem xét
Công thức của một thể hiện đặt tính cho một điểm pq là điểm đang được truy vấn và Pk
là tập k hàng xóm xung quanh điểm pq được thể hiện như sau:
( ) { } Với n thể hiện vector kết quả có n chiều
Trang 25Hình 2-4: Sơ đồ class đặc tính điểm
Hình 2-5: Đám mây điểm 3D Hình 2-6: Tính normal của dữ liệu điểm Với Pk là tập các điểm là hàng xóm của điểm truy vấn pq, Pk đƣợc dùng để ƣớc lƣợng
một xấp xỉ normal của bề mặt tại điểm truy vấn pq việc xác định Pk có 2 cách sau:
Xác định k hàng xóm gần nhất của điểm truy vấn (k search)
Xác định các hàng xóm của điểm truy vấn trong bán kính r (r search)
Cho điểm truy vấn pq, một tập các điểm hàng xóm cho mục đích ƣớc lƣợng normal bề
mặt đƣợc lấy mẫu quanh điểm truy vần pq Vấn đề xác định các hệ số k hoặc r để chỉ ra
Trang 26những hàng xóm xung quanh điểm truy vấn có ảnh hưởng đến việc ước lượng normal tại điểm truy vấn
Hình phía bên trái cho thấy một ước lượng normal hợp lý hơn với chọn lựa hệ số k hoặc r là nhỏ so với phía bên phải với các hệ số là lớn
Chọn lựa các hệ số phù hợp là một việc khó
Hình 2-7: Ước lượng bề mặt normal a) hệ số tỉ lệ nhỏ (tốt) bên trái; b) hệ số tỉ lệ lớn
(xấu) bên phải
2.3.5 PFH (Point Feature Histogram)
PFH là kỹ thuật mạnh đối với dữ liệu nhiễu và chứa outliers trong việc lấy đặc tính thông tin Mục tiêu là lấy được đặc trưng hình học cục bộ tại một điểm hay nói cách khác là một xấp xỉ hình học của một điểm dùng thông tin về k hàng xóm xung quanh của điểm đó, với từng cặp điểm được nối với nhau như hình dưới
Hình 2-8: Hàng xóm xung quanh từng cặp điểm
Trang 27Dữ liệu đầu vào bao gồm đám mây điểm 3D, những normal của đám mây dữ liệu đầu vào đã được ước lượng với bán kính hàng xóm xung quanh là rn ( normal radius), bán kính rf là bán kính xác định k điểm với khoảng cách nhỏ hơn rf là điểm hỗ trợ trong việc tính đặc trưng hình học của điểm đang xét Trong đó rf > rn
Kết quả của thuật toán là một mảng giá trị kiểu float thể hiện histogram về sự quan hệ của tất cả các cặp điểm
Hình 2-9: Histogram đặc tính
Độ phức tạp của giải thuật O(nk2) với n là số điểm trong đám mây điểm đầu vào
2.3.6 FPFH (Fast Point Feature Histogram)
Với mục đích làm cho việc tính toán trở nên nhanh hơn, thuật toán PFH đã được đơn giản hóa trong việc xử lý nhưng vẫn đảm bảo thông tin trong PFH Như vậy, FPFH [22] là phương pháp được thay đổi từ PFH với độ phức tạp tính toán là O(nk)
Trang 28Hình 2-10: Hàng xóm xung quanh điểm Thủ tục FPFH được tính đơn giản lại như sau:
i) Với mỗi điểm truy vấn p chỉ xét mối quan hệ giữa điểm đó và k điểm hàng
xóm của nó Bước này được gọi là Simplified Point Feature Histogram (SPFH) Hình 2-10 trên
ii) Tính SPFH cho k giá trị hàng xóm có được của p ở bước 1, các giá trị này
được dùng làm trọng số của histogram cuối cùng
Hình 2-11: Hàng xóm của những hàng xóm
Sự khác biệt chính giữa thủ tục tính toán PFH và FPFH là:
1 Độ phức tạp của PFH là O(nk2) còn FPFH la O(nk)
2 Với PFH điểm truy vấn và các hàng xóm của nó từng cặp với nối với nhau Trong khi FPFH chỉ có sự liên kết giữa điểm truy vấn và các hàng xóm của nó
3 FPFH chứa thêm mối liên kết giữa các hàng xóm của những hàng xóm của điểm truy vấn
Trang 29Chương 3 CƠ SỞ LÝ THUYẾT
Trong chương này trình bày một số phương pháp hay được sử dụng trong xử lý dữ liệu nhiều chiều, có kích thước lớn cần có một cấu trúc dữ liệu lưu trữ để hỗ trợ trong việc tìm kiếm
3.1 Khoảng cách Euclidean
Khoảng cách Euclidean giữa các điểm p và q là độ dài của đoạn thẳng kết nối chúng
, , khoảng cách giữa 2 điểm p, q là
dữ liệu và cũng được dùng trong việc giảm chiều
PCA trong tập điểm 3D thì số hướng chính bằng với số chiều của các điểm dữ liệu Việc tính các thành phần chính gồm các bước sau: đầu tiên cần tính tâm của tập dữ liệu
Trang 30của , được tính bởi Singular Value Decomposition (SVD) Trong trường hợp 3D, eigenvectors thứ 3 được xem là hướng normal
3.3 Random Sample Concensus (RANSAC)
RANSAC là phương pháp ngẫu nhiên để ước lượng những tham số của một mô hình
Nó đặc biệt mạnh trong dữ liệu có nhiễu khi mà những phương pháp khác không thực hiện được RANSAC được viết tắt từ RANdom Sampling Consensus được thể hiện đầu tiên 1981 [11] Với một tập dữ liệu gồm P điểm dữ liệu, thủ tục vòng lặp của giải thuật được thể hiện như sau:
1 Chọn một tập con k điểm dữ liệu ngẫu nhiên
2 Xây dựng một mô hình từ k điểm dữ liệu
3 Đánh giá chất lượng phù hợp của mô hình dựa trên các điểm còn lại
3.4 Kd-tree
Trong đám mây điểm 3D, để tăng hiệu suất trong việc xử lý thì cần một cấu trúc dữ liệu lưu trữ hiệu quả Kd-tree (k-dimensional tree) là một cấu trúc dữ liệu tổ chức tập điểm trong một không gian k chiều Nó là một cây tìm kiếm nhị phân nhiều chiều hữu dụng trong việc tìm kiếm trong phạm vi hay các hàng xóm gần nhất Tham khảo thêm trong quyển “Computational Geometry Algorithms and Applications” của tác giả Mark
de Berg 2008
Trang 31Ý tưởng là tại mỗi mức của kd-tree chia tập điểm của cây theo một chiều cụ thể: chiều
x, chiều y,…Đến khi số điểm chỉ còn 1 điểm
Chiều x (x-coordinate): chia tập điểm bởi đường thẳng đứng với một nữa bên trái và một nữa bên phải chiều y (y-coordinate): chia tập điểm bởi đường thằng nằm ngang với một nữa bên trên và một nữa bên dưới
Ví dụ của kd-tree 2 chiều Thư viện đám mây điểm PCL đã cài đặt chi tiết của cấu trúc dữ liệu kd-tree
Trang 32Chương 4 NGHIÊN CỨU LIÊN QUAN
Chương này sẽ trình bày một số công trình liên quan đến đề tài nghiên cứu gồm những
kỹ thuật xủ lý trực tiếp trên đám mây điểm không có cấu trúc hay một số phương pháp
xử lý trên dữ liệu 2D, nhưng những phương pháp này có thể được sử dụng để mở rộng trên dữ liệu 3D
4.1 Mesh-Independent Surface Interpolation [7]
Tác giả nội suy bề mặt mịn từ dữ liệu phân tán không có cấu trúc bằng cách kết hợp những vùng cục bộ, mỗi vùng là một xấp xỉ trên mình tham khảo cục bộ Bài báo dùng phương pháp chiếu tiếp cận theo “Moving-Least-Square” (MLS) cho việc chiếu độc lập lưới
Cho S là bề mặt trong , { } là các điểm trên S hoặc gần S với mỗi điểm r thủ tục
chiếu được thể hiện trong 2 bước chinh:
Bước 1: Hệ tham chiếu cục bộ
Tìm một mặt phẳng { | }
Hình 4-1: Tìm mặt phẳng Slides của Niloy J Mitra và An Nguyen
Sao cho tối thiểu
∑
Nếu có nhiều tối ưu cục bộ thì mặt phẳng gần nhất đến r được chọn <•, •> là inner
product trong
Trang 33là trọng số, giảm khi khoảng cách tăng
Hình 4-2: Tìm mặt phẳng Hr tối ưu Slides của Niloy J Mitra và An Nguyen
Bước 2: Xấp xỉ MLS
Đặt { } là phép chiếu vuông gốc của những điểm { } trên mặt phẳng Hr ,
Và đặt là chiều cao của những điểm { } trên Hr, Với q là điểm chiếu cả r trên Hr, là gốc của hệ tọa độ vuông Hr
Tìm đa thức bậc m là xấp xỉ cục bộ, ̃ sao cho tối thiểu:
∑
Giá trị ̃ xấp xỉ chiều cao của S trên Hr tại gốc tọa độ q
Như vậy xấp xỉ của việc chiếu của r trên S là: ̃ ̃ , ̃ ̃
Hình 4-3: Chiếu của r trên S Slides của Niloy J Mitra và An Nguyen
Trang 344.2 Curve Reconstruction from Unorganized Points [9]
Tác giả In-Kwon Lee đã áp dụng kỹ thuật moving least-squares để làm mịn point cloud
có dạng hình cong Bài báo đã cài đặt trên tập điểm 2D sau đó đã mở rộng lên tập điểm 3D
Cấu trúc dữ liệu dùng để định nghĩa sự liên thông của các thành phần trong tập điểm là Euclidean Minimum Spanning Tree (EMST)
Để xác định kích thước hàng xóm phản ánh phù hợp độ dày của point cloud, tác giả đã giới thiệu khái niệm “correlation” trong thuyết xác suất, tham khảo thêm J Pitman, Probability (Springer-Verlag 1992)
4.3 Point set surfaces [13]
Tương tự phương pháp của Levin, nhưng Marc Alexa thay cho hàm trọng số cho mỗi ri
là khoảng cách đến r (trường hợp Levin) bằng khoảng cách của ri đến điểm chiếu của r, đặt là q, trên mặt phẳng H
Trang 354.4 Robust moving Least-squares Fitting with Sharp Features [26]
Shachar Fleishman giới thiệu một định nghĩa bề mặt mịn từng phần (a piecewise smooth surface) bằng cách định nghĩa toán tử chiếu để chiếu một điểm lên trên vùng mịn cục bộ chứ không phải một bề mặt giả sử là mịn mọi nơi
Cho một điểm x, phân tích hàng xóm của nó:
- Nếu xác định là mịn thì dùng phương pháp chiếu của Levin
- Ngược lại, phân loại hàng xóm của điểm đó thành những tập con những vùng mịn bỏ qua outliers và chiếu điểm đó lên vùng mịn gần nhất
Các trường hợp định nghĩa bề mặt mịn từng phần (piecewise smooth surface)
Hình 4-5: Chiếu lên bề mặt gần cạnh Dùng thuật toán iterative refitting, dựa trên thuật toán forward-search, để tìm các vùng mịn của hàng xóm của điểm đang xét
Hình 4-6: Bề mặt mịn từng phần được xây dựng
Trang 364.5 Similarity-based denoising of point-sampled surface [24]
Dựa trên ý tưởng cơ bản của thuật toán khử nhiễu không cục bộ (non-local denoising algorithm, NLD) cho khử nhiễu (denoising) ảnh được đề xuất bởi Buades et al (2005) Thuật toán NLD cho bề mặt mẫu điểm dự trên sự tương tự bao gồm cường độ hình học
và những đặc tính của các điểm mẫu được tác giả thể hiện như sau:
- Cường độ hình học (geometry intensity) cho mỗi điểm pi là giá trị khác biệt của mỗi điểm mẫu được xác định bởi trilateral filtering operator
- Lưới cường độ hình học (grid of geometry intensity) cho mỗi điểm được xây dựng bằng phân tích (covariance analysi) để tìm mặt phẳng tham chiếu cục bộ
- Vị trí được dịch chuyển theo hướng normal vector
4.6 Adaptive feature-preserving non-local denoising of static and time-varying range data [17]
Theo bài báo “A non-local algorithm for image denoising”, tác giả đề xuất thuật toán
“non-local means” (NL-mean) với giả định một hình ảnh chứa số lượng lớn tương tự chính nó (self-similarity) Một ví dụ tương tự chính nó cho thấy trong Hình 4-7
Trang 37Hình 4-7: Non-Local trên ảnh Hình trên cho thấy 3 pixels: p, q, r và những vùng lân cận tương ứng Những hàng xóm của pixel p và q là tương tự nhau nhưng những hàng xóm của pixel p và r thì không tương tự nhau Với giả thiết tương tự chính nó được dùng để khử nhiễu một ảnh Những pixel với hàng xóm tương tự nhau được dùng để xác định giá trị của một pixel
bị nhiễu Một ảnh nhiễu, giá trị ước lượng của một pixel được tính như là trung bình trọng số của tất cả các pixel trong hình ảnh
Oliver Schall đã mở rộng hướng tiếp cận này cho khử nhiễu dữ liệu miền Với giả định rằng dữ liệu được thể hiện dưới dạng điểm và được sắp xếp theo một cấu trúc lưới Tác giả không lấy tổng trên tất cả vị trí điểm để lọc một điểm mà trên vùng vuông xung quanh điểm
Sau khi áp dụng thuật toán cho mỗi frame độc lập với kết quả thỏa mãn, tác giả đã mở rộng trên miền thời gian Những điểm với tương tự nhau vùng lân cận không chi bên trong một frame mà còn trên các frame lân cận, bao gồm frame trước và sau frame hiện hành
4.7 Efficient Spatio-Temporal Hole Filling Strategy for Kinect Depth Maps [14]
Trong bài báo tác giả thể hiện một hướng làm đầy lỗ trống để cải thiện chất lượng của bản đồ độ sâu (depth maps) được tạo ra từ thiết bị Kinect Hướng đề xuất được dựa trên cơ sở joint-bilateral filtering ( cross-bilateral filter ) đã được mở rộng từ bilateral filter, là một kỹ thuật lọc giữ đặc tính cạnh Mục tiêu của tác giả là xây dựng một bảng
Trang 38đồ độ sâu không bị nhiễu bằng cách dùng cả hai thông tin không gian và thời gian, gồm
D: bảng đồ độ sâu (depth data)
Dm: mô hình bảng đồ độ sâu (depth map model)
Cmap: độ tin các phép đo độ sâu trong Dm
Bài báo của tác giả chỉ liên hệ đến cảnh vật tĩnh
4.8 Adaptive Spatio-Temporal Filter For Low-Cost Camera Depth Maps [15]
Trong bài báo tác giả thể hiện bộ lọc thuộc về không gian và thời gian để cải thiện sự chính xác và ổn định về thời gian của camera chi phí thấp Hệ thống đƣợc đề xuất gồm
3 khối để xây dựng một bảng đồ độ sâu của cảnh vật tĩnh chắc chắn
Trang 39Hình 4-9: Sơ đồ khối AJBF
Adaptive Joint-Bilateral Filter (AJBF): dùng giảm sự thay đổi của những giá trị
độ sâu mà thuộc về cùng vùng đối tƣợng trong khi giữ và cải thiện phép đo độ sâu của cạnh
Hole Filling (HF): gán giá trị cho những pixel độ sâu không đƣợc đo measured depth - nmd) đầu vào bản đồ độ sâu đã đƣợc lọc đƣợc cung cấp từ khối AJBF
(no- Adaptive Kalman Filter (AKF): dùng để theo dõi những độ đo dao động theo thời gian, nó giảm những dao động về thời gian của mỗi pixel
Trang 40Chương 5 TRÍCH ĐỐI TƯỢNG
Trong chương này sẽ trình bày về các bước rút ra phần của đối tượng cần được khảo sát từ cảnh vật được quét với thiết bị cảm biến Kinect từ một góc nhìn Bên dưới là sơ
đồ trình bày trình tự của quá trình trích đối tượng
Hình 5-1: Sơ đồ thuật toán trích đối tượng
5.1 Thu thập dữ liệu
Có nhiều loại thiết bị đo 3D khác nhau: laser scanner, stereo camera, time-of-light camera Trong đề tài chỉ quan tâm đến dữ liệu 3D được tạo ra bởi thiết bị cảm biến Xbox 360 Kinect, giá trị độ sâu được chuyển đổi về đám mây điểm 3D Cụ thể, dữ liệu được lấy từ thiết bị Kinect khi quét bề mặt đối tượng là một cái hộp