基于昇腾AI 使用AscendCL实现垃圾分类和视频物体分类应用
现如今,人工智能迅猛发展,AI赋能产业发展的速度正在加快,“AI+”的需求蜂拥而来,但 AI应用 快速落地的过程中仍存在很大的挑战:向下需要适配的硬件,向上需要完善的技术支持,两者缺一不可。
基于此,昇腾推出了系列化行业SDK和参考设计,通过把千行百业细分场景的开发经验和行业知识沉淀下来、水平复制,从而大幅度降低门槛、简化开发、提升效率。而信迈科技是昇腾重要的APN合作伙伴、金牌分销商,具有较强的自主设计硬件能力,双方紧密携手,打造软硬结合、更符合行业需求的算力底座,赋能产业快速、低成本数字化转型。
使用AscendCL快速实现垃圾分类和视频物体分类应用的案例,帮助开发者降低学习成本、简化开发流程,缩短项目周期!
案例概述
①垃圾分类应用:基于AscendCL,使用实现对图片中的垃圾类别进行检测,并输出有检测类别的图片;
②视频物体分类应用:基于GoogLeNet分类网络,使用实现对视频帧中的物体进行识别分类,并将分类的结果展示在PC网页上。
案例说明
本案例底层原理逻辑请参考华为昇腾AscendCL <垃圾分类>,和<视频物体分类>案例。
前置条件

基于实现垃圾分类应用
1
环境安装
注意事项:
➢以下操作以普通用户HwHiAiUser安装CANN包为例说明,推荐使用root用户进行操作,如果是root用户,请将安装准备中所有的${HOME}修改为/usr/local。
➢推荐按照本文档路径进行操作,如安装在自定义路径可能会导致环境冲突等问题
1、配置相关环境
# 以安装用户在任意目录下执行以下命令,打开.bashrc文件。
2、安装python-acllite
# 安装ffmpeg部分依赖
2
模型获取&转换
# 进入案例路径,samples为前置步骤中下载的案例包
3
测试数据获取
# 创建并进入data文件夹
4
运行案例
运行python代码:
# 此处的data为测试数据路径
➢运行成功后如无报错会显示以下信息:

5
案例展示
在案例根目录out文件夹下会生成带有检测类别的图片:



基于实现视频物体分类应用
1
环境安装
注意事项:
➢以下操作以普通用户HwHiAiUser安装CANN包为例说明,推荐使用root用户进行操作,如果是root用户,请将安装准备中所有的${HOME}修改为/usr/local。
➢推荐按照本文档路径进行操作,如安装在自定义路径可能会导致环境冲突等问题。
1、配置相关环境
# 以安装用户在任意目录下执行以下命令,打开.bashrc文件。
2、安装opencv
# 执行以下命令安装opencv (注:请确保安装的版本是3.x)
**3、**安装protobuf&presentagent
# 安装protobuf相关依赖
2
模型转换&获取
注意事项:
➢本案例使用基于Caffe的GoogLeNet模型,获取模型的命令已提供,如果开发者需要更多模型信息可参考:
# 进入案例路径,samples为前置步骤中下载的案例包
3
编译运行案例
1、执行编译脚本
# 进入脚本路径
➢执行编译脚本后请根据实际情况选择arm/x86格式,在上进行操作请选择:arm

➢编译脚本中会自动下载相关视频素材:cat.mp4,如开发者使用其它素材,可以在sample_build.sh处删除该命令

➢编译完成后会生成相关文件并提示complete

2、执行脚本运行案例
# 赋予脚本权限
➢执行运行脚本后,如果有本设备有多个ip,请选择能连通外网的ip并进行输入,例:10.1.30.111

➢执行成功后,会提示successfully,并提供相关的 网页链接

➢运行脚本默认读取cat.mp4素材,如开发者使用其它素材,可以在sample_run.sh处更改素材路径

4
案例展示
打开浏览器输入提供的网页链接与端口号,例:10.1.30.111:7007
➢进入下图界面后,等待状态栏变为绿色,可以单击“Refresh“刷新,当有数据时相应的Channel 的Status变成绿色。
➢状态栏正常后,点击右侧的View Name下的名字 ,例:classify

➢进入视频物体分类界面后,会在视频左上角显示检测的物体类别,视频上方显示视频帧率,开发者可进行截图、录像等功能。

5
相关FAQ
1、安装protobuf&presentagent时执行${THIRDPART_PATH}/bin/protoc presenter_message.proto --cpp_out=./
报错:protoc not such file or directory
➢该报错可能是protobuf安装问题:
# 回到protobuf安装路径cd /usr/local/probuf# 再次执行make installmake install# 查看${THIRDPART_PATH}/bin/下是否有protoc
2、执行编译脚本时报错如下图:

➢该报错可能是 opencv 版本问题:
# 进入报错代码