如何使用张量流和卷积神经网络检测和定位对象?

时间:2017-07-11 13:23:01

标签: tensorflow computer-vision deep-learning tflearn

我的问题陈述如下:

使用Tensorflow和卷积神经网络进行对象检测和本地化

我做了什么?

我完成了使用tflearn库从图像中检测猫。我使用25000张猫的图像成功训练了一个模型,并且其工作正常,准确度很高。

当前结果: enter image description here

我想做什么?

如果我的图像由同一图像中的两个或两个以上的对象组成,例如猫和狗在一起,那么我的结果应该是“猫与狗”,除此之外,我必须找到确切的位置这两个对象在图像上(边界框

我遇到了许多高级库,例如 darknet SSD ,但却无法理解其背后的概念。

请指导我解决问题的方法。

注意:我正在使用监督学习技术。

预期结果

enter image description here

3 个答案:

答案 0 :(得分:1)

你有几种方法可以解决它。

最直接的方法是使用一些边界框建议算法(如选择性搜索)获取一些建议的边界框,并在建议的每个上运行您已经训练过的分类网。这种方法是R-CNN采用的方法。

对于基于上述方法的更高级算法,我建议您阅读有关Fast-R-CNN和更快的R-CNN的信息。

查看Object detection with R-CNN?的一些基本解释。

Darknet和SSD基于不同的方法,如果你想要解决它们你可以阅读它们

http://www.cs.unc.edu/~wliu/papers/ssd.pdf https://pjreddie.com/media/files/papers/yolo.pdf

答案 1 :(得分:1)

图像定位是一个复杂的问题,许多不同的实现以不同的效率实现相同的结果。

有两种主要的实施方式

- 使用回归定位对象

- 单射击探测器

阅读此https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/object_localization_and_detection.html以获得更好的主意。

干杯

答案 2 :(得分:0)

我使用PyTorch和ResNet34在印度货币上做了一个类似的项目(检测+本地化)。以下是我的kaggle笔记本的链接,希望对您有所帮助。我已经从互联网上手动收集了图像,并在它们周围制作了边框,并使用“ LabelImg”注释工具保存了它们的注释文件(Pascal VOC)。

https://www.kaggle.com/shweta2407/objectdetection-on-custom-dataset-resnet34