我一直在探索神经网络,并且已经能够成功地训练一个网络,甚至在我自己的图像上,以某种方式将单张图片标记为特定事物,但不知道如何使用训练有素的网络来识别和也许从一个图像返回多个对象。例如,如果您训练了猫和狗,并且一张图像中有多只猫和狗,您将如何应用经过训练的网络并返回它们的位置(在图像中)?
这是我在 Python 中执行的主要教程:http://machinelearningmastery.com/object-recognition-convolutional-neural-networks-keras-deep-learning-library/
一个笼统的答案就足够了,例如,图像上的滑动窗口是解决这个问题的最佳解决方案还是有更简单的方法?
一个具体的例子(特别是在 python 中)将不胜感激。 我一直在使用 matplotlib 处理大部分图像工作,所以我宁愿远离 PIL 切片。
谢谢!
最佳答案
因为您想使用现有的训练有素的 n/w:
- Brute Sliding window:如果你不知道图像中对象的大小和位置,你将不得不处理许多窗口(根据图像大小逐像素滑动),并且每个窗口可能产生不同的结果并且可能是其中一个或几个是最终需要的结果,你看到复杂性是如何增加的吗?将难以确定许多实际需要的结果。
- 预处理:可以在将图像提供给网络之前对其进行预处理。例如,拍摄猴子和蛇的图像,计算图像的能量 (Sobel et.al)。图像中的猴子足迹更像圆形气球(更大面积),蛇会像线状(更小面积),基于此有一个 python 脚本将图像裁剪到特定部分,然后将其提供给 n/w .您可以考虑其他预处理技术。
如果您对其他 n/w 持开放态度,请查看 CRF as Recurrent Neural Networks。例如:https://github.com/torrvision/crfasrnn
希望这对您有所帮助。
关于python - 您如何使用经过训练的神经网络来识别图像中的多个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40771334/