周 斌,蘇 鵬,高 鵬
(武漢理工大學(xué) 機(jī)電工程學(xué)院,湖北 武漢 430070)
近年來(lái),西氣東輸工程中積極采用自動(dòng)化的管理措施,以降低工人的工作強(qiáng)度,并及時(shí)發(fā)現(xiàn)西氣東輸管道系統(tǒng)存在的安全隱患[1]。在西氣東輸油氣場(chǎng)站的管道沿線存在第三方施工,其中最大的威脅就是施工方的工程挖掘機(jī)非正常施工時(shí)對(duì)油氣管道的誤破壞。因此,在這種環(huán)境下對(duì)具有自動(dòng)識(shí)別檢測(cè)工程挖掘機(jī)功能的智能監(jiān)控系統(tǒng)有著迫切的需求。
在智能監(jiān)控的發(fā)展中,對(duì)目標(biāo)物體的檢測(cè)是研究重點(diǎn)。近年來(lái),隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,尤其以卷積神經(jīng)網(wǎng)絡(luò)為代表,將深度學(xué)習(xí)和計(jì)算機(jī)視覺(jué)相結(jié)合,使得目標(biāo)檢測(cè)的準(zhǔn)確性和實(shí)時(shí)性不斷提升?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)框架利用卷積神經(jīng)網(wǎng)絡(luò)從大量的圖像數(shù)據(jù)中學(xué)習(xí)特征,從而能更好地刻畫(huà)數(shù)據(jù)內(nèi)在的豐富信息,并且此類網(wǎng)絡(luò)在一個(gè)模型中融合了特征提取、特征選擇和特征分類,提高了對(duì)圖像特征的辨識(shí)力,使其在定位和分類的準(zhǔn)確度上明顯優(yōu)于基于傳統(tǒng)圖像處理的目標(biāo)檢測(cè)方法,成為目前處理目標(biāo)檢測(cè)任務(wù)的研究熱點(diǎn)[2]。其中應(yīng)用較為廣泛的目標(biāo)檢測(cè)方法主要可以分為兩類:一類是基于候選框的目標(biāo)檢測(cè)算法,如R-CNN(region convolutional neural networks)[3]、Fast R-CNN(fast region convolutional neural networks)、Faster R-CNN(faster region convolutional neural networks)[4]等,這類算法首先獲取圖像中可能存在目標(biāo)的子區(qū)域,接著將所有的子區(qū)域作為輸入,并通過(guò)深度卷積神經(jīng)網(wǎng)絡(luò)提取目標(biāo)特征,最后進(jìn)行類別檢測(cè)和邊框修正;另一類是基于回歸位置的目標(biāo)檢測(cè)算法,如SSD(single shot mutibox dectecter)[5]、YOLO(you only look once)[6]系列等,此類算法只使用一個(gè)卷積神經(jīng)網(wǎng)絡(luò)便可以在整個(gè)圖像上實(shí)現(xiàn)對(duì)目標(biāo)的定位和類別概率的預(yù)測(cè),網(wǎng)絡(luò)結(jié)構(gòu)相對(duì)于第一類目標(biāo)檢測(cè)算法簡(jiǎn)單,并且能夠?qū)崿F(xiàn)端到端的優(yōu)化,使檢測(cè)速度有了很大的提升,具有對(duì)視頻圖像進(jìn)行實(shí)時(shí)處理的功能。
在油氣場(chǎng)站中,當(dāng)工程挖掘機(jī)誤進(jìn)入危險(xiǎn)區(qū)域,智能監(jiān)控系統(tǒng)能夠?qū)崟r(shí)檢測(cè)到挖掘機(jī)位置,并發(fā)出報(bào)警信號(hào)。因此筆者采用YOLOv3算法為工程挖掘機(jī)檢測(cè)的基礎(chǔ)框架,并在提高檢測(cè)精度和防止漏檢問(wèn)題方面提出改進(jìn)設(shè)計(jì)。
2015年,Joseph Redmon等提出了YOLO第一代算法,在2017年和2018年期間,Redmon等人又分別提出了YOLOv2[7]和YOLOv3[8],增強(qiáng)了檢測(cè)精度與速率,并且在數(shù)據(jù)集上的mAP(mean average precision)率得到大幅度提高。
在YOLO算法中,不再采用Faster R-CNN中先利用RPN(region proposal network)網(wǎng)絡(luò)找出目標(biāo)候選區(qū)域,再去對(duì)區(qū)域內(nèi)的物體進(jìn)行識(shí)別的方式,而把整幅圖的目標(biāo)檢測(cè)視為回歸問(wèn)題,直接將圖像輸入一個(gè)網(wǎng)絡(luò)層,就可以得到圖像中所有待檢測(cè)目標(biāo)的位置和目標(biāo)類別,直接輸出檢測(cè)框和類別概率。從YOLOv2開(kāi)始,借鑒Faster R-CNN的思想預(yù)測(cè)bounding box的偏移,引入了anchor box來(lái)預(yù)測(cè)bounding box,解決了YOLO中一個(gè)網(wǎng)格只能預(yù)測(cè)一個(gè)類別的弊端。并在YOLOv3中實(shí)現(xiàn)了多尺度預(yù)測(cè),在滿足一定實(shí)時(shí)性的基礎(chǔ)上,進(jìn)一步提高了小物體的檢測(cè)精度。
YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。不同于YOLOv2,YOLOv3采用Darknet-53作為目標(biāo)檢測(cè)框架的backbone,用于提取輸入圖像的特征。YOLOv3能夠輸出3種尺度的特征圖,其中尺度2和尺度3,通過(guò)卷積塊與上采樣層的方式實(shí)現(xiàn),3個(gè)尺度分別預(yù)測(cè)不同大小的目標(biāo)物體。目標(biāo)物體的中心存在于哪個(gè)一個(gè)網(wǎng)格中,就采用這個(gè)網(wǎng)格來(lái)預(yù)測(cè)該目標(biāo)。YOLOv3設(shè)定每個(gè)網(wǎng)格單元預(yù)測(cè)3個(gè)bounding box,同時(shí)每一個(gè)bounding box都需要預(yù)測(cè)bounding box的位置信息(x,y,w,h)和置信度(confidence)。然后采用非極大值抑制算法(non-maximum suppression, NMS),去除置信得分較低的bounding box,保留置信得分較高的邊界框?yàn)槟繕?biāo)的檢測(cè)框。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)圖
在原作者的YOLOv3框架中,9個(gè)anchor box值是通過(guò)K-means聚類算法[9]對(duì)COCO(common objects in comtext)數(shù)據(jù)集中的20類物體的形狀比聚類學(xué)習(xí)得到的,這9個(gè)anchor box的數(shù)據(jù)為:(10,13)、(16,30)、(33,23)、(30,61)、(62,45)、(59,119)、(116,90)、(156,198)和(373,326)。對(duì)于文中的目標(biāo)對(duì)象工程挖掘機(jī),不宜再使用原本的anchor box值,需要對(duì)其進(jìn)行改進(jìn),通過(guò)聚類算法得到適合工程挖掘機(jī)的anchor box數(shù)據(jù)。在原有框架中的K-means算法有一個(gè)不足,即最開(kāi)始的K個(gè)劃分類別的聚類中心是隨機(jī)產(chǎn)生的。一般來(lái)講,對(duì)于絕大多數(shù)數(shù)據(jù)集,最初聚類中心點(diǎn)選擇的不同一般都會(huì)產(chǎn)生不一樣的聚類結(jié)果。為了避免這種隨機(jī)情況,使用對(duì)K-means算法優(yōu)化后的K-means++算法。K-means++算法中的第一個(gè)聚類中心點(diǎn)是隨機(jī)抽取的,在選擇之后的聚類中心點(diǎn)時(shí),優(yōu)先選擇相隔最遠(yuǎn)的中心點(diǎn),直到K個(gè)聚類中心全部找出,最后對(duì)這K個(gè)聚類中心使用K-means算法進(jìn)行數(shù)據(jù)點(diǎn)分類。
K-means++算法相比于K-means算法只是在聚類中心點(diǎn)的選擇上不同,前者選擇了更加符合樣本規(guī)律中相隔最遠(yuǎn)的點(diǎn),這樣會(huì)更合理,使得數(shù)據(jù)在聚類時(shí)更容易收斂,最后的分類效果也會(huì)更好。同時(shí),聚類求anchor box的目的是使其與鄰近的真實(shí)框有更大的IOU(intersection over union)值,IOU表示真實(shí)標(biāo)注框與網(wǎng)絡(luò)最終產(chǎn)生的預(yù)測(cè)框的交并比,用來(lái)衡量預(yù)測(cè)邊界框的準(zhǔn)確性。因此在進(jìn)行K-means++聚類的過(guò)程中,將算法中找出歐式距離最大的步驟更改為找出使distance(box,centroid)最大的聚類中心。其計(jì)算公式如下:
Distence(box,centroid)=1-IOU(box,centroid)
(1)
式中:box為某個(gè)類別的真實(shí)標(biāo)準(zhǔn)框;centroid為聚類中心框。
為了保證聚類的數(shù)據(jù)更加一般化,重復(fù)K-means++算法3~4次,直至相鄰兩次的聚類中心點(diǎn)變化不大。K-means++算法迭代結(jié)束后,根據(jù)聚類的結(jié)果統(tǒng)計(jì)得到一組工程挖掘機(jī)的anchor box值為(27,23)、(78,45)、(94,89)、(107,71)、(136,96)、(203,138)、(257,157)、(324,247)和(375,201)。
在YOLOv3框架中,每個(gè)物體可能會(huì)有多個(gè)預(yù)測(cè)邊界框,而選擇預(yù)測(cè)效果最好的邊界框是采用非極大值抑制(NMS)算法。它的原理就是簡(jiǎn)單的將置信度最大的預(yù)測(cè)邊界框留下,而與其重疊過(guò)多的邊界框直接刪去。但這種過(guò)于直接的“貪心式”算法就會(huì)導(dǎo)致YOLOv3在檢測(cè)部分有遮擋的物體時(shí)發(fā)生錯(cuò)誤,刪除遮擋物體的預(yù)測(cè)邊框從而導(dǎo)致漏檢。如圖2所示。
圖2 互相遮擋的工程挖掘機(jī)
在圖2中,對(duì)于黑色邊界框和白色邊界框中的工程挖掘機(jī),前者的置信度為0.98,后者的置信度為0.86,由于兩者有遮擋,兩個(gè)邊界框有重疊部分,因此在使用傳統(tǒng)NMS算法時(shí),若重合度閾值過(guò)小,會(huì)保留置信度更高的黑色邊界框,刪除白色邊界框,就會(huì)產(chǎn)生由于遮擋而漏檢的問(wèn)題。黑色和白色邊界框遮擋面積不大,還能由較大的閾值消除影響,但白色和灰色邊界框遮擋面積過(guò)大,若再增大重合度閾值,也會(huì)影響算法整體準(zhǔn)確度,產(chǎn)生誤檢。因此針對(duì)該問(wèn)題嘗試使用軟化非極大值抑制算法soft-NMS來(lái)對(duì)YOLOv3算法進(jìn)行改進(jìn)[10],優(yōu)化其對(duì)遮擋工程挖掘機(jī)漏檢的問(wèn)題。
在soft-NMS算法中,不再直接將高于一定閾值的邊界框刪除,而是借鑒軟間隔支持向量機(jī)的思想,對(duì)其置信度分?jǐn)?shù)進(jìn)行衰減,公式如下:
(2)
式中:Sc為某邊界框的置信度;M為輸出位置的邊界框;bc為與M有重疊的邊界框;T為閾值大小。
針對(duì)工程挖掘機(jī)的soft-NMS算法步驟(步驟(1)~步驟(3)與NMS一致)為:
(1)先將低于一定置信度的邊界框刪除;
(2)將剩下所有邊界框按置信度大小排序;
(3)將置信度最大的邊界框添加到輸出位置;
(4)計(jì)算每個(gè)邊界框與輸出位置邊界框的IOU大小,若高于設(shè)定閾值,則使用式(2)對(duì)其置信度進(jìn)行衰減,低于閾值則不變;
(5)重復(fù)步驟(2)~步驟(4),將所有的邊界框?qū)ο筇幚硗瓿桑?/p>
(6)按需求刪除輸出位置的邊界框,最后顯示的則是最好的工程挖掘機(jī)預(yù)測(cè)結(jié)果。
在上述的優(yōu)化步驟后,雖然理論上會(huì)降低被遮擋工程挖掘機(jī)的預(yù)測(cè)置信度分?jǐn)?shù),但相較于NMS直接刪除邊界框的暴力求解而導(dǎo)致的漏檢現(xiàn)象,該優(yōu)化方法能對(duì)YOLOv3檢測(cè)遮擋物體時(shí)的精度起到一定提升作用。
實(shí)驗(yàn)數(shù)據(jù)集中圖像主要來(lái)自拍攝現(xiàn)場(chǎng)存在工程挖掘機(jī)的視頻取幀得到的圖像,為了增加數(shù)據(jù)集的數(shù)量,從網(wǎng)絡(luò)爬蟲(chóng)中得到部分圖像。最后經(jīng)過(guò)篩選,剔除了模糊、遮擋嚴(yán)重的圖像,并在保證樣本的多樣性后,數(shù)據(jù)集總共選取了2 000幅圖像,其中1 800幅圖像歸為訓(xùn)練集,200幅圖像歸為測(cè)試集。
準(zhǔn)備好數(shù)據(jù)集后,需要對(duì)其進(jìn)行標(biāo)注,使標(biāo)注后的圖像具有學(xué)習(xí)的意義[11]。對(duì)于幾千幅圖像,不可能采用人工的方式去標(biāo)注挖掘機(jī)在圖像中像素點(diǎn)的位置信息,可采用labelImg數(shù)據(jù)標(biāo)注工具,分別對(duì)訓(xùn)練集和測(cè)試集共2 000幅圖像進(jìn)行邊界框的標(biāo)注。在圖像中畫(huà)出工程挖掘機(jī)的邊界框后,labelImg工具可以自動(dòng)生成YOLOv3所需的txt配置文件。其中信息包括:物體類別(從0開(kāi)始,本文屬于單目標(biāo)識(shí)別,因此挖掘機(jī)類別記為0)、x,y(挖掘機(jī)目標(biāo)中心點(diǎn)的坐標(biāo)相對(duì)于整幅圖像的比例大小)、w,h(挖掘機(jī)目標(biāo)框的寬高相對(duì)于整幅圖像的比例大小),訓(xùn)練集標(biāo)注過(guò)程效果圖和生成的部分txt配置文件如圖3和圖4所示。
圖3 訓(xùn)練集標(biāo)注過(guò)程效果圖
圖4 生成的txt配置文件
深度學(xué)習(xí)的實(shí)驗(yàn)環(huán)境對(duì)訓(xùn)練的速度影響很大,筆者所采用的軟硬件環(huán)境如表1所示。
表1 相關(guān)環(huán)境配置
訓(xùn)練過(guò)程中隨著時(shí)間的推移損失值loss函數(shù)慢慢開(kāi)始收斂,訓(xùn)練過(guò)程的界面如圖5所示。
圖5 訓(xùn)練過(guò)程界面圖
訓(xùn)練迭代次數(shù)超過(guò)15 000次后,損失值loss圖像變化緩慢,趨于穩(wěn)定狀態(tài),最終停止訓(xùn)練。本次訓(xùn)練持續(xù)了一整天,迭代訓(xùn)練了20 000次,得到了最后的模型和訓(xùn)練日志。同時(shí),在與上述數(shù)據(jù)集和實(shí)驗(yàn)環(huán)境相同的條件下對(duì)無(wú)優(yōu)化的YOLOv3算法進(jìn)行訓(xùn)練,得到相應(yīng)的模型。
采用平均檢測(cè)精度(mAP)和平均檢測(cè)時(shí)間作為評(píng)價(jià)指標(biāo),對(duì)測(cè)試集的200幅圖像進(jìn)行測(cè)試,兩算法的實(shí)驗(yàn)結(jié)果如表2所示。
表2 檢測(cè)算法結(jié)果對(duì)比表
從表2可知,改進(jìn)后的YOLOv3算法在mAP上表現(xiàn)更好,相較于無(wú)改進(jìn)的YOLOv3算法提升了5%。在檢測(cè)圖像的響應(yīng)時(shí)間上,由于沒(méi)有對(duì)其做針對(duì)優(yōu)化,因此兩者相差不大。但是一般來(lái)講,當(dāng)平均檢測(cè)時(shí)間達(dá)到25幀/s以上時(shí),檢測(cè)識(shí)別在視覺(jué)上就不會(huì)有卡幀的情況,因此改進(jìn)的YOLOv3算法能達(dá)到實(shí)時(shí)檢測(cè)識(shí)別的功能。
分別采用兩個(gè)模型對(duì)工地現(xiàn)場(chǎng)圖像進(jìn)行預(yù)測(cè),圖像實(shí)驗(yàn)結(jié)果如圖6和圖7所示。
圖6 改進(jìn)后YOLOv3測(cè)試圖像
圖7 無(wú)改進(jìn)YOLOv3測(cè)試圖像
從同一圖像的檢測(cè)結(jié)果對(duì)比可以看出,改進(jìn)后的YOLOv3算法可以識(shí)別出圖像中所有工程挖掘機(jī)的位置,特別是左上角被遮擋的工程挖掘機(jī)也能正確識(shí)別。而無(wú)改進(jìn)的YOLOv3算法沒(méi)有識(shí)別出被遮擋的工程挖掘機(jī),產(chǎn)生了漏檢現(xiàn)象。
改進(jìn)的YOLOv3算法在保證實(shí)時(shí)檢測(cè)識(shí)別的前提下,提升了對(duì)工程挖掘機(jī)的檢測(cè)精度,并且改善了工程挖掘機(jī)互相遮擋時(shí)的識(shí)別問(wèn)題,能夠有效防止漏檢現(xiàn)象的發(fā)生。通過(guò)實(shí)驗(yàn)對(duì)比,改進(jìn)后的YOLOv3算法針對(duì)工程挖掘機(jī)的識(shí)別效果更好,符合工程實(shí)際需要。
針對(duì)西氣東輸工程中無(wú)人值守的油氣場(chǎng)站,提出了一種基于改進(jìn)YOLOv3的識(shí)別算法用于智能監(jiān)控中實(shí)時(shí)檢測(cè)工程挖掘機(jī)位置,防止工程挖掘機(jī)在作業(yè)時(shí)進(jìn)入危險(xiǎn)區(qū)域破壞油氣管道。通過(guò)采用K-means++聚類算法得到適合工程挖掘機(jī)的anchor box,以提高檢測(cè)精度,其次,使用soft-NMS算法選擇輸出預(yù)測(cè)框,解決工程挖掘機(jī)互相遮擋引發(fā)的漏檢問(wèn)題。實(shí)驗(yàn)結(jié)果表明,相比于原YOLOv3算法,改進(jìn)后的YOLOv3算法檢測(cè)精度明顯提高,并且能夠檢測(cè)出互相遮擋的工程挖掘機(jī)。在檢測(cè)時(shí)間上,也能滿足智能監(jiān)控中實(shí)時(shí)性的要求。