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

Ứng dụng xử lý ảnh nhận dạng vật thể theo màu sắc và hình dạng cho robot tay máy

117 278 5

Đ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

Thông tin cơ bản

Định dạng
Số trang 117
Dung lượng 22,2 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong giải thuật nhận dạng vật thể theo hình dạng, phần tạo mẫu trong HALCON và tạo ảnh trắng đen trong OpenCV được thực hiện theo phương pháp của luận văn.. Chương trình xử lý ảnh trong

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG - HCM Cán bộ hướng dẫn khoa học: PGS.TS HOÀNG ĐÌNH CHIẾN

(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 1: TS VÕ QUẾ SƠN

(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 2: TS NGUYỄN MINH HOÀNG

(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG

Tp.HCM ngày 30 tháng 12 năm 2014

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản

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Ử

TS ĐỖ HỒNG TUẤN TS ĐỖ HỒNG TUẤN

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: ĐẶNG ĐỨC DUY MSHV:11140008

Ngày, tháng, năm sinh: 18/03/1988 Nơi sinh: TP.Hồ Chí Minh Chuyên ngành: Kỹ Thuật Điện Tử Mã số : 605270

I TÊN ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH NHẬN DẠNG VẬT THỂ THEO MÀU SẮC và HÌNH DẠNG CHO ROBOT TAY MÁY

II NHIỆM VỤ VÀ NỘI DUNG: Thực hiện xử lý ảnh nhận dạng vật thể theo màu sắc và hình dạng bằng hai công cụ HALCON và OpenCV, so sánh kết quả nhận dạng của hai công cụ Từ kết quả so sánh, lựa chọn công cụ thích hợp để viết chương trình xử lý ảnh cho hai ứng dụng điều khiển robot tay máy gắp sản phẩm trên băng chuyền bỏ vào nơi qui định và gắp vật ở vị trí bất kì sắp xếp vào nơi qui định Viết chương trình điều khiển gồm chương trình xử lý ảnh, điều khiển tay máy, giao diện điều khiển và thực hiện kiểm nghiệm trên mô hình giả lập cho từng ứng dụng

III NGÀY GIAO NHIỆM VỤ: 10/02/2014

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 08/12/2014

V CÁN BỘ HƯỚNG DẪN: PGS.TS HOÀNG ĐÌNH CHIẾN

Tp HCM, ngày 30 tháng 12 năm 2014

CÁN BỘ HƯỚNG DẪN

(Họ tên và chữ ký)

PGS.TS HOÀNG ĐÌNH CHIẾN

CHỦ NHIỆM BỘ MÔN ĐÀO TẠO

(Họ tên và chữ ký)

TS HUỲNH PHÚ MINH CƯỜNG

TRƯỞNG KHOA ĐIỆN- ĐIỆN TỬ

(Họ tên và chữ ký)

TS ĐỖ HỒNG TUẤN

Trang 4

LỜI CẢM ƠN

Em xin gửi lời cám ơn sâu sắc đến thầy PGS.TS Hoàng Đình Chiến đã hướng dẫn em tận tình trong quá trình làm luận văn Thầy đã dẫn dắt, hướng dẫn cho em cách tư duy, làm việc và tiếp cận vấn đề một cách khoa học

Em xin chân thành cám ơn các thầy cô của khoa Điện-Điện tử đã tạo mọi điều kiện thuận lợi để chúng em được học tập, làm việc và sáng tạo

Con xin gửi lời cảm ơn đến Bố Mẹ đã tạo mọi điều kiện cho con, hỗ trợ con những lúc khó khăn, là điểm tựa vững chắc cho con trong cuộc đời

Tôi xin cám ơn những người bạn đã giúp đỡ, hỗ trợ tôi rất nhiều trong quá trình học tập và nghiên cứu

Tp Hồ Chí Minh, tháng 12 năm 2014

Học viên Đặng Đức Duy

Trang 5

TÓM TẮT LUẬN VĂN

Trong chương 1, luận văn sẽ đi vào tìm hiểu các giải thuật xử lý ảnh, cụ thể là giải thuật nhận dạng vật thể dựa trên màu sắc và hình dạng

Trong chương 3, luận văn tiến hành thực hiện các giải thuật trên bằng hai công

cụ xử lý ảnh là OpenCV (một thư viện mã nguồn mở đang được sử dụng phổ biến hiện nay trong lĩnh vực xử lý ảnh) và HALCON MVTec (một phần mềm lập trình

xử lý ảnh chuyên dụng) Hai công cụ này được giới thiệu trong chương 2 Trong giải thuật nhận dạng vật thể theo hình dạng, phần tạo mẫu trong HALCON và tạo ảnh trắng đen trong OpenCV được thực hiện theo phương pháp của luận văn Kết quả nhận dạng vật thể theo màu sắc và hình dạng thực hiện được trên hai công cụ OpenCV và HALCON sẽ được so sánh với nhau

Trong chương 5, từ kết quả so sánh trên, luận văn sẽ chọn ra công cụ phù hợp

để sử dụng cho các ứng dụng trong đề tài Luận văn thực hiện hai ứng dụng là

“Điều khiển Robot tay máy gắp sản phẩm trên băng chuyền bỏ vào nơi qui định” và

“Điều khiển Robot tay máy gắp vật thể ở vị trí bất kì sắp xếp vào nơi qui định” Các phương pháp điều khiển Robot tay máy sẽ được trình bày chi tiết trong chương 4, trong đó phương pháp điều khiển theo động học ngược để gắp vật thể ở vị trí bất kì được xây dựng bởi luận văn Mục tiêu của việc điều khiển là sao cho Robot tay máy

có thể gắp và bỏ vật thể đúng nơi qui định dựa vào kết quả nhận dạng vật thể theo các giải thuật xử lý ảnh đã thực hiện Luận văn thực hiện thiết kế giao diện điều khiển như nhau cho hai ứng dụng viết trên nền ngôn ngữ CSharp Đây là chương trình điều khiển chính để vận hành Robot tay máy Các chương trình xử lý ảnh của

đề tài được viết riêng Chương trình xử lý ảnh trong phần mềm HALCON được viết theo cú pháp ngôn ngữ của phần mềm này, sau đó sử dụng chức năng chuyển đổi ngôn ngữ của phần mềm để chuyển sang dạng ngôn ngữ CSharp và đóng gói thành một hàm con cho chương trình điều khiển chính Chương trình xử lý ảnh trong OpenCV được viết trên nền ngôn ngữ C/C++, sau đó đóng gói thành tập tin (.dll) để chạy trong chương trình điều khiển chính Toàn bộ hệ thống của hai ứng dụng sẽ được thực hiện trên mô hình giả lập để kiểm chứng kết quả

Trang 6

In chapter 5, from the results of this comparison, the thesis select the appropriate tool to use for it’s applications It makes two applications are "Robot manipulator control picking up products on the conveyor belt and dropping into designated place" and "Robot manipulator control picking up objects at any location and placing into designated place" The methods of Robot manipulator control are presented in detail in chapter 4, in which the method according to inverse kinematics to pick up objects at any location built by the thesis The goal of the controller is such that robot manipulator can pick up and drop objects into designated places based on object recognition results under the image processing algorithms were implemented The thesis designs the same interface window for two applications using CSharp This is the main program to operate the Robot manipulator The image processing programs are written separately The image processing program in HALCON is written in the language syntax of this software, then use the language conversion tool to transfer into CSharp language and packed into a subroutine for the main program The image processing program in OpenCV

is written in C/C ++, then packed into a file (.dll) to run in the main program The whole system of the two applications be done on the simulator model to verify the results

Trang 7

GIỚI THIỆU ĐỀ TÀI

Xử lý ảnh hiện đang là ngành khoa học rất phát triển, đã có rất nhiều ứng dụng

xử lý ảnh được nghiên cứu và phát triển trong nhiều lĩnh vực Từ những ứng dụng trong hành chính, an ninh đến các ứng dụng trong y tế và đặc biệt là các ứng dụng trong sản xuất công nghiệp Vì vậy, nghiên cứu về xử lý ảnh đang là một trong những yêu cầu thiết yếu trong khoa học kỹ thuật Ở các nước công nghiệp phát triển, xử lý ảnh đang có nhiều ứng dụng hữu ích, điển hình là về thị giác máy (machine vision) Trong đó, xử lý ảnh cho việc điều khiển Robot các loại có một phạm vi ứng dụng rộng lớn Cho nên, việc học và ứng dụng xử lý ảnh vào điều khiển Robot có tầm quan trọng đối với thực tiễn Trong đó, chúng ta cần phải bắt đầu từ một trong những vấn đề cơ bản là điều khiển nhận dạng vật thể để từ đó có thể dần tiếp cận được trình độ của thế giới, qua đó góp phần nâng cao dần nền khoa học kỹ thuật của đất nước

Đề tài của luận văn sẽ tiến hành thực hiện hai ứng dụng xử lý ảnh là “Điều khiển Robot tay máy gắp sản phẩm trên băng chuyền bỏ vào nơi qui định” và “Điều khiển Robot tay máy gắp vật thể ở vị trí bất kì sắp xếp vào nơi qui định” Robot tay máy trong các ứng dụng sẽ được điều khiển để gắp và đặt vật thể đúng nơi qui định

Để nhận biết được vật thể cần gắp ở vị trí nào và thuộc loại gì thì tay máy phải dựa vào kết quả xử lý ảnh nhận dạng cho vật thể Kết quả này có được từ quá trình thực hiện các giải thuật nhận dạng trên hai công cụ là phần mềm HALCON và thư viện OpenCV

Trang 8

of applications So, learning and applying image processing in robot control are important in practice In particular, we need to start from one of the basic problems

is the object recognition controller for gradually approaching the level of the world, thereby contributing to improving our country’s science gradually

The thesis makes two image processing applications are "Robot manipulator control picking up products on the conveyor belt and dropping into designated place" and "Robot manipulator control picking up objects at any location and placing into designated place" Robot manipulator in these applications is controlled

to pick up and place objects into the designated places To identify objects’s position and what kind of objects, the Robot has to rely on the results of image processing for object recognition These results are created by the process of implementing the recognition algorithms on two tools that are HALCON software and OpenCV library

Trang 9

LỜI CAM ĐOAN

Tôi xin cam đoan rằng đây là công trình nghiên cứu của tôi, có sự hỗ trợ từ cán

bộ hướng dẫn là thầy PGS.TS Hoàng Đình Chiến Các nội dung nghiên cứu và kết quả trong luận văn này là trung thực và do chính bản thân tôi thực hiện

Những lý thuyết sử dụng trong đề tài được tham khảo từ các nguồn tài liệu ghi trong phần tài liệu tham khảo

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm

TP.HCM, tháng 12 năm 2014

Tác giả Đặng Đức Duy

Trang 10

MỤC LỤC

NHIỆM VỤ LUẬN VĂN THẠC SỸ ii

LỜI CẢM ƠN iii

TÓM TẮT LUẬN VĂN iv

ABSTRACT v

GIỚI THIỆU ĐỀ TÀI vi

INTRODUCTION vii

LỜI CAM ĐOAN viii

MỤC LỤC 1

DANH MỤC HÌNH VẼ 5

Chương 1 9

PHƯƠNG PHÁP NHẬN DẠNG VẬT THỂ DỰA THEO MÀU SẮC và HÌNH DẠNG 9

1.1 Phương pháp nhận dạng vật thể theo màu sắc 9

1.1.1 Tạo vùng ROI (Region of Interest) 9

1.1.2 Decompose channels 10

1.1.3 Transform color space 10

1.1.4 Nhận dạng 12

1.2 Phương pháp nhận dạng vật thể theo hình dạng 12

1.2.1 Nhận dạng dựa vào mẫu 12

1.2.1.1 Sử dụng mẫu là mô hình chứa các đặc trưng nhận dạng 12

1.2.1.2 Sử dụng mẫu là ảnh chứa duy nhất vật thể cần nhận dạng 14

1.2.2 Nhận dạng dựa vào đặc trưng của vật thể 19

Chương 2 21

GIỚI THIỆU PHẦN MỀM XỬ LÝ ẢNH HALCON và THƯ VIỆN OPENCV 21

2.1 Phần mềm MVTEC HALCON/Hdevelop 9.0.2 21

2.1.1 Giới thiệu 21

2.1.2 Giao diện làm việc của phần mềm 22

2.2 Thư viện OpenCV 22

Trang 11

2.2.1 Giới thiệu 22

2.2.2 Cấu trúc thư viện mã nguồn mở OpenCV 23

Chương 3 24

SỬ DỤNG PHẦN MỀM HALCON và THƯ VIỆN OPENCV ĐỂ NHẬN DẠNG VẬT THỂ THEO CÁC GIẢI THUẬT NHẬN DẠNG ĐÃ NGHIÊN CỨU 24

3.1 Nhận dạng vật thể theo màu sắc và hình dạng trong HALCON theo giải thuật đã nghiên cứu 24

3.1.1 Nhận dạng vật thể theo màu sắc trong HALCON 24

3.1.1.1 Tạo vùng ROI (Region of Interest) 24

3.1.1.2 Decompose channels 25

3.1.1.3 Transform color space 25

3.1.1.4 Nhận dạng 25

3.1.2 Nhận dạng vật thể theo hình dạng trong HALCON 28

3.1.2.1 Tạo mẫu 29

3.1.2.2 Đọc mẫu 33

3.1.2.3 Nhận dạng 34

3.2 Nhận dạng vật thể theo màu sắc và hình dạng trong thư viện OpenCV theo giải thuật đã nghiên cứu 35

3.2.1 Nhận dạng vật thể theo màu sắc trong OpenCV 35

3.2.2 Nhận dạng vật thể theo hình dạng trong OpenCV 36

3.2.2.1 Chuyển sang ảnh trắng đen 37

3.2.2.2 Tìm contour 40

3.2.2.3 Lọc bỏ contour nhiễu 40

3.2.2.4 Xác định hình dạng contour 41

3.2.2.5 Xác định vật thể trong ảnh 41

3.3 So sánh kết quả nhận dạng giữa HALCON và OpenCV 42

3.3.1 Sai số nhận dạng 42

3.3.1.1 Sai số nhận dạng vật thể theo màu sắc 42

3.3.1.2 Sai số nhận dạng vật thể theo hình dạng 42

3.3.2 Thời gian nhận dạng 50

Trang 12

3.3.2.1 Thời gian nhận dạng theo màu sắc 50

3.3.2.2 Thời gian nhận dạng theo hình dạng 52

Chương 4 54

TỔNG QUAN VỀ ROBOT TAY MÁY SỬ DỤNG TRONG LUẬN VĂN 54

4.1 Giới thiệu robot tay máy 54

4.2 Lập trình điều khiển robot tay máy 54

4.2.1 Điều khiển theo phương pháp cho học trước tọa độ 55

4.2.1.1 Ưu điểm 56

4.2.1.2 Nhược điểm 57

4.2.2 Điểu khiển theo phương pháp sử dụng động học ngược 57

4.2.2.1 Tính giá trị độ rộng xung để điều khiển một khớp quay một góc 1 (rad) 57

4.2.2.2 Thiết lập phương trình động học ngược tính giá trị góc quay từng khớp theo tọa độ đỉnh đầu kẹp của tay máy và góc xoay của vật thể cần gắp 58

4.2.2.3 Thiết lập công thức tính giá trị các độ rộng xung theo tọa độ của vị trí đỉnh đầu kẹp tay máy và góc xoay của vật thể 68

4.2.2.4 Ưu điểm 72

4.2.2.5 Nhược điểm 72

Chương 5 73

CÁC ỨNG DỤNG ĐIỀU KHIỂN ROBOT TAY MÁY TỪ KẾT QUẢ NHẬN DẠNG 73

5.1 Ứng dụng điều khiển tay máy gắp sản phẩm trên băng chuyền bỏ vào nơi qui định 73

5.1.1 Phân tích giải thuật 75

5.1.1.1 Nhận dạng màu 75

5.1.1.2 Điều khiển tay máy gắp và đặt vật 76

5.1.2 Code chương trình điều khiển của ứng dụng 76

5.2 Ứng dụng điều khiển tay máy gắp vật ở vị trí bất kì sắp xếp vào nơi qui định 77

Trang 13

5.2.1 Phân tích giải thuật 80

5.2.1.1 Nhận dạng vật thể theo hình dạng 80

5.2.1.2 Xác định tọa độ tâm và góc xoay của vật thể 80

5.2.1.3 Nhận dạng vật thể theo màu 88

5.2.1.4 Điều khiển tay máy gắp vật 89

5.2.1.5 Điều khiển tay máy đặt vật 93

5.2.2 Code chương trình điều khiển của ứng dụng 93

Chương 6 94

KẾT LUẬN và HƯỚNG PHÁT TRIỂN 94

6.1 Kết luận 94

6.2 Hướng phát triển 95

TÀI LIỆU THAM KHẢO 96

PHỤ LỤC 97

A Các hàm HALCON sử dụng trong luận văn 97

B Các hàm OpenCV sử dụng trong luận văn 102

Trang 14

DANH MỤC HÌNH VẼ

Chương 1 9

Hình 1.1: Lưu đồ giải thuật nhận dạng màu 9

Hình 1.2: Hình minh họa tạo vùng ROI ABCD cho ảnh I 10

Hình 1.3: Không gian màu RGB 12

Hình 1.4: Không gian màu HSV 12

Hình 1.5: Ảnh gốc (a) và ảnh thể hiện đường viền của vật thể (b) 13

Hình 1.6: Ảnh dùng để tạo mẫu: a) Chỉ chứa vật thể cần nhận dạng, b) Chứa cả các vật thể khác, c) mẫu được tạo 13

Hình 1.7: Lưu đồ giải thuật SURF 14

Hình 1.8: Xấp xỉ đạo hàm cấp 2 của hàm Gaussian bằng bộ lọc 15

Hình 1.9: Tính tổng giá trị mức xám trong một phân vùng ảnh DBAC dựa vào ảnh tích lũy (A, B, C, D là giá trị mức xám của 4 pixel tại 4 góc của vùng ảnh) 15

Hình 1.10: Tạo không gian tỉ lệ 16

Hình 1.11: 3x3x3 neigbourhood trong không gian ảnh và không gian tỉ lệ 17

Hình 1.12: Số lượng điểm đặc trưng tìm được theo tỉ lệ 17

Hình 1.13: Vùng hình tròn xung quanh và hướng của điểm đặc trưng 18

Hình 1.14: Bộ lọc Haar wavelet để tìm hướng theo trục x và y Vùng màu đen có trọng số là -1, vùng màu trắng là +1 18

Hình 1.15: 4x4 hình vuông con xung quanh điểm đặc trưng 18

Hình 1.16: Xấp xỉ contour của vật thể thành đa giác 19

Chương 2 21

Hình 2.1: Giao diện làm việc của phần mềm HALCON 22

Hình 2.2: Cấu trúc cơ bản của thư viện mã nguồn mở OpenCV 23

Chương 3 26

Hình 3.1: Kết quả tạo vùng ROI để nhận dạng màu cho khối màu lục trên băng chuyền màu trắng ở đáy ảnh 25

Trang 15

Hình 3.2: Dùng “Gray Histogram” dựa vào giá trị chung và giá trị thực tế trên

thang màu để xác định ngưỡng nhận dạng phù hợp cho khối màu Lục 26

Hình 3.3: Ngưỡng màu để xác định màu Lục được chọn đúng [60 – 110] 27

Hình 3.4: Ngưỡng màu sai [90 – 110] Ngưỡng này nằm trong thang màu Lục nhưng không đủ để chọn hết vùng ảnh cần xử lý 27

Hình 3.5: Ngưỡng màu sai [10 – 20] Ngưỡng này nằm ngoài thang màu Lục nên không có phần ảnh nào được chọn 27

Hình 3.6: Giải thuật nhận dạng vật thể theo hình dạng trong HALCON 28

Hình 3.7: Giải thuật tạo mẫu 29

Hình 3.8: Ảnh dùng để tạo mẫu cho khối tam giác 29

Hình 3.9: Ảnh sau khi tạo vùng ROI (vùng màu đỏ) 30

Hình 3.10: Ảnh sau khi cắt bỏ các phần khác, chỉ giữ lại phần giới hạn bởi vùng ROI Phần ảnh này được dùng làm ảnh đầu vào cho các hàm xử lý tiếp theo 30

Hình 3.11: Thành phần Saturation được tạo 31

Hình 3.12: Phần ảnh thích hợp ban đầu được chọn để tạo mẫu (phần màu đỏ) 31

Hình 3.13: Phần ảnh sau khi được mở rộng 32

Hình 3.14: Phần ảnh thích hợp cuối cùng để tạo mẫu (không có phần nền đen) 32

Hình 3.15: Ảnh hiển thị hình dạng mẫu được tạo để kiểm tra 33

Hình 3.16: Hình hiển thị kết quả nhận dạng trong HALCON cho hai khối tam giác màu vàng và tím 35

Hình 3.17: Giải thuật nhận dạng theo hình dạng dựa vào đặc trưng của vật thể trong OpenCV 37

Hình 3.18: Ảnh cần nhận dạng 38

Hình 3.19: Kết quả các thành phần trong hệ màu HSV của ảnh (Hue (a), Saturation (b), Value (c)) 39

Hình 3.20: Ảnh trắng đen được tạo từ thành phần Saturation 40

Hình 3.21: Kết quả nhận dạng cho 5 loại khối vật thể tam giác, chữ nhật, vuông, ngũ giác và tròn 42

Hình 3.22: Ảnh minh họa sai số nhận dạng theo hình dạng trong HALCON 43

Trang 16

Hình 3.23: Ảnh minh họa sai số nhận dạng theo hình dạng trong OpenCV 47

Hình 3.24: Đồ thị thể hiện thời gian trung bình của quá trình nhận dạng vật thể theo màu trong HALCON và OpenCV tương ứng cho 5 màu 51

Hình 3.25: Biểu đồ thể hiện thời gian trung bình của quá trình nhận dạng vật thể theo hình dạng trong HALCON và OpenCV tương ứng cho 5 khối vật thể 53

Chương 4 54

Hình 4.1: Robot tay máy sử dụng trong luận văn 54

Hình 4.2: Giao diện phần mềm điều khiển riêng của tay máy, 6 giá trị độ rộng xung sẽ được thay đổi cho 6 servo đánh số từ 0  5 nằm trong khung màu đỏ 56

Hình 4.3: Thay đổi giá trị độ rộng xung bằng cách kéo lần lượt 6 thanh trượt tương ứng với 6 servo (No.0  No.5), giá trị độ rộng xung sẽ được hiển thị trong ô ký hiệu P bên dưới thanh trượt (hoặc có thể điền trực tiếp giá trị độ rộng xung vào ô này) 56

Hình 4.4: Sơ đồ hình học của tay máy 59

Hình 4.5: Sơ đồ hình học rút gọn của tay máy 60

Hình 4.6: Mô hình xác định mối quan hệ giữa tọa độ (x; y; z) và (x'; y'; z') khi rút gọn phần sơ đồ thể hiện cơ cấu vuông góc của tay máy (là các đoạn b, c) 60

Hình 4.7: Mô hình xác định góc quay α1 cho khớp 1 62

Hình 4.8: Mô hình xác định α1 trong trường hợp 0 ≤ φ ≤ π 63

Hình 4.9: Mô hình xác định α1 trong trường hợp π ≤ φ ≤ π 64

Hình 4.10: Mô hình xác định α1 trong trường hợp π ≤ φ ≤ 3π2 64

Hình 4.11: Mô hình xác định α1 trong trường hợp π ≤ φ ≤ 2π 65

Hình 4.12: Mô hình xác định góc quay α2 cho khớp 2 66

Hình 4.13: Mô hình xác định góc quay α3 cho khớp 3 67

Hình 4.14: Mô hình xác định góc quay α4 cho khớp 4 67

Hình 4.15: Mô hình vị trí ban đầu của tay máy (nằm trong mặt phẳng Oxz) 71

Trang 17

Chương 5 73

Hình 5.1: Lưu đồ giải thuật điều khiển Robot tay máy gắp sản phẩm trên băng chuyền bỏ vào nơi qui định 73

Hình 5.2: Sơ đồ khối (a) và hình tổng thể toàn bộ hệ thống giả lập cho hệ thống Robot tay máy gắp sản phẩm trên băng chuyền (b) 73

Hình 5.3: Giao diện chương trình điều khiển 76

Hình 5.4: Lưu đồ giải thuật của ứng dụng gắp vật ở vị trí bất kì sắp xếp vào nơi qui định 78

Hình 5.5: Sơ đồ khối (a) và hình tổng thể toàn bộ hệ thống giả lập cho hệ thống Robot tay máy gắp vật ở vị trí bất kì (b) 79

Hình 5.6: Điểm chuẩn sử dụng trong luận văn 80

Hình 5.7: Ảnh chứa các vật thể và điểm chuẩn 81

Hình 5.8: Ba thành phần trong hệ màu HSV của ảnh dùng để tạo mẫu điểm chuẩn 82

Hình 5.9: Hàm threshold chọn ra phần ảnh thích hợp (màu đỏ) để tạo mẫu 82

Hình 5.10: Hình dạng mẫu được tạo 83

Hình 5.11: Ảnh minh họa nhận dạng điểm chuẩn trong HALCON 83

Hình 5.12: Ảnh minh họa nhận dạng điểm chuẩn trong OpenCV 84

Hình 5.13: Ảnh thước đo dùng để xác định tỉ lệ pixel/mm 87

Hình 5.14: Mô hình xác định tọa độ tâm thực của vật Hệ trục Oxy là hệ trục tọa độ của tay máy, hệ trục Ox'y' là hệ trục tọa độ của ảnh I chứa vật và điểm chuẩn 88

Hình 5.15: Ảnh thể hiện vùng ảnh phụ được tạo khi nhận dạng cho khối vật ngũ giác Khối vật màu tím có kết quả tâm bị sai lệch nhiều so với thực tế, nhưng vùng ảnh phụ được tạo vẫn đảm bảo nằm trong phạm vi khối vật 89

Hình 5.16: Ảnh minh họa các vật thể đặt trong phạm vi giới hạn cho phép 93

Trang 18

Chương 1

PHƯƠNG PHÁP NHẬN DẠNG VẬT THỂ DỰA THEO MÀU SẮC và HÌNH DẠNG

1.1 Phương pháp nhận dạng vật thể theo màu sắc

Luận văn dùng phương pháp nhận dạng vật thể theo màu được thực hiện theo lưu đồ giải thuật sau

Hình 1.1: Lưu đồ giải thuật nhận dạng màu

1.1.1 Tạo vùng ROI (Region of Interest)

Vùng ROI được tạo nhằm mục đích giới hạn vùng ảnh cần xử lý (vùng ảnh chứa thông tin cần để nhận dạng), loại bỏ các phần ảnh dư thừa (phần ảnh không chứa thông tin có ích cho quá trình nhận dạng) Nhờ đó, quá trình này sẽ loại bỏ đáng kể các thành phần nhiễu làm sai lệch kết quả nhận dạng

Mỗi một ảnh số đều được biểu diễn ở dạng tập hợp các pixel (điểm ảnh), mỗi pixel có một tọa độ (x; y) trong không gian ảnh 2 chiều Do đó, để tạo vùng ROI, phải dựa vào tọa độ của các pixel ảnh Hình 1.2 minh họa cách tạo vùng ROI dạng hình chữ nhật cho một ảnh I dựa vào tọa độ của 3 pixel A, B, C Các pixel có tọa độ

Trang 19

nằm trong phạm vi hình chữ nhật ABCD trong hệ tọa độ ảnh Oxy (xA ≤ x ≤ xB và yA

≤ y ≤ yC) sẽ được giữ lại, còn lại bị lọa bỏ

1.1.3 Transform color space

Ảnh màu là tập hợp của 3 thành phần Red, Green, Blue trong không gian màu RGB (hình 1.3) Mỗi thành phần có dạng là một ảnh xám (ảnh xám là ảnh có các pixel được gán một giá trị mức xám nằm trong đoạn [0, 255] như trong hình 1.5 (a) Nếu nhận dạng màu trực tiếp trong không gian màu RGB thì sẽ gặp khó khăn vì phải dựa trên cả 3 thành phần Red, Green, Blue để nhận dạng cho một màu Nếu chỉ dựa trên một thành phần thì không nhận dạng một màu so với các màu khác được vì sẽ

có nhiều màu có cùng giá trị trên một thành phần Ví dụ như các màu đỏ, trắng, vàng đều có giá trị thành phần Red là 255 hay màu lam, tím, trắng đều có giá trị thành phần Blue là 255

Vấn đề trên được giải quyết bằng cách chuyển ba thành phần Red, Green, Blue sang một không gian màu khác, đó là không gian màu HSV như trong hình 1.4 gồm

3 thành phần Hue, Saturation và Value Trong đó, thành phần Hue thể hiện màu thuần túy, tức là một giá trị thể hiện cho duy nhất một màu Thành phần Saturation thể hiện độ bão hòa màu (mức độ tươi hoặc xẫm của màu) và Value thể hiện độ sáng

Trang 20

màu, cả hai thành phần này liên quan đến độ sáng của ảnh gây ra do điều kiện ánh sáng khi thu ảnh Luận văn chỉ giới hạn thực hiện nhận dạng trong một điều kiện ánh sáng phòng, do đó chỉ cần dựa vào một thành phần Hue để nhận dạng màu

Hình 1.3 thể hiện không gian màu RGB Trong đó, ở hình bên trái, màu đỏ chuẩn (red primary) ứng với giá trị R = 255, G = 0, B = 0; màu lục chuẩn (green primary) ứng với giá trị R = 0, G = 255, B = 0; màu lam chuẩn (blue primary) ứng với giá trị R = 0, G = 0, B = 255 Hình bên phải là dạng chuẩn hóa các giá trị R, G, B

về thang [0; 1]

Hình 1.4 thể hiện không gian màu HSV Trong đó, đi theo vòng tròn từ 0 -360

độ là trường biểu diễn màu sắc (Hue) Bắt đầu từ màu đỏ chuẩn (red primary) tới màu lục chuẩn (green primary) nằm trong khoảng 0 – 120 , từ 120 – 240 độ là

màu lục tới lam chuẩn (green primary - blue primary) Từ 240 – 360 là từ màu

lam chuẩn quay về màu đỏ chuẩn Giá trị độ sáng (V) được biểu diễn bằng cách đi từ đáy hình trụ lên đỉnh và nằm trong khoảng từ 0 – 1 (chuẩn hóa) Ở đáy hình trụ V có giá trị là 0, là tối nhất và trên đỉnh hình trụ là sáng nhất (V = 1) Đi từ tâm hình trụ ra mặt trụ là giá trị bão hòa của màu sắc (S) S có giá trị từ 0 – 1 (chuẩn hóa), 0 ứng với tâm hình trụ là chỗ màu sắc nhạt nhất, 1 ở ngoài mặt trụ là nơi màu sắc đậm nhất Các bước chuyển đổi từ hệ màu RGB sang HSV được thực hiện như sau:

Đặt M = max(R, G, B), m = min(R, G, B) và C = M – m

- Nếu M = R: H = mod 6 (mod 6: phép chia modulo cho 6) (1.1)

- Nếu M = G: H = +2 (1.2)

- Nếu M = B: H = +4 (1.3)Giá trị H (thành phần Hue) được tính: H = H x 60 (C = 0 thì H = 0 ) (1.4) Giá trị V (thành phần Value) được tính: V = M (1.5) Giá trị S (thành phần Saturation) được tính: S = (V hoặc C = 0 thì S = 0) (1.6)

Trang 21

Hình 1.3: Không gian màu RGB

Hình 1.4: Không gian màu HSV

1.1.4 Nhận dạng

Quá trình nhận dạng được thực hiện trên thành phần Hue để xác định màu của vật thể

1.2 Phương pháp nhận dạng vật thể theo hình dạng

1.2.1 Nhận dạng dựa vào mẫu

1.2.1.1 Sử dụng mẫu là mô hình chứa các đặc trưng nhận dạng

Các đặc trưng nhận dạng là các đặc điểm giúp phân biệt vật thể cần nhận dạng với các vật thể khác trong ảnh Các đặc điểm này chủ yếu nằm ở các vị trí thuộc đường viền của vật thể như các phần góc, cạnh hay các họa tiết trên vật thể

Trang 22

a) b) Hình 1.5: Ảnh gốc (a) và ảnh thể hiện đường viền của vật thể (b)

Trong phương pháp này, mẫu sẽ được tạo từ ảnh mẫu chứa duy nhất vật thể cần nhận dạng hoặc bao gồm cả các vật thể khác

Hình 1.6: Ảnh dùng để tạo mẫu: a) Chỉ chứa vật thể cần nhận dạng, b) Chứa

cả các vật thể khác, c) mẫu được tạo

Các đặc trưng nhận dạng cho vật thể sẽ được rút trích từ các pixel thuộc về phần ảnh của vật thể trong ảnh mẫu, và lưu vào một mô hình mẫu Mẫu này sẽ được dùng để nhận dạng vật thể trong ảnh

Mẫu được tạo chứa các đặc trưng nhận dạng chủ yếu nằm ở vị trí đường viền nên có dạng như trong hình minh họa 1.6 (c) Để tạo được một mẫu dạng này, một trong những phương pháp hữu hiệu nhất là dựa vào mức xám của các pixel trong ảnh Tại vị trí đường viền, mức xám của pixel sẽ có sự thay đổi đột ngột, tức là giá trị mức xám của một pixel sẽ tăng hoặc giảm một khoảng lớn so với mức xám của pixel kế cận Đối với ảnh màu RGB cơ bản, mức xám G của mỗi pixel được tính theo công thức sau (đây cũng là công thức chuyển ảnh màu RGB sang ảnh xám):

G = 0.299R + 0.587G + 0.114B (1.7)

Trang 23

1.2.1.2 Sử dụng mẫu là ảnh chứa duy nhất vật thể cần nhận dạng

Khác với phương pháp sử dụng mẫu là mô hình chứa các đặc trưng nhận dạng, phương pháp này sẽ dùng trực tiếp mẫu (ảnh chứa duy nhất vật thể cần nhận dạng) đối chiếu với ảnh (chứa vật thể cần nhận dạng và các vật thể khác) theo các điểm đặc trưng để nhận dạng chính xác

Mẫu và ảnh sẽ được rút trích các điểm đặc trưng, sau đó so sánh đối chiếu nhau để nhận dạng chính xác vật thể trong ảnh

Có nhiều giải thuật đã được giới thiệu cho phương pháp này, trong đó một trong những giải thuật nổi bật về tốc độ xử lý và độ chính xác là giải thuật SURF (Speeded-Up Robust Features)

Lưu đồ giải thuật SURF như sau

Hình 1.7: Lưu đồ giải thuật SURF

a Interest Point Detection

Là quá trình tìm các điểm đặc trưng, được thực hiện dựa trên ma trận Hessian Cho trước một pixel p = (x, y) trên ảnh I, ma trận Hessian H(p, σ) tại p theo tỉ

Trang 24

Hình 1.8 thể hiện mô hình rời rạc của đạo hàm cấp hai hàm Gaussian với tỉ lệ σ=1.2

và các bộ lọc được xấp xỉ có kích thước tương ứng là 9x9

Hình 1.8: Xấp xỉ đạo hàm cấp 2 của hàm Gaussian bằng bộ lọc

Trong hình 1.8, từ trái qua, ảnh thứ nhất là mô hình rời rạc đạo hàm cấp 2 của hàm Gaussian theo trục y, ảnh thứ hai theo trục x và y Ảnh thứ ba và thứ tư lần lượt

là các bộ lọc xấp xỉ của ảnh một và hai Phép tích chập của ảnh I với các bộ lọc này được thực hiệc rất nhanh bằng việc sử dụng ảnh tích lũy của ảnh I

Ảnh tích lũy được thiết lập bằng cách thay đổi giá trị mức xám của các pixel trong ảnh gốc Gọi G là giá trị mức xám của pixel có tọa độ (x, y) trong ảnh gốc, giá trị mức xám của pixel có tọa độ tương ứng trong ảnh tích lũy là G được tính theo công thức sau:

G(x) = ∑ ∑ G(i, j) (1.9)Nhờ ảnh tích lũy, việc tìm tổng giá trị mức xám trong một phân vùng ảnh (có dạng hình chữ nhật) của ảnh gốc trở nên đơn giản, chỉ cần thực hiện cộng trừ các giá trị mức xám của 4 pixel trong ảnh tích lũy như trong hình minh họa 1.9

D

A

B

C O

Trang 25

Vị trí của điểm đặc trưng được xác định bằng cách sử dụng thuật toán maximum suppression 3x3x3 neigbourhood để xét xấp xỉ định thức của ma trận Hessian trong không gian ảnh và không gian tỉ lệ Công thức tính xấp xỉ định thức

non-ma trận Hessian như sau:

det H ấ ỉ = D D − (w D ) (1.10)Trong đó w = 0.9 là trọng số cân bằng D , D , D là các bộ lọc được xấp xỉ Không gian tỉ lệ được tạo ra bằng cách chập ảnh với các bộ lọc có kích thước tăng dần Hình 1.10 (a) thể hiện không gian tỉ lệ, (b) là biểu diễn không gian tỉ lệ theo octaves và scale (tỉ lệ), (c) là cách tạo ra bộ lọc kích thước 15x15 ở octave đầu tiên từ kích thước 9x9 (kích thước nhỏ nhất trong không gian tỉ lệ Hình 1.11 thể hiện 3x3x3 neigbourhood của pixel đánh dấu “X” pixel “X” được xem là điểm đặc trưng nếu có giá trị det H ấ ỉ cực đại

c) Hình 1.10: Tạo không gian tỉ lệ

Trang 26

Hình 1.11: 3x3x3 neigbourhood trong không gian ảnh và không gian tỉ lệ

Vì số lượng điểm đặc trưng tìm được là rất ít tại những tỉ lệ cao (hình 1.12 thể hiện điều này) nên cần xem xét chọn tỉ lệ cao nhất cho không gian tỉ lệ để giảm thời gian tính toán mà vẫn đảm bảo độ chính xác của giải thuật

Hình 1.12: Số lượng điểm đặc trưng tìm được theo tỉ lệ

b Interest Point Description

Để thuật toán có khả năng nhận ra vật thể ngay cả khi ảnh bị xoay thì mỗi điểm đặc trưng cần được gán hướng Thực hiện tìm hướng cho điểm đặc trưng trong phạm vi vùng hình tròn tâm là điểm đặc trưng, bán kính 6s (s là tỉ lệ mà tại đó điểm đặc trưng được tìm thấy) Tìm hướng bằng cách tính Haar wavelet tác động theo trục x (dx) và y (dy) Kích thước của Haar wavelet là 4s (hình 1.14) Sử dụng ảnh tích lũy để tăng tốc độ tính toán Tìm hướng trên từng cung tròn 60 , vector hướng nào trội nhất sẽ được chọn là hướng của điểm đặc trưng Hình 1.13 là ví dụ về tìm hướng cho điểm đặc trưng, các điểm màu lam là các giá trị Haar wavelet tính được

Trang 27

Hình 1.13: Tìm hướng của điểm đặc trưng

Hình 1.14: Bộ lọc Haar wavelet để tìm hướng theo trục x và y Vùng màu đen

có trọng số là -1, vùng màu trắng là +1

Xét trong phạm vi vùng hình vuông gồm 4x4 hình vuông con men theo vector hướng đã tìm được ở bước 1, thực hiện tìm thông tin của điểm đặc trưng bằng cách tính Haar wavelet tác động trên hai hướng ngang và dọc Cộng dồn các giá trị và trên mỗi hình vuông con Các giá trị tuyệt đối | | và | | cũng được cộng dồn

để lấy thông tin về độ lớn của sự thay đổi cường độ sáng trên ảnh Như vậy mỗi hình vuông con sẽ được mô tả bởi một vector 4 chiều

= [∑ , ∑ , ∑ | | , ∑ | |] Vậy vector mô tả cho tất cả 4x4 hình vuông con

là một vector 64 chiều (4x4x4) (hình 1.15) Đây cũng chính là vector mô tả đặc trưng chuẩn của SURF (hay còn gọi là SURF-64)

Hình 1.15: 4x4 hình vuông con xung quanh điểm đặc trưng

Trang 28

c Matching

Điểm đặc trưng sáng (dấu Laplacian dương) chỉ có thể matching (so khớp) với điểm đặc trưng sáng khác, tương tự cho đặc trưng tối (dấu Laplacian âm) Hai điểm đặc trưng được xem là khớp với nhau nếu khoảng cách giữa hai vector mô tả của chúng có nhỏ hơn hoặc bằng một mức ngưỡng tùy chọn trước

1.2.2 Nhận dạng dựa vào đặc trưng của vật thể

Phương pháp này thường được áp dụng để nhận dạng những vật thể có hình dạng tương đối đơn giản, ví dụ như những vật thể có dạng hình học cơ bản Khi đó, những đặc trưng của vật thể được sử dụng để nhận dạng chính là các tính chất hình học của vật thể như số cạnh, độ dài cạnh, số đo góc, diện tích…

Để xác định được các đặc trưng hình học này, trước tiên cần xác định contour của vật thể Contour là một chuỗi các pixel thể hiện đường bao của một phân vùng ảnh nào đó so với nền trong toàn bộ ảnh Trong trường hợp các vật thể có dạng hình học cơ bản thì đường bao của vật thể là một dạng contour

Dù vật thể có dạng hình học cơ bản nhưng contour tìm được của vật thể thường có dạng cong thẳng bất kì do bề mặt thực tế của vật thể có độ gợn nhất định, ngoài ra còn do ảnh hưởng của điều kiện ánh sáng lúc thu ảnh Do đó, contour cần được xấp xỉ thành một hình đa giác phù hợp để có thể rút trích các đặc trưng hình học Hình 1.16 thể hiện phương pháp xấp xỉ một contour

Hình 1.16: Xấp xỉ contour của vật thể thành đa giác

Trang 29

Kết quả sau 2 bước trên, xác định được 3 đỉnh của đa giác

- (e): tiếp tục xác định các pixel có khoảng cách xa nhất so với từng đoạn thẳng nối 3 đỉnh đã tìm được ở trên

- Quá trình được lập lại đến khi không còn tìm được pixel mới nào có khoảng cách so với đoạn thẳng nối 2 đỉnh bất kì lớn hơn một giá trị ngưỡng cho trước, đây chính là ngưỡng sai số của phương pháp Sai số càng nhỏ tức giá trị ngưỡng càng nhỏ thì đa giác được xấp xỉ càng gần hình dạng thực Kết quả có được dạng đa giác như trong hình (f)

Sau khi xấp xỉ được đa giác từ contour, các đặc trưng hình học sẽ được rút trích từ hình đa giác được xấp xỉ Ngoài ra, do ảnh hưởng của bản chất bề mặt thực

tế của vật thể và điều kiện ánh sáng lúc thu ảnh nên có thể xuất hiện các contour nhiễu nằm tách rời hay dọc theo các contour là đường bao của vật thể Vì vậy, các contour nhiễu này cần được loại bỏ để không ảnh hưởng đến kết quả nhận dạng Có nhiều cách để loại bỏ contour nhiễu, cách được thực hiện trong luận văn và toàn bộ giải thuật của phương pháp sẽ được trình bày cụ thể trong chương 3

Trang 30

Chương 2

GIỚI THIỆU PHẦN MỀM XỬ LÝ ẢNH HALCON

và THƯ VIỆN OPENCV

2.1 Phần mềm MVTEC HALCON/Hdevelop 9.0.2

2.1.1 Giới thiệu

Ngoài những ứng dụng liên quan đến xử lý ảnh thông thường, HALCON/Hdevelop 9.0.2 còn là một công cụ lập trình dùng cho các ứng dụng liên quan đến thị giác máy trong các hệ thống máy móc để xử lý dữ liệu ảnh thu từ những thiết bị quan sát như camera Nó cung cấp một môi trường lập trình tương tác cao để phát triển và thử nghiệm các ứng dụng, có nhiều thư viện hỗ trợ Đây là gói phần mềm tinh vi phù hợp cho phát triển sản phẩm, nghiên cứu và giảng dạy

Có bốn cách cơ bản để thực hiện các ứng dụng phân tích hình ảnh bằng cách

sử dụng HDevelop:

- Tạo mẫu nhanh trong môi trường tương tác HDevelop Ta có thể sử dụng HDevelop để tìm các hàm hoặc các thông số tối ưu để giải quyết việc phân tích hình ảnh, và sau đó xây dựng ứng dụng sử dụng các ngôn ngữ lập trình khác nhau như C, C++, CSharp, Visual Basic.NET,… hoặc Delphi

- Phát triển các chương trình ứng dụng trong HDevelop

- Thực hiện chương trình, thủ tục HDevelop bằng cách sử dụng HDevEngine Ta có thể trực tiếp thực hiện chương trình, thủ tục HDevelop từ một ứng dụng viết bằng C++ hoặc ngôn ngữ nào đó có thể tích hợp NET hay COM

- Xuất mã của chương trình ứng dụng ra mã nguồn C, CSharp, C++, VB… Trong đề tài này, HALCON/HDevelop 9.0.2 được ứng dụng theo cách cuối cùng: các chương trình viết bằng HALCON sẽ được xuất ra mã nguồn CSharp để kết hợp với các chương trình khác viết trực tiếp bằng ngôn ngữ lập trình CSharp

Trang 31

2.1.2 Giao diện làm việc của phần mềm

Hình 2.1: Giao diện làm việc của phần mềm HALCON

graphics window: hiển thị dữ liệu hình ảnh được xử lý

operator window: hiển thị tất cả các thông số của một hàm hoặc thủ tục trong HALCON để người sử dụng thiết lập

variable window: hiển thị giá trị các biến được tính toán

program window: dùng để thao tác viết lệnh lập trình

2.2 Thư viện OpenCV

2.2.1 Giới thiệu

OpenCV (Open source Computer Vision) là thư viện mã nguồn mở về thị giác máy được viết bằng ngôn ngữ C và C++ OpenCV được xây dựng cho những ứng dụng xử lý tính toán thời gian thực Các thuật toán xử lý ảnh được tối ưu hóa thành các hàm đơn giản và dễ sử dụng Một trong những mục đích của thư viện mã nguồn

Trang 32

mở OpenCV đó là cung cấp một cơ sở hạ tầng về thị giác máy giúp cho người sử dụng có thể xây dựng những ứng dụng một cách nhanh chóng và dễ dàng

2.2.2 Cấu trúc thư viện mã nguồn mở OpenCV

Thư viện mã nguồn mở OpenCV gồm 5 thành phần chính đó là CV, MLL, HighGUI, CXCORE, CvAux Hình 2.2 thể hiện 4 thành phần CV, MLL, HighGUI, CXCORE

- CV: chứa những thuật toán xử lý ảnh cơ bản và thuật toán thị giác máy tính

ở mức độ cao hơn

- MLL: là thư viện học máy bao gồm các công cụ phân loại và thống kê

- HighGUI: chứa các hàm và các thủ tục xuất nhập cho việc lưu trữ, mở file ảnh và video

- CXCORE: chứa các cấu trúc cơ bản của dữ liệu như pixel (CvPoint), kích thước (CvSize), vùng ảnh (CvRect) hay cấu trúc phức tạp hơn như cấu trúc ảnh (IplImage), cấu trúc ma trận (CvMat), cấu trúc chuỗi dữ liệu (CvSeq) và một số cấu trúc liên quan đến đồ họa

- CvAux: chứa các thuật toán thực nghiệm

Hình 2.2: Cấu trúc cơ bản của thư viện mã nguồn mở OpenCV

Trang 33

3.1.1 Nhận dạng vật thể theo màu sắc trong HALCON

Luận văn sử dụng phần mềm HALCON thực hiện nhận dạng vật thể theo màu sắc dựa trên phương pháp nhận dạng màu đã nêu trong chương 1 (phần 1.1) Các phần trong giải thuật của phương pháp này được trình bày sau đây

3.1.1.1 Tạo vùng ROI (Region of Interest)

Hai hàm gen_rectangle1 được sử dụng để tạo vùng ROI và hàm

reduce_domain thực hiện cắt bỏ các phần ảnh còn lại chỉ giữ lại phần ảnh giới hạn

bởi vùng ROI, cách sử dụng cụ thể trong luận văn như sau:

gen_rectangle1 (Rectangle, 424.5, 331.5, 441.5, 348.5)

reduce_domain (Image, Rectangle, ImageReduced)

Trong đó:

- 424.5, 331.5 và 441.5, 348.5 là tọa độ theo pixel của đỉnh trên bên trái và

đỉnh dưới bên phải để tạo vùng ROI hình chữ nhật, vùng ROI được lưu

trong biến Rectangle

- ImageReduced là biến chứa vùng ảnh được giữ lại

Trang 34

Các hàm xử lý tiếp theo chỉ thực hiện xử lý cho phần ảnh lưu trong biến

ImageReduced

Vùng ROI được tạo là vùng chữ nhật màu đỏ như trong hình minh họa 3.1

Hình 3.1: Kết quả tạo vùng ROI để nhận dạng màu cho khối màu lục trên

băng chuyền màu trắng ở đáy ảnh 3.1.1.2 Decompose channels

Hàm decompose3 được sử dụng cho quá trình này như sau:

decompose3 (ImageReduced, Red, Green, Blue)

Trong đó: Red, Green, Blue là 3 thành phần của hệ màu RGB được tách ra từ vùng ảnh ImageReduced

3.1.1.3 Transform color space

Hàm trans_from_rgb được dùng để chuyển hệ màu của ảnh từ RGB sang HSV

Cách sử dụng trong luận văn như sau:

trans_from_rgb (Red, Green, Blue, Hue, Saturation, Value, 'hsv')

Trong đó: Hue, Saturation, Value là 3 thành phần của hệ màu HSV Thành phần Hue

được sử dụng cho quá trình nhận dạng màu

3.1.1.4 Nhận dạng

Hai hàm threshold và area_center được dùng cho quá trình nhận dạng.

Hàm threshold thực hiện chọn ra phần ảnh cần xử lý dựa vào thành phần Hue

và mức ngưỡng màu được chọn trước Theo giải thuật nhận dạng màu cần chọn hết toàn bộ, và vì nhận dạng cho khối màu Lục nên mức ngưỡng được chọn là [60, 110] Giá trị ngưỡng này được chọn bằng công cụ “Gray Histogram” trong phần mềm

Trang 35

HALCON Hình sau sẽ minh họa cho việc sử dụng công cụ này Phần ảnh được chọn sẽ được phủ màu đỏ để báo hiệu cho người dùng Nếu ngưỡng màu được chọn đúng thì toàn bộ phần ảnh cần xử lý sẽ được phủ màu đỏ, ngược lại chỉ một phần ít hoặc toàn bộ sẽ không được phủ màu

a) Giá trị ngưỡng màu chung b) Giá trị ngưỡng màu thực của khối màu Hình 3.2: Dùng “Gray Histogram” dựa vào giá trị chung và giá trị thực tế trên thang màu để xác định ngưỡng nhận dạng phù hợp cho khối màu Lục

Trang 36

Hình 3.3: Ngưỡng màu để xác định màu Lục được chọn đúng [60 – 110]

Hình 3.4: Ngưỡng màu thiếu [90 – 110] Ngưỡng này nằm trong thang màu

Lục nhưng không đủ để chọn hết vùng ảnh cần xử lý

Hình 3.5: Ngưỡng màu sai [10 – 20] Ngưỡng này nằm ngoài thang màu Lục

nên không có phần ảnh nào được chọn

Trang 37

Hàm area_center sẽ xử lý phần ảnh được chọn ở trên Trong các kết quả xử lý

của hàm này, giá trị số lượng pixel sẽ được sử dụng để xác định màu bằng cách so sánh với mức ngưỡng có giá trị 324 (là số lượng pixel của toàn bộ phần ảnh được giới hạn bởi ROI)

Luận văn sử dụng 2 hàm threshold và area_center như sau:

threshold (Hue, Color, HueRanges1, HueRanges2)

area_center(Color, Area, Row, Column)

Các mức ngưỡng màu được chọn trong cùng một điều kiện ánh sáng phòng Các mức ngưỡng này sẽ thay đổi khi điều kiện ánh sáng phòng thay đổi

- Area là biến chứa kết quả số lượng pixel của phần ảnh Color

3.1.2 Nhận dạng vật thể theo hình dạng trong HALCON

Luận văn sử dụng phần mềm HALCON thực hiện nhận dạng vật thể theo hình dạng dựa trên phương pháp nhận dạng sử dụng mẫu là mô hình chứa các đặc trưng nhận dạng (phần 1.2.1.1), giải thuật của phương pháp như sau

Hình 3.6: Giải thuật nhận dạng vật thể theo hình dạng trong HALCON

Trang 38

Hình 3.7: Giải thuật tạo mẫu

Trong giải thuật tạo mẫu mà luận văn sử dụng không quan tâm tới yếu tố màu sắc Do đó, ảnh dùng để tạo mẫu chỉ cần chứa đầy đủ các thông tin cần thiết về hình dạng để nhận dạng vật thể, về màu sắc và các yếu tố khác như độ sáng có thể chọn bất kỳ sao cho thuận tiện cho việc tạo mẫu Hình 3.8 minh họa ảnh dùng để tạo mẫu cho việc nhận dạng khối tam giác (khối vật hình trụ, đáy có dạng hình tam giác) Vì không chịu ảnh hưởng của yếu tố màu sắc nên dù mẫu ở đây được tạo từ ảnh là hình tam giác màu vàng nhưng vẫn có thể sử dụng để nhận dạng cho dạng hình tam giác

có màu bất kỳ, miễn là có sự đồng dạng với mẫu ở mức độ chọn trước Mức độ này được quyết định bởi tham số trong hàm nhận dạng sẽ được trình bày ở phần sau

Hình 3.8: Ảnh dùng để tạo mẫu cho khối tam giác

a Tạo vùng ROI

Tạo vùng ROI để giới hạn phần ảnh cần xử lý Sử dụng các hàm

draw_rectangle1, gen_rectangle1 để tạo vùng ROI; hàm reduce_domain để giữ lại

Trang 39

phần ảnh giới hạn bởi vùng ROI làm ảnh đầu vào cho các bước xử lý tiếp theo, các phần ảnh còn lại được cắt bỏ

draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)

gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)

reduce_domain (Image, Rectangle, ImageReduced)

Trong đó: ImageReduced là biến chứa phần ảnh giới hạn bởi vùng ROI

Hình 3.9: Ảnh sau khi tạo vùng ROI (vùng màu đỏ)

Hình 3.10: Ảnh sau khi cắt bỏ các phần khác, chỉ giữ lại phần giới hạn bởi vùng ROI Phần ảnh này được dùng làm ảnh đầu vào cho các hàm xử lý tiếp theo

b Trích phần ảnh thích hợp để tạo mẫu

Luận văn thực hiện trích chọn phần ảnh thích hợp để tạo mẫu dựa trên thành phần Saturation của ảnh Vì trong thành phần này, phần ảnh cần cho việc tạo mẫu (hình tam giác màu vàng) có sự phân biệt so với phần nền rõ rệt nhất, tạo thuận lợi cho việc trích chọn đặc trưng để tạo mẫu Điều này được thể hiện trong hình minh họa 3.11 Thành phần Saturation được tạo theo trình tự các bước decompose channels, transform color space tương tự như đã trình bày trong phần 3.1.1.2 và

3.1.1.3 Sau khi có được thành phần này Saturation, các hàm threshold,

dilation_circle, reduce_domain được sử dụng để trích phần ảnh thích hợp cho việc

tạo mẫu

Trang 40

Hình 3.11: Thành phần Saturation được tạo

Hàm threshold dùng để chọn phần ảnh thích hợp ban đầu dựa vào giá trị mức

xám của pixel, là phần ảnh được thể hiện bằng màu đỏ như trong hình minh họa 3.12

decompose3 (ImageReduced, Red, Green, Blue)

trans_from_rgb(Red, Green, Blue, Hue, Saturation, Value, 'hsv')

threshold (Saturation, Regions, 80, 255)

Trong đó:

[80, 255] là ngưỡng mức xám để chọn ra phần ảnh thích hợp từ thành phần

Saturation lưu vào biến Regions Đây là ngưỡng mức xám để tạo mẫu cho khối tam

giác khi sử dụng ảnh mẫu trong hình 3.8 Trường hợp sử dụng một ảnh mẫu khác có

độ sáng thay đổi thì ngưỡng này sẽ thay đổi Ngưỡng mức xám này cũng có thể thay đổi khi thực hiện tạo mẫu cho loại vật thể có hình dạng khác

Ngoài khối tam giác, luận văn thực hiện nhận dạng cho 4 loại vật thể khác là khối chữ nhật, vuông, ngũ giác và tròn với các mức xám tương ứng như sau: chữ nhật [110, 255], vuông [110, 255], ngũ giác [100, 255], tròn [70, 255]

Hình 3.12: Phần ảnh thích hợp ban đầu được chọn để tạo mẫu (phần màu đỏ)

Hàm dilation_circle dùng để mở rộng phần ảnh được chọn ban đầu nhằm chứa

đầy đủ các pixel nằm ở đường viền của hình tam giác và các pixel lân cận phía ngoài đường viền để tạo mẫu thích hợp

dilation_circle (Regions, RegionDilation, 5)

Ngày đăng: 27/01/2021, 00:08

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Phạm Đăng Phước, “Robot công nghiệp”, Giáo trình Sách, tạp chí
Tiêu đề: Robot công nghiệp”
[2] Jae S. Lim, Two-Dimensional Signal and Image Processing. Translated by Nguyen Van Ngo, Ha Noi, 2001 Sách, tạp chí
Tiêu đề: Two-Dimensional Signal and Image Processing
[3] Rafael C. Gonzalez, Richard E. Woods, Digital Image Processing, Prentice Hall, 2007 (Third Edition) Sách, tạp chí
Tiêu đề: Digital Image Processing
[4] H. Bay, From Wide-baseline Point and Line Correspondences to 3D, PhD thesis, ETH Zurich, 2006 Sách, tạp chí
Tiêu đề: From Wide-baseline Point and Line Correspondences to 3D
[5] John J. Craig, Introduction to Robotics: Mechanics and Control, Addison Wesley, 1986 (Second Edition) Sách, tạp chí
Tiêu đề: Introduction to Robotics: Mechanics and Control
[6] Herbert Bay, Andreas Ess, Tinne Tuytelaars and Luc Van Gool, “Speeded-Up Robust Features (SURF)”, Computer Vision and Image Understanding, vol Sách, tạp chí
Tiêu đề: Speeded-Up Robust Features (SURF)”, "Computer Vision and Image Understanding
[7] L. W. Teck, M. Sulaiman, H. N. M. Shah and R. Omar, “Implementation of Shape – Based Matching Vision System in Flexible Manufacturing System”, Journal of Engineering Science and Technology Review, vol. 3, no. 1, pp. 128- 135, May 2010 Sách, tạp chí
Tiêu đề: Implementation of Shape – Based Matching Vision System in Flexible Manufacturing System”, "Journal of Engineering Science and Technology Review
[8] Reference Manual: HALCON/HDevelop, Vers. 9.0.2, MVTec Software GmbH, 2010 Sách, tạp chí
Tiêu đề: Reference Manual: HALCON/HDevelop
[9] Basics: HALCON/HDevelop, Vers. 9.0.2, MVTec Software GmbH, 2010 Sách, tạp chí
Tiêu đề: Basics: HALCON/HDevelop
[10] Programmer' s Guide: HALCON/HDevelop, Vers. 9.0.2, MVTec Software GmbH, 2010 Sách, tạp chí
Tiêu đề: Programmer' s Guide: HALCON/HDevelop
[11] HALCON 9.0.2. Sofware for Mechine Vision. MVTec Sofware GmbH, Munich, Germany, 2010 Sách, tạp chí
Tiêu đề: HALCON 9.0.2
[12] Gary Bradski, Adrian Kaehler, Learning OpenCV: Computer Vision with the OpenCV Library, O’Reilly Media, 2008 (First Edition).[13] “OpenCV User Guide”,http://docs.opencv.org/doc/user_guide/user_guide.html, 2014 Sách, tạp chí
Tiêu đề: Learning OpenCV: Computer Vision with the OpenCV Library", O’Reilly Media, 2008 (First Edition). [13] “OpenCV User Guide”, "http://docs.opencv.org/doc/user_guide/user_guide.html
[14] “OpenCV API Reference”, http://docs.opencv.org/modules/refman.html, 2014 Sách, tạp chí
Tiêu đề: OpenCV API Reference”, "http://docs.opencv.org/modules/refman.html
4. create_scaled_shape_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, ScaleMin, ScaleMax, ScaleStep, Optimization, Metric, Contrast, MinContrast : ModelID) Sách, tạp chí
Tiêu đề: Template : : NumLevels, AngleStart, AngleExtent, AngleStep, ScaleMin, ScaleMax, ScaleStep, Optimization, Metric, Contrast, MinContrast : ModelID

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w