【CANN训练营】玩转CANN目标检测与识别一站式方案【基础篇】

举报
Tianyi_Li 发表于 2022/07/19 16:28:31 2022/07/19
【摘要】 本博文承接上一篇《玩转CANN目标检测与识别一站式方案【介绍篇】》, 进一步认识AclLite,明确开发流程,介绍如何定制化自己的AI应用。

前言

本博文承接上一篇《玩转CANN目标检测与识别一站式方案【介绍篇】》,如果是对CANN目标检测与识别一站式方案还不了解的同学,建议先读读之前的博文。

认识AclLite

AclLite是什么?

CANN目标检测与识别一站式方案是基于AclLite开发的,那么AclLite又是什么呢?简单来说,就是基于华为昇腾原生接口和官方接口文档做了进一步封装,特别是对当前开源社区样例中相关重复代码进行封装,为用户提供的一组简易公共接口。
一言以蔽之,就是简化开发,降低基于CANN开发的难度。其功能介绍和获取方式如下图所示:

image.png

AclLite简介

考虑到实际开发需要和比较热门的应用,下面我们介绍下常用的处理方法:

图片处理

image.png

视频处理

image.png

模型推理,公共函数与资源管理

image.png

应用和多线程

image.png

除了以上部分,其实还有其他部分,这里就不一一展开了,需要注意的是,这是基于官方接口的封装,属于二次开发,不建议作为标准库使用,但是如果为了快速实现,验证原型,还是可以考虑的。

CANN目标检测与识别一站式方案实现分析

看过《玩转CANN目标检测与识别一站式方案【介绍篇】》的朋友们应该知道,原始方案是先检测对输入做车辆检测,之后将检测到的车辆做颜色分类,是一个检测 + 分类的级联任务。下面分别介绍这两个任务的处理流程。

检测预处理

image.png
image.png

视频检测预处理

image.png

检测推理流程

image.png

检测后处理流程

image.png
image.png

分类预处理流程

image.png

分类推理流程

image.png

分类后处理流程

image.png

定制化自己的应用

这个方案是为了给开发者提供一个样例,方便大家进行自己的应用开发,希望做到以此方案为参考或模板,能够快速实现自己应用的开发,总的替换流程如下图所示:

image.png

预处理

image.png

推理流程

对要替换的模型进行分析,配置代表模型文件路径的变量,以替换后的模型初始化AclLiteModel类对象,根据替换后模型的实际需要,对初始化模型输入接口进行替换,并修改模型的执行接口。
一般来说,替换模型的话,从预处理到模型加载,推理再到后处理都需要改,基本上算重构代码了,但如果模型的预处理或后处理差异不大,那么改动就小多了,比如YOLO系列的预处理和后处理大都差不多,就好改多了。

image.png

后处理

image.png

除上述的基本处理流程外,还可以根据需要,增加我们想要的,更灵活的功能,比如动态Batch,具体代码修改如下图所示:

image.png

此外,还有动态分辨率和动态AIPP等功能,不过一般来说,动态的特性,虽然更加灵活,但是一般都会使得效率变低,个人认为,除非是一定要用才能完成既定功能,否则还是静态更好。毕竟推理任务,还是要以效率或者说性能为更重要的考量。

结语

不多说了,以老师的最后一张PPT作为结束吧!

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。