1. Trang chủ
  2. » Tất cả

Mô hình cung cấp, phân loại theo màu sắc bằng camera và đếm số lượng cà chua

91 9 0

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH CUNG CẤP, PHÂN LOẠI THEO MÀU SẮC BẰNG CAMERA VÀ ĐẾM SỐ LƯỢNG CÀ CHUA Ngành: KỸ THUẬT CƠ ĐIỆN TỬ Chuyên ngành: KỸ THUẬT CƠ ĐIỆN TỬ Giảng viên hướng dẫn: PGS.TS.Nguyễn Hùng Sinh viên thực hiện: MSSV: Lớp: Nguyễn Minh Đăng 1811030276 18DCTB1 Đặng Hoài Danh 1811032805 18DCTB1 Hồng Minh Lâm 1811030170 18DCTB1 TP Hồ Chí Minh,tháng năm 2022 MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii TÓM TẮT iii ABSTRACT iv MỤC LỤC v DANH MỤC HÌNH ẢNH vii CHƯƠNG 1:GIỚI THIỆU ĐỀ TÀI 1.1 Đặt vấn đề 1.2 Mục tiêu đề tài 1.3 Đối tượng nghiên cứu đề tài 1.4 Nội dung nghiên cứu 1.5 Phương pháp nghiên cứu 1.6 Phạm vi nghiên cứu 1.7 Kết cấu đồ án CHƯƠNG : TỔNG QUAN CÔNG NGHỆ PHÂN LOẠI SẢN PHẨM 2.1 Dây chuyền phân loại sản phẩm 2.1.1 Đặc tính dây chuyền phân loại sản phẩm 2.1.2 Ưu điểm dây chuyền phân loại sản phẩm tự động 2.1.3 Một số dây chuyền phân loại sản phẩm phổ biến 2.2 Quá trình xử lý ảnh 2.3 Đặc điểm ảnh 2.4 Quá trình trưởng thành cà chua 10 2.5 Không gian màu HSV(Hue-Saturation-Value) 11 2.6 Phương pháp phân loại cà chua theo màu sắc 12 2.7 Phương pháp tự cấp phôi cho hệ thống 12 CHƯƠNG 3:THIẾT KẾ CƠ KHÍ CHO HỆ THỐNG 13 3.1 Băng tải 13 3.1.1 Yêu cầu 13 3.1.2 Ứng dụng băng tải công nghiệp 15 3.1.3 Lựa chọn băng tải phù hợp 16 3.2 Động truyền động khớp nối trục dẫn động băng tải 17 3.2.1 Module mạch điều chỉnh tốc độ động 17 3.2.2 Động truyền động 18 3.2.3 Khớp nối trục dẫn động băng tải 21 3.3 Khung gá đỡ chi tiết(động – xi lanh – cảm biến – khí nén – van khí nén) 23 3.4 Khuông tự cấp phôi hệ thống phân loại: 24 3.5 Buồng xử lý ảnh 26 3.6 Tổng kết thiết kế xây dựng mơ hình 27 3.7 Kết luận thiết kế khí cho hệ thống 27 v CHƯƠNG 4:THIẾT KẾ ĐIỆN VÀ LẬP TRÌNH CHO HỆ THỐNG 28 4.1 Raspberry Pi Model B 28 4.1.1 Giới thiệu Raspberry Pi 28 4.1.2 Phần cứng Raspberry Pi Model B 28 4.1.3 Lý sử dụng Raspberry Pi Model B 30 4.2 Raspberry Camera Rev 1.3 31 4.3 Xi lanh khí nén(air-cylinder) 32 4.3.1 Giới thiệu xi lanh khí nén 32 4.3.2 Phân loại – Nguyên lý hoạt động xi lanh khí nén 33 4.3.3 Cấu tạo xi lanh khí nén 34 4.4 Van điện từ(Solenoid Valve) 34 4.5 Mạch Relay Opto Cách Ly 5/12VDC 36 4.6 Mạch chuyển mức tín hiệu chiều kênh TXS0108 37 4.7 Kết nối điện cho hệ thống xử lý ảnh 38 4.8 Kết nối điện cho động truyền động cho băng tải 40 4.9 Các khối hệ thống 42 4.10 Thiết kế khối hệ thống 43 4.10.1 Khối xử lý trung tâm 43 4.10.2 Khối hiển thị 44 4.10.3 Khối nguồn 44 4.10.4 Khối thu tín hiệu hình ảnh 46 4.11 Lưu đồ giải thuật hệ thống 48 CHƯƠNG 5:THI CƠNG MƠ HÌNH VÀ THỰC NGHIỆM 52 5.1 Gia cơng,lắp ráp phần cứng mơ hình 52 5.1.1 Gia công,lắp ráp khung đỡ giá chi tiết(Động – xi lanh – cảm biến – khí nén) 52 5.1.2 Gia công buồng xử lý ảnh 54 5.1.3 Gia công,lắp ráp hệ thống tự cấp phôi tự động 57 5.1.4 Gia công,lắp ráp khung giá đỡ chi tiết(động – xi lanh – cảm biến – khí nén) 61 5.2 Thực nghiệm hệ thống 63 5.3 Kết luận thực nghiệm hệ thống 69 CHƯƠNG 6:KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 70 6.1 Kết luận 70 6.2 Hướng phát triển 71 TÀI LIỆU THAM KHẢO 72 Phụ lục 73 PHỤ LỤC BẢN VẼ 79 vi DANH MỤC HÌNH ẢNH HÌNH TRANG Hình 2.1 Dây chuyền phân loại sản phẩm Hình 2.2 Hệ thống phân loại sản phẩm công nghiệp .5 Hình 2.3 Dây chuyền phân loại sản phẩm theo mã vạch Hình 2.4 Dây chuyền phân loại sản phẩm theo khối lượng .7 Hình 2.5 Dây chuyền phân loại sản phẩm theo kích thước Hình 2.6 Quá trình xử lý ảnh Hình 2.7 Mơ hình khơng gian màu HSV 11 Hình 3.1 Xây dựng mơ hình băng tải mẫu phần mềm Solidworks 13 Hình 3.2 Thơng số kích thước băng tải 14 Hình 3.3 Hình ảnh băng tải sử dụng thực tế 14 Hình 3.4 Băng tải sử dụng mơ hình 15 Hình 3.5 Thơng số kỹ thuật băng tải 16 Hình 3.6 Xây dựng mơ hình máng trượt phôi mẫu phần mềm Solidworks 16 Hình 3.7 Mạch điều chỉnh tốc độ động điện chiều CCMHC DC 12V-40V/10A 17 Hình 3.8 Xây dựng mơ hình động Solidworks 18 Hình 3.9 Thơng số kích thước động OA30A6207 18 Hình 3.10 Động OA30A6207 19 Hình 3.11 Nguyên lý làm việc PWM – Điều chế rộng xung 19 Hình 3.12 Khớp nối trục ứng dụng ngành công nghiệp 20 Hình 3.13 Xây dựng mơ hình khớp nối truyền động động băng tải 20 Hình 3.14 Khớp nối động lỗ – 8mm thực tế 21 Hình 3.15 Xây dựng mơ hình khung gá đỡ chi tiết phần mềm Solidworks 22 Hình 3.16 Thơng số kỹ thuật khung gá đỡ chi tiết 22 Hình 3.17 Hệ thống tự cấp phơi tự động cho máy tiện 23 Hình 3.18 Xây dựng mơ hình khng tự cấp phôi gá để tủ điện Solidworks 24 Hình 3.19 Thơng số kỹ thuật khng tự cấp phôi gá đế tủ điện 24 Hình 3.20 Xây dựng mơ hình buồng kín xử lý ảnh phần mềm 25 Hình 3.21 Thơng số kỹ thuật buồng kín băng tải 25 vii Hình 3.22 Lắp ráp chi tiết thiết kế phần mềm Solidworks 26 Hình 3.23 Mơ hình thiết kế hồn chỉnh thiết kế phần mềm Solidworks 26 Hình 4.1 Raspberry Pi Model B 27 Hình 4.2 Sơ đồ cấu tạo Raspberry Pi 28 Hình 4.3 Sơ đồ cấu hình Raspberry Pi 29 Hình 4.4 Raspberry Camera Rev 1.3 30 Hình 4.5 Thơng số chi tiết Camera 31 Hình 4.6 Xi lanh khí nén 32 Hình 4.7 Cấu tạo xi lanh khí nén 33 Hình 4.8 Van điện từ 33 Hình 4.9 Cấu tạo xi lanh khí nén 34 Hình 4.10 Nguyên lý hoạt động van điện từ 35 Hình 4.11 Mạch Relay Opto Cách Ly 5/12VDC 36 Hình 4.12 Mạch chuyển mức tín hiệu chiều kênh TXS0108 37 Hình 4.13 Sơ đồ kết nối cho hệ thống xử lý ảnh 37 Hình 4.14 Sơ đồ kết nối dây cho băng tải 39 Hình 4.15 Sơ đồ mạch điều khiển PWM sử dụng IC NE555 39 Hình 4.16 Kết nối điện cho cấu cấp phơi cho băng tải 40 Hình 4.17 Sơ đồ khối hệ thống 41 Hình 4.18 Sơ đồ kết nối với cổng Raspberry Pi 42 Hình 4.19 Bộ sạc nguồn 5V/2.5A cho Raspberry Pi 44 Hình 4.20 Bộ nguồn 12V/5A cho băng tải hệ thống 44 Hình 4.21 Bộ nguồn 24V/5A 45 Hình 4.22 Adapter 5V/1.5A cho mạch kích relay 45 Hình 4.23 Kết nối Camera với Raspberry Pi 46 Hình 4.24 Đèn led siêu sáng 3W màu trắng 46 Hình 4.25 Lưu đồ chương trình hoạt động hệ thống 47 Hình 4.26 Lưu đồ chụp lưu ảnh 48 Hình 4.27 Lưu đồ xử lý ảnh 49 Hình 4.28 So sánh phân loại 50 Hình 5.1 Tính tốn kích thước cắt V3 51 viii Hình 5.2 Lắp ráp V3 cắt thành khung 52 Hình 5.3 Hồn thành khung 52 Hình 5.4 Gá xi lanh, cảm biến động lên khung 53 Hình 5.5 Hồn thành gia công buồng xử lý ảnh 53 Hình 5.6 Đặt gia cơng băng tải theo yêu cầu kỹ thuật thiết kế 54 Hình 5.7 Gá buồng xử lý ảnh vào băng tải 54 Hình 5.8 Sơn thẩm mĩ cho buồng xử lý ảnh 55 Hình 5.9 Kết nối điện thử nghiệm mô thực tế buồng xử lý ảnh 55 Hình 5.10 Hình ảnh minh họa hệ thống tự cấp phơi tự động 56 Hình 5.11 Tiến hành đo đạc cắt V3 theo thông số 57 Hình 5.12 Lắp ráp V3 thành khung hệ thống cấp phôi tự động 57 Hình 5.13 Tiến hành đo đạc theo kích thước thơng số kỹ thuật 58 Hình 5.14 Hồn thành ống lồng chứa cà chua 58 Hình 5.15 Lắp ráp ống lồng chứa cà chua 59 Hình 5.16 Cố định tủ điện lên khung hệ thống 59 Hình 5.17 Tiến hành đo đạc ráp khung gá đỡ 60 Hình 5.18 Hoàn thành việc lắp ráp khung gá đỡ 60 Hình 5.19 Gá cố định chi tiết lên khung 61 Hình 5.20 Khớp nối trục động băng tải 61 Hình 5.21 Đèn đỏ tín hiệu hệ thống hoạt động 62 Hình 5.22 Mạch kích Relay nối dây hồn chỉnh 63 Hình 5.23 Cài đặt thư viện OpenCV cho Raspberry Pi 63 Hình 5.24 Cung cấp đủ ánh sáng buồng ảnh 64 Hình 5.25 Hệ thống tự cấp phôi hoạt động để đưa vào buồng ảnh 65 Hình 5.26 Ảnh số %pixel phân tích hiển thị hình 65 Hình 5.27 Hệ thống phân loại màu đỏ 66 Hình 5.28 Hệ thống cấp phôi đưa màu xanh vào buồng ảnh 66 Hình 5.29 Hệ thống cập nhật hình ảnh số %pixel hệ thống 67 Hình 5.30 Xi lanh phân loại cà chua màu xanh 67 Hình 5.31 Xi lanh phân loại cà chua màu cam 68 ix CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Đặt vấn đề - Hiện với phát triển kinh tế ngành chế biến nông sản nước ta khẳng định vị thị trường nước nước Sau qua quãng thời gian chăm sóc ni trồng đến lúc thu hoạch nông sản.Khi thu hoạch nông sản, người thường phân loại sản phẩm theo tiêu chuẩn khác để bán với giá hợp lí.Ví dụ phân loại theo màu sắc, khối lượng, hình dáng nông sản - Đồng thời với phương pháp phân loại tay truyền thống khó đáp ứng với tiêu chuẩn yêu cầu với xuất phổ biến băng tải,có thể đáp ứng lĩnh vực chế biến phân loại nông sản.Hiện thị trường nước nước, sử dụng sản phẩm để phân loại sản phẩm với quy mô lớn công nghiệp.Tuy nhiên với sản phẩm có quy mơ lớn gây số vấn đề phức tạp ví dụ điều chỉnh thông số phân loại phức tạp cách vận hành tương đối phức tạp - Với mục đích tạo hệ thống tự cấp phôi phân loại sản phẩm theo cân nặng màu sắc điều khiển dễ dàng cho người dùng, giảm thiểu sai sót khâu phân loại, hoạt động với suất liên tục Đối với hệ thống tự cấp phôi phân loại sản phẩm theo cân nặng màu sắc phù hợp với quy mô sản xuất nhỏ Nên nhóm định tìm hiểu nghiên cứu, thực chọn cà chua làm sản phẩm phân loại - Nông sản sau thu hoạch phân loại thành loại 1, loại 2,…với tiêu chuẩn khác trọng lượng, màu sắc,hình dáng,…Nhờ vậy,người nơng dân thương lái dễ dàng định giá cho loại nông sản, tránh tình trạng ép giá, nơng dân phải bán rẻ nông sản.Chẳng hạn,giá dưa chuột thường bấp bênh, không ổn định, dao động từ 15.000 – 25.000 đồng/kg vào vụ thu hoạch, giá dưa giảm cịn 7.000 – 10.000 đồng/kg đơi lúc bị rớt xuống cịn khoảng 2.000 – 3.000 đồng/kg mà khó tiêu thụ.Trong đó,sản phẩm dưa chuột nơng dân Tiên Lãng, Hải Phòng chế biến thành dưa chuột bao tử đóng hộp xuất nhiều nước giới.Phân loại dưa chuột có nhiều tiêu chuẩn thị trường thường có tiêu chuẩn định, không đồng Nhưng với phương pháp phân loại tay truyền thống người nơng dân sở chế biến khó đáp ứng xác yêu cầu tiêu chuẩn 1.2 Mục tiêu đề tài - Nghiên cứu hệ thống tự cấp phôi phân loại sản phẩm theo cân nặng màu sắc, hiểu nguyên lý hoạt động cảm biến cân nặng loadcell, tiếp xúc với ngôn ngữ lập trình Python sử dụng thư viện ảnh OpenCV, kết hợp với Raspberry Pi để nhận biết phân loại sản phẩm - Nhóm muốn thực hệ thống tự cấp phơi cho băng tải việc tìm hiểu Rơ-le Timer để tùy chỉnh thời gian thích hợp cho việc cấp phơi băng tải 1.3 Đối tượng nghiên cứu đề tài - Sử dụng động DC để hoạt động băng tải - Sử dụng xi lanh khí nén để phân loại sản phẩm tự cấp phôi - Dùng Raspberry Pi để xử lý hình ảnh - Nhận diện màu sắc qua thuật tốn xử lý hình ảnh qua Raspberry Pi 1.4 Nội dung nghiên cứu - Lên kế hoạch thiết kế buồng chứa cà chua cho việc tự cấp phơi hợp lý để sản phẩm không bị chèn bị dập đưa vào băng tải - Tìm hiểu ngơn ngữ lập trình Python với cơng cụ hỗ trợ thư viện ảnh OpenCV hệ điều hành Raspbian để nhận biết phân loại sản phẩm - Thử nghiệm, chế tạo hệ thống tự cấp phôi phân loại cà chua theo màu sắc - Đánh giá kết quả, thực nghiệm hiệu hệ thống tự cấp phôi phân loại cà chua theo màu sắc - Kết luận đưa hướng phát triển cho nghiên cứu hệ thống tự cấp phôi phân loại cà chua theo màu sắc 1.5 Phương pháp nghiên cứu - Tham khảo đồ án viết Raspberry Pi - Tìm hiểu lệnh lập trình ngơn ngữ Python - Tìm hiểu cách hoạt động cảm biến xi lanh - Tìm cách bố trí vật dụng, mạch điện cách hợp lý cho hệ thống 1.6 Phạm vi nghiên cứu - Thiết kế mơ hình băng chuyền phân loại nông sản - Sử dụng động DC để làm hoạt động băng tải - Sử dụng xi lanh làm cấu phân loại - Nhận dạng màu sắc cà chua qua thuật toán xử lý ảnh - Dùng Raspberry Pi để xử lý hình ảnh, hiển thị giao diện người dung - Tùy chỉnh đặc trưng màu sắc hệ thống 1.7 Kết cấu đồ án - Chương 1: Giới thiệu đề tài - Chương 2: Tổng quan công nghệ phân loại sản phẩm - Chương 3: Thiết kế khí cho hệ thống - Chương 4: Thiết kế điện lập trình cho hệ thống - Chương 5: Thi cơng mơ hình thực nghiệm - Chương 6: Đánh giá kết kết luận CHƯƠNG 2: TỔNG QUAN CÔNG NGHỆ PHÂN LOẠI SẢN PHẨM 2.1 Dây chuyền phân loại sản phẩm 2.1.1 Đặc tính dây chuyền phân loại sản phẩm - Dây chuyền phân loại sản phẩm dây chuyền tự động phục vụ công đoạn cho dây chuyền phân loại – đóng gói, chế biến, xuất nhập kho hàng hóa, bưu kiện.Nơi mà sản phẩm phân loại theo tiêu chí kích thước, chiều cao, trọng lượng, màu sắc…nhờ cơng nghệ vision tiên tiến với camera kiểm tra sản phẩm.Các sản phẩm phân loại giúp đảm bảo tiêu chí thành phẩm,đảm bảo độ đồng hình dáng, trọng lượng trước đóng gói tiêu chí phân loại theo thơng tin mục đích sử dụng nhà sản xuất, dịch vụ.Sản phẩm phân loại chuyển sang dây chuyền đóng gói tự động lưu/xuất kho 2.1.2 Ưu điểm dây chuyền phân loại sản phẩm tự động - Nếu 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 cho số lượng người tham gia phân loại lớn, thời gian phân loại lâu dễ sai sót nay, với dây chuyền phân loại sản phẩm tự động nhờ camera kiểm tra sản phẩm, số lượng nhân công giảm xuống đáng kể (tới 80%) suất tăng lên từ – lần với tỉ lệ nhầm lẫn, sai sót kiểm soát - Hệ thống phân loại tự động hình thức mà đơn vị sản xuất, dịch vụ thương mại điện tử, giao nhận hướng tới thời đại công nghệ số - Dây chuyền phân loại, phân loại lựa sản phẩm với máy phân loại, cảm biến nhận diện sản phẩm, camera kiểm tra ngoại quan sản phẩm, cân điện tử, hệ thống đo, cấu chọn, vận chuyển(băng tải, băng chuyền, bẫy, tay gạt, cấu chia, băng tải góc, gạt, )hệ thống băng tải xương cá, hub hệ thống điều khiển trung tâm kết nối liệu từ xa.Dây chuyền phân loại lựa ứng dụng nhiều ngành công nghiệp:chế biến nông sản, rau củ quả,các nhà máy sản xuất linh kiện điện tử,cơ khí, kho trung chuyển chuyển phát nhanh logistic, bưu thương mại điện tử phân loại kiện hàng, bưu phẩm,… * Khuyết điểm hệ thống: • Khơng có nguồn độc lập nên hoạt động điện • Ánh sáng mơi trường xung quanh ảnh hưởng đến số màu sắc • Chu trình xử lý chậm, xử lý quả, tồn sai số • Mơ hình chưa hiệu suất • Chưa thể phân loại lúc số lượng lớn đa dạng loại cà chua khác 6.2 Hướng phát triển * Từ mặt hạn chế đề tài, nhóm đưa số hướng phát triển để hệ thống hồn chỉnh hoạt động hiệu hơn: • Xử lý đa luồng, nhận biết phân loại lúc nhiều cà chua • Mở rộng phạm vi đối tượng phân loại (có thể nhận biết cà chua bị sâu đục, thối, dập, mở rộng nông sản khác dưa chuột, hồng, chanh,…) • Có thể ứng dụng AI vào code để mơ hình hoạt động thơng minh • Có thể thêm tính cân nặng để phù hợp với nhu cầu người dùng thực tế • Nâng cấp phần cứng mạnh mẽ để phân loại xác hiệu suất 71 TÀI LIỆU THAM KHẢO [1] Đồ án tốt nghiệp, Đề tài: Nghiên cứu,thiết kế thi cơng mơ hình đếm phân loại sản phẩm theo cân nặng màu sắc Phạm Thị Thanh Thảo Phan Trần Hoài Vũ [2] https://raspberrypi.vn/ [3] Xử lý ảnh HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THÔNG sản xuất Hà Nội năm 2006 [4] https://linuxize.com/post/how-to-install-opencv-on-raspberry-pi/ 72 Phụ lục CODE PHƯƠNG TRÌNH import cv2 import numpy as np import tkinter as tk import json import time import RPi.GPIO as GPIO cap = cv2.VideoCapture(0) root = tk.Tk() root.geometry("1000x400") root.resizable(0, 0) GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) PIN_INPUT_SENSOR_1 = 19 PIN_INPUT_SENSOR_2 = 26 PIN_INPUT_SENSOR_3 = 13 PIN_OUTPUT_XILANH_1 = 12 PIN_OUTPUT_XILANH_2 = 20 PIN_OUTPUT_XILANH_3 = 16 GPIO.setup(PIN_OUTPUT_XILANH_1, GPIO.OUT) GPIO.setup(PIN_OUTPUT_XILANH_2, GPIO.OUT) GPIO.setup(PIN_OUTPUT_XILANH_3, GPIO.OUT) GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(PIN_INPUT_SENSOR_1, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(PIN_INPUT_SENSOR_2, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(PIN_INPUT_SENSOR_3, GPIO.IN, pull_up_down=GPIO.PUD_UP) lblz1 = tk.Label(master=root, text="Running ", fg="Green", font="Times 30") lblz1.place(x=0, y=350) def close_root(): root.destroy() button = tk.Button(master=root, fg="red", font="Times 20", text="EXIT", command=close_root) button.place(x=900, y=350) 73 Content = "THỐNG KÊ SỐ LƯỢNG TỪNG LOẠI MÀU SẮC CỦA CÀ CHUA" label0 = tk.Label(master=root, text=Content, fg="black", font="Times 20") label0.place(x=110, y=50) Content_2 = "Đặng Hoài Danh - Nguyễn Minh Đăng - Hoàng Minh Lâm" label001 = tk.Label(master=root, text=Content_2, fg="green", font="Times 20") label001.place(x=200, y=80) lb04 = tk.Label(master=root, font="Times 20", fg="black", text="SỐ LƯỢNG :") lb04.place(x=0, y=255) lbf01 = tk.Label(master=root, fg="black", font="Times 20", text="MÀU ĐỎ") lbf01.place(x=200, y=150) lbf02 = tk.Label(master=root, fg="black", font="Times 20", text="MÀU XANH") lbf02.place(x=400, y=150) lbf03 = tk.Label(master=root, fg="black", font="Times 20", text="MÀU CAM") lbf03.place(x=620, y=150) count_1 = count_2 = count_3 = count_4 = level = '' find_result = False green_standard = False red_standard = False orange_standard = False GPIO.output(12, False) GPIO.output(20, False) GPIO.output(16, False) red_color = False green_color = False orange_color = False # flag_main = False subtractor = cv2.createBackgroundSubtractorMOG2(history=100, varThreshold=40) def draw_pre_rectangle(image): centerH = image.shape[0] // centerW = image.shape[1] // sizeboxW = 200 sizeboxH = 200 cv2.rectangle(image, (centerW - sizeboxW // 2, centerH - (sizeboxH // 2) + 50), (centerW + sizeboxW // 2, centerH + (sizeboxH // 2) + 90), (255, 255, 255), 5) return image 74 def process_analyze_image(image, debug_mode): red_color = False green_color = False orange_color = False result = False flag_main = False try: hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) red_lower = np.array([0, 150, 0], np.uint8) red_upper = np.array([10, 255, 255], np.uint8) green_lower = np.array([32, 255, 150], np.uint8) green_upper = np.array([40, 255, 255], np.uint8) orange_lower = np.array([21, 255, 150], np.uint8) orange_upper = np.array([30, 255, 255], np.uint8) red = cv2.inRange(hsv, red_lower, red_upper) green = cv2.inRange(hsv, green_lower, green_upper) orange = cv2.inRange(hsv, orange_lower, orange_upper) kernal = np.ones((5, 5), "uint8") red = cv2.dilate(red, kernal) res = cv2.bitwise_and(image, image, mask=red) green = cv2.dilate(green, kernal) res1 = cv2.bitwise_and(image, image, mask=green) orange = cv2.dilate(orange, kernal) res2 = cv2.bitwise_and(image, image, mask=orange) numPixel_red = cv2.countNonZero(red) numPixel_green = cv2.countNonZero(green) numPixel_orange = cv2.countNonZero(orange) R = (numPixel_red / (1 + numPixel_red + numPixel_green + numPixel_orange)) * 100 print("do", R) G = (numPixel_green / (1 + numPixel_red + numPixel_green + numPixel_orange)) * 100 print("xanh", G) O = (numPixel_orange / (1 + numPixel_red + numPixel_green + numPixel_orange)) * 100 print("cam", O) roi = image[170:470, 170:470] mask = subtractor.apply(roi) _, mask = cv2.threshold(mask, 254, 255, cv2.THRESH_BINARY) contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) color = None label = None 75 state_sensor0= not GPIO.input(17) state_sensor1= not GPIO.input(19) state_sensor2= not GPIO.input(26) state_sensor3= not GPIO.input(13) global count_1 global count_2 global count_3 if (R > 50) : red_color = True label = 'RED_COLOR' while True: state_sensor1= not GPIO.input(19) state_sensor0= not GPIO.input(17) if(state_sensor1 == True): if (state_sensor0 == False): time.sleep (0.8) GPIO.output(12, True) time.sleep (1) GPIO.output(12, False) count_1 = count_1 + print(count_1) lb8 = tk.Label(master=root, text= count_1, fg="red", font="Times 25") lb8.place (x=250, y=250) break if (G > 50): green_color = True label = 'GREEN_COLOR' while True: state_sensor2= not GPIO.input(26) state_sensor0= not GPIO.input(17) if (state_sensor2 == True): if (state_sensor0 == False): time.sleep (0.8) GPIO.output(20, True) time.sleep(1) GPIO.output(20, False) count_2 = count_2 + print(count_2) lb5 = tk.Label(master = root, text = count_2,fg = "red", font = "Times 25") lb5.place(x = 450, y = 250) break if (O > 50): 76 orange_color = True label = 'ORANGE_COLOR' while True: state_sensor3= not GPIO.input(13) state_sensor0= not GPIO.input(17) if (state_sensor3 == True): if (state_sensor0 == False): time.sleep (0.8) GPIO.output(16, True) time.sleep (1) GPIO.output(16, False) count_3 = count_3 + print(count_3) lb6 = tk.Label(master = root, text = count_3,fg = "red", font = "Times 25") lb6.place(x = 680, y = 250) break if (red_color == True) or (green_color == True) or (orange_color == True): flag_main = True return image, red_color, green_color, orange_color, True, flag_main except cv2.error as error: print("error process analyzing image") return image, red_color, green_color, orange_color, result lb8 = tk.Label(master = root, text = count_1,fg = "red", font = "Times 25") lb8.place(x=250, y=250) lb5 = tk.Label(master = root, text = count_2,fg = "red", font = "Times 25") lb5.place(x = 450, y = 250) lb6 = tk.Label(master = root, text = count_3,fg = "red", font = "Times 25") lb6.place(x = 680, y = 250) lag = while True: root.update() res, img = cap.read() state_sensor0 = not GPIO.input(17) if (state_sensor0 == True) and (lag == 0): res, img = cap.read() time.sleep(0) cv2.imwrite('/home/ldd/Downloads/test_new.jpg', img) result_analyzing_image = False #print('photo', result_analyzing_image) 77 image, red_standard, green_standard, ogrange_standard, result_analyzing_image, flag_main = process_analyze_image(img, False) if (result_analyzing_image == False): print("process error ===================== :(") continue draw_pre_rectangle(image) cv2.imshow('camera', img) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() 78 PHỤ LỤC BẢN VẼ - Mơ hình cung cấp, phân loại sản phẩm theo màu sắc đếm số lượng gồm có vẽ: • Bản vẽ chi tiết Buồng kín • Bản vẽ chi tiết Băng tải • Bản vẽ chi tiết Khung gá • Bản vẽ chi tiết ống lồng phơi • Bản vẽ chi tiết hệ thống cấp phơi • Bản vẽ lắp 79 80 81 82 83 84 85 ... khối lượng cho ngành thực phẩm, thủy hải sản, nơng sản, Hình 2.4 Dây chuyền phân loại sản phẩm theo khối lượng - Dây chuyền phân loại sản phẩm theo màu sắc • Máy phân loại sản phẩm theo màu sắc phân. .. nhận biết phân loại sản phẩm - Thử nghiệm, chế tạo hệ thống tự cấp phôi phân loại cà chua theo màu sắc - Đánh giá kết quả, thực nghiệm hiệu hệ thống tự cấp phôi phân loại cà chua theo màu sắc - Kết... 66 Hình 5.29 Hệ thống cập nhật hình ảnh số %pixel hệ thống 67 Hình 5.30 Xi lanh phân loại cà chua màu xanh 67 Hình 5.31 Xi lanh phân loại cà chua màu cam 68 ix CHƯƠNG 1:

Ngày đăng: 28/02/2023, 16:25

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w