Tải bản đầy đủ (.pdf) (117 trang)

Ứ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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (22.2 MB, 117 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA

ĐẶNG ĐỨC DUY

Ứ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
Chuyên ngành: Kỹ thuật Điện tử
Mã số

: 605270

LUẬN VĂN THẠC SĨ

TP.HỒ CHÍ MINH - NĂM 2014


Ứ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

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. HỒ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ĩ)


1. TS. ĐỖ HỒNG TUẤN
2. TS. VÕ QUẾ SƠN
3. TS. NGUYỄN MINH HOÀNG
4. TS. MAI LINH
5. PGS.TS. HỒNG ĐÌNH CHIẾN
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

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

ĐẠ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ý)

CHỦ NHIỆM BỘ MÔN ĐÀO TẠO
(Họ tên và chữ ký)

PGS.TS. HỒNG ĐÌNH CHIẾN

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


ii


Ứ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

LỜI CẢM ƠN

Em xin gửi lời cám ơn sâu sắc đến thầy PGS.TS. Hồ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 q
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

iii


Ứ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

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. Tồ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ả.

iv


Ứ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


ABSTRACT
In chapter 1, the thesis goes on to learn the image processing algorithms,
namely object recognition algorithm based on color and shape.
In chapter 3, the implementation of this algorithms is based on two image
processing tools that OpenCV (an open-source libraries are now widely used in the
field of image processing) and MVTec HALCON (a software programming
dedicated image processing). Two tools are introduced in chapter 2. In the object
recognition algorithm based on shape, creating model in HALCON and creating
black and white image in OpenCV is performed according to the method of the
thesis. Results identify objects by color and shape is done on two tools OpenCV and
HALCON are compared with each other.
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.


v


Ứ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

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ừ q 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.

vi



Ứ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

INTRODUCTION
Image processing is now well developed science, a lot of image processing
applications were researched and developed in many fields. From the applications
of the administrative and security to applications in medicine and especially
applications in industrial production. Therefore, research on image processing is
one of the essential requirements in science and technology. In industrialized
countries, the image processing are used in many useful applications, typically for
machine vision. In particular, image processing for robot control has a wide range
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.

vii


Ứ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


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. Hồ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

viii


Ứ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

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

1


Ứ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

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

2


Ứ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

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


3


Ứ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

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

4


Ứ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

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

5


Ứ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


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 ngồ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, vng,
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


6


Ứ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

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 vng 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 π ≤ φ ≤
Hình 4.11: Mơ hình xác định α1 trong trường hợp

π


......................... 64
2

≤ φ ≤ 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

7


Ứ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

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ể tồ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

8


Ứ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

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 q trình nhận dạng). Nhờ đó, q 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 độ

9


Ứ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

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

yA
yC

xB

xA


O

A

B

C

D

x

Ảnh I
y
Hình 1.2: Hình minh họa tạo vùng ROI ABCD cho ảnh I
1.1.2. Decompose channels
Quá trình này sẽ tách vùng ảnh được giới hạn bởi ROI ra 3 thành phần Red,
Green, Blue, đây là ba thành phần cơ bản trong không gian màu RGB của một ảnh
màu. Việc tách này là cần thiết cho quá trình nhận dạng màu.
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

10


Ứ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

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 =

mod6 (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 x60 (C = 0 thì H = 0 )

(1.5)

Giá trị V (thành phần Value) được tính: V = M

Giá trị S (thành phần Saturation) được tính: S =

11

(1.4)

(V hoặc C = 0 thì S = 0)

(1.6)


Ứ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

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

12


Ứ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


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.

a)

b)

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
Giải thuật của phương pháp sẽ được trình bày cụ thể trong chương 3.


13

(1.7)


Ứ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

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ỉ
lệ σ được xác định bằng công thức:
H(p, σ) =

L
L

L

L

Trong đó, L (p, σ)là tích chập đạo hàm cấp hai của hàm Gaussian

(1.8)
g(σ)

với ảnh I tại p, tương tự với L (p, σ) và L (p, σ). Giải thuật SURF tính đạo hàm
cấp 2 của hàm Gaussian bằng các bộ lọc (box filter) được xấp xỉ từ mơ hình rời rạc.

14


Ứ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

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

O
Ảnh tích lũy của ảnh I
D

B

C

A

y

Σ

ứ á

= A−C−B+D

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


Ứ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

Vị trí của điểm đặc trưng được xác định bằng cách sử dụng thuật toán nonmaximum 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
ma trận Hessian như sau:
det H

ấ ỉ

=D D

− (w. D )

Trong đó w = 0.9 là trọng số cân bằng. D , D , D

(1.10)
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.

a)

b)

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

16


×