tensorflow 的重复检测 API
Duplicate detections by the tensorflow API
我目前正在使用 tensorflow 对象检测 API,但是在图像上创建边界框时,API 倾向于在单个项目上创建多个边界框。无论如何我可以让它只在单个项目上创建一个唯一的边界框。
我当前用于对象检测的模型是在开放图像数据集(来自 g3doc 模型动物园)上训练的更快的 rcnn 模型
根据我的经验,这是检测器的标准行为。假设它们很嘈杂,并且根据盒子的放置方式,同一物品可能会被多次检测为不同的物体。
这就是为什么我认为检测器需要过滤功能来过滤掉不正确的预测。您可以使用 IoU 的概念轻松地做类似的事情:并集上的交集。可以找到示例 here,还有一些代码可以使用。
基本上,以通常的方式使用您的冻结模型执行检测。然后,对预测的框进行检查并丢弃那些以某种方式被覆盖的框,即。 e.您可以丢弃相对于另一个置信度得分较低的重叠框。
希望对您有所帮助!
试试这个去研究>object-detection>utils>visualisation_utils.py,然后更改 min_score_threshold 值:
def visualize_boxes_and_labels_on_image_array(
image,
boxes,
classes,
scores,
category_index,
instance_masks=None,
instance_boundaries=None,
keypoints=None,
use_normalized_coordinates=False,
max_boxes_to_draw=20,
min_score_thresh=.90,
agnostic_mode=False,
line_thickness=4,
groundtruth_box_visualization_color='black',
skip_scores=False,
skip_labels=False):
在我的例子中,我使用了大于 90% 的阈值。这也删除了其他概率较低的边界框 add-on 您可以使用上面的脚本
更改边界框的边框厚度和颜色
我目前正在使用 tensorflow 对象检测 API,但是在图像上创建边界框时,API 倾向于在单个项目上创建多个边界框。无论如何我可以让它只在单个项目上创建一个唯一的边界框。
我当前用于对象检测的模型是在开放图像数据集(来自 g3doc 模型动物园)上训练的更快的 rcnn 模型
根据我的经验,这是检测器的标准行为。假设它们很嘈杂,并且根据盒子的放置方式,同一物品可能会被多次检测为不同的物体。
这就是为什么我认为检测器需要过滤功能来过滤掉不正确的预测。您可以使用 IoU 的概念轻松地做类似的事情:并集上的交集。可以找到示例 here,还有一些代码可以使用。
基本上,以通常的方式使用您的冻结模型执行检测。然后,对预测的框进行检查并丢弃那些以某种方式被覆盖的框,即。 e.您可以丢弃相对于另一个置信度得分较低的重叠框。
希望对您有所帮助!
试试这个去研究>object-detection>utils>visualisation_utils.py,然后更改 min_score_threshold 值:
def visualize_boxes_and_labels_on_image_array(
image,
boxes,
classes,
scores,
category_index,
instance_masks=None,
instance_boundaries=None,
keypoints=None,
use_normalized_coordinates=False,
max_boxes_to_draw=20,
min_score_thresh=.90,
agnostic_mode=False,
line_thickness=4,
groundtruth_box_visualization_color='black',
skip_scores=False,
skip_labels=False):
在我的例子中,我使用了大于 90% 的阈值。这也删除了其他概率较低的边界框 add-on 您可以使用上面的脚本
更改边界框的边框厚度和颜色