DẪN NHẬP
Đặt vấn đề
Nhóm nghiên cứu đã phát triển một khối nhận dạng vật thể 3D trong ứng dụng điều khiển robot tự hành để gấp vật thể, sử dụng cảm biến Kinect để xác định vị trí vật thể trong không gian Cảm biến Kinect thu thập dữ liệu hình ảnh từ vật thể và thông qua các thuật toán xử lý ảnh, xác định chính xác vị trí của vật thể trong không gian.
Lý do chọn đề tài
Hiện nay, việc xây dựng khối nhận dạng hình ảnh thường sử dụng thiết bị chuyên biệt như camera và cảm biến chuyển động, kết hợp với các thuật toán xử lý ảnh Các phương pháp nhận dạng truyền thống dựa vào màu sắc có thể gây khó khăn do sự tương đồng giữa các vật thể khác nhau Trong khi đó, thông tin độ sâu giúp phân biệt các vật thể dựa trên vị trí, cho phép nhận diện chính xác hơn mà không cần phụ thuộc vào màu sắc Sự thay đổi đột ngột trong độ sâu chỉ xảy ra ở các cạnh hoặc phần nhỏ của đối tượng, cho thấy bản đồ độ sâu có nhiều ưu điểm và rất thích hợp cho các ứng dụng nhận dạng trong robot tự hành.
Xuất phát từ những yêu cầu đó, nhóm đã chọn đề tài nghiên cứu là: “ NHẬN
DẠNG VẬT THỂ 3D SỬ DỤNG CẢM BIẾN KINECT”.
Nội dung nghiên cứu
Các bước thực hiện đề tài
Tìm hiểu về cảm biến KINECT
Nghiên cứu và cài đặt các chương trình được sử dụng trong đề tài
Tìm hiểu về các thuật toán được sử dụng trong đề tài
Sử dụng cảm biến KINECT để chụp hình các vật mẫu
Xử lý cắt vật mẫu, loại bỏ các thành phần khác ngoài vật mẫu
Chụp ảnh khung cảnh có chứa vật mẫu để nhận dạng
Xử lý nhận dạng vật mẫu trong khung cảnh đã chụp.
Giới hạn
Đề tài nghiên cứu bị giới hạn bởi thời gian xử lý, với các thuật toán trung bình cần từ 5 đến 7 phút Ngoài ra, nhiễu từ môi trường như ánh sáng và đồ vật xung quanh cũng có ảnh hưởng đáng kể đến kết quả.
Mục tiêu của đề tài là giúp người đọc hiểu rõ cách kết nối, cài đặt và sử dụng phần mềm, cũng như cách hoạt động của cảm biến Kinect và các giải thuật xử lý ảnh Đặc biệt, đề tài hướng đến việc nhận dạng thành công các vật mẫu trong môi trường có nhiều vật mẫu.
Bố cục
Trong chương này, nhóm sẽ trình bày vai trò và ứng dụng thực tiễn của đề tài trong lĩnh vực nhận dạng hình ảnh, đồng thời thảo luận về các giới hạn cũng như nội dung nghiên cứu liên quan.
Chương 2: Cơ sở lý thuyết
- Giới thiệu về các kiến thức lý thuyết cơ bản về camera Kinect, các thuật toán được sử dụng trong chương trình
Chương 3: Phương pháp thực hiện ĐỒ ÁN TỐT NGHIỆP 2016
- Trình bày sơ khối khối hệ thống
- Trình bày các bước thực hiện trong đề tài
Chương 4:Kết quả và thảo luận
- Giới thiệu các hình ảnh thực tế từ kết quả đề tài làm được
- Thảo luận các kết quả trong đề tài
Chương 5: Kết luận và hướng phát triển
- Đưa ra kết luận và hướng phát triển của đề tài ĐỒ ÁN TỐT NGHIỆP 2016
CƠ SỞ LÝ THUYẾT
Thuật toán Cylinder
Thuật toán Cylinder được sử dụng để tách các vật mẫu hình trụ ra khỏi mặt phẳng bằng cách sử dụng các vector normal để xác định hướng của mặt phẳng trong không gian Sau khi xác định, mặt phẳng này sẽ được tách ra khỏi đám mây điểm không phải mặt phẳng, giúp chúng ta thu được vật mẫu mong muốn Trong Hình 2.7, ảnh đám mây điểm của cái ly được đánh dấu màu đỏ, trong khi mặt phẳng bàn được đánh dấu màu xanh.
Hình 2.7: Ảnh trước và sau khi sử dụng thuật toán Cylinder
Thuật toán Euclidean Segmentation
Thuật toán này là một phương pháp đơn giản và phổ biến trong việc tách vật mẫu, hoạt động dựa trên việc kiểm tra khoảng cách giữa hai điểm Nếu khoảng cách nhỏ hơn một ngưỡng cho trước, hai điểm sẽ được gộp vào cùng một nhóm, tương tự như thuật toán Flood Fill Một điểm trong đám mây sẽ được đánh dấu để bắt đầu quá trình gom nhóm, và sau đó sẽ lan rộng như virus đến các điểm lân cận nếu khoảng cách với chúng nhỏ hơn ngưỡng đã định Quá trình này tiếp tục cho đến khi không còn điểm nào có thể được thêm vào nhóm, tạo thành một đám mây điểm như hình mẫu Ví dụ cụ thể về thuật toán được minh họa trong hình 2.9.
Hình 2.8: Mô tả thuật toán Euclidean Segmentation
Hình 2.9: Ảnh đám mây điểm trước và sau khi dùng thuật toán Euclidean
Segmentation ĐỒ ÁN TỐT NGHIỆP 2016
Thuật toán Normal
Định nghĩa về ước lượng pháp tuyến là vector vuông góc với mặt phẳng tại mỗi điểm trên bề mặt của đám mây điểm Để thực hiện điều này, cần tìm các điểm gần nhất trong không gian, tối thiểu là ba điểm để tạo thành mặt phẳng, từ đó xây dựng một vector vuông góc hướng ra Ứng dụng của pháp tuyến là xác định hướng của bề mặt trong đám mây điểm.
Hình 2.10: Vector normal được tìm thấy
Ba điểm P1, P2, P3 xác định một mặt phẳng duy nhất nếu không nằm trên một đường thẳng Để xác định mặt phẳng này, ta tính hai vector a = P2 – P1 và b = P3 – P1 Từ đó, vector pháp tuyến của mặt phẳng được xác định bằng a x b.
Bộ lọc Voxel_Grid là một công cụ hiệu quả trong không gian 3D, giúp giảm số lượng mẫu điểm của các đám mây điểm bằng cách chia không gian thành các khối nhỏ gọi là voxel Trong mỗi voxel, tất cả các điểm bên trong sẽ được làm giảm (downsample) tại tâm của khối, giúp tối ưu hóa dữ liệu Hình 2.11 minh họa cấu trúc của các khối Voxel_Grid trong không gian 3D.
Hình 2.11: Mô tả Voxel_Grid
Thuật toán NARF (Normal Aligned Radial Feature) được sử dụng để tìm kiếm các điểm đặc trưng trong đám mây điểm Trong lĩnh vực 2D, SIFT (Scale Invariant Feature Transform) và SURF (Speeded Up Robust Features) là hai hệ thống phổ biến để xác định điểm đặc trưng và tạo mô tả Tuy nhiên, SIFT và SURF không thể áp dụng trực tiếp trong không gian 3D Do đó, cần chuyển đổi các điểm ảnh 3D sang 2D để thuận tiện cho việc tính toán điểm đặc trưng, và NARF sẽ áp dụng các nguyên lý của SIFT để thực hiện nhiệm vụ này.
Các bước để tìm keypoints:
Khai thác biên là một phương pháp hiệu quả để giảm thiểu nhiễu và biến đổi độ phân giải bằng cách phân tích khoảng cách giữa các điểm ảnh lân cận Quá trình này bao gồm việc phân loại biên thông qua việc xem xét các khu vực xung quanh mỗi điểm ảnh, từ đó xác định các đặc điểm quan trọng của hình ảnh.
+ Sử dụng heuristic để tìm khoảng cách 3D với các điểm lân cận đó (các điểm này không nằm trên biên) ĐỒ ÁN TỐT NGHIỆP 2016
+ Sử dụng thông tin này để tìm ra một số cách để các điểm này là một phần của một biên
+ Xác định các lớp mà các điểm này thuộc về biên
+ Thực hiện nén non-maximum để tìm ra vị trí biên chính xác
Để khai thác các điểm đặc trưng, cần quan sát sự thay đổi của bề mặt xung quanh nhằm phát hiện dễ dàng trong cùng một vị trí từ nhiều khía cạnh khác nhau Điều này cho thấy rằng trong khu vực bề mặt bị thay đổi, có những hướng đặc trưng quan trọng khác nhau.
Để phân tích các điểm ảnh, cần xem xét các khu vực xung quanh và xác định mức độ thay đổi bề mặt tại vị trí đó, đồng thời xác định hướng chủ đạo của sự thay đổi, kết hợp với thông tin về biên.
Để phân tích mỗi điểm ảnh, cần xem xét hướng chủ đạo xung quanh và tính toán giá trị đặc trưng mà nó đại diện Điều này bao gồm việc xác định số lượng hướng khác nhau cũng như số mặt tự thay đổi tại các điểm ảnh đó.
+ Thực hiện làm phẳng giá trị đặc trưng
+ Thực hiện nén non-maximum để tìm ra điểm đặc trưng
Ví dụ về tìm điểm đặc trưng về biên và sự thay đổi bề mặt trong Hình 2.12
Hình 2.12: Điểm đặc trưng vật mẫu ĐỒ ÁN TỐT NGHIỆP 2016
Thuật toán SHOT được sử dụng để mã hóa thông tin về một điểm trong pointcloud thông qua cấu trúc hình cầu Cấu trúc này được chia thành 32 phần nhỏ, với 8 đơn vị theo góc phương vị, 2 theo độ cao và 2 theo bán kính Trong một mặt phẳng, thuật toán SHOT sẽ xác định các điểm có cùng hướng, chỉ xem xét trong một hình cầu mà thuật toán này định nghĩa.
Thuật toán SHOT cho phép chúng ta xác định và biểu diễn đặc điểm của các vector trong không gian tọa độ XYZ Bằng cách tập hợp các vector xung quanh, một vector duy nhất với phương chiều và độ lớn sẽ được hình thành, giúp dễ dàng nhận diện và phân tích chúng.
K-d tree(viết tắt của k-deimension tree) [4] được sử dụng để tìm kiếm các
Nearest-Neighbour (láng giềng gần nhất) là phương pháp tìm kiếm điểm hoặc vị trí cụ thể một cách hiệu quả bằng cách sử dụng các đặc tính của cây để loại bỏ phần lớn không gian tìm kiếm Cấu trúc dữ liệu K-d tree được sử dụng để phân vùng không gian và tổ chức các điểm trong không gian với k chiều K-d tree là một cây nhị phân trong đó mỗi nút đại diện cho một điểm k chiều, giúp tối ưu hóa quá trình tìm kiếm.
Mặt phẳng 14 chia không gian thành hai nửa, với bên trái đại diện cho các cây con trái của nút và bên phải là các cây con phải.
Hướng của mặt phẳng trong cây được xác định bằng cách liên kết mỗi nút với một trong các k-dimensional, với các mặt phẳng vuông góc với trục không gian Nếu trục “x” được chọn làm trục chia, các điểm trong cây con có giá trị “x” nhỏ hơn sẽ nằm trong cây con trái, trong khi các điểm lớn hơn sẽ nằm trong cây con phải Các mặt phẳng được thiết lập dựa trên giá trị x của điểm và trở thành trục x đơn vị Quy trình này sẽ tiếp tục lặp lại trên cả hai cây con trái và phải cho đến khi cây chỉ còn một phần tử.
2.14 mô tả cấu trúc K-d tree trong không gian 3D.
Hình 2.14: K-d tree trong không gian 3D
Hough Transform (HT) là một kỹ thuật thị giác máy tính nổi bật, chủ yếu dùng để phát hiện đường thẳng trong ảnh 2D Kỹ thuật này có thể được điều chỉnh để nhận diện các hình dạng phức tạp như hình tròn và hình bầu dục Ý tưởng cốt lõi của HT là thực hiện việc bỏ phiếu cho các đặc điểm hình ảnh, chẳng hạn như góc và cạnh, trong không gian của hình thể cần phát hiện Các phiếu bầu này được tập hợp thành một mảng, với số chiều tương ứng với số lượng tham số của lớp hình dạng đang được xem xét.
Một thuật toán tổng quát cho phép phát hiện các vật thể tùy ý thông qua phương pháp Hough Voting, sử dụng hai không gian 3D riêng biệt để xoay và dịch Phương pháp này phát hiện các đối tượng bằng cách tìm sự tương ứng giữa các điểm, kết hợp các đường thẳng trong không gian để tạo ra một mảng, từ đó giúp xoay và dịch các điểm tương ứng.
Thuật toán NARF
Thuật toán NARF (Normal Aligned Radial Feature) được sử dụng để tìm kiếm các điểm đặc trưng trong đám mây điểm Trong lĩnh vực 2D, SIFT (Scale Invariant Feature Transform) và SURF (Speeded Up Robust Features) là hai hệ thống phổ biến để xác định điểm đặc trưng và tạo mô tả Tuy nhiên, SIFT và SURF không thể áp dụng trực tiếp trong không gian 3D, do đó cần chuyển đổi các điểm ảnh 3D sang 2D để tính toán điểm đặc trưng một cách dễ dàng hơn Thuật toán NARF sẽ ứng dụng theo phương pháp của SIFT để thực hiện nhiệm vụ này.
Các bước để tìm keypoints:
Khai thác biên là một phương pháp hiệu quả để giảm thiểu nhiễu và sự thay đổi độ phân giải bằng cách xem xét khoảng cách giữa các điểm ảnh lân cận Dựa trên nguyên tắc này, biên được phân loại theo các bước cụ thể, trong đó mỗi điểm ảnh sẽ được phân tích dựa vào các khu vực xung quanh nó.
+ Sử dụng heuristic để tìm khoảng cách 3D với các điểm lân cận đó (các điểm này không nằm trên biên) ĐỒ ÁN TỐT NGHIỆP 2016
+ Sử dụng thông tin này để tìm ra một số cách để các điểm này là một phần của một biên
+ Xác định các lớp mà các điểm này thuộc về biên
+ Thực hiện nén non-maximum để tìm ra vị trí biên chính xác
Để khai thác các điểm đặc trưng, cần quan sát sự thay đổi bề mặt ở các khu vực xung quanh, giúp phát hiện chúng dễ dàng từ nhiều khía cạnh khác nhau Điều này cho thấy rằng trong khu vực bề mặt bị thay đổi, có những hướng đặc trưng quan trọng cần được chú ý.
Quan sát các khu vực xung quanh mỗi điểm ảnh để xác định mức độ thay đổi bề mặt tại vị trí đó, đồng thời xác định hướng chủ đạo của sự thay đổi, kết hợp với thông tin về biên.
Để phân tích mỗi điểm ảnh, ta cần xem xét hướng chủ đạo xung quanh và tính toán giá trị đặc trưng mà nó thể hiện Điều này bao gồm việc xác định số lượng hướng khác nhau cũng như số mặt tự thay đổi tại các điểm ảnh đó.
+ Thực hiện làm phẳng giá trị đặc trưng
+ Thực hiện nén non-maximum để tìm ra điểm đặc trưng
Ví dụ về tìm điểm đặc trưng về biên và sự thay đổi bề mặt trong Hình 2.12
Hình 2.12: Điểm đặc trưng vật mẫu ĐỒ ÁN TỐT NGHIỆP 2016
Thuật toán SHOT
Thuật toán SHOT được sử dụng để mã hóa thông tin về các điểm trong pointcloud thông qua một cấu trúc hình cầu Cấu trúc này được chia thành 32 phần nhỏ, với 8 đơn vị theo góc phương vị, 2 theo độ cao và 2 theo bán kính Trong một mặt phẳng, thuật toán SHOT sẽ xác định các điểm có cùng hướng, chỉ xem xét trong khu vực hình cầu của thuật toán.
Thuật toán SHOT cho phép chúng ta xác định đặc điểm của từng vector trong không gian tọa độ XYZ bằng cách tập hợp các vector xung quanh Qua đó, nó giúp tạo ra một vector duy nhất với phương chiều và độ lớn rõ ràng, giúp việc tìm kiếm và biểu diễn các vector trở nên dễ dàng hơn.
K-d tree(viết tắt của k-deimension tree) [4] được sử dụng để tìm kiếm các
Nearest-Neighbour (các điểm lân cận) là phương pháp tìm kiếm một điểm hoặc vị trí cụ thể, có thể thực hiện hiệu quả bằng cách sử dụng các đặc tính của cây để loại bỏ phần lớn không gian tìm kiếm K-d tree là một cấu trúc dữ liệu phân vùng không gian, giúp tổ chức các điểm trong không gian với k chiều Cấu trúc này là một cây nhị phân, trong đó mỗi nút là một điểm k-dimensional, và mỗi nút không phải là lá có thể được sử dụng để tối ưu hóa quá trình tìm kiếm.
Mặt phẳng 14 chia không gian thành hai nửa, với điểm bên trái đại diện cho các cây con trái của nút và điểm bên phải biểu thị các cây con phải.
Hướng của mặt phẳng trong cây được xác định bằng cách liên kết mỗi nút với một trong các k-dimensional, với các mặt phẳng vuông góc với trục không gian tương ứng Khi chọn trục “x” làm trục chia, các điểm trong cây con có giá trị “x” nhỏ hơn sẽ nằm trong cây con trái, trong khi các điểm có giá trị lớn hơn sẽ nằm trong cây con phải Các mặt phẳng được thiết lập dựa trên giá trị “x” của các điểm, với trục x là đơn vị Quy trình này sẽ tiếp tục lặp lại trên cả hai cây con cho đến khi cây cuối cùng chỉ còn một phần tử.
2.14 mô tả cấu trúc K-d tree trong không gian 3D.
Hình 2.14: K-d tree trong không gian 3D
Hough Transform (HT) là một kỹ thuật quan trọng trong thị giác máy tính, chủ yếu được sử dụng để phát hiện các đường thẳng trong ảnh 2D Bằng cách sửa đổi, HT cũng có khả năng phát hiện các hình dạng phức tạp như hình tròn và hình bầu dục Ý tưởng chính của phương pháp này là thực hiện việc bỏ phiếu cho các đặc điểm hình ảnh như góc và cạnh trong không gian của các hình thể cần phát hiện Các phiếu bầu này sau đó được tổng hợp thành một mảng, với số chiều tương ứng với số lượng tham số của hình dạng đang được xem xét.
Thuật toán Hough Voting cho phép phát hiện các vật thể tùy ý trong không gian 3D bằng cách sử dụng hai không gian riêng biệt cho xoay và dịch Phương pháp này dựa trên sự tương ứng giữa các điểm, kết hợp các đường thẳng trong không gian để tạo ra một mảng, từ đó giúp xoay và dịch các điểm tương ứng một cách hiệu quả.
Trong hệ tọa độ Đề-các, mỗi điểm được xác định bởi tọa độ (x,y) Để biểu diễn đường thẳng qua tham số, chúng ta sử dụng p, là độ dài vuông góc từ gốc tọa độ đến đường thẳng, và Q, là góc giữa đường vuông góc với trục x.
Chúng ta có quan hệ
Các giá trị p và Q có giới hạn [ 0,360 độ] p trong giới hạn [-D,D], trong đó D là đường chéo của ảnh
Ví dụ tìm ma trận xoay, dịch trong Hình 2.15
Hình 2.15: Dịch chuyển các điểm tương đồng
Thuật toán Hough 3D Grouping
Hough Transform (HT) là một kỹ thuật phổ biến trong thị giác máy tính, chủ yếu được sử dụng để phát hiện các đường thẳng trong ảnh 2D Kỹ thuật này có thể được sửa đổi để phát hiện các hình dạng phức tạp hơn như hình tròn và hình bầu dục Nguyên tắc chính của HT là thực hiện việc bỏ phiếu cho các đặc điểm hình ảnh, chẳng hạn như góc và cạnh, trong không gian của hình thể cần phát hiện Các phiếu bầu này được tập hợp thành một mảng với số chiều tương ứng với số lượng tham số của lớp hình dạng đang được xem xét.
Thuật toán Hough Voting cho phép phát hiện các vật thể tùy ý bằng cách sử dụng hai không gian 3D riêng biệt cho phép xoay và dịch Phương pháp này dựa trên sự tương ứng giữa các điểm, kết hợp các đường thẳng trong không gian để tạo ra một mảng, từ đó giúp xoay và dịch các điểm tương ứng một cách hiệu quả.
Trong hệ tọa độ Đề các, mỗi điểm được xác định bởi tọa độ (x,y) Chúng ta có thể biểu diễn đường thẳng bằng tham số p, là độ dài vuông góc từ gốc tọa độ đến đường thẳng, và Q, là góc giữa đường vuông góc với trục x.
Chúng ta có quan hệ
Các giá trị p và Q có giới hạn [ 0,360 độ] p trong giới hạn [-D,D], trong đó D là đường chéo của ảnh
Ví dụ tìm ma trận xoay, dịch trong Hình 2.15
Hình 2.15: Dịch chuyển các điểm tương đồng ĐỒ ÁN TỐT NGHIỆP 2016