def average_boxes(hot_windows, old_boxes,
image_shape):
hot_boxes = initialize_center_box(hot_windows)
new_boxes = add_center_box(hot_boxes, old_boxes)
# print('new_boxes', new_boxes)
filtered_boxes = []
for new_box in new_boxes:
# Draw boxes only if the confidence level is above 1
if new_box[-1] > 2:
filtered_boxes.append(new_box)
new_windows = []
# convert center-width-height to lefttop-rightbottom format
for filtered_box in filtered_boxes:
new_center, new_width, new_height,new_move, new_prob = filtered_box
new_windows.append(((int(new_center[0]-new_width), int(new_center[1]-new_height)),
(int(new_center[0]+new_width), int(new_center[1]+new_height))))
# Create a heatmap
heatmap = create_heatmap(new_windows, image_shape)
# Check if there is any overlap of windows
if np.unique(heatmap)[-1] >= 2:
labels = ndi.label(heatmap)[0]
heatmap_2 = np.zeros_like(heatmap)
heatmap_2[heatmap>=2] = 1
labels_2 = ndi.label(heatmap_2)
array_2 = np.argwhere(labels_2[0])
for car_number in range(1, labels_2[1]+1):
# Find pixels with each car_number label value
nonzero = (labels_2[0] == car_number).nonzero()
# Identify x and y values of those pixels
num = labels[nonzero[0][0], nonzero[1][0]]
labels[labels == num] = 0
heatmap = labels + heatmap_2
new_windows = find_windows_from_heatmap(heatmap)
# return the boxes with high confidence and new set of probability array
return new_windows, new_boxes
lesson_functions.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录