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