在利用官方提供的Tensorflow objection detection api 进行物体检测时,会有很多物体被检测出来并且被框柱,而我的目标是只需要一个类别的物体,那么如何将这个特定的物体抠出来保存呢?下面我就介绍一下实现的方法及代码。
比如下面这张图,被识别的物体有person和kite,我们的目标就是只将识别的人保存下来.。
在做这件事之前,先了解几个参数。
预测框中字体大小的调节:
在modelsresearchobject_detectionutilsvisualization_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]]]
在modelsresearchobject_detectionutilsvisualization_utils.py脚本中的第441行、第321行以及第626行的
def visualize_boxes_and_labels_on_image_array( )函数中定义了在图像上绘制的最大框数max_boxes_to_draw=20;可视化的最小得分阈值min_score_thresh=0.2. 这些参数都可以根据需要修改。
本文发布于:2024-02-02 18:59:13,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170687155245789.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |