黃安義,沈 捷,秦 雯,王 莉
(南京工業(yè)大學(xué) 電氣工程與控制科學(xué)學(xué)院,江蘇 南京 211816)
目前國(guó)內(nèi)外對(duì)人體姿態(tài)識(shí)別的研究,如文獻(xiàn)[1-5],都是基于計(jì)算機(jī)視覺(jué)的人體姿態(tài)識(shí)別。相比而言,坐姿的識(shí)別對(duì)人體姿態(tài)細(xì)節(jié)特征提取的方法有著更高的要求。目前從數(shù)據(jù)獲取方式上主要分為基于人體半接觸的傳感器和基于視覺(jué)的坐姿識(shí)別兩類。
朱衛(wèi)平等和Qian等[6,7]通過(guò)壓電類傳感器獲取的數(shù)據(jù)和其它數(shù)據(jù)相融合進(jìn)行坐姿識(shí)別。但這類方法因?yàn)槿说捏w重和在椅子上坐的面積等差異因素,導(dǎo)致產(chǎn)生的數(shù)據(jù)不具有規(guī)律性,使其精度大打折扣。
而基于視覺(jué)的坐姿識(shí)別,如袁迪波等[8]提出基于膚色的YCbCr的BP神經(jīng)網(wǎng)絡(luò)的坐姿識(shí)別。張鴻宇等[9]通過(guò)提取坐姿的深度圖像的Hu矩,采用SVM分類坐姿。Yao等[10]通過(guò)Kinect深度攝像頭捕獲的實(shí)時(shí)骨架數(shù)據(jù)估算頸部角度和軀干角度來(lái)判斷坐姿。曾星等[11]對(duì)坐姿深度圖像采用閾值進(jìn)行前景提取并進(jìn)行三維投影和降維,最后運(yùn)用隨機(jī)森林對(duì)姿進(jìn)行分類識(shí)別。
綜上所述,目前的方法主要有以下缺陷:第一,對(duì)于復(fù)雜背景下的抗干擾性較差;第二,不同人體坐姿多樣性和拍攝角度變化適應(yīng)性較差;第三,坐姿的分類問(wèn)題的類間區(qū)分方法具有模糊性。而本文提出的基于MIMO-CNN的多模態(tài)特征的坐姿識(shí)別在解決以上問(wèn)題上提供了一個(gè)可行的方法。
本文所提出的坐姿識(shí)別方法流程如圖1所示。
圖1 坐姿識(shí)別方法流程
首先通過(guò)Kinect深度攝像頭獲取初始圖像,并對(duì)其進(jìn)行預(yù)處理,并以預(yù)處理后的圖像為基礎(chǔ)進(jìn)行三視圖映射。為了達(dá)到訓(xùn)練含有大量參數(shù)的網(wǎng)絡(luò),對(duì)數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)達(dá)到擴(kuò)展數(shù)據(jù)集的目的,并使用增強(qiáng)后的數(shù)據(jù)集進(jìn)行模型訓(xùn)練,最終使用訓(xùn)練后的模型進(jìn)行左右和前后方向的坐姿識(shí)別。10種坐姿可分為前后和左右方向的識(shí)別,前后分為正坐、低頭、后仰和趴桌,左右方向分為左偏、居中和右偏??紤]到趴桌的特殊性不再進(jìn)行左右方向判斷,具體分類如圖2所示。
圖2 坐姿分類
本文使用二代Kinect進(jìn)行坐姿采集,因其強(qiáng)大功能的SDK,其可在深度數(shù)據(jù)的基礎(chǔ)上,應(yīng)用骨骼評(píng)估算法獲得人體骨骼信息,生成人體外骨架圖像。
而本文所用的基本特征為深度圖像,深度圖像是指將從傳感器中得到它到場(chǎng)景中各點(diǎn)的距離信息并歸一換算為像素值的圖像。本文使用Kinect強(qiáng)大的SDK,獲得其人體輪廓圖和人體深度圖像,如圖3所示。
圖3 (左)人體輪廓圖和(右)人體深度圖像
本文通過(guò)Kinect獲取深度圖像和人體輪廓圖,并以此為基礎(chǔ)進(jìn)行預(yù)處理。首先對(duì)深度圖像進(jìn)行直方圖均值化,使得深度信息可以更好地在直方圖上分布。在增強(qiáng)局部對(duì)比度的前提下而不影響整體對(duì)比度,使得深度圖像能更清晰表達(dá)距離信息
(1)
g(x,y)=Sf(x,y)*(L-1)
(2)
式中:L是圖像中的灰度級(jí)總數(shù),原圖像f的像素總數(shù)為n,nj為灰度值為j的像素?cái)?shù)量。f(x,y)為原圖(x,y)位置的原像素值,g(x,y)為直方圖均值化后的像素值。均值化后的結(jié)果對(duì)比,如圖4所示。
圖4 直方圖均值化前后對(duì)比
接著對(duì)人體輪廓圖使用5*5的核進(jìn)行開(kāi)運(yùn)算及中值濾波操作,減少圖像的噪聲和填補(bǔ)部分深度圖像小缺塊,對(duì)比結(jié)果如圖5所示。
圖5 開(kāi)運(yùn)算與濾波后的前后對(duì)比(左為原圖)
最后將前面預(yù)處理完的輪廓圖和深度圖像進(jìn)行掩模操作,形成所需的人體深度前景圖像
(3)
式中:F(x,y)為生成的人體前景深度圖像,G(x,y)為深度圖像,D(x,y)為人體輪廓圖,rows為圖像的行數(shù),cols為圖像的列數(shù),結(jié)果如圖6所示。
圖6 人體前景深度圖像
接著進(jìn)行閾值自動(dòng)裁剪,裁減掉多余的白色背景,得到224×224的圖像,如圖7所示。
圖7 閾值自動(dòng)裁剪效果
最后以裁剪后的圖像為基礎(chǔ)進(jìn)行三視圖映射,并進(jìn)行歸一化,最終得到224×224的人體坐姿深度三視映射,如圖8所示。
圖8 人體坐姿深度三視映射
目前沒(méi)有關(guān)于坐姿的深度開(kāi)源數(shù)據(jù)集,所以在確保我們能在較少的樣本中較好地訓(xùn)練和驗(yàn)證所提方法,對(duì)其進(jìn)行數(shù)據(jù)增強(qiáng)顯得尤為重要。因此在訓(xùn)練過(guò)程中我們對(duì)數(shù)據(jù)集中每一張圖片進(jìn)行50%概率的隨機(jī)裁剪。設(shè)原始圖像的寬度W和高度H,本文將以(0.85 W)×(0.85H)的滑動(dòng)窗口對(duì)圖像進(jìn)行自動(dòng)隨機(jī)裁剪,并將裁剪后的圖像重新插補(bǔ)為W*H大小的圖像。
考慮到本問(wèn)題的特殊性,不同于傳統(tǒng)的分類問(wèn)題,其在人體姿態(tài)的坐姿方面的差異性與傳統(tǒng)的圖像分類相比,更加側(cè)重于更加細(xì)致深度信息的變化,而不是傳統(tǒng)的色彩、輪廓和紋理。因此也需要更多特征信息,所以本文將坐姿深度圖像的三視圖的多模態(tài)信息分別輸入到3個(gè)不同的通道中。
另一方面,本文考慮到坐姿的特殊性,其在左右方向和前后方向的識(shí)別具有差異性,因此本文的模型結(jié)構(gòu)在輸出端使用的是雙通道輸出,分別對(duì)應(yīng)坐姿的左右方向和前后方向的坐姿姿態(tài)的判斷。
而目前較為出色的網(wǎng)絡(luò)結(jié)構(gòu)主要針對(duì)彩色圖像為場(chǎng)景。因此本文提出MIMO-MobileNet模型,搭建了一個(gè)適用于坐姿識(shí)別的三輸入兩輸出網(wǎng)絡(luò)結(jié)構(gòu),后期實(shí)驗(yàn)也驗(yàn)證了此結(jié)構(gòu)的可行性。
其主要以MobileNet V2的Inverted Residual Block結(jié)構(gòu)塊為基礎(chǔ),結(jié)構(gòu)塊先用point-wise convolution將輸入的feature map維度變大,然后用depth-wise convolution方式做卷積運(yùn)算,最后使用point-wise convolution將其維度縮小。注意,此時(shí)的point-wise convolution后,不再使用ReLU激活函數(shù),而是使用線性激活函數(shù),以保留更多特征信息,保證模型的表達(dá)能力,同時(shí)也具有Resnet的思想,其結(jié)構(gòu)如圖9所示。
圖9 Inverted Residual Block結(jié)構(gòu)
MIMO-MobileNet模型結(jié)構(gòu)如圖10所示,上層3個(gè)通道的網(wǎng)絡(luò)net_L、net_M、和net_T分別以坐姿深度圖像的左視圖、主視圖和俯視圖為輸入,并獨(dú)立對(duì)其進(jìn)行特征提取,并將提取后的特征用于后面通道的網(wǎng)絡(luò)的輸入,使得淺層網(wǎng)絡(luò)能更充分的單獨(dú)對(duì)3個(gè)視圖不同的信息進(jìn)行提取,而不進(jìn)行權(quán)值共享。接著將net_L、net_M和net_T 的輸出進(jìn)行通道合并作為net_pred_v的輸入,net_M、和net_T的輸出進(jìn)行合并作為net_pred_h的輸入。最終net_pred_v輸出坐姿在前后方向的識(shí)別結(jié)果,net_pred_h輸出坐姿在左右方向的識(shí)別結(jié)果。其依據(jù)在于前后方向的坐姿變化在主視圖、左視圖和俯視圖都有明顯的變化,而在左右方向的坐姿變化,圖像信息變化主要體現(xiàn)在主視圖和俯視圖。
圖10 MIMO-MobileNet模型結(jié)構(gòu)
MIMO-MobileNet模型的網(wǎng)絡(luò)框架參數(shù)見(jiàn)表1、表2和表3。
本文提出的MIMO-MobileNet模型為雙輸出網(wǎng)絡(luò),因此在損失函數(shù)上,我們分別計(jì)算兩個(gè)輸出的交叉熵。交叉熵其本身具有較好的計(jì)算概率分布差異的能力,且利于梯度下降。所以在模型輸出后,本文對(duì)其進(jìn)行softmax回歸處理后,得到輸出的概率分布,再進(jìn)行交叉熵計(jì)算
(4)
式(4)為softmax公式,yi為原始輸出,y′i代表經(jīng)過(guò)softmax回歸輸出后的概率分布,c表示分類問(wèn)題的類別數(shù)
表1 net_L、net_M、net_T網(wǎng)絡(luò)框架參數(shù)
表2 net_pred_v網(wǎng)絡(luò)框架參數(shù)
表3 net_pred_h網(wǎng)絡(luò)框架參數(shù)
(5)
式(5)為交叉熵公式,其中l(wèi)abeli表示為one-hot編碼后的標(biāo)簽,m為訓(xùn)練batch的樣本數(shù)
(6)
本實(shí)驗(yàn)中,以云端服務(wù)器作為工具,處理器型號(hào)為E5(8核),內(nèi)存10 GB,顯卡為RTX2080Ti。linux系統(tǒng)作為基本系統(tǒng)環(huán)境,以python語(yǔ)言調(diào)用谷歌tensorflow進(jìn)行網(wǎng)絡(luò)搭建及訓(xùn)練。
驗(yàn)證的數(shù)據(jù)集方面,因?yàn)槟壳皼](méi)有公開(kāi)的坐姿數(shù)據(jù)集,所以本文自定義了10種人們最常見(jiàn)的坐姿狀態(tài),并在攝像頭固定在離人座位1 m遠(yuǎn)的位置處的條件下錄制了15個(gè)男性女性志愿者的坐姿數(shù)據(jù)。每種坐姿有30個(gè)樣本,前15張為正對(duì)攝像頭的錄制樣本,后15張為人體正對(duì)攝像頭并左右旋轉(zhuǎn)(小于45度)的錄制樣本,訓(xùn)練樣本共4500張樣本,在訓(xùn)練過(guò)程中使用上文提到的方法進(jìn)行數(shù)據(jù)增強(qiáng),因此實(shí)際訓(xùn)練樣本遠(yuǎn)多于此數(shù)。另外錄制5名志愿者的有視角變化的和無(wú)視角變化的兩個(gè)小樣本集分各750張,一共1500張坐姿數(shù)據(jù)測(cè)試集。以(正坐、左偏)坐姿為例的具有攝像頭角度變化的樣本,如圖11所示。
圖11 不同攝像頭角度的(正坐、左偏)樣本
同時(shí)本文數(shù)據(jù)集將不僅具有角度變化,人體坐姿也更加接近真實(shí)環(huán)境中的坐姿,坐姿數(shù)據(jù)復(fù)雜度高于近幾年其它方法,數(shù)據(jù)樣本與文獻(xiàn)[8]和文獻(xiàn)[11]的樣本進(jìn)行對(duì)比,如圖12所示。因此不再將本文的結(jié)果與其它方法進(jìn)行對(duì)比。
圖12 樣本復(fù)雜度對(duì)比
實(shí)驗(yàn)一,將人體深度前景圖像進(jìn)行通道復(fù)制為三通道的圖像作為輸入,選用MobileNet-V2模型進(jìn)行坐姿識(shí)別。而實(shí)驗(yàn)二,將三視圖合并為一張三通道的圖像作為輸入,具有更豐富的特征信息,仍使用MobileNet-V2模型進(jìn)行坐姿識(shí)別。實(shí)驗(yàn)三(本文方法),為本文提出的MIMO-MobileNet 模型方法,以上文的三視映射圖作為輸入。并分別在無(wú)角度變化的測(cè)試集和有角度變化的測(cè)試集上進(jìn)行驗(yàn)證。
實(shí)驗(yàn)結(jié)果見(jiàn)表4,實(shí)驗(yàn)一和實(shí)驗(yàn)二在無(wú)攝像頭視角變化的測(cè)試集中,表現(xiàn)較為相似。但在更加復(fù)雜的視角變化的測(cè)試集中,我們發(fā)現(xiàn)具有更多信息的三視圖映射圖像作為輸入的實(shí)驗(yàn)二,其81%的識(shí)別率明顯高于實(shí)驗(yàn)一僅以人體深度前景圖像為輸入的74%的識(shí)別率。因此也驗(yàn)證了三視圖映射圖像作為輸入,對(duì)于坐姿識(shí)別精度具有顯著的提升。但識(shí)別率依然不是特別突出。
而對(duì)比實(shí)驗(yàn)二和實(shí)驗(yàn)三(本文方法)可知,本文提出的網(wǎng)絡(luò)結(jié)構(gòu)在各個(gè)測(cè)試集上識(shí)別精度都高于傳統(tǒng)的MobileNet-V2網(wǎng)絡(luò)。其總識(shí)別率也比實(shí)驗(yàn)二高出3%。因此驗(yàn)證了本文方法的合理性和優(yōu)勢(shì)。
表5、表6分別為無(wú)視角變化測(cè)試集上各個(gè)方向識(shí)別的混淆矩陣,在前后方向的坐姿識(shí)別上,依然存在一部分的正坐被識(shí)別為相近的后仰或者低頭坐姿的情況。而在左右
表4 實(shí)驗(yàn)準(zhǔn)確率對(duì)比結(jié)果/%
方向,左偏和右傾被識(shí)別為居中,可能是與左右傾斜程度較小導(dǎo)致一定的混淆。
表5 無(wú)視角變化的前后方向混淆矩陣
表6 無(wú)視角變化的左右方向混淆矩陣
表7、表8為有視角變化測(cè)試集上各個(gè)方向識(shí)別的混淆矩陣。表中尤為明顯的是正坐被識(shí)別為低頭的錯(cuò)誤,原因可能是某些的視角下,正坐的圖像特征與低頭極為相似。但在前后方向的其它坐姿下,識(shí)別率尤為出色。
表7 有視角變化的前后方向混淆矩陣
表8 有視角變化的左右方向混淆矩陣
為應(yīng)對(duì)人體坐姿多樣性和拍攝角度變化,本文提出了基于MIMO-CNN的多模態(tài)特征人體坐姿識(shí)別方法。相比于單純的使用物理接觸式傳感器,基于視覺(jué)方案的坐姿識(shí)別具有更好的性能和可實(shí)現(xiàn)性。另一方基于多模態(tài)深度信息,和識(shí)別過(guò)程中使用具有分類性能更加突出的深度學(xué)習(xí)網(wǎng)絡(luò)的坐姿識(shí)別方法的確具有較高的識(shí)別率和魯棒性。需要指出的是本文所提出的坐姿識(shí)別方法主要適合用在單人坐姿識(shí)別的情況。接下來(lái)將對(duì)復(fù)雜的多人坐姿識(shí)別和更加復(fù)雜的三維多視角問(wèn)題進(jìn)行進(jìn)一步的研究。