tổng kết kinect.pdf

21
Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản Lê Trung Kiên ĐKTĐ 2- K53 1 MC LC 1.Gii thiệu cơ bản vKinect ......................................................................... 3 1.1 cu trúc phn cng. ................................................................................................. 4 1.1.1 Camera RGB .................................................................................................... 4 1.1.2 Cm biến độ sâu .............................................................................................. 4 1.1.3 DãyMicrophone ............................................................................................... 4 1.2 Nguyên lý các cm biến độ sâu. .............................................................................. 5 1.3 Các dliệu đo được tcm biến. ............................................................................... 6 2. Các thƣ viện xnh ................................................................................ 7 2.1 Các module.............................................................................................................. 8 2.1.1 PCL_Common: ..................................................................................................... 8 2.1.2 Module Features: ................................................................................................. 8 2.1.3 Module Filters:..................................................................................................... 8 2.1.4 Module Geometry: ............................................................................................... 9 2.1.5 Module IO: ........................................................................................................... 9 2.1.6 PCL_Kdtree: ........................................................................................................ 9 2.1.7: PCL_Keypoint ................................................................................................... 10 2.1.8 PCL_Octree: ...................................................................................................... 10 2.1.9 Module registrantion (PCL_registration): ........................................................ 11 2.1.10 Module PCL_sample_consensus: .................................................................... 11 2.1.11 PCL_Search ..................................................................................................... 12 2.1.12 PCL_Segmentation........................................................................................... 12 2.1.13 PCL_surface..................................................................................................... 12 2.1.14: PCL_visualization........................................................................................... 14 2.2. Cu trúc dliệu cơ bản ca PCL .............................................................................. 15 2.2.1 PointCloud: ........................................................................................................ 15

Upload: trung-kien

Post on 12-Aug-2015

281 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 1

MỤC LỤC

1.Giới thiệu cơ bản về Kinect ......................................................................... 3

1.1 cấu trúc phần cứng. ................................................................................................. 4

1.1.1 Camera RGB .................................................................................................... 4

1.1.2 Cảm biến độ sâu .............................................................................................. 4

1.1.3 DãyMicrophone ............................................................................................... 4

1.2 Nguyên lý các cảm biến độ sâu. .............................................................................. 5

1.3 Các dữ liệu đo được từ cảm biến. ............................................................................... 6

2. Các thƣ viện xử lý ảnh ................................................................................ 7

2.1 Các module .............................................................................................................. 8

2.1.1 PCL_Common: ..................................................................................................... 8

2.1.2 Module Features: ................................................................................................. 8

2.1.3 Module Filters: ..................................................................................................... 8

2.1.4 Module Geometry: ............................................................................................... 9

2.1.5 Module IO: ........................................................................................................... 9

2.1.6 PCL_Kdtree: ........................................................................................................ 9

2.1.7: PCL_Keypoint ................................................................................................... 10

2.1.8 PCL_Octree: ...................................................................................................... 10

2.1.9 Module registrantion (PCL_registration): ........................................................ 11

2.1.10 Module PCL_sample_consensus: .................................................................... 11

2.1.11 PCL_Search ..................................................................................................... 12

2.1.12 PCL_Segmentation ........................................................................................... 12

2.1.13 PCL_surface ..................................................................................................... 12

2.1.14: PCL_visualization ........................................................................................... 14

2.2. Cấu trúc dữ liệu cơ bản của PCL .............................................................................. 15

2.2.1 PointCloud: ........................................................................................................ 15

Page 2: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 2

2.2.2 Định dạng PCD: ................................................................................................ 16

3. Phát hiện vật cản bằng Kinect ................................................................. 19

Quá trình xử lý dữ liệu: ................................................................................................... 19

Kết quả sau khi cài đặt ................................................................................................ 19

Page 3: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 3

1.GIỚI THIỆU CƠ BẢN VỀ KINECT

Kinect là sản phẩm của Microsoft dựa trên công nghệ camera được phát

triển bởi PrimeSense, những sản phẩm đầu tiên được bán tại Bắc Mỹ vào ngày 4

tháng 11 năm 2010 .

Kinect được coi như là một thiết bị ngoại vi cho Xbox 360, cho phép giao

tiếp với con người thông qua các cử chỉ, đem lại những cảm giác thú vị cho người

chơi game trên Xbox. Khả năng hiểu được cử chỉ con người của Kinect dựa trên

hai đặc tính chính sau: thông tin về độ sâu ảnh (depth map), khả năng phát hiện

và bám theo đặc tính cơ thể người (body skeleton tracking).

Bên cạnh phục vụ cho mục đích chơi game, sản phẩm Kinect còn được

dùng vào mục đích nghiên cứu xử lý ảnh 3D, phát hiện cử chỉ (gesture

recognition), bám theo người (body tracking) và nhiều mục đích khác. Lý do

chính cho sự thành công của sản phẩm Kinect là giá cả khá rẻ (khoảng 140$ trên 1

sản phẩm) cho thiết bị có khả năng cung cấp các thông tin 3D với chất lượng chấp

nhận được.

Page 4: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 4

1.1 cấu trúc phần cứng.

Bên trong Kinect bao gồm 1 camera RGB, cảm biến độ sâu , một dãy các

microphone và 1 động cơ điều khiển góc nâng.

1.1.1 Camera RGB

Là một camera có 3 kênh dữ liệu có độ phân giải 1280x960. Camera này có

khả năng chụp lại ảnh ảnh mầu.

1.1.2 Cảm biến độ sâu

Độ sâu thu về nhờ sự kết hợp của 2 bộ phận là bộ phát hồng ngoại IR và

camera hồng ngoại đọc các tín hiệu phản hồi về từ đó tính toán ra bản đồ độ

sâu.

1.1.3 DãyMicrophone

Dãy Micro bao gồm 4 micro được bố trí dọc theo thân Kinect có khả năng

thu lại âm thanh đồng thời xác định hướng của âm thanh. Dãy Microphone

này được dùng trong các ứng dụng điều khiển bằng giọng nói.

Ngoài ra Kinect còn có 1 cảm biến đo gia tốc để xác định hướng và 1 động

cơ dùng để điều khiển góc ngẩng camera.

Trong số những cảm biến kể trên của Kinect, cảm biến độ sâu có khả năng

ứng dụng cao trong đề tài robot tránh mục tiêu.

Page 5: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 5

1.2 Nguyên lý các cảm biến độ sâu.

Cặp cảm biến IR camera và IR projector sẽ phối hợp với nhau để tạo ra giá trị

độ sâu bằng công nghệ Light Coding của PrimeSense [2].

Kĩ thuật Light Coding dùng nguồn sáng hồng ngoại chiếu liên tục kết hợp

với một camera hồng ngoại để tính khoảng cách. Việc tính toán này được thực

hiện bằng chip PS1080 Soc của PrimeSen.

Projector sẽ chiếu một chùm sáng hồng ngoại, tạo nên những đốm sáng ở

không gian phía trước Kinect, tập hợp đốm sáng được phát ra này là cố định.

Những đốm sáng này được tạo ra nhờ một nguồn sáng truyền qua lưới nhiễu xạ

(diffraction gratings). Tập hợp các đốm sáng này được IR camera chụp lại,

thông qua giải thuật đặc biệt được tích hợp trong PS1080 SoC cho ra bản đồ

độ sâu. Bản chất của giải thuật này là các phép toán hình học dựa trên quan hệ

giữa hai cảm biến IR camera và Projector.

Page 6: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 6

1.3 Các dữ liệu đo đƣợc từ cảm biến.

Các cảm biến của Kinect được điều khiển đồng thời thu thập và xử lý dữ liệu

thông qua chip PS1080 có tần số 12MHz, sau đó được lưu trữ vào bộ nhớ Flash.

Các dữ liệu này có thể truyền vào máy tính thông qua cổng USB 2.0.

Các tín hiệu thu thập bao gồm dữ liệu về độ sâu, màu sắc và âm thanh trong đó

tín hiệu về độ sâu là dữ liệu quan trọng có nhiều dụng.

Sở dĩ dữ liệu về chiều độ sâu có tầm quan trọng như vậy bởi nó giúp việc nhận

dạng các vật thể đơn giản hơn nhiều so với xử lý ảnh thông thường. Các thuật toán

xử lý ảnh thông thường dựa vào sự tương đồng về mầu sắc, tuy nhiên, có thể những

vật có mầu sắc tương tự nhau nhưng không cùng một vật thể hoặc các phần của

cùng một đối tượng nhưng có mầu khác nhau,do vậy gây khó khăn trong quá trình

nhận dạng. Trong khi đó, với thông tin về độ sâu, các vật thể được phân biệt với

nhau thông qua vị trí. Những điểm có khoảng cách gần nhau có xu hướng cùng một

đối tượng mà không phân biệt mầu sắc. Chỉ khi độ sâu giảm đột ngột như ở cạnh

và ở một số phần nhỏ của đối tượng thì khi đó, hình ảnh trên bản đồ độ sâu mới có

sự thay đổi.

Page 7: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 7

Một ưu điểm nữa của bản đồ độ sâu đó là dữ liệu có thể được nén cao hơn so với

ảnh mầu thông thường do đó thích hợp trong việc truyền dẫn nhanh tín hiệu.

Các thuật toán nhận dạng đối với ảnh độ sâu đơn giản hơn và thậm chí có thể tái

tạo lại vật thể 3D (Bộ thư viện mã nguồn mở hỗ trợ thuật toán trên là PCL).

Từ những phân tích trên ta có thể thấy được những ưu điểm của bản đồ độ sâu

và nó rất thích hợp để ứng dụng trong các đề tài về robot tự hành.

2. CÁC THƢ VIỆN XỬ LÝ ẢNH

Hiện nay có nhiều bộ thư viện được viết cho Kinect. Nổi bật trong số đó là 2 bộ thư

viện mã nguồn mở OpenNI và bộ thư viện Kinect SDK của Microsoft.

Trong đồ án này, nhóm sinh viên đã sử dụng thư viện OpenNI . Đây là bộ

thư viện mã nguồn mở, dùng được trên nhiều hệ điều hành khác nhau. Thư viện

được xây dựng hỗ trợ đầy đủ các nhu cầu cơ bản khi sử dụng Kinect trong đồ án xe

tự hành tránh vật cản.

Để phát huy tối đa khả năng của Kinect, nhóm sinh viên kết hợp thêm bộ thư

viện xử lý ảnh 3D là PCL.

PCL là thư viện hỗ trợ xử lý ảnh 3D, được xây dựng với nhiều module thực

hiện các thuật toán như: Lọc (filtering), Khôi phục bề mặt (Surface reconstruction),

phân vùng (segmentation), Ước lượng đặc tính vật (Feature estimation ).

Thư viện đi kèm để hỗ trợ được chia nhỏ và có thể biên dịch độc lập. Các thư

viện này gồm có :

Eigen: Hỗ trợ các phép toán tuyến tính, dùng vào hầu hết các tính toán toán

học của PCL.

FLANN: (Fast Library for Approximate Nearest Neighbors) Tìm kiếm nhanh

các điểm lân cận trong không gian 3D.

Boost: Giúp chia sẻ con trỏ trên tất cả các module và thuật toán trong PCL để

tránh sao chép và trùng dữ liệu đã lấy về trong hệ thống.

Page 8: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 8

VTK: (Visualization Toolkit) Hỗ trợ nhiều platform trong việc thu về dữ liệu

3D, hỗ trợ hiển thị, ước lượng thể tích vật thể.

CminPack : Thư viện mở giúp giải quyết phép toán tuyến tính và không

tuyến tính.

2.1 Các module:

Thư viện có tất cả 14 module bao gồm:

2.1.1 PCL_Common:

- Chứa cấu trúc dữ liệu và phương thức được sử dụng bởi phần lớn

các thư viện trong PCL

- Cấu trúc dữ liệu cốt lõi là các class pointClound, các loại dữ liệu

biểu diễn điểm, bề mặt, giá trị mầu, mô tả tính năng…

VD: PCL::PointXYZ; PCL::PointXY; PCL::PointXYZRGB;

2.1.2 Module Features:

- Chứa các cấu trúc dữ liệu và cơ chế tính toán, ước lượng 3D từ các

dữ liệu điểm PCD

- 3D Features biểu diễn chính xác điểm 3D hoặc vị trí trong không

gian để mô tả phần hình khối dựa vào thông tin có được xung

quanh điểm. Vùng dữ liệu được chọn lân cận điểm truy vấn

thường gọi là K-neighborhood.

2.1.3 Module Filters:

PCL_filters Chứa các kỹ thuật loại bỏ nhiễu.

Page 9: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 9

2.1.4 Module Geometry:

Chứa tất cả các cấu trúc dữ liệu và giải thuật để tính toán hình học.

2.1.5 Module IO:

PCL_IO: Chứa các hàm và các lớp để đọc và ghi dữ liệu dạng PCD,

có thể thu thập dữ liệu từ nhiều nguồn khác nhau (Trong đồ án này

dùng Kinect).

2.1.6 PCL_Kdtree:

Thư viện cung cấp cấu trúc dữ liệu Kd_tree, sử dụng FLANN giúp

nhanh chóng tìm kiếm vùng gần nhất (nearest neighbors searches).

Page 10: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 10

Kd-tree là một cấu trúc dữ liệu phân để vùng không gian lưu trữ tập

K-dimention điểm dưới dạng cây do đó dễ dàng phân loại và tìm kiếm.

Có thể sử dụng để tìm sự tương ứng giữa các nhóm điểm, đặc tả tính

năng, định nghĩa các vùng lân cận xung quanh điểm hoặc các điểm.

2.1.7: PCL_Keypoint:

Là thư viện chứa thực thi của 2 thuật toán nhận dạng “Point clound

keypoint”.

Key Point (hay interest point) là các điểm trong ảnh hoặc trong point

cloud mà có tính chất ổn định, riêng biệt và có thể dễ dàng phát hiện ra.

Thông thường số lượng Key Point nhỏ hơn tổng số điểm trong cloud.

2.1.8 PCL_Octree:

Chứa các thuật toán hiệu quả để tạo nên một cấu trúc dữ liệu phân cấp

từ dữ liệu point cloud. Nó cho phép phân vùng không gian,

downsampling (giảm số lượng các mẫu do đó tăng tốc độ tính toán) và

thực hiện các phép toán tìm kiếm trong tập dữ liệu PointCloud. Mỗi nút

Page 11: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 11

Octree có 8 nút con hoặc không có nút con nào. Nút gốc (mầu đỏ hình

dưới )được biểu diễn trong 1 hình lập phương bao toàn bộ các điểm con.

Tại mỗi cấp của cây, không quan được chia thành 2 do đó tăng độ phân

giải cho điểm ảnh không gian 3 chiều.

Thư viện này cũng cung cấp các chương trình tìm kiếm lân cận hiệu

quả.

2.1.9 Module registrantion (PCL_registration):

Kết hợp các bộ dữ liệu vào một mô hình chung, thống nhất thường

được thực hiện bằng một kỹ thuật gọi là registration.

Ý tưởng chính là xác định các điểm tương ứng trong bộ dữ liệu và tìm

một chuyển đổi khoảng cách tối thiểu các điểm tương ứng.

2.1.10 Module PCL_sample_consensus:

Thư viện pcl_sample_consensus có khả năng tách các nhóm điểm có cùng

tính chất (Sample Consensus hay SAC) giống như thuật toán RANSAC (Tìm

kiếm đường thẳng trong tập hợp các điểm). Các nhóm điểm có thể là các mặt

Page 12: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 12

phẳng, mặt cầu, trụ. Thư viện này rất thích hợp trong các ứng dụng dò tìm

các đối tượng như tường, cửa, các vật trên bàn…

2.1.11 PCL_Search:

Cung cấp các phương pháp tìm kiếm lân cận (nearest neighbors) bằng

cách sử dụng các cấu trúc dữ liệu khác nhau, bao gồm:

- Kd_tree (từ thư viện PCL_Kdtree)

- Octrees (từ thư viện PCL_Octrees)

- Brute foce (Thuật toán)

- Các tìm kiếm đặc biệt cho các bộ dữ liệu có tổ chức.

2.1.12 PCL_Segmentation:

Chứa các thuật toán để phân chia Point Cloud thành các nhóm riêng biệt. Các

thuật toán này thích hợp nhất khi xử lý các point Cloud bao gồm các vùng

không gian bị cô lập. Trong trường hợp như vậy, các clustering thường chia

nhỏ để sau đó có thể xử lý độc lập.

2.1.13 PCL_surface:

Page 13: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 13

Là thư viện thích hợp cho việc xây dựng lại các bề mặt từ dữ liệu quét

3D. Các đối tượng chính gồm vỏ, bề mặt lưới, bề mặt nhẵn hay bình thường.

Khi có nhiễu có thể làm mịn và lấy mẫu lại.

Chia lưới ( meshing ) là một cách tổng quát để tạo ra các bề mặt điểm.

Hiện nay có 2 thuật toán là a very fast triagulation of the original points và

aslower meshing that does smoothing and hold filling as well.

Có thể dùng thư viện để tạo ra một thân lồi hoặc lõm thích hợp cho

đại diện bề mặt đơn giản hóa hoặ chỉ ra các ranh giới.

Page 14: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 14

2.1.14: PCL_visualization:

Thư viện được tạo ra có thể nhanh chóng hiển thị các kết quả thuật

toán trên dữ liệu 3D. Thư viện cung cấp:

- Các phương pháp dựng hình và thiết lập thuộc tính ảnh, mầu sắc,

kích thước cho bất kì bộ dữ liệu nào có kiểu “PCL::PointCloud<T>”

- Vẽ các hình 3D cơ bản từ bộ điểm hoặc phương trình tham số.

Page 15: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 15

- Vẽ các biểu đồ.

2.2. Cấu trúc dữ liệu cơ bản của PCL

2.2.1 PointCloud:

Kiểu dữ liệu cơ bản trong PCL là PointCloud. Một PointCloud là 1 lớp C++ bao

gồm:

Width (int): Xác định chiều dài tập dữ liệu bằng số lượng điểm. “Width” có

2 nghĩa là

o Có thể xác định tổng số các điểm trong cloud (bằng số lượng các phần

tử trong cloud) cho bộ dữ liệu có tổ chức.

Page 16: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 16

o Có thể xác định chiều rộng (tổng số điểm liên tiếp) của một tập dữ

liệu có tổ chức

Chú ý: Tập dữ liệu điểm có tổ chức là tập dữ liệu được chia thành các hàng và

cột giống như ma trận.

Vd: cloud.width=640;// Tao ra 640 diem tren mot dong

Height (int): Tương tự width nhưng đối với cột trong ma trận điểm.

Nếu hieght=1 thì dữ liệu không được tổ chức (có thể dùng tính chất này để

kiểm tra một tập dữ liệu có được tổ chức hay không)

Vd:

cloud.width = 640; // Khai bao mot anh co cau truc, gom 640 dong va 480 cot cloud.height = 480; // tong so diem anh la 640*480=307200.

Points (std::vector<PointT>)

Chứa các mảng dữ liệu lưu trữ tất cả các điểm có kiểu pointT.

Kiểu PointT có thể là pcl::PointXYZ, pcl::PointXYZRGB,

pcl::PointXYZRGBA…

Ví dụ:

pcl::PointCloud<pcl::PointXYZ> cloud; std::vector<pcl::PointXYZ> data = cloud.points;

Is_dense(bool)

Trả về giá trị logic, nếu tất cả giá trị trong points hữu hạn => True ngược lại

là False.

Ngoài ra lớp pointCloud còn chứa các thành phần chứa các tùy chọn của

sensor như Sensor_origin, sensor_orientation. Các thành phần này thường ít

dùng trong các thuật toán của PCL.

2.2.2 Định dạng PCD:

Định dạng PCD là một định dạng dùng để lưu trữ dữ liệu 3d pointCloud.

Định dạng này gồm 2 phần là header và phần dữ liệu.

Page 17: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 17

- Mỗi file có một phần header xác định các tính chất, thuộc tính của dữ

liệu mà nó lưu trữ. Header của PCD được mã hóa bằng mã ASCII.

- Trong header gồm có

o VERSION: xác định phiên bản định dạng PCD

o FIELDS: Xác định tên các chiều và các trường của mỗi điểm:

Vd:

FIELDS x y z # XYZ data FIELDS x y z rgb # XYZ + colors FIELDS x y z normal_x normal_y normal_z # XYZ + surface normals FIELDS j1 j2 j3 # moment invariants ...

o SIZE: Xác định kích thước các chiều tính theo byte

Vd:

Unsigned char/char ứng với 1byte

Unsigned short/short ứng với 2byte

Unsigned int/int ứng với 4 byte

Double ứng với 8byte.

o TYPE: Quy định kiểu của mỗi chiều, quy ước bằng các ký tự.

I - Biểu diễn kiểu số nguyên có dấu (int8, int16,int32)

U – Biểu diễn kiểu số nguyên không dấu.

F- Biểu diễn kiểu số thực.

o WIDTH : Xác định chiều rộng tập dữ liệu tính theo điểm.

o HEIGHT: Tương tự WIDTH nhưng tính cho chiều dài. Nếu

giá trị bằng 1 thì dữ liệu chưa được tổ chức.

o POINT: chứa giá trị tổng số điểm ảnh.

Phần 2 là DATA chứa dữ liệu của từng điểm, mỗi điểm có thể được mã hóa

theo bin hay ASCII.

Page 18: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 18

Ví dụ một file PCD sẽ có dạng như sau:

# .PCD v.7 - Point Cloud Data file format VERSION .7 FIELDS x y z rgb # Chứa tọa độ v{ mầu dạng RGB SIZE 4 4 4 4 # Mỗi th{nh phần tọa đọ xyz v{ mầu lưu bằng 4byte TYPE F F F F # Kiểu dữ liệu mỗi th{nh phần l{ số thực COUNT 1 1 1 1 WIDTH 4 # Độ rộng của dữ liệu l{ 4 HEIGHT 1 # Dữ liệu không được tổ chức. VIEWPOINT 0 0 0 1 0 0 0 POINTS 4 # Tổng số điểm ảnh l{ 4 DATA ascii # Dữ liệu được mã hóa bằng mã ascii 0.93773 0.33763 0 4.2108e+06 # C|c gi| trị của tọa độ v{ mầu của c|c điểm. 0.90805 0.35641 0 4.2108e+06 0.81915 0.32 0 4.2108e+06 0.97192 0.278 0 4.2108e+06

Để ghi và đọc dữ liệu dạng PCD, PCL có cung cấp thư viện IO để xử lý. Chi

tiết thư viện này có thể tham khảo thêm trong phần help.

Page 19: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 19

3. PHÁT HIỆN VẬT CẢN BẰNG KINECT

Quá trình xử lý dữ liệu:

Voxel grid làm giảm mật độ số điểm xuống; tập hợp các điểm quá gần nhau sẽ

chỉ cần một điểm đại diện. Ta chọn giá trị mật độ phù hợp mà vẫn đảm bảo quan sát

rõ hình dạng vật thể. Mật độ ta chọn ở đây là 3 centimet theo ba chiều X, Y và Z.

Plannar segmentation sẽ tách các point cloud có cấu trúc phẳng, sau đó tách

ra point cloud có tổng số điểm lớn nhất, bằng giải thuật RANSAC (RANdom

SAmple Consensus).

Euclidean cluster extraction làm công việc tách các point cloud có mặt trên

nền nhà, tập hợp các điểm gần nhau sẽ được nhóm lại thành một point cloud hay

cluster, mỗi cluster đại diện một vật thể.

Dữ liệu sau khi nhận về từ Kinect sẽ được lọc qua bộ lọc Voxel Grid để giảm

mật độ điểm ảnh nhằm tang tốc độ xử lý.

Sau khi lọc dữ liệu, ta sẽ tiến hành phân tích các dữ liệu về vật thể có thể tách ra

thành các nhóm điểm đại diện cho vật thể (Object Clusters). Quá trình này sử dụng

các công cụ Plannar Segmentation, Euclidean Cluster Extraction.

Mỗi nhóm điểm đại diện cho một vật cản và cung cấp thông tin giúp nhận dạng

vật cản, tính toán kích thước, khoảng cách đến vật cản để có thể tính toán tránh vật

cản.

Kết quả sau khi cài đặt:

Page 20: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 20

Page 21: Tổng kết Kinect.pdf

Cảm biến Kinect và ứng dụng trong xe tự hành tránh vật cản

Lê Trung Kiên ĐKTĐ 2- K53 21