群集距離モニタリング DeepSOCIAL 最も包括的な中国語の論文 + ソースコードの紹介

DeepSOCIAL 群衆距離監視プロジェクトは、英国リーズ大学交通研究所の研究者マハディ・レザエイ氏がオープンソース化したもので、最近のインターネット有名アプリケーションとなっています。オンラインソースコードチュートリアルへのアクセス
DeepSOCIAL は、YOLOv4 による歩行者検出を実装し、次に SORT を使用してターゲット追跡を実装し、単眼視 IPM 逆遠近マッピングによる距離推定を実装し、最後に群衆距離の監視とリスク評価を評価します。

DeepSOCIAL がインターネットの有名人のチュートリアルになり得る理由は、現在の疫病におけるプロジェクトの実用性だけでなく、プロジェクトの優れた結果にもあります。平均精度は99.8 %に達し、リアルタイム速度は24.1 fpsで、自動運転車、人間の行動認識、異常検知、スポーツ、群衆分析などの分野で使用できます。

歩行者検知: YOLO v4
DeepSOCIAL プロジェクトでは、歩行者ターゲット検出を実装するために YOLOv4 が選択されました。論文では、著者はいくつかのターゲット検出方法を比較しました。RCNN、高速 RCNN、高速 RCNN、SSD、YOLO データセット内で PASCAL ビジュアル オブジェクト クラス (VOC) および MS COCO でテスト済み。
ターゲット検出で認識精度と速度を測定するために使用されます。すべてのクラスの mAP 平均精度 (平均精度) と FPS フレーム レート (フレーム/秒)評価を行います。
最終的にターゲット検出方法としてYOLOv4が選択されました。


歩行者追跡: SORT
DeepSOCIAL の歩行者ターゲット追跡では、Simple Online and Real-time (SORT) アルゴリズムが選択されています。

主に使用するのはカルマン フィルターは、ハンガリーのアルゴリズムを組み合わせて、アクションの予測とデータの関連付けの問題を解決します。
歩行者距離推定: IPM 逆遠近マッピング
DeepSOCIAL プロジェクトでは単眼視覚が使用されていますが、単一のカメラを使用して 3 次元の世界のシーンを 2 次元の透視画像平面に投影すると、オブジェクト間のピクセル距離の歪みが容易に発生する可能性があります。

3 次元空間では、各ボックスの中心または基準点は 3 つのパラメータ (x、y、z) に関連付けられますが、カメラから受け取った画像では、元の 3 次元空間は 2 次元 (x、y、z) に縮小されます。 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 の 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 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. 結果の表示
歩行者検知とID割り当て
歩行者ターゲットの追跡と距離の測定
群集ヒートマップ
コードの6と7の部分が長くなりますが、オリジナルのチュートリアルにアクセスしてください