胡立華,王敏敏,2,劉愛琴,張素蘭
(1.太原科技大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,山西 太原 030024;2.佛山市科自智能系統(tǒng)技術(shù)有限公司,廣東 佛山 528010)
物體檢測[1]是計算機視覺中的經(jīng)典問題,主要任務(wù)是在靜態(tài)圖像或動態(tài)視頻流中快速、精確地識別及定位出其中感興趣的目標。目前物體檢測已廣泛應(yīng)用于行人檢測[2]、流量檢測[3]、智能手機[4]等領(lǐng)域。物體檢測方法主要分為基于傳統(tǒng)的檢測方法和基于深度學(xué)習(xí)的檢測方法。傳統(tǒng)檢測方法主要依賴于圖像處理技術(shù)或人工設(shè)計特征,由于該方法提取的特征是人為設(shè)計的,因此具有相對簡單,無需學(xué)習(xí)與訓(xùn)練,僅需計算與統(tǒng)計的優(yōu)點,但同時存在工作量大、不具備普適性和穩(wěn)定性差等缺點。而基于深度學(xué)習(xí)的方法有較強的特征表達能力,具有檢測精度高、檢測結(jié)果穩(wěn)定等優(yōu)點,因此,基于深度學(xué)習(xí)的物體檢測方法成為計算機視覺中研究熱點之一。YOLOv3[5]作為一種基于深度學(xué)習(xí)的物體檢測方法,首先采用k-means方法獲取先驗框(anchor),然后將先驗框運用于YOLOv3模型的訓(xùn)練過程,最后輸出檢測結(jié)果。YOLOv3具有檢測精度高、小物體識別能力強的優(yōu)點。
古建筑是人類寶貴的文化遺產(chǎn),是人類精神文明的載體,是人類歷史長河中的里程碑。隨著網(wǎng)絡(luò)的發(fā)展,網(wǎng)絡(luò)上的圖片數(shù)量急劇增加,基于圖像的古建筑檢測方法具有重要的研究意義和應(yīng)用價值,可進一步應(yīng)用于古建筑的圖像標注和智慧旅游等方面。因此,古建筑圖像的物體檢測具有重要的意義。而中國古建筑具有結(jié)構(gòu)復(fù)雜、紋理重復(fù)嚴重等特點,基于k-means方法的聚類結(jié)果受聚類初始點選擇的影響較大,因此基于YOLOv3的古建筑檢測結(jié)果受聚類結(jié)果的影響,檢測結(jié)果存在偶然性、不穩(wěn)定性、檢測精度差和定位不準等問題。
針對上述問題,以中國古建筑圖像為對象,結(jié)合影響空間的思想,提出了一種基于影響空間和YOLOv3的古建筑圖像檢測方法。該方法首先結(jié)合密度聚類思想,采用RNN-DBSCAN方法對已標注圖像聚類,利用差異性函數(shù)作為聚類度量函數(shù),從而有效地解決了k-means算法使用歐氏距離方法聚類得到不穩(wěn)定聚類結(jié)果(古建筑圖像寬高比例)的問題;其次從聚類結(jié)果中選取k個結(jié)果作為初始聚類中心;并采用k-means聚類方法獲得聚類結(jié)果,作為YOLOv3網(wǎng)絡(luò)的先驗框,有效解決了基于k-means算法的初始類中心的選擇問題;然后依據(jù)先驗框信息,訓(xùn)練YOLOv3網(wǎng)絡(luò);最后采用voc[6](20類)和中國古建筑數(shù)據(jù)集為對象,進一步驗證了算法的有效性。
該文創(chuàng)新點如下:
(1)針對k-means方法聚類結(jié)果不穩(wěn)定的問題,結(jié)合基于密度的方法,采用了差異性函數(shù),設(shè)計了一種RNN-DBSCAN+k-means聚類方法。
(2)以古建筑圖像為對象,設(shè)計了一種基于影響空間與YOLOv3的古建筑檢測方法。
物體檢測是計算機視覺的基本任務(wù)之一,過程為對于給定任意一幅圖像,圖像中的目標能夠被正確地識別出它的類標簽,且能準確地被定位出來。目前,物體檢測方法主要分為兩類:一類是傳統(tǒng)的物體檢測方法,另一類是基于深度學(xué)習(xí)的物體檢測方法。
傳統(tǒng)的物體檢測主要是基于圖像處理或特征的算法[7],此類算法主要采用傳統(tǒng)的人工設(shè)計特征+淺層分類器的框架。典型方法包括:2001年,Paul Viola和Michael Jones在ICCV上提出了VJ算法[8]。該方法主要采用了滑動窗口檢測第一次實現(xiàn)實時檢測。2008年,F(xiàn)elzenszwalb提出了基于組件的DPM算法[9],該方法采用改進后的HOG[10]特征、SVM[11]分類器和滑動窗口檢測思想實現(xiàn)物體檢測。此類方法具有算法簡單、速度快和適應(yīng)變形的優(yōu)點;但由于特征是人為設(shè)計,存在工作量大、無普適性和穩(wěn)定性差等缺點。
與傳統(tǒng)方法相比,深度學(xué)習(xí)具有比較強的特征表達能力?;谏疃葘W(xué)習(xí)的檢測方法主要包括兩類:無錨框的檢測方法和基于錨框的檢測方法。無錨框檢測方法的基本思想為去掉錨框,運用關(guān)鍵點或鋪設(shè)錨點來檢測物體。無錨框檢測方法可為兩類:一類是基于關(guān)鍵點的檢測方法;另一類是基于中心域的檢測方法?;陉P(guān)鍵點檢測的典型方法有:2018年,Law H等人提出基于關(guān)鍵點為角點的無錨框檢測算法CornerNet[12]。該算法運用一對角點表示目標,通過角點池化、嵌入量等方法提高檢測精度[13]。2019年,Zhou等人提出了基于關(guān)鍵點為4個極值點+1個中心點的無錨框檢測算法ExtremeNet[14]。與CornerNet相比,ExtremeNet關(guān)鍵點的標注成本更低,由于極值點在目標上,標注4個極值點相對比較容易,但是缺點為速度慢,在實時中無法使用?;谥行挠蛏疃葘W(xué)習(xí)檢測的典型方法有:2019年,Tian等提出一種基于全卷積的單級物體檢測器FCOS[15]。該方法采用點+點到框的四個距離來表示目標,憑借NMS[16]后處理提高了檢測精度,缺點為召回率低和缺乏理論的可解釋性。
基于錨框的檢測方法的基本思想是從已標注數(shù)據(jù)集中獲取錨框,并以錨框為起點,對錨框的類別和位置進行矯正?;阱^框的檢測方法分為兩類:二階段法和單階段法。二階段法也稱為基于候選區(qū)域的檢測算法。該方法分兩個步驟實現(xiàn),首先使用帶有候選區(qū)域的CNN[17]網(wǎng)絡(luò)產(chǎn)生候選區(qū)域,再在候選區(qū)域上做分類與回歸。常見的二階段法:2007年,Lou X等人提出R-CNN[18]算法。該算法采用選擇性搜索算法[19]生成類別獨立的候選區(qū)域,并運用SVM[11]和邊界框回歸來做物體分類和定位。2015年,Ross Girshick在R-CNN上采用SPP-net[20],提出Fast R-CNN算法[21],解決了R-CNN訓(xùn)練步驟繁瑣的問題,在檢測速度和精度上都有很大提升。2016年,Ross B. Girshick在Fast R-CNN上采用區(qū)域建議網(wǎng)絡(luò)提取候選區(qū)域,將特征抽取、候選區(qū)域提取、邊界框回歸和分類都整合在一個網(wǎng)絡(luò),提出了Faster R-CNN算法[22],解決了Fast R-CNN不能實現(xiàn)端到端物體檢測的問題。但該算法的計算量大,無法達到實時檢測目標的目的。單階段法將物體檢測問題看作對物體位置和類別的回歸分析問題,主要通過一個網(wǎng)絡(luò)直接輸出檢測結(jié)果。常見的單階段法:2017年,Joseph Redmon和Ali Farhadi在YOLOv1算法[23]的基礎(chǔ)上采用批量歸一化[24]、Darknet-19[25]網(wǎng)絡(luò)結(jié)構(gòu)和錨框卷積[26]等方法進行改進,提出YOLOv2[27]和YOLO9000[28],解決了YOLOv1只能檢測單個物體和位置檢測不準確的問題。2018年,Redmon在YOLOv2算法上將Darknet-19網(wǎng)絡(luò)結(jié)構(gòu)改進為Darknet-53[29],并采用softmax[30]函數(shù)分類方法,提出YOLOv3算法。該算法實現(xiàn)了多尺度檢測,在兼顧實時性的同時保證了物體檢測的準確性。
上述檢測方法中,YOLOv3中采用的先驗框,使得未訓(xùn)練前就具備目標的部分特征,可以在后續(xù)訓(xùn)練中降低網(wǎng)絡(luò)迭代次數(shù),加快網(wǎng)絡(luò)訓(xùn)練速度,達到更好的檢測性能。因此該網(wǎng)絡(luò)具有檢測精度高、檢測速度快、端到端等優(yōu)勢。
聚類作為一種無監(jiān)督模式識別方法,在圖像分析、遙感、生物信息學(xué)和文本分析[31]等多個領(lǐng)域有廣泛應(yīng)用。聚類方法可分為基于劃分、基于層次[32]、基于密度[33]、基于網(wǎng)格[34]和基于模型[35]的方法。
劃分聚類中最具有代表性的是k-means算法。該算法思想簡單、容易實現(xiàn)、運算速度快、空間復(fù)雜度和時間復(fù)雜度低,但也存在聚類結(jié)果依賴聚類數(shù)目k值及初始聚類中心[36]等問題。
在基于密度的聚類中,具有代表性的是DBSCAN[37]算法和RNN-DBSCAN[31]算法。DBSCAN算法的核心思想是用一個點ε鄰域內(nèi)的相鄰點數(shù)目來衡量該點所在空間的密度。該算法可以找出形狀不規(guī)則的類,具有不需要預(yù)先制定聚類數(shù)目、距離和規(guī)則相似度容易定義、限制少的優(yōu)點。但也存在計算復(fù)雜度高、奇異值影響大的問題。與DBSCAN相比,RNN-DBSCAN算法有兩大優(yōu)勢。首先,降低問題復(fù)雜性。因為RNN-DBSCAN算法只需要使用單個參數(shù)k,而DBSCAN需要兩個參數(shù)minpts(閾值)和eps(鄰域半徑)。其次,DBSCAN在一定條件下使用基于距離的eps,導(dǎo)致該算法無法區(qū)分密度變化較大的簇。此外,DBSCAN聚類結(jié)果具有隨機性,為了確保結(jié)果的確定性,必須使用對稱距離度量,而RNN-DBSCAN算法沒有這樣的限制。
中國古建筑具有的結(jié)構(gòu)復(fù)雜、紋理重復(fù)嚴重等特點和k-means聚類選取初始類中心的隨機性導(dǎo)致聚類的效果時好時壞,不具有穩(wěn)定性,從而在古建筑物體檢測過程中存在古建筑圖像特征提取不準確、定位目標不準確等問題。基于k-means的YOLOv3網(wǎng)絡(luò)的檢測結(jié)果會因此受到影響,檢測精度低,效果差。因此,該文采用RNN-DBSCAN+k-means方法選取聚類初始中心,有效解決k-means聚類結(jié)果不穩(wěn)定的問題。
設(shè)給定圖像集I={I1,I2,…,In},n為圖像數(shù)量。首先需對圖像進行標注,在圖像標注過程中會產(chǎn)生相應(yīng)目標的真實框Xi=(Xup,Xdown),1≤i≤m。其中Xup、Xdown分別表示左上角的坐標和右下角的坐標,即Xup=(ai1,bi1),Xdown=(ai2,bi2)。a、b分別表示X的橫坐標和縱坐標,此時:
Xi=(ai1,bi1,ai2,bi2),1≤i≤m。
設(shè)給定樣本集X={X1,X2,…,Xm},m=|X|,?Xi∈X:?Xi=(ai1,bi1,ai2,bi2)。
定義1:歐氏距離d(Xi,Xj)。
?Xi,Xj∈X:Xi=(ai1,bi1,ai2,bi2),Xj=(aj1,bj1,aj2,bj2)且i≠j,Xi和Xj的歐氏距離d(Xi,Xj)可定義為:
定義2:交并比(intersection over union,iou)iou(Xi,Xj)。
?Xi,Xj∈X:Xi=(ai1,bi1,ai2,bi2),Xj=(aj1,bj1,aj2,bj2)且i≠j,Xi和Xj的交并比iou(Xi,Xj)可定義為:
wij=min(aj2-aj1,ai2-ai1)
hij=min(bj2-bj1,bi2-bi1)
in_sectionij=wij×hij
xi_area=(ai2-ai1)×(bi2-bi1)
xj_area=(aj2-aj1)×(bj2-bj1)
定義3:差異性函數(shù)diff(Xi,Xj)。
在X中,?Xi,Xj∈X:Xi=(ai1,bi1,ai2,bi2),Xj=(aj1,bj1,aj2,bj2),且i≠j,已知iou(Xi,Xj),Xi和Xj的差異性函數(shù)diff(Xi,Xj)可定義為:
diff(Xi,Xj)=1-iou(Xi,Xj)
定義4:檢出率avg_iou。
在X中,設(shè)e為聚類算法得出的k個先驗框,iou(Xi,e)為第i個真實框和先驗框的交并比,則X和e的檢出率avg_iou可定義為:
定義5:X的k近鄰。
?Xi∈X,Xi的k近鄰由函數(shù)Nk(Xi)=N定義,其中N滿足以下條件:
(1)N?X/{Xi};
(2)|N|=k;
(3)?Xi∈N,Xz∈X/(N+{Xi}):diff(Xi,Xj)≤diff(Xi,Xz)。
定義6:X的逆k近鄰。
?Xi∈X,Xi的逆k近鄰由函數(shù)Rk(Xi)=R定義,其中R滿足以下條件:
(1)R?X/{Xi};
(2)?Xj∈R:Xi∈Nk(Xj)。
定義7:直接密度可達。
如果Xi和Xj滿足下列兩個條件時,Xi是Xj可以直接達到的密度:
(1)Xi∈Nk(Xj);
(2)|Rk(Xj)|≥k。
定義8:密度可達。
如果有一個鏈X1,X2,…,Xm,X1=y,Xm=x,且滿足|Rk(x)|≥k。如果滿足如下條件的話,則x是y的密度可達。
(1)?1≤i≤m-1:當(dāng)|Rk(x)| (2)?1≤i≤m-2:觀測點Xi+1從觀測點Xi直接可達的,或者說,觀測點Xi從觀測點Xi+1直接可達的。 定義9:類。 一個類別C是X的一個非空子集(?≠C?X),滿足下列條件: (1)?Xi,Xj∈X:如果Xi∈C且Xj是Xi的密度可達,則Xj∈C(極大性); (2)?Xi,Xj∈C:Xi和Xj密度相連(連接性)。 定義10:類的密度。 給定類別C,設(shè)C的密度為C中核心觀測之間的直接密度可達距離的最大值。類別C的密度由函數(shù)den(C)定義: 其中,y是x直接到達的密度。 基于YOLOv3的物體檢測方法首先需對已標注古建筑圖像真實框進行聚類,采用k-means聚類算法。然而針對古建筑圖像,k-means算法聚類結(jié)果存在以下問題:(1)k-means算法的k個初始聚類中心是隨機選取的,從不同初始聚類中心出發(fā),得到的聚類結(jié)果也各不相同,因此聚類結(jié)果容易陷入局部最優(yōu)解。(2)標注的古建筑圖像真實框具有寬高差距大、寬高比例不一的特點,若k-means算法選取的k個初始聚類中心處于真實框的k個高密度分布的區(qū)域,則聚類效果極佳,用時短;若k-means算法選取的k個初始聚類中心處于真實框的k個低密度分布的區(qū)域,則聚類效果極差。因此,基于k-means算法的初始聚類中心的選擇會對聚類結(jié)果產(chǎn)生很大的影響。而古建筑圖像真實框具有寬高信息差距大、比例不一的特點,依據(jù)古建筑的這些特點容易形成高密度區(qū)域。所以,結(jié)合密度聚類方法可有效提高聚類結(jié)果。在所有的密度聚類方法中,RNN-DBSCAN具有參數(shù)少、可應(yīng)用于各種形狀的優(yōu)點,具體聚類過程為:首先輸入數(shù)據(jù)集和參數(shù)k,接下來計算它的k近鄰和逆近鄰,k近鄰和逆近鄰的并集組成了影響空間,然后以影響空間為聚類擴展條件,依賴密度可達等概念進行聚類拓展。影響空間的引入進一步確保RNN-DBSCAN的聚類中心來自于聚類高密度區(qū)域,從而得到最佳的聚類結(jié)果。 基于上述思想,該文設(shè)計了一種RNN-DBSCAN+k-means方法,該方法分兩個步驟進行。首先運用RNN-DBSCAN算法對已標注古建筑圖像的真實框聚類,得出多組迭代的聚類結(jié)果;再從這些聚類結(jié)果中選出檢出率最高的一組;然后將RNN-DBSCAN算法得出的聚類結(jié)果作為k-means聚類算法的初始聚類中心,進行二次聚類;最后k-means聚類得出的結(jié)果則為最終結(jié)果,作為YOLOv3網(wǎng)絡(luò)訓(xùn)練的先驗框。 RNN-DBSCAN算法作為基于密度的聚類算法,具有能準確識別噪聲點、處理任意形狀和大小的簇的優(yōu)點,因此,基于RNN-DBSCAN的聚類結(jié)果可有效確定聚類高密度區(qū)域,進而準確定位聚類中心,從而解決k-means方法聚類結(jié)果波動性大、不穩(wěn)定的問題。然而,RNN-DBSCAN得到的聚類結(jié)果受輸入k值的影響較大,而YOLOv3網(wǎng)絡(luò)進行物體檢測的過程中需要9個先驗框。因此,要想確保最終的聚類中心為9個先驗框,基于YOLOv3的物體檢測方法需要將經(jīng)過預(yù)處理的所有真實框進行RNN-DBSCAN聚類,從得到的多組結(jié)果中挑出9個先驗框。 基于上述思想,初始聚類步驟如下: (1)數(shù)據(jù)預(yù)處理。 a.輸入n幅已標注古建筑圖像,構(gòu)建古建筑數(shù)據(jù)集I={I1,I2,…,In},從I中提取已標注真實框左上角和右下角的坐標信息Xi=(ai1,bi1,ai2,bi2),1≤i≤m。由于一幅古建筑圖片中可能包含多個古建筑真實框,因此m和n的關(guān)系為m≥n。 b.依據(jù)下式: 將Xi轉(zhuǎn)化為真實框的寬高信息為Mi=(wi,hi),1≤i≤m; c.構(gòu)建真實框的類別列表classList,如第i、j、k幅圖像的真實框?qū)捀咝畔⒎謩e為Mi=(wi,hi),Mj=(wj,hj),Mk=(wk,hk),若滿足wi=wj≠wk,hi=hj≠hk,則Mi和Mj表示相同的真實框,相應(yīng)地,Mi、Mj是一類,Mk是一類,因此,真實框類別列表classList=[1,1,2]; d.將M中寬高信息完全相同的真實框去掉,形成N,記N的長度為N',即所有真實框初始為N'類; e.依據(jù)classList構(gòu)建數(shù)據(jù)詞典classDict,如上述第i、j、k幅圖像的真實框所形成的數(shù)據(jù)詞典classList=[[[Mi,Mj],1],[[Mk],2]]。 (2)計算差異性矩陣。 a.依據(jù)數(shù)據(jù)預(yù)處理獲得的X,確定真實框總個數(shù)m,建立初始值為-1的m×m矩陣W,W即為差異性矩陣; b.?Xi,Xj∈X,依據(jù)定義2和定義3,計算差異性函數(shù)值diff(Xi,Xj)=1-iou(Xi,Xj); c.依據(jù)差異性函數(shù)值更新差異性矩陣W,計算方法為:Wij=Wji=diff(Xi,Xj)。 (3)聚類過程。 a.數(shù)據(jù)信息整合: ①依據(jù)k(選取真實框Xi周圍差異性函數(shù)值最小的真實框的數(shù)目)、M、classList和W,根據(jù)定義5,在差異性矩陣W中尋找與真實框Mi的差異性函數(shù)值最小的k個真實框,若這k個真實框為M1,M2,…,Mk,并標記為kMatrix[i]=(1,2,…,k),依據(jù)上述過程c個類別可生成kMatrix[m,m]; ②創(chuàng)建矩陣rMatrix[m,m],依據(jù)定義6,在kMatrix中找到每一個對象的逆k近鄰rMatrix[i]=(1,2,…,k); ③構(gòu)建數(shù)據(jù)信息整合矩陣IM,其中IM[i]=[M[i],rMatrix[i],kMatrix[i],W[i],i,classList[i]],1≤i≤m。 b.聚類擴展: ①創(chuàng)建長度為m、初始值為-1的數(shù)組assign,assign即為類別矩陣,其中-1表示未分類; ②創(chuàng)建類別cluster并賦值為1; ③依據(jù)定義7和定義8,依次遍歷數(shù)據(jù)整合矩陣IM中的每個真實框Mi。以Mj為例,Mj是以Mi為中心的簇中的一個真實框,若rMatrix[j]的長度小于k,則assign[j]=-2,此時Mj被認為是噪聲;若rMatrix[j]的長度不小于k,則認為密度可達,此時assign[j]=assign[i],依據(jù)定義9,Mj和Mi屬于同一類; ④依據(jù)定義10,計算類的密度den(C),輸出類別矩陣assign。 以10個數(shù)據(jù)點為例,數(shù)據(jù)集構(gòu)造及聚類過程如表1所示。 表1 數(shù)據(jù)集構(gòu)造及聚類過程 續(xù)表1 (4)獲得聚類中心。 a.當(dāng)m<3 000時,k=1,且每次迭代k值加1; 在上述迭代過程中,若聚類結(jié)果小于9,則終止迭代。從聚類數(shù)目不小于9個的聚類結(jié)果中挑出聚類數(shù)目最接近9的一組結(jié)果,并計算其檢出率,其中,最接近9的聚類數(shù)目范圍為(9,22)。最后,選出檢出率最高的一個組合作為RNN-DBSCAN聚類的最終結(jié)果。 圖1 RNN-DBSCAN聚類過程 為了提高聚類穩(wěn)定性,減少噪聲對聚類結(jié)果的影響,該文在采用RNN-DBSCAN方法得到檢出率最高的一組聚類中心后,將這組聚類中心作為k-means算法的初始聚類中心,并運用差異性函數(shù)作為聚類相似性度量方法,采用中位數(shù)法(將簇中所有真實框的中位數(shù)的寬高信息作為更新后的聚類中心點更新聚類中心)進行k-means聚類。獲得的最終聚類結(jié)果即為YOLOv3模型所需的先驗框。 以Windows7操作系統(tǒng)為平臺,AMD A8-5550M APU with Radeon(TM) HD Graphics處理器,12 GB內(nèi)存為開發(fā)環(huán)境,以及開放源碼工具箱python3.6、Tensorflow1.14.0、Keras2.2.5和opencv4.5.5為工具,實現(xiàn)了基于RNN-DBSCAN+k-means,結(jié)合影響空間與YOLOv3的古建筑檢測算法。該算法共包括兩部分,分別為古建筑數(shù)據(jù)集構(gòu)建及網(wǎng)絡(luò)訓(xùn)練、測試結(jié)果。 古建筑數(shù)據(jù)集共有12 660幅圖像,包括4類古建筑類型:五臺山龍泉寺、九華山旃檀寺、普陀山法雨寺和峨眉金頂寺。依照3.1節(jié)方法構(gòu)建古建筑數(shù)據(jù)集,以數(shù)據(jù)集中的一幅圖像為例(如圖2所示),它所提取的真實框信息如表2所示。 圖2 已標記的圖像825 表2 圖像825生成的真實框信息 voc數(shù)據(jù)集共有9 963幅圖像,包括20種類型,分別為飛機、自行車、鳥、船、公共汽車、小汽車、貓、椅子、牛、餐桌、狗、馬、摩托車、人、盆栽植物、羊、沙發(fā)、火車和電視監(jiān)視器。 好的聚類算法產(chǎn)生良好的先驗框,使得先驗框在未訓(xùn)練前就具備目標的部分特征。在后續(xù)的網(wǎng)絡(luò)訓(xùn)練中能夠降低網(wǎng)絡(luò)迭代次數(shù),加快網(wǎng)絡(luò)訓(xùn)練速度,更快取得最佳訓(xùn)練效果。 古建筑數(shù)據(jù)集可劃分為訓(xùn)練集和測試集,如表3所示。其中,訓(xùn)練集占80%,測試集占20%。 表3 訓(xùn)練集和測試集的劃分 該文采用YOLOv3網(wǎng)絡(luò)對古建筑進行訓(xùn)練和測試。模型訓(xùn)練分為預(yù)訓(xùn)練和全訓(xùn)練。設(shè)置epoches為100,其中3epoch為預(yù)訓(xùn)練,其余為全訓(xùn)練。訓(xùn)練過程中每三次迭代保存為一個權(quán)重文件,方便后續(xù)確定最佳訓(xùn)練效果的迭代范圍。訓(xùn)練完成后,用訓(xùn)練得到的權(quán)重文件對測試集進行測試,輸入待檢測圖片,得到測試結(jié)果。 評價指標為檢出率和檢測概率。其中,檢出率應(yīng)用于先驗框中,在RNN-DBSCAN+k-means算法得出先驗框后,采用檢出率驗證先驗框的有效性,用百分比表示。檢測概率應(yīng)用于YOLOv3模型的測試中,用來檢測古建筑圖像中成功識別古建筑的概率,也用百分比來表示。 以古建筑數(shù)據(jù)集和voc數(shù)據(jù)集為對象,驗證算法檢測結(jié)果的有效性,分別采用k-means算法和RNN-DBSCAN+k-means算法進行聚類,計算其檢出率,具體結(jié)果如表4所示。 從表4可以看出: 表4 k-means方法和RNN-DBSCAN+k-means方法在兩種數(shù)據(jù)集上的檢出率 % ·針對古建筑數(shù)據(jù)集,采用iou的k-means物體檢測結(jié)果相較于基于歐氏距離的k-means物體檢測結(jié)果,檢出率有所提升。主要原因是:將差異性函數(shù)(1-iou)作為聚類相似性度量,能將所有真實框中寬高比例相同或相近的真實框聚為一類,進而提高檢出率;若依據(jù)定義1的歐氏距離,聚類結(jié)果是將寬相同、高相差較大或高相同、寬相差較大的真實框聚成一類,檢出率較低。 ·在voc數(shù)據(jù)集和古建筑數(shù)據(jù)集中,RNN-DBSCAN+k-means算法與采用iou的k-means算法相比,除voc數(shù)據(jù)集的類別9、11、12、16和20因目標形態(tài)各異和樣本數(shù)不足,導(dǎo)致檢出率略低于iou k-means的檢出率外,其余類別的檢出率提升范圍為0.1%~0.9%,在古建筑數(shù)據(jù)集中平均提高了0.33%;在voc數(shù)據(jù)集單類檢測中,檢出率提升最高為voc數(shù)據(jù)集類別1,檢出率為0.84%。原因為:與k-means算法隨機選取初始聚類中心相比,RNN-DBSCAN算法的聚類結(jié)果已具備目標的部分特征,將其作為k-means算法的初始聚類中心,聚類結(jié)果更加穩(wěn)定,從而提高了檢出率。 在古建筑數(shù)據(jù)集中運用YOLOv3模型檢測的結(jié)果如下:以訓(xùn)練集中圖像1為例,檢測結(jié)果如圖3左所示,檢測概率為98%。以測試集中圖像2為例,檢測結(jié)果如圖3右所示,檢測概率為77%。訓(xùn)練集和測試集均取得了很好的結(jié)果。 (a)圖像1(左) (b)圖像2(右) 針對基于YOLOv3的古建筑檢測結(jié)果不穩(wěn)定的問題,結(jié)合影響空間思想,提出了一種基于RNN-DBSCAN+k-means的古建筑檢測算法。該算法主要采用RNN-DBSCAN獲得初始聚類中心,并以上述聚類中心為初始值,結(jié)合差異性函數(shù)與k-means獲得聚類結(jié)果,并進一步得到先驗框。將先驗框用于YOLOv3網(wǎng)絡(luò)對古建筑的訓(xùn)練中,得到更穩(wěn)定的權(quán)重。檢測結(jié)果在古建筑數(shù)據(jù)集上取得了很好的效果。同時,在非古建筑數(shù)據(jù)集(voc)上,RNN-DBSCAN+k-means方法獲取先驗框的檢出率也有所提高,驗證了采用RNN-DBSCAN+k-means方法獲取先驗框的有效性。 但RNN-DBSCAN+k-means算法也存在弊端,由于該算法是兩種算法的組合,所以時間復(fù)雜度略高于k-means,有待進一步改進。該算法從整體上來說,獲取的先驗框更加穩(wěn)定,有利于YOLOv3模型的訓(xùn)練和測試,檢測精度有所提高。3 文中方法
3.1 初始聚類中心的確定
3.2 +k-means算法
4 實驗結(jié)果
4.1 數(shù)據(jù)集及預(yù)處理
4.2 測試結(jié)果
5 結(jié)束語