# sample-fasterrcnndetection-python **Repository Path**: xcandy/sample-fasterrcnndetection-python ## Basic Information - **Project Name**: sample-fasterrcnndetection-python - **Description**: No description available - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-05 - **Last Updated**: 2024-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 中文|[English](Readme_EN.md) # Faster-R-CNN检测网络应用(Python) 本Application支持运行在Atlas 200 DK上,实现了对faster-rcnn目标检测网络的推理功能并对视频中的物体信息进行预测的功能。 当前分支中的应用适配**1.3.0.0**与**1.32.0.0及以上**版本的[DDK&RunTime](https://ascend.huawei.com/resources)。 ## 前提条件 部署此Sample前,需要准备好以下环境: - 已完成Mind Studio的安装。 - 已完成Atlas 200 DK开发者板与Mind Studio的连接,SD卡的制作、编译环境的配置等。 - 由于需要配置开发板联网,默认设置为USB连接,开发板地址为192.168.1.2 ## 样例部署 可以选择如下快速部署或者常规方法部署,二选一即可: 1. 快速部署,请参考: [https://gitee.com/Atlas200DK/faster-deploy](https://gitee.com/Atlas200DK/faster-deploy) 。 >![](public_sys-resources/icon-note.gif) **说明:** >- 该快速部署脚本可以快速部署多个案例,请选择sample-fasterrcnndetection-python案例部署即可。 >- 该快速部署脚本自动完成了代码下载、模型转换、环境变量配置等流程,如果需要了解详细的部署过程请选择常规部署方式。转:**[2. 常规部署](#zh-cn_topic_0228752401_li3208251440)** 2. 常规部署,请参考: [https://gitee.com/Atlas200DK/sample-README/tree/master/sample-fasterrcnndetection-python](https://gitee.com/Atlas200DK/sample-README/tree/master/sample-fasterrcnndetection-python) 。 >![](public_sys-resources/icon-note.gif) **说明:** >- 该部署方式,需要手动完成代码下载、模型转换、环境变量配置等过程。完成后,会对其中的过程更加了解。 ## 环境配置 **注:开发板上hiai库、opencv库、相关依赖已安装可跳过此步骤。** 1. 配置开发板联网。 请参考[https://gitee.com/Atlas200DK/sample-README/tree/master/DK\_NetworkConnect](https://gitee.com/Atlas200DK/sample-README/tree/master/DK_NetworkConnect) ,进行开发板网络连接配置。 2. 安装环境依赖。 请参考[https://gitee.com/Atlas200DK/sample-README/tree/master/DK\_Environment](https://gitee.com/Atlas200DK/sample-README/tree/master/DK_Environment) ,进行环境依赖配置。 ## 部署 1. 以Mind Studio安装用户进入fasterrcnn-python应用代码所在根目录,如:$HOME/sample-fasterrcnndetection-python。 2. 执行部署脚本,进行工程环境准备,Presenter Server服务器的配置等操作,其中Presenter Server用于接收Application发送过来的数据并通过浏览器进行结果展示。 **bash deploy.sh** _host\_ip_ - _host\_ip_:Atlas 200 DK开发者板的IP地址。 命令示例: **bash deploy.sh 192.168.1.2** 当提示“Please choose one to show the presenter in browser\(default: 127.0.0.1\):“时,请输入在浏览器中访问Presenter Server服务所使用的IP地址(一般为虚拟网卡的IP地址。) 如[图 工程部署示意图](#zh-cn_topic_0228752401_zh-cn_topic_0228757084_fig184321447181017)所示,请在“Current environment valid ip list“中选择通过浏览器访问Presenter Server服务使用的IP地址。 **图 1** 工程部署示意图 ![](figures/zh-cn_image_0228757221.png) 3. 启动Presenter Server。 执行如下命令在后台启动fasterrcnn python应用的Presenter Server主程序。 **bash start\_presenterserver.sh** >![](public_sys-resources/icon-note.gif) **说明:** >- 执行此脚本会先杀死后台的其他Presenter Server进程。后台无正在执行的进程会提示presenter server not in process;后台有正在执行的进程会提示presenter server stop success。 >- 程序运行结束后可执行 **bash stop\_presenterserver.sh** 关闭presentserver。 如[图 Presenter Server进程启动](#zh-cn_topic_0228752401_zh-cn_topic_0228757084_fig69531305324)所示,表示presenter\_server的服务启动成功。 **图 2** Presenter Server进程启动 ![](figures/Presenter-Server进程启动.png "Presenter-Server进程启动") 使用上图提示的URL登录Presenter Server。IP地址为[步骤2](#zh-cn_topic_0228752401_zh-cn_topic_0228757084_li9634105881418)中输入的IP地址,端口号默为7007,如下图所示,表示Presenter Server启动成功。 **图 3** 主页显示 ![](figures/主页显示.png "主页显示") Presenter Server、Mind Studio与Atlas 200 DK之间通信使用的IP地址示例如下图所示: **图 4** IP地址示例 ![](figures/IP地址示例.png "IP地址示例") 其中: - Atlas 200 DK开发者板使用的IP地址为192.168.1.2(USB方式连接)。 - Presenter Server与Atlas 200 DK通信的IP地址为UI Host服务器中与Atlas 200 DK在同一网段的IP地址,例如:192.168.1.223。 - 通过浏览器访问Presenter Server的IP地址本示例为:10.10.0.1,由于Presenter Server与Mind Studio部署在同一服务器,此IP地址也为通过浏览器访问Mind Studio的IP。 4. fasterrcnn-python应用支持解析本地视频和RTSP视频流。 - 如果需要解析本地视频,需要将视频文件传到Host侧。 例如将视频文件detection.mp4上传到Host侧的“/home/HwHiAiUser/sample“目录下。 >![](public_sys-resources/icon-note.gif) **说明:** >支持H264与H265格式的MP4文件,如果MP4文件需要剪辑,建议使用开源工具ffmpeg,使用其他工具剪辑的视频文件ffmpeg工具可能不支持解析。 - 如果仅解析RTSP视频流,本步骤可跳过。 ## 运行 1. 在Mind Studio所在Ubuntu服务器中,以HwHiAiUser用户SSH登录到Host侧。 **ssh HwHiAiUser@192.168.1.2** 2. 在HwHiAiUser用户下进入应用代码所在目录。 **cd \~/HIAI\_PROJECTS/fasterrcnnapp** 3. 执行应用程序。 **python main.py** _channel_ - _channel: _ 输入的视频文件名或者RTSP流地址 视频文件运行的命令示例如下所示: **python main.py /home/HwHiAiUser/sample/detection.mp4** RTSP视频流的命令示例如下所示: **python main.py rtsp://192.168.2.37:554/cam/realmonitor?channel=1&subtype=0** >![](public_sys-resources/icon-note.gif) **说明:** >可使用ctrl+c停止程序 4. 使用启动Presenter Server服务时提示的URL登录 Presenter Server 网站。 等待Presenter Agent传输数据给服务端,单击“Refresh“刷新,当有数据时相应的Channel 的Status变成绿色,如[图 Presenter Server界面](#zh-cn_topic_0228752401_zh-cn_topic_0228757084_fig113691556202312)所示。 **图 5** Presenter Server界面 ![](figures/Presenter-Server界面.png "Presenter-Server界面") >![](public_sys-resources/icon-note.gif) **说明:** >- Presenter Server最多支持10路Channel同时显示,每个 _presenter\_view\_app\_name_ 对应一路Channel。 >- 由于硬件的限制,每一路支持的最大帧率是20fps,受限于网络带宽的影响,帧率会自动适配为较低的帧率进行展示。 5. 单击右侧对应的View Name链接,比如上图的“video”,查看结果,对于检测到的物体,会给出置信度的标注。