孫 灝
(中煤科工集團常州研究院有限公司,江蘇 常州 213000)
智慧農(nóng)業(yè)的發(fā)展主要經(jīng)歷了三個階段,即初步形成階段、研發(fā)并示范階段、推廣階段,由于我國的智慧農(nóng)業(yè)起步較晚,故現(xiàn)在還停留在第二階段——研發(fā)并示范階段,還沒有形成成熟的技術體系及配套機制,因此距離真正的推廣應用還有一段距離。目前我國的智慧農(nóng)業(yè)主要涉及到農(nóng)作物的種植領域,大規(guī)模的農(nóng)場種植棉花、水稻、玉米等農(nóng)作物,利用智慧農(nóng)業(yè)技術可以改進種植過程中的灌溉方式及收割方式。目前智慧農(nóng)業(yè)應用推廣還存在諸多問題,比如缺乏專業(yè)人才、全國經(jīng)濟發(fā)展水平不一致、農(nóng)村人口受教育程度普遍較低等。但是在2018年京東宣布正式進軍養(yǎng)殖業(yè),其中豬臉識別技術引起了社會各界的廣泛關注,豬臉識別技術可以準確記錄每頭豬的體重、生長及健康狀況。而豬臉識別技術的基礎就是人臉識別,下面就針對人臉識別技術進行探討。
與普通的神經(jīng)網(wǎng)絡相比,深度學習網(wǎng)絡最大的特點在于其網(wǎng)絡結(jié)構中包含一個以上的隱藏層,其可以從簡單的概念構建復雜概念的方式進行抽象,包含輸入層與輸出層在內(nèi)具有三層以上的系統(tǒng)即為深度學習。深度學習網(wǎng)絡中,每層神經(jīng)元均以上一層神經(jīng)元輸出為基礎學習識別一組特定的特征,對前一層的特征進行整合與重組,網(wǎng)絡深度不斷增加,神經(jīng)元就不斷識別更加抽象、復雜的特征。這種特征層次結(jié)構可以實現(xiàn)深度學習網(wǎng)絡高維度、大規(guī)模的數(shù)據(jù)處理,完成數(shù)十億參數(shù)的非線性函數(shù)運算。利用深度學習網(wǎng)絡可以針對一幅圖像合并某些角點或邊緣等基本特征集來學習相關概念。深度學習的深層思想來自于這些抽象的級別,每一層接受前一層的輸出為輸入學習上一層更高級的特征,利用這些特征再產(chǎn)生一個輸出。
深度學習的學習過程與傳統(tǒng)的機器學習不同,機器學習的特征是由人工設定的,系統(tǒng)根據(jù)人工設定的特征對目標進行識別、分類,但是不同目標的特征差異懸殊,即使是同一類目標,其特征往往也會受到多種因素的影響而發(fā)生變化,因此人工操作的工作量十分繁重,且無法達到理想的識別效果。而深度學習無需人工干預即可自動提取圖像特征,其先由底層網(wǎng)絡中學習簡單的特征提取,再逐層抽象最終獲得目標的高級特征表示,整個過程中系統(tǒng)會學習如何識別復雜的概念。深度學習通過大量標記數(shù)據(jù)進行訓練與學習,再用于未標記、非結(jié)構化數(shù)據(jù)的處理,因此深度學習網(wǎng)絡的性能大大優(yōu)于普通的機器學習網(wǎng)絡。
人臉識別技術的具體流程主要包括人臉檢測、人臉對齊、提取人臉特征、人臉匹配四個環(huán)節(jié),具體如下:
人臉檢測是人臉識別的第一步,是在檢測出圖像中的人臉后再返回人臉框坐標。檢測過程中,圖像質(zhì)量、光照、人臉遮擋、轉(zhuǎn)動等均會對人臉檢測的準確性產(chǎn)生直接影響,而人臉檢測的準確性越高,后續(xù)提取人臉特征時的噪聲就越小,人臉識別的準確性也就越高。人臉檢測的方法包括膚色檢測、模板檢測、特征臉檢測、神經(jīng)網(wǎng)絡檢測等。人臉檢測時先在圖像上選擇一個觀測窗口,通常是矩形區(qū)域,提取觀測窗口中能夠描述該區(qū)域圖像信息的特征,最后判斷特征描述是否包含人臉信息。不斷重復上述步驟即可檢測完整的圖像區(qū)域,如果所有窗口檢測均不包含人臉特征,則判定圖像中無人臉信息。
人臉對齊的主要目的是通過對人臉圖像的歸一化處理來提高人臉識別的準確性。人臉對齊包括幾何對齊與灰度對齊兩個方面,其中幾何對齊的主要目的是調(diào)整人臉轉(zhuǎn)動、拍攝距離導致的圖像角度、尺寸差異,多數(shù)幾何對齊方法都是基于面部關鍵點位置來實現(xiàn)的,因此幾何對齊的主要內(nèi)容包括人臉切割、調(diào)整圖像大小、旋轉(zhuǎn)面部姿態(tài)等,通過旋轉(zhuǎn)、縮放、平移等操作實現(xiàn)人臉對齊?;叶葘R主要是增強圖像亮度,將光照條件對人臉圖像的影響降至最低,具體方法就是統(tǒng)一圖像的灰度。
提取人臉特征能夠?qū)^(qū)分兩個不同人臉的深層抽象特征提取出來,人臉特征的提取方法包括手工提取、基于學習的特征提取兩種。手工提取特征是指分析人臉圖像中的特征敏感性,針對特征本身設計出區(qū)分不同人臉的顯著特征,所提取的特征的每一維均可以進行物理解釋。常用的手工提取特征包括基于紋理的特征與形狀描述特征兩種。基于紋理的特征是采用尺度不變特征轉(zhuǎn)換(SIFT)算法計算圖像中角點進行特征點匹配,SIFT算法特征可區(qū)分性強,即使對圖像進行旋轉(zhuǎn)、縮放、光照變化等處理也不會影響匹配結(jié)果,不過該算法計算量大,提取邊緣光滑的特征效果不好。形狀描述特征算法主要是統(tǒng)計兩個點集中的每個點的上下文信息,對比二者的相似性后得到一組最近似的排列結(jié)果,最終確定兩個點集中的對應點。該方法計算效率高,描述簡單圖形的形態(tài)效果好,可實現(xiàn)一定程度的形變,不過圖像如果經(jīng)過旋轉(zhuǎn)處理或噪聲敏感,則會影響其識別效果?;趯W習特征不會直接提取圖像特征,而是通過學習來獲取人臉圖像特征,其關注點在于設計提取特征的規(guī)則。最典型的就是神經(jīng)網(wǎng)絡技術,其模擬人類大腦的神經(jīng)元工作結(jié)構,設計學習方法及模型結(jié)構,通過學習獲得模型參數(shù),目前無法用物理方法解釋神經(jīng)網(wǎng)絡提取出來的特征。
人臉特征提取完成后要進行人臉匹配,即比較兩個人臉圖像的相似度,利用一個相似度閾值度量兩個人臉比較的相似度,相似度大于設定的閾值即可判定為匹配成功,反之則匹配不成功。在進行人臉匹配時需要對人臉數(shù)據(jù)集進行預處理,利用人臉檢測器對數(shù)據(jù)集中人臉進行定位確定出定位區(qū)域,最終定位出人臉圖像中的各個關鍵點。檢測完成后可以選擇人臉中的雙眼、鼻尖、兩邊嘴角等關鍵點,再對照一張標準人臉進行仿射變換,即可得到相同角度的人臉圖片。其中仿射變換是指二維坐標之間的線性變化,可以通過一系列復雜變換的組合實現(xiàn)平移、縮放、旋轉(zhuǎn)等操作,且不會改變圖像的平行性與平直性。仿射變換確定人臉圖像中的五個關鍵點后,可以將訓練集與測試集中所有圖片中的這五個關鍵點坐標轉(zhuǎn)換成標準臉的相對坐標位置,如圖像中未檢測到人臉則縮放原始圖片將其作為訓練數(shù)據(jù);針對少量算法無法再次探測圖片中人臉的情況,即使變換后也無法檢測到人臉,則可截取變換時定位的人臉圖片作為訓練數(shù)據(jù)。針對同一張人臉圖像中出現(xiàn)多張人臉的情況,需要選擇對應的類別剪切人臉,被剪切目標選擇檢測到的面積最大的人臉,確定該人臉的五個關鍵點后仿射變換處理圖片,再重復上述操作通過人臉檢測器對變換后的圖片進行檢測。
本研究以某地鐵站閘機檢票應用場景為例提出一種基于深度學習的人臉識別系統(tǒng)開發(fā)方案:
本研究提出的人臉識別系統(tǒng)能夠?qū)崿F(xiàn)用戶移動端注冊購票及刷臉進站。整個系統(tǒng)架構包括站務通信模塊、閘機通信模塊、視頻解碼模塊、人臉識別模塊等部分。其中站務通信模塊在接收到站務系統(tǒng)推送的用戶信息后將其存儲于本地數(shù)據(jù)庫,主要負責與站務系統(tǒng)的通信;閘機通信模塊則主要向閘機系統(tǒng)發(fā)送識別匹配信息,如果閘機端發(fā)送了注銷請求,通過閘機通信模塊可以刪除本地數(shù)據(jù)庫中存儲的用戶信息;視頻解碼模塊主要負責視頻的讀入與解碼;人臉識別模塊主要對解碼后的圖像進行上述人臉識別處理,即人臉檢測、人臉對齊、提取人臉特征、人臉匹配等。具體系統(tǒng)架構如圖1所示:
第一步讀入解碼后的原始圖像檢測其中的人臉。第二步用深度學習過的人臉模型提取人臉圖像的特征向量,將檢測到的人臉圖像輸入到深度學習網(wǎng)絡進行前向計算,將最終的計算結(jié)果作為圖像的高維特征,該特征是圖像數(shù)據(jù)在特征空間的映射,可以表征圖像,故該特征即為圖像的深層特征。第三步提取數(shù)據(jù)庫中每張人臉圖像的特征向量,計算數(shù)據(jù)庫中人臉圖像特征向量與提取到的人臉圖像特征向量之間的余弦距離,用計算結(jié)果度量兩張人臉圖像的相似性,余弦距離越大表示兩張圖像相似度越高。第四步按照第三步的計算結(jié)果進行降序排序,排序最前面的即為與待識別圖像最相似的圖像。針對待識別圖像的余弦距離設定有某個閾值,只有大于該閾值系統(tǒng)才會判定人臉圖像識別成功,小于該閾值則判定失敗。本研究中針對地鐵檢票的工作場景將該閾值設定為0.75,以降低誤檢率。
輔助模塊的主要作用是開發(fā)一個人臉識別圖形界面程序,以用于實際場景的測試。輔助模塊主要包括圖形界面用戶注冊模塊、人臉識別模塊兩大部分。
3.3.1 用戶注冊模塊
在該檢票人臉識別系統(tǒng)中用戶使用手機端的APP采集人臉圖像,用戶注冊模塊就是提取用戶的面部特征信息,并將提取到的人臉特征信息、姓名信息及編號信息等存入系統(tǒng)本地數(shù)據(jù)庫中,后續(xù)進行人臉識別時將會與這些信息進行對比。用戶注冊模塊包括人臉檢測、特征提取、圖像編碼及信息入庫等部分,其中人臉檢測與特征向量提取如上述人臉識別算法所述。在人臉識別系統(tǒng)中人臉識別模塊顯示結(jié)果時系統(tǒng)需要顯示出人臉圖像的識別結(jié)果,因此用戶注冊時要保存人臉圖像,并將其傳輸至人臉識別模塊。本系統(tǒng)采用base64對需要保存的人臉圖像進行編碼處理,base64是一種二進制文本編碼方案,通常用于HTTP環(huán)境下較長標識信息的傳遞,應用該方案可以將系統(tǒng)采集到的圖像二進制數(shù)據(jù)編碼為字符串,數(shù)據(jù)可以在不同系統(tǒng)之間可靠、完整的傳輸,不會對原始圖像數(shù)據(jù)產(chǎn)生破壞,以便于后續(xù)的傳輸與存儲。提取到人臉特征及圖像編碼完成后,再將用戶的基本信息、編號信息、人臉特征向量及圖像編碼字符串等儲存于本地數(shù)據(jù)庫用于后續(xù)的對比。在人臉注冊模塊界面用戶操作時需點擊采集按鈕就可以通過屏幕右方的邊框裁剪人臉圖像,點擊注冊后后臺線程會提取人臉圖像特征,此處采用多線程處理方法,UI線程響應界面,后臺工作者線程進行特征提取、存儲用戶信息等數(shù)據(jù)處理,這種多線程的處理方法可以確保界面保持響應。
3.3.2 人臉識別模塊
人臉識別模塊主要包括人臉檢測、特征提取、相似度匹配、圖像解碼四個部分,由于人臉檢測、特征提取及圖像解碼的操作與上述用戶注冊模塊基本相同,此處僅重點是介紹相似度匹配模塊的設計。相似度匹配即上述人臉識別算法流程中提到的計算待匹配圖像特征向量與數(shù)據(jù)庫中圖像特征向量的余弦距離。需要注意的是,由于閘機檢票時存在多人排隊檢票的情況,因此人臉識別系統(tǒng)會同時檢測到多張人臉,這種情況下系統(tǒng)會將離攝像頭最近的用戶人臉,即面部區(qū)域最大的人臉作為待識別人臉,且系統(tǒng)會連續(xù)讀取多幀圖像,以減少運動模糊的影響,選擇其中最清晰的圖像作為待識別圖像。在實際的工作流程中,點擊人臉識別時UI線程會對視頻中出現(xiàn)的人臉圖像進行檢測,裁剪后發(fā)送至后臺,工作者線程接受到處理后的圖像后即提取高維特征向量,逐一計算其與數(shù)據(jù)庫中存儲的人臉圖像特征向量的余弦距離,以判斷該人臉圖像能夠與數(shù)據(jù)庫中存儲的圖像匹配成功,系統(tǒng)會在人臉識別模塊界面給出識別結(jié)果及置信度。
常用的封裝人臉識別系統(tǒng)核心模塊的方法包括兩種,一種是以后臺進程的形式提供人臉識別服務,另一種是封裝成動態(tài)鏈接庫的形式,限于篇幅此處主要介紹以后臺進程的形式提供人臉識別服務的方法。以后臺進程的形式提供人臉識別服務的主要流程包括人臉檢測服務、特征提取服務、人臉識別服務三個部分。系統(tǒng)建立連接后客戶端會向系統(tǒng)發(fā)送人臉檢測請求,人臉檢測服務會將待檢測圖像從請求包中解析出來進行人臉檢測,檢測到人臉后將人臉圖像裁剪出來實現(xiàn)人臉檢測摳圖,再將檢測結(jié)果以數(shù)據(jù)包的形式發(fā)送至客戶端。特征提取服務同樣要先連接客戶端,建立連接后向系統(tǒng)發(fā)送特征提取請求及對應的人臉圖像,特征提取服務就會提取人臉圖像的高維特征,再將處理結(jié)果發(fā)送至客戶端。人臉識別服務是該模塊的核心,客戶端與系統(tǒng)建立連接后會向人臉識別服務發(fā)送人臉識別請求,其解析出數(shù)據(jù)包中的人臉圖像并提取特征后,與本地數(shù)據(jù)庫中存儲的用戶信息進行比對,分析注冊用戶的姓名、人臉特征等信息是否與處理結(jié)果一致;人臉識別服務還會接收客戶端發(fā)送的存儲信息,對其進行解析處理后并保存于本地。此外,用戶如果需要進行注銷操作,客戶端也會將注銷請求發(fā)送至人臉識別服務,其會將需要注銷的用戶信息直接刪除。
總之,人臉識別技術是生物識別技術中的重要組成部分,其用戶體驗好,具有非接觸性的優(yōu)勢,且假冒成本高,越來越受到學術界的關注,成為各位專家學者研究的熱點方向。深度學習算法的發(fā)展與進步是人臉識別技術發(fā)展的有力推手,因此基于深度學習的人臉識別系統(tǒng)被廣泛應用于各個領域,包括視頻監(jiān)控、智能安防、智慧農(nóng)業(yè)等。相信隨著人臉識別技術的不斷發(fā)展,在智慧農(nóng)業(yè)領域的應用將會越來越廣泛。