摘要:基于昇腾AI异构计算架构CANN(Compute Architecture for Neural Networks)的简易版辅助驾驶AI应用,具备车辆检测、车距计算等基本功能,作为辅助驾驶入门级项目再合适不过 。本文分享自华为云社区《盘它!基于CANN的辅助驾驶AI实战案例,轻松搞定车辆检测和车距计算!》,作者:昇腾CANN 。
引言科幻片中光怪陆离的飞行器,寄托着人类对未来出行的无限遐想 。随着科技的进步,能够自动驾驶的汽车,已经离我们越来越近 。自动驾驶带给人类的惊喜不止是酷炫的自动超车变道,还有它在缓解交通阻塞、减少空气污染、提高道路安全性方面的种种可能性 。因此也引得无数汽车企业、科技企业竞相加入这条行业赛道,力求不断突破 。
文章插图
然而,自动驾驶并不是一蹴而就的,由于技术瓶颈和相关法律法规的限制并未真正意义落地,当下的智能汽车正处于半自动驾驶(辅助驾驶)阶段 。什么是辅助驾驶?简而言之,就是借助汽车对周围环境的自动感知和分析,让驾驶员预先察觉可能发生的危险,有效增加汽车驾驶的舒适性和安全性 。当然,辅助驾驶系统也是非常复杂的,为实现汽车在多种复杂场景下的通用性,以及技术层面的多样性,离不开人工智能技术 。我们开发了一套基于昇腾AI异构计算架构CANN(Compute Architecture for Neural Networks)的简易版辅助驾驶AI应用,具备车辆检测、车距计算等基本功能,作为辅助驾驶入门级项目再合适不过啦! 话不多说,开启项目传送门:https://www.hiascend.com/zh/developer/mindx-sdk/driveassist
文章插图
CANN是华为专门针对AI场景推出的异构计算架构,以提升用户开发效率和释放昇腾AI处理器澎湃算力为目的,并且提供多层次的AscendCL编程接口,支持用户快速构建基于昇腾平台的AI应用和业务 。
当然,真正意义上的辅助驾驶系统远比这个AI应用更复杂,下面主要介绍如何借助AscendCL编程接口对输入视频进行预测推理,从而实现对车辆及车道线的智能检测 。
典型的目标检测算法为模仿驾驶员对车辆的辨别和分析,需要建立起一个类似人脑的算法结构,找出目标物体,确定它们的类别和位置 。同时也需要解决影响检测准确性的一系列问题,比如汽车的外观和姿态、光照和遮挡等因素带来的干扰 。以YOLO(You Only Look Once)为代表的目标检测算法为各类物体的检测提供了更多可能性 。从人脸检测到车流控制,从人群计数到农作物监控,目标检测算法在各领域都发挥着不可或缺的作用 。YOLO算法目前已经迭代到v5版本,本项目使用的是YOLOv4,下面我们来看看它的结构 。
文章插图
图片来自https://blog.csdn.net/andyjkt/article/details/107590669
从算法结构方面看,YOLOv4由三部分组成:Backbone层提取特征,Neck层提取一些更复杂的特征,最后由Head层计算预测输出 。
1. Backbone层:通过CSPDarknet53框架在不同图像细粒度上聚合并形成具备图像特征的卷积神经网络,主要用于图像特征提取 。
2. Neck层:由SPP或PAN等一系列混合和组合图像特征的网络层组成,提取一些更复杂的特性,并将图像特征传递到预测层 。
3. Head层:对图像特征进行预测,生成边界合并预测类别 。从流程方面看,YOLOv4主要分为三个处理阶段:
- 首先,将图像分割为若干个网格(grid cell),每个网格负责生成3个包围框(bounding box),以及对应置信度 。
经验总结扩展阅读
- 基于PL022 SPI 控制器 海思3516系列芯片SPI速率慢问题深入分析与优化
- 基于vite3+tauri模拟QQ登录切换窗体|Tauri自定义拖拽|最小/大/关闭
- 基于tauri+vue3.x多开窗口|Tauri创建多窗体实践
- 提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件
- 基于雪花算法的增强版ID生成器
- 基于QT和C++实现的翻金币游戏
- Mysql单表访问方法,索引合并,多表连接原理,基于规则的优化,子查询优化
- 基于tauri打造的HTTP API客户端工具-CyberAPI
- 基于纯前端类Excel表格控件实现在线损益表应用
- 知识图谱实体对齐2:基于GNN嵌入的方法