赞
踩
香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试(一)
香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试(二)
香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试(三)
在测试笔记(一)中,我们已经掌握并搭建了板卡的初步调试环境。
在测试笔记(二)中,我们开始逐步上手官方的Demo,进行跑测,首先测试的是Camera图像获取(USB接口)样例。
今天,我们将要跑测:目标检测(USB接口)样例。
【目标检测(USB接口)样例 链接】
【样例描述】
通过USB接口连接Camera与开发板,从Camera获取视频,基于yolov5s模型对输入视频中的物体做实时检测,将推理结果信息使用imshow方式显示。
YOLOv5是一种单阶段目标检测器算法
YOLOv5s是YOLOv5系列中较为轻量的网络模型,适合在边缘设备部署,进
行实时目标检测。
PS:以HwHiAiUser用户登录开发板。
运行记录:(此处我使用的是命令行方式)
- (base) HwHiAiUser@orangepiaipro:~$ export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest
-
- (base) HwHiAiUser@orangepiaipro:~$ export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
此处可以参考ACLLite仓安装ACLLite库。
ACLLite链接:
Ascend/ACLLitehttps://gitee.com/ascend/ACLLite
【ACLLite库描述】
通过USB接口连接Camera与开发板,从Camera获取视频,基于yolov5s模型对输入视频中的物体做实时检测,将推理结果信息使用imshow方式显示。
- CANN版本要求: 7.0及以上社区版本。
命名空间 | 模块 | 说明 |
acllite | common | 资源管理及公共函数模块 |
DVPPLite | DVPP高阶封装模块 | |
OMExecute | 离线模型执行高阶封装模块 | |
Media | 媒体功能高阶封装模块 |
(1)通过如下命令查询OS版本
lsb_release -a
此处显示我的操作系统为Ubuntu 22.04
(2)根据版本选择安装方式
根据查询结果选择安装方式此处我选择的是Ubuntu 22.04及以上版本的安装方式:apt安装
apt-get install ffmpeg libavcodec-dev libswscale-dev libavdevice-dev
- # 拉取ACLLite仓库,并进入目录
- git clone https://gitee.com/ascend/ACLLite.gitcd ACLLite
- # 设置环境变量,其中DDK_PATH中/usr/local请替换为实际CANN包的安装路径
- export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest
- export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
- # 安装,编译过程中会将库文件安装到/lib目录下,所以会有sudo命令,需要输入密码
- bash build_so.sh
可以使用以下两种方式下载,请选择其中一种进行源码准备。
运行记录:
- # 登录开发板,HwHiAiUser用户命令行中执行以下命令下载源码仓
- cd ${HOME}
-
- git clone https://gitee.com/ascend/EdgeAndRobotics.git
- # 切换到样例目录
-
- cd EdgeAndRobotics/Samples/YOLOV5USBCamera
PS:所有运行均以HwHiAiUser用户登录开发板,切换到当前样例目录。
请从以下链接获取该样例的测试视频,放在data目录下。
cd datawget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov5s/test.mp4 --no-check-certificate
PS:若需更换测试视频,则需自行准备测试视频,并将测试视频放到data目录下。
获取模型,并转换为昇腾AI处理器能识别的模型(*.om)
- export TE_PARALLEL_COMPILER=1
- export MAX_COMPILE_CORE_NUMBER=1
- cd ../model
-
- wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov5s/yolov5s.onnx --no-check-certificate
-
- wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov5s/aipp.cfg --no-check-certificate
然后进行模型转换(这一步时间稍长,请耐心等待...)
atc --model=yolov5s.onnx --framework=5 --output=yolov5s --input_shape="images:1,3,640,640" --soc_version=Ascend310B4 --insert_op_conf=aipp.cfg
atc命令中各参数的解释如下,详细约束说明请参见《ATC模型转换指南》。
- --model:Yolov5网络的模型文件的路径。
- --framework:原始框架类型。5表示ONNX。
- --output:yolov5s.om模型文件的路径。请注意,记录保存该om模型文件的路径,后续开发应用时需要使用。
- --input_shape:模型输入数据的shape。
- --soc_version:昇腾AI处理器的版本。
PS:这一步骤时间较长,同时可以看到下图在运行该步骤时,CPU运行占比较高。
完成后,信息显示如下:
执行以下命令编译样例源码
- cd ../scripts
-
- bash sample_build.sh
bash sample_run.sh imshow
HDMI的屏幕上显示如图:
bash sample_run.sh stdout
运行前,系统状态如图 | 运行时,系统状态如图 |
【样例介绍】
在样例中已经包含转换后的om模型和测试视频、图片
在JupyterLab中运行样例
运行样例文件夹中共有 9 个文件夹和 1 个 shell 文件
分别对应 9 个 AI 应用样例和Jupyter Lab
(base) HwHiAiUser@orangepiaipro:~$ cd samples/notebooks/
(base) HwHiAiUser@orangepiaipro:~/samples/notebooks$ ./start_notebook.sh
start_notebook.sh脚本,会自动启动 Jupyter Lab
终端会出现如下打印信息
PS:打印信息中会有登录 Jupyter Lab 的网址链接
其中mian.ipynb是在JupyterLab中运行该样例的文件
infer_mode设为image变量时:
infer_mode设为video变量时:
infer_mode设为camera变量时:
至此,我们的Demo 系列就完成了。
demo 1,我们调通了香橙派调用USB摄像头的环境。
demo 2,我们针对目标检测YoloV5s进行了跑测。
demo 3,我们深入体验板载的AI应用,针对视频、图片和摄像头的目标检测方案,进行了分步跑测。
从系统状态的角度来看,当前目标检测的小demo,并未用尽板子的性能,甚至连一半还没有用到。足可见得,当前开发板的性能对于yolo的一些简单项目来说,是足够使用的。
对于一些AI入门级选手,可以考虑入手,边学习边深入应用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。