【问题标题】:Recognition of an animal in pictures识别图片中的动物
【发布时间】:2017-02-14 03:15:31
【问题描述】:
我正面临一个具有挑战性的问题。在我工作的公司的院子里,有一个相机陷阱,可以拍下每一个动作。在其中一些图片中,有不同种类的动物(主要是深灰色的老鼠)会对我们的电缆系统造成损害。我的想法是使用一些可以识别图片上是否有灰色鼠标的应用程序。理想情况下是实时的。到目前为止,我们已经开发出一种解决方案,可以为每个动作发送警报,但大多数警报都是错误的。您能否提供一些有关如何解决问题的可能方法的信息?
【问题讨论】:
标签:
computer-vision
real-time
video-processing
image-recognition
【解决方案1】:
用技术术语来说,您在上面描述的内容通常称为事件检测。我知道没有现成的方法可以一次性解决所有这些问题,但只要稍加编程,即使你不想编写任何计算机视觉算法或类似的代码,你也应该做好准备。
高级管道将是:
-
确保您的视频质量足够。灰老鼠听起来有点难,而且照片可能是在晚上拍摄的——所以你应该有足够的红外光等。但如果人类能分辨出警报是真是假,那你应该没问题。
在运动时部署运动检测并拍摄快照图像。看起来你已经完成了这部分,太棒了!详细说明您的设置可能会使其他人受益。您可能还需要仅裁剪图像中的运动区域,您这样做了吗?
-
构建图像存档,包括您决定它们是假警报还是真警报(机器学习用语中的标签)。尝试为这两种情况收集至少几十张示例图像,并让它们代表真实世界的变化(您在白天也有问题吗?您所在的地区有降雪吗?)。
李>
-
对从视频流快照中获取的图像进行分类,以检查它是否是误报或是否包含吃电缆的不良生物。这听起来很难,但深度学习和机器学习正在飞速发展;你可以:
- 在 caffe 或 Tensorflow 等框架中部署您自己的神经网络(但您可能需要很多示例,我会说至少有数万个)李>
- 使用识别一般对象的图像分类 API,例如 Clarifai 或 Imagga - 如果幸运的话,它会注意到快照显示的是鼠标或松鼠(松鼠会咀嚼电缆吗?),但它很可能在像这样的专门任务中,这些引擎会变得相当混乱!
- 使用自定义图像分类 API 服务,它通常比滚动您自己的神经网络甚至更强大,因为它甚至可以使用很多技巧来分类这些图像如果您只为每个图像类别提供少量示例(此处为假/真警报); vize.it 就是一个完美的例子(任何人都可以贡献更多这样的服务吗?)。
实时方面有点开放,因为神经网络需要一些时间来处理图像 - 当使用公共 API 时,您还需要包括数据传输等,但是如果您推出自己的,您将需要花费大量精力来获得低延迟,因为默认情况下框架已针对吞吐量进行了优化(batch 预测)。一般来说,如果您对约 1 秒的延迟感到满意并且拥有良好的互联网上行链路,那么您应该可以接受任何服务。
免责声明:我是 vize.it 的共同创建者之一。