1. Trang chủ
  2. » Giáo Dục - Đào Tạo

thiết kế mô hình phân loại sản phẩm bằng xử lý ảnh sử dụng ngôn ngữ python trên raspberry pi4

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

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

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

THÔNG TIN TÀI LIỆU

Nội dung

Phạm vi, đối tượng nghiên cứu: - Đối tượng: Thiết kế mô hình phân loại sản phẩm bằng xử lý ảnh sử dụng ngôn ngữ Python trên Raspberry Pi 4 - Phạm vi nghiên cứu: + Hiểu rõ về đối tượng n

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA ĐIỆN – ĐIỆN TỬ

ĐỒ ÁN TỐT NGHIỆP

ĐẠI HỌC NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN

THÔNG CHUYÊN NGÀNH: VIỄN THÔNG

ĐỀ TÀI: THIẾT KẾ MÔ HÌNH PHÂN LOẠI SẢN PHẨM

BẰNG XỬ LÝ ẢNH SỬ DỤNG NGÔN NGỮ

PYTHON TRÊN RASPBERRY PI4

Người hướng dẫn: ThS Trần Duy Chung Sinh viên thực hiện: Trần Khương Đạt Mã sinh viên: 1911505410111 Sinh viên thực hiện: Lê Phúc Tân Mã sinh viên: 1911505410152 Lớp: 19DT1

Trang 2

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA ĐIỆN – ĐIỆN TỬ

ĐỒ ÁN TỐT NGHIỆP

ĐẠI HỌC NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN

THÔNG CHUYÊN NGÀNH: VIỄN THÔNG

ĐỀ TÀI: THIẾT KẾ MÔ HÌNH PHÂN LOẠI SẢN PHẨM

BẰNG XỬ LÝ ẢNH SỬ DỤNG NGÔN NGỮ

PYTHON TRÊN RASPBERRY PI4

Người hướng dẫn: ThS Trần Duy Chung Sinh viên thực hiện: Trần Khương Đạt Mã sinh viên: 1911505410111 Sinh viên thực hiện: Lê Phúc Tân Mã sinh viên: 1911505410152 Lớp: 19DT1

Đà Nẵng, 12/2023

Trang 3

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Trang 4

NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN

Trang 5

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ

THUẬT

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA

VIỆT NAM KHOA ĐIỆN - ĐIỆN TỬ Độc lập – Tự do – Hạnh phúc

ĐỀ CƯƠNG ĐỒ ÁN TỐT NGHIỆP

1 Họ và tên sinh viên: Trần Khương Đạt

Lê Phúc Tân 2 Mã sinh viên: 1911505410111 Lớp: 19DT1 1911505410152 Lớp: 19DT1 3 Giảng viên hướng dẫn: ThS Trần Duy Chung

4 Đề tài:

Tên đề tài: “THIẾT KẾ MÔ HÌNH PHÂN LOẠI SẢN PHẨM BẰNG XỬ LÝ ẢNH SỬ

DỤNG NGÔN NGỮ PYTHON TRÊN RASPBERRY PI 4”

Thời gian thực hiện: Từ ngày: 30/08/2023 đến ngày: 31/12/2023

5 Mô tả đề tài

Ngày nay cùng với sự phát triển của các ngành khoa học kỹ thuật, kỹ thuật điện- điện tử và điều khiển tự động đóng vai trò hết sức quan trọng trong mọi lĩnh vực khoa học, quản lý, công nghiệp tự động hóa, cung cấp thông tin… Do đó chúng ta phải nắm bắt và vận dụng nó một cách có hiệu quả nhằm góp phần vào sự nghiệp phát triển nền khoa học kỹ thuật thế giới nói chung và trong sự phát triển kỹ thuật điều khiển tự động nói riêng Với những kỹ thuật tiên tiến như vi xử lý, PLC, vi mạch số… được ứng dụng vào lĩnh vực điều khiển, thì các hệ thống điều khiển thô sơ, với tốc độ xử lý chậm chạp ít chính xác được thay thế bằng các hệ thống điều khiển tự động với các lệnh chương trình đã được thiết lập trước

Trong quá trình hoạt động ở các nhà xưởng, xí nghiệp hiện nay, việc tiết kiệm điện năng là nhu cầu rất cần thiết, bên cạnh đó ngành công nghiệp ngày càng phát triển các công ty xí nghiệp đã đưa tự động hóa và sản xuất để tiện ích cho việc quản lý dây chuyền và sản phẩm cho toàn bộ hệ thống một cách hợp lý là yêu cầu thiết yếu, tiết kiệm được nhiều thời gian cũng như quản lý một cách dễ dàng Để đáp ứng yêu cầu đó,chúng

Trang 6

em đã tiến hành nghiên cứu tài liệu, thiết kế mô hình phân loại sản phẩm bằng xử lý ảnh sử dụng ngôn ngữ Python trên Raspberry Pi4

Những lợi ích mà hệ thống phân loại sản phẩm có thể đem lại cho chúng ta là rất lớn, cụ thể như:

- Giảm sức lao động, tránh được sự nhàm chán trong công việc, cải thiện được điều kiện làm việc của con người, tạo cho người lao động tiếp cận với sự tiến bộ của khoa học kỹ thuật và được làm việc trong môi trường ngày càng tốt hơn

- Nâng cao năng suất lao động, tạo tiền đề cho việc giảm giá thành sản phẩm, cũng như thay đổi mẫu mã một cách nhanh chóng và khoa học

- Giúp cho việc quản lý và giám sát trở nên rất đơn giản, bởi vì nó không những thay đổi điều kiện làm việc của công nhân mà còn có thể giảm số lượng công nhân đến mức tối đa…

- Từ những kiến thức tìm hiểu được thiết kế mô hình tối ưu nhất trong khả năng

7 Phạm vi, đối tượng nghiên cứu:

- Đối tượng: Thiết kế mô hình phân loại sản phẩm bằng xử lý ảnh sử dụng ngôn ngữ Python trên Raspberry Pi 4

- Phạm vi nghiên cứu: + Hiểu rõ về đối tượng nghiên cứu: Đối tượng nghiên cứu chính là bản chất thực tế của một sự vật, sự việc hoặc hiện tượng cần cân nhắc và làm rõ trong nhiệm vụ nghiên cứu Trong trường hợp này, đối tượng nghiên cứu là hệ thống phân loại sản phẩm sử dụng công cụ xử lý ảnh

+ Phương pháp nghiên cứu: Tìm hiểu về các phương pháp xử lý ảnh, các thuật toán phân loại, và cách lập trình bằng ngôn ngữ Python trên Raspberry Pi4

Trang 7

+ Thực hiện và kiểm tra: Việc xây dựng mô hình thực tế, thực hiện các thử nghiệm để kiểm tra hiệu suất và độ chính xác của mô hình

+ Ứng dụng thực tế: Nghiên cứu về các khả năng ứng dụng của mô hình trong thực tế, ví dụ như trong các nhà máy sản xuất, kho hàng, vv

+ Đánh giá và cải tiến: Dựa trên kết quả thử nghiệm, đánh giá hiệu suất của mô hình và tìm kiếm các phương pháp để cải tiến mô hình

8 Kết quả dự kiến đạt được :

Hoàn thành sản phẩm có thể giám sát đo được các tham số các yêu cầu đặt ra

9 Tiến độ thực hiện TT Thời gian Nội dung công việc Kết quả dự kiến đạt được

1 Tuần 1

Lên ý tưởng cho đề tài Tìm hiểu và chọn đề tài lên kế hoạch chi tiết

Lựa chọn được đề tài

2 Tuần 2 Chọn đề tài và ghi đề cương

nhiệm vụ của đề tài

Hoàn thành đề cương nhiệm vụ đề tài nộp GVHD

3 Tuần 3

Tìm hiểu các đề tài và xây dựng thiết kế mô hình phân loại sản phẩm bằng xử lý ảnh sử dụng ngôn ngữ Python trên Raspberry Pi4

Hiểu được cách thức thực hiện đề tài, nguyên lý hoạt động

4 Tuần 4 Gặp GVHD để báo cáo về hướng thực hiện đề tài Hiểu được hướng cần tìm hiểu

và thực hiện

5 Tuần 5

Tìm hiểu về Raspberry, cách kết nối và các thiết bị được chọn

Tìm hiểu về ngôn ngữ lập trình Python

Biết cách kết nối raspberry với các thiết bị Thực hành lệnh cơ bản python

6 Tuần 6 Nghiên cứu thiết kế chế tạo

phần cứng

Thiết kế hộp đựng thiết bị

7 Tuần 7 Lập trình điều khiển Kết nối thiết bị và lập trình

thử nghiệm

Trang 8

8 Tuần 8 Lập trình điều khiển giao tiếp

về phần cứng

Lập trình kết nối cảm biến và điều khiển thiết bị

9 Tuần 9 Lập trình điều khiển , lắp ráp

linh kiện

Hoàn thiện lập trình 10 Tuần 10 Sắp xếp bố trí cho hợp lí Viết báo cáo

11 Tuần 11 Báo cáo tiến độ cho GVHD

Hoàn thiện mô hình Bàn giao tiến độ với GVHD 12 Tuần 12 Viết báo cáo Viết báo cáo theo qui định và

các công việc đã làm 13 Tuần 13 Kiểm tra hoạt động của hệ thống Thử nghiệm mô hình chỉnh

sửa hoàn thiện mô hình 14 Tuần 14 Hoàn tất báo cáo

Khắc phục các sự cố Xong báo cáo, mô hình

15 Tuần 15

Vá lỗi các sự cố nếu có Hoàn thiện chỉnh chu báo cáo, chuẩn bị gặp GVPB và bảo vệ

In báo cáo và bảo vệ

Đà Nẵng, ngày tháng năm 2023 BỘ MÔN DUYỆT NGƯỜI HƯỚNG DẪN SINH VIÊN

ThS Trần Duy Chung

Trang 9

TÓM TẮT Tên đề tài: Thiết kế mô hình phân loại sản phẩm bằng xử lý ảnh sử dụng ngôn ngữ Python trên Raspberry Pi 4

Sinh viên thực hiện: Trần Khương Đạt Mã SV: 1911505410111 Lớp: 19DT1

Lê Phúc Tân Mã SV: 1911505410152 Lớp: 19DT1

Trong quá trình hoạt động ở các nhà xưởng, xí nghiệp hiện nay, việc tiết kiệm điện năng là nhu cầu rất cần thiết, bên cạnh đó ngành công nghiệp ngày càng phát triển các công ty xí nghiệp đã đưa tự động hóa và sản xuất để tiện ích cho việc quản lý dây chuyền và sản phẩm cho toàn bộ hệ thống một cách hợp lý là yêu cầu thiết yếu, tiết kiệm được nhiều thời gian cũng như quản lý một cách dễ dàng Để đáp ứng nhu cầu đó,chúng em đã tiến hành nghiên cứu tài liệu và thực hiện đề tài “THIẾT KẾ MÔ HÌNH PHÂN LOẠI SẢN PHẨM BẰNG XỬ LÝ ẢNH SỬ DỤNG NGÔN NGỮ PYTHON TRÊN RASPBERRY PI 4” để phân loại vỉ thuốc ứng dụng xử lý ảnh dùng thư viện mã nguồn mở OpenCV viết trên ngôn ngữ Python Dây chuyền có thể phân loại các vỉ thuốc đủ hay thiếu và sự sai lệch màu sắc của các loại thuốc so với hình ảnh mẫu Toàn bộ thông số của dây chuyền này có thể cài đặt và giám sát qua giao diện Raspberry Pi

Kết quả đạt được của hệ thống sẽ thiết kế được hệ thống phân loại sản phẩm với mục đích giám sát, xử lý và điều khiển một cách thông minh giúp hoạt động sản xuất dược phẩm một cách nhanh chóng và dễ dàng, phát hiện nhanh các lỗi trong quá trình sản xuất, giảm bớt thời gian thực hiện thủ công

Nội dung mà nhóm thực hiện bao gồm: Nghiên cứu một cách tổng quan, tìm hiểu các mô hình phân loại sản phẩm có sẵn theo đó có thể chọn các thiết bị phù hợp cho mô hình; Tập trung khai thác cơ sở lý thuyết để thiết kế và xây dựng được phần mềm, phần cứng Sau đó kiểm tra kết nối phần cứng và phầm mềm để chạy thử nghiệm, hoàn thiện và kết nối tất cả thành một hệ thống có thể thao tác điều khiển toàn bộ thiết bị phần cứng trên một giao diện phần mềm

Trang 10

LỜI NÓI ĐẦU

Trước hết, chúng em muốn bày tỏ lòng biết ơn chân thành đến thầy Trần Duy

Chung, người đã đồng hành và hỗ trợ chúng em một cách cụ thể suốt quá trình thực hiện

đề tài Thầy không chỉ là người hướng dẫn mà còn luôn sẵn sàng giải đáp mọi thắc mắc, chỉ ra những sai sót và đưa ra những gợi ý hữu ích để chúng em có thể thực hiện đề tài một cách khả thi và hiệu quả nhất

Chúng em cũng muốn bày tỏ lòng biết ơn đặc biệt đến các thầy cô trong khoa Điện

– Điện tử người đã đóng góp và không ngừng hỗ trợ để giúp chúng em hoàn thành đề

tài Sự nhiệt tình và kiến thức chuyên sâu của các thầy cô đã giúp chúng em vượt qua những thách thức và hoàn thiện công việc của mình

Không chỉ có vậy, chúng em cũng muốn gửi lời cảm ơn đến các bạn sinh viên

trong khoa Điện – Điện tử, những anh chị đã chia sẻ kinh nghiệm và hỗ trợ chúng em

trong quá trình nghiên cứu Đóng góp của họ đã góp phần quan trọng vào sự thành công của đề tài

Cuối cùng, lời cảm ơn sâu sắc nhất dành cho gia đình và người thân, người luôn ủng hộ chúng em không chỉ về mặt tài chính mà còn tinh thần suốt quá trình học tập và thực hiện đề tài này

Mặc dù chúng em đã cố gắng hết sức và vượt qua nhiều khó khăn, nhưng chúng em nhận thức được rằng đề tài vẫn còn những hạn chế và thiếu sót Chúng em mong nhận được sự đóng góp và nhận xét từ các thầy cô và bạn bè để có thể hoàn thiện và nâng cao chất lượng của đề tài

Chúng em xin chân thành cảm ơn!

Sinh viên thực hiện

Trang 11

LỜI CAM ĐOAN Sinh viên thực hiện: Trần Khương Đạt Mã SV: 1911505410111 Lớp: 19DT1

Nếu có bất kì sai phạm nào, chúng em xin chịu hoàn toàn trách nhiệm và chịu mọi sự kỉ luật của Khoa và Nhà trường

Sinh viên thực hiện

Trần Khương Đạt – Lê Phúc Tân

Trang 12

MỤC LỤC

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN

ĐỀ CƯƠNG ĐỒ ÁN TỐT NGHIỆP

TÓM TẮT

LỜI NÓI ĐẦU

LỜI CAM ĐOAN

1.2 Các nhà máy sản xuất thuốc 2

1.3 Dây chuyền phân loại sản phẩm 4

2.2 Xử lý ảnh cơ bản với OpenCV 15

2.2.1 Giới thiệu OpenCV 15

2.2.2 Cài đặt môi trường 16

Trang 13

2.3 Tìm đường biên của ảnh 18

2.4 Giới thiệu Raspberry Pi 20

2.4.1 Ưu điểm: 22

2.4.2 Nhược điểm: 22

2.4.3 Ứng dụng của Raspberry Pi 23

2.4.4 Công dụng nổi bật của Raspberry Pi 23

2.5 Giới thiệu phần mềm Arduino IDE 23

2.5.1 Hỗ trợ lập trình tốt cho bo mạch Arduino 24

2.5.2 Thư viện hỗ trợ phong phú 25

2.5.3 Hỗ trợ đa nền tảng như Windows, MacOS, Linux 27

2.5.4 Cấu trúc một chương trình Arduino 28

2.6 Giới thiệu phần mềm PyCharm 28

CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG 46

3.1 Thiết kế sơ đồ khối 46

3.2 Nguyên lý hoạt động 47

3.3 Lưu đồ thuật toán 48

3.4 Sơ đồ đấu nối thiết bị 49

3.5 Thi công mô hình 50

Trang 14

Đề xuất hướng phát triển: 60

TÀI LIỆU THAM KHẢO 61

Trang 15

DANH SÁCH HÌNH ẢNH

Hình 1.1: Quy trình sản xuất dược phẩm được kiểm soát chặt chẽ trên dây chuyền công

nghệ hiện đại 3

Hình 1.2: Nhà máy sản xuất dược phẩm Traphaco 4

Hình 1.3: Dây chuyền sản xuất và phân loại dược phẩm đạt chuẩn GMP……… 4

Hình 2.1: Xử lý ảnh……….8

Hình 2.2: Thư viện OpenCV……….……….15

Hình 2.3: Các hướng xét giá trị 20

Hình 2.4: Cấu tạo của Raspberry Pi 4 20

Hình 2.5: Cấu tạo Raspberry Model B 21

Hình 2.6: Arduino IDE - Phần mềm lập trình mã nguồn mở 23

Hình 2.7: Code C/C++ 23

Hình 2.8: Tương thích máy tính với bo mạch Arduino 24

Hình 2.9: Giao diện Arduino IDE 25

Hình 2.10: Nút kiểm tra lỗi (Verify) 25

Hình 2.11: Nút tải code vào bo mạch (Upload) 26

Hình 2.12: Vùng lập trình phần mềm Arduino IDE 26

Hình 2.13: Thanh Menu phần mềm Arduino IDE 27

Hình 2.14: Arduino IDE hỗ trợ nhiều nền tảng khác nhau 27

Hình 2.15: Cấu trúc của một chương trình Arduino 28

Hình 2.16: Phần mềm Pycharm……….28

Hình 2.17: Ngôn ngữ Python……….……….33

Hình 2.18: Cảm biến vật cản hồng ngoại E3F-DS30C4…….……… 36

Hình 2.19: Xi lanh khí nén airtac………37

Hình 2.20: Van điện từ 3/2 airtac………38

Hình 2.21: Sơ đồ van điện từ khí nén 3/2……….……….……….39

Trang 16

Hình 3.1: Sơ đồ khối của hệ thống 47

Hình 3.2: Lưu đồ giải thuật dựa trên nguyên lý hoạt động 49

Hình 3.3: Sơ đồ đấu nối toàn bộ thiết bị trong hệ thống……….50

Hình 3.4: Lựa chọn vị trí lắp đặt van điện từ……… 51

Hình 3.4: Lựa chọn vị trí lắp đặt van điện từ……… 52

Hình 3.4: Lựa chọn vị trí lắp đặt van điện từ……… 52

Hình 3.7: Kết nối Relay 4 kênh với Arduino Nano……….53

Hình 3.8: Khó khăn trong việc chia nguồn cho cảm biến lẫn băng tải………53

Hình 3.9: Chia ống nén khí từ van điện từ qua xi lanh………54

Hình 3.10: Kết nối Arduino với Relay 4 kênh và mạch hạ áp………55

Hình 3.11: Cơ bản hoàn thành thi công phần cứng………55

Hình 3.12: Phần mềm hỗ trợ quét địa chỉ IP Raspberry……… 56

Hình 3.13: Truy cập vào hệ điều hành Raspbian của Raspberry……….56

Hình 3.14: Giao diện đăng nhập vào Raspberry Pi 4……… 57

Hình 3.15: Giao diện của Raspberry Pi 4………57

Hình 3.16: Chọn Programming -> Thonny để mở cửa sổ chạy chương trình…………58

Hình 3.17: Cửa sổ thực thi chạy chương trình đã viết………58

Hình 3.18: Kết quả xử lý ảnh cho thấy vỉ thuốc đúng mẫu………59

Hình 3.19: Kết quả cho thấy vỉ thuốc bị thiếu viên………59

Trang 17

DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT

Trang 18

MỞ ĐẦU 1 Mục đích thực hiện đề tài

Mục đích của đề tài “Thiết kế mô hình phân loại sản phẩm bằng xử lý ảnh sử

dụng ngôn ngữ Python trên Raspberry Pi 4” là có thể tạo ra một hệ thống tự động

nhận diện và phân loại vỉ thuốc đúng - sai dựa trên ảnh mẫu giúp tăng cường hiệu suất và độ chính xác trong quá trình quản lý và sản xuất ngành công nghiệp dược phẩm

2 Mục tiêu đề tài

Thiết kế và thi công một dây chuyền có thể phân loại vỉ thuốc ứng dụng xử lý ảnh dùng thư viện mã nguồn mở OpenCV viết trên ngôn ngữ Python Dây chuyền có thể phân loại các vỉ thuốc đầy đủ hoặc thiếu Các thông số của dây chuyền có thể cài đặt và giám sát qua màn hình giao diện Raspberry Pi 4

Phát triển thêm về công nghệ xử lý ảnh nhằm giải quyết vấn đề về vỉ thuốc trong các nhà máy sản xuất Khai thác các tài liệu mới để hoàn thiện hơn mô hình

3 Phạm vi và đối tượng nghiên cứu

Tìm hiểu cách thức hoạt động của các hệ thống phân loại dùng xử lý ảnh Tìm hiểu về Raspberry Pi

Thiết kế và thi công mô hình dây chuyền phân loại Thiết kế và thi công điện cho hệ thống

Viết chương trình điều khiển

4 Phương pháp nghiên cứu

Sử dụng USB Camera để thu nhận ảnh và dùng Raspberry Pi để xử lý

5 Cấu trúc nội dung của đồ án gồm có:

Chương 1: Tổng quan về đề tài Chương 2: Cơ sở lý thuyết

Chương 3: Thiết kế và thi công hệ thống Chương 4: Kết luận và đánh giá

Trang 19

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1 Đặt vấn đề

Công nghiệp đang phát triển mạnh mẽ, với việc xây dựng những nhà máy hiện đại trang bị dây chuyền tự động hóa ngày càng phổ biến Sự tự động hóa không chỉ giảm sức lao động mà còn tăng hiệu quả sản xuất Trong quá trình này, vấn đề phân loại sản phẩm trở nên quan trọng, đặc biệt là khi áp dụng các phương pháp xử lý hình ảnh và trí tuệ nhân tạo để nhận diện lỗi sản phẩm

Phân loại sản phẩm có nhiều cách tiếp cận, từ kích thước, màu sắc, đến lỗi sản phẩm Trong số đó, phân loại theo lỗi sản phẩm đòi hỏi sự chính xác và phức tạp Sử dụng thị giác máy tính, đặc biệt là xử lý hình ảnh, cung cấp một giải pháp linh hoạt và chính xác Kết hợp với mạng nơ-ron và học máy, giúp xử lý hiệu quả đối với sản phẩm có nhiều chi tiết và lỗi phức tạp

Mặc dù đã có nhiều nghiên cứu và sản phẩm Smart Camera cho công nghiệp, nhưng chi phí cao khiến chúng chỉ phù hợp cho các nhà máy lớn Các sinh viên thực hiện nghiên cứu trong lĩnh vực này, nhằm tìm ra giải pháp hiệu quả và chi phí thấp

Sự phát triển của công nghệ thông minh, đặc biệt là sự kết hợp của IoT, trí tuệ nhân tạo, và đám mây, đã tạo ra những nhà máy thông minh Sự tự động hoá không chỉ tăng hiệu suất sản xuất mà còn giải phóng sức lao động Việc áp dụng trí tuệ nhân tạo để số hóa nhà máy đang giải quyết một cách triệt để nhiệm vụ này [3]

Mỗi nhà máy bây giờ có thể được điều khiển từ xa thông qua việc áp dụng máy tính nhúng và chuyển đổi số dữ liệu vận hành Máy tính nhúng này giải quyết thuật toán và điều khiển máy móc, đồng thời truyền thông tin về máy chủ Sự chính xác và linh hoạt trong vận hành này tạo ra sự khác biệt giữa nhà máy thông minh và nhà máy truyền thống

Chúng em quyết định thực hiện đề tài “Thiết kế mô hình phân loại sản phẩm bằng

xử lý ảnh sử dụng ngôn ngữ Python trên Raspberry Pi 4” sử dụng thư viện OpenCV

Dây chuyền của chúng em sử dụng Raspberry Pi làm bộ xử lý trung tâm, cảm biến hồng ngoại và camera để phân loại sản phẩm thông qua xử lý ảnh Sự kết hợp giữa USB camera và máy tính với bộ xử lý giúp giảm chi phí, thuận tiện và dễ dàng vận hành và bảo trì

1.2 Các nhà máy sản xuất thuốc

Ngành dược phẩm tại Việt Nam đang có tốc độ phát triển nhanh chóng Những nỗ lực của chính phủ để làm cho dịch vụ chăm sóc sức khỏe dễ tiếp cận hơn và giá cả phải chăng là một trong những động lực thúc đẩy sự phát triển của ngành dược phẩm nói

Trang 20

chung Ngoài ra, Việt Nam là một trong những quốc gia có dân số già hóa nhanh nhất thế giới; nhận thức về chăm sóc sức khỏe của người tiêu dùng ngày càng nâng cao và thu nhập cao hơn đã dẫn đến sự gia tăng chung về chi tiêu cho chăm sóc sức khỏe, đặc biệt là mức tiêu thụ thuốc bình quân đầu người

Mặc dù có nhiều tiềm năng phát triển, song theo nhận định của nhiều chuyên gia, ngành công nghiệp sản xuất thuốc Việt Nam hiện nay vẫn còn gặp phải những khó khăn Có thể kể đến như việc các nhà máy sản xuất dược chưa tối ưu hóa được quy trình sản xuất thông minh bởi trang thiết bị của từng nhóm nghiên cứu chưa được đồng bộ thống nhất; giữa các bộ phận trong quy trình sản xuất vẫn còn đang thực hiện thủ công gây khó khăn cho công tác lập kế hoạch; quản lý giám sát dữ liệu, hàng tồn kho, và theo dõi tiến độ cũng như đảm bảo chất lượng tiêu chuẩn sản xuất dược phẩm

Hình 1.1: Quy trình sản xuất dược phẩm được kiểm soát chặt chẽ trên dây chuyền

công nghệ hiện đại

Dược phẩm đóng vai trò quan trọng trong đời sống, ảnh hưởng trực tiếp đến sức khỏe con người Chính vì thế, việc sản xuất, phân phối dược phẩm luôn nhận được sự quan tâm đặc biệt từ Nhà nước và các cơ quan quản lý

Hiện nay, để được đánh giá là nhà máy sản xuất dược phẩm chất lượng, các đơn vị bắt buộc phải đảm bảo tiêu chí của tiêu chuẩn GMP và tiến độ sản xuất

Nhà máy sản xuất dược phẩm đạt chuẩn cần được thiết kế và xây dựng với quy mô phù hợp nhu cầu sản xuất, đảm bảo độ bền cũng như khả năng cải tạo trong tương lai Bên cạnh đó, việc thiết kế nhà máy cũng cần đảm bảo yếu tố khoa học, có sự phân chia

Trang 21

rõ ràng các khu vực để không ảnh hưởng đến chất lượng sản phẩm và tối ưu nhất về tiến độ sản xuất [4]

Ngoài ra, trang thiết bị được lắp đặt phải đảm bảo chất lượng, có nguồn gốc rõ ràng, bố trí phù hợp, thuận tiện cho việc di chuyển, thao tác và vệ sinh định kỳ

Hình 1.2: Nhà máy sản xuất dược phẩm Traphaco

1.3 Dây chuyền phân loại sản phẩm

Dây chuyền phân loại sản phẩm là dây chuyền hoàn toàn tự động được sử dụng để phục vụ và hỗ trợ dây chuyền phân loại – đóng gói, xếp dỡ, xuất nhập kho và bưu kiện Các dây chuyền phân loại sản phẩm theo mã vạch, kích thước, khối lượng, màu sắc và các tiêu chí khác theo yêu cầu của khách hàng với độ chính xác và tự động hóa cao

+ Ưu điểm của dây chuyền phân loại sản phẩm:

Trước đây, phương pháp phân loại sản phẩm truyền thống yêu cầu không gian làm việc rộng, số lượng người tham gia phân loại nhiều, thời gian làm việc kéo dài, dễ xảy ra sai sót Như vậy, dây chuyền phân loại sản phẩm tự động do cơ chế làm việc linh hoạt nên giảm 80% số lượng lao động, năng suất tăng gấp 3-5 lần so với phân loại truyền thống

Dây chuyền phân loại sản phẩm hoạt động theo cơ chế phân loại sản phẩm với máy phân loại, cảm biến nhận dạng sản phẩm, camera kiểm tra sản phẩm, cân điện tử, hệ thống đo lường, cơ cấu chọn và vận chuyển: Băng tải, băng chuyền, bẫy, đòn bẩy, dải phân cách, băng tải góc, cần gạt…Hệ thống băng tải xương cá, hệ thống trung tâm và điều khiển trung tâm kết nối dữ liệu từ xa

Dây chuyền phân loại sản phẩm được sử dụng trong nhiều ngành công nghiệp: chế biến nông sản, rau củ quả, nhà máy sản xuất linh kiện điện tử, cơ khí, kho vận, bưu điện, thương mại điện tử trong việc phân loại bưu phẩm, bưu kiện …

Trang 22

Với một số dây chuyền phân loại sản phẩm nông sản, nhựa, chi tiết dạng hạt, sợi, máy phân loại có cấu tạo nhỏ gọn và thực hiện đầy đủ các chức năng phân loại chọn sản phẩm có camera và cơ cấu kiểm tra sản phẩm khi chuyển qua băng tải, phễu chứa Ứng dụng chính của dây chuyền này là ngành thực phẩm và đồ uống

Hình 1 3: Dây chuyền sản xuất và phân loại dược phẩm đạt chuẩn GMP

1.4 Mục tiêu và giới hạn

Thiết kế và thi công một dây chuyền có thể phân loại vỉ thuốc ứng dụng xử lý ảnh dùng thư viện mã nguồn mở OpenCV viết trên ngôn ngữ Python Dây chuyền có thể phân loại các vỉ thuốc đầy đủ hoặc thiếu Các thông số của dây chuyền có thể cài đặt và giám sát qua giao diện và Raspberry Pi

Phát triển thêm về công nghệ xử lý ảnh nhằm giải quyết vấn đề về vỉ thuốc trong các nhà máy sản xuất Khai thác các tài liệu mới để hoàn thiện hơn mô hình

1.5 Nội dung nghiên cứu

Tìm hiểu cách thức hoạt động của các hệ thống phân loại dùng xử lý ảnh Tìm hiểu về Raspberry pi

Thiết kế và thi công mô hình dây chuyền phân loại Thiết kế và thi công điện cho hệ thống

Viết chương trình điều khiển Chạy thử nghiệm mô hình, chỉnh sửa và hoàn thiện hệ thống Thực hiện viết luận văn báo cáo

Tiến hành báo cáo đề tài tốt nghiệp

1.6 Giới hạn

Sử dụng USB Camera để thu nhận ảnh và dùng Raspberry pi để xử lý Dây chuyền phân loại vỉ thuốc có thiếu hay đủ hoặc sai màu sắc thuốc

Trang 23

Dây chuyền chỉ dừng ở mức mô hình, kích thước nhỏ

1.7 Bố cục

- CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI - CHƯƠNG 2: CƠ SỞ LÝ THUYẾT - CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG - CHƯƠNG 4: KẾT LUẬN VÀ ĐÁNH GIÁ

Trang 24

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 Tổng quan về xử lý ảnh

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 Liên quan đến 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…

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ố: - Xử lý hình ảnh tương tự:

Xử lý hình ảnh tương tự được thực hiện trên các tín hiệu analog Nó bao gồm xử lý trên tín hiệu analog 2 chiều Trong loại xử lý này, những hình ảnh được thao tác, xử lý bằng phương thức điện bằng cách thay đổi các tín hiệu điện Các ví dụ phổ biến bao gồm là hình ảnh truyền hình

- Xử lý ảnh số: Các phương pháp xử lý ảnh số thường bao gồm lọc, làm sạch nhiễu, cân bằng độ sáng, biến đổi Fourier, phân loại và nhận diện, cải thiện độ chính xác và loại bỏ nhiễu

2.1.1 Ảnh là gì?

Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật Số điểm ảnh xác định độ phân giải của ảnh Ảnh có độ phân giải càng cao thì càng thể hiện rõ nét các đặt điểm của tấm hình càng làm cho tấm ảnh trở nên thực và sắc nét hơn.Một hình ảnh là một tín hiệu hai chiều Nó được xác định bởi hàm toán học f(x, y) trong đó x và y là hai tọa độ theo chiều ngang và chiều dọc

2.1.2 Tín hiệu

Trong thế giới vật lý, bất kỳ đại lượng đo được qua thời gian trên không gian hoặc bất kỳ kích thước cao hơn có thể được gọi là một tín hiệu Một tín hiệu là một hàm toán học, và nó chuyển tải một số thông tin

Một tín hiệu có thể là một chiều, hai chiều hoặc cao hơn Tín hiệu một chiều là một tín hiệu được đo theo thời gian Ví dụ phổ biến là một tín hiệu âm thanh

Tín hiệu hai chiều được đo qua một số đại lượng vật lý khác

Trang 25

2.1.3 Mối quan hệ

Khi chúng ta cần truyền đạt một thông tin, chúng ta sẽ phát đi một thông điệp trong thế giới vật lý từ người này sang người khác Điều đó bao gồm tiếng nói hoặc một hình ảnh được truyền đi như là một tín hiệu Kể từ khi chúng ta nói, giọng nói của chúng ta được chuyển đổi thành sóng hay tín hiệu âm thanh và chuyển đổi quan hệ thời gian với người mà chúng ta cần truyền đạt

2.1.4 Bức ảnh kỹ thuật số

Chụp ảnh từ một máy ảnh là một quá trình vật lý Ánh sáng mặt trời sử dụng như một nguồn năng lượng Một dãy cảm biến được sử dụng cho việc thu lại của hình ảnh Vì vậy, khi ánh sáng mặt trời rơi trên người đối tượng, sau đó số lượng ánh sáng phản xạ của đối tượng được cảm nhận từ các cảm biến, và một tín hiệu điện áp liên tục được tạo ra bởi số lượng dữ liệu cảm biến đó Để tạo ra một hình ảnh kỹ thuật số, chúng ta cần phải chuyển đổi dữ liệu này thành một dạng kỹ thuật số Điều này liên quan đến việc lấy mẫu và lượng tử hóa Kết quả của việc lấy mẫu và lượng tử hóa sau một quá trình xử lý là một hình ảnh kỹ thuật số

2.1.5 Thị giác máy tính

Thị giác máy hay thị giác máy tính là việc phát triển một hệ thống trong đó các đầu vào là một hình ảnh và đầu ra là một số thông tin Ví dụ: Phát triển một hệ thống nhận dạng khuôn mặt của con người và hệ thống sẽ tự mở khóa cho nhà của bạn

2.1.6 Trí tuệ nhân tạo

Trí tuệ nhân tạo là nghiên cứu về trí thông minh của con người đặt vào máy Trí tuệ nhân tạo có nhiều ứng dụng trong xử lý ảnh Ví dụ: máy tính hỗ trợ phát triển hệ thống chẩn đoán giúp các bác sĩ trong việc giải thích hình ảnh của :@ray, MRI, vv…

2.1.7 Xử lý tín hiệu

Xử lý tín hiệu là một chiếc ô và xử lý hình ảnh nằm dưới nó Lượng ánh sáng bị phản xạ bởi một đối tượng trong thế giới vật lý (Thế giới 3D) đi qua ống kính của máy ảnh và nó sẽ trở thành một tín hiệu 2D và tạo ra hình ảnh Hình ảnh này sau đó được số hóa bằng cách sử dụng phương pháp xử lý tín hiệu số và sau đó hình ảnh này được xử lý trong xử lý ảnh số

Các giá trị của f (x, y) tại bất kỳ điểm nào là cung cấp các giá trị điểm ảnh (Pixel)

tại điểm đó của một hình ảnh

Trang 26

Hình 2.1: Xử lý ảnh

Ảnh số là tập hợp các điểm ảnh (Pixel) có giá trị mức xám xác định dùng để mô tả ảnh gần với ảnh thật, trong đề tài này chỉ xét đến ảnh 2 chiều, một ảnh sau khi được số hóa có thể được mô tả như một ma trận điểm A[M, N] trong không gian hai chiều trong đó M và N là số cột và số hàng của các điểm ảnh Một điểm ảnh bất kì lúc này sẽ có tọa độ A(x, y) với 0=<x<=M-1 và 0=<y<=N-1 Số điểm ảnh xác định độ phân giải của ảnh Ảnh có độ phân giải càng cao thì ảnh càng trở nên chân thực và sắc nét hơn Giá trị của mỗi điểm ảnh sẽ quyết định màu sắc của ảnh ta gọi là mức xám của điểm ảnh, giá trị này có thể là một số (ảnh nhị phân, ảnh xám) hoặc một tập hợp các giá trị (ảnh màu) Xử lý ảnh là ta xử lý các giá trị này trong ma trận ảnh để được một kết quả mong muốn Số bit của một bức ảnh chính là số các giá trị mức xám có thể có Ví dụ một ảnh 8 bit sẽ có 28=256 giá trị mức xám từ 0 đến 255 tương tự ảnh 16 bit thì sẽ có 216 giá trị

Tùy theo giá trị dùng để biểu diễn điểm ảnh mà ta có thể phân ra 3 loại ảnh chính thông dụng:

+ Ảnh nhị phân: giá trị mỗi điểm ảnh là 0 hoặc 1, nghĩa là trắng hoặc đen Chính vì vậy mà còn gọi là ảnh đen trắng

+ Ảnh xám: giá trị mỗi điểm ảnh nằm trong giải giá trị từ 0 đến 255, nghĩa là cần 8 bits hay 1 byte để biểu diễn mỗi điểm ảnh này

+ Ảnh màu RGB: mỗi điểm ảnh có giá trị gồm 3 màu đỏ (Red) + xanh lục (Green) + Xanh dương (Blue) Mỗi màu có giá trị từ 0 đến 255, nghĩa là mỗi điểm ảnh cần 24bits hay 3bytes để biểu diễn Ngoài hệ màu RGB còn có nhiều hệ màu khác phù hợp với những mục đích khác nhau như hệ CMYK, hệ HSV…

Ả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 được thu qua Camera là các ảnh tương tự Giờ đây, với sự phát triển của khoa học công nghệ ảnh được thu nhận từ cảm biến và chuyển trực tiếp thành ảnh số nên không cần bước chuyển đổi từ tương tự sang số Có nhiều thiết bị cho phép thu ảnh ví dụ điện thoại di động, máy chụp hình, máy scan, webcam…Các thiết bị này đều cho ra ảnh với những định dạng ảnh đã được quy định phù hợp cho máy tính như JPG, PNG, JPEG… chính vì vậy việc đọc chúng trên máy tính là rất dễ dàng Trong đề tài này sử dụng Camera loại Webcam để thu nhận hình ảnh thực tế

Trang 27

2.1.8 Điều chỉnh độ sáng và độ tương phản

Độ sáng của ảnh phụ thuộc vào giá trị của mỗi Pixel tạo nên ảnh Vì vậy để thay đổi độ sáng ảnh ta thay đổi giá trị mức sáng các Pixel Với g và f là ảnh trước và sau khi biến đổi ta có công thức điều chỉnh độ sáng như sau:

a, b: hằng số tự chọn

g(x,y) = a*f(x,y)+b [3] f(x,y): mức sáng của pixel trong ảnh tại điểm có tọa độ (x,y) g(x,y): mức sáng của pixel trong ảnh tại điểm có toạ độ (x,y) sau khi biến đổi Ngoài việc thay đổi bằng phần mềm ta có thể tăng độ sáng ảnh bằng phần cứng như lắp thêm đèn rọi, dùng tấm nền màu sáng…

2.1.9 Lọc nhiễu ảnh

Hình 2 2: Lọc nhiễu ảnh

Một ảnh khi được chụp thường kèm theo các nhiễu, các nhiễu này có nhiều nguyên nhân gây nên: ánh sáng không đủ, chất lượng thiết bị thu không tốt, ảnh hưởng do các yếu tố môi trường xung quanh, do sai số lượng tử hóa hay sai số truyền … Một số loại nhiễu phổ biến thường xuất hiện trong ảnh:

Trang 28

+ Nhiễu độc lập với dữ liệu ảnh:

Là một loại nhiễu cộng (Additive Noise): ảnh thu được f(i,j) là tổng của ảnh đúng (True Image) và nhiễu n(i,j): f(i,j) = s(i,j) + n(i,j) [3]

Thông tin ảnh có tần số thấp, còn nhiễu ảnh hưởng đến tần số cao và ảnh hưởng này có thể được giảm đi khi sử dụng bộ lọc thông thấp

+ Nhiễu phụ thuộc vào dữ liệu:

Nhiễu xuất hiện khi có sự bức xạ đơn sắc nằm rải rác trên bề mặt ảnh, độ lởm chởm trên bề mặt tùy thuộc vào bước sóng của điểm ảnh

Do có sự giao thoa giữa các sóng ảnh nên làm xuất hiện những vết lốm đốm trên ảnh

+ Nhiễu muối – tiêu (Salt & Pepper Noise):

Là một loại nhiễu xung, sinh ra do xảy ra sai số trong quá trình truyền dữ liệu Những điểm ảnh có thể mang giá trị cực đại hoặc cực tiểu Với ảnh xám nếu một điểm ảnh có giá trị cực đại (tức cường độ sáng bằng 255) thì nó sẽ tạo ra một đốm trắng trên ảnh, trông giống như hạt “muối” Và ngược lại nếu một điểm ảnh có giá trị cực tiểu (tức cường độ sáng bằng 0) thì sẽ tạo ra một đốm đen, giống như “tiêu” Vậy nên còn gọi là ảnh muối tiêu [10]

Để có thể xử lý một cách chính xác và hiệu quả, ảnh cần được lọc nhiễu Nguyên tắc chung của các phương pháp lọc ảnh số là cho ma trận ảnh nhân chập với một ma trận lọc (Kernel) hay còn được gọi là các phép tính nhân chập trên ảnh Ma trận lọc lọc (Kernel) còn có thể được gọi là cửa số chập, cửa sổ lọc, mặt nạ

G=M*I [3]

Trang 29

I: Là ảnh gốc được sử dụng để lọc số ảnh G: Là ảnh ra sau khi thực hiện xong phép lọc số ảnh M: Là ma trận lọc (Mask, kernel)

Với mỗi phép lọc ta có những ma trận lọc (Kernel) khác nhau, không có một quy định cụ thể nào cho việc xác định M Tổng các phẩn tử trong ma trận M thường là 1

Tpt > 1: Ảnh sau khi thực hiện xong phép lọc số ảnh (G) có độ sáng lớn hơn so với ảnh ban đầu (F)

Tpt < 1: Ảnh sau khi thực hiện xong phép lọc số ảnh (G) có độ sáng nhỏ hơn so với ảnh ban đầu (F)

Một số phương pháp lọc phù hợp để xử lý một loại nhiễu nhất định Một số bộ lọc thông dụng như lọc trung vị, lọc trung bình, lọc thông thấp, lọc thông cao…

2.1.10 Lọc trung vị

Lọc trung vị là một kĩ thuật lọc phi tuyến (Non-Linear), bộ lọc này được sử dụng rất phổ biến trong xử lý ảnh, lọc trung vị còn được gọi là bộ lọc hạng Ý tưởng chính của thuật toán lọc trung vị là sử dụng một cửa sổ lọc (thường là ma trận 3x3) quét qua lần lượt từng điểm ảnh của ảnh đầu vào Input Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng 3x3 của ảnh gốc "lấp" vào ma trận lọc Sau đó sắp xếp các điểm ảnh trong cửa sổ này theo thứ tự (tăng dần hoặc giảm dần tùy ý) Cuối cùng, gán điểm ảnh nằm chính giữa (trung vị) của dãy giá trị điểm ảnh đã được sắp xếp ở trên cho giá trị điểm ảnh đang xét của ảnh đầu ra Output

Cho một dãy số 𝑋1, 𝑋2, 𝑋3, , 𝑋𝑛 được sắp xếp theo thứ tự tăng dần hoặc giảm dần

Khi đó 𝑋𝑡𝑣 được tính bởi công thức sau: Nếu n lẻ:

[3] Nếu n chẵn:

Trang 30

Các bước thực hiên khi sử dụng bộ lọc trung vị: - Quét ma trận lọc lên các thành phần của ảnh gốc, điền các giá trị được quét vào

ma trận lọc - Lấy các thành phần trong của sổ lọc để xử lý - Sắp xếp theo thứ tự các thành phần trong cửa sổ lọc - Lưu lại thành phần trung vị, gán cho ảnh output Ví dụ: Cho ảnh I kích thước 5x5 như sau:

1 2 1 6 8 4 5 1 3 9 3 1 5 4 5 4 5 1 2 2 6 6 9 7 7 Các giá trị sau khi sắp xếp từ thấp tới cao:

2.1.11 Lọc trung bình

Lọc trung bình là loại lọc tuyến tính, với phương pháp thay thế giá trị mỗi điểm ảnh bằng trung bình trọng số của các điểm trong vùng lân cận Giả sử rằng dùng một ma trận lọc (3x3) quét qua từng điểm ảnh của ảnh đầu vào Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng (3x3) của ảnh gốc đặt vào ma trận lọc Giá trị điểm ảnh của ảnh đầu ra là giá trị trung bình của tất cả các điểm trong ảnh trong ma trận lọc

Trang 31

Các bước thực hiện lọc trung bình với ảnh đầu vào I và I(x,y) là điểm ảnh đang xét, mộ ngưỡng α:

Bước 1: Quét ma trận lọc lên các thành phần của ảnh gốc, điền các giá trị được quét vào

ma trận lọc

Bước 2: Tính tổng các thành phần trong ma trận lọc, chia tổng này với số lượng các phần

tử của cửa sổ lọc ra một giá trị Itb = (x, y)

Bước 3: Hiệu chỉnh:

+ Nếu I(x, y) - Itb(x, y) > α thì I(x,y) = Itb(x, y) + Nếu I(x, y) - Itb(x, y) ≤ α thì I(x,y) = I(x,y) Giá trị ngưỡng α có thể có hoặc không tùy vào mục đích sử dụng Ví dụ: I là một ma trận kích thước 5x5:

1 2 1 6 8 4 5 1 3 9 3 1 5 4 5 4 5 1 2 2 6 6 9 7 7

Sử dụng ma trận lọc kích thước 3x3 xét tại I(3,3), không sử dụng ngưỡng:

1 2 1 6 8 4 5 1 3 9 3 1 5 4 5 4 5 1 2 2 6 6 9 7 7

Vậy I(3,3) sau khi lọc sẽ có giá trị 3

Sau khi sử dụng bộ lọc trung bình, chênh lệch độ sáng các điểm ảnh sẽ giảm xuống nghĩa là sẽ không có sự đột biến về giá trị của các điểm ảnh lân cận nhau Vì các nhiễu ngẫu nhiên thường là các điểm có giá trị đột biến mạnh so với điểm xung quanh nên bộ lọc trung bình sẽ giúp giảm các nhiễu này hiệu quả ví dụ như nhiễu muối tiêu Tuy nhiên bởi vì các cạnh hoặc đường biên trong ảnh cũng đặc trưng bởi quá trình biến đổi mạnh về cường độ nên lọc trung bình có thể làm mờ các cạnh và đường biên

Trang 32

2.1.12 Lọc Gauss

Bộ lọc Gauss là một bộ lọc rất hữu ích và thông dụng, được thực hiện bằng cách nhân chập ảnh đầu vào với một ma trận lọc Gauss sau đó cộng chúng lại để tạo thành ảnh đầu ra Vì biến đổi Fourier của một Gaussian sẽ tạo ra một Gaussian khác cho nên nếu xét trên miền tần số thì phương pháp này sẽ làm giảm các thành phần có tần số cao trong hình Hay nói cách khác đây là một bộ lọc tần số cao (Low Pass Filter: chỉ giữ lại các thành phần tần số thấp)

Ý tưởng của bộ lọc là dựa vào giá trị của mỗi điểm ảnh sẽ phụ thuộc nhiều với giá trị các điểm ảnh ở gần hơn là các điểm ảnh ở xa Trọng số của sự phụ thuộc được lấy theo hàm Gauss (hàm này cũng được sử dụng trong quy luật phân phối chuẩn của xác xuất thống kê)

Ứng dụng của bộ lọc Gaussian là làm mịn ảnh, nó khác với bộ lọc trung bình ở chỗ: Thứ nhất, mức độ làm mịn được điều khiển bởi sự lựa chọn các tiêu chuẩn thông số độ lệch, chứ không phải bởi giá trị tuyệt đối của kích thước hạt nhân; Thứ hai, hàm Gaussian có một thuộc tính khá đặc biệt, đó là biến đổi Fourier của nó là một hàm Gaussian, điều đó rất thuận tiện cho việc phân tích miền tần số của bộ lọc

2.2 Xử lý ảnh cơ bản với OpenCV 2.2.1 Giới thiệu OpenCV

OpenCV (Open Computer Vision) là một thư viện mã nguồn mở hàng đầu cho xử lý về thị giác máy tính, Machine Learning, xử lý ảnh OpenCV đươc viết bằng C/C++, vì vậy có tốc độ tính toán rất nhanh, có thể sử dụng với các ứng dụng liên quan đến thời gian thực OpenCV có thể hỗ trợ cho C/C++, Python Java vì vậy hỗ trợ được cho Window, Linux, MacOs lẫn Android, IOS OpenCV có cộng đồng hơn 47 nghìn người dùng và số lượng Download vượt quá 6 triệu lần và vẫn đang mở rộng liên tục

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

OpenCV vẫn đang được đóng góp và phát triển liên tục, nó đặc biệt phù hợp cho những ứng dụng xử lý hình ảnh đơn giản vì thư viện dễ sử dụng và nhiều hỗ trợ từ cộng đồng

Trang 33

Hình 2 3: Thư viện OpenCV

OpenCV là dự án bắt đầu tại hãng Intel vào năm 1999 bởi Gary Bradsky và ra mắt lần đầu tiên vào năm 2000 Sau đó Vadim Pisarevsky gia nhập và quản lý nhóm Vào năm 2005, OpenCV được sử dụng trên xe tự lái Stanley và chiếc này đã vô địch giải đấu 2005 DARPA Grand Tiếp theo nó tiếp tục được cải tiến và phát triển dưới sự hỗ trợ của Willow Garage bên cạnh với Gary Bradsky và Vadim Pisarevsky Hiện tại OpenCV hỗ trợ vô số các thuật toán liên quan để lĩnh vực thị giác máy tính (Computer Vision) và lĩnh vực học máy (Machine Learning)

OpenCV có thể sử dụng được ở hầu hết các ngôn ngữ như C++, Python, Java … và các hệ điều hành khác nhau như Windows, Linux, OS X, Android, iOS Ngoài ra nó thể sử dụng Card đồ họa GPU để xử lý nhằm tốc độ xử lý

Trong bài viết này chúng em sẽ sử dụng ngôn ngữ Python để thực hiện các ví dụ do ngôn ngữ này có cú pháp đơn giản, dễ hiểu và cấu hình môi trường đơn giản

2.2.2 Cài đặt môi trường

Trong bài viết này chúng em sẽ sử dụng Python 3 với thư viện OpenCV-Python phiên bản 4.2.0.34

Ở đây để đơn giản cho việc cài đặt thì chúng ta sử dụng một thư viện có sẵn trên kho quản lý gói của Python là OpenCV-Python Đây là một thư viện không phải của tổ chức OpenCV tuy nhiên nó có tính năng y hệt và được cập nhật thường xuyên theo sự thay đổi của OpenCV Hay nói cách khác đây là một đóng gói cho OpenCV trên kho thư viện của Python

Sử dụng đoạn lệnh sau để cài đặt gói từ kho thư viện pip [5]

Để kiểm tra cài đặt thành công hay không ta thực hiện đoạn lệnh sau để kiểm tra phiên bản của OpenCV-Python Tùy từng thời điểm thì phiên bản của gói sẽ khác nhau Các phiên bản mới là cập nhật cho OpenCV mới hơn

Trang 34

+ Lấy kích thước của ảnh

Ở đây biến img là một đối tượng của Numpy Array chứa giá trị màu của từng điểm ảnh trên các không gian màu khác nhau Lệnh img.shape để lấy ra kích thước của mảng này với h, w, d lần lượt là chiều cao, chiều rộng, độ sâu của bước ảnh Với ảnh có màu thì độ sau thường là 3, ảnh đen trắng là 1

+ Lấy giá trị màu ở một điểm ảnh

Đoạn lệnh sau lấy ra giá trị màu ở điểm ảnh tại vi trí 50, 50 với gốc tọa độ là điểm trên cùng bên trái hình ảnh

Giá trị các thành phần màu có giá trị từ 0 đên 255

Trang 35

+ Cắt ảnh

Đoạn lệnh sau cắt ảnh có tọa độ điểm trên cùng bên trái là (50, 60) và tọa độ điểm dưới cùng bên phải là (350, 360)

+ Thay đổi kích thước ảnh

Để thay đổi kích thước của ảnh trong OpenCV thì chúng ta sẽ dùng hàm Resize Hàm này cần xác định rõ chiều cao, chiều rộng ảnh sau khi biến đổi Tuy nhiên ảnh sau khi thay đổi thường cùng tỷ lệ chiều cao, chiều rộng với ảnh gốc Đoạn lệnh sau biến đối ảnh gốc có chiều rộng 580 Pixel sang ảnh có chiều rộng là 300 Pixel

+ Xoay ảnh

Để xoay được ảnh đầu tiên ta cần xác định gốc xoay và hướng xoay Sau khi xác định xong tiếp theo ta tính ma trận xoay bằng hàm getRotationMatrix2D trong OpenCV Cuối cùng ta nhân ma trận này với ma trận ảnh gốc ta được ảnh sau khi xoay

Đoạn lệnh dưới đây xoay ảnh một góc 45 theo chiều ngược kim đồng hồ với gốc xoay là điểm chính giữa hình ảnh

2.3 Tìm đường biên của ảnh

Một điểm được coi là điểm biên nếu có sự thay đổi nhanh hoặc đột ngột về mức xám, tuy nhiên một điểm nhiễu cũng có đặc trưng giống như một điểm biên, tập hợp các điểm biên liên tiếp được gọi là đường biên hoặc đường bao Đường biên có thể dùng để xác định hình dạng một vật thể, hoặc ngăn cách giữa các khu vực có mức xám khác nhau

Tìm đường biên của ảnh là làm nổi lên những điểm ảnh mà tại đó có sự biến đổi lớn về giá trị độ sáng Từ đó ta có các phương pháp tìm đường biên ảnh:

• Phát hiện biên trực tiếp

Trang 36

• Phát hiện biên gián tiếp • Phát hiện biên dựa vào trung bình cục bộ • Phát hiện biên dựa vào các phép toán hình thái Phương pháp phổ biến là phát hiện biên trực tiếp mà hiệu quả hơn cả là việc lấy đạo hàm bậc nhất của f(x,y) điều này sẽ làm nổi bật lên đường biên của ảnh dựa vào sự biến thiên độ sáng Việc lấy đạo hàm bậc nhất này gọi là phương pháp Gradient

Gradient là một vector có các thành phần biểu thị tốc độ thay đổi giá trị của điểm ảnh theo 2 hướng x, y; đại diện cho sự thay đổi về hướng và độ lớn của một vùng ảnh

Một kĩ thuật tiêu biểu ứng dụng Gradient là kĩ thuật Canny, kĩ thuật này cho ra kết quả đường biên mảnh và khá chính xác, phân biệt được điểm biên và điểm nhiễu

Các bước thực hiện kĩ thuật Canny:

Bước 1: Loại bỏ nhiễu trong ảnh và làm mờ ảnh bằng cách nhân chập với một bộ lọc

Gaussian

Bước 2: Tính toán giá trị Gradient trong ảnh, ta có thể sử dụng bộ lọc Sobel hoặc Prewitt

theo hai hướng x, y gọi là Gx, Gy

Bước 3: Tính độ lớn Gradient trong ảnh:

Trong đó 𝐺𝑥, 𝐺𝑦 là đạo hàm theo hướng x, y của điểm ảnh đang xét Góc θ sẽ được làm tròn theo các hướng thẳng đứng, nằm ngang và chéo tương ứng với các giá trị 0, 45, 90 và 135 độ

Trang 37

Hình 2.4: Các hướng xét giá trị

Bước 4: Loại bỏ những điểm không phải cực đại nhằm xóa bỏ những điểm không

thuộc biên Trong bước này ta sẽ so sánh giá trị Gradient của điểm ảnh với các điểm lân cận theo 4 hướng đã nói ở trên

Với θ = 0, điểm A sẽ là biên độ nếu Gradient tại A lớn hơn Gradient tại A3 và A7 Với θ = 45, điểm A sẽ là biên độ nếu Gradient tại A lớn hơn Gradient tại A2 và A6 Với θ = 90, điểm A sẽ là biên độ nếu Gradient tại A lớn hơn Gradient tại A1 và A5 Với θ = 135, điểm A sẽ là biên độ nếu Gradient tại A lớn hơn Gradient tại A8 và A4

Bước 5: Chọn ra biên của đối tượng trong ảnh

Sau các bước trên ta thu được một tập các điểm tương ứng trên đường biên khá mỏng Vì những điểm có giá trị gradient lớn bao giờ cũng có xác suất là biên thật sự hơn những điểm có giá trị của gradient nhỏ do đó để xác định chính xác hơn nữa biên của các đối tượng ta sử dụng các ngưỡng Theo đó bộ lọc canny sẽ sử dụng một ngưỡng trên và một ngưỡng dưới nếu gradient tại một điểm trong ảnh có giá trị lớn hơn ngưỡng trên thì ta xác nhận đó là một điểm trên biên của ánh Nếu giá trị này nhỏ hơn ngưỡng dưới thì đó không phải là điểm biên, trong trường hợp giá trị gradient nằm giữa ngưỡng trên và dưới thì nó chỉ được tính là điểm trên biên khi các điểm bên cạnh của nó có giá trị gradient lớn hơn ngưỡng trên

2.4 Giới thiệu Raspberry Pi

Raspberry Pi là một cái máy tính cỡ nhỏ sử dụng hệ điều hành Linux Đây là loại máy tính cỡ nhỏ được sử dụng chủ yếu để chạy các chương trình lớn nhằm đạt tín hiệu đầu ra nhanh chóng

Raspberry Pi 4 B+ (RP4) là mô hình cuối cùng được phát triển bởi công ty, có tất cả các hệ thống truyền thông có dây và không dây mới nhất được yêu cầu sử dụng trong hầu hết các dự án điều khiển thông minh

Raspberry Pi 4 là vi xử lý 4 lõi và có ba phiên bản khác nhau có ba dung lượng RAM khác nhau Pi 4 sử dụng mini HDMI và hỗ trợ hai cổng cho hai màn hình 4K

Trang 38

Raspberry Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman Và được phân phối chính bởi Element14, RS Components và Egoman

Hình 2.5: Cấu tạo của Raspberry Pi 4

Nhiệm vụ ban đầu của dự án Raspberry Pi là tạo ra máy tính rẻ tiền có khả năng lập trình cho những sinh viên , nhưng Pi đã được sự quan tầm từ nhiều đối tượng khác nhau Đặc tính của Raspberry Pi xây dựng xoay quanh bộ xử lí SoC Broadcom BCM2835 ( là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay được dùng trong điện thoại di động ) bao gồm CPU , GPU , bộ xử lí âm thanh /video , và các tính năng khác … tất cả được tích hợp bên trong chip có điện năng thấp này

Raspberry Pi không thay thế hoàn toàn hệ thống để bàn hoặc máy xách tay Bạn không thể chạy Windows trên đó vì BCM2835 dựa trên cấu trúc ARM nên không hỗ trợ mã x86/x64 , nhưng vẫn có thể chạy bằng Linux với các tiện ích như lướt Web , môi trường Desktop và các nhiệm vụ khác Tuy nhiên Raspberry Pi là một thiết bị đa năng đáng ngạc nhiên với nhiều phần cứng có giá thành rẻ nhưng rất hoàn hảo cho những hệ thống điện tử , những dự án DIY , thiết lập hệ thống tính toán rẻ tiền cho những bài học trải nghiệm lập trình…

Raspberry Pi có hai phiên bản, Model A có giá 25$ và Model B có giá 35$ Model B như hình trên thông dụng hơn cả Model B bao gồm những phần cứng và những cổng giao diện

Trang 39

Hình 2.6: Cấu tạo Raspberry Model B

*Thông số kỹ thuật:

- SoC 700MHz với 512MB RAM - 1 cổng HDMI cho đầu ra âm thanh / video số - 1 cổng video RCA cho đầu ra video Analog - Jack Headphone Stereo 3.5mm cho đầu ra âm thanh Analog - 02 cổng USB

- 01 đầu đọc thẻ nhớ SD để tải hệ điều hành - 01 cổng Ethernet LAN

- 01 giao diện GPIO (General Purpose Input/Output) Về cơ bản Raspberry Pi có khá nhiều OS Linux chạy được nhưng vẫn có sự thiếu vắng của Ubuntu (do CPU ARMv6)

Điểm danh một số Distributions Linux (nhúng) chạy trên Raspberry Pi như Raspbian, Pidora, openSUSE, OpenWRT, OpenELEC,…

2.4.1 Ưu điểm:

- Giá rẻ - Nhỏ gọn - Siêu tiết kiệm điện - GPU mạnh

- Phục vụ cho nhiều mục đích - Khả năng hoạt động liên tục 24/7

2.4.2 Nhược điểm:

- CPU cấu hình thấp - LAN 100

- Không có tích hợp WiFi

Trang 40

- Yêu cầu phải có kiến thức cơ bản về Linux, điện tử

2.4.3 Ứng dụng của Raspberry Pi

Raspberry Pi có thể được sử dụng trong tự động hóa trong nhà Có thể được sử dụng làm máy chủ cho một mạng nhỏ

Trong lĩnh vực robot và các hệ thống nhúng khác

2.4.4 Công dụng nổi bật của Raspberry Pi

Với khả năng tùy biến cao, Raspberry Pi có thể biến thành rất nhiều thiết bị từ phần cứng đến phần mềm, có thể kể đến một số công dụng như sau:

- Đầu coi phim HD giống như TV Box, hỗ trợ KODI đầy đủ - Máy chơi game cầm tay, console, game thùng Chơi như máy điện tử băng ngày xưa, giả lập được nhiều hệ máy

- Cắm máy tải Torrent 24/24 - Dùng làm VPN cá nhân - Biến ổ cứng bình thường thành ổ cứng mạng (NAS) - Làm camera an ninh, quan sát từ xa

- Hiển thị thời tiết, hiển thị thông tin mạng nội bộ… - Máy nghe nhạc, máy đọc sách

- Làm thành một cái máy Terminal di động có màn hình, bàn phím, pin dự phòng để sử dụng mọi lúc mọi nơi, dò pass WiFi…

- Làm thiết bị điều khiển SmartHome, điều khiển mọi thiết bị điện tử trong nhà - Điều khiển robot, máy in không dây từ xa, AirPlay…

2.5 Giới thiệu phần mềm Arduino IDE

- Nền tảng: Windows, MacOS, Linux - Dung lượng: ~530MB

- Loại ứng dụng: Công cụ - Nhà phát hành: Arduino Software - Tính năng chính của Arduino IDE - Phần mềm lập trình mã nguồn mở miễn phí

Hình 2.7: Arduino IDE - Phần mềm lập trình mã nguồn mở

Ngày đăng: 20/09/2024, 19:37

w