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

THIẾT kế và THI CÔNG hệ THỐNG đếm đối TƯỢNG TRONG ẢNH sử DỤNG kít ARDUINO HIỂN THỊ TRÊN LCD

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 (9.03 MB, 84 trang )

BỘ GIÁO DỤC & ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
---------------------------------

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
ĐỀ TÀI:

THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐẾM
ĐỐI TƯỢNG TRONG ẢNH SỬ DỤNG KÍT
ARDUINO HIỂN THỊ TRÊN LCD
GVHD: ThS. Nguyễn Duy Thảo
SVTH:

Phan Thành Hưng
MSSV: 13141125

Tp. Hồ Chí Minh - 1/2018


BỘ GIÁO DỤC & ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
---------------------------------

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
ĐỀ TÀI:



THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐẾM
ĐỐI TƯỢNG TRONG ẢNH SỬ DỤNG KÍT
ARDUINO HIỂN THỊ TRÊN LCD
GVHD:

ThS. Nguyễn Duy Thảo

SVTH:

Phan Thành Hưng
MSSV: 13141125

Tp. Hồ Chí Minh - 1/2018


TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
TP. Hồ Chí Minh, ngày 15 tháng 1 năm 2018

BẢNG MÔ TẢ CÔNG VIỆC
Họ tên sinh viên 1: PHAN THÀNH HƯNG

MSSV: 13141125

Lớp: 13141DT3A

Họ tên sinh viên 2: TRẦN VĂN THẠCH

MSSV: 13141304

Lớp: 13141DT3A
Tên đề tài: ĐẾM ĐỐI TƯỢNG TRONG ẢNH.
1. MÔ TẢ MỤC TIÊU CỦA ĐỀ TÀI:
Mục tiêu của đề tài là xây dựng một hệ thống đếm đối tượng trong ảnh được
chụp bằng camera, nhúng dữ liệu đếm được xuống kit Arduino để điều khiển LCD hiển
thị kết quả đếm được
Đề tài sử dụng thuật toán đánh nhãn để đối tượng trong ảnh. Xây dựng giao diện
để người dùng có thể dễ dàng thao tác. Viết hướng dẫn thao tác sử dụng hệ thống.
2. MÔ TẢ CÔNG VIỆC THỰC HIỆN ĐỀ TÀI CỦA TỪNG SINH VIÊN:
Họ tên Sinh viên 1: PHAN THÀNH HƯNG
Các công việc thực hiện trong đề tài:
STT
1
2

NỘI DUNG CÔNG VIỆC
Tham khảo tài liệu liên quan đến đề tài của những tác giả đã thực hiện.
Viết chương trình đếm đối tượng( thuật toán đánh nhãn), điều khiển kit
Arduino.

3

Chỉnh sửa hệ thống.

4


Viết báo cáo.

ii


Họ tên Sinh viên 2: TRẦN VĂN THẠCH
Các công việc thực hiện trong đề tài:
STT
1
2

NỘI DUNG CÔNG VIỆC
Tham khảo tài liệu liên quan đến đề tài của những tác giả đã thực hiện.
Viết chương trình đếm đối tượng (thuật toán đánh nhãn), điều khiển kit
Arduino.

3

Chụp ảnh phục vụ cho quá trình đếm đối tượng

4

Chỉnh sửa báo cáo.

SINH VIÊN 1

SINH VIÊN 2

(Ký ghi rõ họ tên)


(Ký ghi rõ họ tên)

XÁC NHẬN CỦA GIẢNG VIÊN HƯỚNG DẪN
(Ký ghi rõ họ tên)

iii


TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP. HỒ CHÍ MINH
ĐỘC LẬP - TỰ DO - HẠNH PHÚC
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Tp. HCM, ngày 15 tháng 1 năm 2018

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên:
Chuyên ngành:
Hệ đào tạo:
Khóa:

Phan Thành Hưng
MSSV: 13141125
Trần Văn Thạch
MSSV: 13141304
Kỹ thuật Điện Tử Truyền Thông Mã ngành: 01
Đại học chính quy
Mã hệ:
1

2013
Lớp:
13141DT3A

I. TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐẾM SỐ LƯỢNG TRONG
ẢNH SỬ DỤNG KÍT ARDUINO HIỂN THỊ TRÊN LCD.

II. NHIỆM VỤ
1. Các số liệu ban đầu:
 Bộ ảnh đếm: 30 ảnh gồm 10 ảnh tế bào, 10 ảnh cây gỗ, 10 ảnh vỉ thuốc.
 Matlab phiên bản 2015a.
 Kit điều khiển chính: Arduino Uno R3, LCD 16x2
2. Nội dung thực hiện:
Đề tài thực hiện nội dung xây dựng hệ thống đếm đối tượng qua hình ảnh với đầu
vào là ảnh chứa các đối tượng( tế bào, cây, vỉ thuốc). Kết quả đếm được sẽ được nhúng
dữ liệu điều khiển tương ứng xuống kit Arduino. Nhóm sẽ thực hiện các nội dung như
sau:
 Tìm hiểu kit Arduino.
 Cài đặt nguồn thư viện cho kit Arduino, cách kết nối Arduino với Matlab.
 Tìm hiểu các thuật toán đánh nhãn.
 Xây dựng quá trình xử lý ảnh đầu vào.
 Xây dựng hệ thống đếm đối tượng trong ảnh, lập trình các ứng dụng nhúng dữ liệu
trên kit Arduino.
 Đánh giá kết quả thực hiện.
III. NGÀY GIAO NHIỆM VỤ:
25/09/2017
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 15/01/2018
V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS. Nguyễn Duy Thảo.
CÁN BỘ HƯỚNG DẪN


BM. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
iv


TRƯỜNG ĐẠI HỌC SPKT TPHCM

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Khoa Điện - Điện Tử
Bộ Môn Điện Tử Công Nghiệp – Y Sinh

Độc lập - Tự do - Hạnh phúc
Tp. Hồ Chí Minh, ngày 15 tháng 1 năm 2018

LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên 1: Phan Thành Hưng.
Lớp: 13141DT3A

MSSV: 13141125

Họ tên sinh viên 2: Trần Văn Thạch
Lớp: 13141DT3A

MSSV: 13141304

Tên đề tài: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐẾM SỐ LƯỢNG TRONG ẢNH
SỬ DỤNG KÍT ARDUINO HIỂN THỊ TRÊN LCD.

Xác nhận


Nội dung

Tuần/ngày

GVHD

Tuần 1,2

Tìm đề tài

Tuần 3

Tìm hiểu hoạt động Arduino và Matlab.

Tuần 4

Cài đặt Matlab, kết nối Arduino với Matlab.

Tuần 5,6

Lập trình Arduino với các chân I/O để nhúng dữ liệu.

Tuần 7,8,9

Lập trình và xây dựng chương trình xử lý ảnh đầu vào

Tuần 10,11,12

Lập trình chương trình đếm đối tượng trong ảnh và
chương trình giao diện người dùng.


Tuần 13,14

Hiệu chỉnh toàn bộ chương trình.

Tuần 15,16,17

Viết báo cáo đồ án.

Tuần 18

Chỉnh sửa, in đồ án.

GV HƯỚNG DẪN
(Ký và ghi rõ họ và tên)

v


LỜI CAM ĐOAN
Chúng tôi cam đoan ĐATN là công trình nghiên cứu của bản thân chúng tôi
dưới sự hướng dẫn của Thạc sỹ Nguyễn Duy Thảo.
Các kết quả công bố trong ĐATN “Thiết kế và thi công hệ thống đếm số
lượng trong ảnh sử dụng kít Arduino hiển thị LCD” là trung thực và không sao
chép hoàn toàn từ công trình nào khác.
Người thực hiện đề tài

Phan Thành Hưng Trần Văn Thạch

vi



LỜI CẢM ƠN
Trong quá trình làm đồ án tốt nghiệp, chúng em đã nhận được rất nhiều sự ủng
hộ, giúp đỡ đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và bạn bè.
Chúng em xin gửi lời cảm ơn chân thành đến Th.S Nguyễn Duy Thảo - Trường
Đại học Sư phạm Kỹ thuật Tp.HCM đã tận tình hướng dẫn chỉ bảo trong suốt thời gian
làm luận án tốt nghiệp. Thầy đã tạo nhiều điều kiện và cho những lời khuyên quý báu
giúp chúng em hoàn thành tốt khóa luận.
Xin chân thành cảm ơn thầy cô giáo trong Trường Đại học Sư phạm Kỹ thuật
Tp.HCM nói chung, các thầy cô trong Bộ môn Điện tử Công Nghiệp – Y Sinh nói riêng
đã tận tình giảng dạy, truyền đạt cho chúng em những kiến thức quý báu và tạo điều
kiện giúp đỡ trong suốt quá trình học tập trong những năm học vừa qua, giúp chúng em
có được cơ sở lý thuyết vững vàng.
Cuối cùng, chúng em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều
kiện, quan tâm, ủng hộ, giúp đỡ, động viên chúng em trong suốt quá trình học tập và
hoàn thành đồ án tốt nghiệp.
Chúng em xin chân thành cảm ơn!

Người thực hiện đề tài

Phan Thành Hưng Trần Văn Thạch

vii


MỤC LỤC
Trang bìa .......................................................................................................................... i
Bảng mô tả công việc ...................................................................................................... ii
Nhiệm vụ đồ án .............................................................................................................. iv

Lịch trình ........................................................................................................................ v
Cam đoan ...................................................................................................................... vi
Lời cảm ơn .................................................................................................................... vii
Mục lục......................................................................................................................... viii
Liệt kê hình .................................................................................................................... xi
Liệt kê bảng .................................................................................................................. xiii
Tóm tắt ......................................................................................................................... xv
CHƯƠNG 1. TỔNG QUAN ......................................................................................... 1
1.1. Đặt vấn đề. ......................................................................................................... 1
1.2. Mục tiêu. ............................................................................................................ 2
1.3. Nội dung nghiên cứu. ........................................................................................ 2
1.4

Giới hạn. ............................................................................................................ 2

1.5. Bố cục. ............................................................................................................... 3
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT ............................................................................. 4
2.1

Giới thiệu xử lý ảnh ........................................................................................... 4

2.2

Tổng quan về Matlab. ........................................................................................ 5

2.3

Giới thiệu lịch sử hình thành Arduino. .............................................................. 6

2.4


Giới thiệu về phần cứng. ................................................................................... 8

2.4.1 Kit Arduino Uno. .............................................................................................. 8
2.4.2 Giới thiệu về LCD 16x2 .................................................................................. 10
2.4.3 Giao tiếp I2C ................................................................................................... 11
2.5

Một số phương pháp trong xử lý ảnh ............................................................... 12

2.5.1 Xử lý điểm ảnh: ................................................................................................ 12
2.5.2 Làm trơn nhiễu bằng lọc tuyến tính ................................................................. 15
2.5.3 Nhị phân hóa ngưỡng tự động......................................................................... 16
2.5.4 Phân vùng ảnh: ................................................................................................ 17
2.5.5 Phép toán Dilation. .......................................................................................... 18
2.5.6 Phép toán Erosion. .......................................................................................... 19
2.5.7 Phép toán Openning. ....................................................................................... 20
2.5.8 Phép toán Closing ........................................................................................... 20
viii


2.5.9 Thuật toán đánh nhãn: ..................................................................................... 25
2.6

Các hàm xử lý trong Matlab. .......................................................................... 25

CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ ............................................................. 28
3.1

Giới thiệu. ........................................................................................................ 28


3.2

Thiết kế hệ thống. ............................................................................................ 28

3.2.1 Thiết kế sơ đồ khối hệ thống. .......................................................................... 28
3.2.2 Thiết kế các khối hệt thống. ............................................................................ 30
3.3

Tổng quan về phần cứng. ................................................................................ 32

3.3.1 Tổng quan các khối chính. ............................................................................... 32
3.3.2 Board Arduino Uno R3.................................................................................... 33
3.4 Cài đặt các gói hỗ trợ phần cứng cho Matlab................................................... 37
3.4.1 Kết nối Arduino với Matlab. ............................................................................ 37
3.4.2 Kiểm tra kết nối Arduino với Matlab. .............................................................. 40
3.4.3 Kết nối LCD với I2C ........................................................................................ 40
CHƯƠNG 4. THI CÔNG HỆ THỐNG .................................................................... 42
4.1

Giới thiệu. ........................................................................................................ 42

4.2

Thi công hệ thống. ........................................................................................... 42

4.3

Lưu đồ hệ thống. .............................................................................................. 43


4.3.1 Tổng quát về hệ thống ..................................................................................... 43
4.3.2 Chi tiết về hệ thống. ......................................................................................... 43
4.4

Viết tài liệu hướng dẫn sử dụng, thao tác ........................................................ 47

4.4.1 Viết tài liệu hướng dẫn sử dụng. ...................................................................... 47
4.4.2 Quy trình thao tác trên giao diện. ..................................................................... 48
CHƯƠNG 5. KẾT QUẢ _ NHẬN XÉT _ĐÁNH GIÁ ............................................. 49
5.1

Kết quả............................................................................................................. 49

5.1.1 Tổng quan kết quả đạt được. ........................................................................... 49
5.1.2 Kết quả thực tế. ................................................................................................ 49
5.2 Nhận xét và đánh giá. ....................................................................................... 60
CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.......................................... 62
6.1

Kết luận. ........................................................................................................... 62

6.2

Hướng phát triển. ............................................................................................. 63

TÀI LIỆU THAM KHẢO .......................................................................................... 64
PHỤ LỤC .................................................................................................................... 65

ix



LIỆT KÊ HÌNH
Hình

Trang

Hình 2.1: Những thành viên khởi xướng Arduino .............................................................. 7
Hình 2.2. Cấu trúc phần cứng của Arduino Uno. ............................................................... 9
Hình 2.3. Hình ảnh LCD ................................................................................................... 10
Hình 2.4 : Hình ảnh I2C. ................................................................................................... 12
Hình 2.5: Chuyển ảnh màu thành ảnh xám ....................................................................... 13
Hình 2.6. Lược đồ xám. .................................................................................................... 14
Hình 2.7. Ảnh xám và ảnh nhị phân. ................................................................................ 14
Hình 2.8. Ngưỡng tự động theo T1 và T2 ......................................................................... 17
Hình 2.9.a.Đối tượng cần phình A và nhân tạo ảnh B,b.Minh họa quét các b,khắp A .... 19
Hình 2.10.Kết quả của phép toán Dilation. ....................................................................... 19
Hình 2.11.Kết quả của phép toán Erosion. ....................................................................... 19
Hình 2.12.Vật có cấu trúc đơn giản-hình vuông và phức tạp và hình xoắn ốc. ................ 21
Hình 2.13. Lưu đồ giải thuật cho thuật toán đánh nhãn .................................................... 22
Hình 2.14. Lưu đồ giải thuật cho toán đánh nhãn ............................................................. 23
Hình 2.15 Vật thể màu đen đã được đánh nhãn ............................................................... 23
Hình 2.16. Mô phỏng thuật toán đánh nhãn. ..................................................................... 24
Hình 2.17. Số lượng vật được xác định dựa vào RAM..................................................... 25
Hình 3.1. Sơ đồ quá trình đếm đối tượng......................................................................... 29
Hình 3.2. Sơ đồ nguyên lý khối ứng dụng. ...................................................................... 31
Hình 3.3. Tổng quan các khối. .......................................................................................... 32
Hình 3.4. Sơ đồ nguyên lý board Arduino Uno R3. ......................................................... 33
Hình 3.5. Sơ đồ chân ATmega328. ................................................................................... 34
Hình 3.6. Cầu USB-to-UART. .......................................................................................... 36
Hình 3.7. Bộ nguồn. .......................................................................................................... 37

Hình 3.8. Get Hardware Support Package. ....................................................................... 38
Hình 3.9. Cửa sổ “Support Package Installer”. ................................................................. 38
Hình 3.10. Giao diện cài Package cho Arduino. ............................................................... 39
Hình 3.11. Đăng nhập cho cửa sổ “MathWorks Account Log In”. .................................. 39
Hình 3.12.Kết nối Arduino và Matlab thành công. ........................................................... 40
xi


Hình 3.13.Kết quả trả về khi kết nối I2C .......................................................................... 41
Hình 4.1. Mô hình trong quá trình thực hiện. ................................................................... 42
Hình 4.2. Lưu đồ chính hệ thống. ..................................................................................... 43
Hình 4.3. Lưu đồ đếm đối tượng ....................................................................................... 44
Hình 4.4. Lưu đồ chương trình đếm đối tượng. ................................................................ 45
Hình 4.5. Lưu đồ chương trình dếm đối tượng. ................................................................ 46
Hình 4.6. Lưu đồ chương trình điều khiển ứng dụng trên Arduino. ................................. 47
Hình 4.7. Quy trình thao tác với thuật toán đánh nhãn. .................................................... 48
Hình 5.1. Giao diện ban đầu ............................................................................................. 50
Hình 5.2. Giao diện chọn lựa đối tượng đếm. ................................................................... 50
Hình 5.3. Giao diện đếm tế bào. ....................................................................................... 51
Hình 5.4. Giao diện đếm cây............................................................................................. 52
Hình 5.5. Giao diện đếm thuốc. ........................................................................................ 52
Hình 5.6. 10 bức ảnh đếm tế bào mà nhóm thực hiền đề tài............................................. 53
Hình 5.7. Đếm tế bào màu hồng thành công. .................................................................... 53
Hình 5.8. Đếm tế bào màu tím sạm thành công. ............................................................... 54
Hình 5.9. 10 Bức ảnh đếm cây mà nhóm thực hiện đề tài ................................................ 55
Hình 5.10.Đếm cây loại 1 thành công ............................................................................... 55
Hình 5.11. Đếm cây loại 2 thành công .............................................................................. 56
Hình 5.12. 10 bức ảnh đếm thuốc nhóm thực hiện đề tài ................................................. 56
Hình 5.13. Đếm thuốc loại 1 thành công .......................................................................... 57
Hình 5.14. Đếm thuốc đen loại 2 thành công.................................................................... 58

Hình 5.15. Kết quả hiện thị đếm đối tượng ra LCD ......................................................... 59

xii


LIỆT KÊ BẢNG
Bảng

Trang

Bảng 2.1. Thông số kỹ thuật Arduino Uno......................................................................... 8
Bảng 2.2:Chức năng các chân của LCD. .......................................................................... 10
Bảng 2.3 Các hàm xử lý hình ảnh khác trong Matlab. ..................................................... 27
Bảng 5.1.Kết quả đếm tế bào ............................................................................................ 40
Bảng 5.2.Kết quả đếm thuốc. ........................................................................................... 60
Bảng 5.3.Kết quả đếm cây. ............................................................................................... 60

xiii


TÓM TẮT
Việc đếm số lượng đối tượng là một nhiêm vụ khá phổ biến trong các ngành
công nghiệp bằng các phương pháp khác nhau. Đếm số lượng đối tượng được sử dụng
để thu được số lượng nhất định các yếu tố từ ảnh. Vì thế, bài toán đếm đối tượng trong
ảnh là một đề tài khá mới mẻ và đang được chú ý để phát triển với phép đếm tự động
bởi tầm nhin máy tính để tiết kiệm thời gian, công sức.
Đề tài: “Thiết kế và thi công hệ thống đếm đối tượng trong ảnh sử dụng kit
Arduino hiển thị trên LCD” nghiên cứu xây dựng phương pháp xử lý ảnh đầu vào,
các phương pháp hinh thái học và đếm đối tượng trong ảnh để điều khiển ứng dụng
trên kit Arduino tương ứng với kết quả giá trị nhận được. Các nội dung nghiên cứu bao

gồm: Tìm hiểu kit Arduino; Tìm hiểu các phương pháp tiền xử lý ảnh ; Tìm hiểu các
phép toán hình thái học; Xây dựng thuật toán đánh nhãn để đếm đối tượng trong ảnh.
Đề tài được xây dựng chủ yếu trên phần mềm Matlab.
Mô hình do nhóm thực hiện đã đạt được mục tiêu do nhóm đặt ra. Hiệu suất
việc đếm đối tượng cao, điều khiển các ứng dụng trên kit Arduino. Tuy nhiên, việc
đếm đối tương còn phụ thuộc nhiều vào môi trường khác nhau như: ánh sáng nền, màu
sắc đối tương nên gây khó khăn cho viêc đếm đối tương sai số.

xv


CHƯƠNG 1.TỔNG QUAN

Chương 1. TỔNG QUAN
1.1.

ĐẶT VẤN ĐỀ.
Trong những năm gần đây, mặc dù còn mới mẻ trong lĩnh vực khoa học và công nghệ

nhưng xử lý ảnh đang được nghiên cứu và phát triển với tốc độ nhanh chóng bởi các trung
tâm nghiên cứu, trường đại học và học viện…với rất nhiều ứng dụng trên các lĩnh vực khác
nhau[1]. Đi cùng với sự phát triển đó, phần lớn các thiết bị điện tử đều dần phát triển theo
hướng tự động hóa, thông minh, có thể giao tiếp, tương tác trực tiếp với người dùng. Đáp
ứng được điều đó rất nhiều bài toán, giải thuật lần lượt giải quyết được vấn đề. Một trong
số đó là bài toán đếm số lượng, phát triển ngày càng hiện đại, yêu cầu độ chính xác ngày
càng cao.
Trong thời đại bùng nổ về công nghệ thông tin như hiện nay, việc đếm số lượng đối
tượng là một nhiệm vụ khá phổ biến được thực hiện nhiều trong các ngành công nghiệp
bằng các phương thức khác nhau. Đếm đối tượng được sử dụng để nhận được một số lượng
nhất định các yếu tố từ hình ảnh. Những yếu tố này hoạt động như một nguồn thông tin để

phân tích định lượng, theo dõi chuyển động và phân tích định tính. Việc đếm số lượng các
đối tượng được thực hiện trong các môi trường khác nhau với khác đối tượng có kích thước,
số lượng khác nhau. Nhưng kết quả đem lại thường không cao, sai số lớn và mất nhiều thời
gian. Vì thế mà việc đếm bằng phương pháp đếm thủ công phải được thay thế bằng đếm tự
động bởi tầm nhìn máy tính. Đếm tự động sẽ giúp chúng ta tiết kiệm được thời gian, công
sức, tăng khả năng chính xác và áp dụng cho nhiều đối tượng khác nhau chẳng hạn như:
đếm tế bào, cá, trứng, ic, xe …
Ở nước ta hiện nay, lĩnh vực đếm trong xử lý ảnh đã có nhũng phát triển đáng kể. Tuy
nhiên nó chỉ mới phát triển dựa trên nền tảng phần cứng và chưa được áp dụng rỗng rãi
trong thực tế. Vệc giải quyết bài toán này theo hướng tiếp cận sử dụng phần mềm chưa
được quan tâm phát triển
Xuất phát từ mục tiêu tiếp cận, bổ sung các kiến thức mới, cũng như củng cố lại
những kỹ năng kiến thức trong suốt quá trình học tập tại trường. Đồng thời nghiên cứu sâu

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

1


CHƯƠNG 1.TỔNG QUAN

hơn về ứng dụng của xử lý ảnh, nghiên cứu các thuật đếm đối tượng trong ảnh và thực hiện
đếm đối tượng rồi nhúng dữ liệu xuống kit Arduino[2].
Do đó, nhóm thực hiện đồ án chọn đề tài: “Đếm đối tượng trong ảnh”.

1.2.

MỤC TIÊU.
Mục tiêu của đề tài là xây dựng hệ thống đếm đối tượng qua hình ảnh với đầu vào là


ảnh có chứa đố tượng cần đếm từ ảnh chụp. Với số lượng đối tượng đếm được sẽ được sẽ
nhúng dữ liệu điều khiển tương ứng xuống kit Arduino.

1.3.

NỘI DUNG NGHIÊN CỨU.
Mục tiêu xây dựng hệ thống: “Đếm đối tượng qua hình ảnh ” như trên thì nhóm sẽ
thực hiện những nội dung như sau:

 NỘI DUNG 1: Tìm hiểu kit Arduino.
 NỘI DUNG 2: Cài đặt nguồn thư viện cho kit Arduino, cách kết nối module Arduino
với phần mềm Matlab.
 NỘI DUNG 3: Tìm hiểu các thuật toán cần thiết liên quan đến đếm đối tương trong
ảnh.
 NỘI DUNG 4: Xây dựng thuật toán tạo cơ sở dữ liệu cần thiết cho mục đích đếm
đối tượng.
 NỘI DUNG 5: Xây dựng hệ thống đếm đối tượng qua hình ảnh , lập trình các ứng
dụng nhúng dữ liệu trên kit Arduino.
 NỘI DUNG 6: Đánh giá kết quả thực hiện.
1.4

GIỚI HẠN.
Mô hình gồm có kit Arduino Uno, máy tính Laptop để thực hiện hệ thống đếm đối

tượng qua hình ảnh trên phần mềm Matlab sau đó nhúng dữ liệu xuống kit Arduino.
Hệ thống nhận dạng ảnh với kích thước 128x128 với các phương pháp tiền xử lý
ảnh đầu vào và thuật toán đánh nhãn để đếm các đối tượng có trong ảnh . Ảnh chụp từ
camera điện thoại.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH


2


CHƯƠNG 1.TỔNG QUAN

1.5.

BỐ CỤC.
Đồ án tốt nghiệp: “Đếm đối tượng trong ảnh” trình bày trong 6 chương với bố cục

như sau:
 Chương 1: Tổng quan.
Chương này trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nội dung
nghiên cứu, các giới hạn thông số và bố cục đồ án.
 Chương 2: Cơ sở lý thuyết.
Giới thiệu về phần Matlab, giới thiệu về Arduino, giới thiệu về xử lý ảnh
Giới thiệu về kit Arduino, LCD và I2C.
Giới thiệu về các phương pháp trong quá trình xử lý ảnh đầu vào. Giới thiệu về
thuật toán đánh nhãn trong việc đếm đối tượng.
 Chương 3: Thiết kế và tính toán.
Phân tích, xây dựng sơ đồ khối, sơ đồ phần cứng, thiết kế chương trình cho hệ thống
đếm đối tượng qua hình ảnh được viết trên phần mềm Matlab, sử dụng thư viện của Matlab
cho kit Arduino.
 Chương 4: Thi công hệ thống.
Xây dựng chương trình hoàn chỉnh cho toàn hệ thống, các hàm, các lưu đồ, các
chương trình được sử dụng. Lắp ráp và chạy chương trình. Viết tài liệu hướng dẫn sử dụng,
quy trình thao tác.
 Chương 5: Kết quả, nhận xét và đánh giá.

Nêu các kết quả đạt được khi thực hiện chương trình, phân tích, nhận xét, đánh giá

kết quả thực thi được.
 Chương 6: Kết luận và hướng phát triển.

Tóm tắt những kết quả đạt được, những hạn chế và nêu lên các hướng phát triển
trong tương lai.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

3


CHƢƠNG 2.CƠ SỞ LÝ THUYẾT

Chƣơng 2. CƠ SỞ LÝ THUYẾT
2.1

GIỚI THIỆU XỬ LÝ ẢNH[1]
Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành khoa

học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh,
kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng
cho nó.
Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục năm nay.
Nó là môn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác. Đầu tiên
phải kể đến Xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các
khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Thứ
hai, các công cụ toán như Đại số tuyến tính, Sác xuất, thống kê. Một số kiến thứ cần thiết
như Trí tuệ nhân tao, Mạng nơ ron nhân tạo cũng được đề cập trong quá trình phân tích và
nhận dạng ảnh.
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng
ảnh và phân tích ảnh. Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo

được truyền qua cáp từ Luân đôn đến New York từ những năm 1920. Vấn đề nâng cao
chất lượng ảnh có liên quan tới phân bố mức sáng và độ phân giải của ảnh. Việc nâng cao
chất lượng ảnh được phát triển vào khoảng những năm 1955. Điều này có thể giải thích
được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình xử lý
ảnh sô thuận lợi. Năm 1964, máy tính đã có khả năng xử lý và nâng cao chất lượng ảnh từ
mặt trăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi đường biên, lưu ảnh. Từ năm
1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạng ảnh phát triển
không ngừng. Các phương pháp tri thức nhân tạo như mạng nơ ron nhân tạo, các thuật
toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng được áp dụng rộng rãi và
thu nhiều kết quả khả quan.
Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tự nhiên
từ thế giới ngoài được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh). Trước
đây, ảnh thu qua Camera là các ảnh tương tự (loại Camera ống kiểu CCIR). Gần đây, với

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

4


CHƢƠNG 2.CƠ SỞ LÝ THUYẾT
sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ Camera, sau đó nó
được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo. Máy ảnh số hiện nay
là một thí dụ gần gũi. Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từ ảnh
chụp bằng máy quét ảnh.
2.2

TỔNG QUAN VỀ MATLAB[4].
Matlab (Matrix Laboratory) là một môi trường tính toán số và lập trình, được thiết

kế bởi công ty MathWorks, là ngôn ngữ lập trình thực hành bậc cao được sử dụng nhiều

để giải các bài toán kỹ thuật. Matlab tích hợp việc tính toán thể hiện kết quả cho phép lập
trình, giao diện làm việc rất dễ dàng cho người sử dụng. Dữ liệu cùng với thư viện được
lập trình sẵn cho phép người dùng có được những ứng dụng như:
 Tính toán các phép toán học thông thường, tính toán ma trận.
 Lập trình tạo ra những ứng dụng mới.
 Cho phép mô phỏng các mô hình thực tế.
 Phân tích, khảo sát, hiển thị dữ liệu.
 Với phần mềm đồ họa cực mạnh.
 Matlab giúp đơn giản hóa việc giải quyết các bài toán tính toán kỹ thuật so với các
ngôn ngữ lập trình truyền thống như C, C++, và Fortran.
Matlab là một hệ thống tương giao chúng cho phép giải quyết các vấn đề liên quan
đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay vector và có
thể sử dụng ngôn ngữ C hoặc Fortran lập trình rồi thực hiện ứng dụng lập trình đó bằng
các câu lệnh gọi từ Matlab.
Matlab được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyền
thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính, hay
tính toán sinh học. Matlab cung cấp giải pháp chuyên dụng gọi là Toolbox. Toolbox là
một tập hợp toàn diện các hàm của Matlab (M-file).
Hệ thống Matlab gồm 5 phần chính:
 Ngôn ngữ Matlab: Cho phép lập trình từ các ứng dụng nhỏ đến phức tạp. Đó là các
ngôn ngữ cao về ma trận và mảng, các dòng lệnh, các hàm, cấu trúc dữ liệu vào.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

5


CHƢƠNG 2.CƠ SỞ LÝ THUYẾT
 Môi trường làm việc: Bao gồm các phương tiện cho việc quản lý các biến trong
không gian làm việc Workspace cũng như xuất nhập dữ liệu. Nó cũng bao gồm các công

cụ phát triển, quản lý, gỡ rối và định hình M-file.
 Xử lý đồ họa: Bao gồm các lệnh cao cấp cho trực quan hóa dữ liệu hai chiều và
ba chiều, xử lý ảnh, ảnh động. Cung cấp các giao diện tương tác giữa người sử dụng và
máy tính.
 Thư viện toán học: Các hàm cơ bản như cộng, trừ, nhân, chia, sin, cos …và các
hàm phức tạp như tính ma trận nghịch đảo, trị riêng, chuyển đổi fourier, laplace, symbolic
library.
 Giao diện người dùng (Application Program Interface): Cho phép viết chương
trình tương tác với các ngôn ngữ khác C, Fortran ...
Simulink là một chương trình đi kèm với Matlab, là một hệ thống tương tác với
việc mô phỏng các hệ thống động phi tuyến, mô phỏng mạch.
2.3

GIỚI THIỆU LỊCH SỬ HÌNH THÀNH ARDUINO[3].
Arduino thực sự đã gây sóng gió trên thị trường người dung DIY ( là những người

tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giống với
những gì Apple đã làm được trên thị trường thiết bị di động. Số lượng người dung cực lớn
và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học làm cho ngay cả những
người tạo ra chúng phải ngạc nhiên về mức độ phổ biến.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

6


CHƢƠNG 2.CƠ SỞ LÝ THUYẾT

Hình 2.1: Những thành viên khởi xướng Arduino
Arduino là gì mà có thể ngay cả nhũng sinh viên và nhà nghiên cứu tại các trường

đại học danh tiếng như MIT, Stanford, Carnegie Mellon phải sử dụng, hoặc ngay cả
google cũng muốn hỗ trợ hi cho ra đời bộ kít Arduino mega ADK dung để phát triển trên
các ứng dụng tương tác với cảm biến với các thiết bị khác?
Arduino thật ra là một bo mạch vi xử lý được dung để lập trình tương tác với các
thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật
của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập
trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập
trình và điều hiển làm nên hiện tượng Arduino chính là mức giá thấy với tính chấ nguồn
mở từ phần cứng tới phần mềm chỉ cới khoảng $30, người dung đã có thể sở hữu board
Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị.
Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào
thế kỷ thứ 9 là King Arduino, Arduino chính thức được đưa ra giới thiệu vào năm 2005
như là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một
trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea
(IDII). Mặt dù hầu như không được tiếp thị gì cả, tin tức về arduino vẫn lan truyền với tốc
độ chóng mặt nhờ những lời truyền miệng tốt đẹp của nhũng người dung đầu tiên. Hiện

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

7


CHƢƠNG 2.CƠ SỞ LÝ THUYẾT
nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nói đã sản
sinh ra Arduino.
2.4

GIỚI THIỆU PHẦN CỨNG.

2.4.1


Kit Arduino Uno[3].
Kit Arduino có nhiều phiên bản với tính năng và mục đích sử dụng khác nhau.

Board Arduino Uno là một trong những phiên bản được sử dụng rộng rãi nhất bởi chi phí
và tính linh động của nó.
Arduino Uno là một board mạch vi điều khiển dựa trên chip Atmega328 với 14
chân vào/ra bằng tín hiệu số được đánh số từ 0 đến 13, trong đó 6 chân có thể tạo xung
PWM được đánh dấu “~” trước mã số của chân, 6 chân nhận tín hiệu analog được đánh
dấu từ A0 đến A5, có thể sử dụng như là 6 chân I/O số. Có 2 mức điện áp là 0V và 5V với
dòng vào/ra tối đa trên mỗi chân là 30 mA.
Vi điều khiển

Atmega328P họ 8 bit

Điện áp hoạt động

5V

Điện áp đầu vào

7-12V

Điện áp đầu vào giới hạn

6-20V

Số chân Digital I/O

14 (có 6 chân PWM)


Số chân Analog

6 ( độ phân giải 10bit)

DC current per I/O pin

20mA

DC current for 3.3V pin

50mA

Flash Memory

32KB (ATmega328P)

SRAM

2KB (Atmega328P)

EEPROM

1KB (Atmega328P)

Clock Speed

16MHZ

Length


68.6 mm

Width

53.4 mm

Weight

25 g
Bảng 2.1. Thông số kỹ thuật Arduino Uno.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

8


CHƢƠNG 2.CƠ SỞ LÝ THUYẾT

Hình 2.2. Cấu trúc phần cứng của Arduino Uno.
 Cổng USB(1): Cổng USB dùng để kết nối với máy tính và thông qua đó để upload
chương trình cho Arduino từ máy tính, đồng thời cung cấp nguồn cho Arduino.
 Nguồn (2 và 4): Sử dụng jack cắm nguồn 2.1mm (cực dương ở giữa) hoặc có thể
dùng chân Vin và GND để cấp nguồn cho Arduino. Board mạch hoạt động ở điện áp
ngoài khoảng 5-20V, nhưng nếu cấp nguồn lớn hơn 5V thì ngõ ra chân 5V sẽ lớn hơn,
không nên cấp nguồn lớn hơn 12V vì board sẽ nóng và dễ bị hỏng. Chân 5V và chân 3.3v
là 2 chân lấy nguồn từ Arduino ra ngoài, không được cấp nguồn vào nó, sẽ làm hỏng.
 Chip Atmega328P(6): Có 32KB bộ nhớ flash trong đó có 0.5KB dùng cho
bootloader, 2KB SRAM, 1KB EEPROM.
 Output và Input (3 và 5): Arduino có 14 chân Digital với các chức năng Input và

Output.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

9


CHƢƠNG 2.CƠ SỞ LÝ THUYẾT
2.4.2 Giới thiệu về LCD 16x2

Hình 2.3. Hình ảnh LCD
- Các tính năng chính của LCD
• 5 x 8 chấm với con trỏ.
• Tích hợp bộ điều khiển (KS 0.066 hoặc tương đương).
• Cấp điện +5V (Ngoài ra có sẵn cho + 3V).
• 1 / 16 nhiệm vụ chu kỳ.
• B / L sẽ được điều khiển bởi pin 1, pin 2 hay pin 15, pin 16 hoặc AK (LED).
• N.V. tùy chọn cho + 3V cấp điện.
- Chức năng các chân của LCD:
Chân Ký hiệu

Mô tả
Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với
GND của mạch điều khiển.
Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với
VCC=5V của mạch điều khiển.

1

VSS


2

VDD

3

VEE

Điều chỉnh độ tương phản của LCD.

RS

Chân chọn thanh ghi (Register select). Nối chân RS với logic “0”
(GND) hoặc logic “1” (VCC) để chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD
(ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở

4

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

10


CHƢƠNG 2.CƠ SỞ LÝ THUYẾT
chế độ “đọc” - read).
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên
trong LCD.
Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic

5
R/W
“0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để
LCD ở chế độ đọc.
Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus
DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép
của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào( chấp
6
E
nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low
transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát
hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ
ở bus đến khi nào chân E xuống mức thấp.
Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU.
Có 2 chế độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB
7 - 14 DB0÷DB7
là bit DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới
DB7, bit MSB là DB7.
15
A
Nguồn dương cho đèn nền
16
K
GND cho đèn nền
Bảng 2.2.Chức năng các chân của LCD.
2.4.3 Giao tiếp I2C

Thông thường, để sử dụng màn hình LCD bạn sẽ phải mất rất nhiều chân Arduino
để điều khiển.Do vậy, để đơn giản hóa công việc người ta đã tạo ra một mạch điều khiển
màn hình LCD sử dụng giao tiếp I2C. Nói một cách đơn giản, bạn chỉ tốn hai dây để điều
khiển màn hình thay vì 8 dây như cách thống thường thường làm.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

11


×