牛亞運 仲梁維



摘 要:人工智能帶動計算機視覺算法迅速發展。人臉識別具有特征明顯、不易偽造、安全性高等特點,成為計算機視覺的一個重要分支。基于Hog算法對人臉圖像進行特征提取,基于改進的kNN算法進行分類識別。對收集的數據進行科學分析和數據挖掘,將數據信息進行圖表可視化。不僅識別迅速、準確度高,還增強了數據分析的趣味性和交互性。應用在會議簽到場合,只需采集8張左右的圖片,經過預處理和算法優化,就能實現高達99%的準確率,有效解決了傳統會議人工簽到速度慢、數據可利用率低、組織效率差等弊端。
關鍵詞:人工智能;計算機視覺;Python;人臉識別;數據挖掘
0 引言
機器學習大致經歷了兩次浪潮:淺層學習、深度學習。最初的學習算法是感知機。后來,享有“人工智能之父”美譽的Marvin Minsky[1],與其好友Seymour Papert共同出版了一本名為《Perceptrons》的書,指出簡單神經網絡只能運用于線性問題求解,如果求解非線性問題應該具有隱藏層。因為不包含隱層單元的兩層結構感知機模型,只能學習固定特征的線性函數而無法處理非線性分類問題,也即感知機不能處理異或回路。這為當時的神經網絡發展潑了冷水,導致神經網絡研究停滯了一段時間。
1967年,COVER & HART[2]提出了kNN算法。K最近鄰(k-Nearest Neighbor,簡稱kNN)算法中參數k就是指k個最近的鄰居,該算法創新性地提出每個樣本都可用它最接近的k個鄰居代表。到了1986年,Hinton等[3]正式提出反向BP傳播訓練。盡管之前有人實際上已經作過類似研究,但該論文的影響更具有劃時代意義。正是BP算法的提出,讓曾經消失一段時間的神經網絡研究得以復蘇,但它有一個致命缺點,即隨著隱藏層數量的增加,BP算法常常會陷入局部最小值,在計算每層結點梯度時,網絡低層方向會出現梯度衰竭現象。
2005年,法國國家計算機科學及自動控制研究所的Dalal等[4]在CVPR會議上提出梯度方向直方圖(Histogram of Oriented Gradients,簡稱HOG)。這是一種解決人體目標檢測的圖像描述子,利用HOG算法的特征表達人體,提取人體的外形信息和運動信息,形成豐富的特征集。
2012年,Hinton的學生設計的Alex Krizhevsky在ImageNet比賽上憑借著名的Alexnet卷積神經網絡[5]模型,以領先第二名10%的好成績奪得ILSVRC2012圖像分類比賽冠軍,從此人工智能迅速發展。
從2012年至今,人工智能新技術不斷涌現,尤其是在計算機視覺方向。如何利用AI技術準確有效地識別用戶身份,進而提升個人信息安全水平成為熱點課題。計算機視覺的重要分支之一人臉識別研究突飛猛進,已經廣泛應用于監控防盜、嫌犯追蹤、門禁安防等領域。人臉識別相比傳統的卡片識別、指紋識別有著諸多不可替代的優點。近些年人臉識別領域出現了多種算法,雖然算法的網絡結構差異較大,但每個模型都有各自特點。本文的人臉識別算法經過網絡結構優化、參數改進,魯棒性非常好,準確率達到99%。獲取的訓練人臉圖像僅需要8張左右,相比較其它人臉識別算法,其具有非常輕量化和快速化的特點。
數據可視化在科學統計分析中扮演的角色越來越重要,本文對數據進行挖掘進而實現可視化,目的是借助圖形化手段清晰有效地傳達與溝通信息,使美學形式與功能齊頭并進,用于會議簽到場合,直觀地傳達參會人員的關鍵信息與特征,短時間內得出更有價值的結論,效率比傳統的主觀分析更加科學、高效。
本文設計的會議簽到系統軟件分為3個部分:①預先采集人臉圖像數據,將采集的人臉圖像及其對應的個人信息輸入到數據庫管理軟件中;②現場實時采集人臉圖像并進行實時預測,將個人信息交互式地顯示在識別窗口上;③根據現場采集的數據進行統計分析并繪制柱狀圖、比例圖、地區分布圖、詞云圖等,對數據進行可視化解釋,以便管理人員提取重要信息,進行提前預判,從而作出正確決策。相比傳統的人工簽到方法,本系統采用的方法更加靈活且效率更高,智能化更強,能充分利用收集的數據,帶來更為科學有效的分析。
1 人臉識別與數據挖掘
1.1 人臉識別技術研究背景
德國的Cognitec主要從事政府項目的人臉識別系統,NEC公司主要做機器人視覺識別系統。Google、Facebook、Microsoft公司進入人臉識別領域時間不算長,但因其雄厚的技術實力以及海量數據支持,創建的人臉識別創新模型很多,比如Google的VGG系列[6]和Facebook的DeepFace[7],準確率基本和人眼持平甚至超越人眼。
商湯科技是目前國內人臉識別技術領域的龍頭企業,曾在一次公開評測中超過了Facebook和Google。科大訊飛最早是從事智能語音及語言技術研究的, 2014年聯合香港中文大學湯曉鷗教授團隊共同推出了世界領先的人臉識別技術DeepID系列[8]。
1.2 人臉識別過程
人臉識別[9]分為人臉檢測、人臉對齊、人臉特征提取、人臉分類4個步驟。首先,需要提取人臉特征值,比如每只耳朵的尺寸或鼻子長度等。然后,以同樣的方式測量新的人臉照片并找出與其測量值最接近的已知人臉,通過對比設定閾值,當大于該閾值時就匹配該人臉,進而查詢到該人臉圖像的數據信息,完成人臉分類。
根據得到的人臉特征值通過分類器對人臉圖像進行分類。常用的分類器有kNN[10]、SVM[11]、CNN[12]等,本文采用kNN算法作為人臉特征分類器。
1.3 數據挖掘
數據挖掘[13]指從大量的數據中通過算法搜索隱藏于其中信息的過程。通過統計分析,將這些數據轉換成有用的信息和知識。本文通過數據圖表可視化,將采集到的數據進行高效利用和深度挖掘,使會議主辦方能夠在短時間內提取和掌握現場人員關鍵信息,極大提高了數據處理效率,節約了成本。
2 智能會議簽到系統核心算法
本系統基于Hog對圖像特征進行提取,通過計算和統計圖像局部區域的梯度方向直方圖構成特征,采用改進的kNN算法完成預測識別。
提取特征方法選擇非常重要,主要是因為提取特征的質量直接影響到分類的準確性。本文提取特征方法采用Hog法,如圖1所示。Hog特征提取過程分為3步:①把樣本圖像分割為若干個像素單元(cell),把梯度方向平均劃分為9個區間(bin);②在每個單元里對所有像素的梯度方向在各個方向區間進行直方圖統計,得到一個9維特征向量,每相鄰的4個單元構成一個塊(block),把一個塊內的特征向量聯起來得到36維特征向量,用塊對樣本圖像進行掃描,掃描步長為一個單元;③將所有塊的特征串聯起來得到人體特征。
本文采用改進的kNN算法對提取的特征進行識別分類。如果一個樣本在特征空間中的k個最相鄰樣本中多數屬于某一個類別,則該樣本也屬于這個類別并具有這個類別上樣本的特性。該方法在確定分類決策上只依據最鄰近的一個或幾個樣本的類別決定待分樣本所屬的類別。 kNN在類別決策時只與極少量的相鄰樣本有關。由于kNN方法主要靠周圍有限的鄰近樣本,而不是靠判別類域的方法確定所屬類別,因此對于類域的交叉或重疊較多的待分樣本集,kNN方法較其它方法更為合適。
3 智能會議簽到系統模塊
3.1 人臉圖像采集設計
人臉圖像數據采集功能如圖2所示,主要進行人臉圖像和數據信息采集工作。通過調用系統內置攝像頭進行拍照,獲取人臉圖像數據集。實時采集簽到人員的數據信息,將采集到的數據實時傳入數據庫,方便后邊進行數據統計分析。
圖中的消息提示框用來顯示按鈕操作的各種信息,方便用戶實時查看系統運行情況,采用交互式操作更加人性化。
3.2 人臉圖像識別設計
人臉識別實現智能會議簽到功能如圖3所示,可采集現場人員人臉圖像,進行實時識別并導出相關信息。
3.2.1 入場人臉數據采集
打開攝像頭系統進行實時拍照及自動存儲,目的是獲取現場簽到人員的人臉圖像以方便之后進行人臉識別。
3.2.2 人臉識別模型訓練
實現對已有人臉圖像數據集的訓練,提取不同的人臉特征值,訓練分類器,用于之后的人臉識別。
訓練模型。對訓練集文件夾下所有人臉數據進行訓練,對不同照片進行人臉定位、特征提取,訓練分類器。將訓練好的分類器存為clf文件。基于Python的代碼設計思路如圖4所示。
本文對圖像的特征提取采用Hog算法,訓練的分類器采用kNN算法。利用訓練好的分類器模型做實驗測試,得到的準確率為99%。
3.2.3 人臉識別預測
人臉識別預測實現對獲取新的人臉圖像進行識別。若該人臉圖像在原來數據庫中已經存在,系統會根據識別的姓名匹配數據庫信息,從而實時顯示在系統屏幕上;如果讀取到的人臉圖像不在原來的數據庫中,則識別為陌生人。
人臉識別代碼設計框架如圖5所示,人臉識別后的結果如圖6所示。
3.2.4 根據姓名實時顯示個人信息
經過機器學習算法識別出當前姓名,然后匹配已有數據庫,將可公開信息顯示在屏幕上。還可自動生成二維碼[14],掃描二維碼可查看個人的全部數據信息。標注識別姓名的代碼設計如圖7所示,生成的二維碼結果如圖8所示。
3.3 基于Python連接SQL Server軟件的數據處理設計
數據信息管理功能如圖9所示,將現場采集人員的人臉圖像通過SQL Server將數據傳輸到數據庫中。本系統軟件是通過Python編程連接SQL Server 2008軟件,基于Python[15]編寫的代碼連接SQL Server[16],對采集的數據信息實現增刪改查功能。
3.4 基于python編程的數據統計分析可視化設計
數據信息圖表/詞云圖高級可視化功能如圖10所示,將采集的數據信息進行可視化,對數據進行可視化解釋,以便管理人員提取重要信息,進行提前預判,從而作出正確決策。
3.4.1 數據信息圖表可視化
在需要對輸入的數據信息進行統計分析時,圖表可視化更能直觀、立體地表達出重要信息和結論。
(1)柱狀圖和折線圖。當點擊簽到人數統計時,會彈出一個柱狀圖和折線圖。柱狀圖顯示不同時間段簽到人員的數量,據此可對會議現場作更有效的安排。本系統設計按小時、天兩個單位進行數據統計,折線圖數據可動態顯示,如圖11所示。
(2)三維圖。三維圖可以旋轉查看,使得數據信息更加立體,查看更加方便,如圖12所示。
(3)比例圖。當點擊年齡比按鈕時會彈出一個圓餅比例圖,可看到所有已簽到人員的年齡階段,有利于根據會議主題分析觀眾年齡層次,對以后尋找觀眾群體更加有針對性和目標性。本系統柱狀圖有現場簽到人員的年齡比例、性別比例、學歷比例、地區比例、星座比例、熱議話題比例等,如圖13、圖14所示。
(4)地區分布圖。當點擊地區分布按鈕時,會彈出一個簽到人員地區分布的標記地圖。該地圖根據簽到人員所在地標記在地圖上,通過這個地圖可以很清楚地看到簽到人員的地區分布。
3.4.2 數據信息詞云圖可視化
詞云圖用來統計簽到人員感興趣的話題,詞云圖中文字與該話題被提及的數量呈正比。比如較多的人談及“人工智能”話題,則“人工智能”3個字會比其它話題大而明顯,這樣就非常清楚地得出大多數參會人員的興趣所在。
4 智能會議簽到系統實驗與結果分析
4.1 智能會議簽到系統實現
基于人臉識別和數據分析的智能會議簽到系統實現步驟如下:①在人臉圖像采集模塊下預先采集與會人員的人臉圖像數據,一般每個人8張左右圖片,然后輸入相應的個人信息;②切換到人臉圖像識別欄下,打開照相機,拍照。進行人臉實時識別,個人部分數據信息呈現。通過掃描自動生成的二維碼[17],可以查看更多的個人信息;③切換到數據庫管理模塊,連接后臺的SQL Server數據庫,查詢采集到的數據信息,必要時進行增加或刪除操作;④切換到信息數據圖表可視化欄,對要顯示的圖表設置題目。先點擊柱狀圖查看人員的缺席、到場數量;接著點擊比例圖查看性別、年齡、學歷、星座等比例,然后點擊地圖可查看簽到人員的地理位置分布;⑤生成詞云圖分析話題熱度。