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

挑战

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

解决方案

使用MATLAB开发和改进空间分解和时间过滤算法,并行计算工具箱,以加速其执行,并将MATLAB编译器包装为独立软件

结果

  • 与其他研究人员合作改善
  • 多个实验并行运行
  • 与其他编程语言集成

“对于我们的小组来说,Matlab的主要优势包括快速原型的能力,使用Great Visualization Tools调试它们,然后轻松与视觉研究界中的其他人共享代码。”

Michael Rubinstein,麻省理工学院计算机科学和人工智能实验室

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

CSAIL团队使用MATLAB®开发,完善和部署他们的视频倍率算法

“像许多研究团队和大学一样,我们重视迅速考验思想的能力,”CSAIL Rubinstein,CSail Rubinstein说,Csail Rubinstein说。“使用MATLAB,我可以快速编写原型算法,看看它是否有效。然后,我可以与学生和合作者分享它,以进一步建立并改进原型。“

挑战

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

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

解决方案

CSAIL研究人员在MATLAB中开发了视频倍率算法,将它们加速了并行计算工具箱™,并使用MATLAB Compiler™部署它们。

使用图像处理工具箱™的MATLAB工作,该团队实现了初始空间分解算法,该初始空间分解算法分析了几个尺度的每个像素周围的区域,以在帧中的该点产生精确的颜色测量。为了提高精度,稍后将该算法更新以使用从应用于帧的本地小波计算的图像子带的(空间)阶段的变化而不是直接使用颜色。

空间分解算法的一部分是基于另一所大学的研究员编写的代码。该团队将此代码纳入了Matlab和MEX函数的代码,进入其MATLAB实现。

对于临时过滤算法,团队使用MATLAB和DSP系统工具箱™将傅立叶变换应用于通过空间分解产生的信号,并将其它通带滤波器应用于通过空间分解产生的信号。这种过滤使算法通过专注于研究人员想要放大或分析的特定频率范围来降低噪声来降低噪声。

在算法开发期间,团队在MATLAB中生成的绘图以可视化信号。

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

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

结果

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

麻省理工学院是全世界1300所大学,提供校园广泛的Matlab和Simulink。万博1manbetx凭借校园广泛的许可证,研究人员,教师和学生可以在最新的释放级别获得产品的常见配置,以便在课堂上使用家庭,在实验室或现场。s manbetx 845