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