李 鑫,馮昌利
(泰山學(xué)院信息科學(xué)技術(shù)學(xué)院 山東 泰安 271000)
近年來(lái),中小學(xué)學(xué)生近視情況越來(lái)越嚴(yán)重,2018年教育部聯(lián)合七部門(mén)印發(fā)了《綜合預(yù)防兒童青少年近視實(shí)施方案》。另外,辦公室人員尤其是文字工作者、開(kāi)發(fā)人員也出現(xiàn)了越來(lái)越多的頸椎病癥狀。分析可知,長(zhǎng)在書(shū)桌前時(shí)間長(zhǎng)、坐姿不正確是造成該問(wèn)題的原因之一。針對(duì)于此,本項(xiàng)目結(jié)合視覺(jué)分析和三維深度數(shù)據(jù)制作一款針對(duì)書(shū)桌的坐姿監(jiān)測(cè)器,該設(shè)備能實(shí)時(shí)監(jiān)測(cè)坐姿,當(dāng)坐姿有問(wèn)題及時(shí)提醒調(diào)整至正確姿勢(shì),從而起到預(yù)防兒童近視和成人頸椎病的作用。本項(xiàng)目擬采用深度相機(jī)采集書(shū)桌前人員的三維深度信息,采用攝像頭采集人體側(cè)面軀干、頭部的位置信息,通過(guò)設(shè)計(jì)算法判別當(dāng)前姿勢(shì)的正確性繼而提示兒童調(diào)整坐姿。本設(shè)備實(shí)時(shí)性好、對(duì)于各類(lèi)環(huán)境條件不敏感、魯棒性好,能充分起到預(yù)防兒童近視的效果。依據(jù)坐姿數(shù)據(jù)的采集方式不同,坐姿識(shí)別方法分為兩大類(lèi):一類(lèi)是基于傳感器的方法和另外一類(lèi)是基于圖像的方法。最傳統(tǒng)的方法是基于傳感器的方法,通過(guò)不同種類(lèi)的傳感器,例如紅外傳感器、壓力傳感器、加速度傳感器、超聲波傳感器等采集不同種類(lèi)的數(shù)據(jù)對(duì)坐姿進(jìn)行檢測(cè)。國(guó)內(nèi)的相關(guān)研究主要集中于兩個(gè)方面,一種是從基于壓力分布監(jiān)測(cè),另一種是基于視頻監(jiān)控的檢測(cè)。其中,秦美超等[1]從人類(lèi)坐姿生理學(xué)特征出發(fā)分析了坐姿與壓力分布之間的關(guān)系,詳細(xì)闡明了汽車(chē)座椅設(shè)計(jì)需求以及座椅設(shè)計(jì)時(shí)的曲線(xiàn)標(biāo)準(zhǔn)。白世琪等[2]開(kāi)發(fā)了一套座椅壓力檢測(cè)系統(tǒng),用以收集座椅接觸面與人體臀部壓力分布信息,并發(fā)送給PC端進(jìn)行二維重構(gòu)。郭玉喜等[3]運(yùn)用英特爾Realsense攝像機(jī)加PC機(jī)的方式從拍攝的視頻數(shù)據(jù)中識(shí)別人臉,尋找特征數(shù)據(jù)判斷用戶(hù)傾斜的歐拉角和同一坐姿保持的時(shí)間等數(shù)據(jù)來(lái)判斷被測(cè)試者的坐姿標(biāo)準(zhǔn)度和時(shí)間是否過(guò)長(zhǎng)。王春陽(yáng)等[4]利用計(jì)算機(jī)視覺(jué)技術(shù),通過(guò)深入分析實(shí)時(shí)監(jiān)控的人體正面坐姿圖像信息,間隔性地截取一次視頻流數(shù)據(jù)中的若干幀圖像從而識(shí)別被測(cè)試者的眼睛、嘴巴、額頭、鼻子、肩膀等位置信息,與數(shù)據(jù)庫(kù)中存儲(chǔ)好的標(biāo)準(zhǔn)坐姿圖像進(jìn)行對(duì)比來(lái)識(shí)別坐姿的正確與否。周鈺等[5]將薄膜壓力傳感器配置在被測(cè)試者座椅上以獲取人體施加在座椅上的壓力分布數(shù)據(jù),利用壓力數(shù)據(jù)對(duì)坐姿進(jìn)行判斷。這種坐姿識(shí)別方式應(yīng)用場(chǎng)景比較廣泛,可以大大減少用戶(hù)的工作量,方便快捷。在該系統(tǒng)中,使用大面積陣列分布電阻式薄膜壓力傳感器為數(shù)據(jù)采集基礎(chǔ),以及STM32單片機(jī)、解耦電路、采集電路等組成信號(hào)采集部分。并使用機(jī)器學(xué)習(xí)技術(shù)進(jìn)行坐姿識(shí)別和分類(lèi),并實(shí)現(xiàn)了該技術(shù)在安卓移動(dòng)端的移植和功能實(shí)現(xiàn)。
相比于一般的彩色圖像,三維深度圖像[6-8]具有受光照變化小和不受復(fù)雜環(huán)境影響的優(yōu)點(diǎn),而且很容易獲取實(shí)物的三維深度信息。此外,RGB顏色信息對(duì)坐姿識(shí)別的作用基本可以忽略。與現(xiàn)有已知的方法比較,本文中提出的方法具有以下優(yōu)點(diǎn):(1)對(duì)常見(jiàn)坐姿進(jìn)行識(shí)別,識(shí)別信息豐富;(2)針對(duì)不同的坐姿設(shè)計(jì)了比較高效的前景提取方法;(3)根據(jù)不同坐姿的三維深度圖像信息,提取出三維深度圖像的投影特征與HOG特征來(lái)對(duì)不同的坐姿進(jìn)行識(shí)別,識(shí)別精度高,且對(duì)光照和背景的影響?。唬?)通過(guò)這種方法設(shè)計(jì)出的書(shū)桌檢測(cè)器具有很好的實(shí)用性與魯棒性。本文所提出的書(shū)桌檢測(cè)器的技術(shù)路線(xiàn)流程圖見(jiàn)圖1。
(1)基于Kinect 深度相機(jī)和側(cè)面RGB攝像頭的硬件搭建。本項(xiàng)目中各子項(xiàng)目,特別是兩個(gè)信息采集配件的配置方式見(jiàn)圖1。在該設(shè)置中書(shū)桌平面上也就是當(dāng)前人物的對(duì)面設(shè)置一臺(tái)Kinect 深度相機(jī)[9-11],以采集當(dāng)前人物的三維深度數(shù)據(jù)。另外,在人物的側(cè)面設(shè)置一臺(tái)RBG相機(jī),以采集書(shū)桌前當(dāng)前人物的側(cè)面坐立二維圖像。
(2)三維信息處理獲取當(dāng)前人物頭部和胸部的基本三維位置信息。設(shè)計(jì)信息處理算法分別識(shí)別當(dāng)前人物頭部和胸部的基本范圍,然后對(duì)這些范圍內(nèi)的深度數(shù)據(jù)進(jìn)行計(jì)算獲取頭部的基本姿態(tài)以及胸部的基本姿態(tài)。
(3)二維圖像處理以提取當(dāng)前人物的輪廓,提取側(cè)面形狀。針對(duì)RGB攝像頭提取到的二維圖像,使用基于閾值或者基于模型的算法獲取側(cè)面的基本輪廓。并在基本輪廓的基礎(chǔ)上,對(duì)頭部和軀干部位進(jìn)行識(shí)別,從而用擬合算法得到當(dāng)前人物頭部和軀干部位(背部)形成的曲線(xiàn)形狀。
(4)對(duì)數(shù)據(jù)進(jìn)行保存以有效管理坐姿數(shù)據(jù)。為了豐富當(dāng)前坐姿信息,邀請(qǐng)多位測(cè)試者參與坐姿信號(hào)的采集。并對(duì)這些原始數(shù)據(jù)處理后,創(chuàng)建數(shù)據(jù)庫(kù)保存這些處理后的坐姿數(shù)據(jù),以實(shí)現(xiàn)豐富坐姿數(shù)據(jù)的同時(shí)能夠?qū)@些數(shù)據(jù)有效管理的效果。
(5)以坐姿數(shù)據(jù)為參數(shù)建立能對(duì)坐姿正確性進(jìn)行判別的數(shù)學(xué)模型。參考相關(guān)文獻(xiàn)中的視覺(jué)信號(hào)坐姿檢測(cè)函數(shù),結(jié)合本項(xiàng)目采集的二維和三維數(shù)據(jù)進(jìn)行數(shù)學(xué)建模,該模型能夠在滿(mǎn)足一定的物理意義下判定當(dāng)前人物的坐姿是否屬于正確坐姿,若不正確則提供簡(jiǎn)單建議。
(6)對(duì)當(dāng)前坐姿進(jìn)行有效反饋。對(duì)上述判定函數(shù)提供的正確性建議使用聲音輸出設(shè)備提供給當(dāng)前坐立者有效的聲音提示,以起到提醒錯(cuò)誤坐姿并及時(shí)修改的作用。
本系統(tǒng)主要采用RGBD深度攝像頭獲取具有立體視覺(jué)的深度圖像信息。獲取三維圖像的深度信息,指的是獲取同一場(chǎng)景的若干張不同視角的圖像,利用圖像的匹配技術(shù)和三維重建方法來(lái)測(cè)算出場(chǎng)景對(duì)象的深度信息。Kinect深度相機(jī)參數(shù)[12-14]見(jiàn)圖2。圖3給出了Kinect深度相機(jī)采集到的RGB圖像與對(duì)應(yīng)的深度圖像。本項(xiàng)目的設(shè)備設(shè)置圖見(jiàn)圖4。
Kinect V2[15]提供兩種級(jí)別的面部處理。在第1個(gè)層面,我們可以檢測(cè)和跟蹤面部并識(shí)別列出的8個(gè)面部特征。getFaces方法執(zhí)行C++代碼來(lái)提取它的信息,并生成一個(gè)帶有面部數(shù)據(jù)的矢量,其中每個(gè)向量的200個(gè)元素對(duì)應(yīng)于每一個(gè)體。getFaces方法,此方法返回一個(gè)結(jié)構(gòu)數(shù)組,其中包含每個(gè)檢測(cè)到的面部的以下字段:
face box:包含用戶(hù)面部的矩形。
face rotation:用歐拉角表示的面部方向:俯仰,偏航,翻滾。
head pivot:頭部的中心,面部可以圍繞其旋轉(zhuǎn)。原點(diǎn)位于Kinect的光學(xué)中心,Z軸指向朝向用戶(hù),Y軸指向上方,X軸指向228右邊。
動(dòng)畫(huà)單位:17個(gè)動(dòng)畫(huà)單位(AUs),用數(shù)字表示權(quán)重在0和1之間變化。
face model:具有1347個(gè)網(wǎng)格頂點(diǎn)的高清人臉模型。
第2層次的人臉處理[16-18],稱(chēng)為高清人臉提供了3個(gè)驚人的人臉處理能力:(1)人臉捕捉:構(gòu)建個(gè)人人臉相對(duì)于平均值由94個(gè)形狀變形單元描述的內(nèi)置人臉模型。(2)人臉跟蹤:用戶(hù)可以進(jìn)行人臉跟蹤17個(gè)動(dòng)畫(huà)單位(AUs)中的214個(gè),表示為在以下范圍內(nèi)變化的數(shù)字權(quán)重0和1。如果建立了個(gè)人模型,跟蹤質(zhì)量會(huì)提高。這使得面部追蹤器能夠使用面部的精確幾何形狀來(lái)代替內(nèi)置平均幾何形狀,導(dǎo)致更準(zhǔn)確地表征面部運(yùn)動(dòng)。(3)人臉模型:實(shí)時(shí)三維人臉模型219個(gè)網(wǎng)格頂點(diǎn)。Kin2通過(guò)提供對(duì)這些高清人臉功能的訪(fǎng)問(wèn)getHDFaces方法。此方法返回一個(gè)結(jié)構(gòu)數(shù)組,其中包含每個(gè)檢測(cè)到的面部的以下字段。
(1)骨骼旋轉(zhuǎn)角計(jì)算。由于從Kinect V2獲取的坐標(biāo)都是點(diǎn)數(shù)據(jù),很難對(duì)坐姿進(jìn)行較為全面的描述,故而需通過(guò)角度特征來(lái)對(duì)姿態(tài)進(jìn)行描述。因此利用獲取到的骨骼關(guān)節(jié)點(diǎn)來(lái)計(jì)算每個(gè)關(guān)節(jié)的關(guān)節(jié)旋轉(zhuǎn)角度,通過(guò)這些角度來(lái)定義我們的不良坐姿。根據(jù)從Kinect V2獲取的三維坐標(biāo),進(jìn)行關(guān)節(jié)旋轉(zhuǎn)角度的換算。如圖4所示,點(diǎn)A、點(diǎn)B、點(diǎn)C分別代表3個(gè)不同的骨骼關(guān)節(jié)點(diǎn),我們通過(guò)3個(gè)關(guān)節(jié)點(diǎn)的坐標(biāo),需要求出關(guān)節(jié)點(diǎn)B的夾角θ來(lái)作為特征。
首先3個(gè)關(guān)節(jié),利用兩兩之間的距離為計(jì)算:a=|BC|、b=|AC|、c=|AB|,接下來(lái)通過(guò)余弦函數(shù)求得夾角,即關(guān)節(jié)旋轉(zhuǎn)角θ,公式見(jiàn)圖5。
(2)基于規(guī)則的判別方法的算法[19-20],描述與核心代碼見(jiàn)圖6。
Kinect V2所能獲取的骨骼關(guān)節(jié)點(diǎn)一共有20個(gè),而其中我們所要采用的關(guān)節(jié)點(diǎn)一共有8個(gè),它們分別是:頭部、脖子、脊柱、臀部、左肩、右肩、左肘和右肘。通過(guò)旋轉(zhuǎn)角度算法,分別求得以下7個(gè)所需要的旋轉(zhuǎn)角度作為判定坐姿的依據(jù),它們分別是:頭部和脊柱與脖子的夾角定義為頸部夾角(N);頭部和左肩與脖子的夾角定義為左頸夾角(LN);左肩和右肩與脖子的夾角定義為頸肩夾角(NS);頭部和右肩與脖子的夾角定義為右頸夾角(RN);脖子和臀部與脊柱的夾角定義為脊柱夾角(S);脖子和左肘于左肩的夾角定義為左肩夾角(LS);脖子和右肘與右肩的夾角定義為右肩夾角(RS)。
對(duì)30名男女志愿者進(jìn)行坐姿信息采集,坐姿為志愿者坐立時(shí)常見(jiàn)的6種姿態(tài),每種坐姿采集了隨機(jī)提取10個(gè)深度圖像。運(yùn)用基于規(guī)則的方法進(jìn)行判別,識(shí)別正確率可達(dá)98.72%,見(jiàn)圖7。
本系統(tǒng)針對(duì)不良坐姿給青少年帶來(lái)的危害進(jìn)行總結(jié),設(shè)計(jì)了基于Kinect V2的坐姿識(shí)別系統(tǒng)。該系統(tǒng)通過(guò)Kinect V2深度傳感器對(duì)人體的骨骼關(guān)節(jié)點(diǎn)進(jìn)行追蹤和獲取,將獲取到的關(guān)節(jié)點(diǎn)數(shù)據(jù)進(jìn)行關(guān)節(jié)旋轉(zhuǎn)角的計(jì)算,設(shè)計(jì)基于規(guī)則的算法對(duì)坐姿進(jìn)行識(shí)別。通過(guò)測(cè)試結(jié)果可知,本系統(tǒng)能夠?qū)θ梭w的常見(jiàn)幾種坐姿進(jìn)行有效檢測(cè)和對(duì)不良坐姿進(jìn)行識(shí)別并及時(shí)提醒。除此之外,本系統(tǒng)還具有較好的魯棒性、高效性等優(yōu)點(diǎn)。