IOU (Intersection over Union) is an important concept in object detection that is used to evaluate the accuracy of predicted bounding boxes compared to the ground truth bounding boxes.
When an object detection model predicts the location of an object in an image, it outputs a bounding box that represents the predicted location of the object. The ground truth bounding box represents the true location of the object in the image. The IOU metric is used to calculate the overlap between the predicted bounding box and the ground truth bounding box.
The IOU is calculated by dividing the area of intersection between the predicted and ground truth bounding boxes by the area of their union. The formula for calculating IOU is as follows:
IOU = (Area of Intersection)/(Area of Union)
Here’s an example to help illustrate the calculation of IOU:
Suppose that the predicted bounding box for an object has coordinates (x<sub>p</sub>, y<sub>p</sub>, w<sub>p</sub>, h<sub>p</sub>), and the ground truth bounding box has coordinates (x<sub>g</sub>, y<sub>g</sub>, w<sub>g</sub>, h<sub>g</sub>).
The area of intersection between the two boxes can be calculated as follows:
Area of Intersection = max(0, min(x<sub>p</sub>+w<sub>p</sub>, x<sub>g</sub>+w<sub>g</sub>) — max(x<sub>p</sub>, x<sub>g</sub>)) * max(0, min(y<sub>p</sub>+h<sub>p</sub>, y<sub>g</sub>+h<sub>g</sub>) — max(y<sub>p</sub>, y<sub>g</sub>))
# Lets Take x1,y1,x2,y2 for ground truth and predicted box:
ground_truth = [2 , 3 , 15, 19]
predicted = [10 , 14 , 31, 33] # Take x3,y3,x4,y4 for predicted box
# Intersection:
# Formula = max(x1,x3) , max(y1,y3)
# max(x2 , x4) , max(y2 , y4)
pt1 = max(ground_truth[0] , predicted[0])
pt2 = max(ground_truth[1] , predicted[1])
pt3 = max(ground_truth[2],predicted[2])
pt4 = max(ground_truth[3] , predicted[3])
intersect = (pt3 - pt1) * (pt4 - pt2)
The area of union between the two boxes can be calculated as follows:
Area of Union = Area of Predicted Bounding Box + Area of Ground Truth Bounding Box — Area of Intersection
# union:
g_width = ground_truth[2] - ground_truth[0]
g_height = ground_truth[3] - ground_truth[1]
g_area = g_width * g_height
p_width = predicted[2] - predicted[0]
p_height = predicted[3] - predicted[1]
p_area = p_width * p_height
union = g_area + p_area - intersect
Using these two values, the IOU can be calculated as follows:
IOU = (Area of Intersection)/(Area of Union)
iou = intersect / union
print(iou)
The IOU metric is used to evaluate the accuracy of object detection models during training and testing. Typically, a threshold value is set for IOU, and any predicted bounding box with an IOU greater than the threshold is considered a true positive detection. The threshold value is usually set to 0.5, but it can be adjusted depending on the specific use case and requirements.
For Non-Max Suppression Follow: https://medium.com/p/b0569e89e9e7/edit
LinkedIn : https://www.linkedin.com/in/sai-kamal-korlakunta-a81326163/
Computer Vision Blogs : https://korlakuntasaikamal10.medium.com/