中文|English
该案例仅仅用于学习,打通流程,不对效果负责,不支持商用。
开发者将本Application部署至Atlas 200 DK或者AI加速云服务器上实现对本地mp4文件或者RTSP视频流进行解码,对视频帧中的行人和人脸进行检测并对其属性进行预测,生成结构化信息发送至Server端进行保存、展示的功能。
当前分支中的应用适配1.32.0.0及以上版本的DDK&RunTime。
部署此Sample前,需要准备好以下环境:
可以选择如下快速部署或者常规方法部署,二选一即可:
快速部署,请参考: https://gitee.com/Atlas200DK/faster-deploy 。
说明:
- 该快速部署脚本可以快速部署多个案例,请选择videoanalysisperson案例部署即可。
- 该快速部署脚本自动完成了代码下载、模型转换、环境变量配置等流程,如果需要了解详细的部署过程请选择常规部署方式。转 :2. 常规部署
常规部署,请参考: https://gitee.com/Atlas200DK/sample-README/tree/master/sample-videoanalysisperson 。
说明:
- 该部署方式,需要手动完成代码下载、模型转换、环境变量配置等过程。完成后,会对其中的过程更加了解。
打开对应的工程。
以Mind Studio安装用户在命令行中进入安装包解压后的“MindStudio-ubuntu/bin”目录,如:$HOME/MindStudio-ubuntu/bin。执行如下命令启动Mind Studio
./MindStudio.sh
启动成功后,打开sample-videoanalysisperson工程,如图 打开videoanalysisperson工程所示。
在src/param_configure.conf文件中配置相关工程信息。
该配置文件默认配置内容如下:
remote_host=192.168.1.2
presenter_view_app_name=video
video_path_of_host=/home/HwHiAiUser/person.mp4
rtsp_video_stream=
remote_host:配置为Atlas 200 DK开发者板的IP地址。
presenter_view_app_name: 用户自定义的在PresenterServer界面展示的View Name,此View Name需要在Presenter Server展示界面唯一,只能为大小写字母、数字、“_”的组合,位数3~20。
video_path_of_host:配置为HOST侧的视频文件的绝对路径。
rtsp_video_stream:配置为RTSP视频流的URL。
视频文件配置示例如下:
remote_host=192.168.1.2
presenter_view_app_name=video
video_path_of_host=/home/HwHiAiUser/person.mp4
rtsp_video_stream=
Rtsp视频流配置示例如下:
remote_host=192.168.1.2
presenter_view_app_name=video
video_path_of_host=
rtsp_video_stream=rtsp://192.168.2.37:554/cam/realmonitor?channel=1&subtype=0
说明:
- 参数remote_host和presenter_view_app_name必须全部填写,否则无法通过build。
- 注意参数填写时不需要使用“”符号。
- 参数video_path_of_host和rtsp_video_stream必须至少填写一项。
- 当前RTSP视频流只支持rtsp://ip:port/path格式,如果需要使用其它格式的url,需要把video_decode.cpp中的IsValidRtsp函数去除,或者直接返回true,跳过正则表达式匹配。
- 本样例中提供的RTSP流地址不可以直接使用。如果需要使用RTSP,请在本地使用live555或其它方式制作RTSP视频流,并且可以在VLC中播放。然后将本地制作好的RTSP视频流的URL填入配置文件的相应参数中,即可运行。
- 当前已经按照配置示例配置默认值,请按照配置情况自行修改。
执行deploy脚本, 进行配置参数调整及第三方库下载编译 打开Mind Studio工具的Terminal,此时默认在代码主目录下,执行如下命令在后台指执行deploy脚本,进行环境部署。如图 执行deploy脚本所示。
说明:
- 首次deploy时,没有部署第三方库时会自动下载并编译,耗时可能比较久,请耐心等待。后续再重新编译时,不会重复下载编译,部署如上图所示。
- deploy时,需要选择与开发板通信的主机侧ip,一般为虚拟网卡配置的ip。如果此ip和开发板ip属于同网段,则会自动选择并部署。如果非同网段,则需要手动输入与开发板通信的主机侧ip才能完成deploy。
开始编译,打开Mind Studio工具,在工具栏中点击Build > Build > Build-Configuration。如图 编译操作及生成文件所示,会在目录下生成build和run文件夹。
须知:
首次编译工程时,Build > Build为灰色不可点击状态。需要点击Build > Edit Build Configuration,配置编译参数后再进行编译。
启动Presenter Server。
打开Mind Studio工具的Terminal,在应用代码存放路径下,执行如下命令在后台启动人体检测应用的Presenter Server主程序。如图 启动PresenterServer所示。
bash run_present_server.sh
当提示“Please choose one to show the presenter in browser(default: 127.0.0.1):“时,请输入在浏览器中访问Presenter Server服务所使用的IP地址(一般为访问Mind Studio的IP地址)。
如图 工程部署示意图所示,请在“Current environment valid ip list”中选择通过浏览器访问Presenter Server服务使用的IP地址。
当提示“Please input a absolute path to storage video analysis data:“时,请输入Mind Studio中的绝对路径用于存储视频解析数据,此路径Mind Studio用户需要有读写权限,若此路径不存在,脚本会自动创建。
如图7所示,表示presenter_server的服务启动成功。
使用上图提示的URL登录Presenter Server,IP地址为图6中输入的IP地址,端口号默为7011,如下图所示,表示Presenter Server启动成功。
Presenter Server、Mind Studio与Atlas 200 DK之间通信使用的IP地址示例如下图所示:
人体检测应用支持解析本地视频和RTSP视频流。
如果需要解析本地视频,需要将视频文件传到Host侧。
例如将视频文件person.mp4上传到Host侧的“/home/HwHiAiUser/“目录下。
说明:
支持H264与H265格式的MP4文件,如果MP4文件需要剪辑,建议使用开源工具ffmpeg,使用其他工具剪辑的视频文件ffmpeg工具可能不支持解析。
如果仅解析RTSP视频流,本步骤可跳过。
运行人体检测应用程序。
在Mind Studio工具的工具栏中找到Run按钮,点击Run > Run 'sample-videoanalysisperson',如图 程序已执行示意图所示,可执行程序已经在开发板执行。
使用启动Presenter Server服务时提示的URL登录 Presenter Server 网站。
说明:
人体检测应用程序的Presenter Server最多支持2个 presenter_view_app_name 同时显示。
页面左侧树结构列出了视频所属app name以及通道名,中间列出了抽取的视频帧大图以及检测出的目标小图,点击下方小图后会在右侧列出详细的推理结果、评分。
本应用支持人体属性检测和人脸属性检测。
人体属性包括:
Age:共分Age16-30,Age31-45,Age46-60,AgeAbove61四个年龄段; Backpack; CarryingOther; Casual lower; Casual upper; Formal lower; Hat; Jacket; Jeans; Leather Shoes; Logo; Short hair/Long hair; Male/Female; Messenger Bag; Muffler; No accessory; No carrying; Plaid; PlasticBags; Sandals; Shoes; Shorts; Short Sleeve; Skirt; Sneaker; Stripes; Sunglasses; Trousers; Tshirt; UpperOther; V-Neck。
其中在视频分析界面的详细推理结果展示区域,Age、Male/Female、Short hair/Long hair是必展示属性,其他属性当置信度>0.5时则展示,否则不展示。
人脸属性检测支持年龄和性别的的识别。
停止人体检测应用
视频程序分析完之后会自动停止退出,如图 videoperson应用程序停止所示
停止Presenter Server服务
Presenter Server服务启动后会一直处于运行状态,若想停止人体检测应用对应的Presenter Server服务,可执行如下操作。
以Mind Studio安装用户在Mind Studio所在服务器中执行如下命令查看人体检测应用对应的Presenter Server服务的进程。
ps -ef | grep presenter | grep video_analysis_person
ascend@ascend-HP-ProDesk-600-G4-PCI-MT:~/sample-videoanalysisperson$ ps -ef | grep presenter | grep video_analysis_car
ascend 3656 20313 0 15:10 pts/24?? 00:00:00 python3 presenterserver/presenter_server.py --app video_analysis_person
如上所示_3656_ 即为人体检测应用对应的Presenter Server服务的进程ID。
若想停止此服务,执行如下命令:
kill -9 3656
重启人体检测应用时注意点
重新启动人体检测应用时请确保以下条件满足任意一个,否则会报错:
请确保视频解析数据存储路径中内容已经清空。
例如:视频解析数据存储路径为:\$HOME/videoperson_storage/video,其中:\$HOME/videoperson_storage是启动Presenter Server时配置的“Please input a absolute path to storage video analysis data”的值,video为param_configure.conf配置文件中参数presenter_view_app_name的值。
满足此条件情况下,无需重启Presenter Server,直接重新执行 Run > Run 'sample-videoanalysisperson' 运行应用程序即可。
视频解析数据存储路径中如果已有数据且不想删除,可以修改param_configure.conf配置文件中presenter_view_app_name参数的值,然后在Mind Studio界面中重新执行Build > Rebuild,再执行 Run > Run 'sample-videoanalysisperson' 即可。
param_configure.conf配置文件中参数presenter_view_app_name的值如下所示。
满足此条件情况下,无需重启Presenter Server。
若重新启动Presenter Server,再运行车辆检测应用,在启动Presenter Server时请修改存储视频解析的数据的路径(不与之前存储路径重复)。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。