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

Đồ án tốt nghiệp Kỹ thuật điện tử truyền thông: Đếm số lượng viên thuốc có trong vỉ thuốc

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 (3.63 MB, 78 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:

ĐẾM SỐ LƯỢNG VIÊN THUỐC CÓ
TRONG VỈ THUỐC

GVHD: ThS. Nguyễn Duy Thảo
SVTH: Võ Danh Quân

15141259

Nguyễn Minh Hảo 15141149

Tp. Hồ Chí Minh - 12/2019


LỜI CAM ĐOAN
Đề tài này là do tôi tự thực hiện dựa vào một số tài liệu trước đó và không
sao chép từ tài liệu hay công trình đã có trước đó.

Nhóm thực hiện
Võ Danh Quân
Nguyễn Minh Hảo



iii


LỜI CẢM ƠN
Nhóm thực hiện đồ án xin gửi lời cảm ơn đến thầy GVHD Th.S Nguyễn
Duy Thảo đã trực tiếp hướng dẫn, tham gia đóng góp, gợi ý các ý kiến, chia sẽ
nhiều những kinh nghiệm và tận tình giúp đỡ cũng như tạo điều kiện tốt và thoải
mái nhất để chúng em có thể hoàn thành tốt đề tài này.
Em xin gửi lời cảm ơn đến các quý thầy cô khoa Điện – Điện tử đã giúp đỡ
và tạo điều kiện tốt cho chúng em thực hiện đề tài.
Ngoài ra, chúng em cũng cảm ơn các bạn học ở lớp 15141DT2C cũng như
15141DT1B đã chia sẽ và giúp đỡ chúng em rất nhiều trong đề tài này.
Xin chân thành cảm ơn tất cả !
Nhóm thực hiện
Võ Danh Quân
Nguyễn Minh Hảo

iv


MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP………………………………………………...i
LỊCH TRÌNH LÀM ĐỒ ÁN TỐT NGHIỆP………………………………………..ii
LỜI CAM ĐOAN…………………………………………………………………..iii
LỜI CẢM ƠN………………………………………………………………………iv
MỤC LỤC………………………………………………………………….…….....v
LIỆT KÊ HÌNH………………………………………………………...…….……vii
LIỆT KÊ BẢNG……………………………………………………..…...…………x
Chương 1. TỔNG QUAN ………………………………………………...………...1

1.1.

ĐẶT VẤN ĐỀ………………………………………………………...……..2

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

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

TỔNG QUAN VỀ XỬ LÍ ẢNH……………………………...……………...4

2.1.1. Giới thiệu về xử lý ảnh……………………………………………………….4
2.1.2. Các bước cơ bản trong xử lý ảnh …………………………...……………….5
2.1.3. Không gian màu ……………………………………………...……………...6
2.1.3.1.


Mô hình màu RGB…………………………………...…………...6

2.1.3.2.

Không gian màu HSV ………………………………...………….8

2.1.3.3.

Cách chuyển từ không gian màu RGB sang không gian màu
HSV……………………………………………………………….8

2.1.4.Xử lý hình thái học (Morphology) ……………………………………………9
2.1.4.1.

Phép toán giản nở ……………………………………………….10

2.1.4.2.

Phép toán co(Erosion)…………………………………………...10

2.1.4.3.

Phép toán mở (Opening)…………………………...…………... 10

2.1.4.4.

Phép toán đóng (Closing)…………………………...………….. 11

2.1.5. Cách vẽ đường viền……………………………………………...……….. 12
2.2.


NGÔN NGỮ PYTHON VÀ THƯ VIỆN OPENCV ……………...………12

2.2.1. Hệ điều hành Raspbian ………………………………………...………….12
2.2.2. Ngôn ngữ Python......................................................................................... 13
v


2.2.3. Thư viện OpenCV ………………………………………………...……….15
2.2.3.1.Giới thiệu OpenCV ………………………………………………...……...15
2.3.

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

2.3.1. Giới thiệu chuẩn giao tiếp UART………………………………………......16
2.3.2.1.

Raspberry Pi 3 Model B…………………………………………16

2.3.3. Camera USB Logitech C270 …………………………………………..….20
2.3.4. Lcd 16x2………………………………………………………………...…21
2.3.5. Arduino Uno R3………………………………………………………...….23
2.3.6. Module điều khiển động cơ L298……………………………………...…..25
2.3.7. Servo SG90………………………………………………………………...27
2.3.8. Băng chuyền và Step motor …………………………………….……..…..28
2.3.9. Cảm biến siêu âm SRF 04……………………………………………...…..29
Chương 3: TÍNH TOÁN VÀ THIẾT KẾ……………………………….……..…..30
3.1.

GIỚI THIỆU………………………………………………………………..30


3.2.

TÍNH TOÁN VÀ THIẾT KẾ ………………………………………...……31

3.2.1. Thiết kế sơ đồ khối của hệ thống ……………………………………..……31
3.2.2. Tính toán và thiết kế mạch……………………………………………...…. 32
3.2.2.1.

Thiết kế khối thu tín hiệu hình ảnh………………………..…….32

3.2.2.2.

Thiết kế khối cảm biến…………………………………………..33

3.2.2.3.

Thiết kế khối hiển thị…………………………………...……….34

3.2.2.4.

Khối công suất…………………………………………..………35

3.2.2.5.

Khối xử lý trung tâm………………………………….…...…….36

3.2.2.6.

Sơ đồ nguyên lí mạch điện của hệ thống………………..………38


Chương 4. THI CÔNG HỆ THỐNG………………………………….…..……….41
4.1.

GIỚI THIỆU………………………………………………………..………41

4.2.

ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH……………………………...……41

4.2.1. Đóng gói bộ điều khiển ………………………………………………...…..41
4.2.2. Thi công mô hình………………………………………………………...…42
4.3.

LẬP TRÌNH HỆ THỐNG …………………………………………………42

4.3.1. Lưu đồ giải thuật …………………………………………………………...42
4.3.1.1.

Lưu đồ chương trình trên Raspberry …………………………....42

4.3.1.2.

Lưu đồ chương trình trên Arduino ……………………………...44
vi


4.3.1.3.

Lưu đồ chương trình đo khoảng cách của cảm biến siêu âm……46


4.3.1.4.

Lưu đồ chương trình của timer2………………………….……...47

4.3.2. Phần mềm lập trình cho vi điểu khiển …………………………………….48
4.4.

VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG – THAO TÁC …..………….49

4.4.1. Viết tài liệu hướng dẫn sử dụng ……………………………...…………….49
Chương 5.

KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ……………………..……… .51

5.1. KẾT QUẢ ĐẠT ĐƯỢC …………………………………………......……….51
5.2. KẾT QUẢ THỰC NGHIỆM …………………………………………...…….51
5.2.1. Mô hình sản phẩm ……………………………………………………...….51
5.2.2. Kết quả thực nghiệm từ việc nhận diện số thuốc …………………….….…53
5.3.

NHẬN XÉT – ĐÁNH GIÁ ………………………………………………..55

5.3.1. Nhận xét ………………………………………………………………......55
5.3.2. Đánh giá ………………………………………………………………......55
Chương 6:

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN……………………….. ..60

6.1.


KẾT LUẬN ………………………………………………….……………...60

6.2.

HƯỚNG PHÁT TRIỂN …………………………………….……………..61

PHỤC LỤC………………………………………………………………………...62
I.

Chương trình trên Raspberry……………………………………………62

II.

Chương trình trên Arduino……………………………………………...64

TÀI LIỆU THAM KHẢO…………………………………………………………xv

vii


LIỆT KÊ HÌNH
Hình

Trang

Hình 2.1. Các bước cở bản trong xử lí ảnh. ………………...……………………....5
Hình 2.2. Mô hình màu RGB…………………………….…………………..….…..5
Hình 2.3. Ba kênh màu RGB riêng biệt………………….……………………...…. 5
Hình 2.4. Hình tròn màu sắc HSV…………………………..…………………..…..8

Hình 2.5. Ảnh gốc và ảnh sau khi dùng phép giản nở ……..……………………...10
Hình 2.6. Ảnh gốc và ảnh sau khi dùng phép co …………...……………………..10
Hình 2.7. Ảnh gốc và ảnh sau khi dùng phép mở …………...…………………….11
Hình 2.8. Ảnh gốc và ảnh sau khi dùng phép đóng ……….………………………11
Hình 2.9. Giao diện của Raspberry chạy hệ điều hành Raspbian …………………13
Hình 2.10. Cửa sổ cho phép hoạt động các chuẩn giao tiếp.………………………13
Hình 2.11. Phần mềm Python…………….……………………………………......14
Hình 2.12. Raspberry Pi 1 Model B………….…………………………………….17
Hình 2.13. Raspberry Pi 2………………………………………………………….17
Hình 2.14. Raspberry Pi 3 Model B ……………………………………………….18
Hình 2.15. Sơ đồ chân Raspberry Pi 3……………………………………………..19
Hình 2.16. Cấu trúc phần cứng của Raspberry Pi 3………………………………..19
Hình 2.17. Camera Logitech C270………..……………………………………….20
Hình 2.18. Lcd 16x2…………………….…………………………………………21
Hình 2.19. Sơ đồ chân Lcd 16x2………….……………………………………….22
Hình 2.20. Arduino Uno R3…………………………………………………..……23
Hình 2.21. Module điều khiển động cơ L298……………………………..….……25
Hình 2.22. Sơ đồ chân của module L298…………………………………….…….26
Hình 2.23. Mạch nguyên lý của module L298……………………………….…….26
Hình 2.24. Hình ảnh của servo SG90………………………...………………….....27
Hình 2.25. Băng chuyền ………………….………………...…………...………....28
Hình 2.26. Step motor………………….………………...………………………...28
Hình 2.27 biến siêu âm SRF04…………….…………..…………………………..29
Hình 3.1. Sơ đồ khối của hệ thống…………………………………………………31
Hình 3.2. Sơ đồ nguyên lý kết nối khối thu tín hiệu hình ảnh với Raspberry Pi 3+
……………………………………………………………………………………...33
viii


Hình 3.3. Sơ đồ nguyên lý kết nối cảm biến siêu âm SRF05 với arduino UNO

R3…………………………………………………………………………………..33
Hình 3.4. Sơ đồ nguyên lý kết nối LCD 16x2 với Arduino R3…………………....34
Hình 3.5. Sơ đồ nguyên lý kết nối servo SG90 với Arduino R3…………………..35
Hình 3.6. Sơ đồ nguyên lý kết nối Step motor với Arduino R3……………….......35
Hình 3.7. Sơ đồ nguyên lý ngoại vi sử dụng……………………………………....36
Hình 3.8. Sơ đồ kết nối thẻ nhớ với Raspberry…………………………………....37
Hình 3.9. Sơ đồ chân Raspberry Pi 3+………………………………………….....38
Hình 3.10. Sơ đồ nguyên lí toàn hệ thống…………………………………………39
Hình 4.1. Sơ đồ bố trí thiết bị được đóng gói trong mô hình …………………......41
Hình 4.2. Hình ảnh vị trí các thiết bị được bố trí trên mô hình hệ thống………….42
Hình 4.3. Lưu đồ chương trình trên Raspberry…………………………………....42
Hình 4.4. Lưu đồ chương trình trên Arduino………………………………….......44
Hình 4.5. Lưu đồ chương trình đo khoảng cách của cảm biến siêu âm…………...46
Hình 4.6. Lưu đồ chương trình của timer2………………………………………...47
Hình 4.7. Phần mềm lập trình Arduino IDE…………………………………….....48
Hình 4.8. Giao diện chính của phần mềm Arduino IDE……………………….......49
Hình 4.9. Một đoạn code của chương trình Arduino………………………………49
Hình 4.10. Giao diện của Terminal khi thực hiện dòng lệnh………………………50
Hình 4.11. Giao diện output khi chưa có vỉ thuốc…………………………………50
Hình 5.1. Mô hình hệ thống mặt trên………………………………………………51
Hình 5.2: Mô hình của hệ thống mặt bên phải…………………………………......52
Hình 5.3: Mô hình của hệ thống mặt bên trái………………………………….......52
Hình 5.4. Đếm số thuốc con nhộng đúng chuẩn ( 2 viên)……………………...…..53
Hình 5.5. Đếm số thuốc màu gạch đúng chuẩn ( 6 viên) …………………….……53
Hình 5.6. Đếm số thuốc con nhộng đúng chuẩn ( 8 viên)……………………...…..53
Hình 5.7. Đếm số thuốc màu gạch đúng chuẩn ( 4 viên)……………………...…...54
Hình 5.8. Đếm số thuốc màu gạch đúng chuẩn ( 9 viên)..........................................54
Hình 5.9. Đếm đúng tại trường hợp không có viên thuốc nào trên vỉ……………..54
Hình 5.10. Đếm sai tại trường hợp thuốc nhộng có 3 viên thuốc……………...…..55
Hình 5.11. Đếm sai tại trường hợp thuốc gạch có 8 viên thuốc……………………55


ix


LIỆT KÊ BẢNG
Bảng

Trang

Bảng 3.1. Bảng thống kê dòng tiêu thụ của các thiết bị……………………………38
Bảng 5.1. Bảng giám sát đánh giá đếm số lượng viên thuốc ( thuốc tròn màu
cam)………………………………………………………………………………...57
Bảng 5.2. Bảng giám sát đánh giá đếm số lượng viên thuốc ( thuốc
nhộng)…………………………………………………………………………..….58

x


CHƯƠNG 1. TỔNG QUAN

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

ĐẶT VẤN ĐỀ
Thế giới đang trong làn sóng của cuộc cách mạng công nghiệp 4.0. Công

nghệ về điều khiển thông minh và điều khiển tự động cũng phát triển theo, chúng
được ứng dụng trong nhiều lĩnh vực trong công nghiệp và đời sống. Tự động hóa là
một nhân tố quan trọng trong quá trình công nghiệp hóa và hiện đại hóa. Nhờ có tự
động hóa trong công nghiệp, các nhà máy đã và đang trở nên hiệu quả hơn trong

việc sử dụng năng lượng, nguyên vật liệu và nguồn nhân lực. Tự động hóa trong
công nghiệp là việc sử dụng các hệ thống quản lý như máy tính, robot và công nghệ
thông tin để điều khiển các loại máy móc và quy trình sản xuất khác nhau trong
công nghiệp. Bên cạch đó Hệ Thống Nhúng là một phần không thể thiếu, đặc biệt
trong các hệ thống điều khiển, với những tính năng thích ứng với môi trường công
nghiệp và giá thành rẻ. Do đó, nhóm chúng tôi chọn hướng nghiên cứu, ứng dụng
Xử lí ảnh trong hệ thống nhúng vào dây chuyền sản xuất trong Dược.
Ứng dụng tự động hóa vào sản xuất Dược là một lĩnh vực còn khá mới mẻ,
một trong những yêu cầu nghiêm ngặt trong một mô hình sản xuất Dược là môi
trường vô trùng nên việc giảm sự có mặt của con người tham gia vào dây chuyền
sản xuất là một trong những bài toán đang được giải quyết. Nhận thấy điều đó thì
nhóm chúng tôi đã nghiên cứu và thi công hệ thống có thể tự động loại bỏ những vỉ
thuốc lỗi sau khi ép vỉ để giảm bớt nhân công phải phân loại sau khi thành phẩm.
Để giải quyết vấn đề đó một trong những giải pháp tối ưu nhất là dùng công nghệ
xử lý ảnh, với công nghệ xử lý ảnh hiện nay và tốc độ xử lý cao là thể đáp ứng
được.
Để đáp ứng nhu cầu thực tế trên giúp cho hệ thống của nhà máy ngày càng
được tối ưu và muốn ứng dụng những kiến thức đã học vào thực tiễn. Được sự giới
thiệu của bộ môn và cùng với sự hỗ trợ từ GVHD. Nhận thấy sự mới mẻ và cần
thiết của mô hình nên nhóm chúng tôi quyết định chọn đề tài “ĐẾM SỐ LƯỢNG
VIÊN THUỐC CÓ TRONG VỈ THUỐC” để nghiên cứu và thực hiện đề tài tốt
nghiệp.

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

1


CHƯƠNG 1. TỔNG QUAN


1.2.

MỤC TIÊU
Mục tiêu của đề tài là thực hiện đếm chính xác số viên thuốc có trong vỉ

thuốc để phân loại vỉ thuốc lỗi dùng Board Raspberry Pi 3B+. Dùng phương pháp
xử lí ảnh với dữ liệu được lấy từ camera. Từ đó những mục tiêu được đặt ra trong
đề tài là:


Thiết kế được mô hình băng chuyền.



Thiết kế buồng sáng.



Thiết kế giao tiếp giữa Arduino với Raspberry.



Thiết kế được cần gạt thuốc lỗi.

1.3.

NỘI DUNG NGHIÊN CỨU

 Thiết kế và thi công hệ thống gồm băng chuyền, buồng sáng, cần gạt...
 Lắp rắp các khối điều khiển vào hệ thống.

 Chạy thử nghiệm hệ thống.
 Cân chỉnh hệ thống.
 Viết sách đồ án.
 Báo cáo đề tài tốt nghiệp.

1.4.

GIỚI HẠN



Hệ thống gồm băng chuyền, camera, cảm biến, cần gạt, lcd hiển thị.



Trong môi trường có ánh sáng cố định, phụ thuộc vào tốc độ băng chuyền.



Đếm được 2 – 4 loại thuốc nhất định.



Mô hình chỉ đếm được 1 loại thuốc trước khi đếm loại tiếp theo ở một
khoảng thời gian nhất định.

1.5.

BỐ CỤC
Chương 1: Tổng Quan

Chương này trình bày lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các

giới hạn và bố cục đồ án.
Chương 2: Cơ Sở Lý Thuyết.
Chương này trình bày về xử lý ảnh, giới thiệu ngôn ngữ Python và thư viện
OpenCv, nguyên lý hoạt động của hệ thống qua hai phương pháp, giới thiệu các
chuẩn giao tiếp được sử dụng trong hệ thống, giới thiệu phần cứng.
Chương 3: Thiết Kế và Tính toán
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

2


CHƯƠNG 1. TỔNG QUAN
Ở chương này chúng em trình bày về: thiết kế sơ đồ khối cho hệ thống, tính
toán thiết kế cho từng khối, sơ đồ nguyên lý của toàn mạch, thiết kế buồng sáng.
Chương 4: Thi công hệ thống
Chương này trình bày sơ đồ: mạch in, các linh kiện sử dụng trong mạch, thi
công mô hình, lập trình hệ thống, viết lưu đồ giải thuật, viết tài liệu hướng dẫn sử
dụng thao tác.
Chương 5: Kết Quả, Nhận Xét và Đánh Giá
Chương này trình bày kết quả của quá trình nghiên cứu, nếu ra những khó
khăn trong quá trình làm và cách khắc phục, nhận xét mô hình đã làm có đạt hay
không.
Chương 6: Kết Luận và Hướng Phát Triển
Chương này trình bày: đánh giá mô hình hoạt động ổn hay không, đạt bao
nhiêu phần trăm so với ban đầu đặt ra.

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.

TỔNG QUAN VỀ XỬ LÍ ẢNH

2.1.4. Giới thiệu về xử lý ảnh
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 so với nhiều ngành khoa học khác nhưng tốc độ phát triển
đang 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ó.
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. Hiện nay xử lý ảnh được ứng dụng trong nhiều lĩnh vực: Chính trị, y tế, giáo
dục... Xử lý tín hiệu là một môn học trong kỹ thuật điện tử, viễn thông và trong toán
học. Nghiên cứu và xử lý tín hiệu kỹ thuật số và analog, giải quyết các vấn đề về lưu
trữ, các thành phần bộ lọc, các hoạt động khác trên tín hiệu… Các tín hiệu này bao
gồm truyền dẫn tín hiệu, âm thanh hoặc giọng nói, hình ảnh, và các tín hiệu khác.
Cũng như xử lý dữ liệu bằng đồ hoạ, xử lý ảnh số là một lĩnh vực của tin học
ứng dụng. Xử lý dữ liệu bằng đồ họa đề cập đến những ảnh nhân tạo, các ảnh này
được xem xét như là một cấu trúc dữ liệu và được tạo bởi các chương trình. Xử lý
ảnh số bao gồm các phương pháp và kỹ thuật biến đổi, để truyền tải hoặc mã hoá
các ảnh tự nhiên. Mục đích của xử lý ảnh gồm:



Biến đổi ảnh làm tăng chất lượng ảnh.



Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh.
Trong số các phương pháp xử lý tín hiệu kể trên, lĩnh vực giải quyết với các

loại tín hiệu mà đầu vào là một hình ảnh và đầu ra cũng là một hình ảnh, sản phẩm
đầu ra được thực hiện trong một quá trình xử lý, đó chính là quá trình xử lý ảnh. Nó
có thể được chia thành xử lý hình ảnh tương tự và xử lý hình ảnh kỹ thuật số. Để 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) 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.[1]

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

4


CHƯƠNG 2. CƠ SỞ LÍ THUYẾT
2.1.5. Các bước cơ bản trong xử lý ảnh

Thu nhận ảnh

Tiền xử lý ảnh

Phân đoạn ảnh

Biểu diễn ảnh


Nhận dạng ảnh

Hình 2.1. Các bước cơ bản trong xử lí ảnh.
Phần thu nhận ảnh (Image Acquisition): Ảnh có thể nhận qua camera màu
hoặc đen trắng. Thường ảnh nhận qua camera là ảnh tương tự (loại camera ống
chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dòng), cũng có loại camera đã số hoá (như
loại CCD – Change Coupled Device) là loại photodiot tạo cường độ sáng tại mỗi
điểm ảnh. Camera thường dùng là loại quét dòng; ảnh tạo ra có dạng hai chiều. Chất
lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng,
phong cảnh).
Tiền xử lý (Image Processing): Sau bộ thu nhận, ảnh có thể nhiễu độ tương
phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng. Chức năng chính
của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn.
Phân đoạn ảnh: Phân đoạn ảnh là tách một ảnh đầu vào thành các vùng
thành phần để biểu diễn phân tích, nhận dạng ảnh. Đây là phần phức tạp khó khăn
nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh. Kết quả
nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này.
Biểu diễn ảnh: Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh
(ảnh đã phân đoạn) cộng với mã liên kết với các vùng lận cận. Việc biến đổi các số
liệu này thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính. Việc
chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection)
gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm
cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận
được. Ví dụ: trong nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các đặc
trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác.
Nhận dạng và nội suy ảnh: Nhận dạng ảnh là quá trình xác định ảnh. Quá
trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu)
từ trước. Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng. Ví dụ: một loạt
chữ số và nét gạch ngang trên phong bì thư có thể được nội suy thành mã điện thoại.
Có nhiều cách phân loại ảnh khác nhau về ảnh. Theo lý thuyết về nhận dạng, các

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

5


CHƯƠNG 2. CƠ SỞ LÍ THUYẾT
mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản:


Nhận dạng theo tham số.



Nhận dạng theo cấu trúc.
Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong

khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử),
nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt
người…
Cơ sở tri thức: Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về
đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo
theo nhiễu. Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các
phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước
quy trình tiếp nhận và xử lý ảnh theo cách của con người. Trong các bước xử lý đó,
nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người. Vì vậy, ở đây
các cơ sở tri thức được phát huy.
2.1.6. Không gian màu
Không gian màu là một mô hình toán học dùng để mô tả các màu sắc trong
thực tế được biểu diễn dưới dạng số học. Trên thực tế có rất nhiều không gian màu
khác nhau được mô hình để sử dụng vào những mục đích khác nhau. Trong bài này

ta sẽ tìm hiểu qua về ba không gian màu cơ bản hay được nhắc tới và ứng dụng
nhiều, đó là hệ không gian màu RGB và HSV.
2.1.6.1.

Mô hình màu RGB

Mô hình màu RGB sử dụng mô hình bổ sung trong đó ánh sáng đỏ, xanh lá
cây và xanh lam được tổ hợp với nhau theo nhiều phương thức khác nhau.

Hình 2.2. Mô hình màu RGB
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

6


CHƯƠNG 2. CƠ SỞ LÍ THUYẾT
để tạo thành các màu khác. Từ viết tắt RGB trong tiếng Anh có nghĩa là đỏ (red),
xanh lá cây (green) và xanh lam (blue), là ba màu gốc trong các mô hình ánh sáng
bổ sung.
Cũng lưu ý rằng mô hình màu RGB tự bản thân nó không định nghĩa thế nào
là “đỏ”, “xanh lá cây” và “xanh lam” một cách chính xác, vì thế với cùng các giá trị
như nhau của RGB có thể mô tả các màu tương đối khác nhau trên các thiết bị khác
nhau có cùng một mô hình màu. Trong khi chúng cùng chia sẻ một mô hình màu
chung, không gian màu thực sự của chúng là dao động một cách đáng kể.

Hình 2.3. Ba kênh màu RGB riêng biệt
RGB là không gian màu rất phổ biến được dùng trong đồ họa máy tính và
nhiều thiết bị kĩ thuật số khác. Ý tưởng chính của không gian màu này là sự kết hợp
của 3 màu sắc cơ bản : màu đỏ (R, Red), xanh lục (G, Green) và xanh lơ (B, Blue)
để mô tả tất cả các màu sắc khác.

Nếu như một ảnh số được mã hóa bằng 24bit, nghĩa là 8bit cho kênh R, 8bit
cho kênh G, 8bit cho kênh B, thì mỗ kênh này màu này sẽ nhận giá trị từ 0-255. Với
mỗi giá trị khác nhau của các kênh màu kết hợp với nhau ta sẽ được một màu khác
nhau, như vậy ta sẽ có tổng cộng 255x255x255 = 1.66 triệu màu sắc.
Ví dụ: màu đen là sự kết hợp của các kênh màu (R, G, B) với giá trị tương
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

7


CHƯƠNG 2. CƠ SỞ LÍ THUYẾT
ứng (0, 0, 0) màu trắng có giá trị (255, 255, 255), màu vàng có giá trị (255, 255, 0),
màu tím đậm có giá trị (64, 0, 128) ...Nếu ta dùng 16bit để mã hóa một kênh màu
(48bit cho toàn bộ 3 kênh màu) thì dãi màu sẽ trãi rộng lên tới 3×216 = ... Một con
số rất lớn.
2.1.6.2.

Không gian màu HSV

Hình 2.4. Hình tròn màu sắc HSV
HSV là không gian màu được dùng nhiều trong việc chỉnh sửa ảnh, phân tích
ảnh và một phần của lĩnh vực thị giác máy tính. Hệ không gian này dựa vào 3 thông
số sau để mô tả màu sắc
H = Hue: màu sắc.
S = Saturation: độ đậm đặc, sự bảo hòa.
V = value: giá trị cường độ sáng.
2.1.6.3.

Cách chuyển từ không gian màu RGB sang không gian màu HSV.


Các giá trị R, G, B được chia cho 255 để thay đổi phạm vi từ 0..255 thành
0..1:
R' = R/255
G' = G/255
B' = B/255
Cmax = max(R', G', B')
Cmin = min(R', G', B')
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

8


CHƯƠNG 2. CƠ SỞ LÍ THUYẾT
Δ = Cmax – Cmin
Cách tính Hue:

Cách tính Saturation:

Cách tính value:

V = Cmax
2.1.7. Xử lý hình thái học (Morphology)
Hình thái học toán học (Mathematical morphology) là một lý thuyết và kỹ
thuật để phân tích và xử lý cấu trúc hình học, dựa trên lý thuyết tập hợp, lý thuyết
lưới, cấu trúc liên kết và chức năng ngẫu nhiên. Hình thái học toán học phổ biến
nhất được áp dụng cho hình ảnh kỹ thuật số. Ngoài ra hình thái học toán học nó có
thể được sử dụng là tốt trên đồ thị, bề mặt mắt lưới, chất rắn, và nhiều các cấu trúc
không gian khác.
Hình thái học toán học đã được phát triển cho hình ảnh nhị phân, và sau đó
được mở rộng cho ảnh đa mức xám (Image Grayscale), Đây là một trong những kỹ

thuật được áp dụng trong giai đoạn tiền xử lý. Hai phép toán thường dùng là phép
giãn nở (Dilation) và phép co (Erosion) .Từ hai phép toán cơ bản này người ta phát
triển thành một số phép toán như phép đóng (Closing) và phép mở (Opening).
 Dilation gọi là D(i): giãn nở.
 Erosion gọi là E(i): co.
 Một chu trình E(i)-D(i) gọi là phép mở (Opening).
 Một chu trình D(i)-E(i) gọi là phép đóng (Closing).

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

9


CHƯƠNG 2. CƠ SỞ LÍ THUYẾT
2.1.7.1.

Phép toán giản nở

Hình 2.5. Ảnh gốc và ảnh sau khi dùng phép giản nở
Công thức: 𝐀 ⊕ 𝐁 = {𝐜|𝐜 = 𝐚 + 𝐛, 𝐚 ∈ 𝐀, 𝐛 ∈ 𝐁
Là một trong các hoạt động cơ bản trong hình thái toán học. Phép toàn này
có tác dụng làm cho đối tượng ban đầu trong ảnh tăng lên về kích thước (Giãn nở
ra).
2.1.7.2.

Phép toán co(Erosion)

Hình 2.6. Ảnh gốc và ảnh sau khi dùng phép co
Công thức: 𝐀 ⊖ 𝐁 = {𝐜|(𝐁)𝐜 ⊆ 𝐀}
Phép toán co (Erosion) là một trong hai hoạt động cơ bản (khác phép giãn

nở) trong hình thái học có ứng dụng trong việc giảm kích thước của đối tượng, tách
rời các đối tượng gần nhau, làm mảnh và tìm xương của đối tượng.
2.1.7.3.

Phép toán mở (Opening)

Phép toán mở (Opening) và phép toán đóng (Closing) là sự kết hợp của phép
co (Erosion) và phép giãn nở (Dilation) như trên.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

10


CHƯƠNG 2. CƠ SỞ LÍ THUYẾT

Hình 2.7. Ảnh gốc và ảnh sau khi dùng phép mở
Công thức:

𝐀 𝚶 𝐁 = (𝐀 ⊝ 𝐁)⨁𝐁

Thực hiện phép co (Erosion) trước sau đó mới thực hiện phép giãn nở
(Dilation).
Phép toán mở (Opening) được ứng dụng trong việc loại bỏ các phần lồi lõm
và làm cho đường bao các đối tượng trong ảnh trở nên mượt mà hơn.
2.1.7.4.

Phép toán đóng (Closing)

Hình 2.8. Ảnh gốc và ảnh sau khi dùng phép đóng
Công thức:


A∎B = (A⨁𝐁) ⊝ 𝐁

Thực hiện phép giãn nở (Dilation) trước sau đó mới thực hiện phép co
(Erosion).
Phép toán đóng (Closing) được dùng trong ứng dụng làm trơn đường bao các
đối tượng, lấp đầy các khoảng trống biên và loại bỏ những hố nhỏ.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

11


CHƯƠNG 2. CƠ SỞ LÍ THUYẾT
2.1.8. Cách vẽ đường viền.
Đường viền có thể được giải thích đơn giản là một đường cong nối tất cả các
điểm liên tục (dọc theo đường biên), có cùng màu hoặc cường độ. Các đường viền
là một công cụ hữu ích để phân tích hình dạng và phát hiện và nhận dạng đối tượng.
Trong OpenCV, tìm đường viền cũng giống như tìm đối tượng màu trắng từ
nền đen. Vì vậy, đối tượng được tìm thấy nên có màu trắng và nền nên có màu đen.

2.2.

NGÔN NGỮ PYTHON VÀ THƯ VIỆN OPENCV
Trước tiên để Raspberry hoạt động thì ta phải cài hệ điều hành cho nó, chúng

em chọn hệ điều hành Raspbian để cài đặt cho Raspberry thông qua thẻ nhở SD
32GB.
2.2.1. Hệ điều hành Raspbian
Đây là hệ điều hành cơ bản, phổ biến nhất và do chính Raspberry Pi
Foundation cung cấp. Nó cũng được hãng khuyến cáo sử dụng, nhất là cho người

mới bắt đầu làm quen với RPI. Raspbian có dung lượng sau khi giải nén là khoảng
gần 4GB, bạn cần tối thiểu 1 cái thẻ 4GB để có thể sử dụng Raspbian. Tuy nhiên,
chúng tôi nghĩ bạn nên sử dụng thẻ tối thiểu 8GB vì bạn cần cài thêm các ứng dụng
khác nữa.
Raspbian được hướng đến người dùng có mục đích:
 Sử dụng Raspberry Pi như máy tính văn phòng để lướt web, soạn văn bản,
check mail và thi thoảng nghe nhạc/xem phim.
 Nghiên cứu phát triển các thiết bị điều khiển tự động.
 Sử dụng như một máy chủ cung cấp các dịch vụ như web, file server, printer
server,... Sau khi cài xong thì giao diện của Raspberry như hình:[5]

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

12


CHƯƠNG 2. CƠ SỞ LÍ THUYẾT

Hình 2.9. Giao diện của Raspberry chạy hệ điều hành Raspbian

Hình 2.10. Cửa sổ cho phép hoạt động các chuẩn giao tiếp
2.2.2. Ngôn ngữ Python:
Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa
năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được
thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngôn ngữ có hình
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

13



CHƯƠNG 2. CƠ SỞ LÍ THUYẾT
thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc
của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu.
Python là một ngôn ngữ lập trình được sử dụng phổ biến ngày nay từ trong
môi trường học đường cho tới các dự án lớn. Ngôn ngữ phát triển nhiều loại ứng
dụng, phần mềm khác nhau như các chương trình chạy trên desktop, server, lập
trình các ứng dụng web... Ngoài ra Python cũng là ngôn ngữ ưa thích trong xây
dựng các chương trình trí tuệ nhân tạo trong đó bao gồm machine learning. Ban đầu,
Python được phát triển để chạy trên nền Unix, nhưng sau này, nó đã chạy trên mọi hệ
điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành
khác thuộc họ Unix.
Python do Guido van Rossum tạo ra năm 1990. Python được phát triển trong
một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý.
Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido
van Rossum hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt
trong việc quyết định hướng phát triển của Python.
Qua nhiều năm phát triển thì có nhiều phiên bản: Python 1, Python 2, Python
3.
Nhóm em sử dụng phiên bản Python 3.5.7 để viết chương trình .
Giới thiệu ngôn ngữ Python

Hình 2.11. Phần mềm Python
Đặc Điểm Nổi Bật Của Python
Python là ngôn ngữ có hình thức đơn giản, cú pháp ngắn gọn, sử dụng một
số lượng ít các từ khoá, do đó Python là một ngôn ngữ dễ học đối với người mới bắt
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

14



CHƯƠNG 2. CƠ SỞ LÍ THUYẾT
đầu tìm hiểu. Python là ngôn ngữ có mã lệnh (source code hay đơn giản là code)
không mấy phức tạp. Cả trường hợp bạn chưa biết gì về Python bạn cũng có thể suy
đoán được ý nghĩa của từng dòng lệnh trong source code.
Python có nhiều ứng dụng trên nhiều nền tảng, chương trình phần mềm viết
bằng ngôn ngữ Python có thể được chạy trên nhiều nền tảng hệ điều hành khác nhau
bao gồm Windows, Mac OSX và Linux.
2.2.3. Thư viện OpenCV
2.2.3.1.

Giới thiệu OpenCV

OpenCV (Open Source Computer Vision Library) là một thư viện mã nguồn
mở, nó là miễn phí cho những ai bắt đầu tiếp cận với các học thuật. OpenCV được
ứng dụng trong nhiều lĩnh vực như cho thị giác máy tính hay xử lý ảnh và máy học.
Thư viện được lập trình trên các ngôn ngữ cấp cao: C++, C, Python, hay Java và hỗ
trợ trên các nền tảng Window, Linux, Mac OS, iOS và Android. OpenCV đã được
tạo ra tại Intel vào năm 1999 bởi Gary Bradsky, và ra mắt vào năm 2000. Opencv
có rất nhiều ứng dụng: Nhận dạng ảnh, xử lý hình ảnh, phục hồi hình ảnh/video,
thực tế ảo,… Ở đề tài này thư viện OpenCV được chạy trên ngôn ngữ Python.
OpenCV được dùng làm thư viện chính để xử lý hình ảnh đầu vào và sau đó đi nhận
dạng ảnh.
2.2.3.2.

Đặc điểm OpenCV

OpenCV Là một thư viện mở nên sử dụng các thuật toán một cách miễn phí,
cùng với việc chúng ta cũng có thể đóng góp thêm các thuật toán giúp Thư viện
thêm ngày càng phát triển.
Một số ứng dụng nổi bật Opencv như: Nhận dạng ảnh, Xử lý hình ảnh, Phục

hồi hình ảnh/video, Thực tế ảo, ứng dụng trong Machine Learning…
Các tính năng của thư viện OpenCV:
 Đối với hình ảnh, chúng ta có thể đọc và lưu hay ghi chúng.
 Về Video cũng tương tự như hình ảnh cũng có đọc và ghi.
 Xử lý hình ảnh có thể lọc nhiễu cho ảnh, hay chuyển đổi ảnh.
 Thực hiện nhận dạng đặc điểm của hình dạng trong ảnh.
 Phát hiện các đối tượng xác định được xác định trước như khuôn mặt,
mắt, xe trong video hoặc hình ảnh.[3]
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

15


CHƯƠNG 2. CƠ SỞ LÍ THUYẾT

2.3.

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

 Thiết bị đầu vào: bàn phím, chuột, màn hình Desktop, Camera.
 Thiết bị đầu ra: LCD 20x4, step motor 5V, dây led trắng, Arduino Uno
R3, servo SG90
 Thiết bị điều khiển trung tâm là máy tính.
 Các chuẩn truyền dữ liệu UART, SPI, I2C, PWM
 Thiết bị lưu trữ bộ nhớ RAM, ROM, thẻ nhớ.
2.3.1. Giới thiệu chuẩn giao tiếp UART
Có nhiều kiểu truyền dữ liệu phổ biến tích hợp trong các họ vi điều khiển
bao gồm: Truyền dữ liệu nối tiếp đồng bộ và bất đồng bộ (USART Universal
Synchronous Asynchronous Receiver and Transmitter).
Truyền dữ liệu giữa các vi điều khiển với các thiết bị ngoại vi (SPI Serial

Peripheral Interface). Truyền dữ liệu 2 dây (I2C: Inter-Integrated Circuit). Ở kiểu
truyền nối tiếp đồng bộ thì có 1 đường dữ liệu và 1 đường xung clock, thiết bị nào
cấp xung clock thì thiết bị đóng vai trò là chủ, thiết bị nhận xung clock đóng vai trò
là tớ, tốc độ truyền dữ liệu phụ thuộc vào tần số xung clock. Ở kiểu truyền nối tiếp
bất đồng bộ thì có 1 đường phát dữ liệu và 1 đường nhận dữ liệu, không còn tín hiệu
xung clock nên gọi là bất đồng bộ. Để truyền được dữ liệu thì cả bên phát và bên
nhận phải tự tạo xung clock có cùng tần số và thường gọi là tốc độ truyền dữ liệu
(baud), ví dụ 2400baud, 4800baud, …, 2400baud có nghĩa là truyền 2400 bit trên 1
giây.
Truyền dữ liệu đồng bộ gồm các đường truyền dữ liệu (DT) và tín hiệu xung
clock (CK) – chức năng của CK dùng để dịch chuyển dữ liệu, mỗi 1 xung ck là 1 bit
dữ liệu được truyền đi. Trong hệ thống truyền dữ liệu đồng bộ, hệ thống nào cung
cấp xung CK thì đóng vai trò là master (chủ) – những hệ thống còn lại nhận xung ck
đóng vai trò là slave (tớ). Tốc độ truyền dữ liệu chính là tốc độ của xung ck – chính
là tần số xung ck. [2]
2.3.2. Raspberry Pi 3 Model B
Raspberry Pi là một máy tính mini giá rẻ, một single-board đa chức năng,
cho phép những người yêu thích công nghệ trên thế giới xây dựng những ứng dụng
của riêng mình một cách dễ dàng hơn bao giờ hết.
Raspberry Pi ra đời với mục đích mang kiến thức khoa học máy tính và điện
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

16


×