鄒香玲
(河南廣播電視大學(xué),河南 鄭州 450000)
隨著大數(shù)據(jù)和人工智能的不斷發(fā)展,深度學(xué)習(xí)開(kāi)始應(yīng)用到各個(gè)領(lǐng)域,比如目標(biāo)檢測(cè)、自然語(yǔ)言處理等領(lǐng)域。相對(duì)于傳統(tǒng)的基于滑動(dòng)窗口的目標(biāo)檢測(cè),基于深度學(xué)習(xí)的目標(biāo)檢測(cè)使用選擇性搜索算法產(chǎn)生候選區(qū)域提取特征進(jìn)行分類(lèi)和定位,在目標(biāo)檢測(cè)精度和速率方面都有很大的提升。
基于深度學(xué)習(xí)的目標(biāo)檢測(cè)已經(jīng)被廣泛應(yīng)用于地物檢測(cè)、導(dǎo)航系統(tǒng)、智能視頻監(jiān)控、航空航天、醫(yī)學(xué)、農(nóng)業(yè)、軍事等領(lǐng)域。以我們比較熟悉的智慧交通為例,智慧交通是智慧城市的重要組成部分,是未來(lái)城市化建設(shè)和社會(huì)發(fā)展的必然趨勢(shì)。智慧交通的發(fā)展在很大程度上提高了城市的公共服務(wù)水平,為人們的交通出行帶來(lái)很大的便利,尤其是在大城市,隨著車(chē)輛越來(lái)越多,交通擁堵甚至癱瘓已經(jīng)屢見(jiàn)不鮮。智能交通系統(tǒng)能夠根據(jù)獲取的實(shí)時(shí)交通狀況進(jìn)行分析,針對(duì)不同的交通場(chǎng)景進(jìn)行智能處理,從而對(duì)交通進(jìn)行控制,提升道路的通行能力和服務(wù)水平,為大家提供安全的交通環(huán)境。目標(biāo)檢測(cè)是智能交通系統(tǒng)的關(guān)鍵技術(shù),通過(guò)對(duì)車(chē)輛等目標(biāo)進(jìn)行跟蹤識(shí)別,并進(jìn)行分析處理,不僅提高了工作效率和道路的利用率,也極大降低了交通事故的發(fā)生概率。
目標(biāo)檢測(cè)就是找出圖像中感興趣的目標(biāo),進(jìn)行定位和分類(lèi)。實(shí)際環(huán)境是比較復(fù)雜的,由于各個(gè)目標(biāo)的形狀、大小、外觀(guān)等不同,再加上外界環(huán)境因素,如遮擋、光照、天氣等的影響,目標(biāo)檢測(cè)具有一定的難度,也是計(jì)算機(jī)視覺(jué)領(lǐng)域研究的一個(gè)熱門(mén)方向。
深度學(xué)習(xí)的概念是2006年由加拿大學(xué)者Hinton等人提出的,是通過(guò)構(gòu)建一個(gè)多層的神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)高緯度數(shù)據(jù)向量建模。相對(duì)于傳統(tǒng)機(jī)器學(xué)習(xí),深度學(xué)習(xí)通過(guò)多個(gè)非線(xiàn)性隱藏層能夠自動(dòng)提取信息,獲得輸入特征。因其能夠自動(dòng)提取信息獲得輸入特征,提高了效率,保證了檢測(cè)的實(shí)時(shí)性。目前基于深度學(xué)習(xí)的網(wǎng)絡(luò)模型已經(jīng)被廣泛應(yīng)用到計(jì)算機(jī)視覺(jué)的各個(gè)領(lǐng)域,比如目標(biāo)檢測(cè)、圖像分類(lèi)、目標(biāo)分割等。
深度學(xué)習(xí)與傳統(tǒng)計(jì)算機(jī)視覺(jué)的結(jié)合,在目標(biāo)檢測(cè)的精度和效率上都有很大的提升,使基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法已成為當(dāng)前的主流算法。
在傳統(tǒng)的目標(biāo)檢測(cè)方法中,是基于圖片中提出的特征對(duì)其進(jìn)行分類(lèi)和識(shí)別的,從而檢測(cè)出圖片中的目標(biāo)。目標(biāo)檢測(cè)分為三個(gè)階段:區(qū)域選擇;提取目標(biāo)特征;根據(jù)特征進(jìn)行分類(lèi)。區(qū)域選擇是基于滑動(dòng)窗口進(jìn)行的,目標(biāo)特征通常使用HOG、SIFT等特征進(jìn)行提取,最后分類(lèi)使用SVM、AdaBoost等分類(lèi)器進(jìn)行分類(lèi)。
傳統(tǒng)的算法可以分為兩大類(lèi):基于特征的目標(biāo)檢測(cè)和基于運(yùn)動(dòng)的目標(biāo)檢測(cè)?;谔卣鞯哪繕?biāo)檢測(cè)是利用圖像處理技術(shù)來(lái)提取圖片內(nèi)的各種特征(如大小、顏色、形狀等)?;谔卣鬟M(jìn)行目標(biāo)檢測(cè),主要的方法有:使用增強(qiáng)HOG功能進(jìn)行車(chē)輛檢測(cè)[1],以及利用線(xiàn)性SVM分類(lèi)器來(lái)實(shí)現(xiàn)[2];利用高斯混合模型來(lái)獲取車(chē)輛特征[3]?;谶\(yùn)動(dòng)的目標(biāo)檢測(cè)是通過(guò)逐像素地比較靜態(tài)背景幀和視頻場(chǎng)景的當(dāng)前幀[4],首先建立背景模型,通過(guò)比較當(dāng)前幀和背景模型找出變化比較顯著的區(qū)域檢測(cè)出來(lái)。在背景模型的基礎(chǔ)上,YangH等人[5]對(duì)圖片進(jìn)行分解,實(shí)現(xiàn)了車(chē)輛實(shí)時(shí)檢測(cè)。但是實(shí)際應(yīng)用范圍有限。
傳統(tǒng)的目標(biāo)檢測(cè)算法存在特征構(gòu)建復(fù)雜,檢測(cè)精度不高,檢測(cè)速率較低等問(wèn)題。隨著深度學(xué)習(xí)的提出,人們將深度學(xué)習(xí)與傳統(tǒng)的計(jì)算機(jī)視覺(jué)結(jié)合,開(kāi)始研究基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,目前已成為計(jì)算機(jī)視覺(jué)領(lǐng)域的一個(gè)研究熱點(diǎn)。
傳統(tǒng)的目標(biāo)檢測(cè)算法由于其約束條件較多,在實(shí)際應(yīng)用中比較有限?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法,其自身有較強(qiáng)的學(xué)習(xí)能力,在實(shí)際應(yīng)用中更為廣泛。
基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法包括Two-Stage目標(biāo)檢測(cè)算法和One-Stage目標(biāo)檢測(cè)算法兩大類(lèi)。Two-Stage目標(biāo)檢測(cè)算法將檢測(cè)問(wèn)題分成兩個(gè)階段,首先進(jìn)行候選區(qū)域(Region Proposals)的選擇,然后對(duì)候選區(qū)域進(jìn)行分類(lèi)和定位,典型算 法 代 表 有RCNN,SPP-Net,F(xiàn)ast RCNN,F(xiàn)aste RCNN等。在One-Stage目標(biāo)檢測(cè)算法中只包含一個(gè)階段對(duì)目標(biāo)進(jìn)行分類(lèi)和定位,沒(méi)有候選區(qū)域(Region Proposals)的選擇這一階段,典型算法代表 有YOLO、YOLOv2、YOLO9000、YOLOv3、SSD。評(píng)判圖像目標(biāo)檢測(cè)模型的重要標(biāo)準(zhǔn)是檢測(cè)精度和檢測(cè)速度。從評(píng)判標(biāo)準(zhǔn)來(lái)看,這兩類(lèi)算法相比,One-Stage算法速度相對(duì)更快,Two-Stage精度相對(duì)更高。
RCNN是2013年Girshick[6]等提出的目標(biāo)檢測(cè)模型,是將深度學(xué)習(xí)和傳統(tǒng)的計(jì)算機(jī)視覺(jué)相結(jié)合的第一代RCNN算法。RCNN在輸入圖像中使用選擇性搜索方法提取出約2000個(gè)候選區(qū)域,為適應(yīng)全連接層的輸入使用剪裁[7]和變形[8]的方法將提取出的候選區(qū)域的尺寸固定為統(tǒng)一大小,然后用SVM進(jìn)行分類(lèi),最后使用NMS進(jìn)行定位。RCNN相對(duì)于傳統(tǒng)的目標(biāo)檢測(cè)算法雖然提高了精度,由于實(shí)際圖片大小不一,對(duì)圖像進(jìn)行剪裁和變形歸一化,會(huì)導(dǎo)致信息丟失和位置信息扭曲,影響識(shí)別精度。此外,RCNN在對(duì)每個(gè)候選區(qū)域調(diào)用CNN進(jìn)行特征值計(jì)算時(shí)比較耗時(shí),影響了檢測(cè)速度。
為解決RCNN中對(duì)每個(gè)候選區(qū)域(候選區(qū)域間存在重復(fù))調(diào)用CNN提取特征值耗時(shí)的缺點(diǎn),2014年He等人[9]提出了空間金字塔網(wǎng)絡(luò)(SpatiaPyramid Pooling Network,SPP-Net)檢測(cè)算法,該模型中引入SSP層,使得能夠輸入任意尺寸的候選區(qū)域,實(shí)現(xiàn)了多尺度輸入,輸入的圖像無(wú)須經(jīng)過(guò)裁剪和變形,并且只需對(duì)圖像進(jìn)行一次CNN運(yùn)算提取特征,提高了識(shí)別精度和檢測(cè)速率。
2015年,Girshick等 人[10]借 鑒SPP-Net中 的SPP金字塔池化的思想,使用單尺度的ROI Pooling層統(tǒng)一候選區(qū)域特征的大小,然后輸入全連接層進(jìn)行目標(biāo)分類(lèi)和定位,提出了Fast RCNN算法。該算法采用多任務(wù)訓(xùn)練模式,使分類(lèi)和定位共享卷積特征同時(shí)訓(xùn)練,初步實(shí)現(xiàn)了端對(duì)端的圖像目標(biāo)檢測(cè),提高了檢測(cè)速率和精度。但是,在該算法中前期仍然使用區(qū)域選擇性搜索算法進(jìn)行候選區(qū)域的選擇,比較耗時(shí),成為提升效率的瓶頸。
Faster RCNN在Fast RCNN的基礎(chǔ)上使用RPN取代選擇性搜索算法來(lái)產(chǎn)生候選區(qū)域,并引入了先驗(yàn)框。RPN是一個(gè)全卷積網(wǎng)絡(luò),可以同時(shí)在每個(gè)位置上預(yù)測(cè)出目標(biāo)邊界和目標(biāo)概率并產(chǎn)生高質(zhì)量候選區(qū)域,然后通過(guò)ROIpooling將卷積特征變成固定大小的ROI特征輸入全連接層進(jìn)行目標(biāo)分類(lèi)和位置回歸,實(shí)現(xiàn)了端到端的目標(biāo)檢測(cè),極大提高了檢測(cè)速度,但是對(duì)小目標(biāo)檢測(cè)效果不好。
RFCN使用最后一層卷積層進(jìn)行預(yù)測(cè),其他所有層移至前面做共享網(wǎng)路,為了防止平移的可變性變差,影響檢測(cè)精度,引入了位置敏感分?jǐn)?shù)網(wǎng)絡(luò)層。相對(duì)于Faster RCNN,RFCN在檢測(cè)精度和效率上有了很大提升,RFCN的mAP達(dá)到了83.6%,每張圖像耗時(shí)為170ms。[11]
Mask RCNN算法引入RoIalign層替換Faster RCNN中的RoIpooling層,RoIpooling層主要是提取粗略的空間量化特征并進(jìn)行四舍五入,四舍五入會(huì)丟失一些信息,RoIalign層使用雙線(xiàn)性插值方法,可以保留精確的位置數(shù)據(jù),提高了檢測(cè)的性能。
Two-Stage目標(biāo)檢測(cè)算法雖然在檢測(cè)精度上有了很大提高,實(shí)現(xiàn)了端到端的目標(biāo)檢測(cè),但是檢測(cè)效率低,無(wú)法滿(mǎn)足實(shí)時(shí)性要求。One-Stage目標(biāo)檢測(cè)算法解決了這一弊端。One-Stage目標(biāo)檢測(cè)算法簡(jiǎn)化了檢測(cè)流程,只包含一個(gè)階段即對(duì)目標(biāo)進(jìn)行分類(lèi)和定位,沒(méi)有候選區(qū)域(Region Proposals)的選擇這一階段,極大提高了檢測(cè)速率。One-Stage目標(biāo)檢測(cè)算法包含YOLO[12]系列和SSD[13]系列。
YOLO(You Only Look Once)檢測(cè)模型是在2016年由Redmon等[12]提出,該模型通過(guò)使用S×S的網(wǎng)格圖覆蓋于輸入圖像,將輸入圖像進(jìn)行網(wǎng)格化,經(jīng)過(guò)一次計(jì)算檢測(cè),每個(gè)網(wǎng)格負(fù)責(zé)中心在其網(wǎng)格中的目標(biāo),并預(yù)測(cè)邊界框的類(lèi)別信息及置信度,通過(guò)設(shè)置置信度篩選邊界框,置信度低的邊界框?qū)⒈簧釛壍?,并?duì)保留下來(lái)的置信度高的邊界框做NMS處理。在YOLO檢測(cè)模型中,由于網(wǎng)格的大小和置信度的設(shè)置,導(dǎo)致存在目標(biāo)定位不精準(zhǔn)、漏檢等問(wèn)題,尤其對(duì)群體目標(biāo)和小目標(biāo)檢測(cè)效果不好。[14]
針對(duì)YOLO檢測(cè)模型存在網(wǎng)格大小固定、目標(biāo)定位不精準(zhǔn)等問(wèn)題,Redmon等[15]提出了YOLOv2、YOLO9000和YOLOv3的 擴(kuò) 展 模 型。[14]YOLOv2借鑒了Faster RCNN的錨點(diǎn)思想,使用卷積層替代全連接層進(jìn)行分類(lèi)和定位,并對(duì)網(wǎng)格的設(shè)計(jì)做了改進(jìn),可以提供不同尺寸的boxes,提高了圖像的分辨率,提高了檢測(cè)小目標(biāo)的性能。在YOLOv2的基礎(chǔ)上,YOLO9000提出了目標(biāo)分類(lèi)和檢測(cè)的聯(lián)合訓(xùn)練方法,在檢測(cè)種類(lèi)、速度等方面有很大提升,其檢測(cè)種類(lèi)超過(guò)9000個(gè)。YOLOv3算法借鑒了殘差網(wǎng)絡(luò)中跳躍連接的思路,構(gòu)建了53層基準(zhǔn)網(wǎng)絡(luò),對(duì)多尺度目標(biāo)采用3個(gè)不同尺度的特征圖進(jìn)行目標(biāo)檢測(cè),對(duì)小目標(biāo)的檢查提高了性能,用logistic代替softmax分類(lèi)器預(yù)測(cè)類(lèi)別,可同時(shí)預(yù)測(cè)多個(gè)類(lèi)別,檢測(cè)多標(biāo)簽?zāi)繕?biāo)對(duì)象。[16]
SSD算法是2016年由Liu等人[13]提出來(lái)的。結(jié)合了Mask RCNN檢測(cè)精度高和YOLO檢測(cè)速度快的優(yōu)點(diǎn),同時(shí)保證了檢測(cè)精度和速度。SSD采用回歸的思想,同時(shí)借鑒了Faster RCNN中anchor的思想,使用特征金字塔進(jìn)行分類(lèi)和定位,對(duì)不同尺寸的特征圖采用不同的預(yù)測(cè)。由于檢測(cè)目標(biāo)大小不一,對(duì)大小不同的目標(biāo)進(jìn)行不同檢測(cè)。SSD存在同一目標(biāo)被重復(fù)檢測(cè)的問(wèn)題,不同層分別檢測(cè)所在層的目標(biāo),沒(méi)有考慮層間的關(guān)聯(lián)性,所以對(duì)小目標(biāo)的檢測(cè)效果不好。RSSD算法增加了不同層間特征的關(guān)聯(lián)性,加強(qiáng)了上下文信息之間的聯(lián)系,解決了SSD中同一目標(biāo)被重復(fù)檢測(cè)的問(wèn)題,改善了小物體的檢測(cè)效果。SSD構(gòu)建金字塔時(shí)直接從高層特征開(kāi)始,丟失了低層特征映射的機(jī)會(huì),而FPN金字塔將高、低層特征融合在一起利用,提高了準(zhǔn)確度。FPN算法在小目標(biāo)的檢測(cè)性能上有很大的提高。表1展示了基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法的檢測(cè)精度和速度,One-Stage算法檢測(cè)速率比較高,Two-Stage算法檢測(cè)速率相對(duì)較低,但是檢測(cè)精度較高。
目標(biāo)檢測(cè)算法具有很強(qiáng)的通用性,在各個(gè)領(lǐng)域得到了廣泛應(yīng)用,對(duì)于數(shù)據(jù)不豐富的項(xiàng)目采用傳統(tǒng)的目標(biāo)檢測(cè)算法可能會(huì)取得較好的效果,對(duì)數(shù)據(jù)量較大的項(xiàng)目可以采用基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,提高檢測(cè)精度和速率。Two-Stage算法首先利用選擇性搜索算法產(chǎn)生候選區(qū)域,然后利用卷積神經(jīng)網(wǎng)提出特征進(jìn)行分類(lèi)和定位,該類(lèi)算法需要對(duì)每個(gè)候選區(qū)域進(jìn)行計(jì)算,提高了檢測(cè)精度,但是檢測(cè)速度較慢;One-Stage算法利用回歸模型進(jìn)行分類(lèi)和定位,不產(chǎn)生候選區(qū)域,提高了檢測(cè)速度,但是檢測(cè)精度有所下降。相對(duì)于傳統(tǒng)的目標(biāo)檢測(cè)算法,雖然基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法在檢測(cè)精度和速度上都有了很大的提高,但是還有改進(jìn)空間,需要在提升檢測(cè)精度和速度的同時(shí)降低復(fù)雜度提高檢測(cè)性能。目標(biāo)檢測(cè)算法普適性較差,對(duì)小目標(biāo)檢測(cè)不理想,由于小目標(biāo)中包含的圖像像素少,特征信息不明顯,易出現(xiàn)漏檢或誤檢。因此,對(duì)復(fù)雜場(chǎng)景下的小目標(biāo)檢測(cè)研究具有很大的挑戰(zhàn)。1.改進(jìn)目標(biāo)檢測(cè)算法提高對(duì)小目標(biāo)的檢測(cè)效率,使其具有較高的檢測(cè)精度和速度。2.未來(lái)小目標(biāo)檢測(cè)可應(yīng)用到各個(gè)領(lǐng)域,如智能醫(yī)療等,但是對(duì)小目標(biāo)的檢測(cè),沒(méi)有大規(guī)模的小目標(biāo)數(shù)據(jù)集做支撐,需要構(gòu)建大規(guī)模的小目標(biāo)數(shù)據(jù)集。3.由于各個(gè)領(lǐng)域目標(biāo)檢測(cè)環(huán)境的復(fù)雜性和可變性,未來(lái)小目標(biāo)的檢測(cè),要能適應(yīng)場(chǎng)景的變化,增強(qiáng)其遷移性。
目標(biāo)檢測(cè)是當(dāng)前計(jì)算機(jī)視覺(jué)領(lǐng)域的一個(gè)重要的研究分支,具有很大的挑戰(zhàn)性和廣闊的應(yīng)用前景。目標(biāo)檢測(cè)廣泛應(yīng)用于醫(yī)療、工業(yè)、農(nóng)業(yè)、航空航天等領(lǐng)域。本文分析總結(jié)了現(xiàn)有的目標(biāo)檢測(cè)算法的不足和改進(jìn)等,對(duì)未來(lái)的發(fā)展趨勢(shì)進(jìn)行了展望,對(duì)小目標(biāo)的檢測(cè)研究將是未來(lái)的一個(gè)研究方向。