欢迎访问本站,希望站内信息可以帮助到您! 博主个人微信:xituxiaoshutong100

社交距离检测

ML/DL 迷途小书童 1评论

软硬件环境

视频看这里

此处是youtube的播放链接,需要科学上网。喜欢我的视频,请记得订阅我的频道,打开旁边的小铃铛,点赞并分享,感谢您的支持。

简介

自从新型冠状肺炎爆发以来,社交距离检测,不管是在学界还是工业界都是一个热门话题。基本原理都是首先利用目标检测算法(可用的方法很多)检测出人,然后计算出人与人之间的距离,一般是像素距离,如果低于某一事先设定的值,就认为低于社交安全距离,系统随即发出警告。

本文介绍的这个开源项目,使用的模型是faster_rcnn_inception_v2_coco,使用的是tensorflow深度学习框架。项目地址是: https://github.com/basileroth75/covid-social-distancing-detection

安装环境

创建python虚拟环境

conda create -n covid python=3.7
conda activate covid

接着去下载源码

git clone https://github.com/basileroth75/covid-social-distancing-detection.git
cd covid-social-distancing-detection

安装依赖库

pip install -r requirements.txt

# 原工程中漏了opencv依赖
pip install opencv-python

接下来去下载tensorflow的模型,地址是: https://pan.baidu.com/s/1UWu1D0jp3UtivbsLQ8K1Ig, 提取码:j3i8

下载后解压到models文件夹下,其实在生产环境中使用frozen_inference_graph.pb文件就可以了。文件结构如下

social_distance_detect

测试效果

cd src
python social_distanciation_video_detection.py

程序运行后,在终端一直回车就好,使用默认的参数进行测试。当人物进入到蓝线范围内时,就会被系统用绿色框出来

social_distance_detect

当人物距离小于110像素时(这是默认值),系统会用红色框出来,表示社交距离不够

social_distance_detect

如果是其它测试视频的话,可能就需要进行校准了,方法如下

cd src
python calibrate_with_mouse.py

程序启动后,会要求用户输入测试视频的文件名、视频帧大小。默认值是PETS2009.avi和800像素,接着来到打开后的opencv窗口,使用鼠标左键分别点击4个点,顺序是右上、右下、左下和左上,这4个点连成一个四边形。

social_distance_detect

代码执行完成后,会将相应数据写入到配置文件conf/config_birdview.yml

image_parameters:
  height_og: 800
  img_path: ../img/static_frame_from_video.jpg

  # 左下 
  p1:
  - 481
  - 411

  # 左上
  p2:
  - 482
  - 247

  # 右下
  p3:
  - 715
  - 411

  # 右上
  p4:
  - 693
  - 187
  size_frame: '800'
  width_og: 600

参考资料

喜欢 (2)
发表我的评论
取消评论

表情
(1)个小伙伴在吐槽
  1. 膜拜大佬~
    匿名2020-12-16 16:13 回复