面对疫情防控的多摄像头社交距离检测方案
一、用例介绍
我们知道,保持必要的社交距离和戴口罩可以有效降低疫情传播的风险。多摄像头社交距离检测用例可以检测人员并根据多个输入源计算人员之间的社交距离,并对违规人员进行标记和计数,且在浏览器中实时可视化,从而提供了一种预防疾病传播的解决方案。二、支持的软硬件平台
系统要求:Ubuntu18.04.3 LTS / CentOS 7.x硬件要求:具有英特尔Iris Plus图形或英特尔HD图形的第六至第十代英特尔酷睿处理器
外设要求:u**摄像头
三、工作原理
本用例使用了英特尔的人脸检测模型person-detection-retail-0013,想了解该模型的相关内容可以移步此链接https://docs.openvinotoolkit.org/2021.2/omz_models_intel_person_detection_retail_0013_description_person_detection_retail_0013.html使用上述模型从视频流中检测人员,把视频帧处理为BGR图像,使用OpenVINO来推理测量人们之间的距离。根据测量结果,检查是否有人违反了N个像素的间隔,在InfluxDB中存储社交总违规计数,在Grafana仪表板上可视化InfluxDB的存储数据。下图为用例的工作流图:
四、安装步骤
注:此用例不配置国内源加速亦可正常安装使用,本次演示使用了5G移动网络环境。1.解压下载的包 unzip multi_camera_detection_of_social_distancing.zip
2.进入解压目录,更改edgesoftware文件的权限 chmod 755 edgesoftware
3.运行命令,安装 ./edgesoftware install
4.会提示输入秘钥,我们输入下载时保存好的key就可以了。
5.安装完成
五、运行使用
1.进入工作路径
cd MultiCamera_Detection_of_Social_Distancing_Reference_Implementation_<version>/MultiCamera_Detection_of_Social_Distancing/mcss-covid19/
2.下载示例视频
以1280x720的分辨率下载该视频:https://www.pexels.com/video/black-and-white-video-of-people-853889/
3.把该视频放到mcss-covid19/resources路径下
4.我们在mcss-covid19/application下打开run.sh,可以看到INPUT1的输入视频名称是否与我们下载的相对应。
我们也可以使用自定义的视频,前提是在resources目录下已添加自定义的视频,且在run.sh进行对应的文件名替换。
或者使用USB摄像头采集实时数据,需要先在系统中找到USB设备名,然后在run.sh中指定设备号,修改INPUT1 和MIN_SOCIAL_DIST1 两个参数。
5.初始化环境变量:我们可以在当前终端执行下面脚本,也可以添加到bashrc中
source /opt/intel/openvino_2021/bin/setupvars.sh
6.我们可以使用intel的CPU、GPU、HDDL、MYRIAD等计算资源来运行,这里我们以CPU为例来演示,通过打开run.sh来设置,如下图:
7.等所有配置都修改完成后,我们就可以给权限然后运行了。
1 chmod +x run.sh
2 ./run.sh
8.在下图中我们可以看到调用了4个channel,在每个图像的左上角可以看到运行的参数信息,比如FPS、平均FPS、CPU使用率等。视频中的人们在安全距离的会用蓝框显示,违规的会用红框显示,并注明违反了社会安全距离。
9.视频检测完成后,可以在终端看到本次运行的相关信息,比如视频解码设备、调用的线程数、通道数、总时间、总帧数等信息。
六、在浏览器的数据可视化
1.在浏览器上导航到localhost:3000,使用用户admin和密码admin登录。2.我们在主页面左侧点击Configuration图标,选择Data Sources,在打开的界面点击Add data source
3.选择InfluxDB
4.按照下图配置参数并保存
5.主页的左侧点击+,然后选择Import,在界面跳转后点击下方的Import按钮
6.在该界面点击Upload.json file
7.导入mcss-covid19/resource***ulti_cam.json
8.操作完成后会自动跳转到仪表板,以查看实时违规数据。