李景文, 陳文達(dá), 姜建武*
(1.桂林理工大學(xué)廣西空間信息與測(cè)繪重點(diǎn)實(shí)驗(yàn)室, 桂林 541004; 2.桂林理工大學(xué)測(cè)繪地理信息學(xué)院, 桂林 541004)
通過(guò)視頻圖像檢測(cè)實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)檢測(cè)跟蹤及其空間定位是當(dāng)前圖像處理與計(jì)算機(jī)視覺領(lǐng)域研究的熱點(diǎn)問(wèn)題之一。
近年來(lái)學(xué)者們提出了一些目標(biāo)檢測(cè)和跟蹤算法,如肖軍等[1]提出了一種基于光流法的運(yùn)動(dòng)目標(biāo)檢測(cè)與跟蹤算法,通過(guò)選用Harris角點(diǎn)作為跟蹤對(duì)象提高了角點(diǎn)檢測(cè)對(duì)尺度變化的抗擾能力,卻容易受到外界光線的干擾;劉曉悅等[2]提出一種改進(jìn)的TLD(tracking-learning-detection)目標(biāo)跟蹤算法,將HOG-SVM(histogram of oriented gradien-support vector machines)結(jié)合替換原TLD算法中的2 bit BP(bit binary pattern)特征和集成分類器,但卻難以實(shí)現(xiàn)多目標(biāo)的檢測(cè)。傳統(tǒng)的特征提取方法因受到光照反射、復(fù)雜背景等因素的干擾無(wú)法對(duì)特定點(diǎn)進(jìn)行精準(zhǔn)定位,難以滿足復(fù)雜場(chǎng)景下的定位精度要求。近年來(lái),深度學(xué)習(xí)為目標(biāo)跟蹤提供了新的技術(shù)方法,如魏永強(qiáng)等[3]利用深度卷積神經(jīng)[4]網(wǎng)絡(luò)自動(dòng)提取待跟蹤目標(biāo)的卷積特征來(lái)代替?zhèn)鹘y(tǒng)的手工特征,提高了跟蹤算法在復(fù)雜干擾背景下的魯棒性,但單純的卷積神經(jīng)網(wǎng)絡(luò)難以提取深層次的語(yǔ)義信息。
針對(duì)以上方法的弊端,從提高空間定位精度角度提出一種基于Mask Region-CNN[5]和卡爾曼濾波的運(yùn)動(dòng)目標(biāo)定位方法,以ResNet101作為特征提取器,實(shí)現(xiàn)了運(yùn)動(dòng)目標(biāo)的檢測(cè)與定位并擁有較強(qiáng)的抗干擾性能。
運(yùn)動(dòng)目標(biāo)的空間定位主要包括數(shù)字信號(hào)采集、特征檢測(cè)與優(yōu)化、坐標(biāo)投影換算三個(gè)步驟,主要思路是:通過(guò)網(wǎng)絡(luò)攝像頭捕捉視頻流并轉(zhuǎn)化為數(shù)字信號(hào),將待檢測(cè)影像傳入模型,利用RoIAlign算法得到固定尺寸的特征圖輸出,匹配尺度不變特征變換(scale-invariant feature transform,SIFT)特征點(diǎn)建立空間坐標(biāo)系統(tǒng)補(bǔ)償運(yùn)動(dòng)軌跡,最后依據(jù)攝像機(jī)的位姿參數(shù),通過(guò)空間投影換算方法將像素坐標(biāo)點(diǎn)轉(zhuǎn)換為實(shí)際坐標(biāo),輸出成為連續(xù)的運(yùn)動(dòng)軌跡,其流程如圖1所示。
圖1 運(yùn)動(dòng)目標(biāo)空間定位的過(guò)程Fig.1 The process of spatial positioning of moving targets
特征檢測(cè)方法的優(yōu)劣決定了空間定位的精確度,基于深度學(xué)習(xí)的特征檢測(cè)經(jīng)過(guò)多年的發(fā)展已經(jīng)取得了很大進(jìn)步,但還是有許多問(wèn)題需要得到改善,因此在Mask R-CNN特征檢測(cè)方法的基礎(chǔ)上提出多特征檢測(cè)優(yōu)化方法。
Mask R-CNN是一種在Faster R-CNN的基礎(chǔ)上添加一個(gè)掩膜預(yù)測(cè)分支的新型目標(biāo)檢測(cè)框架,其特征提取是采用特征金字塔網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)相結(jié)合的方法獲取,能夠更好地利用多尺度信息,并通過(guò)區(qū)域建議網(wǎng)絡(luò)在不同尺寸的特征映射圖上生成候選區(qū)域,并將其輸入RoIAlign得到預(yù)測(cè)框,最后對(duì)預(yù)測(cè)框進(jìn)行分類和回歸,并生成檢測(cè)物體的高質(zhì)量實(shí)例分割掩碼。
區(qū)域建議網(wǎng)絡(luò)(region proposal network,RPN)是利用特征圖計(jì)算代表物體在圖像中位置的候選框結(jié)構(gòu),為每個(gè)位置生成9種預(yù)先設(shè)置好長(zhǎng)寬比與面積的目標(biāo)框Anchor。根據(jù)回歸得出的4個(gè)修正坐標(biāo)的值對(duì)每個(gè)Anchor的中心和長(zhǎng)、寬進(jìn)行修正,從而得到新的候選框。其損失函數(shù)為
(1)
得到候選框之后,興趣匹配層根據(jù)候選框的位置坐標(biāo)在特征圖中將相應(yīng)區(qū)域池化為固定尺寸的特征圖,以便進(jìn)行后續(xù)的分類和包圍框回歸以及掩碼的生成,RoIAlign使用雙線性內(nèi)插的方法獲得坐標(biāo)為浮點(diǎn)數(shù)的像素點(diǎn)上的圖像數(shù)值,從而將整個(gè)特征聚集過(guò)程轉(zhuǎn)化為一個(gè)連續(xù)的操作。RoI Loss為
L=Lcls+Lbox+Lmask
(2)
式(2)中:Lcls為分類損失;Lbox為bounding-box回歸損失;Lmask為分割損失。
Classifier利用了之前檢測(cè)到的每一個(gè)RoI進(jìn)行分類和回歸,Mask則是在RoI之后通過(guò)Fully Convolution Network實(shí)現(xiàn)了語(yǔ)義分割。在訓(xùn)練的時(shí)候,Classifier和Mask都是同時(shí)進(jìn)行的;在預(yù)測(cè)的時(shí)候,顯示得到Classifier的結(jié)果,然后再把此結(jié)果傳入到Mask預(yù)測(cè)中得到mask。
單一的目標(biāo)特征信息只能從單一角度描述影像, 不能夠全面立體地刻畫影像內(nèi)容,因此采用特征融合將具有不同特征信息的分層特征進(jìn)行融合從而豐富特征信息,構(gòu)建新的空間坐標(biāo)系,進(jìn)一步優(yōu)化空間定位的準(zhǔn)確度,如圖2所示。
圖2 優(yōu)化Mask R-CNN流程圖Fig.2 Optimized Mask R-CNN flow chart
為了解決復(fù)雜場(chǎng)景下無(wú)法建立穩(wěn)定的空間坐標(biāo)體系這一問(wèn)題,將SIFT[6]算子與Mask R-CNN特征進(jìn)行融合,在Mask R-CNN的基礎(chǔ)上對(duì)不同目標(biāo)建立特征圖,通過(guò)匹配影像前后幀之間的特征點(diǎn)建立空間約束。
SIFT由可變尺度的高斯函數(shù)與圖像卷積構(gòu)建尺度空間,SIFT對(duì)圖像縮放、旋轉(zhuǎn)甚至是仿射變換均能保持不變性,其圖像尺度空間表示為
L(x,y,z)=G(x,y,z)I(x,y)
(3)
式(3)中:G(x,y,z)為高斯函數(shù);I(x,y)為原始圖像。
SIFT特征表示了影響底層特征,缺少運(yùn)動(dòng)目標(biāo)的空間信息,但其幾何不變性相比Mask R-CNN較好,通過(guò)特征融合增強(qiáng)特征點(diǎn)的穩(wěn)定性及抗干擾能力,建立更為可靠的空間約束。其融合后特征向量表示為
F=iFM+jFS
(4)
式(4)中:FM為Mask R-CNN特征,i為其權(quán)重系數(shù);FS為SIFT特征,j為其權(quán)重系數(shù)。
由于受到外界條件的影響,每幀影像的特征會(huì)發(fā)生微小的改變,以上觀測(cè)僅對(duì)像素進(jìn)行了記錄,并沒有對(duì)速度進(jìn)行觀測(cè),在該階段獲取的數(shù)據(jù)里包含了大量的噪聲,使動(dòng)態(tài)追蹤變得困難,難以還原運(yùn)動(dòng)目標(biāo)在時(shí)間序列下的真實(shí)情況。在考慮噪聲屬于white Gaussian noise,也就是這些偏差跟前后時(shí)間是沒有關(guān)系同時(shí)符合Gaussian distribution的情況下,在Kalman filter[7]的基礎(chǔ)之上提出了一種優(yōu)化模型:
(5)
式(5)中:xk為k時(shí)刻的系統(tǒng)狀態(tài),就是當(dāng)前時(shí)刻的坐標(biāo);uk是k時(shí)刻對(duì)系統(tǒng)的控制量;A和B是系統(tǒng)參數(shù);yk是k時(shí)刻的測(cè)量值;H是測(cè)量系統(tǒng)的參數(shù);qk和rk分別表示過(guò)程和測(cè)量的噪聲。當(dāng)他們屬于white Gaussian noise,他們的covariance分別是Q、R。
對(duì)于時(shí)間和狀態(tài)的變化,可表示為
(6)
該框架根據(jù)運(yùn)動(dòng)目標(biāo)的速度對(duì)定位坐標(biāo)進(jìn)行實(shí)時(shí)估計(jì)和修正,從而提高對(duì)運(yùn)動(dòng)目標(biāo)定位的精度,得到更為可靠和更精確的位置和速度信息。
空間坐標(biāo)投影方法通過(guò)三次轉(zhuǎn)換將在特征檢測(cè)獲取到目標(biāo)特征點(diǎn)的像素坐標(biāo)轉(zhuǎn)換為世界坐標(biāo)三維空間內(nèi)的坐標(biāo)。像素坐標(biāo)無(wú)法直接轉(zhuǎn)換為世界坐標(biāo),要經(jīng)過(guò)相機(jī)坐標(biāo)和圖像坐標(biāo)。在現(xiàn)實(shí)場(chǎng)景中,攝影機(jī)的位置是固定的或臨時(shí)擺放的,無(wú)法得知相機(jī)的外部參數(shù)。通過(guò)匹配世界坐標(biāo)系里的參考點(diǎn)和在圖像上的特征點(diǎn)及攝像機(jī)的內(nèi)參K可以求得外參[8]。
(1)計(jì)算控制點(diǎn)在攝影機(jī)參考坐標(biāo)下的坐標(biāo):
(7)
(2)計(jì)算參考點(diǎn)在攝影機(jī)參考坐標(biāo)下的坐標(biāo):
(8)
(9)
(10)
(5)計(jì)算外參中的R和t:
(11)
世界坐標(biāo)系[9]、攝像機(jī)坐標(biāo)系、圖像坐標(biāo)系、像素坐標(biāo)系, 分別用(Xw,Yw,Zw)、(Xc,Yc,Zc)、(x,y)、(u,v)表示,具體方法如下所示[10]。
(12)
(13)
(14)
(15)
式中:R為正交矩陣;t為旋轉(zhuǎn)向量;f為攝影設(shè)備的焦距;dx和dy分別表示x方向和y方向一個(gè)像素占的單位長(zhǎng)度;u0、v0表示圖像的中心像素坐標(biāo)和圖像原點(diǎn)像素坐標(biāo)之間相差的橫向和縱向像素,為相機(jī)的內(nèi)部參數(shù);γ為扭曲因子,通常情況下為0。將式(12)~式(14)合并,就得到式(15),R、t為相機(jī)的外部參數(shù)。最后簡(jiǎn)化得到式(16)[11]:
(16)
計(jì)算得到表1所示數(shù)據(jù),分別為內(nèi)參矩陣(dx,dy,u0,v0)、外參矩陣(R、t)[12],通過(guò)相機(jī)標(biāo)定可以獲得徑向畸變(k1、k2、k3)與切向畸變(p1、p2)。
(17)
(18)
(19)
本實(shí)驗(yàn)視頻端采用單個(gè)網(wǎng)絡(luò)攝像頭進(jìn)行捕捉,將攝像頭采集到的RTSP(real time streaming protocol)視頻流使用ffmpeg進(jìn)行編碼,推送給遠(yuǎn)程服務(wù)器,解碼服務(wù)器將碼流轉(zhuǎn)換為能夠處理的圖像格式并直接輸出為數(shù)字信號(hào),最后每隔3幀進(jìn)行一次檢測(cè)。
為了獲得實(shí)驗(yàn)需要的模型,實(shí)驗(yàn)使用了Windows環(huán)境下的TensorFlow框架進(jìn)行模型訓(xùn)練。數(shù)據(jù)集則是通過(guò)labelme對(duì)挑選的1 000張人物、車輛等圖片進(jìn)行標(biāo)注,其中訓(xùn)練集有800張圖片,測(cè)試集有200張圖片,比例為4∶1,驗(yàn)證集包含500張不同場(chǎng)景下的人物圖片,如圖3所示。
圖3 數(shù)據(jù)集標(biāo)注過(guò)程Fig.3 Dataset labeling process
為了獲取更好的特征,實(shí)驗(yàn)采用了ResNet101作為特征提取器,底層檢測(cè)的是低級(jí)特征(邊緣和角等),較高層檢測(cè)的是更高級(jí)的特征。經(jīng)過(guò)主干網(wǎng)絡(luò)的前向傳播,圖像從 1 024×1 024×3(RGB)的張量被轉(zhuǎn)換成形狀為 32×32×2 048 的特征圖。
RPN會(huì)在一個(gè)完整的圖片上覆蓋多種不同形狀的anchors,anchors與標(biāo)注的ground truth(GT box)的IoU(intersection over union)≥0.7為正樣本,IoU≤0.3為負(fù)樣本,IoU為預(yù)測(cè)框與和真實(shí)框的交集和并集的比值。
最終將迭代次數(shù)調(diào)整為30 000,設(shè)置初始學(xué)習(xí)率為0.000 1,GPU_COUNT = 1,當(dāng)?shù)?0 000,20 000次時(shí),學(xué)習(xí)率改為原來(lái)的0.1 倍,總訓(xùn)練時(shí)間為80.3 h,如圖4所示。
圖4 準(zhǔn)確率與損失函數(shù)Fig.4 Precision and loss function
通過(guò)訓(xùn)練完成后的Mask R-CNN模型對(duì)采集到的視頻流進(jìn)行關(guān)鍵點(diǎn)識(shí)別與SIFT特征融合構(gòu)建坐標(biāo)系統(tǒng),在約束條件下對(duì)單幀影像檢測(cè)結(jié)果如圖5所示。上述實(shí)驗(yàn)所得的數(shù)據(jù)如表1所示,其中改進(jìn)后的模型得到的坐標(biāo)為本文數(shù)據(jù)的最終坐標(biāo),誤差為該坐標(biāo)和實(shí)際坐標(biāo)的差的絕對(duì)值。圖6為整個(gè)運(yùn)動(dòng)場(chǎng)景下的誤差曲線分布圖。
圖5 視頻分類檢測(cè)、特征點(diǎn)匹配Fig.5 Video classification detection, feature point matching
表1 檢測(cè)點(diǎn)坐標(biāo)
圖6 誤差分布圖Fig.6 Error distribution
為了證實(shí)該模型的有效性,分別在不同檢測(cè)模型框架下進(jìn)行實(shí)驗(yàn),建立空間坐標(biāo)系統(tǒng),得到表2所示數(shù)據(jù)。根據(jù)表2實(shí)驗(yàn)數(shù)據(jù)表明,Mask R-CNN在該方法中的表現(xiàn)最為出色,對(duì)目標(biāo)的識(shí)別準(zhǔn)確度可以達(dá)到90%以上并且在經(jīng)過(guò)優(yōu)化后的平均誤差小于8 cm。
表2 不同算法比較
結(jié)合Mask R-CNN和卡爾曼濾波器提出了一種運(yùn)動(dòng)目標(biāo)定位模型,在Windows環(huán)境下的TensorFlow框架進(jìn)行了數(shù)據(jù)訓(xùn)練,并通過(guò)訓(xùn)練模型對(duì)采集到的視頻流進(jìn)行檢測(cè)分類及實(shí)例分割,提取目標(biāo)的特征信息和坐標(biāo),根據(jù)提取出來(lái)的特征結(jié)合SIFT生成空間約束坐標(biāo)系,進(jìn)一步通過(guò)單目攝像機(jī)參數(shù)換算得到世界坐標(biāo)結(jié)合卡爾曼濾波器優(yōu)化。實(shí)驗(yàn)證明該方法可以有效提高追蹤目標(biāo)的定位精度,將平均誤差控制在8 cm以內(nèi),相比其他模型擁有更快的訓(xùn)練速度和檢測(cè)精度。