IoU
IoU
Viết tắt của Intersection over Union, là phép đo trong xử lý ảnh dựa trên Intersection (phép giao) và Union (phép hợp). Nó là tên gọi của chỉ số Jaccard trong xử lý ảnh.
là độ đo đánh giá các mô hình nhận diện thực thể. Phép đo này có thể đánh giá các mô hình khác nhau như RCNN, Fast-RCNN, Faster- RCNN hay YOLO.
Sau khi huấn luyện xong một mô hình nhận diện thực thể, chúng ta cần đánh giá xem mô hình hoạt động chính xác đến mức độ nào. Đây là một yêu cầu không chỉ đối với xử lý ảnh mà với machine learning
Machine Learning
Machine learning (học máy) là nghiên cứu khoa học về các thuật toán và mô hình thống kê mà các hệ thống máy tính sử dụng để thực hiện một nhiệm vụ cụ thể một cách hiệu quả mà không cần sử dụng các hướng dẫn rõ ràng, thay vào đó dựa vào các mẫu và suy luận.
nói chung.
IoU là gì?
Trong bài toán regression, chúng ta có độ đo như Mean Square Error (MSE), hay đối với classification
Classification
Classification là bài toán phổ biến trong học máy. Nó có thể dịch là phân lớp hay phân loại. Đây là bài toán yêu cầu một hệ thống xếp các đối tượng vào một nhóm cho trước.
chúng ta có accuracy
accuracy
accuracy (có thể dịch là độ chính xác) là một số liệu để đánh giá các mô hình phân loại. Thông số này được tính bằng Số dự đoán đúng chia cho Tổng số dự đoán
, precision, recall, confusion matrix
confusion matrix
Có thể dịch là (ma trận nhầm lẫn), là một bảng hiển thị trực quan hiệu quả của mô hình, đặc biệt là trên bài toán phân lớp nhiều nhãn.
v..v.. Vậy đối với nhận dạng thực thể, chúng ta sẽ dùng độ đo nào? Câu trả lời là IoU
IoU
Viết tắt của Intersection over Union, là phép đo trong xử lý ảnh dựa trên Intersection (phép giao) và Union (phép hợp). Nó là tên gọi của chỉ số Jaccard trong xử lý ảnh.
.
Trong nhận dạng thực thể, các mô hình cần phải vẽ ra được một khung giới hạn để đánh dấu thực thể với một xác suất nào đó.
Khung giới hạn là tập hợp các tọa độ dùng để xác định vị trí trong ảnh. Các dataset
Dataset
Bộ dữ liệu - Một tập các thông tin về các thực thể (thường có cùng kiểu, có liên quan đến nhau) là đối tượng của một bài toán hoặc nhiệm vụ học máy.
khác nhau có thể có định dạng khác nhau của tập hợp này.
Không giống như các độ đo như accuracy
accuracy
accuracy (có thể dịch là độ chính xác) là một số liệu để đánh giá các mô hình phân loại. Thông số này được tính bằng Số dự đoán đúng chia cho Tổng số dự đoán
hay f1, chúng ta không yêu cầu một sự trùng khớp tuyệt đối mà tính trên mức độ tương đồng của hai khung giới hạn. IoU
IoU
Viết tắt của Intersection over Union, là phép đo trong xử lý ảnh dựa trên Intersection (phép giao) và Union (phép hợp). Nó là tên gọi của chỉ số Jaccard trong xử lý ảnh.
cho phép chúng ta tính được con số đó.
Giả sử chúng ta có hai tập hợp là S1 và S2, chỉ số Jaccard được tính bởi:
J(S1, S2) = |S1 ∩ S2|/ |S1 U S2|
Đối với IoU
IoU
Viết tắt của Intersection over Union, là phép đo trong xử lý ảnh dựa trên Intersection (phép giao) và Union (phép hợp). Nó là tên gọi của chỉ số Jaccard trong xử lý ảnh.
ta có:
IoU
IoU
Viết tắt của Intersection over Union, là phép đo trong xử lý ảnh dựa trên Intersection (phép giao) và Union (phép hợp). Nó là tên gọi của chỉ số Jaccard trong xử lý ảnh.
= Diện tích phần GIAO /Diện tích phần HỢP
IoU
IoU
Viết tắt của Intersection over Union, là phép đo trong xử lý ảnh dựa trên Intersection (phép giao) và Union (phép hợp). Nó là tên gọi của chỉ số Jaccard trong xử lý ảnh.
≥0.5 được coi là có mức độ tương đồng cao.
Tính IoU bằng Python
Định nghĩa hàm
def iou(box1, box2):
"""
box1 -- first box, list object with coordinates (x1, y1, x2, y2)
box2 -- second box, list object with coordinates (x1, y1, x2, y2)
"""
xi1 = max(box1[0],box2[0])
yi1 = max(box1[1],box2[1])
xi2 = min(box1[2],box2[2])
yi2 = min(box1[3],box2[3])
inter_area = (yi2-yi1)*(xi2-xi1)
box1_area = (box1[2]-box1[0])*(box1[3]-box1[1])
box2_area = (box2[2]-box2[0])*(box2[3]-box2[1])
union_area = box1_area+box2_area-inter_area
# compute the IoU
iou = inter_area/union_area
return iou
Áp dụng để tính IoU
IoU
Viết tắt của Intersection over Union, là phép đo trong xử lý ảnh dựa trên Intersection (phép giao) và Union (phép hợp). Nó là tên gọi của chỉ số Jaccard trong xử lý ảnh.
giữa 2 khung:
Trong trường hợp có nhiều khung giới hạn cho cùng một thực thể, chúng ta có thể loại bỏ các khung thừa với thuật toán Non-max suppression (NMS
NMS
Non Maximum Suppression là một phương pháp thị giác máy giúp tìm ra một đối tượng duy nhất trong số các đối tượng trùng lặp.
).
Giả sử chúng ta có một tập hợp các khung giới hạn và điểm của từng khung, ta có thể áp dụng IoU
IoU
Viết tắt của Intersection over Union, là phép đo trong xử lý ảnh dựa trên Intersection (phép giao) và Union (phép hợp). Nó là tên gọi của chỉ số Jaccard trong xử lý ảnh.
để lấy ra khung tốt nhất và loại bỏ các khung trùng lặp khác.
Chúng ta bắt đầu với A là tập hợp gồm tất cả các khung giới hạn và B là một tập rỗng.
Lấy ra khung có điểm cao nhất và chuyển từ A sang B.
Xóa khung đó khỏi A.
Tính IoU
IoU
Viết tắt của Intersection over Union, là phép đo trong xử lý ảnh dựa trên Intersection (phép giao) và Union (phép hợp). Nó là tên gọi của chỉ số Jaccard trong xử lý ảnh.
của khung đó với tất cả các khung khác, loại bỏ hết các khung có IoU
IoU
Viết tắt của Intersection over Union, là phép đo trong xử lý ảnh dựa trên Intersection (phép giao) và Union (phép hợp). Nó là tên gọi của chỉ số Jaccard trong xử lý ảnh.
vượt ngưỡng.
Lặp lại bước 2 và 3 cho đến khi A rỗng.
Nếu bạn thích bài viết này, đừng ngại chia sẻ với những người quan tâm. Hãy thường xuyên truy cập website hoặc tham gia cộng đồng trên các trang mạng xã hội để có những thông tin chuyên sâu về lĩnh vực!