用户故事

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

挑战

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

解决方案

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

结果

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

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

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

利用欧拉视频放大技术可视化人体脉搏。


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

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

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

挑战

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

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

解决方案

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

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

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

对于时间滤波算法,该团队使用MATLAB和DSP系统工具箱™将傅里叶变换以及巴特沃斯和其他通带滤波器应用于通过空间分解生成的信号。这种滤波使算法能够通过关注研究人员想放大或分析的运动或颜色变化的特定频率范围来降低噪声。

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

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

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

结果

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

麻省理工学院是全球1300所提供MATLAB和Simulink校园访问的大学之一。金宝app有了校园范围的许可,研究人员、教师和学生可以访问最新版本的产品的公共配置,以便在任何地方使用——在教室、在家里、在实验室或在现场。下载188bet金宝搏