Đồ án TRÍCH CHỌN mặt PHẲNG đất TRONG môi TRƯỜNG đám mây điểm 3d , Đồ án TRÍCH CHỌN mặt PHẲNG đất TRONG môi TRƯỜNG đám mây điểm 3d , Đồ án TRÍCH CHỌN mặt PHẲNG đất TRONG môi TRƯỜNG đám mây điểm 3d , Đồ án TRÍCH CHỌN mặt PHẲNG đất TRONG môi TRƯỜNG đám mây điểm 3d
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
TRÍCH CHỌN MẶT PHẲNG ĐẤT TRONG MÔI TRƯỜNG ĐÁM MÂY ĐIỂM 3D
Hà Nội, 5-2018
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
TRÍCH CHỌN MẶT PHẲNG ĐẤT TRONG MÔI TRƯỜNG ĐÁM MÂY ĐIỂM 3D
Hà Nội, 5-2018
Trang 3Đánh giá quyển đồ án tốt nghiệp (Dùng cho giảng viên hướng dẫn)
Giảng viên đánh giá:
Họ và tên Sinh viên: MSSV:………
Tên đồ án:
………
Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí dưới đây: Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) 3 Nhận xét thêm của Thầy/Cô (giảng viên hướng dẫn nhận xét về thái độ và tinh thần làm việc của sinh viên)
Ngày: / /201 Người nhận xét
(Ký và ghi rõ họ tên)
Trang 4Đánh giá quyển đồ án tốt nghiệp (Dùng cho cán bộ phản biện)
Giảng viên đánh giá:
Họ và tên Sinh viên: MSSV:………
Tên đồ án:
………
Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí dưới đây: Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5)
Có sự kết hợp giữa lý thuyết và thực hành (20)
1
Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và
các giả thuyết (bao gồm mục đích và tính phù hợp) cũng như
phạm vi ứng dụng của đồ án
1 2 3 4 5
2 Cập nhật kết quả nghiên cứu gần đây nhất (trong nước/quốc tế) 1 2 3 4 5
3 Nêu rõ và chi tiết phương pháp nghiên cứu/giải quyết vấn đề 1 2 3 4 5
4 Có kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quả
Có khả năng phân tích và đánh giá kết quả (15)
5
Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp
thực hiện dựa trên kết quả nghiên cứu lý thuyết một cách có hệ
thống
1 2 3 4 5
6 Kết quả được trình bày một cách logic và dễ hiểu, tất cả kết
quả đều được phân tích và đánh giá thỏa đáng 1 2 3 4 5
7
Trong phần kết luận, tác giả chỉ rõ sự khác biệt (nếu có) giữa
kết quả đạt được và mục tiêu ban đầu đề ra đồng thời cung cấp
lập luận để đề xuất hướng giải quyết có thể thực hiện trong
tương lai
1 2 3 4 5
Kỹ năng viết (10)
8 Đồ án trình bày đúng mẫu quy định với cấu trúc các chương
logic và đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, được
đánh số thứ tự và được giải thích hay đề cập đến trong đồ án,
có căn lề, dấu cách sau dấu chấm, dấu phẩy v.v), có mở đầu
chương và kết luận chương, có liệt kê tài liệu tham khảo và có
1 2 3 4 5
Trang 5trích dẫn đúng quy định
9 Kỹ năng viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa
học, lập luận logic và có cơ sở, từ vựng sử dụng phù hợp v.v.) 1 2 3 4 5
Thành tựu nghiên cứu khoa học (5) (chọn 1 trong 3 trường hợp)
10a
Có bài báo khoa học được đăng hoặc chấp nhận đăng/đạt giải
SVNC khoa học giải 3 cấp Viện trở lên/các giải thưởng khoa
học (quốc tế/trong nước) từ giải 3 trở lên/ Có đăng ký bằng
phát minh sáng chế
5
10b
Được báo cáo tại hội đồng cấp Viện trong hội nghị sinh viên
nghiên cứu khoa học nhưng không đạt giải từ giải 3 trở
lên/Đạt giải khuyến khích trong các kỳ thi quốc gia và quốc tế
khác về chuyên ngành như TI contest
2
Điểm tổng quy đổi về thang 10
3 Nhận xét thêm của Thầy/Cô
Ngày: / /201 Người nhận xét
(Ký và ghi rõ họ tên)
Trang 6LỜI NÓI ĐẦULuận văn này được thực hiện với mục đích tìm hiểu về ứng dụng công nghệthị giác máy tính, đặc biệt là thị giác ba chiều, trong công cuộc nghiên cứu và pháttriển khoa học, cũng như ứng dụng đời sống thực tiễn
Trước tiên, xin cảm ơn thầy PGS.TS và Th.S vì đã gợi mở, quan tâm, giúp
đỡ hoàn thiện luận văn trong suốt thời gian thực hiện đề tài tốt nghiệp này Với sự
đồng thuận của nhóm nghiê cứu, tác giả đã tham khảo công trình nghiên cứu củacác thầy hướng dẫn về bài toán phát hiện vật thể trong xử lý ảnh chiều sâu
Bên cạnh đó, cũng xin gởi lời cảm ơn đến tất cả những thầy cô đã trực tiếpgiảng dạy trong suốt khóa học; những người bạn đã quan tâm, chia sẻ kiến thức,kinh nghiệm cũng như giúp đỡ vật chất trong quá trình học tập và thực hiện đồ ánnày
Cũng xin chân thành cảm ơn sự quan tâm hỗ trợ, tạo điều kiện và hết lòngđộng viên về tinh thần lẫn vật chất của các thành viên trong gia đình trong suốt thờigian qua
Sau cùng, xin gởi lời chúc sức khỏe, hạnh phúc đến quý thầy cô, gia đình vàbạn bè
Trang 7TÓM TẮTVới sự phát triển công nghệ hiện đại thế kỷ 21 ngày càng vượt bậc, nhu cầuđặt ra ngày càng thiết yếu là những nghiên cứu phát minh ra những phương phápthu thập và xử lý thông tin thế giới bên ngoài bởi máy tính Một trong những lĩnhvực đi đầu là Thị giác máy tính, bởi vì thị giác là giác quant hu thập được thông tinmột cách trực quan và sống động nhất Hơn nữa, Thị giác máy tính mở ra rất nhiềuứng dụng khoa học thực tế cho phép máy tính phục vụ đời sống con người từ nhiềuhướng khác nhau.
Thị giác máy tính ban đầu sử dụng dữ liệu đầu vào là hình ảnh 2D, và phốihợp với kỹ thuật xử lý hình ảnh số, ứng dụng thị giác 2D đã đem lại những thànhtựu công nghệ mang tính nền tảng trong lĩnh vực thị giác máy tính Đi lên một bậccao hơn nữa là ứng dụng áp dụng hình ảnh 3D (point cloud, mesh-based,…) Banđầu ứng dụng này không đáng kể, vì những thiết bị camera 3D vẫn còn đắt tiền,nhưng từ khi có sự xuất hiện của thiết bị Kinect rẻ tiền được phát triển bởiMicrosoft, đã có sự thúc tiến phát triển kỹ thuật, thuật toán xử lý dữ liệu cấu trúc3D với mục đính biến đổi dữ liệu khối này thành thông tin thị giác hữu ích
Mục đích của luận văn này là tìm hiểu và khám phá kỹ thuật và ứng dụngcủa thị giác 3D thông qua ứng dụng cơ bản nhất là trích chọn vật thể (objectsegmentation), cụ thể ở đây là dạng mặt phẳng (mặt đất) Hệ thống Kinect đã đượctận dụng để thu thập thông tin chân thực, cũng như phần mềm được lập trình bằngngôn ngữ C++ trên nền tảng Point Cloud Library (PCL) để áp dụng các chức năng
xử lý cơ bản tập đám mây điểm Kết quả thu được sẽ cho phép hiển thị vật thể (mặtđất) cần trích chọn, đồng thời đánh giá một cách so sánh giữa những thuật toán tríchchọn khác nhau để có cái nhìn trực quan hơn về tính thực tế của ứng dụng thị giác3D
Trang 8ABSTRACTWith the ever-growing pace of 21th century of scientific and technologicaladvancements, so too are demands for more effective applications of saidtechnologies, as well as their sophistications, to better serve the more and morecomplex everyday lives One primary demand of such nature is the demand to betteracquire and utilize information of real world by computers, in which ComputerVision is a pioneering field of study, due to fascinating level of realism andusefulness inherent in visionary information.
Computer Vision’s foremost source of information was in the form of 2Dimages, and combined with Digital Image Processing, has laid solid foundation forall researches and achievements in the field Later, 3D data was introduced, but notfully studied upon, because data retrieval devices such as 3D cameras wereexpensive and a rare commodity Since the development of cheap Kinect system byMicrosoft, however, studies and applications of 3D visionary data has receivedmuch more attention than before
The purpose of this thesis is to learn and explore the techniques and viability
of 3D visionary data for applications, starting with its most basic feature: objectrecognition (segmentation), ground plane in particular The author utilizes in usefulfeature of Kinect to capture and store 3D data, then designs in C++ languageprogram using 3D processing tools provided by Point Cloud Library (PCL) forground plane segmentation The results show visual recognition of ground plane, aswell as comparison between segmenting algorithms, for a better understanding of3D computer vision’s applicability
Trang 9MỤC LỤC
LỜI NÓI ĐẦU 1
TÓM TẮT 2
ABSTRACT 3
Chương 1 Tổng quan xử lý dữ liệu hình ảnh 3D 9
1.1 Vấn đề trích chọn cơ bản (segmentation) 9
1.2 Các phương pháp trích chọn kinh điển 10
1.2.1 Phương pháp trích chọn viền (edge-based) 10
1.2.2 Phương pháp phát triển vùng (region growing) 11
1.2.3 Phương pháp khớp mô hình (model fitting) 12
1.2.4 Phương pháp lai (hybrid) 14
1.2.5 Phương pháp học máy tính (machine learning) 14
2 Mục tiêu thực hiện của luận văn 15
Chương 2 Giới thiệu về hệ thống thu thập ảnh 3D 16
2.1 Giới thiệu chung về hệ thống Kinect 16
2.2 Môi trường hoạt động của hệ thống Kinect 17
2.2.1 Chỉ số kỹ thuật 17
2.2.2 Không gian tọa độ Kinect 18
2.2.3 Hệ thống phần mềm 19
2.2.4 Vài nét về đám mây điểm có cấu trúc và không có cấu trúc 22
Chương 3 Trích chọn mặt phẳng đất trong dữ liệu Kinect 24
3.1 Ý tưởng hệ thống 24
3.2 Thuật toán trích chọn sử dụng trong hệ thống 25
3.2.1 Thuật toán đề xuất 25
3.2.2 Thuật toán RANSAC 32
Trang 103.2.3 Thuật toán Random Hough Transform 33
3.3 Bố trí phần cứng 35
3.4 Xây dựng phần mềm 35
Chương 4 Kết quả, đánh giá và thảo luận 40
4.1 Đánh giá kết quả đạt được 40
4.2 Kết quả và nhận xét 41
4.2.1 Kết quả thứ nhất 42
4.2.2 Kết quả thứ hai 44
4.2.3 Kết quả thứ ba 46
4.3 Đánh giá hệ thống 47
4.3.1 Ưu điểm 47
4.3.2 Nhược điểm 48
4.4 Kết luận 49
Tài liệu tham khảo 51
Các trang web tham khảo 53
Đối chiếu thuật ngữ Việt Anh 53
Phụ lục 54
Trang 11DANH SÁCH HÌNH VẼ
Hình 2.1 Ví dụ kết quả trích chọn đám mây điểm thành nhiều nhóm điểm [1] 9
Hình 2.2 Các phương pháp trích chọn hiện hành [1] 10
Hình 2.3 Tìm đường viền để khoang vùng vật thể 10
Hình 2.4 Phương pháp phát triển vùng tích hợp trong PCL [1] 11
Hình 2.5 Ví dụ đơn giản của ứng dụng thuật toán học máy tính 15
Hình 1.1 Kinect 16
Hình 1.2 Cấu trúc phần cứng của Kinect 17
Hình 1.3 Phạm vi độ sâu của Kinect, chế độ cận và mặc định 19
Hình 1.4 Ứng dụng chung của OpenNI là phần mềm trung gian giữa giao diện phần mềm và các thiết bị cảm biến NI 20
Hình 1.5 Ví dụ về đám mây điểm được thu lại từ Kinect 20
Hình 1.6 Logo của pointclouds.org 21
Hình 3.1 Sơ đồ khối khái quát hệ thống 24
Hình 3.2 Quy định φ và θ của vector 27
Hình 3.3 Hệ trục tọa độ của Kinect 28
Hình 4.1 Đám mây điểm mẫu ảnh 1 ban đầu và sau khi lọc qua lưới voxel 42
Hình 4.2 Hiển thị kết quả điểm mặt đất trên mẫu ảnh 1 Từ trái sang phải, từ trên xuống dưới: tích hợp PCL, thuật toán phát triển vùng, RHT và RANSAC 44
Hình 4.3 Đám mây điểm mẫu ảnh 2 ban đầu và sau khi lọc qua lưới voxel 44
Hình 4.4 Hiển thị kết quả điểm mặt đất trên mẫu ảnh 2 Từ trái sang phải, từ trên xuống dưới: tích hợp PCL, thuật toán phát triển vùng, RHT và RANSAC 46
Hình 4.5 Đám mây điểm mẫu ảnh 3 ban đầu và sau khi lọc qua lưới voxel 46
Trang 12DANH SÁCH BẢNG BIỂU
Bảng 2.1 Chỉ số kỹ thuật của Kinect 18Bảng 4.1 Bảng kết quả chỉ số đánh giá các phương pháp trích chọn trên mẫu ảnh 1 Các phương pháp được so sánh với phương pháp tích hợp PCL 42Bảng 4.2 Bảng kết quả chỉ số đánh giá các phương pháp trích chọn trên mẫu ảnh 2 Các phương pháp được so sánh với phương pháp tích hợp PCL 45Bảng 4.3 Bảng kết quả chỉ số đánh giá các phương pháp trích chọn trên mẫu ảnh 2 Các phương pháp được so sánh với phương pháp tích hợp PCL 47
Trang 13CÁC TỪ VIẾT TẮT
MLESAC Maximum likelihood estimation sample consensus
OpenNI Open-source Natural Interaction
FLANN Fast Library for Approximate Nearest Neighbors
APHT Progressive Probabilistic Hough Transform
Chương 1.Tổng quan xử lý dữ liệu hình ảnh 3D
1.1 Vấn đề trích chọn cơ bản (segmentation)
Dữ liệu đám mây điểm 3D là công cụ đơn giản nhất, đồng thời cũng rất hiệuquả trong việc biểu hiện những thành phần hình học cơ bản mang thông tin hìnhdạng, kích thước, vị trí và định hướng của vật thể trong không gian Thông tin điểmảnh có thể được tăng cường từ dữ liệu thu được từ các bộ cảm biến khác nhau, nhưmàu sắc, đa phổ, nhiệt đồ… Phương pháp hữu hiệu nhất để tìm hiểu và khai thácthông tin từ đám mây điểm là trích chọn và phân loại điểm.[1] Trích chọn là tác vụ
Trang 14gộp lại nhóm những điểm ảnh có một hay nhiều đặc trưng tương đồng, trong khiphân loại gán lớp cho mỗi nhóm này dựa trên các đặc tính tương đồng của chúng.
Đặc biệt là do cơ chế thu thập ảnh độ sâu nhờ tín hiệu phản xạ của Kinect(phương pháp khảo sát LiDAR – Light Detection and Ranging), dữ liệu đám mâyđiểm thu được có tính chất 2.5D bề mặt thay vì biểu diễn khối 3D của vật thể, vì thếhầu hết các phương pháp trích chọn điểm đều được thiết kế để nhận diện vật thể qua
bề mặt Nhiều phương pháp trích chọn cần tinh sửa những tham số đầu vào để phùhợp với thể loại bề mặt vật thể cần trích chọn, cũng như vị trí và định hướng vật thể
đó nếu được chụp với thiết bị Kinect để ở bề mặt vững và góc quay không vượt quágiới hạn phần cứng
Hình 1.1 Ví dụ kết quả trích chọn đám mây điểm thành nhiều nhóm điểm [1].
1.2 Các phương pháp trích chọn kinh điển
Hình 1.2 Các phương pháp trích chọn hiện hành [1].
Trang 151.2.1 Phương pháp trích chọn viền (edge-based)
Phương pháp loại này thực hiện hai nhiệm vụ chính: (i) nhận dạng đườngviền trích chọn các vùng khác nhau và (ii) gộp nhóm các điểm nằm bên trongđường viền để đưa ra kết quả trích chọn cuối cùng [2] Đường viền được xác định làcác điểm mà tại đó có sự biến thiên tính chất bề mặt lớn hơn một ngưỡng nhất định.Tính chất bề mặt được sử dụng ở đây là vector pháp tuyến, gradient, đường congchính hoặc vi phân không gian bậc cao [3] Cho dù phương pháp này trích chọn rấtnhanh, phương pháp này dễ chịu ảnh hưởng nhiễu và mật độ điểm không đều Hơnnữa, trong không gian 3D, các đường viền tìm được dễ bị đứt đoạn, gây khó khăntrong việc gộp các điểm trong đường bao kín
Hình 1.3 Tìm đường viền để khoang vùng vật thể.
1.2.2 Phương pháp phát triển vùng (region growing)
Phương pháp thể loại này bắt đầu tại điểm hạt (seed point) sau đó phát triểndần vùng xung quanh điểm hạt với đặc trưng bề mặt tương đồng như: hướng bềmặt, độ cong … Phương pháp này có thể được thực hiện theo hai cách [2]:
Từ dưới lên: chọn điểm hạt, sau đó phát triển thành vùng với cơ sở tiêuchuẩn tương đồng cho trước Chọn điểm hạt sai ảnh hưởng trực tiếp đếnquá trình trích chọn và có thể dẫn đến trích chọn quá nhiều hoặc quá ít
Từ trên xuống: gộp một tập hợp các điểm lân cận lại và gán một bề mặtcho tập điểm này Vấn đề nan giải của cách này là cách chia nhỏ các vùngkhông hạt
Các thuật toán dựa trên vùng (region-based) bao gồm hai bước: nhận diệncác điểm dựa trên tính chất bề mặt của chúng và phát triển các điểm này dựa trên
Trang 16các tiêu chuẩn như là vùng xấp xỉ hoặc tính phẳng của bề mặt Trong khi ngày càng
có nhiều nghiên cứu phát triển thuật toán dựa trên vùng, có nhiều phát kiến thuậttoán đa dạng, như sử dụng ô cửa sổ làm đơn vị phát triển vùng [5], tận dụng dữ liệumàu sắc…
Nói tóm lại, phương pháp phát triển vùng có lợi thế với nhiễu hơn phươngpháp tìm đường viền, do việc tận dụng toàn diện thông tin bề mặt Tuy nhiên, đôchính xác của phương pháp này dễ bị ảnh hưởng bởi (i) vị trí các điểm hạt và (ii) sai
số trong tính toán các số liệu pháp tuyến và độ cong của điểm gần phần rìa củavùng
Hình 1.4 Phương pháp phát triển vùng tích hợp trong PCL [1].
1.2.3 Phương pháp khớp mô hình (model fitting)
Phương pháp này dựa trên nhận xét căn bản là các vật thể nhân tạo có thểphân thành những hình dạng căn bản như mặt phẳng, hình trụ hoặc hình cẩu… Ýtưởng của phương pháp là khớp mô hình căn bản này vào đám mây điểm, và tậpđiểm có phân phối tuân theo mô hình này được phân loại thành một vùng
Có hai phương pháp kinh điển thuộc thể loại khớp mô hình: Random SampleConsensus (RANSAC) [6] và biến đổi Hough (HT) [7]
RANSAC có thể nói là phương pháp khớp mô hình thông dụng nhất trong lĩnhvực xử lý ảnh nói riêng và xử lý tín hiệu số nói chung Ý tưởng chung củaphương pháp này là: ta lựa chọn một cách ngẫu nhiên một số mẫu tối thiểu đểxây dựng mô hình (2 điểm cho đường thẳng, 3 điểm cho mặt phẳng, 4 điểm chohình cầu…), sau đó khớp mô hình đó với những mẫu còn lại, cho đến khi ta tìm
Trang 17được mẫu khớp tập mẫu cần trích chọn một cách hiệu quả nhất Hiện nay đã cónhiều phương pháp RANSAC cải thiện được công bố như: Maximum likelihoodestimation sample consensus (MLESAC), M-estimator sample consensus(MSAC), Progressive sample consensus (PROSAC) [8].
data = a set of observed data points
model = a model that can be fitted to data points
n = minimum number of data points required to fit the model
k = maximum number of iterations allowed in the algorithm
t = threshold value to determine when a data point fits a model
d = number of close data points required to assert that a model fits well to data bestfit = null
besterr = ∞
for iterations 1→k
maybeinliers = n randomly selected values from data
maybemodel = model parameters fitted to maybeinliers
alsoinliers = empty set
for every point in data not in maybeinliers
if point fits maybemodel with an error < t
add point to alsoinliers
if the number of elements in alsoinliers > d
bettermodel = model parameters fitted to all points in maybeinliers and also inliers
thiserr = a measure of how well model fits these points
if thiserr < besterr
bestfit = bettermodel besterr = thiserr
return bestfit
Biến đổi Hough là phương pháp sử dụng để khớp các mô hình được tham số hóa(ví dụ: đường →góc pháp tuyến, khoảng cách đến gốc, mặt phẳng→hai gócpháp tuyến, khoảng cách đến gốc, hình cầu→tọa độ tâm, bán kính…) Các tham
số này thông thường được rời rạc hóa và đánh số đếm mỗi lần một tập tối thiểucác điểm, khi biến đổi thành không gian Hough, có tập tham số tương tự Cáctập điểm có cùng tham số được đếm vào một cell (đặc trưng bởi tập tham sốnhất định) Mô hình nào khớp tôt nhất tập mẫu cho trước sẽ có số đếm cell lớnnhất Có các phương pháp Hough cải thiện như: Adaptive Probabilistic Hough
Trang 18(APHT), Progressive Probabilistic Hough (PPHT), Randomized Hough (RHT)[9].
for all points in p i in point set P do
for all cell (θ, φ, ρ) in accumulator A do
if point p i lies on plane defined by (θ, φ, ρ)
increment cell A(θ, φ, ρ)
end for
end for
→Search for the most prominent cell in A, which defines planes in P
Trong khi phương pháp RANSAC rất đơn giản và mang tính ứng dụng lớntrong mọi trường hợp, phương pháp này cần tinh chỉnh nhiều tham số, và vì cácmẫu được lựa chọn ngẫu nhiên, có thể cần một lượng lớn vòng lặp để tìm ra môhình tốt nhất Trong đó, phương pháp Hough có thể được rút ngắn bằng cách đặtngưỡng số đếm và ngừng vòng lặp nếu một cell có số đếm vượt ngưỡng Tuy nhiên,phương pháp Hough chỉ xử lý được một số ít các tham số, và vì quá trình rời rạchóa tham số cho cell dẫn đến sai số lượng tử, áp dụng tập tham số cell vào kết quảcuối cùng cũng dẫn đến sai số không thể tránh khỏi
1.2.4 Phương pháp lai (hybrid)
Ý tưởng chung là việc kết hợp các phương pháp trích chọn với nhau để pháthuy điểm mạnh của phương pháp này và khắc phục hạn chế của phương pháp kia.Chất lượng của phương pháp lai phụ thuộc vào chất lượng của các phương phápthành phần
Ví dụ, Vieira và Shimada [10] tiếp cận phương pháp phát triển vùng bằngcách kết hợp các thuật toán tính độ congb bề mặt, phát hiện góc nhọn, xấp xỉ đathức để chọn lọc điểm hạt Phương pháp trích chọn hình khối (mesh) của Lavouékết hợp thao tác trích chọn vùng dựa trên độ cong bề mặt, và sửa đường biên(boundary) bằng cơ chế chấm điểm [11]
Trang 191.2.5 Phương pháp học máy tính (machine learning)
Ý tưởng dựa trên các phương pháp học máy tính như phân nhóm phân cấp(hierarchical clustering) và phân nhóm K trung bình (K-means clustering), tận dụngthuật toán Trí tuệ nhân tạo để cho phép máy tính đưa ra quyết định dựa trên dữ liệukinh nghiệm
Phân nhóm K trung bình: chia tổng số các mẫu thành K nhóm khác nhau, sau
đó ta tối thiểu hóa tổng bình phương của mỗi nhóm so với trọng tâm của chúng.Phương pháp này được đưa ra ban đầu bởi MacQueen [12], sau đó được phát triểnlên để áp dụng vào xử lý đám mây điểm [11]
Phân nhóm phân cấp: tính toán các thông số đại diện cho từng mẫu dựa trêncác thông tin như tọa độ điểm, pháp tuyến mặt phẳng tiếp tuyến… và sau đó chiacác mẫu thành thứ bậc khác nhau cho đến khi mỗi nhóm chỉ bao gồm một vật thể[13] Các phương pháp này tính toán những đặc tính đại diện của điểm (3D) về mặthình học như vị trí điểm, pháp tuyến bề mặt cục bộ …
Hình 1.5 Ví dụ đơn giản của ứng dụng thuật toán học máy tính.
2 Mục tiêu thực hiện của luận văn
Mục tiêu nghiên cứu của luận văn là tìm hiểu về ứng dụng của dữ liệu đámmây ảnh trong việc trích chọn đối tượng trong ảnh, từ đó phục vụ ứng dụng dẫnđường và tránh vật cản của hệ thống xe, sử dụng Kinect làm cơ sở thị giác robot.Phạm vi thực hiện của luận văn:
Trang 20 Lý thuyết: áp dụng thuật toán tìm mặt phẳng trong cơ sở dữ liệu điểm ảnh bachiều.
Ứng dụng: chương trình xử lý đám mây điểm và tìm ra mặt nạ mặt phẳng đất(ground mask)
Điều kiện: thiết bị Kinect ghi hình bối cảnh phòng, có góc trúc xuống để nhìnthấy được mặt sàn, phòng có đủ ánh sáng để không quá chói, gây nhiễu vùnghồng ngoại
Đối tượng: ảnh khung cảnh phòng được chụp với bề mặt sàn được hiển thị rõràng
Ứng dụng của đề tài:
Dẫn đường và tránh vật cản
Chương 2 Giới thiệu về hệ thống thu thập ảnh 3D
Bài luận văn này sẽ đề cập đến khái niệm cơ bản của thiết bị MicrosoftKinect, cũng như ứng dụng của hệ thống này trong việc giải quyết bài toán được đề
ra bởi tác giả Hơn nữa bài viết cũng đề cập đến một số phương pháp trích chọn vậtthể kinh điển được ứng dụng trên nền tảng dữ liệu 2D cũng như 3D, cụ thể là dữliệu dạng đám mây điểm (point cloud)
2.1 Giới thiệu chung về hệ thống Kinect
Kinect (hay còn gọi là dự án Natal) là một dãy các thiết bị cảm biến chuyển độngđược phát triển bởi Microsoft cho ứng dụng trò chơi điện tử Xbox 360, sau đó đượcphát triển cho hệ điều hành PC
Trang 21Vào năm 2012, hệ thống phần cứng Kinect v1 cho Windows được công bố,cùng với SDK thế hệ 1.0 cho phép ứng dụng đại trà Đây là hệ thống phần cứng vàphát triển phần mềm được sử dụng trong bài nghiên cứu này.
Vào năm 2013, ra đời hệ thống Kinect Xbox One với chức năng phần cứngđược mở rộng, cùng với hệ thống phần cứng Kinect Windows v2, năm 2014, songsong với SDK thế hệ 2.0 hỗ trợ cả Kinect Windows v2 cũng như Kinect Xbox One
Cho dù đến năm 2017, Microsoft đã ngừng phát triển hệ thống phần cứngdòng Kinect, ứng dụng của Kinect vẫn mang tầm quan trọng cơ bản trong việcnghiên cứu và phát triển phần mềm ứng dụng thị giác 3D, và vẫn có nhiều côngtrình nghiên cứu để ngày càng hoàn thiện kỹ thuật xử lý mang tính ứng dụng dữ liệuhình ảnh 3D vẫn sử dụng công cụ Kinect hữu ích
Trang 222.2 Môi trường hoạt động của hệ thống Kinect
2.2.1 Chỉ số kỹ thuật
Hình 2.7 Cấu trúc phần cứng của Kinect
Bên trong thiết bị Kinect bao gồm:
Một máy ảnh màu RGB thu thập dữ liệu ba kênh với độ phân giải 1280x960,640x480, 320x240 và 80x60
Một thiết bị phát và thu tia hồng ngoại Thiết bị phát chùm tia hồng ngoạivào vật cảnh và thu lại chùm tia hồng ngoại phản xạ lại Chùm tia này đượcchuyển thành thông tin chiều sâu bằng cách tính toán thời gian bay của chùmtia từ lúc phát ra đến lúc thu lại
Một dãy 4 microphone để thu lại tín hiệu âm thanh, đồng thời tìm ra nguồn
âm thanh và hướng sóng âm thanh
Một gia tốc kế ba chiều với mức đo tối đa 2G (G là gia tốc trọng lực), có thể được dùng để tính toán góc nhìn hiện tại của Kinect so với chiều trọng lực
Bảng 2.1 Chỉ số kỹ thuật của Kinect.
Góc nhìn 43° theo chiều dọc và 57° theo chiều
ngangGóc ngẩng tối đa ±27°
Tốc độ khung (phát
trực tuyến ảnh màu và
độ sâu)
30 khung hình trên giây
Định dạng âm thanh Điều chế mã xung đơn 24-bit, 16-kHz
Trang 23Đặc tính âm thanh đầu
vào
Dãy 4 microphone với bộ chuyển đổi ADC 24-bit với bộ xử lý bao gồm bộ loại tiếng vọng và giảm tiếng ồn
Đặc tính gia tốc kế Cấu hình 2G/4G/8G với độ chính xác 1°2.2.2 Không gian tọa độ Kinect
Kinect truyền dữ liệu màu, ảnh độ sâu và dữ liệu xương trên từng khung hình
a Không gian màu
Trong mỗi khung, bộ cảm biến màu thu tín hiệu màu của tất cả vật cảnhtrong khung hình Trong mỗi pixel của khung hình chứa thông tin đỏ, xanh lam,xanh lục tại tọa độ (x, y) nhất định
b Không gian độ sâu
Trong mỗi khung, cảm biến chiều sâu thu hình ảnh xám đồ của tất cả vậtcảnh trong tầm nhìn Mỗi pixel trong khung hình chứa thông tin khoảng cáchDescartes từ thiết bị đến vật thể gần nhất tại pixel đó
Hình 2.8 Phạm vi độ sâu của Kinect, chế độ cận và mặc định
Kinect có hai pham vi độ sâu: phạm vi mặc định (được hỗ trợ bởi KinectWindows và Kinect Xbox 360), phạm vi cận (chỉ hỗ trợ Kinect Windows)
c Không gian xương
Trong mỗi khung, thông tin chiều sâu được chuyển đổi thành dữ liệu xương.Mỗi đốt xương người được lưu lại với tọa độ (x, y, z), tọa độ này được lưu lại trênđơn vị mét
Trang 242.2.3 Hệ thống phần mềm
a OpenNI
OpenNI là bộ phát triển phần mềm (SDK) nguồn mở, viết tắt của OpenNatural Interaction, đóng vai trò phần mềm trung gian (middleware) để người dùngtương tác và điều khiển những thiết bị NI
PrimeSense, thành phần sáng lập ra OpenNI, đồng thời cũng là tác giả thiết
kế cảm biến chiều sâu căn bản được áp dụng bởi Kinect, phát hành driver riêng,cùng với phần mềm trung gian bám vết chuyển động NITE
Hình 2.9 Ứng dụng chung của OpenNI là phần mềm trung gian giữa giao diện phần
mềm và các thiết bị cảm biến NI.
b Point Cloud Library
Một đám mây điểm (point cloud) là một cấu trúc dữ liệu biểu diễn một tậpcác điểm đa chiều, thông thường được sử dụng để biểu diễn dữ liệu ba chiều Cácđiểm này thường biễu diễn bề mặt của vật cảnh, và có thể có thêm thông tin về màusắc, cường độ…
Đám mây điểm có thể thu được từ quét laser 2D/3D, máy ảnh stereo, máyảnh ánh sáng có cấu trúc (structured light), và Kinect… Dữ liệu đám mây điểm có
Trang 25nhiều ứng dụng xử lý ảnh như: phát hiện và nhận dạng vật thể, dẫn đường và tránhvật cản…
Hình 2.10 Ví dụ về đám mây điểm được thu lại từ Kinect.
Point Cloud Library (PCL) là thư viện nguồn mở quy mô lớn trên nền tảngngôn ngữ C++ với chức năng xử lý ảnh 2D/3D và đám mây điểm PCL ngoài ra còndựa trên các thư viện khác như Eigen, Boost, OpenMP…
Hình 2.11 Logo của pointclouds.org
Các hàm xử lý của PCL:
a) Các bộ lọc: dùng để loại bỏ những điểm lỗi trong đám mây điểm (tọa độkhông hữu hạn) và những điểm nằm ngoài không tuân theo phạm vi chotrước bởi bộ lọc:
- PassThroughFilter: sử dụng ngưỡng tọa độ để loại bỏ tất cả các điểm cótọa độ nằm ngoài ngưỡng cho trước
- VoxelGrid: chia không gian thành các ô voxel với kích thước cho trước,sau đó gộp các điểm trong cùng ô voxel lại thành trọng tâm của chúng(trung bình cộng các tọa độ)
Trang 26- ApproximateVoxelGrid: như VoxelGrid, nhưng thay vì đại diện trọngtâm, bộ lọc lấy đại diện là tâm của ô voxel Tính toán nhanh, nhưng mất
đi độ chính xác của điểm ảnh
b) Hàm đặc tính 3D: đặc tính đại diện cho các điểm 3D nhất định (vị trí nhấtđịnh trong không gian) về mặt hình học dựa trên dữ liệu xung quanh điểmảnh (vị trí điểm ảnh) Không gian dữ liệu xung quanh điểm ảnh cần xét đượcgọi là k điểm lân cận Hai ví dụ về đặc tính sử dụng k điểm lân cận: tính toán
độ cong bề mặt và pháp tuyến bề mặt
c) KdTree: thuật toán hữu hiệu để tìm k điểm lân cận với một vị trí trong khônggian Thư viện KdTree cung cấp cấu trúc dữ liệu sử dung FLANN (FastLibrary for Approximate Nearest Neighbors) K-dimensional Tree là cấu trúcphân mảng không gian (space partitioning) lưu trữ một tập k-dimensionalđiểm trong cấu trúc cây để cho phép tìm khoảng cách và lân cận hiệu quả.d) Các hàm trích chọn: các thuật toán trích chọn một đám mây điểm thành cáckhối điểm riêng biệt
- Trích chọn mặt phẳng, hình trụ …
- Trích chọn khối điểm Euclid
- Trích chọn bằng phát triển vùng, phát triển vùng có màu sắc…
e) Sample Consensus: thư viện này bao gồm các phương pháp sampleconsensus (SAC) như RANSAC và các mô hình như đường thẳng, mặtphẳng, hình trụ và hình cầu, có thể kết hợp hai mô hình này tùy ý để tìm ra
mô hình cụ thể
f) I/O: tập hàm dùng để đọc và ghi dữ liệu đám mây điểm (PCD), cũng như đểcapture đám mây điểm từ các thiết bị cảm biến 3D Ví dụ điển hình củatương tác giữa PCL và Kinect là driver OpenNI Grabber
g) Hiển thị: Tương tự như chức năng highgui của OpenCV, chức năng này chophép hiển thị đám mây điểm ảnh và kết xuất đặc tính hiển thị như màu sắc,kích thước điểm, độ mờ…
h) Common: chứa các kiểu dữ liệu và cấu trúc trung được sử dụng bởi phần lớncác thư viện của PCL Ví dụ: thư viện này chứa định nghĩa PointCloud vàcác loại điểm ảnh (PointXYZ, PointXYZRGB, PointXYZRGBA,
Trang 27Normal…), các hàm tính toán khoảng cách/pháp tuyến, trung bình và tựtương quan, biến đổi hình học,v.v.
2.2.4 Vài nét về đám mây điểm có cấu trúc và không có cấu trúc
Trong định nghĩa của PCL, đám mây có cấu trúc (organized) là mô phỏng3D của hình ảnh 2D khi có thêm yếu tố chiều sâu Nói cách khác, đám mây có cấutrúc có các điểm 3D đại diện cho các pixel 2D, vì thế đám mây điểm cũng có kháiniệm là chiều cao và chiều rộng, và tất cả các điểm ảnh đều có thể truy cập sử dụngđịa chỉ 2D (row,column) như tập dữ liệu Mat của OpenCV, và nếu truy cập bằngđịa chỉ một chiều (index) thì thứ tự địa chỉ là từng hang một liên tiếp
Trong đó đám mây không cấu trúc (unorganized) là dữ liệu 3D thuần túy,không tuân theo khuôn mẫu cấu trúc 2D và không có khái niệm chiều cao và chiềurộng Các điểm ảnh chỉ có thể truy cập được bằng địa chỉ một chiều, và hầu hết thứ
tự địa chỉ là hoàn toàn ngẫu nhiên trong không gian ba chiều, tuy nhiên cũng cócách để sắp xếp thứ tự địa chỉ điểm theo tọa độ tăng/giảm dần Tất cả những thuậttoán thực hiện được trên đám mây điểm không cấu trúc có thể thực hiện được trênđám mây có cấu trúc, tuy nhiên có những thuật toán được thiết kế chỉ để xử lý đámmây điểm có cấu trúc, ví dụ như thuật toán tính pháp tuyến bằng ảnh tích hợp(integral images)
Thông qua thư viện I/O và nền tảng OpenNI grabber, ta có thể thu thập đámmây điểm ảnh có cấu trúc (640*480) từ các thiết bị NI như Kinect Tuy nhiên, vìcác điểm lỗi trong đám mây điểm thu được là không thể tránh khỏi, cũng như sốđiểm cần xử lý là quá lớn, ta cần sử dụng các hàm lọc để hạ mẫu đám mây điểm,cũng như loại bỏ những điểm lỗi gây hại đến các thuật toán xử lý đám mây điểm
Bộ lọc này thay đổi số điểm trong đám mây điểm và phá vỡ cấu trúc 2D của đámmây điểm, và sau đó ta phải thực hiện các thuật toán trích chọn lên đám mây điểmthuần túy 3D Từ đám mây không cấu trúc khôi phục thành khuôn mẫu cấu trúcnhất định là công việc hết sức khó khăn
Trang 28Chương 3 Trích chọn mặt phẳng đất trong dữ liệu Kinect
3.1 Ý tưởng hệ thống
Từ yêu cầu của đề tài, tác giả đã đưa ra ý tưởng thực hiện hệ thống:
Một bộ driver thu nhận tín hiệu trực tuyến từ Kinect (hoặc một file pointcloud data - pcd) và gửi đến máy tính có phần mềm phát hiện và nhậndạng xe được viết bằng ngôn ngữ lập trình thích hợp Trong trường hợpmáy tính không có driver hỗ trợ tương tác với Kinect, có thể sử dụng máytính có driver để grab và stream dữ liệu đám mây điểm từ Kinect, sau đólưu khung hình vào file pcd
Đọc file pcd, sau đó tận dụng các chức năng tích hợp trong PCL để thựchiện downsampling đám mây điểm để giảm bớt số điểm cần xử lý, đồngthời loại bỏ các điểm lỗi do tín hiệu đầu vào Kinect không hoàn hảo
Thực hiện các thuật toán trích chọn khác nhau để tách ra các điểm thuộcmặt phẳng đất dưới dạng ground mask
Từ ground mask tính toán được từ các hàm thuật toán khác nhau, đánhdấu các điểm trong ground mask trên nền đám mây điểm đầu vào và hiểnthị lên màn hình
Sử dụng phép trích chọn tích hợp sẵn trong thư viện PCL để đưa ra kếtquả ground truth Từ đó so sánh kết quả các thuật toán đã áp dụng đểnhận xét trực quan về tính hiệu quả của từng thuật toán
Trang 29Hình 3.12 Sơ đồ khối khái quát hệ thống.
3.2 Thuật toán trích chọn sử dụng trong hệ thống
3.2.1 Thuật toán đề xuất
Để phục vụ mục tiêu đề ra của đề tài, một phương pháp trích chọn mặt phẳng
có tinh sửa tham số để chỉ trích chọn mặt phẳng đất được tác giả đề ra Phươngpháp này thuộc loại phương pháp phát triển vùng (region growing) và sẽ không đưa
ra trực tiếp mô hình mặt phẳng như những phương pháp khớp mô hình (modelfitting)
Như đã đề cập đến ở chương 1, phương pháp phát triển vùng tận dụng nhữngđặc tính bề mặt của từng mẫu dữ liệu (điểm trong trường hợp dữ liệu là đám mâyđiểm) để hình thành tiêu chuẩn phát triển vùng Trong luận văn này, đặc tính bề mặt
cơ bản nhất – vector pháp tuyến bề mặt của điểm, được sử dụng để xác định địnhhướng bề mặt Điều này có nghĩa là sử dụng phương của pháp tuyến mặt phẳng tiếptuyến tại từng điểm một làm tiêu chuẩn để xét tính phẳng của điểm hạt với các điểmlân cận Vì thế tham số đầu vào cho thuật toán này sẽ là số điểm lân cận cần tính đểtìm ra pháp tuyến
Ta gọi số điểm lân cận là K, vấn đề đầu tiêm là tìm ra mặt phẳng khớp tốtnhất K điểm này Có một vài cách đơn giản để thực hiện tìm vector pháp tuyến cho
K điểm Ví dụ: phương pháp sử dụng ma trận hiệp phương sai [5]:
Display on Cloud Viewer
Trang 30Trong đó, p i là các điểm trong tập K điểm lân cận, ´p là trọng tâm của tập Kđiểm, được tính như sau:
Một cách nữa, cũng là cách được dùng trong thuật toán đề xuất để tìm pháptuyến mặt phẳng tiếp tuyến, là sử dụng các giá trị đơn (Singlular ValueDecomposition)[14]:
A=UΣΣ V T , A=[p1− ´p ⋯ p K−´p] (4)Trong đó A là ma trận 3xK tập hợp tọa độ K điểm với gốc tọa độ mới làtrọng tâm của K điểm Đặt phương trình dưới góc độ giải quyết bài toán bìnhphương nhỏ nhất:
Trang 31Như vậy, đối với mỗi điểm trong tập đám mây, ta gán thông tin về pháp tuyến bề mặt được tính toán từ bài toán khớp mặt phẳng cho điểm đó và K – 1 điểmgần nhất với điểm đó Để sử dụng pháp tuyến làm tiêu chuẩn, ta cần phải tham số hóa vector pháp tuyến – thành dạng (φ, θ) thay vì tọa độ Euclidean để không phải đổi dấu Nếu ta thống nhất không gian tham số hóa vector như hình 13, thì ta có thể tính toán hai tham số vector từ tọa độ Euclidean của nó:
x∗sin φ∗cosθ + y∗sin θ+z∗cosφ∗cosθ+ D=0 (8)
Hình 3.13 Quy định φ và θ của vector
Trang 32Sau đó, ta thực hiện bài toán tiếp theo là lựa chọn các điểm hạt (seed point)phù hợp với đặc tính mặt phẳng đất Như đã trình bày về chỉ số kỹ thuật của thiết bịKinect, ta biết là thiết bị thu ảnh chỉ có thể điều khiển nghiêng lên/xuống một góctối đa là 27° so với phương nằm ngang Nếu nói theo mặt hình học thì hệ tọa độ 3chiều chỉ có thể xoay quanh trục x được quy định bởi thiết bị Từ đó, ta có thể suy
ra định hướng tương đối lý tưởng của mặt đất đối với thiết bị, trong trường hợp thiết
bị được đặt vững trên mặt phẳng song song với đất trong quá trình thu ảnh:
có độ dày Do đó, về phương thức chọn điểm sàn, ta cần chọn tham số thuộc miềngiới hạn nhất định, thay vì bằng một giá trị duy nhất