我想将手机用作CCTV系统来控制房屋中的房间,并在有东西移动时显示警报。
现在,我成功完成的工作是每分钟抓一张图片,并通过PHP脚本将其上传到我的服务器。现在,我想比较当前图片和1分钟前的图片,并检测是否有人进入了房间。因此,基本上,我需要比较图片上像素的差异(但还要考虑到云可能只是打个招呼并在一分钟内改变了亮度)
有谁知道如何实现这一目标或阅读一些文档吗?
我想将手机用作CCTV系统来控制房屋中的房间,并在有东西移动时显示警报。
现在,我成功完成的工作是每分钟抓一张图片,并通过PHP脚本将其上传到我的服务器。现在,我想比较当前图片和1分钟前的图片,并检测是否有人进入了房间。因此,基本上,我需要比较图片上像素的差异(但还要考虑到云可能只是打个招呼并在一分钟内改变了亮度)
有谁知道如何实现这一目标或阅读一些文档吗?
Answers:
在我看来,您正在寻找的是背景减法技术。在嘈杂的图像和不断变化的照明条件下,这可能并非易事。用于此目的的当前技术水平是低秩矩阵表示,但是它不需要两个,而是需要许多(约)个图像。一些重型数学运算如下:将每个图像视为像素向量,将向量组合成矩阵,然后将这个矩阵分解为低秩矩阵和残差。低阶矩阵列是背景,剩余部分是移动的对象。有一些开源的实现,但是仅用于分解本身,而不是完整的图像管道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
切记:有阴影(不只是亮度)。
我真的不喜欢詹姆斯·韦伯斯特(James Webster)的想法,因为它基本上是缩小每个维度的分辨率并比较缩小的图像(我也不喜欢阈值-它们是任意的,您必须对其进行测试和调整直到获得良好的价值,第二天由于不同的天气或其他一些环境影响,这些价值可能已过时)
但公平地说,我也没有一个很好的解决方案。我的第一个想法是将每个图像与空房间的参考图像进行比较,并对比较图像进行边缘检测。但这也会检测到阴影。但是我想你在阴影和其他物体之间不能有区别……至少我不知道该怎么做。但是也许您可以在两帧之间的边缘检测之后比较结果,因为阴影大部分在缓慢移动(当汽车经过或云层经过时仍然会有问题)
“矩阵分解”技术将无法帮助您完成工作!@ mirror2image引用的论文是关于背景减法的,但不是基于“矩阵分解”的。
使用跑步视频检测运动物体(是人类还是车辆)是研究的活跃领域。
作为基本原理,该系统通过对多张图片进行采样并估计传入图像与背景之间的能量差来估计典型的静态背景。如果能量很大,则将像素分类为前景。这样的前景集告诉您系统中是否存在对象的条目。
你的研究论文(还有,如果你想真正实施起来相对简单)的最佳参考是- W4系统发现它这里看看皮卡迪纸这里作为系统中的其他技术的更详细的调查。
有许多挑战适用于该问题:
噪声的存在产生了很大的歧义性问题。这里的方法是应用有效的时间滤波并考虑噪声的方差以使其不受阈值影响。
阴影的存在既不会成为前景也不会造成歧义。有些论文对颜色与强度的区别进行建模,以区分阴影与真实的前景。
背景可能很复杂,例如挥舞着树木或大海等。
背景可以具有缓慢或突然的照明变化,其中较早的“学习”背景随后适应于新的背景。
引用最多的地标论文之一是“ 壁花算法”,它显示了组合各种此类方案以产生可靠的移动物体检测的最佳方法。
我不知道确切的解决方案,但是您应该对图像进行某种哈希处理;从图像中提取的较小数据集,比整个图像具有更好的可比性。
如果将图像划分为多个区域,并为这些区域制作单独的直方图,则可以确定入侵者的位置/路径。