Command Palette
Search for a command to run...
Surveillance De La Distance Entre Les Foules DeepSOCIAL Le Guide Chinois Le Plus Complet Sur Les Documents Et Les Codes Sources

Le projet de surveillance de la distance entre les foules DeepSOCIAL, open source par Mahdi Rezaei, chercheur à l'Institut d'études des transports de l'Université de Leeds au Royaume-Uni, est devenu une application en ligne populaire récemment.Accès au didacticiel en ligne sur le code source
DeepSOCIAL utilise YOLOv4 pour réaliser la détection des piétons, puis utilise SORT pour réaliser le suivi de la cible, et utilise la cartographie de perspective inverse IPM à vision monoculaire pour réaliser l'estimation de la distance, et enfin évalue la surveillance de la distance de la foule et l'évaluation des risques.


Détection des piétons : YOLO v4
Dans le cadre du projet DeepSOCIAL, YOLOv4 a été sélectionné pour mettre en œuvre la détection de cibles piétonnes. Dans l’article, l’auteur a comparé plusieurs méthodes de détection de cibles :RCNN, RCNN rapide, RCNN plus rapide, SSD, YOLODans l'ensemble de donnéesClasses d'objets visuels PASCAL (VOC) et MS COCOTesté en .
Utilisé pour mesurer la précision et la vitesse de reconnaissance dans la détection de cibles :**mAP (précision moyenne) et FPS (images par seconde)**Effectuer une évaluation.
Finalement, YOLOv4 a été sélectionné comme méthode de détection de cible.


Suivi des piétons : SORT
Dans le suivi des piétons de DeepSOCIAL, l'algorithme Simple Online and Real-time (SORT) a été sélectionné.

Estimation de la distance piétonne : cartographie en perspective inverse IPM
Le projet DeepSOCIAL utilise la vision monoculaire, mais utilise une seule caméra pour projeter la scène du monde en trois dimensions sur un plan d'image en perspective bidimensionnel, ce qui conduit facilement à une distorsion de la distance des pixels entre les objets.

Afin d'appliquer une transition IPM (Inverse Perspective Mapping) calibrée, vous devez d'abord supprimer l'effet de perspective en définissant le paramètre de profondeur z = 0 et effectuer l'étalonnage de la caméra. Vous devez également connaître la position de la caméra, sa hauteur, son champ de vision, etc.
Opération du projet
1. Présentation des dépendances
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. Compiler 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. Utilisation de l'interface Python de Darknet
# 导入 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. Utilisez SORT pour atteindre vos objectifs de suivi en temps réel
!pip install filterpyfrom sort import *mot_tracker = Sort(max_age=25, min_hits=4, iou_threshold=0.3)
5. Paramètres d'entrée
Input = "/openbayes/input/input1/OxfordTownCentreDataset.avi"
ReductionFactor = 2
calibration = [[180,162],[618,0],[552,540],[682,464]]
6. Présentation des paramètres et des fonctions de DeepSocial
7. Processus de raisonnement
8. Afficher les résultats
Détection de cibles piétonnes et attribution d'identifiants Suivi des piétons et mesure de la distance Carte thermique des rassemblements de foule Le code pour 6 et 7 est relativement long.Veuillez visiter le tutoriel original











