本发明属于数据处理领域,特别是点云目标检测方法领域。
背景技术:
0、技术背景
1、随着自动驾驶、智能机器人等领域的不断发展,在三维空间中识别与定位目标物体的需求不断增大,三维目标检测算法也随之发展。点云目标检测属于三维目标检测领域,其通常以激光雷达获取的点云数据为输入,利用神经网络进行特征提取以完成目标的分类与检测框的回归。点云目标检测算法精度高,应用前景广泛。
2、由于点云目标检测算法存在计算量大、计算方式复杂等问题,因此通常使用cpu与gpu平台完成点云目标检测算法的推理部署。其中,cpu完成预处理、后处理等操作,gpu完成神经网络的相关运算。cpu完成通用计算、复杂计算的能力强,但相比于gpu或者硬件加速电路,cpu实现并行与流水计算的能力较差,因此速度较低。gpu虽然在并行计算能力上有较大优势,但功耗较高。上述传统方案不利于相关算法在智能小车、智能机器人等边缘设备上的推理部署。
3、针对上述问题,有方案对点云目标检测算法中的体素化等操作或者卷积运算进行了硬件加速设计。但这些方案或者只对体素化等操作进行了优化设计,或者只对卷积运算进行加速,没有系统地进行优化,在计算速度、功耗、硬件资源利用率等方面仍有不足。
技术实现思路
1、为了实现点云目标检测算法的边缘部署,需要系统地进行优化设计,提高计算速度、降低功耗、减少硬件资源的开销。本发明面向基于体素的点云目标检测算法,提出了一种硬件加速方法与系统,具有计算速度快、功耗低、硬件资源开销少的特点。
2、本发明技术方案为一种点云目标检测算法的硬件加速系统,该系统包括:cpu、存储器与硬件加速电路,如图1所示;其中,cpu实现算法运行的流程控制、后处理、结果显示,存储器用于存储原始点云数据、卷积神经网络的权重、算法推理时产生的数据与检测结果,硬件加速电路包括:控制模块、数据交互模块、特征缓存模块、权重缓存模块、预处理模块、计算阵列;控制模块控制硬件加速电路中其它模块完成相应的运算与操作;数据交互模块在控制模块的控制下通过axi总线向存储器读写数据;硬件电路访问存储器的延迟较大,采用片上sram作为缓存,以减少对存储器的带宽需求,提高处理速度;特征缓存模块缓存由数据交互模块从存储器读取的特征;权重缓存模块缓存由数据交互模块从存储器读取的权重;预处理模块完成原始点云数据的体素化与特征扩展,处理结果交由数据交互模块写回存储器;计算阵列完成卷积神经网络中的运算,如1*1卷积、多步长3*3卷积、转置卷积,计算结果交由数据交互模块写回存储器;
3、采用上述系统进行点云目标检测时的具体方法为:
4、步骤1、cpu读取原始点云数据,将其写入存储器并指示硬件加速电路开始处理数据;
5、步骤2、硬件加速电路收到cpu的指令后,控制模块控制预处理模块完成原始点云数据的体素化与特征扩展,处理结果写回存储器;
6、步骤3、控制模块控制特征缓存模块与权重缓存模块从存储器读取部分特征与权重;
7、步骤4、控制模块控制计算阵列从缓存模块中读取所需数据并完成卷积神经网络相关计算,计算结果写回存储器;
8、步骤5、重复步骤3、4直到完成卷积神经网络的所有推理运算,推理结果写回存储器;
9、步骤6、cpu从存储器读取推理结果,完成后处理工作并显示结果。
10、硬件加速电路的主要创新点在于预处理模块与计算阵列的设计。
11、进一步的,所述预处理模块完成原始点云数据的体素化与特征扩展,其具体结构如图2所示。其具有两条流水线:流水线一完成原始点云数据的体素化与单个点的特征扩展;流水线一处理完原始点云数据后,流水线二完成体素特征扩展;流水线一由原始点云数据缓存模块、编号表、信息表、体素化流水线、输出数据缓存模块构成;流水线二由体素特征缓存模块、体素特征扩展模块构成。
12、流水线一完成原始点云数据的体素化与单个点的特征扩展,具有以下步骤:
13、步骤1、从存储器读取原始点云数据并缓存;
14、由于流水线处理速度极快,访问存储器的带宽成为了性能瓶颈,通过对流水线输入与输出数据进行缓存可以减少等待时间,提升处理速度;
15、步骤2、体素化流水线计算点的写回地址并完成单个点的特征扩展;
16、计算点的写回地址与单个点的特征扩展以流水线的方式同步进行;计算点的写回地址具有以下步骤:
17、步骤2.1.1、读取原始点云数据缓存中的点云数据,每个点云数据包括(x,y,z,r)四维特征,x、y、z为该点在由x轴、y轴、z轴构成的三维空间中的坐标,r为反射强度;
18、步骤2.1.2、通过原始点云数据中的x、y坐标计算该点所在pillar的索引idx,通过z轴坐标计算点所在体素在pillar中的位置n;pillar是指在目标检测区域内,通过x、y坐标划分的柱状立方体,一个pillar内包含了多个体素;
19、步骤2.1.3、以idx为地址在编号表中获取编号;若编号为0,则说明该点所在的pillar还未分配编号,于是将编号计数器加一,以更新后的编号计数器的值作为该点所在pillar的编号,将编号表idx处的编号更新为该点所在pillar的编号;若编号不为0,则该点所在pillar已分配编号,于是编号计数器不变,并以此编号作为该点所在pillar的编号,编号表idx处的编号不变;
20、步骤2.1.4、以该点所在pillar的编号为地址在信息表中获取pillar信息;pillar信息包括:pillar的索引idx、pillar内现有非空体素的数量、pillar内所有体素现有的点数;在步骤2.1.2中已知该点所处体素在pillar中的位置n,通过n与pillar信息得到点所在体素内已有的点数m;更新信息表;
21、步骤2.1.5、至此,该点所在pillar的编号、点所在体素在pillar中的位置n、点所在体素内已有的点数m均已知,以此计算点的写回地址;
22、完成单个点的特征扩展具有以下步骤:
23、步骤2.2.1、读取原始点云数据缓存中的点云数据,每个点云数据包括(x,y,z,r)四维特征,x、y、z为该点在由x轴、y轴、z轴构成的三维空间中的坐标,r为反射强度;
24、步骤2.2.2、通过(x,y,z)坐标计算点所在体素的中心(x1,y1,z1);
25、步骤2.2.3、(x,y,z)与(x1,y1,z1)相减得点坐标与体素中心坐标的偏差(x2,y2,z2),(x2,y2,z2)即单个点的扩展特征;
26、步骤2.2.4、拼接原始点云特征与(x2,y2,z2);
27、至此体素化流水线计算完成;
28、步骤3、将点的写回地址与扩展后的点云特征写入输出数据缓存模块;
29、步骤4、将输出数据缓存模块内的点云特征根据写回地址写入存储器;
30、流水线二完成体素特征扩展的具体方法为:
31、步骤1、读取信息表,获取非空体素信息;
32、步骤2、根据非空体素信息计算非空体素在存储器内的地址;
33、步骤3、根据非空体素在存储器内的地址读取非空体素内所有点的特征,写入体素特征缓存模块;
34、步骤4、体素特征拓展模块读取体素特征缓存模块,计算体素内所有点的质心(x3,y3,z3),然后对体素内的各个点计算(x,y,z)–(x3,y3,z3)得到点与质心的偏差(x4,y4,z4);步骤4中的计算采用了流水线与并行计算的技术,能够同时处理体素内所有点的特征,极大地提升了处理速度;
35、步骤5、写回体素内所有点的10维特征(x,y,z,r,x2,y2,z2,x4,y4,z4)。
36、至此完成了原始点云数据的体素化与特征扩展。
37、由于采用了流水线与并行计算技术,相比于cpu完成体素化与特征扩展,本方案具有更快的处理速度与极低的功耗。点云具有稀疏性,即在目标检测区域内的大部分pillar里没有点云,因此本方案只为非空pillar在存储器内分配了存储空间,大大减少了占用的存储器资源。通过编号表与信息表的结合,可以在信息表内只保存非空pillar的信息,因此使用的片上sram资源也很少。综上,本方案实现体素化与特征扩展等预处理操作时具有速度快、功耗低、硬件资源开销少的优势。
1.一种点云目标检测算法的硬件加速系统,该系统包括:cpu、存储器与硬件加速电路,其中,cpu实现算法运行的流程控制、后处理、结果显示,存储器用于存储原始点云数据、卷积神经网络的权重、算法推理时产生的数据与检测结果,硬件加速电路包括:控制模块、数据交互模块、特征缓存模块、权重缓存模块、预处理模块、计算阵列;控制模块控制硬件加速电路中其它模块完成相应的运算与操作;数据交互模块在控制模块的控制下通过axi总线向存储器读写数据;硬件电路访问存储器的延迟较大,采用片上sram作为缓存,以减少对存储器的带宽需求,提高处理速度;特征缓存模块缓存由数据交互模块从存储器读取的特征;权重缓存模块缓存由数据交互模块从存储器读取的权重;预处理模块完成原始点云数据的体素化与特征扩展,处理结果交由数据交互模块写回存储器;计算阵列完成卷积神经网络中的运算,计算结果交由数据交互模块写回存储器;
2.如权利要求1所述的一种点云目标检测算法的硬件加速系统,其特征在于,所述预处理模块完成原始点云数据的体素化与特征扩展;其具有两条流水线:流水线一完成原始点云数据的体素化与单个点的特征扩展;流水线一处理完原始点云数据后,流水线二完成体素特征扩展;流水线一由原始点云数据缓存模块、编号表、信息表、体素化流水线、输出数据缓存模块构成;流水线二由体素特征缓存模块、体素特征扩展模块构成。
3.如权利要求2所述的一种点云目标检测算法的硬件加速系统,其特征在于,流水线一完成原始点云数据的体素化与单个点的特征扩展,具有以下步骤:
4.如权利要求2所述的一种点云目标检测算法的硬件加速系统,其特征在于,流水线二完成体素特征扩展的具体方法为:
5.如权利要求3所述的一种点云目标检测算法的硬件加速系统,其特征在于,步骤2中计算点的写回地址具有以下步骤:
6.如权利要求3所述的一种点云目标检测算法的硬件加速系统,其特征在于,步骤2中完成单个点的特征扩展具有以下步骤: