使用FPGA制作一个便携式 ADAS 系统

情感   2024-10-27 07:37   河北  

之前已经介绍过FPGA在汽车电子中应用-ADAS,但是很多人留言说是没有相关例程,应用不够直观,所以,今天他来了-使用FPGA制作一个便携式 ADAS 系统(源码开源)。

ADAS 到底是什么?

ADAS 是车辆中的电子系统,使用先进技术来协助驾驶员。它们提供重要信息,自动执行困难任务并提高整体安全性。功能包括:

  • 车道偏离警告 (Lane Departure Warning,LDW):当车辆开始偏离车道时,系统会向驾驶员发出警报。显然,我们都需要一位数字伴侣陪伴在身边。
  • 自适应巡航控制 (Adaptive Cruise Control ,ACC):自动调整车速,与前车保持安全距离。
  • 防撞系统(Collision Avoidance Systems):警告驾驶员可能发生的碰撞,甚至可以自动刹车。
  • 盲点检测(Blind Spot Detection):通知驾驶员可能看不到的盲点中的车辆。换句话说,它可以防止因空间意识差而导致驾驶失误。

有了这些功能,计划创建一个可以让每个人的驾驶都更安全的系统。

软件

1、Vivado 设计套件

DPU IP

这里真正的主角是DPU(深度处理单元)IP 。这项神奇的技术直接在 FPGA 上运行 AI 模型,使一切变得更快、更高效。可以将其视为系统实时处理数据所需的肾上腺素。

在 DPU 中运行模型:

在 FPGA 的可编程逻辑 (PL) 中的 DPU 上运行 AI 模型。这是 ADAS 系统的核心,处理所有密集的 AI 计算,例如车道检测和物体识别。

面临的挑战:

安装难题:Vivado在发行版系统(例如Ubuntu 或者 Centos)里安装会相对简单,但是也很容易出现问题。

解决方案:在 Linux 中先安装libcurse Vivado 是解决问题的灵丹妙药。

2、CARLA 模拟器

CARLA 是一款开源自动驾驶模拟器,旨在支持 ADAS 和自动驾驶系统的开发、训练和验证。换句话说,这是一款为想要假装自己在工作的成年人准备的电子游戏。

为什么要使用 CARLA?

模拟真实驾驶场景对于测试和改进 ADAS 应用至关重要。CARLA 为实验提供了安全且可控的环境,而没有实际道路测试的风险。

面临的挑战:

  • XServer 错误:如何修复?
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/nvidia_icd.json"

如果电脑配置比较低,需要执行下面语句:


./CarlaUE4.sh -quality-level=Low

3. Vitis AI

Vitis AI 是 Xilinx 推出的一款开发平台,用于在 AMD 和 Xilinx 硬件上进行 AI 推理,可以在 FPGA 和 ACAP 上部署 AI 模型。

为什么要使用 Vitis AI?

Vitis AI 对于开发和优化 ADAS 系统的 AI 模型至关重要。它提供了量化和编译模型的工具,以便在 DPU 上高效运行。

面临的挑战:

模型优化:要使 AI 模型在 DPU 上高效运行,需要了解量化和编译技术。这就像将方形钉子装入圆孔中,只不过钉子是神经网络。

工具链复杂性:使用 Vitis AI 工具链是另一个陡峭的学习曲线。这就像解决魔方一样,只不过每次眨眼时它都会改变颜色。

4.PetaLinux

PetaLinux 是 Xilinx 硬件平台的嵌入式 Linux 发行版。它允许开发自定义应用程序并直接在 FPGA 上运行它们。

为何使用 PetaLinux?

PetaLinux 为在 KR260 上运行应用程序提供了一个强大而灵活的环境。它是将所有东西粘合在一起的粘合剂,确保软件和硬件和谐地工作。就像花生酱和果冻一样,只是有更多的命令行界面。

使用和配置PetaLinux可以自行查找资料,按照官方资料很容易构建PetaLinux系统。

构建ADAS系统简易过程

步骤 1:从 CARLA 收集数据

用它来收集数据以训练和测试 ADAS 模型。

面临的挑战:

数据管理:收集和整理数据是一个耗时的过程。必须确保数据干净且标签正确。

第 2 步:车道和物体检测

面临的挑战:

AI 模型训练:训练 AI 模型以准确检测车道和物体需要尝试不同的架构和技术。

性能调优:优化模型以使其在 DPU 上高效运行涉及量化和微调。

步骤 3:在 FPGA 上启动 PetaLinux

第四步:系统联调

集成所有组件并确保它们有效通信就像是编排一曲复杂的交响乐。确保传感器、FPGA、AI 模型和 CARLA 模拟器无缝协作。

面临的挑战:

通信协议:了解并实施组件之间的正确通信协议至关重要。这涉及学习 I2C、SPI 和以太网等接口。

同步:确保系统同步并协调运行是一项挑战。它需要精确的时间和协调。

下一步计划

  • 自动驾驶:实现自主导航、决策和控制算法。这需要集成更多传感器并优化 AI 模型。

  • 提高性能:增强系统的性能和可扩展性,可能升级硬件并优化软件组件。

  • 在真实场景中测试:在真实场景中进行更广泛的测试,确保稳健性和可靠性。下一轮测试中,我可能需要更多的虚拟消防栓。

参考链接

https://www.spinny.com/blog/index.php/adas-full-form/

https://www.researchgate.net/figure/Flowchart-of-the-lane-detection-algorithm_fig1_331958729

https://neptune.ai/blog/object-detection-algorithms-and-libraries

https://www.mdpi.com/2078-2489/13/6/279

代码链接

https://github.com/Turoad/lanedet

视频演示

视频已加速~

总结

这是一个偏AI应用的开源项目,适合想用FPGA进行AI研究人群研究。


END


往期精选 

 
 

【免费】FPGA工程师招聘平台

Quartus prime 18.0标准版安装和破解过程说明

ISE 14.7 安装教程及详细说明

Vivado 2019.2 安装教程

SANXIN-B01开发板verilog教程V3电子版

学员笔记连载 | FPGA Zynq 千兆以太网回环

求职面试 | FPGA或IC面试题最新汇总篇

FPGA项目开发:204B实战应用-LMK04821代码详解(二)

项目合作 | 承接FPGA项目公告

资料汇总|FPGA软件安装包、书籍、源码、技术文档…(2024.07.29更新)


FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

加群主微信,备注姓名+公司/学校+岗位/专业进群


FPGA技术江湖QQ交流群

备注姓名+公司/学校+岗位/专业进群

FPGA技术江湖
任何技术的学习就好比一个江湖,对于每一位侠客都需要不断的历练,从初入江湖的小白到归隐山林的隐世高人,需要不断的自我感悟自己修炼,让我们一起仗剑闯FPGA乃至更大的江湖。
 最新文章