多目標跟蹤:AI產品經理需要了解的CV通識

0 評論 8065 瀏覽 47 收藏 16 分鐘

多目標跟蹤的主要任務是找到圖像序列中運動的物體,并將不同幀的運動物體一一對應,最后給出不同物體的運動軌跡。

多目標跟蹤(MOT, Multiple Object Tracking):多目標跟蹤是CV領域一個熱門方向,廣泛應用于機器人導航、智能監控視頻、工業檢測、航空航天等領域。主要任務是找到圖像序列中運動的物體,并將不同幀的運動物體一一對應,最后給出不同物體的運動軌跡。

一、術語了解

  • 檢測:定位目標在圖像中的位置。檢測方法很多,例如幀間差分法、背景減除法、光流法等等;另外,檢測常與識別結合。
  • 跟蹤:在連續圖像序列中完成對目標的檢測,并把物理意義下同一目標相關聯。
  • 軌跡(Trajectory):一條軌跡對于這一目標在一段時間內的位置序列;是多目標跟蹤系統的輸出量。
  • 數據關聯:用于解決目標間的匹配問題;是多目標跟蹤的核心問題。
  • 跟蹤置信度:跟蹤算法反應每一次跟蹤的可靠程度。

二、技術流程詳解

1、圖像采集

多目標跟蹤對于圖像采集要求評估的因素與人臉識別差別不大。詳見上一篇文章《人臉識別:AI產品經理需要了解的CV通識》。

2、圖像預處理

典型的圖像預處理方法是直方圖均衡和濾波。

1)直方圖均衡

直方圖描述了一副圖像的灰度級內容,而直方圖均衡化的主要目的,是為了提高對比度和灰度色調的變化,使圖像更加清晰。

2)濾波

圖像濾波的主要目的是,在保持圖像特征的情況下進行噪聲消除,具體可以分為線性濾波和非線性濾波。非線性濾波相比線性濾波來說,更能保護圖像細節。

3、基于深度學習的多目標檢測識別

目標檢測的實質是多目標的定位,即要在圖片中定位多個目標物體。

例如下圖,既要定位各個目標,還需要將不同目標用不同顏色的框表示。

(By 深思考人工智能)

1)基于深度學習的目標檢測算法:YOLO、YOLOv2、YOLO9000

YOLO(You Only Look Once)是基于深度學習方法的端到端實時目標檢測系統。YOLO的升級版有兩種:YOLOv2和YOLO9000。YOLO9000可以識別超過9000類別。

YOLO對圖片的處理步驟主要分為三個部分:

  • 將圖片縮放到448*448大小
  • 運行卷積網絡
  • 設置模型置信度閾值,輸出結果

(By 代碼學習者coding)

2)基于深度學習的目標檢測算法:SSD

SSD(Single Shot MultiBOX Detector),截止目前是主要的檢測框架之一,相比Fast-RNN速度更快;相比YOLO有明顯的mAP優勢(mAP:平均正確率),但不及YOLO9000。

SSD缺點:

  • 調試過程非常依賴經驗
  • 檢測小目標的召回率值不是很高

3)YOLO和SSD效果比較

(By 代碼學習者coding)

從圖上可以看出,YOLO漏檢率較高,SSD相對來說表現較好。

4)目標檢測識別相關指標

首先我們了解一下AP(平均正確率)

平均正確率:precision/recall曲線下方圍成的曲面面積,如下圖:

其中橫坐標是recall,縱坐標是precision。AP是這個曲線下的面積,而mAP就是多個類別AP的平均值,這個值介于0到1之間,且越大越好。

  • 檢測響應:檢測過程的輸出量。
  • 識別效率:識別的速度。相對應選擇效率極大化的迭代算法。
  • 交并比(IoU):可以理解為系統預測出來的框與原來圖中標記框的重合程度,最理想的情況是完全重疊,即比值為1。

計算公式:

4、多目標跟蹤

下圖中的曲線是該目標的跟蹤路徑,圖中線條即代表各個目標的軌跡。

目前跟蹤的困難點:

a.遮擋、目標消失后再出現,會有丟失目標的現象;

b.相似目標容易被當成同一目標;

由于以上原因,在實際場景里多目標跟蹤可能會發生人員重復檢測、漏檢、同一目標多條軌跡等情況。如果需求對人員統計非常嚴格,可以考慮由其他方案完成。多目標跟蹤應用于一個區域(一個攝像頭畫面內),計算該區域內的目標數以及目標跟蹤這樣的場景會更好。

三、多目標跟蹤的應用場景

目標識別常用來確定某畫面或視頻中包含什么物體、各個物體在什么位置、各個物體的軌跡。因此常用于監控,人機交互和虛擬現實的場景。

1)人員檢測:計算畫面中行人的數目,并確定其位置。

應用場景:

a.可用于計算區域人員密度過高告警。

產品功能考慮:在監控畫面對區域進行劃分,并對人員密度(梳理)進行設置。閾值的設置可以考慮和時間結合,在某一段時間內超過某閾值即可告警。

利用本算法進行人員計算的缺點是如果發生目標丟失,會將同一人的兩個狀態識別為兩個人,使得真實數目與檢測數目誤差大。

b.可用于范圍監測告警(越界監測):例如闖紅燈、翻墻等事件。

產品功能考慮:在監控地圖里設置關注區域,當關注區域一旦出現人/車/其他物體,則可立即實現告警。特別適合對入侵行為需要重點防范的場合,比如展館、監獄、禁區等地。

c.異常行為檢測:目標突然發生劇烈變化,如打架斗毆等行為。

產品功能考慮:對目標設定異常行為檢測,當出現異常行為時即可告警。異常行為檢測適合在對異常行為有需要重點防范的場合,比如學校、公共區域等地方。

2)車輛識別:計算畫面中車輛的數目,并確定其位置。

還可以和車型識別、車顏色識別、車輛逆流檢測等結合。實現對車輛特點的全識別。

應用場景:

a.可用于交通疏散,針對有可能發生擁堵的區域提前進行部署。

b.可用于追蹤黑名單車輛:車輛檢測可識別車輛類型、車輛顏色等等,這些信息均可用來定位目標。

c.防車輛套牌方案:車輛識別和車牌識別結合,防止車輛套牌案件發生

3)應用于智能駕駛方案:目標識別和場景分割、SLAM結合,可識別出道路路況,提供智能駕駛所需要的路邊物體信息。

四、多目標跟蹤監控產品系統分析

多目標跟蹤監控類的產品現在已經有不少,拿商湯的軟件產品作為典型例子:

1、產品功能分析

產品的功能主要有以下內容:攝像頭個數、行人人次、非機動車車次、機動車車次、告警次數、監控畫面、目標抓拍。

我們從大的劃分來看,主要是四塊:設備、統計、監控、抓拍。除了這四塊之外,根據經驗我們還需要考慮到歷史的分析和檢索。

1)設備

商湯的產品只體現了設備的數目,而更重要的是設備的篩選功能。其實設備的控制非常復雜,我們常常為了監控攝像頭的狀態設計一個新的管理系統。在另外一個設備的管理系統中,我們需要跟蹤設備的使用狀態,設備的詳細信息(對應的攝像頭編號位置等),以及攝像頭的定位。

2)統計

統計除了上例時間段的統計之外,還可以進行某一時刻某一區域上的目標統計。某一時刻的統計的意義比時間段統計在一些特定需求上更為重要。特別是某時刻目標數如果超過閾值,跟告警系統匹配,能夠捕捉群體行為。某時刻的目標數目是否超過設定閾值,是多目標最常見的需求,也是典型應用之一。

3)監控

監控界面結合了多種類別的識別:例如行人的性別、頭發長短、衣物類型等等。這也是多目標最“酷炫”的一部分,人們常常被系統的自動識別吸引。多目標在前端的表示常常是一個Boxing加一條尾巴,即目標的定位和軌跡。而目標旁的標簽(屬性),則是多目標識別和其他垂直方向識別的結合。

產品在這塊有兩部分工作:

a.跟進多目標的漏檢率以及IoU,以及思考同一管道多種屬性識別的結合,以應對不同場景需求。更偏向技術類。

b.關注監控系統的流暢性和穩定性。更偏向業務類。

4)抓拍

抓拍也是體現多目標價值的典型功能之一。抓拍能將監控中的目標單獨地隔離出來,這是后續檢索目標功能實現的前提。抓拍到的圖片在界面展示時可利用緩存,之后建議存儲至云端。

5)歷史

a.搜索:跟普通搜索系統相比,多目標系統必不可少的一個功能一定是圖片檢索。在系統中利用文字(與多目標的標簽關聯)或圖片進行圖片檢索,能更容易查找到目標。

b.分析:利用大數據技術,對歷史的人流、車流、告警記錄進行分析,有利于目標管控和后期閾值設置。

2、產品系統分析

1)實時性

監控系統最重要的一點是實時性,相比于普通監控產品,AI監控系統對設備硬件的要求更高。圖像處理速度和網速需要被綜合評估,監控系統的延時現象需要控制在用戶可接受范圍內。

2)耦合性

AI監控系統鏈路長、設計到的子系統眾多,因此在產品架構設計上需要考慮到程序之間的耦合性。耦合程度太高會使系統的升級更新與維護更加困難。

3)穩定性

這里的穩定性不僅包括外界環境的影響,還有系統自身算法更新、程序更新對系統的影響。特別是算法更新,不僅需要在指標上有所提高,還需要具有一定兼容性。算法更新常常導致程序短時間內無法使用,所以每一次算法替換都需要謹慎考慮。

以上所有內容,就是本次對多目標跟蹤的梳理。文章參考了大量文獻,也結合了本人的實戰項目經驗,希望能通過這樣體系化的梳理讓大家有所收獲。

PS:非常感謝@黃釗hanniman 對本文作出的指導。黃釗hanniman:圖靈機器人-人才戰略官,前騰訊產品經理,5年AI實戰經驗,8年互聯網背景,微信公眾號/知乎/在行ID“hanniman”。

附:參考文章如下

 

作者:Jasmine,微信公眾號:AI產品的自我修養

本文由 @Jasmine 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖由作者提供

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!