内容一览:在疫情期间,公共场所中尽量避免人群聚集,可以有效控制疫情扩散。英国利兹大学的研究团队开源了 DeepSOCIAL 人群距离监测项目,通过 YOLOv4+SORT 的方式快速实现了这一应用。

关键词:DeepSOCIAL 疫情应用 目标检测

由英国利兹大学交通研究院的研究员 Mahdi Rezaei 开源的 DeepSOCIAL 人群距离监测项目,成了最近的网红应用。

DeepSOCIAL 是通过 YOLOv4 实现行人检测,再用 SORT 实现目标跟踪,并通过单目视觉IPM 逆透视映射实现距离估计,最终评估人群距离监测和风险评估。

DeepSOCIAL 实现效果展示

之所以 DeepSOCIAL 能成为网红教程,不仅仅因为该项目在当前疫情中的实用性强,也因为该项目效果极佳,平均精度达到 99.8 %,实时速度为 24.1 fps,可用于自主车辆、人体行为识别、异常检测、体育运动、人群分析等领域。

目标检测阶段的整体模型结构

线上源码教程访问 https://openbayes.com/console/open-tutorials/containers/Qgf0mAml82l

 行人检测:YOLO v4

在 DeepSOCIAL 项目中选用了 YOLOv4 来实现行人目标检测,在论文中作者对比了几种目标检测方法:RCNN、fast RCNN、faster RCNN、SSD、YOLO 在数据集 PASCAL Visual Object Classes(VOC)和MS COCO 中进行了测试。

用目标检测中用于衡量识别精度与速度的:mAP 全类平均正确率(mean Average Precision)和 FPS 帧率(Frame Per Second)进行评估。

最终选定了 YOLOv4 作为目标检测方法。

主流目标检测方法 mAP 测试结果

主流目标检测方法 FPS 测试结果

 行人跟踪:SORT

在DeepSOCIAL 的行人目标跟踪方面,选用了Simple Online and Real-time(SORT) 算法。

人员检测、ID分配、跟踪和移动轨迹展示效果

其中主要使用了卡尔曼滤波(Kalman Filter)结合匈牙利算法(Hungarian algorithm)解决动作预测和数据关联的问题。

 行人距离估计:IPM 逆透视映射

DeepSOCIAL 项目中使用单目视觉,但是使用单个摄像机,将三维世界场景投影到二维透视图像平面,容易导致物体之间的像素距离失真。

通过应用 IPM二维像素点(u,v)将被映射到

相应的三维世界场景坐标点(Xw,Yw,Zw)

在三维空间中,每个框的中心或参考点与三个参数 (x,y,z)相关联,而在从相机接收到的图像中,原来的三维空间被缩减为二维(x,y),深度参数(z)不可用。

为了应用校准的 IPM(逆透视映射)过渡,首先需要通过设置深度参数 z = 0 来消除透视效果,进行摄像机校准,同时还需要知道相机的位置,高度,视野等。

 项目运行代码

1.引入依赖

from IPython.display import display, Javascript, Image
from base64 import b64decode, b64encode
import os
import cv2
import numpy as np
import PIL
import io
import html
import time
import matplotlib.pyplot as plt
%matplotlib inline

2.编译 YOLOv4

%cd darknet
!sed -i 's/OPENCV=0/OPENCV=1/' Makefile
!sed -i 's/GPU=0/GPU=1/' Makefile
!sed -i 's/CUDNN=0/CUDNN=1/' Makefile
!sed -i 's/CUDNN_HALF=0/CUDNN_HALF=1/' Makefile
!sed -i 's/LIBSO=0/LIBSO=1/' Makefile

3.使用 Darknet 的 Python 接口

# 导入 Darknet 函数来执行对象检测
from darknet2 import *# 载入 YOLOv4 架构
network, class_names, class_colors = load_network("cfg/yolov4.cfg", "cfg/coco.data", "/openbayes/input/input0/DeepSocial.weights")
width = network_width(network)
height = network_height(network)# 在图像上运行 Darknet helper 函数
def darknet_helper(img, width, height):darknet_image = make_image(width, height, 3)img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)img_resized = cv2.resize(img_rgb, (width, height),interpolation=cv2.INTER_LINEAR)# 获取图像比例,将边界框转换为适当的尺寸img_height, img_width, _ = img.shapewidth_ratio = img_width/widthheight_ratio = img_height/height# 运行 Darknet 模型copy_image_from_bytes(darknet_image, img_resized.tobytes())detections = detect_image(network, class_names, darknet_image)free_image(darknet_image)return detections, width_ratio, height_ratio

4.使用 SORT 实现实时跟踪目标

!pip install filterpy
from sort import *
mot_tracker    = Sort(max_age=25, min_hits=4, iou_threshold=0.3)

5.输入设置

Input            = "/openbayes/input/input1/OxfordTownCentreDataset.avi"
ReductionFactor  = 2
calibration      = [[180,162],[618,0],[552,540],[682,464]]

6.DeepSocial 参数设置和函数引入

&

7.推理过程

&

8.展示结果

6&7&8 三部分完整运行代码过长,请移步至

https://openbayes.com/console/open-tutorials/containers/Qgf0mAml82l

或点击原文阅读查看完整代码

—— 完 ——

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件

本站qq群554839127,加入微信群请扫码:

【深度学习】人群距离监测 DeepSOCIAL 最全汉化论文+源码导读相关推荐

  1. 人群距离监测 DeepSOCIAL 最全汉化论文+源码导读

    作者 |神经星星 来源 |HyperAI超神经 By 超神经 内容一览:在疫情期间,公共场所中尽量避免人群聚集,可以有效控制疫情扩散.英国利兹大学的研究团队开源了 DeepSOCIAL 人群距离监测项 ...

  2. win10,vs2015深度学习目标检测YOLOV5+deepsort C++多目标跟踪代码实现,源码注释,拿来即用。

    打死不用CSDN,整改的太恶心了,发什么都审核不过,各种图片和链接不让发.人如果没有立场那还是人吗?不用CSDN并且博客园就很好! DeepSort纯C++ Yolov5[s,l,m系列],详细讲解- ...

  3. 系统学习深度学习(四) --CNN原理,推导及实现源码分析

    之前看机器学习中,多层感知器部分,提到可以在设计多层感知器时,对NN的结构设计优化,例如结构化设计和权重共享,当时还没了解深度学习,现在看到CNN,原来CNN就是这方面的一个代表.CNN由纽约大学的Y ...

  4. 深度学习目标检测系列:faster RCNN实现|附python源码

    目标检测一直是计算机视觉中比较热门的研究领域,有一些常用且成熟的算法得到业内公认水平,比如RCNN系列算法.SSD以及YOLO等.如果你是从事这一行业的话,你会使用哪种算法进行目标检测任务呢?在我寻求 ...

  5. python实现目标检测源代码包_深度学习目标检测系列:faster RCNN实现|附python源码...

    摘要: 本文在讲述RCNN系列算法基本原理基础上,使用keras实现faster RCNN算法,在细胞检测任务上表现优异,可动手操作一下. 目标检测一直是计算机视觉中比较热门的研究领域,有一些常用且成 ...

  6. 简单物联网应用——基于老人居家声音监测系统(全!含完整源码、详细注释、测试结果、设计过程、视频详细教程)

    简单物联网应用设计与实现--基于老人居家声音监测系统 概述 设计内容: 采用标准的物联网三层架构, 感知层为可以检测声音数据并且实现无线发送的传感器节点: 网络层主要使用无线 WiFi: 应用层中, ...

  7. 计算机视觉与深度学习 | 基于控制点的投影畸变图像配准(matlab源码)

    ============================================== github:https://github.com/MichaelBeechan CSDN:https:/ ...

  8. [阿里DIN] 从论文源码学习 之 embedding层如何自动更新

    [阿里DIN] 从论文源码学习 之 embedding层如何自动更新 文章目录 [阿里DIN] 从论文源码学习 之 embedding层如何自动更新 0x00 摘要 0x01 DIN源码 1.1 问题 ...

  9. 检测跟踪 DeepSOCIAL:基于YOLOv4的人群距离监测 集检测、跟踪以及逆透视映射一体的系统

    论文:https://doi.org/10.3390/app10217514 代码:https://github.com/DrMahdiRezaei/DeepSOCIAL https://github ...

最新文章

  1. ElasticSearch性能优化策略【转】
  2. R程序设计中的IF、IFELSE、SWITCH
  3. Kubernetes系统架构简介
  4. 利用UIWebView获取userAgent需要注意的地方
  5. c语言数组算n阶乘,c语言中如何计算n的阶乘
  6. 开发之路(设计模式二:观察者模式)
  7. 我遇到的一个怪现象!
  8. XML文档注释(C#)
  9. EC2上的ElasticSearch不到60秒
  10. UVA 12563 Jin Ge Jin Qu hao
  11. php aura,AuraPHP路由器没有拿起参数
  12. 随机森林需要分训练集测试集吗_讨论记录用随机森林对生存数据降维,筛选signature...
  13. IP头,TCP头,UDP头,MAC帧头定义(转)
  14. Android加速球、360加速球
  15. It技能图谱(13张)
  16. celeste第二章_『第二章』 蔚蓝的剑
  17. 《期权、期货及其他衍生产品》读书笔记(第四章:利率)
  18. 核桃编程学python吗_西瓜编程和核桃编程哪个好
  19. 其实,APP文案还可以这样写·····
  20. 期初余额录入功能暂时不能执行

热门文章

  1. laytpl : 一款非常轻量的JavaScript模板引擎
  2. git 提交各种情况下的处理方式
  3. linux内核及其模块的查询,加载,卸载 lsusb等
  4. Session丢失,都是CDN惹的祸
  5. notepad++默认的快捷键整理
  6. **上海铁路局2004年最新时刻发布!**
  7. 电子书下载:Pro Drupal 7 for Windows Developers
  8. 浅析Facebook LibraBFT与比原链Bystack BBFT共识
  9. 人工智能实战_第三次作业_陈泽寅
  10. Java static作用