TỔNG QUAN
Giới thiệu
Ngày nay, sự phát triển của khoa học công nghệ đã giúp tự động hóa dây chuyền sản xuất trong các nhà máy, giảm thiểu sức lao động và tiết kiệm nhân công, đồng thời nâng cao hiệu quả sản xuất Ngành công nghiệp yêu cầu tính chính xác và hiệu quả để đáp ứng xu hướng tự động hóa, đặc biệt trong lĩnh vực đóng gói sản phẩm và điện, điện tử Để đảm bảo đầu ra chất lượng và tiết kiệm nhân lực trong việc kiểm tra thành phẩm, công nghệ xử lý ảnh đã ra đời và không ngừng phát triển, hứa hẹn mang lại tốc độ và độ chính xác cao hơn trong quy trình sản xuất.
Xử lý ảnh là một công nghệ quan trọng trong cuộc sống, với lịch sử phát triển lâu dài và ứng dụng rộng rãi trong các lĩnh vực dân sự, quân sự, y tế và nhiều lĩnh vực khác Ứng dụng đầu tiên của xử lý ảnh được ghi nhận là việc nâng cao chất lượng hình ảnh truyền từ London đến New York vào đầu thế kỷ 20 Từ nửa sau thế kỷ 20 đến nay, các phương pháp xử lý và nâng cao chất lượng ảnh đã không ngừng được cải tiến Tuy nhiên, chỉ trong khoảng một thập niên gần đây, kiến thức về xử lý ảnh mới được đưa vào giảng dạy tại một số trường đại học ở Việt Nam, và hiện vẫn còn hạn chế ở các thành phố lớn.
Trong những năm gần đây, việc ứng dụng xử lý ảnh tại Việt Nam đã được triển khai trong nhiều lĩnh vực như nhận dạng biển số xe, đọc mã vạch, kiểm tra chất lượng sản phẩm và lỗi thiết bị Tuy nhiên, ứng dụng này vẫn chưa tối ưu và còn hạn chế, cho thấy tiềm năng phát triển mạnh mẽ trong tương lai nếu được đầu tư và nghiên cứu nhiều hơn Hiện nay, nhiều đề tài nghiên cứu về phân loại sản phẩm bằng thị giác máy đã xuất hiện, 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” của sinh viên Đạ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 Một ví dụ khác là đề 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” của sinh viên Nguyễn Văn Tài và Nguyễn Minh Đức, sử dụng vi điều khiển STM32F103C8T6 và thư viện OpenCV viết bằng C++ để phân loại đai ốc bị sai kích thước và méo.
Xử lý ảnh trong phân loại sản phẩm đang được nghiên cứu nhiều, đặc biệt trong bối cảnh các dây chuyền sản xuất tự động Vấn đề sản phẩm lỗi vẫn tồn tại và cần có giải pháp hiệu quả Phân loại sản phẩm bị lỗi tự động không chỉ tiết kiệm nhân lực mà còn đả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 Do đó, tôi đã quyết định tìm hiểu và chọn đề tài thực tiễn phù hợp với ngành sản xuất: “Thiết kế và thi công hệ thống phân loại sản phẩm.”
Báo cáo đồ án tốt nghiệp 2 trình bày về hệ thống dây chuyền phân loại sản phẩm chai bia bị lỗi tem nhãn, sử dụng phương pháp xử lý ảnh kết hợp với phần mềm của Google Hệ thống này nhằm nâng cao hiệu quả kiểm tra chất lượng sản phẩm, đảm bảo rằng chỉ những chai bia đạt tiêu chuẩn mới được đưa ra thị trường Việc ứng dụng công nghệ xử lý ảnh không chỉ giúp tiết kiệm thời gian mà còn giảm thiểu sai sót trong quá trình phân loại.
Mục tiêu đề tài
Hệ thống phân loại sản phẩm lỗi tem nhãn được thiết kế và thi công dựa trên công nghệ YoloV4, cho phép huấn luyện và nhận diện nhãn chai hiệu quả Dữ liệu từ camera được thu thập thông qua máy tính và được xử lý bởi vi điều khiển Arduino Uno R3, giúp điều khiển các thiết bị như động cơ DC và động cơ Servo một cách chính xác.
Giới hạn đề tài
Đề tài này tập trung vào việc phân loại các chai bia có lỗi dán tem nhãn, đặc biệt là những chai bị dán lệch nhãn Chúng tôi không xem xét các chai chưa có tem nhãn Hình ảnh chụp các chai bia cần đảm bảo đủ ánh sáng để thể hiện rõ lỗi dán nhãn.
Nội dung nghiên cứu
Trong Khóa luận tốt nghiệp về 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 vào việc giải quyết và hoàn thành các nội dung chính như phân tích quy trình phân loại, thiết kế hệ thống tự động hóa và đánh giá hiệu quả của giải pháp.
- 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
Sự phát triển tích cực trong cuộc sống và quy trình sản xuất đã thúc đẩy nghiên cứu mới trong khoa học và kỹ thuật Xử lý ảnh đóng vai trò quan trọng trong hầu hết các ứng dụng trên băng chuyền nhà máy, đặc biệt trong khâu phân loại sản phẩm Công nghệ này giúp phân tích cấu tạo bên ngoài từ hình ảnh thu được từ camera, cho phép xử lý thông tin chính xác dựa trên dữ liệu đã được phân tích và sao chép trước đó Điều này dẫn đến xu hướng công nghệ hóa và hiện đại hóa trong sản xuất.
Mô hình này sử dụng board Arduino Uno R3 làm bộ điều khiển trung tâm, kết hợp với camera để thu thập hình ảnh từ băng chuyền Hình ảnh được gửi về máy tính để xử lý thông tin, sau đó truyền lại cho Arduino nhằm điều khiển servo Quá trình này giúp phân loại sản phẩm dựa trên hình ảnh đã được học trước đó, đảm bảo độ chính xác trong việc phân loại.
Phân loại sản phẩm
Phương pháp phân loại thủ công trước đây yêu cầu từ một đến hai nhân công để kiểm tra chất lượng sản phẩm, dẫn đến quy trình vận hành phức tạp và phụ thuộc vào độ chính xác của con người Trung bình, người kiểm tra chỉ có thể nhận diện sản phẩm lỗi qua quan sát bằng mắt thường, thường mất từ một đến hai giấy để phân loại Tuy nhiên, việc áp dụng công nghệ tự động hóa trong xử lý thông tin không chỉ giúp tiết kiệm nhân công mà còn nâng cao tốc độ và hiệu quả sản xuất.
Thiết kế mô hình cho hệ thống phân loại sản phẩm phụ thuộc vào loại sản phẩm cần phân loại Trong nghiên cứu "Ứ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 và Phan Thanh Phong năm 2019, các sản phẩm được phân loại theo màu sắc đỏ, xanh, vàng bằng ngôn ngữ Python và thư viện OpenCV, thực hiện trên Kit Raspberry và Kit Arduino Uno R3 Nghiên cứu sử dụng đặc điểm riêng biệt của từng màu sắc để nhận dạng và phân loại sản phẩm hiệu quả.
Ứ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 và Đặng Hoài Vũ sử dụng công nghệ máy tính để phân loại sản phẩm theo hình dạng Hệ thống được điều khiển bằng Kit Arduino Uno và lập trình bằng ngôn ngữ Python Sau khi camera xử lý hình ảnh và gửi tín hiệu, động cơ Servo sẽ thực hiện việc gạt sản phẩm vào vị trí thích hợp.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 5
Để xử lý ảnh sau khi thu thập hình ảnh từ camera, cần sử dụng thư viện phân tích và xử lý dữ liệu hình ảnh Trong nghiên cứu "Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm", tác giả đã áp dụng thư viện OpenCV để nhận dạng màu sắc, sử dụng không gian màu HSV để phân biệt các màu sắc Hàm cv2.cvtColor được dùng để chuyển đổi giữa các hệ màu, cụ thể là từ RGB sang HSV Sau đó, các giá trị HSV của màu sắc mong muốn sẽ được so sánh để xác định màu sắc của ảnh đang xét, với cú pháp hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV).
OpenCV cho phép chúng ta áp dụng công nghệ nhận diện hình ảnh vào các dự án của mình Bằng cách so sánh hình ảnh đã được huấn luyện trước với hình ảnh thu thập từ camera, chúng ta có thể phát hiện các nhãn chai có lỗi một cách hiệu quả.
OpenCV (Open Computer Vision) là một thư viện mã nguồn mở hàng đầu trong lĩnh vực thị giác máy tính, machine learning và xử lý ảnh Được phát triển bằng C/C++, OpenCV mang lại tốc độ tính toán nhanh chóng, phù hợp cho các ứng dụng thời gian thực Thư viện này hỗ trợ nhiều ngôn ngữ lập trình như C/C++, Python và Java, đồng thời tương thích với các hệ điều hành như Windows, Linux, macOS, Android và iOS Với hơn 47 nghìn người dùng và hơn 6 triệu lượt tải xuống, OpenCV đang ngày càng mở rộng cộng đồng của mình.
OpenCV có rất nhiều ứng dụng như:
• Phục hổi hình ảnh/video
OpenCV đang được phát triển và cập nhật liên tục, trở thành lựa chọn lý tưởng cho các ứng dụng xử lý hình ảnh đơn giản nhờ vào tính dễ sử dụng và sự hỗ trợ mạnh mẽ từ cộng đồng.
Mô hình mạng huấn luyện ảnh
Huấn luyện ảnh là quá trình thu thập tập hình ảnh của sản phẩm trên mô hình thực tế để đào tạo các mô hình mạng Yolo, viết tắt của "you only look once", nổi bật với hiệu quả và tốc độ xử lý cao trong các bài toán nhận diện Nó có khả năng nhận diện nhiều nhãn khác nhau và xác định vị trí trong khung hình Mặc dù Yolo không phải là mô hình chính xác nhất, nhưng chắc chắn là mô hình nhanh nhất hiện có.
YOLO là một mô hình mạng CNN mạnh mẽ được sử dụng để phát hiện, nhận dạng và phân loại đối tượng Mô hình này được xây dựng từ sự kết hợp giữa các lớp tích chập (convolutional layer) và các lớp kết nối (connected layers), cho phép xử lý hình ảnh một cách hiệu quả và nhanh chóng.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Báo cáo đồ án tốt nghiệp 6 layers sử dụng các convolution layers để trích xuất đặc tính từ ảnh Phương pháp chính dựa trên một mạng neural network duy nhất, được huấn luyện theo mô hình end-to-end Mô hình nhận đầu vào là một bức ảnh và dự đoán bounding box cùng nhãn lớp cho mỗi bounding box Yolo được áp dụng cho các bài toán nhận diện đối tượng, cho phép nhận diện vật thể ngay cả khi chúng di chuyển trong khung hình Trong đề tài "nhận biết nhãn chai bị lỗi", hình ảnh của chai trên băng truyền sẽ được lưu lại với tốc độ cao và xử lý theo yêu cầu 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).
Giới thiệu phần cứng
Hiện nay, Arduino đã trở thành một công cụ phổ biến tại Việt Nam, được sử dụng rộng rãi bởi học sinh, sinh viên và người đi làm Nhiều dự án lớn nhỏ được thực hiện nhanh chóng nhờ vào việc chia sẻ mã nguồn mở trên các diễn đàn trong và ngoài nước Thị trường hiện có nhiều phiên bản Arduino như Arduino Uno R3, Arduino Mega2560, và Arduino Nano Các đề tài nghiên cứu, như đề tài [2], đã áp dụng Arduino làm bộ xử lý trung tâm để điều khiển các thiết bị ngoại vi như động cơ DC, Servo và màn hình LCD, đồng thời kết nối với Raspberry Pi qua giao thức UART Dựa trên yêu cầu của hệ thống và tham khảo các đề tài trước, tôi đã chọn board Arduino Uno R3 vì tính linh hoạt và giá thành hợp lý.
Arduino Uno R3 là một bo mạch vi điều khiển được phát triển bởi Arduino.cc, thuộc nền tảng điện tử mã nguồn mở, chủ yếu dựa trên vi điều khiển AVR Atmega328P.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 7
Arduino kết nối với máy tính qua USB để giao tiếp với phần mềm Arduino IDE, tương thích với Windows, Mac và Linux, trong đó Windows được ưa chuộng hơn Để lập trình hệ thống điều khiển trong IDE, cần sử dụng ngôn ngữ C hoặc C++ Qua USB, người dùng có thể cấp nguồn cho vi điều khiển hoặc sử dụng nguồn điện ngoài.
Quá trình phát triển sản xuất công nghiệp gắn liền với sự tiến bộ của hệ thống điều khiển Công nghệ hiện đại yêu cầu các hệ thống điều khiển phải tinh vi, chính xác và nhanh nhạy hơn để tối ưu hóa hiệu quả sản xuất Do đó, các nhà máy tự động đã chuyển từ máy móc lạc hậu sang sử dụng Robot và CNC, dẫn đến sự gia tăng nhu cầu sử dụng Servo trong điều khiển tự động Nhiều nghiên cứu trước đây đã áp dụng Servo trong việc gạt sản phẩm theo màu sắc, phân loại trái cây và đai ốc Vì vậy, Servo MG996R là lựa chọn an toàn và phù hợp cho đề tài phân loại chai bị lỗi tem nhãn.
UART (Universal Asynchronous Receiver-Transmitter) is one of the most widely used traditional communication protocols for asynchronous serial data transmission In the 2019 study "Image Processing Applications in Classification Systems" by Nguyễn Hiền Minh and Phan Thanh Phong, UART plays a crucial role in facilitating data exchange between devices.
Raspberry Pi và Arduino giao tiếp dữ liệu qua giao thức UART (Serial) thông qua hai chân Rx và Tx Raspberry Pi thực hiện xử lý ảnh và gửi kết quả nhận dạng dưới dạng chuỗi ký tự đến Arduino Cụ thể, trong đề tài này, chuỗi ký tự gửi tới Arduino cho biết sản phẩm mà Raspberry Pi nhận diện là màu đỏ.
Giao tiếp giữa máy tính và Arduino tương tự như nhiều Raspberry Pi, được thực hiện qua giao tiếp UART Kết nối này hoàn toàn thông qua cổng USB của máy tính.
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" nhằm mục đích phân loại nhãn chai thông qua việc sử dụng công nghệ xử lý ảnh để phân tích dữ liệu từ camera Hệ thống được phát triển bằng ngôn ngữ Python, kết hợp với thư viện OpenCV để hỗ trợ xử lý ảnh Bộ xử lý trung tâm là máy tính, thực hiện nhiệm vụ nhận và xử lý hình ảnh, trong khi khối điều khiển sử dụng Arduino Uno để quản lý các thiết bị ngoại vi như động cơ băng tải và servo Đề tài cho phép giám sát và điều khiển trực tiếp trên máy tính trong suốt quá trình nhận diện và phân loại sản phẩm.
Tính toán và thiết kế phần cứng
3.2.1 Thiết kế sơ đồ khối hệ thống
Hệ thống bao gồm các khối chức năng quan trọng như khối nguồn, khối vi điều khiển, băng chuyền, xử lý ảnh, khối camera và khối thu thập ảnh, được mô tả chi tiết trong hình 3.1.
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Ế
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 9 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
Webcam Logitech C310 là sự lựa chọn lý tưởng cho sinh viên nhờ giá thành phải chăng và tính năng sử dụng đơn giản Thiết bị này còn hỗ trợ tự động điều chỉnh ánh sáng, đáp ứng nhu cầu chụp sản phẩm chính xác cho các đồ á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 và linh hoạt được lắp đặt ở vị trí tối ưu giúp nhận diện sản phẩm rõ ràng và có góc nhìn rộng, đủ để sản phẩm đi ngang qua Việc xác định vị trí camera là yếu tố quan trọng quyết định hiệu quả trong xử lý ảnh nhận diện vật thể.
Việc lắp đặt camera chính giữa buồng mang lại cái nhìn tổng quát cho toàn bộ hệ thống, nhưng góc nhìn quá rộng có thể gây ra nhiều sai số trong xử lý ảnh Nguyên nhân chủ yếu là do tiêu cự của camera và điều kiện ánh sáng trong buồng Do đó, cần lựa chọn vị trí lắp đặt camera phù hợp với điều kiện ánh sáng và loại camera sử dụng, nhằm đảm bảo chất lượng hình ảnh tốt nhất trong quá trình vận hành và xử lý Việc xác định vị trí tối ưu thường cần qua nhiều lần thử nghiệm để đạt được kết quả phù hợp nhất.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 10 b Máy tính
Máy tính là bộ xử lý chính trong hệ thống, nơi tất cả chương trình xử lý, điều khiển và hình ảnh được hiển thị Camera kết nối qua cổng USB để thu nhận vật thể, sau đó tiến hành xử lý và gửi mệnh lệnh điều khiển đến khối điều khiển phần cứng Arduino Bộ điều khiển này sẽ điều khiển relay và servo, và Arduino sẽ phản hồi lại 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ó khả năng cung cấp dòng điện lên đến 500mA, tích hợp chân điều khiển PWM và ngõ ra dạng số, cho phép xử lý tín hiệu hiệu quả, rất phù hợp cho các dự án kỹ thuật.
Arduino là một board mạch vi xử lý được phát triển tại Ý vào năm 2005, bao gồm một vi điều khiển AVR và nhiều linh kiện khác, giúp dễ dàng lập trình và xây dựng dự án Arduino Uno R3 là dòng mạch cơ bản, lý tưởng cho người mới bắt đầu, sử dụng chip Atmega328 8 bit, hoạt động với điện áp 5VDC qua cáp USB, tần số 16MHz và tiêu thụ dòng khoảng 30mA, với 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, EEPROM 1KB
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 11
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 được sử dụng để truyền dữ liệu và xuất chương trình giữa Arduino và máy tính, đồng thời cung cấp nguồn điệ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
Các ngõ điện áp vào ra, bao gồm Power và Aux I/O, là phần quan trọng trong hệ thống điều khiển Động cơ Servo giảm tốc RC được sử dụng phổ biến trong chế tạo và vận hành mô hình cũng như robot Bên trong một Servo có bốn thành phần chính: động cơ DC, hộp số, biến trở và mạch điều khiển, trong đó mạch điều khiển tích hợp driver theo cơ chế phát xung- quay góc.
Động cơ servo RC này nổi bật với khả năng phản hồi nhanh và mô-men xoắn lớn Nó có thể quay từ 0 đến 180 độ dựa trên chu kỳ hoạt động của tín hiệu PWM được cung cấp Đặc biệt, động cơ được trang bị bánh răng kim loại, mang lại độ bền và khả năng kéo mạnh mẽ.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 12
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 là 300mm, sử dụng động cơ servo MG996R với điện áp hoạt động từ 4.8V đến 7.2V Dòng điện không tải là 10mA, trong khi dòng điện không tải đạt 170mA và 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ể coi 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Ế
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 13
Chân VCC và GND của Servo MG996G được kết nối với chân 5V và GND của Arduino Chân PWM input của MG996G sẽ kết nối với các chân PWM trên Arduino, cụ thể là chân 9 cho Servo thứ nhất và chân 10 cho Servo thứ hai.
Băng tải đóng vai trò quan trọng trong hệ thống, là nền tảng cho toàn bộ mô hình Nó giúp vận chuyển sản phẩm từ vị trí xuất phát, qua buồng và đến vị trí đích 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 bằng nhôm định hình giữ vai trò quan trọng trong việc cố định hình dạng của băng tải, tạo nền tảng cho việc thiết lập và kết nối các chi tiết Chân nhôm giúp băng tải đứng vững trên mặt đất, đồng thời tạo khoảng trống cho dây băng tải chuyển động một cách linh hoạt mà không bị cản trở 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 (Direct Current) hoạt động bằng nguồn điện áp một chiều, khác với điện áp xoay chiều AC Động cơ này thường có đầu ra gồm hai dây: dây nguồn Vcc.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 14 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 nổi bật trong lĩnh vực phát hiện, nhận dạng và phân loại đối tượng Khác với bài toán phân loại chỉ dự đoán nhãn, YOLO giải quyết hiệu quả bài toán phát hiện đối tượng, cho phép nhận diện nhiều đối tượng với các nhãn khác nhau và xác định vị trí chính xác của chúng trong cùng một hình ảnh thông qua các khung bao quanh hình chữ nhật (Bounding Box).
YOLO có kiến trúc gồm hai phần chính: phần trích xuất đặc trưng và phần phát hiện đối tượng Phần trích xuất đặc trưng sử dụng các lớp convolution để tạo ra bản đồ đặc trưng, trong khi phần phát hiện đối tượng bao gồm các lớp kết nối đầy đủ nhằm dự đoán nhãn và tọa độ Bounding Box của đối tượng Hình ảnh cần nhận dạng được đưa qua khâu trích xuất đặc trưng để tạo ra các bản đồ đặc trưng với kích thước khác nhau, sau đó được xử lý qua phần phát hiện đối tượng để xác định tên, vị trí và kích thước của Bounding Box Dữ liệu đầu vào là một ảnh được chia thành mạng lưới S×S ô, thường là 3×3, 7×7, hoặc 9×9.
YOLO phân chia hình ảnh thành lưới ô vuông để xác định vị trí của các vật thể cần nhận diện Mô hình sử dụng hộp mốc (Anchor Box) để khoanh vùng đối tượng, dựa trên mạng nơ-ron đơn và các “Feature map” từ các lớp tích chập để dự đoán “Bounding box” cho mỗi ô và xác định loại đối tượng bên trong Sau khi thuật toán đưa ra nhiều “Bounding box” với kích thước khác nhau, thuật toán Non-Maxima Suppression được áp dụng để loại bỏ các “Bounding box” trùng lặp và giữ lại những hộp có tỉ lệ khớp cao Đầu ra của YOLO cho một “Bounding Box” là một vector bao gồm xác suất có vật thể (P0), tọa độ tâm và kích thước của hộp (x, y, w, h), cùng với xác suất phân phối cho các lớp Kích thước vector đầu ra là (5 + số lớp), ví dụ, với 3 lớp, kích thước vector là 8 Cuối cùng, đầu ra của mô hình là ma trận 3 chiều có kích thước S×S×B×(5+C), trong đó S×S là kích thước của “Feature map”, B là số lượng “Bounding Box” tương ứng với số Anchor Box, và C là số lớp.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 18
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 “Head” [L1]
Hình 3.13: Kiến trúc mạng YoloV4 [7]
CSPDarknet53 là "Backbone" của YOLOv4, có nhiệm vụ trích xuất đặc điểm từ hình ảnh đầu vào thông qua 5 Resblock body (C1-C5) Mạng này bao gồm 53 lớp tích chập với kích thước 1×1 và 3×3, mỗi lớ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 Đặc biệt, tất cả các hàm kích hoạt trong YOLOv4 đã được thay thế bằng leaky-ReLU, giúp giảm thiểu yêu cầu tính toán.
Neck của YoloV4 sử dụng SPPnet để nâng cao khả năng tiếp nhận của mô hình, hiệu quả thông qua việc áp dụng các lớp tổng hợp tối đa với các kích thước 5 và 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
"Đầu" của YoloV4 cùng với 3 đầu của Yolo (Yolo Heads) có kích thước 19×19, 38×38 và 76×76, được thiết kế để 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 khả năng nhận diện các đối tượng có kích thước đa dạng.
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
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
Trong báo cáo đồ án tốt nghiệp 19, chúng tôi đã lưu trữ các nhãn của chai lỗi và không lỗi vào thư mục dữ liệu, ví dụ như trường hợp mất một chữ Để tăng độ chính xác trong nhận diện, chúng tôi phân loại các trường hợp của đề tài và thu thập hình ảnh cho từng trường hợp để huấn luyện mô hình Chúng tôi đã thu thập một trăm hình ảnh cho mỗi loại khác nhau Cuối cùng, các nhãn được phân loại thành hai loại: “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 cung cấp thống kê về số lượng ảnh trong tập dữ liệu với các kiểu mất nhãn khác nhau Hệ thống đã thu thập được 150 ảnh cho mỗi loại, tổng cộng có 800 ảnh Trong đó, 720 ảnh được sử dụng để 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ÁO CÁO ĐỒ ÁN TỐT NGHIỆP 20
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 luyện (80%)
Số lượng ảnh xác minh
Sau khi chuẩn bị các tập ảnh mẫu, chúng ta sẽ tiến hành huấn luyện mạng YoloV4 trực tuyến thông qua Google Colab Các trọng số sau khi hoàn tất quá trình huấn luyện sẽ được lưu trữ trên Google Drive đã được kết nối trước đó.
Trước tiên, cần sử dụng phần mềm LabelImg để tải tệp hình ảnh đã được gán nhãn cùng với tệp nhãn tương ứng cho từng hình ảnh.
Để gán nhãn ảnh hiệu quả, đầu tiên mở giao diện và chọn “Open Dir” để truy cập thư mục ảnh cần gán nhãn Tiếp theo, chọn “Open Save Dir” để xác định nơi lưu nhãn, thường là cùng thư mục với ảnh để thuận tiện cho việc huấn luyện Để tiết kiệm thời gian khi gán nhãn cho số lượng lớn ảnh, hãy vào “View” và bật “Auto save Mode” Sử dụng phím “W” để “Create RectBox” và “D” để chuyển sang hình tiếp theo; với chế độ tự động lưu, ảnh sau khi gán nhãn sẽ được lưu vào thư mục đã chọn “Create RectBox” cho phép bạn 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
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 21
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, từng nhãn sẽ được lưu dưới dạng mạng trong file ".txt" Tiếp theo, chúng ta sẽ tiến hành 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ệ thống được tổ chức theo trình tự từ đầu băng tải cho đến khi chai hoàn thành quá trình phân loại.
3.4.1 Lưu đồ chính của hệ thống
Chương trình hệ thống được thực hiện thông qua việc kết nối các chương trình con Quá trình khái báo biến và trọng số từ huấn luyện ảnh là yếu tố quan trọng trong hệ thống Camera được khởi tạo để bắt đầu nhận diện ảnh, đồng thời theo dõi trực tiếp trên máy tính kết nối.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 22
Sau khi hoàn tất quá trình nhận diện, biến tam_n và tam_l sẽ lưu lại kết quả để truyền cho Arduino nhằm phân loại Arduino sẽ chờ tín hiệu phản hồi từ cảm biến để nhận biết chai di chuyển gần cần gạt, từ đó thực hiện lệnh gạt dựa trên thông tin nhận diện Quá trình phân loại kết thúc khi hệ thống “Phân loại sản phẩm chai lỗi tem nhãn” hoàn tất.
Hình 3.23: Lưu đồ chính của hệ thống
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 23
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 và thiết kế ở chương 3, cũng như thu thập hình ảnh cần thiết cho việc huấn luyện mô hình YoloV4 nhằm nhận diện nhãn chai nước, bước tiếp theo của đề tài sẽ là thi công và hoàn thiện mạch trong chương này.
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ị kết nối qua các cổng đã được phân bố trước Khối xử lý trung tâm và khối vi điều khiển được kết nối thông qua cổng USB.
Hình 4.1: Mạch điều khiển băng tải
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 28
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
Chúng tôi sẽ thực hiện kiểm tra mạch bằng mắt thường để đánh giá chất lượng mối hàn và kết nối Đồng thời, sẽ sử dụng VOM để kiểm tra thông mạch và ngắn mạch của các đường đồng cũng như các chân linh kiện, đảm bảo rằng tất cả hoạt động bình thường.
Buồng camera được lắp đặt ở đầu băng tải nhằm thu thập hình ảnh cho máy tính thực hiện phân tích và nhận dạng Thiết kế của buồng camera cho phép thu nhận ánh sáng tự nhiên một cách tối ưu, đảm bảo chất lượng hình ảnh tốt nhất mà không cần nguồn ánh sáng hỗ trợ thêm.
Sau khi phân tích và nhận diện ảnh, hai Servo ở cuối băng tải sẽ gặt sản phẩm dưới sự điều khiển của Arduino Tùy thuộc vào kết quả nhận dạng, Servo sẽ thực hiện nhiệm vụ đưa chai vào vị trí phù hợp theo chỉ dẫn từ máy tính thông qua Arduino.
Hình 4.3: Cần gạt dược gắn vào Servo
Cần gạt kết nối Servo
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 29
Tay gạt được kết nối với Servo, giúp điều chỉnh sự thay đổi gốc quay của Servo Để đảm bảo hoạt động linh hoạt và không bị cản trở bởi băng chuyền, cần lắp đặt tay gạt với khoảng cách hợp lý so với chiều cao của chai nước Quá trình di chuyển của chai đến vị trí tay gạt được tính toán kỹ lưỡng, đảm bảo chai ra khỏi buồng sẽ được gạt vào vị trí mong muốn một cách hiệu quả.
Khoảng cách lý tưởng từ camera đến nắp chai là từ 15cm đến 17cm, giúp thu được hình ảnh rõ nét nhất Điều này đảm bảo quá trình nhận diện trong hệ thống diễn ra chính xác và không xảy ra sai sót.
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)
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 30
Hình 4.5: Băng chuyền được gắn máng nhôm
Hệ thống hoạt động khi được kết nối với nguồn điện, sử dụng động cơ DC để đưa chai vào buồng Khi chai đến vị trí, camera sẽ nhận diện và quét khung vào nắp chai, từ đó bộ xử lý trung tâm (máy tính) sẽ bắt đầu công việc Máy tính nhận dữ liệu từ camera, so sánh với dữ liệu đã được huấn luyện trước và tiến hành phân loại nhãn cho chai.
Hình 4.6: Nhận diện nhãn trên nắp chai nước
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 31
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
Cảm biến khoảng cách sẽ chuyển đổi tín hiệu từ mức cao sang mức thấp, gửi thông tin này về cho Arduino để điều khiển 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
Bộ điều khiển Arduino sẽ truyền tín hiệu điều khiển khi nhận dữ liệu từ bộ xử lý trung tâm, đồng thời lưu giữ thông tin cho đến khi hoàn thành việc phân loại chai được đưa vào nhận diện.
Mô hình thiết kế gọn gàng, dễ dàng vận chuyển và có tính thẩm mỹ cao Buồng chứa camera được thiết kế với độ sáng vừa đủ, đảm bảo chất lượng ảnh thu được không bị nhiễu quá nhiều, vẫn cho phép nhận diện chính xác Bề mặt băng tải có tính thẩm mỹ, không chói loá, giúp cải thiện chất lượng hình ảnh Tay gặt được đặt hợp lý, thuận tiện cho việc gạt chai nước.
CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 34
Hình 5.2: Phía sau sau băng tải
Hình 5.3: Phía trên băng tải Hình 5.4: Hương di chuyển chai chai
5.1.2 Kết quả về huấn luyện ảnh
Sau khi hoàn thành quá trình huấn luyện mô hình YoloV4 với 6000 lần trên tập dữ liệu 800 ảnh, hệ thống đạt độ chính xác cao trong điều kiện ánh sáng đầy đủ, với độ nhận diện trung bình đạt 95.6% và độ mất mát chỉ 2.6% Mô hình này có khả năng phát hiện đối tượng nhạy bén và đáp ứng yêu cầu thời gian thực, tuy nhiên, để tối ưu hóa tốc độ xử lý và độ chính xác, cần có cấu hình phần cứng bộ xử lý trung tâm cao.
Hệ thống nhận diện có khả năng bị ảnh hưởng bởi độ chói của ánh sáng phản chiếu từ dây chuyền, với độ chính xác trung bình đạt 93% khi bị hắc ánh vào camera Tốc độ xử lý trung bình từ 12-16 FPS ở độ phân giải 416x416 cho thấy hệ thống hoạt động ổn định, ít xảy ra hiện tượng chồng chéo trong khung hình, giúp rút ngắn thời gian trễ.
CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 35
Sau khi hoàn thành mô hình, tôi đã tiến hành thực nghiệm trên hệ thống Giao diện giám sát hoạt động của hệ thống rất ổn định và dễ dàng theo dõi Khả năng nhận diện hình ảnh của YoloV4 rất chính xác và thời gian xử lý tương đối nhanh Mặc dù kết quả nhận diện vẫn còn một số sai sót nhỏ, nhưng chúng không ảnh hưởng lớn đến quá trình vận hành của hệ thống.
Sau những lần sai sót, em đã quyết định thực hiện thí nghiệm với hai loại tệp ảnh có số lượng khác nhau để huấn luyện, nhằm kiểm tra mức độ ảnh hưởng của từng tệp ảnh trong quá trình 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 nhận dạng Đúng Sai Tỉ lệ
Trong lần thực nghiệm tiếp theo, quá trình nhận dạng sẽ được thực hiện với 30 lần, trong đó số lượng ảnh huấn luyện sẽ được tăng từ 100 lên 150 hình cho mỗi loại kiểu ả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
CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 36
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 nhận dạng Đúng Sai Tỉ lệ
Quá trình huấn luyện ảnh đóng vai trò quan trọng trong việc cải thiện hiệu quả của hệ thống xử lý ảnh, đặc biệt trong việc phân loại sản phẩm chai có tem nhãn lỗi.
Số lượng ảnh huấn luyện càng lớn, độ chính xác trong nhận diện càng cao Trong thực nghiệm tiếp theo, chúng tôi sẽ điều chỉnh khoảng thời gian giữa hai lần nhận diện liên tiếp của hệ thống băng chuyền để cải thiện hiệu suất.
Khoảng cách giữa lần 1 và lần 2 là 1 giây, khiến chai đưa vào sau được nhận diện và lưu vào biến Nếu lần 1 là nhãn đúng và lần 2 là nhãn lỗi, biến sẽ được lưu vào biến lỗi, dẫn đến tay gạt nhãn lỗi hoạt động khi chai được nhận diện qua cảm biến Thực nghiệm cho thấy, khi tăng khoảng cách thời gian từ 1 giây đến 2.5 giây, độ chính xác bắt đầu thay đổi Độ chính xác tăng dần cho đến khi khoảng cách đạt 3.5 giây, lúc này quá trình phân loại trở nên chính xác hơn Khoảng cách 3.5 giây là thời gian chai bắt đầu được nhận diện cho đến khi chai thứ hai được đưa vào cảm biến.
Sau khi hoàn tất quá trình huấn luyện, hệ thống nhận diện nhãn chai đã bắt đầu vận hành, với từng bước trong quy trình được mô tả chi tiết qua các hình ả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Á
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP 37
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, quá trình nhận diện nhãn lỗi hoặc nguyên liệu sẽ hiển thị trên màn hình máy tính, và kết quả này sẽ được gửi đến Arduino.
Khi chai đạt đến vị trí cảm biến, cảm biến sẽ gửi tín hiệu đến Arduino, từ đó điều khiển servo mở cần gạt.
CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
Báo cáo đồ án tốt nghiệp 38 mô tả quá trình vận hành của hệ thống, trong đó gian chai được điều khiển từ cảm biến đến vị trí gạt servo, thay đổi góc quay để gạt chai vào đúng vị trí mong muốn (Hình 5.7) Hệ thống này nhận diện và phân loại từng chai chính xác theo yêu cầu đã đề ra.