【深度学习】人群距离监测 DeepSOCIAL 最全汉化论文+源码导读
內容一覽:在疫情期間,公共場所中盡量避免人群聚集,可以有效控制疫情擴散。英國利茲大學的研究團隊開源了 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 inline2.編譯 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/' Makefile3.使用 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_ratio4.使用 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 最全汉化论文+源码导读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: threejs 用 ExtrudeGeo
- 下一篇: 网友:这才是高质量人类女性!32岁清华女