欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于卷積神經(jīng)網(wǎng)絡(luò)的端到端物體檢測方法與流程

文檔序號:11920863閱讀:873來源:國知局
一種基于卷積神經(jīng)網(wǎng)絡(luò)的端到端物體檢測方法與流程

本發(fā)明屬于計算機視覺領(lǐng)域,更具體地,涉及一種基于卷積神經(jīng)網(wǎng)絡(luò)的端到端物體檢測方法。



背景技術(shù):

目標(biāo)檢測是計算機視覺里的一個基礎(chǔ)任務(wù),它可以被用到很多現(xiàn)實中常見的一個項目,例如行人檢測、車輛檢測、目標(biāo)跟蹤和圖像檢索里的預(yù)處理部分。做好目標(biāo)檢測對于一些更高層的任務(wù)有非常大的幫助。現(xiàn)有的目標(biāo)檢測算法,大都是一些復(fù)雜度較高的算法,很少能夠達到實時,因此開發(fā)一套精度高,速度快的檢測算法一直是計算機視覺的一項難題。



技術(shù)實現(xiàn)要素:

針對現(xiàn)有技術(shù)的以上缺陷或改進需求,本發(fā)明提供了一種基于卷積神經(jīng)網(wǎng)絡(luò)的端到端物體檢測方法,該方法檢測精度高,速度快。

為實現(xiàn)上述目的,本發(fā)明提供了一種基于卷積神經(jīng)網(wǎng)絡(luò)的端到端目標(biāo)檢測方法,包括下述步驟:

(1)基于經(jīng)典基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu),去掉經(jīng)典基礎(chǔ)網(wǎng)絡(luò)最后的全連接層,并添加額外層從而建立卷積神經(jīng)網(wǎng)絡(luò)模型,其中所述額外層為多層卷積層,或多層卷積層加LSTM;

(2)從原始訓(xùn)練數(shù)據(jù)集中隨機選取一張原始圖像進行數(shù)據(jù)擴增得到擴增圖像,并獲得在原始圖像中隨機選取的目標(biāo)圖像塊在擴增圖像中的位置和邊框;

(3)利用步驟(2)得到的目標(biāo)圖像塊在擴增圖像中的位置和邊界,回歸步驟(2)中的卷積神經(jīng)網(wǎng)絡(luò)模型得到模型參數(shù),從而得到訓(xùn)練后的卷積神經(jīng)網(wǎng)絡(luò)模型;在回歸過程中針對每一個目標(biāo)圖像塊計算的預(yù)測參數(shù)包括:是否存在目標(biāo)的概率pobj,存在目標(biāo)情況下屬于某一個類別的概率分布pcat,和目標(biāo)的邊界框信息(x,y,w,h),其中(x,y)分別為目標(biāo)的中心點相對于網(wǎng)格的坐標(biāo),和目標(biāo)相對于圖片的寬與高(w,h),

(4)利用訓(xùn)練后的卷積神經(jīng)網(wǎng)絡(luò)模型,檢測待檢測圖像中的目標(biāo)的邊界框和類別。

本發(fā)明的一個實施例中,所述步驟(4)具體包括:

對于待檢測圖片,利用卷積神經(jīng)網(wǎng)絡(luò)得到目標(biāo)的相關(guān)參數(shù);

統(tǒng)計每一類目標(biāo)所有可能的框,用pobj*pcat表示一個對應(yīng)于所有類別的概率;

得到所有類別的框后,對于每一個類別,先用一個設(shè)定的閾值過濾掉可能性很小的目標(biāo);

剩下的目標(biāo)經(jīng)過非極大值抑制得到最終保留下來的目標(biāo)。

本發(fā)明的一個實施例中,所述步驟(2)具體包括:

(1.2.1)對原始圖像的左上角與右下角進行預(yù)設(shè)抖動值的隨機抖動,對抖動后超出原始圖像大小的區(qū)域直接進行補零處理,從而得到擴增圖片;

(1.2.2)在原始圖像隨機采樣一個面積為原始圖片的X倍,方向比率為Y的目標(biāo)圖片塊,其中所述X和Y為預(yù)設(shè)值;所述目標(biāo)圖像塊滿足:目標(biāo)圖片塊與目標(biāo)有一定的交集,采樣的iou大于集合{0.1,0.3,0.5,0.7,0.9}中的隨機一個元素;

(1.2.3)確定目標(biāo)圖像塊在擴增圖片中的位置:對目標(biāo)的左上點與右下點坐標(biāo)進行一致變換計算出擴增后的目標(biāo)的位置,類別維持不變,則一致變換公式為:

leftt=left*sx-dx rightt=right*sx-dx

topt=top*sy-dy bottomt=bottom*sy-dy

其中,(leftt,topt)與(rightt,bottomt)分別為變換后的目標(biāo)的左上點與右下點,(left,top)與(right,bottom)分別為原始圖像中目標(biāo)的左上點與右下點。

本發(fā)明的一個實施例中,所述經(jīng)典基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)為AlexNet,或者VGGNet,或者GoogleNet,或者ResNet,或者Inception。

本發(fā)明的一個實施例中,在所述步驟(3)中先對擴增圖片進行M*M的均勻劃分得到多個網(wǎng)格,根據(jù)目標(biāo)的中心點是否落在每一個網(wǎng)格的內(nèi)部,來決定每一個網(wǎng)格是否去預(yù)測目標(biāo),所述M為預(yù)設(shè)值。

本發(fā)明的一個實施例中,所述額外層為三層3*3的卷積層和一個1*1的卷積層,則訓(xùn)練過程為:首先在網(wǎng)格內(nèi)預(yù)測出多個框,并選擇與目標(biāo)交集最大的那個框進行監(jiān)督訓(xùn)練。

本發(fā)明的一個實施例中,所述額外層為兩層3*3的卷積層和兩層LSTM,則訓(xùn)練過程為,利用下述代價函數(shù)對網(wǎng)絡(luò)進行回歸:

其中,表示在網(wǎng)格i的第j個框上是否有目標(biāo);表示在網(wǎng)格i的第j個框上預(yù)測目標(biāo)的概率;表示在網(wǎng)格i的第j個框上有目標(biāo)的條件下,預(yù)測為類別k的概率;xij,yij,wij,hij分別對應(yīng)預(yù)測目標(biāo)的中心點坐標(biāo)和寬高;wnoobj,wcoord對應(yīng)代價函數(shù)的各個成分的權(quán)衡比例;N為類別數(shù),n為每個網(wǎng)格預(yù)測的目標(biāo)的個數(shù)。

本發(fā)明的一個實施例中,所述原始訓(xùn)練數(shù)據(jù)集為:

對訓(xùn)練圖像集中的所有圖像采用人工標(biāo)注的方法獲取圖像中目標(biāo)的邊界框和類別,從而得到原始訓(xùn)練數(shù)據(jù)集。

本發(fā)明的一個實施例中,所述預(yù)設(shè)抖動值取值為0.2,所述X取值范圍為0.1~1,Y取值范圍為0.5~2。

本發(fā)明的一個實施例中,所述M取值為14。

與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果:

(1)本方法采用端到端的直接訓(xùn)練檢測網(wǎng)格,在pascal voc數(shù)據(jù)集上可以達到很好的檢測效果;

(2)本方法采用直接回歸目標(biāo)中心點坐標(biāo)、寬高和類別,與同類方法相比,在速度上有很大的優(yōu)勢,可以達到50幀/秒以上。

附圖說明

圖1是本發(fā)明基于卷積神經(jīng)網(wǎng)絡(luò)的端到端物體檢測方法的流程圖;

圖2、圖3是檢測目標(biāo)的方式示意圖。

具體實施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。

以下首先就本發(fā)明的技術(shù)術(shù)語進行解釋和說明:

卷積神經(jīng)網(wǎng)絡(luò)(Concolutional Neural Network,CNN):一種可用于圖像分類、回歸等任務(wù)的神經(jīng)網(wǎng)絡(luò)。網(wǎng)絡(luò)通常由卷積層、降采樣層和全連接層構(gòu)成。卷積層和降采樣層負(fù)責(zé)提取圖像的特征,全連接層負(fù)責(zé)分類或回歸。網(wǎng)絡(luò)的參數(shù)包括卷積核以及全連接層的參數(shù)及偏置,參數(shù)可以通過反向傳導(dǎo)算法,從數(shù)據(jù)中學(xué)習(xí)得到;

長短期記憶(Long-Short Term Memory,LSTM):遞歸神經(jīng)網(wǎng)絡(luò)的一種。該網(wǎng)絡(luò)包含三個門(gates)結(jié)構(gòu):輸入門、輸出門和遺忘門;它們分別起到調(diào)整輸入、調(diào)整輸出和清除記憶的作用;由于門機制的作用,該網(wǎng)絡(luò)可以捕捉序列中的長期(long-term)相關(guān)關(guān)系,并且可以避免訓(xùn)練遞歸神經(jīng)網(wǎng)絡(luò)中常出現(xiàn)的梯度爆炸(gradient explosion)和梯度消失(gradient vanishing)的現(xiàn)象。

如圖1所示,本發(fā)明實施例中,基于卷積神經(jīng)網(wǎng)絡(luò)的端到端物體檢測方法包括以下步驟:

(1)基于經(jīng)典基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu),去掉經(jīng)典基礎(chǔ)網(wǎng)絡(luò)最后的全連接層,并添加額外層從而建立卷積神經(jīng)網(wǎng)絡(luò)模型,其中所述額外層為多層卷積層,或多層卷積層加LSTM;

在網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計上,可以采用現(xiàn)在經(jīng)典的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu),例如AlexNet,VGGNet,GoogleNet,ResNet和Inception系列。這些網(wǎng)絡(luò)一般都在ImageNet上預(yù)訓(xùn)練過,現(xiàn)在我們要在這些網(wǎng)絡(luò)結(jié)構(gòu)上做檢測的任務(wù),就需要對網(wǎng)絡(luò)進行調(diào)整。這些網(wǎng)絡(luò)一般由卷積層,池化層和全連接層逐層連接而成,卷積層,池化層負(fù)責(zé)提取圖像的特征,全連接層負(fù)責(zé)對特征進分類。首先去掉這些網(wǎng)絡(luò)最后的全連接層,加上額外的一些層來對卷積層的特征進行處理,從而得到可用于回歸檢測參數(shù)的網(wǎng)絡(luò)。例如,添加額外的層,我們有以下兩種方法:添加三層3*3的卷積層和一個1*1的卷積層;或者添加兩層3*3的卷積層和兩層LSTM。

(2)從原始訓(xùn)練數(shù)據(jù)集中隨機選取一張原始圖像進行數(shù)據(jù)擴增得到擴增圖像,并獲得在原始圖像中隨機選取的目標(biāo)圖像塊在擴增圖像中的位置和邊框;

(2.1)標(biāo)記訓(xùn)練圖像集中所有物體的邊界框和類別,得到訓(xùn)練數(shù)據(jù)集;

首先要建立訓(xùn)練數(shù)據(jù)集,具體地對給定的圖像,用人工標(biāo)注的方法獲取圖像中目標(biāo)的邊界框和類別;對訓(xùn)練圖像集中的所有圖像都進行標(biāo)注,就可以得到訓(xùn)練數(shù)據(jù)集;

(2.2)除了手工標(biāo)記的訓(xùn)練圖像集以外,為了使訓(xùn)練的神經(jīng)網(wǎng)絡(luò)具有更好的泛化能力,還對標(biāo)注好的訓(xùn)練集進行數(shù)據(jù)擴增;具體地:

(2.2.1)對一張訓(xùn)練圖像,對與圖片的左上角與右下角進行預(yù)設(shè)抖動值(例如0.2)的隨機抖動。假設(shè)一張圖片的寬與高分別為w,h,即圖片的大小為(0:w)*(0:h),進行0.2的抖動后,圖片的左上點(x0,y0)與右下點(x1,y1)分別滿足:

x0∈(-0.2w,+0.2w)y0∈(-0.2h,+0.2h)

x1∈(+0.8w,+1.2w)y1∈(+0.8h,+1.2h)

則抖動后的圖片大小為(x0:x1)*(y0:y1),對于抖動后超出原圖大小的區(qū)域直接進行補零處理,從而得到擴增圖片。

(2.2.2)在原圖隨機截取一個面積為原始圖片的X(例如0.1~1)倍,方向比率在0.5~2之間的圖片塊,并且圖片塊滿足以下特點:圖片塊有與目標(biāo)有一定的交集(iou),交集用最小的jaccard重疊來衡量;每次采樣的iou大于集合{0.1,0.3,0.5,0.7,0.9}中的隨機一個元素。

得到一個擴增后的圖片之后,就要確定目標(biāo)在圖片中的位置。這里主要對目標(biāo)的左上點與右下點坐標(biāo)進行一致變換計算出擴增后的目標(biāo)的位置,類別維持不變。假定原圖中目標(biāo)的左上點與右下點分別為(left,top)與(right,bottom),變換后的目標(biāo)的左上點與右下點分別為(leftt,topt)與(rightt,bottomt)則一致變換公式為:

leftt=left*sx-dx rightt=right*sx-dx

topt=top*sy-dy bottomt=bottom*sy-dy

(3)利用步驟(2)得到的目標(biāo)圖像塊在擴增圖像中的位置和邊界,回歸步驟(2)中的卷積神經(jīng)網(wǎng)絡(luò)模型得到模型參數(shù),從而得到訓(xùn)練后的卷積神經(jīng)網(wǎng)絡(luò)模型;在回歸過程中針對每一個目標(biāo)圖像塊計算的預(yù)測參數(shù)包括:是否存在目標(biāo)的概率pobj,存在目標(biāo)情況下屬于某一個類別的概率分布pcat,和目標(biāo)的邊界框信息(x,y,w,h),其中(x,y)分別為目標(biāo)的中心點相對于網(wǎng)格的坐標(biāo),和目標(biāo)相對于圖片的寬與高(w,h);

對于網(wǎng)絡(luò)訓(xùn)練的代價函數(shù),主要包含三個部分。我們對目標(biāo)進行回歸,采取以下方式。首先,對擴增圖片進行M*M(例如14*14)的均勻劃分,根據(jù)目標(biāo)的中心點是否落在每一個網(wǎng)格的內(nèi)部,來決定每一個網(wǎng)絡(luò)是否去預(yù)測目標(biāo)。因此每一個網(wǎng)格對于一個目標(biāo)都要預(yù)測這些參數(shù):是否存在目標(biāo)的概率pobj,存在目標(biāo)情況下屬于某一個類別的概率分布pcat(N維向量,N為類別數(shù)),和目標(biāo)的邊界框信息(x,y,w,h),分別對應(yīng)目標(biāo)的中心點相對于網(wǎng)格的坐標(biāo)(x,y),和目標(biāo)相對于擴增圖片的寬與高(w,h),這些參數(shù)都進行了歸一化,而且我們實際上預(yù)測的是目標(biāo)的寬與高的平方根。

為了增加預(yù)測目標(biāo)的召回率,我們采取一個網(wǎng)格預(yù)測多個目標(biāo)的形式(假設(shè)為n個目標(biāo))。也就是一個網(wǎng)格預(yù)測多套以上的參數(shù)。但是訓(xùn)練的時候,針對于不同添加額外層的形式,訓(xùn)練方式也不同。

(3.1)如圖2所示,對于只添加卷積層,我們訓(xùn)練的時候每個網(wǎng)格只用一個目標(biāo)來進行訓(xùn)練。這就存在目標(biāo)的匹配問題,一個網(wǎng)格預(yù)測的多個框匹配標(biāo)注的一個框,我們采用iou進行選擇訓(xùn)練。也就是預(yù)測的多個框,哪個與目標(biāo)的交集越大,就用交集最大的這個目標(biāo)對這個框進行監(jiān)督訓(xùn)練。

例如圖2中,輸入為一張三通道的圖片,經(jīng)過深度卷積網(wǎng)絡(luò),輸出為一個S*S*2(N+5)的特征圖。每一個(N+5)對應(yīng)一個目標(biāo)的參數(shù),加監(jiān)督信息進行訓(xùn)練。

(3.2)如圖3所示,對于添加LSTM層,我們讓LSTM的輸出最多預(yù)測三個框。這時候,落在當(dāng)前網(wǎng)格的目標(biāo)的個數(shù)應(yīng)該不多于三個,這時候,我們根據(jù)標(biāo)注目標(biāo)越靠近網(wǎng)格的中心點來衡量那個目標(biāo)應(yīng)該優(yōu)先預(yù)測,因為LSTM具有時序的信息,我們希望LSTM的不同時序之間的狀態(tài)能夠傳遞一種信息,表示之前預(yù)測過的目標(biāo),下一個時刻就不要預(yù)測了。因此我們按照目標(biāo)的靠近中心點的程度來對目標(biāo)進行排序從而監(jiān)督訓(xùn)練LSTM的輸出。

網(wǎng)絡(luò)輸出的是一個三維(14*14*n(N+5))特征圖,每一個(14*14)位置上信息對應(yīng)于一個網(wǎng)格上的目標(biāo)的參數(shù)。訓(xùn)練的時候,對于pcat與(x,y,w,h)這些參數(shù),我們只在存在目標(biāo)的時候才進行監(jiān)督訓(xùn)練。

例如圖3中,輸入為一個三通道的圖片,經(jīng)過深度卷積網(wǎng)絡(luò),輸出為一個S*S*1024的特征圖。每一個位置的1024維特征后面接LSTM產(chǎn)生預(yù)測目標(biāo),并且添加對于的監(jiān)督信息進行訓(xùn)練。

綜上,我們回歸的是一個14*14*n(N+5)的特征圖,網(wǎng)絡(luò)的代價函數(shù)為:

其中,表示在網(wǎng)格i的第j個框上是否有目標(biāo);表示在網(wǎng)格i的第j個框上預(yù)測目標(biāo)的概率;表示在網(wǎng)格i的第j個框上有目標(biāo)的條件下,預(yù)測為類別k的概率;xij,yij,wij,hij分別對應(yīng)預(yù)測目標(biāo)的中心點坐標(biāo)和寬高;wnoobj,wcoord對應(yīng)代價函數(shù)的各個成分的權(quán)衡比例;N為類別數(shù),n為每個網(wǎng)格預(yù)測的目標(biāo)的個數(shù)。

(4)利用訓(xùn)練后的卷積神經(jīng)網(wǎng)絡(luò)模型,檢測待檢測圖像中的目標(biāo)的邊界框和類別。

對于輸入的一張待檢測圖片,利用卷積神經(jīng)網(wǎng)絡(luò)可以得到目標(biāo)的相關(guān)參數(shù)。我們統(tǒng)計每一類目標(biāo)所有可能的框,用pobj*pcat表示一個目標(biāo)對應(yīng)于所有類別的概率。得到所有類別的框后,對于每一個類別,先用一個較小的閾值(例如0.001)來過濾掉可能性很小的目標(biāo),剩下的目標(biāo)經(jīng)過非極大值抑制得到最終保留下來的目標(biāo)。

本方法在pascal voc標(biāo)準(zhǔn)數(shù)據(jù)集上可以達到很好的效果?;贕oogleNet的檢測,用voc 2007 trainval和2012 trainval訓(xùn)練,在voc 2007test上測試可達到0.74mAP,用voc 2007 all和2012trainval訓(xùn)練,在voc 2012test上測試可達到0.71mAP,速度可達到每秒50幀以上;基于Inception v3的檢測,用voc 2007 trainval和2012 trainval訓(xùn)練,在voc 2007test上測試可達到0.76mAP,用voc 2007 all和2012trainval訓(xùn)練,在voc 2012test上測試可達到0.74mAP。

本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
通海县| 百色市| 全椒县| 比如县| 昔阳县| 通辽市| 泸定县| 隆回县| 建水县| 永顺县| 库尔勒市| 孝义市| 紫金县| 阿克苏市| 新野县| 铁岭县| 屯昌县| 梁平县| 鄢陵县| 临汾市| 阜阳市| 富源县| 泰宁县| 仙桃市| 澄江县| 德钦县| 富民县| 张家界市| 镇安县| 嘉兴市| 称多县| 湘乡市| 桃江县| 常德市| 通化市| 岚皋县| 太湖县| 梅河口市| 大余县| 牙克石市| 丰镇市|