def get_boxes(ans, block_x, block_y, bb_num,class_num,th, im_w,im_h,biases):
sorted_boxes = []
for by in range(block_y):
for bx in range(block_x):
for j in range(bb_num):
box = ans[by,bx,j,0:4]
conf = sigmoid(ans[by,bx,j,4])
probs = softmax(ans[by,bx,j,5:(5+class_num)])[0]
p_class = probs*conf
if np.max(p_class)<th:
continue
class_id = np.argmax(p_class)
x = (bx+sigmoid(box[0]))*(im_w/float(block_x))
y = (by+sigmoid(box[1]))*(im_h/float(block_y))
w = np.exp(box[2])*biases[j][0]*(im_w/float(block_x))
h = np.exp(box[3])*biases[j][1]*(im_h/float(block_y))
b = Box(x,y,w,h)
sorted_boxes.append([b,j,class_id, max(p_class)])
return sorted_boxes
评论列表
文章目录