Trên cơ sở đó, chúng em đã tìm hiểu và quyết định chọn đề tài mang tính nghiên cứu, ứng dụng cao, phù hợp với sự phát triển của các ngành sản xuất là “Thiết kế và thi công hệ thống phân
Trang 1BỘ 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 -
Trang 2BỘ 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
Trang 3TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH
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
Hệ đào tạo: Đại học chính quy Mã hệ: 1
I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG PHÂN LOẠI SẢN PHẨM
BÚT CHÌ THEO MÀU SẮC
II NHIỆM VỤ
1 Các số liệu ban đầu:
- Kích thước băng tải 1: chiều dài 30cm, chiều rộng 20cm, chiều cao 25cm
- Kích thước băng tải 2: chiều dài 100cm, chiều rộng 20cm, chiều cao 20cm
- Webcam Logitech C270p đóng vai trò thu nhận ảnh đầu vào
- Board Arduino Uno R3 là bộ điều khiển trung tâm của mô hình
- Dùng động cơ Servo 5V để gạt sản phẩm
- Động cơ DC 12V điều khiển kéo băng tải
2 Nội dung thực hiện:
- Nghiên cứu, tìm hiểu Webcam Logitech C270p
- Nghiên cứu, tìm hiểu động cơ Servo và board Arduino Uno R3
- Nghiên cứu, tìm hiểu phần mềm lập trình Matlab
- Nghiên cứu, tìm hiểu các thuật toán và các hàm, các không gian màu áp dụng cho việc xử lý màu sắc
- Viết code chương trình Matlab xử lý ảnh, màu sắc
- Xây dựng chương trình điều khiển mô hình giao tiếp giữa Matlab và Arduino
- Thiết kế, xây dựng phần cứng của mô hình
- Chạy thử nghiệm, cân chỉnh và sửa lỗi mô hình
- Viết báo cáo luận văn
- Báo cáo đề tài tốt nghiệp
Trang 4III NGÀY GIAO NHIỆM VỤ: 07/10/2019
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 18/12/2020
V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: PGS.TS Nguyễn Thanh Hải
CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 5TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH
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
- Gặp và báo cáo với GVHD về hướng thực hiện đề tài
- Tìm hiểu và cài đặt ngôn ngữ lập trình Matlab cho máy tính
Tuần 4
Từ 28/10/2019
đến 3/11/2019
- Tìm hiểu vi điều khiển Arduino Uno R3
- Tìm hiểu động cơ, webcam phục vụ cho đề tài
- Kết nối Arduino và webcam với Matlab
- Kết nối Arduino với động cơ, servo
Tuần 6
Từ 11/11/2019
đến 17/11/2019
- Báo cáo tiến độ cho GVHD
- Viết chương trình trên Matlab phân tích và xử lý màu sắc
- Chạy mô phỏng kết quả trên máy tính
Trang 6Tuần 7
Từ 18/11/2019
đến 24/11/2019
- Báo cáo tiến độ cho GVHD
- Viết chương trình điều khiển động cơ trên MatLab
- Chạy mô phỏng, kiểm tra hoạt động của cảm biến và động cơ
Tuần 8
Từ 25/11/2019
đến 1/12/2019
- Báo cáo tiến độ cho GVHD
- Lắp ráp các khối điều khiển vào mô hình
- Viết chương trình toàn bộ hệ thống và kiểm tra lỗi
Tuần 9
Từ 2/12/2019
đến 8/12/2019
- Báo cáo tiến độ cho GVHD
- Chạy thử nghiệm và cân chỉnh các khối điều khiển trên
- Báo cáo tiến độ cho GVHD
- Viết báo cáo luận văn
Trang 7LỜI CAM ĐOAN
Đề tài này là do chúng em tự thực hiện dựa vào một số tài liệu và công trình nghiên cứu, không sao chép từ tài liệu hay công trình đã có trước đó Nếu có sao chép chúng em hoàn toàn chịu trách nhiệm
Sinh viên thực hiện đề tài
Trần Văn Tuấn Phạm Văn Long
Trang 8LỜI CẢM ƠN
Tục ngữ có câu “Uống nước nhớ nguồn, ăn quả nhớ người trồng cây” Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ dù ít hay nhiều, dù gián tiếp hay trực tiếp Trong quá trình thực hiện đề tài tốt nghiệp chúng em gặp phải những rào cản khó khăn cũng như hạn chế về kiến thức và đã được Thầy PGS.TS Nguyễn Thanh Hải hướng dẫn tận tình, chu đáo Vì thế, trong lời đầu tiên của quyển báo cáo đồ án tốt nghiệp này, chúng em xin dành lời cảm ơn chân thành sâu sắc nhất đến Thầy PGS.TS Nguyễn Thanh Hải và các Thầy Cô trong bộ môn Điện Tử Công Nghiệp – Y Sinh của Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh, cũng như dành lời cảm ơn đến cha mẹ, gia đình đã luôn động viên, hỗ trợ để chúng em có thể hoàn thành tốt đồ án này
Với kiến thức và kinh nghiệm còn hạn chế, bài báo cáo của chúng em chắc chắn không thể tránh khỏi những sai sót Chúng em rất mong nhận được sự chỉ bảo và những đóng góp quý báu của quý Thầy Cô để chúng em có điều kiện bổ sung, hoàn thiện đề tài hơn
Một lần nữa, chúng em xin chân thành cảm ơn!
Sinh viên thực hiện đề tài
Trần Văn Tuấn Phạm Văn Long
Trang 9MỤC LỤC
Trang bìa i
Nhiệm vụ đồ án ii
Lịch trình iv
Cam đoan vi
Lời cảm ơn vii
Mục lục viii
Liệt kê hình vẽ xi
Liệt kê bảng xiv
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 của đề tài 3
1.5 Bố cục 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 4
2.1 Giới thiệu về xử lý ảnh 4
2.1.1 Thu nhận ảnh 4
2.1.2 Tiền xử lý ảnh 5
2.1.3 Phân đoạn ảnh 6
2.1.4 Biểu diễn và mô tả ảnh 6
2.1.5 Nhận dạng và nội suy 7
2.2 Không gian màu của ảnh 7
2.2.1 Không gian màu RGB 7
Trang 102.2.2 Không gian màu HSV 9
2.2.3 Chuyển đổi RGB sang HSV 10
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ 11
3.1 Thiết kế phần cứng 12
3.1.1 Khối nguồn 12
3.1.2 Khối thu nhận ảnh 13
3.1.3 Khối điều khiển 13
3.1.4 Khối thực thi 15
3.2 Phần mềm xử lý ảnh 17
3.2.1 Kết nối Webcam với Matlab 18
3.2.2 Kết nối Arduino với Matlab 19
3.3 Phương pháp xác định màu của bút chì 19
3.3.1 Bộ lọc trung bình 20
3.3.2 Chuyển đổi RGB sang HSV 21
3.3.3 Phân ngưỡng 21
3.3.4 Xác định màu bút chì 23
3.4 Sơ đồ kết nối hệ thống 23
3.5 Nguyên lý hoạt động 24
CHƯƠNG 4 THI CÔNG HỆ THỐNG 26
4.1 Thi công hệ thống 26
4.2 Lập trình hệ thống 30
4.2.1 Lưu đồ giải thuật mô phỏng 30
4.2.2 Lưu đồ giải thuật hệ thống 31
4.2.3 Lưu đồ giải thuật xác định màu sắc 32
4.3 Tài liệu hướng dẫn sử dụng, thao tác 34
Trang 11CHƯƠNG 5 KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 37
5.1 Thu thập dữ liệu ảnh 37
5.2 Kết quả quá trình thực hiện đề tài 38
5.2.1 Kết quả tính toán thời gian thu nhận ảnh 38
5.2.2 Kết quả xử lý màu sắc 38
5.2.3 Kết quả xử lý trên mô hình 40
5.2.4 Kết quả thống kê 43
5.3 Nhận xét và đánh giá chung 44
CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 45
6.1 Kết luận 45
6.2 Hướng phát triển 45
TÀI LIỆU THAM KHẢO PHỤ LỤC xvi
Trang 12LIỆT KÊ HÌNH VẼ
Hình Trang
Hình 2.1: Các giai đoạn chính trong xử lý ảnh 4
Hình 2.2: Cách thức nhân chập điểm ảnh với cửa sổ lọc 5
Hình 2.3: Không gian màu RGB 8
Hình 2.4: Hệ tọa độ màu RGB 8
Hình 2.5: Không gian màu HSV 9
Hình 3.1: Sơ đồ khối của hệ thống phân loại bút chì 11
Hình 3.2: Nguồn Adapter 12V 12
Hình 3.3: Webcam Logitech C270p 13
Hình 3.4: Mặt trước và sau của board Arduino UNO R3 14
Hình 3.5: Động cơ DC 15
Hình 3.6: Động cơ RC Servo S3003 16
Hình 3.7: Module 2 Relay 17
Hình 3.8: Giao diện chính của Matlab 18
Hình 3.9: Cửa sổ Command Window của Matlab khi gõ lệnh webcamlist 18
Hình 3.10: Cửa sổ Command Window của Matlab khi gõ lệnh arduino 19
Hình 3.11: Sơ đồ khối xác định màu của bút chì 19
Hình 3.12: Sơ đồ hoạt động của bộ lọc trung bình 20
Hình 3.13a: Ảnh RGB gốc của bút chì 20
Hình 3.13b: Ảnh RGB đã qua bộ lọc trung bình của bút chì 20
Hình 3.14: Sơ đồ hoạt động bộ chuyển đổi RGB sang HSV 21
Hình 3.15: Ảnh khi được chuyển đổi sang HSV 21
Hình 3.16: Ảnh vòng màu HSV 360° 21
Hình 3.17: Ảnh nhị phân của bút chì sau khi phân ngưỡng 22
Trang 13Hình 3.18: Ảnh RGB của bút chì được tái hiện sau khi nhân chập 22
Hình 3.19: Sơ đồ kết nối hệ thống 23
Hình 3.20: Sơ đồ nguyên lý hệ thống 24
Hình 4.1: Hình dạng mô hình thực tế hoàn chỉnh 26
Hình 4.2: Vị trí đặt Webcam Logitech C270p 27
Hình 4.3: Vị trí đặt động cơ DC 27
Hình 4.4: Vị trí đặt board Arduino Uno R3 và Module Relay 28
Hình 4.5: Vị trí đặt 2 động cơ Servo 28
Hình 4.6: Vị trí đặt 2 khay chứa bút chì 29
Hình 4.7: Vị trí đặt buồng tối 29
Hình 4.8: Lưu đồ giải thuật mô phỏng 30
Hình 4.9: Lưu đồ giải thuật hệ thống 31
Hình 4.10: Lưu đồ giải thuật xác định màu sắc 33
Hình 4.11: Giao diện khi khởi động Matlab 34
Hình 4.12: Nút Run trong giao diện Matlab 35
Hình 4.13: Giao diện điều khiển 35
Hình 4.14: Kết quả thu được 36
Hình 5.1: Tập ảnh thu thập 7 màu sắc khác nhau 37
Hình 5.2a: Ảnh tiền xử lý của bút chì màu đỏ 38
Hình 5.2b: Ảnh nhị phân của bút chì màu đỏ 38
Hình 5.2c: Ảnh phân vùng của bút chì màu đỏ 38
Hình 5.3a: Ảnh tiền xử lý của bút chì màu cam 38
Hình 5.3b: Ảnh nhị phân của bút chì màu cam 38
Hình 5.3c: Ảnh phân vùng của bút chì màu cam 38
Hình 5.4a: Ảnh tiền xử lý của bút chì màu vàng 39
Trang 14Hình 5.4c: Ảnh phân vùng của bút chì màu vàng 39
Hình 5.5a: Ảnh tiền xử lý của bút chì màu lục 39
Hình 5.5b: Ảnh nhị phân của bút chì màu lục 39
Hình 5.5c: Ảnh phân vùng của bút chì màu lục 39
Hình 5.6a: Ảnh tiền xử lý của bút chì màu lam 39
Hình 5.6b: Ảnh nhị phân của bút chì màu lam 39
Hình 5.6c: Ảnh phân vùng của bút chì màu lam 39
Hình 5.7a: Ảnh tiền xử lý của bút chì màu hồng 40
Hình 5.7b: Ảnh nhị phân của bút chì màu hồng 40
Hình 5.7c: Ảnh phân vùng của bút chì màu hồng 40
Hình 5.8a: Ảnh tiền xử lý của bút chì màu tím 40
Hình 5.8b: Ảnh nhị phân của bút chì màu tím 40
Hình 5.8c: Ảnh phân vùng của bút chì màu tím 40
Hình 5.9: Bút chì nhập liệu trên băng tải 1 41
Hình 5.10: Bút chì đi vào buồng tối 41
Hình 5.11: Bút chì ra khỏi buồng tối 42
Hình 5.12: Bút chì được tay gạt mở ra đón lấy 42
Hình 5.13: Tay gạt đóng lại gạt bút chì lăn xuống khay 43
Trang 15LIỆT KÊ BẢNG
Bảng Trang
Bảng 3.1: Danh sách các linh kiện 12
Bảng 3.2: Thông số kỹ thuật của Arduino Uno R3 14
Bảng 3.3: Bảng giá trị thông số HSV của từng màu 23
Bảng 5.1: Kết quả thống kê khi đưa vào bút chì có màu sắc nằm trong dữ liệu 43
Bảng 5.2: Kết quả thống kê khi đưa vào bút chì có màu không nằm trong dữ liệu 44
Trang 16TÓM TẮT
Ngày nay việc sử dụng xử lý ảnh là rất phổ biến như trong sản xuất công nghiệp, trí tuệ nhân tạo Do vậy, đề tài thiết kế và thi công mô hình hệ thống cho việc phân loại màu sắc từng cây bút chì là cần thiết Cụ thể, trong đồ án tốt nghiệp này bút chì sau khi nhận diện màu sắc sẽ được đưa vào từng hộp, mỗi hộp gồm bảy cây bút chì có màu sắc khác nhau là đỏ, cam, vàng, lục, lam, hồng, tím dùng kỹ thuật xử lý ảnh Nếu hộp bút chì thiếu màu nào trong bảy màu, servo sẽ gạt bút chì còn thiếu vào lần lượt hộp 1 và hộp 2, nếu cả hai hộp đều có màu đó rồi, bút chì sẽ tiếp tục đi thẳng Động cơ DC sẽ kéo băng tải hoạt động, bút chì được đặt trên băng tải và được băng tải di chuyển Khi bút chì đi vào buồng tối, thiết bị thu nhận ảnh sẽ thực hiên việc thu nhận ảnh cây bút chì và gửi dữ liệu cho máy tính để xử lý màu sắc Khi máy tính xử lý xong sẽ truyền dữ liệu xuống Arduino Uno R3 để điều khiển servo phân loại màu sắc bút chì
Máy tính xử lý phân loại màu sắc dựa trên ngôn ngữ lập trình Matlab Phần mềm Matlab cung cấp môi trường tính toán số và lập trình do công ty MathWorks thiết kế, cho phép thực hiện thuật toán, vẽ đồ thị, tạo giao diện người dùng cũng như liên kết với các chương trình máy tính được viết trên ngôn ngữ khác như C/C++ của Arduino, giúp cho việc xử lý trở nên dễ dàng hơn
Trang 17Hệ thống này giúp cho sản xuất được linh hoạt hơn, tiết kiệm thời gian và nhân lực, tăng năng suất, đem lại lợi ích kinh tế cao và hiệu quả Công nghiệp đòi hỏi phải ngày càng chính xác và nhanh chóng để đáp ứng được xu thế hiện đại hóa Các ngành công nghiệp đóng gói sản phẩm, dược phẩm cũng như trong lĩnh vực điện, điện tử là những ngành cần sự chính xác trong kiểm tra đầu ra, và để thay thế con người trong việc kiểm tra thành phẩm với một tốc độ và sự chính xác cao, công nghệ xử lý ảnh ra đời
và không ngừng phát triển để ngày càng hoàn thiện hơn
Sự ra đời của xử lý ảnh và những ứng dụng của nó là rất cần thiết cho cuộc sống Xử lý ảnh đã có từ rất lâu và đã được vận dụng trong những lĩnh vực như dân
sự, quân sự, y tế và nhiều lĩnh vực khác Ứ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ừ London đế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 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 Tuy nhiên, mới chỉ khoảng một thập niên trở lại đây, kiến thức xử lý ảnh mới được đưa vào để giảng dạy tại một vài trường đại học tại Việt Nam nhưng cũng chỉ hạn chế ở một vài trường lớn tại Thành phố Hồ Chí Minh
về đề tài này như đồ án “Nhận diện cảm xúc khuôn mặt người” của Nguyễn Thị Đài
Trang – Hà Tiến Dương [4] sử dụng camera, động cơ servo cùng với board Arduino
Trang 18CHƯƠNG 1 TỔNG QUAN
Uno R3 và phần mềm Matlab vào việc nhận diện cảm xúc vui để mở cửa, cảm xúc buồn để bật đèn, cảm xúc ngạc nhiên để đóng cửa và tắt đèn Hay tác giả Nguyễn
Phạm Anh Tuấn đã nghiên cứu đề tài khoa học “Nhận dạng biển số xe” dùng camera
và kỹ thuật tách biên cùng với chuyển ảnh nhị phân để nhận dạng biển số xe bất kì [5]
Và theo đó, xử lý ảnh trong phân loại sản phẩm đã và đang được nghiên cứu phát triển với tốc độ nhanh chóng Để phân loại sản phẩm có rất nhiều phương pháp, tuy nhiên hiện nay phương pháp phân loại dựa vào màu sắc chưa được ứng dụng nhiều và cũng có rất nhiều phương pháp như dùng cảm biến màu sắc, kính lọc màu Trên cơ sở đó, chúng em đã tìm hiểu và quyết định chọn đề tài mang tính nghiên cứu, ứng dụng cao, phù hợp với sự phát triển của các ngành sản xuất là “Thiết kế và thi công hệ thống phân loại sản phẩm bút chì theo màu sắc” bằng phương pháp xử lý ảnh trên phần mềm Matlab
Thiết kế và thi công một hệ thống phân loại bút chì, trong đó sử dụng Webcam
để thực hiện việc thu nhận hình ảnh bút chì, rồi gửi dữ liệu vào máy tính để xử lý màu sắc cho việc phân loại 7 màu sắc khác nhau của bút chì Hệ thống sử dụng bộ xử lý
trung tâm là vi điều khiển Arduino Uno R3 nhận dữ liệu từ máy tính
Đề tài được thực hiện qua những nội dung như sau:
- Nghiên cứu, tìm hiểu Webcam Logitech C270p
- Nghiên cứu, tìm hiểu động cơ Servo và board Arduino Uno R3
- Nghiên cứu, tìm hiểu phần mềm lập trình Matlab
- Nghiên cứu, tìm hiểu các thuật toán và các hàm, các không gian màu áp dụng cho việc xử lý màu sắc
- Viết code chương trình Matlab xử lý ảnh, màu sắc
- Xây dựng chương trình điều khiển mô hình giao tiếp giữa Matlab và Arduino
- Thiết kế, xây dựng phần cứng của mô hình
- Chạy thử nghiệm, cân chỉnh và sửa lỗi mô hình
- Viết báo cáo luận văn
- Báo cáo đề tài tốt nghiệp
Trang 19CHƯƠNG 1 TỔNG QUAN
1.4 GIỚI HẠN CỦA ĐỀ TÀI
Đề tài này chỉ tập trung vào việc xác định màu sắc của cây bút chì cụ thể: màu
đỏ, cam, vàng, lục, lam, hồng, tím Không đánh giá chất lượng của bút chì Do đó, các bức ảnh đưa vào được thực hiện như sau:
- Bút chì được đặt trên phông nền có màu sắc không trùng với màu của bút chì
- Xử lý và phân loại màu sắc từng cây bút chì trên hệ thống
- Ảnh được chụp trong điều kiện ánh sáng bình thường, cố định
- Đề tài chỉ giới hạn trong mô hình thu nhỏ
Chương 1: Tổng Quan
Đặt vấn đề liên quan đến đề tài, tìm hiểu những lý do và sự cần thiết để thực hiện đề tài, mục tiêu hoàn thành, giới hạn cũng như những bước đi từ cơ bản đến cụ thể mà nhóm sẽ thực hiện trong quá trình nghiên cứu đề tài
Chương 2: Cơ Sở Lý Thuyết
Trình bày các kiến thức về các bước cơ bản trong xử lý ảnh, không gian màu của ảnh
Chương 3: Thiết Kế Hệ Thống
Trình bày sơ đồ khối của hệ thống, thiết kế cho từng khối Sơ đồ kết nối phần cứng, nguyên lý hoạt động
Chương 4: Thi Công Hệ Thống
Lắp đặt webcam, động cơ servo, buồng tối và khay chứa bút chì cho mô hình băng tải, trình bày lưu đồ giải thuật và viết chương trình phân tích màu sắc bút chì cho mô hình
Chương 5: Kết Quả, Nhận Xét và Đánh Giá
Trình bày kết quả đã đạt được, đưa ra những bàn luận về sản phẩm và viết tài liệu hướng dẫn hệ thống
Chương 6: Kết Luận và Hướng Phát Triển
Kết luận chung về đề tài và hướng phát triển của nó
Trang 20CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Chương 2 CƠ SỞ LÝ THUYẾT
Xử lý ảnh kỹ thuật số là một trong những đối tượng nghiên cứu của lĩnh vực thị giác máy tính (computer vision), cùng với phương pháp thu nhận, phân tích và nhận dạng các hình ảnh Cũng như xử lý dữ liệu bằng đồ họa, xử lý ảnh số là một phần 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ã hóa các ảnh tự nhiên
Những năm trở lại đây với sự phát triển của phần cứng máy tính, xử lý ảnh đã phát triển một cách mạnh mẽ và có nhiều ứng dụng thực tiễn trong cuộc sống Có thể liệt kê những ứng dụng của xử lý ảnh như: khôi phục, chỉnh sửa hình ảnh; các lĩnh vực nhận dạng như nhận dạng chữ viết, vân tay; thị giác máy tính, chuyển động của robot; xe không người lái, xe tự hành; ứng dụng trong an ninh và giám sát; các ứng dụng trong y học như nội soi, xử lý tế bào;
Mô tả cụ thể các bước cơ bản trong một hệ thống xử lý ảnh:
Thu nhận ảnh
(Camera,
Scanner)
Tiền xử lý ảnh
Phân đoạn ảnh
Biểu diễn và
mô tả ảnh
Nhận dạng và nội suy
Hình 2.1: Các giai đoạn chính trong xử lý ảnh [6]
2.1.1 Thu Nhận Ảnh
Đây là công đoạn đầu tiên mang tính quyết định đối với quá trình xử lý ảnh Ảnh đầu vào sẽ được thu nhận qua các thiết bị như camera, máy scan Sau đó các tín hiệu này sẽ được số hóa Các thông số quan trọng ở đây là độ phân giải, chất lượng màu và tốc độ thu nhận ảnh của các thiết bị Chất lượng của 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)
Trang 21CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1.2 Tiền Xử Lý Ảnh
Ở bước này, ảnh sẽ được xử lý để cải thiện về độ tương phản, khử nhiễu,… với mục đích làm cho chất lượng ảnh trở nên tốt hơn, rõ nét hơn Quá trình này thường được thực hiện bởi các bộ lọc Bộ lọc trung bình được sử dụng chính trong bước tiền
xử lý ảnh này, nó là bộ lọc mà mỗi điểm ảnh được thay thế bằng trung bình trọng số của các điểm lân cận nhằm loại bỏ những điểm ảnh biến đổi lớn hơn so với điểm lân cận (hay còn gọi là nhiễu) Bộ lọc trung bình được định nghĩa:
g(x, y) = ∑ ∑(k,l)∈Wa(k, l)f(x − k, y − l) (2.1) Trong kỹ thuật lọc trên, nếu ta dùng các trọng số như nhau thì phương trình trên trở thành:
g(x, y) = 1
N∑ ∑(k,l)∈Wf(x − k, y − l) (2.2) Với: f(x, y) là ảnh đầu vào
g(x, y) là ảnh đầu ra
a(k, l) là cửa sổ lọc (mặt nạ)
Trong lọc trung bình, người ta thường ưu tiên cho các hướng để bảo vệ biên của ảnh khỏi bị mờ khi làm trơn ảnh Các kiểu mặt nạ được sử dụng tùy theo các trường hợp khác nhau
Hình 2.2: Cách thức nhân chập điểm ảnh với cửa sổ lọc [7]
𝑔(𝑥, 𝑦) =1
9[𝑓(𝑥 − 1, 𝑦 − 1) + 𝑓(𝑥 − 1, 𝑦) + 𝑓(𝑥 − 1, 𝑦 + 1)
+ 𝑓(𝑥, 𝑦 − 1) + 𝑓(𝑥, 𝑦) + 𝑓(𝑥, 𝑦 + 1)+ 𝑓(𝑥 + 1, 𝑦 − 1) + 𝑓(𝑥 + 1, 𝑦) + 𝑓(𝑥 + 1, 𝑦 + 1)]
Trang 22CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1.3 Phân Đoạn Ảnh
Phân đoạn hay còn gọi phân vùng ảnh là phân tích ảnh thành những thành phần
có cùng tính chất nào đó dựa theo biên hay các vùng liên thông Tiêu chuẩn để xác định các vùng liên thông có thể là cùng màu, cùng mức xám,… Mục đích của phân đoạn ảnh là để có một miêu tả tổng hợp về nhiều phần tử khác nhau cấu tạo nên ảnh thô, để tìm ra các đặc trưng của ảnh Với các thao tác: tìm biên, tách biên, phân loại đối tượng Sử dụng các phương pháp: phát hiện biên cục bộ, dò biên, phân vùng theo miền đồng nhất, phân vùng dựa theo đường biên
Trong đề tài này nhóm chúng em đã sử dụng bộ tách biên Sobel để tách biên ảnh Bộ tách biên Sobel dùng mặt nạ Sobel để tính các đạo hàm bậc nhất Gx và Gy Các mặt nạ này được thiết kế để tìm ra các đường biên theo chiều đứng và chiều ngang một cách tốt nhất
2.1.4 Biểu Diễn Và Mô Tả Ảnh
Kết quả của bước phân đoạn ảnh thường được cho dưới dạng dữ liệu điểm ảnh thô, trong đó có hàm chứa biên của một vùng ảnh, hoặc tập hợp tất cả các điểm ảnh thuộc về chính vùng ảnh đó Việc biến đổi các số liệu này thành dạng thích hợp là
Trang 23CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
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 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 Dựa vào phần tử đặc trưng của ảnh đó là pixel Ta có thể biểu diễn ảnh bằng hàm toán học, hoặc các ma trận điểm
2.1.5 Nhận Dạng Và Nội Suy
Nhận dạng ảnh có thể nhìn nhận một cách đơn giản là quá trình xác định ảnh, liên quan đến mô tả đối tượng mà ta muốn đặc tả về nó 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 dựa trên cơ sở nhận dạng Theo lý thuyết
về nhận dạng, các mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh
cơ bản là: nhận dạng theo tham số và 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 là: nhận dạng ký tự, nhận dạng vân tay, nhận dạng khuôn mặt
Ứng dụng trong đề tài này, sau khi ảnh được phân tích và xử lý xong, quá trình nhận dạng màu sắc của ảnh được thực hiện so sánh với ảnh ban đầu được chụp từ webcam Dựa trên cơ sở nhận dạng, ta biết được màu sắc là màu gì
Không gian màu là những phương pháp định lượng màu sắc được thiết lập công thức một cách khoa học Hệ thống không gian màu dùng mô hình toán học để xác định màu, biểu diễn mỗi màu dưới dạng số học, bằng cách đó ta có thể chọn và lặp lại màu nào đó thật chính xác Trên thực tế, có rất nhiều không gian màu khác nhau để sử dụng vào những mục đích khác nhau như: RGB, HSV, HSL, CMYK Trong đó, RGB và HSV là hai không gian màu cơ bản và ứng dụng nhiều nhất Còn không gian màu CMYK thường được sử dụng trong in ấn màu
2.2.1 Không Gian Màu RGB
Không gian màu RGB là một không gian màu cơ bản trong xử lý ảnh, sử dụng
mô hình bổ sung trong đó ánh sáng đỏ, xanh lá cây, xanh da trời được tổ hợp với nhau theo nhiều phương thức khác nhau để tạo thành các màu khác nhau Tất cả đều là sự pha trộn của 3 màu cơ bản là Red, Green và Blue
Trang 24CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2.3: Không gian màu RGB
Ta cũng cần lưu ý rằng, tự bản thân mô hình màu RGB không định nghĩa thế nào là “đỏ”, “xanh lá”, “xanh dương” 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ể
Trong biểu diễn số trên máy tính, ảnh màu RGB có thể sử dụng số bit màu là
16, 24, 32 hoặc 48 bit Điểm ảnh có số bit màu càng cao thì màu sắc của điểm ảnh càng được biểu diễn chính xác
Mô hình màu RGB được biểu diễn bởi khối lập phương với các trục R, G, B như sau:
Hình 2.4: Hệ tọa độ màu RGB
Trang 25CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Thông thường ảnh số được mã hóa bằng 24 bit thông tin cho mỗi điểm ảnh (bit per pixel hay bpp), nghĩa là 8bit ứng với mỗi kênh R, G, B, thì mỗi kênh màu này
sẽ nhận giá trị từ 0-255 Với một giá trị của mỗi kênh màu khác nhau kết hợp lại với nhau ta sẽ được một màu khác nhau, như vậy mô hình RGB có thể biểu diễn 28*28*28
Tuy nhiên, do tính tương quan cao giữa các kênh, giá trị cảm nhận không đồng nhất, sự pha trộn giữa dữ liệu thành phần màu và dữ liệu về độ sáng mà không gian màu RGB không được ưa chuộng sử dụng cho việc phân tích màu cũng như trong các thuật toán nhận dạng dựa trên màu sắc
2.2.2 Không Gian Màu HSV
Không gian màu HSV được dùng nhiều trong việc phân tích và chỉnh sửa ảnh
Hệ màu này dựa vào 3 thông số để mô tả màu sắc bao gồm: H = Hue: vùng màu; S = Saturation: độ bão hòa; V = Value: giá trị hay cường độ sáng Không gian màu này thường được biểu diễn dưới dạng hình nón ngược hoặc hình trụ
Hình 2.5: Không gian màu HSV
Trang 26CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Theo như cách biểu diễn không gian màu như trên, giá trị màu thuần khiết (H) chạy từ 0-360o Độ bão hòa (S) đi từ tâm ra mặt ngoài có giá trị từ 0-1 Giá trị S = 0 ứng với trục nón là nơi màu sắc nhạt nhất, giá trị S = 1 ở ngoài mặt nón là nơi mà giá trị màu sắc đậm đặc nhất Độ sáng của màu (V) được biểu diễn bằng cách đi từ dưới chóp nón lên và cũng nằm trong khoảng từ 0-1 Giá trị V = 0 là tối hoàn toàn và V =
1 là độ sáng lớn nhất Như vậy ứng với mỗi cặp ba giá trị (H, S, V) sẽ cho ta một màu sắc mà ở đó mô tả đầy đủ thông tin về màu sắc, độ đậm đặc và độ sáng của màu đó
2.2.3 Chuyển Đổi RGB Sang HSV
Từ đầu vào là không gian màu RGB ta có thể tìm không gian màu HSV như sau Giả sử ta có một điểm màu trong hệ RGB có giá trị là (R, G, B) Mỗi giá trị R,
G, B thay đổi trong phạm vi từ 0 đến 255, lấy mỗi giá trị này chia cho 255 ta được R', G', B' có giá trị thay đổi từ 0 đến 1 Ta chuyển sang không gian HSV như sau [8]:
S = [ 0 𝑘ℎ𝑖 Cmax = 0 ∆ 𝐶𝑚𝑎𝑥 𝑘ℎ𝑖 Cmax ≠ 0 (2.11) Tính toán giá trị V:
V = Cmax (2.12) Như vậy, với ba thông số H, S, V ta có thể xác định được khoảng giá trị ngưỡng một cách dễ dàng và việc chuyển đổi màu từ không gian RGB sang không gian HSV giúp cho quá trình xử lý nhận biết màu sắc của phần mềm được chính xác hơn
Trang 27CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Chương 3 TÍNH TOÁN VÀ THIẾT KẾ
Để giảm thiểu sai sót và không xảy ra sự cố khi thi công mô hình theo như ý tưởng đã đề ra, ta bắt buộc phải tính toán và thiết kế Với đề tài: “Thiết kế và thi công
hệ thống phân loại sản phẩm bút chì theo màu sắc” mục tiêu chính là phân loại được từng cây bút chì theo màu sắc và phân vào từng hộp thì công việc tính toán, thiết kế bao gồm những bước cụ thể như sau:
- Thiết kế sơ đồ khối của hệ thống
- Tính toán, thiết kế từng khối của hệ thống:
Khối nguồn
Khối thu nhận hình ảnh
Khối lập trình và xử lý dữ liệu đầu vào (máy tính)
Khối điều khiển
Khối thực thi
Hình 3.1: Sơ đồ khối của hệ thống phân loại bút chì Chức năng của từng khối:
- Khối nguồn: cung cấp nguồn điện cho các khối thu nhận hình ảnh, khối xử lý
dữ liệu, khối điều khiển và khối thực thi hoạt động
- Khối thu nhận hình ảnh: sử dụng webcam để chụp ảnh, giao tiếp với máy tính giúp nhận diện khi có bút chì đi vào
- Khối máy tính: ở đây chúng em dùng laptop có cài đặt những công cụ lập trình
để nhận dạng màu sắc, xử lý dữ liệu
- Khối điều khiển: dùng board Arduino UNO R3 làm bộ điều khiển trung tâm,
có nhiệm vụ nhận tín hiệu từ máy tính để điều khiển khối thực thi
Trang 28CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
- Khối chấp hành: bao gồm 2 động cơ DC 12V điều khiển kéo băng tải chuyển động, 2 động cơ servo có nhiệm vụ gạt bút chì để phân loại màu sắc
Bảng 3.1 Danh sách các linh kiện
STT Tên linh kiện Giá trị Số lượng Chú thích
1 Webcam Logitech 270p 5V 1 Nguồn USB Laptop
2 Board Arduino UNO R3 5V 1 Nguồn USB Laptop
3.1.1 Khối Nguồn
Đề tài chúng em sử dụng nguồn 1 chiều Adapter có sẵn
Hình 3.2: Nguồn Adapter 12V.
Thông số kỹ thuật:
- Điện áp đầu vào: AC100-240V 50/60Hz
- Điện áp đầu ra: 12V DC
Trang 29CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
- Dòng điện đầu ra: 3A
- Nhiệt độ hoạt động: 0~45oC
- Tổng chiều dài: 1.5m
- Công suất tối đa: 36W
Với 2 động cơ 12V định mức và dòng tối đa 1.5A, như vậy với nguồn 12V 3A cho công suất tối đa 36W sẽ đủ cho 2 động cơ
3.1.2 Khối Thu Nhận Ảnh
Nhóm chúng em sử dụng Webcam Logitech C270p vì có giá thành rẻ, hoạt động ổn định Với độ phân giải lên tới 720p/30fps cho chất lượng video sáng và rõ nét, tích hợp mic giảm tiếng ồn, nhỏ gọn linh hoạt và có thể điều chỉnh góc quay
Hình 3.3: Webcam Logitech C270p
Thông số kỹ thuật:
- Độ phân giải video 1280 x 720 pixel
- Độ phân giải ảnh lên tới 3.0 megapixel
- Phạm vi quan sát: 60o
- USB 2.0 tốc độ cao
- Webcam có dây dài 1.5m
Camera được đặt phía trên, vuông góc với mặt băng tải và cách mặt băng tải 30cm để cho hình ảnh tốt nhất
3.1.3 Khối Điều Khiển
Board Arduino có rất nhiều phiên bản với hiệu năng và mục đích sử dụng khác nhau Trong đề tài này chúng em sử dụng board Arduino UNO R3 bởi chi phí và tính linh động của nó Arduino UNO R3 là một board điều khiển dựa trên vi điều khiển ATmega328 Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân
Trang 30CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
đầu vào analog, 14 chân I/O tín hiệu số tương thích với nhiều board mở rộng khác nhau Nó có thể nạp chương trình qua cổng USB, cấp nguồn qua USB hoặc adapter
Hình 3.4: Mặt trước và sau của board Arduino UNO R3 [9]
Bảng 3.2: Thông số kỹ thuật của Arduino Uno R3.
Vi điều khiển ATmega328 họ 8bit
Điện áp hoạt động 5V DC (cấp qua cổng USB)
Điện áp vào khuyên dùng 7-12V DC
Điện áp vào giới hạn 6-20V DC
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 30mA
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi
bootloader
Trang 31CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
độ của xung đồng hồ Thông qua những thông số này, chúng ta sẽ có những cách lựa chọn các linh kiện cho phù hợp với những quy định về điện áp, dòng điện, mục đích lập trình để đảm bảo cho mô hình hoạt động ổn định
3.1.4 Khối Thực Thi
Động cơ DC
Động cơ DC (Direct Current) là động cơ điện một chiều có cấu tạo gồm hai dây (dây nguồn và dây tiếp đất) Động cơ phụ thuộc vào lực mà từ trường tạo ra Khi cấp điện thì động cơ DC sẽ chuyển điện năng thành cơ năng và quay với tốc độ được tính bằng rpm Tốc độ của động cơ DC được điều khiển bằng cách biến đổi điện áp cung cấp, thay đổi cường độ dòng điện hoặc điều biến độ rộng xung (PWM)
Trang 32CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Động cơ trong mô hình dùng để kéo băng tải hoạt động, vận chuyển bút chì di chuyển từ đầu băng tải đến cuối băng tải
Động cơ Servo
Động cơ RC Servo S3003 được ứng dụng rộng rãi và đóng vai trò quan trọng trong việc chế tạo và vận hành mô hình, robot Bên trong một servo có bốn thành phần chính gồm động cơ DC, hộp số, biến trở và mạch điều khiển được tích hợp sẵn
driver điều khiển theo cơ chế phát xung – quay góc
- Tốc độ quay: 0.17sec/60degree (4.8v), 0.14sec/60degree (6v)
- Dòng tối đa: 1A
- Phạm vi nhiệt độ: 0 ºC – 55 ºC
- Công suất tối đa: 5W
Trong đề tài, động cơ RC Servo S3003 được dùng để hoạt động gạt sản phẩm vào 2 vị trí đã quy định
Module 2 Relay
Module 2 Relay với opto cách ly nhỏ gọn, có opto và transistor cách ly giúp cho việc sử dụng trở nên an toàn, mạch được sử dụng để đóng ngắt nguồn điện công
Trang 33CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
suất cao AC hoặc DC, có thể chọn đóng khi kích mức cao hoặc mức thấp bằng Jumper
Tiếp điểm đóng ngắt gồm 3 tiếp điểm NC (thường đóng), NO (thường mở) và COM (chân chung) được cách ly hoàn toàn với board mạch chính, ở trạng thái bình thường chưa kích, NC-COM sẽ ngắn mạch còn NO-COM sẽ hở mạch, khi có trạng thái kích thì NC-COM sẽ hở mạch và NO-COM sẽ ngắn mạch, hay nói cách khác COM sẽ chuyển sang nối với NO và mất kết nối với NC
Hình 3.7: Module 2 Relay
Thông số kỹ thuật:
- Sử dụng điện áp nuôi DC 5V
- Điện thế đóng ngắt tối đa: AC 250V ~ 10A, DC 30V ~ 10A
- Dòng điện kích hoạt: 5mA
- Kích thước Module: 39 x 51 x 20mm
- Relay tiêu thụ dòng khoảng: 80mA
- Có đèn báo đóng ngắt trên Relay
- Công suất tối đa: 4W
Trong đề tài này module 2 relay được dùng để đóng ngắt động cơ
MATLAB là phần mềm cung cấp môi trường tính toán số và lập trình, do công
ty MathWorks thiết kế MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm
số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác
Trang 34CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.8: Giao diện chính của Matlab
Hệ thống được xây dựng toàn bộ trên nền Matlab nhúng dữ liệu xuống kit Arduino nên quá trình tính toán và thiết kế được thực hiện chủ yếu trên phần mềm Matlab nhận dữ liệu hình ảnh từ Webcam và xử lý, sau đó truyền tín hiệu xuống Arduino để điều khiển động cơ DC và Servo
3.2.1 Kết nối Webcam với Matlab
Ta kết nối thiết bị Webcam Logitech C270p với máy tính thông qua cổng USB
Để kiểm tra có giao tiếp giữa Webcam và phần mềm Matlab hay không, ta gõ dòng lệnh trong Command Window của Matlab như sau: >>webcamlist [10]
Hình 3.9: Cửa sổ Command Window của Matlab khi gõ lệnh webcamlist
Trên cửa sổ hiển thị 2 webcam có trong máy là webcam có sẵn của laptop và webcam Logitech C270p vừa kết nối, nghĩa là Matlab đã được giao tiếp với Webcam
Trang 35CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
3.2.2 Kết nối Arduino với Matlab
Ta gắn board Arduino Uno R3 vào máy tính qua cáp USB Sau đó kiểm tra giao tiếp giữa Matlab và board Arduino bằng lệnh: >>arduino [10]
Hình 3.10: Cửa sổ Command Window của Matlab khi gõ lệnh arduino Cửa sổ Command Window hiển thị đúng như Hình 4.19 nghĩa là board
Arduino Uno đã giao tiếp được với Matlab và sử dụng cổng USB COM5
Như đã trình bày trong phần Cơ sở lý thuyết ở chương 2, dưới đây là sơ đồ khối của phương pháp xác định màu bút chì Sơ đồ bao gồm 6 khối chính: khối thu nhận ảnh, bộ lọc trung bình, bộ chuyển đổi RGB sang HSV, phân ngưỡng, tái hiện ảnh, xác định màu của bút chì
THU NHẬN ẢNH
BỘ LỌC TRUNG BÌNH CHUYỂN ĐỔI RGB HSV PHÂN NGƯỠNG
TÁI HIỆN ẢNH
XÁC ĐỊNH MÀU BÚT CHÌ
Hình 3.11: Sơ đồ khối xác định màu của bút chì
Trang 36CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
3.3.1 Bộ lọc trung bình
Ảnh thu nhận được thường có hai nguồn nhiễu là: nhiễu cuộn và nhiễu muối tiêu Cả hai nguồn nhiễu này phân bố ở các thành phần tần số cao, sau khi ảnh qua bộ lọc trung bình thì ảnh đã được lọc đi một phần nhiễu và trở nên mịn hơn so với ảnh ban đầu
Bộ lọc trung bình
Hình 3.12: Sơ đồ hoạt động của bộ lọc trung bình
Lọc trung bình có giá trị điểm ảnh chính là tích nhân chập ảnh đầu vào với cửa
sổ lọc H Cửa sổ lọc H trong trường hợp này có dạng:
Trang 37CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Nhận xét: Từ ảnh trên ta thấy bộ lọc đã lọc đi một phần nhiễu, làm ảnh mịn hơn so với ảnh gốc khi chưa qua bộ lọc trung bình
3.3.2 Chuyển đổi RGB sang HSV
Ảnh webcam thu nhận thường là ảnh ở không gian màu RGB, nhưng không gian màu RGB việc xử lý nhận dạng màu sắc sẽ không hoàn toàn chính xác Để việc nhận dạng màu sắc được chính xác hơn, ta phải chuyển đổi ảnh từ không gian màu RGB sang không gian màu HSV Đây là bước tiếp theo trong quá trình xử lý ảnh của
hệ thống, giúp cho chương trình có thể phân biệt màu sắc bút chì một cách tối ưu nhất
Bộ chuyển đổi RGB HSV
Hình 3.14: Sơ đồ hoạt động bộ chuyển đổi RGB sang HSV
Để chuyển đổi từ không gian màu RGB sang không gian màu HSV ta dùng hàm rgb2hsv() như sau:
hsvImage = rgb2hsv(rgbImage);
Hình 3.15: Ảnh khi được chuyển đổi sang HSV
3.3.3 Phân ngưỡng
Trang 38CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Dựa trên dữ liệu màu bút chì có sẵn để phân loại (đỏ, cam, vàng, lục, lam, hồng, tím), cùng với vòng màu HSV ta sẽ xác định được thông số Hue, Saturation, Value của từng màu Các giá trị này dùng để phân ngưỡng, từ đó xác định được các màu sắc khác nhau của bút chì
Với 1 ảnh f(x,y) ta sẽ có ảnh đã phân ngưỡng g(x,y) được định nghĩa như sau:
𝑔(𝑥, 𝑦) = {1; 𝑓(𝑥, 𝑦) ≥ 𝑇
0; 𝑓(𝑥, 𝑦) < 𝑇 (3.4) Trong đó với T là ngưỡng Như vậy, các điểm ảnh được đánh nhãn 1 tương ứng với vật thể trong khi đó nhãn 0 tương ứng với nền [1]
Hình 3.17: Ảnh nhị phân của bút chì sau khi phân ngưỡng
Tái hiện ảnh
Ta tiến hành nhân chập ảnh nhị phân sau khi phân ngưỡng với ảnh gốc ban đầu, ta sẽ thu được ảnh phân vùng màu sắc của cây bút chì
Hình 3.18: Ảnh RGB của bút chì được tái hiện sau khi nhân chập
Dùng hàm tái hiện lại ảnh rgb sau khi phân ngưỡng: maskedRGBImageGreen
= cat(3, maskedImageRGreen, maskedImageGGreen, maskedImageBGreen);
Trang 39CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
3.3.4 Xác định màu bút chì
Do tính chất cấu trúc tuần tự của ngôn ngữ lập trình Matlab, sau khi tái hiện ảnh ta sẽ nhận biết được và phân loại màu bút chì theo thứ tự: Đỏ → Cam → Vàng
→ Lục → Lam → Hồng → Tím
Bảng 3.3 Bảng giá trị thông số HSV của từng màu
Trang 40CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.20: Sơ đồ nguyên lý hệ thống
Giải thích sơ đồ kết nối
Hình 3.19 là sơ đồ kết nối phần cứng của hệ thống Đầu tiên ta có Webcam Logitech C270p và Board Arduino Uno R3 kết nối với máy tính thông qua cổng USB Máy tính cung cấp nguồn để Webcam Logitech C270p và Board Arduino Uno R3 hoạt động Board Arduino Uno R3 kết hợp với 2 Module 1 Relay để điều khiển 2 động cơ DC kéo băng tải chuyển động, và kết hợp với 2 servo để gạt sản phẩm vào 2 khay
Với Module 2 Relay và động cơ DC: kết nối chân NO với chân V+ của động
cơ DC, chân COM nối với chân V+ của nguồn adapter 12V Kết nối chân VCC và GND của Module 2 Relay lần lượt với chân 5V và chân GND và của Arduino Uno, chân V- của động cơ DC nối với chân V- của nguồn adapter 12V, còn chân tín hiệu IN1 và IN2 của Module 2 Relay lần lượt được nối với chân D3 và D5 của Arduino Uno
~11
~10
RX < 0
~9 8 7
~6
~5 4
~3 2
SIM1
SIMULINO UNO
RL1 OMIH-SH-124L
RL2 OMIH-SH-124L
12V
DC1
DC2 SERVO1
SERVO2
220V