本發(fā)明涉及圖像人臉檢索技術(shù)領(lǐng)域,具體涉及一種人臉檢索方法和系統(tǒng)。
背景技術(shù):
隨著人臉識(shí)別方法的不斷完善和改進(jìn),高識(shí)別的人臉識(shí)別方法被不斷用于各個(gè)領(lǐng)域,隨之而來的很多搜索引擎也不斷推出人臉檢索功能,如百度識(shí)圖等,而不論是這類搜索引擎還是社會(huì)安防部門等的檢索數(shù)據(jù)庫(kù)都在不斷的擴(kuò)大以及更新,很多數(shù)據(jù)庫(kù)已經(jīng)達(dá)到了百萬級(jí)規(guī)模,而在這么大規(guī)模的數(shù)據(jù)庫(kù)中進(jìn)行檢索一張或者一個(gè)人的人臉圖片僅僅用線性排序進(jìn)行比對(duì)識(shí)別的方式,會(huì)造成非常大的計(jì)算成本,從而大大降低檢索效率。那么,如果能研究出一種能夠在百萬級(jí)人臉檢索數(shù)據(jù)庫(kù)中進(jìn)行快速準(zhǔn)確的檢索方法,將對(duì)安防部門、公安偵查罪犯、網(wǎng)上購(gòu)物等社會(huì)應(yīng)用有非常大的幫助。
采用深度學(xué)習(xí)進(jìn)行人臉檢索算法的研究,深度學(xué)習(xí)網(wǎng)絡(luò)提取出來的高維特征都是浮點(diǎn)型向量特征,小數(shù)據(jù)庫(kù)檢索一般采用包含豐富的圖片信息的高維特征進(jìn)行相似度計(jì)算排序輸出檢索結(jié)果;而對(duì)于大規(guī)模數(shù)據(jù)庫(kù),必須特征進(jìn)行降維有效的進(jìn)行人臉檢索。降維一般分為兩種方式:網(wǎng)絡(luò)外降維和網(wǎng)絡(luò)內(nèi)降維。網(wǎng)絡(luò)外降維,即從網(wǎng)絡(luò)中提取高維特征,用合適的降維方式如PCA等進(jìn)行特征降維壓縮,這類降維方式比較繁瑣,同時(shí)在降維過程中會(huì)損失掉比較多的圖片信息,影響檢索精度。網(wǎng)絡(luò)內(nèi)降維,即在網(wǎng)絡(luò)層中完成降維,相比網(wǎng)絡(luò)外降維方法會(huì)簡(jiǎn)化許多,同時(shí)深度網(wǎng)絡(luò)降維過程中網(wǎng)絡(luò)通過正向和反向傳播不斷調(diào)整各個(gè)層參數(shù)以得到圖片信息最豐富的特征向量。本發(fā)明采用的就是網(wǎng)絡(luò)內(nèi)降維,一般壓縮的維度在幾百維,而對(duì)于大規(guī)模人臉數(shù)據(jù)庫(kù)檢索,幾百維的浮點(diǎn)型向量進(jìn)行相似度計(jì)算,耗費(fèi)的時(shí)間成本很大,不利于進(jìn)行有效的大規(guī)模人臉圖像檢索。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種人臉檢索方法和系統(tǒng)。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種人臉檢索方法,包括如下步驟:
步驟S1:搭建人臉檢索的網(wǎng)絡(luò)構(gòu)架,所述網(wǎng)絡(luò)構(gòu)架包括池化層、全連接層和損失層,并根據(jù)歐式距離對(duì)網(wǎng)絡(luò)構(gòu)架中的損失層進(jìn)行優(yōu)化;
步驟S2:根據(jù)反向傳播的方式調(diào)節(jié)網(wǎng)絡(luò)構(gòu)架中優(yōu)化的損失層以及全連接層、池化層的參數(shù);
步驟S3:將各訓(xùn)練樣本圖片輸入調(diào)節(jié)后的網(wǎng)絡(luò)構(gòu)架中生成測(cè)試用例;
步驟S4:根據(jù)sign函數(shù)對(duì)所述測(cè)試用例進(jìn)行量化計(jì)算得到測(cè)試用例的二值編碼,通過二值編碼計(jì)算兩兩訓(xùn)練樣本圖片之間的漢明距離,距離越小表示相似度越高,按照距離大小進(jìn)行升序排序得出最后檢索結(jié)果;
步驟S5:根據(jù)漢明距離對(duì)各訓(xùn)練樣本的近似度進(jìn)行排序,從而完成對(duì)人臉檢索的網(wǎng)絡(luò)構(gòu)架的訓(xùn)練;
步驟S6:將各待檢索人臉圖片輸入完成訓(xùn)練的人臉檢索網(wǎng)絡(luò)構(gòu)架中進(jìn)行檢索,得到各待檢索人臉圖片的近似度排序結(jié)果。
本發(fā)明的有益效果是:在損失層進(jìn)行圖片對(duì)的隨機(jī)選擇比網(wǎng)絡(luò)外選擇圖片對(duì)更有益于網(wǎng)絡(luò)訓(xùn)練,根據(jù)反向傳播的方式微調(diào)網(wǎng)絡(luò)比直接訓(xùn)練網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)的性能有很大的提升,通過二值編碼計(jì)算訓(xùn)練樣本圖片對(duì)之間的漢明距離,由漢明距離得到相似度進(jìn)行檢索,能達(dá)到以10的數(shù)量級(jí)提高檢索精度。本發(fā)明從以上幾個(gè)方面對(duì)網(wǎng)絡(luò)和輸出的特征進(jìn)行優(yōu)化,使得在大規(guī)模人臉數(shù)據(jù)庫(kù)下也能保證在準(zhǔn)確率持平或者盡可能小范圍降低的情況下能快速進(jìn)行人臉圖像的檢索。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
進(jìn)一步,所述步驟S3前還包括將各訓(xùn)練樣本圖片進(jìn)行預(yù)處理的步驟:將各訓(xùn)練樣本圖片根據(jù)預(yù)設(shè)規(guī)格進(jìn)行裁剪并對(duì)齊處理,再將對(duì)齊后的各訓(xùn)練樣本圖片的格式轉(zhuǎn)換為L(zhǎng)MDB(Lighting Memory-Mapped Database)格式。
采用上述進(jìn)一步方案的有益效果是:對(duì)訓(xùn)練樣本圖片進(jìn)行預(yù)處理及格式轉(zhuǎn)換能夠?yàn)橄旅娴牟襟E取得更快的處理時(shí)間,并且提高處理結(jié)果的精度。
進(jìn)一步,所述步驟S1中根據(jù)歐式距離對(duì)網(wǎng)絡(luò)構(gòu)架中的損失層進(jìn)行優(yōu)化的具體方法為:對(duì)損失層中的損失函數(shù)進(jìn)行正則化項(xiàng),兩兩訓(xùn)練樣本圖片為一組訓(xùn)練樣本圖片對(duì),訓(xùn)練樣本圖片對(duì)I1,I2的損失函數(shù)公式為:
其中,Lr(d1,d2,m)為損失值,d1和d2為分別訓(xùn)練樣本圖片對(duì)I1,I2的特征,為訓(xùn)練樣本圖片對(duì)I1,I2特征的歐式距離,γ為控制正則項(xiàng)強(qiáng)度的加權(quán)參數(shù),q為邊緣閾值參數(shù)且q>0,若訓(xùn)練樣本圖片對(duì)I1,I2中兩者預(yù)設(shè)的標(biāo)簽類別相同時(shí)則定義m=0,否則定義m=1。
采用上述進(jìn)一步方案的有益效果是:損失函數(shù)(Regularloss)將輸出的特征進(jìn)行正則化約束比sigmoid/tanh的范圍約束使網(wǎng)絡(luò)輸出的特征保留的信息更多;用歐式距離代替漢明距離可以防止過擬合,提升網(wǎng)絡(luò)性能,同時(shí)由于輸出的特征向量是浮點(diǎn)型向量,用歐式距離能減少計(jì)算成本,正則化項(xiàng)選擇用低階范數(shù)除了可以大大的降低計(jì)算成本,通過反向傳播能加快網(wǎng)絡(luò)訓(xùn)練的速度,提升訓(xùn)練進(jìn)度。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,所述步驟S2包括:在訓(xùn)練過程中需要進(jìn)行前向傳播和反向傳播,在前向傳播完成進(jìn)行反向傳播,根據(jù)反向傳播的方式依次從優(yōu)化的損失層、全連接層和池化層進(jìn)行調(diào)節(jié):
用K表示訓(xùn)練樣本圖片的數(shù)據(jù)集中有K對(duì)訓(xùn)練樣本圖片對(duì),利用數(shù)據(jù)集的損失函數(shù)公式
依次進(jìn)行損失層、全連接層和池化層損失值的梯度計(jì)算,其中(di,1,di,2)為第i對(duì)訓(xùn)練樣本圖像對(duì)的兩張圖片n維特征向量,
設(shè)第一項(xiàng)T1為其中預(yù)設(shè)的標(biāo)簽類別相同的一訓(xùn)練樣本圖片對(duì)得到的損失值,第二項(xiàng)T2為其中預(yù)設(shè)的標(biāo)簽類別不相同的一訓(xùn)練樣本圖片對(duì)得到的損失值,并利用公式(3)(4)(5)進(jìn)行損失層、全連接層和池化層參數(shù)的調(diào)節(jié)
其中,R為正則化輸出向量di,j,i∈(1,k),j=1/2,i為K對(duì)訓(xùn)練樣本圖片對(duì)中第i對(duì)圖像對(duì),j為第i對(duì)圖像對(duì)中第j張圖像,γ為控制正則項(xiàng)強(qiáng)度的加權(quán)參數(shù),為導(dǎo)數(shù)符號(hào)。
采用上述進(jìn)一步方案的有益效果是:反向傳播以及測(cè)試代碼中均使用sign函數(shù),將使網(wǎng)絡(luò)輸出的特征與量化之后的二值編碼盡可能的保持一致,從而會(huì)使量化過程中的特征信息的損失降到最低,以提高檢索精度。
進(jìn)一步,所述步驟S3包括:
步驟S301:將網(wǎng)絡(luò)構(gòu)架中全連接層的節(jié)點(diǎn)數(shù)設(shè)置為預(yù)設(shè)值n1,將各訓(xùn)練樣本圖片輸入調(diào)節(jié)后的網(wǎng)絡(luò)構(gòu)架中生成初始測(cè)試用例;
步驟S302:將網(wǎng)絡(luò)構(gòu)架中全連接層的節(jié)點(diǎn)數(shù)n1設(shè)置為預(yù)設(shè)值n2,且n2>n1,來調(diào)整初始測(cè)試用例,得到調(diào)整后的測(cè)試用例。通過調(diào)整后的測(cè)試用例來調(diào)整網(wǎng)絡(luò)構(gòu)架。
采用上述進(jìn)一步方案的有益效果是:通過測(cè)試用例對(duì)網(wǎng)絡(luò)構(gòu)架進(jìn)行微調(diào),微調(diào)后的網(wǎng)絡(luò)構(gòu)架比直接開始訓(xùn)練的損失率下降更平滑更快趨于平穩(wěn),且震蕩很小。
進(jìn)一步,所述步驟S4包括:從測(cè)試用例中提取出近似二值編碼,根據(jù)sign函數(shù)計(jì)算公式
對(duì)近似二值編碼進(jìn)行量化,得到浮點(diǎn)型向量約束在(-1,1)之間的二值編碼,其中,di,j為第i對(duì)訓(xùn)練樣本圖片對(duì)的特征,j為第i對(duì)訓(xùn)練樣本圖片對(duì)中第j張圖像;再通過二值編碼計(jì)算訓(xùn)練樣本圖片對(duì)之間的漢明距離。
應(yīng)理解在本實(shí)施例中,漢明距離是使用在數(shù)據(jù)傳輸差錯(cuò)控制編碼里面的,它表示兩個(gè)(相同長(zhǎng)度)字對(duì)應(yīng)位不同的數(shù)量,假設(shè)以d(x,y)表示兩個(gè)字x,y之間的漢明距離。對(duì)兩個(gè)字符串進(jìn)行異或運(yùn)算,并統(tǒng)計(jì)結(jié)果為1的個(gè)數(shù),那么這個(gè)數(shù)就是漢明距離。簡(jiǎn)單來講就是統(tǒng)計(jì)兩個(gè)字符串不同的bit位的個(gè)數(shù),也可以理解成一個(gè)字符串換成另一個(gè)字符串需要改變的字符的個(gè)數(shù)。例如:
1011101與1001001之間的漢明距離是2。
2143896與2233796之間的漢明距離是3。
"toned"與"roses"之間的漢明距離是3。
采用漢明距離計(jì)算-1/1二值編碼是因?yàn)樵诘途S空間中計(jì)算兩個(gè)二值向量之間漢明距離的速度是非常快的,相對(duì)于其他方法以10的指數(shù)倍提速,在很大程度上可以有效的提高人臉檢索的速度。
采用上述進(jìn)一步方案的有益效果是:在測(cè)試部分用sign函數(shù)對(duì)約束后的特征進(jìn)行量化能使最后需要的離散二值編碼與網(wǎng)絡(luò)輸出的特征真值更接近。
進(jìn)一步,步驟S6后還包括利用QTimer類獲取網(wǎng)絡(luò)構(gòu)架中計(jì)算漢明距離的運(yùn)行時(shí)間作為檢索時(shí)間,所述檢索時(shí)間用于與歐式距離的計(jì)算時(shí)間進(jìn)行對(duì)比,得到比對(duì)結(jié)果的步驟。
采用上述進(jìn)一步方案的有益效果是:本發(fā)明計(jì)算兩個(gè)48維二值編碼的漢明距離耗時(shí)0.064ms,而計(jì)算兩個(gè)500維特征向量的歐式距離耗時(shí)13.388ms,效率提升約210倍。
本發(fā)明解決上述技術(shù)問題的另一技術(shù)方案如下:一種人臉檢索系統(tǒng),包括:
網(wǎng)絡(luò)構(gòu)架搭建模塊,用于搭建人臉檢索的網(wǎng)絡(luò)構(gòu)架,所述網(wǎng)絡(luò)構(gòu)架包括池化層、全連接層和損失層,并根據(jù)歐式距離對(duì)網(wǎng)絡(luò)構(gòu)架中的損失層進(jìn)行優(yōu)化;
參數(shù)調(diào)節(jié)模塊,用于根據(jù)反向傳播的方式調(diào)節(jié)網(wǎng)絡(luò)構(gòu)架中優(yōu)化的損失層、全連接層和池化層的參數(shù),得到調(diào)節(jié)后的網(wǎng)絡(luò)構(gòu)架;
測(cè)試用例生成模塊,用于將各訓(xùn)練樣本圖片輸入調(diào)節(jié)后的網(wǎng)絡(luò)構(gòu)架中生成測(cè)試用例;
計(jì)算模塊,根據(jù)sign函數(shù)對(duì)所述測(cè)試用例進(jìn)行量化,計(jì)算得到測(cè)試用例的二值編碼,通過二值編碼計(jì)算兩兩訓(xùn)練樣本圖片之間的漢明距離;
訓(xùn)練模塊,用于根據(jù)漢明距離對(duì)各訓(xùn)練樣本圖片的近似度進(jìn)行排序,從而完成對(duì)人臉檢索的網(wǎng)絡(luò)構(gòu)架的訓(xùn)練;
檢索模塊,用于將各待檢索人臉圖片輸入完成訓(xùn)練的人臉檢索網(wǎng)絡(luò)構(gòu)架中進(jìn)行檢索,得到各待檢索人臉圖片的近似度排序結(jié)果。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
進(jìn)一步,人臉檢索系統(tǒng)還包括預(yù)處理模塊,所述預(yù)處理模塊用于將各訓(xùn)練樣本圖片進(jìn)行預(yù)處理,包括:將各訓(xùn)練樣本圖片根據(jù)預(yù)設(shè)規(guī)格進(jìn)行裁剪并對(duì)齊處理,再將對(duì)齊后的各訓(xùn)練樣本圖片的格式轉(zhuǎn)換為L(zhǎng)MDB(Lighting Memory-Mapped Database)格式。
進(jìn)一步,所述網(wǎng)絡(luò)構(gòu)架搭建模塊中根據(jù)歐式距離對(duì)網(wǎng)絡(luò)構(gòu)架中的損失層進(jìn)行優(yōu)化:對(duì)損失層中的損失函數(shù)進(jìn)行正則化項(xiàng),兩兩訓(xùn)練樣本圖片為一組訓(xùn)練樣本圖片對(duì),訓(xùn)練樣本圖片對(duì)I1,I2的損失函數(shù)公式為:
其中,Lr(d1,d2,m)為損失值,d1和d2為分別訓(xùn)練樣本圖片對(duì)I1,I2的特征,為訓(xùn)練樣本圖片對(duì)I1,I2特征的歐式距離,γ為控制正則項(xiàng)強(qiáng)度的加權(quán)參數(shù),q為邊緣閾值參數(shù)且q>0,若訓(xùn)練樣本圖片對(duì)中兩者預(yù)設(shè)的標(biāo)簽類別相同時(shí)則定義m=0,否則定義m=1。
進(jìn)一步,測(cè)試用例生成模塊包括:
模型生成單元,用于將網(wǎng)絡(luò)構(gòu)架中全連接層的節(jié)點(diǎn)數(shù)設(shè)置為預(yù)設(shè)值n1,將各訓(xùn)練樣本圖片輸入調(diào)節(jié)后的網(wǎng)絡(luò)構(gòu)架中生成初始測(cè)試用例;
模型調(diào)整單元,用于將網(wǎng)絡(luò)構(gòu)架中全連接層的節(jié)點(diǎn)數(shù)n1設(shè)置為預(yù)設(shè)值n2,且n2>n1,來調(diào)整初始測(cè)試用例,得到調(diào)整后的測(cè)試用例。
進(jìn)一步,參數(shù)調(diào)節(jié)模塊中需要進(jìn)行前向傳播和反向傳播,在前向傳播完成進(jìn)行反向傳播,根據(jù)反向傳播的方式依次從優(yōu)化的損失層、全連接層和池化層進(jìn)行調(diào)節(jié):
用K表示訓(xùn)練樣本圖片的數(shù)據(jù)集中有K對(duì)訓(xùn)練樣本圖片對(duì),利用數(shù)據(jù)集的損失函數(shù)公式
依次進(jìn)行損失層、全連接層和池化層損失值的梯度計(jì)算,其中(di,1,di,2)為第i對(duì)訓(xùn)練樣本圖像對(duì)的兩張圖片n維特征向量,
設(shè)第一項(xiàng)T1為其中預(yù)設(shè)的標(biāo)簽類別相同的一訓(xùn)練樣本圖片對(duì)得到的損失值,第二項(xiàng)T2為其中預(yù)設(shè)的標(biāo)簽類別不相同的一訓(xùn)練樣本圖片對(duì)得到的損失值,并利用公式(3)(4)(5)進(jìn)行損失層、全連接層和池化層參數(shù)的調(diào)節(jié)
其中,R為正則化輸出向量di,j,i∈(1,k),j=1/2,i為K對(duì)訓(xùn)練樣本圖片對(duì)中第i對(duì)圖像對(duì),j為第i對(duì)圖像對(duì)中第j張圖像,γ為控制正則項(xiàng)強(qiáng)度的加權(quán)參數(shù),為導(dǎo)數(shù)符號(hào)。
進(jìn)一步,所述計(jì)算模塊中從測(cè)試用例中提取出近似二值編碼,根據(jù)sign函數(shù)計(jì)算公式
對(duì)近似二值編碼進(jìn)行量化,得到浮點(diǎn)型向量約束在(-1,1)之間的二值編碼,其中,di,j為第i對(duì)訓(xùn)練樣本圖片對(duì)的特征,j為第i對(duì)訓(xùn)練樣本圖片對(duì)中第j張圖像;再通過二值編碼計(jì)算訓(xùn)練樣本圖片對(duì)之間的漢明距離。
進(jìn)一步,人臉檢索系統(tǒng)還包括對(duì)比模塊,所述對(duì)比模塊利用QTimer類獲取網(wǎng)絡(luò)構(gòu)架中計(jì)算漢明距離的運(yùn)行時(shí)間作為檢索時(shí)間,所述檢索時(shí)間用于與歐式距離的計(jì)算時(shí)間進(jìn)行對(duì)比,得到比對(duì)結(jié)果的步驟。
附圖說明
圖1為本發(fā)明提供的人臉檢索方法實(shí)施例的方法流程圖;
圖2為本發(fā)明提供的人臉檢索系統(tǒng)實(shí)施例的模塊框圖;
圖3為本發(fā)明一實(shí)施例中人臉檢索方法與現(xiàn)有方法在LFW閉集數(shù)據(jù)庫(kù)上的實(shí)驗(yàn)結(jié)果對(duì)比圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
圖1為本發(fā)明提供的人臉檢索方法實(shí)施例的方法流程圖;
如圖1所示,一種人臉檢索方法,包括如下步驟:
步驟S1:搭建人臉檢索的網(wǎng)絡(luò)構(gòu)架,所述網(wǎng)絡(luò)構(gòu)架包括池化層、全連接層和損失層,并根據(jù)歐式距離對(duì)網(wǎng)絡(luò)構(gòu)架中的損失層進(jìn)行優(yōu)化;
步驟S2:根據(jù)反向傳播的方式調(diào)節(jié)網(wǎng)絡(luò)構(gòu)架中優(yōu)化的損失層、全連接層和池化層的參數(shù),得到調(diào)節(jié)后的網(wǎng)絡(luò)構(gòu)架;
步驟S3:將各訓(xùn)練樣本圖片輸入調(diào)節(jié)后的網(wǎng)絡(luò)構(gòu)架中生成測(cè)試用例;
步驟S4:根據(jù)sign函數(shù)對(duì)所述測(cè)試用例進(jìn)行量化,計(jì)算得到測(cè)試用例的二值編碼,通過二值編碼計(jì)算兩兩訓(xùn)練樣本圖片之間的漢明距離;
步驟S5:根據(jù)漢明距離對(duì)各訓(xùn)練樣本圖片的近似度進(jìn)行排序,從而完成對(duì)人臉檢索的網(wǎng)絡(luò)構(gòu)架的訓(xùn)練;
步驟S6:將各待檢索人臉圖片輸入完成訓(xùn)練的人臉檢索網(wǎng)絡(luò)構(gòu)架中進(jìn)行檢索,得到各待檢索人臉圖片的近似度排序結(jié)果。
上述實(shí)施例中,應(yīng)理解的,本發(fā)明網(wǎng)絡(luò)構(gòu)架是基于CNNs的網(wǎng)絡(luò)構(gòu)架,本發(fā)明搭建的是一個(gè)淺層的網(wǎng)絡(luò)構(gòu)架,其中包括三個(gè)卷積-池化層、兩個(gè)全連接層、一個(gè)損失層,三個(gè)卷積層卷積核的個(gè)數(shù)分別為32/32/64,卷積核大小為5*5,步長(zhǎng)為1;三個(gè)池化層的核大小均為3*3,步長(zhǎng)為2,第一個(gè)池化層為最大池化層,后面兩個(gè)均為平均池化層;第一個(gè)全連接層設(shè)置節(jié)點(diǎn)數(shù)為500,第二個(gè)全連接層設(shè)置節(jié)點(diǎn)數(shù)為n,即用于檢索的二值編碼的長(zhǎng)度,兩個(gè)全連接層的權(quán)值初始化參數(shù)為xavier,偏置項(xiàng)初始化參數(shù)為constant;
上述實(shí)施例中,在損失層進(jìn)行圖片對(duì)的隨機(jī)選擇比網(wǎng)絡(luò)外選擇圖片對(duì)更有益于網(wǎng)絡(luò)訓(xùn)練,根據(jù)反向傳播的方式微調(diào)網(wǎng)絡(luò)比直接訓(xùn)練網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)的性能有很大的提升,通過二值編碼計(jì)算訓(xùn)練樣本圖片對(duì)之間的漢明距離,由漢明距離得到相似度進(jìn)行檢索,能達(dá)到以10的數(shù)量級(jí)提高檢索精度。本發(fā)明從以上幾個(gè)方面對(duì)網(wǎng)絡(luò)和輸出的特征進(jìn)行優(yōu)化,使得在大規(guī)模人臉數(shù)據(jù)庫(kù)下也能保證在準(zhǔn)確率持平或者盡可能小范圍降低的情況下能快速進(jìn)行人臉圖像的檢索。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,所述步驟S3前還包括將各訓(xùn)練樣本圖片進(jìn)行預(yù)處理的步驟:將各訓(xùn)練樣本圖片根據(jù)預(yù)設(shè)規(guī)格進(jìn)行檢測(cè)、裁剪并對(duì)齊處理,再將對(duì)齊后的各訓(xùn)練樣本圖片的格式轉(zhuǎn)換為L(zhǎng)MDB(Lighting Memory-Mapped Database)格式。
上述實(shí)施例中,對(duì)訓(xùn)練樣本圖片進(jìn)行預(yù)處理及格式轉(zhuǎn)換能夠?yàn)橄旅娴牟襟E取得更快的處理時(shí)間,并且提高處理結(jié)果的精度。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,所述步驟S1中根據(jù)歐式距離對(duì)網(wǎng)絡(luò)構(gòu)架中的損失層進(jìn)行優(yōu)化的具體方法為:對(duì)損失層中的損失函數(shù)進(jìn)行正則化項(xiàng),兩兩訓(xùn)練樣本圖片為一組訓(xùn)練樣本圖片對(duì),訓(xùn)練樣本圖片對(duì)I1,I2的損失函數(shù)公式為:
其中,Lr(d1,d2,m)為損失值,d1和d2為分別訓(xùn)練樣本圖片對(duì)I1,I2的特征,為訓(xùn)練樣本圖片對(duì)I1,I2特征的歐式距離,γ為控制正則項(xiàng)強(qiáng)度的加權(quán)參數(shù),q為邊緣閾值參數(shù)且q>0,若訓(xùn)練樣本圖片對(duì)I1,I2中兩者預(yù)設(shè)的標(biāo)簽類別相同時(shí)則定義m=0,否則定義m=1。具體的,損失層采用損失函數(shù)Regularloss,參數(shù)q=24,γ=0.01,在Regularlos損失層,需要先進(jìn)行圖片對(duì)的選擇,設(shè)置隨機(jī)選擇方式,通過比對(duì)人臉數(shù)據(jù)庫(kù)標(biāo)簽類別是否一致判斷隨機(jī)選擇的圖片對(duì)是否相似,若相似,則m=0,若不相似,則m=1。
上述實(shí)施例中,損失函數(shù)(Regularloss)將輸出的特征進(jìn)行正則化約束比sigmoid/tanh的范圍約束使網(wǎng)絡(luò)輸出的特征保留的信息更多;用歐式距離代替漢明距離可以防止過擬合,提升網(wǎng)絡(luò)性能,同時(shí)由于輸出的特征向量是浮點(diǎn)型向量,用歐式距離能減少計(jì)算成本,正則化項(xiàng)選擇用低階范數(shù)除了可以大大的降低計(jì)算成本,通過反向傳播能加快網(wǎng)絡(luò)訓(xùn)練的速度,提升訓(xùn)練進(jìn)度。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,所述步驟S2包括:根據(jù)反向傳播的方式依次從優(yōu)化的損失層、全連接層和池化層進(jìn)行調(diào)節(jié):
用K表示訓(xùn)練樣本圖片的數(shù)據(jù)集中有K對(duì)訓(xùn)練樣本圖片對(duì),利用數(shù)據(jù)集的損失函數(shù)公式
依次進(jìn)行損失層、全連接層和池化層損失值的梯度計(jì)算,其中(di,1,di,2)為第i對(duì)訓(xùn)練樣本圖像對(duì)的兩張圖片n維特征向量,
設(shè)第一項(xiàng)T1為其中預(yù)設(shè)的標(biāo)簽類別相同的一訓(xùn)練樣本圖片對(duì)得到的損失值,第二項(xiàng)T2為其中預(yù)設(shè)的標(biāo)簽類別不相同的一訓(xùn)練樣本圖片對(duì)得到的損失值,并利用公式(3)(4)(5)進(jìn)行損失層、全連接層和池化層參數(shù)的調(diào)節(jié)
其中,R為正則化輸出向量di,j,i∈(1,k),j=1/2,i為K對(duì)訓(xùn)練樣本圖片對(duì)中第i對(duì)圖像對(duì),j為第i對(duì)圖像對(duì)中第j張圖像,γ為控制正則項(xiàng)強(qiáng)度的加權(quán)參數(shù),為導(dǎo)數(shù)符號(hào)。
上述實(shí)施例中,反向傳播以及測(cè)試代碼中均使用sign函數(shù),將使網(wǎng)絡(luò)輸出的特征與量化之后的二值編碼盡可能的保持一致,從而會(huì)使量化過程中的特征信息的損失降到最低,以提高檢索精度。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,所述步驟S3包括:
步驟S301:將網(wǎng)絡(luò)構(gòu)架中全連接層的節(jié)點(diǎn)數(shù)設(shè)置為預(yù)設(shè)值n1,將各訓(xùn)練樣本圖片輸入調(diào)節(jié)后的網(wǎng)絡(luò)構(gòu)架中生成初始測(cè)試用例;
步驟S302:將網(wǎng)絡(luò)構(gòu)架中全連接層的節(jié)點(diǎn)數(shù)n1設(shè)置為預(yù)設(shè)值n2,且n2>n1,來調(diào)整初始測(cè)試用例,得到調(diào)整后的測(cè)試用例。通過調(diào)整后的測(cè)試用例來調(diào)整網(wǎng)絡(luò)構(gòu)架。
具體的,n1設(shè)置為比較小的數(shù),例如12,將n2設(shè)置為比較大的數(shù),例如24、48,將第二個(gè)全連接層的權(quán)值學(xué)習(xí)率系數(shù)以及偏置項(xiàng)學(xué)習(xí)率系數(shù)設(shè)置為網(wǎng)絡(luò)對(duì)應(yīng)系數(shù)的10倍。
上述實(shí)施例中,通過測(cè)試用例對(duì)網(wǎng)絡(luò)構(gòu)架進(jìn)行微調(diào),微調(diào)后的網(wǎng)絡(luò)構(gòu)架比直接開始訓(xùn)練的損失率下降更平滑更快趨于平穩(wěn),且震蕩很小。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,所述步驟S4包括:從測(cè)試用例中提取出近似二值編碼,根據(jù)sign函數(shù)計(jì)算公式
對(duì)近似二值編碼進(jìn)行量化,得到浮點(diǎn)型向量約束在(-1,1)之間的二值編碼,其中,di,j為第i對(duì)訓(xùn)練樣本圖片對(duì)的特征,j為第i對(duì)訓(xùn)練樣本圖片對(duì)中第j張圖像;再通過二值編碼計(jì)算訓(xùn)練樣本圖片對(duì)之間的漢明距離。
上述實(shí)施例中,在測(cè)試部分用sign函數(shù)對(duì)約束后的特征進(jìn)行量化能使最后需要的離散二值編碼與網(wǎng)絡(luò)輸出的特征真值更接近。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,步驟S6后還包括利用QTimer類獲取網(wǎng)絡(luò)構(gòu)架中計(jì)算漢明距離的運(yùn)行時(shí)間作為檢索時(shí)間,所述檢索時(shí)間用于與歐式距離的計(jì)算時(shí)間進(jìn)行對(duì)比,得到比對(duì)結(jié)果的步驟。
圖3為本發(fā)明一實(shí)施例中人臉檢索方法與現(xiàn)有方法在LFW閉集數(shù)據(jù)庫(kù)上的實(shí)驗(yàn)結(jié)果對(duì)比圖,由圖可知本發(fā)明方法相對(duì)于其他方法精度及效率大大提高;此方法計(jì)算兩個(gè)48維二值編碼的漢明距離耗時(shí)0.064ms,而計(jì)算兩個(gè)500維特征向量的歐式距離耗時(shí)13.388ms,效率提升約210倍。
圖2為本發(fā)明提供的人臉檢索系統(tǒng)實(shí)施例的模塊框圖;
可選地,作為本發(fā)明的另一個(gè)實(shí)施例,如圖2所示,一種人臉檢索系統(tǒng),包括:
網(wǎng)絡(luò)構(gòu)架搭建模塊,用于搭建人臉檢索的網(wǎng)絡(luò)構(gòu)架,所述網(wǎng)絡(luò)構(gòu)架包括池化層、全連接層和損失層,并根據(jù)歐式距離對(duì)網(wǎng)絡(luò)構(gòu)架中的損失層進(jìn)行優(yōu)化;
參數(shù)調(diào)節(jié)模塊,用于根據(jù)反向傳播的方式調(diào)節(jié)網(wǎng)絡(luò)構(gòu)架中優(yōu)化的損失層、全連接層和池化層的參數(shù),得到調(diào)節(jié)后的網(wǎng)絡(luò)構(gòu)架;
測(cè)試用例生成模塊,用于將各訓(xùn)練樣本圖片輸入調(diào)節(jié)后的網(wǎng)絡(luò)構(gòu)架中生成測(cè)試用例;
計(jì)算模塊,根據(jù)sign函數(shù)對(duì)所述測(cè)試用例進(jìn)行量化,計(jì)算得到測(cè)試用例的二值編碼,通過二值編碼計(jì)算兩兩訓(xùn)練樣本圖片之間的漢明距離;
訓(xùn)練模塊,用于根據(jù)漢明距離對(duì)各訓(xùn)練樣本圖片的近似度進(jìn)行排序,從而完成對(duì)人臉檢索的網(wǎng)絡(luò)構(gòu)架的訓(xùn)練;
檢索模塊,用于將各待檢索人臉圖片輸入完成訓(xùn)練的人臉檢索網(wǎng)絡(luò)構(gòu)架中進(jìn)行檢索,得到各待檢索人臉圖片的近似度排序結(jié)果。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,人臉檢索系統(tǒng)還包括預(yù)處理模塊,所述預(yù)處理模塊用于將各訓(xùn)練樣本圖片進(jìn)行預(yù)處理,包括:將各訓(xùn)練樣本圖片根據(jù)預(yù)設(shè)規(guī)格進(jìn)行裁剪并對(duì)齊處理,再將對(duì)齊后的各訓(xùn)練樣本圖片的格式轉(zhuǎn)換為L(zhǎng)MDB(Lighting Memory-Mapped Database)格式。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,所述網(wǎng)絡(luò)構(gòu)架搭建模塊中根據(jù)歐式距離對(duì)網(wǎng)絡(luò)構(gòu)架中的損失層進(jìn)行優(yōu)化:對(duì)損失層中的損失函數(shù)進(jìn)行正則化項(xiàng),兩兩訓(xùn)練樣本圖片為一組訓(xùn)練樣本圖片對(duì),訓(xùn)練樣本圖片對(duì)I1,I2的損失函數(shù)公式為:
其中,Lr(d1,d2,m)為損失值,d1和d2為分別訓(xùn)練樣本圖片對(duì)I1,I2的特征,為訓(xùn)練樣本圖片對(duì)I1,I2特征的歐式距離,γ為控制正則項(xiàng)強(qiáng)度的加權(quán)參數(shù),q為邊緣閾值參數(shù)且q>0,若訓(xùn)練樣本圖片對(duì)中兩者預(yù)設(shè)的標(biāo)簽類別相同時(shí)則定義m=0,否則定義m=1。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,測(cè)試用例生成模塊包括:
模型生成單元,用于將網(wǎng)絡(luò)構(gòu)架中全連接層的節(jié)點(diǎn)數(shù)設(shè)置為預(yù)設(shè)值n1,將各訓(xùn)練樣本圖片輸入調(diào)節(jié)后的網(wǎng)絡(luò)構(gòu)架中生成初始測(cè)試用例;
模型調(diào)整單元,用于將網(wǎng)絡(luò)構(gòu)架中全連接層的節(jié)點(diǎn)數(shù)n1設(shè)置為預(yù)設(shè)值n2,且n2>n1,來調(diào)整初始測(cè)試用例,得到調(diào)整后的測(cè)試用例。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,參數(shù)調(diào)節(jié)模塊中需要進(jìn)行前向傳播和反向傳播,在前向傳播完成進(jìn)行反向傳播,根據(jù)反向傳播的方式依次從優(yōu)化的損失層、全連接層和池化層進(jìn)行調(diào)節(jié):
用K表示訓(xùn)練樣本圖片的數(shù)據(jù)集中有K對(duì)訓(xùn)練樣本圖片對(duì),利用數(shù)據(jù)集的損失函數(shù)公式
依次進(jìn)行損失層、全連接層和池化層損失值的梯度計(jì)算,其中(di,1,di,2)為第i對(duì)訓(xùn)練樣本圖像對(duì)的兩張圖片n維特征向量,
設(shè)第一項(xiàng)T1為其中預(yù)設(shè)的標(biāo)簽類別相同的一訓(xùn)練樣本圖片對(duì)得到的損失值,第二項(xiàng)T2為其中預(yù)設(shè)的標(biāo)簽類別不相同的一訓(xùn)練樣本圖片對(duì)得到的損失值,并利用公式(3)(4)(5)進(jìn)行損失層、全連接層和池化層參數(shù)的調(diào)節(jié)
其中,R為正則化輸出向量di,j,i∈(1,k),j=1/2,i為K對(duì)訓(xùn)練樣本圖片對(duì)中第i對(duì)圖像對(duì),j為第i對(duì)圖像對(duì)中第j張圖像,γ為控制正則項(xiàng)強(qiáng)度的加權(quán)參數(shù),為導(dǎo)數(shù)符號(hào)。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,
所述計(jì)算模塊中從測(cè)試用例中提取出近似二值編碼,根據(jù)sign函數(shù)計(jì)算公式
對(duì)近似二值編碼進(jìn)行量化,得到浮點(diǎn)型向量約束在(-1,1)之間的二值編碼,其中,di,j為第i對(duì)訓(xùn)練樣本圖片對(duì)的特征,j為第i對(duì)訓(xùn)練樣本圖片對(duì)中第j張圖像;再通過二值編碼計(jì)算訓(xùn)練樣本圖片對(duì)之間的漢明距離。
可選地,作為本發(fā)明的一個(gè)實(shí)施例,人臉檢索系統(tǒng)還包括對(duì)比模塊,所述對(duì)比模塊利用QTimer類獲取網(wǎng)絡(luò)構(gòu)架中計(jì)算漢明距離的運(yùn)行時(shí)間作為檢索時(shí)間,所述檢索時(shí)間用于與歐式距離的計(jì)算時(shí)間進(jìn)行對(duì)比,得到比對(duì)結(jié)果的步驟。
本發(fā)明在損失層進(jìn)行圖片對(duì)的隨機(jī)選擇比網(wǎng)絡(luò)外選擇圖片對(duì)更有益于網(wǎng)絡(luò)訓(xùn)練,根據(jù)反向傳播的方式微調(diào)網(wǎng)絡(luò)比直接訓(xùn)練網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)的性能有很大的提升,Regularloss損失函數(shù)將輸出的特征進(jìn)行正則化約束比sigmoid/tanh的范圍約束使網(wǎng)絡(luò)輸出的特征保留的信息更多,同時(shí)在測(cè)試部分用sign函數(shù)對(duì)約束后的特征進(jìn)行量化能使最后需要的離散二值編碼與網(wǎng)絡(luò)輸出的特征真值更接近,通過二值編碼計(jì)算訓(xùn)練樣本圖片對(duì)之間的漢明距離,由漢明距離得到相似度進(jìn)行檢索,能達(dá)到以10的數(shù)量級(jí)提高檢索精度。本發(fā)明從以上幾個(gè)方面對(duì)網(wǎng)絡(luò)和輸出的特征進(jìn)行優(yōu)化,使得在大規(guī)模人臉數(shù)據(jù)庫(kù)下也能保證在準(zhǔn)確率持平或者盡可能小范圍降低的情況下能快速進(jìn)行人臉圖像的檢索。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。