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

Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Thiết kế robot 6 bậc tự do gắp vật thể sử dụng hệ stereo camera

108 0 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

TRƯỜ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 2

Cá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 4

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

TÓM TẮT

Trong lĩnh vực ứng dụng robot, một dự án nghiên cứu và phát triển robot có khả năng gắp và vận chuyển các vật thể bằng cách sử dụng hệ thống stereo camera được sử dụng rất phổ biến Ứng dụng của dự án có thể được tìm thấy trong nhiều lĩnh vực như công nghiệp sản xuất, dịch vụ hàng không và không gian, y tế và nhiều lĩnh vực khác Robot có thể được sử dụng để tự động hóa quy trình công việc, giảm tải công việc cho con người và tăng hiệu suất sản xuất

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

ABSTRACT

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 7

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

MỤ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.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 9

3.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 10

4.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 11

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 12

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

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

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

DANH MỤC TỪ VIẾT TẮT

Trang 16

CHƯƠ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 17

phi 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 18

1.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 19

1/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 20

CHƯƠ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 21

2.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

độ ít tinh tế hơn ảnh raster

Hình 2 2: Ảnh vector

Trang 22

2.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 23

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

2.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 26

2.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 28

2.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):

𝑆 = 1159∗

• 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,5o hoặc θ > 157,5o thì đặt giá trị của θ = 0o 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 31

Bảng 2 1: Bảng giá trị phương hướng của điểm ảnh

θ ≤ 22,5o hoặc θ > 157,5o θ = 0o (x – 1, y) ; (x + 1, y)

22,5o < θ ≤ 67,5o θ = 45o(x – 1, y – 1) ; (x + 1, y + 1) 67,5o < θ ≤ 112,5oθ = 90o(x – 1, y – 1) ; (x + 1, y – 1) 112,5o < θ ≤ 157,5oθ = 135o(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 Tl và ngưỡng

cao Th:

- Xét điểm ảnh P(x,y)

- So sánh P(x,y) với hai ngưỡng Th và Tl:

+ Nếu P(x,y) ≥ Th: Đá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) < Tl: Loại bỏ điểm biên này (đặt giá trị bằng 0)

+ Nếu Tl ≤ P(x,y) < Th: 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ị > Th 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 32

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

cho 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 35

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

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

tí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à

1o (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 38

2.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 39

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

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

Ngày đăng: 30/07/2024, 23:39

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w