TỔNG QUAN
Giới thiệu
Ngày nay, khoa học công nghệ đang ngày một phát triển, giúp cho con người tự động hóa các dây chuyền trong nhà máy, giảm công sức bỏ ra và tiết kiệm được nhân công, lại đạt được hiệu quả cao hơn trong sản xuất Công nghiệp ngày càng đòi hỏi phải chính xác và hiệu quả để đáp ứng xu thế tự động hóa. Ngành công nghiệp đóng gói sản phẩm, thực phẩm cũng như trong lĩnh vực điện, điện tử là những ngành cần sự chính xác trong đảm bảo đầu ra, để tiết kiệm nhân công trong việc kiểm tra thành phẩm với một tốc độ và sự chính xác cao, công nghệ xử lý ảnh ra đời và không ngừng phát triển để ngày càng hoàn thiện hơn.
Xử lý ảnh và những ứng dụng của xử lý ảnh ra đời là rất cần thiết cho cuộc sống Xử lý ảnh đã có lịch sử hình thành từ khá lâu và được vận dụng trong những lĩnh vực như dân sự, quân sự, y tế và nhiều lĩnh vực trong đời sống khác Ứng dụng đầu tiên là nâng cao chất lượng ảnh báo được truyền từ London đến New York qua cáp ở những năm đầu thế kỉ 20 Từ nửa sau thế kỉ 20 đến nay, các phương pháp xử lý, nâng cao chất lượng, ảnh đang được cải thiện và phát triển không ngừng Tuy nhiên, mới chỉ khoảng một thập niên trở lại đây, kiến thức xử lý ảnh mới được đưa vào để giảng dạy tại một vài trường đại học tại Việt Nam nhưng cũng đang còn hạn chế ở các thành phố lớn.
Những năm gần đây ở nước ta thì việc ứng dụng xử lý ảnh đã và đang được triển khai trên các ứng dụng để nhận dạng biển số xe, đọc mã vạch, kiếm tra chất lượng thành phẩm sau cùng, kiểm tra lỗi thiết bị,… Nhưng nhìn chung thì việc ứng dụng xử lý ảnh vẫn chưa tối ưu và còn khá ít ứng dụng, nếu được đầu tư và nghiên cứu nhiều hơn thì trong tương lai chắc chắn lĩnh vực này sẽ còn phát triển mạnh mẽ Hiện nay đã có nhiều đề tài nghiên cứu về phân loại sản phẩm dùng thị giác máy, cụ thể là xử lý ảnh như đề tài “Thiết kế và thi công hệ thống phân loại bút chì theo màu sắc” [1] của sinh viên trường Đại học Sư Phạm – Kỹ thuật TP.HCM sử dụng Webcam, Arduino Uno R3, động cơ servo và phần mềm Matlab để phân loại bút chì theo màu sắc Hay đề tài “Thiết kế và thi công dây chuyền phân loại đai ốc ứng dụng xử lý ảnh” do sinh viên Nguyễn Văn Tài – Nguyễn Minh Đức thực hiện, dây chuyển sử dụng vi điều khiển trung tâm là STM32F103C8T6 dùng thư viện mã nguồn mở OpenCV viết trên ngôn ngữ C++ giúp phân loại đai ốc bị sai kích thước, bị méo.
Và theo đó, xử lý ảnh trong phân loại sản phẩm đã và đang được nghiên cứu khá nhiều Đi cùng với các dây chuyền sản xuất tự động thì việc những sản phẩm bị lỗi là vấn đề vẫn còn tồn đọng và cần phương án giải quyết Đây là vấn đề không mới và có ở hầu hết các nhà máy, việc phân loại sản phẩm bị lỗi tự động sẽ giúp tiết kiệm nhân lực và đảm bảo chất lượng sản phẩm trước khi tiến hành các công đoạn tiếp theo Trên cơ sở đã trình bày, em đã quyết định tìm hiểu và chọn đề tài mang tính thực tiễn và nghiên cứu phù hợp với ngành sản xuất là “Thiết kế và thi công hệ
CHƯƠNG 1: TỔNG QUAN thống dây chuyền phân loại sản phẩm chai bia bị lỗi tem nhãn” bằng phương pháp xử lý ảnh dùng phần mềm của Google.
Mục tiêu đề tài
Thiết kế và thi công hệ thống phân loại sản phẩm lỗi tem nhãn, sử dụngYoloV4 để huấn luyện và nhận biết được nhãn của chai Sử dụng vi điều khiểnArduino Uno R3 nhận dữ liệu từ camera thông qua máy tính để điều khiển các thiết bị như động cơ DC, động cơ Servo.
Giới hạn đề tài
Đề tài tập trung vào phân loại những chai bia bị dán lỗi tem nhãn, cụ thể là dán lệch nhãn Không phân loại chai chưa có tem nhãn Hình ảnh chụp phải ở điều kiện đủ ảnh sáng.
Nội dung nghiên cứu
Trong quá trình thực hiện Khóa luận tốt nghiệp với đề tài Thiết kế và thi công hệ thống dây chuyền phân loại sản phẩm chai bia bị lỗi tem nhãn, nhóm chúng em sẽ tập trung giải quyết và hoàn thành những nội dung sau:
- Nội dung 1: Tìm hiểu, tóm tắt các đề tài đã nghiên cứu có liên quan đến điều khiển, phân loại có sử dụng xử lý ảnh.
- Nội dung 2: Tìm hiểu về YoloV4, Traning, động cơ và các linh kiện liên quan.
- Nội dung 3: Thu thập hình ảnh sản phẩm.
- Nội dung 4: Phân biệt nhãn chai bằng mạng máy tính YoloV4.
- Nội dung 5: Lắp ráp, thiết kế mô hình hệ thống.
- Nội dung 6: Viết chương trình cho toàn hệ thống và kiểm tra lỗi.
- Nội dung 7: Chạy thử nghiệm và hiệu chỉnh hệ thống, hoàn thành mô hình.
- Nội dung 8: Viết và hoàn thiện báo cáo thực hiện
- Nội dung 9: Bảo vệ luận văn.
Bố cục
Nội dung đề tài gồm những phần sau:
Trình bày lý do chọn đề tài, giới thiệu về đề tài, nêu ra mục tiêu, nội dung nghiên cứu và những giới hạn của đề tài.
CƠ SỞ LÝ THUYẾT
Các mô hình và hệ thống băng chuyền
Với những phát triển tích cực cuộc sống cũng như quy trình vận hành sản xuất đã thúc đẩy những những nghiên cứu mới của khoa học và kỹ thuật Xử lý ảnh được dùng trong hầu hết các ứng dụng trong băng chuyền nhà máy đặc biệt là khâu phân loại sản phẩm Giúp phân tích được cấu tạo bên ngoài từ những hình ảnh thu được từ camera và được xử lý thông tin chính xác bằng nhưng hình ảnh đã được phân tích và sao chép dữ liệu trước đó Điều đó hướng chúng ta đến với sự công nghệ hóa và hiện đại hóa.
Mô hình sử dụng board Arduino Uno R3 để làm bộ điều khiển trung tâm Sử dụng Camera để lấy hình ảnh từ băng chuyền đưa về máy tính để xử lý thông tin sau đó được truyền lại cho Arduino để điều khiển servo để phân loại sản dựa trên hình thống tin lấy được dựa trên hình ảnh đã được học trước đó để phân loại
Phân loại sản phẩm
Với phương pháp phân loại thủ công trước đây, để phân loại được 1 sản phẩm lỗi ta cần một đến hai nhân công chịu trách nhiệm về chất lượng của hàng hóa ví dụ như một người phân loại sản phẩm lỗi hoặc không lỗi, người tiếp theo sẽ phân loại lỗi sản phẩm dẫn đến quy trình vận hành của khâu khá phức tạp Ngoài ra, chính xác và tốc độ còn bị ảnh hưởng bởi con người Trung bình người nhìn bằng mắt thường sẽ từ một đến hai giấy ta có thể nhận biết được sản phẩm lỗi hay không sau đó sẽ phân loại chúng Còn về việc xử lý thông tin tự động hóa ta có thẻ tiết kiệm được nhân công và xử lý thông tin nhanh hơn tốc độ sản xuất cũng có thể nâng cao hơn.
Việc thiết kế mô hình cho hệ thống phân loại phụ thuộc vào sản phẩm cần phân loại Ở đề tài “Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm” của Nguyễn Hiền Minh, Phan Thanh Phong năm 2019 [2] phân loại các sản phẩm theo màu sắc đỏ xanh vàng dựa trên ngôn ngữ Python với thư viện chính là OpenCV và được thực hiện trên Kit Raspberry và Kit Arduino Uno R3 Sử dụng điểm riêng biệt của từng màu sắc để có thể nhận dạng và sau đó phân loại từng sản phẩm.
Ngoài ra với một thiết kế khác “Ứng dụng xử lý ảnh trong hệ thống băng truyền phân loại sản phẩm” của Lê Thanh Phong, Đặng Hoài Vũ [3] phân loại các sản phẩm theo hình dạng thông qua quá xử lý trên máy tính, điều khiển bằng Kit Arduino Uno bằng ngôn ngữ Python Sử dụng đông cơ Servo để làm tay gạt sản phẩm sau khi nhận tín hiệu từ Camera đã được xử lý thông qua bộ xử lý trung tâm là máy tính.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Sau khi thu thập được hình ảnh từ camera để được thực hiện yêu cầu xử lý ảnh ta cần sử dụng thư viên chuyển phân tích và xử lý dữ liệu hình ảnh Từ đề tài “ Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm” [3] tác giả đã sử dụng thư viện OpenCV để nhận dạng về màu sắc, để phân biệt màu sắc người thường dùng không gian màu HSV Và dùng hàm cv2.cvtColor để thực hiện chuyển đổi giữa các hệ màu này Cần chuyển từ RGB sang HSV, sau đó từ các giá trị HSV của các màu mong muốn sẽ so sánh để xác định được ảnh đang xét có màu gì hsv_img=cv2.cvtColor(img, cv2,COLOR_BGR2HSV)
Với khả năng ứng của OpenCV mang lại ta có thể sử dụng nó để áp dụng vào đề của mình Từ các hình ảnh được đã được huấn luyện trước đó ta có thể so sánh với hình ảnh được thu thập từ camera để phát hiện nhãn chai có lỗi hay không.
OpenCV (Open Copmputer Vision) là một thư viện mã nguồn mở hàng đầu xử lý về thị giác máy tính, machine learning, xử lý ảnh OpenCV được viết bằng C/C++, vì vậy tốc độ tính toán rất nhanh, có thể sử dụng với các ứng dụng liên quan đến thời gian thực OpenCV có thể hỗ trợ cho C/C++, Python Java vì vậy hỗ trợ được cho Window, Linux, MacOs lẫn Android, iOS OpenCV có cộng đồng hơn 47 nghìn người dùng và số lượng Dowload vượt quá 6 triệu lần và vẫn mở rộng.
OpenCV có rất nhiều ứng dụng như:
• Phục hổi hình ảnh/video.
Opencv vẫn đang được đóng góp và phát triển liên tục, nó đặt biệt phù hợp cho những ứng dụng xử lý hỉnh ảnh đơn giản vì thư viện dễ sử dụng và nhiều hỗ trợ từ cộng đồng.
Mô hình mạng huấn luyện ảnh
Huyến luyện ảnh là hình thức thu thập tập hình ảnh bảo của sản phẩm trên mô hình thực tế, từ đó huấn luyện ảnh thông qua bất kì một mô hình mạng nào đó. Yolo được viết tắt của cụm từ “you only look once”, tức là chỉ cần nhìn một lần, điều đó chứng minh được hiệu quả và tốc độ xử lý của Yolo khi sử dụng trong bài toán Yolo có thể nhận diện được nhiều nhãn khác nhau mà còn xác định được vị trí trong một khung hình Đồng thời Yolo được đánh giá là “Không phải mô hình chính xác nhất nhưng chắc chắn là mô hình nhanh nhất”
Yolo là một mô hình mạng CNN cho việc phát hiện, nhận dạng, phân loại đối tượng Yolo được tạo ra từ việc kết hợp các “convolutional layer” và “connected
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT layers” Trong đó các convolution layers sẽ được trích dẫn từ các đặc tính của ảnh. Phương pháp chính dựa trên một mạng neutural network duy nhất được huấn luyện dạng end-to-end model Mô hình lấy input là một bức ảnh và dự đoán bounding box và nhãn lớp cho mỗi bounding box Yolo được áp dụng vào sử dụng các bài toán object detection – có thể nhận diện được vật thể ngay khi vẫn di chuyện trong khung hình Vì thế khi ta đưa vào đề tài bài toán “nhận biết nhãn chai bị lỗi” khi chai trên băng truyền đi qua buồng sẽ được lưu lại hình ảnh với tốc độ cao và xử lý chúng theo yêu cầu của bài toán.
Hình 2.1: Minh hoạ về Bounding box
Bounding box sẽ là một khung viền bao quanh vật thể với 4 thông tin tọa:điểm trên cùng (x, y), chiều cao(width), chiều rộng(height).
TÍNH TOÁN VÀ THIẾT KẾ
Giới thiệu
Đề tài “Thiết kế và thi công hệ thống dây chuyền phân loại sản phẩm chai bị lỗi tem nhãn” với mục tiêu là phân loại hoàn thiện của nhãn chai bằng cách sử dụng xử lý ảnh để phân tích dữ liệu vào từ camera Sử dụng ngôn ngữ Python với thư viện hổ trợ xử lý ảnh là OpenCV Bộ xử lý trung tâm là máy tính sẽ nhận và xử lý ảnh Khối điều khiển sử dụng Arduino Uno để điều khiển các thiết bị ngoại vi như động cơ băng tải, servo Đề tài có thể sử dụng và giám sát trực tiếp trên máy tính trong suốt quá trình nhận diện, phân loại.
Tính toán và thiết kế phần cứng
3.2.1 Thiết kế sơ đồ khối hệ thống
Trong hệ thống này các khối như: khối nguồn, khối vi điều khiển, băng chuyền, xử lý ảnh, khối camera, khối thu thập ảnh Tất cả được mô tả như hình 3.1.
Khối vi điều khiển camera
Hình 3.1: Sơ đồ khối toàn hệ thống
Khối nguồn: cung cấp nguồn cho vi điều khiển.
Máy tính: máy tính cá nhân dùng để thực hiện xử lý ảnh từ cam và so sánh với dữ liệu đã được học sẵn trước đó.
Xử lý ảnh: thông quá mạng máy tính để xử lý thông tin được nhận từ cam
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ sau đó chuyển dữ liệu sang vi điều khiển.
Khối vi điều khiển: nhận lệnh từ máy tính để điều khiển các ngoại vi trên băng chuyền bao gốm servo, cảm biến và cam.
3.2.2 Tính toán và thiết kế các khối sơ đồ mạch a Camera
Do nhu cầu cần phải chụp sản phẩm thật chính xác nên đã chọn Webcam Logitech C310 vì giá thành rẻ phù hợp với sinh viên, sử dụng đơn giản, có hỗ trợ tự động điều chỉnh ảnh sáng là thiết yếu trong đồ án.
• Chụp ảnh nhanh với tốc dộ phân giải 5 megepixel.
• Tốc độ khung hình: 30FPS.
• Tiêu cự: lấy nét cố định.
• Tính năng: Hỗ trợ tự động điều chỉnh ánh sáng.
Camera nhỏ gọn linh hoạt, được đặt ở ví trí phù hợp để vừa nhận diện rõ sản phẩm vừa có góc rộng phù hợp đủ cho sản phẩm đi ngang qua Xác định vị trí camera là một trong những điều kiện quan trọng quyết định đến việc xử lý ảnh nhận diện vật thể có tối ưu hay không.
Việc đặt camera chính giữ của buồng có thể đem lại cho chúng ta nhìn tổng quát của hết thống Tuy nhiện, do góc nhìn quá rộng, dẫn đến nhiều sai số trong quá trình xử lý ảnh Nguyên nhân chủ yếu là do tiêu cự của camera và ảnh sáng trong buồng chính vì thế chúng ta cần lựa chọn vị trí đặt camera sao cho phù hợp với điều kiện ảnh sáng trong buồng và thích hợp với camera cảu mình Sao cho chất lượng hình ảnh từ camera đem lại tốt nhất trong quá trình vận hành và xử lý của hệ thống Việc này thông thực nghiệm nhiều lần mới có thể tìm được vị trí tốt nhất và phù hợp nhất.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ b Máy tính
Máy tính là bộ xử lý quan trọng nhất của toàn bộ hệ thống Tất cả chương trình xử lý, điều khiển, hình ảnh đều sẽ hiển thị trên đó Camera được kết nối thông qua cổng USB để thu nhận vật thể Từ đó tiến hành xử lý và đưa ra mệnh lệnh điều khiển trên khối điều khiển ở phân cứng là Arduino Bộ điều khiển sẽ điều khiển relay, Servo và Arduino sẽ phản hồi trở về máy tính sau khi hoàn tất lệnh.
Hình 3.3: Sự tương tác của máy tính, camera và Arduino c Board Arduino
Sau khi tính toán với những thiết kế của đề tài có thể nhận thấy board đáp ứng những điều kiện như:
• Cung cấp nguồn 5V cho module Relay, động cơ , led hoạt động.
• Có xung PWM để điều khiển động cơ
• Có khả năng giao tiếp và tương tác với máy tính
Board Arduino, có đầu ra dòng điện là 500mA, có chân điều khiển PWM, có ngõ ra dạng số, khả năng xử lý tín hiệu phù hợp với yêu cầu, nên rất thích hợp với đề tài.
Arduino là một board mạch vi xử lý được phát triển vào năm 2005 ở Ý Một board mạch Arduino gốm một vi điều khiển AVR kết hợp với nhiều linh kiện khác để cso thể dễ dàng lập trình xây dựng dự án Với Arduino Uno R3 là một dòng mạch cơ bản, thích hợp với những người mới lập trình với Arduino Arduino UNO R3 sử dụng vi xử lý là chip Atmega328 họ 8 bit, điện áp hoạt dộng 5VDC cung cấp qua cáp USB, tần só hoạt đọng 16MHz, dòng tiêu trong khoảng 30mA, 14 ngõ vào ra, 6 chân Analog, dòng tối da trên mỗi chân I/O là 30mA, bọ nhớ flash, SRAM 2KB,
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.4: Sơ đồ thành phần của Arduino Uno
R3 Chức năng các linh kiện của board mạch:
• USB type B: kết nối để truyền dữ liệu, xuất chương trình giữa Arduino và máy tính Ngoài ra cũng cung cấp nguồn cho Arduino hoạt động thông qua cổng này
• Reset button: nút nhấn đưa mạch về chế độ hoạt động ban đầu.
• ICSP header for Atmega 16U2: chân giao tiếp chuẩn ICSP.
• Atmega 16U2: chuyển từ USB sang Serial.
• General I/O: các ngõ vào ra của Digital.
• Atmega 328 MCU: vi điều khiển điều khiển hoạt động mạch.
• Power and Aux I/O: các ngõ điện áp vào ra. d Động cơ Servo Động cơ Servo giảm tốc RC được ứng dụng rộng rãi và đóng vai trò quan trọng trong việc chế tạo và vận hành mô hình, robot Bên trong một Servo có bốn thành phần chính gồm động cơ DC, hộp số, biến trở và mạch điều khiển được tích hợp sẳn driver điều khiển theo cơ chế phát xung- quay góc.
Có khả năng phản hồi nhanh hơn và mô-men xoắn lớn, giống như các RC servo khác Động cơ quay từ 0 dến 180 độ dựa trên chu kì hoạt động của sốngPWM được cung cấp cho chân tín hiệu của nó Động cơ này có bánh răng được làm bằng kim loại cho độ kéo mạnh và bền.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
Hình 3 5: Động cơ Servo giảm tốc RC
Về các kết nối của động cơ servo giảm tốc RC:
- Dây đỏ sẽ được kết nối với nguồn +5VDC
- Dây nâu sẽ được kết nối với GND
- Dây cam sẽ được nối tới chân PWM cảu Arduino.
- Tốc độ hoạt động: 0.17 giây/ 60 ° (4.8v), 0.14 giây/60 ° (6V)
- Mô-men xoắn: 9.4kg/ cm(4.8v), 11kg/ cm (6V)
- Chiều dài dây: 300mm Đề tài sử dụng động cơ servo MG996R với điện áp hoạt động 4.8V đến 7.2V, dòng điện khi không xử lý là 10mA, đòng điện không tải là 170mA, dòng điện tải tối đa là 1200mA Tải trong đề tài là nhai rỗng rất nhẹ có thể xem như không tải Do đó có thể sử dụng nguồn 5V với dòng 500mA của Arduino để cấp cho động cơ.
Hình 3.6: Sơ đồ kết nối Arduino với động cơ Servo
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
Chân VCC và GND của Servo MG996G được kết nói lần lượt với chân 5V và GND của Arduino Chân PWM input cảu MG996G sẽ kết nối với những chân PWM của Arduino (những chân có dấu xoay chiều) Trong đề tài chân 9 được kết nói với Servo thứ 1 và chân 10 được kết nối với Servo thứ hai. e Băng tải
Băng tải là một trong những thành phần quan trọng nhất của hệ thống Nó làm nền móng của cả mô hình, giúp mang sản phẩm tử vị trí xuất phát, thông qua buồng và đến vị trí mong muốn.
Cấu tạo của băng tải:
- Khung băng tải sử dung: nhôm định hình.
- Roller chủ động và bị động nhôm
- Băng tải sử dụng bạc đạn
Khung băng tải sử dụng bằng nhôm định hình có tác dụng cố định hình dạng của băng tải Là nền tảng để thiết lập và găn kết những chi tiết của băng tải. Khung chân nhôm giúp băng tải đứng vững trên mặt đất Bên cạnh đó chân băng tải giúp tạo ra khoảng trống để dây băng tải có thể chuyển động được và không bị ngăn cản bởi bể mặt.
Phương thức vận hành của băng tải trên đề tài:
Băng tải sử dụng động cơ một chiều DC (DC là từ viết tắt của “Direct current”) là loại động cơ chạy bằng nguồn điện áp DC- điện áp một chiều (khác với điện áp xoay chiều AC) Đầu ra của một động cơ thường gồm 2 dây (dây nguồn Vcc
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ và dây nối đất GND) DC motor là một động cơ một chiều với cơ năng quay liên tục.
Huấn luyện mạng YoloV4
3.3.1 Các khai niệm về mạng Yolo
YOLO là một kiến trúc mạng CNN được sử dụng trong phát hiện, nhận dạng và phân loại đối tượng Đối bài toán phân loại (Classification) chỉ có khả năng phân loại đối tượng bằng các dự đoán nhãn thì YOLO giải quyết bài toán phát hiện đối tượng (Object Detection), không chỉ có thể phát hiện nhiều đối tượng với nhiều nhãn khác nhau mà còn có thể xác định vị trí cụ thể của các đối tượng trong cùng một hình ảnh bằng các khung bao quanh đối tượng hình chữ nhật (Bounding Box).
YOLO có kiến trúc bao gồm phần trích xuất đặc trưng (Feature Extractor) và phát hiện đối tượng (Extra Layers) Phần trích xuất đặc trưng là các lớp convolution sẽ cho đầu ra là các bản đồ đặc trưng (Feature map) Phần phát hiện vật thể bao gồm các lớp kết nối đầy đủ (Fully connected layers) dùng để phát hiện, dự đoán nhãn và tọa độ Bounding Box của đối tượng trên các bản đồ đặc trưng (Feature map) của phần Feature Extractor Hình ảnh cần nhận dạng sẽ được đi qua khâu trích xuất đặc trưng để có đầu ra ra là bản đồ đặc trưng (Feature map) với các kích thước khác nhau Các bản đồ đặc trưng sau đó được đưa qua khâu phát hiện đối tượng (Extra Layers) để dự đoán ra các thông tin về tên đối tượng, vị trí và kích thước của Bounding Box bao quanh đối tượng.Dữ liệu đầu vào là một ảnh sau đó được chia thành mạng lưới có S×S ô hay còn được gọi grid size Thông thường grid size sẽ là 3×3, 7×7, 9×9,…
Yolo sẽ phân chia hình ảnh thành các ô vuông dạng lưới (grid) nhằm mục đích xác định tâm của vật thể cần xác định đang ở vị trí nào Nếu có mô hình mạng Yolo sẽ khoanh vùng đối tượng bằng hộp mốc (Anchor Box) Thuật toán sử dụng mạng nơ- ron đơn với đặc trưng có được từ các “Feature map” của các lớp tích chập để dự đoán các “Bounding box” ở mỗi ô và xác định loại đối tượng nào đang ở bên trong Sau cùng, ta sẽ có rất nhiều “Bounding box” được thuật toán đưa ra với các kích thước khác nhau Sử dụng thuật toán Non-Maxima Suppresstion ta có thể loại được các hầu hết các “bounding box” là miền bao của cùng một đối tượng với mức tương đồng thấp và giữ lại các “bounding box” có tỉ lệ khớp cao Đầu ra của YOLO khi dự đoán 1 Bounding Box là một vector gồm các thành phần: xác xuất dự báo có vật thể (P0) được định nghĩa Pr(Object)∗IOU(pred,truth), tọa độ tâm kích thước chiều rộng, độ cao của Bouding Box (x, y, w, h), các vector phân phối xác xuất dự báo của các classes Kích thước vector đầu ra được tính bằng (5 + số classes) ví dụ khi ta huấn luyện nhận dạng 3 đối tượng(classes) thì kích thước vector đầu ra dự đoán cho mỗi Bounding Box sẽ có kích thước là 8 Như vậy đầu ra của cả mô hình là một ma trận 3 chiều có kích thước S×S×B×(5+C) trong đó SxS là kích thước của các “Feature map” ở phần trích xuất đặc trưng, B là số lượng Bounding Box tương ứng là số Anchor Box và tại mỗi ô áp dụng 3 Anchor Box như vậy B = 3, C là số classes.
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 17
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
Mạng YoloV4 sử dụng CSPDarknet53 làm BackBone, SPP (Spatial pyramid pooling) và PAN (Path Aggregation Network) cho “Neck” và 3 Yolo cho
Hình 3.13: Kiến trúc mạng YoloV4 [7]
CSPDarknet53 – “Backbone” của YOLOv4 chịu trách nhiệm trích xuất các đặc điểm của hình ảnh đầu vào thông qua 5 Resblock body (C1-C5) Mạng chứa
53 lớp tích chập với kích thước 1×1 và 3×3 và mỗi lớp tích chập được kết nối với lớp chuẩn hóa hàng loạt (Batch normalization) và lớp kích hoạt Mish (Mish activation) Hơn nữa, tất cả các hàm kích hoạt trong YOLOv4 được thay thế bằng leaky-ReLU yêu cầu tính toán ít hơn [7 ].
Về “Neck” của YoloV4: SPPnet đã tăng trường tiếp nhận của mô hình một cách hiệu quả thông qua các lớp tổng hợp tối đa khác nhau với kích thucows 5, 9,
13 và Panet đã sử dụng các phương pháp tiếp cận từ trên xuống và từ dưới lên để trích xuất các tính năng nhiều lần.
“Head” của YoloV4 và 3 đầu của Yolo (Yolo Heads) có kích thước 19×19, 38×38 và 76×76 được sử dụng để kết hợp và tương tác với các bản đồ đặc trưng có tỷ lệ khác nhau nhằm phát triển các đối có kích thước khác nhau.
Loss function được sử dụng trong mô hình YoloV4 bao gồm ba phần: object localization offets loss , object confidence loss and object classification loss
3.3.2 Tập dữ liệu huấn luyện Yolo Để chuẩn bị cho quá trình huấn luyện mạng YoloV4, ta phải thu thập tập mẫu
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 18
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ của các nhãn của chai lỗi và không lỗi lưu vao thư mục data ví dụ như mất một chữ, ta sẽ chụp các góc ảnh của lỗi này và sẽ làm tương tự như với các lỗi khác. Để tăng độ chính xác khi đưa vào nhận diện chúng ta nên phân ra các trường hợp của đề tài để thu thập được những hình ảnh của các trường hợp đó để huấn luyện ảnh Và có thể thu thập đuọc càng nhiều ảnh của từng trường hợp càng tốt ví dụ với mỗi trường hợp trên em đã thu thập với một trăm với mỗi loại khác nhau Sau đó chúng ta sẽ phân ra hai loại nhãn để gán vào hình là “nguyên” và “lỗi”.
Hình 3.14: Chai nhãn nguyên Hình 3.15: Chai mất nhãn
Hình 3.16: Nhãn chai bị mất một chữ Hình 3.17: Nhãn chai mất hai chữ
Hình 3.18: Nhãn chai mất ba chữ Hình 3.19: Nhãn chai mất bốn chữ
Bảng 3.1 thống kê số lượng ảnh của tập dữ liệu đã lấy với mối kiểu mất nhãn, hệ thống thu thập được 150 ảnh mỗi loại, tổng có 800 ảnh sau đó chia ra 720 ảnh để huấn luyện và 180 ảnh để xác minh quá trình huấn luyện.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
Bảng 3.1: Thống kê số lượng ảnh của tập dữ liệu
Tên tập ảnh Số lượng ảnh cho huấn Số lượng ảnh xác minh luyện (80%) (20%)
Sau khi đã có các tập ảnh mẫu ta sẽ thực hiện quy trình huấn luyện mạng YoloV4 trực tuyến bằng cách sử dụng Google.colab, và các trọng số sau khi huấn luyện sẽ được lưu trên Google drive đã được kết nối trước đó.
Trước hết cần phải đưa tệp được lưu hình ảnh được gán nhãn cùng với tệp nhãn đã được gán theo từng hình ảnh bằng phần mềm LabellImg ta sẽ được
Sau khi mở giao diện ta bấm chọn vào “Open Dir” để mở thư mục ảnh cần gán nhãn, chọn “Open Save Dir” để sau khi gán thu mực này sẽ là nơi lưu nhãn thông thường sẽ lưu vào cùng thư mục với ảnh để thuận tiện cho việc huấn luyện Để có thể thao tác nhanh và tiết kiệm thời gian gán nhãn với số lượng ảnh lớn ta chọn vào “View” → “Auto save Mode” và phím “W” để “ Create RectBox”, “D” để chuyển sang hình tiếp theo vì đã chon “auto save mode” hình sau khi gán sẽ được tự động lưu vào thư đã chọn sẳn “Creat RectBox” là chọn vùng cần gán nhãn.
Hình 3.20: Gán nhãn lỗi cho phần nhãn trên chai
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 20
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.21: Hình ảnh và các nhãn sau khi gán nhãn
Sau khi gán nhãn cho các ảnh thu thập được từng nhãn của mỗi hình sẽ được lưu dưới dạng mạng trong file “ txt” Sau đó chúng ta sẽ bắt đầu quá trình huấn luyện hình ảnh theo phương pháp trực tuyến.
Hình 3.22: Các trọng số nhận được sau khi huấn luyện 3.4 Lưu đồ hệ thống
Quá trình hoạt động của hệ được xắp xếp theo trình tụ được xếp để xử lý từ đầu băng tải đến khi chai hoàn thành quá trình phân loại của hệ thống.
3.4.1 Lưu đồ chính của hệ thống
Chương trình toàn bộ bộ hệ thống được thực với sự kết nối của các chương trình con đã được trình bày bên dưới Quá trình khái báo biến và được các trọng số từ huấn luyện ảnh vào là không thể thiếu trong hệ thống Khởi tạo camera để bắt đầu quá trình nhận diện ảnh và sẽ theo dõi trực tiếp trên máy tính đang được kết nối.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
Sau khi hoàn tất nhận diện thì biến tam_n và tam_l sẽ lưu lại kết quả nhận diện trước đó để truyền sang Arduino giải quyết về phân loại Khi nhận được dữ liệu Arduino sẽ chờ phản hồi tín hiệu từ cảm biến để nhận biết được chai di chuyển đến gần với cần gạt cho truyền lệnh cho gạt theo thông tin nhận được từ lúc nhận diện Kết thúc quá trình phân loại là kết thúc quá trình của toàn hệ thống “Phân loại sản phẩm chai lỗi tem nhãn”.
Hình 3.23: Lưu đồ chính của hệ thống
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
3.4.2 Lưu đồ chương trình gán dữ liệu
Hình 3.24: Lưu đồ nhận diện ảnh
THI CÔNG MẠCH
Hoàn thiện kết nối phần cứng thiết bị
Sau khi hoàn thành các tính toán, thiết kế cần thiết ở chương 3 cũng như thu thập các hình ảnh cần thiết cho quá trình huấn luyện mô hình YoloV4 để thực hiện các yếu cầu thiết yếu của đề tài: nhận diện nhãn chai nước Bước tiếp theo của đề tài chúng ta sẽ thực hiện ở chương này sẽ là thi công và hoàn thiện mạch.
Dựa theo các thiết kế đã thực hiện ở phần trước, các linh kiện kết nối sẽ được liệt kê ở bảng dưới đây.
Bảng 4.1: Các linh kiện được lắp vào hệ thống
STT Tên Số lượng Chú thích
Hệ thống bao gốm nhiều thiết bị được kết nối với nhau thông qua các cổng kết đã được phân bố trước đó Khối xử lý trung tâm và khối vi điều khiển sẽ được kết nối với nhau thông qua cổng USB.
Hình 4.1: Mạch điều khiển băng tải
4.1.2 Lắp ráp và kiểm tra mạch
Sau khi hoàn thành quá trình thi công mạch và gắn các linh kiện lên mạch.
Ta sẽ tiến hành kiếm tra mạch bằng mắt thường để kiểm mối hàn và kết hợp đồng VOM để kiếm tra thông mạch, ngắn mạch các đường đồng, các chân linh kiện đảm bảo hoạt động bình thường.
Buồng camera đặt ở đầu băng tải để lấy hình ảnh cho máy tính thực hiện quá trình phân tích và nhận dạng Vì ở đây không sử dụng thêm nguồn ánh sáng hổ trợ nên buồng được thiết kết để nhận ánh sáng vừa đủ để có thể lấy được hình ảnh tốt nhất cho quá trình vận hành.
Sau quá trình phân tích và nhận diện ảnh, hai Servo ở phần cuối băng tải sẽ thực hiện gặt sản phẩm thông qua điều khiển của Arduino Tuỳ thuộc vào quá trình nhận dạng mà Servo sẽ làm nhiệm vụ của mình theo kết quả nhận được từ máy tính thông qua Arduino để đưa chai vào vị trí phù hợp.
Cần gạt kết nối Servo
Hình 4.3: Cần gạt dược gắn vào Servo
Tay gạt được gắn với Servo hoạt động sự thay đổi gốc quay của Servo Vì chiều cao của chai nước không quá thấp nên khi lắp đặt đặt ta nên để có khoảng cách với băng chuyền để không gian hoạt động của tay gạt được linh hoạt hơn và không bị vướng vào băng chuyền cản trở quá hình hoạt dộng cũng như gây hại cho Servo Quá trình chai đi tới vị trí tay gạt được tính toán hợp lý khi chai đi ra khỏi buồng để được gạt vào vị trí mong muốn.
Khoảng cách từ camera đên nắp chai sẽ là từ 15cm đến 17cm để được thu được hình ảnh với mức độ rõ nét nhất có thể Nhờ đó quá trình thực hiện hệ thống không xảy sai sót khi nhận diện.
Hình 4.4: Camera được lắp trong buồng 4.1.3 Thi công mô hình Để quá trình được hoạt động ổn đinh và ở đây chúng ta sẽ sử dụng băng chuyền có sản trên thị trường để quá trình vận hành không xảy ra vấn đề không đáng có như gãy, lỏng các khớp nói Thiết bị được lắp đặt vào băng chuyền cũng sẽ được chắc chắn hơn Hệ thống sẽ thực hiện quá trình quét nhãn chai nước và được gắn 2 máng nhôm để để đỡ vật khi gạt ta sẽ chọn băng chuyền có kích 90x20cm.
Bảng 4.2: Dự toán kinh phí thi công đề tài
STT Tên Số lượng Đơn giá(VND)
Hình 4.5: Băng chuyền được gắn máng nhôm
Khi hệ thống được kết nối với nguồn dây chuyền sẽ được hoạt động dựa trên động cơ DC đưa chai vào trong buồng Khi chai đến vị trí buồng camera sẽ nhận điện được ảnh và quét khung vào nắp chai (mục tiêu thực hiện của hệ thống) lúc đấy bộ xử lý trung tâm là máy tính sẽ bắt đầu công việc của mình Nhận được dữ liệu từ camera máy tính sẽ so sánh với dữ liệu được huấn luyện trước đó và gán nhãn để đánh giá phân loại nhãn Ví dụ như bên dưới
Hình 4.6: Nhận diện nhãn trên nắp chai nước
Hình 4.7: Chi tiết các thành phần trên hệ thống
Vị trí 1: Động cơ DC kéo băng tải đưa chai di chuyển đến buồn camera sau đó cần gạt.
Vị trí 2: Động cơ Servo gạt chai nước sau khi nhận diện từ camera.
Vị trí 3: Máng đỡ chai sau khi gạt.
Vị trí 4: Buồng camera để nhận diện ảnh
Vị trí 5: Cảm biến khoảng Cách
KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
KẾT QUẢ
5.1.1 Kết quả về mô hình
Hình 5.1: Mô hình băng chuyền hoàn chỉnh
Hình 5.1 là kết quả của quá trình thi công mô hình hệ thống và mỗi vị trí sẽ có nhiệm vụ riêng của nó.
• Vị trí 1: Buồng ảnh chứa camera để nhận diện khi chai được đưa vào.
• Vị trí 2: Cảm biến khoảng cách- khi cảm biến thay đổi tín hiệu từ mức cao thành mức thấp cảm biến sẽ chuyển tín hiệu về cho Arduino để để lệnh tới Servo.
• Vị trí 3: Servo– sẽ gạt sản phẩm khi nhận được tín hiệu truyền đến từ Arduino.
• Vị trí 4: tay gạt- khi servo thay đổi góc quay lên lệnh trên Arduino tay gạt sẽ đẩy sản phẩm.
• Vị trí 5: Máng- dùng để đỡ vật khi phân loại.
• Vị trí 6: Bộ điều khiển Arduino- sẽ truyền các tín hiệu điều khiển khi nhận được dữ liệu nhận từ bộ xử lý trung tâm Arduino sẽ lưu lại dữ liệu đến khi hoàn thành phân loại chai đang được đưa vào nhận diện.
Mô hình thiết kế gọn gàng, dễ vận chuyển và thẩm mỹ Buồng chứa camera thiết kế vừa đủ về độ sáng, chất lượng ảnh thu được, không bị nhiễu quá nhiều vẫn có thể nhận diện được Bề mặt băng tải đẹp, không chói loá cho hình ảnh thu được Tay gặt đặt hợp lý để gạt được chai nước.
CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
Hình 5.2: Phía sau sau băng tải
Hình 5.4: Hương di chuyển chai chai Hình 5.3: Phía trên băng tải
5.1.2 Kết quả về huấn luyện ảnh
Sau khi hoàn thành xong quá trình huấn luyện mô hình với 6000 lần với tập dữ liệu (800 ảnh) và kết quả cho thấy ở mồi trường ánh sáng đầy đủ hệ thống nhận diện với độ chính xác cao, thực tế trung bình độ nhận diện (precision) đạt 95.6% và độ mất mát (loss) là 2.6% Mô hình YoloV4 có thể duy độ nhạy phát hiện đối tượng cao và có thể đáp ứng được các yêu cầu về thời gian thực, tuy nhiên quá trình đòi hỏi cấu hình phần cứng của bộ xử lý trung tâm phải cao để để có thể tăng tốc độ xử lý cũng như chuẩn xác của nhận diện.
Từ những lần thực nghiệm nhận diện thực tế có thể thấy được khả năng nhận diện của hệ thống có thể bị ảnh hưởng của độ chói của ảnh sáng phản chiếu từ dây chuyền khi bị hắc ánh vào camera độ chính xác trung bình 93%, tốc độ xử lý trung bình từ 12- 16FPS ở độ phân giải ảnh 416x416 Hệ thống nhận diện ổn định và rất ít xuất hiện sự chồng chéo trong khung hình rút ngắn được thời gian trễ.
CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
Sau khi hoàn thành hệ thống về mô hình, em đã tiến hành thực nghiệm trên hệ thống Giao diện theo dõi hệ thống chạy ổn định, dễ dàng giám sát hoạt động xuyên suốt quá trình hoạt động của hệ thống Khả năng nhận diện hình ảnh của YoloV4 rất chính xác, thời gian tương đối nhanh Tuy nhiên, kết quả nhận diện được vẫn còn sài sót nhưng rất nhỏ không ảnh hưởng quá lớn đến quá trình vận hành.
Hình 5.5: Giao diện nhận diện nhãn nguyên
Hình 5.6: Giao diện nhận diện nhãn lỗi
Từ những lần sai sót em đã quyết thực nghiệm với 2 loại tệp ảnh với số lượng khác nhau để huấn luận để kiểm tra mức độ ảnh hưởng từ tệp ảnh được đưa huấn luyện.
Bảng 5.1: Tỉ lệ nhận dạng của hệ thống với 30 lần
Loại nhãn Số lượng ảnh Đúng Sai Tỉ lệ nhận dạng
Với lần thực nghiệm tiếp theo sẽ thực hiện quá trình nhận dạng cũng với 30 lần những số ảnh được huấn luyện sẽ được thay đổi từ mỗi kiểu nhãn sẽ tăng số lên từ 100 thành 150 hình cho mỗi loại kiểu ảnh.
CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
Bảng 5.2: Tỉ lệ nhận diện ảnh với 30 và tăng số ảnh huấn luyện
Loại nhãn Số lượng ảnh Đúng Sai Tỉ lệ nhận dạng
Như vây chúng ta thấy rõ được quá trình huấn luyện ảnh có mức ảnh hưởng rất lớn đó với hệ thống sử dụng xử lý ảnh để phân loại sản phẩm chai tem nhãn lỗi.
Số lượng ảnh huấn luyên càng lớn thì mức độ chính xác trong quá trình nhận diện càng lớn Và với lần thực nghiệm kế tiếp sẽ thay đổi quá trình nhận diện của băng chuyền là thay đổi khoảng thời gian giữa hai lần nhận diện liên tiếp của hệ thống.
Khoảng cách lần 1 và lần 2 là 1 giấy thì hầu như chai đưa vào sau sẽ nhận diện và lưu lại vào biến Nếu lần 1 là nhãn đúng và lần 2 là nhãn lỗi thì biến được lưu vào là biến lỗi dẫn đến tay gạt nhãn lỗi hoạt động khi nhận được chai thông qua cảm biến. Những lần thực nghiệm về thời gian tương tự như vậy về tăng lần lượt khoảng cách thời gian lên từ 1 giây, 1.5 giây, 2, giây , cho đến khoảng thời cách nhau khoảng từ 2.5 giây trở lên là sẽ xuất hiện sự thay đổi về độ chính xác Độ chính xác thay đổi tăng dần cho đến khi khoảng cách là 3.5 giấy thì việc phân loại chính xác Khoảng cách 3.5 giây là khoảng thời gian chai bắt đâu nhận diện cho đến khi chai đi đên cảm biến thì lúc đó chai thứ 2 sẽ bắt đầu được đưa vào nhận diện.
Sau khi hoàn thành về quá trình huấn luyện ảnh em tiến quá trình vận hành hệ thống nhận diện nhãn chai của hệ thông với từng quá trình được mô tả theo các hình dưới đây:
Hình 5.7: Chai được đưa vào buồng Camera
CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
Hình 5.8: Chai được đưa nhận diện của Camera
Hình 5.9: Chai đi đến cảm biến Hình 5.10: Chai đi đến vị trí máng
Hình 5.11: Chai được gạt xuống máng
Quá trình hệ thông vận hành được thể hiện từ hình 5.3- 5.7 cụ thể là:
• Sau khi cấp nguồn cho toàn hệ thống, ta sẽ đặt chai vào vị trí đầu băng tải để dây chuyền di chuyển chai đến buồng camera (hình 5.3).
• Khi chai đến vị trí quét của camera (hình 5.4) quá trình nhận diện để biết được nhãn lỗi hay nguyên sẽ được hiện thị trên màn hình máy tính, kết quả nhận diện này sẽ được gửi qua Arduino.
• Khi chai đến vị trí của cảm biến (hình 5.5) cảm biến sẽ cho báo choArduino để truyền tín hiệu đến cho servo mở cần gạt (hình 5.6) Sau khoảng thời
CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ gian chai đi từ cảm biến đến vị trí để gạt servo sẽ thay đổi góc quay để gạt chai vào đúng vị trí mong muốn (Hình 5.7) Đối với quá trình thực hiện vận hành như trên (với từng chai) hệ thống nhận diện nhân và phân loại đúng như yêu cầu đạt ra trước đó.