Hệ thống stereo camera là một công nghệ sử dụng hai camera đặt cạnh nhau để tạo ra hình ảnh ba chiều của đối tượng.. Bằng cách sử dụng các thuật toán xử lý hình ảnh và phân tích không gi
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN ĐẶNG HÙNG PHÚ
THIẾT KẾ ROBOT 6 BẬC TỰ DO GẮP VẬT THỂ SỬ DỤNG
HỆ STEREO CAMERA DESIGN THE 6DOF ROBOT GRASPING THE OBJECT
USING THE STEREO CAMERA SYSTEM
Chuyên ngành: Kỹ Thuật Điều Khiển Và Tự Động Hóa
Mã số: 8520216
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 6 năm 2023
Trang 2Cán bộ hướng dẫn khoa học: TS Đặng Xuân Ba
Cán bộ chấm nhận xét 1: PSG TS Huỳnh Thái Hoàng
2 Thư ký: TS Nguyễn Trọng Tài
3 Phản biện 1: PSG TS Huỳnh Thái Hoàng
4 Phản biện 2: PSG TS Lê Mỹ Hà
5 Ủy viên: TS Ngô Thanh Quyền
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quảy lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ
Trang 3ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Nguyễn Đặng Hùng Phú MSHV: 2170156
Chuyên ngành: Kỹ Thuật Điều Khiển Và Tự Động Hóa Mã Số: 8520216
I TÊN ĐỀ TÀI: Thiết kế Robot 6 bậc tự do gắp vật thể sử dụng hệ stereo camera -
Design the 6DOF robot grasping the object using the stereo camera system
NHIỆM VỤ VÀ NỘI DUNG:
1 Nghiên cứu và thiết kế robot 6 bậc tự do, kiểm nghiệm chất lượng điều khiển
2 Nghiên cứu và xây dựng hệ stereo camera, kiểm tra độ chính xác hệ thống
3 Thực hiện xử lí ảnh vật thể
4 Tích hợp hệ stereo camera vào mô hình robot gấp vật thể, kiểm tra độ chính
xác của mô hình
II NGÀY GIAO NHIỆM VỤ: 06/02/2023
III NGÀY HOÀN THÀNH NHIỆM VỤ: 15/06/2023
IV CÁN BỘ HƯỚNG DẪN: TS Đặng Xuân Ba
Trang 4LỜI CẢM ƠN
Lời đầu tiên xin gửi lời cảm ơn chân thành đến thầy Đặng Xuân Ba đã tận tình chỉ dẫn, giúp đỡ và định hướng trong suốt thời gian làm đồ án và luận văn, tạo điều kiện thuận lợi để hoàn thành đề tài luận văn này
Xin cảm ơn thầy Nguyễn Vĩnh Hảo, Trường Đại học Bách Khoa Tp HCM đã tận tình chia sẻ và góp ý giúp học viên hoàn thành luận văn hoàn chỉnh hơn
Bên cạnh đó xin cảm ơn quý thầy cô trong bộ môn Điều khiển và Tự động hóa cũng như quý thầy cô trong khoa Điện Điện Tử, Trường Đại học Bách Khoa Tp HCM đã trang bị cho em những kiến thức nền tảng, bổ ích trong khoảng thời gian học tập tại trường
Học viên xin gửi lời biết ơn sâu sắc đến cha mẹ, bạn bè và gia đình đã luôn quan tâm ủng hộ tôi trong suốt thời gian qua Đó chính là nguồn động lực vô cùng lớn giúp tôi vượt qua những khó khăn và thử thách
Cuối cùng, xin gửi lời cảm ơn đến các thành viên trong Dynamics and Robotics Control Lab đã có những sự hỗ trợ nhiệt tình trong quá trình thực hiện đề tài để đề tài luận văn có thể hoàn thành tốt
Trang 5Hệ thống stereo camera là một công nghệ sử dụng hai camera đặt cạnh nhau để tạo ra hình ảnh ba chiều của đối tượng Bằng cách sử dụng các thuật toán xử lý hình ảnh và phân tích không gian, robot có thể xác định khoảng cách và vị trí của các vật thể trong môi trường Khi robot đã xác định được vị trí và hướng của vật thể, nó sẽ
sử dụng cánh tay robot để gắp và vận chuyển chúng Hệ thống robot cần có tính năng đáp ứng nhanh, khả năng điều chỉnh và kiểm soát lực cần thiết để tránh gây hư hại cho các vật thể mà nó gắp
Để đáp ứng cho nhu cầu ứng dụng hệ stereo camera, học viên thực hiện nghiên cứu và thiết kế robot 6 bậc tự do Robot 6 bậc tự do là một loại robot có khả năng di chuyển và xoay theo sáu trục độc lập, cung cấp độ linh hoạt cao trong việc thực hiện các tác vụ phức tạp Điều này cho phép robot có thể di chuyển và vị trí một cách chính xác và linh hoạt trong không gian 3D
Tóm lại, luận văn Thiết Kế Robot 6 Bậc Tự Do Gấp Vật Thể Sử Dụng Hệ Stereo Camera hướng đến việc phát triển một robot thông minh và linh hoạt, kết hợp giữa
hệ thống 6 bậc tự do và hệ stereo camera để đạt được khả năng gắp và vận chuyển vật thể trong môi trường 3D
Trang 6ABSTRACT
In the field of robot applications, a research and development project focusing on the capability of grasping and manipulating objects using a widely adopted stereo camera system has emerged The applications of this project can be found in various sectors such as: manufacturing industry, aerospace and aviation services, healthcare, and many other fields Robots can be utilized to automate workflow processes, reducing human workload and enhancing production efficiency
The stereo camera system is a technology that employs two cameras placed side
by side to generate three-dimensional images of objects By utilizing image processing algorithms and spatial analysis, the robot is able to determine the distance and position of objects within the environment Once the robot has identified the location and orientation of an object, it will employ its robotic arm to grasp and transport the object The robotic system must possess quick response, adjustable control, and the necessary force management to prevent damage to the grasped objects
To fulfill the requirements of utilizing the stereo camera system, the project focuses on researching and designing a 6-degree-of-freedom robot A 6-degree-of-freedom robot is a type of robot that can move and rotate along six independent axes, providing high flexibility in performing complex tasks This enables the robot to move and position itself accurately and flexibly within a 3D space
In summary, the thesis on the Design of a 6-Degree-of-Freedom Robot for Object Grasping Using a Stereo Camera aims to develop an intelligent and versatile robot, combining the capabilities of a 6-degree-of-freedom system with a stereo camera system to achieve object grasping and manipulation in a 3D environment
Trang 7LỜI CAM ĐOAN
Học viên xin cam đoan luận văn về đề tài “Thiết kế Robot 6 bậc tự do gắp vật thể
sử dụng hệ stereo camera” là công trình nghiên cứu cá nhân của tôi trong thời gian qua Mọi số liệu sử dụng phân tích trong luận văn và kết quả nghiên cứu là do tôi tự tìm hiểu, phân tích một cách khách quan, trung thực, có nguồn gốc rõ ràng và chưa được công bố dưới bất kỳ hình thức nào Tôi xin chịu hoàn toàn trách nhiệm nếu có
sự không trung thực trong thông tin sử dụng trong công trình nghiên cứu này
HỌC VIÊN
Nguyễn Đặng Hùng Phú
Trang 8MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU 1
1.1 Tổng quan đề tài 1
1.2 Mục tiêu đề tài 2
1.2.1 Mục tiêu và đối tượng nghiên cứu 2
1.2.2 Nhiệm vụ cụ thể của đề tài 3
1.3 Bố cục luận văn 3
1.4 Kế hoạch thực hiện luận văn 3
1.5 Các phần thực hiện trong luận văn 4
2.1 Lý thuyết về xử lí ảnh 5
2.1.1 Giới thiệu về hệ thống xử lí ảnh 5
2.1.2 Ảnh số 5
2.1.3 Điểm ảnh 7
2.1.4 Độ phân giải hình ảnh 7
2.1.5 Mức xám của ảnh 8
2.1.6 Không gian màu 8
2.1.7 Phân loại ảnh 10
2.1.8 Thư viện OpenCV 11
2.2 Tìm biên và xác định đường thẳng 11
2.3 Thuật toán phát hiện biên Canny 13
2.3.1 Giới thiệu 13
2.3.2 Thuật toán phát hiện biên Canny 13
2.4 Thuật toán nhận dạng đường thẳng Hough Transform 17
2.5 Hệ stereo camera 23
2.6 Công cụ Stereo Camera Calibrator 24
CHƯƠNG 3 CƠ SỞ LÝ THUYẾT VỀ KỸ THUẬT ROBOT 26
3.1 Sự phát triển của robot công nghiệp 26
3.2 Ứng dụng cánh tay robot trong quá trình sản xuất 28
3.3 Phân loại robot công nghiệp 28
3.3.1 Phân loại theo kết cấu 28
Trang 93.3.2 Phân loại theo điều khiển 29
3.3.3 Phân loại theo ứng dụng 29
3.4 Cấu trúc cơ bản của robot công nghiệp 30
3.4.1 Các thành phần chính của robot công nghiệp 30
3.4.2 Kết cấu tay máy 31
3.5 Bậc tự do của cơ cấu robot 34
3.6 Quy tắc Denavit Hartenberg (D-H) 34
3.7 Bài toán động học của robot 36
3.7.1 Động học thuận của robot 36
3.7.2 Động học nghịch của robot 38
3.8 Thiết kế quỹ đạo chuyển động cho robot 40
3.8.1 Giới thiệu và cơ sở thiết kế quỹ đạo 40
3.8.2 Tính toán thiết kế quỹ đạo chuyển động 40
CHƯƠNG 4 THIẾT KẾ ROBOT 6 BẬC TỰ DO 44
4.1 Thiết kế và chế tạo robot 44
4.2 Các thiết bị trong hệ thống điều khiển cho robot 49
4.2.1 Board điều khiển: Arduino Mega 2560 49
4.2.2 Mạch điều khiển động cơ bước TB6600 50
4.2.3 Nguồn 24V- 10A 51
4.2.4 Mạch giảm áp 24V 51
4.2.5 Động cơ bước 52
4.2.6 Động cơ và driver Mitsubishi J2S 53
4.3 Mô hình hoàn thiện 54
4.4 Sơ đồ đấu nối phần cứng 54
4.5 Động học thuận 57
4.6 Xác định tọa độ và phép biến đổi trong hệ camera 59
4.7 Phương pháp điều khiển số 62
4.8 Xác định hướng và vị trí của vật thể 64
4.9 Thực hiện các mô phỏng động học và điều khiển 66
4.9.1 Tính toán động học nghịch robot và mô phỏng 66
Trang 104.9.2 Áp dụng phương pháp điều khiển số 70
CHƯƠNG 5 LƯU ĐỒ GIẢI THUẬT ÁP DỤNG ĐIỀU KHIỂN HỆ THỐNG THỰC TẾ 74
5.1 Giải thuật điều khiển 74
5.1.1 Thuật toán xử lý ảnh 74
5.1.2 Thuật toán điều khiển Robot 77
5.2 Điều khiển Robot 6 bậc tự do qua Arduino, lập trình Python 78
5.2.1 Truyền dữ liệu từ Python sang cổng Serial của Arduino 78
5.2.2 Điều khiển động cơ bước từ Arduino 79
CHƯƠNG 6 KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 80
6.1 Nhận diện màu sắc 80
6.2 Khảo sát hệ stereo camera sau khi xây dựng 81
6.3 Gắp vật thể trên vùng camera 86
CHƯƠNG 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 89
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC 90
TÀI LIỆU THAM KHẢO 91
Trang 11DANH MỤC HÌNH ẢNH
Hình 2 1: Ảnh raster 6
Hình 2 2: Ảnh vector 6
Hình 2 3: Điểm ảnh 7
Hình 2 4: Độ phân giải ảnh 7
Hình 2 5: Không gian màu RGB 9
Hình 2 6: Không gian màu CMYK 9
Hình 2 7: Phân loại ảnh 10
Hình 2 8: Chuyển đổi sang ảnh xám 12
Hình 2 9: Mô tả biên lận cận của điểm P 15
Hình 2 10: Ảnh sobel (bên trái) và ảnh NMS (bên phải) 17
Hình 2 11: Đường thẳng trong hệ tọa độ cực 18
Hình 2 12: Mapping đường thẳng từ không gian ảnh sang không gian Hough 19
Hình 2 13: Mapping 5 đường thẳng từ không gian ảnh sang không gian Hough 19
Hình 2 14: Mapping 1 điểm từ không gian ảnh sang không gian Hough 20
Hình 2 15: Mapping nhiều điểm thẳng hàng từ không gian ảnh sang không gian Hough 20
Hình 2 16: Điểm ảnh trong không gian ảnh (trái) và không gian Hough (phải) 21
Hình 2 17: Lưới chứa cặp giá trị ρ và θ 21
Hình 2 18: Hệ thống Stereo Camera 24
Hình 2 19: Giao diện công cụ Stereo Camera Calibrator 25
Hình 3 1: Robot hàn ứng dụng trong công nghiệp 27
Hình 3 2: Các thành phần chính của một robot công nghiệp 30
Hình 3 3: Kết cấu tay máy 31
Hình 3 4: Robot tọa độ vuông góc đề các 32
Hình 3 5: Robot tọa độ trụ 32
Hình 3 6: Robot tọa độ cầu 33
Hình 3 7: Robot SCARA 33
Hình 3 8: Robot kiểu tay người 34
Hình 3 9: Thông số Denavit Hartenberg 35
Trang 12Hình 3 10: Đồ thị góc khớp thứ 1 42
Hình 3 11: Đồ thị góc khớp thứ 2 42
Hình 3 12: Đồ thị góc khớp thứ 3 43
Hình 4 1: Một số mô hình robot trong và ngoài nước 44
Hình 4 2: Mô hình được thiết kế trên solidwork 44
Hình 4 3: Thiết kế khớp 1 trên solidwork 46
Hình 4 4: Thiết kế khớp 2 trên solidwork 46
Hình 4 5: Thiết kế khớp 3 trên solidwork 47
Hình 4 6: Thiết kế khớp 4 trên solidwork 47
Hình 4 7: Thiết kế khớp 5 trên solidwork 48
Hình 4 8: Thiết kế khớp 6 trên solidwork 48
Hình 4 9: Arduino Mega 2560 49
Hình 4 10: Mạch điều khiển động cơ bước 50
Hình 4 11: Nguôn tổ ong 24V-10A 51
Hình 4 12: Mạch giảm áp XL4015 DC-DC 5A, 75W 51
Hình 4 13: Động cơ bước giảm tốc Nema 17 52
Hình 4 14: Động cơ và driver Mitsubishi J2S 53
Hình 4 15: Mô hình robot 6 bậc tự do thực tế 54
Hình 4 16: Sơ đồ điều khiển robot 55
Hình 4 17: Sơ đồ điều khiển động cơ AC servo 55
Hình 4 18: Quy trình thực hiện điều khiển robot 55
Hình 4 19: Các thông số cấu hình cho phát xung 56
Hình 4 20: Hệ trục của robot 6 bậc tự do 57
Hình 4 21: Hệ thống robot và camera 59
Hình 4 22: Mô hình pinhole camera 60
Hình 4 23: Sơ đồ khối hệ thống điều khiển 62
Hình 4 24: Mối quan hệ giữa vật thể và điểm đầu cuối robot 63
Hình 4 25: Bốn điểm nhận dạng được từ xử lí ảnh 64
Hình 4 26: Tổng quan vector chiều của vật trong mặt phẳng 64
Hình 4 27: Hệ trục điểm đầu cuối của robot so với hệ tọa độ thế giới 65
Trang 13Hình 4 28: Các nghiệm đi được của robot 6 bậc tự do 69
Hình 4 29: Ma trận T trước và sau khi tính toán 70
Hình 4 30: Robot ở trạng thái ban đầu 71
Hình 4 31: Robot sau khi bám theo vật 71
Hình 4 32: Sai số vị trí điểm đầu cuối của robot 72
Hình 4 33: Sai số ma trận T của điểm đầu cuối robot 72
Hình 4 34: Độ thay đổi biến khớp J1 - J3 73
Hình 4 35: Độ thay đổi biến khớp J4 - J6 73
Hình 5 1: Lưu đồ giải thuật chung cho chương trình nhận diện hình vuông 75
Hình 5 2: Lưu đồ nhận dạng vật thể hình vuông 76
Hình 5 3: Lưu đồ tìm hình vuông phù hợp từ danh sách các đoạn thẳng 77
Hình 5 4: Lưu đồ điều khiển hệ thống phân loại và đưa vào kho 78
Hình 5 6: Lưu đồ timer 5 thực hiện (5) 79
Hình 5 5: Lưu đồ điều khiển động cơ bước 79
Hình 6 1: Nhận dạng màu sắc các vật 80
Hình 6 2: Số cặp ảnh khi chưa loại bỏ 81
Hình 6 3: Kết quả sau khi loại bỏ ảnh không phù hợp 81
Hình 6 4: Khung hình camera bên trái và bên phải 86
Hình 6 5: Robot gắp vật cao 5cm và 2.5cm 87
Hình 6 6: Robot gắp vật màu đỏ và màu xanh 88
Hình 6 7: Robot đưa vật màu đỏ và màu xanh về kho 88
Trang 14DANH MỤC BẢNG BIỂU
Bảng 1 1: Kế hoạch thực hiện luận văn 3
Bảng 2 1: Bảng giá trị phương hướng của điểm ảnh 16
Bảng 3 1: Bảng Denavit Hartenberg 35
Bảng 4 1: Thông số robot 6 bậc tự do 45
Bảng 4 2: Thông số kĩ thuật của Arduino Mega 2560 49
Bảng 4 3: Thông số kĩ thuật của mạch điều khiển động cơ bước 50
Bảng 4 4: Thông số kĩ thuật của mạch giảm áp 51
Bảng 4 5: Thông số kĩ thuật của động cơ bước nema 17 52
Bảng 4 6: Thông số động cơ J2S 10A 53
Bảng 4 7: Bảng D-H robot 6 bậc tự do 58
Bảng 6 1: Kết quả nhận diện màu sắc 80
Bảng 6 2: Khảo sát hệ camera với 3 vật thể theo phương x 82
Bảng 6 3: Khảo sát hệ camera với 3 vật thể theo phương y 83
Bảng 6 4: Khảo sát hệ camera với 3 vật thể ở ở độ cao 2.5 cm 84
Bảng 6 5: Khảo sát hệ camera với 3 vật thể ở ở độ cao 7.5 cm 85
Bảng 6 6: Kết quả gắp vật cao 2.5cm 86
Bảng 6 7: Kết quả gắp vật cao 5cm 87
Trang 15DANH MỤC TỪ VIẾT TẮT
Trang 16CHƯƠNG 1 GIỚI THIỆU
1.1 Tổng quan đề tài
Cùng với sự phát triển mạnh mẽ của khoa học kỹ thuật trên thế giới cũng như ở nước ta hiện nay, việc ứng dụng các công nghệ mới, máy móc vào các dây chuyền sản xuất là một trong những tiêu chí đánh giá sự phát triển kinh tế của mỗi quốc gia Robot công nghiệp là một cơ cấu hoạt động tự động, có thể lập trình và có khả năng di chuyển trên hai hoặc nhiều trục Tại Việt Nam, thị trường Robot công nghiệp được cho là sẽ phát triển mạnh trong thời gian tới, cùng với việc các doanh nghiệp chú trọng vào cách mạng công nghiệp 4.0 Robot công nghiệp tăng trưởng nhiều nhất
ở ngành sản xuất ô tô (83%), với nhiều các nhà máy sản xuất như của Vinfast, Thaco…
Ngày nay, robot ngày càng trở thành một phần thiết yếu của cuộc sống Robot không chỉ thay thế con người trong việc đáp ứng các nhu cầu của thao tác liên tục và lặp lại, mà còn thực hiện các tác vụ thông minh như một con người thực sự Hệ thống điều khiển robot sử dụng camera được áp dụng rộng rãi trong nhiều ứng dụng của cánh tay máy [1], robot di động [2], và các phương tiện dưới nước [3] Hiện nay trong ứng dụng điều khiển robot, camera đóng vai trò quan trọng trong các ứng dụng điều khiển gắp vật, hàn mạch điện tử cũng như lắp ráp tự động Thông qua hệ thống camera, hệ thống robot được điều khiển tiến lại gần vị trí mong muốn và thực hiện các ứng dụng cụ thể
Kỹ thuật thị giác robot được pháp triển để điều khiển hệ thống robot bằng các tín hiệu hình ảnh phản hồi từ camera Các hệ thống Camera kép hiện đang có độ ứng dụng cao trong khoa học kỹ thuật vì từ camera ta có thể nhận dạng được chiều sâu của đối tượng tương tự mắt con người Dựa trên các nghiên cứu trước đây, [4] tác giả ứng dụng camera vào robot công nghiệp Fanuc sử dụng camera kép để xác dịnh vị trí của đối tượng Trong nghiên cứu [5], tác giả sử dụng phương pháp pseudoinverse để tìm ra vị trí của đối tượng dựa vào ma trận nội và ngoại camera biết trước Ở nghiên cứu [6], tác giả sử dụng mạng thần kinh Radial Basis Function ước lượng mô hình
Trang 17phi tuyến mô hình camera để tìm ra vị trí của đối tượng Việc giải quyết vấn đề xác định mối liên hệ giữa các camera với hệ trục gốc khá phức tạp, ảnh hưởng đến độ chính xác khi ta xác định vị trí trong không gian Để tìm ra được mối quan hệ giữa các camera, tức là đi tìm các thông số nội camera và ngoại camera, ở nghiên cứu [7] tác giả đề xuất lý thuyết về phương pháp hiệu chỉnh camera dựa vào ít nhất 6 điểm biết trước trong không gian, ta dễ dàng tìm được tiêu cự của camera và các ma trận chuyển đổi giữa camera với hệ tọa độ gốc Ở nghiên cứu [8, 9], các tác giả đề xuất phương pháp ước lượng các thông số nội và thông số ngoại camera sử dụng các thanh dài có độ dài cố định biết trước Trong nghiên cứu [10], thuật toán Stereo Camera đã được đề xuất và thử nghiệm trên mô hình xe tay máy di động, sử dụng dữ liệu điểm ảnh và kết hợp với phép lặp các điểm lân cận Về nhận dạng đối tượng vật thể, có nhiều kỹ thuật nhận dạng có thể kể đến ví dụ như phân loại cửa sổ trượt, cấu trúc hình ảnh, mô hình chòm sao, và mô hình hình dạng tiềm ẩn [11] Phân loại cửa sổ trượt đã được sử dụng rộng rãi trong các lĩnh vực phát hiện khuôn mặt, người đi bộ và ô tô vì chúng đặc biệt phù hợp với các vật thể cứng Trong thời gian gần đây, mạng thần kinh tích chập [12, 13] được sử dụng rất rộng rãi cho công việc nhân dạng này Nó trích xuất các đặc trưng hình ảnh thông qua lớp tích chập và nhận dạng các đặc trưng này thông qua các mẫu đã được đánh dấu trước
Từ nghiên cứu [5], học viên đề xuất phương pháp giải quyết bài toán sử dụng camera để tìm ra vị trí của vật Bên cạnh đó, để xác định ma trận nội camera và ngoại camera học viên sử dụng phương pháp ở nghiên cứu [9]
1.2 Mục tiêu đề tài
1.2.1 Mục tiêu và đối tượng nghiên cứu
Mục tiêu của luận văn là thiết kế robot 6 bậc tự do có thể gấp được vật thể chuyển động trên băng tải Điểm nổi bật của luận văn là tự xây dựng hệ thống camera Hệ camera được gắn cố định trong vùng làm việc của hệ thống robot để quan sát một cách tổng quan Từ các ảnh nhận được ta có thể phân tích được vị trí và hướng của vật trong không gian 3 chiều, giúp hệ thống robot có thể tiến về và gắp vật thể đúng hướng trong không gian
Trang 181.2.2 Nhiệm vụ cụ thể của đề tài
Nhiệm vụ cụ thể của luận văn được đề ra như sau:
• Thiết kế một hệ thống robot 6 bậc tự do phù hợp với yêu cầu của đề tài
• Xây dựng hệ camera tích hợp vào hệ thống robot và thực hiện căn chỉnh
• Dựa vào xử lí ảnh phân tích đưa ra vị trí và hướng của vật thể
• Thực hiện mô phỏng tích hợp vị trí và hướng của vật để điều khiển robot 6 bậc
tự do
• Áp dụng phương pháp điều khiển số để điều khiển robot
• Thực nghiệm phương pháp đề xuất trên mô hình thực
• Đánh giá kết quả phương pháp đề xuất trên
1.3 Bố cục luận văn
Bố cục đề cương được chia ra thành các phần sau đây:
• Phần 1 – Giới thiệu: phần này giới thiệu đề tài và các vấn đề cần nghiên cứu
• Phần 2 – Tổng quan tài liệu: phần này trình bày các nghiên cứu từ trước liên quan đến đề tài luận văn
• Phần 3 – Cơ sở lý thuyết: các lý thuyết cần thiết để thực hiện đề tài luận văn được trình bày
• Phần 4 – Kết quả đã đạt được: phần này trình bày những kết quả đánh giá
và kiểm chứng các ý tưởng và phương pháp đã đề ra
• Phần 5 – Kết luận: phần này trình bày tổng kết các kết quả đã đạt và các hướng phát triển trong tương lai
• Phần 6 – Tài liệu tham khảo: các tài liệu tham khảo được tình bày trong đề luận văn
1.4 Kế hoạch thực hiện luận văn
Bảng 1 1: Kế hoạch thực hiện luận văn
Trang 191/6 – 15/6 Xác định đề tài, tìm hiểu một số nghiên cứu liên quan
16/6 – 29/10 Thiết kế và gia công robot 6 bậc tự do
30/10 – 19/11 Tìm hiểu về cấu trúc và cách xây dựng hệ 2 camera
20/11 – 6/12 Mô phỏng điều khiển robot bám vật bằng phương pháp số
7/12 – 21/12 Viết đề cương luận văn
30/1 – 11/2 Xây dựng hệ 2 camera và thực hiện căn chỉnh cho hệ
12/2 – 4/3 Thực hiện xử lí ảnh khối vuông
5/3 – 25/3 Thực hiện lập trình, điều khiển robot 6 bậc tự do
26/3 – 8/4 Thiết kế bộ điều khiển số trên mô hình thực
8/4 – 15/5 Điều khiển gắp vật cho mô hình thực và đánh giá kết quả
16/5 – 30/5 Viết báo cáo
1.5 Các phần thực hiện trong luận văn
• Thiết kế một hệ thống robot 6 bậc tự do phù hợp với yêu cầu của đề tài
• Xây dựng hệ camera tích hợp vào hệ thống robot và thực hiện căn chỉnh
• Dựa vào các nhãn dán aruco, phân tích đưa ra vị trí và hướng của vật thể
• Thực hiện mô phỏng tích hợp vị trí và hướng của vật để điều khiển robot 6 bậc
tự do
• Áp dụng phương pháp điều khiển số để điều khiển robot
• Thực nghiệm phương pháp đề xuất trên mô hình thực
• Đánh giá kết quả phương pháp đề xuất trên
Trang 20CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VỀ XỬ LÍ ẢNH
2.1 Lý thuyết về xử lí ảnh
2.1.1 Giới thiệu về hệ thống xử lí ảnh
Xử lí ảnh là một lĩnh vực mang tính khoa học và công nghệ Xử lý ảnh gồm 4 lĩnh vực: Xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, truy vấn và nén ảnh Chính sự phát triển nhanh chóng của xử lý ảnh đã đóng góp rất nhiều vào cuộc sống hàng ngày của chúng ta Ngày nay xử lý ảnh được áp dụng rộng rãi trong cuộc sống như: photoshop, nén ảnh, nén video, nhận dạng biển số xe, nhận dạng khuôn mặt, xử lý ảnh thiên văn, xử lý ảnh trong y tế,…
2.1.2 Ảnh số
Ảnh số (digital image) là thành phần biểu diễn hình ảnh trong hầu hết các thiết bị điện tử hiện nay như máy ảnh, điện thoại, máy tính, các công cụ hỗ trợ có sử dụng ảnh Ảnh số, còn được gọi là ảnh kỹ thuật số, là hình ảnh được tạo ra và lưu trữ trong dạng số hóa Nói một cách đơn giản, ảnh số là một tập hợp các điểm ảnh (pixel) được biểu diễn bằng các giá trị số Mỗi điểm ảnh trong ảnh số chứa thông tin về màu sắc
và độ sáng của điểm đó Ảnh số cũng thường được sử dụng trong các lĩnh vực như thiết kế đồ họa, in ấn, truyền thông, và công nghệ Với sự phát triển của công nghệ
số hóa và lưu trữ, việc chia sẻ và truyền tải ảnh số trở nên dễ dàng hơn bao giờ hết Chúng ta có thể chia sẻ ảnh số qua email, các mạng xã hội, hoặc lưu trữ trên các dịch
vụ đám mây.Có thể phân chia ảnh số thành 2 loại: Ảnh raster và ảnh vector
Cả hai loại ảnh đều có ưu điểm và hạn chế riêng Ảnh raster thường được sử dụng rộng rãi hơn vì phổ biến trong các thiết bị và được hỗ trợ bởi các công cụ xử lý ảnh phổ biến như Photoshop Trong khi đó, ảnh vector thường được sử dụng cho các loại hình ảnh có các đường cong phức tạp như biểu đồ, lọc, logo do có khả năng mã hóa các đường cong một cách chính xác
Trang 212.1.2.1 Ảnh raster
Ảnh raster là tập hợp hữu hạn các giá trị số được gọi là điểm ảnh (pixel – picture element) Ảnh được chia thành các cột và các hàng chứa điểm ảnh Điểm ảnh là thành phần bé nhất biểu diễn ảnh, có giá trị số biểu diễn màu sắc, độ sáng,… của một thành
bị vỡ, không xuất hiện răng cưa như ảnh raster Dữ liệu ảnh vector nhỏ nên dung lượng thấp hơn ảnh raster Tuy nhiên màu sắc trong ảnh vector nhìn không thật, sắc
độ ít tinh tế hơn ảnh raster
Hình 2 2: Ảnh vector
Trang 222.1.3 Điểm ảnh
Điểm ảnh (pixel) là một phần tử của ảnh số tại tọa độ (x,y) với độ mức xám hoặc màu nhất định nào đó Kích thước và khoảng cách giữa các điểm ảnh được chọn phù hợp sao cho mắt thường có thể cảm nhận liên tục về không gian hoặc màu của ảnh số gần như là thật Mỗi phần tử trong ma trận được gọi là phần tử ảnh
Mỗi phần tử trong ma trận ảnh được gọi là phần tử ảnh, và giá trị của phần tử ảnh đại diện cho độ sáng (trong ảnh trắng đen) hoặc màu sắc (trong ảnh màu) tại vị trí tương ứng trên ảnh Với các giá trị màu từ 0 đến 255 (trong ảnh 8-bit), mỗi điểm ảnh
có thể biểu diễn hàng triệu màu sắc khác nhau
Hình 2 3: Điểm ảnh
2.1.4 Độ phân giải hình ảnh
Độ phân giải hình ảnh (Image resolution) là mật độ điểm ảnh chứa trong ảnh số được hiển thị Việc lựa chọn khoảng cách giữa các điểm ảnh tạo nên mật độ phân bố,
đó chính là độ phân giải và được phân bố theo phương x và y trong không gian 2D Ảnh có độ phân giải càng cao thì chất lượng ảnh sẽ càng mịn và càng rõ nét
Hình 2 4: Độ phân giải ảnh
Trang 232.1.5 Mức xám của ảnh
Mức xám là kết quả biến đổi tương đương một giá trị độ sáng của một điểm ảnh với một giá trị nguyên dương Thông thường nó được xác định trong khoảng [0, 255] tùy thuộc vào giá trị mỗi điểm ảnh Các thang giá trị mức xám thông thường là: 16,
32, 64, 128, 256 (Mức 256 là mức phổ dụng Lý do: từ kỹ thuật máy tính dùng 1byte (8 bits) để biểu diễn mức xám Mức xám dùng 1byte biểu diễn: 28 = 256 mức, tức là
từ 0 đến 255)
2.1.6 Không gian màu
Các không gian màu là một mô hình toán học dùng để mô tả các màu sắc trong thực tế được biểu diễn dưới dạng số học Thực tế có rất nhiều không gian màu được phổ biến và sử dụng trong nhiều mục đích khác nhau Có 3 nhóm không gian màu được ứng dụng phổ biến đó là không gian màu RGB, không gian màu CMYK và không gian màu HSV(HSB)
2.1.6.1 Không gian màu RGB
RGB là không gian màu phổ biến được sử dụng khá gần với cách mắt con người tổng hợp màu sắc Nguyên lý cơ bản là sử dụng 3 màu cơ bản R (Red – đỏ), G (Green – xanh lục), B (Blue – xanh lam) để biểu diễn tất cả màu sắc
Thông thường, trong mô hình 24 bits (không gian màu mặc định sử dụng trong OpenCV – tuy nhiên trong OpenCV, chúng được đảo kênh R và B, trở thành BGR), mỗi kênh màu sử dụng 8 bits để biểu diễn, mỗi kênh màu nằm trong khoảng 0 – 255
Bộ ba kênh này biểu diễn cho từng điểm ảnh, mỗi số biểu diễn cho một cường độ một màu
Vì vậy số màu tối đa có được là: 255 x 255 x 255 = 16581375 (màu)
2.1.6.2 Không gian màu CMYK
Không gian màu CMYK chỉ mô hình màu loại trừ, thường dùng trong in ấn Mô hình màu này dựa trên cơ sở trộn các chất màu của các màu sau:
- C=Cyan trong tiếng Anh có nghĩa là màu xanh lơ hay cánh chả
- M=Magenta trong tiếng Anh có nghĩa là màu cánh sen hay hồng sẫm
- Y=Yellow trong tiếng Anh có nghĩa là màu vàng
Trang 24- K=Key (trong tiếng Anh nên hiểu theo nghĩa là cái gì đó then chốt hay chủ
yếu để ám chỉ màu đen mặc dù màu này có tên tiếng Anh là black do
chữ B đã được sử dụng để chỉ màu xanh lam (blue) trong mô hình màu RGB)
Hình 2 5: Không gian màu RGB
Hỗn hợp của các màu CMY lý tưởng là loại trừ (các màu này khi in cùng một chỗ trên nền trắng sẽ tạo ra màu đen) Nguyên lý làm việc của CMYK là trên cơ sở hấp thụ ánh sáng Màu mà người ta nhìn thấy là từ phần của ánh sáng không bị hấp thụ Trong CMYK màu hồng sẫm cộng với màu vàng sẽ cho màu đỏ, màu cánh sen cộng với màu xanh lơ cho màu xanh lam, màu xanh lơ cộng với màu vàng sinh ra màu xanh lá cây và tổ hợp của các màu xanh lơ, cánh sen và vàng tạo ra màu đen
Hình 2 6: Không gian màu CMYK
Trang 252.1.6.3 Không gian màu HSV (HSB)
Không gian màu HSV (còn gọi là HSB) là một cách tự nhiên hơn để mô tả màu sắc, dựa trên 3 số liệu:
- H: (Hue) Vùng màu
- S: (Saturation) Độ bão hòa màu
- B (hay V): (Bright hay Value) Độ sáng
Trong OpenCV, H có giá trị trong khoảng [0,179] (thực tế là 0 - 360), S và V có giá trị trong khoảng [0,255]
2.1.7 Phân loại ảnh
Phân loại ảnh bao gồm 3 loại:
- Ảnh màu (Color image): mỗi điểm ảnh trong ảnh màu bao gồm ba giá trị kênh màu là Red, Green và Blue Tức là cần đến 24 bits tương ứng để có thể biểu diễn (mỗi kênh cần 8 bits để biểu diễn màu, giá trị nằm trong khoảng 0-255)
- Ảnh xám (Gray image): mỗi điểm ảnh chỉ được biểu diễn trong khoảng giá trị 0 -225, tức 8 bits
- Ảnh nhị phân (Binary image): chỉ có hai giá trị duy nhất thể hiện điểm ảnh
là 0 hoặc 1 tương ứng với trắng hoặc đen
Hình 2 7: Phân loại ảnh
Trang 262.1.8 Thư viện OpenCV
OpenCV là một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (computer vision), xử lý ảnh và máy học, và các tính năng tăng tốc GPU trong hoạt động thời gian thực
OpenCV được phát hành theo giấy phép BSD, do đó nó hoàn toàn miễn phí cho
cả học thuật và thương mại Nó có các interface C++, C, Python, Java và hỗ trợ Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để tính toán hiệu quả và với sự tập trung nhiều vào các ứng dụng thời gian thực Được viết bằng tối ưu hóa C/C++, thư viện có thể tận dụng lợi thế của xử lý đa lõi Được sử dụng trên khắp thế giới, OpenCV có cộng đồng hơn 47 nghìn người dùng Phạm vi sử dụng từ nghệ thuật tương tác, cho đến lĩnh vực khai thác mỏ, bản đồ trên web hoặc công nghệ robot OpenCV đang được sử dụng rộng rãi trong các ứng dụng bao gồm:
- Hình ảnh street view
- Kiểm tra và giám sát tự động
- Robot và xe hơi tự lái
- Phân tích hình ảnh y tế
- Tìm kiếm và phục hồi hình ảnh/video
- Phim - cấu trúc 3D từ chuyển động
- Nghệ thuật sắp đặt tương tác
2.2 Tìm biên và xác định đường thẳng
Để có thể nhận dạng được vật thể, phương pháp chúng ta sẽ sử dụng là tìm tất cả các cạnh của vật thể trong một bức ảnh chụp được từ camera Việc đầu tiên cần làm
là dùng phương pháp Canny và Hough Transfrom để tìm ra biên là đoạn thẳng Tiếp
đó ta sẽ lợi dụng các tính chất cũng như công thức toán học để tìm ra đoạn thẳng thuộc về hình vuông Cuối cùng, từ những hình vuông đã có ta có thể xác định tâm
và hướng của vật thể Trong xử lý ảnh, việc chuyển đổi ảnh màu sang ảnh xám là công việc vô cùng phổ biến và đơn giản Ảnh màu thực chất chỉ là tập hợp của những
ma trận số có cùng kích thước Khi muốn xử lý thông tin trên ảnh, sẽ dễ dàng hơn nếu ta chỉ xử lý dữ liệu trên một ma trận số thay vì nhiều ma trận số Việc biến đổi
Trang 27ảnh màu về ảnh số (Grayscale converting) xuất hiện vì mục đích biến đổi thông tin ảnh về một ma trận số hai chiều duy nhất
Hình 2 8: Chuyển đổi sang ảnh xám
Hình ảnh được lưu trữ dưới dạng RGB (Red-Green-Blue) Điều này có nghĩa sẽ
có ba ma trận xám tương ứng cho màu Red, Green, Blue Công việc của chúng ta là tìm cách tổng hợp ba ma trận này về thành một ma trận duy nhất Một trong số các công thức phổ biến để thực hiện việc đó là:
I(x, y) = 0.299 * Red(x, y) + 0.587 * Green(x, y) + 0.114 * Blue(x, y) (2.1) Các thông số dùng để tính toán cường độ sáng cho ảnh xám như: 0.299, 0.587, 0.144, Được coi là những con số hợp lí được sử dụng bởi nhiều nhà nghiên cứu trên thế giới (Ví dụ: tiến sĩ C.Saravanan, viện nghiên cứu công nghệ quốc gia tại West Bengal, India; các thành viên của Digital Image Processing Lab tại đại học Al-Mustansiriyah) Các con số này có thể thay đổi Ta hoàn toàn có thể chọn một giá trị một kênh màu hoặc chia trung bình cộng của 3 kênh màu để tìm cường độ sáng tại một điểm ảnh (Pixel)
Để thực hiện việc này dễ dàng thì trong OpenCV có hỗ trợ một lệnh dùng để chuyển đổi sang ảnh xám một cách nhanh chóng
im_gray = cv2.cvtColor(im_color, cv2.COLOR_BGR2GRAY)
Với im_gray là ảnh mong muốn và im_color là ảnh màu đưa vào xử lí
Trang 282.3 Thuật toán phát hiện biên Canny
2.3.1 Giới thiệu
Mục đích của việc phát hiện biên là giảm thiểu đáng kể số lượng dữ liệu trong một hình ảnh, trong khi các đặc tính cấu trúc vẫn được giữ để sử dụng cho việc xử lý hình ảnh hơn nữa Có rất nhiều phương pháp phát hiện biên đã được đề cập ở trên nhưng phương pháp Canny – được phát triển bởi John F Canny (JFC) vào năm 1986,
là một trong những công cụ xử lý hình ảnh thông dụng nhất Mặc dù nó khá là cũ, song đã trở thành một trong những phương pháp phát hiện biên tiêu chuẩn và vẫn được sử dụng trong nghiên cứu
Mục tiêu (ràng buộc) của JFC để phát triển thuật toán đó là tối ưu những vấn đề liên quan đến các tiêu chuẩn sau:
- Phát hiện: Xác suất phát hiện những điểm biên thực sự phải là cực đại hóa, trong khi xác suất lỗi phát hiện những điểm không phải biên cần được giảm thiểu Điều này tương ứng với tối đa hóa tỷ lệ báo hiệu nhiễu
- Cục bộ hóa: Các biên phát hiện nên càng gần biên thực càng tốt Có nghĩa là
độ chênh lệch cấp xám giữa các điểm trên cùng một biên càng nhỏ càng tốt
- Số lượng, hiệu suất: Biên không được nhận ra nhiều, trong khi chỉ có một biên tồn tại → giảm số lượng biên được phát hiện không được nhận ra
2.3.2 Thuật toán phát hiện biên Canny
2.3.2.1 Các bước thực hiện
Thuật toán được tiến hành qua 5 bước riêng biệt sau:
- Bước 1: Giảm nhiễu: Làm trơn ảnh để loại bỏ nhiễu bằng cách nhân chập ảnh với bộ lọc Gauss
- Bước 2: Tìm gradient: Tính toán góc và chiều dài của gradient Biên nên được đánh dấu nơi mà gradient của ảnh có chiều dài lớn
- Bước 3: Thực hiện “Non-maximum suppression”: Chỉ cực đại cục bộ những điểm được đánh dấu là biên (có mức xám cao)
Trang 29- Bước 4: Sử dụng ngưỡng đôi: Những biên tiềm năng được xác định bởi ngưỡng cao và ngưỡng thấp
2.3.2.2 Chi tiết các bước thực hiện
• Bước 1: Giảm nhiễu
Đây là điều không thể tránh khỏi vì tất cả các hình ảnh chụp từ máy quay sẽ chứa một số nhiễu Để ngăn nhầm lẫn nhiễu với các biên, nhiễu phải được giảm bớt Do
đó ảnh trước tiên được làm mịn bằng cách áp dụng một bộ lọc Gauss Cách thức tiến hành giống như ở Laplace of Gauss
Nhân của bộ lọc Gauss với độ lệch chuẩn σ = 1,4 được thể hiện trong phương trình sau (ở đây ta sử dụng một bộ lọc 5 x 5):
𝑆 = 1
159∗ [
• Bước 2: Tìm Gradient
Các thuật toán Canny về cơ bản tìm thấy các biên nơi mà cường độ mức xám của hình ảnh thay đổi nhiều nhất Những vùng này được tìm thấy bằng cách xác định gradient của ảnh Gradient tại mỗi điểm ảnh trong ảnh được làm mịn được xác định bằng cách áp dụng những phướng pháp dựa theo toán tử Sobel Bước đầu tiên là đạo hàm các kết quả ở bước 1 theo hướng x và y với mặt nạ 3x3:
𝑆′ = √𝑆𝑥2+ 𝑆𝑦2 (2.4) Đôi khi nó được đơn giản hóa bằng cách áp dụng thước đo khoảng cách Manhattan để giảm bớt sự phức tạp tính toán:
Trang 30• Bước 3: Tiến hành “Non-maximum suppression” (NMS)
Tức là loại bỏ một số biên dư thừa: Đối với mỗi điểm ảnh trên ảnh S’ ta tiến hành
so sánh giá trị của điểm đó với giá trị của hai điểm lân cận điểm đó Hai điểm lân cận này là hai điểm nằm trên đường thẳng chứa hướng của đường biên θ (công thức tính hướng của đường biên θ được tính ở bước 2)
Giả sử với điểm biên đang xét tại vị trí P(x, y), ta có 8 điểm biên lân cận điểm biên này:
Hình 2 9: Mô tả biên lận cận của điểm P
Tại điểm biên đó ta tiến hành tính giá trị góc của hướng đường biên θ Nếu hướng của đường biên θ ≤ 22,5 o hoặc θ > 157,5 o thì đặt giá trị của θ = 0 o khi đó hai điểm
biên lân cận điểm biên này tại vị trí (x-1, y) và (x+1, y)
Tương tự ta có kết quả hai điểm biên lân cận theo các hướng biên khác nhau như bảng dưới đây:
Trang 31Bảng 2 1: Bảng giá trị phương hướng của điểm ảnh
θ ≤ 22,5 o hoặc θ > 157,5 o θ = 0 o (x – 1, y) ; (x + 1, y)
22,5 o < θ ≤ 67,5 o θ = 45 o (x – 1, y – 1) ; (x + 1, y + 1) 67,5 o < θ ≤ 112,5 o θ = 90 o (x – 1, y – 1) ; (x + 1, y – 1) 112,5 o < θ ≤ 157,5 o θ = 135 o (x, y + 1) ; (x , y – 1)
Nếu điểm ảnh P(x, y) có cường độ gradient lớn nhất trong ba điểm ảnh kiểm tra
thì được giữ lại điểm biên này Nếu một trong hai điểm ảnh khác có cường độ gradient
cao hơn thì điểm ảnh P(x, y) này không có trong "trung tâm" của biên và không nên
được phân loại như là một điểm biên (tức là loại đi – cho giá trị điểm này = 0)
• Bước 4: Ngưỡng đôi
Các điểm biên còn lại sau khi thực hiện “Non-maximum suppression” vẫn được đánh dấu với cường độ pixel-by-pixel của chúng Nhiều điểm trong số điểm biên này
có lẽ sẽ là biên đúng trong ảnh, nhưng một số có thể được gây ra bởi biến đổi nhiễu hay màu sắc do bề mặt thô ráp Cách đơn giản nhất để phân biệt những điểm biên này với nhau là sử dụng một ngưỡng, vì vậy chỉ có biên mạnh hơn một giá trị nhất định
sẽ được bảo toàn
Thuật toán phương pháp phát hiện biên Canny sử dụng ngưỡng thấp T l và ngưỡng
cao T h:
- Xét điểm ảnh P(x,y)
- So sánh P(x,y) với hai ngưỡng T h và T l:
+ Nếu P(x,y) ≥ T h: Đánh dấu và giữ lại điểm biên này (đặt giá trị biên bằng 1)
+ Nếu P(x,y) < T l: Loại bỏ điểm biên này (đặt giá trị bằng 0)
+ Nếu T l ≤ P(x,y) < T h : Ta tiến hành so sánh giá trị P(x,y) với giá trị của 8 điểm lân cận Nếu một trong 8 điểm lân cận có giá trị > T h thì ta sẽ đánh dấu
và giữ lại giá trị điểm biên này và ngược lại là loại bỏ điểm biên này
Trang 32Hình 2 10: Ảnh sobel (bên trái) và ảnh NMS (bên phải)
2.4 Thuật toán nhận dạng đường thẳng Hough Transform
Biến đổi Hough (HT) (Hough, 1962) là một kỹ thuật mà nằm trong hình dạng hình ảnh Đặc biệt, HT đã được sử dụng để trích chọn đường thẳng, hình tròn và hình elip (hoặc cắt hình nón) Trong trường hợp đường thẳng, xác định toán học của nó tương đương với biến đổi Radon (Deans, 1981) HT được giới thiệu bởi Hough (Hough, 1962) và sau đó được sử dụng để tìm đường bong bóng chứ không phải là hình dạng trong hình ảnh Tuy nhiên, Rosenfeld ghi nhận lợi thế tiềm năng của HT như một thuật toán xử lý hình ảnh (Rosenfeld, 1969) HT do đó đã được thực hiện để tìm đường thẳng trong hình ảnh (Duda, 1972) và nó đã được mở rộng rất nhiều, vì
HT có nhiều lợi thế và nhiều tuyến đường tiềm năng để cải thiện
Ưu điểm chính của HT là nó có thể cung cấp các kết quả tương tự như đối với đối sánh mẫu nhưng nhanh hơn (Princen, 1992), (Sklansky, 1978), (Stockman, 1977) Điều này đạt được bởi một tái định dạng lại của quá trình đối sánh mẫu, dựa trên một phương pháp tiếp cận thu thập dấu hiệu là các voting trong một mảng tích lũy Việc thực hiện HT xác định một mapping từ các điểm ảnh vào một không gian tích lũy (không gian Hough) Mapping được thực hiện trong một cách tính toán hiệu quả dựa trên các hàm mô tả hình dạng mục tiêu Việc mapping này đòi hỏi ít tài nguyên hơn nhiều so với đối sánh mẫu Tuy nhiên, nó vẫn đòi hỏi lưu trữ quan trọng và yêu cầu tính toán cao Thực tế là HT tương đương với đối sánh mẫu đã đưa ra đủ động lực
Trang 33cho kỹ thuật này là trong số phổ biến nhất của tất cả các kỹ thuật trích chọn hình dạng hiện có
• Phương trình đường thẳng trong không gian ảnh
Như đã biết, phương trình đường thẳng cơ bản sẽ được biểu diễn theo 2 tham
số 𝑎 và 𝑏 như sau:
𝑦 = 𝑎𝑥 + 𝑏 (2.7) Tuy nhiên, với cách biểu diễn này, giá trị của góc nghiêng 𝑎 trải dài từ –
∞ đến +∞ Có thể lấy ví dụ, để có được phương trình đường Oy (x=0) thì 𝑎 phải tiến
tới ∞ Thuật toán Hough Transform yêu cầu các giá trị 𝑎, 𝑏 nằm trong một khoảng xác định (hay bị chặn trên dưới), ta phải sử dụng hệ tọa độ cực để biểu diễn phương trình đường thẳng Cách biểu diễn này như sau:
𝜌 = 𝑥𝑐𝑜𝑠(𝜃) + 𝑦𝑠𝑖𝑛(𝜃) (2.8)
Ở đây giá trị ρ đại diện cho đường thẳng vuông góc từ đường thẳng cần xác định cho đến góc của ảnh và giá trị θ tạo bởi đường thẳng vuông góc ρ với trục hoành được đo theo chiều ngược kim đồng hồ
Hình 2 11: Đường thẳng trong hệ tọa độ cực
Xét thấy trong phương trình tọa độ cực, giá trị của góc θ có thể bị chặn lại trong khoảng [0, π) Trên thực tế, không gian ảnh là không gian hữu hạn (bị chặn lại bởi các cạnh của ảnh), do vậy giá trị ρ cũng bị chặn
Trang 34• Mapping từ không gian ảnh sang không gian Hough
Từ một đường thẳng trong không gian ảnh với 2 tham số ρ và θ, chúng ta sẽ map sang không gian Hough thành một điểm
Hình 2 12: Mapping đường thẳng từ không gian ảnh sang không gian Hough
Từ một điểm trong không gian ảnh ta có thể vẽ nhiều đường thẳng đi qua chúng
Và những đường thẳng sẽ tạo ra nhiều điểm sau khi chuyển chúng qua không gian Hough
Hình 2 13: Mapping 5 đường thẳng từ không gian ảnh sang không gian Hough
Nếu ta có vô số đường thẳng đi qua một điểm trong không gian ảnh sau khi chuyển đổi sang không gian Hough sẽ hình thành một hình sin liên tục Vì vậy có thể nói rằng một điểm trong không gian ảnh sẽ là 1 đường sin trong không gian Hough (Hình 3.14)
Trang 35Hình 2 14: Mapping 1 điểm từ không gian ảnh sang không gian Hough
Các điểm nằm trên cùng một đường thẳng lại có biểu diễn là các hình sin giao nhau tại một điểm trong không gian Hough Đây là nơi xuất phát ý tưởng của thuật toán Hough Transform Chúng ta sẽ dựa vào các điểm giao nhau này để suy ngược lại phương trình đường thẳng trong không gian ảnh (Hình 3.15)
Hình 2 15: Mapping nhiều điểm thẳng hàng từ không gian ảnh sang không gian
Hough
Mỗi đường thẳng khác nhau sẽ tạo thành một điểm sáng (nơi giao nhau của nhiều hình sin) trên không gian Hough Dưới đây là sự biểu diễn 2 đường thẳng trong không gian Hough
Trang 36Hình 2 16: Điểm ảnh trong không gian ảnh (trái) và không gian Hough (phải)
• Thực hiện voting
Ta chia không gian Hough ra thành một lưới ô vuông nhỏ Ta sẽ có một lưới ô vuông với các hàng là trục ρ và các cột là trục θ như hình 3.17 Độ chính xác của thuật toán phụ thuộc vào số lượng các ô vuông được chọn cho mỗi cạnh Giả sử nếu
ta muốn độ chính xác của θ là 1 độ, ta cần 180 cột Giá trị ρ bị chặn bởi cạnh chéo của ảnh đầu vào Do vậy khi lấy độ chính xác của ρ là 1 (pixel) thì số hàng bằng độ dài đường chéo ảnh theo đơn vị pixel
Hình 2 17: Lưới chứa cặp giá trị ρ và θ
Các ô trong lưới ô vuông, được đặt giá trị ban đầu là 0 Xét các điểm trên ảnh đầu vào (chính là ảnh nhị phân thu được sau quá trình lọc biên sử dụng Canny), với mỗi
điểm sáng, ta xét θ trong khoảng [0, 180) Vì đã biết tọa độ điểm (x, y), ta dễ dàng
Trang 37tính được giá trị ρ Với mỗi cặp (θ, ρ), ta thực hiện vote (tăng giá trị tương ứng trên
lưới ô vuông lên 1 đơn vị) Cuối cùng ta lấy một ngưỡng (threshold) để xác định trên lưới ô vuông, cặp giá trị nào ứng với một đường thẳng trên thực tế
OpenCV đã tích hợp sẵn chương trình tính toán này Ta chỉ cần áp dụng lệnh sau:
lines = cv.HoughLines(edges, 1, np.pi / 180, 150, None, 0, 0)
Với các tham số được sử dụng lần lượt là:
- edges: Đầu ra của bộ lọc biên
- lines: Vector lưu kết quả dưới dạng (ρ, θ)
- rho: Độ phân giải của ρ theo đơn vị pixel Ở đây có giá trị 1 (pixel)
- theta: Độ phân giải của θ tính theo radian Giá trị sử dụng ở đây là
1 o (np.pi/180)
- threshold: Số lượng voting tối thiểu để xác định một đường thẳng
- srn, stn: 2 tham số cuối Khi chúng ta sử dụng thuật toán Hough transform
nguyên bản, 2 tham số này bằng 0
Trang 382.5 Hệ stereo camera
Hệ stereo camera giống như cách mắt chúng ta hoạt động để cung cấp cho chúng
ta nhận thức chiều sâu chính xác theo thời gian Nó đạt được điều này bằng cách sử dụng hai cảm biến cách nhau một khoảng cách nhất định để định vị các pixel tương
tự từ cả hai mặt phẳng 2D
Mỗi pixel trong hình ảnh máy ảnh kỹ thuật số thu thập ánh sáng đến máy ảnh dọc theo tia 3D Nếu một đối tượng địa lý trên thế giới có thể được xác định là vị trí pixel trong hình ảnh, chúng ta biết rằng tính năng này nằm trên tia 3D được liên kết với pixel đó Nếu chúng ta sử dụng nhiều máy ảnh, chúng ta có thể thu được nhiều tia Tìm nơi các tia này giao nhau cho chúng ta biết vị trí 3D của một vật thể và các tính năng của nó
Có nhiều loại mô hình stereo camera khác nhau được sử dụng trong ứng dụng thị giác máy tính và robot Dưới đây là một số loại phổ biến:
• Mô hình stereo camera với hai ống kính cố định: Đây là mô hình cơ bản của stereo camera, sử dụng hai ống kính cố định được đặt cách nhau một khoảng
cố định Sự khác biệt giữa hai ảnh được chụp bởi hai ống kính này được sử dụng để tính toán độ sâu và tạo ra ảnh stereo
• Mô hình stereo camera với cảm biến CMOS: Thay vì sử dụng hai ống kính cố định, mô hình này sử dụng hai cảm biến hình ảnh CMOS độc lập Hai cảm biến này có thể được đặt cách nhau một khoảng cố định và có thể điều chỉnh được để thay đổi cơ cấu stereo
• Mô hình stereo camera với ống kính xoay: Loại mô hình này có thể sử dụng một ống kính duy nhất và ống kính này có thể xoay để chụp hai ảnh từ hai góc nhìn khác nhau Độ sâu có thể được tính toán từ sự khác biệt giữa hai ảnh này
• Mô hình stereo camera tích hợp: Một số hãng cung cấp các mô hình stereo camera tích hợp sẵn trong một thiết bị duy nhất Những mô hình này thường kết hợp các cảm biến hình ảnh, công nghệ xử lý và phần mềm tích hợp để cung cấp khả năng thị giác 3D
Trang 39Hình 2 18: Hệ thống Stereo Camera
2.6 Công cụ Stereo Camera Calibrator
Matlab là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty MathWorks thiết kế Matlab cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác
Matlab dùng để giải quyết các bài toán về giải tích số, xử lý tín hiệu số, xử lý đồ họa mà không phải lập trình cổ điển Hiện nay, Matlab có đến hàng ngàn lệnh và hàm tiện ích Ngoài các hàm cài sẵn trong chính ngôn ngữ, Matlab còn có các lệnh
và hàm ứng dụng chuyên biệt trong các Toolbox để mở rộng môi trường Matlab, nhằm giải quyết các bài toán thuộc các phạm trù riêng Các Toolbox khá quan trọng
và tiện ích cho người dùng như toán sơ cấp, xử lý tín hiệu số, xử lý ảnh, xử lý âm thanh, ma trận thưa, logic mờ… Trong đó có công cụ Stereo Camera Calibrator
Ta có thể sử dụng ứng dụng Stereo Camera Calibrator để hiệu chỉnh hệ Stereo camera, sau đó bạn có thể sử dụng để khôi phục độ sâu từ hình ảnh Một hệ thống Stereo camera bao gồm hai máy ảnh
Trang 40Hình 2 19: Giao diện công cụ Stereo Camera Calibrator
Quy trình thực hiện để hiệu chỉnh hệ bằng Stereo camera bằng các bước sau:
1 Chuẩn bị hình ảnh, máy ảnh và mẫu hiệu chuẩn
2 Thêm cặp hình ảnh
3 Hiệu chỉnh camera stereo
4 Đánh giá độ chính xác hiệu chuẩn
5 Điều chỉnh các thông số để cải thiện độ chính xác (nếu cần)
6 Xuất đối tượng tham số
7 Trong một số trường hợp, các giá trị mặc định hoạt động tốt và bạn không cần thực hiện bất kỳ cải tiến nào trước khi xuất thông số Bạn cũng có thể thực hiện các cải tiến bằng cách sử dụng hiệu chỉnh máy ảnh hoạt động trực tiếp trong không gian làm việc Matlab