1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hệ thống phân loại trái cà chua theo kích cỡ và màu sắc sử dụng camera đồ án tốt nghiệp

65 5 1
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

BÁO CÁO ĐỒ ÁN TỐT NGHIỆP BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÌNH DƯƠNG GVHD: Th.S Nguyễn Quang Chung CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc NHẬN XÉT CỦA ĐỒ ÁN TỐT NGHIỆP (Dành Cho Cán Bộ Hướng Dẫn) Họ tên SV: Lâm Văn Hùng MSSV: 17020052 Nguyễn Đức Vương MSSV: 17020020 Lớp: 20DT01 Ngành: Điện – Điện Tử Tên đề tài: Thiết kế thi công hệ thống phân loại trái cà chua dung camera Người hướng dẫn (tên đầy đủ): ThS Nguyễn Quang Chung Nội dung đồ án a Nhận xét hình thức báo cáo : Số trang _ Số chương Số bảng số liệu _ Số tài liệu tham khảo _ _ Số hình vẽ _ Sản phẩm _ b Nhận xét nội dung (kiến thức, phương pháp mà sinh viên tìm hiểu, nghiên cứu nhận xét ưu điểm hạn chế) Ý nghĩa đồ án Nhận xét đồ án (nhận xét kiến thức, phương pháp mà sinh viên tìm hiểu, nghiên cứu, việc xây dựng ứng dụng demo, thái độ, ưu điểm, hạn chế sinh viên tham gia) SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua I BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung a Ưu điểm: b Hạn chế: Đề xuất, đánh giá Đủ tiêu chuẩn bảo vệ Chưa đủ tiêu chuẩn bảo vệ Đánh giá chung: Điểm tối đa NỘI DUNG Điểm 10 Hướng nghiên cứu (cách tiếp cận đề tài, trình thực phương pháp nghiên cứu điều tra, khảo sát) Nội dung trình bày từ hướng nghiên cứu (đặt vấn đề, giải vấn đề) Sự phù hợp phương pháp (giá trị khoa học, thực tiển kết nghiên cứu) Phạm vi phân tích (tính mới, tính sáng tạo, độc đáo đề tài) Kết đạt kiến nghị (kết nghiên cứu, tóm tắt, kiến nghị đề tài) Hình thức (định dạng, cấu trúc, nội dung, mục lục tài liệu tham khảo) 1.5 1.0 3.0 2.0 1.0 1.5 GIẢNG VIÊN HƯỚNG DẪN (Ký ghi rõ họ tên) SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua II BÁO CÁO ĐỒ ÁN TỐT NGHIỆP BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÌNH DƯƠNG GVHD: Th.S Nguyễn Quang Chung CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc NHẬN XÉT CỦA ĐỒ ÁN TỐT NGHIỆP (Dành cho Cán Bộ Phản Biện) Họ tên SV: Lâm Văn Hùng MSSV: 17020052 Nguyễn Đức Vương MSSV: 17020020 Lớp: 20DT01 Ngành: Điện – Điện Tử Tên đề tài: Thiết kế thi công hệ thống phân loại trái cà chua dung camera Người phản biện (tên đầy đủ): Nội dung đồ án a Nhận xét hình thức báo cáo : Số trang _ Số chương _ Số bảng số liệu _ Số hình vẽ _ Sản phẩm _ Số tài liệu tham khảo _ b Nhận xét nội dung (kiến thức, phương pháp mà sinh viên tìm hiểu, nghiên cứu nhận xét ưu điểm hạn chế) Ý nghĩa đồ án SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua III BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung Nhận xét đồ án (nhận xét kiến thức, phương pháp mà sinh viên tìm hiểu, nghiên cứu, việc xây dựng ứng dụng demo, thái độ, ưu điểm, hạn chế sinh viên tham gia) a Ưu điểm: b Hạn chế: Đề xuất, đánh giá Đủ tiêu chuẩn bảo vệ Chưa đủ tiêu chuẩn bảo vệ 10 Câu hỏi (phản biện đặt 02 câu hỏi): Đánh giá chung: Điểm tối đa NỘI DUNG Điểm 10 Hướng nghiên cứu (cách tiếp cận đề tài, trình thực phương pháp nghiên cứu điều tra, khảo sát) Nội dung trình bày từ hướng nghiên cứu (đặt vấn đề, giải vấn đề) Sự phù hợp phương pháp (giá trị khoa học, thực tiển kết nghiên cứu) 1.5 1.0 3.0 SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua IV BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung Phạm vi phân tích (tính mới, tính sáng tạo, độc đáo đề tài) Kết đạt kiến nghị (kết nghiên cứu, tóm tắt, kiến nghị đề tài) Hình thức (định dạng, cấu trúc, nội dung, mục lục tài liệu tham khảo) 2.0 1.0 1.5 CÁN BỘ PHẢN BIỆN (Ký ghi rõ họ tên) SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua V BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung LỜI CÁM ƠN Em xin chân thành cảm ơn Thầy Nguyễn Quang Chung tận tình hướng dẫn, bảo, kinh nghiệm quý báu hỗ trợ phương tiện vật tư suốt trình tìm hiểu, nghiên cứu đề tài Đồng thời em xin cảm ơn thầy cô Khoa Điện - Điện Tử tạo điều kiện, cung cấp cho em kiến thức bản, cần thiết để chúng em có điều kiện đủ kiến thức để thực trình nghiên cứu Trong thời gian làm đề tài, thân thiếu nhiều kiến thức kinh nghiệm nên khơng thể tránh khỏi thiếu sót, kính mong thầy rộng lịng bỏ qua Cuối cùng, em xin kính chúc q thầy ln dồi sức khỏe gặt hái nhiều thành công Em xin cảm ơn SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua VI BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung MỤC LỤC NHẬN XÉT CỦA ĐỒ ÁN TỐT NGHIỆP I NHẬN XÉT CỦA ĐỒ ÁN TỐT NGHIỆP III LỜI CÁM ƠN VI MỤC LỤC VII DANH MỤC HÌNH ẢNH X DANH MỤC BIỂU BẢNG XI LỜI MỞ ĐẦU XII CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý chọn đề tài 1.2 Mục tiêu đề tài: 1.3 Pham vi thực hiện: 1.4 Ý nghĩa đề tài: 1.5 Đối tượng nghiên cứu: 1.6 Phương pháp thực hiện: 1.7 Kết mong muốn: CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Các loại cà chua phổ biến việt nam 2.2 Giới thiệu xử lý ảnh 2.2.1 Các vấn đề xử lý ảnh 2.2.2 Phương pháp nhận diện màu sắc xử lý ảnh 11 2.3 Tổng quan thư viện mã nguồn mở OpenCV: 12 a Giới thiệu OpenCV 12 b.Các chức OpenCV 13 c Ứng dụng OpenCV 13 2.4 Giới thiệu ngôn ngữ lập trình Python 13 2.5 Webcam Rapoo C200 15 SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua VII BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung a Giới thiệu 15 b Cấu tạo 16 c Ứng dụng 16 2.6 Raspberry Pi 17 a Giới thiệu 17 b Cấu tạo 17 c Ứng dụng 19 2.7 Cảm biến MH-Sensor-Series Flying-Fish 20 a Giới thiệu 20 b Cấu tạo 20 c Ứng dụng 21 2.8 Servo MG996R 21 a Giới thiệu 21 b Cấu tạo động Servo MG996R 21 c Ứng dụng 23 2.9 Nguồn tổ ong 24V 10A 23 a Giới thiệu 23 b Cấu tạo 24 c Ứng dụng 24 2.10 Băng tải 24 a Giới thiệu 24 b Cấu tạo 24 c Ứng dụng 25 2.11 Module giảm áp LM2596HVS 3A 26 a Giới thiệu 26 b Cấu tạo 26 C Ứng dụng 26 2.12 Màn Hình LCD inch Cảm ứng HDMI 27 a Giới thiệu 27 SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua VIII BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung b Cấu tạo 27 c Ứng dụng 28 CHƯƠNG 3: THIẾT KẾ 30 3.1 Thiết kế phần cứng 30 3.1.1 Thiết kế phần khí 30 3.1.2 Thiết kế phần điện mơ hình 31 3.1.3 Sơ đồ nguyên lý hệ thống 37 3.2 Thiết kế phần mềm 39 CHƯƠNG 4: THI CÔNG VÀ VẬN HÀNH 43 4.1 Các linh kiện cần sử dụng 43 4.2 Thi công 43 4.2.1 Thi cơng phần khí 43 4.2.2 Thi công phần điện hệ thống 43 4.3 kết thực nghiệm 43 4.3.1.kết thực nghiệm phân loại sản phẩm theo kích cỡ 44 4.3.2 Nguyên nhân dẫn đến kết 45 CHƯƠNG 5: ĐÁNH GIÁ VÀ KẾT LUẬN 47 5.1 Đánh giá đồ án 47 5.2 Phương hướng phát triển 47 5.3 Kết luận 47 DANH MỤC TÀI LIỆU THAM KHẢO 48 PHỤ LỤC 49 SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua IX BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung DANH MỤC HÌNH ẢNH Hình 2.1: cà chua bi Hình 2.2: Cà chua tím Hình 2.3: Cà chua đen Hình 2.4: Cà chua socola Hình 2.5: Cà chua Arka F1 Hình 2.6: Cà chua Cherry đỏ Hình 2.7: Cà chua Cherry vàng Hình 2.8: cà chua bi lùn Hình 2.9: Cà chua bạch tuộc Hình 2.10: Cà chua hình trái tim Hình 2.11: Cà chua hình thân gỗ Hình 2.12: Khơng gian màu GRB 11 Hình 2.13: Hệ màu HSV 11 Hình 2.14: Giới thiệu tổng quan OpenCV 13 Hình 2.15: Biểu tượng ngơn ngữ lập trình Python 14 Hình 2.16: Webcam Rapoo C200 16 Hình 2.17: Raspberry Pi 17 Hình 2.18: Sơ đồ chân Raspherry 4B 18 Hình 2.19: Cảm biến hồng ngoại 20 Hình 2.20: Servo MG996R 21 Hình 2.21: Cấu hình Pin MG996R 22 Hình 2.22: Nguồn tổ ong 24v 23 Hình 2.23: băng tải 24 Hình 2.24: Mạch hạ áp 26 Hình 2.25: Màn hình 27 Hình 3.1: Bản vẽ khí……………………………………………………………….30 Hình 3.2: Sơ đồ khối mạch điều khiển hệ thống Error! Bookmark not defined Hình 3.3: sơ đồ khối nguồn điện Error! Bookmark not defined Hình 3.4:Sơ đồ nguyên lý hệ thống Error! Bookmark not defined Hình 4.1: Mơ hình phân loại trái cà chua theo kích cỡ màu sắc ………………….44 SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua X BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung 3.2 Thiết kế phần mềm - Lưu đồ giải thuật chương trình Bắt đầu - Tải thông số - Hiện thị giao diện nhấn stop nhấn start N N y Run = Run = Y Run = N có trái cà chua vị trí Y N Y Chụp hình trái cà chua Xử lý phân loại SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 39 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung Giải thích lưu đồ giải thuật chương trình : - Tải thông số hiển thị giao diện nhấn start mô hình hoạt động có cà chua trí chụp hình gởi raspherry pi xử lý phân loại vào ô tương ứng - Tải thông số thịn giao diện nhấn start mơ hình khơng hoạt động cà chua khơng vị trí khơng phân sản phẩm - Hoạt động hệ thống Nguồn 220v cấp nguồn cho nguồn tổ ong Raspherry: Bước 1: Khi có nguồn giao diện thị, tải thông số băng tải hoạt động Bước 2: Khi nhấn nút start run =1, cảm biến nhận diện có trái cà chua vị trí Bước 3: Webcam chụp ảnh băng tải, gửi hình ảnh Raspberry xử lí Bước 4: Raspherry gửi tín hiểu servo nhận tín hiệu gạt vào thích hợp với điều kiện SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 40 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung * Lưu đồ chương trình phân loại xử lý Bắt Đầu Kích cỡ = 4.5 màu sắc =đỏ Cảm biến 2=1 Y Y Gạt ô N N Y Y Cảm biến 3=1 Kích cỡ = 4.5 màu sắc = xanh Y Y Cảm biến 4=1 N Gạt ô N Kết thúc SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 41 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung - Hoạt động hệ thống Nguồn 220v cấp nguồn cho nguồn tổ ong Raspherry: Bước 1: Khi có nguồn giao diện thị, băng tải hoạt động, cảm biến kích hoạt webcam chụp ảnh băng tải, gửi hình ảnh Raspberry xử lí Bước 2: Raspberry xử lí khung hỉnh, chuyển đổi sang không gian màu HSV ( Hue – vùng màu, S – Độ bão hòa màu, V – Độ sáng) để tìm mảng màu cần xử lí hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) : hàm dùng để chuyển sang không gian màu HSV Bước 3: Dùng hàm minAreaRect để xác định hình chữ nhật nhỏ chứa toàn viền bao quanh vật thể (contour) Hàm trả x,y tâm vật thể, (w, h) chiều rộng chiều cao hình chữ nhật tính theo pixel Bước 4: Raspberry xử lí hình ảnh xong gửi tín hiệu servo Bước 5: servo nhận tín hiệu gạt vào thích hợp với điều kiện SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 42 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung CHƯƠNG 4: THI CÔNG VÀ VẬN HÀNH 4.1 Các linh kiện cần sử dụng STT Tên linh kiện vật tư Số lượng (đv: cái) Băng tải Động servo Cảm biến tiệm cận Raspberry Pi Webcam Rapoo C200 Nguồn tổ ông Circuit breaker ổ cắm điện (3 lỗ ) Dây điện (mm) 2m 10 Dây điện 1.5 (mm) 2m 11 Dây điện 0.25(mm) 5m 12 Dây ghim (- +) vỉ Bảng 1: Các linh kiện 4.2 Thi cơng 4.2.1 Thi cơng phần khí Bước 1: Thi cơng phần đế mơ hình Bước 2: lắp đặt băng tải lên khung mơ hình Bước 3: Cố định Raspberry Pi webcam vào mơ hình Bước 4: Đấu dây sơ đồ nguyên lí Bước 5: Lắp nguồn điều chỉnh góc webcam 4.2.2 Thi cơng phần điện hệ thống Bước 1: lắp đặt CB nguồn 220v Bước 2: CB cấp nguồn tổ ông cắm lỗ Bước 3: lấy nguồn 24v DC từ tổ ông cấp cho motor 24v DC băng tài Bước 4: lấy nguồn 24v DC từ nguồn tổ ông cấp nguồn cho mạch hạ áp Bước : từ mạch hạ áp ta dùng đồng đo điện áp điều chỉnh điện áp điện áp hợp lý để cấp nguồn servo cảm biến 4.3 kết thực nghiệm Sau thời gian học hỏi, nghiên cứu làm việc để thực đề tài, nhóm em thiết kế thi cơng thành cơng mơ hình hệ thống phân loại trái cà chua theo kích cỡ màu sắc Do thời gian kiến thức có hạn nên em đạt mốt số yêu cầu ban đầu đề SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 43 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung Hình 4.1: Mơ hình phân loại trái cà chua theo kích cỡ màu sắc 4.3.1.kết thực nghiệm phân loại sản phẩm theo kích cỡ - Theo kết đánh giá thực tế đạt phân loại sản phẩm cho thấy Dao động kích cỡ băng tải khơng qua lớn ảnh hưởng q trìnhphân loại Số lần phân loại sản phẩm Kết phân loại sản phẩm theo kích cỡ màu sắc Sản phẩm lỗi Khơng đạt Đạt Không đạt Đạt Không đạt Không đạt Vàng nhỏ Vàng lớn Đỏ nhỏ Không đạt Đạt Không đạt Không đạt Không đạt Không đạt Không đạt Đạt Không đạt Đạt Không đạt Đạt Không đạt Đạt Không đạt Không đạt Đạt Không đạt Đỏ lớn Không đạt Đạt Không đạt Không đạt Không đạt Không đạt SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 44 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung Đạt Không đạt Không đạt Không đạt Không đạt Không đạt Đạt Không đạt Không đạt Không đạt Không đạt Không đạt Không đạt Không đạt Không đạt Đạt 11 Không đạt Đạt Đạt Đạt 12 Đạt Đạt Đạt Đạt 13 Đạt Đạt Đạt Đạt Bảng 2: kết phân loại trái cà chua theo kích cỡ màu sắc Khơng đạt Khơng đạt Không đạt Không đạt Đạt Đạt Đạt kiểm tra thực tế - Qua bảng ta thấy mơ hình phân loại kích cỡ có Những lần phân loại sản phẩm khơng theo thích hợp có laafnm xác - Kết đạt phân loại sản phẩm 13lần ta có tỉ lệ phần trăm dao động xác 60% Từ kết ta có tỉ lệ phần tram phân loại Số lần phân loại Kết đạt Số lượng Phân loại hết tất (vàng nhỏ, vàng lớn ,đỏ nhỏ, đỏ lớn , sản phẩm lỗi ) Phân sản phẩm Sản phẩm phân sản phẩm (vàng loại lần thứ 11 nhỏ, vàng lớn , đỏ nhỏ, đỏ lớn , sản phẩm lỗi ) Phân sản phẩm sản phẩm( vàng nhỏ ,vàng lớn,đỏ nhỏ, đỏ lớn , sản phẩm lỗi ) Phân sản phẩm sản phẩm( vàng nhỏ ,vàng lớn,đỏ nhỏ, đỏ lớn , sản phẩm lỗi ) Phân sản phẩm sản phẩm( vàng nhỏ ,vàng lớn,đỏ nhỏ, đỏ lớn , sản phẩm lỗi ) Bảng 3: tỉ lệ phần trăm đạt Tỉ lệ phần tram 80% 20% 40% 80% 80% 4.3.2 Nguyên nhân dẫn đến kết - Từ lý dây dẫn tới kết phân phân loại không khả quang - Do phần lăng khoang không đồng tâm cho lắm, nên sản phẩm phân SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 45 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung loại không - Do vị trí đặt cảm biến khơng nhận hình ảnh - Do phần dây băng nối với cách may nên lúc chạy độ căng dây băng không Và cần gạt mg996 không đủ lực để gạt sản phẩm SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 46 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung CHƯƠNG 5: ĐÁNH GIÁ VÀ KẾT LUẬN 5.1 Đánh giá đồ án - Đề tài “Hệ thống phân loại trái cà chua theo kích cỡ màu sắc ” đề tài thú vị, ứng dụng cao, đủ để sinh viên áp dụng kiến thức học trình theo học ngành “Kĩ thuật điều khiển tự động hóa” Kết sau thực hiện: đáp ứng mục tiêu ban đầu đề ra, mơ hình hoạt động, phân loại sản phẩm, độ sai số thấp - Sau thực phần cứng lập trình phần mềm, tơi rút số điều sau: ➢ Ưu điểm:  Hệ thống hoạt động, băng tải chạy với tốc độ vừa phải  Phân loại sản phẩm, độ sai số thấp ➢ Nhược điểm:  Độ sắc nét ảnh nhận chưa cao, bị ảnh hưởng ánh sáng  Thời lượng chạy băng tải không cao  Thiết kế lại băng tải cho dây băng không sát vào băng tải, để giá trị ổn định hoặt giá trị dao động nhỏ  Làm lại lăng cho lúc chạy băng tải khơng bị chên vênh  Thây dây băng thành vật liệu khác thây đổi phương pháp nối dây băng, để chạy băng tải độ căng dây băng đồng 5.2 Phương hướng phát triển - Từ hệ thống phân loại sản phẩm làm ta có kinh nghiệm để mỡ rộng nhiều hệ thống phân loại khác - Lắp thêm cánh tay robot để thay cho việc tự thu hoạch cà chau tay người thành tay robot, toàn hệ thống tự động 5.3 Kết luận - Qua trình tìm hiểu đề tài này, em có thêm nhiều kiến thức OpenCV, Python, thư viện sử dụng, - Áp dụng kiến thức học trường - Mơ hình hệ thống phân loại trái cà chua nghiên cứu áp dụng thành cơng lợi ích mà đem lại có tác động tích cực đến nơng nghiệp nước ta ví dụ như: tăng suất phân loại sản phẩm , giúp cho người nông dân để tốn thời gian - Thúc đẩy nghành công nghiệp nước nhà lên bước phát triển mới, tiền đề cho đời sản phẩm phân loại trái cà chua có hiệu thơng minh SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 47 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung DANH MỤC TÀI LIỆU THAM KHẢO https://www.dienmayxanh.com/vao-bep/cac-loai-ca-chua-pho-bien-cach-chon-muava-cach-bao-quan-ca-05803 https://iotmaker.vn/cam-bien-vat-can-hong-ngoai.html Màn-hình-LCD-7-inch-HDMI-IPS-1024x600-full-HD-cảm-ứng-điện-dung-choRaspberry-Pii.74799633.2802842562?gclid=CjwKCAjwqJSaBhBUEiwAg5W9p4YRERUPTNS_A nLa1v7Urhz4M29TPDfEhq06yKWsjd17FyIwOb9rYBoC3RwQAvD_BwE https://www.raspberrypi.com/products/raspberry-pi-4-model-b/ https://nshopvn.com/product/dong-co-rc-servo-mg996r-banh-dong/ 6.https://www.google.com/search?q=webcam+rapoo+c200&oq=webcam+ra&aqs=chr ome.1.0i512l2j69i57j0i512l7.21445j0j4&sourceid=chrome&ie=UTF-8 SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 48 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung PHỤ LỤC from PySide2.QtCore import * from PySide2.QtGui import * from PySide2.QtWidgets import * import sys from PySide2.QtCore import (QCoreApplication, Qt) from PySide2.QtGui import (QFont, QPixmap) from PySide2.QtWidgets import * import resource import gui import numpy as np import cv2 from object_detector import * import RPi.GPIO as GPIO import time sensor = 16 GPIO.setmode(GPIO.BOARD) GPIO.setup(sensor,GPIO.IN) class VideoThread(QThread): change_pixmap_signal = Signal(np.ndarray) change_detect_signal = Signal(np.ndarray) change_info_signal = Signal(list) def init (self): super(). init () self._run_flag = True def run(self): # capture from web cam cap = cv2.VideoCapture(0) while self._run_flag: ret, cv_img = cap.read() if ret: self.change_pixmap_signal.emit(cv_img) if GPIO.input(sensor)==0: self.classify(cv_img) time.sleep(0.5) # shut down capture system SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 49 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung cap.release() def classify(self, frame): contour = detector.detect_objects(frame) if contour: cnt = contour[0] hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) rect = cv2.minAreaRect(cnt) (x, y), (w, h), angle = rect box = cv2.boxPoints(rect) box = np.int0(box) pixel_center = hsv_frame[int(y), int(x)] circle_img = np.zeros((frame.shape[0], frame.shape[1]), np.uint8) cv2.circle(circle_img,(int(x), int(y)),50,(255,255,255),-1) img_circle = circle_img.copy() indices = np.where(img_circle!= [0]) coordinates = zip(indices[0], indices[1]) c=0 total = for i in list(coordinates): c+=1 total += hsv_frame[i[0], i[1]][0] avg_hue = total/c print("hue value: ", avg_hue) cv2.circle(frame, (int(x), int(y)), 5, (0, 0, 255), -1) cv2.polylines(frame, [box], True, (255, 0, 0), 2) cv2.putText(frame, "Width {} px".format(round(w, 1)), (int(x - 100), int(y - 20)), cv2.FONT_HERSHEY_PLAIN, 2, (100, 200, 0), 2) cv2.putText(frame, "Height {} px".format(round(h, 1)), (int(x - 100), int(y + 15)), cv2.FONT_HERSHEY_PLAIN, 2, (100, 200, 0), 2) size = (w+h)/2 self.change_info_signal.emit([size, avg_hue]) self.change_detect_signal.emit(frame) def stop(self): """Sets run flag to False and waits for thread to finish""" self._run_flag = False self.wait() class MainWindow(QMainWindow): SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 50 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung def init (self): QMainWindow. init (self) self.ui = gui.Ui_MainWindow() self.ui.setupUi(self) self.show() #button self.ui.btn_start.clicked.connect(self.start) self.ui.btn_stop.clicked.connect(self.stop) self.ui.btn_pause.clicked.connect(self.pause) #init tomato number self.big_r = self.litt_r = self.big_h = self.litt_h = self.not_p = def closeEvent(self, event): self.thread.stop() event.accept() def start(self): self.ui.label_status.setText("Đang hoạt động") # create the video capture thread self.thread = VideoThread() # connect its signal to the update_image slot self.thread.change_pixmap_signal.connect(self.update_image) self.thread.change_detect_signal.connect(self.update_detect_image) self.thread.change_info_signal.connect(self.update_display_info) # start the thread self.thread.start() def stop(self): self.ui.label_status.setText("Không hoạt động") self.thread.stop() def pause(self): self.ui.label_status.setText("Đang tạm ngưng") @Slot(list) def update_display_info(self, info): self.reset_gui() size = int(info[0])/24 - self.ui.label_size.setText("{:.1f} cm".format(size)) stt = self.return_status(info[1]) if size 4.5 and stt == "half": self.big_h += self.ui.lb_b_halfripe.setText(str(self.big_h)) self.ui.label_half.setStyleSheet("background-color: orange; border: 3px solid blue") else: self.not_p += self.ui.lb_not_pass.setText(str(self.not_p)) self.ui.label_green.setStyleSheet("background-color: green; border: 3px solid blue") def reset_gui(self): self.ui.label_ripe.setStyleSheet("background-color: red") self.ui.label_half.setStyleSheet("background-color: orange") self.ui.label_green.setStyleSheet("background-color: green") @Slot(np.ndarray) def update_image(self, cv_img): """Updates the image_label with a new opencv image""" qt_img = self.convert_cv_qt(cv_img) self.ui.lb_preview_img.setPixmap(qt_img) @Slot(np.ndarray) def update_detect_image(self, dt_frame): """Updates the image_label with a new opencv image""" rgb_image = cv2.cvtColor(dt_frame, cv2.COLOR_BGR2RGB) h, w, ch = rgb_image.shape bytesp = ch * w conv = QImage(rgb_image.data, w, h, bytesp, QImage.Format_RGB888) p = conv.scaled(w, h, Qt.KeepAspectRatio) qt_img = QPixmap.fromImage(p) SVTH:Lâm Văn Hùng Nguyễn Đức Vương Hệ thống phân loại trái cà chua 52 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Th.S Nguyễn Quang Chung self.ui.lb_gray_img.setScaledContents(1) self.ui.lb_gray_img.setPixmap(qt_img) def convert_cv_qt(self, cv_img): """Convert from an opencv image to QPixmap""" rgb_image = cv2.cvtColor(cv_img, cv2.COLOR_BGR2RGB) h, w, ch = rgb_image.shape bytes_per_line = ch * w convert_to_Qt_format = QImage(rgb_image.data, w, h, bytes_per_line, QImage.Format_RGB888) p = convert_to_Qt_format.scaled(w, h, Qt.KeepAspectRatio) return QPixmap.fromImage(p) def return_status(self, hue_value): stt = "Undefined" if hue_value

Ngày đăng: 04/10/2023, 21:22

w