色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 用 YOLO v5+DeepSORT,打造實時多目標跟蹤模型

          用 YOLO v5+DeepSORT,打造實時多目標跟蹤模型

          發(fā)布人:數(shù)據(jù)派THU 時間:2021-08-20 來源:工程師 發(fā)布文章

          來源:HyperAI超神經(jīng)

          目標跟蹤 (Object Tracking) 是機器視覺領(lǐng)域的重要課題,根據(jù)跟蹤目標的數(shù)量,可分為單目標跟蹤 (Single Object Tracking,簡稱 SOT) 和多目標跟蹤 (Multi Object Tracking,簡稱 MOT)。

          多目標跟蹤往往因為跟蹤 ID 眾多、遮擋頻繁等,容易出現(xiàn)目標跟丟的現(xiàn)象。借助跟蹤器 DeepSORT 與檢測器 YOLO v5,可以打造一個高性能的實時多目標跟蹤模型。

          本文將對單目標跟蹤和多目標跟蹤分別進行介紹,文末將詳解 YOLO v5+DeepSORT 的實現(xiàn)過程及具體代碼。

          單目標跟蹤詳解

          定義 

          單目標跟蹤 SOT 是指在視頻首幀給出目標,根據(jù)上下文信息,在后續(xù)幀定位出目標位置,建立跟蹤模型對目標的運動狀態(tài)進行預(yù)測。

          應(yīng)用場景 

          SOT 在智能視頻監(jiān)控、自動駕駛、機器人導(dǎo)航、人機交互等領(lǐng)域應(yīng)用廣泛。

          1.gif

          足球比賽中利用 SOT 預(yù)測足球運動軌跡

          研究難點 

          最主要的三個難點:目標背景的變化、物體本身的變化、光照強度變化。

          主流算法(基于深度學(xué)習(xí)) 

          解決 SOT 問題主要有兩種方法:判別式跟蹤及生成式跟蹤,隨著深度學(xué)習(xí)在圖像分類、目標檢測等機器視覺相關(guān)任務(wù)中的成功應(yīng)用,深度學(xué)習(xí)也開始大量應(yīng)用于目標跟蹤算法中。

          本文主要圍繞基于深度學(xué)習(xí)的 SOT 算法進行介紹。

          2.jpg

          各時間節(jié)點的代表性目標跟蹤算法

          2012 年后以 AlexNet 為代表的深度學(xué)習(xí)方法

          被引入到目標跟蹤領(lǐng)域中

          關(guān)鍵算法:SiamFC

          與傳統(tǒng)目標跟蹤中所用的在線學(xué)習(xí)方法不同,SiamFC 側(cè)重于在離線階段學(xué)習(xí)強嵌入。

          它將一個基本跟蹤算法,與一個在 ILSVRC15 數(shù)據(jù)集上進行端到端訓(xùn)練的新型全卷積孿生網(wǎng)絡(luò) (fully-convolutional Siamese network) 相結(jié)合,用于視頻中的目標檢測。

          3.png

          全卷積孿生網(wǎng)絡(luò)架構(gòu)示意圖

          實驗證明,在模型測試和訓(xùn)練期間,孿生全卷積深度網(wǎng)絡(luò)對已有數(shù)據(jù)的利用更加高效。

          SiamFC 開創(chuàng)了將孿生網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)用于目標跟蹤領(lǐng)域的先河,顯著提高了深度學(xué)習(xí)方法跟蹤器的跟蹤速度,結(jié)構(gòu)簡單性能優(yōu)異。

          相關(guān)論文:

          https://arxiv.org/pdf/1606.09549.pdf

          相關(guān)衍生算法 

          1、StructSiam

          提出了 local structure learning method,同時考慮目標的 local pattern 和結(jié)構(gòu)關(guān)系。為此,作者設(shè)計了一個局部模式檢測模塊,來自動識別目標物體的辨別區(qū)域。

          該模型可以以端到端的方式進行訓(xùn)練。

          相關(guān)論文:

          https://openaccess.thecvf.com/content_ECCV_2018/papers/Yunhua_Zhang_Structured_Siamese_Network_ECCV_2018_paper.pdf

          2、SiamFC-tri

          作者提出了一種全新的 triplet loss,用于提取跟蹤物體的 expressive deep feature。在不增加輸入的情況下,該方法可以利用更多元素進行訓(xùn)練,通過組合原始樣本,實現(xiàn)更強大的特征。

          相關(guān)論文:

          https://openaccess.thecvf.com/content_ECCV_2018/papers/Xingping_Dong_Triplet_Loss_with_ECCV_2018_paper.pdf

          3、DSiam

          作者提出了動態(tài)孿生網(wǎng)絡(luò),通過一個快速轉(zhuǎn)換學(xué)習(xí)模型,能夠有效地在線學(xué)習(xí)目標的外觀變化和先前幀的背景壓制。同時作者還提出了元素多層融合,利用多層深度特征自適應(yīng)地整合網(wǎng)絡(luò)輸出。

          DSiam 允許使用任何可行的通用或經(jīng)過特殊訓(xùn)練的特征,如 SiamFC 和 VGG,且動態(tài)孿生網(wǎng)絡(luò)可以直接在標記的視頻序列上進行整合訓(xùn)練,充分利用移動物體豐富的時空信息。

          相關(guān)論文:

          https://openaccess.thecvf.com/content_ICCV_2017/papers/Guo_Learning_Dynamic_Siamese_ICCV_2017_paper.pdf

          多目標跟蹤詳解

          定義 

          多目標跟蹤(MOT)是指對視頻中每一幀的物體都賦予一個 ID,并將每個 ID 的行為軌跡畫出來。

          4.gif

          在街景視頻中進行多目標跟蹤

          應(yīng)用場景 

          MOT 在智能安防、自動駕駛、醫(yī)學(xué)場景等領(lǐng)域,都有廣泛應(yīng)用。

          研究難點 

          MOT 目前遇到的最大挑戰(zhàn)就是遮擋 (Occlusion),即目標之間的彼此遮擋或環(huán)境對目標產(chǎn)生的遮擋。

          主流算法 

          1、SORT

          Simple Online and Realtime Tracking (SORT) 是一種專注簡單高效算法的多目標跟蹤方法,它非常實用,可以為在線和實時應(yīng)用,有效地關(guān)聯(lián)目標。

          SORT 只是將常見技術(shù)(如卡爾曼濾波、匈牙利算法)進行了簡單組合,準確率可與當時最先進的在線跟蹤器相提并論。

          5.png

          SORT 與其他方法的性能比較

          橫軸表示準確率,縱軸表示速度

          模型位置越高、越靠右,綜合表現(xiàn)越佳

          由于跟蹤方法簡單易用,跟蹤器的更新速度達到了 260 Hz,比當時最先進的跟蹤器快 20 倍。

          相關(guān)論文:

          https://arxiv.org/pdf/1602.00763.pdf

          2、DeepSORT

          DeepSORT 是 SORT 的升級版,它整合了外觀信息 (appearance information) 從而提高 SORT 的性能,這使得我們在遇到較長時間的遮擋時,也能夠正常跟蹤目標,并有效減少 ID 轉(zhuǎn)換的發(fā)生次數(shù)。

          6.png

          DeepSORT 在 MOT Challenge 數(shù)據(jù)集上的表現(xiàn)

          真實街景中遮擋情況非常常見

          作者將絕大部分的計算復(fù)雜度,都放到了離線預(yù)訓(xùn)練階段,在這個階段會用一個大規(guī)模行人重識別數(shù)據(jù)集,學(xué)習(xí)深度關(guān)聯(lián)度量 (deep association metric)。

          在在線應(yīng)用階段,則使用視覺外觀空間 (visual appearance space) 中的近鄰查詢,來建立 measurement-to-track 關(guān)聯(lián)。

          實驗表明,DeepSORT 使得 ID 轉(zhuǎn)換的次數(shù)減少了 45%,在高幀率下整體性能優(yōu)秀。

          此外 DeepSORT 是一個非常通用的跟蹤器,可以被接在任何一個檢測器上。

          相關(guān)論文:

          https://arxiv.org/pdf/1703.07402.pdf

          3、Towards Real-Time MOT

          作者提出了一個 MOT 系統(tǒng),使得目標檢測和外觀嵌入得以在一個共享模型中學(xué)習(xí)。也就是說把外觀嵌入模型納入一個 single-shot 檢測器中,使該模型可以同時輸出檢測以及對應(yīng)的嵌入。

          作者還進一步提出了一個簡單快速的關(guān)聯(lián)方法,可以與聯(lián)合模型 (joint model) 一起運行。

          7.png

          Towards Real-Time MOT 與 SDE 模型

          Two-stage 模型以及 JDE 模型對比

          與之前的 MOT 系統(tǒng)相比,這兩個組件的計算成本都大大降低了,為實時 MOT 算法設(shè)計的后續(xù)工作,提供了一個整潔快速的基線。

          這是業(yè)內(nèi)第一個接近實時的 MOT 系統(tǒng),它的運行速度更快、精度更高、代碼也已開源,非常值得參考。

          相關(guān)論文:

          https://arxiv.org/pdf/1909.12605v1.pdf

          用YOLOv5和DeepSORT進行多目標跟蹤

          該教程在 OpenBayes.com 運行。OpenBayes 是一個開箱即用的機器學(xué)習(xí)算力云平臺,提供 PyTorch、TensorFlow 等主流框架,以及 vGPU、T4、V100 等多種類型的算力方案,計價模式靈活簡單,按使用時長收費。

          本教程選用 vGPU 在 PyTorch 1.8.1 環(huán)境中運行。

          訪問完整教程:

          https://openbayes.com/console/open-tutorials/containers/BvxvYMbdefV/overview

          8.png

          本項目包括兩個部分,首先是 YOLO v5 檢測器,用于檢測出一系列物體;然后用 DeepSORT 進行跟蹤。

          第一步 代碼環(huán)境準備

          %cd Yolov5_DeepSort_Pytorch
          %pip install -qr requirements.txt  # 安裝依賴
          import torch
          from IPython.display import Image, clear_output  # 顯示結(jié)果
          clear_output()
          print(f"Setup complete. Using torch {torch.__version__} ({torch.cuda.get_device_properties(0).name if torch.cuda.is_available() else 'CPU'})")

          第二步 預(yù)處理待測視頻

          !y | ffmpeg -ss 00:00:00 -i test.avi -t 00:00:03 -c copy out.avi -y

          第三步 模型推理

          !python track.py --yolo_weights /openbayes/input/input1/crowdhuman_yolov5m.pt --source out.avi --save-vid

          第四步 格式轉(zhuǎn)換

          !ffmpeg -i /openbayes/home/Yolov5_DeepSort_Pytorch/inference/output/out.avi output.mp4 -y

          第五步 顯示結(jié)果

          from IPython.display import HTML
          from base64 import b64encode
          mp4 = open('output.mp4','rb').read()
          data_url = "data:video/mp4;base64," + b64encode(mp4).decode()

          HTML("""
          <video controls>
                <source src="%s" type="video/mp4">
          </video>
          """ % data_url)

          9.gif

          輸出多目標跟蹤結(jié)果

          完整 notebook 請訪問:

          https://openbayes.com/console/open-tutorials/containers/BvxvYMbdefV/overview

          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



          關(guān)鍵詞: AI

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉