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