如何定位同一图像中的多个对象?

Posted

技术标签:

【中文标题】如何定位同一图像中的多个对象?【英文标题】:How to locate multiple objects in the same image? 【发布时间】:2017-07-10 21:50:24 【问题描述】:

我是 TensorFlow 的新手。

目前,我正在TensorFlow网站上测试一些分类的示例“卷积神经网络”,它解释了如何将输入图像分类为预定义的类,但问题是:我无法弄清楚如何定位多个同一图像中的对象。例如,我有一张带有猫和狗的输入图像,我希望我的图表在输出中显示图像中都有“猫和狗”。

【问题讨论】:

【参考方案1】:

您尝试做的一个天真的方法是独立分类图像的各个部分。

但是有一些更好的对象检测技术。实际上,有TensorFlow Object Detection API,它可以让您访问最常见的对象检测方法,如 Faster R-CNN 或 SSD。

【讨论】:

【参考方案2】:

很好的问题。在同一张图像中检测多个对象沸腾本质上是一个“分割问题”。两种不错且流行的算法是 YOLO(You Only Look Once)和 SSD(Single Shot Multibox Detector)。我在底部包含了指向它们的链接。

我会观看一些有关 YOLO 工作原理的视频,看看您是否掌握了这个想法。然后阅读关于 SSD 的论文,看看你是否明白为什么这个算法更快、更精确。

这两种算法都是单通道的:它们只查看图像“一次”并预测它们发现的类别的边界框。有更精确的算法,但速度较慢(他们首先选择许多他们想看的点,然后只在那个点上运行分类器。结果是他们对每张图像运行这个分类器很多次,这很慢)。

正如您所说,您是 Tensorflow 的新手,您可以尝试其他人编写的代码:https://github.com/thtrieu/darkflow。非常广泛的自述文件向您展示了如何开始使用您自己的数据集。

祝你好运,如果您有其他问题,或者这些算法是否不适合您的用例,请告诉我们。

YOLO 9000 (https://pjreddie.com/darknet/yolo/) SSD(单发多盒检测器)(https://arxiv.org/abs/1512.02325)

【讨论】:

出色的答案和您提供的链接是正确的!我已经把赏金给你了。非常感谢您分享您在这个主题上的专业知识! 这对我来说听起来像是一个对象检测问题。如果我没记错的话,YOLO 会给我图像中存在的对象的边界框。有没有办法只计算图像中对象的数量及其对应的类?

以上是关于如何定位同一图像中的多个对象?的主要内容,如果未能解决你的问题,请参考以下文章

『cs231n』图像定位与检测

如何查询同一个json对象数组中的多个属性?

如何创建一个可以操作同一类的多个对象的函数,访问 C++ 中的私有属性?

如何通过脚本在 Unity 中重新定位和调整游戏对象的大小?

Unity UI - 如何制作“复合”布局组以在同一位置组合多个图像?

使用 Gulp 在同一目录中的多个文件扩展名