我在屋外遇到了盗窃问题,所以我设置了一个简单的网络摄像头,用 Dorgem (http://dorgem.sf.net) 捕捉每一秒。
Dorgem 确实提供了一项功能,即使用运动检测仅捕获屏幕上正在移动的帧。问题是它使用的运动检测算法非常敏感。由于我廉价的网络摄像头连续拍摄之间的颜色变化,它会熄灭,而且它也会因为房子前面的树在风中飘扬而熄灭。此外,我家门前是人流量大的区域,因此也有大量合法捕获的帧。
我使用 Dorgem 的运动检测平均每秒捕获 2800/3600 帧。这对我来说太多了,无法搜索以找出有趣的活动在哪里。
我希望我可以将相机重新定位到一个更理想的位置,它只会捕捉我感兴趣的区域,这样运动检测会更简单,但这对我来说不是一个选择。
我认为,因为我的相机有一个固定的位置,并且每张照片都在我家门前的同一区域框住,所以我应该能够扫描图像并找出哪些图像在该图像的某个有趣区域有运动,把所有的都扔掉其他框架。
例如:如果像素 320,240 发生变化,那么有人走到我家门前,我想看到那个框架,但是如果像素 1,1 发生变化,那么它只是随风飘扬的树木,框架可以被丢弃。
我看过 pdiff,一个在图片集中查找差异的工具,但它似乎也专注于区分整个图片,而不是它的特定区域:http: //pdiff.sourceforge.net/
我还查看了 phash,这是一种基于人类对图像的感知计算散列的工具,但它似乎太复杂了: http ://www.phash.org/
我想我可以在 shell 脚本中使用 imagemagick 的 mogrify -crop 来实现它来挑选我感兴趣的图像区域,然后运行 pdiff 来找到有趣的区域,并使用它来挑选出有趣的帧。
有什么想法吗?想法?现有工具?