多目標(biāo)跟蹤(MOT, Multiple Object Tracking)
多目標(biāo)跟蹤是CV領(lǐng)域一個熱門方向,廣泛應(yīng)用于機(jī)器人導(dǎo)航、智能監(jiān)控視頻、工業(yè)檢測、航空航天等領(lǐng)域。主要任務(wù)是找到圖像序列中運(yùn)動的物體,并將不同幀的運(yùn)動物體一一對應(yīng),最后給出不同物體的運(yùn)動軌跡。
一、術(shù)語了解
1、檢測:定位目標(biāo)在圖像中的位置。檢測方法很多,例如幀間差分法、背景減除法、光流法等等;另外,檢測常與識別結(jié)合。
2、跟蹤:在連續(xù)圖像序列中完成對目標(biāo)的檢測,并把物理意義下同一目標(biāo)相關(guān)聯(lián)。
3、軌跡(Trajectory):一條軌跡對于這一目標(biāo)在一段時間內(nèi)的位置序列;是多目標(biāo)跟蹤系統(tǒng)的輸出量。
4、數(shù)據(jù)關(guān)聯(lián):用于解決目標(biāo)間的匹配問題;是多目標(biāo)跟蹤的核心問題。
5、跟蹤置信度:跟蹤算法反應(yīng)每一次跟蹤的可靠程度。
二、技術(shù)流程詳解
1、圖像采集
多目標(biāo)跟蹤對于圖像采集要求評估的因素與人臉識別差別不大。詳見上一篇文章《人臉識別 | AI產(chǎn)品經(jīng)理需要了解的CV通識(二)》。
2、圖像預(yù)處理
典型的圖像預(yù)處理方法是直方圖均衡和濾波。
1)直方圖均衡
直方圖描述了一副圖像的灰度級內(nèi)容,而直方圖均衡化的主要目的,是為了提高對比度和灰度色調(diào)的變化,使圖像更加清晰。
2)濾波
圖像濾波的主要目的是,在保持圖像特征的情況下進(jìn)行噪聲消除,具體可以分為線性濾波和非線性濾波。非線性濾波相比線性濾波來說,更能保護(hù)圖像細(xì)節(jié)。
3、基于深度學(xué)習(xí)的多目標(biāo)檢測識別
目標(biāo)檢測的實(shí)質(zhì)是多目標(biāo)的定位,即要在圖片中定位多個目標(biāo)物體。
例如下圖,既要定位各個目標(biāo),還需要將不同目標(biāo)用不同顏色的框表示。
(By 深思考人工智能)
1)基于深度學(xué)習(xí)的目標(biāo)檢測算法:YOLO、YOLOv2、YOLO9000
YOLO(You Only Look Once)是基于深度學(xué)習(xí)方法的端到端實(shí)時目標(biāo)檢測系統(tǒng)。YOLO的升級版有兩種:YOLOv2和YOLO9000。YOLO9000可以識別超過9000類別。
YOLO對圖片的處理步驟主要分為三個部分:
a.將圖片縮放到448*448大小
b.運(yùn)行卷積網(wǎng)絡(luò)
c.設(shè)置模型置信度閾值,輸出結(jié)果
(By 代碼學(xué)習(xí)者coding)
2)基于深度學(xué)習(xí)的目標(biāo)檢測算法:SSD
SSD(Single Shot MultiBOX Detector),截止目前是主要的檢測框架之一,相比Fast-RNN速度更快;相比YOLO有明顯的mAP優(yōu)勢(mAP:平均正確率),但不及YOLO9000。
SSD缺點(diǎn):
a.調(diào)試過程非常依賴經(jīng)驗(yàn)
b.檢測小目標(biāo)的召回率值不是很高
3)YOLO和SSD效果比較
(By 代碼學(xué)習(xí)者coding)
從圖上可以看出,YOLO漏檢率較高,SSD相對來說表現(xiàn)較好。
4)目標(biāo)檢測識別相關(guān)指標(biāo)
a.精確率:計(jì)算方式詳見《人臉識別 | AI產(chǎn)品經(jīng)理需要了解的CV通識(二)》
b.召回率:同上。
c.識別精度:目標(biāo)檢測中衡量檢測出精度的指標(biāo)是平均正確率均值mAP(mean average precision)
首先我們了解一下AP(平均正確率)
平均正確率:precision/recall曲線下方圍成的曲面面積,如下圖:
其中橫坐標(biāo)是recall,縱坐標(biāo)是precision。AP是這個曲線下的面積,而mAP就是多個類別AP的平均值,這個值介于0到1之間,且越大越好。
d.檢測響應(yīng):檢測過程的輸出量。
e.識別效率:識別的速度。相對應(yīng)選擇效率極大化的迭代算法。
f.交并比(IoU):可以理解為系統(tǒng)預(yù)測出來的框與原來圖中標(biāo)記框的重合程度,最理想的情況是完全重疊,即比值為1。
計(jì)算公式:
4、多目標(biāo)跟蹤
下圖中的曲線是該目標(biāo)的跟蹤路徑,圖中線條即代表各個目標(biāo)的軌跡。
目前跟蹤的困難點(diǎn):
a.遮擋、目標(biāo)消失后再出現(xiàn),會有丟失目標(biāo)的現(xiàn)象;
b.相似目標(biāo)容易被當(dāng)成同一目標(biāo);
由于以上原因,在實(shí)際場景里多目標(biāo)跟蹤可能會發(fā)生人員重復(fù)檢測、漏檢、同一目標(biāo)多條軌跡等情況。如果需求對人員統(tǒng)計(jì)非常嚴(yán)格,可以考慮由其他方案完成。多目標(biāo)跟蹤應(yīng)用于一個區(qū)域(一個攝像頭畫面內(nèi)),計(jì)算該區(qū)域內(nèi)的目標(biāo)數(shù)以及目標(biāo)跟蹤這樣的場景會更好。
三、多目標(biāo)跟蹤的應(yīng)用場景
目標(biāo)識別常用來確定某畫面或視頻中包含什么物體、各個物體在什么位置、各個物體的軌跡。因此常用于監(jiān)控,人機(jī)交互和虛擬現(xiàn)實(shí)的場景。
1)人員檢測:計(jì)算畫面中行人的數(shù)目,并確定其位置。
應(yīng)用場景:
a.可用于計(jì)算區(qū)域人員密度過高告警。
產(chǎn)品功能考慮:在監(jiān)控畫面對區(qū)域進(jìn)行劃分,并對人員密度(梳理)進(jìn)行設(shè)置。閾值的設(shè)置可以考慮和時間結(jié)合,在某一段時間內(nèi)超過某閾值即可告警。
利用本算法進(jìn)行人員計(jì)算的缺點(diǎn)是如果發(fā)生目標(biāo)丟失,會將同一人的兩個狀態(tài)識別為兩個人,使得真實(shí)數(shù)目與檢測數(shù)目誤差大。
b.可用于范圍監(jiān)測告警(越界監(jiān)測):例如闖紅燈、翻墻等事件。
產(chǎn)品功能考慮:在監(jiān)控地圖里設(shè)置關(guān)注區(qū)域,當(dāng)關(guān)注區(qū)域一旦出現(xiàn)人/車/其他物體,則可立即實(shí)現(xiàn)告警。特別適合對入侵行為需要重點(diǎn)防范的場合,比如展館、監(jiān)獄、禁區(qū)等地。
c.異常行為檢測:目標(biāo)突然發(fā)生劇烈變化,如打架斗毆等行為。
產(chǎn)品功能考慮:對目標(biāo)設(shè)定異常行為檢測,當(dāng)出現(xiàn)異常行為時即可告警。異常行為檢測適合在對異常行為有需要重點(diǎn)防范的場合,比如學(xué)校、公共區(qū)域等地方。
2)車輛識別:計(jì)算畫面中車輛的數(shù)目,并確定其位置。
還可以和車型識別、車顏色識別、車輛逆流檢測等結(jié)合。實(shí)現(xiàn)對車輛特點(diǎn)的全識別。
應(yīng)用場景:
a.可用于交通疏散,針對有可能發(fā)生擁堵的區(qū)域提前進(jìn)行部署。
b.可用于追蹤黑名單車輛:車輛檢測可識別車輛類型、車輛顏色等等,這些信息均可用來定位目標(biāo)。
c.防車輛套牌方案:車輛識別和車牌識別結(jié)合,防止車輛套牌案件發(fā)生
3)應(yīng)用于智能駕駛方案:目標(biāo)識別和場景分割、SLAM結(jié)合,可識別出道路路況,提供智能駕駛所需要的路邊物體信息。
四、多目標(biāo)跟蹤監(jiān)控產(chǎn)品系統(tǒng)分析
多目標(biāo)跟蹤監(jiān)控類的產(chǎn)品現(xiàn)在已經(jīng)有不少,拿商湯的軟件產(chǎn)品作為典型例子:
1、產(chǎn)品功能分析
產(chǎn)品的功能主要有以下內(nèi)容:攝像頭個數(shù)、行人人次、非機(jī)動車車次、機(jī)動車車次、告警次數(shù)、監(jiān)控畫面、目標(biāo)抓拍。
我們從大的劃分來看,主要是四塊:設(shè)備、統(tǒng)計(jì)、監(jiān)控、抓拍。除了這四塊之外,根據(jù)經(jīng)驗(yàn)我們還需要考慮到歷史的分析和檢索。
1)設(shè)備
商湯的產(chǎn)品只體現(xiàn)了設(shè)備的數(shù)目,而更重要的是設(shè)備的篩選功能。其實(shí)設(shè)備的控制非常復(fù)雜,我們常常為了監(jiān)控?cái)z像頭的狀態(tài)設(shè)計(jì)一個新的管理系統(tǒng)。在另外一個設(shè)備的管理系統(tǒng)中,我們需要跟蹤設(shè)備的使用狀態(tài),設(shè)備的詳細(xì)信息(對應(yīng)的攝像頭編號位置等),以及攝像頭的定位。
2)統(tǒng)計(jì)
統(tǒng)計(jì)除了上例時間段的統(tǒng)計(jì)之外,還可以進(jìn)行某一時刻某一區(qū)域上的目標(biāo)統(tǒng)計(jì)。某一時刻的統(tǒng)計(jì)的意義比時間段統(tǒng)計(jì)在一些特定需求上更為重要。特別是某時刻目標(biāo)數(shù)如果超過閾值,跟告警系統(tǒng)匹配,能夠捕捉群體行為。某時刻的目標(biāo)數(shù)目是否超過設(shè)定閾值,是多目標(biāo)最常見的需求,也是典型應(yīng)用之一。
3)監(jiān)控
監(jiān)控界面結(jié)合了多種類別的識別:例如行人的性別、頭發(fā)長短、衣物類型等等。這也是多目標(biāo)最“酷炫”的一部分,人們常常被系統(tǒng)的自動識別吸引。多目標(biāo)在前端的表示常常是一個Boxing加一條尾巴,即目標(biāo)的定位和軌跡。而目標(biāo)旁的標(biāo)簽(屬性),則是多目標(biāo)識別和其他垂直方向識別的結(jié)合。
產(chǎn)品在這塊有兩部分工作:
a.跟進(jìn)多目標(biāo)的漏檢率以及IoU,以及思考同一管道多種屬性識別的結(jié)合,以應(yīng)對不同場景需求。更偏向技術(shù)類。
b.關(guān)注監(jiān)控系統(tǒng)的流暢性和穩(wěn)定性。更偏向業(yè)務(wù)類。
4)抓拍
抓拍也是體現(xiàn)多目標(biāo)價值的典型功能之一。抓拍能將監(jiān)控中的目標(biāo)單獨(dú)地隔離出來,這是后續(xù)檢索目標(biāo)功能實(shí)現(xiàn)的前提。抓拍到的圖片在界面展示時可利用緩存,之后建議存儲至云端。
5)歷史
a.搜索:跟普通搜索系統(tǒng)相比,多目標(biāo)系統(tǒng)必不可少的一個功能一定是圖片檢索。在系統(tǒng)中利用文字(與多目標(biāo)的標(biāo)簽關(guān)聯(lián))或圖片進(jìn)行圖片檢索,能更容易查找到目標(biāo)。
b.分析:利用大數(shù)據(jù)技術(shù),對歷史的人流、車流、告警記錄進(jìn)行分析,有利于目標(biāo)管控和后期閾值設(shè)置。
2、產(chǎn)品系統(tǒng)分析
1)實(shí)時性
監(jiān)控系統(tǒng)最重要的一點(diǎn)是實(shí)時性,相比于普通監(jiān)控產(chǎn)品,AI監(jiān)控系統(tǒng)對設(shè)備硬件的要求更高。圖像處理速度和網(wǎng)速需要被綜合評估,監(jiān)控系統(tǒng)的延時現(xiàn)象需要控制在用戶可接受范圍內(nèi)。
2)耦合性
AI監(jiān)控系統(tǒng)鏈路長、設(shè)計(jì)到的子系統(tǒng)眾多,因此在產(chǎn)品架構(gòu)設(shè)計(jì)上需要考慮到程序之間的耦合性。耦合程度太高會使系統(tǒng)的升級更新與維護(hù)更加困難。
3)穩(wěn)定性
這里的穩(wěn)定性不僅包括外界環(huán)境的影響,還有系統(tǒng)自身算法更新、程序更新對系統(tǒng)的影響。特別是算法更新,不僅需要在指標(biāo)上有所提高,還需要具有一定兼容性。算法更新常常導(dǎo)致程序短時間內(nèi)無法使用,所以每一次算法替換都需要謹(jǐn)慎考慮。
以上所有內(nèi)容,就是本次對多目標(biāo)跟蹤的梳理。文章參考了大量文獻(xiàn),也結(jié)合了本人的實(shí)戰(zhàn)項(xiàng)目經(jīng)驗(yàn),希望能通過這樣體系化的梳理讓大家有所收獲。也非常歡迎大家和我溝通對多目標(biāo)跟蹤的見解和看法,可以關(guān)注我的公眾號“AI產(chǎn)品的自我修養(yǎng)”,記得留言給我哦~
PS:非常感謝@黃釗hanniman 對本文作出的指導(dǎo)。黃釗hanniman,圖靈機(jī)器人-人才戰(zhàn)略官,前騰訊產(chǎn)品經(jīng)理,5年AI實(shí)戰(zhàn)經(jīng)驗(yàn),8年互聯(lián)網(wǎng)背景,微信公眾號/知乎/在行ID“hanniman”,飯團(tuán)“AI產(chǎn)品經(jīng)理大本營”(http://fantuan.guokr.net/groups/219/),分享人工智能相關(guān)原創(chuàng)干貨。
附:參考文章如下
來源:互聯(lián)網(wǎng)產(chǎn)品研究中心