Thuật toán YOLO

Một phần của tài liệu Hệ thống tự động kiểm tra ngoại quan sản phẩm rocker arm dựa trên xử lý ảnh và công nghệ học sâu (Trang 46 - 50)

CHƯƠNG 3 THUẬT TOÁN PHÁT HIỆN LỖI XƯỚC

3.1 Thuật toán YOLO

Yolo là một mơ hình mạng tích chập 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 giữa các lớp tích chập và các lớp kết nối. Trong đó các lớp tích chập sẽ trích xuất ra các đặc trưng của ảnh, còn các lớp được kết nối đầy đủ sẽ dựđoán ra xác suất và tọa độ của đối tượng đó.

Hình 3.1. Ví dụ yolo

3.1.2 Mơ hình

Hình 3.2. Ví dụ một mơ hình yolo đơn giản

Đầu vào của mơ hình là một ảnh, mơ hình sẽ nhận dạng ảnh đó có đối tượng nào hay khơng, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh. Ảnh đầu vào được chia thành thành S×S ơ, thường sẽ là 3x3, 7x7, 9x9... việc chia ơ này có ảnh hưởng tới việc mơ hình phát hiện đối tượng.

37

Hình 3.3. Chia lưới trong yolo

Với đầu vào là 1 ảnh, đầu ra mô hình là một ma trận 3 chiều có kích thước S×S×(5×N+M) với sốlượng tham số mỗi ơ là (5×N+M) với N và M lần lượt là số lượng hộp giới hạn và lớp mà mỗi ơ cần dựđốn. Dự đoán mỗi hộp giới hạn gồm 5 thành phần: (x, y, w, h, prediction) với (x, y) là tọa độ tâm của hộp giới hạn, (w, h) lần lượt là chiều rộng và chiều cao của hộp giới hạn, prediction được định nghĩa Pr(Object)∗IOU(pred, truth). Trong đó Pr(Object) là xác suất có vật, IOU (Intersection Over Union) là hàm đánh giá độ chính xác của object detector trên tập dữ liệu cụ thể.

𝐼𝐼𝐼𝐼𝐼𝐼 =𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑜𝑜𝑜𝑜 𝐼𝐼𝑂𝑂𝐴𝐴𝐴𝐴𝑂𝑂𝐴𝐴𝑝𝑝𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑜𝑜𝑜𝑜 𝐼𝐼𝑈𝑈𝑈𝑈𝑜𝑜𝑈𝑈 PT 3.1 Trong đó Area of Overlap là diện tích phần giao nhau giữa hộp giới hạn dựđoán với hộp giới hạn thực, cịn Area of Union là diện tích phần hợp giữa hộp giới hạn dựđoán với hộp giới hạn thực. Những hộp giới hạn thực được đánh nhãn bằng tay trong tập dữ liệu đào tạo và dữ liệu kiểm tra. Nếu IOU > 0.5 thì prediction được đánh giá là tốt.

Hàm lỗi trong YOLO được tính trên việc dựđốn và nhãn mơ hình để tính. Cụ thể hơn nó là tổng độ lỗi của 3 thành phần con sau:

- Classifycation loss - độ lỗi của việc dựđoán loại nhãn của object, hàm lỗi này chỉ tính trên những ơ vng có xuất hiện object, cịn những ơ vng khác ta khơng quan tâm. Classifycation loss được tính bằng công thức sau: 𝐿𝐿𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑡𝑡𝑚𝑚𝑐𝑐𝑛𝑛 =� 𝜋𝜋𝑚𝑚𝑐𝑐𝑜𝑜𝑜𝑜� (𝑝𝑝𝑚𝑚(𝑐𝑐) 𝑐𝑐∈𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑐𝑐 𝑐𝑐2 𝑚𝑚=0 − 𝑝𝑝̂𝑚𝑚(𝑐𝑐))2 PT 3.2

Trong đó 𝜋𝜋𝑚𝑚𝑐𝑐𝑜𝑜𝑜𝑜 : bằng 1 nếu ơ vng đang xét có object, ngược lại bằng 0. 𝑝𝑝̂𝑚𝑚(𝑐𝑐): là xác xuất của lớp c tại ô vuông tương ứng mà mơ hình dựđốn

- Localization loss là hàm lỗi dùng để tính giá trị lỗi cho boundary box được dựđốn bao gồm tọa độ tâm, chiều rộng, chiều cao của so với vị trí thực tế từ dữ liệu huấn luyện của mơ hình. Giá trị hàm Localization

38 loss được tính trên tổng giá trị lỗi dự đoán toạ độ tâm (x, y) và (w, h) của hộp giới đoạn dựđoán với hộp giới hạn thực.

𝐿𝐿𝑐𝑐𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑙𝑙𝑚𝑚𝑡𝑡𝑚𝑚𝑐𝑐𝑛𝑛 =𝜆𝜆𝑐𝑐𝑐𝑐𝑐𝑐𝑡𝑡𝑚𝑚� � 𝜋𝜋𝑚𝑚𝑜𝑜𝑐𝑐𝑜𝑜𝑜𝑜��𝑥𝑥𝑚𝑚 − �𝑥𝑥�𝑚𝑚�2 𝐵𝐵 𝑜𝑜=0 (�𝑦𝑦𝑚𝑚 𝑆𝑆2 𝑚𝑚=0 − �𝑦𝑦�𝑚𝑚)2 +𝜆𝜆𝑐𝑐𝑐𝑐𝑐𝑐𝑡𝑡𝑚𝑚� � 𝜋𝜋𝑚𝑚𝑜𝑜𝑐𝑐𝑜𝑜𝑜𝑜��𝑤𝑤𝑚𝑚 𝐵𝐵 𝑜𝑜=0 𝑆𝑆2 𝑚𝑚=0 − �𝑤𝑤�𝑚𝑚�2(�ℎ𝑚𝑚 − �ℎ�𝑚𝑚)2 PT 3.3 -

Hình 3.4. Ví dụ bouding box trong yolo

- Confidence loss là độ lỗi giữa dựđoán nhãn hộp giới hạn chứa object so với nhãn thực tế tại ơ vng đó. 𝐿𝐿𝑐𝑐𝑐𝑐𝑛𝑛𝑐𝑐𝑚𝑚𝑚𝑚𝑡𝑡𝑛𝑛𝑐𝑐𝑡𝑡 =� �𝐵𝐵 𝜋𝜋𝑚𝑚𝑜𝑜𝑐𝑐𝑜𝑜𝑜𝑜(𝐶𝐶𝑚𝑚 − 𝐶𝐶̂𝑚𝑚)2 𝑜𝑜=0 𝑆𝑆2 𝑚𝑚=0 +𝜆𝜆𝑛𝑛𝑐𝑐𝑐𝑐𝑜𝑜𝑜𝑜𝑡𝑡𝑐𝑐𝑡𝑡� 𝜋𝜋𝑆𝑆2 𝑚𝑚𝑜𝑜𝑛𝑛𝑐𝑐𝑐𝑐𝑜𝑜𝑜𝑜(𝐶𝐶𝑚𝑚− 𝐶𝐶̂𝑚𝑚)2 𝑚𝑚=0 PT 3.4 Tổng lại chúng ta có hàm lỗi là tổng của 3 hàm lỗi trên: 𝐿𝐿𝑡𝑡𝑐𝑐𝑡𝑡𝑚𝑚𝑐𝑐 =𝐿𝐿𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑡𝑡𝑚𝑚𝑐𝑐𝑛𝑛 + 𝐿𝐿𝑐𝑐𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑙𝑙𝑚𝑚𝑡𝑡𝑚𝑚𝑐𝑐𝑛𝑛 + 𝐿𝐿𝑐𝑐𝑐𝑐𝑛𝑛𝑐𝑐𝑚𝑚𝑚𝑚𝑡𝑡𝑛𝑛𝑐𝑐𝑡𝑡 PT 3.5

3.1.3 Cu trúc và đặc điểm mơ hình yolov3 áp dng phát hin lỗi xước trên rocker arm trên rocker arm

Trong khi mơ hình YOLOv1 thì sử dụng 24 lớp chập, sang YOLOv2 thì sử dụng backbone là darknet19 cộng với 11 lớp chập nữa để nhận dạng, thì mơ hình YOLOv3 sử dụng darknet53 làm backbone, với 53 lớp tích chập được đào tạo trên ImageNet. Đối với nhiệm vụ phát hiện, 53 lớp khác được chồng lên nó, mang lại kiến trúc phức hợp 106 lớp tích chập cho YOLOv3.

39

Hình 3.5 Cấu trúc darknet53

Hình 3.6 Kiến trúc mạng YOLOv3

Đối với YOLOv1, chúng ta đã biết thuật toán này chia bức ảnh thành các ơ lưới với kích thước SxS với S =3,5 hoặc 7. Cịn đối với YOLOv2 thì kích thước này là 13. Nhưng đối với các kích thước đó, vẫn chưa đủ để có thể tìm kiếm những đối tượng có kích thước nhỏ trong bức hình. Vậy nên YOLOv3 đã xử lý bằng cách là nhận dạng 3 lần trên một bức ảnh với kích thước khác nhau.

40 Giả sử ta có bức ảnh đầu vào có kích thước: 416×416: Tại lớp tích chập thứ 82: Bức ảnh được chia thành các ơ lưới với kích thước 13×13 (bức ảnh đã được chia lưới với kích thước 32). Tại đây, các ơ lưới sẽ có trách nhiệm tìm các vật thể có kích thước lớn trong bức hình. Tại lớp tích chập thứ 94: Bức ảnh được chia thành các ơ lưới với kích thước 26 x26 (bức ảnh được chia với kích thước 16) và có trách nhiệm tìm các vật thể có kích thước trung bình. Tương tự, tại lớp tích chập 106, bức ảnh được chia thành các ơ lưới với kích thước 52×52 (ảnh được chia với kích thước 8) và có trách nhiệm tìm các vật thểcó kích thước bé.

YOLO v3 sử dụng binay cross-entropy để tính tốn lỗi phân loại cho mỗi nhãn trong khi độ tin cậy của đối tượng và dựđốn lớp được dựđốn thơng qua hồi quy logistic.

Một phần của tài liệu Hệ thống tự động kiểm tra ngoại quan sản phẩm rocker arm dựa trên xử lý ảnh và công nghệ học sâu (Trang 46 - 50)

Tải bản đầy đủ (PDF)

(84 trang)