樊雷
摘要:采用深度學(xué)習(xí)算法的人臉表情識(shí)別系統(tǒng)需要較高的CPU或GPU硬件進(jìn)行模型訓(xùn)練。實(shí)踐中也需要將模型嵌入不同的硬件終端平臺(tái)進(jìn)行識(shí)別,工程化后的系統(tǒng)軟硬件成本較高。該文提出一種B/S結(jié)構(gòu)的低成本靜態(tài)圖片人臉表情識(shí)別系統(tǒng),技術(shù)路線采用Bootstrap、Python、Anaconda、Tensorflow和Keras,采用CNN實(shí)現(xiàn)人臉檢測(cè)定位和表情檢測(cè)分類功能。模型訓(xùn)練集采用了CK+、Fer2013、日本的JAFFE等開放數(shù)據(jù)庫。系統(tǒng)通過瀏覽器端上傳人臉表情圖片進(jìn)行識(shí)別處理,將GPU訓(xùn)練好的CNN模型在單機(jī)低端硬件配置上實(shí)現(xiàn)了內(nèi)存預(yù)先加載,單張識(shí)別速度小于0.002秒,總體表情識(shí)別率可以達(dá)到65%左右。
關(guān)鍵詞:Keras;FER;CK+
中圖分類號(hào): TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)33-0178-02
Abstract: Facial Expression Recognition System using the algorithm of Deep Learning always needs higher CPU or GPU hardware for training models. In practice, it is also necessary to embed the model into different hardware terminal platforms for recognizing, and the cost of software and hardware is higher after engineering. This paper presents a low-cost of structure for static picture of Facial Expression Recognition System. The technical route includes Bootstrap, Python, Anaconda, TensorFlow and Keras using CNN to realize detecting, locating and classifying of face expression. The training sets of model use open databases such as CK+, Fer2013, and JAFFE of Japan. The system uploads the pictures of facial expression by browser for recognizing and processing. The CNN model trained by GPU is pre-loaded on the low-end hardware of computer. The recognition speed of a single sheet is less than 0.002 seconds, and the overall expression recognition rate can reach about 65%.
Keywords: Keras; FER; CK+
1 概述
20世紀(jì)70年代心理學(xué)家Ekman提出了六種基礎(chǔ)表情(高興、生氣、害怕、厭惡、悲傷、驚訝)。各國學(xué)者在不斷深入研究中發(fā)現(xiàn)基本表情并不能準(zhǔn)確表達(dá)出人類復(fù)雜的情緒,有研究表明多個(gè)離散的基礎(chǔ)表情可以組合成復(fù)合表情,比如當(dāng)人們有意外驚喜時(shí)表情可以既開心又驚訝。此外人臉的微表情(最短可持續(xù)0.04秒)有時(shí)候會(huì)根據(jù)心理變化表達(dá)相反的情緒,需要依據(jù)肢體動(dòng)作、語言、事件等上下文關(guān)系才能準(zhǔn)確判斷對(duì)方所要表達(dá)的情緒。
FER(Facial Expression Recognition面部表情識(shí)別)一般包含靜態(tài)圖像FER和動(dòng)態(tài)序列FER。靜態(tài)圖像FER一般指圖片表情識(shí)別,動(dòng)態(tài)序列FER是指基于視頻序列進(jìn)行分析建模。近年來FER算法和數(shù)據(jù)集發(fā)展的概要情況如圖1。
2 系統(tǒng)技術(shù)實(shí)現(xiàn)
該文中的FER系統(tǒng)采用B/S結(jié)構(gòu),技術(shù)路線選用Bootstrap、Python、Anaconda、TensorFlow和Keras進(jìn)行實(shí)現(xiàn)。Keras可以選擇TensorFlow、Theano以及CNTK作為后端,支持構(gòu)建CNN、RNN等多種深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型,使用CPU或GPU訓(xùn)練模型。
系統(tǒng)采用TensorFlow作為后端,使用GPU訓(xùn)練Keras設(shè)計(jì)的CNN模型,將訓(xùn)練好的模型存為hdf5格式后通過Python代碼實(shí)現(xiàn)的FER引擎進(jìn)行模型內(nèi)存預(yù)加載調(diào)用,實(shí)現(xiàn)了算法模型、業(yè)務(wù)代碼和前后端架構(gòu)解耦。系統(tǒng)對(duì)Python代碼進(jìn)行了優(yōu)化,在后端內(nèi)存中預(yù)加載算法模型,可以進(jìn)行多目標(biāo)定位識(shí)別人臉表情,對(duì)工程硬件需求大大降低,識(shí)別速度快。后端將人臉定位模型和識(shí)別模型分離加載,可以隨意替換優(yōu)化后的不同CNN深度學(xué)習(xí)模型。
3 CNN訓(xùn)練網(wǎng)絡(luò)
FER技術(shù)算法一般可以分為三類:基于人臉幾何形狀、基于子空間和基于分類器模型。基于分類器模型主要包括神經(jīng)網(wǎng)絡(luò)、支持向量基(SVM)、隱馬爾可夫模型(HMM)、混合高斯(GMM)等主流方法。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是人工神經(jīng)網(wǎng)絡(luò)的一種,如今已成為當(dāng)前語音識(shí)別和圖像識(shí)別領(lǐng)域的研究熱點(diǎn),CNN是引起了學(xué)術(shù)界和工業(yè)界廣泛重視的一種高效識(shí)別方法[1]。
CNN是包含卷積層、降采樣層和全連接層的深度神經(jīng)網(wǎng)絡(luò),層的組織方式一般為卷積層與降采樣層交替出現(xiàn),頂部是全連接層,輸入是表示圖像的二維數(shù)據(jù),輸出是預(yù)設(shè)長(zhǎng)度的判別向量 [2] 。該系統(tǒng)采用的CNN模型結(jié)構(gòu)如表1。
系統(tǒng)采用了3層卷積、3層池化和2層全連接層的CNN結(jié)構(gòu)進(jìn)行訓(xùn)練。[3]
4 實(shí)驗(yàn)結(jié)果
FER-2013包含35887張48*48像素灰色圖片,訓(xùn)練集數(shù)據(jù)分布:angry:3995 、disgust:436 、fear:4097 、happy:7215 、sad:4830 、surprise:3171 、normal:4965 。訓(xùn)練集中加入了CK+的642個(gè)、 JAFFE的214張表情分類圖片以及部分收集的彩色圖片進(jìn)行混合訓(xùn)練,訓(xùn)練實(shí)驗(yàn)結(jié)果如表2:
測(cè)試服務(wù)器硬件為低端AMD 640處理器超頻穩(wěn)定至3.3GHz,8G內(nèi)存,如表3:
實(shí)驗(yàn)結(jié)果表明在低端硬件配置下也能夠較好的提供基于深度學(xué)習(xí)算法的人臉表情識(shí)別功能,大大降低深度學(xué)習(xí)算法應(yīng)用的硬件門檻,后端也可較好的適配多種前端智能硬件,降低軟硬件成本。
該文設(shè)計(jì)的系統(tǒng)可以實(shí)現(xiàn)互聯(lián)網(wǎng)跨平臺(tái)應(yīng)用;原型設(shè)計(jì)和代碼實(shí)現(xiàn)分離,并行開發(fā)節(jié)省開發(fā)時(shí)間;采用Keras訓(xùn)練好的模型,hdf5文件可以方便進(jìn)行模型迭代和替換,便于工程化實(shí)現(xiàn);功能擴(kuò)展性強(qiáng),基于Http協(xié)議,適用各種互聯(lián)網(wǎng)硬件終端;識(shí)別速度和識(shí)別率可以進(jìn)一步改進(jìn)和提高。
5 結(jié)束語
人臉表情識(shí)別是一個(gè)多學(xué)科交叉的研究課題,已經(jīng)成為心理學(xué)、醫(yī)學(xué)、計(jì)算機(jī)視覺、模式識(shí)別、機(jī)器人、智能控制、安全等領(lǐng)域十分熱門的研究課題,在智能人機(jī)交互領(lǐng)域具有重要的應(yīng)用價(jià)值。近年來人臉表情識(shí)別開始應(yīng)用于視頻、動(dòng)畫,在嵌入式智能家居設(shè)備中也起到了必不可少的作用,在大數(shù)據(jù)支持下采用深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)CNN可以大幅提高表情識(shí)別能力進(jìn)而實(shí)現(xiàn)更加友好便利的人機(jī)AI交互。FER系統(tǒng)的工程化、魯棒性、實(shí)時(shí)性、可擴(kuò)展性和識(shí)別率都有待進(jìn)一步提高。
參考文獻(xiàn):
[1] 劉宇灝. 微表情識(shí)別的理論和方法研究[D]. 南京: 東南大學(xué), 2016: 55-56.
[2] 羅翔云, 周曉慧, 付克博. 基于深度學(xué)習(xí)的人臉表情識(shí)別[J]. 工業(yè)控制計(jì)算機(jī), 2017, 30(5): 92-93.
[3] 盧官明, 何嘉利, 閆靜杰, 等. 一種用于人臉表情識(shí)別的卷積神經(jīng)網(wǎng)絡(luò)[J]. 南京郵電大學(xué)學(xué)報(bào): 自然科學(xué)版, 2016, 36(1): 16-22.
[4] 馬麗. 基于社會(huì)服務(wù)機(jī)器人的臉部共性信息識(shí)別系統(tǒng)[D]. 成都: 電子科技大學(xué), 2016: 59-65.
[5] 姜慧. 基于遷移學(xué)習(xí)的人臉識(shí)別研究[D]. 青島: 青島科技大學(xué), 2018: 50-52.
【通聯(lián)編輯:謝媛媛】