1. Tổng quan về đề tài ........................................................................................ 3 1.1 Mở đầu ...................................................................................................... 3 1.2 Lý do chọn đề tài ....................................................................................... 3 1.3 Tóm tắt đề tài ............................................................................................ 3 2. Đặt vấn đề và xác định bài toán .................................................................... 4 2.1 Đặt vấn đề ................................................................................................. 4 2.2 Xác định bài toán và tiêu chí đánh giá ...................................................... 4 2.2.1 Yêu cầu bài toán ................................................................................ 4 2.2.2 Tiêu chí đánh giá ............................................................................... 5 3. Lý do chọn mô hình Yolo v8 .......................................................................... 6 4. Cấu tạo mô hình Yolo v8 ............................................................................... 7 5. Tiến hành ........................................................................................................ 8 5.1 Xây dựng tập dữ liệu ............................................................................ 8 5.2 Huấn luyện mô hình và kết quả huấn luyện ....................................... 10 6. Kết quả và đánh giá ..................................................................................... 11 6.1 Kết quả ............................................................................................... 11 6.2 Đánh giá ............................................................................................. 12 7. Kết luận và đề xuất ....................................................................................... 13 7.1 Kết luận .............................................................................................. 13 7.2 Đề xuất ............................................................................................... 13 8. Tổng kết ......................................................................................................... 13 9. Tài liệu tham khảo ........................................................................................ 14
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
-o0o -
TIỂU LUẬN MÔN CÁC VẤN ĐỀ HIỆN ĐẠI
NGÀNH KỸ THUẬT MÁY TÍNH
Áp dụng mô hình học sâu Yolo v8 để giải quyết bài toán phát hiện vết xước
trên bề mặt sản phẩm nhựa
Giảng viên hướng dẫn: TS Hoàng Gia Hưng Sinh viên: Nguyễn Văn Hiệp
MSSV: 20020228
Trang 2Mục lục
1 Tổng quan về đề tài 3
1.1 Mở đầu 3
1.2 Lý do chọn đề tài 3
1.3 Tóm tắt đề tài 3
2 Đặt vấn đề và xác định bài toán 4
2.1 Đặt vấn đề 4
2.2 Xác định bài toán và tiêu chí đánh giá 4
2.2.1 Yêu cầu bài toán 4
2.2.2 Tiêu chí đánh giá 5
3 Lý do chọn mô hình Yolo v8 6
4 Cấu tạo mô hình Yolo v8 7
5 Tiến hành 8
5.1 Xây dựng tập dữ liệu 8
5.2 Huấn luyện mô hình và kết quả huấn luyện 10
6 Kết quả và đánh giá 11
6.1 Kết quả 11
6.2 Đánh giá 12
7 Kết luận và đề xuất 13
7.1 Kết luận 13
7.2 Đề xuất 13
8 Tổng kết 13
9 Tài liệu tham khảo 14
Trang 31 Tổng quan về đề tài
1.1 Mở đầu
Trong chương trình đào tạo ngành Kỹ thuật máy tính, một học phần không thể thiếu của mỗi sinh viên là Các vấn đề hiện đại ngành Kỹ thuật máy tính Mục tiêu của học phần là mang đến cho sinh viên những hiểu biết về những chủ đề hiện đại mà các doanh nghiệp đang triển khai, áp dụng, trong những sản phẩm phục vụ đời sống, sản phẩm nghiên cứu Với mục tiêu như
vậy, tôi đã chọn cho mình đề tài “Áp dụng mô hình học sâu Yolo v8 để giải quyết bài toán phát hiện vết xước trên bề mặt sản phẩm nhựa”
1.2 Lý do chọn đề tài
Với những kiến thức mà mình tích luỹ được, tôi lựa chọn đề tài liên quan đến thị giác máy Thị giác máy (computer vision) là một lĩnh vực trong trí tuệ nhân tạo và khoa học máy tính, mà ở đó máy tính được lập trình để hiểu và giải quyết các vấn đề liên quan đến việc nhận diện và hiểu các hình ảnh
và video tương tự như con người Mục tiêu của thị giác máy là phát triển các thuật toán và mô hình máy tính có khả năng tự động hiểu, phân tích, và rút trích thông tin từ dữ liệu hình ảnh và video Trong cuộc sống nói chung và trong các dây chuyền sản xuất nói riêng, thị giác máy và các ứng dụng của nó đóng vai trò quan trọng trong việc triển khai, giám sát, tự động hoá các quy trình Nhận thấy việc phát hiện các vết xước trên bề mặt sản phẩm nhựa nếu thực hiện bằng
người thì độ chính xác còn thấp, tốc độ chậm, không đảm bảo được tính tự động
hoá của dây chuyền nên tôi đã thực hiện đề tài “Áp dụng mô hình học sâu Yolo v8 để giải quyết bài toán phát hiện vết xước trên bề mặt sản phẩm nhựa” để
giải quyết vấn đề này
1.3 Tóm tắt đề tài
Đề tài sẽ đưa ra lý do chọn mô hình Yolo v8, cách triển khai bài toán phát hiện vết xước trên bền mặt sản phẩm nhựa Một số khó khăn, phương
án giải quyết khi triển khai bài toán này Cuối cùng là kết quả, đánh giá, và những đề xuất để cải thiện hiệu quả của bài toán
Trang 42 Đặt vấn đề và xác định bài toán
2.1 Đặt vấn đề
- Vấn đề về độ chính xác: Trong dây chuyền sản xuất với số lượng sản phẩm lớn thì việc xác định các vết xước là điều khó Nhất là đối với những vết xước có kích thước nhỏ, con người sẽ rất khó để có thể phát hiện được Việc không phát hiện được không chỉ do yếu tố về mặt kích thước, mà còn do các yếu tố về góc nhìn, độ sáng của môi trường, hướng nhìn của mắt người
- Vấn đề về tốc độ: Nếu dây chuyền của chúng ta tạo ra rất nhiều sản phẩm trong thời gian ngắn, việc dùng con người để kiểm tra sẽ tốn nhiều nhân lực, kinh tế Vì tốc độ của con người là có giới hạn, không thể một lúc bao quát nhiều sản phẩm, đặc biệt là các sản phẩm có kích thước lớn
2.2 Xác định bài toán và tiêu chí đánh giá
2.2.1 Yêu cầu bài toán
Từ các vấn đề được đặt ra ở trên, hình thành yêu cầu bài toán:
- Phát hiện các vết xước trên bề mặt nhựa màu trắng(phần viền
hồng)
- Độ chính xác 98% trở lên, thời gian < 2 giây trên mỗi lần kiểm tra
- Chỉ dùng 2 mẫu để tạo dataset và vết xước
- Vết xước cỡ milimet
- Môi trường tự setup
- Camera điện thoại
Trang 5Hình 1: Khu vực phát hiện vết xước
2.2.2 Tiêu chí đánh giá
- Các vết xước trên tập test (bề mặt không dùng để tạo tập train)
- Mô hình là tốt nhất khi có thể nhận biết tất cả các vết xước và không nhận sai thêm bất kỳ vết xước nào
- Kích thước nhỏ nhất tạo ra là ô có kích thước 1mmx1mm => 1.41mm
Trang 6Hình 2: Tiêu chí đánh giá
3 Lý do chọn mô hình Yolo v8
YOLO (You Only Look Once) là một mô hình phát hiện đối tượng trong thị giác máy tính Đây là một mô hình phát hiện đối tượng nổi tiếng vì khả năng phát hiện và phân loại các đối tượng trong thời gian thực với độ chính xác cao Yolo hỗ trợ rất tốt cho các bài toán real-time nên ta chọn mô hình này Một số các mô hình khác cũng có thể sử dụng cho bài toàn này, tuy nhiên kích thước còn quá lớn, tốn nhiều tài nguyên và mang lại hiệu suất không cao Một số mô hình có thời gian thực thi quá lớn, không thể áp dụng khi yêu cầu là real-time
Hình 3: So sánh các phiên bản của Yolo
Trang 7Có thể thấy khi so sánh các phiên bản khác nhau của Yolo, yolo v8 cho
độ chính xác vượt trội khi với số lượng tham số ít nhưng cho kết quả và thời gian thực thi tốt hơn nhiều so với những phiên bản tiền nhiệm
4 Cấu tạo mô hình Yolo v8
Hình 4: Cấu tạo mô hình Yolo v8
Cấu trúc của mô hình YOLO (You Only Look Once) bao gồm một số phần chính, bao gồm backbone network, neck architecture, detection head, anchor boxes, và các yếu tố khác Dưới đây là mô tả tổng quan về cấu trúc của
mô hình YOLO:
Backbone Network Đây là phần của mô hình thường được xây dựng từ một mạng nơ-ron tích chập (CNN) mạnh mẽ Mạng cơ bản có nhiệm vụ trích xuất các đặc trưng quan trọng từ hình ảnh đầu vào Trong YOLO, mạng cơ bản giúp mô hình học các đặc điểm chung của các đối tượng
Neck Architecture: Một số phiên bản YOLO sử dụng một kiến trúc cổ để kết hợp thông tin từ các lớp đặc trưng có độ phân giải khác nhau Điều này giúp nâng cao khả năng của mô hình trong việc nhận diện đối tượng ở các quy mô khác nhau
Detection Head: Phần này là nơi các dự đoán chính được thực hiện
Detection head tạo ra các bounding boxes (ô giới hạn) dự đoán cho đối tượng trong hình ảnh, cũng như dự đoán xác suất của các lớp đối tượng tương ứng
Anchor Boxes: YOLO sử dụng anchor boxes để dự đoán bounding boxes Anchor boxes là các hộp neo có kích thước được xác định trước, giúp mô hình
dự đoán vị trí và kích thước của đối tượng Sử dụng anchor boxes giúp cải thiện
độ chính xác của mô hình
Activation Function: Các hàm kích hoạt như Leaky ReLU thường được
sử dụng để giữ cho mô hình có khả năng học được thông tin phi tuyến tính
Trang 8Loss Function (Hàm Mất Mát): Hàm mất mát được sử dụng để đo lường
sự chênh lệch giữa các dự đoán và nhãn thực tế Mục tiêu là cực tiểu hóa hàm mất mát để mô hình học được càng chính xác
Data Augmentation (Tăng Cường Dữ Liệu): Kỹ thuật tăng cường dữ liệu như xoay, co giãn, và làm mờ thường được sử dụng để tạo thêm đa dạng trong
dữ liệu đào tạo và làm cho mô hình chống lại biến động trong dữ liệu thực tế
Cấu trúc tổng thể của mô hình YOLO cho phép nó thực hiện việc nhận diện đối tượng trong hình ảnh một cách nhanh chóng và hiệu quả Tuy nhiên, chi tiết về cấu trúc cụ thể có thể thay đổi tùy thuộc vào phiên bản cụ thể của YOLO và các cải tiến cụ thể trong nghiên cứu và phát triển sau này
5 Tiến hành
5.1 Xây dựng tập dữ liệu
- Khó khăn: Do ít mẫu(1 mẫu) => dataset ít
- Giải pháp: Xoay theo các góc khác nhau để làm phong phú tập data, vì các điều kiện về ánh sáng, góc chụp có thể cố định nhưng hướng của các vết xước có thể thay đổi
Hình 5: Giải quyết khó khăn khi tập dữ liệu hạn chế
- Tạo hàm xoay nhận vào là ảnh và góc chạy từ 0-361 với step là 5
- Đầu ra là ảnh được lưu dưới dạng jpg
- Gán nhãn cho tập dữ liệu :
Trang 9Hình 6: Gán nhãn
- Dùng phần mềm pyqt5_momolabelImg link Github để vẽ và xác định file txt bao gồm thông tin của các vết xước trong ảnh:
Hình 7: Dùng phần mềm pyqt5_momolabelImg
Trang 10- Khó khăn: Sau khi xoay ta có 72 ảnh nhưng trong mỗi ảnh lại có 30 vết xước chồng chéo nên nếu dùng phần mềm vẽ thì khá mất thời gian và không đảm bảo chính xác giữa các lần
- Giải pháp: Dùng mặt phẳng xoay và phép resize để tìm box mới cho tập
dữ liệu
Hình 8: Dùng mặt phẳng xoay và phép resize
- Tìm điểm giữa, trái trên dưới, phải trên dưới bằng cách nhân điểm của góc xoay 0 độ (ban đầu) với các ma trận xoay tìm được
- Kiểm tra điều kiện và đưa ra chiều dài, rộng của box mới
- Làm tuần tự với từng góc và từng vết xước trong ảnh của góc đó
5.2 Huấn luyện mô hình và kết quả huấn luyện
Hình 9: Kết quả huấn luyện
Trang 11
- Kết quả thu được khi huấn luyện:
+ mAP trung bình là 0.93
+ Độ hồi quy dần về 1
+ Loss ở tập train và val gần về 0;
=> Kết quả tốt ở 100 epoches
6 Kết quả và đánh giá
6.1 Kết quả
- Kết quả với một dữ liệu khác mà mô hình chưa biết:
Hình 10: Kết quả test
- Đối chiều kết quả này với tiêu chí so sánh ban đầu:
Trang 12Hình 11: Đối chiếu kết quả
Bảng: Thống kê kết quả
6.2 Đánh giá
=> Mô hình có thể phát hiện các vết xước có kích thước lớn hơn hoặc
bằng 1.41mm (1mmx1mm)
=> Mức độ confidence chưa quá tốt
=> Do sự sai lệch khi đặt và góc chụp nên một số vết xước cho
confidence chưa cao: 8mm chỉ cho 0.36
Trang 13=> Thời gian detect ngắn, khoảng 37ms, phù hợp cho real-time
7 Kết luận và đề xuất
7.1 Kết luận
Ưu điểm:
- Xây dựng được bộ data set hiệu qủa dựa trên lượng mẫu ít
- Phát hiện được các vết xước có kích thước nhỏ (cỡ milimet)
- Thời gian phát hiện nhanh,cỡ mili giây
Nhược điểm:
- Confidence tổng quan còn chưa quá tốt
- Một số vết xước do sai lệch về góc chụp và điều kiện ánh sáng nên
có confidence thấp
7.2 Đề xuất
- Sử dụng đèn có độ bao phủ lớn chiếu từ phía ngang của bề mặt sản phẩm để nổi rõ các vết xước, đặt mẫu trong hộp kín rồi bật đèn và chụp => tránh nhiễu do ánh sáng bên ngoài
- Dùng camera có độ phân giải cao hơn, có thể lấy nét khi đặt gần, vì việc zoom kỹ thuật số khiến ảnh rất nhiễu, không thể xử lý bằng thuật toán
- Cố định camera, khoảng cách từ camera đến sản phẩm, vị trí sản phẩm, khi sản xuất trên có thể sử dụng hệ thống đặt vật vào đúng vị trí quy định
8 Tổng kết
Đề tài “Áp dụng mô hình học sâu Yolo v8 để giải quyết bài toán phát hiện vết xước trên bề mặt sản phẩm nhựa” đã giải quyết được bài toán thực tế của
doanh nghiệp trong khâu kiểm định chất lượng sản phẩm Mô hình YOLO v8 đã cho thấy khả năng nhận diện vết xước với độ chính xác cao, giúp tăng cường hiệu suất trong quá trình kiểm định chất lượng sản phẩm Sự linh hoạt của mô hình này cho phép chúng tôi thích nghi với các điều kiện ánh sáng khác nhau, các góc chụp hình và các kích thước sản phẩm, làm tăng tính ứng dụng của nó trong môi trường sản xuất thực tế
Trang 14Đặc biệt, việc sử dụng mô hình YOLO v8 giúp giảm thiểu sai số và tăng cường độ tin cậy của quy trình kiểm định chất lượng Nhờ vào khả năng học sâu, mô hình có thể hiểu biểu đồ hình ảnh một cách tự nhiên, từ đó nâng cao khả năng nhận diện và phân loại vết xước so với các phương pháp truyền thống
Sự tích hợp của mô hình này vào quy trình sản xuất không chỉ giúp tiết kiệm thời gian mà còn mang lại sự hiệu quả về chi phí Quy trình tự động hóa của YOLO v8 giúp giảm tải công việc cho nhân viên kiểm định chất lượng và đồng thời giảm nguy cơ nhầm lẫn và thiếu sót trong quá trình kiểm tra sản phẩm
Tóm lại, việc áp dụng mô hình học sâu YOLO v8 vào bài toán phát hiện vết xước trên bề mặt sản phẩm nhựa không chỉ giúp doanh nghiệp nâng cao chất lượng sản phẩm mà còn tối ưu hóa quy trình sản xuất Điều này mở ra nhiều triển vọng và cơ hội cho ứng dụng của công nghệ học sâu trong lĩnh vực kiểm định chất lượng và quản lý sản xuất trong tương lai
9 Tài liệu tham khảo
1 https://docs.ultralytics.com
https://www.freecodecamp.org/news/how-to-detect-objects-in-images-using-yolov8/
3 Comparison of Pre-Trained YOLO Models on Steel Surface Defects
Detector Based on Transfer Learning with GPU-Based Embedded Devices
https://www.mdpi.com/1424-8220/22/24/9926