盛洋,王健慶
(浙江中醫(yī)藥大學(xué) 醫(yī)學(xué)技術(shù)與信息工程學(xué)院,浙江 杭州 310053)
伴隨著計(jì)算機(jī)視覺技術(shù)及其相關(guān)硬件設(shè)施的高速發(fā)展,人體姿態(tài)識(shí)別技術(shù)已經(jīng)逐步應(yīng)用于社會(huì)的各個(gè)領(lǐng)域之中,并且發(fā)揮著重要的、巨大的經(jīng)濟(jì)價(jià)值和社會(huì)價(jià)值。以計(jì)算機(jī)視覺技術(shù)為基礎(chǔ)的傳統(tǒng)的人體姿態(tài)識(shí)別技術(shù)之所以需要大量經(jīng)驗(yàn)豐富的研究人員,是因?yàn)閭鹘y(tǒng)方法工作量大,協(xié)調(diào)性差且精準(zhǔn)度低。因此,構(gòu)建一種響應(yīng)程度高、精準(zhǔn)度高且簡單化的人體姿態(tài)識(shí)別系統(tǒng)尤為重要。
計(jì)算機(jī)視覺技術(shù)又被稱為機(jī)器視覺技術(shù)(Machine Vision Technology, MVT),是以計(jì)算機(jī)為載體,通過對(duì)人類的視覺功能進(jìn)行模擬提取圖像、視頻中的數(shù)據(jù)信息,再經(jīng)過數(shù)據(jù)化處理后實(shí)現(xiàn)檢測(cè)、控制等功能。該技術(shù)已經(jīng)被應(yīng)用于視頻監(jiān)控、人工智能交互、圖像處理等諸多科技領(lǐng)域,并且作為科學(xué)技術(shù)領(lǐng)域的一個(gè)重要的交叉學(xué)科不斷蓬勃發(fā)展。
圖像分類、目標(biāo)檢測(cè)、圖像語義與分割識(shí)別以及圖像的目標(biāo)跟蹤分析這四大類是目前計(jì)算機(jī)視覺領(lǐng)域內(nèi)的四個(gè)重點(diǎn)研究發(fā)展方向。
雖然計(jì)算機(jī)視覺中的一個(gè)基礎(chǔ)問題是人體姿態(tài)識(shí)別,但是這個(gè)問題目前可以具體地劃分為四個(gè)不同的方面,分別是單人姿態(tài)估計(jì)(Single-Person Skeleton Estimation)、多人姿態(tài)估計(jì)(Multi-person Pose Estimation)、人體姿態(tài)跟蹤(Video Pose Tracking)、3D人體姿態(tài)估計(jì)(3D Skeleton Estimation)。
其中單人姿態(tài)識(shí)別和多人姿態(tài)估計(jì)是為了獲取圖像中人體關(guān)鍵點(diǎn)的二維坐標(biāo),人體姿態(tài)跟蹤針對(duì)視頻數(shù)據(jù),3D人體姿態(tài)估計(jì)是用來估計(jì)人體在圖像或視頻的三維坐標(biāo)。本文主要對(duì)單人姿態(tài)估計(jì)進(jìn)行研究。
傳統(tǒng)方式和基于深度學(xué)習(xí)的方式是目前主流的人體姿態(tài)識(shí)別算法。
傳統(tǒng)的識(shí)別方法是一種根據(jù)圖形結(jié)構(gòu)和可變形構(gòu)件模型設(shè)計(jì)二維人體部件探測(cè)器,通過圖形模型建立各個(gè)構(gòu)件之間的連通性,并且在人體運(yùn)動(dòng)學(xué)的約束條件下,通過優(yōu)化圖形結(jié)構(gòu)模型來估計(jì)人體的姿態(tài)。在這種傳統(tǒng)方法的理論基礎(chǔ)上,通常只能通過圖像與身體位置曲線或關(guān)節(jié)曲線之間的非線性映射模型來實(shí)現(xiàn)人體姿勢(shì)的識(shí)別估計(jì)。
基于深度學(xué)習(xí)的人體姿態(tài)估計(jì)方法主要是利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)算法來定量提取圖像中的人體姿態(tài)特征。與傳統(tǒng)的人工設(shè)計(jì)特征方法相比,CNN不僅需要具有足夠豐富且完整的語義信息特征,此外,還需要能夠獲得具有不同姿勢(shì)感覺場(chǎng)的每個(gè)人類節(jié)點(diǎn)特征的特征向量,并通過完整上下文語義類描述每個(gè)節(jié)點(diǎn)的特征,擺脫了對(duì)構(gòu)件模型結(jié)構(gòu)設(shè)計(jì)的依賴,進(jìn)而直接使用坐標(biāo)回歸和特征向量模型來全面充分地反映當(dāng)前人類對(duì)姿態(tài)的感知,從而將姿態(tài)信息直接應(yīng)用到各種特定且具體場(chǎng)景的開發(fā)實(shí)踐中。
Openpose算法是利用神經(jīng)網(wǎng)絡(luò)算法中自下而上的思想,首先,利用算法檢測(cè)提取出圖像場(chǎng)景中幾乎所有相關(guān)的人體關(guān)鍵點(diǎn)數(shù)據(jù),然后利用聚類算法對(duì)屬于同一人體場(chǎng)景的所有關(guān)鍵點(diǎn)信息進(jìn)行聚類,并將其添加到相應(yīng)場(chǎng)景的圖像中,如圖1所示。
圖1 自下而上算法原理圖
首先對(duì)每一張圖像進(jìn)行圖像預(yù)處理,并通過VGGNet模型實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè),然后采用Openpose算法獲取人體關(guān)鍵點(diǎn)位置和置信度,最后根據(jù)PAF和二分圖匹配算法進(jìn)行關(guān)節(jié)拼接,實(shí)現(xiàn)了人體姿態(tài)識(shí)別系統(tǒng)。算法流程如圖2所示。
圖2 算法實(shí)現(xiàn)總流程圖
圖片的清晰度、明亮度等因素可能會(huì)影響到人體姿態(tài)識(shí)別的準(zhǔn)確度,導(dǎo)致無法獲取人體關(guān)鍵點(diǎn),判斷圖像中的人體姿態(tài)。因此需要對(duì)輸入的圖片進(jìn)行數(shù)據(jù)預(yù)處理。本文采用的數(shù)據(jù)預(yù)處理技術(shù)是雙線性插值。本文中圖像的預(yù)處理實(shí)現(xiàn)可以通過Python語言將雙線性插值的計(jì)算公式代碼化,獲得指定大小的圖片尺寸(550×600)。
2.3.1 關(guān)節(jié)點(diǎn)熱力圖
關(guān)節(jié)點(diǎn)熱力圖測(cè)量是為了測(cè)量圖像系統(tǒng)中位于某個(gè)特定位置上的每個(gè)關(guān)節(jié)點(diǎn)之間的相對(duì)置信度。如圖3所示,對(duì)于圖像系統(tǒng)中存在的任意一個(gè)人像系統(tǒng)來說,某一種類型圖像的任何關(guān)節(jié)點(diǎn)都存在這樣的一個(gè)峰值,但只有一個(gè)峰值;對(duì)不止一個(gè)人來說,有多個(gè)峰值。
圖3 關(guān)節(jié)點(diǎn)熱力圖
2.3.2 關(guān)節(jié)點(diǎn)親和區(qū)域
關(guān)節(jié)點(diǎn)親和區(qū)域通??梢岳斫鉃閮蓚€(gè)或相鄰兩個(gè)關(guān)節(jié)點(diǎn)之間聯(lián)系的親密程度。如圖4所示,由一系列的單位向量所共同組成的區(qū)域是關(guān)節(jié)點(diǎn)親和區(qū)域。
圖4 關(guān)節(jié)點(diǎn)親和區(qū)域示意圖
2.3.3 卷積神經(jīng)網(wǎng)絡(luò)
VGGNet網(wǎng)絡(luò)模型是在2014年被研發(fā)設(shè)計(jì)出的一種深度卷積神經(jīng)網(wǎng)絡(luò)。為了能夠獲得另一種更好的特征信息和提取和存儲(chǔ)信息能力,它探索了卷積神經(jīng)網(wǎng)絡(luò)的深度和其性能之間的關(guān)系,成功地構(gòu)造成了16~19層深的卷積神經(jīng)網(wǎng)絡(luò)。本文采用VGGNet-19模型進(jìn)行圖像特征提取,并且用符號(hào)F表示圖像特征,如圖5所示。
圖5 神經(jīng)網(wǎng)絡(luò)的VGGNet-19模型網(wǎng)絡(luò)結(jié)構(gòu)
如圖6所示,關(guān)節(jié)點(diǎn)檢測(cè)分支一共輸出19個(gè)特征圖,分別代表18個(gè)人體關(guān)鍵點(diǎn)特征圖和背景圖。將從特征圖中提取的人體關(guān)節(jié)點(diǎn)根據(jù)算法對(duì)應(yīng)的連接邊緣作為人體肢體,形成圖像中人體的骨骼圖。關(guān)節(jié)點(diǎn)上的親和區(qū)域分支輸出38個(gè)特征圖,代表聯(lián)系著親和場(chǎng)區(qū)域分支(Part Affinity Fileds, PAF),即關(guān)節(jié)點(diǎn)與相鄰的關(guān)節(jié)點(diǎn)之間的聯(lián)系。
圖6 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)預(yù)測(cè)圖
本文采用MS COCO 2017數(shù)據(jù)集進(jìn)行模型訓(xùn)練,該數(shù)據(jù)集身體部位有17個(gè),Openpose算法中添加了一個(gè)頸部這個(gè)部位。因此提取出的數(shù)據(jù)是被分成18組的,分別代表18個(gè)關(guān)節(jié),每組涵蓋了當(dāng)前圖像中人體關(guān)鍵點(diǎn)的坐標(biāo)位置和置信度。如圖7所示是MS COCO中的人體關(guān)鍵點(diǎn)。并提取出當(dāng)前關(guān)節(jié)的位置和所對(duì)應(yīng)的置信度。如表1所示是通過Openpose算法得到單人的關(guān)鍵點(diǎn)位置和置信度。
圖7 MS COCO中的人體關(guān)鍵點(diǎn)利用關(guān)節(jié)點(diǎn)檢測(cè)分支中的18個(gè)特征圖提取人體關(guān)鍵點(diǎn),
表1 Openpose算法得到單人的關(guān)鍵點(diǎn)位置和置信度
其中,人體關(guān)鍵點(diǎn)距離原點(diǎn)的水平像素距離用表示,人體關(guān)鍵點(diǎn)距離原點(diǎn)的垂直像素距離用表示。
將每個(gè)關(guān)鍵點(diǎn)都作為支撐一個(gè)樹干的一個(gè)支點(diǎn),相鄰四個(gè)關(guān)鍵點(diǎn)之間的一個(gè)連接線就作為一個(gè)樹干,而整個(gè)人的骨架就是一棵樹。
在匹配的整個(gè)計(jì)算過程中,每次匹配只需要考慮到兩個(gè)節(jié)點(diǎn)相鄰位置的關(guān)鍵點(diǎn)之間的連接,然后將每個(gè)匹配問題分解成為一組二分圖匹配的子問題,并由此可以完全獨(dú)立地去確定另外一個(gè)相鄰的樹骨架節(jié)點(diǎn)之間的連接關(guān)系的匹配(每次僅僅只考慮一個(gè)肢體的連接),最后就可以把整個(gè)人都連起來了。
以下是具體的算法步驟:人體的各個(gè)關(guān)鍵點(diǎn)之間存在許多種可能的連接,我們可以通過積分賦予每一個(gè)可能存在的連接一個(gè)分?jǐn)?shù),即PAF得分:
其中,兩個(gè)為為兩個(gè)人體關(guān)鍵點(diǎn),并且方向單位化。為兩個(gè)人體關(guān)鍵點(diǎn)連線上的點(diǎn),如圖8所示。
圖8 親和場(chǎng)二維向量圖
對(duì)二分圖可能的連接進(jìn)行加權(quán),計(jì)算出可能的最大匹配結(jié)果:
其中為E為二分圖優(yōu)化之后肢體的權(quán)重,應(yīng)取其中總權(quán)重之和最大的作為結(jié)果;為Z為所有骨點(diǎn)連接集合的的子集。約束條件為:
該條件表示一段肢體最多只存在一條連接邊。
在我們理解了如何快速計(jì)算求出人體中兩個(gè)或兩個(gè)以上人體關(guān)鍵點(diǎn)組合匹配的最小權(quán)值原理之后,可對(duì)二分圖算法進(jìn)行簡化。簡單來說,就是將原問題看作由若干個(gè)二分圖最大權(quán)匹配問題組成,進(jìn)而求解后將每條樹邊所對(duì)應(yīng)的匹配集合合并在一起,即可得到人體骨架,如圖9所示。
圖9 二分圖算法優(yōu)化原理圖
本文中在使用的MS COCO 2017數(shù)據(jù)集中對(duì)訓(xùn)練集和測(cè)試集取樣,總和為5 630組,劃分比例為訓(xùn)練集:測(cè)試集=4:1,得到訓(xùn)練集4 504組,測(cè)試集1 126組測(cè)試。最終在訓(xùn)練集上得到混淆矩陣如表2所示。
表2 混淆矩陣
在測(cè)試集上得到如圖10所示的人體姿態(tài)識(shí)別結(jié)果圖。
圖10 測(cè)試集示意圖
根據(jù)混淆矩陣和指標(biāo)公式可以得到準(zhǔn)確率為96.31%,靈敏度為97.75%,特效度為84.16%。由此可得出該人體姿態(tài)識(shí)別模型對(duì)大部分的人體姿態(tài)辨識(shí)度較高,對(duì)小部分的人體姿態(tài)無法識(shí)別出來。具體分析得出有以下幾點(diǎn)原因:
(1)MS COCO 2017數(shù)據(jù)集中的數(shù)據(jù)是隨機(jī)取樣的,可能存在樣本種類的分布不均衡問題,使模型訓(xùn)練結(jié)果存在偶然性和不確定性。
(2)存在一些特殊的訓(xùn)練樣本,使模型無法起到提取人體關(guān)鍵點(diǎn)的功能或缺少部分人體關(guān)鍵點(diǎn)是關(guān)節(jié)拼接混亂,如圖11所示。
圖11 錯(cuò)誤識(shí)別示意圖
本文所研究的靜態(tài)圖像人體姿態(tài)的識(shí)別系統(tǒng)是采用Openpose算法實(shí)現(xiàn)的,并通過使用PyQt5語言實(shí)現(xiàn)了GUI界面的展示,本文測(cè)試場(chǎng)景選在某小區(qū)內(nèi),檢測(cè)出小區(qū)居住人員活動(dòng)時(shí)的人體姿態(tài)。系統(tǒng)界面和實(shí)測(cè)結(jié)果如圖12所示。
圖12 人體姿態(tài)識(shí)別成品展示圖
本文在基于計(jì)算機(jī)視覺的人體姿態(tài)識(shí)別研究上,通過VGGNet模型實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè),然后利用Openpose算法獲取人體關(guān)鍵點(diǎn)的位置,最后根據(jù)PAF和二分圖算法實(shí)現(xiàn)了人體姿態(tài)識(shí)別系統(tǒng)。
在最終系統(tǒng)的實(shí)施中,本文實(shí)現(xiàn)的系統(tǒng)完成度較高,后續(xù)工作中可繼續(xù)優(yōu)化圖片預(yù)處理技術(shù),增加人體姿態(tài)分類算法,并進(jìn)行相應(yīng)數(shù)據(jù)訓(xùn)練,從而提高算法效率,并能得到更好的應(yīng)用效果。