1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

65 144 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 4,57 MB

Nội dung

Đồ á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 1

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

Trang 2

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

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

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 6

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

TÓ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 8

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

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

Trang 10

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

Trang 11

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

Trang 12

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

CÁ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 14

gộ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 15

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 đườ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 16

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

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

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

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

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

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

Normal…), 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 28

Chươ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 29

Hì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 30

Trong đó, 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 31

Như 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 32

Sau đó, 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

Ngày đăng: 17/02/2019, 23:09

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w