用户故事

FLIR加速热成像FPGA的发展

挑战

加速在FPGA硬件上实现先进的热成像滤波器和算法

解决方案

使用MATLAB开发、模拟和评估算法,并使用HDL Coder在fpga上实现最佳算法

结果

  • 从概念到现场测试原型的时间缩短了60%
  • 改进在几小时内完成,而不是几周
  • 代码重用从0增加到30%

“有了MATLAB和HDL Coder,我们可以更快速地响应市场需求。我们现在拥抱变化,因为我们可以在短短几周内将一个新想法转化为一个实时硬件原型。做工程更有乐趣,所以我们提高了工作满意度和客户满意度。”

Nicholas Hogasten, FLIR系统公司
原始图像(上)和使用HDL Coder开发的滤镜后的图像(下)。

热成像红外摄像机广泛应用于商业领域,包括安防、消防、气体泄漏检测、测试测量等。摄像机内的fpga对传感器和探测器产生的信号进行过滤和处理。通常,将一个新的信号处理概念转化为在生产相机上实时运行的算法是一个漫长的过程,因为硬件工程师必须将算法工程师开发的算法转化为HDL,而不熟悉算法的工作原理。

在FLIR系统,工程师们在MATLAB中开发和模拟高级算法®然后用HDL编码器在fpga上快速实现它们.FLIR图像处理技术经理Nicholas Hogasten表示:“在过去,我们很少向客户展示模拟,因为我们的想法可能需要很长时间才能变成产品。”“最近,我们向一位重要客户展示了一种新型热成像滤波器的模拟,这是我们开发过的最复杂的滤波器。几个月后,当我们向客户展示了第一台使用这种新型滤镜的相机时,我们的客户欣喜若狂,该相机使用HDL Coder生成,并且与MATLAB模拟完全相同。”

挑战

FLIR早期开发过程中的困难源于开发新思想和算法的算法工程师和在fpga上实现算法的硬件工程师之间的脱节。算法工程师将评估降噪或动态范围压缩的新技术,然后将书面规范交给硬件工程师,而硬件工程师可能不完全了解算法。

Hogasten说:“通常,FPGA实现不会像我们的模拟那样执行,我们永远不知道实现或算法是否存在问题。”此外,由于硬件工程师对算法没有深入的了解,他们不知道在优化算法时做出哪些假设是安全的。如果我们后来对算法做了一个小的增强,大部分HDL可能都必须重写。”

解决方案

FLIR利用MATLAB和HDL Coder开发了一种基于fpga的热成像算法的新工作流程。

算法工程师使用MATLAB和图像处理工具箱探索基于形态运算和多维图像滤波的新算法。

这些工程师选择用于实现的算法,并确定映射到目标FPGA硬件的算法组件。在此分区过程中,团队将图像处理工具箱中的高级函数替换为支持代码生成的MATLAB代码。金宝app图像处理工具箱算法提供了一个黄金参考,简化了FLIR的自定义MATLAB代码的验证。

为了实现位真仿真和分析,工程师们在HDL Coder中使用集成的浮点到定点工作流来自动将浮点MATLAB算法转换为使用定点设计器结合算术和数据类型的定点MATLAB代码

为了支金宝app持FLIR使用的其他测试环境,团队使用MATLAB Coder从生成的定点MATLAB代码生成C代码和墨西哥文件。

接下来,该团队使用HDL Coder从MATLAB算法生成可合成的HDL代码。然后在FPGA上实现并测试HDL代码,并将结果与定点MATLAB算法的结果进行验证。

在一个相关的项目中,工程师使用MATLAB编译器和图像采集工具箱构建一个应用程序,从相机和帧抓取器获取图像,使用各种算法处理它们,并显示结果。该应用程序使其他FLIR工程师能够评估一系列输入的算法,即使他们没有安装MATLAB。

结果

  • 从概念到现场测试原型的时间缩短了60%.Hogasten说:“通过MATLAB和HDL Coder,我们省去了手工将初始算法转换为HDL的步骤。”“现在算法开发人员可以自己制作FPGA原型,这将原型制作时间缩短了60%。”

  • 改进在几小时内完成,而不是几周.Hogasten说:“最近,我要求我们的一位工程师对核心过滤器进行重大算法更改。三小时后,他在MATLAB中进行了更改,并使用HDL Coder将算法重新部署到FPGA。以前,这种改变需要6周的时间。”

  • 代码重用从0增加到30%.Hogasten说:“我们现在有一个通用的算法库、简单组件和MATLAB代码,这些代码已经被验证为HDL代码生成。”“以前,我们几乎没有代码重用,但今天我们重用了30%的MATLAB代码来为其他项目生成HDL。”