微表情识别
表情識(shí)別
2019.12更新了倉(cāng)庫(kù)依賴。
簡(jiǎn)介
使用卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建整個(gè)系統(tǒng),在嘗試了Gabor、LBP等傳統(tǒng)人臉特征提取方式基礎(chǔ)上,深度模型效果顯著。在FER2013、JAFFE和CK+三個(gè)表情識(shí)別數(shù)據(jù)集上進(jìn)行模型評(píng)估。
環(huán)境部署
基于Python3和Keras2(TensorFlow后端),具體依賴安裝如下(推薦使用conda或者venv虛擬環(huán)境)
- git clone https://github.com/luanshiyinyang/ExpressionRecognition.git
- cd ExpressionRecognition
- pip install -r requirements.txt
數(shù)據(jù)準(zhǔn)備
數(shù)據(jù)集和預(yù)訓(xùn)練模型均已經(jīng)上傳到百度網(wǎng)盤,鏈接給出,提取密碼為2pmd。
項(xiàng)目說明
- 數(shù)據(jù)預(yù)處理
- 圖片降噪
- 人臉檢測(cè)
- HAAR分類器檢測(cè)(opencv)
- 特征工程
- 人臉特征提取
- LBP
- Gabor
- 分類器
- SVM
- 人臉特征提取
- 數(shù)據(jù)預(yù)處理
- 人臉檢測(cè)
- HAAR分類器
- MTCNN(效果更好)
- 人臉檢測(cè)
- 卷積神經(jīng)網(wǎng)絡(luò)
- 用于特征提取+分類
網(wǎng)絡(luò)設(shè)計(jì)
使用經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò),模型的構(gòu)建主要參考2018年CVPR幾篇論文以及谷歌的Going Deeper設(shè)計(jì)如下網(wǎng)絡(luò)結(jié)構(gòu),輸入層后加入(1,1)卷積層增加非線性表示且模型層次較淺,參數(shù)較少(大量參數(shù)集中在全連接層)。?
?
模型訓(xùn)練
主要在FER2013、JAFFE、CK+上進(jìn)行訓(xùn)練,JAFFE給出的是半身圖因此做了人臉檢測(cè)。最后在FER2013上Pub Test和Pri Test均達(dá)到67%左右準(zhǔn)確率(該數(shù)據(jù)集爬蟲采集存在標(biāo)簽錯(cuò)誤、水印、動(dòng)畫圖片等問題),JAFFE和CK+5折交叉驗(yàn)證均達(dá)到99%左右準(zhǔn)確率(這兩個(gè)數(shù)據(jù)集為實(shí)驗(yàn)室采集,較為準(zhǔn)確標(biāo)準(zhǔn))。
訓(xùn)練過程見train.ipynb文件?
模型應(yīng)用
與傳統(tǒng)方法相比,卷積神經(jīng)網(wǎng)絡(luò)表現(xiàn)更好,使用該模型構(gòu)建識(shí)別系統(tǒng),提供GUI界面和攝像頭實(shí)時(shí)檢測(cè)(攝像必須保證補(bǔ)光足夠)。預(yù)測(cè)時(shí)對(duì)一張圖片進(jìn)行水平翻轉(zhuǎn)、偏轉(zhuǎn)15度、平移等增廣得到多個(gè)概率分布,將這些概率分布加權(quán)求和得到最后的概率分布,此時(shí)概率最大的作為標(biāo)簽。
注意,GUI預(yù)測(cè)只顯示最可能是人臉的那個(gè)表情,但是對(duì)所有檢測(cè)到的人臉都會(huì)框定預(yù)測(cè)結(jié)果并在圖片上標(biāo)記,標(biāo)記后的圖片在results目錄下。
- GUI界面
- 運(yùn)行scripts下的gui.py即可(圖片來自百度,侵刪。)
- 效果圖
- 實(shí)時(shí)檢測(cè)
- 運(yùn)行scripts下的recognition_camera.py即可
- 效果圖(圖片來自百度,侵刪。)
- 演示不便
補(bǔ)充說明
具體項(xiàng)目代碼、數(shù)據(jù)集、模型已經(jīng)開源于我的Github,歡迎Star或者Fork。
總結(jié)
- 上一篇: 使用win7超级终端连接华为交换机并
- 下一篇: 数据库垂直拆分和水平拆分