# sample-objectdetectionbyyolov3 **Repository Path**: Terry/sample-objectdetectionbyyolov3 ## Basic Information - **Project Name**: sample-objectdetectionbyyolov3 - **Description**: 本Application支持运行在Atlas 200 DK或者AI加速云服务器上,实现了对目标检测网络的推理功能。注意:本工程目前只支撑1.30版本,如果要在1.31版本上使用,需要做适配开发! - **Primary Language**: C++ - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2020-03-25 - **Last Updated**: 2024-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 中文|[英文](README.md) # Yolov3检测网络应用 本Application支持运行在Atlas 200 DK或者AI加速云服务器上,实现了对目标检测网络的推理功能。 ## 前提条件 部署此Sample前,需要准备好以下环境: - 已完成Mind Studio的安装。 - 已完成Atlas 200 DK开发者板与Mind Studio的连接,交叉编译器的安装,SD卡的制作及基本信息的配置等。 ## 软件准备 运行此Sample前,需要按照此章节获取源码包,并进行相关的环境配置。 1. 获取源码包。 将[https://gitee.com/Atlas200DK/sample-objectdetctionbyyolov3](https://gitee.com/Atlas200DK/sample-objectdetectionbyyolov3)仓中的代码以Mind Studio安装用户下载至Mind Studio所在Ubuntu服务器的任意目录,例如代码存放路径为:$HOME/sample-objectdetection。 2. 获取此应用中所需要的原始网络模型。 参考[表1](#zh-cn_topic_0182554604_table19942111763710)获取此应用中所用到的原始网络模型及其对应的权重文件,并将其存放到Mind Studio所在Ubuntu服务器的任意目录,例如:$HOME/ascend/models/yolov3。 **表 1** 检测网络应用使用模型

模型名称

模型说明

模型下载路径

yolov3

目标检测网络模型。

是基于Caffe的yolov3模型。

请参考https://gitee.com/HuaweiAscend/models/tree/master/computer_vision/object_detect/yolov3目录中README.md下载原始网络模型文件及其对应的权重文件。

3. 将原始网络模型转换为Davinci模型。 1. 在Mind Studio操作界面的顶部菜单栏中选择“Tool \> Convert Model”,进入模型转换界面。 2. 在弹出的**Convert Model**操作界面中,Model File与Weight File分别选择[2](#zh-cn_topic_0182554604_li2074865610364)中下载的模型文件和权重文件。 - **Model Name**填写为[表1](#zh-cn_topic_0182554604_table19942111763710)对应的**模型名称**:yolov3。 - 其他保持默认值。 **图 1** yolov3模型转换配置 ![](doc/source/img/yolov3-1.PNG "yolov3-1") ![](doc/source/img/yolov3-2.PNG "yolov3-2") 3. 单击OK开始转换模型。 模型转换成功后,后缀为.om的Davinci模型存放地址为:\\$HOME/tools/che/model-zoo/my-model/yolov3。 将模型复制放到代码 script文件夹下,如:\\$HOME/sample-objectdetection/script/ 4. 以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** >![](doc/source/img/icon-note.gif) **说明:** >- 如果此环境变量已经添加,则此步骤可跳过。 输入:wq!保存退出。 执行如下命令使环境变量生效。 **source \~/.bashrc** ## 部署 1. 以Mind Studio安装用户进入目标检测网络应用代码所在根目录,如:$HOME/sample-objectdetection。 2. 执行部署脚本,进行工程环境准备,包括公共库的编译与部署、应用的编译与部署等操作。 bash deploy.sh _host\_ip_ _model\_mode_ - _host\_ip_:对于Atlas 200 DK开发者板,即为开发者板的IP地址。对于AI加速云服务器,即为Host的IP地址。 - local:若Mind Studio所在Ubuntu系统未连接网络,请使用local模式,执行此命令前,需要参考[公共代码库下载](#zh-cn_topic_0182554604_section92241245122511)将依赖的公共代码库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之间的整数。 ## 运行 1. 在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地址。 2. 进入Yolov3检测网络应用的可执行文件所在路径。 **cd \~/HIAI\_PROJECTS/ascend\_workspace/objectdetection/out** 3. 执行应用程序。 执行**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:输出图片的目录,默认为当前目录。 4. 其他详细参数请执行**python3 run\_object\_detection\_yolov3.py --help**命令参见帮助信息。 ## 公共代码库下载 将依赖的软件库下载到“sample-objectdetection/script“目录下。 **表 2** 依赖代码库下载

模块名称

模块描述

下载地址

EZDVPP

对DVPP接口进行了封装,提供对图片/视频的处理能力。

https://github.com/Ascend/sdk-ezdvpp

下载后请保持文件夹名称为ezdvpp。