当前位置:首页 » 《休闲阅读》 » 正文

人群距离监测 DeepSOCIAL 最全汉化论文+源码导读_HyperAI超神经

1 人参与  2022年02月06日 10:52  分类 : 《休闲阅读》  评论

点击全文阅读


By 超神经

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

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

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

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

667b93440218000f4b31b3ce42b14fee.gif

DeepSOCIAL 实现效果展示

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

3a858e9887a5b1a1828af17eb08b6c9a.png

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

线上源码教程访问 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 作为目标检测方法。

4705aa0f644dd4f9313d217bdcab2116.png

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

457d4e43078c35453b2d8b56c7b85736.png

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

 行人跟踪:SORT

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

bf3573e04d2bc3b234d9248a3d6895ba.png

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

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

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

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

22cb468326150cd82d65aa5a845ed518.png

通过应用 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.shape
  width_ratio = img_width/width
  height_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

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

—— 完 ——

ed3e7217c61b05c8fbc8379efe5480a3.png

获得更多优质数据集

了解人工智能落地应用

访问 https://hyper.ai

更多精彩内容(点击图片阅读)

523417d5fe6e11f462a90ca3445b6261.png

7befe8e1bd2c627bcd747f74ec97edc1.png

a0f686ad16f1c4c02fa79bbe8b6c9831.png

0f19ce7dc16cafcd1744eae43750fab7.gif


点击全文阅读


本文链接:http://zhangshiyu.com/post/34315.html

目标  检测  行人  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1