FLIR加速热成像FPGA的发展

挑战

加速在FPGA硬件上实现高级热成像滤波器和算法

解决方案

使用MATLAB开发、模拟和评估算法,并使用HDL编码器在FPGA上实现最佳算法

后果

  • 从概念到现场可测试原型的时间减少了60%
  • 增强功能在数小时内完成,而不是数周
  • 代码重用从零增加到30%

“有了MATLAB和HDL编码器,我们对市场需求的反应更加迅速。我们现在接受变化,因为我们可以在几周内将一个新想法应用到具有实时功能的硬件原型上。在工程中有更多的乐趣,因此我们提高了工作满意度和客户满意度。”

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

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

在FLIR系统公司,工程师在MATLAB中开发和模拟高级算法®然后用HDL编码器在FPGA上快速实现.FLIR的图像处理技术经理Nicholas Hogasten说:“在过去,我们很少向我们的客户展示模拟,因为我们的想法将其变成产品需要很长时间。”“最近,我们向一位主要客户展示了一种新型热成像滤波器的模拟,这是我们开发过的最复杂的滤波器。几个月后,当我们向客户展示了第一个使用这种新滤波器的摄像机时,我们的客户欣喜若狂,该摄像机使用HDL编码器生成,并执行了与MATLAB仿真完全一样的操作。”

挑战

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

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

解决方案

FLIR为利用MATLAB和HDL编码器开发基于fpga的热成像算法建立了新的工作流程。

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

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

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

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

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

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

后果

  • 从概念到现场可测试原型的时间减少了60%.Hogasten说:“有了MATLAB和HDL编码器,我们就省去了手工将初始算法翻译成HDL的步骤。”“现在,算法开发人员可以自己制作FPGA原型,这将节省60%的原型制作时间。”

  • 增强功能在数小时内完成,而不是数周. “最近,我请我们的一位工程师对核心过滤器的算法进行了重大修改,”Hogasten报道。“三个小时后,他在MATLAB中进行了更改,并使用HDL编码器将算法重新部署到FPGA上。以前,这种更改需要六周时间。”

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