本發(fā)明涉及圖像處理領(lǐng)域,尤其是一種基于r-fcn的小目標檢測方法。
背景技術(shù):
行人檢測在智能輔助駕駛,智能監(jiān)控,行人分析以及智能機器人等領(lǐng)域都具有廣泛的應(yīng)用,因此如何優(yōu)化行人檢測的性能和速度成為一個重要話題。比較常用的行人檢測的方法是通過采集待測圖像的紅外信息和高光譜信息等圖像信息,通過這些圖像信息來對待測圖像中的行人進行檢測的,該方法并不是直接利用待測圖像的rgb信息,需要通過特定的儀器來采集紅外信息和高光譜信息,因此檢測不夠直接而且精度不高、檢測速度也不快。隨著深度卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,目前也有利用深度卷積神經(jīng)網(wǎng)絡(luò)來進行行人檢測的做法。
深度卷積神經(jīng)網(wǎng)絡(luò)在大量的訓(xùn)練樣本的基礎(chǔ)上進行不斷的學(xué)習(xí)和調(diào)整,使得其在目標檢測任務(wù)上有出色的表現(xiàn),但其主要是用于一些尺寸較大的通用目標的檢測,當(dāng)其用于行人檢測時,由于行人的目標較小,其在單一尺度上進行搜索時,容易出現(xiàn)漏報,檢測精度仍然不夠高。
技術(shù)實現(xiàn)要素:
本發(fā)明人針對上述問題及技術(shù)需求,提出了一種基于r-fcn的小目標檢測方法,使用本方法可以實時檢測到圖像中的小目標且提高檢測精度。
本發(fā)明的技術(shù)方案如下:
一種基于r-fcn的小目標檢測方法,該r-fcn包括卷積網(wǎng)絡(luò)、rpn和分類器,該方法包括:
采集待測圖像,將待測圖像導(dǎo)入卷積網(wǎng)絡(luò),卷積網(wǎng)絡(luò)中包括m個網(wǎng)絡(luò)層,每個網(wǎng)絡(luò)層中至少包括卷積層和采樣層,m為正整數(shù)且m≥2;
按照從m個網(wǎng)絡(luò)層的最頂層至最底層的順序通過m個網(wǎng)絡(luò)層依次對待測圖像進行特征提取,生成待測圖像的m層尺度依次減小的特征映射圖;以及,按照從m個網(wǎng)絡(luò)層的最底層至最頂層的順序通過m個網(wǎng)絡(luò)層依次對待測圖像進行特征提取,生成待測圖像的m層尺度依次增大的特征映射圖;
選取n層特征映射圖導(dǎo)入rpn,對于每個特征映射圖,通過rpn對特征映射圖中的前景區(qū)域和后景區(qū)域進行前后景分類,并確定前景區(qū)域的坐標,n為正整數(shù)且n≥2;
確定特征映射圖中與前景區(qū)域的坐標對應(yīng)的特征映射塊,將特征映射塊處理為特征向量;
將各個特征向量輸入分類器中進行二次分類,檢測特征向量所屬的類別是否對應(yīng)待檢測的小目標并輸出檢測結(jié)果,小目標是待測圖像中所占面積小于預(yù)定面積的目標。
其進一步的技術(shù)方案為,通過rpn對特征映射圖中的前景區(qū)域和后景區(qū)域進行前后景分類,包括:
通過候選窗口在特征映射圖上滑動掃描進行前后景分類,候選窗口的大小為162、322和642中的至少一種,候選窗口的長寬比例為1:1、1:2以及2:1中的至少一種。
其進一步的技術(shù)方案為,該方法還包括:
選取訓(xùn)練樣本集,訓(xùn)練樣本集中包括若干個樣本圖像和每個樣本圖像中的目標框的監(jiān)督信息,目標框用于對樣本圖像中的小目標進行標注,監(jiān)督信息包括樣本圖像中的目標框的位置信息和屬性信息,目標框的位置信息包括目標框的橫坐標和縱坐標,目標框的屬性信息包括目標框的長度和寬度;
根據(jù)訓(xùn)練樣本集訓(xùn)練得到r-fcn。
其進一步的技術(shù)方案為,r-fcn包括第一r-fcn、第二r-fcn和第三r-fcn中的至少兩種;監(jiān)督信息中還包括樣本類別,樣本類別為全身、上身和下身中的任意一種,則根據(jù)訓(xùn)練樣本集訓(xùn)練得到r-fcn,包括:
根據(jù)訓(xùn)練樣本集中包括第一類目標框的樣本圖像訓(xùn)練得到第一r-fcn,第一類目標框是樣本類別為全身的目標框;
和/或,根據(jù)訓(xùn)練樣本集中包括第二類目標框的樣本圖像訓(xùn)練得到第二r-fcn,第二類目標框是樣本類別為上身的目標框;
和/或,根據(jù)訓(xùn)練樣本集中包括第三類目標框的樣本圖像訓(xùn)練得到第三r-fcn,第三類目標框是樣本類別為下身的目標框。
其進一步的技術(shù)方案為,根據(jù)訓(xùn)練樣本集訓(xùn)練得到r-fcn,包括:
將訓(xùn)練樣本集中的各個樣本圖像輸入r-fcn,輸出檢測結(jié)果;
根據(jù)檢測結(jié)果、樣本圖像的監(jiān)督信息和修正函數(shù)更新r-fcn,修正函數(shù)為:
其中,lcls(w,x,y)=-logpy(x),
其中,b表示大樣本數(shù)據(jù)集,訓(xùn)練樣本集是大樣本數(shù)據(jù)集b的子集且訓(xùn)練樣本集包括的樣本圖像的數(shù)量遠小于大樣本數(shù)據(jù)集b中的樣本圖像的數(shù)量,x表示輸入的樣本圖像,y表示檢測結(jié)果,φ(x)表示對樣本圖像進行卷積后卷積層的輸出,w為各個分類器權(quán)值的集合,w是其中一個分類器的權(quán)值,λ是一個常數(shù),j是一個變量。
本發(fā)明的有益技術(shù)效果是:
1、采用top-down特征金子塔和down-top特征金字塔相結(jié)合的方式,在不同尺度的特征映射圖上進行小目標檢測,可以減少對小目標的漏報,提高檢測精度。
2、修改rpn網(wǎng)絡(luò)中的候選窗口大小,使其更適合小目標檢測,可以進一步減少漏報,提高檢測精度。
3、對于小目標是行人的情況,采用多個r-fcn綜合預(yù)測的方法,分別對行人的全身、上身和下身進行檢測并綜合輸出檢測結(jié)果,即使在自然場景中存在遮擋,也能很好的檢測出行人,減少了漏報率。
4、對于小目標檢測,在其樣本不充足的情況下,通過修正函數(shù)不算調(diào)整參數(shù),并通過生成模型生成正樣本加入到訓(xùn)練樣本集中,使得可以通過較小的訓(xùn)練樣本集訓(xùn)練出較為準確的r-fcn。
附圖說明
圖1是本發(fā)明公開的基于r-fcn的小目標檢測方法的方法流程圖。
圖2是卷積網(wǎng)絡(luò)按照從最頂層至最底層的順序依次提取尺度減小的特征映射圖的示意圖。
圖3是卷積網(wǎng)絡(luò)按照從最底層至最頂層的順序依次提取尺度增大的特征映射圖的示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的具體實施方式做進一步說明。
本發(fā)明公開了一種基于r-fcn的小目標檢測方法,其中待檢測的小目標是待測圖像中所占面積小于預(yù)定面積的目標,預(yù)定面積是用戶或系統(tǒng)預(yù)設(shè)值,比如小目標可以是行人、火焰和煙霧等,本發(fā)明中以小目標是行人為例,待測圖像是圖片和視頻等形式。本發(fā)明中的r-fcnregion-basedfullyconvolutionalnetworks,基于區(qū)域的全卷積網(wǎng)絡(luò))包括卷積網(wǎng)絡(luò)、rpn(regionproposalnetworks,候選窗口網(wǎng)絡(luò))和分類器,卷積網(wǎng)絡(luò)的基礎(chǔ)模型可以是resnet殘差網(wǎng)絡(luò),本發(fā)明中使用的卷積網(wǎng)絡(luò)的基礎(chǔ)模型是resnet50,分類器可以是softmax分類器。
本發(fā)明公開的方法在使用r-fcn檢測小目標之前,需要先選取訓(xùn)練樣本集,然后根據(jù)訓(xùn)練樣本集訓(xùn)練得到r-fcn,訓(xùn)練樣本集中包括若干個樣本圖像和每個樣本圖像中的目標框的監(jiān)督信息,目標框用于對樣本圖像中的小目標進行標注,監(jiān)督信息包括樣本圖像中的目標框的位置信息和屬性信息,目標框的位置信息包括目標框的橫坐標和縱坐標,目標框的屬性信息包括目標框的長度和寬度,監(jiān)督信息可以表示為(x,y,w,h),其中,x是目標框的橫坐標,y是目標框的縱坐標,w是目標框的寬度,h是目標框的長度。
在實際對小目標的行人的檢測過程中,由于遮擋的緣故,有些行人并不會顯示全身,如果只檢測全身的行人的話,會出現(xiàn)漏檢,因此為了減少對小目標的行人檢測的漏檢率,可以采用多個r-fcn聯(lián)合檢測的方法,分別對行人的全身、上半身和下半身進行檢測,從而可以檢測出被遮擋住的行人,則在訓(xùn)練r-fcn時,是使用不同類別的樣本圖像訓(xùn)練得到不同的r-fcn,則可選的,監(jiān)督信息還包括用于對目標框所標注的小目標的類別進行表示的樣本類別,樣本類別為全身(smallperson)、上身(upbody)和下身(downbody)中的任意一種,則當(dāng)目標框用于標注行人的全身時,監(jiān)督信息表示為(x,y,w,h,smallperson);當(dāng)目標框用于標注行人的上半身時,監(jiān)督信息表示為(x,y,w,h,upbody);當(dāng)目標框用于標注行人的上半身時,監(jiān)督信息表示為(x,y,w,h,downbody)。則根據(jù)訓(xùn)練樣本集訓(xùn)練r-fcn具體為:根據(jù)訓(xùn)練樣本集中包括第一類目標框的樣本圖像訓(xùn)練得到第一r-fcn,第一類目標框是樣本類別為全身的目標框,第一r-fcn用于對行人進行全身檢測;和/或,根據(jù)訓(xùn)練樣本集中包括第二類目標框的樣本圖像訓(xùn)練得到第二r-fcn,第二類目標框是樣本類別為上身的目標框,第二r-fcn用于對行人進行上半身檢測;和/或,根據(jù)訓(xùn)練樣本集中包括第三類目標框的樣本圖像訓(xùn)練得到第三r-fcn,第三類目標框是樣本類別為下身的目標框,第三r-fcn用于對行人進行下半身檢測,當(dāng)采用多r-fcn聯(lián)合檢測時,本發(fā)明中的r-fcn包括第一r-fcn、第二r-fcn和第三r-fcn中的至少兩種,在實際實現(xiàn)時,r-fcn同時包括第一r-fcn、第二r-fcn和第三r-fcn三種。
在通過樣本圖像訓(xùn)練r-fcn時,具體為:將訓(xùn)練樣本集中的各個樣本圖像輸入基礎(chǔ)網(wǎng)絡(luò)模型的r-fcn,輸出檢測結(jié)果,該步驟的具體實現(xiàn)方式可以參照下圖1示出的通過r-fcn進行小目標檢測輸出檢測結(jié)果的方法,本發(fā)明在這里不做贅述,輸出檢測結(jié)果后,根據(jù)檢測結(jié)果、樣本圖像的監(jiān)督信息和修正函數(shù)調(diào)整基礎(chǔ)網(wǎng)絡(luò)模型中的各個參數(shù),從而更新r-fcn,更新r-fcn具體是基于bp(backpropagationalgorithm,后向傳導(dǎo)算法)和sgd(stochasticgradientdescent,隨機梯度下降)相結(jié)合的算法來迭代更新的。目前在使用深度卷積神經(jīng)網(wǎng)絡(luò)檢測通用目標時,通常是直接下載imagenet千萬級的圖片庫作為大樣本數(shù)據(jù)集b,利用該大樣本數(shù)據(jù)集b來進行網(wǎng)絡(luò)訓(xùn)練的,在大樣本數(shù)據(jù)集b上訓(xùn)練r-fcn時,訓(xùn)練得到的分類器權(quán)值w*是由最小化下式得到的:
其中,lcls(w,x,y)=-logpy(x),
通過大樣本數(shù)據(jù)集b訓(xùn)練r-fcn雖然更準確,但大樣本數(shù)據(jù)集的目標框標注工作非常耗時,且對于小行人、火焰和煙霧這種小目標,其樣本本身也是不夠充足的,因此本發(fā)明中的訓(xùn)練樣本集s所包含的樣本圖像的數(shù)量較少,是大樣本數(shù)據(jù)集b的子集,且本發(fā)明中的訓(xùn)練樣本集包括的樣本圖像的數(shù)量遠小于大樣本數(shù)據(jù)集b中的樣本圖像的數(shù)量,訓(xùn)練樣本集s包括的樣本圖像的數(shù)量通常為幾十到幾百個,則s<<b,為了通過數(shù)量有限的訓(xùn)練樣本集訓(xùn)練出盡可能準確的r-fcn,需要通過修正函數(shù)不斷調(diào)整r-fcn中的參數(shù),在訓(xùn)練樣本集s訓(xùn)練r-fcn時,訓(xùn)練得到的分類器權(quán)值ws可以通過最小化下式得到的:
為了使ws與w*相同,也即需要令w*可以使ls(w)最小,ls(w)在w是突的,因此有
另外,為了進一步豐富訓(xùn)練樣本集,可以通過生成模型生成正樣本加入到訓(xùn)練樣本集中,加強r-fcn的泛化能力,生成模型可以是gan(generativeadversarialnetworks,生成對抗網(wǎng)絡(luò))。
在訓(xùn)練得到r-fcn后,可以通過該r-fcn進行小目標檢測,該方法包括如下幾個步驟,如圖1所示:
步驟101,采集待測圖像,該待測圖像為rgb圖像,將待測圖像導(dǎo)入卷積網(wǎng)絡(luò),卷積網(wǎng)絡(luò)中包括m個網(wǎng)絡(luò)層,每個網(wǎng)絡(luò)層中至少包括卷積層和采樣層,m為正整數(shù)且m≥2,卷積層用于對待測圖像進行卷積運算生成特征映射圖,采樣層用于對卷積運算后生成的特征映射圖進行采樣,其中采樣是降采樣或升采樣,升采樣通過插值實現(xiàn)或者通過反卷積實現(xiàn),本發(fā)明對此不做限定,其中反卷積的參數(shù)通過學(xué)習(xí)得到,在本發(fā)明中,卷積網(wǎng)絡(luò)的基礎(chǔ)模型是resnet50,則m=50。
待測圖像尺寸較大時,會增大檢測的精度,但會影響檢測速度也會使檢測所消耗的顯存略大,因此可以適當(dāng)減小尺寸在檢測精度和檢測速度之間取一個平衡,則可選的,在將待測圖像導(dǎo)入r-fcn之前,對待測圖像進行預(yù)處理,將待測圖像處理為預(yù)定尺寸,再將預(yù)處理后的待測圖像導(dǎo)入卷積神經(jīng)網(wǎng)絡(luò),預(yù)定尺寸是自定義值,本發(fā)明中預(yù)處理后的待測圖像在檢測過程中所消耗的顯存略大于4g,且預(yù)處理后的待測圖像尺寸較為一致,方便批量處理。
因為考慮到顯卡顯存問題,r-fcn中采樣層是必不可少的,通常情況下的r-fcn是采用top-down金字塔來進行特征提取的,也即按照從m個網(wǎng)絡(luò)層的最頂層至最底層的順序通過m個網(wǎng)絡(luò)層依次對待測圖像進行特征提取,每個網(wǎng)絡(luò)層中的采樣層對特征映射圖進行降采樣,使得生成的特征映射圖的尺度逐漸變小,學(xué)習(xí)得到的特征更加抽象更易于分類,但采樣層的加入伴隨著嚴重的信息丟失,對于小目標檢測來說,經(jīng)過幾次降采樣后,生成的特征映射圖上表示小目標的像素非常少,這很不利于小目標的檢測,為了在尺度更大一點的特征映射圖上檢測小目標,本發(fā)明采用top-down金字塔和down-top金字塔結(jié)合的方法來進行特征提取,具體為如下步驟102:
步驟102,按照從m個網(wǎng)絡(luò)層的最頂層至最底層的順序通過m個網(wǎng)絡(luò)層依次對待測圖像進行特征提取,生成待測圖像的m層尺度依次減小的特征映射圖。如圖2從左至右示例性地依次示出了前五個網(wǎng)絡(luò)層生成的特征映射圖及其尺度和個數(shù)的示意圖,第一個網(wǎng)絡(luò)層通過64個卷積核對待測圖像進行卷積處理,因此第一個網(wǎng)絡(luò)層生成的第一層特征映射圖共包括64個特征映射圖,每個特征映射圖的尺度為300*500,因此其表示為300*500*64,其他網(wǎng)絡(luò)層生成的特征映射圖的尺度和大小表示同理。
同時,按照從m個網(wǎng)絡(luò)層的最底層至最頂層的順序通過m個網(wǎng)絡(luò)層依次對待測圖像進行特征提取,生成待測圖像的m層尺度依次增大的特征映射圖,如圖3所示,其示出了前7個網(wǎng)絡(luò)層生成的特征映射圖及其尺度和個數(shù)的示意圖,可以看出從第六個網(wǎng)絡(luò)層開始,其開始進行升采樣,從而生成了尺度增大的特征映射圖,需要說明的是,第六個網(wǎng)絡(luò)層生成的特征映射圖包括兩組75*125*256的特征映射圖,其中一組75*125*256的特征映射圖即為第三個網(wǎng)絡(luò)層生成的75*125*256的特征映射圖。在該步驟中,m個網(wǎng)絡(luò)層的最頂層通常指卷積網(wǎng)絡(luò)的輸入,最底層通常指卷積網(wǎng)絡(luò)的輸出。
步驟103,選取n層特征映射圖導(dǎo)入rpn,對于每個特征映射圖,通過rpn對特征映射圖中的前景區(qū)域和后景區(qū)域進行前后景分類,并確定前景區(qū)域的坐標,n為正整數(shù)且n≥2,通常情況下,會將生成的每層特征映射圖都導(dǎo)入rpn,但第一個網(wǎng)絡(luò)層和第二個網(wǎng)絡(luò)層學(xué)習(xí)得到的特征不夠抽象,因此將第三個網(wǎng)絡(luò)層以其之后的網(wǎng)絡(luò)層生成的特征映射圖都導(dǎo)入rpn中,如圖2中將第三至第五個網(wǎng)絡(luò)層生成的特征映射圖導(dǎo)入rpn中,則n=3,如圖3中將第三至第七個網(wǎng)絡(luò)層生成的特征映射圖導(dǎo)入rpn中,則n=5。
通過rpn中的候選窗口在特征映射圖上滑動掃描進行前后景分類,目前常用的候選窗口的大小為1282、2562和5122中的至少一種,其無法檢測到小目標,因此本發(fā)明中的候選窗口的大小為162、322和642中的至少一種,雖然對于行人的話,長寬比為5:2,但是這是基于完整的行人樣本,對于在自然場景下,遮擋無處不在,所以這個5:2的長寬比在實際場景中的檢測效果并不會特別的出眾,因此候選窗口的長寬比例仍選用1:1、1:2以及2:1中的至少一種。在實際使用時,會同時使用上述三種大小的候選窗口,且對于每種大小的候選窗口,也會同時使用上述三種長寬比例,也即本發(fā)明公開的方法中總共包括9種規(guī)格的候選窗口。
步驟104,確定特征映射圖中與前景區(qū)域的坐標對應(yīng)的特征映射塊,將特征映射塊光柵化處理為特征向量,具體的,對每個前景區(qū)域進行選擇性池化,將每個前景區(qū)域分成k*k個對位置敏感的子區(qū)域,每一個子區(qū)域有c+1(+1:背景)個通道的輸出,所以對于一個前景區(qū)域就有k*k*(c+1)個通道的輸出,以k=3為例,9個位置分別代表左上,中上…右下這9個區(qū)域。一般的,提取的前景區(qū)域為w*h大小,則每個子區(qū)域為w*h/k2大小,對于每個子區(qū)域有:
其中,rc(i,j|θ)是該子區(qū)域的對類別c的響應(yīng),zi,j,c是k*k*(c+1)中的一個得分映射圖,(x0,y0)代表的是左上角的子區(qū)域,n是每個子區(qū)域的像素數(shù),θ代表網(wǎng)絡(luò)的所有學(xué)習(xí)得到的參數(shù),計算得分映射圖的均值,每個前景區(qū)域產(chǎn)生一個c+1維的向量,即為特征向量。
步驟105,將各個特征向量輸入分類器中進行二次分類,檢測特征向量所屬的類別是否對應(yīng)待檢測的小目標并輸出檢測結(jié)果,若特征向量所屬的類別對應(yīng)待檢測的小目標,則將該特征向量對應(yīng)的前景區(qū)域用目標框進行標注,最終輸出的檢測結(jié)果是綜合多個特征映射圖的檢測結(jié)果所生成的結(jié)果,該步驟具體為:計算每個類別的softmax分類器的響應(yīng)值,得到的仍是一個c+1維的向量,不同的是,每一維對應(yīng)為該類的概率,第一類默認是背景,查看特征向量與哪個分類器對應(yīng)的向量相同,則特征向量所屬的類別即為該分類器對應(yīng)的類別。需要說明的是,當(dāng)通過三個不同的r-fcn分別對待測圖像中的行人的全身、上身和下身進行檢測時,最終輸出的檢測結(jié)果是綜合三個r-fcn的檢測結(jié)果所生成的,且以第二r-fcn和第三r-fcn檢測到的半身的行人為主,以第一r-fcn檢測到的全身的行人為輔。
以上所述的僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明不限于以上實施例??梢岳斫猓绢I(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和構(gòu)思的前提下直接導(dǎo)出或聯(lián)想到的其他改進和變化,均應(yīng)認為包含在本發(fā)明的保護范圍之內(nèi)。