博客主页:倔强的石头的CSDN主页
Gitee主页:倔强的石头的gitee主页
⏩ 文章专栏:《AI大模型》
期待您的关注
目录
一、引言
二、CANN 是什么
1. 异构计算与人工智能的关系
2. CANN 的定义和作用
3. CANN 的技术优势
三、基于 CANN 的辅助驾驶 AI 应用原理
1. 目标检测算法
2. 智能检测流程
3. 算力平台支持
四、基于 CANN 的辅助驾驶 AI 优势
1. 高效训练
2. 精准检测
3. 快速编程
4. 产业应用
五、部署实操
六、结语
在当今科技飞速发展的时代,汽车行业正迎来一场智能化的变革。基于昇腾 AI 异构计算架构 CANN 的辅助驾驶 AI 应用,为这场变革注入了强大的动力。
昇腾 AI 异构计算架构 CANN(Compute Architecture for Neural Networks)是华为针对 AI 场景推出的异构计算架构,向上支持多种 AI 框架,包括 MindSpore、PyTorch、TensorFlow 等,向下服务 AI 处理器与编程,发挥承上启下的关键作用,是提升昇腾 AI 处理器计算效率的关键平台。同时针对多样化应用场景,提供多层次编程接口,支持用户快速构建基于昇腾平台的 AI 应用和业务。
辅助驾驶作为汽车智能化的重要组成部分,旨在借助汽车对周围环境的自动感知和分析,让驾驶员预先察觉可能发生的危险,有效增加汽车驾驶的舒适性和安全性。基于昇腾 AI 异构计算架构 CANN 的辅助驾驶 AI 应用,具备强大的计算能力和高效的编程接口,为实现这一目标提供了有力的支持。
在接下来的内容中,我们将深入阐述基于昇腾 AI 异构计算架构 CANN 的辅助驾驶 AI 应用的原理和优势,带您领略这一创新技术的魅力。
在当今人工智能高速发展的时代,异构计算在其中扮演着至关重要的角色。
近年来,人工智能广泛融入日常生活,如智能助手、人脸识别摄像头、自动驾驶汽车等。要让机器拥有人类技能,就需搭建类似人类大脑的 “神经网络”,即 AI 算法或模型,并通过大量数据训练。然而,这个过程涉及高度复杂的算法和巨大的计算量,以 GPT-3 为例,参数量达 1750 亿,样本大小 45TB,单次训练时间以月为单位,如何提高计算效率成为人工智能的核心问题。
在人工智能计算中,多涉及矩阵或向量的乘法和加法,CPU 这类通用处理器处理此类计算需求效率较低。现实应用中,主要利用擅长大规模并行计算任务的 AI 加速器完成,如 NPU(昇腾 AI 处理器)等专用处理器。由于计算的多样性,在这些加速器内部存在非常多不同架构的计算单元,异构计算就是在同一计算系统集成不同类型或架构的处理单元,以更有效地执行不同类型的任务。为充分利用这些异构算力,就需要构建一套统一的编译优化和编程接口体系,实现底层多样算力与上层框架 / 算法的解耦、互通,发挥不同处理器的优势,通过协同工作提高整个系统的性能、能效和灵活性。
CANN(Compute Architecture for Neural Networks)是华为针对 AI 场景推出的异构计算架构,对上支持 PyTorch、TensorFlow 以及昇思 MindSpore 等业界主流 AI 框架,对下使能昇腾 AI 处理器,发挥承上启下的关键作用,是提升昇腾 AI 处理器计算效率的关键平台。同时针对多样化应用场景,提供高效易用的编程接口,支持用户快速构建基于昇腾平台的 AI 应用和业务。
1.极致性能:
CANN 从 2018 年的第一个版本发展至今,经过多个版本的迭代,积累了众多技术优势。
2.极简易用:
在编程易用性方面,CANN 能够端到端使能从算子到模型算法的开发及部署,帮助开发者快速构建基于昇腾平台的 AI 应用及业务。
CANN 广泛支持业界主流深度学习框架,包括昇思 MindSpore、PyTorch、TensorFlow、PaddlePaddle、计图 Jittor 等等,支持从 GPU 生态低成本迁移至昇腾生态。开发者可以选择继续使用原有框架和算法,仅切换底层硬件即可;可以选择迁移到华为开源的昇思 MindSpore 框架获得昇腾全栈能力;也完全可以基于 CANN 进行原生开发,目前 Pytorch 已支持昇腾设备接入,意味着开发者可直接在昇腾设备上使用 PyTorch 原生算法开发。在算法迁移或开发过程中,如果发现某些算子性能达不到预期要求,或者想针对新的业务场景开发新功能,就需要进行算子开发。在这个维度上,CANN 提供了面向算子开发场景的昇腾 Ascend C 编程语言,它原生支持 C/C++ 编程规范,通过多层接口抽象、并行编程范式、孪生调试等技术,极大提高了算子的开发效率,帮助 AI 开发者低成本完成算子开发和模型调优部署。
以 YOLOv4 为例,其算法结构和流程具有独特之处。
借助 AscendCL 编程接口对输入视频进行预测推理,可实现对车辆及车道线的智能检测。具体步骤如下:
昇腾 AI 基础软硬件平台提供强大算力,CANN 进行软硬件协同优化,释放硬件算力,加速模型训练。
CANN 5.0 版本在高效训练方面表现卓越。通过图级和算子级的编译优化、自动调优等技术,实现性能翻番,让训练过程快到 “飞” 起。例如在经典模型 BERT 的训练中,原本需要较长时间,在 CANN 5.0 的加持下,训练时间大幅缩短,仅需 2.69 分钟就能完成训练。同时,对于常用的小模型训练场景,如分类、检测、语义分割、NLP 等,性能提升同样明显。无论是大规模集群训练还是小模型训练,CANN 5.0 都能通过其先进的技术,为开发者提供高效的训练体验。
基于 CANN 的辅助驾驶 AI 在精准检测方面具有显著优势。采用先进的目标检测算法,如以 YOLOv4 为代表的目标检测算法,能够有效解决影响检测准确性的问题,如汽车外观、光照等因素的干扰。YOLOv4 算法结构由 Backbone 层、Neck 层和 Head 层组成,Backbone 层通过 CSPDarknet53 框架提取图像特征,Neck 层混合和组合图像特征,Head 层计算预测输出。在流程方面,首先将图像分割为若干网格,每个网格生成包围框和置信度,接着用非极大值抑制算法剔除重合度低的 bounding box,最后经过回归处理确定目标位置。此外,CANN 还开源了高性能的通用目标检测与识别一站式方案,支持多格式输入和输出、轻松替换和串接模型、高效数据预处理、图片数和分辨率可变场景定制、多路多线程高性能编程以及高效后处理计算等特性,进一步提升了检测的准确性和灵活性。
AscendCL 接口在辅助驾驶 AI 应用中发挥了重要作用,使其具备快速编程的优势。AscendCL 是一套用于开发深度神经网络推理应用的 C 语言 API 库,兼具运行时资源管理、模型加载与执行、图像预处理等能力。开发者可以借助 AscendCL 轻松实现图片分类、目标检测等各类 AI 应用。例如在通用目标检测与识别一站式方案中,基于 AscendCL 接口对数据预处理、模型推理、模型后处理等 AI 核心计算逻辑进行模块化组装,实现了车辆检测和车身颜色识别基础功能,同时支持多格式输入和输出、轻松替换和串接模型等特性,为开发者提供了良好的编程选择。
西安交大团队和新生代开发者利用 CANN 解决高级辅助驾驶的关键难题,推动自动驾驶产业转型升级。此外,众多汽车企业和科技企业也竞相加入辅助驾驶这条行业赛道,力求不断突破。基于昇腾 AI 异构计算架构 CANN 的辅助驾驶 AI 应用,不仅可以实时检测路面车辆,还能计算出车距,辅助驾驶员进行决策。如华为开发的一套基于 CANN 的简易版辅助驾驶 AI 应用,具备车辆检测、车距计算等基本功能,为辅助驾驶入门级项目提供了很好的范例。同时,CANN 还为机器人产业的发展提供了强大的技术支持,昇腾 AI 全栈技术和产品构筑了人工智能的算力基座,赋能上层应用,为辅助驾驶等领域的发展带来了更多可能性。
以下是基于 CANN 的辅助驾驶 AI 应用的代码示例,包括环境准备、模型下载、样例运行和结果查看等步骤。
一、环境准备
二、模型下载
以 YOLOV4_coco_detection_car_video 样例为例,进行模型下载:
三、样例运行
四、结果查看
运行完成后,结果视频保存在 out 目录下。可以通过查看该目录下的视频文件,观察基于 CANN 的辅助驾驶 AI 应用对输入视频的预测推理结果。
基于昇腾 AI 异构计算架构 CANN 的辅助驾驶 AI 应用具有强大的原理和优势,为汽车行业的智能化发展提供了有力支持。
通过图文并茂的介绍和代码示例,希望读者能够深入了解这一技术,为未来的创新应用奠定基础。