用户故事

麻省理工学院CSAIL研究人员开发了视频处理算法来放大微小的移动和颜色变化

挑战

分析视频,以检测和放大不可察觉的运动和变化的颜色

解决方案

使用MATLAB开发和细化空间分解和时间滤波算法,并行计算工具箱加速它们的执行,并使用MATLAB编译器将它们打包为独立软件

结果

  • 与其他研究人员的合作得到了改善
  • 多个实验并行进行
  • 支持与其他编程语言集成

“对于我们团队来说,MATLAB的主要优势包括能够快速原型化我们的算法,使用伟大的可视化工具调试它们,然后轻松地与视觉研究社区的其他人分享代码。”

迈克尔·鲁宾斯坦,麻省理工学院计算机科学和人工智能实验室
利用欧拉视频放大技术实现人体脉冲的可视化。

利用欧拉视频放大技术实现人体脉冲的可视化。


麻省理工学院计算机科学和人工智能实验室(CSAIL)的研究人员开发了一种视频放大算法,可以使人眼几乎察觉不到的变化,如运动和颜色变化。该团队最初开发的技术是通过检测每一次脉搏引起的皮肤颜色的细微变化来测量视频流中的心跳。他们随后将其应用于许多其他应用,包括研究振动物体的视频,以重建周围声音或估计物体的材料属性。

CSAIL团队使用了MATLAB®开发、改进和部署它们视频放大算法

“像许多研究团队和大学一样,我们重视快速测试想法的能力,”CSAIL研究机构的迈克尔•鲁宾斯坦(Michael Rubinstein)说。“有了MATLAB,我可以很快地写出一个原型算法,看看它是否可行。然后我可以与学生和合作者分享,进一步构建和完善原型。”

挑战

摄像机并不是检测微小颜色变化或振动的最佳传感器,在视频记录中,许多颜色变化都以极小的强度变化出现。为了检测这些微妙的信号,该团队需要实现空间滤波算法,将单个像素的测量值聚合起来。他们还需要时间过滤算法来分析这些总量是如何随时间变化的。

在开发出初始算法后,团队需要通过使用多个计算核心来处理多帧或并行测试算法的多个配置来加速它们的执行。此外,研究人员希望与其他视觉研究人员分享他们的代码,并使任何人都能使用他们的方法处理视频。

解决方案

CSAIL研究人员在MATLAB中开发了视频放大算法,使用并行计算工具箱™进行加速,并使用MATLAB Compiler™进行部署。

在MATLAB中使用Image Processing Toolbox™,该团队实现了一个初始空间分解算法,该算法在多个尺度上分析每个像素周围的区域,以生成帧中该点的准确颜色测量值。为了提高精度,他们后来更新了这个算法,使用图像子带(空间)相位的变化,从应用到帧的局部小波计算,而不是直接使用颜色。

部分空间分解算法是基于另一所大学的研究人员编写的代码。该团队将这段代码(包含MATLAB和MEX函数)整合到他们的MATLAB实现中。

对于时间滤波算法,团队使用MATLAB和DSP System Toolbox™将傅里叶变换以及Butterworth等通带滤波器应用于通过空间分解生成的信号。这种过滤使算法能够通过聚焦于研究人员想要放大或分析的运动或颜色变化的特定频率范围来减少噪声。

在算法开发过程中,团队在MATLAB中生成图形来可视化信号。

使用并行计算工具箱,该团队通过在24核计算机上同时处理多帧来加快算法的执行。他们还并行进行了多个实验,以快速测试和调整算法参数。

在与其他研究人员分享了他们的结果和MATLAB代码后,CSAIL研究人员使用MATLAB编译器为Windows创建了独立版本的算法®, Linux®,以及Mac OS X操作系统。任何人都可以使用这些版本,即使他们没有安装MATLAB。

结果

  • 与其他研究人员的合作得到了改善。“计算机视觉社区的许多研究人员使用MATLAB,”鲁宾斯坦说。MATLAB代码通常比c++代码更容易阅读,因此学生或其他受项目启发的研究人员可以下载代码并理解它。对我们来说,编译任何人都可以使用的可执行文件很简单。”
  • 多个实验并行进行。鲁宾斯坦指出:“我们研究的很大一部分是尝试和应用不同的想法和算法,以测试哪种效果更好。”“并行计算工具箱为我们提供了一种非常简单、可访问的方法来并行运行多个实验或并行处理多个帧——通常只需要将for循环改为parforloop。”
  • 支持与其他编程语言集成。“我们使用的许多MATLAB函数提供了足够的性能来满足我们的需要,”Rubinstein说。“如果我们确实需要加速算法的某个特定部分,MATLAB可以灵活地用c++编写它,并将其作为一个MEX函数包含,可以方便地从MATLAB代码中调用。”

麻省理工学院是世界上提供MATLAB和Simulink校园访问的1300所大学之一。金宝app通过校园范围许可,研究人员、教师和学生可以访问最新版本的产品的公共配置,以便在教室、家中、实验室或实地使用。下载188bet金宝搏