交并比分类计算(IOU classification calculation)
下面展示一些 内联代码片
。
def calculate_iou(i, left_1, top_1, right_1,bottom_1,left_2, top_2, right_2,bottom_2):
area=(bottom_1-top_1)*(right_1-left_1)
iou=0
if(left_1 <left_2 and top_2>top_1 ):
print('Enter the fourth quadrant judgment mode')
if(left_2 > right_1 or bottom_1 < top_2):
iou=0
elif(right_2>right_1 and bottom_2<bottom_1):
iou = (bottom_2 - top_2) * (right_1 - left_2) / area
elif (right_2 < right_1 and bottom_2 > bottom_1):
iou = (bottom_1 - top_2) * (right_2 - left_2) / area
elif (right_2 < right_1 and bottom_2 < bottom_1):
iou = 1
elif (right_2 >right_1 and bottom_2>bottom_1 ):
iou = (bottom_1 - top_2) * (right_1 - left_2) / area
elif(left_2<left_1 and top_2>top_1):
print('Enter the third quadrant judgment mode')
if (right_2 < left_1 or bottom_1<top_2):
iou = 0
elif(right_2<right_1 and bottom_2<bottom_1):
iou = (bottom_2 - top_2) * (right_2 - left_1) / area
elif(right_2>right_1 and bottom_2<bottom_1):
iou = (bottom_2 - top_2) * (right_1 - left_1) / area
elif (right_2 < right_1 and bottom_2 > bottom_1):
iou = (bottom_1 - top_2) * (right_2 - left_1) / area
elif (right_2 > right_1 and bottom_1<bottom_2):
iou = (right_1-left_1)*(bottom_1-top_2)/area
elif(left_2<left_1 and top_2<top_1):
print('Enter the second quadrant judgment mode')
if (right_2 < left_1 or bottom_2 < top_1):
iou=0
elif (right_2 < right_1 and bottom_2 < bottom_1):
iou=(right_2-left_1)*(bottom_2-top_1)/area
elif (right_2 > right_1 and bottom_2 > top_1):
iou=(right_1-left_1)*(bottom_2-top_1)/area
elif (right_2 < right_1 and bottom_2 > bottom_1):
iou=(bottom_1-top_1)*(right_2-left_1)/area
elif (right_2 > right_1 and bottom_2 > bottom_1):
iou=1
elif (left_2 > left_1 and top_2 < top_1):
print('Enter the first quadrant judgment mode')
if (left_2 > right_1 or bottom_2 < bottom_1):
iou=0
elif (right_2 > right_1 and bottom_2 < bottom_1):
iou=(bottom_1-bottom_2)*(right_1-left_2)/area
elif (right_2 < right_1 and bottom_2 < bottom_1):
iou=(right_2-left_2)*(bottom_2-top_1)/area
elif (right_2 < right_1 and bottom_2 > bottom_1):
iou=(right_2-left_2)*(bottom_1-top_1)/area
elif (right_2 > right_1 and bottom_2 > bottom_1):
iou=(right_1-left_2)*(bottom_1-top_1)/area
return i, iou