HyperAI超神経

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

4年前
情報
Rollroll Yuan
特色图像

DeepSOCIAL 群衆距離監視プロジェクトは、英国リーズ大学交通研究所の研究者マハディ・レザエイ氏がオープンソース化したもので、最近のインターネット有名アプリケーションとなっています。オンラインソースコードチュートリアルへのアクセス 


DeepSOCIAL は、YOLOv4 による歩行者検出を実装し、次に SORT を使用してターゲット追跡を実装し、単眼視 IPM 逆遠近マッピングによる距離推定を実装し、最後に群衆距離の監視とリスク評価を評価します。

DeepSOCIAL導入効果

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

ターゲット検出ステージの全体モデル構造

歩行者検知: YOLO v4

DeepSOCIAL プロジェクトでは、歩行者ターゲット検出を実装するために YOLOv4 が選択されました。論文では、著者はいくつかのターゲット検出方法を比較しました。RCNN、高速 RCNN、高速 RCNN、SSD、YOLO データセット内で PASCAL ビジュアル オブジェクト クラス (VOC) および MS COCO でテスト済み。


ターゲット検出で認識精度と速度を測定するために使用されます。すべてのクラスの mAP 平均精度 (平均精度) と FPS フレーム レート (フレーム/秒)評価を行います。

最終的にターゲット検出方法としてYOLOv4が選択されました。

主流のターゲット検出方法 mAP テスト結果
主流の目標検出方式 FPS テスト結果

歩行者追跡: SORT

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

人物検知、ID付与、追跡、移動軌跡表示効果

主に使用するのはカルマン フィルターは、ハンガリーのアルゴリズムを組み合わせて、アクションの予測とデータの関連付けの問題を解決します。

歩行者距離推定: IPM 逆遠近マッピング

DeepSOCIAL プロジェクトでは単眼視覚が使用されていますが、単一のカメラを使用して 3 次元の世界のシーンを 2 次元の透視画像平面に投影すると、オブジェクト間のピクセル距離の歪みが容易に発生する可能性があります。

IPM を適用すると、2 次元のピクセル点 (u、v) が、対応する 3 次元のワールド シーン座標点 (Xw、Yw、Zw) にマッピングされます。

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 filterpyfrom 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の部分が長くなりますが、オリジナルのチュートリアルにアクセスしてください