电路板玩家小王
从算法层面看,FPGA的硬件加速可以覆盖从低到高的多个环节,但实现成本和收益不同。
1. 低层预处理(必加速项):这是FPGA的主场。包括:
坐标变换(球坐标到笛卡尔坐标):涉及大量三角函数计算,可以并行化。
距离范围滤波、简单统计滤波:规则判断,易于流水。
运动畸变补偿(对于旋转式雷达):需要高精度插值,FPGA做延迟极低。
2. 中层处理(常见加速目标):
体素网格下采样:将空间划分为网格并取平均,具有天然的并行性,非常适合FPGA。很多开源实现都集中在这里。
法向量估计/曲率计算:需要查询点的邻域并进行PCA等运算,计算量大,但内存访问模式有规律,通过精心设计的缓存架构可以加速。
3. 高层处理(较少用纯FPGA实现):
聚类分割(如欧式聚类)、特征提取(如FPFH)、深度学习推理。这些算法控制流复杂,内存访问随机,FPGA实现难度高,往往采用CPU+FPGA或GPU+FPGA的异构方案,FPGA可能只负责其中高度规整的算子。
学习建议:先精通一门硬件描述语言,然后学习用HLS(高层次综合)将C/C++算法转换为硬件,这是现在的趋势。同时,务必动手用PCL或Open3D写一些点云处理程序,理解数据结构和算法流程。找一篇将经典点云算法(如VoxelGrid)用FPGA实现的论文精读,并尝试复现其核心模块,这是最快的入门路径。
