---
title: 基于CANN的AI推理最佳实践丨多路高性能目标检测应用设计解密-昇腾社区
description: 目标检测是计算机视觉领域的一项关键技术，它的任务是找出图像中所有感兴趣的目标，确定它们的类别和位置。随着人工智能潜移默化地渗入人们的生活中，各行各业竞相通过引入目标检测等技术打开市场空间，关于目标检测的各类人工智能需求也奔涌而来。比如：● 在交通领域，目标检测可以用来检测道路上的行人、车辆、交通标志等物体，提升行驶安全和通行便利性。● 在医疗领域，目标检测可以用来识别身体部位、
keywords: CANN,AI,推理最佳实践,丨多路高性能,目标检测应用,设计解密,昇腾社区,基础应用分解
url: https://www.hiascend.com/zh/activities/dynamic-news/20230807-01?pageSize=10%26pageNo=1%26domainCode=%26id=20230807-01%26lang=zh
section: (其他)
---

# 基于CANN的AI推理最佳实践丨多路高性能目标检测应用设计解密-昇腾社区

URL: https://www.hiascend.com/zh/activities/dynamic-news/20230807-01?pageSize=10%26pageNo=1%26domainCode=%26id=20230807-01%26lang=zh
描述: 目标检测是计算机视觉领域的一项关键技术，它的任务是找出图像中所有感兴趣的目标，确定它们的类别和位置。随着人工智能潜移默化地渗入人们的生活中，各行各业竞相通过引入目标检测等技术打开市场空间，关于目标检测的各类人工智能需求也奔涌而来。比如：● 在交通领域，目标检测可以用来检测道路上的行人、车辆、交通标志等物体，提升行驶安全和通行便利性。● 在医疗领域，目标检测可以用来识别身体部位、
关键词: CANN,AI,推理最佳实践,丨多路高性能,目标检测应用,设计解密,昇腾社区,基础应用分解

新闻资讯 [了解详情](https://www.hiascend.com/activities/news)

基于CANN的AI推理最佳实践丨多路高性能目标检测应用设计解密

# 基于CANN的AI推理最佳实践丨多路高性能目标检测应用设计解密

产业开发者生态伙伴

发表于 2023/08/07

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

比如：

● 在交通领域，目标检测可以用来检测道路上的行人、车辆、交通标志等物体，提升行驶安全和通行便利性。

● 在医疗领域，目标检测可以用来识别身体部位、病灶、心电图、CT影像等，以便快速辅助诊断。

● 在图像领域，目标检测可以用来识别图像中的关键物体，以便更好地检索和理解图像。

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

## 基础应用分解

GPU AI推理业务流程

1、 数据输入是摄像头获取的视频数据流，一般以H.264格式为主。

2、 然后通过FFmpeg软件，将连续的视频流进行拆帧和解码。

3、 下一阶段是对解码后的图像进行预处理，通常使用OpenCV对图像进行缩放，得到模型需要的图像规格。

4、 模型推理环节，用户可以选择的方式比较多，比较典型的是使用TensorRT进行推理应用开发。

5、 目标检测后处理需要进行NMS计算，进行图片画框等操作。

6、 数据输出阶段，用户根据需要实现一个结果呈现形式。

## 推理功能适配

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

1、将推理模型文件（onnx或者pb）通过ATC工具转化为昇腾平台专属的离线om文件。

2、使用昇腾AscendCL语言开发模型加载和模型执行的逻辑。

基于CANN的AI推理业务流程

完成如上两个环节后，推理应用的功能就已经迁移到昇腾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格式的图片解码

昇腾AI处理器逻辑架构中DVPP位置

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

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

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

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

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

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

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

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

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

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

扫描二维码，快速获取多路高性能目标检测最佳实践源码

上一篇

昇腾AI带你探秘斯美达光热生产研发基地的“AI太阳能超级工厂”

下一篇

森罗智瞳携手昇腾AI打造集装袋缺陷智能检测系统
