多目標跟蹤:AI產品經理需要了解的CV通識
多目標跟蹤的主要任務是找到圖像序列中運動的物體,并將不同幀的運動物體一一對應,最后給出不同物體的運動軌跡。
多目標跟蹤(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)目標檢測識別相關指標
- 精確率:計算方式詳見《人臉識別:AI產品經理需要了解的CV通識》
- 召回率:同上。
- 識別精度:目標檢測中衡量檢測出精度的指標是平均正確率均值mAP(mean average precision)
首先我們了解一下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”。
附:參考文章如下
- 《目標識別》liuheng0111 http://t.cn/RHIkCBe
- 《基于深度學習的目標檢測》代碼學習者coding http://t.cn/RHJjoeo
- 《多目標跟蹤綜述》http://t.cn/RHjvNXc
作者:Jasmine,微信公眾號:AI產品的自我修養
本文由 @Jasmine 原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖由作者提供
- 目前還沒評論,等你發揮!