مراقبة مسافة الحشود DeepSOCIAL الدليل الأكثر اكتمالاً للورقة الصينية + دليل الكود المصدري

أصبح مشروع مراقبة المسافة بين الحشود DeepSOCIAL، والذي أنشأه مهدي رضائي، الباحث في معهد دراسات النقل بجامعة ليدز في المملكة المتحدة، مفتوح المصدر، تطبيقًا شائعًا عبر الإنترنت مؤخرًا.الوصول إلى البرنامج التعليمي لمصدر الكود عبر الإنترنت
يستخدم DeepSOCIAL YOLOv4 لتحقيق اكتشاف المشاة، ثم يستخدم SORT لتحقيق تتبع الهدف، ويستخدم رسم المنظور العكسي أحادي العين IPM لتحقيق تقدير المسافة، وأخيرًا يقيم مراقبة مسافة الحشود وتقييم المخاطر.

السبب وراء أن DeepSOCIAL أصبح برنامجًا تعليميًا شائعًا ليس فقط بسبب عمليته في الوباء الحالي، ولكن أيضًا بسبب تأثيره الممتاز.يصل متوسط الدقة إلى 99.8 % وسرعة الوقت الحقيقي هي 24.1 إطارًا في الثانية. يمكن استخدامه في المركبات ذاتية القيادة، والتعرف على السلوك البشري، واكتشاف الشذوذ، والرياضة، وتحليل الحشود وغيرها من المجالات.

اكتشاف المشاة: YOLO v4
في مشروع DeepSOCIAL، تم اختيار YOLOv4 لتنفيذ اكتشاف هدف المشاة. في هذه الورقة، قام المؤلف بمقارنة العديد من طرق الكشف عن الهدف:RCNN، RCNN سريع، RCNN أسرع، SSD، YOLO في مجموعة البيانات فئات الكائنات المرئية في PASCAL (VOC) وMS COCO تم اختباره في .
يستخدم لقياس دقة التعرف وسرعته في اكتشاف الهدف:متوسط الدقة المتوسطة (mAP) ومعدل الإطارات في الثانية (FPS)إجراء تقييم.
وأخيرًا، تم اختيار YOLOv4 كطريقة للكشف عن الهدف.


تتبع المشاة: فرز
في تتبع المشاة في DeepSOCIAL، تم اختيار خوارزمية Simple Online and Real-time (SORT).

أهمها المستخدمةيتم دمج مرشح كالمان مع الخوارزمية المجرية لحل مشكلة التنبؤ بالحركة وربط البيانات.
تقدير مسافة المشاة: رسم خرائط المنظور العكسي IPM
يستخدم مشروع DeepSOCIAL الرؤية أحادية العين، لكنه يستخدم كاميرا واحدة لإسقاط مشهد العالم ثلاثي الأبعاد على مستوى صورة منظور ثنائي الأبعاد، مما يؤدي بسهولة إلى تشويه مسافة البكسل بين الكائنات.

في الفضاء ثلاثي الأبعاد، يرتبط مركز أو نقطة مرجعية لكل صندوق بثلاثة معلمات (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
# 导入 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 طويلًا نسبيًا.يرجى زيارة البرنامج التعليمي الأصلي