<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          基于機(jī)器視覺的典型多目標(biāo)追蹤算法應(yīng)用實(shí)踐

          共 6642字,需瀏覽 14分鐘

           ·

          2020-12-08 09:29


          點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          轉(zhuǎn)自:Deepexi滴普科技


          視頻目標(biāo)追蹤算法是機(jī)器視覺中一項(xiàng)很實(shí)用重要的算法,視頻目標(biāo)追蹤算法應(yīng)用場景很廣,比如智能監(jiān)控、機(jī)器人視覺系統(tǒng)、虛擬現(xiàn)實(shí)(人體跟蹤)、醫(yī)學(xué)診斷(細(xì)胞狀態(tài)跟蹤)等。本文由滴普科技2048團(tuán)隊(duì)AI產(chǎn)品部算法工程師朱曉麗介紹基于機(jī)器視覺的典型多目標(biāo)追蹤算法應(yīng)用實(shí)踐。


          ? ?一、概 述?


          目標(biāo)追蹤算法分為單目標(biāo)追蹤SOT(Single-Object Track和多目標(biāo)追蹤MOT(Multi-Object Track)[1][2]。在單目標(biāo)跟蹤中,使用給定的初始目標(biāo)位置,在后續(xù)視頻幀中對給定的物體進(jìn)行位置預(yù)測。而多目標(biāo)跟蹤算法,大部分都是不考慮初始目標(biāo)位置的,目標(biāo)可自行消失與產(chǎn)生。對目前小組項(xiàng)目而言只需用到MOT,所以本文提到的追蹤默認(rèn)為MOT。


          MOT的分類

          1)TBD(Tracking-by-Detection)與DFT(Detection-Free Tracking)也即基于檢測的多目標(biāo)跟蹤與基于目標(biāo)外形的先驗(yàn)知識無需檢測器的多目標(biāo)跟蹤。TBD是目前學(xué)界業(yè)界研究的主流。

          2) 傳統(tǒng)的跟蹤方式有在線跟蹤(Online)與離線跟蹤(Offline)兩種。在線跟蹤算法中,只能使用當(dāng)前幀及之前幀的信息來進(jìn)行當(dāng)前幀的跟蹤。而在離線跟蹤算法中則沒有了這個(gè)限制,對每一幀的預(yù)測,都可以使用整個(gè)視頻的信息,這樣更容易獲得一個(gè)全局最優(yōu)解。兩種方式各有優(yōu)劣,一般視應(yīng)用場合而定,離線跟蹤算法的效果一般會優(yōu)于在線跟蹤算法。而介于這兩者之間,還有一種稱之為接近在線的多目標(biāo)跟蹤算法(NOMT),即可以部分利用未來幀的信息。

          在跟蹤結(jié)果可修改性方面,在線跟蹤是不允許修改以往的跟蹤結(jié)果的。因?yàn)橐坏┬薷?,算法自然就不再符合在線跟蹤原則,從而不能利用未來幀,進(jìn)而變成了Near-Online或者Offline的跟蹤方式。

          需要特別注意,在線跟蹤不等于Real-Time實(shí)時(shí)跟蹤,實(shí)時(shí)跟蹤一定屬于在線跟蹤的,但絕大部分在線跟蹤算法速度還太慢,不足以支持實(shí)時(shí)處理的要求. 尤其是應(yīng)用了深度學(xué)習(xí)的算法,往往需要大量運(yùn)算,對實(shí)時(shí)處理有較大壓力。


          MOT常用評價(jià)標(biāo)準(zhǔn)

          表1.?常用評價(jià)指標(biāo)


          此外,還有兩種評價(jià)方式CLEAR MOT Metrics與ID Scores,這里不做詳細(xì)介紹。


          MOT的難點(diǎn)


          MOT最常用的類別是Tracking-By-DetectionOnline,對應(yīng)的算法處理步驟:

          圖1 MOT算法處理步驟


          其中,有兩個(gè)難點(diǎn):
          1)遮擋,這也是ID交換和軌跡分段的主要原因;
          2)兩個(gè)軌跡非??拷?,ID容易匹配不準(zhǔn),出現(xiàn)錯(cuò)位或丟失。
          ?
          目前所有目標(biāo)追逐算法都圍繞著這兩大難點(diǎn)進(jìn)行優(yōu)化,優(yōu)化的方向圍繞著這四個(gè)步驟,如:運(yùn)用Private Dataset,挑選合適檢測模型,提升檢測精度;特征提取不局限于一般的CNN,還有Siamese Network等網(wǎng)絡(luò);特征間的相似度,不再是簡單的Distance Metric,也開始運(yùn)用CNN、RNN、LSTM等;數(shù)據(jù)關(guān)聯(lián)匹配除了傳統(tǒng)經(jīng)典的Hungarian Algorithm,也可以當(dāng)作圖優(yōu)化的問題處理。
          ?
          常用的效果較好的有以下幾種(詳細(xì)介紹見“二”節(jié)):
          • Sort(Simple nline and real time tracking)

          • Deep Sort(Deep simple online and realtime tracking)

          • FairMot(A simple baseline for multi-object tracking)

          • Graphnn Multi-object Trachking。(后面簡寫為Graphnn-mot)



          二、典型的追蹤算法介紹??


          1. SortDeep Sort
          Sort和Deep Sort[9]是經(jīng)典的追蹤算法之一,算法原理流程圖如下:

          圖2.?Deep Sort算法的簡單流程圖


          如上圖,算法模塊,根據(jù)目前MOT常用的算法步驟:a.檢測, b.特征提取、軌跡預(yù)測, c.計(jì)算相似度,d.數(shù)據(jù)匹配,Deep Sort算法就這四個(gè)步驟,按序簡介涉及到的核心知識點(diǎn)五個(gè):Setection、ReID model、Kalman Filter、iou與余弦/馬氏距離、Hungarian Algorithm。

          Detection:常用的檢測網(wǎng)絡(luò),如Faster Rcnn、Yolov4、SSD等,可根據(jù)實(shí)際項(xiàng)目對精度或時(shí)間的要求挑選。本文復(fù)現(xiàn)時(shí),上面的幾種網(wǎng)絡(luò)都有嘗試,源代碼使用了商湯的mmdetection框架下的cascade-rcnn,但項(xiàng)目考慮時(shí)間和精度,最終使用了Yolov4[3]作為檢測來源。

          ReID model:源代碼使用了多重粒度網(wǎng)絡(luò)(Mutiple Granularity Network),是以Resnet50作為backbone,以Softmax_2048分支作為id特征??紤]到2048維特征過大,數(shù)據(jù)關(guān)聯(lián)時(shí),時(shí)間會比較長,所以一般項(xiàng)目上會采用MobileNetv2[4]作為主干網(wǎng)絡(luò),id特征維度可以下降到751,減少運(yùn)算量。

          Kalman Filter:卡爾曼濾波,預(yù)測confirmed id在下一幀的中心點(diǎn)位置以及box的size。
          iou與余弦距離:用于計(jì)算數(shù)據(jù)匹配的代價(jià)矩陣。1-iou的值作為box間的距離值,余弦距離函數(shù)值作為id特征值間的距離。

          Hungarian Algorithm:匈牙利匹配算法用于目標(biāo)預(yù)測與目標(biāo)檢測的關(guān)聯(lián)匹配,確定目標(biāo)的軌跡。

          相比之下,Sort算法比起Deep sort算法少了ReID model與余弦距離判斷,所以ID切換的過于頻繁,精度要低很多。速度幾乎只取決于Detection模型的預(yù)測速度。如果對速度要求很高的,可以考慮用sort算法。
          ?
          2.?FairMot
          FairMot追蹤算法[10],算法處理流程圖如下:

          圖3.?FairMot算法的簡單流程圖


          FairMot算法重點(diǎn)突破
          a. 比起之前兩步(先檢測后Re-ID)的追蹤算法,FairMot完成檢測與Re-ID共享網(wǎng)絡(luò)參數(shù),減少算法推理時(shí)間,速度大幅度提升。

          b. 比起之前單步的追蹤算法JDE[12],存在的一些不足,如:一個(gè)物體可能被多個(gè)anchor負(fù)責(zé)并進(jìn)行檢測,或?qū)嶋H物體的中心可能與負(fù)責(zé)對該物體進(jìn)行檢測的anchor中心有偏差,都會導(dǎo)致id頻繁變換。Fairmot針對這些不足,不用anchor-based的檢測方式,以anchor-free目標(biāo)檢測范式代替。

          涉及到的核心知識點(diǎn):一個(gè)有效簡潔的網(wǎng)絡(luò)結(jié)構(gòu)DLA34、Kalman Filter、iou與余弦距離、Hungarian Algorithm。下面詳細(xì)介紹DLA34網(wǎng)絡(luò),至于Kalman,Distance Metrixes, Hungarian AlgorithmDeep Sort的內(nèi)容一致,這里不多做解釋。

          FairMot旨在將檢測與Re-ID揉在一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)里,且需要是anchor-free的目標(biāo)檢測方式,所以DLA34網(wǎng)絡(luò)結(jié)構(gòu)必需要預(yù)估目標(biāo)中心點(diǎn)的位置和對應(yīng)目標(biāo)的features。FairMot的網(wǎng)絡(luò)結(jié)構(gòu)圖如下:

          圖4.?FairMot網(wǎng)絡(luò)結(jié)構(gòu)及檢測示意圖


          DLA34backboneResnet34[5],Resnet網(wǎng)絡(luò)結(jié)構(gòu)是里程碑似的出現(xiàn),比起一般的plain network?Resnet直接使用stride=2down sample并且用global average pool層替換全連接層,保持了網(wǎng)絡(luò)的復(fù)雜度,并有效解決了深度網(wǎng)絡(luò)的退化問題。

          DLA34[6]是對Resnet34加強(qiáng),除了Down Sample,還有Up Sample,有點(diǎn)類似FPN[7]的網(wǎng)絡(luò)結(jié)構(gòu),跨層添加features,使得多層融合,跨層stride=4。

          heatmap head:用于預(yù)估目標(biāo)中心位置,使用了與focal loss類似的損失函數(shù),詳情推導(dǎo)見源文。

          box offset head:目的是使得預(yù)估的目標(biāo)位置更精準(zhǔn),輔助目標(biāo)中心位置的預(yù)估。box size head:對每個(gè)預(yù)估了的目標(biāo)中心,預(yù)估其對應(yīng)的box的長和寬。offsetsize兩個(gè)頭加入在一個(gè)l1 loss函數(shù)里面。

          Re-ID branch:一個(gè)分類任務(wù),旨在對每個(gè)預(yù)估出的目標(biāo)中心產(chǎn)生64維的features,通過features用于后續(xù)計(jì)算前后幀的目標(biāo)的相似度。使用了通用的softmax損失函數(shù)。

          3.?Graphnn-mot
          Graphnn-mot算法[11],簡單流程圖如下:

          圖5.?Graphnn-mot算法的處理流程


          Graphnn-mot是基于圖神經(jīng)網(wǎng)絡(luò)[8]的離線MOT,利用圖結(jié)構(gòu)同時(shí)執(zhí)行特征提取和數(shù)據(jù)關(guān)聯(lián)匹配,提出了時(shí)間感知信息傳遞網(wǎng)絡(luò)對節(jié)點(diǎn)和連接邊信息的更新。

          涉及到的核心知識點(diǎn):圖構(gòu)造、特征編碼、信息傳遞、軌跡預(yù)測。

          圖構(gòu)造:對需檢測的所有圖片(圖片之間要有時(shí)間關(guān)聯(lián),最好是視頻),進(jìn)行目標(biāo)檢測。構(gòu)建圖,其中節(jié)點(diǎn)對應(yīng)檢測目標(biāo),邊對應(yīng)檢測目標(biāo)之間的連接。對圖中的每條邊引入了一個(gè)二元變量,如果某些邊連接了屬于同一條跟蹤軌跡且在同一條跟蹤軌跡上是時(shí)間連續(xù)的節(jié)點(diǎn),那么其標(biāo)簽為1,否則為0。一個(gè)節(jié)點(diǎn)不會屬于超過一個(gè)跟蹤軌跡。論文提出直接學(xué)習(xí)預(yù)測圖中的哪條邊被激活,即邊上的二元變量的最終值,為此將這個(gè)任務(wù)視為邊上的二分類任務(wù),標(biāo)簽就是二元變量值y。

          特征編碼:在邊界框圖像上應(yīng)用一個(gè)卷積神經(jīng)網(wǎng)絡(luò),初始化節(jié)點(diǎn)的外觀特征嵌入。對于每一條邊也就是不同幀的每一對檢測,我們計(jì)算一個(gè)具有編碼了他們的邊界框之間的相對大小,位置以及時(shí)間差的特征的向量。然后將其輸入到一個(gè)多層感知器中得到邊的幾何嵌入。

          信息傳遞:我們在整個(gè)圖上執(zhí)行了一系列的信息傳遞步驟。對于每一輪的信息傳遞,節(jié)點(diǎn)會與他們的連接邊分享外觀信息,邊會與他們的伴隨節(jié)點(diǎn)分享幾何信息。最后,能夠獲得節(jié)點(diǎn)和邊的更新嵌入信息,其包含了依賴于整個(gè)圖結(jié)構(gòu)的高階信息。
          軌跡預(yù)測:根據(jù)最后的所有邊嵌入預(yù)測的連續(xù)的二元結(jié)果,獲得最終的跟蹤軌跡。


          ? ?三、實(shí)際算法測試分析????


          本文對Deep Sort、FairMot、Graphnn-mot算法進(jìn)行橫向測試,并使用追蹤經(jīng)典指標(biāo)評估(見表1),基于MOTChallenge數(shù)據(jù)集實(shí)際測試進(jìn)行評估,評估結(jié)果如下表(測試環(huán)境詳見附錄1):

          表2.?追蹤算法實(shí)際測試的時(shí)間和精度(精度含義見表1)


          如表所示,無論時(shí)間還是精度,Farimot更有優(yōu)勢。影響精度的原因主要是兩個(gè):

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

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


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

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


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

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


          組圖4:graphnn追蹤算法目標(biāo)檢測漏檢示例圖


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


          ? ? 四、總結(jié)?


          對于跟蹤模塊,目前來說更好的解決方案,比如使用MOTDT[13],此算法在DeepSort的基礎(chǔ)上加入了軌跡評分的機(jī)制,目前像FairMOT、JDE使用的跟蹤模塊都是MOTDT,從精度和速度上此算法表現(xiàn)都是較優(yōu)的。
          圖神經(jīng)網(wǎng)絡(luò)在追蹤上的運(yùn)用,還處于剛起步階段。屬于離線跟蹤算法之一,而且目標(biāo)檢測與ReID檢測結(jié)果沒有進(jìn)行融合,所以速度方面,沒有太大優(yōu)勢。
          對于實(shí)際項(xiàng)目來說,對綜合目標(biāo)跟蹤效果影響最大的因素是目標(biāo)檢測的精確度,相對于公共數(shù)據(jù)集,當(dāng)使用實(shí)際項(xiàng)目的數(shù)據(jù)集時(shí),使用的目標(biāo)檢測精度提升后,實(shí)際跟蹤效果能達(dá)到比較理想的水平。? ? ? ?


          參考文獻(xiàn)

          [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.00596

          [9] Simple Online and Realtime Tracking with a Deep Association Metric.?https://arxiv.org/pdf/1703.07402.pdf

          [10] FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking.https://arxiv.org/pdf/2004.01888.pdf

          [11] Learning a Neural Solver for Multiple Object Tracking.?https://arxiv.org/pdf/1912.07515.pdf

          [12] Towards Real-Time Multi-object tracking. ?https://arxiv.org/pdf/1909.12605v1.pdf

          [13] Real-Time Multi People Tracking with Deeply Learned Candidate Selection and Person Re-Identification. ?https://arxiv.org/abs/1809.04427?

          [14]?http://www.deepexi.com/

          ?

          附錄

          1. 測試條件與環(huán)境

          環(huán)境配置:

          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

          數(shù)據(jù)集:

          public dataset: MOT2017-MOT2020 crowdhuman 用于detection模型訓(xùn)練和測試

          CUHK03 Market1501 DukeMTMC-reID MSMT17用于reID模型訓(xùn)練??? ? ? ?


          瀏覽 64
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  A片免费在线观看 | 男女一级黄片 | 激情AV福利 | 就爱添逼视频免费网站 | 久久婷婷六月综合综 |