唐濤 劉鈺杰 唐岑 韓子軒 郭玉祥
(西南交通大學(xué) 四川省成都市 610000)
目前圖像信息的獲取、加工和應(yīng)用技術(shù)發(fā)揮著越來(lái)越重要的作用,例如行人、車(chē)輛等運(yùn)動(dòng)目標(biāo)檢測(cè)技術(shù)廣泛應(yīng)用于導(dǎo)航、監(jiān)控領(lǐng)域,鷹眼技術(shù)在排球、網(wǎng)球等體育賽事上的應(yīng)用愈發(fā)成熟等。但是目前的監(jiān)控、回放設(shè)備十分精密復(fù)雜,使用成本高昂。本文結(jié)合現(xiàn)狀研究了一種基于計(jì)算機(jī)視覺(jué)的運(yùn)動(dòng)物體的檢測(cè)與識(shí)別技術(shù),實(shí)現(xiàn)運(yùn)動(dòng)物體的智能檢測(cè)與識(shí)別。
運(yùn)動(dòng)物體的檢測(cè)與跟蹤方法有很多種,例如:GMM混合高斯模型、光流法、Vibe算法以及幀差法。
高斯混合模型(GMM)是對(duì)高斯模型進(jìn)行簡(jiǎn)單的擴(kuò)展,GMM一般使用3~5個(gè)高斯分布疊加作為參數(shù)模型,對(duì)數(shù)據(jù)分布進(jìn)行刻畫(huà)。隨后通過(guò)不斷調(diào)整模型、反復(fù)迭代,可以使采樣概率值與模型概率值的逐漸接近程度,得到較好的擬合模型,進(jìn)而從下一幀開(kāi)始檢測(cè)背景點(diǎn)與運(yùn)動(dòng)物體。該方法對(duì)光線(xiàn)變化的適應(yīng)性很強(qiáng),但是存在計(jì)算量大的問(wèn)題,難以實(shí)現(xiàn)實(shí)時(shí)性。
光流法的實(shí)現(xiàn)依托于對(duì)目標(biāo)攜帶的光學(xué)特征的計(jì)算。物體相對(duì)于攝像頭運(yùn)動(dòng)時(shí),灰度的瞬時(shí)變化率會(huì)反映在成像平面上,這個(gè)定義了像素運(yùn)動(dòng)矢量的密集場(chǎng)就是光流場(chǎng)。在光源亮度穩(wěn)定的理想情況下,光流法能夠較好地獨(dú)立檢測(cè)到運(yùn)動(dòng)物體,但是一旦光源變化,或者出現(xiàn)噪聲和陰影遮擋等,模型的穩(wěn)定性就會(huì)大大降低。
Vibe算法利用了相鄰像素點(diǎn)像素值相近的特性,僅用視頻的第一幀圖像就可以快速完成背景的初始化,并且實(shí)時(shí)更新背景樣本[1]。然后將新像素和背景樣本集比較,判斷其屬于背景還是前景。該算法計(jì)算量小,實(shí)時(shí)性和抗噪性高,但是如果第一幀圖像中就出現(xiàn)了運(yùn)動(dòng)物體,該運(yùn)動(dòng)物體也會(huì)被劃分到背景模型中,檢測(cè)時(shí)就會(huì)引起拖影(Ghost)區(qū)域。
本文通過(guò)研究和對(duì)比多種常用算法,結(jié)合對(duì)運(yùn)算速度和應(yīng)用廣泛性的綜合考慮,最終確定了幀差法作為檢測(cè)運(yùn)動(dòng)物體的方法。
幀差法的原理是對(duì)視頻中相鄰幀圖像間對(duì)應(yīng)的像素點(diǎn)進(jìn)行差分運(yùn)算,判斷灰度差的絕對(duì)值。如果結(jié)果小于某一閾值,該像素判斷為背景,相反當(dāng)絕對(duì)值超過(guò)該閾值,即可判斷其為運(yùn)動(dòng)目標(biāo)。
圖1
用fn和fn-1分別表示視頻中第n和n-1幀圖像,兩幀圖像在對(duì)應(yīng)像素點(diǎn)(x,y)處的灰度值記為fn(x,y)和fn-1(x,y),二者相減并取其絕對(duì)值,得到差分圖像Dn:
按照式(2)對(duì)像素點(diǎn)進(jìn)行二值化處理,即可得到二值化圖像R'n,式中T為設(shè)定的閾值。其中,灰度值為255的點(diǎn)即為運(yùn)動(dòng)物體,灰度值為0的點(diǎn)即為背景;
幀差法克服了光流法對(duì)光照敏感的缺點(diǎn),適應(yīng)性較強(qiáng),同時(shí)算法簡(jiǎn)單、處理速度快,有廣泛的應(yīng)用空間。
通過(guò)幀差法檢測(cè)到運(yùn)動(dòng)物體后,為避免圖像背景的干擾,同時(shí)為后續(xù)目標(biāo)識(shí)別提供基礎(chǔ),本文對(duì)運(yùn)動(dòng)物體所在區(qū)域進(jìn)行圖像分割處理。圖像分割可以看作一個(gè)像素標(biāo)記的過(guò)程,根據(jù)灰度、顏色等特征把圖像劃分成若干互不交迭的區(qū)域,實(shí)現(xiàn)目標(biāo)區(qū)域的分離。
GrabCut是采用Graph cuts和最大流技術(shù)的一種交互式圖像分割技術(shù)。Graph cuts的分割模型是將圖像分割問(wèn)題轉(zhuǎn)化成能量函數(shù)最小化問(wèn)題,通過(guò)高斯混合模型實(shí)現(xiàn)能量函數(shù)的求解。在該Graph cuts的基礎(chǔ)上,GrabCut采用有監(jiān)督的人工交互來(lái)選取圖像中的目標(biāo)物體,同時(shí)通過(guò)迭代法最小化能量函數(shù),得到精確的分割結(jié)果[2]。
以人物照片為例,使用GrabCut方法分離前景,得到結(jié)果如圖1所示。
目標(biāo)物體檢測(cè)問(wèn)題的研究方法眾多,本文從中選擇了運(yùn)算速度更快、應(yīng)用廣泛性更好的幀差法,并通過(guò)Grabcut圖像分割算法對(duì)其結(jié)果進(jìn)行進(jìn)一步處理,得到分離出的物體圖像。但是,包括幀差法在內(nèi)的上述四種算法均有一個(gè)共同的弊端:如果畫(huà)面中同時(shí)有多個(gè)物體處于運(yùn)動(dòng)狀態(tài),最后提取的是所有運(yùn)動(dòng)物體,而非所需的特定對(duì)象。
目前對(duì)象檢測(cè)可使用傳統(tǒng)分類(lèi)器和人工神經(jīng)網(wǎng)絡(luò),而深層的人工神經(jīng)網(wǎng)絡(luò)就叫做深度學(xué)習(xí)。傳統(tǒng)分類(lèi)器是一種有監(jiān)督的機(jī)器學(xué)習(xí),需要人工給圖片打上標(biāo)簽,適于處理少量的數(shù)據(jù),對(duì)設(shè)備要求比較低、訓(xùn)練的時(shí)間比較短,但是判斷的時(shí)間相對(duì)較長(zhǎng)。
人工神經(jīng)網(wǎng)絡(luò)是一種特殊的機(jī)器學(xué)習(xí),利用海量的數(shù)據(jù),使用深層的神經(jīng)網(wǎng)絡(luò)自動(dòng)提取特征。人工神經(jīng)網(wǎng)絡(luò)的處理方法有CNN、RCNN、YOLO等,適合處理大量數(shù)據(jù),在訓(xùn)練樣本足夠大的情況下,準(zhǔn)確率高于傳統(tǒng)分類(lèi)器。但是該方法需要GPU參與計(jì)算,訓(xùn)練時(shí)間較長(zhǎng)。
基于深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)方面的應(yīng)用,本文創(chuàng)造性地提出了一種的運(yùn)動(dòng)物體識(shí)別檢測(cè)方法——“幀差法+GrabCut圖像分割算法+CNN卷積神經(jīng)網(wǎng)絡(luò)”模型。該方法先通過(guò)幀差法和GrabCut方法檢測(cè)視頻中正在運(yùn)動(dòng)的所有物體,對(duì)圖像進(jìn)行切割處理,然后利用CNN卷積神經(jīng)網(wǎng)絡(luò)識(shí)別其中的特定目標(biāo)。該方法縮小了CNN卷積神經(jīng)網(wǎng)絡(luò)所需的識(shí)別圖像范圍,計(jì)算量顯著降低,運(yùn)行速度加快。
卷積神經(jīng)網(wǎng)絡(luò)和普通神經(jīng)網(wǎng)絡(luò)相似,都是對(duì)生物神經(jīng)網(wǎng)絡(luò)的一種模擬,由神經(jīng)元及其學(xué)習(xí)得到的權(quán)重和偏置常量構(gòu)成[3]。很多計(jì)算技巧在普通神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)中通用,但是卷積神經(jīng)網(wǎng)絡(luò)默認(rèn)輸入的是圖像信息,采用逐層預(yù)訓(xùn)練算法,每次只訓(xùn)練網(wǎng)絡(luò)的一層,并將該層的訓(xùn)練結(jié)果作為其下一層的輸入,減少了大量參數(shù)。
CNN卷積神經(jīng)網(wǎng)絡(luò)由輸入層、卷積層、池化層、全連接層和輸出層五個(gè)部分組成。卷積層由多個(gè)特征面組成,包括多個(gè)卷積單元,卷積單元的運(yùn)算可以提取出輸入單元的不同特征。但是由于首層卷積層只能提取部分低層級(jí)的特征,在CNN中,通常會(huì)取多個(gè)卷積層和池化層交替設(shè)置,從低層級(jí)特征中提取較為復(fù)雜的局部特征。最后,為獲得輸入單元的全局特征并計(jì)算每一類(lèi)別的概率,可采用全連接層把上述局部特征進(jìn)行整合。
CNN卷積神經(jīng)網(wǎng)絡(luò)模型的建立可分為以下四步:
2.2.1 局部感知
普通神經(jīng)網(wǎng)絡(luò)把輸入層和隱含層進(jìn)行“全連接”的設(shè)計(jì),但是要通過(guò)這種全聯(lián)通網(wǎng)絡(luò)來(lái)學(xué)習(xí)較大的圖像上的特征會(huì)非常耗時(shí)。為降低神經(jīng)網(wǎng)絡(luò)復(fù)雜度,CNN中每個(gè)隱含單元僅連接輸入單元的一部分,每個(gè)神經(jīng)元僅通過(guò)卷積核連接到輸入層特征面的局部,這樣大大減少了訓(xùn)練參數(shù),從而獲得了更好的泛化能力。
2.2.2 權(quán)值共享
應(yīng)用參數(shù)共享可以大量減少參數(shù)數(shù)量,參數(shù)共享基于一個(gè)假設(shè):如果圖像中的一點(diǎn)(x1,y1)包含的特征很重要,那么它應(yīng)該和圖像中的另一點(diǎn)(x2,y2)一樣重要。由局部感知可以看出,卷積層的神經(jīng)元通過(guò)一組權(quán)值被連接到各個(gè)特征面的局部,也就是說(shuō)在同一個(gè)輸入特征面和同一個(gè)輸出特征面中共享同一組權(quán)重和偏置。那么在網(wǎng)絡(luò)學(xué)習(xí)權(quán)值的方法選擇上,梯度下降的方法依然適用。
權(quán)值共享極大的減少了模型的復(fù)雜程度,能夠更快地抽取特征值,使網(wǎng)絡(luò)更易于訓(xùn)練。通過(guò)控制模型的規(guī)模,卷積神經(jīng)網(wǎng)絡(luò)對(duì)物體識(shí)別問(wèn)題能夠有較好的泛化能力。
2.2.3 空間排列
深度、步幅和補(bǔ)零三個(gè)量是控制輸出單元大小的決定因素,為了確保CNN在限定復(fù)雜程度和一定時(shí)間內(nèi)完成分類(lèi),要對(duì)上述三維度的參數(shù)進(jìn)行平衡。
這里的深度并非指神經(jīng)網(wǎng)絡(luò)的深度,二是控制輸出單元的深度,即同一塊區(qū)域連接的神經(jīng)元個(gè)數(shù)。過(guò)濾器的作用在于根據(jù)事先定義的大小、個(gè)數(shù)以及網(wǎng)絡(luò)學(xué)習(xí)到的內(nèi)部參數(shù)尋找圖片特征,它同樣也是一個(gè)數(shù)組,故深度必須與輸入內(nèi)容的深度相同,才能進(jìn)行數(shù)學(xué)運(yùn)算。采用的過(guò)濾器越多,空間維度保留得也就越好。
步幅是過(guò)濾器在同一深度的兩個(gè)隱含單元之間每次滑動(dòng)的距離,例如將步幅設(shè)置為1,即每次過(guò)濾器向右或向下滑動(dòng)1個(gè)像素單位。不難看出步幅越小,相鄰隱含單元輸入的重疊部分越多,反之重疊部分越少。
當(dāng)過(guò)濾器遍歷后的特征圖片往往會(huì)比原始圖片小,此時(shí)我們可以通過(guò)在特征圖片的外圍補(bǔ)零來(lái)改變輸入單元整體大小,得到和原始圖片大小一樣的特征圖,從而控制輸出單元的空間大小。
2.2.4 卷積
在應(yīng)用參數(shù)共享的基礎(chǔ)上,每一層的計(jì)算操作被轉(zhuǎn)化成為輸入層和權(quán)重的卷積,卷積神經(jīng)網(wǎng)絡(luò)名字也因此得來(lái)??紤]一個(gè)大小為5×5的圖像,和一個(gè)3×3的卷積核。這里的卷積核共有9個(gè)參數(shù),這種情況下,卷積核實(shí)際上有9個(gè)神經(jīng)元,它們的輸出又組成一個(gè)3×3的矩陣,稱(chēng)為特征圖。第一個(gè)神經(jīng)元連接到圖像的第一個(gè)3×3的局部,第二個(gè)神經(jīng)元?jiǎng)t連接到第二個(gè)局部。
結(jié)合R-CNN和faster R-CNN,本文以籃球識(shí)別為例對(duì)樣本進(jìn)行了訓(xùn)練,并對(duì)訓(xùn)練得到的結(jié)果進(jìn)行測(cè)試,結(jié)果準(zhǔn)確率較高。
通過(guò)幀差法結(jié)合GrabGut算法,可以實(shí)現(xiàn)提取出視頻中所有運(yùn)動(dòng)的物體。在此基礎(chǔ)上,建立CNN卷積神經(jīng)網(wǎng)絡(luò)模型,輸入大量檢測(cè)物體的圖片進(jìn)行訓(xùn)練,進(jìn)而即可在視頻中所有的運(yùn)動(dòng)物體中找到目標(biāo)物體。
智能監(jiān)控技術(shù)在生活和發(fā)展中的應(yīng)用越來(lái)越廣泛,本文對(duì)運(yùn)動(dòng)物體的檢測(cè)和識(shí)別問(wèn)題進(jìn)行了一定的探索和研究,主要成果總結(jié)如下:
(1)提出了幀差法結(jié)合Grabcut圖像分割算法的運(yùn)動(dòng)物體識(shí)別算法,對(duì)時(shí)間上連續(xù)的幀圖像進(jìn)行差分運(yùn)算,判斷運(yùn)動(dòng)目標(biāo),并通過(guò)對(duì)高斯混合模型實(shí)現(xiàn)了對(duì)運(yùn)動(dòng)目標(biāo)的自動(dòng)識(shí)別。
(2)本文基于深度學(xué)習(xí)技術(shù)提出“幀差法+Grabcut圖像分割算法+CNN卷積神經(jīng)網(wǎng)絡(luò)算法”模型,在運(yùn)動(dòng)物體檢測(cè)的基礎(chǔ)上,對(duì)特定物體進(jìn)行識(shí)別,獲得視頻文件中目標(biāo)物體的坐標(biāo)位置。
(3)幀差法結(jié)合GrabGut算法可以通過(guò)切割圖像減少檢測(cè)尺寸,縮小CNN卷積神經(jīng)網(wǎng)絡(luò)的檢測(cè)范圍,克服了CNN檢測(cè)速度慢的問(wèn)題。本文提出的“幀差法+Grabcut圖像分割算法+CNN卷積神經(jīng)網(wǎng)絡(luò)”模型穩(wěn)健性好,在運(yùn)動(dòng)物體的檢測(cè)方面能夠取得較好的效果。
運(yùn)動(dòng)物體檢測(cè)與識(shí)別技術(shù)是一項(xiàng)復(fù)雜的工程,對(duì)智能視頻處理技術(shù)僅作為整個(gè)系統(tǒng)的基礎(chǔ)部分。由于時(shí)間限制,本文僅以球場(chǎng)上的籃球軌跡識(shí)別問(wèn)題為例進(jìn)行了應(yīng)用,并取得了一定的研究成果。今后的研究還可以在更多更大的體育賽事,以及行人、車(chē)輛等交通運(yùn)動(dòng)目標(biāo)檢測(cè)方面進(jìn)一步探討和完善。