1.本发明涉及ai自动驾驶技术领域,特别是涉及一种用于自动驾驶领域的可重构
智能图像处理器架构。
背景技术:
2.ai自动驾驶汽车能够避免交通事故的发生、减少交通拥堵提高交通效率、释放双手提高社会生产力,因而其相关技术受到广泛的关注。ai自动驾驶从功能上来看包括推理和训练两个环节。在训练环节,通过大数据训练出一个复杂的神经网络模型,目前大部分企业在训练环节主要使用gpu集完成。推理环节是指利用训练好的模型,使用大量数据推理出各种结论。因此,训练环节对芯片的算力性能要求比较高,推理环节对简单指定的重复计算和低延迟的要求很高。
3.从应用场景来看,人工智能芯片应用于云端和设备端,在智能驾驶领域同样具备云服务器和车载的各种计算平台或域控制器,在智能驾驶深度学习的训练阶段需要极大的数据量和大量运算,单一处理器无法独立完成,因此训练环节只能在云服务器实现。相对的在设备端即车上,各种ecu、dcu等终端数量庞大,而且需求差异较大。因此,推理环节无法在云端完成,这就要求车上的各种电子单元、硬件计算平台或域控制器有独立的推理计算能力,因此必须要有专用的ai芯片来应对这些推理计算需求。传统的cpu、gpu都可以拿来执行ai算法,但是功耗大、速度慢,性能低,尤其是cpu,在智能驾驶领域无法实际投入商用。
4.自动驾驶汽车是一个复杂的系统,主要由感知、决策和控制这三个部分组成,而感知是其中极其重要的一环。在ai自动驾驶的图像处理领域,环境感知、物体识别等深度学习应用要求计算响应方面必须快,但是保证运算快、效率高的同时,功耗不能过高,不能对智能汽车的续航里程造成较大影响,也就是ai处理器必须功耗低。自动驾驶需要识别道路、行人、红绿灯等路况和交通状况,这在自动驾驶算法里面都是属于并行计算,也就是ai处理器必须并行计算速度快。cpu并行计算速度慢。gpu速度要快得多但是gpu功耗过大,汽车的电池无法长时间支撑正常使用,而且gpu价格相对较高,用于自动驾驶量产的话普通消费者也用不起。另外,gpu因为不是专门针对ai算法开发的asic,执行ai计算的速度优势还没到极限,还有提升空间。
5.除了cpu与gpu之外,fpga(field programmable gate array,现场可编程逻辑门阵列)也是一个构建兼顾高性能和灵活性的处理器的常用方法。与gpu和cpu不同,一个基于fpga的加速器往往有一个专门的数据流流水线和内存系统,可以通过恰当设计来最大化性能和内存带宽。使用fpga的问题在于,fpga不是一个面向计算的架构,它虽然有大量可重构单元、片上接口和内存块来让用户设计不同的应用程序,但是它依旧存在运行频率低与能耗高的问题。
6.asic(application specific integrated circuit,专用集成电路)是另一种可用于ai图像处理的处理器,它专用的流水线和互连网络使它具有与gpu、cpu、fpga处理器相比的最佳性能。但是,在图像处理算法的多样性与深度学习算法的不断更迭下,asic的不可
定制性成为了它被应用到算法高速迭代的ai自动驾驶图像处理领域的最大阻碍。
7.cgra(coarse grained reconfigurable architecture)是粗粒度的可重构架构,它可以兼顾性能与灵活性。一个标准的cgra架构包括了静态执行指令的处理单元阵列和可定制的互连转换器组成。它具有数据高度并行、处理单元可重构、低功耗、高内存带宽利用率的特点。自动驾驶中图像处理部分的算法复杂且高速更迭,cgra在时间序列上的动态可重构性非常适合这个方面。
技术实现要素:
8.本发明所要解决的技术问题是提供一种用于自动驾驶领域的可重构智能图像处理器架构,可以自适应各种智能图像处理算法,运行不同算法时都能保持极高性能。
9.本发明解决其技术问题所采用的技术方案是:提供一种用于自动驾驶领域的可重构智能图像处理器架构,包括配置管理器、第一存储单元、第二存储单元、智能图像处理器和总线;
所述配置管理器和总线双向连接,所述第一存储单元和第二存储单元分别与总线连接,所述第一存储单元和智能图像处理器的输入端连接,所述智能图像处理器的输出端和第二存储单元连接;
10.所述图像处理器包括乘加功能、单精度浮点运算功能、卷积后的激活功能、除法功能;
11.所述配置管理器用于根据不同的图像处理算法配置数据在智能图像处理器中的流动路径和所述智能图像处理器的任务。
12.经过所述配置管理器配置好的数据从总线经由第一存储单元发送至智能图像处理器,所述智能图像处理器用于对配置好的的数据进行运算,并将运算结果经由所述第二存储单元发送至总线。
13.所述智能图像处理器包括m
×
n的按阵列排布的可重构运算单元,相邻的两个可重构运算单元进行互连形成网格结构,所述可重构运算单元根据所述配置管理器配置的任务执行处理。
14.所述可重构运算单元都具有乘加功能,并且靠近所述智能图像处理器输出端的一列可重构运算单元具有单精度浮点运算功能、卷积后的激活功能、除法功能。
15.所述第一存储单元和第二存储单元均为静态随机存取存储器。
16.本发明解决其技术问题所采用的技术方案是:提供一种上述用于自动驾驶领域的可重构智能图像处理器架构的maskr-cnn模型的执行方法,包括:
17.所述配置管理器给所述智能图像处理器重构第一数据流图,将所述智能图像处理器中第1列至第9列可重构运算单元配置为第一卷积运算与非线性激活,将所述智能图像处理器中第10列至16列可重构运算单元配置为第二卷积运算;
18.所述配置管理器给所述智能图像处理器重构第二数据流图,将所述智能图像处理器的每一列可重构运算单元配置为比较取较大值运算,以实现最大池化;其中,一列可重构运算单元用于执行一个最大池化;
19.重复所述第一数据流图和第二数据流图的运算过程,完成maskr-cnn模型的前向传播过程;
20.所述配置管理器给所述智能图像处理器重构第三数据流图,将所述智能图像处理
器的每一列可重构运算单元配置为比较取较大值运算以实现最大池化;
21.所述配置管理器给所述智能图像处理器重构第四数据流图,将所述智能图像处理器的每一列可重构运算单元配置为累加运算和除法运算以实现平均池化,用于预测目标检测;其中,一列可重构运算单元用于执行一个平均池化;
22.所述配置管理器给所述智能图像处理器重构第五数据流图,将所述智能图像处理器配置为卷积运算,用于预测目标分割。
23.有益效果
24.由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明的动态可重构智能图像处理器架构可以自适应各种智能图像处理算法,运行不同算法时都能保持极高性能;本发明与asic相比,可重构的智能图像处理器具有相当高的自由度与可定制性,可以根据图像处理算法需求快速配置适合的阵列结构,也能在高速更迭的图像处理算法中保持生命力;本发明与gpu相比,智能图像处理器计算单元利用率高,能效高;本发明与fpga相比,动态可重构和并行计算可以加速数据处理速度,使算法运行具有高性能和低功耗。
附图说明
25.图1是本发明实施方式的ai自动驾驶操作流程图;
26.图2是本发明实施方式的可重构智能图像处理器架构示意图;
27.图3是本发明实施方式的感知过程对应算法举例示意图;
28.图4是本发明实施方式的目标检测与分割流程图;
29.图5是本发明实施方式的3*3卷积计算智能图像处理器数据流示意图;
30.图6是本发明实施方式的最大池化操作数据流示意图;
31.图7是本发明实施方式的平均池化操作数据流示意图。
具体实施方式
32.下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本技术所附权利要求书所限定的范围。
33.本发明的实施方式涉及一种用于自动驾驶领域的可重构智能图像处理器架构,包括配置管理器、第一存储单元、第二存储单元、智能图像处理器和总线;所述配置管理器和总线双向连接,所述第一存储单元和第二存储单元分别与总线连接,所述第一存储单元和智能图像处理器的输入端连接,所述智能图像处理器的输出端和第二存储单元连接;所述图像处理器包括乘加功能、单精度浮点运算功能、卷积后的激活功能、除法功能;所述配置管理器用于根据不同的图像处理算法配置数据在智能图像处理器中的流动路径和所述智能图像处理器的任务;经过所述配置管理器配置好的数据从总线经由第一存储单元发送至智能图像处理器,所述智能图像处理器用于对配置好的的数据进行运算,并将运算结果经由所述第二存储单元发送至总线,所述配置管理器通过总线将运算结果转交至其他系统进行下一步处理。
34.进一步地,所述智能图像处理器包括m
×
n的按阵列排布的可重构运算单元,相邻的两个可重构运算单元进行互连形成网格结构,所述可重构运算单元根据所述配置管理器配置的任务执行处理。
35.进一步地,所述可重构运算单元都具有乘加功能,并且靠近所述智能图像处理器输出端的一列可重构运算单元具有单精度浮点运算功能、卷积后的激活功能、除法功能。
36.进一步地,所述第一存储单元和第二存储单元均为静态随机存取存储器。
37.如图1所示,该图展示了ai自动驾驶的操作流程。自动驾驶系统可以分为感知系统、决策系统与控制系统。图1中展示了其中感知系统的抽象化图像处理流程,分为预处理、目标检测、及分割,可通过智能图像处理器的快速可重构性,按时间序列在同一处理器上执行。
38.如图2所示,该图展示了可重构智能图像处理器架构。由配置管理器、总线、两个静态随机存取存储器(sram 1,sram 2)和n
×
n可重构运算单元(process element,pe)阵列构成。可重构运算单元(pe)互连形成网格结构,每个可重构运算单元可以与其邻域紧相连的四个可重构运算单元进行数据交流。配置管理器根据当前所需支持的图像处理算法配置数据在智能图像处理器中数据路径以及每个处理单元(pe)的具体任务。数据根据配置在智能图像处理器中运算结束后经另一个静态随机存取存储器(sram 2)通过总线返回配置管理器中临时储存数据,再根据下一个需进行的算法进行重新配置,以此类推。最后的运算结果由配置管理器通过总线转交至决策系统等其他系统进行下一步操作。
39.以下对可重构智能图像处理器架构各组成功能进行说明:
40.配置管理器:根据不同算法需求配置数据在智能图像处理器中数据路径以及每个运算单元的任务;
41.静态随机存取存储器(sram 1,sram 2):数据存取;
42.可重构运算单元(pe):可重构智能图像处理器,以实现某种运算,其中,所有可重构运算单元(pe)都有乘加器功能,乘加功能可用于实现卷积操作,只有最后一列(即靠近智能图像处理器输出端的一列)的可重构运算单元(pe)带有单精度浮点运算功能,可支持卷积后的激活以及除法功能。
43.以下通过一个具体的应用场景进一步说明本发明:
44.本实施方式还涉及一种用于自动驾驶领域的可重构智能图像处理器架构的mask r-cnn模型的执行方法,具体描述了一个自动驾驶中的感知过程,由于车辆行驶速度的要求,处理器需要以非常快的速度(如:每秒30帧)完成对周围环境的感知。感知的过程是一个多阶段的任务,包括了图像增强、目标检测、三维深度估计、图像分割、危险指数评估等过程。经过恰当的抽象和构思,本实施方式描述的感知过程分为图像预处理,目标检测与实例分割,具体如图3所示,该图还展示了感知系统的图像处理三个阶段可以采用的算法。(智能图像处理器阵列以16
×
16个运算单元为例)。
45.值得注意的是,这个多阶段感知过程需要用到不同的算法,包括了传统图像处理与深度学习算法,而本实施方式的可重构处理器可以以十纳秒级的重构速度,在运行时配置处理器布线以自适应不同算法,即:本发明有能力把自动驾驶里的绝大部分算法做成硬件实现,让不同算法在处理器上低功耗、高性能地运行。
46.感知过程的第一步是图像预处理。对于一个输入图像,首先将图像裁剪至合适大
小以适应后续卷积神经网络的计算。在此本实施方式采用双线性插值法为例,即根据于待求点p(即原图像任意一点)最近4个点的像素值,计算出点p的像素值。对于一个目的像素,设置坐标通过反向变换得到的浮点坐标为(i+u,j+v)(其中i、j均为浮点坐标的整数部分,u、v为浮点坐标的小数部分,是取值[0,1)区间的浮点数),则这个像素的值f(i+u,j+u)可由原图像中坐标为(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所对应的上下左右四个像素的值决定,即:
[0047]
f(i+u,j+u)=(1-u)(1-v)f(i,j)+(1-u)vf(i,j+1)+u(1-v)f(i+1,j)+uvf(i+1,j+1)
[0048]
其中,f(i,j)表示原图像(i,j)处的的像素值,以此类推。
[0049]
感知过程的第二步,是使用深度学习算法进行目标检测和目标分割(即实例分割)。本实施方式采用实例分割的经典模型mask r-cnn来完成目标检测和实例分割的任务。
[0050]
mask r-cnn是一个二阶段深度学习模型(如图4所示),第一阶段是通过一系列卷积层得到输入图像的特征图;第二阶段是将特征图输入分类器,分类器需要输出目标类别(一个数)、检测框(检测框对角的两个坐标,即四个数)和检测框里属于目标类别的所有像素(一个矩阵)。该分类器的功能展示着三个分类任务。
[0051]
总结而言,mask r-cnn模型需要二阶段完成目标检测和实例分割任务。这其中需要用到的主要运算是卷积、池化和非线性激活。本实施方式可以以十纳秒级的速度切换智能图像处理器布线,来自适应算法中不同运算的硬件实现,大大加速算法运行速度。
[0052]
以下开始说明本实施例感知过程第二步的详细执行过程。
[0053]
第一阶段是卷积提取特征图。本实施方式选择的是简单的一系列由卷积、激活与池化构成的扁平神经网络(如图4第一阶段所示)。假设输入为16位整型灰度图,卷积核大小为3*3,激活函数为线性整流单元relu,池化为2*2区域内的最大池化(maxpool),即选取2*2区域内最大数字输出。其中,线性整流单元relu公式如下:
[0054]
f(x)=max(0,x)
[0055]
其中,x表示函数的输入,在本实施例中代表输入的像素的强度值。
[0056]
主控器收到输入数据流后,配置管理器首先给智能图像处理器动态重构数据流图(如图5所示),可重构运算单元(pe)的1-9列负责计算第一个卷积核的卷积与非线性激活。
[0057]
在卷积计算完成后,配置管理器在运行时重新给智能图像处理器配置数据流图(如图6所示),以实现池化运算的硬件实现。一个池化计算只需要同时占用一列可重构运算单元(pe),因此智能图像处理器可以并行地执行十六个池化计算。
[0058]
重复以上动态配置与计算过程,本实施方式可以在极高的速度下并行计算算法第一阶段的卷积神经网络前向传播过程。
[0059]
第二阶段的输入是经过神经网络roi(region of interest)池化后的特征图,大小为7*7*2048。roi池化的过程是将特征区域划分为四块,在每块中做最大池化,运算过程与池化运算相同,智能图像处理器可以并行地执行运算。
[0060]
随后,为了执行回归目标类别和检测框的任务,需要对7*7*2048大小的特征图进行全局平均池化,经过计算后的输出大小为1*1*2048。在主控器接收到输入数据流后,配置管理器将智能图像处理器配置为如图7所示的数据流图,每一列可重构运算单元(pe)顺序地接受49个输入,由于其内部有存储器,可以不断将其累加与存储,之后进行除法操作,得
到平均值后输出。每一列可重构运算单元(pe)可以执行一个通道的全局平均池化,智能图像处理器可以并行地执行16个平均池化计算。
[0061]
最后,为了预测实例分割的结果,神经网络第二阶段在接收7*7*2048的特征图后,通过256个转置卷积(transposed convolution)操作将特征图升维成14*14*256的特征图,再通过80个卷积操作将其压缩为14*14*256的特征图输出,得到最终结果。这其中的运算过程依旧是卷积操作,在caffe等框架中,转置卷积与卷积的代码相同。在这个过程里,本发明依旧可以将智能图像处理器动态重构为不同的卷积数据流图,实现不同算法的硬件实现,加速算法执行过程。
[0062]
其他ai自动驾驶中的图像处理算法如法炮制,将算法拆解为不同数据流图就可以在本发明中通过动态重构智能图像处理器达到加速算法运行的目的。
[0063]
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
技术特征:
1.一种用于自动驾驶领域的可重构智能图像处理器架构,其特征在于,包括配置管理器、第一存储单元、第二存储单元、智能图像处理器和总线;所述配置管理器和总线双向连接,所述第一存储单元和第二存储单元分别与总线连接,所述第一存储单元和智能图像处理器的输入端连接,所述智能图像处理器的输出端和第二存储单元连接;所述图像处理器包括乘加功能、单精度浮点运算功能、卷积后的激活功能、除法功能;所述配置管理器用于根据不同的图像处理算法配置数据在智能图像处理器中的流动路径和所述智能图像处理器的任务;经过所述配置管理器配置好的数据从总线经由第一存储单元发送至智能图像处理器,所述智能图像处理器用于对配置好的的数据进行运算,并将运算结果经由所述第二存储单元发送至总线。2.根据权利要求1所述的用于自动驾驶领域的可重构智能图像处理器架构,其特征在于,所述智能图像处理器包括m
×
n的按阵列排布的可重构运算单元,相邻的两个可重构运算单元进行互连形成网格结构,所述可重构运算单元根据所述配置管理器配置的任务执行处理。3.根据权利要求2所述的用于自动驾驶领域的可重构智能图像处理器架构,其特征在于,所述可重构运算单元都具有乘加功能,并且靠近所述智能图像处理器输出端的一列可重构运算单元具有单精度浮点运算功能、卷积后的激活功能、除法功能。4.根据权利要求1所述的用于自动驾驶领域的可重构智能图像处理器架构,所述第一存储单元和第二存储单元均为静态随机存取存储器。5.一种如权利要求1-4中任一所述用于自动驾驶领域的可重构智能图像处理器架构的mask r-cnn模型的执行方法,其特征在于,包括:所述配置管理器给所述智能图像处理器重构第一数据流图,将所述智能图像处理器中第1列至第9列可重构运算单元配置为第一卷积运算与非线性激活,将所述智能图像处理器中第10列至16列可重构运算单元配置为第二卷积运算;所述配置管理器给所述智能图像处理器重构第二数据流图,将所述智能图像处理器的每一列可重构运算单元配置为比较取较大值运算,以实现最大池化;其中,一列可重构运算单元用于执行一个最大池化;重复所述第一数据流图和第二数据流图的运算过程,完成mask r-cnn模型的前向传播过程;所述配置管理器给所述智能图像处理器重构第三数据流图,将所述智能图像处理器的每一列可重构运算单元配置为比较取较大值运算以实现最大池化;所述配置管理器给所述智能图像处理器重构第四数据流图,将所述智能图像处理器的每一列可重构运算单元配置为累加运算和除法运算以实现平均池化,用于预测目标检测;其中,一列可重构运算单元用于执行一个平均池化;所述配置管理器给所述智能图像处理器重构第五数据流图,将所述智能图像处理器配置为卷积运算,用于预测目标分割。
技术总结
本发明涉及一种用于自动驾驶领域的可重构智能图像处理器架构,包括配置管理器、第一存储单元、第二存储单元、智能图像处理器和总线;所述配置管理器和总线双向连接,所述第一存储单元和第二存储单元分别与总线连接,所述第一存储单元和智能图像处理器的输入端连接,所述智能图像处理器的输出端和第二存储单元连接;所述图像处理器包括乘加功能、单精度浮点运算功能、卷积后的激活功能、除法功能。本发明可以自适应各种智能图像处理算法,运行不同算法时都能保持极高性能。算法时都能保持极高性能。算法时都能保持极高性能。
技术研发人员:
陆芳 赵峰 龚芮 杨大全
受保护的技术使用者:
白盒子(上海)微电子科技有限公司
技术研发日:
2022.11.29
技术公布日:
2023/3/24