如何定位同一图像中的多个对象?
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 会给我图像中存在的对象的边界框。有没有办法只计算图像中对象的数量及其对应的类?以上是关于如何定位同一图像中的多个对象?的主要内容,如果未能解决你的问题,请参考以下文章
如何创建一个可以操作同一类的多个对象的函数,访问 C++ 中的私有属性?
如何通过脚本在 Unity 中重新定位和调整游戏对象的大小?