多攝像頭實時目標跟蹤和計數,使用YOLOv4,Deep SORT和Flask


作者:LeonLok

編譯:ronghuaiyang

導讀

本文來自github,很實用的一個應用。

 

git倉庫地址:https://github.com/LeonLok/Multi-Camera-Live-Object-Tracking

這個存儲庫包含了我的目標檢測和跟蹤項目。所有這些都可以托管在雲服務器上。

由於有ImageZMQ,你還可以使用自己的異步處理IP相機。

Deep SORT 和 YOLO v4

Check out我的Deep SORT repository:https://github.com/LeonLok/Deep-SORT-YOLOv4,查看我使用的跟蹤算法,其中包括Tensorflow 2.0、異步視頻處理和低置信度跟蹤過濾。

交通流量計數

這個項目是目標計數應用的一個擴展。

功能

  • 使用DETRAC數據集生成的244,617幅圖像進行訓練。可以在這里找到我創建的轉換代碼。
    • 我把這篇論文:https://ieeexplore.ieee.org/document/8909903作為數據准備和訓練的指南。
  • 每個跟蹤id只計數一次。
  • 通過查看被跟蹤目標的路徑與計數線的交叉點對目標進行計數。
    • 因此,那些跟丟了但用相同的ID重新跟蹤的仍然會被計數。
  • 使用低置信度濾波進行跟蹤,來自上面同樣的論文。
    • 提供更低的假陽性率。
    • 跟蹤目標顯示平均檢測置信度。
    • 跟蹤的類別由最常見的檢測類別確定。
  • 顯示檢測結果是可選的(但是隱藏了平均檢測置信度)。
  • 可以使用多個IP攝像頭。
  • 方向計數可以配置為基於角度。
  • 每一小時的間隔記錄計數。
    • 總的計數
    • 基於類別的計數
  • 記錄每個計數目標的交叉詳細信息。
    • 交叉時間
    • 交叉點坐標
    • 交叉角度
  • 可以托管在雲服務器上。

注意,由於DETRAC不包含任何摩托車,它們是唯一被忽略的車輛。此外,DETRAC數據集只包含中國的交通圖像,因此由於缺乏訓練數據,它很難正確地檢測出其他國家的某些車輛。例如,它經常會將掀背車誤歸為suv,或者由於不同的顏色方案而無法識別出租車。

目標計數

這個項目最初打算成為一個應用程序,用於使用我自己的智能手機計算當前在多個房間的人數,服務器被遠程托管。下面展示了對人和汽車的檢測、跟蹤和計數。

功能

  • 對當前視場中的物體進行計數
  • 跟蹤可選
  • 支持多個IP相機
  • 每間隔一個小時記錄一次當前的計數
    • 當前的總數
    • 當前每個類別的計數
  • 可以托管在雲服務器上

使用我自己的智能手機作為IP相機

訓練你自己的機動車跟蹤模型

我使用DETRAC訓練帶有v3標注的數據集訓練了YOLOv4和Deep SORT模型。我提供了將DETRAC訓練圖像和v3標注轉換為正確格式的腳本,用於訓練YOLOv4模型和Deep SORT跟蹤模型。

Deep SORT 轉換參數

DETRAC圖像轉換為Market 1501訓練格式。

  • 遮擋閾值 - 忽略遮擋比率過高的車輛序列。
  • 截斷閾值 - 忽略截斷率過高的車輛序列。
  • 出現的次數 - 車輛序列太短(即沒有足夠的圖像)被丟棄后,考慮遮擋和截斷比率。

YOLO 轉換參數

DETRAC圖像被轉換成Darknet YOLO訓練格式。

  • 遮擋閾值 - 忽略遮擋比率過高的車輛序列。
  • 截斷閾值 - 忽略截斷率過高的車輛序列。

兩種模型都在DETRAC訓練集上進行了訓練和評估,但由於缺少v3標注,測試集還沒有評估,我也沒有MATLAB用於Deep SORT的評估軟件。到目前為止,對於我的用例來說,它已經足夠好了。

使用的硬件

  • Nvidia GTX 1070 GPU
  • i7-8700K CPU

為了讓大家了解我們的期望,我可以運行兩個流量計數流,每個流大約10fps(正如你在流量計數gif中看到的)。當然,這在很大程度上取決於流分辨率以及用於檢測和跟蹤的幀數。

YOLO v3 vs. YOLO v4

當我第一次開始目標計數項目時,我使用YOLOv3,跟蹤幀率大約是10FPS,很難一次運行多個流。使用YOLOv4可以更容易地運行具有更高分辨率的兩個流,並提供更好的檢測精度。

依賴

  • Tensorflow-GPU 1.14
  • Keras 2.3.1
  • opencv-python 4.2.0
  • ImageZMQ
  • numpy 1.18.2
  • Flask 1.1.1
  • pillow

這個項目是在Python 3.6上構建和測試的。

感謝相關貢獻者

  • https://github.com/miguelgrinberg/flask-video-streaming
  • https://github.com/Ma-Dan/keras-yolo4
  • https://github.com/nwojke/deep_sort
  • https://github.com/Qidian213/deep_sort_yolov3
  • https://github.com/yehengchen/Object-Detection-and-Tracking


圖片END—

英文原文:https://github.com/LeonLok/Multi-Camera-Live-Object-Tracking

 

                                             

 

 

 

本文僅做學術分享,如有侵權,請聯系刪除。下載1在「計算機視覺工坊」公眾號后台回復:深度學習,即可下載深度學習算法、3D深度學習、深度學習框架、目標檢測、GAN等相關內容近30本pdf書籍。
下載2在「計算機視覺工坊」公眾號后台回復:計算機視覺,即可下載計算機視覺相關17本pdf書籍,包含計算機視覺算法、Python視覺實戰、Opencv3.0學習等。
下載3在「計算機視覺工坊」公眾號后台回復:SLAM,即可下載獨家SLAM相關視頻課程,包含視覺SLAM、激光SLAM精品課程。

重磅!計算機視覺工坊-學習交流群已成立

 

掃碼添加小助手微信,可申請加入3D視覺工坊-學術論文寫作與投稿 微信交流群,旨在交流頂會、頂刊、SCI、EI等寫作與投稿事宜。

同時也可申請加入我們的細分方向交流群,目前主要有ORB-SLAM系列源碼學習、3D視覺CV&深度學習SLAM三維重建點雲后處理自動駕駛、CV入門、三維測量、VR/AR、3D人臉識別、醫療影像、缺陷檢測、行人重識別、目標跟蹤、視覺產品落地、視覺競賽、車牌識別、硬件選型、深度估計、學術交流、求職交流等微信群,請掃描下面微信號加群,備注:”研究方向+學校/公司+昵稱“,例如:”3D視覺 + 上海交大 + 靜靜“。請按照格式備注,否則不予通過。添加成功后會根據研究方向邀請進去相關微信群。原創投稿也請聯系。

圖片▲長按加微信群或投稿

圖片

▲長按關注公眾號

3D視覺從入門到精通知識星球:針對3D視覺領域的知識點匯總、入門進階學習路線、最新paper分享、疑問解答四個方面進行深耕,更有各類大廠的算法工程人員進行技術指導。與此同時,星球將聯合知名企業發布3D視覺相關算法開發崗位以及項目對接信息,打造成集技術與就業為一體的鐵桿粉絲聚集區,近2000星球成員為創造更好的AI世界共同進步,知識星球入口:

 

學習3D視覺核心技術,掃描查看介紹,3天內無條件退款


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM