Skip to main content

moregeek program

带你了解cann的目标检测与识别一站式方案_华为云开发者社区的博客-多极客编程

摘要: 了解通用目标检测与识别一站式方案的功能与特性,还有实现流程,以及可定制点。

本文分享自华为云社区《​​玩转CANN目标检测与识别一站式方案​​》,作者: Tianyi_Li。

背景介绍

目标检测与识别是计算机视觉领域中的关键技术,随着深度学习技术的发展,目标检测与识别的应用场景也越来越广泛。当前, 主要有以下几个应用场景:

安全领域:指纹识别、物体识别等。

交通领域:车牌号识别、无人驾驶、交通标志识别等。

医疗领域:心电图、B超、健康管理、营养学等。

生活领域:智能家居、智能购物、智能测肤等。

但当前人工智能应用开发面临着开发周期长、AI软件栈理解成本高、算法模型与业务结合难度高、对开发人员技能要求高等门槛。为了降低AI应用开发的门槛,昇腾CANN开源了高性能的通用目标检测与识别一站式方案,通过其强大的可定制、可扩展性,旨在为AI开发者们提供更好的编程选择。

特别提示,如果您具有以下知识储备,将有助于学习:

  1. 具有C&C++编程经验。
  2. 了解异构计算架构CANN在昇腾AI全栈中的位置和作用。
  3. 了解应用编程框架AscendCL的关键特性,并能够基于AscendCL接口开发简单的AI应用。

目标

  1. 了解通用目标检测与识别一站式方案的功能与特性
  2. 了解ACLlite的背景及接口使用方法
  3. 深入了解通用目标检测与识别一站式方案的实现流程
  4. 能够基于此方案定制自己的AI应用

目标检测与识别一站式方案介绍

方案特性

点此​detect_and_classify​,可查看方案源代码。

方案整体特性概括如下:

带你了解CANN的目标检测与识别一站式方案_目标检测

1.支持多格式输入和输出

通用目标检测和识别一站式方案支持图片、离线视频、RTSP视频流等多输入格式,开发者可基于此方案实现对图片和视频等不同格式的目标进行识别。另外在结果展示方面,支持图片、离线视频、Web前端等多形式展现,开发者可根据业务场景灵活呈现识别结果。

2.支持轻松替换和串接模型

该方案当前选用的是YoloV3图片检测模型与CNN颜色分类模型的串接,可实现基本的车辆检测和车辆颜色识别,开发者可轻松修改程序代码,自行替换/增加/删除AI模型,实现更多AI功能。

3.支持高效数据预处理

图片、视频等各类数据是进行目标检测和识别的原料,在把数据投入AI算法或模型前,我们需要对数据进行预加工,才能达到更加高效和准确的计算。该样例采用独立数据预处理模块,支持开发者按需定制,高效实现解码、抠图、缩放、色域转换等各种常见数据处理功能。

4.支持图片数、分辨率可变场景定制

在目标检测和识别领域,开发者们除了需要应对输入数据格式等方面差异,还会经常遇到图片数量、分辨率不确定的场景,这也是格外头疼的问题之一。比如,在目标检测和识别过程中,由于检测出的目标个数不固定,导致程序要等到图片攒到固定数量再进行AI计算,浪费了大量宝贵的AI计算资源。该样例开放了便捷的定制入口,支持设置多种数据量Batch档位、多种分辨率档位,在推理时根据实际输入情况灵活匹配,不仅扩宽了业务场景,更有效节省计算资源,大大提升AI计算效率。

5.支持多路多线程高性能编程

为了进一步提高编程的灵活性,满足开发者实现高性能AI应用,该样例支持通过极为友好和便捷的方式调整线程数和设备路数,极大降低学习成本,提升设备资源利用率。

6.高效后处理计算

除此之外,该样例后续还会将原本需要在CPU上进行处理的功能推送到昇腾AI处理器上执行,利用昇腾AI处理器强大的算力实现后处理的加速,进一步提升整个AI应用的计算效率。

实现流程

该样例使用了图片检测模型与颜色分类模型,基于CANN AI应用编程接口,对数据预处理、模型推理、模型后处理等AI核心计算逻辑进行模块化组装,实现了车辆检测和车身颜色识别基础功能,以输入图片是JPEG压缩图片为例,该样例功能流程如下所示:

带你了解CANN的目标检测与识别一站式方案_计算机视觉_02

  1. 首先输入图片送入Device的DVPP进行数据预处理,因为模型的输入要求是非压缩的、指定编码格式的图片,所以首先使用DVPP进行图片的解码操作,解码后格式为YUV420SP_U8。
  2. 由于图片的大小与模型要求的大小不一致,解码后我们使用DVPP的VPC功能进行大小的调整。
  3. 经过前面的一系列处理后,输入到模型的编码格式YUV420SP_U8仍与模型要求不一致,此时我们可以在模型转换时通过AIPP的色域转换功能实现格式转换,将YUV420SP_U8格式转换为模型要求的BGR格式,这里的色域转换功能其实就相当于在模型中添加了一个色域转换算子,直接在模型推理前实现了编码格式的转换,而无需代码层面的修改。
  4. 检测模型推理后的结果就可以送入模型后处理模块,后处理模块根据业务流程需要,进行检测坐标点的存储。
  5. 下一步,就是将检测坐标点以及前面预处理后的YUV图片,一起送入分类模型的预处理模块,首先根据检测结果的坐标点信息对输入的图片进行抠图,然后再将其缩放为分类模型要求的大小。
  6. 由于颜色分类模型要求的图片编码格式是RGB,同前面的检测模型一样,需要使用AIPP的色域转换功能,在模型推理前将YUV转换为RGB。
  7. 最后对分类模型推理后的结果进行处理,在图片上进行画框,标注结果,并根据用户的输出要求进行存储或者在线展示。

快速体验

下面介绍让样例快速跑起来,了解通用目标检测与识别一站式方案的总体编译运行流程,主要是:

  1. 输入/输出数据都为图片,其中输入数据请选择jpeg格式的图片
  2. 使用1个Device运行

准备环境

这里不做过多介绍,使用的是ECS + 官方推送的镜像,很简单就能搞定了,需要注意的是环境准备好后,请以HwHiAiUser用户体验如下任务。HwHiAiUser用户下已经配置好了环境变量,安装好了应用所需基本依赖。

编译运行样例

因为镜像已经做好了配置,可以直接下载样例,模型与数据,直接编译运行即可。详细步骤如下:

步骤 1 :下载samples源码仓。

此处已将samples仓下载到$HOME路径下为例, 可以使用以下两种方式下载,请选择其中一种即可

【命令行下载】

cd ${HOME}
git clone https://gitee.com/ascend/samples.git

【压缩包下载】

a. 在samples仓右上角选择【克隆/下载】下拉框,并选择【下载ZIP】。

b. 将ZIP包以HwHiAiUser用户上传到开发环境的普通用户家目录中。

例如:${HOME}/ascend-samples-master.zip

c. 执行以下命令,解压缩zip包。

cd ${HOME}
unzip ascend-samples-master.zip

步骤 2 : 准备模型及数据。

请参见README中的模型及数据准备章节。

步骤 3 : 样例编译运行。

请参见README中的样例编译运行章节。

【说明】

  1. 输入/输出数据都要求为图片,其中输入数据请选择jpeg格式的图片
  2. 使用1个Device运行

结果输出

如下图所示,左图为运行的打印输出,右图为输出的推理结果图片:

带你了解CANN的目标检测与识别一站式方案_计算机视觉_03

此外,还支持多种输入输出模式:

带你了解CANN的目标检测与识别一站式方案_计算机视觉_04

带你了解CANN的目标检测与识别一站式方案_目标检测_05

根据官方的测试,单device最多支持22路,在输入分辨率1280 * 720的视频下,单帧图像处理耗时20ms,每秒最大处理帧数为50帧。

结语

本次的CANN目标检测与识别一站式方案总体流程图如下图所示,

带你了解CANN的目标检测与识别一站式方案_CANN_06

方案中大量使用了线程,多路线程分别进行数据流转和协同合作,以单device为例,线程关系如下图所示:

带你了解CANN的目标检测与识别一站式方案_CANN_07

此外,还支持定制开发,开发者可根据需要,自行添加包括但不限于如下功能:

带你了解CANN的目标检测与识别一站式方案_深度学习_08

详细的操作位置如下图所示,具体可参考本方案代码库的README:

带你了解CANN的目标检测与识别一站式方案_开发者_09

好了,最后奉上本方案代码库的获取方式,如下图所示,当然,也可以点击在前文中咱们提供的链接。

带你了解CANN的目标检测与识别一站式方案_计算机视觉_10


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

©著作权归作者所有:来自51CTO博客作者华为云开发者联盟的原创作品,如需转载,请与作者联系,否则将追究法律责任

一文了解循环神经网络_华为云开发者社区的博客-多极客编程

摘要:循环神经网络(RNN)可是在语音识别、自然语言处理等其他领域中引起了变革!本文分享自华为云社区《​​【MindSpore易点通】深度学习系列-循环神经网络上篇​​》,作者:Skytier循环神经网络(RNN)可是在语音识别、自然语言处理等其他领域中引起了变革!1 应用场景循环神经网络(RNN)其实就是序列模型,我们先来看看其应用场景。在语音识别时,给定了一个输入音频片段X ,并要求输出对应的

带你体验给黑白照片上色_华为云开发者社区的博客-多极客编程

摘要:借助人工智能技术,可以一定程度上帮助老照片还原原来色彩。还记得之前火热的“老北京视频上色”吗?就是采用类似的技术。本文分享自华为云社区《​​基于MindX SDK在Ascend 310上的黑白图像上色初体验随笔​​》,作者:Tianyi_Li 。前言在智能手机越来越普及的今天,拍摄一张色彩鲜艳、清晰的照片轻而易举。但是老照片没有如此“幸运”,大多为黑白。借助人工智能技术,可以一定程度上帮助老

python系列教程196——参数匹配_床长人工智能的博客-多极客编程

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读! 在调用函数时,如果你没有使用过任何特殊的匹配语法,Python默认会通过位置从左至右匹配

easynlp玩转文本摘要(新闻标题)生成_阿里云计算平台团队的博客-多极客编程

作者:王明、黄俊导读文本生成是自然语言处理领域的一个重要研究方向,具有丰富的实际应用场景以及研究价值。其中,生成式文本摘要作为文本生成的一个重要子任务,在实际应用场景中,包括新闻标题生成、摘要生成、关键词生成等任务形式。预训练语言模型,如BERT、MASS、uniLM等虽然在NLU场景中取得了令人瞩目的性能,但模型采用的单词、子词遮盖语言模型并不适用于文本生成场景中,特别是生成式文本摘要场景。其原

vs code摸鱼神器,让你快速开发ai模型_华为云开发者社区的博客-多极客编程

摘要:ModelArts VS Code插件一键接入云上开发环境介绍及操作指导对于习惯于使用本地VS Code IDE的开发者,受限于本地资源,采用本地开发加云上调测的远程开发方式不失为一种更好的选择。对比一下本地开发和远程开发的优劣可以看到,本地+远程结合的方式可以同时享受IDE工程化开发的优势和云上资源的即开即用,优势互补,最大程度地满足开发者需求。通过本地IDE加ModelArts提供的远程

阿里云大数据助力知衣科技打造ai服装行业核心竞争力_阿里云计算平台团队的博客-多极客编程

公司简介杭州知衣科技有限公司是一家以人工智能技术为驱动的国家高新技术企业,致力于将数据化趋势发现、爆款挖掘和供应链组织能力标准化输出,打造智能化服装设计的供应链平台。知衣成立于2018年2月,同年获得千万美金A轮融资;2021年完成由高瓴创投、万物资本领投的2亿人民币B轮融资,同年入围“杭州市准独角兽企业榜单”。知衣凭借图像识别、数据挖掘、智能推荐等核心技术能力,不断升级服务体系,自主研发了知衣、

一文了解循环神经网络_华为云开发者社区的博客-多极客编程

摘要:循环神经网络(RNN)可是在语音识别、自然语言处理等其他领域中引起了变革!本文分享自华为云社区《​​【MindSpore易点通】深度学习系列-循环神经网络上篇​​》,作者:Skytier循环神经网络(RNN)可是在语音识别、自然语言处理等其他领域中引起了变革!1 应用场景循环神经网络(RNN)其实就是序列模型,我们先来看看其应用场景。在语音识别时,给定了一个输入音频片段X ,并要求输出对应的

带你体验给黑白照片上色_华为云开发者社区的博客-多极客编程

摘要:借助人工智能技术,可以一定程度上帮助老照片还原原来色彩。还记得之前火热的“老北京视频上色”吗?就是采用类似的技术。本文分享自华为云社区《​​基于MindX SDK在Ascend 310上的黑白图像上色初体验随笔​​》,作者:Tianyi_Li 。前言在智能手机越来越普及的今天,拍摄一张色彩鲜艳、清晰的照片轻而易举。但是老照片没有如此“幸运”,大多为黑白。借助人工智能技术,可以一定程度上帮助老

python系列教程196——参数匹配_床长人工智能的博客-多极客编程

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读! 在调用函数时,如果你没有使用过任何特殊的匹配语法,Python默认会通过位置从左至右匹配

easynlp玩转文本摘要(新闻标题)生成_阿里云计算平台团队的博客-多极客编程

作者:王明、黄俊导读文本生成是自然语言处理领域的一个重要研究方向,具有丰富的实际应用场景以及研究价值。其中,生成式文本摘要作为文本生成的一个重要子任务,在实际应用场景中,包括新闻标题生成、摘要生成、关键词生成等任务形式。预训练语言模型,如BERT、MASS、uniLM等虽然在NLU场景中取得了令人瞩目的性能,但模型采用的单词、子词遮盖语言模型并不适用于文本生成场景中,特别是生成式文本摘要场景。其原

vs code摸鱼神器,让你快速开发ai模型_华为云开发者社区的博客-多极客编程

摘要:ModelArts VS Code插件一键接入云上开发环境介绍及操作指导对于习惯于使用本地VS Code IDE的开发者,受限于本地资源,采用本地开发加云上调测的远程开发方式不失为一种更好的选择。对比一下本地开发和远程开发的优劣可以看到,本地+远程结合的方式可以同时享受IDE工程化开发的优势和云上资源的即开即用,优势互补,最大程度地满足开发者需求。通过本地IDE加ModelArts提供的远程

阿里云大数据助力知衣科技打造ai服装行业核心竞争力_阿里云计算平台团队的博客-多极客编程

公司简介杭州知衣科技有限公司是一家以人工智能技术为驱动的国家高新技术企业,致力于将数据化趋势发现、爆款挖掘和供应链组织能力标准化输出,打造智能化服装设计的供应链平台。知衣成立于2018年2月,同年获得千万美金A轮融资;2021年完成由高瓴创投、万物资本领投的2亿人民币B轮融资,同年入围“杭州市准独角兽企业榜单”。知衣凭借图像识别、数据挖掘、智能推荐等核心技术能力,不断升级服务体系,自主研发了知衣、