仅供学习使用,不保证精度,请不要用于商业或其他营利活动!
本README只提供命令行方式运行样例的指导。
YOLOV4_Pedestrian_Tracking_and_Social_Distance_Judgment_video
功能介绍:使用YOLOv4模型对视频进行预测推理,输出带有推理结果的视频文件。这里提供两种功能:
- 对输入视频中的行人进行检测、跟踪,绘制运行轨迹和判断行人间的社交距离,并给予风险提示,此外,还提供当前画面行人数量,通过视频指定位置的行人数量和总计行人数量的统计;
- 对输入视频进行目标检测(支持COCO数据集的80类目标检测)。
样例输入:视频文件。
样例输出:带推理结果的视频文件。
前置条件
请检查以下条件要求是否满足,如不满足请按照备注进行相应处理。如果CANN版本升级,请同步检查第三方依赖是否需要重新安装(5.0.4及以上版本第三方依赖和5.0.4以下版本有差异,需要重新安装)。
条件 |
要求 |
备注 |
CANN版本 |
>=5.0.4 |
请参考CANN样例仓介绍中的安装步骤完成CANN安装,如果CANN低于要求版本请根据版本说明切换samples仓到对应CANN版本 |
硬件要求 |
Atlas200DK/Atlas300(ai1s) |
当前已在Atlas200DK和Atlas300测试通过,产品说明请参考硬件平台 ,其他产品可能需要另做适配 |
第三方依赖 |
opencv,python-acllite |
请参考第三方依赖安装指导(python样例)选择需要的依赖完成安装 |
样例准备
-
获取源码包。
特别说明:本样例已经包含了模型和测试视频,可直接运行。
-
获取此应用中所需要的原始网络模型。
# 为了方便下载,在这里直接给出原始模型下载及模型转换命令,可以直接拷贝执行。也可以参照上表在modelzoo中下载并手工转换,以了解更多细节。
cd ${HOME}/YOLOV4_Pedestrian_Tracking_and_Social_Distance_Judgment_video/model
wget https://temp-dataset.obs.cn-north-4.myhuaweicloud.com:443/cann/temp/yolov4_dynamic_bs.onnx
atc --model=./yolov4_dynamic_bs.onnx --framework=5 --output=yolov4_bs1 --input_format=NCHW --soc_version=Ascend310 --input_shape="input:1,3,608,608" --out_nodes="Conv_434:0;Conv_418:0;Conv_402:0"
若上述方法无法下载,可到百度网盘下载。下载链接为:
链接:https://pan.baidu.com/s/1zFrrbOwK0_EKRZva2RIhRQ?pwd=a3bl
提取码:a3bl
-
获取样例需要的测试视频。
# 执行以下命令,进入样例的data文件夹中,下载对应的测试图片。
cd $HOME/YOLOV4_Pedestrian_Tracking_and_Social_Distance_Judgment_video/data
wget https://temp-dataset.obs.cn-north-4.myhuaweicloud.com:443/cann/temp/camera0.mp4
cd ../src
若上述方法无法下载,可到百度网盘下载。下载链接为:
链接:https://pan.baidu.com/s/1mzEjAAkEqIsuwVBPGtUbTA?pwd=xcft
提取码:xcft
样例运行
注:开发环境与运行环境合一部署,请跳过步骤1,直接执行步骤2即可。
-
执行以下命令,将开发环境的 **YOLOV4_Pedestrian_Tracking_and_Social_Distance_Judgment_video ** 目录上传到运行环境中,例如 /home/HwHiAiUser,并以HwHiAiUser(运行用户)登录运行环境(Host)。
# 【xxx.xxx.xxx.xxx】为运行环境ip,200DK在USB连接时一般为192.168.1.2,300(ai1s)为对应的公网ip。
scp -r $HOME/YOLOV4_Pedestrian_Tracking_and_Social_Distance_Judgment_video HwHiAiUser@xxx.xxx.xxx.xxx:/home/HwHiAiUser
ssh HwHiAiUser@xxx.xxx.xxx.xxx
cd ${HOME}/YOLOV4_Pedestrian_Tracking_and_Social_Distance_Judgment_video/src
-
运行工程。
(1)对输入视频进行目标检测(支持COCO数据集的80类目标检测)。
python3.6 yolov4.py ../data/camera0.mp4 0
(2)对输入视频中的行人进行检测、跟踪,绘制运行轨迹和判断行人间的社交距离,并给予风险提示,此外,还提供当前画面行人数量,通过视频指定位置的行人数量和总计行人数量的统计。
python3.6 yolov4.py ../data/camera0.mp4 1
查看结果
运行完成后,输出视频存在out目录下(注意输出视频默认与输入视频名称一致,若多次运行或运行不同功能会覆盖之前结果)。
对输入视频进行目标检测(支持COCO数据集的80类目标检测)的演示视频
对输入视频进行目标检测,支持COCO数据集的80类目标检测,会对检测目标绘制矩形框并在框的左上角显示类别。
对输入视频中的行人进行检测、跟踪,绘制运行轨迹和判断行人间的社交距离,并给予风险提示,此外,还提供当前画面行人数量,通过视频指定位置的行人数量和总计行人数量的统计的演示视频
对输入视频中的行人进行检测、跟踪,绘制运行轨迹和判断行人间的社交距离,并给予风险提示,如果行人距离过近,会提示“High Risk",远离后会显示“Low Risk”,此外,还在视频左上角提供当前画面行人数量,通过视频指定位置(默认设定为视频中间,颜色为绿色)的行人数量和总计行人数量的统计;
常见错误
请参考常见问题定位对遇到的错误进行排查。如果wiki中不包含,请在samples仓提issue反馈。