在一组监控摄像头图像中查找重要图像
我在屋外遇到过盗窃问题,所以我设置了一个简单的网络摄像头,用 Dorgem (http://dorgem.sf.net) 捕捉每一秒。
Dorgem 确实提供了一项功能,可以使用运动检测来仅捕获屏幕上正在移动的物体的帧。问题是它使用的运动检测算法极其敏感。它之所以会消失,是因为我的廉价网络摄像头连续拍摄的照片之间的颜色存在差异,而且它也会因为房子前面的树木在风中吹动而消失。另外,我家的前面是人流量大的区域,所以也有大量合法捕获的帧。
我使用 Dorgem 的运动检测平均每秒捕获 2800/3600 帧。这对我来说太多了,无法通过搜索来找出有趣的活动在哪里。
我希望我可以将相机重新定位到一个更佳的位置,它只会捕获我感兴趣的区域,这样运动检测就会更简单,但这对我来说不是一个选择。
我认为因为我的相机有一个固定的位置,并且每张照片都在我家前面的相同区域拍摄,所以我应该能够扫描图像并找出哪些图像在该图像的某个有趣区域中有运动,从而丢弃所有图像其他框架。
例如:如果像素 320,240 发生变化,那么有人走到了我的房子前面,我想看到该帧,但如果像素 1,1 发生变化,那么它只是在风中吹动的树木,而该帧可以被丢弃。
我研究过 pdf,一个用于查找图片集中差异的工具,但它似乎也专注于比较整个图片,而不是其中的特定区域: http://pdiff.sourceforge.net/
我还研究了 phash,一个计算哈希值的工具基于人类对图像的感知,但它似乎太复杂了: http://www.phash.org/
我想我可以使用 imagemagick 的 mogrify 在 shell 脚本中实现它 -裁剪以挑选我感兴趣的图像区域,然后运行 pdf 来查找有趣的区域,并使用它来挑选出有趣的帧。
有什么想法吗?想法?现有工具?
I've had theft problems outside my house so I setup a simple webcam to capture every second with Dorgem (http://dorgem.sf.net).
Dorgem does offer a feature to use motion detection to only capture frames where something is moving on the screen. The problem is that the motion detection algorithm it uses is extremely sensitive. It goes off because of variations in color between successive shots on my cheap webcam, and it also goes off because the trees in front of the house are blowing in the wind. Additionally, the front of my house is a high traffic area so there is also a large number of legitimately captured frames.
I average capturing 2800/3600 frames every second using Dorgem's motion detection. This is too much for me to search through to find out where the interesting activity is.
I wish I could re-position the camera to a more optimal position where it would only capture the areas I'm interested in, so that motion detection would be simpler, however this is not an option for me.
I think that because my camera has a fixed position and each picture frames the same area in front of my house, then I should be able to scan the images and figure out which ones have motion in some interesting region of that image, throwing out all other frames.
For example: if there's a change in pixel 320,240 then someone has stepped in front of my house and I want to see that frame, but if there's a change in pixel 1,1 then its just the trees blowing in the wind and the frame can be discarded.
I've looked at pdiff, a tool for finding diffs in sets of pictures, but it seems to be also focused on diffing the entire picture, rather than a specific region of it:
http://pdiff.sourceforge.net/
I've also looked at phash, a tool for calculating a hash based on human perception of an image, but it seems too complex:
http://www.phash.org/
I suppose I could implement it in a shell script using imagemagick's mogrify -crop to cherry pick the regions of the image I'm interested in, then running pdiff to find the interesting ones, and using that to pick out the interesting frames.
Any thoughts? ideas? existing tools?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
裁剪然后使用 pdf 对我来说似乎是最好的选择。
cropping and then using pdiff seems like the best choice to me.