• 元宇宙:本站分享元宇宙相关资讯,资讯仅代表作者观点与平台立场无关,仅供参考.

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

  • AI科技大本营
  • 2021年10月04日03时

作者 |神经星星
来源 |HyperAI超神经
By 超神经

内容一览:在疫情期间,公共场所中尽量避免人群聚集,可以有效控制疫情扩散。英国利兹大学的研究团队开源了 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, Imagefrom base64 import b64decode, b64encodeimport osimport cv2import numpy as npimport PILimport ioimport htmlimport timeimport 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 filterpyfrom sort import *mot_tracker = Sort(max_age=25, min_hits=4, iou_threshold=0.3)

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

6.DeepSocial 参数设置和函数引入
&
7.推理过程
&
8.展示结果
6&7&8 三部分完整运行代码过长,请移步至

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

资讯

AI被当做炒作工具?

资讯

Gartner 发布人工智能技术曲线

资讯

机器人越像人越好?被盯着会怎样?

资讯

AI不可以作为专利认证发明人


分享

点收藏

点点赞

点在看

Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM