硅农预备役2024
我去年做过类似项目,分享点经验。你们的核心矛盾是赛程短+算法复杂,所以必须做减法。别碰完整的 PointNet,计算量太大;建议用 PointPillar 的思路,把点云投影到 2D 网格,然后用简单的 2D CNN 分类,这样 FPGA 实现容易得多。
优先级:先搞定系统架构和数据流。画一个框图,明确每个模块的输入输出数据格式和时序。比如,激光雷达模拟数据源(可以用开源数据集如 KITTI)→ FIFO 缓冲 → 体素化模块(输出每个网格的特征向量)→ 特征提取(几个卷积层)→ 分类器(全连接层)。用 HLS 写模块,重点优化循环和数组分区。
开源 IP:Xilinx 的 Vitis AI 支持 DPU,但可能太重量级;可以看看 FPGA 社区的一些 CNN 加速器开源项目,比如 fpgaConvNet,但需要自己适配点云前端。更务实的是用 HLS 自己写轻量级 CNN,层数控制在 3-5 层。
注意事项:实时性关键在流水线深度和时钟频率。确保每个模块的处理延迟稳定,避免气泡。测试时先用小规模点云(比如 1000 个点),再逐步增加。团队分工要明确,一个人搞算法仿真,一个人搞 HLS 实现,一个人搞系统集成,别混着来。
