秦曉輝 ,殷周平 ,張素英 ,黃圣杰 ,張潤邦 ,蘆濤 ,劉碩 ,胡滿江 ,2
(1.湖南大學(xué) 機(jī)械與運(yùn)載工程學(xué)院,湖南 長沙 410082;2.湖南大學(xué) 無錫智能控制研究院,江蘇 無錫 214072;3.濰柴動(dòng)力股份有限公司 發(fā)動(dòng)機(jī)研究院,山東 濰坊 261061)
自主泊車技術(shù)能夠通過傳感器探測視野盲區(qū),利用算法精準(zhǔn)且穩(wěn)定地控制車輛安全泊入目標(biāo)車位,逐漸受消費(fèi)者喜愛.停車位檢測技術(shù)能夠給車輛持續(xù)提供周邊停車位的位置信息,是自主泊車系統(tǒng)中關(guān)鍵的一環(huán).目前,學(xué)者們將許多成熟的目標(biāo)檢測方案應(yīng)用于停車位檢測領(lǐng)域,這些方案通常將停車位檢測分為三個(gè)步驟.
1)入口點(diǎn)檢測:不作區(qū)分地檢測出圖片中所有停車位的入口點(diǎn);
2)入口點(diǎn)匹配:通過人工設(shè)置的規(guī)則將屬于同一個(gè)停車位的入口點(diǎn)進(jìn)行配對;
3)類別和方向判斷:判斷停車位的類別(平行、垂直、傾斜)以及停車位的朝向角度.
通過上述三個(gè)步驟,可以檢測出圖片中停車位的位置信息.如果要獲得停車位的占用信息,則通常需要再額外增加一個(gè)分類模型,將檢測出的停車位從原圖中截取出來送入停車位分類模型作空閑占用分類.
Li 等[1]采用PSDL方法構(gòu)建了4 個(gè)停車位入口點(diǎn)圖案AdaBoost 分類器,每個(gè)分類器負(fù)責(zé)一定朝向角度范圍的停車位入口點(diǎn)圖案判斷,將圖片劃分成多個(gè)入口點(diǎn)圖案大小的區(qū)塊送入分類器網(wǎng)絡(luò)中,獲得停車位入口點(diǎn)的位置,使用人工設(shè)計(jì)的距離約束篩選出能夠組成進(jìn)入線的入口點(diǎn),再使用六個(gè)高斯直線模板匹配查詢出進(jìn)入線代表的車位的類別和朝向.DeepPS 方法[2]采用單階段目標(biāo)檢測網(wǎng)絡(luò)YOLO V2[3]作為入口點(diǎn)檢測網(wǎng)絡(luò),將檢測到的入口點(diǎn)提取出來進(jìn)行基于人工規(guī)則的匹配之后,從圖片中截取出來送入AlexNet[4]分類網(wǎng)絡(luò)中以判斷停車位的類別和方向信息.VPS-Net[5]則對此進(jìn)行改進(jìn),使用單階段錨框檢測網(wǎng)絡(luò)YOLO V3[6]檢測入口點(diǎn)的同時(shí)也對停車位頭的軸平行外接矩形框一起進(jìn)行檢測,并將位于一個(gè)停車位頭的入口點(diǎn)進(jìn)行匹配,最后采用計(jì)算交并比的方式進(jìn)行朝向判斷.后續(xù)DeepPS 的作者再對方案進(jìn)行改進(jìn)[7],采用點(diǎn)向量描述子代替軸平行矩形描述子對入口點(diǎn)進(jìn)行建模,同時(shí)將類別朝向判斷由之前的AlexNet 網(wǎng)絡(luò)改為人工設(shè)計(jì)的模板匹配法.同樣是對入口點(diǎn)描述子進(jìn)行改進(jìn),Wu 等[8]提出PSDet方案,使用圓形描述子配合卷積神經(jīng)網(wǎng)絡(luò)搭建了一個(gè)粗略到精修的方案對入口點(diǎn)進(jìn)行檢測.呂雪杰[9]將DeepPS 方案中的入口點(diǎn)檢測方案由YOLO V2 換成YOLO V3,并使用Focal Loss[10]緩解正負(fù)樣本不平衡問題.Li 等[11]將停車位檢測分為駕駛過程和泊車過程,第一過程使用VPS-Net 停車位檢測網(wǎng)絡(luò),第二過程使用DMPR-PS停車位檢測網(wǎng)絡(luò).
上述方法以不同的方式將目標(biāo)檢測方法引入停車位檢測任務(wù)中,取得一定成效,但是仍然存在以下問題:
1)入口點(diǎn)檢測、入口點(diǎn)匹配、類別朝向分類和空閑占用分類模塊單獨(dú)設(shè)計(jì),提取的特征存在冗余信息,且簡單結(jié)合各個(gè)模塊時(shí)效性低;
2)將兩個(gè)入口點(diǎn)看成獨(dú)立的目標(biāo)進(jìn)行特征提取,沒有利用二者之間的關(guān)聯(lián)性;
3)需要垂直和水平停車位之間的入口點(diǎn)距離范圍先驗(yàn)信息;
4)需要入口點(diǎn)形狀先驗(yàn)信息;
5)將水平線和分隔線之間的夾角回歸問題當(dāng)作分類問題處理,且需要特定的夾角先驗(yàn)信息;
6)人工設(shè)計(jì)的入口點(diǎn)匹配方案時(shí)效性低、泛化性差;
7)目標(biāo)檢測方案選擇不合理,矩形框并不適合描述各種旋轉(zhuǎn)角度以及形狀的停車位入口點(diǎn),點(diǎn)向量模型匹配復(fù)雜度高,且適應(yīng)性差.
在獲取這些先驗(yàn)信息時(shí),做了大量假設(shè),包括:垂直停車位和水平停車位之間的距離在特定范圍內(nèi),進(jìn)入線和分隔線之間的夾角只包含一些特定的角度,入口點(diǎn)的形狀只包含T 形狀或者L 形狀.這些假設(shè)的來源都是基于對數(shù)據(jù)集的統(tǒng)計(jì),當(dāng)數(shù)據(jù)集中停車位信息變化時(shí),就需要重新人工設(shè)計(jì)建模和匹配策略,泛化性很低.
針對上述這些問題,本文提出了從停車位建模出發(fā),采用一個(gè)箭頭來表達(dá)停車位,并以無錨框的方式設(shè)計(jì)端到端的停車位檢測方案.
本文的目標(biāo)是設(shè)計(jì)端到端的無錨框停車位檢測網(wǎng)絡(luò),以此簡化停車位檢測流程,消除各階段之間的特征冗余以及人工設(shè)計(jì)模塊,提升模型的時(shí)效性和泛化性.本文設(shè)計(jì)的網(wǎng)絡(luò)框架如圖1 和式(1)所示,包含停車位的圖片輸入到由四個(gè)階段組成的主干網(wǎng)絡(luò)中進(jìn)行特征提取,通過瓶頸網(wǎng)絡(luò)對后三個(gè)階段的輸出進(jìn)行多進(jìn)單出的融合之后,輸出單尺度特征Fh∈R(h,w,c)至檢測頭,檢測頭通過回歸分支Hf和分類分支Hc進(jìn)行域轉(zhuǎn)換,得出特征中編碼的停車位回歸信息Rr和分類信息Rc.本節(jié)后續(xù)將依次介紹模型的主干網(wǎng)絡(luò)、瓶頸網(wǎng)絡(luò)、檢測頭的設(shè)計(jì).
主干網(wǎng)絡(luò)負(fù)責(zé)對原始圖片的特征提取,這些特征需要包含停車位的全局信息,即朝向、占用以及局部信息(入口點(diǎn)位置);瓶頸網(wǎng)絡(luò)則負(fù)責(zé)不同層次的特征融合,得到包含停車位全局信息和局部信息的特征圖.
本文采用跨越階段部分DarkNet53(Cross Stage Partial DarkNet53,CSP-DarkNet53)作為主干網(wǎng)絡(luò),該網(wǎng)絡(luò)在DarkNet 的基礎(chǔ)上增加了部分跨越層級連接.DarkNet 參考了ResNet 的殘差結(jié)構(gòu)和批標(biāo)準(zhǔn)化結(jié)構(gòu).
CSPNet[12]將特征圖進(jìn)行分流,能夠在保留特征復(fù)用的同時(shí)避免很多重復(fù)梯度信息,并實(shí)現(xiàn)豐富的梯度信息融合,使用CSP 結(jié)構(gòu)對DarkNet進(jìn)行改進(jìn)之后就得到了本文完整的主干網(wǎng)絡(luò).該結(jié)構(gòu)由一個(gè)基干模塊和四個(gè)階段組成.基干模塊采用Focus 結(jié)構(gòu),旨在通過切片對圖像進(jìn)行下采樣操作,相比于傳統(tǒng)的下采樣操作,F(xiàn)ocus 模塊能夠?qū)⒃紙D片的寬高信息無損地集成到通道維度,并通過卷積進(jìn)行進(jìn)一步特征提取.階段模塊則由卷積模塊和CSP 模塊構(gòu)成,如圖2 所示,其中包含Conv 字樣的子模塊都是由卷積、批標(biāo)準(zhǔn)化和Swish 激活函數(shù)構(gòu)成,而區(qū)塊則是由兩個(gè)卷積模塊構(gòu)成的殘差模塊,C 代表通道維度的拼接.由此可見,每個(gè)階段都是由小殘差結(jié)構(gòu)堆疊出的大殘差結(jié)構(gòu),且最后一個(gè)階段的第一個(gè)Conv 模塊之后會(huì)額外通過SPP模塊進(jìn)一步集成全局信息.
圖2 CSP-DarkNet53模塊結(jié)構(gòu)Fig.2 Architecture of CSP-DarkNet53 Module
卷積層的感受野是逐層增加的,下采樣次數(shù)越多,語義信息覆蓋面越廣,位置信息丟失也越嚴(yán)重.為了兼顧語義信息和位置信息,本文設(shè)計(jì)的瓶頸網(wǎng)絡(luò)對感受野大的深層特征和感受野小的淺層特征進(jìn)行融合,結(jié)構(gòu)如圖1 中瓶頸網(wǎng)絡(luò)所示.參與融合的特征層來自主干網(wǎng)絡(luò)中三個(gè)階段的輸出,對應(yīng)原圖的下采樣倍率分別為8、16、32.下采樣倍率越高,特征圖分辨率越低、感受野越高、全局信息越豐富、輸出的停車位數(shù)量越少,反之倍率越低,特征圖分辨率越高、感受野越低、局部信息越豐富、輸出的停車位數(shù)量越多.
檢測網(wǎng)絡(luò)輸出的車位數(shù)量與網(wǎng)絡(luò)反向傳播時(shí)攜帶的信息量息息相關(guān).如式(2)所示,反向傳播時(shí)計(jì)算的損失由正樣本損失和負(fù)樣本損失組成.正樣本需要計(jì)算包括位置回歸、類別分類和置信度等多個(gè)損失,而負(fù)樣本只需計(jì)算置信度損失,當(dāng)負(fù)樣本數(shù)量NN遠(yuǎn)大于NP時(shí),正樣本的損失則可以忽略不計(jì).
以608 圖片輸入為例,最終輸出的車位數(shù)量為:7 581=(608/8)2+(608/16)2+(608/32)2,結(jié)合每個(gè)車位的預(yù)測參數(shù)數(shù)量可以得出網(wǎng)絡(luò)需要輸出68 229=7 581 × 9 個(gè)預(yù)測值.假設(shè)一張圖片中有10 個(gè)停車位,那么采用1 對1 的標(biāo)簽分配時(shí)會(huì)產(chǎn)生7 501 個(gè)負(fù)樣本,10 個(gè)正樣本.對于正樣本,需要約束其回歸位置的準(zhǔn)確度、類別的準(zhǔn)確度等共計(jì)9 個(gè)預(yù)測值,而對于負(fù)樣本只能約束其前背景概率一個(gè)預(yù)測值.也就是說訓(xùn)練一張具有10 個(gè)停車位的圖片,網(wǎng)絡(luò)輸出的68 229 個(gè)預(yù)測值中,只有7 591=68 229 ÷ 10 × 9 +68 229 ÷ 7 501 × 1 個(gè)預(yù)測值會(huì)參與損失計(jì)算,只占總輸出值的11%,這會(huì)使得訓(xùn)練進(jìn)程十分緩慢.且 7 591 個(gè)參與損失計(jì)算的預(yù)測值中,只有6 個(gè)是回歸值,這也會(huì)使得分類和回歸分支的訓(xùn)練進(jìn)程十分不平衡.為了緩解這種不平衡和緩慢的問題,本文設(shè)計(jì)的瓶頸網(wǎng)絡(luò)將三個(gè)階段的輸出進(jìn)行不同程度的下采樣之后融合為32 倍下采樣率的特征圖,大大減少網(wǎng)絡(luò)輸出的停車位數(shù)量以及負(fù)樣本數(shù)量,為后續(xù)設(shè)計(jì)端到端的模型提供保障.不同階段的輸出結(jié)果的感受野不同,將感受野大的特征層和感受野小的特征層直接在通道維度進(jìn)行拼接,會(huì)使得最終得到的特征層在通道層面感受野混疊.所以本文在融合不同階段之間的特征時(shí),先通過注意力機(jī)制對它們的感受野進(jìn)行調(diào)整,使得輸出特征層在通道層面的感受野保持一致.
本文使用ContextBlock 模塊[13]對主干網(wǎng)絡(luò)各個(gè)階段的特征輸出進(jìn)行感受野對齊,該模塊采用transformer[14]和SENet[15]的思想對特征進(jìn)行注意力機(jī)制融合,ContextBlock 模塊結(jié)構(gòu)見圖3.通過核大小為1的卷積集成所有輸入通道維度的信息,再通過歸一化指數(shù)函數(shù)獲得全局的注意力權(quán)重,將權(quán)重施加在輸入特征層上,便獲得了全局信息,使用殘差結(jié)構(gòu)將全局信息和原特征圖進(jìn)行相加,得到最終對齊感受野的特征圖.
圖3 ContextBlock結(jié)構(gòu)圖Fig.3 Architecture of ContextBlock
在將網(wǎng)絡(luò)提取的特征轉(zhuǎn)換為任務(wù)所需的結(jié)果時(shí),檢測頭起到了至關(guān)重要的作用.本文設(shè)計(jì)的一階段停車位檢測方案需要預(yù)測建模為箭頭的停車位進(jìn)入線的首尾坐標(biāo)、停車位的朝向角度,其中坐標(biāo)需要預(yù)測左點(diǎn)和右點(diǎn)的坐標(biāo),既包含回歸任務(wù)也包含分類任務(wù).具體來講,定位任務(wù)和分類任務(wù)所需要的特征是不一樣的,分類往往關(guān)注目標(biāo)物突出的部分,而定位則關(guān)注目標(biāo)物的邊緣[16],如果不加區(qū)別地對這兩個(gè)任務(wù)使用同一特征,會(huì)出現(xiàn)定位很準(zhǔn)確的框分類分?jǐn)?shù)偏低的現(xiàn)象[17].在分類分支,本文使用全連接層對目標(biāo)物進(jìn)行特征歸納,全連接層對每個(gè)區(qū)域使用不同的權(quán)重,使得它的空間敏感性更強(qiáng),更能夠區(qū)分目標(biāo)物的局部以及整體.在定位分支則采用滑動(dòng)窗口設(shè)計(jì)的卷積層對物體的邊界進(jìn)行定位.
本文設(shè)計(jì)的二階段方案檢測頭結(jié)構(gòu)如圖1 中檢測頭所示,檢測頭模塊包含了兩個(gè)卷積子模塊(Conv head),分別負(fù)責(zé)回歸進(jìn)入線的位置以及停車位相關(guān)的角度正弦和余弦值,兩個(gè)全連接子模塊(FC head)分別負(fù)責(zé)預(yù)測停車位是否被占用以及位置精準(zhǔn)度.
本文采用回歸的方式代替主流方案中的分類模塊,以獲得準(zhǔn)確的停車位進(jìn)入線和分隔線的夾角預(yù)測值.樣本中離散角度值數(shù)量小,所以本文設(shè)計(jì)方案不直接回歸進(jìn)入線和分隔線的夾角,而是回歸分隔線相對X 軸正向的旋轉(zhuǎn)角度,這種回歸方式的樣本數(shù)量不再受到停車位的樣式影響,而是取決于停車位整體在圖像中的朝向角度,且通過旋轉(zhuǎn)數(shù)據(jù)增強(qiáng)方法可以很方便地?cái)U(kuò)充樣本數(shù)量.直接預(yù)測范圍在0~360°的角度,值域過大,收斂難度大,本文選擇對角度的正弦值和余弦值進(jìn)行預(yù)測,將范圍由0~360縮減到0~1,最終通過正弦值和余弦值組合計(jì)算出角度的真實(shí)值.
檢測頭輸出值的完整解碼過程見式(3),其中(xp,yp,lp,θp1,p2,p3)是網(wǎng)絡(luò)的輸出結(jié)果,wG和hG是預(yù)測特征所在特征層的寬度和高度下采樣倍數(shù),也即每個(gè)網(wǎng)格的實(shí)際像素寬度和高度,xG和yG則是網(wǎng)格點(diǎn)左上角的實(shí)際像素坐標(biāo),使用范圍在0~1 的sigmoid函數(shù),配合網(wǎng)格左上角點(diǎn)位置和網(wǎng)格寬高即可將cx和cy的預(yù)測結(jié)果控制在該網(wǎng)格點(diǎn)內(nèi).解碼之后可以獲得停車位進(jìn)入線中點(diǎn)的坐標(biāo)、進(jìn)入線的長度、進(jìn)入線偏轉(zhuǎn)角的cos 值,停車位朝向角度的cos 值和sin值.
至此,上述檢測頭能夠根據(jù)每個(gè)錨點(diǎn)預(yù)測一個(gè)代表停車位進(jìn)入線的箭頭,共計(jì)19 × 19=361 個(gè)箭頭,后處理篩選過程必不可少.而后處理篩選需要一個(gè)能夠評判進(jìn)入線質(zhì)量的依據(jù),如果直接將類別分?jǐn)?shù)作為箭頭預(yù)測的準(zhǔn)度,會(huì)使得一些位置精準(zhǔn)但是類別分?jǐn)?shù)低的箭頭被過濾掉[17].為了保留位置精準(zhǔn)的箭頭,本文額外設(shè)計(jì)了一個(gè)分支,對箭頭與真值的歸一化距離進(jìn)行預(yù)測,以此代表箭頭的精準(zhǔn)度,該距離越接近0,箭頭預(yù)測越精準(zhǔn),在后處理篩選時(shí)重要性排序越高.
本文試驗(yàn)用到的硬件平臺(tái)為配備12 G顯存的英偉達(dá)泰坦X 顯卡的塔式服務(wù)器,軟件主要包括 Pytorch、CUDA、CUDNN 等深度 學(xué)習(xí)開 發(fā)庫以 及OpenCV圖像處理庫,具體版本號見表1.
表1 試驗(yàn)配置Tab.1 Configs of the experiment
數(shù)據(jù)集采用同濟(jì)大學(xué)公開的ps2.0 停車位檢測數(shù)據(jù)集,該數(shù)據(jù)集由AVM 環(huán)視影像系統(tǒng)采集,包含訓(xùn)練集圖片9 827張、測試集圖片2 338張,其中測試集又分為室內(nèi)、室外正常光照、室外雨天、室外陰天、室外傾斜車位、室外街道光照6 個(gè)場景,每張環(huán)視圖片分辨率為600×600 像素,代表10 m×10 m 的物理長度范圍.主流的停車位檢測方案在評價(jià)算法性能時(shí)通常單獨(dú)計(jì)算精確率和召回率,沒有考慮平均精確率,且判斷正負(fù)樣本的閾值過大導(dǎo)致正樣本仍然存在較大誤差.本文重新設(shè)計(jì)停車位檢測算法的平均精確率評價(jià)指標(biāo)AP1:5,據(jù)此對各類算法在公開數(shù)據(jù)集上重新測評.AP1:5 是指分別以1~5 的5 個(gè)像素值作為正負(fù)樣本判斷的距離閾值,當(dāng)檢測結(jié)果的左點(diǎn)和右點(diǎn)均滿足這個(gè)閾值時(shí),認(rèn)定檢測結(jié)果為正樣本,再求出最終的平均AP,得到AP1:5.
本文采用上述試驗(yàn)配置,驗(yàn)證停車位檢測算法的性能.首先對主干網(wǎng)絡(luò)進(jìn)行試驗(yàn),使用一些常用的主干網(wǎng)絡(luò)構(gòu)建停車位檢測網(wǎng)絡(luò),進(jìn)行訓(xùn)練之后在ps2.0 數(shù)據(jù)集上測試其性能.試驗(yàn)結(jié)果見表2,其中ResNet50 由He 等[18]于2016 年提出,在網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)中引入殘差結(jié)構(gòu)應(yīng)對退化問題,此后被許多不同領(lǐng)域的算法作為主干網(wǎng)絡(luò)使用.hourglass[19]由多個(gè)包含了上采樣、下采樣、跳層連接的沙漏模塊組成,反復(fù)的上采樣再下采樣,使其能夠捕獲特征之間的關(guān)聯(lián)性,因而常被用于關(guān)鍵點(diǎn)檢測任務(wù)中,而本文設(shè)計(jì)的停車位檢測方案也包含兩個(gè)入口點(diǎn)之間關(guān)聯(lián)信息的提取,所以該主干網(wǎng)絡(luò)也被選為對比網(wǎng)絡(luò)之一.表2 中,P(Precision)表示精確率,R(Recall)表示召回率,F(xiàn)PS(Frames Per Second)表示每秒幀數(shù).
表2 主干網(wǎng)絡(luò)試驗(yàn)結(jié)果Tab.2 Results of backbone
網(wǎng)絡(luò)設(shè)計(jì)時(shí)需要考慮的往往有三個(gè)因素:寬度、深度和基數(shù),式(4)表示的是一個(gè)卷積層,該卷積層由C 路分支卷積結(jié)構(gòu)Convs 構(gòu)成,最終該卷積層的輸出是C 路分支之和,其中C就是基數(shù).基數(shù)反映的是網(wǎng)絡(luò)正向傳播時(shí)特征層的結(jié)合以及反向傳播時(shí)梯度的結(jié)合.
本文所使用的CSP-DarkNet53 相比于ResNet 豐富了特征和梯度的融合.停車位檢測任務(wù)中,網(wǎng)絡(luò)最需要關(guān)注的是車位線的特征,而這些特征都是單一的顏色,且形狀相對固定,所以在前向傳播時(shí)會(huì)存在大量的特征冗余.CSP-DarkNet53 結(jié)構(gòu)(見圖2)的外部殘差和內(nèi)部殘差相結(jié)合,增加了冗余特征的復(fù)用,使得后續(xù)層無需學(xué)習(xí)冗余的特征.同時(shí)這種基數(shù)的增加能夠給網(wǎng)絡(luò)提供隱式的正則化深度監(jiān)督,因?yàn)槊總€(gè)小殘差首尾都會(huì)通過大殘差相連來縮短損失傳遞距離.所以相比ResNet50,CSP-DarkNet53 能夠在將參數(shù)縮小至35.89%的同時(shí),在停車位檢測任務(wù)上取得更好的效果.
hourglass 反復(fù)的堆疊沙漏結(jié)構(gòu)大大增加了網(wǎng)絡(luò)的參數(shù)量,其網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的原理在于通過反復(fù)的上下采樣融合定位和語義信息,這和本文設(shè)計(jì)的瓶頸網(wǎng)絡(luò)結(jié)構(gòu)相沖突,所以速度降低的同時(shí)在精度方面并沒有取得優(yōu)勢.
瓶頸網(wǎng)絡(luò)模塊是不同層級特征融合的關(guān)鍵部分,本文在停車位檢測網(wǎng)絡(luò)中使用不同的瓶頸網(wǎng)絡(luò)進(jìn)行試驗(yàn).FPN[20]以主干網(wǎng)絡(luò)的最后三個(gè)階段的輸出特征層為輸入,將深層的語義信息融合到淺層,輸出三個(gè)不同尺寸的特征圖.PAN[21]在FPN 的基礎(chǔ)上額外增加了從淺層到深層的定位信息與語義信息的融合.MergeFPN 是本文提出的特征融合方案.試驗(yàn)結(jié)果見表3.
表3 瓶頸網(wǎng)絡(luò)試驗(yàn)結(jié)果Tab.3 Results of neck
由表3可知,F(xiàn)PN和PAN的AP1:5精度和速度在本文的停車位檢測框架上表現(xiàn)并不理想.本文輸入的維度為(3,600,600),進(jìn)行reshape 之后變?yōu)椋?,608,608)的圖片輸入主干網(wǎng)絡(luò),輸出主干網(wǎng)絡(luò)最后三個(gè)階段的特征圖,并以該尺度劃分網(wǎng)格進(jìn)行錨點(diǎn)預(yù)測,F(xiàn)PN 和PAN 劃分的錨點(diǎn)數(shù)量為:7 581=19 × 19 +38 × 38+76 × 76,圖4對38 × 38的網(wǎng)格劃分進(jìn)行可視化,網(wǎng)絡(luò)會(huì)在每個(gè)網(wǎng)格內(nèi)預(yù)測一個(gè)錨點(diǎn)偏移.
圖4 預(yù)測密度Fig.4 Density of predictions
FPN 和PAN 在停車位檢測任務(wù)上表現(xiàn)欠佳的原因可以歸納為:
1)網(wǎng)絡(luò)使用1 對1 的標(biāo)簽分配,一張圖片中 7 000 多個(gè)預(yù)測結(jié)果,只有5 個(gè)以內(nèi)的預(yù)測結(jié)果需要計(jì)算位置損失.
2)預(yù)測的錨點(diǎn)放置太密集,如圖4 所示,即使是網(wǎng)絡(luò)隨機(jī)輸出位置偏移,也會(huì)有比較準(zhǔn)確的錨點(diǎn)落在入口點(diǎn)上(圖中紅色網(wǎng)格),使得位置損失非常小.
3)7 000 多個(gè)預(yù)測結(jié)果中每個(gè)都需要計(jì)算位置精度二元交叉熵?fù)p失,但是只有5 個(gè)以內(nèi)的標(biāo)簽為1,其他標(biāo)簽均為0,網(wǎng)絡(luò)只需要將所有樣本的位置精度都預(yù)測為0,準(zhǔn)確度就高達(dá):99.93%=(7 581-5)/ 7 581×100%.
也就是說FPN 和PAN 網(wǎng)絡(luò)只需要隨機(jī)輸出位置,再輸出全0 的位置精度就能夠在訓(xùn)練時(shí)得到一個(gè)較小的損失.圖5 是以FPN 為瓶頸網(wǎng)絡(luò)搭建的停車位檢測網(wǎng)絡(luò)的訓(xùn)練結(jié)果.圖5(a)為損失下降曲線,可以看出損失函數(shù)中,位置損失(入口點(diǎn)的L1 距離損失)和類別損失(交叉熵?fù)p失)始終都維持在一個(gè)較低的值,因?yàn)檫@兩個(gè)損失只需要在正樣本上計(jì)算,而正樣本數(shù)量十分少.位置精度損失pos_con(f交叉熵?fù)p失)在初始階段特別大,之后再維持在一個(gè)穩(wěn)定的值.圖5(b)為訓(xùn)練后期,網(wǎng)絡(luò)推理時(shí)的位置精度值顯示,可以發(fā)現(xiàn)該值全部都接近0,驗(yàn)證了上述的說法,也就是說在FPN 和PAN 這類網(wǎng)格劃分十分細(xì)密的網(wǎng)絡(luò)預(yù)測中,網(wǎng)絡(luò)傾向于什么事都不做,就可以獲得一個(gè)較低的損失.而本文設(shè)計(jì)的MergeFPN 瓶頸網(wǎng)絡(luò)將輸出錨點(diǎn)的數(shù)量降低為FPN/PAN 的4.76%,有效緩解了正樣本損失被淹沒的現(xiàn)象.
圖5 不同瓶頸網(wǎng)絡(luò)訓(xùn)練信息Fig.5 Training statistics of different necks
檢測頭以瓶頸網(wǎng)絡(luò)的輸出特征圖作為輸入,輸出最終的結(jié)果,本文對解耦頭和耦合頭分別進(jìn)行試驗(yàn),其中耦合頭采用的是全卷積頭,一個(gè)卷積模塊直接將特征層維度轉(zhuǎn)變?yōu)椋?9,19,2+1+3),試驗(yàn)結(jié)果見表4.
表4 檢測頭試驗(yàn)結(jié)果Tab.4 Results of detection head
本文設(shè)計(jì)的解耦頭對各個(gè)任務(wù)分開處理,而耦合頭將停車位的位置、角度、空閑占用、精準(zhǔn)度統(tǒng)一使用一個(gè)卷積層進(jìn)行預(yù)測,這其中混雜著不同種類的分類信息和回歸信息,如圖6(a)和圖6(b)所示.耦合檢測頭沒有充分利用卷積層和全連接層的特性,全連接層在特征層的每個(gè)區(qū)域都使用不同的權(quán)重,能夠捕捉停車位整體的信息,所以在空閑占用和精度分類任務(wù)上優(yōu)勢更大,而卷積層使用滑動(dòng)窗口進(jìn)行特征提取,不同區(qū)域使用共享的權(quán)重,所以特征視野更小,更適合位置和角度這類回歸任務(wù),所以統(tǒng)一使用卷積層的耦合檢測頭在AP1:5 精度方面不如將回歸和分類信息使用卷積層和全連接層分開處理的解耦頭.
圖6 不同檢測頭結(jié)構(gòu)Fig.6 Architecture of different detection heads
本文將上述改進(jìn)應(yīng)用于停車位檢測算法中,形成了AFPSD(Anchor-Free Parking Slot Detection)停車位檢測方案.為了以統(tǒng)一的標(biāo)準(zhǔn)對各個(gè)算法進(jìn)行測評,本文對VPS-Net 和DMPR-PS 的代碼進(jìn)程重構(gòu),增加了以AP1:5作為性能指標(biāo)的評測代碼,試驗(yàn)結(jié)果見表5.
表5 不同停車位檢測算法結(jié)果Tab.5 Results of different parking slot detection algorithm
從表5中AP1:5和FPS兩列可以看出,本文設(shè)計(jì)的AFPSD卷積神經(jīng)網(wǎng)絡(luò)錨點(diǎn)端到端停車位檢測算法在精度上高于VPS-Net 和DMPR-PS,分別高出1.2%和2.1%.精度上的領(lǐng)先得益于本文使用統(tǒng)一的箭頭建模方式,將停車位兩個(gè)入口點(diǎn)作為一個(gè)整體,而VPS-Net 和DMPR-PS 均將同一個(gè)停車位的兩個(gè)入口點(diǎn)作為孤立的個(gè)體分開進(jìn)行檢測,忽略了二者之間的關(guān)聯(lián)性特征.在特征融合方面,本文設(shè)計(jì)了多進(jìn)單出的瓶頸網(wǎng)絡(luò),將訓(xùn)練時(shí)的負(fù)樣本數(shù)量降低為原來的4%左右,極大緩解了訓(xùn)練時(shí)的不平衡現(xiàn)象,同時(shí)考慮到分類任務(wù)和回歸任務(wù)的區(qū)別,使用了獨(dú)立的檢測分支,最終AFPSD 的AP1:5 達(dá)到了0.687.在速度方面,本文設(shè)計(jì)的AFPSD 是完全端到端的停車位檢測網(wǎng)絡(luò),無需進(jìn)行非極大值抑制后處理和入口點(diǎn)匹配以及朝向判斷流程,在流程上進(jìn)行了極大的簡化,在網(wǎng)絡(luò)結(jié)構(gòu)上采用了跨越階段連接輕量化設(shè)計(jì),多進(jìn)單出融合等設(shè)計(jì)達(dá)到了12.22 M 的參數(shù)量和88.7的FPS.
2.6.1 旋轉(zhuǎn)敏感性
使用矩形描述子對入口點(diǎn)進(jìn)行建模的方式對停車位角度的變化很敏感,即,當(dāng)測試集中出現(xiàn)了朝向不一致的車位時(shí),網(wǎng)絡(luò)可能無法準(zhǔn)確對其進(jìn)行識(shí)別,而本文使用的進(jìn)入線朝向建模法檢測的是點(diǎn)的位置,具有旋轉(zhuǎn)不變性.為了驗(yàn)證這一特性,本文將一個(gè)車位進(jìn)行四次隨機(jī)角度的旋轉(zhuǎn)之后對其進(jìn)行檢測.圖7第一行是采用矩形描述子的VPS-Net的檢測結(jié)果,第二行是本文提出的AFPSD的檢測結(jié)果,每列是同一個(gè)旋轉(zhuǎn)角度的圖片,第一列是未旋轉(zhuǎn)的原圖.從圖中可以看出,網(wǎng)絡(luò)都能夠?qū)⑽唇?jīng)旋轉(zhuǎn)的原圖中的車位檢測出來,但是當(dāng)車位發(fā)生不同角度的旋轉(zhuǎn)時(shí),VPS-Net 網(wǎng)絡(luò)的檢測結(jié)果開始發(fā)生變化,第二列可以看出藍(lán)色檢測結(jié)果已經(jīng)發(fā)生了輕微的偏移,在第三列時(shí)出現(xiàn)了漏檢現(xiàn)象;而當(dāng)旋轉(zhuǎn)角度進(jìn)一步加大,第四列時(shí)藍(lán)色檢測結(jié)果出現(xiàn)了更大程度的偏移.而本文的算法提取的是箭頭的點(diǎn)特征,當(dāng)車位朝向出現(xiàn)旋轉(zhuǎn)時(shí),從點(diǎn)特征的層面來講,只是點(diǎn)的位置發(fā)生了變化,并沒有角度上的不同,所以本文對各種旋轉(zhuǎn)角度的圖像的檢測表現(xiàn)幾乎沒有差異.
圖7 旋轉(zhuǎn)車位檢測結(jié)果Fig.7 Results of rotating parking slot detection
2.6.2 空閑占用
本文設(shè)計(jì)的停車位檢測網(wǎng)絡(luò)能夠端到端地直接預(yù)測停車位是否被占用,其他方案則需要額外訓(xùn)練一個(gè)停車位空閑占用網(wǎng)絡(luò),并制作分類數(shù)據(jù)集對其進(jìn)行訓(xùn)練.圖8 是本文空閑占用預(yù)測的效果,其中黑色進(jìn)入線表示該車位處于空閑狀態(tài),紅色進(jìn)入線表示該車位已經(jīng)被其他車輛占用.由圖8 可以看出,在不同地面上,本文算法均能檢測出不同狀態(tài)下的車位.
圖8 占用分類結(jié)果Fig.8 Results of occupancy classification
針對主流停車位檢測方案對入口點(diǎn)檢測和匹配分開進(jìn)行處理,提取的特征存在冗余,并需額外設(shè)計(jì)空閑占用分類網(wǎng)絡(luò)等問題.本文提出了基于全景環(huán)視的端到端停車位檢測方案,該方案對停車位進(jìn)行整體性建模,利用屬于同一停車位的兩個(gè)入口點(diǎn)之間的關(guān)聯(lián)信息一體化生成停車位的位置信息,去除入口點(diǎn)匹配、朝向判斷和空閑占用分類步驟.在結(jié)構(gòu)設(shè)計(jì)上,本文以無錨框檢測方案為基礎(chǔ),對瓶頸網(wǎng)絡(luò)進(jìn)行正負(fù)樣本平衡化改進(jìn),同時(shí)設(shè)計(jì)了能夠緩解特征不匹配問題的檢測頭,最終實(shí)現(xiàn)了端到端的停車位檢測方案的設(shè)計(jì).本文的主要貢獻(xiàn)如下:
1)對停車位進(jìn)行整體性建模,而非單獨(dú)處理兩個(gè)入口點(diǎn),簡化了停車位入口點(diǎn)匹配和朝向判斷模塊;
2)設(shè)計(jì)了多進(jìn)單出的瓶頸網(wǎng)絡(luò)進(jìn)行特征融合,降低了輸出樣本數(shù)量以緩解正負(fù)樣本不平衡問題;
3)設(shè)計(jì)了分類回歸解耦檢測頭,緩解特征不匹配問題;
4)設(shè)計(jì)了端到端的無錨框停車位檢測算法,能夠一體化地檢測出停車位位置和占用信息,無需額外進(jìn)行入口點(diǎn)匹配和朝向判斷.
本文方法對于下斜坡這種不符合地平面假設(shè)的場景,檢測結(jié)果無法回投到世界坐標(biāo)系,將在后續(xù)的研究中進(jìn)一步優(yōu)化.