TỔNG QUAN
ĐẶT VẤN ĐỀ
Bản đồ 3D được ứng dụng phổ biến trong Robot tự hành, đóng vai trò quan trọng trong điều hướng và điều khiển từ xa Nhóm nghiên cứu đã quyết định thực hiện đồ án mô phỏng không gian 3D bằng camera Kinect, cung cấp dữ liệu ảnh RGB và ảnh độ sâu Sử dụng thuật toán SIFT, nhóm xác định các cặp điểm đặc trưng tương đồng giữa các khung ảnh liên tiếp Sau đó, tọa độ các cặp điểm này được đối chiếu trên ảnh 3D tương ứng để tính toán ma trận chuyển đổi, nhằm đồng hóa gốc tọa độ của các đám mây điểm Quá trình ghép ảnh giữa các đám mây tiếp tục diễn ra, cho đến khi có được một đám mây hoàn thiện hơn Nhóm cũng tham khảo nhiều tài liệu quốc tế liên quan đến việc xây dựng bản đồ 3D với camera Kinect để hoàn thành đồ án.
Trong bài báo "2D Mapping of a Closed Area by a Range Sensor" của nhóm tác giả Shinya OGAWA, Kajiro WATANABE và Kazuyuki KOBAYASHI, mục tiêu là điều khiển xe không người lái trong không gian kín như nhà kho và căn phòng Để đạt được điều này, việc tạo bản đồ và định vị cho xe là rất quan trọng Nhóm nghiên cứu đã sử dụng laser rangefinder để xác định sự phân ngưỡng của vật thể, kết hợp với vị trí và hướng của robot nhằm xây dựng bản đồ 2D Mặc dù bản đồ thu được có thể hỗ trợ robot tự hành trong không gian kín, nhưng chỉ cung cấp hai tọa độ x,y, điều này gây bất lợi trong các thao tác điều khiển nâng cao.
Trong bài báo “ 3D Mapping With a RGB-D Camera ” của nhóm tác giả Felix Endres, Jurgen Hess, J ¨ urgen Sturm, Daniel Cremers, and Wolfram Burgard đã trình bày phương
Bộ môn Điện tử Công nghiệp nghiên cứu 14 phương pháp định vị và vẽ bản đồ sử dụng camera RGB-D như Kinect hoặc Asus Xtion Pro Live Hệ thống áp dụng thuật toán ICP (iterative-closest-point) và phương pháp RANSAC (Random Sample Consensus) để xử lý dữ liệu thu được từ camera, từ đó xây dựng bản đồ Đặc biệt, hệ thống có khả năng hoạt động hiệu quả trong các điều kiện khắc nghiệt, như khi camera di chuyển với tốc độ cao và trong các môi trường thiếu điểm đặc trưng.
The article "3D Map Reconstruction with Kinect Sensor" by authors Peter Beňo, František Duchoň, Michal Tửlgyessy, Peter Hubinský, and Martin Kajan from Slovak University explores two methods for map construction: RGBD-6D-SLAM and Truncated Signed Distance Function (TSDF) A notable limitation of this study is the requirement for a powerful computer to accurately process the new algorithms.
Bài báo "Indoor Mapping using Kinect and ROS" của nhóm tác giả Hesham Ibrahim, Mohamed Ahmed Omara, Khairul Salleh Mohamed Sahari từ đại học Tenaga Nasional, Malaysia, trình bày việc thu thập dữ liệu từ camera Kinect trên nền tảng ROS (Robot Operating System) Tuy nhiên, nghiên cứu chưa xác định được độ tin cậy của camera Kinect khi thực hiện trong các điều kiện như căn phòng trơn, nhẵn và thiếu ánh sáng.
Nhóm nghiên cứu đã cải tiến việc sử dụng camera Kinect giá rẻ của Microsoft bằng cách tham khảo và kết hợp các đề tài nghiên cứu trước đó Kết quả thu được từ việc thu thập dữ liệu môi trường trong không gian nhà ở cho thấy độ chính xác khoảng 60% Dữ liệu được truyền xuống camera trên nền tảng ROS và áp dụng thuật toán SIFT cùng phương pháp chuyển tọa độ ma trận 3D để khôi phục không gian ba chiều, với tốc độ xử lý nhanh chóng.
MỤC TIÊU
Mục tiêu của đề tài là xây dựng một bản đồ không gian 3D cho một căn phòng học, tạo ra một không gian ba chiều từ các đám mây ghép lại Mỗi đám mây trong bản đồ 3D được chuyển đổi từ các hình ảnh 2D, giúp tái hiện chính xác cấu trúc của không gian học tập.
Bộ môn Điện tử Công nghiệp 15 đã sử dụng camera Kinect để thu thập dữ liệu Sau khi áp dụng các thuật toán xử lý, bản đồ 3D của phòng học đã được hoàn thiện.
NỘI DUNG NGHIÊN CỨU
2- Tìm hiểu về openCV và thư viện Point Cloud
3- Tìm hiểu về thiết bị KINECT
4- Kết nối KINECT với máy tính
5- Thu thập các ảnh chụp từ KINECT lưu dưới dạng ảnh và dạng đám mây 6- Tìm các điểm tương đồng trong đám mây 3D
7- Ghép các đám mây 3D để được không gian hoàn thiện
8- Chỉnh sửa thuật toán, lọc nhiễu từ môi trường để có được không gian tốt nhất 9- Viết báo cáo luận văn
10- Báo cáo đề tài tốt nghiệp.
GIỚI HẠN
Đề tài hoàn thành được việc xây dựng một không gian chưa xác định từ các dữ liệu ảnh thu được của camera KINECT
Không gian xây dựng có thể bị nhiễu hoặc sai lệch so với thực tế do tác động của các yếu tố môi trường như ánh sáng và độ chi tiết của vật thể.
BỐ CỤC
Chương 1: Dẫn nhập Đưa ra vấn đề, lí do chọn đề tài Đề tài có tính cấp thiết như thế nào trong đời sống cũng như kết quả sẽ đạt được sau khi hoàn thành cùng với đó là những giới hạn của đề tài
Chương 2: Cơ sở lí thuyết Giới thiệu một cách khái quát về camera KINECT, các thuật toán có liên quan cũng như các công cụ và thư viện để xử lí ảnh 3D Đưa ra nguyên lí để xử lí trên các điểm ảnh, các đám mây được thu thập về từ KINECT
Chương 3: Thiết kế Đưa ra sơ đồ khối của chương trình, cách ghép nối các đám mây lại để tạo thành một không gian lớn hơn Nêu cụ thể các bước thực hiện
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 16
Chương 4: Thi công hệ thống Đưa ra lưu đồ giải thuật chương trình, giải thích và kết quả từng phần thực hiện
Chương 5: Kết quả và đánh giá Đưa ra hình ảnh kết quả đã thực hiện được Đánh giá ưu, nhược điểm của kết quả đạt được
Chương 6: Kết luận và hướng phát triển Kết luận về đề tài và đưa ra hướng phát triển tiếp theo
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 17
CƠ SỞ LÝ THUYẾT
HỆ ĐIỀU HÀNH ROS – ROBOT OPERATING SYSTEM
2.1.1 Giới thiệu tổng quan về ROS
Robot được tạo thành từ các mô-đun nhỏ, mỗi mô-đun đảm nhận một nhiệm vụ riêng biệt Chẳng hạn, robot dò line bao gồm bộ thu phát hồng ngoại, hai động cơ encoder và bộ xử lý trung tâm Tuy nhiên, với những robot lớn hơn, việc tích hợp nhiều mô-đun có thể gây khó khăn trong việc kiểm soát và giao tiếp Để giải quyết vấn đề này, Robot Operating System (ROS) đã được phát triển vào năm 2007.
2 năm 2013 chính thức trở thành hệ điều hành mã nguồn mở và ROS trở thành nền tảng cho lĩnh vực Robotic
Tất cả phần mềm ROS được tổ chức thành các gói, mỗi gói bao gồm nhiều tệp tin, bao gồm cả tệp thực thi và tệp hỗ trợ ROS không chỉ cung cấp các gói có sẵn trong thư viện mà còn có một cộng đồng hỗ trợ toàn cầu, giúp ích rất nhiều cho các nhà nghiên cứu.
ROS (Robot Operating System) là một mã nguồn mở, hoạt động như một siêu hệ điều hành cho robot, cung cấp các tính năng cần thiết như quản lý phần cứng, điều khiển thiết bị cấp thấp và thực hiện các chức năng như quản lý quá trình và gói Hệ thống ROS bao gồm các node độc lập, cho phép giao tiếp qua message thông qua hình thức publish và subscribe Một trong những ưu điểm nổi bật của ROS là khả năng giảm thiểu công việc lập trình và thiết lập hệ thống, nhờ vào nguồn tài nguyên mã nguồn mở phong phú từ cộng đồng và các phần cứng thiết kế sẵn như Amigo, Quadrobot và Barret hand.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 18
2.1.2 Trao đổi dữ liệu trong ROS
ROS tích hợp nhiều chuẩn giao tiếp khác nhau, bao gồm giao tiếp đồng bộ qua RPC thông qua các dịch vụ, truyền dữ liệu bất đồng bộ qua các topics, và lưu trữ dữ liệu trên Parameter Server.
Mục đích chính của ROS là điều khiển phần cứng ở mức thấp, cung cấp các hàm phổ biến cho từng mô-đun và kết nối chúng qua cổng TCP/IP ROS tổ chức các mô-đun thành nhiều node độc lập, với một node Master điều phối hoạt động của chúng.
Mỗi node trong hệ thống ROS thực hiện các chức năng cụ thể như cảm biến nhiệt độ, độ ẩm, đọc dữ liệu encoder và điều khiển phần cứng Node Master không chỉ quản lý các node mà còn kết nối chúng trong lớp ứng dụng, cho phép chúng gửi và nhận dữ liệu lẫn nhau Ngoài ra, node Master cũng sử dụng mô-đun để truyền thông tin giữa các Publisher và Subscriber Cấu trúc của ROS được mô tả trong Hình 2.1.
Master là trung tâm quản lý và trao đổi dữ liệu, đóng vai trò quan trọng trong việc kết nối các node Nếu không có master, các node sẽ không thể tìm thấy nhau để gửi và nhận các tin nhắn, cũng như yêu cầu dịch vụ cần thiết.
Hình 2.1 Cấu trúc trao đổi dữ liệu trong ROS
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 19
Node là một thành phần quan trọng trong quá trình tính toán của hệ thống Robot Mỗi robot tự hành thường bao gồm nhiều node, như node điều khiển camera Kinect, node điều khiển động cơ bánh xe, node thực hiện định vị, node định hướng di chuyển, và node vẽ lại không gian, cùng nhiều nhiệm vụ khác Các node trong ROS được phát triển dựa trên các thư viện mã nguồn mở như roscpp hoặc rospy.
Các node giao tiếp thông qua các thông điệp (message), hỗ trợ nhiều kiểu dữ liệu chuẩn như số nguyên, số thực, và Boolean Ngoài ra, thông điệp còn có thể chứa cấu trúc ký tự lồng và mảng.
Hệ thống vận chuyển tin nhắn hoạt động theo mô hình publish/subscribe, trong đó một node gửi tin nhắn bằng cách công bố nó qua một topic Topic là tên được sử dụng để xác định nội dung của tin nhắn, cho phép nhiều node cùng lúc có thể publish và subscribe trên cùng một topic, đồng thời một node cũng có thể tham gia nhiều topic khác nhau Chúng ta có thể hình dung topic như một bus tin nhắn, mỗi bus có một tên riêng, và bất kỳ node nào cũng có thể kết nối với bus để gửi và nhận tin nhắn, miễn là kiểu dữ liệu phù hợp.
Mô-đun publish/subscribe cung cấp giao tiếp linh hoạt nhưng có thể gây rối loạn hệ thống do lượng dữ liệu lớn trong quá trình truyền nhận Do đó, kiểu Request/Reply thường là lựa chọn phù hợp hơn Giao tiếp này diễn ra thông qua các dịch vụ, trong đó một node cung cấp dịch vụ với tên cụ thể, và node khác có thể sử dụng dịch vụ này bằng cách gửi tin nhắn yêu cầu và chờ nhận phản hồi.
THUẬT TOÁN SIFT – SCALE INVARIAN FEATURE TRANSFORM
Năm 2004, David G Lowe đã phát triển thuật toán nhận dạng SIFT, cho phép mỗi ảnh được đại diện bởi một tập hợp các điểm đặc trưng độc lập với độ phóng to, thu nhỏ và vị trí trong khung hình Quá trình nhận dạng bao gồm việc xác định vị trí các điểm đặc trưng trên ảnh mẫu và mô tả các đặc tính của chúng.
2.2.1 Xác định điểm đặc trưng trong ảnh Điểm đặc trưng (Interest Point (Keypoint)) là vị trí (điểm ảnh) “đặc trưng” trên ảnh
Các đặc trưng bất biến trong ảnh, như khả năng giữ nguyên khi quay, co giãn hoặc thay đổi cường độ ánh sáng, được trích xuất bằng thuật toán SIFT thông qua phương pháp thác lọc Việc xác định những đặc trưng này là rất quan trọng trong việc xử lý và phân tích ảnh.
Bộ môn điện tử công nghiệp 20 sẽ trình bày các lý thuyết toán học liên quan đến việc xác định các điểm đặc trưng trong ảnh Các điểm này được xác định thông qua phương pháp SIFT, tương thích với các cực trị địa phương của bộ lọc sai phân Gaussian ở nhiều tỉ lệ khác nhau Không gian tỉ lệ của hình ảnh được định nghĩa bởi hàm 𝐺(𝑥, 𝑦, 𝑘𝜎).
Ma trận 𝐼(𝑥, 𝑦) chứa các giá trị mức xám của ảnh mẫu cần phân tích, trong đó (𝑥, 𝑦) là tọa độ của từng điểm ảnh Hàm Gaussian với phương sai tăng dần được biểu diễn qua công thức (2.1).
2𝑘2𝜎2 (2.1) Ảnh ngõ vào 𝐼(𝑥, 𝑦) được nhân chập với hàm 𝐺(𝑥, 𝑦, 𝑘𝜎) để tạo ra các phiên bản 𝐿(𝑥, 𝑦, 𝑘𝜎) khác nhau tùy theo hệ số k = 1, 2, 3, 4, 5 được cho bởi công thức (2.2)
Khi hệ số k tăng, phương sai của hàm 𝐺(𝑥, 𝑦, 𝑘𝜎) cũng tăng, dẫn đến ảnh ngõ ra 𝐿(𝑥, 𝑦, 𝑘𝜎) tại các vị trí tương ứng có khả năng giảm mẫu mà không làm thay đổi hình dạng của các chi tiết trong ảnh Giá trị ban đầu của 𝜎 được chọn là 𝜎 = √2 ≈ 1.6, sau đó hệ số k được tăng dần từ 1 đến 5 để tạo ra các phiên bản ảnh khác nhau với kích thước ban đầu Tiếp theo, ảnh gốc sẽ được giảm mẫu 2 lần, và quá trình này sẽ tiếp tục khi tăng hệ số k Kết quả là một tập hợp các phiên bản ảnh khác nhau của vật mẫu, như được thể hiện trong Hình 2.2.
Theo lý thuyết, các điểm có giá trị cực đại hoặc cực tiểu của phép biến đổi bậc hai Laplace của hàm lọc Gaussian (𝜎²∇²𝐺) đại diện cho những điểm ổn định khi phóng to hoặc thu nhỏ ảnh vật mẫu Giá trị của (𝜎²∇²𝐺) có thể được xấp xỉ bằng các công thức (2.3), (2.4) và (2.5).
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 21
Vị trí cực đại hoặc cực tiểu của hàm (𝜎² ∇²𝐺) tương ứng với vị trí cực đại hoặc cực tiểu của hàm sai khác 𝐷(𝑥, 𝑦, 𝑘𝜎) Để xác định 𝐷(𝑥, 𝑦, 𝑘𝜎), các phiên bản ảnh vật mẫu với các hệ số 𝑘 liên tiếp sẽ được tính sai phân theo công thức (2.5) và Hình 2.3 Trên ảnh 𝐷(𝑥, 𝑦, 𝑘𝜎), để tìm vị trí có giá trị cực đại hoặc cực tiểu, mỗi vị trí sẽ được so sánh với 26 vị trí lân cận tại cùng độ phóng to và hai độ phóng to liền kề, như minh họa trong Hình 2.4 Nếu giá trị tại vị trí này lớn hơn hoặc nhỏ hơn giá trị của 26 vị trí lân cận, vị trí đó sẽ được chọn làm vị trí đặc trưng.
Gaussian Hình 2.2 Các phiên bản ảnh của vật mẫu tương ứng với các hệ số k và σ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 22
Trong hình 2.4, hai mươi sáu vị trí được so sánh với vị trí X nhằm xác định giá trị cực đại và cực tiểu Ảnh đã trải qua quá trình giảm mẫu lần thứ nhất, sau đó là ảnh chưa giảm mẫu, tiếp theo là ảnh sau khi áp dụng phép nhân chập với hàm Gaussian và cuối cùng là ảnh sai phân Gaussian.
Hình 2.3 Các phiên bản ảnh sai khác 𝐷(𝑥, 𝑦, 𝑘𝜎) tương ứng với các hệ số 𝑘 và σ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 23
Các vị trí được lựa chọn sẽ được tối ưu hóa để tránh nằm trên các đường biên của khung ảnh và đảm bảo có độ tương phản phù hợp Quy trình này giúp loại bỏ những điểm không cần thiết, từ đó tiết kiệm thời gian cho các bước xử lý tiếp theo trong quá trình nhận dạng.
2.2.2 Mô tả đặc tính các điểm đặc trưng
Sau khi xác định vị trí của các điểm đặc trưng trên ảnh mẫu, mỗi vị trí sẽ kết hợp với các điểm ảnh xung quanh để tạo thành ma trận ảnh 16×16, nhằm xác định các đặc điểm mà không bị ảnh hưởng bởi cường độ ánh sáng và hướng xuất hiện Hình 2.5 minh họa một ma trận ảnh 16×16 với điểm đặc trưng gần trung tâm Mỗi điểm ảnh trong ma trận được chuyển đổi thành vector Gradient, với chiều và độ lớn được tính theo công thức (2.6) và (2.7).
Sau khi xác định vector Gradient cho từng điểm ảnh trong cửa sổ 16×16, cửa sổ này được chia thành các ô vuông nhỏ 4×4 Mỗi ô 4×4 sẽ được thống kê theo 8 góc quay khác nhau từ 0 đến 360 độ, với độ phân giải 45 độ Các vector Gradient có góc gần nhất với góc quay sẽ được cộng dồn vào độ dài tương ứng Cuối cùng, mỗi bộ vector Gradient sẽ được chuẩn hóa để đảm bảo các đặc tính không bị ảnh hưởng bởi độ chói của ảnh mẫu Như vậy, mỗi vị trí điểm đặc trưng sẽ có 16 bộ vector Gradient tương ứng với 8 góc quay.
Hình 2.5 16x16 điểm ảnh xung quanh điểm đặc trựng và vector Gradient tương ứng cho mỗi điểm ảnh [6]
Bộ môn điện tử công nghiệp sử dụng 24 điểm đặc trưng khác nhau để biểu diễn ảnh vật mẫu Mỗi điểm đặc trưng này được mã hóa thành một vector có kích thước 4×4×88 Một ảnh mẫu có thể chứa nhiều điểm đặc trưng, và mỗi điểm được đại diện bằng một vector có 128 chiều.
2.2.3 Nhận dạng các cặp điểm tương đồng của hai ảnh 2D
Sau khi phân tích các đặc điểm trên hai ảnh 2D, thuật toán thu thập các vector mô tả các điểm đặc trưng của từng ảnh Các vector từ ảnh thứ nhất được so sánh với các vector từ ảnh thứ hai Nếu số lượng điểm trùng khớp đạt yêu cầu, chúng ta có thể kết luận rằng hai vật thể trong hai ảnh 2D là giống nhau, tức là một vật được chụp từ hai góc độ khác nhau.
𝑀 𝑖 (𝑥 𝑖1 , 𝑥 𝑖2 , 𝑥 𝑖3 , … , 𝑥 𝑖128 ) là vector mô tả các điểm đặc trưng thứ i của ảnh thứ nhất, có số lượng các điểm đặc trưng là 𝑆, 0 < 𝑖 ≤ 𝑆
𝑁 𝑗 (𝑦 𝑗1 , 𝑦 𝑗2 , 𝑦 𝑗3 , … , 𝑦 𝑗128 ) là vector mô tả các điểm đặc trưng thứ 𝑗 của ảnh thứ 2 thu thập được từ camera lắp đặt trên robot, có số lượng các điểm đặc trưng là 𝑇, 0 < 𝑗 ≤ 𝑇
Quá trình nhận dạng bắt đầu bằng việc so sánh mỗi điểm đặc trưng 𝑀 𝑖 với 𝑇 điểm đặc trưng 𝑁 𝑗 Mục tiêu là xác định các cặp điểm tương đồng thông qua việc tính toán khoảng cách giữa chúng.
Hai điểm được coi là tương đồng nếu khoảng cách giữa chúng, được ký hiệu là 𝑑 𝑖𝑗, nhỏ hơn hoặc bằng một hằng số 𝛿 Hằng số 𝛿 này do người thiết kế hệ thống lựa chọn và thường được xác định dựa trên thực nghiệm.
𝛿 càng lớn chất lượng nhận dạng càng thấp ngược lại số lượng các điểm tương đồng thu
Hình 2.6 Các vector Gradient được thống kê thành 8 giá trị góc quay khác nhau [6]
Chiều của điểm đặc trưng trong khung ảnh Tập hợp các vector Gradients
Các vector mô tả điểm đặc trưng
TÍNH MA TRẬN HOMOGRAPHY BẰNG THUẬT TOÁN RANSAC
RANSAC, viết tắt của "Random Sample Consensus" (đồng thuận mẫu ngẫu nhiên), là một thuật toán khử nhiễu được giới thiệu bởi Fischler và Bolles vào năm 1981 Thuật toán này nhằm phân loại dữ liệu thành hai loại: dữ liệu nhiễu (outlier) và dữ liệu không nhiễu (inlier) Để tìm ra mô hình tốt nhất cho tập dữ liệu, RANSAC thực hiện các phép tính lặp đi lặp lại, chọn ra các giá trị sao cho xác suất của tập dữ liệu mẫu ngẫu nhiên không chứa dữ liệu nhiễu đạt yêu cầu.
Nếu 𝑢 đại diện cho ước lượng dữ liệu không nhiễu, thì 𝑣 = 1 − 𝑢 sẽ là ước lượng dữ liệu nhiễu, và 𝑚 là số lượng dữ liệu đầu vào cần thiết để xây dựng mô hình Công thức (2.8) được thiết lập dựa trên các yếu tố này.
Ta có 𝑘 sẽ được tính theo công thức (2.9)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 26
Mô hình tối ưu sẽ được xây dựng dựa trên dữ liệu đầu vào, bao gồm cả tập dữ liệu nhiễu và không nhiễu Quá trình thực hiện thuật toán RANSAC sẽ được mô tả chi tiết dưới đây.
Từ tập dữ liệu đầu vào gồm có nhiễu và không nhiễu ta chọn dữ liệu ngẫu nhiên, tối thiểu để xây dựng mô hình
Tiến hành xây dựng mô hình với dữ liệu đó, sau đó đặt ra một ngưỡng dùng để kiểm chứng mô hình
Tập dữ liệu ban đầu được chia thành hai phần: một phần để xây dựng mô hình và một phần để kiểm chứng mô hình Sau khi mô hình được xây dựng, nó sẽ được kiểm chứng bằng tập dữ liệu kiểm chứng Nếu kết quả từ mô hình vượt qua ngưỡng quy định, điểm đó được xem là nhiễu; ngược lại, nếu không vượt qua ngưỡng, điểm đó sẽ không được coi là nhiễu.
Quá trình này sẽ được lặp đi lặp lại trong lần Với được tính theo công thức trên Tại mỗi vòng lặp giá trị của sẽ được tính lại
Kết quả là mô hình nào có số dữ liệu không nhiễu nhiều nhất sẽ được chọn là mô hình tốt nhất
2.3.2 Giới thiệu về ma trận Homography
Trong lĩnh vực thị giác máy, Homography là ánh xạ giữa gốc tọa độ của một ảnh và gốc tọa độ ban đầu Ma trận Homography đóng vai trò quan trọng trong việc xử lý hai ảnh bất kỳ, với ứng dụng rộng rãi trong sửa ảnh, ghép ảnh, và tính toán chuyển động, xoay hay dịch chuyển giữa các ảnh.
Trong đó: 𝑠 là hằng số tỉ lệ của phép chiếu và khác 0
𝑋′ là kết quả của phép ánh xạ
𝐻 là ma trận Homography, là một ma trận khả nghịch
Vì ma trận 𝐻 là khả nghịch, để tái tạo ảnh 𝑋 từ 𝑋 ′, chúng ta chỉ cần xác định ma trận Homography Hình 2.7 minh họa quá trình chiếu Homography.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 27
2.3.3 Tính ma trận Homography bằng thuật toán RANSAC
Ma trận Homography được xác định từ các cặp điểm tương đồng giữa hai ảnh 3D liên tiếp Khi có bốn cặp điểm nổi bật không thẳng hàng, phương trình 𝐴𝐻 = 0 theo phương pháp chuẩn hóa DLT cho phép chúng ta xác định ma trận 𝐴 có kích thước 8𝑥9 Từ ma trận 𝐴, chúng ta có thể tính toán ma trận 𝐻.
Với ma trận Homography được tính từ bốn cặp điểm ngẫu nhiên, khoảng cách 𝑑 đo mức độ gần nhau của các cặp điểm đã được so sánh Đối với cặp điểm nổi bật tương đồng (𝑥, 𝑥′), khoảng cách giữa hai vector 𝑑(𝑎,⃗⃗⃗ 𝑏⃗ ) có thể được xác định thông qua công thức (2.11).
Ta áp dụng thuật toán RANSAC:
Khởi tạo số vòng lặp 𝑘 , ngưỡng 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒, 𝑚𝑎𝑥 𝑖𝑛𝑙𝑖𝑒𝑟 , và 𝑝 = 0.99
Ta thực hiện vòng lặp 𝑓𝑜𝑟(𝑖 = 1: 𝑘) và thực hiện các bước sau:
Bước 1: Chọn 4 cặp điểm tương đồng ngẫu nhiên
Bước 2: Kiểm tra xem các điểm này có cùng nằm trên một đường thẳng không, nếu có, quay lại bước trên
Bước 3: Tính ma trận Homography 𝐻 từ 4 cặp điểm tương đồng sử dụng phương pháp DLT chuẩn hóa
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 28
Bước 4: Tính khoảng cách 𝑑 của các cặp điểm nổi bật tương đồng bởi công thức (2.12)
𝑑 = 𝑑(𝑥 , 𝐻 𝑐𝑢𝑟𝑟 𝑥⃗⃗⃗ ) + 𝑑(𝑥 , 𝐻 ′ 𝑐𝑢𝑟𝑟 𝑥′⃗⃗⃗ ) (2.12) Bước 5: Tính số lượng 𝑚 các cặp điểm không nhiễu (inlier) thỏa điều kiện:
Bước 6: Nếu 𝑚 > 𝑚𝑎𝑥 𝑖𝑛𝑙𝑖𝑒𝑟 thì 𝑚 = 𝑚𝑎𝑥 𝑖𝑛𝑙𝑖𝑒𝑟 , ma trận Homography được xác định: 𝐻 = 𝐻 𝑐𝑢𝑟𝑟 Bước 7: Tính 𝑘 theo công thức (2.13) với 𝑣 = 1 − 𝑚 𝑛⁄
Tiếp tục tính lại ma trận 𝐻 cho tất cả các cặp điểm tương đồng được coi là không nhiễu (inlier) bằng phương pháp DLT.
CÁC PHÉP BIẾN ĐỔI TRONG TỌA ĐỘ BA CHIỀU VÀ PHƯƠNG PHÁP GHÉP CÁC ĐÁM MÂY 3D
PHÁP GHÉP CÁC ĐÁM MÂY 3D
Trong không gian ba chiều, chúng ta xem xét hai hệ tọa độ Descartes 𝑂𝑥𝑦𝑧 và 𝑂′𝑥′𝑦′𝑧′, như được minh họa trong Hình 2.8 Một điểm A nằm trong không gian của cả hai hệ tọa độ này Trong hệ tọa độ 𝑂𝑥𝑦𝑧, điểm A có tọa độ (𝑥 𝐴 , 𝑦 𝐴 , 𝑧 𝐴 ), trong khi trong hệ tọa độ 𝑂′𝑥′𝑦′𝑧′, tọa độ của điểm A là (𝑥 𝐴 ′ , 𝑦 𝐴 ′ , 𝑧 𝐴 ′ ).
Hình 2.8 Hệ toạ độ Decartes 𝑂𝑥𝑦𝑧 và 𝑂′𝑥′𝑦′𝑧′
Để chuyển đổi tọa độ điểm A từ hệ tọa độ 𝑂′𝑥′𝑦′𝑧′ sang hệ tọa độ 𝑂𝑥𝑦𝑧, cần xác định ma trận chuyển đổi R theo công thức (2.14).
Có hai phép biến đổi chính là phép tịnh tiến và phép xoay
Phép tịnh tiến đươc thực hiện khi tọa độ 𝑂′𝑥′𝑦′𝑧′ là ảnh tịnh tiến của tọa độ 𝑂𝑥𝑦𝑧 Có gốc tọa độ 𝑂′(𝑥0, 𝑦0, 𝑧0) và các trục 𝑂 ′ 𝑥 ′ song song với 𝑂𝑥, 𝑂 ′ 𝑦 ′ song song với
𝑂𝑦, 𝑂 ′ 𝑧 ′ song song với 𝑂𝑧 Ma trận chuyển đổi R được xác định bởi công thức (2.15)
Ta sẽ có mối quan về phép tịnh tiến giữa hệ truc toạ độ 𝑂′𝑥′𝑦′𝑧′ và 𝑂𝑥𝑦𝑧 được xác định bởi công thức (2.16)
Phép xoay là quá trình biến đổi tọa độ 𝑂 ′ 𝑥 ′ 𝑦 ′ 𝑧 ′ thành ảnh xoay của tọa độ 𝑂𝑥𝑦𝑧 thông qua việc quay quanh các trục tọa độ 𝑂𝑥, 𝑂𝑦 và 𝑂𝑧 Trong đó, chiều xoay dương được quy ước là ngược chiều kim đồng hồ và góc xoay được ký hiệu là θ.
Ta có ma trận chuyển đổi R đổi với phép xoay quanh trục 𝑂𝑥 được cho bởi công thức (2.17)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 30
Mối quan hệ về phép xoay quanh trục 𝑂𝑥 giữa hệ truc toạ độ 𝑂′𝑥′𝑦′𝑧′ và 𝑂𝑥𝑦𝑧 được xác định bởi công thức (2.18)
Ta có ma trận chuyển đổi R đổi với phép xoay quanh trục 𝑂𝑦 được cho bởi công thức (2.19)
Mối quan hệ về phép xoay quanh trục 𝑂𝑦 giữa hệ truc toạ độ 𝑂′𝑥′𝑦′𝑧′ và 𝑂𝑥𝑦𝑧 được xác định bởi công thức (2.20)
Ta có ma trận chuyển đổi R đổi với phép xoay quanh trục 𝑂𝑧 được cho bởi công thức (2.21)
Mối quan hệ về phép xoay quanh trục 𝑂𝑥 giữa hệ truc toạ độ 𝑂′𝑥′𝑦′𝑧′ và 𝑂𝑥𝑦𝑧 được xác định bởi công thức (2.22)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 31
2.4.3 Ghép các cặp điểm tương đồng của hai đám mây 3D
Giả sử có hai đám mây 𝑃 0 và 𝑃 1, trong đó 𝑃 0 nằm trong hệ tọa độ 𝑂 0 𝑋 0 𝑌 0 𝑍 0 và 𝑃 1 nằm trong hệ tọa độ 𝑂 1 𝑋 1 𝑌 1 𝑍 1 Hai đám mây này có các cặp điểm x tương đồng lẫn nhau, được minh họa rõ ràng trong Hình 2.9.
Ghép hai đám mây là quá trình chuyển đổi hệ trục tọa độ từ 𝑂 1 𝑋 1 𝑌 1 𝑍 1 sang hệ trục 𝑂 0 𝑋 0 𝑌 0 𝑍 0 Để thực hiện việc này, cần xác định ma trận chuyển đổi 𝑀 10 giữa hai đám mây Việc xác định 𝑀 10 được thực hiện dựa trên các cặp điểm tương đồng giữa hai đám mây.
Gọi 𝑀 𝑖 (𝑥 𝑀𝑖 , 𝑦 𝑀𝑖 , 𝑧 𝑀𝑖 ) là điểm đặc trưng thứ 𝑖 của đám mây 𝑃 0 và 𝑁 𝑗 (𝑥 𝑁𝑗 , 𝑦 𝑁𝑗 , 𝑧 𝑁𝑗 ) là điểm đặc trưng thứ 𝑗 của đám mây 𝑃 1 Giả sử rằng các điểm 𝑀 𝑖 và 𝑁 𝑗 với 𝑖 = 𝑗 là những cặp tương đồng, điều này cho thấy sự liên kết giữa các đặc trưng trong hai đám mây.
Vì ma trận 𝑀 10 là ma trận chuyển đổi nên ta có công thức (2.23)
Trong bài viết này, 𝑃 0 đại diện cho đám mây 3D đầu tiên với trục tọa độ 𝑂 0 𝑋 0 𝑌 0 𝑍 0, trong khi 𝑃 1 là đám mây thứ hai có trục tọa độ 𝑂 1 𝑋 1 𝑌 1 𝑍 1 Ma trận chuyển đổi 𝑀 10 cho phép chuyển đổi giữa hệ trục tọa độ 𝑂 1 𝑋 1 𝑌 1 𝑍 1 và hệ trục khác, giúp tối ưu hóa quá trình xử lý dữ liệu 3D.
Hình 2.9 Hai đám mây nắm trên hai hệ trục toạ độ khác nhau và có các điểm x tương đồng
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 32
Vì hai hệ tọa độ ta đang xét là hệ tọa độ 3 chiều nên ma trận 𝑀 10 là ma trận 4x4 có dạng như công thức (2.24)
Ta có công thức (2.25) thể hiện mối liên hệ giữa toạ độ của các cặp điểm tương đồng tương ứng trên hai đám mây với ma trận chuyển đổi
Trong bài toán này, tọa độ của điểm 𝑀 𝑖 (𝑥 𝑀𝑖 , 𝑦 𝑀𝑖 , 𝑧 𝑀𝑖 ) và 𝑁 𝑗 (𝑥 𝑁𝑗 , 𝑦 𝑁𝑗 , 𝑧 𝑁𝑗 ) đã được xác định Ma trận 𝑀 10 chứa 12 biến số là ẩn số cần giải Khi thay một cặp điểm tương đồng vào công thức (2.25), ta có thể xây dựng 3 phương trình Để giải quyết 12 ẩn số này, cần ít nhất một số lượng phương trình tương ứng.
Giải hệ phương trình 12 phương trình sẽ cho ra 12 ẩn số của ma trận 𝑀 10, trong đó 𝑚 14, 𝑚 24, và 𝑚 34 đại diện cho tọa độ hiện tại của robot.
Khi chuyển trục tọa độ từ hệ 𝑂 1 𝑋 1 𝑌 1 𝑍 1 sang hệ 𝑂 0 𝑋 0 𝑌 0 𝑍 0 theo công thức (2.25), các điểm tương đồng x của hai đám mây gần như trùng nhau Đồng thời, đám mây 𝑃 1 cũng tiến sát lại đám mây 𝑃 0, tạo thành một đám mây lớn hơn như thể hiện trong Hình 2.10.
Hình 2.10 Hai đám mây có các điểm tương đồng y được ghép với nhau
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 33
2.4.4 Ghép các cặp điểm tương đồng của nhiều đám mây 3D
Giả sử có các đám mây 3D 𝑃 0 , 𝑃 1 , 𝑃 2 , 𝑃 3 lần lược có hệ trục tọa độ là
Trong bài viết này, chúng ta sẽ xem xét quá trình ghép các đám mây 𝑃 1, 𝑃 2, 𝑃 3 vào đám mây 𝑃 0, bằng cách chuyển đổi các trục tọa độ từ 𝑂 1 𝑋 1 𝑌 1 𝑍 1, 𝑂 2 𝑋 2 𝑌 2 𝑍 2, và 𝑂 3 𝑋 3 𝑌 3 về trục tọa độ 𝑂 0 𝑋 0 𝑌 0 𝑍 0 Phương pháp này sẽ giúp chúng ta tìm ra các ma trận chuyển đổi trục tọa độ giữa các đám mây 𝑀 10, 𝑀 21, và 𝑀 32, trong đó 𝑀 10 là ma trận chuyển đổi hệ trục.
𝑂 1 𝑋 1 𝑌 1 𝑍 1 về hệ trục 𝑂 0 𝑋 0 𝑌 0 𝑍 0 𝑀 21 là ma trận chuyển đổi hệ trục 𝑂 2 𝑋 2 𝑌 2 𝑍 2 về hệ trục
Ma trận chuyển đổi 𝑀 20 cho phép chuyển đổi hệ trục 𝑂 2 𝑋 2 𝑌 2 𝑍 2 về hệ trục 𝑂 0 𝑋 0 𝑌 0 𝑍 0 Việc chuyển đổi này diễn ra một cách liên tiếp, theo công thức (2.26).
Tương tự ma trận chuyển đổi 𝑀 30 được xác định bởi công thức (2.27)
Như vậy với n+1 đám mây ta có ma trận chuyển đổi đám mây thứ n về tọa độ
𝑂 0 𝑋 0 𝑌 0 𝑍 0 là 𝑀 𝑛0 theo công thức (2.28) với n+1 là số lượng đám mây cần phải ghép Hình 2.11 mô tả sự dịch chuyển các đám mây về cùng vị trí
Hình 2.11 Ghép các cặp điểm tương đồng của bốn đám mây lại với nhau
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 34
NGUYÊN LÍ ĐO ĐỘ SÂU CỦA CAMERA KINECT
2.5.1 Giới thiệu về camera Kinect
Camera Kinect là thiết bị đầu vào cảm biến chuyển động do Microsoft phát triển, chủ yếu dành cho máy chơi game Xbox 360 và máy tính sử dụng hệ điều hành Windows Kinect được ra mắt vào ngày 04/11/2010 tại Bắc Mỹ, tiếp theo là các thị trường Châu Âu vào 10/11/2010, Úc, New Zealand, Singapore vào 18/11/2010, và cuối cùng tại Nhật Bản vào 20/11/2010.
Camera Kinect cung cấp tọa độ của điểm ảnh trên khung hình mà nó thu thập, cùng với khoảng cách từ camera đến mặt phẳng song song chứa điểm ảnh đó.
2.5.2 Những thành phần chính của Kinect
Kinect gồm có: RGB camera, cảm biến độ sâu (3D Depth Sensors), dãy microphone (Multi-array Mic) và động cơ điều khiển góc ngẩng (Motorized Tilt) như Hình 2.13
Camera RGB là một loại camera thông thường với độ phân giải 640x480 và tốc độ 30fps Nó cung cấp một ma trận chứa các tọa độ điểm ảnh trên khung hình cùng với một ma trận các giá trị RGB tương ứng của từng điểm ảnh Tập hợp các ma trận này tạo thành ảnh RGB của khung cảnh với độ phân giải 640x480.
Cảm biến độ sâu cung cấp khoảng cách từ camera đến các mặt phẳng chứa điểm ảnh trong khung hình Độ sâu được thu thập thông qua sự kết hợp giữa bộ phát hồng ngoại (IR Emitter) và cảm biến độ sâu hồng ngoại (IR Depth Sensor).
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 35
Dãy đa microphone gồm bốn microphone được bố trí dọc Kinect, giúp thu âm thanh tốt nhất cho các ứng dụng điều khiển bằng giọng nói Động cơ điều khiển góc ngẩng là động cơ DC nhỏ, cho phép điều chỉnh camera lên xuống, đảm bảo góc nhìn tối ưu Nhờ vào khả năng này, cảm biến có thể thu được hình ảnh chất lượng cao hơn so với khi không sử dụng bộ động cơ.
2.5.3 Thông số kỹ thuật của camera Kinect
Camera Kinect có tầm đo độ sâu tối ưu từ 0,8 m đến 4,0 m Khi vật thể nằm trong khoảng cách dưới 0,8 m hoặc vượt quá 4 m, độ chính xác của camera Kinect sẽ giảm đáng kể.
Tiêu cự và góc mở của camera IR và RGB có sự khác biệt do khoảng cách 2.5 cm giữa hai camera Để đảm bảo khung hình RGB bao gồm cả khung hình IR, góc mở của camera RGB được thiết kế lớn hơn, dẫn đến tiêu cự của nó nhỏ hơn Các thông số này được đo đạc thực nghiệm và được trình bày trong Bảng 2.1.
Hình 2.13 Các thành phần của Kinect
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 36
Bảng 2.1: Bảng thống kê tầm nhìn của camera Kinect
Kinect yêu cầu một lượng điện năng lớn để hoạt động, do đó, cổng USB của Xbox 360 không đủ khả năng cung cấp Để khắc phục vấn đề này, cần sử dụng một cổng chia để phân phối nguồn điện cho thiết bị.
Kinect kết nối với Xbox-360 thông qua cổng USB và cần nguồn điện 12VDC từ adapter.
Mẫu 360 mới không cần adapter nhờ vào các cổng AUX đặc biệt, cho phép kết nối dễ dàng Bên cạnh đó, kết nối USB cũng giúp Kinect giao tiếp trực tiếp với máy tính.
2.5.4 Nguyên lí đo độ sâu
Nguyên lý đo độ sâu của camera Kinect được minh hoạ như Hình 2.14 Đặc tính Camera RGB Cảm biến độ sâu
Tầm nhìn của camera Kinect
Hình 2.14 Lược đồ thể hiện mối quan hệ giữa độ sâu với độ sai lệch
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 37
Trong Hình 2.14, điểm k đại diện cho vị trí cần xác định độ sâu trên vật thể, trong khi điểm o nằm trên mặt phẳng tham chiếu Khoảng cách Z0 từ mặt phẳng tham chiếu đến camera và Zk là độ sâu của điểm k, tức là khoảng cách từ mặt phẳng chứa điểm k đến camera Khoảng cách b giữa bộ phát laser và camera hồng ngoại, cùng với tiêu cự f của camera, ảnh hưởng đến việc thu thập dữ liệu Cuối cùng, d là độ sai khác, thể hiện khoảng cách giữa hai điểm k và o trên ảnh do camera hồng ngoại ghi lại.
Các thông số Z0, f, b là những hằng số quan trọng được xác định trong quá trình chuẩn hóa camera Dựa trên lý thuyết về hai tam giác đồng dạng, chúng ta có thể áp dụng các công thức (2.29) và (2.30) để tính toán tỉ lệ giữa các thông số này.
Từ hai công thức (2.29) và (2.30) ta suy ra được cách tính khoảng cách thật từ mặt phẳng chứa điểm k đến camera Kinect như công thức (2.31)
Từ công thức (2.31), khoảng cách Zk có thể được xác định thông qua giá trị d, mà giá trị này có thể dễ dàng tính toán bằng cách đếm số điểm ảnh từ camera hồng ngoại Nicolas Burrus, một trong những người tiên phong trong nghiên cứu Kinect, đã công thức hóa mối quan hệ giữa khoảng cách thực Zk từ mặt phẳng trước điểm k đến camera, với đơn vị tính là mét Độ chênh lệch d và khoảng cách từ Kinect đến mặt phẳng chứa điểm k được liên kết theo công thức (2.32).
Mỗi điểm ảnh trong khung hình được camera ghi nhận đều có thể đo được khoảng cách đến camera, được gọi là điểm độ sâu Khi tập hợp nhiều điểm độ sâu, chúng ta sẽ tạo ra một ma trận độ sâu, hay còn gọi là ảnh độ sâu (ảnh 3D).
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 38
CHUYỂN ĐỔI DỮ LIỆU ẢNH 2D THU ĐƯỢC TỪ CAMERA KINECT THÀNH ẢNH 3D
Camera Kinect có cấu tạo chính bao gồm một camera màu, cho phép tạo ra hình ảnh màu 2D với độ phân giải 640x480 pixel Mỗi pixel k(xk,yk) trong ảnh sẽ chứa ba thông tin màu RGB, với 0