Tải bản đầy đủ (.docx) (65 trang)

Đồ án TRÍCH CHỌN mặt PHẲNG đất TRONG môi TRƯỜNG đám mây điểm 3d

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.76 MB, 65 trang )

TRƯỜ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


TRƯỜ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



Đá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)



Đá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)
Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và
1 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 đề
4

1 2 3 4 5

Có kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quả
1 2 3 4 5
đạt được
Có khả năng phân tích và đánh giá kết quả (15)

Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp
5 thực hiện dựa trên kết quả nghiên cứu lý thuyết một cách có hệ 1 2 3 4 5
thống
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

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
7
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

6

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


trí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)
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
10a
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

Đượ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ở
10b
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

10c Không có thành tích về nghiên cứu khoa học

0

Điểm tổng

/50

Đ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)


LỜI NÓI ĐẦU
Luậ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át
triể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ủa
cá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ếp
giả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 đồ án
nà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ời
gian 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è.

1


TÓM TẮT
Vớ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áp
thu 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ĩnh
vự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 tin
mộ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ều
hướ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ối
hợ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ành
tự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ậc
cao 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ởi
Microsoft, đã 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úc
3D 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ụng
của thị giác 3D thông qua ứng dụng cơ bản nhất là trích chọn vật thể (object
segmentation), cụ thể ở đây là dạng mặt phẳng (mặt đất). Hệ thống Kinect đã được
tậ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ằng
ngô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ích
chọ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ác
3D.

2


ABSTRACT
With the ever-growing pace of 21th century of scientific and technological
advancements, so too are demands for more effective applications of said
technologies, as well as their sophistications, to better serve the more and more
complex everyday lives. One primary demand of such nature is the demand to better
acquire and utilize information of real world by computers, in which Computer
Vision is a pioneering field of study, due to fascinating level of realism and
usefulness inherent in visionary information.
Computer Vision’s foremost source of information was in the form of 2D
images, and combined with Digital Image Processing, has laid solid foundation for
all researches and achievements in the field. Later, 3D data was introduced, but not
fully studied upon, because data retrieval devices such as 3D cameras were
expensive and a rare commodity. Since the development of cheap Kinect system by
Microsoft, however, studies and applications of 3D visionary data has received
much 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: object
recognition (segmentation), ground plane in particular. The author utilizes in useful
feature of Kinect to capture and store 3D data, then designs in C++ language
program using 3D processing tools provided by Point Cloud Library (PCL) for
ground plane segmentation. The results show visual recognition of ground plane, as
well as comparison between segmenting algorithms, for a better understanding of
3D computer vision’s applicability.


3


MỤ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
4



3.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

5


DANH 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

6


DANH SÁCH BẢNG BIỂU
Bảng 2.1. Chỉ số kỹ thuật của Kinect......................................................................18
Bả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.............................42
Bả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.............................45
Bả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

7



CÁC TỪ VIẾT TẮT
LiDAR
RANSAC
HT
RHT
MLESAC
MSAC
PROSAC
PC
PCL
OpenCV
OpenNI
SDK
FLANN
APHT
APHT
SVD

Light Detection and Ranging
Random Sample Consensus
Hough Transform
Random Hough Transform
Maximum likelihood estimation sample consensus
M-estimator sample consensus
Progressive sample consensus
Personal computer
Point Cloud Library
Open-source Computer Vision

Open-source Natural Interaction
Software Development Kit
Fast Library for Approximate Nearest Neighbors
Adaptive Probabilistic Hough Transform
Progressive Probabilistic Hough Transform
Singular Value Decomposition

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ệu

quả 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ình
dạ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ác
thô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ụ
8


gộp lại nhóm những điểm ảnh có một hay nhiều đặc trưng tương đồng, trong khi
phâ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].

9


1.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 đường
viề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 cong
chí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ất
nhanh, phương pháp này dễ chịu ảnh hưởng nhiễu và mật độ điểm không đều. Hơn
nữa, trong không gian 3D, các đường viền tìm được dễ bị đứt đoạn, gây khó khăn
trong 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ển
dầ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êu
chuẩn tương đồng cho trước. Chọn điểm hạt sai ảnh hưởng trực tiếp đến
quá 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ặt
cho 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ùng
khô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ện
cá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
10


cá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ật
toá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ệu
mà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ương
phá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ủa
vù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 Sample
Consensus (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ĩnh
vực xử lý ảnh nói riêng và xử lý tín hiệu số nói chung. Ý tưởng chung của
phươ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 cho
hì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
11


đượ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 likelihood
estimation 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óc
phá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ểu
các điểm, khi biến đổi thành không gian Hough, có tập tham số tương tự. Các
tậ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ớn
nhất. Có các phương pháp Hough cải thiện như: Adaptive Probabilistic Hough

12


(APHT), Progressive Probabilistic Hough (PPHT), Randomized Hough (RHT)
[9].
for all points in pi in point set P do
for all cell (θ, φ, ρ) in accumulator A do
if point pi lies on plane defined by (θ, φ, ρ)
increment cell A(θ, φ, ρ)
end if
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ớn
trong mọi trường hợp, phương pháp này cần tinh chỉnh nhiều tham số, và vì các

mẫ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 đặt
ngưỡ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ạc
hó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át
huy đ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áp
thành phần.
Ví dụ, Vieira và Shimada [10] tiếp cận phương pháp phát triển vùng bằng
cá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ỉ đa
thứ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].

13


1.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ụng
thuậ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ệu
kinh 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ển
lê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ên

các thông tin như tọa độ điểm, pháp tuyến mặt phẳng tiếp tuyến… và sau đó chia
cá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ặt
hì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 đám
mâ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:
14


 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 ba
chiề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ìn
thấy được mặt sàn, phòng có đủ ánh sáng để không quá chói, gây nhiễu vùng
hồ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ị Microsoft
Kinect, 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ật
thể 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 đó được
phát triển cho hệ điều hành PC.

15


Hình 2.6. Kinect.

Thế hệ đầu tiên của Kinect Xbox 360 được công bố vào năm 2010, với mục
đích mở rộng thị trường trò chơi điện tử từ hệ thống điện tử thông thường. Vào năm
2011, Microsoft phát hành bộ phát triển phần mềm (software development kit)
không đại trà, ban đầu hỗ trợ cho hệ thống Kinect Xbox 360 kết nối với PC, cho
phép nhà phát triển lập trình ứng dụng Kinect với ngôn ngữ C++/CLI hoặc Visual
Basic .NET.
Và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, song
song 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ứng
dòng Kinect, ứng dụng của Kinect vẫn mang tầm quan trọng cơ bản trong việc

nghiê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ông
trì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ệu
hình ảnh 3D vẫn sử dụng công cụ Kinect hữu ích.

16


2.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ại
và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 được
chuyể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ùm
tia 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.

Kinect
Góc nhìn


Chỉ số kỹ thuật
43° theo chiều dọc và 57° theo chiều

Góc ngẩng tối đa
Tốc độ khung (phát

ngang
±27°
30 khung hình trên giây

trực tuyến ảnh màu và
độ sâu)
Định dạng âm thanh
Đặc tính âm thanh đầu

Điều chế mã xung đơn 24-bit, 16-kHz
Dãy 4 microphone với bộ chuyển đổi
17


vào

ADC 24-bit với bộ xử lý bao gồm bộ loại

Đặc tính gia tốc kế
2.2.2. Không gian tọa độ Kinect

tiếng vọng và giảm tiếng ồn
Cấu hình 2G/4G/8G với độ chính xác 1°


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ảnh
trong 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ật
cảnh trong tầm nhìn. Mỗi pixel trong khung hình chứa thông tin khoảng cách
Descartes 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 Kinect
Windows 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.

18


2.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 Open
Natural Interaction, đóng vai trò phần mềm trung gian (middleware) để người dùng
tươ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ập
cá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àu
sắ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ó
19


nhiề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ánh
vậ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ảng
ngô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òn
dự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 cho
trướ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 độ).

20


×