用户故事

FLIR加速了热成像FPGA的发展

挑战

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

解决方案

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

结果

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

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

尼古拉斯·霍加斯顿,FLIR系统公司
原始图像(上)和使用HDL Coder开发的滤波后的图像(下)。

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

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

挑战

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

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

解决方案

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

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

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

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

为了支持FLIR使用的其他测试环境,该团队使用了MATLAB Coder从生成的定点MATLAB代码中生成C代码和mex文件。

接下来,该团队使用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。”

Baidu
map