将eFPGA应用于嵌入式360度视域视觉系统中

电子说

1.3w人已加入

描述

作者:Alok Sanghavi,Achronix Semiconductor资深产品营销经理

引言:2018年4月11日,工业和信息化部、公安部和交通运输部联合发布“关于印发《智能网联汽车道路测试管理规范(试行)》的通知”,为我国智能网联汽车道路测试提供了相关法律依据。三部委在赋予智能网联汽车上路资格的同时,也提出了若干严格的条件。

其中,在第二章“测试主体、测试驾驶人及测试车辆”的第七条第(四)点中,三部委要求:具备车辆状态记录、存储及在线监控功能,能实时回传下列第1、2、3项信息,并自动记录和存储下列各项信息在车辆事故或失效状况发生前至少90秒的数据,数据存储时间不少于3年:

1. 车辆控制模式;

2. 车辆位置;

3. 车辆速度、加速度等运动状态;

4. 环境感知与响应状态;

5. 车辆灯光、信号实时状态;

6. 车辆外部360度视频监控情况;

7. 反映测试驾驶人和人机交互状态的车内视频及语音监控情况;

8. 车辆接收的远程控制指令(如有);

9. 车辆故障情况(如有)。

由此可以看出,上述条件除了对进行道路测试的智能网联汽车有若干功能性要求外,还在相关领域将推动若干新一代通信、监控、控制和存储等技术的发展,为智能网联汽车专用SoC的开发提供新的市场机会。

嵌入式FPGA(eFPGA)将在这类芯片中扮演重要角色。如为了满足第六条中提到的车辆外部360度视频监控数据的获取和处理,采用eFPGA来设计相关功能芯片具有很明显的优势。作为同时提供独立FPGA芯片和eFPGA IP产品的公司,Achronix可以帮助智能汽车SoC设计人员先在FPGA芯片上开发和调试相关功能,而在市场进入批量化应用后无需显著修改设计,立即将设计移植到搭载了eFPGA的SoC之上。

带有多个高分辨率摄像头的嵌入式360°视域视觉系统已经进入了各种应用中,如汽车传感器融合、视频监控、目标检测、运动分析等。在此类系统中,多个实时摄像机的视频流(最多6个) 被汇聚在一起逐帧处理,进行失真和其他图像伪影校正,调整曝光和白平衡,然后动态拼接成一个360°全景视图,以4K清晰度和60 fps帧频输出,最终投影到一个球形坐标空间上。

目前用于此类应用的高分辨率鱼眼相机镜头通常具有一个广角视域(FOV)。环视相机系统最大的瓶颈之一是: 实时到或从外部存储器存储/读取和访问多路摄像机输入数据,然后将其作为一个单一帧进行处理。硬件需要在一帧延迟内,在输入摄像机传入的原始传感器数据和拼接输出视频之间完成处理运行。

高性能计算平台一直朝着与CPU一起协同使用FPGA的方向发展,以便为实时图像处理任务提供专门的硬件加速。 这种配置使得CPU能专注于特别复杂的算法,其中它们可以快速切换线程和上下文,并将重复性任务分配给一个FPGA,以充当可配置的硬件加速器/协处理器/卸载引擎。 即使将FPGA和CPU作为分立器件使用,系统也可以提高整体效率,因为这些技术不会发生冲突,而是像将手套戴在手上一样来配合在一起。

例如,从鱼眼镜头获得的图像遭受严重失真之苦,因而基于多个相机视频生成的拼接操作是高度计算密集型的任务,其原因为它是点像素操作。这种拼接需要大量的实时图像处理和高度并行化的架构。但是,这种下一代的应用超过了FPGA可不断接续实现的性能,主要是由于芯片吞吐数据的延迟。这反过来会影响整个系统的整体延迟、吞吐速度和性能。

在一个SoC中加入可与CPU一起嵌入的eFPGA半导体知识产权(IP)。与一个独立的FPGA芯片加CPU解决方案相比,嵌入式FPGA阵列结构具有独特的优势,主要优势在于性能更强。一个eFPGA可通过一个宽的并行接口直接连接到ASIC(无I / O缓冲器)上,提供显著提高的吞吐量,以及以个位数时钟周期来计数的延迟。低延迟是复杂的图像实时处理过程的关键,例如纠正鱼眼镜头的失真这样的处理。

利用Speedcore eFPGA IP,客户可以定义其逻辑、内存和DSP资源需求,然后Achronix可配置其IP以满足他们的需求。查找表(LUTs)、RAM单元块和DSP64单元块可以像积木一样进行组合,为任何给定的应用创建最佳的可编程结构。

除了标准逻辑、嵌入式存储器和DSP单元模块之外,客户还可以在Speedcore eFPGA结构里面定义他们自己的功能块。通过把这些定制功能模块与传统构建模块一起集成到逻辑阵列结构中,可添加优化过的功能来减少面积和提高目标应用的性能,可使eFPGA的性能得到极大的提高,特别是对嵌入式视觉和图像处理算法非常有效。

用自定义单元块来成功地解决高性能图像处理就是一个很好的例子,在实现您只看一次(YOLO)这一种使用了神经网络的、最先进的、实时对象检测算法时,可以优于早期的方法大大提高性能。该算法依赖于大量的矩阵乘法器,而在FPGA中实现时,这些矩阵乘法器需要使用DSP和RAM模块来构建;YOLO所需要的DSP和RAM模块之间的最佳配置,与一个典型的FPGA阵列结构中发现的不匹配之处就会出现问题。例如,FPGA阵列结构可能提供18×27乘法/累加单元块和32×128 RAM的DSP单元块,而此时的最佳解决方案可能是带有48×1024 RAM的16×8 DSP单元块。通过创建实现最佳DSP和RAM模块配置的定制单元块,所得到的Speedcore阵列结构所使用的芯片面积就会减少40%,来实现相同的功能并且能获得更高级别的系统性能。

在SoC中嵌入FPGA阵列结构提供了两个额外的系统级好处:

更低的功耗 - 可编程I / O电路占独立FPGA芯片总功耗的一半,而一个eFPGA可以与主控SoC中的其他模块直接内部线路连接,完全不需要大型可编程I / O缓冲器。

更低的系统成本 - 由于eFPGA只需实现特定功能,eFPGA的裸片尺寸远小于等效的独立FPGA芯片,这是因为eFPGA不再需要可编程的I / O缓冲器和不必要的接口逻辑。

借助超低延迟和实时处理功能,可以有效实现基于360°视域的视觉系统,具有定制单元块的Speedcore eFPGA与同一主控SoC中的一个CPU配合使用,非常适合去实现专用功能,如目标检测和图像识别、变形和失真校正、以及最后将最终图像拼接在一起。在SoC中嵌入FPGA阵列结构是超深亚微米时代系统集成的一个自然发展过程。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分