本發(fā)明涉及一種視頻人臉檢測識別領域,尤其是涉及一種基于深度學習的視頻人臉識別方法。
背景技術:
視頻監(jiān)控是安防系統(tǒng)的一個重要組成部分。隨著視頻傳感器技術以及相應配套技術的發(fā)展,從最開始的模擬監(jiān)控系統(tǒng),之后的數字-模擬監(jiān)控系統(tǒng),到現(xiàn)在開始應用的ip監(jiān)控系統(tǒng),視頻監(jiān)控的應用范圍越來越大,特別是公安系統(tǒng)大量部署視頻監(jiān)控系統(tǒng)以應用于治安管理以及疑犯追蹤等領域。
快速發(fā)展的視頻監(jiān)控系統(tǒng)產生了海量的監(jiān)控視頻數據,在治安管理及疑犯追蹤領域對這些視頻數據的一個主要的處理是通過一個人的一張或數張圖片,找到該人出現(xiàn)過的視頻文件以及相應的幀數。傳統(tǒng)方式使用人力對這些視頻數據進行查找、整理,主要的缺點在于查找效率低下,錯誤率高、需要反復排除,且花費時間長,隨著視頻監(jiān)控系統(tǒng)的不斷發(fā)展以及監(jiān)控視頻數據的不斷增加,傳統(tǒng)的人人工查找的方法已經越來越不適用。
通過視頻圖像處理技術和模式識別技術自動地對收集到地視頻信息進行處理、識別,已經在交通管理領域已經取得了十分成熟的應用。但是現(xiàn)有的基于圖像處理的識別方法僅能夠在理想環(huán)境下達到較高的識別準確率,在光線變化復雜、圖像質量低下、待識別對象姿態(tài)變化時,漏檢率和誤檢率便會迅速升高,所以對視頻中人臉的自動識別、分析還不能達到實際應用的水平。
隨著大數據和深度學習技術的發(fā)展,深度學習技術被應用于人臉檢測系統(tǒng)中,并取得較好的效果?,F(xiàn)有的一些基于深度學習的視頻人臉識別專利,如專利CN201511033733.6,將視頻視作一組圖片,并獲取若干張質量較好的圖片上的人臉進行識別,這種方法忽略了不同幀之間的聯(lián)系,丟失了大量的信息,在視頻質量變差時,使得最終識別的精確度嚴重下降。
專利CN201510471210.3提出一種基于深度神經網絡的實時人臉識別方法,該方法通過深度神經網絡提取人臉的特征向量,首先計算特征向量之間的漢明距離,然后選擇處于閾值之下的人臉作為二次識別的對象,計算二次識別的特征向量的歐式距離,以歐式距離來判斷待識別人臉屬于人臉庫中哪一個人臉,以提高人臉庫規(guī)模較大時的運算效率。
從現(xiàn)有的方法來看,主要是提取視頻圖像中的某些幀的人臉信息,利用深度學習進行訓練和檢測識別,對于視頻圖像中各幀之間的時間-空間上聯(lián)系還沒有考慮,導致準確率較低。
技術實現(xiàn)要素:
為了克服已有視頻人臉檢測和識別方法的準確率較低的不足,本發(fā)明提供了一種準確率較高的基于多通道網絡的視頻人臉檢測和識別方法。
本發(fā)明解決其技術問題所采用的技術方案是:
一種基于多通道網絡的視頻人臉檢測和識別方法,包括如下步驟:
S1:視頻預處理
接收監(jiān)控設備收集到的視頻數據,并將其分解為一幀一幀的圖像,給每一幀圖像加上時間信息;
S2:目標人臉檢測和姿態(tài)系數計算,過程如下:
提取視頻圖像中人臉位置以及對應的五官位置,計算視頻圖像中人臉以及標準姿態(tài)人臉五官的距離,計算姿態(tài)系數,整合姿態(tài)相近圖像,將相鄰幀間位置接近且姿態(tài)系數相差最小的人臉視為同一人臉族中的人臉;定義閾值φ,對于每一個人臉族,選取m張p<φ的人臉;如果在該人臉族中p<φ的人臉圖像數為mp<φ張,則將該人臉族中姿態(tài)系p最小的一張人臉圖像復制m-mp<φ份,與其他圖像一同構成m張圖像,輸入到S3中;
S3:人臉姿態(tài)糾正:對于S2中得到的m張人臉,進行姿態(tài)調整;
S4:基于深度神經網絡的人臉特征提取,過程如下:
S4.1人臉特征提取網絡訓練
在進行視頻圖像的人臉特征提取時,已預先利用人臉數據庫進行特征模型訓練,獲取人臉數據庫中每個人不同角度、不同光照下的M張圖像,隨機抽取其中m張圖像,對這m張圖像進行姿態(tài)矯正后,將其組合成w'×h'×3m的人臉圖像,其中w'為訓練圖片的寬,h'為訓練圖片的高,3m為RGB3通道乘以圖像數量m,對人臉數據庫中每個人進行上述操作,并編上標簽,輸入到神經網絡中訓練;
S4.2視頻人臉特征提取
通過S3中得到了m張w×h×3矯正后的人臉彩色圖像,每個圖像有3個通道,將不同圖像以不同通道的形式融合在一起,即融合為一張有3×m個通道的人臉圖像w×h×3m;
將得到的這張w×h×3m的人臉圖像輸入S4.1訓練得到到人臉特征提取網絡中,并最終得到一個代表該人臉的特征向量;
S5人臉特征比對
對于輸入的人臉,利用步驟S4得到特征向量后,再利用余弦距離來匹配輸入人臉特征向量與特征庫中向量的匹配度,計算過程如下:
S5.1初步篩選
計算待識別人臉的特征與每個類的中心特征的余弦距離,計算方式如公式(10)所示,操作表示為向量的二范數,即向量的長度,cosθ即為向量與向量的余弦距離:
與待識別人臉余弦距離大于設定閾值的類加入備選類中,如果待識別人臉的特征與所有類的中心特征的余弦距離均小于則視為數據庫中未存儲該人的信息,結束識別。
進一步,所述步驟S5還包括以下步驟:
S5.2精確篩選
對于每一個備選類中的每一個人臉,計算它們的特征向量與待識別人臉的特征向量的余弦距離,選取其中余弦距離超過設定閾值ρ的人臉作為識別結果,并將識別結果所在的視頻圖像輸出;如果每一個備選類中的每一個人臉與待識別人臉的余弦距離均小于ρ,則視為數據庫中未存儲該人的信息。
再進一步,所述步驟S1中,接收到的視頻中的第一幀圖像為圖像1,然后按時間順序設定視頻中的第t幀圖像為圖像t,以It表示第t幀圖像,以I表示同一視頻的幀圖像集合,完成對視頻的預處理后,按時間從前到后的順序將分解的圖像傳到人臉目標檢測模塊中。
更進一步,所述步驟S2中,目標人臉檢測和姿態(tài)系數計算的過程如下:
S2.1提取視頻圖像中人臉位置以及對應的五官位置
對于每一幀圖像It,利用哈爾特征找出該幀圖像中存在的人臉以及對應的五官的坐標,分別記作F1(x1,y1),F(xiàn)2(x2,y2),F(xiàn)3(x3,y3),F(xiàn)4(x4,y4),F(xiàn)5(x5,y5);
S2.2計算視頻圖像中人臉以及標準姿態(tài)人臉五官的距離
令標準姿態(tài)圖像I'中人臉五官的坐標為F1'(x'1,y'1),F(xiàn)2'(x'2,y'2),F(xiàn)3'(x'3,y'3),F(xiàn)4'(x'4,y'4),F(xiàn)5'(x'5,y'5),利用公式(1)和公式(2)計算視頻圖像It和標準姿態(tài)圖像I'中人臉五官間相互距離:
其中,(xi,yi)、(xj,yj)表示待查找人臉中不同五官的坐標,(x'i,y'i)、(x'j,y'j)表示標準姿態(tài)圖像中不同五官的坐標,dij表示待識別人臉五官間的相互距離,d'ij表示標準姿態(tài)圖像中人臉五官間的相互距離;
S2.3計算姿態(tài)系數,整合姿態(tài)相近圖像
定義人臉的姿態(tài)系數p,利用公式(3)計算姿態(tài)系數p:
其中,λ為縮放系數,用以避免待識別人臉圖像與標準姿態(tài)圖像尺度不一致時造成的誤差,λ的值可由公式(4)計算得出,即λ取使得姿態(tài)系數最小的值;
所述步驟S3中,姿態(tài)調整的步驟如下:
S3.1計算人臉旋轉向量
通過已知的標準人臉模型以及視頻中五官特征點的坐標,使用POSIT算法得到圖像中人臉的姿態(tài)信息,即人臉的旋轉向量R,即
S3.2計算矯正圖像和原圖像的映射關系
通過人臉的旋轉向量,得到矯正后人臉圖像中某一像素點到原人臉圖像中某一像素點的映射關系,在矯正后圖像中以人臉中軸為y軸,以兩眼的連線為x軸,構建坐標系,令(x,y)=f(x',y')為矯正后圖像上一點(x',y')到原圖像上一點(x,y)的映射,具體如下:
S3.3姿態(tài)矯正
rgb'(x,y)為矯正后圖像上(x,y)處的rgb值,rgb(x,y)為原人臉圖像上(x,y)處的rgb值,則利用公式(7)得到矯正后人臉圖像中某一點(x,y)上的rgb值,設
其中,G為高斯概率矩陣,在實際操作過程中,因為不同人臉的實際三維模型和標準三維模型存在一定差別,所以矯正后圖像上的某一點與原圖像對應點的映射關系會存在一定誤差,因而矯正后圖像上某一點的rgb值由原圖像上對應位置處附近9個點的rgb共同得出,即通過高斯概率矩陣G求得該點處rgb值的期望值,作為該點的rgb值;公式(7)中k是事先設定好比例值;
對同一人臉族中的每張人臉進行人臉姿態(tài)矯正后,得到m若干張大小為w×h×3的人臉圖像,即一張擁有RGB3個通道的w×h像素的彩色圖像。
所述步驟S4.1中,采用梯度下降算法訓練神經網絡,每輸入batch張圖片并計算損失后更新神經網絡的權重,網絡中全連接層3輸出的512維向量表示輸入的人臉是哪一人的概率,對其做softmax回歸,得到相應的損失函數,即如公式(9)所示,其中,k表示輸入圖像所屬的類別,zk表示全連接層3輸出的512維向量中的第k個數值:
loss=∑-logf(zk) (10)
計算了損失函數后,通過前向推斷計算和反向梯度計算,計算出神經網絡中各層的更新值,對各層的權值進行更新;
預先對數據庫中的人臉特征集進行聚類分析以建立空間索引,操作步驟如下:
S4.1.1對于人臉特征庫中的特征使用聚類算法,將這些人臉特征聚為若干類;
S4.1.2對于每一類,計算類中所有人臉的特征向量的均值,記作該類的中心特征。
本發(fā)明利用監(jiān)控視頻的各幀之間的關聯(lián)性,結合深度學習方法,能夠在海量的視頻文件中目標人臉出現(xiàn)過的視頻文件以及所在的幀數。相較于其它方法,本發(fā)明通過收集同一個人在不同幀中的圖像信息,加以綜合考慮,能夠最大程度地利用視頻數據地信息,從而提高識別地準確率。
本發(fā)明的有益效果主要表現(xiàn)在:
1、以往的方法對視頻中人臉進行檢測時,都是單獨地考慮不同幀中的圖像,未能夠有效地利用視頻中的信息。本方法利用將不同圖像視作不同通道的方法,將同一個人臉在不同幀中的圖像融合為一張多通道的圖像,并利用多層卷積網絡隱式地提取綜合提取這些圖像的聯(lián)合特征。一方面,能夠最大程度的利用視頻中的信息,提高了準確率;另一方面,多張圖像同時輸入到神經網絡中,避免了多次輸入造成的時間浪費;
2、由于需要將多張人臉圖像融合為一張圖像,必須要確保不同人臉圖像中相同位置的特征大致保持一致,即在不同圖像中,眼睛、鼻子等要大致處于同一個位置。否則特征提取網絡會難以收斂。因而,在進行特征提取之前,必須對人臉圖像進行姿態(tài)矯正。在本方法里的人臉姿態(tài)中,利用了人臉沿中軸線對稱的特點,矯正后人臉上某一點的rgb值有其在原圖對應位置的rgb值以及沿中軸線對稱處對應點的rgb值綜合得出。這樣,很大程度上避免了一般人臉姿態(tài)矯正方法中的信息丟失的弊端,提高了最終識別的準確率;
3、對于視頻中特定幀的選取必須要考慮到幀的質量,而幀圖像中的人臉姿態(tài)是決定幀質量的一個主要因素,但實際過程中對每一幀圖像中的每一個人臉都進行姿態(tài)估計的代價過大。所以本方法中定義了一種姿態(tài)系數來判斷人臉的姿態(tài),其能夠較好地反映人臉的姿態(tài),同時計算量小。因而能夠快速準確地找出一個人臉族中質量較好地若干幀圖像。
附圖說明
圖1是本發(fā)明的總體流程圖。
圖2是本發(fā)明實施例中采用的深度學習網絡結構圖。
具體實施方式
下面結合附圖對本發(fā)明作進一步描述。
參照圖1和圖2,一種基于多通道網絡的視頻人臉檢測和識別方法,所述的方法包括如下步驟:
S1:視頻預處理
接收監(jiān)控設備收集到的視頻數據,并將其分解為一幀一幀的圖像,給每一幀圖像加上時間信息,具體為:接收到的視頻中的第一幀圖像為圖像1,然后按時間順序設定視頻中的第t幀圖像為圖像t。在下面的敘述中,以It表示第t幀圖像,以I表示同一視頻的幀圖像集合。完成對視頻的預處理后,按時間從前到后的順序將分解的圖像傳到人臉目標檢測模塊中。
S2:目標人臉檢測和姿態(tài)系數計算
S2.1提取視頻圖像中人臉位置以及對應的五官位置
對于每一幀圖像It,利用哈爾特征找出該幀圖像中存在的人臉以及對應的五官(雙眼、鼻尖以及嘴唇的兩側)的坐標,分別記作F1(x1,y1),F(xiàn)2(x2,y2),F(xiàn)3(x3,y3)。F4(x4,y4),F(xiàn)5(x5,y5)
S2.2計算視頻圖像中人臉以及標準姿態(tài)人臉五官的距離
令標準姿態(tài)圖像I'中人臉五官(雙眼、鼻尖以及嘴唇的兩側)的坐標為F1'(x'1,y'1),F(xiàn)2'(x'2,y'2),F(xiàn)3'(x'3,y'3)。F4'(x'4,y'4),F(xiàn)5'(x'5,y'5),利用公式(1)和公式(2)計算視頻圖像It和標準姿態(tài)圖像I'中人臉五官間相互距離。
其中,(xi,yi)、(xj,yj)表示待查找人臉中不同五官的坐標,(x'i,y'i)、(x'j,y'j)表示標準姿態(tài)圖像中不同五官的坐標,dij表示待識別人臉五官間的相互距離,d'ij表示標準姿態(tài)圖像中人臉五官間的相互距離。
S2.3計算姿態(tài)系數,整合姿態(tài)相近圖像。
定義人臉的姿態(tài)系數p,利用公式(3)計算姿態(tài)系數p,用于衡量待識別人臉的姿態(tài)與標準姿態(tài)的差異,p越小表示待識別人臉的姿態(tài)越標準,即將其作為人臉識別的圖像的準確率越高;p越大表示待識別人臉的姿態(tài)更偏離標準姿態(tài),即圖像質量較差,將其作為人臉識別的圖像的準確率越低:
其中,λ為縮放系數,用以避免待識別人臉圖像與標準姿態(tài)圖像尺度不一致時造成的誤差,λ的值可由公式(4)計算得出,即λ取使得姿態(tài)系數最小的值。
計算所有檢測到的人臉圖像的姿態(tài)系數,將相鄰幀間位置接近且姿態(tài)系數相差最小的人臉視為同一人臉族中的人臉。定義閾值φ,對于每一個人臉族,選取m張p<φ的人臉。如果在該人臉族中p<φ的人臉圖像數為mp<φ張,則將該人臉族中姿態(tài)系p最小的一張人臉圖像復制m-mp<φ份,與其他圖像一同構成m張圖像,輸入到S3中。
S3:人臉姿態(tài)糾正
對于S2中得到的m張人臉,進行姿態(tài)調整,具體步驟如下:
S3.1計算人臉旋轉向量
在監(jiān)控視頻中,出現(xiàn)的人一般離攝像頭較遠,即人臉上特征點離攝像頭的距離要遠大于它們之間距離,則可以通過已知的標準人臉模型以及視頻中五官特征點的坐標,使用POSIT算法得到圖像中人臉的姿態(tài)信息,即人臉的旋轉向量R。即
S3.2計算矯正圖像和原圖像的映射關系
通過人臉的旋轉向量,可以得到矯正后人臉圖像中某一像素點到原人臉圖像中某一像素點的映射關系,在矯正后圖像中以人臉中軸為y軸,以兩眼的連線為x軸,構建坐標系。令(x,y)=f(x',y')為矯正后圖像上一點(x',y')到原圖像上一點(x,y)的映射。具體如下:
S3.3姿態(tài)矯正
rgb'(x,y)為矯正后圖像上(x,y)處的rgb值,rgb(x,y)為原人臉圖像上(x,y)處的rgb值。則利用公式(7)得到矯正后人臉圖像中某一點(x,y)上的rgb值。設
其中,G為高斯概率矩陣,在實際操作過程中,因為不同人臉的實際三維模型和標準三維模型存在一定差別,所以矯正后圖像上的某一點與原圖像對應點的映射關系會存在一定誤差,因而矯正后圖像上某一點的rgb值由原圖像上對應位置處附近9個點的rgb共同得出,即通過高斯概率矩陣G求得該點處rgb值的期望值,作為該點的rgb值。
這里,矯正圖像利用人臉對稱的特性,矯正后的人臉圖像信息綜合考慮人臉地側的信息,最大化地提取信息,避免了人臉旋轉角度過大時姿態(tài)矯正后信息丟失的問題。公式(7)中k是事先設定好比例值,在0-0.5之間取值,k越小意味著更多地考慮單獨一側的圖像信息,k越大意味者更多地綜合考慮兩側的圖像信息。
對同一人臉族中的每張人臉進行人臉姿態(tài)矯正后,得到m若干張大小為w×h×3的人臉圖像,即一張擁有RGB3個通道的w×h像素的彩色圖像。
S4基于深度神經網絡的人臉特征提取
S4.1人臉特征提取網絡訓練
在進行視頻圖像的人臉特征提取時,已預先利用人臉數據庫進行特征模型訓練。訓練方式如下:
獲取人臉數據庫中每個人不同角度、不同光照下的M張圖像,隨機抽取其中m張圖像,對這m張圖像進行姿態(tài)矯正后,將其組合成w'×h'×3m的人臉圖像,其中w'為訓練圖片的寬,h'為訓練圖片的高,3m為RGB3通道乘以圖像數量m。對人臉數據庫中每個人進行上述操作,并編上標簽,輸入到神經網絡中訓練。
這種將不同圖像視為不同通道融合后作為輸入的神經網絡我們將其稱為多通道網絡。
本發(fā)明采用梯度下降算法訓練神經網絡,batch設定為256,即每輸入256張圖片并計算損失后更新神經網絡的權重。
上述網絡中全連接層3輸出的512維向量表示輸入的人臉是哪一人的概率,對其做softmax回歸,得到相應的損失函數,即如公式(9)所示,其中,k表示輸入圖像所屬的類別,zk表示全連接層3輸出的512維向量中的第k個數值。
loss=∑-logf(zk) (19)
計算了損失函數后,通過前向推斷計算和反向梯度計算,計算出神經網絡中各層的更新值,對各層的權值進行更新,以實現(xiàn)減少loss的目的,從而優(yōu)化網絡。
在實際應用中,考慮到數據庫中已經存儲的人臉的數目可能十分巨大,可以預先先對數據庫中的人臉特征集進行聚類分析以建立空間索引,具體操作步驟如下:
S4.1.1對于人臉特征庫中的特征使用聚類算法,如Kmeans,將這些人臉特征聚為若干類。
S4.1.2對于每一類,計算類中所有人臉的特征向量的均值,記作該類的中心特征。
S4.2視頻人臉特征提取
通過S3中得到了m張w×h×3矯正后的人臉彩色圖像,每個圖像有3個通道,將不同圖像以不同通道的形式融合在一起,即融合為一張有3×m個通道的人臉圖像w×h×3m
將得到的這張w×h×3m的人臉圖像輸入S4.1訓練得到到人臉特征提取網絡中,并最終得到一個代表該人臉的特征向量。
S5人臉特征比對
對于輸入的人臉,利用步驟S4得到特征向量后,再利用余弦距離來匹配輸入人臉特征向量與特征庫中向量的匹配度,計算過程如下:
S5.1初步篩選
計算待識別人臉的特征與每個類的中心特征的余弦距離,計算方式如公式(10)所示,操作表示為向量的二范數,即向量的長度(表示向量的長度,表示向量的長度),cosθ即為向量與向量的余弦距離:
與待識別人臉余弦距離大于設定閾值的類加入備選類中。如果待識別人臉的特征與所有類的中心特征的余弦距離均小于則視為數據庫中未存儲該人的信息,結束識別。
S5.2精確篩選
對于每一個備選類中的每一個人臉,計算它們的特征向量與待識別人臉的特征向量的余弦距離,選取其中余弦距離超過設定閾值ρ的人臉作為識別結果,并將識別結果所在的視頻圖像輸出;如果每一個備選類中的每一個人臉與待識別人臉的余弦距離均小于ρ,則視為數據庫中未存儲該人的信息,結束識別。
至此,完成視頻人臉的識別。