陳 旋
隨著光纖入戶和5G網(wǎng)絡(luò)的普及,人們從視頻獲取信息的占比越來(lái)越高。視頻與文字、圖片相比,增加了時(shí)間維度,信息從二維提高到了三維。在互聯(lián)網(wǎng)信息監(jiān)測(cè)中,用二維的技術(shù)無(wú)法滿足三維結(jié)構(gòu)的要求,這給新媒體監(jiān)測(cè)提出了新的挑戰(zhàn)。根據(jù)廣播電視監(jiān)測(cè)行業(yè)的特點(diǎn),在每個(gè)階段對(duì)新媒體的監(jiān)測(cè)會(huì)有不同的目標(biāo),且有時(shí)會(huì)有緊急任務(wù),也就是目標(biāo)不固定、樣本少、時(shí)間緊。若單純使用人工播放并觀看的方式進(jìn)行監(jiān)測(cè),將嚴(yán)重消耗人力,成為新媒體監(jiān)測(cè)的難點(diǎn)。為了解決這個(gè)問(wèn)題,需要研究當(dāng)今計(jì)算機(jī)視覺(jué)的最新成果,并結(jié)合廣播電視行業(yè)的特點(diǎn),找出適合業(yè)務(wù)要求的監(jiān)測(cè)方法,最終實(shí)現(xiàn)機(jī)器自動(dòng)監(jiān)測(cè),達(dá)到解放人力和減少網(wǎng)絡(luò)信息危害的目的。
本文主要研究在一個(gè)視頻流中快速發(fā)現(xiàn)指定目標(biāo)的監(jiān)測(cè)過(guò)程,例如,在視頻流中找到特定的標(biāo)志、植物等。此過(guò)程不同于人臉識(shí)別技術(shù),識(shí)別目標(biāo)對(duì)象沒(méi)有一個(gè)固定的分類,也沒(méi)有固定的特征,不同種類的目標(biāo)具有不同的形狀、紋理、色彩、背景等特征。視頻流是由一幀一幀的畫面組合而成的,在視頻流中找到目標(biāo)也就是要在每一幀畫面中找到目標(biāo)。為了便于區(qū)分,目標(biāo)識(shí)別定義為在視頻流中找目標(biāo),而目標(biāo)檢測(cè)定義為在一幀畫面中找目標(biāo)。目標(biāo)識(shí)別是目標(biāo)檢測(cè)的集合。目標(biāo)檢測(cè)最終會(huì)得到兩個(gè)結(jié)果,即目標(biāo)的定位以及目標(biāo)的分類。目標(biāo)的定位是指在畫面中預(yù)測(cè)出目標(biāo)的位置,也就是目標(biāo)的坐標(biāo)值、高和寬;目標(biāo)的分類是指正確判斷出目標(biāo)的所屬類型。
隨著計(jì)算機(jī)視覺(jué)科技的發(fā)展,目標(biāo)檢測(cè)技術(shù)先后發(fā)展出了兩類檢測(cè)模型。一類稱為two-stage模型。這一類模型檢測(cè)需要兩個(gè)步驟,先對(duì)物體進(jìn)行定位,然后再對(duì)物體做識(shí)別。這類模型的經(jīng)典算法是R-CNN。該模型利用了選擇性搜索(Selective Search)算法進(jìn)行相鄰子塊的特征相似度評(píng)測(cè),對(duì)相似圖像區(qū)域打分以及合并,從而獲取出感興趣區(qū)域的候選框。這些候選框被輸入到卷積神經(jīng)網(wǎng)絡(luò)提取出圖像特征,再由支持向量機(jī)進(jìn)行特征向量分類,最后做邊框回歸,最終完成目標(biāo)檢測(cè)及定位。two-stage模型最大的缺點(diǎn)是算法性能較低,不能滿足實(shí)時(shí)要求。這源于需要對(duì)每一個(gè)生成的候選區(qū)域進(jìn)行特征提取,存在大量的重復(fù)運(yùn)算。雖然在R-CNN基礎(chǔ)上做了一些改進(jìn),推出了fast R-CNN和faster R-CNN,但還遠(yuǎn)遠(yuǎn)滿足不了人們對(duì)實(shí)時(shí)性能的要求。另外一種稱為one-stage模型。該類模型把兩個(gè)步驟優(yōu)化成一個(gè)步驟,大大減少了計(jì)算量。YOLO模型是該類模型的杰出代表。
YOLO是You Only Look Once的英文縮寫,包含著快速檢測(cè)的意義。經(jīng)過(guò)對(duì)比測(cè)試,YOLO模型在達(dá)到faster R-CNN同等準(zhǔn)確率的情況下,表現(xiàn)出更高的識(shí)別速度,可以達(dá)到實(shí)時(shí)性的要求。
YOLO模型與其他計(jì)算機(jī)視覺(jué)領(lǐng)域的模型一樣,也是充分利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)的研究成果,并對(duì)R-CNN家族算法做了架構(gòu)上的優(yōu)化統(tǒng)一。YOLO模型也創(chuàng)新了檢測(cè)思路,它將目標(biāo)檢測(cè)作為回歸任務(wù)來(lái)解決,實(shí)現(xiàn)了端對(duì)端(end-to-end)的檢測(cè),性能上得到了顯著提高。
模型進(jìn)行學(xué)習(xí)訓(xùn)練時(shí),YOLO模型先將輸入的圖片分割成S×S的網(wǎng)格,每個(gè)網(wǎng)格單元負(fù)責(zé)檢測(cè)中心點(diǎn)落在該網(wǎng)格單元內(nèi)的目標(biāo)。如圖1所示,目標(biāo)對(duì)象為一只小狗,其背景是樹(shù)木和草地。小狗的中心點(diǎn)位于圖像的中間位置,也就是加粗的小方格內(nèi),因此該網(wǎng)格單元將完成這個(gè)小狗的預(yù)測(cè)。每個(gè)單元格會(huì)預(yù)測(cè)B個(gè)邊框的坐標(biāo)值、高和寬,同時(shí)也給出邊框的置信度值。YOLO模型的網(wǎng)絡(luò)結(jié)構(gòu)參考了GooLeNet模型,包含了24個(gè)卷積層和2個(gè)全連接層。
圖1 YOLO原理圖
模型在進(jìn)行預(yù)測(cè)時(shí),每個(gè)網(wǎng)格單元格都參與預(yù)測(cè)。每個(gè)網(wǎng)格單元格預(yù)測(cè)B個(gè)邊框,因此會(huì)有B個(gè)邊框置信度值,整個(gè)畫面將產(chǎn)生S×S×B個(gè)預(yù)測(cè)框,且每個(gè)預(yù)測(cè)框給出C個(gè)目標(biāo)類別的概率值。通過(guò)閾值選出概率值高的預(yù)測(cè)框,再通過(guò)非極大值抑制算法(non maximum suppression,NMS)篩選出符合度最高的邊框。
為了量化目標(biāo)監(jiān)測(cè)的效果,需要定義相關(guān)指標(biāo)參數(shù)。平均準(zhǔn)確度均值mAP(mean average precision)是目標(biāo)檢測(cè)的常用評(píng)價(jià)標(biāo)準(zhǔn),用于衡量識(shí)別精度。mAP應(yīng)用于多類目標(biāo)的檢測(cè),每一個(gè)類別存在一個(gè)AP值,多個(gè)目標(biāo)時(shí)取其加權(quán)平均,也就是mAP。AP是查準(zhǔn)率(P值,Precision)和查全率(R 值,Recall)綜合考慮的值。查準(zhǔn)率是指模型判為目標(biāo)的結(jié)果中實(shí)際也正確的比率,查全率是指模型判斷正確的數(shù)量占該類樣本總數(shù)的比率。比如模型識(shí)別出10個(gè)目標(biāo),經(jīng)過(guò)人工檢查,這10個(gè)判斷結(jié)果中正確的判斷是8個(gè),那么查準(zhǔn)率為80%;但樣本中卻有16個(gè)是正樣本,因此查全率是50%。AP在幾何上是PR曲線下的曲線面積。準(zhǔn)確率與召回率是反相關(guān)的關(guān)系,也就是增加準(zhǔn)確率時(shí)會(huì)降低召回率,增加召回率意味著會(huì)降低準(zhǔn)確率。結(jié)合廣播電視監(jiān)測(cè)行業(yè)對(duì)視頻快速監(jiān)測(cè)的業(yè)務(wù)要求,通常來(lái)說(shuō)樣本數(shù)是較少的,往往是幾十到一兩百個(gè),且在視頻中判斷出有目標(biāo)存在即可,因此可以適當(dāng)犧牲查全率來(lái)獲得較高的準(zhǔn)確率。
本文假設(shè)以球星梅西作為監(jiān)測(cè)對(duì)象。以人物目標(biāo)作為識(shí)別對(duì)象,一方面是素材容易獲得,另外在難度水平上,人物識(shí)別的難度高于大部分日常監(jiān)測(cè)目標(biāo),可獲得推廣意義。本文將在windows10平臺(tái)下訓(xùn)練和測(cè)試模型,使用YOLO模型的代碼版本為v4。為了加快訓(xùn)練速度且考慮可接受的成本,選用Nivida GeForce GT 730作為GPU設(shè)備。其他相關(guān)軟件版本如下:cuda10.2、cudnn7.6.5、Python3.7、VisualStudio2019、Opencv3.4.0。
(一)數(shù)據(jù)采集。工作中不能采集到很多且場(chǎng)景多樣的樣本,也沒(méi)有足夠時(shí)間進(jìn)行標(biāo)注。根據(jù)這個(gè)特點(diǎn),本次研究只從3段錄像中提取182張圖片。實(shí)踐證明,有意識(shí)地篩選出具有強(qiáng)烈特征區(qū)別的樣本,可以提高準(zhǔn)確度。如清晰反映出梅西的發(fā)型、球服、人臉、動(dòng)作等的樣本。數(shù)據(jù)采集是一件費(fèi)力的事情,為了減輕工作量,可編寫Python腳本。該腳本能夠一邊低速播放,一邊接收鍵盤輸入,按空格鍵將抓取一幀圖片并保存到磁盤目錄中。
(二)數(shù)據(jù)標(biāo)注。實(shí)踐證明,YOLO模型只識(shí)別一個(gè)對(duì)象比識(shí)別多個(gè)對(duì)象準(zhǔn)確度低,這是由于多個(gè)識(shí)別對(duì)象可以相互作為負(fù)樣本,正負(fù)樣本同時(shí)存在可提高精度,因此在標(biāo)注監(jiān)測(cè)目標(biāo)的同時(shí)也多標(biāo)注一類輔助目標(biāo),本文選擇足球?yàn)檩o助目標(biāo)。LabelImg是常用的目標(biāo)標(biāo)注工具,支持多平臺(tái)。根據(jù)8:2的比例生成訓(xùn)練集和測(cè)試集,最終整理出訓(xùn)練所需的訓(xùn)練圖片列表,測(cè)試圖片列表,標(biāo)注文件、文件存放路徑。
(三)網(wǎng)絡(luò)模型訓(xùn)練。本文使用遷移學(xué)習(xí)的方法進(jìn)行網(wǎng)絡(luò)模型訓(xùn)練。遷移學(xué)習(xí)是把已訓(xùn)練好的模型參數(shù)遷移到新的模型中來(lái),起到幫助新模型快速收斂的目的。在樣本少的情況下,該方法顯得很有幫助。實(shí)踐也證明,從已有的類似場(chǎng)景中遷移過(guò)來(lái),花費(fèi)時(shí)間不僅更少且效果更佳。訓(xùn)練經(jīng)歷了4個(gè)小時(shí),loss值降到0.5后結(jié)束訓(xùn)練。
(四)網(wǎng)絡(luò)模型測(cè)試與性能。圖2是模型測(cè)試的效果截圖,可以看到識(shí)別出梅西球星和足球,也給出了概率值??芍庇^地認(rèn)為YOLO模型學(xué)習(xí)到了梅西的球服、膚色、動(dòng)作等綜合特征,而不是單純地以白色球服、人體的輪廓來(lái)判斷。測(cè)試顯示幀率(FPS)在40左右,可以流暢播放。
圖2 視頻測(cè)試
(五)性能和效果分析。通過(guò)運(yùn)行darknet.exedetector map命令可計(jì)算出mAP的值。IoU=0.5時(shí)mAP=87%,IoU=0.7時(shí)mAP=35%,因此在不要求框得十分完整的情況下,可以較好地查找到目標(biāo)。
通過(guò)上述討論,可以得出YOLO模型應(yīng)用于廣播電視監(jiān)測(cè)行業(yè)的視頻監(jiān)測(cè)是可行的,所需樣本的數(shù)量、樣本標(biāo)注的工作量、模型訓(xùn)練的耗時(shí)、設(shè)備的成本等方面都是可接受的。為了減少誤報(bào)率,一方面可以提高閾值,另一方面可采集并標(biāo)注更多的訓(xùn)練樣本(如500張以上且盡可能場(chǎng)景多樣)。本文的研究過(guò)程使用了不同的工具,若能在一個(gè)系統(tǒng)中實(shí)現(xiàn)所有流程,將可以節(jié)約時(shí)間。