Tensorflow objection detection api 物体检测模型 (三) 从识别的物体中抠出特定物体进行保存

本文介绍如何使用Tensorflow Object Detection API从识别结果中抽取特定类别的物体并保存。通过调整可视化参数,筛选高得分物体,针对mscoco_label_map.pbtxt的90个类别,展示代码实现只保存person类别的实例。
摘要由CSDN通过智能技术生成

在利用官方提供的Tensorflow objection detection api 进行物体检测时,会有很多物体被检测出来并且被框柱,而我的目标是只需要一个类别的物体,那么如何将这个特定的物体抠出来保存呢?下面我就介绍一下实现的方法及代码。

比如下面这张图,被识别的物体有person和kite,我们的目标就是只将识别的人保存下来.。

在做这件事之前,先了解几个参数。

预测框中字体大小的调节:

在\models\research\object_detection\utils\visualization_utils.py脚本中的第174行

预测框线条大小的调节:

第一个参数: boxes:

官方解释:boxes: [N, max_detections, 4] float32 tensor of detection boxes.

boxes是[N, 4]的二维数字数组,[ymin, xmin, ymax, xmax]坐标采用[0,1]之间的标准化格式,如[3.70723009e-02 2.32388377e-02 8.62021029e-01 3.18440855e-01]  对应被检测到物体的矩形信息。由于是[0,1]之间的标准化格式,所以乘以图片的width和height就可以得到矩形框的实际大小。

print(boxes.shape())#(1, 100, 4)
print(boxes)

#结果如下:
(1, 100, 4)
[[[0.3893192  0.34821513 0.40933684 0.36334053]
  [0.57497    0.06333599 0.6149571  0.07912395]
  [0.67780834 0.07910287 0.83874995 0.12358559]
  [0.08469409 0.4369094  0.17420965 0.4994243 ]
  [0.07829238 0.24870682 0.40474242 0.42367953]
  [0.08469409 0.4369094  0.17420965 0.4994243 ]
  [0.36447126 0.00367826 0.9636777  0.14283133]
  [0.00455514 0.42866302 0.5063168  0.66165733]
  [0.1899012  0.32323682 0.47276065 0.46757388]
  ........................................
  [0.16059408 0.09260845 0.37784013 0.69468033]
  [0.67780834 0.07910287 0.83874995 0.12358559]]]

在\models\research\object_detection\utils\visualization_utils.py脚本中的第441行、第321行以及第626行的

def visualize_boxes_and_labels_on_image_array( )函数中定义了在图像上绘制的最大框数max_boxes_to_draw=20;可视化的最小得分阈值min_score_thresh=0.2. 这些参数都可以根据需要修改。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值