中文|英文
Yolov3检测网络应用
本Application支持运行在Atlas 200 DK或者AI加速云服务器上,实现了对目标检测网络的推理功能。
前提条件
部署此Sample前,需要准备好以下环境:
已完成Mind Studio的安装。
已完成Atlas 200 DK开发者板与Mind Studio的连接,交叉编译器的安装,SD卡的制作及基本信息的配置等。
软件准备
运行此Sample前,需要按照此章节获取源码包,并进行相关的环境配置。
获取源码包。
将https://gitee.com/Atlas200DK/sample-objectdetctionbyyolov3仓中的代码以Mind Studio安装用户下载至Mind Studio所在Ubuntu服务器的任意目录,例如代码存放路径为:$HOME/sample-objectdetection。
获取此应用中所需要的原始网络模型。
参考表1获取此应用中所用到的原始网络模型及其对应的权重文件,并将其存放到Mind Studio所在Ubuntu服务器的任意目录,例如:$HOME/ascend/models/yolov3。
表 1 检测网络应用使用模型
将原始网络模型转换为Davinci模型。
在Mind Studio操作界面的顶部菜单栏中选择“Tool > Convert Model”,进入模型转换界面。
在弹出的Convert Model操作界面中,Model File与Weight File分别选择2中下载的模型文件和权重文件。
Model Name填写为表1对应的模型名称:yolov3。
其他保持默认值。
图 1 yolov3模型转换配置
单击OK开始转换模型。
模型转换成功后,后缀为.om的Davinci模型存放地址为:\$HOME/tools/che/model-zoo/my-model/yolov3。
将模型复制放到代码 script文件夹下,如:\$HOME/sample-objectdetection/script/
以Mind Studio安装用户登录Mind Studio所在Ubuntu服务器,并设置环境变量DDK_HOME。
vim ~/.bashrc
执行如下命令在最后一行添加DDK_HOME及LD_LIBRARY_PATH的环境变量。
export DDK_HOME=$HOME/tools/che/ddk/ddk
export LD_LIBRARY_PATH=$DDK_HOME/uihost/lib
说明:
如果此环境变量已经添加,则此步骤可跳过。
输入:wq!保存退出。
执行如下命令使环境变量生效。
source ~/.bashrc
部署
以Mind Studio安装用户进入目标检测网络应用代码所在根目录,如:$HOME/sample-objectdetection。
执行部署脚本,进行工程环境准备,包括公共库的编译与部署、应用的编译与部署等操作。
bash deploy.sh host_ip model_mode
host_ip:对于Atlas 200 DK开发者板,即为开发者板的IP地址。对于AI加速云服务器,即为Host的IP地址。
local:若Mind Studio所在Ubuntu系统未连接网络,请使用local模式,执行此命令前,需要参考公共代码库下载将依赖的公共代码库ezdvpp下载到“sample-objectdetection/script“目录下。
internet:若Mind Studio所在Ubuntu系统已连接网络,请使用internet模式,在线下载依赖代码库ezdvpp。
命令示例:
bash deploy.sh 192.168.1.2 internet
图片要求如下:
格式:jpg、png、bmp。
输入图片宽度:16px~4096px之间的整数。
输入图片高度:16px~4096px之间的整数。
运行
在Mind Studio所在Ubuntu服务器中,以HwHiAiUser用户SSH登录到Host侧。
ssh HwHiAiUser@host_ip
对于Atlas 200 DK,host_ip默认为192.168.1.2(USB连接)或者192.168.0.2(NIC连接)。
对于AI加速云服务器,host_ip即为当前Mind Studio所在服务器的IP地址。
进入Yolov3检测网络应用的可执行文件所在路径。
cd ~/HIAI_PROJECTS/ascend_workspace/objectdetection/out
执行应用程序。
执行run_object_detection_yolov3.py脚本会将推理生成的图片保存至指定路径。
命令示例如下所示:
python3 run_object_detection_yolov3.py -m yolov3.om -w 416 -h 416 -i
./example.jpg -o ./out -c 21
-m/--model_path:离线模型路径。
-w/model_width:模型的输入图片宽度,为16~4096之间的整数。
-h/model_height:模型的输入图片高度,为16~4096之间的整数。
-i/input_path:输入图片的目录/路径,可以有多个输入。
-o/output_path:输出图片的目录,默认为当前目录。
其他详细参数请执行python3 run_object_detection_yolov3.py --help命令参见帮助信息。
公共代码库下载
将依赖的软件库下载到“sample-objectdetection/script“目录下。
表 2 依赖代码库下载
模块名称
模块描述
下载地址
EZDVPP
对DVPP接口进行了封装,提供对图片/视频的处理能力。