见看不见





几年前哈布雷下滑所提到一个有趣的算法两篇文章。文章,但是,写nechitabilno。在“新闻»( 1 ,的 2 ),但链接到该网站存在,有可能找出在位置细节(算法作者MIT)。并有魔力。绝对神奇算法,允许看到不可见的。两位作者哈布雷没有注意到它,并专注于一个事实,即算法,让我们看到了脉搏。已经错过了最重要的事情。

该算法使我们能够加强运动,无形的眼睛,以示从未见过活着的东西。视频略高 - 介绍的算法了C cfqnf麻省理工学院的第二部分。 Microsaccades,列从第二29日起,以前观察到的只是作为安装在瞳孔反射镜的反射。在这里,他们通过眼睛看到的。
几个星期前,我再次遇到了文章。我立刻开始好奇:什么人在做这两年准备?但是......虚空。它定义了以下有趣的一周半。我想做出同样的算法,并找出你可以用它做什么,为什么它仍然不是在每一个智能手机,至少一个脉冲。
这篇文章将是一个很大的垫子的视频,图片,一段代码,并回答了提问。

让我们先从数学(我不会粘到任何一个特定的物品,并且将干预不同物品的不同部分,对于一个流畅的叙述)。一个研究小组对算法的第二部分主要作品:
1)欧拉视频放大倍率为揭示微妙的变化,在世界
2),Based_Video.pdf"> href="http://people.csail.mit.edu/billf/publications/Phase基于相位
在第一项研究中实现的振幅的方法,更粗,快速。我把它作为基础。除此以外的信号相位的振幅的第二纸被使用。这样就可以更加逼真,清晰的画面。上面的视频是专门为这项工作应用。减 - 更复杂的算法和处理,故意从实时而不使用视频卡的出发

开始?什么是运动的增益?加强运动,就是当我们预测在哪个方向的信号将混合和移动更远的方向发展。

假设我们有一个一维的接收器。在接收机中,我们可以看到,信号I(X,T)=函数f(x)。在上绘制黑色(在一定点t)的图象。在接下来的时间信号I(X,T + 1)=函数f(x +Δ)(蓝色)。放大该信号,这意味着接收信号I'(X,T + 1)=函数f(x 1 +(1 +α)Δ)。在这里,α - 增益。扩展它在泰勒级数它可以表示为如下:
让:
什么是B?粗略地讲它是I(X,T + 1) - I(X,T)。借鉴:

当然,这是不准确的,但作为一个粗略的近似降序(蓝色曲线pokazyaet形式,如“priblizhenongo”信号)。如果我们乘B(1 +α),这将是“加强”的信号。获取(红色曲线):

在实帧可以包含几个动作,每个将去以不同的速度。上述方法 - 线性预测,没有阐述,他打破了。但是,有一种传统的方法来解决这个问题,这是用来在工作 - 传播从频率响应(空间和时间)的移动

在第一阶段分解的图像的空间频率。这一阶段还实现了接收差分∂F(X)/狓。在第一的做工没有告诉他们如何实现它。在 的第二工作中,通过使用一个阶段方法中,振幅和相位滤波器Gabbora考虑以不同的顺序:

关于我做什么,以过滤:
和归一化的值来
这里升 - 从所述过滤器的中心的像素的距离。当然,我有点接受伪造的过滤器只有一个窗口值σ。这加速了计算。这给出了一个稍微模糊的照片,但我决定不争取的准确性。
回到公式。假设我们要放大信号,从而在临时帧序列中的频率ω的特性的响应。我们已经拿起了特征空间滤波器与一个窗口σ。这让我们在每个点的近似差。正如从公式清楚 - 只有暂时的功能给我们的进展和增益的反馈。由要加强的频率的正弦相乘(它将起到给予响应时间)。我们得到:
当然,比原来的文章要容易得多,但问题少一点的速度。

代码,并将结果源的第一篇文章奠定了在开放获取Matlab的:。看来,为什么另起炉灶,写你自己的?但也有很多原因,主要是依赖于Matlab的:
  1. 如果你再想到做的Matlab代码的东西合理和适用的更难比C#+ OpenCV的使用,移植在几个小时++。原代码与引导保存的视频,有一个恒定比特率的工作。为了能够使用被连接到具有一个可变比特率需要改变逻辑的计算机相机。
  2. 原代码实现了最简单的算法,其未经馒头。实现一个稍微复杂版本的包子 - 已经一半的工作。此外,尽管该算法是原来的,其输入参数不是那些物品。
  3. 原码周期性地导致了死挂起计算机(即使没有蓝屏)。也许只是我,但你不舒服。
  4. 在原来的代码是唯一的控制台模式。尽一切视觉Matlab的,这是我所知道的是更糟糕的VS,这将是更长的时间比改写一切。 源< / A>我贴在github.com和评论的细节。该方案从相机和实时分析实现捕获视频。优化稍微向左转,但你可以锁起来,扩大选择。这割礼在优化的名称:
    1. 使用的帧以减小尺寸。大大加快了工作。在窗体没能推导出帧的大小,但如果你打开​​代码,行:。&QUOT; _capture.QueryFrame()转换&LT; BGR,浮&GT;()PyrDown()PyrDown();&QUOT;这是它仅使用空间滤波器之一。对于其中的运动称为不加批判的期望损失的情况。管理参数滤波器形状(波长Gabor滤波器)。仅使用一个频率,强调时间序列。当然,这是可以做到的卷积与预先计算的窗口而几乎没有损失性能的光谱,但这种方法也工作得很好。对于任何形式的控制滑块,或输入的限制值。 一个小纸条。所有得到的结果在传统网络相机在家里。当使用相机时具有良好的参数+三脚架+适当的照明+为50Hz干扰抑制质量显著改善。我的目标是不要让美丽的图画或改进的算法。我们的目标 - 让在家里的效果。那么,作为奖励,我仍然会做一个记录脉冲,当我玩Starctaft 2 ......有趣的是,据电子竞技运动依然。
      其结果是,获得了逻辑运算如下:
      这是简单的离谱。对于如此普遍认识框架的例子增量总和:
      &LT;代码&GT;对于(INT X = 0; X&LT; IC [中共] .I.Width; X ++)为(INT Y = 0; Y&LT; IC [中共] .I.Height; Y ++){ FF2.Data [Y,X,0] =阿尔法* FF2.Data [Y,X,0] /计数器; ImToDisp.Data [Y,X,0] =(字节)Math.Max​​(0,Math.Min((FF2.Data [Y,X,0] + ImToDisp.Data [Y,X,0]),255) ); }&中尉; /码&GT; (是的,我知道,与OpenCV的是不是最好的方式)
      某处的90%的代码是不是内核,我板套件周围。但实现原子核的已经给出了很好的结果。它被看作是膨胀的胸部几十呼吸厘米,被看作是维也纳膨胀的摇摇头,时间与脉冲。




      这里,详细解释了为何脉冲的漏接头。事实上,它的血馅返回心脏:


      关于在麻省理工学院的美当然一点点爱漂亮的效果。 ,因此,尽量让他们成为最美丽的方式。其结果是,观看者得到的印象是,这尤其是,它是一个整数。不幸的是没有。膨胀的静脉中可以看出,只有当正确设置照明(影子应该引起皮肤的图案)。改变脸部的颜色 - 无自动校正刚刚好摄像头,用合适的光线,并把其中有明显的问题,心脏的男子(视频是一个大男人和早产)。例如,在与黑人,他的心脏没事,你没看到皮肤的亮度波动,增益改变微动的树荫的例子(影子就在于巧妙地从上向下)。

      特征分析静止。在视频中清晰可见的呼吸和脉搏。让我们尝试让他们。最简单的事情,想到 - 总结相邻帧之间的差异。由于呼吸时波动几乎整个身体 - 这个特点应该是可见的
      。 通过富里叶变换所得的图形通道,考虑光谱(图中的求和在16秒的时间间隔计算出的光谱收集统计某处在5分钟内)。
      见看不见

      在0.6-1.3的频率明显清晰的峰值,是不是噪音的特点。因为呼吸不是正弦曲线的过程,并具有两个不同的峰值(与呼吸)的过程中,频率差图像必须等于呼吸的两倍的频率。呼吸频率我是什么地方10次在30秒(0.3赫兹)。其增加一倍 - 0.6HZ。即近似等于揭示跟踪最大值。但是,当然,其确切值不能发言。除了呼吸拉到足够的身体,这极大地败坏了画面的精细运动技能。
      有一个在2.625HZ一个有趣的峰值。显然,这使得它的方式向代练矩阵。矩阵蠕变带在该频率,成功地产生一个最大。
      顺便提及,在双脉冲频率应该在相同的范围躺下约,因此该方法不应该在它的工作。而事实上:
      见看不见

      这个频谱找不到一个脉冲。
      在他的作品中的一个给定的MIT是另一种方式来衡量心脏速率,计算出<一href="https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9B%D1%83%D0%BA%D0%B0%D1%81%D0%B0_%E2%80%94_%D0%9A%D0%B0%D0%BD%D0%B0%D0%B4%D0%B5">оптический
      流在脸上,并确定该流的其频率。所以,我没有(上议事日程太谱):
      见看不见

      见看不见

      最好的看到的,我把频谱最大值的数目的图表方法:
      见看不见

      为什么最大的心脏速率* 3,我不知道怎么解释,但是这恰恰是最大的,它与脉冲:)
      我想只提了脉冲以这种方式需要坐直,不要动。在游戏星际争霸中是不可能的,频率不会被删除。呵呵......而这个想法!我们必须得到一个心脏监测仪,它是有趣的,现在变成!

      所以,结果这样一来,我很清楚地形成对算法的界限的意见,很明显他有什么限制:
      为什么他没有成为流行的用于测量脉搏? 质量为Web摄像头的电脑抓在边境,甚至是缺乏的。在Android中显然是不够的表现。仍然是专业测量的专用设备。但它们是十分昂贵的,对外部条件(照明,闪烁的光,黑暗,摇),以及质量会比证明工具拍摄脉冲下并不稳定。
      为什么不是用来评估房屋,桥梁,起重机波动的算法?同样。特殊的设备更便宜,而且提供了更高的精度。
      在哪里可以使用,是否有可能呢?我​​觉得你可以。在必要的可视性。科学拍摄一部电影,教育节目。精神科医生的培训,心理学家,拿起艺术家(见最小的人体运动,增加面部表情)。对于谈判的分析。当然,这是没有必要使用一个简单版本的算法,并且版本,他们在过去的工作,并基于分阶段。在这种实时的这一切将是很难看,性能是不够的,但一切都vidyuhi rasparalelit。但是你可以在事后看到的。

      太阳当你阅读的同志们的工作和观看视频偷渡怀疑之下并无新事。地方我看到了这一切。在这里,你看,想,想。然后他们展示了如何使用相同的算法,并采取稳定月亮的运动,去除噪声气氛的视频。然后在闪蒸:“是这样的噪声抑制算法,只用正反馈!!”。而不是抑制杂散动态,并就加强了他们。如果我们取α&LT; 1,则该连接再次与负移动远离
      ! 当然,在运动的抑制算法,并摇晃稍微不同的数学和略有不同的方法。但实际上完全相同的光谱时空管的分析。
      虽然说有svisnul算法被愚蠢的。在麻省理工学院真正注意到一个小小的有趣的功能,开发它,并得到了一个整体的理论与这样美丽而神奇的图像。

      最后:程序员,要小心的算法,根据对专利的网站的音符。允许使用用于教育目的。当然,在俄罗斯没有申请专利的算法。但是要小心,如果你能做到基于它的东西。俄罗斯之外,也可能是非法的。

      地下室 网站有关麻省理工学院的研究上加强运动
      的话题 我的源

      Z.YU.并告诉我的心脏监测仪,它可以甩开数据在PC机上,最好为Android线程的界面了?

      资料来源: habrahabr.ru/post/232515/