余程勝,,黃海于
(西南交通大學 信息科學與技術(shù)學院,,四川 成都 611756)
摘要:提出了一種實際應用環(huán)境下的動態(tài)人臉識別系統(tǒng),。首先討論了動態(tài)人臉識別系統(tǒng)硬件環(huán)境的搭建,,然后詳細介紹了動態(tài)人臉識別系統(tǒng)的軟件流程、主要的功能模塊,、人臉庫的構(gòu)建及管理等,,最后對系統(tǒng)進行了測試。測試結(jié)果表明,,所設計的軟硬件系統(tǒng)能夠滿足實際應用需求,。
關(guān)鍵詞:人臉識別系統(tǒng);系統(tǒng)硬件結(jié)構(gòu),;人臉庫,;訓練文件
0引言
隨著科技的不斷進步,人臉識別技術(shù),、智能視頻分析技術(shù)等飛速發(fā)展,,并已滲透到人們生活的各個領(lǐng)域,在諸如智能手機人臉解鎖,、公司智能簽到等方面得到廣泛應用,。然而,這些系統(tǒng)存在很多弊端,,比如需要正確的姿態(tài)以及固定的光照環(huán)境,,在識別前建立待識別人員的人臉庫,須有一定時間的停留等,,這些都給用戶帶來不好的用戶體驗,,導致系統(tǒng)的使用存在較大的問題。同時無論是手機上的智能人臉解鎖還是智能簽到系統(tǒng),,識別的對象都是人臉處于靜止不動時的成像,,成像限定為無傾側(cè)、無強光干擾,,屬于靜態(tài)人臉識別的范疇[1],。
本文討論的是如何對運動的對象進行識別、如何自動將新人加入人臉庫,、如何得到人臉特征,、如何在復雜環(huán)境下搭建動態(tài)人臉識別系統(tǒng)的硬件環(huán)境以及如何在人臉庫不斷擴大情況下對人臉庫進行管理等問題。
1系統(tǒng)硬件選擇與架構(gòu)
1.1系統(tǒng)的硬件結(jié)構(gòu)
系統(tǒng)的硬件結(jié)構(gòu)與系統(tǒng)實際運用的環(huán)境密切相關(guān),。本文實驗環(huán)境如圖1所示,。此實驗環(huán)境光照強弱變化大、人口密集且相機覆蓋范圍廣,,具有很好的代表性,對商場,、車站等處所需人臉識別系統(tǒng),,本文可提供很好的參考,。
根據(jù)需求設計硬件結(jié)構(gòu)圖如圖2所示,。
由圖2可見,,系統(tǒng)主要由相機、計算機(工作站),、路由器,、服務器等組成。相機與工作站之間通過有線連接,,工作站處理相機處采集到的信息,,然后將信息傳輸存儲在服務器上。在實際環(huán)境中,,兩臺相機安裝在圖1所示屏風的兩端,,面對正門,形成一定的夾角,,使其覆蓋門前區(qū)域,,如圖3所示。
1.2系統(tǒng)硬件選擇
在實際環(huán)境中相機需要覆蓋的區(qū)域達到5 m×6 m,,相對智能簽到系統(tǒng)來說已經(jīng)是其幾十倍的范圍了,,要在此大范圍內(nèi)而且光照變化明顯的情況下長時間進行人臉采集、人臉識別,,這必然對相機提出要求,。而一般要保證人臉識別,必須保證人臉大小不小于32像素×32像素[2],。
在實驗中采用的是工業(yè)相機,,因為工業(yè)相機可保證系統(tǒng)能長時間穩(wěn)定地工作,而且工業(yè)相機具有高的圖像穩(wěn)定性,、高傳輸能力和高抗干擾能力等,。根據(jù)式(1)及式(2)可得出物距、物寬,、物高,、焦距的具體取值。
F=wD/W(1)
F=hD/H(2)
其中,F是鏡頭焦距,,w是被攝物體在相機靶面上的成像寬度,,D是被攝物體至鏡頭的距離,W是被攝物體的寬度(也即視場寬),,h是被攝物體在相機靶面上的成像高度,,H是被攝物體的高度(也即視場高)。如現(xiàn)在選取的相機鏡頭焦距為6 mm,,w為4.28 mm,,D為7 m,,根據(jù)式(1)即可計算出被攝視場的寬度約為4.99 m。因此根據(jù)實際環(huán)境的需要通過計算得出相機的最低參數(shù)要求,。另外,,相機的像素是圖像成像質(zhì)量的一個重要影響因素,像素越高,,成像質(zhì)量越好,,本文通過大量實驗最終選用500萬像素、幀率為14幀的工業(yè)相機來作為圖像采集設備,。
在人臉識別系統(tǒng)中,,由于智能識別對CPU內(nèi)存的占用率較高[3],同時系統(tǒng)需實時檢測跟蹤人臉,,幀率為14幀/秒,,每幀5 Mbit的情況下一臺相機每秒傳輸量達到70 Mb/s,兩臺就有140 Mb/s,,所以對計算機的CPU,、內(nèi)存、存儲速度的要求較高,。由于工作站較一般的計算機具有更好的穩(wěn)定性,,故本系統(tǒng)選用的是工作站,CPU為Intel I74790,,主頻為3.60 GHz,,處理器內(nèi)存為8 GB,另外使用了固態(tài)硬盤提高讀寫速度以適應需求,。
2動態(tài)人臉識別系統(tǒng)軟件設計
本文的人臉識別系統(tǒng)會自動將人臉庫里沒有的人(即新人)加入人臉庫,,前提是人必須進門而且人必須從門前區(qū)域的左邊或右邊離開相機監(jiān)控區(qū)域,這樣避免了所有進入相機覆蓋范圍內(nèi)的人都加入系統(tǒng),,而有些人是不必加入系統(tǒng)的,。如智能簽到系統(tǒng)中只有對走進公司的人進行識別判斷此人是否是公司員工,而不必去識別路過公司門口的行人,。
2.1人臉識別系統(tǒng)流程
人臉識別系統(tǒng)首先通過兩臺相機采集人臉圖像,,再對采集到的圖像序列進行人臉檢測,然后進行人臉跟蹤,,判斷其是否進入室內(nèi),,若進入室內(nèi)則對此人采集到的頭像進行識別,判斷其是否是新人,,是則加入人臉庫,,最后對新的人臉庫進行訓練。具體流程如圖4所示。
2.2人臉識別系統(tǒng)功能結(jié)構(gòu)
動態(tài)人臉識別系統(tǒng)主要功能如圖5所示,。
圖像采集模塊從相機采集到原始圖像保存在本地,,處理過的圖像會進行刪除,。
?。?)人臉檢測模塊處理從圖像采集模塊得到的圖像,實時進行人臉檢測[4],,若檢測出圖像中有人臉截取人臉頭像,。
(2)人臉跟蹤模塊從一個圖像序列中跟蹤得出該人是否進入室內(nèi),,若進入室內(nèi)則進入下一步操作,,若沒有則丟棄。
?。?)人臉識別模塊通過對人臉檢測,、人臉跟蹤得到的一系列頭像進行識別,進而判斷該人是否為新人,。
?。?)新人入庫模塊是在人臉識別結(jié)果為新人時將采集到的該人的頭像放入人臉庫,以便下一次識別,。
?。?)人臉識別數(shù)據(jù)庫管理模塊可以對人臉庫里的人進行管理,可以添加,、刪除用戶,,并對更改后的人臉庫進行訓練,將人臉特征保存到文件,,方便下一次識別[5],。
2.3人臉庫的構(gòu)建
隨著系統(tǒng)使用的時間越來越長,人臉庫可能會從幾百人增長到幾千人甚至到幾萬人,、幾十萬人,,顯然,如果一次性將人臉庫里面的人拿去訓練是行不通的,,而且已經(jīng)訓練過的頭像再次重復訓練也是沒必要的,。因此需要采取些方法改進設計。
在這里,,將人臉庫與數(shù)據(jù)庫結(jié)合起來使用,,人臉庫每新增一個人就在對應的數(shù)據(jù)庫表(tb_facelib)里新增一行,每一行有一個編號對應人臉庫里面的具體的一個人,,這樣對人臉庫進行管理的時候也比較方便,。在訓練的時候會根據(jù)數(shù)據(jù)庫tb_facelib表的行數(shù)對人臉庫進行分割,每200人為一組分為一個小的人臉庫進行訓練,,剩余的不足200人且大于100人的按200人的方式處理,,小于100人的放入上一個人臉庫一起訓練,,比如總共540人需訓練,則每個庫人數(shù)分為200人,、200人,、140人;若總共440人,,則每個庫分為200人,、240人。每次訓練完的時候會在數(shù)據(jù)庫表tb_traininfo里更新信息,,表的具體信息及其字段描述如表1所示,。
當有新人加入人臉庫需要訓練的時候,只需要從tb_traininfo表里取出最后一次訓練文件的相關(guān)信息,,判斷Train_num的數(shù)目是否小于300,,是則直接將此訓練文件下所有人臉加上新增的人臉一起訓練形成新的訓練文件,若大于300,,則將此訓練文件下面前200個人作為一個人臉庫,,剩下的作為另一個人臉庫,分別訓練,,更新tb_traininfo表信息,。這樣就不必將整個人臉庫重新進行訓練,節(jié)約了大量時間,。
當tb_traininfo表中Train_delnum達到一定值時,,即被刪除的人達到一定值時,則重新對人臉庫進行分割訓練,。
識別的時候從tb_traininfo表中逐個取出訓練文件名字,,找到指定的訓練文件拿去識別,直到得出識別結(jié)果,,若識別過程中已識別出是人臉庫里面的人則停止識別,,這樣大大節(jié)約了識別時間。
3系統(tǒng)運行結(jié)果
本文將識別程序?qū)懗蒞indows服務程序,,計算機開機后會直接啟動運行,,并自動將相關(guān)信息存入數(shù)據(jù)庫。識別程序采用經(jīng)典的人臉識別算法FisherFace,,并根據(jù)實際情況對此算法進行了一些改進,,其他的人臉識別算法也可運用在本系統(tǒng)中,本文并沒有對相關(guān)算法進行闡述,,只是對搭建人臉識別系統(tǒng)進行了相關(guān)討論,,并且使用微軟公司發(fā)布的一種面向?qū)ο蟮摹⑦\行于.NET Framework之上的高級程序設計語言C#設計了系統(tǒng)的操作界面[6]。系統(tǒng)運行后的主界面如圖6所示,。
4結(jié)論
本文從硬件及軟件兩個方面闡述了動態(tài)人臉識別系統(tǒng)的構(gòu)建,,分析了硬件系統(tǒng)中相關(guān)設備的選型及其相關(guān)參數(shù)的計算,設計了硬件系統(tǒng)結(jié)構(gòu),,實現(xiàn)了識別系統(tǒng)中各個功能模塊,,并提出了一種解決人臉庫不斷擴大問題的實際可行方法。將本系統(tǒng)在實際環(huán)境中進行了測試,,結(jié)果表明系統(tǒng)能夠穩(wěn)定可靠地運行,,且界面友好、操作方便,。但是由于跟蹤算法、人臉識別算法存在的一些不足,,如遮擋,、姿態(tài)等都會對跟蹤以及識別結(jié)果產(chǎn)生影響,因此,,研究高準確率和高效率的人臉識別算法至關(guān)重要,,這也是接下來需要改進的核心內(nèi)容。
參考文獻
?。?] 劉翼光. 動態(tài)人臉識別系統(tǒng)[D].北京:中國科學院,,2000.
[2] 高翔,,張薇娟. 人臉識別系統(tǒng)的構(gòu)建[J]. 瓊州學院學報,,2010,17(5):2124.
?。?] 何榮. 基于OpenCV的人臉識別系統(tǒng)設計[D].廣州:華南理工大學,,2013.
[4] 李哲,,王述聰. 基于VC++的人臉識別系統(tǒng)的設計與實現(xiàn)探究[J].計算機光盤軟件與應用,,2012(12):197198.
[5] 朱興統(tǒng),,習洋洋. 基于C++和OpenCV的人臉識別系統(tǒng)的設計與實現(xiàn)[J].自動化與儀器儀表,,2014(8):127128,131.
[6] 齊立波,,黃俊偉. C#入門經(jīng)典(第六版)[M].北京:清華大學出版社,,2014.