AI推理实践丨多路极致性能目标检测最佳实践设计解密

ai,推理,实践,多路,极致,性能,目标,检测,最佳,设计,解密 · 浏览次数 : 64

小编点评

**CANN的多路极致性能目标检测最佳实践设计** **概述** 本文介绍了基于CANN的多路极致性能目标检测最佳实践设计。该设计通过将目标检测应用迁移到昇腾平台,简化开发流程,提升目标检测应用的性能。 **基本应用分解** * 模型推理:GPU AI推理业务流程数据输入是摄像头获取的视频数据流,通过FFmpeg软件进行拆帧和解码。 * 预处理:使用OpenCV对图像进行缩放,得到模型需要的图像规格。 * 推理:用户可以选择的方式比较多,比较典型的是使用TensorRT进行推理应用开发。 * 后处理:进行NMS计算,进行图片画框等操作。 **性能提升** * **性能提升方式一:DVPP**:利用AscendCL媒体数据处理接口提供强大的媒体处理硬加速能力,提升图像处理效率。 * **性能提升方式二:队列**:通过队列机制,增加推理模块的并行流水,提升推理性能。 * **性能提升方式三:多线程并发**:支持多线程并发,实现多路不同源的视频输入。 **最佳实践** * 开发者可以参考此实践快速上手AI开发,玩转昇腾平台推理应用。 * CANN将持续致力于应用开发的易用性提升,不断满足开发者的诉求。

正文

摘要:基于CANN的多路极致性能目标检测最佳实践设计解密。

本文分享自华为云社区《基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密》,作者: 昇腾CANN 。

当前人工智能领域,最热门的无疑是以ChatGPT为代表的各种“新贵”大模型,它们高高在上,让你无法触及。但在人们的日常生活中,实际应用需求最大的还是以Yolo模型为代表的目标检测“豪强”,它们每天都在以各种方式落地、应用于我们日常生活的方方面面。

目标检测是计算机视觉领域的一项关键技术,它的任务是找出图像中所有感兴趣的目标,确定它们的类别和位置。随着人工智能潜移默化地渗入人们的生活中,各行各业竞相通过引入目标检测等技术打开市场空间,关于目标检测的各类人工智能需求也奔涌而来,比如:

  • 在交通领域,目标检测可以用来检测道路上的行人、车辆、交通标志等物体,提升行驶安全和通行便利性。
  • 在安全领域,目标检测可以用来检测关键特征、特定行为或者可疑物体,以便快速发现和识别安全威胁。
  • 在医疗领域,目标检测可以用来识别身体部位、病灶、心电图、CT影像等,以便快速辅助诊断。
  • 在生活领域,目标检测可以用于智能购物、智能家居等场景,提升人们生活的便利性。

但AI应用开发门槛高,周期长。各类AI软件栈理解成本高、AI算法模型与业务结合难度高、对开发人员的技能要求也较高。如何提升AI推理应用的开发效率,降低开发门槛,是亟需改善的现状。为此,昇腾CANN技术专家设计和开发了针对目标检测应用的最佳实践,让开发者可以在昇腾平台上快速部署目标检测应用,轻松获得几十甚至上百路的检测效果。下面我们就来详细拆解一下这个实践的设计思路。

基础应用分解

我们首先从一个基础的目标检测推理应用场景开始,推理流程通常包含如下几个部分:

GPU AI推理业务流程

  1. 数据输入是摄像头获取的视频数据流,一般以H.264格式为主。
  2. 然后通过FFmpeg软件,将连续的视频流进行拆帧和解码。
  3. 下一阶段是对解码后的图像进行预处理,通常使用OpenCV对图像进行缩放,得到模型需要的图像规格。
  4. 模型推理环节,用户可以选择的方式比较多,比较典型的是使用TensorRT进行推理应用开发。
  5. 目标检测后处理需要进行NMS计算,进行图片画框等操作。
  6. 数据输出阶段,用户根据需要实现一个结果呈现形式。

推理功能适配

将上面介绍的目标检测应用迁移到昇腾平台,开发者仅需关注“推理”环节的适配,包括如下两个步骤:

  1. 将推理模型文件(onnx模型或pb模型)通过ATC工具转化为昇腾平台专属的离线om文件。
  2. 使用昇腾AscendCL语言开发模型加载和模型执行的逻辑。

基于CANN的AI推理业务流程

完成如上两个环节后,推理应用的功能就已经迁移到昇腾平台了。这时若整体的推理性能未达到理想预期,就需要进入性能优化提升阶段。

性能提升方式一:使能DVPP硬件的高效编解码能力

DVPP(Digital Vision Pre-Processing,数字视觉预处理)是昇腾AI处理器内置的图像处理单元,通过AscendCL媒体数据处理接口提供强大的媒体处理硬加速能力,主要包括以下功能:

  • VPC(Vision Preprocessing Core):处理YUV、RGB等格式的图片,包括缩放、抠图、色域转换等。
  • JPEGD(JPEG Decoder):JPEG压缩格式→YUV格式的图片解码。
  • JPEGE(JPEG Encoder):YUV格式→JPEG压缩格式的图片编码。
  • VDEC(Video Decoder):H264/H265格式→YUV/RGB格式的视频码流解码。
  • VENC(Video Encoder):YUV420SP格式→H264/H265格式的视频码流编码。
  • PNGD(PNG Decoder):PNG格式→RGB格式的图片解码。

Ascend 310 AI处理器逻辑架构中DVPP位置

开发者可以通过DVPP对图像进行硬件解码和处理,提升图像处理效率。另外,DVPP和执行推理的计算单元AI Core是完全独立的硬件单元,无需担心使用DVPP后会对推理执行的性能产生影响。

基于CANN的AI推理业务流程——使用DVPP进行数据预处理

性能提升方式二:增加推理前后数据并行,让推理步骤一刻不停

昇腾平台采用异构计算架构,所以要充分利用计算核心AI Core的超强能力,就需要保证AI Core计算需要的数据能够持续不间断供给,同时能够无等待输出。为了实现此能力,可以在数据预处理→模型推理,模型推理→数据后处理模块间通过队列的机制,增加推理模块的并行流水。

基于CANN的AI推理业务流程——通过队列增加推理并行流水

同理,在FFmpeg视频拆帧和DVPP处理之间,也可以使用队列,进一步增加并行情况。但需要注意推理侧的队列数据会消耗硬件内存,所以需要要合理设置。

性能提升方式三:多线程并发,持续释放AI Core性能

多线程是提升硬件资源利用率的重要手段,通过多线程的支持,可以实现多路不同源的视频输入;针对服务器多卡的场景,同样支持多个卡并行执行,充分释放昇腾软硬件的性能。

基于CANN的AI推理业务流程——多线程并发

基于目标检测最佳实践,开发者可轻松实现已有AI推理应用到昇腾平台的迁移,并轻松达成高性能。开发者也可以参考此实践快速上手AI开发,玩转昇腾平台推理应用。未来,CANN将持续致力于应用开发的易用性提升,不断满足开发者的诉求。

点击Link,获取多路高性能目标检测最佳实践源码。

 

点击关注,第一时间了解华为云新鲜技术~

与AI推理实践丨多路极致性能目标检测最佳实践设计解密相似的内容:

AI推理实践丨多路极致性能目标检测最佳实践设计解密

摘要:基于CANN的多路极致性能目标检测最佳实践设计解密。 本文分享自华为云社区《基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密》,作者: 昇腾CANN 。 当前人工智能领域,最热门的无疑是以ChatGPT为代表的各种“新贵”大模型,它们高高在上,让你无法触及。但在人们的日常生活中

ModelBox姿态匹配:抖抖手动动脚勤做深呼吸

摘要:本案例使用Windows版本的ModelBox SDK进行二次开发,主要是针对姿态匹配案例开发实践。 本文分享自华为云社区《姿态匹配:抖抖手动动脚勤做深呼吸》,作者:吴小鱼。 在之前发布的AI说ModelBox推理真的高效吗一文中,我们使用双阶段单人人体关键点检测作为案例对比测试了ModelB

当线下门店遇上AI:华为云ModelBox携手佳华科技客流分析实践

摘要:在赋能传统门店客流经营数字化转型方面,华为云ModelBox与伙伴佳华科技合作推出的“华为云客流统计项目”,算是一次成功的探索。 本文分享自华为云社区《当线下门店遇上AI—华为云ModelBox携手佳华科技客流分析实践》,作者: 华为云社区精选 。 现如今,AI技术蓬勃发展,相关的理论技术和应

提前预体验阿里大模型“通义千问”的方法来了!

随着AI大模型的浪潮席卷全球,如今的AI技术已经颠覆了大家对传统AI的认识,微软更是用浏览器与搜索引擎上的实践,证明了当今的AI技术具备打破行业格局的能力。 对于我们应用开发者来说,AI基建的建设与竞争是无法参与的,但在AI的应用领域依然大有可为!目前,国内各大科技公司已经陆续推出了各自的AI大模型

阿里云边缘容器云帮助AI推理应用快速落地

近日,阿里云技术专家徐若晨在全球分布式云大会上,分享了《边缘容器云助力AI推理高效落地》的主题演讲,分享了阿里云边缘容器云如何助力开发者实现更快速的AI推理应用的迭代和部署。此外,他还分享了边缘AI推理应用在实际业务中的应用案例。 终端算力上移 云端算力下沉 客户在边缘部署时面对的挑战包括:首先,构

昇腾携手OpenMMLab,支持海量算法仓库的昇腾AI推理部署

摘要:近日,昇腾AI联合上海人工智能实验室,正式实现OpenMMLab算法仓库在昇腾的异构计算架构CANN上的推理部署,目前相关代码已推入MMDeploy 0.10.0版本,并在GitHub正式发布。 本文分享自华为云社区《昇腾携手OpenMMLab,支持海量算法仓库的昇腾AI推理部署》,作者:昇腾

基于昇腾计算语言AscendCL开发AI推理应用

摘要:本文介绍了昇腾计算语言AscendCL的基本概念,并以示例代码的形式介绍了如何基于AscendCL开发AI推理应用,最后配以实际的操作演示说明如何编译运行应用。 本文分享自华为云社区《基于昇腾计算语言AscendCL开发AI推理应用》,作者:昇腾CANN。 初始AscendCL AscendC

2024年,AI驱动测试管理工具会有哪些发展前景呢?

随着人工智能技术的日新月异,2024年的测试管理工具将迎来全新的发展机遇。AI赋能将助力测试管理工具实现前所未有的智能化升级,为软件研发团队带来革命性的变革。 一、什么是AI? 人工智能(AI)是一种能够模仿人类智能行为的技术。它通过模拟人类大脑的功能来解决复杂问题,具有学习、推理、感知、预测等能力

对DenseTensor进行Transpose

`ML.NET` 是微软推出的为. NET 平台设计的深度学习库,通过这个东西(`ModelBuilder`)可以自己构建模型,并用于后来的推理与数据处理。虽然设计是很好的,但是由于现在的 AI 发展基本上都以 `python` 实现作为基础,未来这个东西的发展不好说,特别是模型构建部分。我个人认为

Meta AI 开源万物可分割 AI 模型(SAM)

4 月 6 日,根据 Meta AI 官方博客,Meta AI 宣布推出了一个 AI 模型 Segment Anything Model(SAM,分割一切模型)。据介绍,该模型能够根据文本指令等方式实现图像分割,而且万物皆可识别和一键抠图。