1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì

101 0 0
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

Thông tin cơ bản

Tiêu đề Ứng dụng Xử Lý Ảnh Và Máy Học Phân Loại Sản Phẩm Lỗi Trên Bao Bì
Tác giả Trần Hữu Nhân
Người hướng dẫn TS. Huỳnh Thế Thiện
Trường học Trường Đại học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành CNKT Điện tử - Viễn thông
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 101
Dung lượng 5,49 MB

Cấu trúc

  • Chương 1: TỔNG QUAN (13)
    • 1.1. Đặt vấn đề (13)
    • 1.2. Mục tiêu (14)
    • 1.3. Đối tượng nghiên cứu (14)
    • 1.4. Phạm vi nghiên cứu (14)
    • 1.5. Nội dung đề tài (14)
  • Chương 2: CƠ SỞ LÝ THUYẾT (15)
    • 2.1. Phát hiện sản phẩm lỗi dựa trên xử lý ảnh truyền thống (0)
      • 2.1.1. Phương pháp thống kê (15)
      • 2.1.2. Phương pháp quang phổ (15)
      • 2.1.3. Phương pháp mô hình (16)
    • 2.2. Tổng quan về xử lý ảnh (16)
    • 2.3. Giới thiệu ngôn ngữ lập trình Python (23)
    • 2.4. Thư viện OpenCV (25)
    • 2.5. Tổng quan về PLC (27)
    • 2.6. Tổng quan về MobileNet (32)
      • 2.6.1. Cấu trúc mạng MobileNet (32)
      • 2.6.2. Cấu trúc mạng và đào tạo (35)
    • 2.7. Giao thức TCP Modbus (37)
  • Chương 3: TÍNH TOÁN VÀ THIẾT KẾ (43)
    • 3.1. Yêu cầu chung của hệ thống (43)
    • 3.2. Sơ đồ kết nối tổng quan (43)
      • 3.2.1. Thiết kế khối nguồn (44)
      • 3.2.2. Khối xử lý trung tâm (45)
      • 3.2.3. Khối điều khiển và giám sát (46)
      • 3.2.4. Khối cơ cấu chấp hành (0)
      • 3.2.5. Khối Camera (0)
      • 3.2.6. Khối động cơ (48)
      • 3.2.7. Khối Driver (49)
      • 3.2.7. Khối nút nhấn (0)
    • 3.3. Sơ đồ kết nối của hệ thống (53)
  • Chương 4: THI CÔNG HỆ THỐNG (54)
    • 4.1. Giới thiệu (54)
    • 4.2. Thi công mô hình (54)
      • 4.2.1. Băng tải (55)
      • 4.2.2. Thi công phần khung tủ điện (56)
    • 4.3. Phần mềm (59)
      • 4.3.1. Lập trình cho PLC (59)
      • 4.3.2. Phần mềm lập trình cho Python (63)
    • 4.4. Lưu đồ giải thuật (0)
    • 4.5. Hướng dẫn quy trình nhận dạng phân loại sản phẩm và sử dụng (0)
  • Chương 5: KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ (76)
    • 5.1. Hệ thống mô hình (76)
    • 5.2. Hệ thống điện (77)
    • 5.3. Kết quả chạy thực nghiệm (0)
    • 5.4. Kết quả thống kê (0)
  • Chương 6:KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (0)
    • 6.1. Kết luận (83)
      • 6.1.1. Ưu điểm (83)
      • 6.1.2. Nhược điểm (83)
    • 6.2. Hướng phát triển (84)

Nội dung

Hình ảnh kỹ thuật số được sử dụng để trích xuất các tính năng khác nhau bằng cách thực hiện một số quy trình trên hình ảnh bằng cách sử dụng máy tính và quá trình này có thể tự động.. Ứn

TỔNG QUAN

Đặt vấn đề

Trong sản xuất công nghiệp, khâu kiểm tra chất lượng sản phẩm có ý nghĩa đặc biệt quan trọng Hiện nay, các phương pháp được sử dụng phổ biến nhất để phát hiện khuyết tật bề mặt của các sản phẩm công nghiệp chủ yếu là điều tra thủ công Tuy nhiên, việc kiểm tra lỗi thủ công dễ bị ảnh hưởng bởi các yếu tố chủ quan và kinh nghiệm làm việc của thanh tra viên, và tỷ lệ chính xác không cao Khi lỗi nhỏ, mắt người không thể phát hiện ra nó và nó không phù hợp để kiểm tra thủ công khi kiểm tra trong các môi trường khác nhau có hại cho cơ thể con người Trong một thập kỷ gần đây, phát hiện khiếm khuyết trên bề mặt các sản phẩm của công nghiệp dựa trên nhận thức trực quan đã dần thay thế việc phát hiện lỗi thủ công và trở thành một phần không thể thiếu trong việc phát hiện khuyết tật bề mặt sản phẩm công nghiệp Phát hiện khuyết tật bề mặt của các sản phẩm công nghiệp dựa trên công nghệ nhận thức trực quan là phát hiện tự động không tiếp xúc công nghệ Nó có độ chính xác cao và có thể hoạt động trong một thời gian dài trong một khu phức hợp môi trường sản xuất, nó được sử dụng rộng rãi trong các lỗi như lỗi gạch, lỗi vải, khuyết tật tấm thép, khuyết tật PCB và hướng khác Ứng dụng rộng rãi của phát hiện khuyết tật bề mặt của các sản phẩm công nghiệp dựa trên nhận thức trực quan không chỉ giảm chi phí lao động mà còn cải thiện đáng kể hiệu quả sản xuất Ứng dụng tự động hóa trong hệ thống phát hiện sản phẩm lỗi trên bao bì đem lại hiệu quả cao bằng cách sử dụng kết hợp các thiết bị như PLC, xử lý ảnh kết hợp máy học, cảm biến, động cơ và xây dựng giao diện điều khiển và giám sát trên phần mềm Spyder tạo điều kiện cho người vận hành theo dõi quy trình công nghệ dễ dàng, đầy đủ, có thể can thiệp kịp thời khi có lỗi hệ thống Chính vì những lý do đó, em đã chọn đề tài: “ứng dụng xử lý ảnh và máy học phát hiện lỗi trên bao bì” để nghiên cứu và tìm hiểu tiếp cận những thành tựu khoa học mới có cơ hội học thêm nhiều kiến thức và kinh nghiệm, góp phần phát triển bản thân và giúp ích cho công nghiệp nước nhà

Mục tiêu

Thiết kế và thi công được một mô hình đó là hệ thống phân loại sản phẩm lỗi mang tính tự động cao điều khiển bằng PLC S7 1200 và các thiết bị tự động khác như camera, động cơ servor, động cơ bước Ứng dụng xử lý ảnh và máy học trong việc phát hiện ra các lỗi sản phẩm trên bao bì, xây dựng giao diện điều khiển và giám sát thông qua màn hình trên phần mềm Spyder.

Đối tượng nghiên cứu

Trong đề tài này, em muốn hướng đến giải pháp phát hiện lỗi trên sản phẩm bằng các thuật toán xử lý ảnh và máy học một cách tối ưu nhất Lỗi trong sản phẩm có thể được phát hiện bằng cách sử dụng lỗi tiền xử lý hình ảnh với các kênh màu, phát hiện ánh sáng không đồng đều và xử lý hậu kỳ lỗi hình ảnh do đó tách ra phần khiếm khuyết từ hình ảnh ban đầu với tính năng phát hiện cạnh và đường nét kết hợp máy học Do đó, đầu ra sẽ rõ nét và chính xác hơn so với hình ảnh ban đầu.

Phạm vi nghiên cứu

Trong đề tài này, em sẽ tiến hành nghiên cứu các nội dung gồm có: các lỗi thường xảy ra trên bao bì, phân tích và chọn ra các thuật toán phát hiện lỗi tối ưu nhất khi dùng xử lý ảnh kết hợp máy học, nghiên cứu xây dựng điều khiển hệ thống và giao tiếp giữa các thiết bị sử dụng.

Nội dung đề tài

• Chương 2: Cơ sở lý thuyết

• Chương 3: Thiết kế và xây dựng hệ thống

• Chương 4: Thi công hệ thống

• Chương 5: Kết quả so sánh, thực nghiệm, phân tích, tổng hợp

• Chương 6: Kết luận và hướng phát triển

CƠ SỞ LÝ THUYẾT

Tổng quan về xử lý ảnh

Xử lý ảnh bao gồm việc sử dụng phần mềm hoặc phần cứng để thực hiện nhiều thao tác khác nhau trên dữ liệu hình ảnh nhằm tạo ra kết quả mong muốn Phạm vi của xử lý ảnh rất rộng, bao gồm các tác vụ như làm mờ hậu cảnh, khôi phục ảnh, tăng độ sáng, phát hiện đối tượng và làm sắc nét.

❖ Phương pháp xử lý hình ảnh

Phương pháp xử lý hình ảnh bao gồm xử lý hình ảnh tương tự và xử lý hình ảnh kỹ thuật số

▪ Xử lý hình ảnh tương tự

Xử lý hình ảnh tương tự đề cập đến thay đổi hình ảnh thông qua các phương tiện điện Ví dụ phổ biến nhất hình ảnh ti vi Tín hiệu truyền hình là một mức điện áp thay đổi biên độ để thể hiện độ sáng thông qua hình ảnh Bằng cách thay đổi tín hiệu điện, hình ảnh hiển thị sẽ bị thay đổi Điều khiển độ sáng và độ tương phản trên tivi dùng để điều chỉnh biên độ và tham chiếu của tín hiệu video, dẫn đến làm sáng, làm tối và thay đổi phạm vi độ sáng của hình ảnh được hiển thị

▪ Xử lý ảnh kỹ thuật số

Trong trường hợp này, máy tính kỹ thuật số được sử dụng để xử lý hình ảnh Hình ảnh sẽ được được chuyển đổi sang dạng kỹ thuật số bằng máy quét và sau đó xử lý nó Nó bắt đầu với một hình ảnh và tạo ra một phiên bản sửa đổi giống nhau Một hình ảnh kỹ thuật số là một dãy số thực được biểu diễn bằng một số bit hữu hạn, tính linh hoạt, khả năng lặp lại và bảo quản bản gốc, độ chính xác của dữ liệu đây là lợi thế cơ bản của hình ảnh kỹ thuật số

Có nhiều kỹ thuật xử lý hình ảnh với các phương pháp khác nhau đó là:

Ảnh được định nghĩa trong "thế giới thực" có thể được xem là hàm của hai biến thực x và y, như f(x,y), trong đó f là biên độ (ví dụ: độ sáng) của ảnh tại vị trí tọa độ thực (x,y) Hình ảnh 2 minh họa quá trình số hóa.

Hình ảnh 2D liên tục của một hàm 2 biến f(x,y) được chia thành N dòng và M cột Các giao điểm của một dòng và một cột được gọi là điểm Giá trị này được gán

6 cho tọa độ số nguyên [m,n] trong đó {m=0,1, 2, ,M-1} và {n=0,1,2, ,N-1} là một hàm f[m,n] Trong thực tế, trong hầu hết các trường hợp f(x,y) mà chúng ta có thể được coi là tín hiệu vật lý tác động lên mặt cảm biến Thông thường một tập tin hình ảnh như BMP, JPEG, TIFF, v.v., có một số tiêu đề và thông tin hình ảnh Một tiêu đề thường bao gồm các chi tiết như định danh định dạng (thường là thông tin đầu tiên), độ phân giải, số bit/pixel, kiểu nén

Bao gồm xử lý các bước như sau:

Bằng cách giảm bớt tỷ lệ so với ảnh gốc, kích thước của dữ liệu ban đầu đến một giới hạn có thể quản lý được

✓ Độ phóng đại hình ảnh Điều này thường được thực hiện để cải thiện quy mô của hiển thị để giải thích trực quan hoặc đôi khi để khớp tỷ lệ của hình ảnh này với hình ảnh khác Để phóng to một hình ảnh lên gấp 2 lần, mỗi pixel của ảnh gốc được thay thế bằng một khối 2x2 pixel, tất cả đều giống nhau giá trị độ sáng như pixel gốc

✓ Sự giảm bớt hình ảnh Để giảm hình ảnh kỹ thuật số về dữ liệu gốc, mỗi hàng thứ m và cột thứ m của bản gốc hình ảnh được chọn và hiển thị Khác cách để đạt được điều tương tự là bằng cách lấy mức trung bình trong khối 'm x m' và hiển thị mức trung bình này sau khi làm tròn số thích hợp giá trị kết quả

Xoay được ứng dụng rộng rãi trong xử lý ảnh, chẳng hạn như tạo ảnh khảm, hiệu chỉnh đăng ký ảnh Một trong những kỹ thuật xoay phổ biến là xoay cắt 3 bước, cho phép phân tích ma trận xoay thành ba ma trận con độc lập.

▪ Kỹ thuật nâng cao hình ảnh Đôi khi hình ảnh thu được từ vệ tinh và máy ảnh thông thường và kỹ thuật số thiếu độ tương phản và độ sáng vì hạn chế của hệ thống phụ hình ảnh và điều kiện ánh sáng trong khi chụp ảnh Hình ảnh có thể có nhiều loại nhiễu khác nhau Trong nâng cao hình ảnh, mục tiêu là làm nổi bật một số tính năng hình ảnh nhất định cho

7 lần tiếp theo phân tích hoặc hiển thị hình ảnh Ví dụ bao gồm tăng cường độ tương phản và cạnh, giả màu, lọc tiếng ồn, làm sắc nét, phóng đại Cải thiện hình ảnh rất hữu ích trong trích xuất đặc trưng, phân tích hình ảnh và hiển thị hình ảnh Quá trình nâng cao bản thân nó không làm tăng tính vốn có nội dung thông tin trong dữ liệu Nó đơn giản nhấn mạnh đặc trưng hình ảnh cụ thể nhất định Các thuật toán nâng cao nói chung là tương tác và phụ thuộc vào ứng dụng

Một số kỹ thuật nâng cao là:

Phân tích hình ảnh liên quan đến việc tạo ra phép đo định lượng từ hình ảnh đến tạo ra một mô tả về nó Một cách đơn giản nhất trong biểu mẫu, nhiệm vụ này có thể là đọc nhãn trên một mặt hàng tạp hóa, sắp xếp các phần khác nhau trên một dây chuyền lắp ráp, hoặc đo kích thước và định hướng của các tế bào máu trong một hình ảnh y tế Hệ thống phân tích hình ảnh tiên tiến hơn đo lường thông tin định lượng và sử dụng nó để đưa ra một quyết định phức tạp, chẳng hạn như điều khiển cánh tay robot để di chuyển đối tượng sau khi xác định nó hoặc điều hướng một máy bay với sự hỗ trợ của hình ảnh thu được dọc theo quỹ đạo của nó

Kỹ thuật phân tích hình ảnh yêu cầu trích xuất một số đặc điểm hỗ trợ việc nhận dạng của đối tượng Các kỹ thuật phân đoạn được sử dụng để cô lập đối tượng mong muốn khỏi cảnh để có thể thực hiện các phép đo trên nó sau đó Đo định lượng của các đặc điểm đối tượng cho phép phân loại và mô tả của hình ảnh

Phân đoạn ảnh là chia ảnh thành các thành phần hoặc vật thể riêng biệt Mức độ phân đoạn phụ thuộc vào mục đích sử dụng Khi các đối tượng mục tiêu được xác định, quá trình phân đoạn dừng lại Ví dụ, trong hệ thống thu thập mục tiêu không đối đất, mục đích là nhận dạng phương tiện trên đường nên quá trình phân đoạn bao gồm phân cách đường khỏi ảnh và sau đó phân đoạn các đối tượng trên đường.

8 đường xuống các phương tiện tiềm năng Hình ảnh kỹ thuật ngưỡng được sử dụng cho sự phân chia hình ảnh

Phân loại là việc gắn nhãn cho một pixel hoặc một nhóm pixel dựa trên giá trị màu xám của nó Phân loại là một trong những cách được sử dụng thường xuyên nhất các phương pháp khai thác thông tin Trong phân loại, thường có nhiều tính năng được sử dụng cho một tập hợp các pixel, tức là nhiều hình ảnh của một đối tượng cụ thể là cần thiết Trong điều khiển từ xa khu vực cảm biến, thủ tục này giả định rằng hình ảnh của một khu vực địa lý cụ thể được thu thập ở nhiều vùng trên phổ điện từ và hình ảnh được đăng ký tốt Hầu hết các kỹ thuật khai thác thông tin dựa vào phân tích đặc tính phản xạ quang phổ của hình ảnh như vậy và sử dụng các thuật toán đặc biệt được thiết kế để thực hiện các loại khác nhau của 'phân tích quang phổ' Quá trình của phân loại đa phổ có thể được thực hiện sử dụng một trong hai phương pháp: có giám sát hoặc không được giám sát

Giới thiệu ngôn ngữ lập trình Python

Python là ngôn ngữ lập trình phổ biến, hướng đối tượng và có cấu trúc Thiết kế được hướng dẫn bởi các nguyên tắc phần mềm 'Zen of Python' Python có khả năng mở rộng cao Bên cạnh chức năng cốt lõi của Python, các gói dành cho Python có thể được thêm vào để có được chức năng bổ sung thông qua conda hoặc pip Chương trình Python chỉ là một tệp văn bản mà bạn chỉnh sửa trực tiếp Chương trình thường là được lưu với phần mở rộng py để phân biệt Sử dụng trình soạn thảo được thiết kế cho lập trình được ưu tiên Không sử dụng Wordpad hoặc Notepad

− Phát triển ứng dụng web (phía máy chủ)

− Phát triển các ứng dụng phần mềm,

− Tính toán khoa học, công nghệ sinh, tin học

− Xây dựng kịch bản cho hệ thống

− Lập trình ứng dụng mạng, nghiên cứu an ninh mạng

− Kỹ thuật đồ họa, xử lý ảnh và thị giác máy tính

− Máy học và khai thác dữ liệu, xử lý ngôn ngữ tự nhiên, trí tuệ nhân tạo

− Python có thể được sử dụng trên máy chủ để tạo các ứng dụng web

− Python có thể được sử dụng cùng với phần mềm để tạo quy trình công việc

− Python có thể kết nối với các hệ thống cơ sở dữ liệu Nó cũng có thể đọc và sửa đổi các tập tin

− Python có thể được sử dụng để xử lý dữ liệu lớn và thực hiện các phép toán phức tạp

− Python có thể được sử dụng để tạo nguyên mẫu nhanh hoặc để phát triển phần mềm sẵn sàng sản xuất

❖ Lợi ích khi sử dụng Python

− Python hoạt động trên các nền tảng khác nhau (Windows, Mac, Linux, Raspberry Pi, v.v.)

− Python có cú pháp đơn giản tương tự như ngôn ngữ tiếng Anh

− Python có cú pháp cho phép các nhà phát triển viết chương trình với ít dòng hơn một số ngôn ngữ lập trình khác

− Python chạy trên một hệ thống thông dịch, nghĩa là mã có thể được thực thi ngay khi nó được viết Điều này có nghĩa là việc tạo mẫu có thể rất nhanh chóng

− Python có thể được xử lý theo cách thủ tục, hướng đối tượng hoặc chức năng

− Dễ học cho người mới bắt đầu (Easy-to-learn)

− Ngôn ngữ dễ đọc (Easy-to-read)

− Dễ bảo trì khi có lỗi (Easy-to-maintain)

− Sử dụng các thư viện chuẩn (standard library): tương thích với nhiều hệ điều hành như Unix, Linux, Windows và Mac

− Chế độ tương tác: thực thi, kiểm tra, gỡ rối

− Khả chuyển (Portable): phần cứng, hệ điều hành

− Khả năng mở rộng (Extendable): thêm mô-đun

− Kết nối với các hệ quản trị CSDL

Thư viện OpenCV

OpenCV được viết tắt từ “Open Source Computer Vision” là một thư viện lập trình chức năng chủ yếu nhằm vào thị giác máy tính thời gian thực

− Nhóm Intel từ Nizhny Novgorod đã tạo ra thư viện này

− Vadim Pisarevsky: người đóng góp lớn nhất cho thư viện

− Gary Bradski: năm 1999 ra mắt OpenCV với hy vọng tăng tốc thị giác máy tính và trí tuệ nhân tạo bằng cách cung cấp cơ sở hạ tầng vững chắc cho những ai quan tâm và làm việc trong lĩnh vực này

❖ Ưu điểm khi sử sụng OpenCV

− Tốc độ đáp ứng nhanh

− Thư viện này được thiết kế với mục đích mang lại hiệu quả trong việc tính toán và tập trung mạnh vào các ứng dụng thời gian thực

− Thư viện này được viết bằng ngôn ngữ C++ được tối ưu hóa toàn thể và tận dụng bộ xử lý đa lõi có cấu hình mạnh như CPU

− Chạy trên nhiều hệ điều hành như: Linux, Windows và Mac OS X

− Làm thiết kế giao diện cho Python, Java, MATLAB và các ngôn ngữ khác

− Di động sang Android và iOS cho các ứng dụng di động

− Đa dạng cách sử dụng và ứng dụng

− Cung cấp cơ sở hạ tầng thị giác máy tính dễ sử dụng cho phép xây dựng tầm nhìn khá phức tạp các ứng dụng một cách nhanh chóng

− Thư viện OpenCV chứa rất nhiều chức năng trải rộng trên nhiều lĩnh vực khoa học, nó bao gồm việc kiểm tra sản phẩm tại các nhà máy sản xuất, hình ảnh trong lĩnh vực y tế, lĩnh vực bảo mật, giao diện người dùng, hiệu chỉnh máy ảnh, lĩnh vực robot

− OpenCV rất tố cho việc xử lý hình ảnh

− OpenCV rất tốt trong việc đào tạo máy học

❖ Ứng dụng Open CV với Python

Với sự trợ giúp của Open CV trong python, có thể xử lý hình ảnh, video dễ dàng và có thể trích xuất thông tin hữu ích từ đó, vì có rất nhiều chức năng có sẵn Một số ứng dụng phổ biến là:

Hình ảnh có thể được đọc, viết, hiển thị và xử lý bằng OpenCV, chẳng hạn như có thể tạo hình ảnh mới từ hình ảnh đó bằng cách thay đổi hình dạng, màu sắc hoặc trích xuất nội dung hữu ích từ hình ảnh đã cho và ghi vào hình ảnh mới

Từ phát trực tiếp bằng camera web hoặc từ các video/hình ảnh được lưu trữ cục bộ bằng Haar-Cascade Classifiers

Nhận diện khuôn mặt từ video bằng OpenCV bao gồm các bước: vẽ hình chữ nhật bao quanh khuôn mặt (hộp giới hạn) và huấn luyện mô hình Máy học (ML) để nhận dạng khuôn mặt.

Open CV cùng với YOLO, một thuật toán phát hiện đối tượng có thể được sử dụng để phát hiện các đối tượng từ hình ảnh, video, đối tượng chuyển động hoặc tĩnh

− Đọc, viết và hiển thị hình ảnh

Tổng quan về PLC

PLC là bộ điều khiển logic khả trình được viết tắt từ “Programmable Logic Controller” PLC là một thiết bị kỹ thuật số máy tính công nghiệp được thích nghi để kiểm soát các quy trình sản xuất, chẳng hạn như dây chuyền lắp ráp hoặc thiết bị robot hoặc bất kỳ hoạt động nào yêu cầu kiểm soát và có độ tin cậy cao, dễ dàng lập trình và xử lý chuẩn đoán lỗi PLC lần đầu tiên được phát triển trong ngành sản xuất ô tô để cung cấp các giải pháp linh hoạt, bộ điều khiển chắc chắn và dễ lập trình để thay thế rơle, bộ hẹn giờ và bộ định thời có dây cứng trình tự sắp xếp Kể từ đó, chúng đã được sử dụng rộng rãi như bộ điều khiển tự động hóa có độ tin cậy cao thích hợp với môi trường khắc nghiệt

PLC là một thiết bị điện toán có thể lập trình được sử dụng để quản lý các quy trình cơ điện, thường là trong lĩnh vực công nghiệp PLC đôi khi được gọi là

PC công nghiệp, thuật ngữ mô tả chức năng chính của PLC là một máy tính công nghiệp chuyên dụng

PLC theo dõi trạng thái của thiết bị đầu vào, đưa ra quyết định về trạng thái tiếp theo của thiết bị đầu ra PLC truyền tin đến các ứng dụng tập trung, thường trên PC Chúng được dùng để điều khiển, giám sát, báo cáo thiết bị ngoại vi, chẩn đoán lỗi thiết bị phần cứng và ảnh hưởng đến hoạt động của thiết bị.

PLC là sự kế thừa của hệ thống logic rơle, là hệ thống điều khiển giám sát và điều khiển các thiết bị cấp thấp như công tắc, rơle, bộ hẹn giờ, bộ truyền động và động cơ Trong hệ thống logic rơle, rơle thực hiện các hoạt động logic, được gọi là logic

Rơle sử dụng cuộn dây từ tính để đóng hoặc ngắt các tiếp điểm mạch điện, cho phép chúng kết nối các mạch với dòng điện và điện áp khác nhau Đặc tính này làm cho chúng trở nên phù hợp trong điều khiển các thiết bị tự động hóa công nghiệp, nơi cần thiết phải cách ly và kiểm soát các mạch khác nhau một cách đáng tin cậy.

Nhược điểm của hệ thống logic rơle là, giống như một tổng đài, nó có dây cứng và khó bảo trì do có nhiều dây Sự phát triển của bộ vi điều khiển đã giải quyết vấn đề này bằng cách cho phép các quy trình logic chuyển tiếp được mã hóa theo chương trình và được lưu trữ trên máy tính

Một PLC điển hình được kết nối với nguồn điện và bao gồm bộ xử lý trung tâm (CPU), giá đỡ, bộ nhớ chỉ đọc (ROM), bộ nhớ truy cập ngẫu nhiên (RAM), mô- đun đầu vào/đầu ra (I/O), một nguồn điện và thiết bị lập trình PLC có thiết kế mô- đun; I/O và các mô-đun chuyên dụng khác trượt vào giá đỡ PLC Các mô-đun PLC đôi khi được gọi là thẻ

Giá đỡ PLC có thể được so sánh với khung gầm của ô tô mà các bộ phận khác được kết nối Các thành phần được kết nối trong giá đỡ PLC được nhóm thành ba phần: CPU, nhiều mô-đun I/O và nguồn điện

Bộ nguồn chuyển đổi dòng điện xoay chiều (AC) thành dòng điện một chiều (DC) DC được sử dụng bởi CPU và các thành phần I/O

Tương tự như máy tính, CPU hoạt động như bộ não của PLC, có hai chế độ: chế độ lập trình và chế độ chạy Ở chế độ lập trình, CPU tải logic từ hướng dẫn do người dùng tạo trên PC Trong chế độ chạy, CPU thực thi logic CPU điều khiển toàn bộ hoạt động của PLC dựa trên hướng dẫn lưu trữ trong bộ nhớ Một hệ thống bus điều khiển liên lạc thông tin đến và đi từ CPU.

PLC nhận hoặc cảm nhận dữ liệu từ các thiết bị đầu vào như cảm biến tiệm cận và cảm biến quang điện, bàn phím, đồng hồ đo mức, bộ hẹn giờ, bộ đếm, đèn điều khiển, động cơ điện, công tắc nhiệt độ và áp suất Khái niệm dữ liệu cảm biến đề cập đến bản chất của dữ liệu đầu vào PLC ở dạng tín hiệu điện tử

Các ngõ đầu vào số xử lý các tín hiệu rời rạc, ví dụ như tín hiệu bật/tắt Các ngõ đầu vào tương tự chuyển đổi điện áp thành số mà CPU có thể hiểu được Đầu ra PLC bao gồm van, động cơ khởi động, bộ truyền động, bộ truyền động, cuộn dây điện từ, cảnh báo, rơle điều khiển, máy in và máy bơm

Các ngõ đầu ra số dùng để bật hay tắt các thiết bị ngoại vi như đèn, quạt, động cơ Các ngõ đầu ra analog chuyển đổi dạng số thành điện áp, ví dụ để điều khiển máy móc

PLC có thể đưa ra các quyết định hợp lý và thực hiện các hành động dựa trên dữ liệu đầu vào mà chúng nhận được, ví dụ như xử lý dữ liệu đầu vào và gửi dữ liệu đã xử lý đến thiết bị đầu ra Việc xử lý dữ liệu đầu vào được thực hiện bởi một thiết bị lập trình Ví dụ, một công tắc nhiệt độ có thể theo dõi nhiệt độ tại nhà máy làm mát và gửi thông tin này một cách không liên tục qua PLC tới máy in ở trung tâm vận hành của nhà máy

Thiết bị lập trình phổ biến gồm PC, bảng điều khiển hoặc thiết bị cầm tay chuyên dụng Mô-đun I/O chuyển tín hiệu đầu vào đến CPU của PLC, nơi tạo ra tín hiệu đầu ra Dữ liệu đầu ra định dạng theo chương trình ứng dụng triển khai trên thiết bị lập trình.

▪ Bộ nhớ và lưu trữ

ROM lưu trữ dữ liệu hệ điều hành và trình điều khiển RAM lưu trữ trạng thái và thông tin chi tiết về dữ liệu đầu vào và đầu ra cũng như các chương trình ứng dụng

Tổng quan về MobileNet

❖ Tích chập có thể phân tách theo chiều sâu

Mô hình MobileNet dựa trên khả năng phân tách theo chiều sâu tích chập là một dạng của tích chập thừa số yếu tố nào tạo ra một tích chập tiêu chuẩn thành một tích chập chiều sâu và tích chập 1×1 được gọi là tích chập điểm Đối với MobileNets, tích chập theo chiều sâu áp dụng một bộ lọc duy nhất cho mỗi kênh đầu vào theo chiều kim đồng hồ tích chập sau đó áp dụng tích chập 1×1 để kết hợp xuất ra tích chập theo chiều sâu Tích chập tiêu chuẩn cả bộ lọc và kết hợp các đầu vào thành một bộ đầu ra mới trong một bước Tích chập có thể phân tách theo chiều sâu chia tách điều này thành hai lớp, một lớp riêng biệt để lọc và một lớp riêng biệt lớp để kết hợp Yếu tố hóa này có tác dụng giảm đáng kể tính toán và kích thước

21 mô hình Hình 2 chỉ ra cách một tích chập tiêu chuẩn 2(a) được phân tích thành một tích chập theo chiều sâu 2(b) và tích chập theo điểm 1 × 1 2(c)

(a) Bộ lọc tích chập tiêu chuẩn

(b) Bộ lọc tích chập sâu

(c) Bộ lọc tích chập 1×1 được gọi là Tích chập theo chiều trong bối cảnh Tích chập có thể phân tách theo chiều sâu Hình 2.4: Các bộ lọc tích chập tiêu chuẩn trong (a) được thay thế bằng hai lớp: tích chập theo chiều sâu trong (b) và tích chập theo điểm trong (c) để xây dựng bộ lọc có thể phân tách theo chiều sâu [7]

DF x M tạo ra các bản đồ đặc trưng F, sau đó DF x DF x N tiếp tục tạo ra các bản đồ đặc trưng G, trong đó DF là chiều rộng và chiều cao của bản đồ đặc trưng đầu vào hình vuông.

M là số đầu vào kênh (độ sâu đầu vào), DG là chiều rộng và chiều cao không gian của bản đồ tính năng đầu ra hình vuông và N là số lượng đầu ra kênh (độ sâu đầu ra) Lớp tích chập tiêu chuẩn được tham số hóa bởi nhân tích chập K có kích thước

DK x DK x M x N trong đó DK là kích thước không gian của hạt nhân được coi là hình vuông và M là số kênh đầu vào và N là số lượng kênh đầu ra như được xác định trước đó

22 Bản đồ tính năng đầu ra cho tích chập tiêu chuẩn giả sử sải chân một và phần đệm được tính như sau:

Các phép chập tiêu chuẩn có chi phí tính toán là:

DK ã DK ã M ã N ã DF ã DF trong đó chi phí tính toán phụ thuộc cấp số nhân vào số lượng kênh đầu vào M, số lượng đầu ra kênh N kích thước hạt nhân Dk x Dk và bản đồ tính năng kích thước DF x DF Các mô hình MobileNet giải quyết từng vấn đề này thuật ngữ và tương tác của chúng Đầu tiên, nó sử dụng các kết cấu có thể phân tách theo chiều sâu để phá vỡ sự tương tác giữa số lượng kênh đầu ra và kích thước của nhân Hoạt động tích chập tiêu chuẩn có tác dụng lọc các tính năng dựa trên các hạt tích chập và kết hợp các tính năng để tạo ra một biểu diễn mới Các bước lọc và kết hợp có thể được chia thành hai các bước thông qua việc sử dụng các tích chập nhân tử được gọi là theo chiều sâu các kết cấu có thể tách rời để giảm đáng kể chi phí tính toán

Tích chập có thể tách sâu được tạo thành từ hai lớp: tích chập theo chiều sâu và tích chập theo điểm Sử dụng các kết cấu theo chiều sâu để áp dụng một bộ lọc cho mỗi mỗi kênh đầu vào (độ sâu đầu vào), tích chập theo chiều kim, một tích chập 1×1 đơn giản, sau đó được sử dụng để tạo tổ hợp tuyến tính của đầu ra của lớp theo chiều sâu Mạng di động sử dụng cả phi tuyến tính cho cả hai lớp Tích chập sâu với một bộ lọc trên mỗi kênh đầu vào (độ sâu đầu vào) có thể được viết là:

𝑖,𝑗,𝑚,𝑛 𝑖,𝑗,𝑚 𝐹𝑘+𝑖−1,𝑙+𝑗−1,𝑚 (2) trong đó 𝐾̂ là hạt nhân tích chập theo chiều sâu có kích thước DK x DK x M trong đó bộ lọc thứ m trong 𝐾̂ được áp dụng cho kênh thứ m trong F để tạo ra kênh thứ m của bản đồ tính năng đầu ra được lọc 𝐺̂

Tích chập theo chiều sâu có chi phí tính toán là:

Tích chập theo chiều sâu cực kỳ hiệu quả so với tích chập chuẩn Tuy nhiên, nó chỉ lọc các kênh đầu vào, nó không kết hợp chúng để tạo ra các tính năng mới Vì thế

23 một lớp bổ sung tính toán sự kết hợp tuyến tính của đầu ra của tích chập theo chiều sâu thông qua tích chập 1 x 1 là cần thiết để tạo ra các tính năng mới này Sự kết hợp giữa tích chập theo chiều sâu và 1 x 1 (theo điểm) tích chập được gọi là tích chập phân tách theo chiều sâu

Chi phí tích chập có thể tách sâu:

D K ã D K ã M ã D F ã D F + M ã N ã D F ã D F đó là tổng của các tích chập theo chiều sâu và 1 × 1 theo chiều dọc Bằng cách biểu diễn phép tích chập như một quá trình lọc và kết hợp gồm hai bước, chúng ta sẽ giảm được việc tính toán:

𝐷 𝐾 2 MobileNet sử dụng các tổ hợp có thể phân tách theo chiều sâu 3 x 3 sử dụng tính toán ít hơn từ 8 đến 9 lần so với các kết cấu tiêu chuẩn

2.6.2 Cấu trúc mạng và đào tạo

Cấu trúc MobileNet dựa trên tích chập phân tách chiều sâu, với lớp đầu tiên là tích chập đầy đủ Các lớp đều có batchnorm và phi tuyến tính ReLU, trừ lớp kết nối đầy đủ cuối cùng được theo sau bởi một lớp softmax MobileNet có 28 lớp, bao gồm cả tích chập theo chiều sâu và theo điểm Việc định nghĩa mạng theo cách này giúp dễ dàng khám phá cấu trúc để tìm được mạng tối ưu.

24 hơn hoạt động ma trận dày đặc cho đến khi tốc độ rất cao mức độ thưa thớt Cấu trúc mô hình của chúng đặt gần như tất cả các tính toán thành các tích chập 1 × 1 dày đặc Điều này có thể được thực hiện với phép nhân ma trận chung được tối ưu hóa cao chức năng (GEMM) Thường tích chập được thực hiện bởi GEMM nhưng yêu cầu sắp xếp lại ban đầu trong bộ nhớ được gọi là im2col để ánh xạ nó tới GEMM Các phép chập 1x1 không yêu cầu sắp xếp lại bộ nhớ này và có thể được thực hiện trực tiếp với GEMM, đây là một của các thuật toán đại số tuyến tính số được tối ưu hóa nhất

MobileNet dành 95% thời gian tính toán trong 1 x 1 tích chập mà cũng có 75% tham số càng tốt được xem trong Bảng 2 Gần như tất cả các thông số bổ sung nằm trong lớp được kết nối đầy đủ

Hình 2.5: Bên trái: Lớp tích chập tiêu chuẩn với định mức batchnorm và ReLU Bên phải: Các kết chập có thể phân tách theo chiều sâu với Depthwise và các lớp

Pointwise theo sau là batchnorm và ReLU [7]

25 Bảng 2.1 Kiến trúc cơ thể MobileNet [7]

Bảng 2.2 Tài nguyên trên mỗi loại lớp [7]

Giao thức TCP Modbus

TCP/IP là một mô hình khái niệm và một tập hợp các giao thức truyền thông dùng trong mạng internet và các hệ thống mạng máy tính tương tự

Bộ giao thức TCP/IP có thể được coi là một tập hợp các tầng, mỗi tầng giải quyết một tập vấn đề liên quan đến việc truyền dữ liệu Gồm có 4 tầng: tầng 1 liên kết, tầng 2 mạng, tầng 3 giao vận, tầng 4 ứng dụng

Giao thức điều khiển truyền tải (TCP) hướng dẫn thiết bị giao tiếp trên mạng, chia nhỏ thông tin thành các gói Giao thức IP xác định đường dẫn và lộ trình truyền của các gói này, đảm bảo dữ liệu được truyền đến đúng đích.

TCP/IP quyết định các giao thức mà các ứng dụng sử dụng để trao đổi dữ liệu bao gồm các giao thức Ethernet, FDDI, Token Hầu hết các TCP/IP hoạt động với mạng LAN sử dụng Ethernet

Giao thức Modbus ra đời năm 1979, do Modicon phát triển và phát hành Giao thức này nhanh chóng trở thành chuẩn truyền thông trong tự động hóa công nghiệp, dùng để truyền dữ liệu I/O rời rạc, thông tin tương tự giữa các bộ điều khiển công nghiệp và thiết bị giám sát Modbus là phương pháp tiêu chuẩn trong công nghiệp, có ưu điểm về sự ổn định, thuận tiện Đặc biệt, Modbus là giao thức mở miễn phí, được chấp nhận rộng rãi và không yêu cầu thanh toán bản quyền.

Modbus hoạt động theo nguyên tắc giao tiếp bằng quan hệ “Master – Slave” hay còn gọi là “Chủ – Tớ” Một máy chủ có thể kết nối được với một hay nhiều máy tớ tức là chỉ có một thiết bị máy chủ có thể bắt đầu truy vấn các thiết bị máy khách khác, phản hồi bằng cách cung cấp dữ liệu được yêu cầu cho máy chủ hoặc bằng cách thực hiện các hành động được yêu cầu trong quá trình truy vấn Máy khách có thể là bất kỳ các thiết bị ngoại vi nào (bộ chuyển đổi I/O, van, ổ đĩa mạng hoặc các thiết bị đo lường khác) xử lý thông tin nhận được sau đó gửi đầu ra của nó tới máy chủ bằng Modbus Các mô-đun ngõ vào ra I/O tạo thành các thiết bị máy chủ và máy khách, trong khi đó thiết bị chính điển hình là một thiết bị máy tính chủ chạy phần mềm ứng dụng thích hợp Các thiết bị khác có thể hoạt động với hai chức năng vừa là máy khách và máy chủ

Máy chủ có thể gửi địa chỉ cho từng máy khách hoặc có thể bắt đầu với một tin nhắn thăm dò cho tất cả máy khách Máy khách trả về phản hồi cho tất cả các truy

27 vấn được gửi đến riêng lẻ, nhưng không trả lời các truy vấn thăm dò này Máy khách không bắt đầu tin nhắn của riêng mình, nó chỉ trả lời các truy vấn từ máy chủ gửi tới yêu cầu cần truy vấn

Truy vấn của máy chủ sẽ bao gồm một địa chỉ phụ (hoặc địa chỉ thăm dò), một mã chức năng xác định hành động được yêu cầu truy vấn, mọi dữ liệu cần thiết và lỗi trường kiểm tra Phản hồi của máy khách bao gồm các trường xác nhận hành động đã lấy thông tin, mọi dữ liệu sẽ được trả về và trường kiểm tra lỗi Lưu ý rằng cả truy vấn và phản hồi đều bao gồm địa chỉ thiết bị, mã chức năng, cộng với dữ liệu có thể áp dụng và trường kiểm tra lỗi Nếu không có lỗi xảy ra, máy khách sẽ phản hồi dữ liệu theo yêu cầu Nếu xảy ra lỗi trong quá trình truy vấn nhận được, hoặc nếu máy khách không thể thực hiện hành động được yêu cầu, máy khách sẽ trả về một thông báo ngoại lệ dưới dạng phản hồi của nó Trường kiểm tra lỗi của khung thông báo của máy khách cho phép máy chủ xác nhận rằng nội dung của tin nhắn đã gửi đi là hợp lệ

Modbus truyền thống gửi các thông điệp theo kiểu truyền nối tiếp và việc kiểm tra tính chẵn lẻ cũng được áp dụng cho mỗi ký tự được truyền trong khung dữ liệu của nó

Hình 2.6: Cấu trúc mạng giao tiếp nối tiếp Chuẩn truyền thông Modbus TCP/IP (còn gọi là Modbus-TCP) là Modbus qua Ethernet (RJ45) hay đơn giản đây là giao thức Modbus RTU với giao diện TCP chạy trên Ethernet Với Modbus TCP, dữ liệu Modbus được gói gọn đơn giản trong một gói TCP/IP, được truyền qua mạng thay vì các đường truyền nối tiếp vì máy chủ sử dụng IP Cấu trúc nhắn tin Modbus là giao thức ứng dụng xác định quy tắc tổ chức và giải thích dữ liệu độc lập với dữ liệu phương tiện truyền dẫn

TCP (Giao thức điều khiển truyền tải) và IP (Giao thức Internet) là xương sống của Internet, cùng nhau hỗ trợ truyền dữ liệu Khi thông tin Modbus được truyền qua TCP, dữ liệu được đóng gói và gửi đến IP để tạo thành một gói dữ liệu, sau đó IP sẽ truyền gói dữ liệu này.

TCP phải được thiết lập kết nối trước khi truyền dữ liệu, vì nó là giao thức dựa trên kết nối Master (hoặc Client trong Modbus TCP) thiết lập kết nối với Slave (hoặc Server) Server chờ một kết nối đến từ Client Sau khi kết nối được thiết lập, Server sẽ phản hồi các truy vấn từ Client cho đến khi Client ngắt kết nối TCP/IP đề cập đến Giao thức điều khiển truyền dẫn và giao thức Internet, cung cấp phương tiện truyền tải cho tin nhắn Modbus TCP/IP Nói một cách đơn giản, TCP/IP cho phép trao đổi các khối dữ liệu nhị phân giữa các máy tính Nó cũng là một tiêu chuẩn toàn cầu đóng vai trò là tiêu chuẩn nền tảng cho World Wide Web Chức năng chính của TCP là đảm bảo rằng tất cả các gói dữ liệu được nhận chính xác, trong khi IP đảm bảo rằng các tin nhắn được giải quyết và định tuyến chính xác Lưu ý rằng TCP/IP sự kết hợp này chỉ đơn thuần là một giao thức vận chuyển và không xác định những gì phương tiện dữ liệu hoặc cách diễn giải dữ liệu (đây là công việc của giao thức ứng dụng, Modbus trong trường hợp này)

Vì vậy, tóm lại, Modbus TCP/IP sử dụng TCP/IP và Ethernet để truyền dữ liệu cấu trúc thông điệp Modbus giữa các thiết bị tương thích Đó là, Modbus TCP/IP kết hợp mạng vật lý (Ethernet) với mạng chuẩn (TCP/IP) và một phương pháp tiêu chuẩn để biểu diễn dữ liệu (Modbus như là giao thức ứng dụng) Về cơ bản, thông báo Modbus TCP/IP là chỉ đơn giản là giao tiếp Modbus được gói gọn trong Ethernet TCP/IP vỏ bánh Trong thực tế, Modbus TCP nhúng khung dữ liệu Modbus tiêu chuẩn vào khung TCP, không có tổng kiểm tra Modbus, như thể hiện trong sơ đồ sau

29 Hình 2.7: Thông tin được nhúng vào phần dữ liệu của khung TCP.[8]

Các lệnh Modbus và dữ liệu người dùng được gói gọn trong nơi chứa dữ liệu của điện tín TCP/IP mà không bị sửa đổi dưới bất kỳ hình thức nào Tuy nhiên, trường kiểm tra lỗi Modbus không được sử dụng, thay vào đó, các phương pháp tổng kiểm tra lớp liên kết Ethernet TCP/IP tiêu chuẩn được sử dụng để đảm bảo tính toàn vẹn dữ liệu Hơn nữa, trường địa chỉ khung Modbus là được thay thế bằng mã định danh đơn vị trong Modbus TCP/IP và trở thành một phần của tiêu đề giao thức ứng dụng Modbus (MBAP)

TÍNH TOÁN VÀ THIẾT KẾ

Yêu cầu chung của hệ thống

Dựa vào các đặc điểm, chức năng của hệ thống phát hiện lỗi sản phẩm trên thực tế, mô hình hệ thống có các yêu cầu thiết kế tổng quát như sau:

Mô hình thị giác máy tính tiên tiến này có khả năng hoạt động liên tục, đảm bảo phát hiện lỗi chính xác trên bao bì sản phẩm, bao gồm các lỗi như lem mực, in sai bao bì hoặc bao bì bị rách Hệ thống được thiết kế để hoạt động 24/7, giúp loại bỏ lỗi một cách hiệu quả, giảm thiểu lãng phí và cải thiện chất lượng sản phẩm tổng thể.

- Kết cấu mô hình chặt chẽ, vận hành ổn định, hệ thống cấp phôi trên băng truyền luôn hoạt động tốt để đảm bảo cho camera có thể chụp và xử lý hình ảnh lỗi một cách nhanh chóng

- Điều khiển và giám sát trực tiếp trên giao diện thiết kế bằng Python.

Sơ đồ kết nối tổng quan

Hình 3.1: Sơ đồ tổng quan của hệ thống KHỐI XỬ

Khối hiển thị Khối ĐK và GS

❖ Mạch gồm các khối chính

- Khối nguồn: dùng nguồn xoay chiều AC và DC để cung cấp cho toàn bộ hệ thống

- Khối nút nhấn: truyền nhận tín hiệu điều khiển khi được tác động với khối xử lý trung tâm để điều khiển thiết bị ngõ ra

- Khối xử lý trung tâm: nhận tín hiệu từ ngõ vào giao tiếp truyền thông với các thiết bị xử lý tín hiệu đưa ra điều khiển hệ thống

- Khối hiển thị: hiện thị trạng thái hoạt động của hệ thống thông qua các đèn báo

Khối điều khiển và giám sát là máy tính kết nối Ethernet với khối xử lý trung tâm để điều khiển hệ thống Nó cũng nhận hình ảnh từ Webcam để giám sát hoạt động của hệ thống.

- Khối động cơ: điều khiển băng tải và gạt sản phẩm lỗi

- Khối Webcam: Dùng để chụp ảnh sản phẩm trên băng truyền

- Khối Driver: dùng để điều khiển động cơ

Từ thông số của các linh kiện trong tủ điện, và phần cứng bên ngoài, điện áp cung cấp cho hệ thống sử dụng điện áp là 24VDC và 5VDC, nên ta sẽ phải phân thành nguồn 24VDC và 5VDC để cấp cho toàn mạch Trong đề tài em sử dụng nguồn tổ ong để cấp nguồn cho các thiết bị sử dụng nguồn DC Vì nguồn tổ ong giá thành không cao, hoạt động ổn định, khả năng bảo vệ quá dòng, quá áp tốt, dễ sử dụng và phù hợp với đề tài

- Điện Áp Đầu Vào: AC 220V (Chân L và N)

- Điện Áp Đầu Ra: DC 24V 5A (Chân dương V+, Chân Mass - GND: V-)

- Điện áp ra điều chỉnh: +/-10%

- Phạm vi điện áp đầu vào: 85 ~ 132VAC / 180 ~ 264VAC

3.2.2 Khối xử lý trung tâm

- Yêu cầu: Khối vi xử lý là thành phần chính trong hệ thống, thực hiện quá trình truyền nhận dữ liệu và giao tiếp với các thiết bị khác thông qua chuẩn truyền thông TCP/IP Mosbus và Ethernet để điều khiển hệ thống phân loại sản phẩm

- Phương án: Ta có thể sử dụng PLC của các hãng Kinco, Mitsubish, Omron,

Fuji, Siemens… để chọn làm khối vi xử lý

- Lựa chọn: Trong đề tài này em chọn PLC của hãng siemens loại PLC S7-

1200, CPU 1212C DC/DC/DC vì tiện dụng, dễ dàng lắp đặt, lập trình và phù hợp với yêu cầu đồ án đưa ra

- Power supply: 85-264 VAC và 20,4-28,8 VDC

3.2.3 Khối điều khiển và giám sát

- Yêu cầu: Nhiệm vụ của khối này là kết nối USB với Webcam để nhận hình ảnh từ Webcam và truyền thông Modbus TCP/IP với khối xử lý trung tâm để điều khiển và giám sát quá trình phát hiện và phân loại sản phẩm lỗi

Phương án: Trong đề tài này em thiết kế giao diện và giám sát trên phần mềm

Spyder thông qua máy tính

Nhiệm vụ của khối này là dùng để hiển thị các trạng thái hoạt động của hệ thống, đèn xanh ứng với hệ thống hoạt động, đèn đỏ ứng với hệ thống dừng hoạt động và đèn vàng là sản phẩm lỗi Em lựa chọn loại đèn báo AD16-16C 24V DC dễ sử dụng và đồng bộ cùng với nguồn tổ ong 24V

− Màu sắc: xanh lá, vàng và đỏ

Sử dụng đện áp 5 VDC để cấp nguồn hoạt động cho các cảm biến mực nước ở bình phía trên

- Tải tối đa: AC 250V / 10A, DC 30V / 10A

- Dòng điện kích hoạt thấp: 5mA

- Có jumper kích High/Low trigger

3.2.5 Khối Webcam Để chụp hình ảnh sản phẩm và đưa hình ảnh đã qua tiền xử lý để đưa vào huấn luyện, nhận dạng sản phẩm Có rất nhiều loại webcam được bán trên thị trường với sự đa dạng về giá cả cũng như là chất lượng sản phẩm Để chọn Webcam cơ bản phù hợp với đề tài em đang làm với độ phân giải cao và chất lượng tốt thì em lựa chọn webcam Logitech C270 720p Webcam này được sử dụng để chụp ảnh phôi sản phẩm và gửi hình ảnh qua qua máy tính thông qua cổng USB để tiến hành xử lý và đem vào huấn luyện sản phẩm

- Độ phân giải tối đa: 720p/30fps

- Loại tiêu cự: tiêu cự cố định

- Cổng kết nối với máy tính: Cổng USB

- Micro tích hợp: đơn âm

- Hệ điều hành được hỗ trợ: Windows 10, Windows 8, Windows 7, macOS 10.10, Chrome OS, Android v 5.0

Khối này có nhiệm vụ gạt sản phẩm để phân loại sản phẩm tốt và xấu, để điều khiển gạt sản phẩm với bước gạt ứng với góc quay nhỏ hoặc lớn tùy thuộc vào vị trí lắp đặt trên phần cứng thiết bị Em chọn sử dụng động cơ bước một chiều DC Nema

− Góc quay mối bước: 1.8° (200 bước / vòng quay)

− Độ chính xác góc bước: ± 5% (bước đầy đủ, không tải)

Đồ án sử dụng mô đun điều khiển động cơ bước TB6600 vì IC này dễ sử dụng, hiệu quả và chuyên nghiệp, có thể điều khiển động cơ bước 2 pha Tương thích với vi điều khiển và Arduino để tạo xung đầu ra kỹ thuật số 5V TB6600 có dải công suất đầu vào rộng (9-42VDC), cung cấp dòng điện cực đại 4 Amps và điều khiển hướng và tốc độ đủ dùng cho hầu hết các động cơ bước.

❖ Cấu hình chân TB6600/Sơ đồ chân

Sơ đồ chân/cấu hình chân của mô-đun trình điều khiển động cơ bước TB6600 được mô tả bên dưới Có 2 loại mô-đun trình điều khiển TB6600 là loại 4A và loại 4.5A như hình bên dưới, với các chức năng và cấu hình chân tương tự nhau

Hình 3.9: Mô-đun trình điều khiển động cơ bước TB6600 4A

− Chân 1: ENA- (ENA): Chân này dùng để chỉ chân kích hoạt âm của mô-đun

− Chân 2: ENA+(+5V): Chân này dùng để chỉ chân cho phép tích cực, là chân +5V của mô-đun

− Chân 3: DIR-(DIR): Chân này dùng để chỉ chiều âm của động cơ

− Chân 4: DIR+(+5V): Chân này chỉ chiều dương của +5V

− Chân 5: PUL-(PUL): Chân này dùng để chỉ xung âm (Để điều khiển các bước quay của động cơ)

− Chân 6: PUL+(+5V): Chân này dùng để chỉ xung dương của động cơ

− Chân 7: B-: Chân này đề cập đến dây dẫn âm của động cơ bước 2

− Chân 8: B+: Chân này đề cập đến vị trí dẫn của dây cuộn dây động cơ bước

− Chân 9: A-: Chân này đề cập đến dây dẫn âm của dây cuộn dây động cơ bước 1

− Chân 10: A+: Chân này dùng để chỉ dây dẫn dương của cuộn dây động cơ bước 1

− Chân 11: GND: Chân này đề cập đến kết nối mặt đất chung của mô-đun

− Chân 12: VCC: Chân này đề cập đến điện áp cung cấp đầu vào cho mô-đun trình điều khiển động cơ bước, là 9V-42V

Các công tắc điều khiển/trình điều khiển tích hợp SW1, SW2, SW3, SW4, SW5 và SW6 được sử dụng để kiểm soát độ phân giải của các bước vi mô và được sử dụng để giới hạn dòng trình điều khiển Việc chuyển đổi SW1, SW2 và SW3 sẽ thay đổi độ phân giải vi bước từ bước đầy đủ thành bước 1/32

Việc bật hoặc tắt các công tắc nhúng SW4, SW5 và SW6 BẬT hoặc TẮT điều chỉnh dòng điện (0,7 đến 4A) trong quá trình chạy động cơ liên tục

❖ Thông Số Kỹ Thuật Trình Điều Khiển Động Cơ Bước TB6600:

Các thông số kỹ thuật của mô-đun trình điều khiển động cơ bước TB6600 được đưa ra dưới đây

− Điện áp hoạt động dao động từ 9-40V DC

− Dòng điện đầu ra của mô-đun là 0,5A-4,0A và nó được chọn theo 8 bước thông qua các công tắc DIP

− Tần số xung đầu vào có thể đạt 20KHz

− Xung trên mỗi vòng quay là 200-6400

− Dòng điện ngõ vào từ 0 – 0.5A

− Phù hợp cho động cơ bước 2 pha và 4 pha

− Cung cấp bảo vệ khỏi quá nhiệt quá dòng

− Đầu vào được cách ly quang học

− Điện trở cách điện là 500 megohms

− Nó có thể hỗ trợ chế độ PUL/FIR

Nhiệm vụ của khối này là truyền nhận tín hiệu điều khiển khi được tác động với khối xử lý trung tâm để điều khiển thiết bị ngõ ra

Hình 3.10: Nút bấm tủ điện

- Màu sắc: Đỏ vàng, xanh lá

- Kích thước lỗ lắp đặt: 22mm

- Kích thước bề mặt nút nhấn: 29mm

- Điện áp định mức: 440VAC

Sơ đồ kết nối của hệ thống

Hình 3.12: Sơ đồ kết nối toàn hệ thống

THI CÔNG HỆ THỐNG

Giới thiệu

Sau khi thiết kế hoàn chỉnh sơ đồ nguyên lý cho toàn hệ thống, em tiến hành thi công mô hình Hệ thống được thi công bao gồm hai phần chính là thi công phần cứng và thi công phần mềm Cụ thể như sau:

Về phần cứng, thiết kế tủ điện, băng tải được thực hiện Các thiết bị được lắp ráp vào mô hình gia công sẵn, sau đó kết nối các linh kiện điện tử Vì sử dụng PLC, máy tính, webcam và động cơ nên không thiết kế mạch in Thay vào đó, các mô đun được liên kết với nhau bằng dây điện.

Về phần mềm, các giải thuật và chương trình được xây dựng và viết dựa trên nguyên lý hoạt động của hệ thống, từ khi cấp nguồn đến lúc ngừng hoạt động, đảm bảo áp dụng tối ưu các giải thuật điều khiển vào mô hình.

Toàn bộ quá trình thi công hệ thống phải đảm bảo tất cả những yêu cầu về thiết kế mà em đã đặt ra ban đầu.

Thi công mô hình

Trước tiên thi công mô hình em tiến hành liệt kê các thiết bị sử dụng

Bảng 4.1 Danh sách các linh kiện

STT Tên linh kiện Số lượng

1 PLC S7 – 1200 CPU 1212C DC/DC/DC 1

Băng tải là một trong những lựa chọn tốt nhất cho thiết bị xử lý vật liệu rời

Băng tải đai là hệ thống vận hành liên tục có khả năng di chuyển vật liệu từ nơi này đến nơi khác Các thành phần chính của băng tải đai bao gồm băng chuyền, ròng rọc, bánh răng, khung, thiết bị căng, bộ truyền động và công tắc bảo vệ Băng tải đai được ứng dụng rộng rãi trong các ngành công nghiệp nhờ khả năng vận chuyển mọi loại vật liệu rời, từ dạng bột, hạt, cục đến dạng đóng bao, bất kể tính chất kết dính hay không Đối với các sản phẩm có kích thước nhỏ, băng tải loại mini là lựa chọn phù hợp Băng tải này sử dụng đế nhôm định hình 3060 và dây belt PVC bền bỉ để vận chuyển sản phẩm.

❖ Cấu tạo và thông số của băng tải

− Phần khung của băng tải: được làm bằng nhôm định hình, thép sơn tĩnh điện hoặc inox bền đẹp, chắc chắn

− Dây belt của băng tải: thường dây băng PVC có độ dày 2mm hoặc 3mm và dây băng PU dày 1,5mm

− Động cơ truyền động của băng tải: sử dụng động cơ giảm tốc có công suất 0,2; 0,4; 0,75; 1,5; 2,2 KW

− Bộ điều khiển băng chuyền: động cơ DC

− Cơ cấu chuyền động: Rulo kéo, con lăn đỡ, nhông xích

− Hệ thống bàn thao tác trên băng chuyền thường bằng gỗ, thép hoặc inox trên bề mặt có dán thảm cao su chống tĩnh điện

▪ Đường kính rulô chủ động D = 30mm

▪ Sử dụng động cơ giảm tốc 12v tốc độ 72 vòng/phút

▪ Ta có tốc độ truyền động trên băng tải:

4.2.2 Thi công phần khung tủ điện

- Bảng tủ điện được thiết kế với phần vỏ hộp có kích thước 50x30x60 mm (dài x rộng x cao), độ dày 5 mm với lớp sơn tĩnh điện

45 Hình 4.2: Vỏ hộp tủ điện

- Bên trong tủ điện em sử dụng các cầu đấu khối kích thước nhỏ gọn, thường hợp với cầu điều khiển, dòng điện: 10A

- Tiến hành kết nối các thiết bị ta có hình ảnh tủ điện như sau

Hình 4.4: Tủ điện Sau khi tính toán và thiết kế phần cứng mô hình thực tế của bọn em như hình bên dưới:

Hình 4.5: Mô hình hệ thống phân loại sản phẩm lỗi

Phần mềm

4.3.1 Lập trình cho PLC Để viết chương trình cho hệ thống và điều khiển PLC thì em dùng phần mềm TIA Portal V16 Hướng dẫn tạo project TIA PORTAL:

- Sau khi mở chương trình TIA 16 lên sẽ có màn hình như ở dưới, chọn

“create new project” trong thanh công cụ ở bên trái

- Đặt tên cho project và nhấn “create”

Hình 4.7: Đặt tên project mới

- Ở màn hình tiếp theo chọn “configure a device” và nhấn “add new device” trong thanh công cụ bên trái

- Màn hình bên phải sẽ hiện ra cái mục kèm hình ảnh: “controllers”, “HMI”,

“PC system”, chọn “controllers” và trong ô kế bên phải chọn SIMATIC S7-

1200 > CPU > CPU 1212C DC/DC/DC > 6ES7 212-1AE40-0XB0

- Chọn “PLC programming” và nhấn đúp vào khối main

Hình 4.10: Chương trình chính của PLC

- Sẽ hiện ra màn hình như ở dưới và có thể bắt đầu viết chương trình

Hình 4.11: Giao diện vùng viết chương trình PLC

- Ngoài ra còn thể thêm các thiết bị phụ vào trong mục “sevice and network” ở bên phải như CM 1241 và SM 1223:

Hình 4.12: Kết nối CPU và module mở rộng

- Và còn có thể tạo thêm các khối phối phụ để viến chương trình con nếu cần thiết thông qua mục “Add new block” trong “PLC programming”

4.3.2 Phần mềm lập trình cho Python Để tạo giao diện điều khiển và giám sát trên Python thì em dùng phần mềm Spyder

Spyder là một môi trường phát triển Python mã nguồn mở được tối ưu hóa cho các bài toán liên quan đến khoa học dữ liệu Spyder đi kèm với phân phối quản lý gói Anaconda Spyder là công cụ thường dùng của các nhà khoa học dữ liệu sử dụng Python Spyder tích hợp tốt với các thư viện khoa học dữ liệu Python phổ biến như SciPy, NumPy và Matplotlib

Spyder có hầu hết các tính năng của một “IDE phổ biến”, chẳng hạn như trình soạn thảo mã với chức năng đánh dấu cú pháp mạnh mẽ, tự động hoàn thành mã và thậm chí là trình duyệt tài liệu được tích hợp

Một tính năng đặc biệt không có trong các môi trường phát triển Python khác là tính năng “khám phá biến” của Spyder cho phép hiển thị dữ liệu bằng cách sử dụng bố cục bảng ngay bên trong IDE Điều này làm nó trông khá gọn gàng Nếu chúng ta thường xuyên làm các bài toán khoa học dữ liệu làm việc bằng cách sử dụng Python, thì đây là một tính năng độc đáo Việc tích hợp IPython/Jupyter là một đặc điểm nổi bật khác

Nhìn chung, Spyder cung cấp nhiều chức năng cơ bản hơn các IDE khác Spyder còn có ưu điểm là hoàn toàn miễn phí trên các hệ điều hành Windows, macOS và Linux, đồng thời là phần mềm mã nguồn mở Ưu điểm nổi bật của Spyder là tối ưu cho các hoạt động khoa học dữ liệu sử dụng bản phân phối Python Anaconda.

Nhược điểm: Các nhà phát triển Python có kinh nghiệm hơn có thể cảm thấy

Spyder quá đơn giản để làm việc hàng ngày và thay vào đó chọn một IDE hoàn chỉnh hơn hoặc một giải pháp biên tập có khả năng tùy chỉnh theo nhu cầu.

Suy ra từ các ý vừa nêu trên cho thấy Spyder là phần mềm lập trình Python tiện lợi, hoàn toàn miễn phí nên có thể thoải mái sử dụng, nghiên cứu Đặc biệt, phần mềm này có thể tương thích đa nền tảng, có phiên bản phù hợp chạy trên cho các hệ điều hành

Tóm lại ở đây em dùng thư viện Sklearn và TensorFlow để lựa chọn ảnh rồi tính toán cho việc huấn luyện hình ảnh dữ liệu từ đầu vào, cùng với đó là sự kết hợp của các thư viện Matplotlib, pyimagesearch, TensorFlow, OpenCV mà việc khởi tạo dữ liệu và nhãn thuận lợi, rồi lấy dữ liệu của ảnh trộn chúng lại ngẫu nhiên, gắn nhãn đầu vào của ảnh Việc tiếp theo dùng OpenCV để đọc ảnh và thu ảnh về cho bằng đầu vào của cấu trúc VGG 64x64x3 và sau đó hình ảnh sẽ được lưu vào trong danh sách dữ liệu, vấn đề lựa chọn nhãn và khởi tạo tính toán gán mật độ huấn luyện 75% và mật độ thử nghiệm sẽ là 25% Ví dụ như có 100 tấm ảnh dùng 75 tấm để huấn luyện còn 25 tấm là để thử nghiệm Sau khi thử nghiệm sẽ nhận được biểu đồ huấn luyện thể hiện sự mất mát và chính xác trong biểu đồ dữ liệu Sau khi huấn luyện được hoàn tất như hình 4.15 xuất hiện 4 đường để phân biệt sự chính xác, mất mát trong quá trình huấn luyện dữ liệu và có được biểu đồ sau khi huấn luyện

53 Hình 4.15: Biểu đồ sau khi train dữ liệu

− INIT_LR (tốc độ đọc): Tốc độ học tập: là một siêu tham số được sử dụng trong mạng thần kinh kiểm soát mức độ điểu chỉnh mô hình để đáp ứng với lỗi ước tính mỗi khi trong số mô hình được cập nhật Nếu tỷ lệ học tập INIT_LR quá thấp, mô hình sẽ đạo tạo rất chậm vì các bản cập nhật tối thiểu được thực hiện đối với trọng số qua mỗi lần lặp Do đó, sẽ mất nhiều bản cập nhật trước khi đạt đến điểm tối thiểu Nếu tỉ lệ học được đặt quá cao sẽ gây ra hành vi khác biệt không mong muốn đối với hàm mất mát, do cập nhật vè trong số và nó có thể không hội tụ

Thuật ngữ "Epoch" mô tả một lần đưa toàn bộ tập dữ liệu huấn luyện thông qua mạng thần kinh Ví dụ, nếu tập dữ liệu huấn luyện có 10 triệu hình ảnh và bạn đã đưa toàn bộ số hình ảnh đó vào mô hình 3 lần, thì mô hình đã được huấn luyện trong 3 epoch.

− Kích thước (BS): khi dữ liệu quá lớn, không thể đưa hết mỗi lần tất cả tệp dữ liệu vào để train, vì ta cần một siêu máy tính với lượng RAM hay GPU RAM cực lớn để lưu trữ toàn bộ hình ảnh trên, điều này là bất khả thi đối với người dùng bình thường, phòng thí nghiệm nhỏ Buộc lòng chúng ta phải chia nhỏ tệp dữ liệu, và khái niệm lô hình thành Kích thước lô là số lượng mẫu dữ liệu trong một lần huấn luyện Ví dụ như: trong một bài toán phân loại chó mèo, chọn kích thước= 32, nghĩa là 1 lần lặp ta sẽ cho ngẫu nhiên 32 bức

54 hình chó hoặc mèo chạy lan truyền trong mạng thần kinh, tiếp theo đưa tiếp

32 hình ngẫu nhiên, không lặp với các hình trước đó vào mạng, đến khi nào không còn hình nào nữa là hoàn thành 1 EPOCH

❖ Lưu đồ xử lý ảnh

Đọc ảnh đầu vào từ camera, sau đó thay đổi kích thước và xoay ảnh để tạo ra nhiều mẫu dữ liệu khác nhau Chuyển đổi ảnh sang thang độ xám và làm mờ để loại bỏ nhiễu Sau đó, ngưỡng ảnh sẽ được xác định, tiếp theo là các tập hợp đường viền của ảnh Cuối cùng, các điểm sẽ được so sánh để xác định khung hình chứa hình ảnh.

Hình 4.16: Lưu đồ xử lý ảnh

Thay đổi kích thước ảnh và xoay ảnh Ảnh xám

Tìm viền và phân loại viền

So sánh tìm ra khung hình

❖ Lưu đồ giải thuật nhận dạng và điều khiển

Bắt đầu hệ thống sẽ tiến hành khởi tạo cấu hình phần cứng biên dịch mã và kiểm tra kết nối thiết bị Load mô hình đã huấn luyện trước đó, tiếp theo sẽ thiết kế màn hình giao diện hiển thị và các nút nhấn để điều khiển giám sát, khi tiến hành nhấn nút trên màn hình giao diện sẽ gửi từng ký tự tương ứng với nút nhấn đó truyền thông qua PLC, PLC nhận được ký tự tiến hành xử lý và thực hiện chương trình tương ứng Tiếp theo sẽ kiểm tra xem có sản phẩm trên băng tải hay không nếu có thì camera sẽ tiến hành chụp hình ảnh và PC sẽ thực hiện xử lý hình ảnh đó, kết quả tính toán xử lý sau đó sẽ được so sánh với mô hình đã được huấn luyện trước đó để phân loại sản phẩm là sản phẩm tốt hay xấu theo mô hình đã được huấn luyện, tăng biến đếm sản phẩm lên và hiển thị kết quả phân loại mô hình nhận dạng và số lượng sản phẩm lên màn hình giao diện

56 Hình 4.17: Lưu đồ giải thuật nhận dạng và điều khiển Đ Đ

S Nhấn nút S Đọc hình ảnh từ camera và xử lý

Kết thúc Tạo giao diện điều khiển

Gửi ký tự đến PLC và xử lý

Tính toán và so sánh kết quả với mô hình huấn luyện

Phân loại và tăng biến đếm lỗi lên 1

Hiển thị lên giao diện Tạo nút nhấn điều khiển

Phân loại và tăng biến đếm tốt lên 1 Đ

Khai báo truyền thông Load mô hình huấn luyện

❖ Lưu đồ giải thuật hệ thống

Hình 4.18: Lưu đồ giải thuật hệ thống Đ Đ

Kết thúc Khởi động băng tải Nhấn Start

Thanh gạt loại bỏ sản phẩm lỗi

Dừng hệ thống Nhấn Emergency

Ban đầu sẽ kiểm tra xem có nhấn nút Start trên giao diện điều khiển không, nếu không tiến hành nhấn nút Start Gỉa sử nhấn nút Start thì tiếp theo kiểm tra xem có nhấn nút dừng khẩn cấp không, giả sử có nhấn nút dừng khẩn cấp thì hệ thống sẽ dừng hoạt động để kiểm tra, trường hợp không nhấn nút dừng khẩn cấp thì cho băng tải hoạt động để vận chuyển sản phẩm, khi sản phẩm đi qua camera hệ thống sẽ tiến hành phân tích xem sản phẩm đi qua là sản phẩm đạt chuẩn hay bị lỗi, trường hợp sản phẩm đạt chuẩn sẽ cho đi đến cuối băng truyền, trường hợp ngược lại nếu sản phẩm bị lỗi thì thanh gạt sẽ loại sản phẩm lỗi ra khỏi băng truyền Nếu nhấn nút Stop hệ thống sẽ ngừng hoạt động, ngược lại sẽ quay lại kiểm tra sản phẩm tiếp theo và quá trình lặp lại như đã phân tích

Thu thập dữ liệu với các nhãn tốt/xấu, sau đó tiền xử lý bằng cách thay đổi kích thước, chuyển sang ma trận và xử lý bằng mạng Mobilenet Chia dữ liệu thành tập huấn luyện và thử nghiệm Xây dựng mô hình bao gồm đào tạo tạo ảnh, tải trọng, biên dịch và lưu Triển khai mô hình để đưa ra dự đoán, đánh giá mô hình về sơ đồ huấn luyện, độ chính xác và các thông số khác Cuối cùng, triển khai mô hình để xử lý và dự đoán đầu vào hình ảnh là tốt hay xấu.

59 Hình 4.19: Lưu đồ huấn luyện

❖ Nguyên lý làm việc của máy học phân loại sản phẩm Áp dụng các bộ lọc lên ảnh trước khi huấn luyện mạng nơ ron, sau khi cho các tấm ảnh đi qua bộ lọc những đặc trưng của tấm ảnh sẽ trở lên nổi bật và chúng ta có thể sử dụng chúng để nhận diện hình ảnh Bộ lọc ở đây thực chất chỉ là tổ hợp của các phép nhân tức là nhân điểm ảnh với vị trí bộ lọc tương ứng, lớp tổng hợp sẽ gom một tập các điểm ảnh lại với nhau để cho đầu ra là một tập nhỏ hơn và sẽ chỉ lấy các giá trị lớn nhất gọi là max pooling, để chọn giá trị cho các bộ lọc này thì máy tính sẽ tự học các giá trị đó, chúng chính là các tham số giống như tham số của mạng nơ ron, chúng ta sẽ khởi tạo các giá trị tham số của các bộ lọc này một cách ngẫu nhiên, và khi cho các tấm ảnh vào bộ lọc chúng ta sẽ có một số giá trị đầu ra, sau đó ta sẽ tiếp tục cho các giá trị đó qua các lớp tiếp theo trong mạng nơ ron và cuối cùng mạng nơ ron sẽ đưa ra phán đoán gán nhãn cho tấm ảnh, máy tính sẽ so

Kết thúc Thu thập dữ liệu

Tiền xử lý hình ảnh

Chia dữ liệu để huấn luyện

KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ

Hệ thống mô hình

Sau khi thi công toàn bộ hệ thống thì với mô hình trên nhóm đã đạt được những kết quả như sau

– Hoàn thành hoàn chỉnh mô hình với các thiết bị được lắp đặt theo đúng yêu cầu thiết kế ban đầu

– Sản phẩm lỗi được phát hiện tương đối chính xác theo như yêu cầu ban đầu – Hệ thống hoạt động ổn định, đáp ứng nhanh khi phát hiện sản phẩm

– Hệ thống được điều khiển và giám sát trên giao diện được thiết kế trực quan, sinh động dễ vận hành và giám sát, dễ theo dõi khi sản phẩm có lỗi hoặc không

Hình 5.1: Mô hình thực tế

Hệ thống điện

Sau khi kết nối đi đường dây điện kết nối cấp nguồn đến các thiết bị trong tủ điện kết quả được thể hiện như sau:

− Hệ thống điện mặt trong tủ điện

Hình 5.2: Hệ thống điện trong mặt tủ

− Hệ thống điện mặt ngoài tủ điện

Hình 5.3: Hệ thống điện ngoài mặt tủ

5.3 Kết quả chạy thực nghiệm

Sau một thời gian thực hiện, em đã hoàn thành công việc thi công hệ thống

Mô hình chạy đúng theo dự định ban đầu, dưới đây là một vài hình ảnh kết quả hoạt động thực tế của hệ thống khi hoàn thành

Nhấn nút Start trên giao diện đèn xanh bật sáng, băng tải hoạt động

Hình 5.4: Hệ thống hoạt động Nhấn nút Stop trên giao diện hoặc nút dừng khẩn cấp trên tủ điện đèn đỏ bật sáng, băng tải dừng hoạt động

Hình 5.5: Hệ thống dừng hoạt động

67 Kết quả chạy thực nghiệm khi sản phẩm không có lỗi trên bao bì sản phẩm sẽ đi từ đầu đến cuối băng tải và cánh tay gạt sản phẩm lỗi không hoạt động

Hình 5.6: Hình ảnh sản phẩm phân loại tốt Dưới đây là hình ảnh khi lỗi trên bao bì bị lem mực, hệ thống phát hiện đẩy sản phẩm lỗi ra ngoài băng tải và đếm sản phẫm lỗi bị lem mực tăng lên 1 đơn vị

Hình 5.7: Hình ảnh sản phẩm phân loại lỗi lem mực

Hệ thống kiểm tra lỗi trên bao bì hoạt động hiệu quả khi phát hiện ra lỗi in trên bao bì Lúc này, sản phẩm bị lỗi sẽ bị đẩy khỏi băng chuyền và đếm số sản phẩm lỗi tăng lên 1 đơn vị.

Hệ thống phát hiện sẽ đẩy sản phẩm có bao bì rách ra ngoài băng tải, đồng thời đếm số lượng sản phẩm lỗi bị rách tăng lên 1 đơn vị.

Hình 5.9: Hình ảnh sản phẩm phân loại lỗi bị rách

69 Dưới đây là hình ảnh khi lỗi trên bao bì khi chưa được huấn luyện, hệ thống phát hiện đẩy sản phẩm lỗi ra ngoài băng tải và đếm sản phẫm lỗi bị rách tăng lên 1 đơn vị

Hình 5.10: Hình ảnh sản phẩm phân loại khi không train

Sau khi hoàn thành sản phẩm, em có chạy thử và lập ra được bảng thống kê số lần thực hiện chính xác để kiểm tra tính ổn định của hệ thống như sau:

Bảng 5.1 Kết quả thử nghiệm chạy hệ thống khi sản phẩm chưa được huấn luyện

Số lần thử Sản phẩm Số lần nhận dạng đúng Xác suất (%)

50 Sản phẩm lỗi lem mực 9 18

50 Sản phẩm lỗi in sai 8 16

Bảng 5.2: Kết quả thử nghiệm chạy hệ thống khi sản phẩm được huấn luyện

Số lần thử Sản phẩm Số lần nhận dạng đúng Xác suất (%)

50 Sản phẩm lỗi lem mực 46 92

50 Sản phẩm lỗi in sai 46 92

70 Qua kết quả thống kê ở bảng 5.1 khi dữ liệu chưa được huấn luyện và bảng 5.2 khi dữ liệu đã được huấn luyện em có nhận xét như sau:

− Dữ liệu chưa được huấn luyện khi đưa vào nhận dạng thì máy học cho ra kết quả nhận dạng ngẫu nhiên vì các dữ liệu này không được gán nhãn do không được huấn luyện và máy tính khi so sánh dự đoán này với nhãn hình ảnh được gán sẽ không có trong tập huấn luyện nên sẽ đưa ra kết quả ngẫu nhiên so với kết quả đã được huấn luyện trong tập dữ liệu

− Dữ liệu được huấn luyện khi đưa vào nhận dạng thì máy học cho ra kết quả nhận dạng chính xác vì các dữ liệu hình ảnh này được gán nhãn trong quá trình học, máy tính sẽ so sánh dự đoán này với nhãn đúng của tấm ảnh trong tập huấn luyện và điều chỉnh tham số của bộ lọc để kết quả gán nhãn đúng hơn với nhãn đúng Do đó kết quả nhận dạng tương đối chính xác, tuy nhiên cũng có lúc nó nhận dạng không chính xác việc này xảy ra khi mà mạng nơ ron của chúng ta có thể nhận biết rất tốt những tập dữ liệu mà nó từng nhìn thấy nhưng không khái quát hóa tốt những dữ liệu mới, có thể cải thiện nó bằng cách tăng hình ảnh lên, hoặc có thể tăng số lần huấn luyện, huấn luyện ở mức sâu hơn thì cho kết quả nhận dạng chính xác hơn.

LUẬN VÀ HƯỚNG PHÁT TRIỂN

Kết luận

Với sự làm việc chăm chỉ trong suốt ba tháng thực hiện đề tài tốt nghiệp cùng với sự giúp đỡ tận tình của giáo viên hướng dẫn, em cũng đã hoàn thành xong đồ án tốt nghiệp của mình với đề tài “ứng dụng xử lý ảnh và máy học phát hiện lỗi trên bao bì”, đồ án tốt nghiệp hoàn thành với những nội dung như sau:

− Nghiên cứu và tìm hiểu ứng dụng của PLC S7-1200 làm bộ xử lý trung tâm, thiết kế giao diện trên phần mền Spyder làm ứng dụng cho việc điều khiển và giám sát hệ thống phân loại sản phẩm lỗi và có thể truyền tín hiệu từ Python qua PLC

− Kết nối giữa các phần mềm và phần cứng hoàn thiện

− Tìm hiểu và sử dụng được các thư viện Python và các công cụ để viết chương trình phần mềm Spyder

− Ứng dụng xử lý ảnh kết hợp với máy học trong việc phát hiện và phân loại sản phẩm lỗi

− Hệ thống có giao diện điều khiển được thiết kế trên Spyder

− Dễ điều khiển, tốc độ đáp ứng tương đối nhanh

− Có xử lý ảnh và máy học trong việc nhận diện sản phẩm

− Mô hình hoạt động ổn định

− Tủ điện chưa được đẹp

− Phần cứng thiết kế đơn giản

− Cài đặt các thư viện Python nhiều cần chọn lọc

− Mới phân loại sản phẩm tốt xấu

Hướng phát triển

Do thời gian và kiến thức có hạn chế nhất định nên đề tài chưa thể đạt được tốt nhất Vì vậy để đề tài có thể nghiên cứu sâu hơn thì em xin đề xuất thêm hướng phát triển đề tài có nhiều ứng dụng trong thực tế hơn

− Phát hiện nhiều sản phẩm lỗi trên các vật liệu khác nhau

− Ứng dụng vào an toàn và an ninh trong việc nhận diện khuôn mặt để tìm kiếm tội phạm dễ dàng hơn hoặc ứng dụng vào trong nhà hay chung cư

− Ứng dụng vào an toàn nhận diện người say rượu khi lái xe để giảm thiểu tai nạn xảy ra

− Phát triển trong kiểm soát phân phối hàng hóa bưu điện, chuyển phát,…bằng phát hiện và đọc mã vạch in trên nhãn sản phẩm

[1] Trần Thế San, Nguyễn Ngọc Phương, “PLC lập trình ứng dụng trong công nghiệp” NXB Khoa học và Kỹ thuật năm 2008

[2] Nguyễn Thanh Hải, “Giáo Trình Xử Lý Ảnh”, Trường ĐHSPKT, Tp.HCM, Nhà xuất bản ĐH Quốc Gia, 2015

[3] Zhong-Qiu Zhao, Peng Zheng, Shou-tao Xu, and Xindong Wu, “Object Detection with Deep Learning: A Review”, Institute of Electrical and Electronics Engineers, 16 Apr 2019

[4] Phil Spector, “Introduction to Python Programming”, Department of Statistics, University of California Berkeley, March 16, 2005

[5] Dave Kuhlman, “A Python Book: Beginning Python, Advanced Python, and Python Exercises”, Dec 2013

[6] J R Parker, “Algorithms for Image Processing and Computer Vision”, 2st Edition, 2010

[7] H Phan, D Huynh, Y He, M Savvides, and Z Shen, "MoBiNet: A Portable Binary Network for Image Classification," 2020 IEEE Winter Conference on

Applications of Computer Vision (WACV), Snowmass, CO, USA, 2020

[8] https://www.prosoft-technology.com/kb/assets/intro_modbustcp.pdf

Code chụp hình phôi from skimage.metrics import structural_similarity as compare_ssim import argparse import imutils import cv2 import cv2 print("[INFO] loading ")

77 video = cv2.VideoCapture(0) dem = 200 while True: ret,frame = video.read() frame = frame[0:500,210:380] frame = cv2.rotate(frame, cv2.ROTATE_90_CLOCKWISE) gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) blur = cv2.GaussianBlur(gray, (5,5), 0) thresh = cv2.threshold(blur, 90, 120, cv2.THRESH_BINARY)[1] cv2.imshow("edge",thresh) cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cnts = imutils.grab_contours(cnts) for c in cnts: peri = cv2.arcLength(c, True) approx = cv2.approxPolyDP(c, 0.018 * peri, True) if len(approx) >= 4 and cv2.contourArea(c)>10000:

By pressing the 'c' key, the user can capture a frame from the video The frame is cropped to the detected contour and saved as an image file A green rectangle is drawn around the contour on the displayed frame The video stream is terminated when the user presses the 'Escape' key.

Code training from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.applications import MobileNetV2 from tensorflow.keras.layers import AveragePooling2D from tensorflow.keras.layers import Dropout from tensorflow.keras.layers import Flatten from tensorflow.keras.layers import Dense from tensorflow.keras.layers import Input from tensorflow.keras.models import Model from keras.optimizers import Adam from tensorflow.keras.applications.mobilenet_v2 import preprocess_input from tensorflow.keras.preprocessing.image import img_to_array from tensorflow.keras.preprocessing.image import load_img from tensorflow.keras.utils import to_categorical from sklearn.preprocessing import LabelBinarizer from sklearn.model_selection import train_test_split from sklearn.metrics import classification_report from imutils import paths import matplotlib.pyplot as plt import numpy as np import os

BS = 2 print("[INFO] loading images ") imagePaths = list(paths.list_images("dataset")) data = [] labels = [] for imagePath in imagePaths:

79 label = imagePath.split(os.path.sep)[-2] image = load_img(imagePath, target_size=(224, 224)) image = img_to_array(image) image = preprocess_input(image) data.append(image) labels.append(label) data = np.array(data, dtype="float32") labels = np.array(labels) lb = LabelBinarizer() labels = lb.fit_transform(labels) labels = to_categorical(labels)

The data (trainX, testX, trainY, testY) is split using the train_test_split function with a test size of 20%, stratification, and a random state ImageDataGenerator is applied to augment the data with operations such as rotation, zooming, shifting, shearing, and flipping The MobileNetV2 base model is loaded with weights pretrained on the ImageNet dataset, excluding the top layers A new top model is created with an average pooling layer, flattening, a dense layer with ReLU activation, a dropout layer, and a final dense layer with softmax activation for two classes The base model's output is connected to the head model, and the combined model is trained with the specified loss function and optimizer.

80 for layer in baseModel.layers: layer.trainable = False print("[INFO] compiling model ") opt = Adam(lr=INIT_LR, decay=INIT_LR / EPOCHS) model.compile(loss="binary_crossentropy", optimizer=opt, metrics=["accuracy"]) print("[INFO] training head ")

H = model.fit( aug.flow(trainX, trainY, batch_size=BS), steps_per_epoch=len(trainX) // BS, validation_data=(testX, testY), validation_steps=len(testX) // BS, epochs=EPOCHS) print("[INFO] evaluating network ") predIdxs = model.predict(testX, batch_size=BS) predIdxs = np.argmax(predIdxs, axis=1) print(classification_report(testY.argmax(axis=1), predIdxs, target_names=lb.classes_)) print("[INFO] saving mask detector model ") model.save("sploi.model", save_format="h5")

N = EPOCHS plt.style.use("ggplot") plt.figure() plt.plot(np.arange(0, N), H.history["loss"], label="train_loss") plt.plot(np.arange(0, N), H.history["val_loss"], label="val_loss") plt.plot(np.arange(0, N), H.history["accuracy"], label="train_acc") plt.plot(np.arange(0, N), H.history["val_accuracy"], label="val_acc") plt.title("Training Loss and Accuracy") plt.xlabel("Epoch #") plt.ylabel("Loss/Accuracy")

81 plt.legend(loc="lower left") plt.savefig("plot.png")

Code phân loại sản phẩm import imutils import cv2 from PIL import Image from tensorflow.keras.applications.mobilenet_v2 import preprocess_input from tensorflow.keras.preprocessing.image import img_to_array from tensorflow.keras.models import load_model import numpy as np from tkinter import * from PIL import Image,ImageTk from tkinter import ttk import time from pyModbusTCP.client import ModbusClient

DATA2PLC = ModbusClient(host="192.168.0.2", portP2,unit_id=1, auto_open True,debugse)

DATA2PLC.open() print("[INFO] loading ") maskNet = load_model("sploi.model") tk=Tk() tk.title("Phát Hiện Lỗi ") tk.geometry("550x440+0+0") tk.resizable(0,0) tk.configure(background="white") sl_good = 0 sl_notgood = 0 a = 0.0 b = 0.0 demOK = 0

82 demNG = 0 kqua = None frame = None thresh = None global lb01 def hien_thi(frame,frame_crop,a,b,sl_good,sl_notgood): global lb01 lb01=Label(tk,fg="white",bg="blue",width = 42,font="Times 17",text="Phát Hiện Lỗi Bao Bì Ứng Dụng Xử Lý Ảnh") lb01.pack() lb01.place(x=0,y=0) lb01=Label(tk,fg="Gray",bg="white",font="Times 15",text="SL Good:") lb01.pack() lb01.place(x50,y0) lb01=Label(tk,fg="Gray",bg="white",font="Times 15",text="SL NotGood:") lb01.pack() lb01.place(x50,y$0) lb01=Label(tk,fg="Gray",bg="white",font="Times 15",text="Predic:") lb01.pack() lb01.place(x50,y)0) lb01=Label(tk,fg="white",bg="dark gray",width = 95,font="Times 8",text="Control Tab") lb01.pack() lb01.place(x=0,y35) lb01=Label(tk,fg="dark green",bg="white",font="Times 20",text=sl_good) lb01.pack() lb01.place(xH0,y5) lb01=Label(tk,fg="dark red",bg="white",font="Times 20",text=sl_notgood) lb01.pack() lb01.place(xH0,y#5)

83 kqua = "OK" if a >b else "NG" if kqua == "OK": lb01=Label(tk,fg="white",bg="green",height = 2, width = 3,font="Times 30",text=kqua) lb01.pack() lb01.place(x@0,y`) lb01=Label(tk,fg="green",bg="white",font="Times

20",text=str(max(a,b)*100)+'%') lb01.pack() lb01.place(xE0,y(4) else: lb01=Label(tk,fg="white",bg="red",height = 2, width = 3,font="Times 30",text=kqua) lb01.pack() lb01.place(x@0,y`) lb01=Label(tk,fg="red",bg="white",font="Times

Ngày đăng: 26/09/2024, 12:27

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Trần Thế San, Nguyễn Ngọc Phương, “PLC lập trình ứng dụng trong công nghiệp”. NXB Khoa học và Kỹ thuật năm 2008 Sách, tạp chí
Tiêu đề: PLC lập trình ứng dụng trong công nghiệp
Nhà XB: NXB Khoa học và Kỹ thuật năm 2008
[2] Nguyễn Thanh Hải, “Giáo Trình Xử Lý Ảnh”, Trường ĐHSPKT, Tp.HCM, Nhà xuất bản ĐH Quốc Gia, 2015 Sách, tạp chí
Tiêu đề: Giáo Trình Xử Lý Ảnh
Nhà XB: Nhà xuất bản ĐH Quốc Gia
[3] Zhong-Qiu Zhao, Peng Zheng, Shou-tao Xu, and Xindong Wu, “Object Detection with Deep Learning: A Review”, Institute of Electrical and Electronics Engineers, 16 Apr 2019 Sách, tạp chí
Tiêu đề: Object Detection with Deep Learning: A Review
[4] Phil Spector, “Introduction to Python Programming”, Department of Statistics, University of California Berkeley, March 16, 2005 Sách, tạp chí
Tiêu đề: Introduction to Python Programming
[5] Dave Kuhlman, “A Python Book: Beginning Python, Advanced Python, and Python Exercises”, Dec 2013 Sách, tạp chí
Tiêu đề: A Python Book: Beginning Python, Advanced Python, and Python Exercises
[6] J. R. Parker, “Algorithms for Image Processing and Computer Vision”, 2st Edition, 2010 Sách, tạp chí
Tiêu đề: Algorithms for Image Processing and Computer Vision
[7] H. Phan, D. Huynh, Y. He, M. Savvides, and Z. Shen, "MoBiNet: A Portable Binary Network for Image Classification," 2020 IEEE Winter Conference on Applications of Computer Vision (WACV), Snowmass, CO, USA, 2020 Sách, tạp chí
Tiêu đề: MoBiNet: A Portable Binary Network for Image Classification

HÌNH ẢNH LIÊN QUAN

Hình 2.2: Hình ảnh giao thông bình thường và một hình ảnh VIPS với các vùng - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 2.2 Hình ảnh giao thông bình thường và một hình ảnh VIPS với các vùng (Trang 22)
3.2. Sơ đồ kết nối tổng quan. - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
3.2. Sơ đồ kết nối tổng quan (Trang 43)
Hình 3.8: Driver TB6600 - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 3.8 Driver TB6600 (Trang 49)
3.3. Sơ đồ kết nối của hệ thống - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
3.3. Sơ đồ kết nối của hệ thống (Trang 53)
Hình 4.1: Băng tải mini - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 4.1 Băng tải mini (Trang 55)
Hình 4.2: Vỏ hộp tủ điện - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 4.2 Vỏ hộp tủ điện (Trang 57)
Hình 4.5: Mô hình hệ thống phân loại sản phẩm lỗi - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 4.5 Mô hình hệ thống phân loại sản phẩm lỗi (Trang 58)
Hình 4.8: Chọn cấu hình - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 4.8 Chọn cấu hình (Trang 60)
Hình 4.9: Chọn CPU - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 4.9 Chọn CPU (Trang 60)
Hình 4.10: Chương trình chính của PLC - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 4.10 Chương trình chính của PLC (Trang 61)
Hình 4.14: Giao diện Spyder - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 4.14 Giao diện Spyder (Trang 63)
Hình 4.18: Lưu đồ giải thuật hệ thống - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 4.18 Lưu đồ giải thuật hệ thống (Trang 69)
Hình 5.2: Hệ thống điện trong mặt tủ - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 5.2 Hệ thống điện trong mặt tủ (Trang 77)
Hình 5.5: Hệ thống dừng hoạt động - ứng dụng xử lý ảnh và máy học phân loại sản phẩm lỗi trên bao bì
Hình 5.5 Hệ thống dừng hoạt động (Trang 78)

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

TÀI LIỆU LIÊN QUAN

w