• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于VGGNet的人臉表情識(shí)別研究

      2023-11-13 07:45:58廖清江張星月李樂(lè)樂(lè)劉嘉豪
      軟件工程 2023年11期
      關(guān)鍵詞:人臉灰度卷積

      廖清江, 劉 婷, 張星月, 董 祺, 李樂(lè)樂(lè), 劉嘉豪

      (天津商業(yè)大學(xué)信息工程學(xué)院, 天津 300134)

      0 引言(Introduction)

      面部表情是除語(yǔ)言性交流以外的另一種傳遞信息的身體語(yǔ)言符號(hào),是人們情感狀態(tài)的重要體現(xiàn)之一,可以表達(dá)出個(gè)體的心態(tài)和情感。隨著人工智能技術(shù)與計(jì)算機(jī)視覺領(lǐng)域的迅速發(fā)展,人臉表情識(shí)別技術(shù)成為當(dāng)下圖像識(shí)別研究領(lǐng)域的熱點(diǎn)之一。人臉表情識(shí)別作為人臉識(shí)別技術(shù)的進(jìn)一步發(fā)展,現(xiàn)已被廣泛應(yīng)用于心理學(xué)[1]、疼痛表情識(shí)別[2]、課堂狀態(tài)檢測(cè)[3]、安全監(jiān)控[4]等領(lǐng)域。

      早期的人臉表情識(shí)別方法基于面部的幾何特征,主要依賴手工的特征提取和分類算法,容易漏掉分類識(shí)別時(shí)的關(guān)鍵特征,存在較大的局限性。研究者嘗試將人臉表情識(shí)別建模為模板,實(shí)現(xiàn)對(duì)表情的識(shí)別與分類,但其泛化能力和對(duì)非剛性變形的適應(yīng)性相對(duì)有限。隨著機(jī)器學(xué)習(xí)技術(shù)的不斷發(fā)展,研究者發(fā)現(xiàn)深度學(xué)習(xí)具有引入數(shù)據(jù)集規(guī)模大、能夠表示復(fù)雜特征的特點(diǎn),因此在人臉表情識(shí)別中應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[5]、視覺幾何組16(Visual Geometry Group 16,VGG16)[6]、殘差神經(jīng)網(wǎng)絡(luò)50 (Residual Neural Network 50,ResNet50)[7]、三維卷積神經(jīng)網(wǎng)絡(luò)(Convolutional 3D,C3D)[8]成為目前的主要研究方向。

      為了更好地完成人臉表情識(shí)別任務(wù),本研究選擇VGGNet進(jìn)行人臉表情識(shí)別的設(shè)計(jì),為了對(duì)比識(shí)別效果,對(duì)傳統(tǒng)CNN網(wǎng)絡(luò)和VGGNet網(wǎng)絡(luò)進(jìn)行框架搭建,針對(duì)同一數(shù)據(jù)集FER2013分別進(jìn)行測(cè)試分析,對(duì)比其損失率及識(shí)別率。為了驗(yàn)證VGGNet在真實(shí)環(huán)境中的識(shí)別效果,本研究還進(jìn)行了真人實(shí)時(shí)表情測(cè)試,測(cè)試表明本文設(shè)計(jì)的方案能很好地完成人臉表情識(shí)別任務(wù)。

      1 CNN 基本原理(CNN basic principles)

      卷積神經(jīng)網(wǎng)絡(luò)是一種深度學(xué)習(xí)模型,最早被應(yīng)用于圖像數(shù)據(jù)處理,現(xiàn)不僅廣泛應(yīng)用于計(jì)算機(jī)視覺領(lǐng)域的圖像和視頻處理,還應(yīng)用于自然語(yǔ)言處理和語(yǔ)音識(shí)別。不同于傳統(tǒng)的機(jī)器學(xué)習(xí),CNN包含多個(gè)層次的處理單元,由輸入層、卷積層、池化層(下采樣層)、全連接層和輸出層組成。其中,CNN的核心是卷積操作,即在輸入數(shù)據(jù)上進(jìn)行卷積操作,使用濾波器提取圖像特征,使CNN具有局部感知性和參數(shù)共享的特點(diǎn),從而減少了需要訓(xùn)練的參數(shù)數(shù)量,提高了模型的效率和泛化能力。CNN的工作原理是通過(guò)模仿人類大腦的視覺系統(tǒng)達(dá)到自動(dòng)從圖像中提取特征,并進(jìn)行分類、分割、檢測(cè)操作。圖1為卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖。

      圖1 卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖Fig.1 Structure diagram of convolutional neural networks

      2 VGGNet原理及結(jié)構(gòu)(Principle and structure of VGGNet)

      VGGNet是由牛津大學(xué)的研究團(tuán)隊(duì)Karen Simonyan和Andrew Zisserman等在2014年提出的一種深度卷積神經(jīng)網(wǎng)絡(luò)模型,該模型在2014年的ImageNet圖像識(shí)別競(jìng)賽中取得了分類任務(wù)第2名和定位任務(wù)第1名的好成績(jī),證明增加卷積神經(jīng)網(wǎng)絡(luò)的層數(shù)可以在一定條件下影響網(wǎng)絡(luò)最終的性能,使圖片分類識(shí)別錯(cuò)誤率大大降低,同時(shí)提升了卷積神經(jīng)網(wǎng)絡(luò)的拓展性。

      VGGNet的網(wǎng)絡(luò)結(jié)構(gòu)包含多個(gè)連續(xù)的3×3卷積層代替5×5卷積層,每個(gè)卷積層后面緊跟著一個(gè)2×2的最大池化層進(jìn)行下采樣,便于提取多尺度的圖像特征。VGGNet由多個(gè)卷積層和池化層組成,最后連接全連接層進(jìn)行分類。通過(guò)深層堆疊的卷積層和池化層的設(shè)計(jì),使得網(wǎng)絡(luò)在不增加太多參數(shù)的情況下增加網(wǎng)絡(luò)的深度,提高網(wǎng)絡(luò)的深層表達(dá)能力。常用的版本是VGG16和VGG19,本研究選用VGG16結(jié)構(gòu)。

      3 基于VGGNet的人臉表情識(shí)別的設(shè)計(jì)(Design of facial expression recognition based on VGGNet)

      3.1 系統(tǒng)設(shè)計(jì)流程

      本研究主要對(duì)人臉表情進(jìn)行識(shí)別,通過(guò)人臉表情判斷當(dāng)前測(cè)試者所處的精神狀態(tài)和情緒訴求,在輸入端進(jìn)行人臉檢測(cè),在輸出端顯示檢測(cè)者包括中性(Neutral)、高興(Happy)、生氣(Angry)、驚訝(Surprise)、厭惡(Disgust)、難過(guò)(Sad)和恐懼(Fear)的情緒類別。

      系統(tǒng)流程圖如圖2所示。

      圖2 系統(tǒng)流程圖Fig.2 System flowchart

      3.2 數(shù)據(jù)集選擇

      采用FER2013公開數(shù)據(jù)集,該數(shù)據(jù)集最初是在2013年的Kaggle競(jìng)賽中進(jìn)行面部表情分類而創(chuàng)建的,它包含35 887幅灰度圖像,每幅圖像的大小為48×48像素。FER2013公開數(shù)據(jù)集中的每幅圖像都被標(biāo)記為7個(gè)不同的情緒類別之一,包括中性(Neutral)、高興(Happy)、生氣(Angry)、驚訝(Surprise)、厭惡(Disgust)、難過(guò)(Sad)和恐懼(Fear)。每個(gè)樣本都有1個(gè)對(duì)應(yīng)的情緒標(biāo)簽。FER2013公開數(shù)據(jù)集分為28 709幅圖像的訓(xùn)練集、3 589幅圖像的驗(yàn)證集及3 589幅圖像的測(cè)試集;它的特點(diǎn)在于質(zhì)量較高、圖像樣本更具有多樣性。一些圖像可能存在模糊、光照不均勻、遮擋等問(wèn)題,這使得面部表情分類任務(wù)具有一定的挑戰(zhàn)性。

      數(shù)據(jù)集包含逗號(hào)分隔值(Comma-Separated Values,CSV)文件,該文件將圖片轉(zhuǎn)化為像素?cái)?shù)據(jù)以方便存儲(chǔ)。首先使用Pyhton對(duì)CSV文件提取標(biāo)簽實(shí)現(xiàn)可視化,其次創(chuàng)建映射表并重新加載數(shù)據(jù)集,最后進(jìn)行圖像預(yù)處理。

      3.3 圖像預(yù)處理

      雖然FER2013公開數(shù)據(jù)集中的各個(gè)圖形都已經(jīng)很清晰,但是拍攝角度、光線以及攝像機(jī)所自帶的噪音等都會(huì)對(duì)圖像的清晰度、圖像的識(shí)別率產(chǎn)生影響,為了避免出現(xiàn)因圖像有噪音或角度等問(wèn)題而引發(fā)的識(shí)別錯(cuò)誤問(wèn)題,需要對(duì)圖片進(jìn)行預(yù)處理。

      3.3.1 高斯模糊

      高斯模糊去噪處理的目的是降低細(xì)節(jié)層次以及圖像的毛細(xì)瑕疵;工作原理是將圖像從中間劃分為兩半,利用高斯分布的特性進(jìn)行圖像模糊操作,然后將圖像中細(xì)分的像素周圍的適當(dāng)范圍內(nèi)乘以一個(gè)高斯系數(shù)。

      Opencv庫(kù)函數(shù)框架下的cv2.GaussianBlur(img,(ksizex,ksizey),0)可以對(duì)圖像實(shí)現(xiàn)高斯模糊,其中img表示輸入的人臉表情原圖像,(ksizex,ksizey)表示高斯模糊核的大小,而0表示通過(guò)ksize寫出的sigma決定以何種方式表示高斯核。

      在圖像預(yù)處理時(shí),通常會(huì)將紅綠藍(lán)(Red Green Blue,RGB)的彩色圖像轉(zhuǎn)換為灰度圖,其原因是RGB彩色是一個(gè)三通道空間,在預(yù)處理時(shí)容易產(chǎn)生交互影響,并且彩色圖像所占空間遠(yuǎn)遠(yuǎn)大于灰度圖所占空間,在人臉表情識(shí)別中,灰度圖不僅容易展示人臉表情輪廓,而且節(jié)省空間資源。基于以上考慮,在人臉表情預(yù)處理時(shí)將圖像轉(zhuǎn)換為灰度圖。在Opencv中,轉(zhuǎn)換關(guān)系為如下:

      gray_img=cv2.cvtColor(img,COLOR_BGR2GRAY)

      (1)

      其中:cv2.cvtColor()函數(shù)表示轉(zhuǎn)換為灰度圖,img表示輸入的原圖像,COLOR_BGR2GRAY表示將彩色圖像轉(zhuǎn)換為灰度圖。

      3.3.2 直方圖均衡化

      為了增強(qiáng)圖像對(duì)比度以及減少光線對(duì)圖像分析的影響,可以對(duì)圖像進(jìn)行直方圖均衡化,同時(shí)直方圖均衡化在提高對(duì)比度的同時(shí),還能提高特征提取率。在Opencv庫(kù)中,使用直方圖代碼如下:

      equ=equalizeHist(img)

      (2)

      其中:equalizeHist()表示直方圖均衡化;img表示原圖像。

      3.3.3 數(shù)據(jù)類型轉(zhuǎn)換

      在PyTorch框架下,torch數(shù)據(jù)類型是最基本的數(shù)據(jù)類型,輸入變量的數(shù)據(jù)類型由tensor類型轉(zhuǎn)化為torch類型,其代碼實(shí)現(xiàn)過(guò)程如下所示。

      face_tensor=torch.from_numpy(face_normalized)

      # 將python中的numpy數(shù)據(jù)類型轉(zhuǎn)化為tensor數(shù)據(jù)類型

      face_tensor=face_tensor.type(′torch.FloatTensor′)

      # 指定為torch.FloatTensor型,避免數(shù)據(jù)類型不匹配

      4 實(shí)驗(yàn)及結(jié)果分析(Experiment and result analysis)

      4.1 實(shí)驗(yàn)環(huán)境

      本研究采用的深度學(xué)習(xí)框架為Tensorflow 2.12.0,語(yǔ)言為Python3.10.9,集成開發(fā)環(huán)境為PyCharm2023.1版本,選擇CPU版本的 PyTorch框架,導(dǎo)入Numpy庫(kù)、Matplotlib庫(kù)、tqdm庫(kù)、Opencv庫(kù)等,所有實(shí)驗(yàn)均在Windows 10操作平臺(tái)下進(jìn)行。

      4.2 網(wǎng)絡(luò)搭建和模型訓(xùn)練

      4.2.1 傳統(tǒng)CNN

      定義時(shí)繼承torch.nn.Module類,從中調(diào)取卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。

      首先進(jìn)行前向傳播,訓(xùn)練數(shù)據(jù)樣本作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,經(jīng)過(guò)3次卷積和3次池化,圖像特征信息進(jìn)入3層全連接層進(jìn)行整合,使用Droupout防止過(guò)擬合現(xiàn)象,每層設(shè)置激活函數(shù)進(jìn)行激活,并傳遞到全連接層,得到對(duì)應(yīng)的預(yù)測(cè)值。

      其次運(yùn)用損失函數(shù)計(jì)算損失值衡量模型預(yù)測(cè)與真實(shí)標(biāo)簽之間的具體差異。這里將計(jì)算的誤差記為p,具體計(jì)算過(guò)程如下:

      p=|z-y|

      (3)

      其中:z為真實(shí)值,y為預(yù)測(cè)值。

      最后反向傳播沿著網(wǎng)絡(luò)的層級(jí)關(guān)系逆向傳播梯度,將梯度信息傳遞回網(wǎng)絡(luò)中的每一層。這樣根據(jù)梯度更新網(wǎng)絡(luò)中的權(quán)重和偏置,減小損失函數(shù)的值,從而訓(xùn)練出用于人臉表情識(shí)別的網(wǎng)絡(luò)模型。CNN網(wǎng)絡(luò)訓(xùn)練過(guò)程如圖3所示。

      圖3 CNN訓(xùn)練過(guò)程圖Fig.3 Diagram of CNN training process

      4.2.2 VGGNet

      執(zhí)行遷移學(xué)習(xí),使用PyTorch引入經(jīng)過(guò)訓(xùn)練的VGG模型,繼承nn.Module的VGGNet,并修改網(wǎng)絡(luò)中標(biāo)準(zhǔn)交叉熵?fù)p失、學(xué)習(xí)率等參數(shù)。訓(xùn)練得到人臉表情識(shí)別系統(tǒng)模型,并引入transform進(jìn)行圖形的裁剪、旋轉(zhuǎn)、縮放和亮度調(diào)節(jié),提高模型的泛化性和抗拒性。

      引入預(yù)訓(xùn)練模型過(guò)程如圖4所示。

      圖4 預(yù)訓(xùn)練模型引入圖Fig.4 Introduction diagram of the pre-trained model

      4.3 結(jié)果對(duì)比分析

      訓(xùn)練過(guò)程中將學(xué)習(xí)率設(shè)置為0.01。根據(jù)數(shù)據(jù)集樣本數(shù)量特點(diǎn),先選取60次作為迭代參數(shù)在FER2013公開數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,在迭代60次以后,傳統(tǒng)CNN的識(shí)別率為88%,VGGNet的識(shí)別率為98%,二者的訓(xùn)練集與驗(yàn)證集的識(shí)別率對(duì)比如圖5所示。

      (a)傳統(tǒng)CNN識(shí)別率

      迭代60次以后,傳統(tǒng)CNN的損失率為18.81%,而VGGNet的損失率則減小至7.84%,兩個(gè)網(wǎng)絡(luò)的訓(xùn)練集與驗(yàn)證集損失率對(duì)比如表1所示。

      表1 傳統(tǒng)CNN與VGGNet損失率對(duì)比表

      4.4 現(xiàn)實(shí)應(yīng)用能力評(píng)估

      為測(cè)試模型在現(xiàn)實(shí)場(chǎng)景中的應(yīng)用能力,保存在FER2013公開數(shù)據(jù)集上訓(xùn)練的網(wǎng)絡(luò)模型,并運(yùn)用該模型對(duì)研究團(tuán)隊(duì)中的成員進(jìn)行面部表情識(shí)別,識(shí)別結(jié)果如圖6所示。從識(shí)別結(jié)果來(lái)看,本文所提模型能準(zhǔn)確識(shí)別現(xiàn)實(shí)生活中的人物表情。從整體效果來(lái)看,模型泛化能力較好。

      (a)開心

      (b)中性

      (c)驚訝

      (d)難過(guò)

      5 結(jié)論(Conclusion)

      在Tensorflow 2.12.0深度學(xué)習(xí)框架下,利用Python 3.10.9語(yǔ)言,PyCharm 2023.1集成開發(fā)環(huán)境,以準(zhǔn)確識(shí)別人臉表情為目的,在FER2013公開數(shù)據(jù)集上搭建基于VGGNet的人臉表情識(shí)別系統(tǒng),并對(duì)比了基于傳統(tǒng)CNN和VGGNet兩種不同網(wǎng)絡(luò)模型在人臉表情識(shí)別中的性能。同時(shí),在現(xiàn)實(shí)場(chǎng)景中驗(yàn)證了所提模型的有效性。

      文中提出的人臉表情識(shí)別方案優(yōu)勢(shì)明顯,但在某些方面仍有不足:

      (1)訓(xùn)練時(shí)間長(zhǎng):本文所提系統(tǒng)進(jìn)行人臉表情訓(xùn)練時(shí)需要耗費(fèi)大量時(shí)間,在訓(xùn)練期間,對(duì)特征信息提取能力和計(jì)算能力要求較高,要求使用有強(qiáng)算力的GPU、TPU等圖像處理器。

      (2)數(shù)據(jù)集依然有待提高:雖然FER2013公開數(shù)據(jù)集擁有30 000余幅人臉表情圖像,但是運(yùn)用于實(shí)際時(shí),依然會(huì)出現(xiàn)不能精確識(shí)別等問(wèn)題,應(yīng)采取更多其他人臉表情識(shí)別數(shù)據(jù)集訓(xùn)練網(wǎng)絡(luò),以達(dá)到提高識(shí)別精確度及不同人群的適用性的目的。

      猜你喜歡
      人臉灰度卷積
      采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過(guò)濾技術(shù)
      基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
      有特點(diǎn)的人臉
      基于灰度拉伸的圖像水位識(shí)別方法研究
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      三國(guó)漫——人臉解鎖
      基于傅里葉域卷積表示的目標(biāo)跟蹤算法
      基于最大加權(quán)投影求解的彩色圖像灰度化對(duì)比度保留算法
      基于灰度線性建模的亞像素圖像抖動(dòng)量計(jì)算
      馬面部與人臉相似度驚人
      仁化县| 兴安县| 水富县| 体育| 保德县| 古田县| 阆中市| 汉川市| 社旗县| 林西县| 嘉峪关市| 越西县| 楚雄市| 怀集县| 康马县| 阜阳市| 桐柏县| 贵德县| 湖口县| 茶陵县| 天全县| 吉木萨尔县| 富民县| 孟村| 平远县| 丰顺县| 安阳县| 兴宁市| 抚顺县| 镇赉县| 万载县| 邵武市| 通州市| 平罗县| 太保市| 济宁市| 吉水县| 尉氏县| 抚远县| 蓬安县| 海原县|