本發(fā)明涉及一種基于深度學習的實時人臉檢測方法及系統(tǒng)。
背景技術:
深度學習是目前機器學習發(fā)展的最高度,卷積神經網(wǎng)絡作為深度學習中的一種方法,在物體識別、圖像處理等領域有著較高的效果。對于人臉特征提取,卷積神經網(wǎng)絡有著可以自動學習圖像特征的優(yōu)勢,減少人工干預,提取出高質量的特征,從而為提高人臉檢測的準確率打下了堅實的基礎。
由于深度學習的方法可能消耗大量的GPU資源,計算量過大可能達不到實際應用場景中實時的效果,為了解決大數(shù)據(jù)實時處理問題,分布式實時處理框架Storm應運而生,Storm有許多應用領域,包括實時分析、在線機器學習、信息流處理、連續(xù)性的計算、分布式RPC和ETL等。
隨著社會的發(fā)展,信息化程度的不斷提高,人們對身份鑒別的準確性、安全性和實用性提出了更高的要求,人臉檢測是人臉識別和重構問題中最基本的任務,同樣也是人臉識別問題中的一個關鍵環(huán)節(jié),其結果直接關乎到人臉識別最終的效果。若能對其進行精準的檢測定位,不僅能提高視頻監(jiān)控工作人員的工作效率,對視頻的檢索、維護公共安全秩序具有重要意義。
有鑒于此,急需解決視頻監(jiān)中人臉檢測準確率較低和速率較低的問題。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是如何將卷積神經網(wǎng)絡應用于人臉檢測技術中,并達到實時人臉檢測的效果的問題,本發(fā)明提供了一種基于深度學習的實時人臉檢測方法及系統(tǒng)。
為了解決上述技術問題,本發(fā)明所采用的技術方案是:
一種基于深度學習的實時人臉檢測方法,包括以下步驟:
步驟S10:構建人臉數(shù)據(jù)庫,并設計用于人臉檢測的卷積神經網(wǎng)絡;
步驟S20:利用人臉數(shù)據(jù)庫對卷積神經網(wǎng)絡進行訓練,得到最優(yōu)卷積神經網(wǎng)絡,利用最優(yōu)的卷積神經對人臉數(shù)據(jù)庫的人臉數(shù)據(jù)進行特征提取,取得人臉特征;
步驟S30:構建Storm的拓撲結構,所述Storm的拓撲結構包括若干個數(shù)據(jù)源輸入組件spout;每個數(shù)據(jù)源輸入組件spout分別與若干個數(shù)據(jù)處理組件bolt連接;
在以數(shù)據(jù)源輸入組件spout為父節(jié)點的數(shù)據(jù)處理組件bolt上分別布置訓練好的最優(yōu)卷積神經網(wǎng)絡,且所有數(shù)據(jù)處理組件bolt具有相同的子節(jié)點;所述相同的字節(jié)點用于將檢測到的人臉區(qū)域坐標在檢測圖像上進行標注和返回檢測結果;
步驟S40:數(shù)據(jù)源輸入組件spout將采集的待檢測的人臉圖像實時視頻流分發(fā)給各個數(shù)據(jù)處理組件bolt,每個數(shù)據(jù)處理組件bolt通過預先布置的最優(yōu)卷積神經網(wǎng)絡進行人臉部位識別、通過分類器對識別的結果進行人臉/非人臉分類、將人臉部位通過最優(yōu)卷積神經網(wǎng)絡進行邊界框回歸并得出人臉部位在原圖中的坐標,返回人臉坐標結果。
所述步驟S40:采用一種基于GPU的資源調度算法:在Storm集群上,通過檢測集群中GPU的資源使用情況實時調度任務資源。用基于GPU的資源調度算法實時監(jiān)控各個數(shù)據(jù)處理組件bolt的GPU使用狀況,將GPU消耗大的進程分配到有強GPU的數(shù)據(jù)處理組件bolt上。
所述人臉數(shù)據(jù)庫包括多種角度的人臉信息,每種角度的人臉信息包括多張圖片。
所述步驟S20包括以下步驟:
將人臉數(shù)據(jù)庫中的信息作為卷積神經網(wǎng)絡的輸入數(shù)據(jù)源,使用設定的卷積神經網(wǎng)絡默認參數(shù)進行卷積神經網(wǎng)絡訓練;所述默認參數(shù)包括初始權值、訓練速率和迭代次數(shù);
根據(jù)訓練中間結果,對默認參數(shù)進行不斷調整,直到得到最優(yōu)卷積神經網(wǎng)絡網(wǎng)絡參數(shù),進而得到最優(yōu)卷積神經網(wǎng)絡;
所述步驟S10中,用于人臉檢測的卷積神經網(wǎng)絡自上而下包括三個網(wǎng)絡結構:
第一個網(wǎng)絡結構,包括三層卷積層:
第一卷積層:Input Size 12×12×3,卷積核:3×3、
第二卷積層:Input Size 5×5×10,卷積核:3×3和
第三卷積層:Input Size 3×3×16,卷積核:3×3,
第一個網(wǎng)絡結構用于人臉/非人臉區(qū)域判斷并獲得人臉區(qū)域的候選窗口、對人臉區(qū)域進行邊界框回歸并得到回歸向量;
第二個網(wǎng)絡結構,包括三個卷積層和第一全連接層,自上而下依次是:
第四卷積層:Input Size 24×24×3,卷積核:3×3、
第五卷積層:Input Size 11×11×28,卷積核:3×3、
第六卷積層:Input Size 4×4×48,卷積核:2×2、
第一全連接層:Out Size 128,
第二個網(wǎng)絡結構用于對第一個網(wǎng)絡構獲取的邊界框再次進行判斷人臉和非人臉區(qū)域,抑制非人臉區(qū)域并進行邊界框再回歸;
第三個網(wǎng)絡結構,包括四個卷積層和第二全連接層,自上而下依次是:
第七卷積層:Input Size 48×48×3,卷積核:3×3、
第八卷積層:Input Size 23×23×32,卷積核:3×3、
第九卷積層:Input Size 10×10×64,卷積核:3×3、
第十卷積層:Input Size 4×4×64,卷積核:2×2、
第二全連接層:Out Size 256;
第三個網(wǎng)絡結構用于對從第二個網(wǎng)絡結構的獲取的邊界框進行進一步的邊界框人臉/非人臉區(qū)域判別,抑制非人臉區(qū)域并進行邊界框再回歸,得出邊界框的回歸向量坐標即為人臉區(qū)域的坐標。
所述步驟40中,
數(shù)據(jù)源輸入組件spout將采集來自流媒體服務器的實時視頻流解碼為多個幀圖像,再將每一幀圖像分發(fā)給不同數(shù)據(jù)處理組件bolt;
每個數(shù)據(jù)處理組件bolt將視頻流解碼成幀圖像,使用訓練好的最優(yōu)卷積神經網(wǎng)絡對每一幀圖像進行人臉檢測,獲取人臉區(qū)域坐標。
一種基于深度學習的實時人臉檢測系統(tǒng),包括:
人臉數(shù)據(jù)庫和卷積神經網(wǎng)絡建立模塊:構建人臉數(shù)據(jù)庫,并設計用于人臉檢測的卷積神經網(wǎng)絡;
訓練模塊:利用人臉數(shù)據(jù)庫對卷積神經網(wǎng)絡進行訓練,得到最優(yōu)卷積神經網(wǎng)絡,利用最優(yōu)的卷積神經對人臉數(shù)據(jù)庫的人臉數(shù)據(jù)進行特征提取,取得人臉特征;
Storm的拓撲結構構建模塊:構建Storm的拓撲結構,所述Storm的拓撲結構包括若干個數(shù)據(jù)源輸入組件spout;每個數(shù)據(jù)源輸入組件spout分別與若干個數(shù)據(jù)處理組件bolt連接;
在以數(shù)據(jù)源輸入組件spout為父節(jié)點的數(shù)據(jù)處理組件bolt上分別布置訓練好的最優(yōu)卷積神經網(wǎng)絡,且所有數(shù)據(jù)處理組件bolt具有相同的子節(jié)點;所述相同的字節(jié)點用于將檢測到的人臉區(qū)域坐標在檢測圖像上進行標注和返回檢測結果;
人臉檢測模塊:數(shù)據(jù)源輸入組件spout將采集的待檢測的人臉圖像實時視頻流分發(fā)給各個數(shù)據(jù)處理組件bolt,每個數(shù)據(jù)處理組件bolt通過預先布置的最優(yōu)卷積神經網(wǎng)絡進行人臉部位識別、通過分類器對識別的結果進行人臉/非人臉分類、將人臉部位通過最優(yōu)卷積神經網(wǎng)絡進行邊界框回歸并得出人臉部位在原圖中的坐標,返回人臉坐標結果。
本發(fā)明將基于卷積神經網(wǎng)絡的人臉檢測技術、和Storm實時處理平臺相結合,實現(xiàn)基于卷積神經網(wǎng)絡的實時人臉檢測,具有以下有益效果:
(1)通過卷積神經網(wǎng)絡進行特征提取、邊界框回歸,坐標定位,有效地提高了檢測的準確率和檢測效率;
(2)利用Storm并行化人臉檢測,達到實時檢測的目的,有效的提高了檢測的效率。
附圖說明
圖1為本發(fā)明提供的一種基于卷積神經網(wǎng)絡的實時人臉檢測方法的流程圖;
圖2(a)、圖2(b)和圖2(c)為本發(fā)明中卷積神經網(wǎng)絡的網(wǎng)絡結構;
圖3為本發(fā)明中分布式實時處理框架Storm的拓撲結構圖。
具體實施方式
下面結合附圖與實施例對本發(fā)明作進一步說明。
本發(fā)明充分利用卷積神經網(wǎng)絡學習圖像特征的優(yōu)勢以及目前實時云計算技術的特點,將卷積神經網(wǎng)絡與實時云計算技術結合,把卷積神經網(wǎng)絡應用于人臉特征的檢測,減少人工干預,提取出高質量的圖像特征,提高人臉檢測的準確率;并利用實時云計算中進行大數(shù)據(jù)實時處理的分布式實時處理框架Storm,解決卷積神經網(wǎng)絡消耗大量的GPU資源,在計算量過大時可能達不到實際應用場景中實時效果的問題,提高人臉檢測的效率,這在視頻監(jiān)控中人臉自動檢測技術方面是一種區(qū)別于傳統(tǒng)人臉檢測系統(tǒng)的新的嘗試。
下面結合說明書附圖和具體實施例對本發(fā)明做出詳細的說明。
如圖1所示,本發(fā)明提供的一種基于卷積神經網(wǎng)絡的實時人臉檢測方法,包括以下步驟:
步驟S10、利用存儲來自流媒體服務器的視頻流歷史數(shù)據(jù)構建人臉數(shù)據(jù)庫,并設計用于人臉檢測的卷積神經網(wǎng)絡,在本發(fā)明中,人臉數(shù)據(jù)庫包含多種角度的人臉信息,每種角度的人臉信息有多張圖片。
步驟S20、利用人臉數(shù)據(jù)庫中的人臉信息作為卷積神經網(wǎng)絡的輸入,通過卷積神經網(wǎng)絡的卷積神經網(wǎng)絡離線訓練模塊進行卷積神經網(wǎng)絡的訓練,得到最優(yōu)的卷積神經網(wǎng)絡。
在本發(fā)明中,步驟S20具體包括以下步驟:
步驟S21、將人臉數(shù)據(jù)庫中的人臉的信息輸入卷積神經網(wǎng)絡,使用卷積神經網(wǎng)絡默認參數(shù)進行卷積神經網(wǎng)絡訓練;
步驟S22、根據(jù)訓練中間結果,對默認參數(shù)初始權值、訓練速率、迭代次數(shù)進行不斷調整,直到得到最優(yōu)的卷積神經網(wǎng)絡網(wǎng)絡參數(shù),此時卷積神經網(wǎng)絡會以最高的效率得到最好的檢測效果;
步驟S30、構建分布式實時處理框架Storm的拓撲結構,并將訓練好的卷積神經網(wǎng)絡分別布置在Storm的數(shù)據(jù)處理組件bolt上,且該數(shù)據(jù)處理組件bolt以數(shù)據(jù)源輸入組件spout為父節(jié)點,這樣每個數(shù)據(jù)處理組件bolt構成用于提取待檢測圖的卷積神經網(wǎng)絡人臉檢測模塊;布置卷積神經網(wǎng)絡的所有數(shù)據(jù)處理組件bolt具有相同的子節(jié)點,在該子節(jié)點上將檢測到的人臉區(qū)域坐標在檢測圖像上進行標注并返回最終檢測結果,如圖3所示。
步驟S40、數(shù)據(jù)源輸入組件spout將采集于流媒體服務器的實時視頻流分發(fā)給其下屬各個數(shù)據(jù)處理組件bolt,每個數(shù)據(jù)處理組件bolt上的卷積神經網(wǎng)絡檢測視頻流中的人臉特征,由于卷積神經網(wǎng)絡會消耗大量的GPU資源,由于在Storm中設計了基于GPU的資源調度算法,能夠通過實時監(jiān)控Storm各個數(shù)據(jù)處理組件bolt的GPU使用狀況,將GPU消耗過大的進程分配到有較強GPU的數(shù)據(jù)處理組件bolt上,解決卷積神經網(wǎng)絡會消耗大量的GPU資源的問題,從而避免由于計算量過大達不到實際應用場景中實時效果的問題,實現(xiàn)人臉檢測的實時效果。
在本發(fā)明中,數(shù)據(jù)源輸入組件spout將采集來自流媒體服務器的實時視頻流解碼為多個幀圖像,再將每一幀圖像分發(fā)給不同數(shù)據(jù)處理組件bolt;
每個數(shù)據(jù)處理組件bolt使用其上訓練好的卷積神經網(wǎng)絡對每一幀圖像進行人臉檢測。
在本發(fā)明中,利用歷史數(shù)據(jù)構建人臉數(shù)據(jù)庫,使用設計好的的卷積神經網(wǎng)絡由三個網(wǎng)絡結構組成:
如圖2(a)所示,第一個網(wǎng)絡結構,包括三層卷積層:第一卷積層:Input Size 12×12×3,卷積核:3×3、第二卷積層:Input Size 5×5×10,卷積核:3×3和第三卷積層:Input Size 3×3×16,卷積核:3×3,第一個網(wǎng)絡結構用于人臉/非人臉區(qū)域判斷并獲得人臉區(qū)域的候選窗口、對人臉區(qū)域進行邊界框回歸并得到回歸向量;
如圖2(b)所示,第二個網(wǎng)絡結構,包括三個卷積層和第一全連接層,自上而下依次是第四卷積層:Input Size 24×24×3,卷積核:3×3、第五卷積層:Input Size 11×11×28,卷積核:3×3、第六卷積層:Input Size 4×4×48,卷積核:2×2、全連接層:Out Size128,第二個網(wǎng)絡結構對第一個網(wǎng)絡構獲取的邊界框再次進行判斷人臉和非人臉區(qū)域,抑制非人臉區(qū)域并進行邊界框再回歸;
如圖2(c)所示,第三個網(wǎng)絡結構,自上而下依次包括四個卷積層和第二全連接層,第七卷積層:Input Size 48×48×3,卷積核:3×3、第八卷積層:Input Size 23×23×32,卷積核:3×3、第九卷積層:Input Size 10×10×64,卷積核:3×3、第十卷積層:Input Size4×4×64,卷積核:2×2、全連接層:Out Size 256;第三個網(wǎng)絡結構對從第二個網(wǎng)絡結構的獲取的邊界框進行更加精細的邊界框人臉/非人臉區(qū)域判別,抑制非人臉區(qū)域并進行邊界框再回歸,得出邊界框的回歸向量坐標即為人臉區(qū)域的坐標。
對此卷積神經網(wǎng)絡結構進行訓練。
本發(fā)明的基于卷積神經網(wǎng)絡的實時人臉檢測方法,將基于卷積神經網(wǎng)絡的特征檢測技術與Storm實時處理平臺相結合,提高人臉檢測的準確率和效率;在充分利用計算資源的前提下,找到最優(yōu)的網(wǎng)絡,對人臉進行檢測。
上述雖然結合附圖對本發(fā)明的具體實施方式進行了描述,但并非對本發(fā)明保護范圍的限制,所屬領域技術人員應該明白,在本發(fā)明的技術方案的基礎上,本領域技術人員不需要付出創(chuàng)造性勞動即可做出的各種修改或變形仍在本發(fā)明的保護范圍以內。