滴普技術薈:基於機器視覺的典型多目標追蹤算法應用實踐

2020-12-05 Deepexi滴普科技

視頻目標追蹤算法是機器視覺中一項很實用重要的算法,視頻目標追蹤算法應用場景很廣,比如智能監控、機器人視覺系統、虛擬實境(人體跟蹤)、醫學診斷(細胞狀態跟蹤)等。本文由滴普科技2048團隊AI產品部算法工程師朱曉麗介紹基於機器視覺的典型多目標追蹤算法應用實踐。

一、追蹤算法概述

目標追蹤算法分為單目標追蹤SOT(single-object track)和多目標追蹤MOT(multi-object track)。在單目標跟蹤中,使用給定的目標定位,在後續視頻幀中對給定的目標定位的物體進行位置預測。而多目標跟蹤算法,大部分都是不考慮目標定位,目標可自行進出。對目前小組項目而言只需用到MOT,所以本文提到的追蹤默認為MOT。【1】【2】

MOT的一般結構和分類:a. TBD(Tracking-by-Detection)與DFT(Detection-Free Tracking)也即基於檢測的多目標跟蹤與基於目標外形的先驗知識無需檢測器的多目標跟蹤。TBD是目前學界業界研究的主流。b. 在線跟蹤(online)與離線跟蹤(offline)。在Online跟蹤中,只能使用當前幀及之前幀的信息來進行當前幀的跟蹤。而在Offline跟蹤中則沒有了這個限制,對每一幀的預測,都可以使用整個視頻的信息,這樣更容易獲得一個全局最優解。兩種方式各有優劣,一般視應用場合而定,Offline算法的效果一般會優於Online算法。而介於這兩者之間,還有一種稱之為Near-Online的跟蹤方式,即可以部分利用未來幀的信息。關於Online,還有一點需要補充,Online跟蹤是不允許修改以往的跟蹤結果的,這一點也不難理解,因為一旦修改,算法自然就不再符合Online跟蹤不能利用未來幀的要求了,變成了Near-Online或者Offline。需要特別注意,online不等於real-time,real-time一定是online的,但絕大部分online算法還太慢,不足以支持real-time environment. 尤其是應用了深度學習的算法,往往都計算密集。MOT相關的數據來源:行人追蹤經典數據來源MOT challengeKITTYMOT常用評價標準:

表1. classical metrics

另外兩種評價方式CLEAR MOT metrics與ID scores,它們是通過IOU來進行ground truth和predictions的對應。這裡不做詳細介紹。

MOT的難點:MOT有兩個難點:1)遮擋,這也是ID交換和軌跡分段的主要原因。2)兩個軌跡非常靠近,ID容易匹配不準,出現錯位或丟失。目前MOT經典的算法:MOT最常用的類別是Tracking-by-Detection與online,對應的算法步驟:a.檢測b.特徵提取、軌跡預測c.計算相似度d.數據匹配。優化的方向圍繞著這四個步驟,如:運用private dataset,挑選合適檢測模型,提升檢測精度;特徵提取不局限於一般的CNN,還有Siamese network等網絡;特徵間的相似度,不再是簡單的distance metric,也開始運用CNN、RNN、LSTM等;數據關聯匹配除了傳統經典的Hungarian algorithm,也可以當作圖優化的問題。目前比較常用的效果較好的有以下幾種:

1)sort(simple online and realtime tracking)

2)deep sort(deep simple online and realtime tracking)

3)fairmot(a simple baseline for multi-object tracking)

另外最新的追蹤算法中,有嘗試利用圖神經網絡完成追蹤,屬於Tracking-by-Detection與offline的類別,4)graphnn multi-object trachking。不考慮時間問題,效果精度還不錯,後面簡寫為graphnn-mot

四種算法詳細的介紹見「二」節。

二、經典的追蹤算法介紹:

sort是deep sort的簡化版,著重介紹deep sort。1)原文源碼deep sortSimple Online and Realtime Tracking with a Deep Association Metric.https://arxiv.org/pdf/1703.07402.pdfhttps://github.com/KeyForce/Cascade-RCNN-Tracking簡單流程

圖1. Deep sort算法的簡單流程圖

原理:算法模塊,根據目前MOT常用的算法步驟:a.檢測b.特徵提取、軌跡預測c.計算相似度d.數據匹配,deep sort算法就這四個步驟,按序簡介涉及到的核心知識點五個:detection、reID model、kalman filter、iou與餘弦距離、hungarian algorithm。Detection:常用的檢測網絡,如faster rcnn、yolov4、ssd等,可根據實際項目對精度或時間的要求挑選。本文復現時,上面的幾種網絡都有嘗試,原始碼使用了商湯的mmdetection框架下的cascade-rcnn,但項目考慮時間和精度,最終使用了yolov4[3]作為檢測來源。reID model:原始碼使用了多重粒度網絡(Mutiple Granularity Network),是以resnet50作為backbone,以softmax_2048分支作為id特徵。考慮到2048維特徵過大,數據關聯時,時間會長,本文項目採用了mobileNetv2[4]作為主幹網絡,id特徵維度下降到751。kalman Filter:卡爾曼濾波,預測confirmed id在下一幀的中心點位置以及box的size。iou與餘弦距離:用於計算數據匹配的代價矩陣。1-iou的值作為box間的距離值,餘弦距離函數值作為id特徵值間的距離。hungarian algorithm:匈牙利匹配算法用於目標預測與目標檢測的關聯匹配,確定目標的軌跡。sort比起deep sort少了reID model與餘弦距離,所以ID切換的過於頻繁,精度要低很多。速度幾乎只取決於detection模型的預測速度。如果對速度要求很高的,可以考慮用sort。具體的細節不再敘述,參考deep sort。fairmot原文源碼FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking.https://arxiv.org/pdf/2004.01888.pdfhttps://github.com/ifzhang/FairMOT簡單流程:

圖2. Fairmot算法的簡單流程圖

原理:Fairmot算法重點突破:a. 比起之前兩步(先檢測後re-id)的追蹤算法,fairmot完成檢測與re-id共享網絡參數,減少算法推理時間,速度大幅度提升。b. 比起之前單步的追蹤算法JDE,存在的一些不足,如:一個物體可能被多個anchor負責並進行檢測,或實際物體的中心可能與負責對該物體進行檢測的anchor中心有偏差,都會導致id頻繁變換。fairmot針對這些不足,不用anchor-based的檢測方式,以anchor-free目標檢測範式代替。涉及到的核心知識點:一個有效簡潔的網絡結構DLA34、kalman filter、iou與餘弦距離、hungarian algorithm。下面詳細介紹DLA34網絡,至於kalman,distance metrixes, hungarian algorithm同deep sort的內容一致,這裡不多做解釋。fairmot旨在將檢測與re-id揉在一個網絡結構裡,且需要是anchor-free的目標檢測方式,所以DLA34網絡結構必需要預估目標中心點的位置和對應目標的features。DLA34的backbone是resnet34[5],resnet網絡結構是裡程碑似的出現,比起一般的plain network, resnet直接使用stride=2的down sample並且用global average pool層替換全連接層,保持了網絡的複雜度,並有效解決了深度網絡的退化問題。DLA34[6]是對resnet34加強,除了down sample,還有up sample,有點類似FPN[7]的網絡結構,跨層添加features,使得多層融合,跨層stride=4。detection heads:heatmap head、box offset and size head、Re-ID branch;heatmap head:用於預估目標中心位置,使用了與focal loss類似的損失函數,詳情推導見源文。Box offset head:目的是使得預估的目標位置更精準,輔助目標中心位置的預估。Box size head:對每個預估了的目標中心,預估其對應的box的長和寬。offset與size兩個頭加入在一個l1 loss函數裡面。Re-ID branch:一個分類任務,旨在對每個預估出的目標中心產生64維的features,通過features用於後續計算前後幀的目標的相似度。使用了通用的softmax損失函數。簡單的網絡結構圖如下:

圖3. Fairmot網絡結構圖

graphnn-mot原文源碼Learning a Neural Solver for Multiple Object Tracking.https://arxiv.org/pdf/1912.07515.pdfhttps://github.com/selflein/GraphNN-Multi-Object-Tracking簡單流程:

圖4. Graphnn-mot算法的簡單流程

原理:該論文是基於圖神經網絡[8]的離線MOT,利用圖結構同時執行特徵提取和數據關聯匹配,提出了時間感知信息傳遞網絡對節點和連接邊信息的更新。涉及到的核心知識點:圖構造、特徵編碼、信息傳遞、軌跡預測。圖構造:對需檢測的所有圖片(圖片之間要有時間關聯,最好是視頻),進行目標檢測。構建圖,其中節點對應檢測目標,邊對應檢測目標之間的連接。對圖中的每條邊引入了一個二元變量,如果某些邊連接了屬於同一條跟蹤軌跡且在同一條跟蹤軌跡上是時間連續的節點,那麼其標籤為1,否則為0。一個節點不會屬於超過一個跟蹤軌跡。論文提出直接學習預測圖中的哪條邊被激活,即邊上的二元變量的最終值,為此將這個任務視為邊上的二分類任務,標籤就是二元變量值y。特徵編碼:在邊界框圖像上應用一個卷積神經網絡,初始化節點的外觀特徵嵌入。對於每一條邊也就是不同幀的每一對檢測,我們計算一個具有編碼了他們的邊界框之間的相對大小,位置以及時間差的特徵的向量。然後將其輸入到一個多層感知器中得到邊的幾何嵌入。信息傳遞:我們在整個圖上執行了一系列的信息傳遞步驟。對於每一輪的信息傳遞,節點會與他們的連接邊分享外觀信息,邊會與他們的伴隨節點分享幾何信息。最後,能夠獲得節點和邊的更新嵌入信息,其包含了依賴於整個圖結構的高階信息。軌跡預測:根據最後的所有邊嵌入預測的連續的二元結果,獲得最終的跟蹤軌跡。三、復現環境和數據集環境配置:ubuntu 20.04.4LTS 單卡GTX1060 CUDA Version 10.1.python=3.8.3 opencv-python=4.3.0.36 pytorch=1.4 torchvision cudatoolkit=10.1.243數據集:public dataset: MOT2017-MOT2020 crowdhuman 用於detection模型訓練和測試CUHK03 Market1501 DukeMTMC-reID MSMT17用於reID模型訓練四、實際測試時間和精度對比

表2. 追蹤算法實際測試的時間和精度

五、實際算法測試分析

如第四小節所示,無論時間還是精度,farimot更有優勢。影響精度的原因主要是兩個:

檢測目標聚集,被遮擋,ID switches頻率太高。三種追蹤算法都有出現這類情況,嚴重程度graphnn mot >deep sort>fairmot,可見下面擁擠場景例圖:

組圖1:擁擠場景中的graphnn mot追蹤算法

組圖2:擁擠場景中的deep sort追蹤算法

組圖3:擁擠場景中的farimot追蹤算法

如上圖紅上衣人為例,graphnn mot對應的id號為:無->15->20,id號連續變換;deep sort對應的id號:32->32->48,id號部分變換,只在最聚集的地方變換了id號;fairmot對應的id號:30->30->30,id號一直很穩定。

2.目標檢測精度不高,漏檢與誤檢。主要是graphnn mot算法有明顯漏檢,可見下面例圖:

組圖4:graphnn追蹤算法目標檢測漏檢示例圖

對於目前最常使用的追蹤算法,都是tracking-by detection,所以目標檢測的精度直接影響追蹤的精度。

六、總結

1. 目前精度時間最合適的追蹤算法:

目前來說對跟蹤效果影響最大的是目標檢測的性能,相對於公開的檢測,私有檢測提升幅度巨大。

對於跟蹤模塊,目前來說更好的解決方案,比如使用MOTDT,此算法在DeepSort的基礎上加入了軌跡評分的機制,目前像FairMOT、JDE使用的跟蹤模塊都是MOTDT,從精度和速度上此算法表現都是不錯的。

2. 對圖神經網絡的追蹤算法的看法:

圖神經網絡在追蹤上的運用,是初嘗試。是offline且detection與reid沒有融合,所以速度方面,沒有優勢,會關注基於圖神經網絡的追蹤的後續優化。

目前以上追蹤算法正用於滴普的某養殖企業養殖場豬計數項目和某地產企業施工地段安全帽的檢測預警項目。詳細項目場景歡迎進入滴普科技官網了解(http://www.deepexi.com)。

七、參考文獻

[1]Multiple Object Tracking: A Literature Review. https://arxiv.org/abs/1409.7618

[2]Deep Learning in Video Multi-Object Tracking: a Survey. https://arxiv.org/pdf/1907.12740.pdf

[3] YOLOv4: Optimal Speed and Accuracy of Object Detection. https://arxiv.org/pdf/2004.10934v1.pdf

[4] MobileNetV2: Inverted Residuals and Linear Bottlenecks. https://arxiv.org/abs/1704.04861

[5]Deep Residual Learning for Image Recognition. https://arxiv.org/abs/1512.03385

[6]Deep Layer Aggregate. https://arxiv.org/pdf/1707.06484.pdf

[7] Feature Pyramid Networks for Object Detection. https://arxiv.org/pdf/1612.03144.pdf

[8] A Comprehensive Survey on Graph Neural Networks. https://arxiv.org/abs/1901.005

相關焦點

  • 基於機器視覺的典型多目標追蹤算法應用實踐
    視頻目標追蹤算法是機器視覺中一項很實用重要的算法,視頻目標追蹤算法應用場景很廣,比如智能監控、機器人視覺系統、虛擬實境(人體跟蹤)、醫學診斷(細胞狀態跟蹤)等。本文由滴普科技2048團隊AI產品部算法工程師朱曉麗介紹基於機器視覺的典型多目標追蹤算法應用實踐。
  • 王棟:著力目標追蹤,打造數位化獵鷹
    隨著美國的3DRobotics、法國的 Parrot以及中國的DJI(大疆創新)等一系列無人機龍頭企業的崛起,無人機航拍在軍事及民用領域如軍事偵察、邊境巡邏、城市監控、地質勘探、災情監測等方面的應用越來越頻繁,而計算機視覺技術作為無人機智能化的理論基礎,它的技術提升和應用擴展也成了目前很多科學家一直攻堅的科研難題。
  • 機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用...
    原標題:機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用高級研修班通信和信息技術創新人才培養工程項目辦公室 通人辦〔2018〕 第5號 機器學習、深度學習算法原理與案例實踐暨Python
  • 機器視覺和智能圖像處理技術之間的關係
    一般認為機器視覺「是通過光學裝置和非接觸傳感器自動地接受和處理一個真實場景的圖像,通過分析圖像獲得所需信息或用於控制機器運動的裝置」,可以看出智能圖像處理技術在機器視覺中佔有舉足輕重的位置。 智能圖像處理是指一類基於計算機的自適應於各種應用場合的圖像處理和分析技術,本身是一個獨立的理論和技術領域,但同時又是機器視覺中的一項十分重要的技術支撐。
  • 科普:機器視覺技術原理解析及應用領域
    機器視覺系統是指通過機器視覺產品(即圖像攝取裝置,分 CMOS 和CCD兩種)將被攝取目標轉換成圖像信號,傳送給專用的圖像處理系統,根據像素分布和亮度、顏色等信息,轉變成數位化信號;圖像系統對這些信號進行各種運算來抽取目標的特徵,進而根據判別的結果來控制現場的設備動作。
  • 智能圖像處理 讓機器視覺及其應用更智能高效
    本文引用地址:http://www.eepw.com.cn/article/201806/381668.htm  智能圖像處理是指一類基於計算機的自適應於各種應用場合的圖像處理和分析技術,本身是一個獨立的理論和技術領域,但同時又是機器視覺中的一項十分重要的技術支撐。
  • 機器視覺中的光源照明設計
    摘要 介紹了光源照明技術在機器視覺中的重要性。通過對光源照明設計中光源種類和基礎照明等諸多技術的理論分析,結合光源照明技術在工程案例中的應用技巧,探究了設計光源照明系統時要注意的問題和原則。
  • 基於ATCA AVP系統的高端機器視覺應用的解決方案
    基於ATCA AVP系統的高端機器視覺應用的解決方案 黃怡暾,凌華科技 發表於 2021-01-15 10:31:10   作者:黃怡暾,凌華科技工業計算機產品部 機器視覺的市場應用日益增加
  • 機器視覺系統與機器視覺檢測最常見的技術應用分析
    這些關鍵字的熱度,從機器視覺論壇上就可以窺見一斑,在機器視覺論壇上,經常有很多專業人士會探討機器視覺算法與應用,以及與機器視覺相關的機器視覺光源方面的技術以及知識。鑑於機器視覺的專業性,很多機器視覺公司,主要從事機器視覺系統和機器視覺軟體的研究,售賣,這些也是機器視覺算法與應用研究的最終目的,也就是將知識轉化為商業價值。關於機器視覺的應用,我們可以從一些機器視覺應用實例中,去學習和借鑑。
  • 實踐入門NLP:基於深度學習的自然語言處理
    特別是最近兩年,基於深度學習的自然語言處理逐漸取得了一定進展,在人機對話、問答系統、語言翻譯等方向的應用也一直是自然語言處理中的熱門話題,而這些應用的實現,基本依賴於底層技術和模型的進步,再加上自然語言處理領域也算是一個多學科交叉的行業,自然語言處理的未來發展對於很多相關學科和方向都具有深遠的影響力。
  • 基於機器視覺的汽車智能駕駛系統
    在目前汽車輔助駕駛所採用的環境感知手段中,視覺傳感器比超聲、雷射雷達等可獲得更高、更精確、更豐富的道路結構環境信息。隨著計算機技術的發展和圖像處理/識別技術的成熟,機器視覺技術獲得長足的發展,目前廣泛的應用在三維測量、三維重建、虛擬實境、運動目標檢測和目標識別等方面。
  • 機器視覺人臉識別技術在智能商業中的應用
    技術在智能商業領域應用的價值和實踐經驗,以下是根據宋晨的演講內容提煉出的核心內容:  什麼是人工智慧本文引用地址:http://www.eepw.com.cn/article/201612/332892.htm  在曠視科技(Face++)宋晨看來,人工智慧應該是一種能夠通過數據、技術、產品三者不斷循環完成的滾雪球式閉環。
  • 凌感手勢追蹤算法與詮視視覺模組結合,加速手勢識別在VR/AR中的應用
    凌感手勢追蹤算法與詮視視覺模組結合,加速手勢識別在VR/AR中的應用 佚名 發表於 2020-06-06 09:46:50 近日,計算機視覺(手勢識別+slam)開發公司杭州凌感科技宣布和
  • 機器視覺應用大盤點:哪一個領域能率先「上車」?
    其利用相機、鏡頭、光源和光源控制系統採集目標物體 數據,藉助視覺控制系統、智能視覺軟體和數據算法庫進行圖形分析和處理,軟 硬系統相輔相成,為下遊自動化、智能化製造行業賦予視覺能力。隨著深度學習、3D視覺技術、高精度成像技術和機器視覺互聯互通技術的發展,機器視覺性能優勢進一步提升,應用領域也向多個維度延伸。國內機器視覺起步晚,目前處於快速成長期。
  • 機器視覺系統包含哪些組成部分
    一個典型的機器視覺系統涉及多個領域的技術交叉與融合,包括光源照明技術、光學成像技術、傳感器技術、數字圖像處理技術、模擬與數字視頻技術、機械工程技術、控制技術、計算機軟硬體技術、人機接口技術等。:基於PC的機器視覺系統和嵌入式機器視覺系統。
  • 視覺技術的聖杯:光線追蹤如何再現真實世界?
    ,與現在普遍使用的光柵化渲染技術相比,光線追蹤普遍被視為視覺技術的未來方向,可帶來近乎真實的真正電影級圖形和光影物理效果,光線追蹤算法是達到這個目標的聖杯,經過幾十年的努力,終於要接近這個理想了。光柵得到的像素一般會攜帶深度值,一個RGB Adiffuse顏色,一個RGB specular顏色,一個霧化係數和一組或者多組紋理坐標。這些值都會被傳給流水線的下一個階段像素的處理,然後注入到渲染目標。由於實時3D渲染程序要求對用戶的即時操作做出迅速反應,因此通常要求每秒至少20幀以上的渲染速率,這也使得高效率的「光柵化」渲染技術成為當今最受青睞的3D即時成像技術。
  • 機器視覺系統設計的關鍵技術
    機器視覺系統是綜合現代計算機、光學、電子技術的高科技系統。機器視覺技術通過計算機對系統攝取的圖像進行處理,分析其中的信息,並做出相應的判斷,進而發出對設備的控制指令。最典型的機器視覺系統一般包括: 光源、光學成像系統、相機、圖像採集卡、圖像處理硬體平臺、圖像和視覺信息處理軟體、通信模塊。
  • 計算機視覺領域的人工智慧——記人工智慧技術應用專家陳秀新
    人工智慧是研究、開發用於模擬、延伸和擴展人智能的理論、方法、技術及應用系統的一門新的技術科學,該領域的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統等,它由不同的領域組成,如機器學習,計算機視覺等等。其中,計算機視覺是使用計算機及相關設備對生物視覺的一種模擬。
  • 百度祝恆書:百度智能招聘技術和應用實踐
    基於這個方向,百度提出了一種基於神經網絡的人崗匹配技術,這種技術跟傳統的基於關鍵詞的匹配算法不同,目前相關算法已經成為整個學界和業界裡,研究人崗匹配的方向和智能招聘方向的一個標誌性的算法。百度孫珂:對話技術的產業化應用與問題探討4. 阿里譚繼偉:基於序列到序列模型的文本摘要及淘寶的實踐5.
  • 「十三五」安防領域機器視覺發展回顧與展望
    一、機器視覺技術發展與應用遠超規劃預期 「十三五」規劃在發展目標中提出「深入研究和應用人工智慧、機器視覺等前沿技術並取得若干突破」;在措施與建議中提出要推動「機器視覺、語音識別、生物特徵識別、安保機器人等關鍵技術的突破,提升智能技術在安防各領域的實戰應用和效能」和視頻結構化等智能化應用。