Đồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái câyĐồ án tốt nghiệp: Thiết kế và thi công mô hình phân loại ba loại trái cây
BỘ GIÁO DỤC & ĐÀO TẠO TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THƠNG ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH PHÂN LOẠI BA LOẠI TRÁI CÂY GVHD: ThS Nguyễn Duy Thảo SVTH: Đặng Minh Cảnh Võ Thành Mỹ Tp Hồ Chí Minh - 1/2021 16141116 16141201 BỘ GIÁO DỤC & ĐÀO TẠO TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH PHÂN LOẠI BA LOẠI TRÁI CÂY GVHD: ThS Nguyễn Duy Thảo SVTH: Đặng Minh Cảnh Võ Thành Mỹ Tp Hồ Chí Minh - 1/2021 16141116 16141201 LỜI CAM ĐOAN Đề tài “Thiết kế thi công mơ hình phân loại ba loại trái cây” nhóm đề tài tự thực dựa vào số tài liệu trƣớc khơng chép từ tài liệu hay cơng trình có trƣớc Ngƣời thực đề tài Đặng Minh Cảnh Võ Thành Mỹ iv LỜI CẢM ƠN Lời đầu tiên, nhóm thực đề tài xin bày tỏ lòng biết ơn chân thành Thầy Nguyễn Duy Thảo – Giảng viên khoa Điện – Điện tử, Trƣờng Đại học Sƣ phạm Kỹ thuật Tp.HCM cƣơng vị ngƣời hƣớng dẫn đề tài Trong suốt thời gian thực đề tài thầy theo sát ân cần hƣớng dẫn chi tiết bƣớc thực hiện, sai sót nhóm đƣa hƣớng khắc phục cụ thể Nhờ bảo hỗ trợ từ Thầy nhóm hoàn thiện chỉnh tốt cho đề tài Nhóm xin gửi lời cảm ơn đến q thầy cô khoa Điện – Điện tử giúp đỡ tạo điều kiện tốt cho chúng em thực đề tài Ngoài ra, chúng em cảm ơn bạn học lớp 16141DT1 nhƣ chia sẻ giúp đỡ chúng em nhiều đề tài Xin chân thành cảm ơn! Ngƣời thực đề tài Đặng Minh Cảnh Võ Thành Mỹ v MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP .ii LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iii LỜI CAM ĐOAN iv LỜI CẢM ƠN v MỤC LỤC vi LIỆT KÊ HÌNH .ix LIỆT KÊ BẢNG xii TÓM TẮT xiv Chƣơng 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC Chƣơng 2: CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ XỬ LÝ ẢNH 2.2.1 Giới thiệu xử lý ảnh 2.2 PHƢƠNG PHÁP DÙNG NOTRON TÍCH CHẬP 2.2.1 Phƣơng pháp học sâu (Deep Learning) 2.2.2 Mơ hình mạng tổng qt mạng nơ-ron 2.2.3 Tập liệu huấn luyện 2.2.4 Xây dựng mạng Nơ-tron tích chập 10 2.2.5 Ngơn ngữ lập trình Python thƣ viện Tensorflow 17 vi 2.3 GIỚI THIỆU PHẦN CỨNG 18 2.3.1 Giới thiệu raspberry pi B[7] 18 2.3.2 Giới thiệu Raspberry Pi Camera 20 2.3.3 Giới thiệu cảm biến vật thể hồng ngoại E18-D80NK 22 2.3.4 Giới thiệu đông Servo MG996R 23 2.3.5 Giới thiệu hệ thống băng tải 23 Chƣơng 3: TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 25 3.1 GIỚI THIỆU: 25 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 25 3.2.1 Thiết kế sơ đồ khối hệ thống: 25 3.2.2 Tính tốn thiết kế hệ thống: 27 3.2.3 Sơ đồ kết nối toàn mạch 45 3.3 PHƢƠNG PHÁP PHÂN LOẠI TRÁI CÂY BẰNG MẠNG TÍCH CHẬP CNN 45 Chƣơng 4: THI CÔNG HỆ THỐNG 47 4.1 GIỚI THIỆU 47 4.2 THI CÔNG HỆ THỐNG 47 4.2.1 Chuẩn bị phần cứng 47 4.2.2 Lắp ráp kiểm tra 48 4.3 ĐÓNG GĨI VÀ THI CƠNG MƠ HÌNH 52 4.3.1 Đóng gói điều khiển 52 4.3.2 Thi cơng mơ hình 53 4.4 LẬP TRÌNH HỆ THỐNG 54 4.4.1 Lƣu đồ giải thuật 54 4.4.2 Giao diện điều khiển 60 vii 4.5 VIẾT TÀI LIỆU HƢỚNG DẪN SỬ DỤNG, THAO TÁC 60 Chƣơng 5: KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ 70 5.1 KẾT QUẢ TỔNG QUAN 70 5.2 KẾT QUẢ ĐẠT ĐƢỢC 71 5.2.1 Kết huấn luyện từ tập sở liệu 71 5.2.2 Giao diện hiển thị hình 72 5.2.3 Kết mơ hình thực tế 73 5.2.4 Kết thực nghiệm 78 5.3 NHẬN XÉT VÀ ĐÁNH GIÁ 84 5.3.1 Nhận xét kết đạt đƣợc 84 5.3.2 Đánh giá kết 85 Chƣơng 6: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 86 6.1 KẾT LUẬN 86 6.2 HƢỚNG PHÁT TRIỂN 86 TÀI LIỆU THAM KHẢO 87 viii LIỆT KÊ HÌNH Hình Trang Hình 2.1: Các bƣớc xử lý ảnh Hình 2: Tổng quan trí tuệ nhân tạo Hình 2.3: Mạng nơ-ron tích chập Hình 2.4: số ảnh tập sở liệu Hình 2.5: Mơ hình tích chập phân loại trái 10 Hình 2.6: Biểu diễn ma trận RGB 11 Hình 2.7: Ma trận đầu vào lớp mặt nạ tƣơng tự 12 Hình 2.8: Kết phép tích chập 13 Hình 2.9: Hồn thành phép tích chập tạo feature map 14 Hình 2.10: Tạo phân tử Stride = 15 Hình 2.11: Tạo phân tử thứ hai Stride = 15 Hình 2.12: Tạo phân tử Stride = padding = 16 Hình 2.13: Ma trận đƣợc tạo với lớp max pooling stride =2 16 Hình 2.14: Raspberry Pi model B 18 Hình 2.15: Camera Pi 20 Hình 2.16: Sơ đồ kết nối Camera Pi 21 Hình 2.17: Cảm biến hồng ngoại E18-D80NK 22 Hình 2.18: Servo MG996G 23 Hình 2.19: Mơ hình băng tải 24 Hình 3.1: Sơ đồ khối hệ thống 25 Hình 3.2: Mơ hình kit Raspberry Pi Model B 27 Hình 3.3: Sơ đồ chân Raspberry Pi 3+ 28 Hình 3.4: Sơ đồ cổng ngoại vi sử dụng 29 Hình 3.5: Sơ đồ bố trí cảm biến mơ hình 30 Hình 3.6: Động DC 31 Hình 3.7: Băng tải mini 32 Hình 3.8: Module relay 5V 32 ix Hình 3.9: Sơ đồ kết nối module relay điều khiển động 34 Hình 3.10: Nguyên lý điều chế độ rộng xung PWM 35 Hình 3.11: Module PWM 35 Hình 3.12: Kết nối module điều khiển động băng tải 36 Hình 3.13: Servo MG946R 37 Hình 3.14: Sơ đồ bố trí servo với cảm biến băng tải 38 Hình 3.15: Kết nối Camera Raspberry 39 Hình 3.16: Bóng đèn led 3W 39 Hình 3.17: Bố trí thiết bị cho khối chụp ảnh (hƣớng nhìn từ xuống) 41 Hình 3.18: Bố trí thiết bị cho khối chụp ảnh (hƣớng nhìn từ cạnh bên) 42 Hình 3.19: Nguồn Adapter 5V 2.5A cấp cho Raspberry 43 Hình 3.20: Nguồn Tổ ong 24V 5A cấp cho băng tải 44 Hình 3.21: Nguồn Adapter 5V 3A cấp cho servo 44 Hình 3.22: Sơ đồ nguyên lý toàn mạch 45 Hình 4.1: Bố trí cảm biến, servo, luồng phân loại băng tải 49 Hình 4.2: Mặt cạnh buồng ảnh 50 Hình 4.3: Module PWM đƣợc gắn buồng ảnh 50 Hình 4.4: Bố trí linh kiện trần buồng ảnh 51 Hình 4.5: Cảm biến hồng ngoại buồng ảnh 51 Hình 4.6: Đóng gói điều khiển buồng ảnh 52 Hình 4.7: Mơ hình hệ thống 53 Hình 4.8: Lƣu đồ chƣơng trình mơ hình 55 Hình 4.9: Lƣu đồ chƣơng trình Chụp lƣu ảnh 57 Hình 4.10: Lƣu đồ chƣơng trình Xử lý dự đốn 58 Hình 4.11: Lƣu đồ chƣơng trình So sánh dán nhãn trái 59 Hình 4.12: Giao diện ban đầu 60 Hình 4.13: Cửa sổ Remote Desktop Connection 61 Hình 4.14: Cửa sổ hiển thị nhập địa IP 62 Hình 4.15: Vị trí file chƣơng trình Desktop 62 Hình 4.16: Giao diện trình biên dịch 63 x Hình 4.17: Giao diện điều khiển ban đầu 64 Hình 4.18: Giao diện hiển thị có trái đƣa vào 65 Hình 4.19: Giao diện hiển thị có loại trái khác vào 65 Hình 4.20: Cần gạt servo1 mở nhận dạng táo 66 Hình 4.21: Cần gạt servo2 mở nhận dạng chanh 67 Hình 4.22: Cần gạt servo3 mở nhận dạng lê 67 Hình 4.23: Sản phẩm khác loại đƣợc chuyển đến cuối băng tải 68 Hình 4.24: Kết sau phân loại 68 Hình 4.25: Trạng thái Stop giao diện 68 Hình 4.26: Cảnh báo giao diện …………………………………………….69 Hình 5.1: Sơ đồ biểu diễn Model loss 71 Hình 5.2: Sơ đồ biểu diễn Model accuracy 71 Hình 5.3: Giao diện điều khiển ban đầu 72 Hình 5.4: Cảnh báo thoát giao diện 73 Hình 5.5: Mơ hình hệ thống hoàn chỉnh 74 Hình 5.6: Ngõ vào trái 75 Hình 5.7: Bộ điều khiển buồng ảnh 76 Hình 5.8: Module PWM gắn bên cạnh buồng ảnh 77 Hình 5.9: Bố trí đèn buồng ảnh 77 Hình 5.10: Táo đƣợc băng tải chuyển vào buồng ảnh 78 Hình 5.11: Kết hiển thị giao diện táo vào 79 Hình 5.12: Táo chuẩn bị đƣợc gạt vào luồng 79 Hình 5.13: Chanh đƣợc băng tải chuyển vào buồng ảnh 80 Hình 5.14: Kết hiển thị giao diện chanh vào 80 Hình 5.15: Chanh chuẩn bị đƣợc gạt vào luồng 81 Hình 5.16: Lê đƣợc băng tải chuyển vào buồng ảnh 81 Hình 5.17: Kết hiển thị giao diện lê vào 82 Hình 5.18: Lê chuẩn bị đƣợc gạt vào luồng 82 Hình 5.19: Giao diện hiển thị có loại khác vào 83 Hình 5.20: Trái mận đƣợc chuyển đến cuối băng tải 83 xi CHƢƠNG KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ 5.2.4 Kết thực nghiệm Kết thực nghiệm đƣợc thực với loại trái cây: táo, chanh, lê loại khác 5.2.4.1 Phân loại táo Sau đƣợc đặt lên băng tải, táo đƣợc băng tải chuyển vào buồng ảnh Hình 5.10: Táo băng tải chuyển vào buồng ảnh Khi cảm biến phát hiện, băng tải dừng lại để chụp hiển thị ảnh giao diện Hệ thống xử lý kết luận loại sản phẩm mục Class, trƣờng hợp Class hiển thị Apple BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 78 CHƢƠNG KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ Hình 5.11: Kết hiển thị giao diện táo vào Lúc này, táo đƣợc đƣa buồng ảnh, cảm biến hồng ngoại thứ phát hiện, servo1 tác động đƣa trái táo vào luồng phân loại táo Hình 5.12: Táo chuẩn bị gạt vào luồng BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 79 CHƢƠNG KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ 5.2.4.2 Phân loại chanh Sau đƣợc đặt lên băng tải, chanh đƣợc băng tải chuyển vào buồng ảnh Hình 5.13: Chanh băng tải chuyển vào buồng ảnh Khi cảm biến phát băng tải dừng lại để chụp hiển thị thông tin giao diện Hình 5.14: Kết hiển thị giao diện chanh vào BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 80 CHƢƠNG KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ Lúc này, chanh đƣợc đƣa buồng ảnh, cảm biến hồng ngoại thứ hai phát hiện, servo2 tác động đƣa trái chanh vào luồng phân loại chanh Hình 5.15: Chanh chuẩn bị gạt vào luồng 5.2.4.3 Phân loại lê Sau đƣợc đặt lên băng tải, lê đƣợc băng tải chuyển vào buồng ảnh Hình 5.16: Lê băng tải chuyển vào buồng ảnh Khi cảm biến phát băng tải dừng lại để chụp hiển thị thơng tin giao diện BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 81 CHƢƠNG KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ Hình 5.17: Kết hiển thị giao diện lê vào Lúc này, lê đƣợc đƣa buồng ảnh, cảm biến hồng ngoại thứ ba phát hiện, servo3 tác động đƣa trái lê vào luồng phân loại lê Hình 5.18: Lê chuẩn bị gạt vào luồng BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 82 CHƢƠNG KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ 5.2.4.4 Phân loại trái khác loại trên: Hình 5.19: Giao diện hiển thị có loại khác vào Khi đƣa loại khác vào mơ hình giao diện mục Class hiển thị Other Loại đƣợc đƣa đến ngăn thứ đặt cuối băng tải Hình 5.20: Trái mận chuyển đến cuối băng tải BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 83 CHƢƠNG KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ 5.2.4.5 Phân loại trái tổng hợp: Kết cuối phân loại: Hình 5.21: Kết phân loại Dƣới dây bảng đánh giá độ xác sau q trình chạy thực nghiệm Bảng 5.1: Kết chạy thực nghiệm Sản phẩm Kết Độ xác (%) Táo chanh Lê 10/10 20/20 10/10 100 100 100 Nhận xét: Sau chạy thực nghiệm 10 sản phẩm loại hệ thống hoạt động ổn định cho kết xác tuyệt đối không bị nhầm lẫn loại trái khác Tuy nhiên, số lƣợng mẫu hạn chế nên chƣa thể kết luận mơ hình hoạt động xác 100% 5.3 NHẬN XÉT VÀ ĐÁNH GIÁ 5.3.1 Nhận xét kết đạt đƣợc Nhóm thực hoàn thành 95% mục tiêu đặt ban đầu: Nhóm thục việc sử dụng kit Raspberry Pi model B nhƣ việc cài đặt sử dụng cơng cụ tiện ích hệ điều hành Raspbian Nhóm đánh giá đƣợc Raspberry Pi hồn tồn thích hợp BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 84 CHƢƠNG KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ với dự án vừa nhỏ không yêu cầu cao tốc độ xử lý Đặc biệt, nhóm thành cơng việc triển khai mơ hình mạng nơ-ron tích chập kit Raspberry Pi với phần cứng hạn chế Qua cho thấy Raspberry Pi có khả thực tốt dự án liên quan đến máy học trí tuệ nhân tạo Nhóm tiếp xúc với ngơn ngữ lập trình Python, ngơn ngữ lập trình phổ biến giới đa Nhóm biết cách cài đặt sử dụng thƣ viện quan trọng hỗ trợ cho đề tài nhƣ Tensorflow, OpenCV Appjar Từ giúp nhóm cải thiện kỹ lập trình giải vấn đề thơng qua lập trình Camera Pi có độ phân giải không cao, nhƣng đủ để thực tác vụ xử lý nhận dạng ảnh Nhóm kết hợp nhiều ngoại vi với xử lý trung tâm kit Raspberry Pi model B nhƣ camera, cảm biến hồng ngoại động servo Hệ thống có khả phân loại loại sản phẩm táo, chanh lê, sản phẩm nằm ngồi loại đƣợc xem loại khác Ngƣời dùng dễ dàng giám sát điều khiển thông qua giao diện hệ điều hành Raspbian 5.3.2 Đánh giá kết Trải qua khoảng thời gian tìm hiểu, nghiên cứu, tích lũy kinh nghiệm hồn thiện đề tài nhóm đề tài có số đánh giá nhƣ sau: Mơ hình hoạt động có độ ổn định xác cao Có tính ứng dụng vào sản xuất cơng nghiệp, đƣa vào phát triển nâng cấp hệ thống dùng nhà máy sản xuất Dữ liệu đƣợc lƣu trữ sở liệu đám mây, tạo thuận lợi trình thống kê, xác định xuất BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 85 CHƢƠNG KẾT LUẬN VÀ HƢỚNG PHÁT TRIỄN Chƣơng 6: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Trải qua suốt thời gian nghiên cứu, phân tích, tìm hiểu tổng hợp dƣới giúp đỡ nhiệt tình Thầy Nguyễn Duy Thảo, nhóm đề tài thu đƣợc mơ hình hệ thống đáp ứng đƣợc tốt tiêu đặt ban đầu, kết hồn thiện tƣơng đối xác Các khối mơ hình hoạt động ổn định với chi tiết đƣợc thiết kế nhỏ gọn dễ dàng thay có cố Phần cứng mơ hình chắn phù hợp với phần mềm Giao diện hệ thống đơn giản, dễ thao tác quan sát Hiển thị trực quan hình ảnh đƣợc chụp từ camera giúp ngƣời điều khiển kiểm sốt sản phẩm dây chuyền Nhận diện đƣợc tốt trái đƣợc đƣa vào phân loại Tuy nhiên, có hạn chế định nhƣ hệ thống hoạt động phân loại tƣơng đối chậm phần giới hạn phân loại sản phẩm nhƣ thời gian để xử lý hệ thống chƣa đủ nhanh Độ sáng bên buồng ảnh yếu tố ảnh hƣởng đến việc thu ảnh nhận 6.2 HƢỚNG PHÁT TRIỂN Đề tài “Thi công thiết kế mơ hình phân loại ba loại trái cây” nhóm cịn tồn nhiều điểm hạn chế, cần phát triển để dự án đƣợc áp dụng hiệu ngành sản xuất nông sản, nhƣ: Tăng tốc độ làm việc xử lý bƣớc tiến cần có hệ thống nên việc phát triển hệ thống có tốc độ xử lý hiệu nhanh điều hƣớng đến hàng đầu Để đƣa vào sản xuất khơng nhanh mà cịn phải liên tục hàng loạt nên hƣớng đến hệ thống xử lý đa luồng trái đƣa vào lúc Mở rộng phạm vi phân loại mơ hình lên số lƣợng loại trái cây, hình dạng trái, nặng, hay tình trạng trái Có thể cập nhật liệu lên tảng đám mây để dễ dàng quản lý Thay servo động mang tính cơng nghiệp để đạt độ xác tốc độ cao BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 86 TÀI LIỆU THAM KHẢO 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âu nặng màu sắc”, Phạm Thị Thanh Thảo, Phan Trần Hoài Vũ [2] Nguyễn Quang Hoan, “Xử lý ảnh”, Học Viện Bƣu Chính Viên Thơng, 2006 [3] Fruit recognition from images using deep learning –Horrea Muresan, Mihai Oltean [4] Tổng quan Deep learning: https://nordiccoder.com/blog/deep-learning-la-gi/ [5] Raspberry Pi Việt Nam, sản phẩm Raspberry Pi B Model https://raspberrypi.vn/shop/mach-raspberry-pi/raspberry-pi-4-model-b-2019 lần thứ IX “Nghiên cứu ứng dụng Công nghệ thông tin”, Cần Thơ, 2016 [6] Python (programming language), https://en.wikipedia.org/wiki/Python_(programming_language) [7] Raspberry Pi gì? Giới thiệu Raspberry Pi, https://raspberrypi.vn/tin-tuc/raspberry-pi-la-gi-gioi-thieu-ve-raspberry-pi-261.pi [8] Pulse-width modulation, https://en.wikipedia.org/wiki/Pulse-width_modulation BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 87 TÀI LIỆU THAM KHẢO Phụ Lục CHƢƠNG TRÌNH ĐIỀU KHIỂN TRÊN RASPBERRY from picamera import PiCamera import pigpio import RPi.GPIO as GPIO from appJar import gui from time import sleep from PIL import Image, ImageTk import tensorflow as tf from tensorflow import keras import cv2 import numpy as np ########################################################################### ## GPIO.setwarnings(False) camera = PiCamera() pi = pigpio.pi() BUZZER = 32 MOTOR = 12 CB1 = 16 CB2 = 19 CB3 = 21 CB4 = 23 servo1 = 24 servo2 = 17 servo3 = 22 init_angle = 500 angle_servo_1 = 1400 angle_servo_2_3 = 1200 TT = s = label = i = count_apple = count_lime = count_pear = count_other = GPIO.setmode(GPIO.BOARD) GPIO.setup(MOTOR, GPIO.OUT) GPIO.setup(BUZZER, GPIO.OUT) GPIO.setup(CB1, GPIO.IN) GPIO.setup(CB2, GPIO.IN) GPIO.setup(CB3, GPIO.IN) GPIO.setup(CB4, GPIO.IN) GPIO.output(BUZZER, GPIO.LOW) GPIO.output(MOTOR, GPIO.LOW) ########################################################################### BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 88 TÀI LIỆU THAM KHẢO ## ########################################################################### ## def StartServo1(): pi.set_servo_pulsewidth(servo1, angle_servo_1) sleep(2) pi.set_servo_pulsewidth(servo1, init_angle) sleep(1) def StartServo2(): pi.set_servo_pulsewidth(servo2, angle_servo_2_3) sleep(3.5) pi.set_servo_pulsewidth(servo2, init_angle) sleep(1) def StartServo3(): pi.set_servo_pulsewidth(servo3, angle_servo_2_3) sleep(4) pi.set_servo_pulsewidth(servo3, init_angle) sleep(1) ########################################################################### ## app = gui("Manager") #app.setSize("1366x750") app.setSize("fullscreen") #app.setLocation("CENTER") app.setBg("white") app.setFont(size=18, underline=False, weight = "bold", slant="roman") logo = Image.open("/home/pi/Data/logo.png") logo = logo.resize((80, 100), Image.ANTIALIAS) logo = ImageTk.PhotoImage(logo) app.addImageData("logo", logo, fmt="PhotoImage", column=0, row=0) # hien thi trang thai ban dau app.startLabelFrame("Status") app.setSticky("ew") app.addLabel("l1", "Stop",2,0) app.setLabelFg("l1", "red") app.stopLabelFrame() #hien thi hinh anh app.startLabelFrame("Image") app.setSticky("ew") app.addImage("image", "/home/pi/Data/noimage.gif") app.stopLabelFrame() #hien thi phan tram app.startLabelFrame("Class") app.setSticky("ew") app.addLabel("c","Unknow",5,1) app.setLabelFg("c", "purple") app.stopLabelFrame() BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 89 TÀI LIỆU THAM KHẢO def press(button): global TT, label if button == "RUN": TT = app.setLabel("l1", "Ready") app.setLabelFg("l1", "green") elif button == "STOP": TT = label = app.setLabel("l1", "Stop") app.setLabelFg("l1", "red") GPIO.output(MOTOR, GPIO.LOW) #hien thi nut nhan app.addButtons(["RUN","STOP"], press,6,0) ########################################################################### ## model = tf.keras.models.load_model('/home/pi/DATN/Model/06122020.hdf5') fruit_class = ["Apple", "lime", "pear"] def check_class(): global label if proba[pred_index] > 0.9: if(fruit_class[pred_index]) == "Apple": label = app.setLabel("c",str(fruit_class[pred_index])) app.setLabelFg("c", "green") elif(fruit_class[pred_index]) == "lime": label = app.setLabel("c",str(fruit_class[pred_index])) app.setLabelFg("c", "green") elif(fruit_class[pred_index]) == "pear": label = app.setLabel("c",str(fruit_class[pred_index])) app.setLabelFg("c", "green") else: label = app.setLabel("c","Other") app.setLabelFg("c", "red") return label def predict(): global proba, pred_index pred_img = cv2.imread('/home/pi/Data/image.jpg') pred_img = cv2.cvtColor(pred_img, cv2.COLOR_BGR2RGB) pred_img = cv2.resize(pred_img, (100, 100)) pred_img = np.array(pred_img) pred_img = np.reshape(pred_img, [1, 100, 100, 3]) pred_img = pred_img/255 proba = model.predict(pred_img)[0] pred_index = np.argmax(proba) check_class() def buzzer(): BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 90 TÀI LIỆU THAM KHẢO GPIO.output(BUZZER, GPIO.HIGH) sleep(0.1) GPIO.output(BUZZER, GPIO.LOW) def change_pic(): photo = Image.open("/home/pi/Data/image.jpg") photo = photo.resize((470, 350), Image.ANTIALIAS) photo = ImageTk.PhotoImage(photo) app.setImageData("image", photo, fmt="PhotoImage") def capture(): camera.start_preview() sleep(2) camera.capture('/home/pi/Data/image.jpg') buzzer() camera.stop_preview() change_pic() def run(): global s, label GPIO.output(MOTOR, GPIO.HIGH) if GPIO.input(CB1) == False and s == 0: app.setLabel("l1", "Processing ") app.setLabelFg("l1", "yellow") s = sleep(0.5) GPIO.output(MOTOR, GPIO.LOW) capture() predict() check_class() elif GPIO.input(CB1) == True and s == 1: sleep(0.5) s = GPIO.output(MOTOR, GPIO.HIGH) elif label == 1: if GPIO.input(CB2) == False: StartServo1() app.setLabel("l1", "Ready") app.setLabelFg("l1", "green") label = elif label == 2: if GPIO.input(CB3) == False: StartServo2() app.setLabel("l1", "Ready") app.setLabelFg("l1", "green") label = elif label == 3: if GPIO.input(CB4) == False: StartServo3() app.setLabel("l1", "Ready") app.setLabelFg("l1", "green") label = elif label == 4: sleep(13) app.setLabel("l1", "Ready") app.setLabelFg("l1", "green") label = def stop(): global label BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 91 S K L 0 ... TÍNH TỐN VÀ THI? ??T KẾ HỆ THỐNG Chƣơng 3: TÍNH TỐN VÀ THI? ??T KẾ HỆ THỐNG 3.1 GIỚI THI? ??U: Đề tài “Nghiên cứu, thi? ??t kế thi cơng mơ hình phân loại loại trái ” với mục tiêu phân loại loại trái táo,... kết thi công hệ thống phân loại sản phẩm raspberry[5] Hệ thống có tên ? ?Thi? ??t kế thi cơng mơ hình phân loại ba loại trái cây? ?? có chức phân loại loại trái thơng qua camera BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP... qua giao diện hình hiển thị 3.2 TÍNH TỐN VÀ THI? ??T KẾ HỆ THỐNG 3.2.1 Thi? ??t kế sơ đồ khối hệ thống: Để thực hoàn thành đề tài “Nghiên cứu, thi? ??t kế thi cơng mơ hình phân loại loại trái cây? ?? hệ thống