代金坤,羅玉濤,梁偉強(qiáng)
(1.華南理工大學(xué)機(jī)械與汽車工程學(xué)院,廣州 510640; 2.廣汽集團(tuán)汽車工程研究院,廣州 510640)
視覺(jué)傳感器具有提取信息量大、信息完整、價(jià)格便宜等優(yōu)點(diǎn),故成為獲取周圍環(huán)境信息的重要手段之一。由于圖像存在深度缺失以及背景環(huán)境干擾等問(wèn)題,通過(guò)單目攝像頭對(duì)物體進(jìn)行準(zhǔn)確測(cè)距的方法一直是視覺(jué)研究的難點(diǎn)之一,目前主流的檢測(cè)方法有:使用運(yùn)動(dòng)圖像中的多個(gè)匹配點(diǎn)對(duì)物體深度進(jìn)行估測(cè)[1-5];通過(guò)尋找穩(wěn)定參照物的方法獲得距離信息[6-7];通過(guò)固定攝像頭位姿狀態(tài)下的物體距離檢測(cè)方法[8-10];通過(guò)卷積神經(jīng)網(wǎng)絡(luò)檢測(cè)物體在圖片中的大概尺寸,結(jié)合先驗(yàn)信息進(jìn)行估測(cè)[11-13]。這些方法都有一定的可行性,但都存在精度低、適用性窄、容易受環(huán)境干擾以及步驟繁瑣等問(wèn)題。利用卷積神經(jīng)網(wǎng)絡(luò)預(yù)先提取所測(cè)物體位置,再經(jīng)過(guò)圖像分割得到所測(cè)物體信息的方法,減少了由于外界環(huán)境的影響而帶來(lái)的誤差,具有更好的適用性、可靠性和抗干擾能力。
針對(duì)單目物體測(cè)距中深度缺失、背景干擾與前景分割困難等問(wèn)題,提出了一種基于幾何測(cè)距模型的物體測(cè)距方法。首先,使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)物體進(jìn)行標(biāo)記并定位物體在圖片中的位置,為了提高訓(xùn)練效率與準(zhǔn)確率,在此利用遷移學(xué)習(xí)的方法,使用Tiny-YOLOv2網(wǎng)絡(luò)模型加載已訓(xùn)練完成的權(quán)重,對(duì)需識(shí)別的物體進(jìn)行訓(xùn)練與檢測(cè),之后根據(jù)訓(xùn)練結(jié)果對(duì)網(wǎng)絡(luò)模型進(jìn)行改進(jìn),并對(duì)其參數(shù)進(jìn)行調(diào)整,獲得更為適合于當(dāng)前環(huán)境下的物體檢測(cè)卷積模型。然后,提出了一種通過(guò)物體分類、邊緣檢測(cè)和邊緣擬合技術(shù)獲得物體數(shù)值信息的方法,該方法能精確提取物體的圖像信息,并轉(zhuǎn)化為數(shù)值信息。最后,建立了一種基于空間幾何理論的測(cè)距模型,結(jié)合在圖像中提取的物體數(shù)據(jù)信息和物體尺寸的先驗(yàn)信息實(shí)現(xiàn)了物體的距離測(cè)量。
直接在原始圖像上進(jìn)行物體的分割與數(shù)值化,存在物體提取困難以及計(jì)算量過(guò)大等問(wèn)題,故先使用卷積神經(jīng)網(wǎng)絡(luò)模型在壓縮尺寸后的圖像上對(duì)物體進(jìn)行檢測(cè)與定位,得到物體的位置后再?gòu)脑紙D像中將物體裁剪出來(lái)進(jìn)一步處理。本文中使用遷移學(xué)習(xí)的方法,在已有的模型和通用數(shù)據(jù)庫(kù)訓(xùn)練得到的權(quán)重下,加入自己的數(shù)據(jù)集,可快速得到理想權(quán)重,極大地節(jié)約了時(shí)間與成本。
目前基于深度學(xué)習(xí)的主流目標(biāo)檢測(cè)算法主要有以R-CNN[14-16]系列(R-CNN、Fast R-CNN、Faster RCNN)為代表的算法,和以SSD[17]、YOLO[18-20]系列(YOLOv1,YOLOv2,YOLOv3,Tiny-YOLO)為代表的算法。一般情況下,R-CNN系列算法精度比SSD、YOLO系列算法高,但SSD、YOLO系列算法速度更快。SSD、YOLO系列算法在經(jīng)過(guò)改進(jìn)后精度已有很大的提升,已接近甚至超越了R-CNN系列算法。本文中基于YOLOv2模型的簡(jiǎn)化版本Tiny-YOLOv2進(jìn)行目標(biāo)檢測(cè),提高了訓(xùn)練速度與處理效率。
本文中的數(shù)據(jù)集數(shù)據(jù)較少、物體種類不多,且識(shí)別目標(biāo)較小,基于通用物體識(shí)別的Tiny-YOLOv2網(wǎng)絡(luò)并不能表現(xiàn)出最優(yōu)的檢測(cè)效果,故在此對(duì)原網(wǎng)絡(luò)模型進(jìn)行改進(jìn)。由于Tiny-YOLOv2本身即為簡(jiǎn)化版本,網(wǎng)絡(luò)結(jié)構(gòu)已達(dá)到效率最高,故在此保留原網(wǎng)絡(luò)層數(shù),而將第13層的卷積層由Conv3*1024改為Conv3*512,將最后一層卷積層由Conv1*425改為Conv1*50,具體情況如表1所示,以此來(lái)進(jìn)一步提高物體的檢測(cè)準(zhǔn)確率與檢測(cè)效率。
表1 改進(jìn)前后網(wǎng)格對(duì)比
利用265張訓(xùn)練集圖片數(shù)據(jù)進(jìn)行訓(xùn)練,60張測(cè)試集圖片進(jìn)行測(cè)試,共檢測(cè)識(shí)別了5種不同的物體,分別為門牌、逃生通道燈、車牌和兩種常見(jiàn)提示牌,在同一電腦配置下,通過(guò)原網(wǎng)絡(luò)和改進(jìn)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,在其余參數(shù)設(shè)置相同的情況下,原網(wǎng)絡(luò)在迭代次數(shù)為400次時(shí)損失函數(shù)不再下降,改進(jìn)網(wǎng)絡(luò)在迭代次數(shù)為1 100次時(shí)損失函數(shù)不再下降,改進(jìn)網(wǎng)絡(luò)訓(xùn)練情況部分識(shí)別結(jié)果如圖1所示,原網(wǎng)絡(luò)訓(xùn)練情況在這里不做描述,訓(xùn)練集損失函數(shù)對(duì)比如圖2所示。
基于遷移學(xué)習(xí)優(yōu)勢(shì),原網(wǎng)絡(luò)和改進(jìn)網(wǎng)絡(luò)的訓(xùn)練效率都有較大幅度提升,改進(jìn)網(wǎng)絡(luò)由于網(wǎng)絡(luò)模型發(fā)生改變導(dǎo)致部分權(quán)重需重組,所以訓(xùn)練時(shí)間更長(zhǎng),但是改進(jìn)網(wǎng)絡(luò)最終的平均損失率要低于原網(wǎng)絡(luò)。
由表2可知,由于樣本總量較小,導(dǎo)致兩種網(wǎng)絡(luò)在測(cè)試集的識(shí)別率都較低,但相對(duì)來(lái)說(shuō)改進(jìn)網(wǎng)絡(luò)的識(shí)別率仍有顯著的提升。同時(shí),在訓(xùn)練集的識(shí)別率與檢測(cè)速度上改進(jìn)網(wǎng)絡(luò)皆優(yōu)于原網(wǎng)絡(luò)。
圖1 部分識(shí)別結(jié)果
圖2 損失函數(shù)對(duì)比
表2 網(wǎng)絡(luò)對(duì)比
此步驟的主要目的是從第1.2節(jié)中裁剪出來(lái)的圖片中獲取物體的數(shù)值信息,即不僅要將物體分割提取,并且要將提取到的物體邊界進(jìn)行數(shù)值化,物體由于射影定理,在圖片上的形狀為多邊形,而對(duì)于多邊形而言,只要得到邊緣頂點(diǎn)坐標(biāo)即確定了多邊形的全部數(shù)值信息。在此提出了一種通過(guò)物體分類、邊緣檢測(cè)和邊緣擬合獲得物體數(shù)值信息的方法。
因?yàn)椴煌奈矬w在紋路和顏色方面有些許差異,使用通用的檢測(cè)參數(shù)與檢測(cè)方法并不能獲得最優(yōu)的效果。故該方法首先通過(guò)上文中物體檢測(cè)獲得的物體標(biāo)簽信息將物體進(jìn)行分類,根據(jù)不同的物體種類設(shè)置不同的檢測(cè)參數(shù)與檢測(cè)流程,以此來(lái)獲得最優(yōu)檢測(cè)效果。主要變動(dòng)的參數(shù)包括:邊緣檢測(cè)閾值、色彩空間提取的RGB顏色范圍、Hough直線檢測(cè)線段閾值。主要的檢測(cè)流程包括:中值濾波消去噪聲、使用Canny函數(shù)進(jìn)行邊緣檢測(cè)、使用色彩空間過(guò)濾顏色、使用OSTU算法進(jìn)行圖像二值化處理、使用Hough變換檢測(cè)直線,以此得到物體的邊緣信息,具體參數(shù)如表3所示。
表3 主要方法與主要參數(shù)
通過(guò)滑動(dòng)窗口的二次多項(xiàng)式擬合算法可有效提取與擬合多邊形邊緣,為提高擬合效果,在此對(duì)算法進(jìn)行改進(jìn),加入了k、l1、l2、r1、r2感興趣區(qū)域的參數(shù),具體過(guò)程如下。
首先,統(tǒng)計(jì)圖片某部分的每列像素之和,以左右兩邊的感興趣區(qū)域?yàn)榉秶褜は袼刂岛偷淖畲笾底鳛榛瑒?dòng)窗口的起始點(diǎn)。
式中:Pij為圖像的像素矩陣P第i行、第j列的值;m、n為圖像的像素寬度與高度;hj為每列像素之和;Bl、Br為滑動(dòng)窗口的左右初始點(diǎn);k、l1、l2、r1、r2為感興趣區(qū)域的參數(shù)。
根據(jù)式(1)獲得初始點(diǎn)之后,算法根據(jù)一個(gè)矩形面積向上生長(zhǎng),根據(jù)矩形中像素最大值確定生長(zhǎng)方向以及下一個(gè)初始點(diǎn),以此迭代,最后通過(guò)多項(xiàng)式擬合方法對(duì)每一個(gè)矩形的中心點(diǎn)進(jìn)行擬合,最終得到邊界信息,設(shè)矩陣4個(gè)頂點(diǎn)坐標(biāo)分別為(w1,h1)、(w1,h2)、(w2,h2)和(w2,h1),迭代過(guò)程如式(2)所示。
式中:N為矩形內(nèi)像素之和;cj為矩形內(nèi)每列像素之和;Bc為滑動(dòng)窗口的迭代后的初始點(diǎn)。
由于多邊形邊界分布在圖像邊緣部分,以此為據(jù)對(duì)算法參數(shù)進(jìn)行設(shè)置,增加了滑動(dòng)窗口在圖像邊緣部分的搜索力度,并在寬度和高度方向上各使用一次。在已知圖像尺寸m、n的情況下,通過(guò)對(duì)算法參數(shù)的反復(fù)調(diào)整,得到最優(yōu)的擬合方法,參數(shù)設(shè)置如表4所示,最終效果如圖3所示。
表4 參數(shù)設(shè)置
圖3 檢測(cè)示例
根據(jù)擬合結(jié)果可得數(shù)條直線,求解相鄰直線的交點(diǎn),即可得到多邊形的頂點(diǎn)坐標(biāo)信息(u,v)。
如圖3所示,通過(guò)該方法能準(zhǔn)確地提取各類物體的邊緣信息并進(jìn)行數(shù)值擬合,得到物體的頂點(diǎn)坐標(biāo)信息,整體上則取得了較好的效果。
在此提出了一種結(jié)合物體尺寸的先驗(yàn)信息進(jìn)行測(cè)距的幾何測(cè)距模型,通過(guò)建立攝像機(jī)小孔成像模型來(lái)確定空間目標(biāo)三維立體信息與圖像二維成像點(diǎn)面之間的對(duì)應(yīng)關(guān)系[21-22],并通過(guò)第2章中獲得的物體數(shù)值信息與先驗(yàn)信息,得到物體的距離。小孔成像模型示意圖如圖4所示。
式中:K為相機(jī)的內(nèi)參數(shù)矩陣;fx、fy分別為x、y軸方向的放大系數(shù);cx、cy為物理成像坐標(biāo)系和像素坐標(biāo)系之間的位移量。
通過(guò)第2章中物體提取與數(shù)值化的方法,得到
圖4 小孔成像模型
物體在像素平面內(nèi)的多點(diǎn)坐標(biāo)(ui,vi)。通過(guò)式 (4),得到含有未知數(shù)Z的物體在相機(jī)坐標(biāo)系下的三維坐標(biāo)。
根據(jù)立體幾何學(xué),在空間中任意不共線的3點(diǎn)構(gòu)成一個(gè)平面,在此已知相機(jī)坐標(biāo)系下4點(diǎn)之間的相互關(guān)系,則可構(gòu)建以下關(guān)系:
觀察式(11)左邊第3項(xiàng),在實(shí)際應(yīng)用中由于物體在空間中的位姿對(duì)Z值的影響較小,可認(rèn)為Zi≈Zj成立,故在此做近似處理,由基本不等式a+b≥可將式(11)化簡(jiǎn):
由于物體始終在相機(jī)前方,故在此Zi≥0恒成立。令xi=,在此以矩形的求解過(guò)程舉例,將其分割為兩個(gè)三角形進(jìn)行求解。
觀察得知,該方程組為超定方程組,在存在測(cè)量誤差的情況下,該方程組一般而言沒(méi)有解,所以使用最小二乘法求其近似解,通過(guò)最小二乘原理,將式(14)轉(zhuǎn)化為如下矩陣進(jìn)行求解。
對(duì)矩陣方程進(jìn)行求解,即可得到各個(gè)頂點(diǎn)的Z軸信息再通過(guò)式(16)求距離信息。將各點(diǎn)距離信息求均值,得到物體中心點(diǎn)的距離信息,至此測(cè)距完成。
為驗(yàn)證所采用方法在實(shí)際應(yīng)用中的準(zhǔn)確度與抗干擾能力,通過(guò)采集多組實(shí)際場(chǎng)景信息對(duì)方法進(jìn)行驗(yàn)證。本文中使用darkflow模塊對(duì)卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行修改和調(diào)用,使用numpy庫(kù)對(duì)幾何模型中的矩陣運(yùn)算進(jìn)行優(yōu)化。
攝像頭使用的物理感光元件為索尼公司的IMX498傳感器,傳感器尺寸為1/2.8英寸,長(zhǎng)寬比例4∶3,攝像頭實(shí)際焦距為3.5 mm。分析該方法的過(guò)程發(fā)現(xiàn),檢測(cè)的精度主要與物體在圖片中的像素尺寸和位姿有關(guān),與物體實(shí)際距離的遠(yuǎn)近無(wú)關(guān),即只要物體在圖像中存在合理的尺寸與位姿,物體的實(shí)際距離并不會(huì)影響該方法的測(cè)量精度,故在此采集了1~4 m范圍內(nèi)的圖像數(shù)據(jù)作方法的驗(yàn)證。通過(guò)該攝像頭檢測(cè)3類大小不同的物體,分別在1、2、3、4 m處各個(gè)不同的位置進(jìn)行圖片采集與檢測(cè),經(jīng)過(guò)篩選后得到總計(jì)42張不同距離和角度的圖像,部分圖像如圖5所示。
對(duì)每組圖像中的物體進(jìn)行距離測(cè)量,測(cè)量結(jié)果如圖6所示。
測(cè)量結(jié)果表明,該測(cè)量方法的精確度較高,在4 m以內(nèi)88%以上的測(cè)量值誤差不超過(guò)0.2 m。測(cè)量誤差并沒(méi)有隨著距離的增加而有較大變化,而是穩(wěn)定在一個(gè)固定的區(qū)間范圍內(nèi)。
圖5 部分圖像
圖6 測(cè)量結(jié)果
基于遷移學(xué)習(xí)的方法改進(jìn)了Tiny-YOLOv2網(wǎng)絡(luò)模型,將原網(wǎng)絡(luò)的檢測(cè)效率與測(cè)試集準(zhǔn)確率提高了1.5幀與11%。通過(guò)該檢測(cè)網(wǎng)絡(luò)得到了被測(cè)物體的標(biāo)簽信息與在圖像中的位置信息,將物體從原圖像中進(jìn)行裁剪用于下一步處理。
提出了一種檢測(cè)物體邊界數(shù)值信息的方法,該方法通過(guò)檢測(cè)到的標(biāo)簽信息對(duì)物體進(jìn)行分類,對(duì)不同種類的物體通過(guò)不同的閾值參數(shù)信息與不同的圖像處理組合方法進(jìn)行邊緣檢測(cè)及邊緣擬合,獲得準(zhǔn)確的物體數(shù)值信息。
建立了一種檢測(cè)物體距離的幾何測(cè)量模型,該模型結(jié)合物體尺寸的先驗(yàn)信息與得到的物體在圖像中的數(shù)值信息,對(duì)物體進(jìn)行準(zhǔn)確的測(cè)距。通過(guò)試驗(yàn)證明,該測(cè)量方法的精確度較高,在4 m以內(nèi)88%以上的測(cè)量值誤差不超過(guò)0.2 m,同時(shí)測(cè)量誤差并沒(méi)有隨著距離的增加而有較大變化,而是穩(wěn)定在一個(gè)固定的區(qū)間范圍內(nèi)。