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

前言

本博文承接上一篇《玩转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

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值