Command Palette
Search for a command to run...
Crowd Distance Monitoring DeepSOCIAL Das Umfassendste Chinesische Dokument + Quellcode-Handbuch

Das Crowd-Distance-Monitoring-Projekt DeepSOCIAL, das von Mahdi Rezaei, einem Forscher am Institute of Transport Studies der University of Leeds in Großbritannien, als Open Source bereitgestellt wird, hat sich in letzter Zeit zu einer beliebten Online-Anwendung entwickelt.Online-Zugriff auf das Quellcode-Tutorial
DeepSOCIAL verwendet YOLOv4 zur Fußgängererkennung, verwendet dann SORT zur Zielverfolgung und verwendet monokulares Sehen (IPM) zur inversen perspektivischen Abbildung zur Entfernungsschätzung und wertet schließlich die Überwachung der Menschenmengenentfernung und die Risikobewertung aus.


Fußgängererkennung: YOLO v4
Im DeepSOCIAL-Projekt wurde YOLOv4 zur Implementierung der Fußgängerzielerkennung ausgewählt. In dem Artikel vergleicht der Autor mehrere Methoden zur Zielerkennung:RCNN, schnelles RCNN, schnelleres RCNN, SSD, YOLOIm DatensatzPASCAL Visual Object Classes (VOC) und MS COCOGetestet in .
Wird verwendet, um die Erkennungsgenauigkeit und Geschwindigkeit bei der Zielerfassung zu messen:**mAP (mittlere durchschnittliche Präzision) und FPS (Frames pro Sekunde)**Führen Sie eine Bewertung durch.
Schließlich wurde YOLOv4 als Zielerkennungsmethode ausgewählt.


Fußgängerverfolgung: SORT
Für die Fußgängerverfolgung von DeepSOCIAL wurde der Simple Online and Real-time (SORT)-Algorithmus ausgewählt.

Schätzung der Fußgängerentfernung: IPM Inverse Perspective Mapping
Das DeepSOCIAL-Projekt verwendet monokulares Sehen, projiziert die dreidimensionale Weltszene jedoch mit einer einzelnen Kamera auf eine zweidimensionale perspektivische Bildebene, was leicht zu einer Verzerrung des Pixelabstands zwischen Objekten führt.

Um einen kalibrierten IPM-Übergang (Inverse Perspective Mapping) anzuwenden, müssen Sie zunächst den perspektivischen Effekt entfernen, indem Sie den Tiefenparameter z = 0 setzen und eine Kamerakalibrierung durchführen. Sie müssen auch die Position, Höhe, das Sichtfeld usw. der Kamera kennen.
Projektbetrieb
1. Einführung von Abhängigkeiten
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. Kompilieren Sie 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. Verwenden der Python-Schnittstelle des Darknets
# 导入 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. Nutzen Sie SORT, um Echtzeit-Tracking-Ziele zu erreichen
!pip install filterpyfrom sort import *mot_tracker = Sort(max_age=25, min_hits=4, iou_threshold=0.3)
5. Eingabeeinstellungen
Input = "/openbayes/input/input1/OxfordTownCentreDataset.avi"
ReductionFactor = 2
calibration = [[180,162],[618,0],[552,540],[682,464]]
6. DeepSocial-Parametereinstellungen und Funktionseinführung
7. Denkprozess
8. Ergebnisse anzeigen
Fußgängerzielerkennung und ID-Zuweisung Fußgängerortung & Distanzmessung Heatmap für Menschenansammlungen Der Code für 6&7 ist relativ lang.Bitte besuchen Sie das Original-Tutorial











