Đồ án tốt nghiệp xuất sắc của sinh viên cơ điện tử trường đại học bách khoa hà nội năm 2021 Chương 1: Tổng quan về hệ thống phân loại và đóng gói sản phẩm ứng dụng xử líảnh. Chương 2: Tính toán và thiết kế hệ thống cơ khí. Chương 3: Hệ thống điện điều khiển. Chương 4: Giới thiệu, cơ sở lý thuyết về xử lý ảnh và ứng dụng của machine learning,deep learning trong xử lý ảnh. Chương 5: Xây dựng và đào tạo kiến trúc phân loại chất lượng thuốc sử dụng mạngnơ – ron tích chập. Chương 6: Xây dựng hệ thống và thực nghiệm. Chương 7: Kết luận.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CƠ KHÍ BỘ MÔN CƠ ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP Nghiên cứu thiết kế hệ thống phân loại thuốc tự động sử dụng công nghệ học sâu Giảng viên hướng dẫn: Bộ môn: Viện: TS Mạc Thị Thoa Cơ Điện Tử Cơ Khí NGUYỄN NGỌC LINH linh.nn152199@sis.hust.edu.vn PHẠM VĂN TÀI tai.pv166703@sis.hust.edu.vn Chuyên ngành Cơ Điện Tử HÀ NỘI, 1/2021 Chữ ký GVHD BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HOÀ XÃ HỘI CHỦ NGHÍA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Độc lập – Tự – Hạnh phúc NHIỆM VỤ THIẾT KẾ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguyễn Ngọc Linh Phạm Văn Tài Bộ mơn: Viện: Cơ Điện Tử Cơ Khí MSSV: MSSV: 20152199 20166703 I/ ĐỀ TÀI THIẾT KẾ “Nghiên cứu thiết kế hệ thống phân loại thuốc tự động sử dụng công nghệ học sâu” II/ CÁC SỐ LIỆU BAN ĐẦU - Năng suất: 1450 viên/giờ - Tốc độ băng tải: (cm/s) - Yêu cầu đầu ra: Phân loại tối thiểu 80% viên thuốc, không sản phẩm lỗi vào lọ - Loại thuốc cần phân loại: Phazadol có hình dạng viên nén dẹt III/ NỘI DUNG THUYẾT MINH VÀ TÍNH TỐN - Chương 1: Tổng quan hệ thống phân loại đóng gói sản phẩm ứng dụng xử lí ảnh - Chương 2: Tính tốn thiết kế hệ thống khí - Chương 3: Hệ thống điện điều khiển - Chương 4: Giới thiệu, sở lý thuyết xử lý ảnh ứng dụng machine learning, deep learning xử lý ảnh - Chương 5: Xây dựng đào tạo kiến trúc phân loại chất lượng thuốc sử dụng mạng nơ – ron tích chập - Chương 6: Xây dựng hệ thống thực nghiệm - Chương 7: Kết luận IV/ CÁC BẢN VẼ VÀ ĐỒ THỊ STT Tên vẽ Hệ thống băng tải Bản vẽ đầu nối điện Bản vẽ khí nén Bản vẽ lưu đồ thuật tốn Sơ đồ dịng chảy q trình thực V/CÁN BỘ HƯỚNG DẪN: TS Mạc Thị Thoa SL KT 1 A0 A0 1 A0 A0 A0 VI/ NGÀY GIAO NHIỆM VỤ THIẾT KẾ: 06/10/2020 VII/ NGÀY HOÀN THÀNH ĐỒ ÁN: 28/01/2021 Hà Nội, ngày tháng năm 2021 Giảng viên hướng dẫn Đánh giá giảng viên hướng dẫn ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… Kết đánh giá Họ tên Nguyễn Ngọc Linh Hà Nội, ngày tháng năm 2021 Điểm Giảng viên hướng dẫn Đánh giá giảng viên phản biện ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… Kết đánh giá Họ tên Nguyễn Ngọc Linh Hà Nội, ngày tháng năm 2021 Điểm Giảng viên phản biện Lời cảm ơn Chúng em xin chân thành cảm ơn TS MẠC THỊ THOA tạo điều kiện giúp em hoàn thành đề tài Xin cảm ơn Thầy (Cô) môn Cơ Điện Tử – Viện Cơ Khí tạo điều kiện giúp đỡ hỗ trợ cho em suốt q trình thực tập tốt nghiệp hồn thành báo cáo Tóm tắt nội dung đồ án Với đề tài “Thiết kế hệ thống phân loại thuốc tự động sử dụng cơng nghệ học sâu” nhóm nhận thấy vấn đề cần thực thiết kế khí; để nhận biết, phân loại sản phẩm lỗi qua xử lý ảnh hay phải giao tiếp chương trình xử lý ảnh với điều khiển để điều khiển cấu chấp hành Để thực nhiệm vụ ban đầu nhóm tìm hiểu nghiên cứu mơ hình đóng gói phân loại sản phẩm, sau tính tốn thiết kế vẽ khí phần mềm Catia, mơ thực làm mơ hình thực tế; tiến hành điều khiển mơ hình qua PLC; chương trình xử lý ảnh viết ngôn ngữ Python giao tiếp với PLC qua thư viện Snap7 Đồ án nghiên cứu, triển khai, thử nghiệm đánh giá nhận diện vật thể, phân loại hình ảnh dựa mạng nơ – ron tích chập ứng dụng hệ thống phân loại chất lượng viên thuốc Quá trình xây dựng thử nghiệm bao gồm lựa chọn phương pháp chuẩn bị liệu, xử lý liệu, lựa chọn mơ hình phương pháp tối ưu, sau đánh giá so sánh kết Mơ hình huấn luyện sử dụng hệ thống phân loại chất lượng viên thuốc dây chuyền sản xuất Việc triển khai, đánhh giá mơ hình xây dựng ứng dụng ngôn ngữ Python với hỗ trợ thư viện Scikit – learn, Keras, OpenCV, … Kết đồ án thu phù hợp với toàn vấn đề đặt triển khai áp dụng vào thực tế Bài toán dừng lại mức độ phân loại cần áp dụng phân đoạn ảnh để xác định xác vị trí vùng lỗi thuốc Thơng qua đồ án em lĩnh hội kiến thức xử lý ảnh túy lĩnh vực ngành khoa học máy tính ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA MỤC LỤC PHẦN MỞ ĐẦU CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG PHÂN LOẠI VÀ ĐÓNG GÓI SẢN PHẨM ỨNG DỤNG XỬ LÝ ẢNH 10 I.1 Đặt vấn đề 10 I.2 Lý chọn đề tài 10 I.3 Phạm vi nghiên cứu đề tài 11 I.4 Nguyên lý hoạt động toàn hệ thống 11 I.5 Hệ thống phân loại sản phẩm xử lý ảnh 12 I.6 Đóng hộp 13 I.6.1 Đóng thuốc vào lọ – secondary packaging 13 I.6.2 Đóng gói hộp, lọ vào thùng – final packaging 14 I.7 Ý nghĩa hệ thống 14 CHƯƠNG II: TÍNH TỐN, THIẾT KẾ HỆ THỐNG CƠ KHÍ 16 II.1 Yêu cầu hệ thống khí 16 II.2 Mơ hình đề xuất 16 II.3 Băng tải 17 II.3.1 Tổng quan 17 II.3.2 Thông số đầu vào 19 II.3.3 Tính sơ liệu đầu vào 20 II.4 Động 21 II.4.1 Tổng quan 21 II.4.2 Tính tốn động 23 II.5 Ổ lăn 27 II.6 Xy lanh khí nén 28 II.7 Cơ cấu đóng nắp lọ 30 II.7.1 Cấu tạo máy đóng nắp lọ 30 II.7.2 Nguyên lý hoạt động 30 II.7.3 Cách thức hoạt động 31 CHƯƠNG III: HỆ THỐNG ĐIỆN, ĐIỀU KHIỂN 32 III.1 Giới thiệu thiết bị điện sử dụng hệ thống 32 III.1.1 Nút nhấn 32 III.1.2 Cảm biến 33 III.1.3 Van đảo chiều 35 SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 1|Page ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA III.1.4 Relay điện từ 36 III.1.5 Bộ điều khiển PLC 37 III.1.6 Bộ điều khiển PLC 55 III.1.7 Nguồn điện 57 III.1.8 Camera 58 III.1.9 Hệ thống chiếu sáng 59 III.2 Bài toán điều khiển 59 III.2.1 Bài toán yêu cầu 59 III.2.2 Quy trình cơng nghệ 59 III.2.3 Lưu đồ điều khiển 60 III.2.4 Phần mềm lập trình 62 III.2.5 Các biến sử dụng chương trình 62 III.2.6 Thiết kế giao diện HMI 64 III.2.7 Bài toán kết nối PLC với Python 65 CHƯƠNG IV: GIỚI THIỆU, CƠ SỞ LÝ THUYẾT VỀ XỬ LÝ ẢNH VÀ ỨNG DỤNG CỦA MACHINE LEARNING, DEEP LEARNING TRONG XỬ LÝ ẢNH 68 IV.1 Tổng quan computer vision 68 IV.2 Kỹ thuật xử lý ảnh truyền thống 69 IV.2.1 Các Khái niệm 69 IV.2.2 Một số kỹ thuật xử lý ảnh truyền thống 71 IV.3 Cơ sở lý thuyết ứng dụng Machine Learning / Deep Learning Computer Vision 72 IV.3.1 Tổng quan Machine Learning Deep Learning 72 IV.3.2 Mạng nơ – ron nhân tạo 73 IV.3.3 Hàm kích hoạt (Activation Functions) 75 IV.3.4 Lan truyền thuận (Forward Propagation) 76 IV.3.5 Hàm mát, hàm chi phí (Loss Function, Cost Function) 77 IV.3.6 Gradient Descent 78 IV.3.7 Lan truyền ngược (Backward Propagation) 78 IV.3.8 Mạng nơ – ron tích chập (Convolution Neural Network) 80 IV.4 Kết luận 83 CHƯƠNG V: XÂY DỰNG VÀ ĐÀO TẠO KIẾN TRÚC PHÂN LOẠI CHẤT LƯỢNG THUỐC SỬ DỤNG MẠNG NƠ – RON TÍCH CHẬP 84 V.1 Chuẩn bị liệu 85 a) Dữ liệu thuốc đạt 85 SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 2|Page ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA b) Dữ liệu thuốc lỗi 86 V.2 Tăng cường liệu 87 V.3 Cơ sở lý thuyết kiến trúc VGG16 áp dụng phân loại 87 V.4 Xây dựng kiến trúc model 92 a) Trích xuất đặc trưng (Featured Extraction) 93 b) Lớp liên kết đầy đủ (Fully – Connected Layer) 96 V.5 Train model 97 CHƯƠNG VI: XÂY DỰNG MƠ HÌNH HỆ THỐNG VÀ THỰC NGHIỆM 103 VI.1 Xây dựng mơ hình hệ thống 103 VI.2 Kết thực nghiệm 110 CHƯƠNG 7: KẾT LUẬN 111 VII.1 Kết luận 111 VII.2 Hướng phát triển đồ án tương lai 111 TÀI LIỆU THAM KHẢO 112 PHỤ LỤC 114 SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 3|Page ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA DANH MỤC HÌNH VẼ Hình 1.1: Sơ đồ tín hiệu điều khiển 11 Hình 1.2: Xử lý ảnh công nghiệp 12 Hình 1.3: Quy trình đóng gói 14 Hình 2.1: Mơ hình đề xuất 16 Hình 2.2: Băng tải cơng nghiệp 17 Hình 2.3: Danh sách loại băng tải 18 Hình 2.4: Sơ đồ phân bố phôi băng tải 19 Hình 2.5: Đồ thị biểu diễn trình tăng – giảm tốc băng tải 19 Hình 2.6: Mặt cắt dây đai 20 Hình 2.7: Động chiều 22 Hình 2.8: Các lực tác động lên băng tải 23 Hình 2.9: Thông số kỹ thuật động TG-85B-SG-gear ratio = 1/15 25 Hình 2.10: Thơng số kỹ thuật động TG-85B-SG-gear ratio = 1/50 27 Hình 2.11: Hình chiếu hệ thống phân loại 28 Hình 2.12: Thơng số kỹ thuật xylanh CXSJ series 29 Hình 2.13: Ý nghĩa ký hiệu xylanh CXSJ series 29 Hình 2.14: Cơ cấu cấp, đóng lọ 30 Hình 3.1: Nút nhấn 33 Hình 3.2: Cảm biến Omron E3F-DS30B4 34 Hình 3.3: Van đảo chiều điện từ 35 Hình3.4: Van đảo chiều 5/2 36 Hình3.5: Relay trung gian Omron MY2NJ 36 Hình 3.6 Ứng dụng PLC 37 Hình 3.7 Cấu trúc PLC 39 Hình 3.8 Nguyên lý hoạt động PLC 40 Hình 3.9 Lập trình dạng bậc thang 42 Hình 3.10 Lập trình phương pháp khối hàm 43 Hình 3.11 Giản đồ định Timer 55 Hình 3.12: PLC S7 – 1200 CPU 1214C DC/DC/DC 55 Hình 3.13: Các chuẩn truyền thông PLC S7-1200 57 Hình 3.14: Nguồn tổ ong 24V DC 57 Hình 3.15: Camera Logitech B525 58 Hình 3.16: Sơ đồ tín hiệu điều khiển 60 SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 4|Page ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] http://baoanjsc.com.vn/tin-hang/machine-vision-la-gi-loi-ich-cua-machine-visiontrong-smart-factory_2_69_31587_vn.aspx Lê Giang Nam, Nguyễn Mạnh Hùng, Một phương pháp đánh giá hệ thống cấp nắp cao su rung cho trình đóng chai thuốc, Tạp chí khí Việt Nam, ISSN 0866-7056., 2015 N V Dự, Hướng dẫn tính tốn băng tải, 2011 https://sandivietnam.com/san-pham/dong-co https://www.tsukasa-d.co.jp/en/data_download/english_catalogue.pdf T Chất, Cơ sở kế máy chi tiết máy, Nhà xuất Khoa học kỹ thuật http://ca01.smcworld.com/catalog/BEST-5-3-en/pdf/3-p0639-0697-cxsj_en.pdf https://www.sendo.vn/nut-nhan-nha-nut-nhan-de-khong-den-3-den-19387860.html https://chotroihn.vn/cam-bien-khoang-cach-30cm-omron-e3f-ds30b4-pnp https://www.facebook.com/DaotaotudonghoaIATC.16/photos/a.790024944412980/ 2920516764697110/?type=3&theater https://www.sendo.vn/ro-le-trung-gian-omron-8-chan-my2n-gs-dc24v21069974.html?utm_source=google&utm_medium=affiliate&utm_campaign=4_gs n-gsh_3647_phukiencongnghe-phukiencongnghekhacphukiencongnghekhac3&gclid=Cj0KCQjw9IX4BRCcARIsAOD2OB26mu3XhGn1ZUWmXhJZV http://siemens-vietnam.vn/gioi-thieu-plc-s7-1200/ https://tiki.vn/webcam-logitech-b525-hd-720p-hang-chinh-hangp419013.html?spid=1047490&utm_source=google&utm_medium=cpc&utm_camp aign=SEA_NBR_GGL_PLA_DTP_ALL_VN_ALL_UNK_UNK_C.ALL_X.20451 69324_Y.95003794930_V.1047490_W.DT_A.895864466796_O.CAC&gclid=Cj0 KCQjw https://www.automation-sense.com/blog/interviewsenglish/davide.html?fbclid=IwAR0R4nXSIN1Br9yaYtCvoSQhOA2TnRAQBngCj Mja-5cn1boujoTIrd7syog Nguyễn Văn Hướng, Nguyễn Văn Hinh, " Ứng dụng công nghệ học sâu để phân loại kiểm tra chất lượng thuốc chữa bệnh", Đồ án tốt nghiệp kỹ sư điện tử, ĐHBKHN, 2018 https://aicurious.io/posts/2018-09-29-loc-anh-image-filtering/ https://learnopencv.com/histogram-of-oriented-gradients/ https://www.researchgate.net/publication/272055558_Rice_Edges_Detection_Based _on_Canny_Operator Andrew Ng, associate professor at Stanford, chief scientist of Baidu and chairman and co-founder of massive online open course platform Coursera Tạ Hữu Phước, Hồng Nguyễn Sinh Thành, Nguyễn Phương Nam, Ứng dụng cơng nghệ Deep Learning kiểm tra chất lượng vỉ thuốc thiết kế dây chuyền đóng gói, Đồ án tốt nghiệp kỹ sư, Trường Đại học Bách Khoa Hà Nội, 01/2020 https://news.unchealthcare.org/images/science-images/neuron-illustration1/imageviewfullsreen SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 112 | P a g e ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA [22] https://towardsdatascience.com/activation-functions-neural-networks1cbd9f8d91d6 [23] https://nttuan8.com/bai-3-neural-network/ [24] Nguyễn Hữu Dương, Nhận diện cảm xúc khn mặt sử dụng mạng nơ-ron tích chập, Đồ án tốt nghiệp kỹ sư, Trường Đại học Bách Khoa Hà Nội, 05/2019 [25] Aurélien Géron, Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow O’Reilly Media, Inc, 2019 [26] https://www.researchgate.net/directory/publications/ [27] https://dial.uclouvain.be/memoire/ucl/fr/object/thesis:14685/datastream/PDF_01/vie w/ [28] https://medium.com/towards-artificial-intelligence/the-architecture-andimplementation-of-vgg-16-b050e5a5920b/ [29] https://noron.vn/post/deep-learning-gioi-thieu-ve-mang-neurons-va-cac-h1g62w4nxcdr/ [30] https://www.coursera.org/learn/machine-learning/home/welcome/ [31] https://www.coursera.org/learn/neural-networks-deep-learning/home/welcome/ [32] https://www.coursera.org/learn/convolutional-neural-networks/home/welcome/ [33] https://arxiv.org/abs/1409.1556/ [34] https://medium.com/towards-artificial-intelligence/the-architecture-andimplementation-of-vgg-16-b050e5a5920b/ SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 113 | P a g e ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA PHỤ LỤC Chương trình điều khiển: SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 114 | P a g e ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 GVHD: TS MẠC THỊ THOA 115 | P a g e ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 GVHD: TS MẠC THỊ THOA 116 | P a g e ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA Để xây dựng model VGG16 em sử dụng framework keras: import keras from keras.models import Sequential from keras.layers import Dense, Conv2D, MaxPool2D , Flatten, Dropout model = Sequential() model.add(Conv2D(input_shape=(224,224,3),filters=64,kernel_size=(3,3), padding="same", activation="relu")) model.add(Conv2D(filters=64,kernel_size=(3,3),padding="same", activati on="relu")) model.add(MaxPool2D(pool_size=(2,2),strides=(2,2))) model.add(Conv2D(filters=128, kernel_size=(3,3), padding="same", activ ation="relu")) model.add(Conv2D(filters=128, kernel_size=(3,3), padding="same", activ ation="relu")) model.add(MaxPool2D(pool_size=(2,2),strides=(2,2))) model.add(Conv2D(filters=256, kernel_size=(3,3), padding="same", activ ation="relu")) model.add(Conv2D(filters=256, kernel_size=(3,3), padding="same", activ ation="relu")) model.add(Conv2D(filters=256, kernel_size=(3,3), padding="same", activ ation="relu")) model.add(MaxPool2D(pool_size=(2,2),strides=(2,2))) model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activ ation="relu")) model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activ ation="relu")) model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activ ation="relu")) model.add(MaxPool2D(pool_size=(2,2),strides=(2,2))) model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activ ation="relu")) model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activ ation="relu")) model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activ ation="relu")) model.add(MaxPool2D(pool_size=(2,2),strides=(2,2))) model.add(Flatten()) model.add(Dense(units=4096,activation="relu")) model.add(Dropout(0.5)) model.add(Dense(units=4096,activation="relu")) model.add(Dropout(0.5)) model.add(Dense(units=3, activation="softmax")) model.compile(optimizer='adam', loss=keras.losses.categorical_crossent ropy , metrics=['accuracy']) SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 117 | P a g e ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA Và kết xây dựng model với tham số Layer (type) Output Shape Param # ================================================================= conv2d_14 (Conv2D) (None, 224, 224, 64) 1792 _ conv2d_15 (Conv2D) (None, 224, 224, 64) 36928 _ max_pooling2d_5 (MaxPooling2 (None, 112, 112, 64) _ conv2d_16 (Conv2D) (None, 112, 112, 128) 73856 _ conv2d_17 (Conv2D) (None, 112, 112, 128) 147584 _ max_pooling2d_6 (MaxPooling2 (None, 56, 56, 128) _ conv2d_18 (Conv2D) (None, 56, 56, 256) 295168 _ conv2d_19 (Conv2D) (None, 56, 56, 256) 590080 _ conv2d_20 (Conv2D) (None, 56, 56, 256) 590080 _ max_pooling2d_7 (MaxPooling2 (None, 28, 28, 256) _ conv2d_21 (Conv2D) (None, 28, 28, 512) 1180160 _ conv2d_22 (Conv2D) (None, 28, 28, 512) 2359808 _ conv2d_23 (Conv2D) (None, 28, 28, 512) 2359808 _ max_pooling2d_8 (MaxPooling2 (None, 14, 14, 512) _ conv2d_24 (Conv2D) (None, 14, 14, 512) 2359808 _ conv2d_25 (Conv2D) (None, 14, 14, 512) 2359808 _ conv2d_26 (Conv2D) (None, 14, 14, 512) 2359808 _ max_pooling2d_9 (MaxPooling2 (None, 7, 7, 512) _ flatten_1 (Flatten) (None, 25088) _ dense_3 (Dense) (None, 4096) 102764544 _ dropout_2 (Dropout) (None, 4096) _ dense_4 (Dense) (None, 4096) 16781312 _ dropout_3 (Dropout) (None, 4096) _ dense_5 (Dense) (None, 3) 12291 ================================================================= Total params: 134,272,835 Trainable params: 134,272,835 Non-trainable params: SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 118 | P a g e ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA Chương trình xử lý ảnh phân loại thuốc: import cv2 import numpy as np import math from os import listdir import numpy as np import pickle from keras.applications.vgg16 import VGG16 from keras.layers import Input, Flatten, Dense, Dropout from keras.models import Model from keras.models import load_model import sys import snap7.client as c from snap7.util import * from snap7.snap7types import * from kn_PLC import * def auto_canny(image, sigma=0.3): v = np.median(image) lower = int(max(0, (1.0 - sigma) * v)) upper = int(min(255, (1.0 + sigma) * v)) return cv2.Canny(image, lower, upper) def resize(img): (h, w, d) = img.shape r = 400.0 / w dim = (400, int(h * r)) img0 = cv2.resize(img, dim) return(img0) def draline(img): (h, w, d) = img.shape cv2.line(img, (int(w/20),0), (int(w/20), h), (0, 255, 0), 5) cv2.line(img, (int(19*w/20),0), (int(19*w/20), h), (0, 255, 0), 5) cv2.line(img, (0, int(h/20)), (w, int(h/20)), (0, 255, 0), 5) cv2.line(img, (0, int(19*h/20)), (w, int(19*h/20)), (0, 255, 0), 5) return(img) SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 119 | P a g e ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA def center(cnt): M = cv2.moments(cnt) x = int(M['m10']/M['m00']) y = int(M['m01']/M['m00']) s = [x, y] def get_model(): model_vgg16_conv = VGG16(weights='imagenet', include_top=False) # Dong bang cac layer for layer in model_vgg16_conv.layers: layer.trainable = False # Tao model input = Input(shape=(128, 128, 3), name='image_input') output_vgg16_conv = model_vgg16_conv(input) # Them cac layer FC va Dropout x = Flatten(name='flatten')(output_vgg16_conv) x = Dense(4096, activation='relu', name='fc1')(x) x = Dropout(0.5)(x) x = Dense(4096, activation='relu', name='fc2')(x) x = Dropout(0.5)(x) x = Dense(3, activation='softmax', name='predictions')(x) # Compile my_model = Model(inputs=input, outputs=x) my_model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) return my_model def region_growing(img, x, y, delta=50): """ x: relative coord (0-1) y: relative coord (0-1) """ def is_valid_px(x, y, img): if x>=0 and x=0 and y box_x[box_sort_y[1]] and (math.sqrt((box_x[box_sort_y[0]]box_x[box_sort_y[1]])**2+(box_y[box_sort_y[0]]box_y[box_sort_y[1]])**2))==long[long_sort[2]]): M1 = cv2.getRotationMatrix2D(centre_cut, 90alpha, 1.0) rotated = cv2.warpAffine(cut, M1, (w, h)) elif (box_x[box_sort_y[0]] > box_x[box_sort_y[1]] and math.sqrt((box_x[box_sort_y[0]]box_x[box_sort_y[1]])**2+(box_y[box_sort_y[0]]box_y[box_sort_y[1]])**2)==long[long_sort[1]]): M1 = cv2.getRotationMatrix2D(centre_cut, alpha, 1.0) rotated = cv2.warpAffine(cut, M1, (w, h)) elif (box_x[box_sort_y[0]] < box_x[box_sort_y[1]] and math.sqrt((box_x[box_sort_y[0]]box_x[box_sort_y[1]])**2+(box_y[box_sort_y[0]]box_y[box_sort_y[1]])**2)==long[long_sort[2]]): SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 124 | P a g e ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA M1 = cv2.getRotationMatrix2D(centre_cut, 90+alpha, 1.0) rotated = cv2.warpAffine(cut, M1, (w, h)) elif (box_x[box_sort_y[0]] < box_x[box_sort_y[1]] and math.sqrt((box_x[box_sort_y[0]]box_x[box_sort_y[1]])**2+(box_y[box_sort_y[0]]box_y[box_sort_y[1]])**2)==long[long_sort[1]]): M1 = cv2.getRotationMatrix2D(centre_cut, alpha, 1.0) rotated = cv2.warpAffine(cut, M1, (w, h)) else: print("") img_final = rotated[int(centre_cut[1]long[long_sort[1]]/2) : int(centre_cut[1]+long[long_sort[1]]/2), int(centre_cut[0]long[long_sort[2]]/2):int(centre_cut[0]+long[long_sort[2]]/2)] if (img_final == frame): pass else: image = img_final.copy() image = cv2.resize(image, dsize=(128, 128)) image = image.astype('float') * / 255 # Convert to tensor image = np.expand_dims(image, axis=0) # Predict predict = my_model.predict(image) print("This picture is: ", class_name[np.argmax(predict[0])], (predict[0])) print(np.max(predict[0], axis=0)) if (np.max(predict) >= 0.6): # Show image font = cv2.FONT_HERSHEY_SIMPLEX org = (50, 50) fontScale = 1.5 color = (0, 255, 0) thickness = SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 125 | P a g e ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ GVHD: TS MẠC THỊ THOA if (class_name[np.argmax(predict[0])] == 'crack' or class_name[np.argmax(predict[0])] == 'contamination'): drawContours = cv2.drawContours(frame,[box],0,(0,0,250),2) WriteMemory(plc, 0, 2, S7WLBit, 1) else: drawContours = cv2.drawContours(frame,[box],0,(0,250,0),2) else: pass cv2.imshow('', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() print(stt) SVTH: Nguyễn Ngọc Linh Phạm Văn Tài 20152199 20166703 126 | P a g e ... THIẾT KẾ ? ?Nghiên cứu thiết kế hệ thống phân loại thuốc tự động sử dụng công nghệ học sâu? ?? II/ CÁC SỐ LIỆU BAN ĐẦU - Năng suất: 1450 viên/giờ - Tốc độ băng tải: (cm/s) - Yêu cầu đầu ra: Phân loại. .. tắt nội dung đồ án Với đề tài ? ?Thiết kế hệ thống phân loại thuốc tự động sử dụng cơng nghệ học sâu? ?? nhóm nhận thấy vấn đề cần thực thiết kế khí; để nhận biết, phân loại sản phẩm lỗi qua xử lý ảnh... ứng dụng hệ thống phân loại chất lượng viên thuốc dây chuyền sản xuất Báo cáo gồm chương: Chương 1: Tổng quan hệ thống phân loại đóng gói sản phẩm ứng dụng xử lý ảnh Chương 2: Tính tốn, thiết kế