我想将手机用作CCTV系统来控制房屋中的房间,并在有物体移动时显示警报。分钟,然后通过PHP脚本将其上传到我的服务器。现在,我想比较当前图片和1分钟前的图片,并检测是否有人进入了房间。因此,基本上,我需要比较图片上像素的差异(但还要考虑到云可能只是打招呼并在一分钟内改变了亮度)

是否有人对如何实现该目标或阅读一些文档?

评论

我几年前做了类似的事情。我的技术是将图像分解为20 * 20的网格,找到每个单元格中平均颜色的值(通过获取该单元格中每个像素的平均颜色)并将其存储。对下一张图像进行相同的操作,如果平均颜色之间有足够的差异(我将让您忍受该公差),则可以假设移动。不要将公差设置得如此之细,以至于会发现光线或阴影的细微变化等。

这是有关该主题的有趣文章,您可能会找到有用的codeproject.com/KB/audio-video/Motion_Detection.aspx

CHDK还将图像分成网格。 chdk.wikia.com/wiki/UBASIC/Scripts:_AdaptiveMD对于检测运动而不是检测照明变化,我想说很多网格单元的变化不是运动,而只有几个网格单元的变化是运动。 />

#1 楼

在我看来,您正在寻找的是背景减法技术。在嘈杂的图像和不断变化的照明条件下,这可能并非易事。用于此目的的当前技术水平是低秩矩阵表示,但是它不需要两个,而是需要许多(约)个图像。一些重要的数学运算如下:
每个图像都被视为像素的向量,向量被合并为矩阵,并且该矩阵被分解为低秩矩阵和剩余矩阵。低阶矩阵列是背景,剩余部分是移动的对象。有一些开源的实现,但是仅用于分解本身,而不是完整的图像管道IIRC

这里是用于矩阵分解的论文和代码。http://www.ece.rice。 edu /〜aew2 / sparcs.html

这是CS博客的概述,并链接到其他代码:

https://sites.google.com/site/igorcarron2/ matrixfactorizations

http://nuit-blanche.blogspot.com/search/label/MF

其他一些技术的调查:
http:// www。 vis.uni-stuttgart.de/uploads/tx_vispublications/Brutzer2011-2.pdf

评论


$ \ begingroup $
您是否有意制作此CW?
$ \ endgroup $
–乳香
2011年11月16日13:57

$ \ begingroup $
“ CW”是什么意思?
$ \ endgroup $
–mirror2image
2011年11月17日在9:11

$ \ begingroup $
啊,维基问题。我认为最好将这种相当新的技术引入实际应用中。如果您不同意,请随时将其删除。另外,其他人可能会对这项技术有更多的经验-我才刚开始使用它。
$ \ endgroup $
–mirror2image
2011年11月17日在9:18

$ \ begingroup $
CW是社区Wiki问题。这意味着您不会因答案的投票而获得声誉(在这种情况下为4x10 = 40)。有些人是故意这样回答的,但更多的是偶然的。我已为您还原了此信息,以便您获得代表。从126现在是181 :)
$ \ endgroup $
–乳香
2011年11月17日13:40



#2 楼

请记住:有阴影(不只是亮度)。

我不太喜欢James Webster的想法,因为它基本上是缩小每个维度的分辨率并比较缩小的图像(也我不喜欢阈值-它们是任意的,您必须对其进行测试和调整,直到获得良好的值为止,第二天,由于不同的天气或其他环境影响,这些值可能会过时。

但是,公平地说,我也没有一个很好的解决方案。我的第一个想法是将每个图像与空房间的参考图像进行比较,并对比较图像进行边缘检测。但这也会检测到阴影。但是我想你在阴影和其他物体之间不能有区别……至少我不知道该怎么做。但是也许您可以在两帧之间的边缘检测之后比较结果,因为阴影大部分在缓慢移动(当汽车经过或云层经过时仍然会有问题)

评论


$ \ begingroup $
您想检测突然改变的东西。阴影从一分钟到下一分钟变化不大。不过,太阳的整体亮度会。
$ \ endgroup $
– Endolith
2011年11月3日,13:59

$ \ begingroup $
如果有行驶的汽车,或者通过窗户将其自己的阴影投下,或者通过其前灯将其投下其他物体的阴影。
$ \ endgroup $
– Philipp Wendt
2011年11月3日15:15

#3 楼

“矩阵分解”技术将无法帮助您完成工作! @ mirror2image引用的论文是关于背景减法的,但不是基于“矩阵分解”的。

使用正在运行的视频来检测移动物体(无论是人还是车辆)是一个活跃的研究领域。

作为基本原理,该系统通过对多张图片进行采样并估算传入图像与背景之间的能量差来估计典型的静态背景。如果能量很大,则将像素分类为前景。这样的前景集告诉您系统中是否存在对象的条目。

对您的研究论文的最佳参考(如果真的要实施,它也相对更简单)是-W4 System在这里找到它,并在此处查看Picardi论文作为该技术中其他技术的更详细调查。系统。有许多挑战适用于此问题:这里的方法是应用有效的时间滤波并考虑噪声的方差以使其不受阈值影响。
阴影的存在既不会成为前景,也不会造成歧义。有一些论文对颜色与强度的差异进行建模,以区分阴影与真实的前景。
背景可能很复杂,例如挥舞着树木或大海等。较早的“学习”背景将适应新的背景。

引用最多的地标论文之一是“壁花算法”,它显示了组合各种此类方案以产生鲁棒的移动物体检测的最佳方法。

#4 楼

我不知道确切的解决方案,但是您应该对图像进行某种哈希处理;从图像中提取的较小数据集,比整个图像要好。

我认为颜色直方图是一个不错的选择。图像到区域并为这些区域制作单独的直方图,您可以确定入侵者的位置/路径。

评论


$ \ begingroup $
非常感谢,我将等待其他解决方案,如果我找不到更好的解决方案,将接受您的解决方案。仅供参考,我不想确定入侵者的路径,因为1分钟还不够,但是发送警报非常好。谢谢。
$ \ endgroup $
–Profete162
2011年11月2日,11:32

$ \ begingroup $
注意,一些入侵者可能会在1分钟内完成!尽可能进行频繁检查。如果您的程序太慢,请降低图像分辨率。
$ \ endgroup $
–ern0
2011年11月2日,11:36

$ \ begingroup $
是的,实际上,我计划每10秒拍摄一张照片,并且仅在检测到入侵者时才上传照片,或者在没有问题时才上传每分钟。
$ \ endgroup $
–Profete162
11年2月2日,11:39

#5 楼

两次求差,即求差可能会有所帮助。因此,如果某些区域像素的双导数大于阈值,则可以将其称为有人进入房间。亮度的变化将使整个图像的梯度大致恒定,但是采用Hessian或双导数将很好地指示房间的运动或主要变化。