魏旋旋,黃子健,曹樂,楊皓,方宇
(1.上海工程技術大學 機械與汽車工程學院, 上海 201620; 2.上海工程技術大學 電子電氣工程學院, 上海201620)
全球約有2%~5%的青少年患特發性脊柱側彎,這種畸形通常隨著脊柱的快速生長而出現,并會影響身體外觀、心肺功能,甚至導致癱瘓[1]。美國疾控中心數據顯示,早期篩查及時發現脊柱側彎,能夠有效避免該疾病的產生,因此,脊柱側彎的篩查及早期診斷尤為重要。傳統篩查方法是采用目測、Adams 前屈試驗和脊柱側彎尺的方法進行初步篩查,再拍攝X 光片,并測量Cobb 角進行確診[2]。但這種方法多依賴醫師個人經驗具有不確定性且效率極低,難以大范圍推廣。
研究表明,脊柱側彎疾病與患者肩部、臀部和肩胛骨等的對稱性異常有關,近年來大量學者利用雙目視覺、深度相機和超聲波等方法對人體背部進行三維重建,利用三維數據計算人體背部的對稱和非對稱度信息,以此衡量脊柱側彎的程度[3-5]。Yang 等[6]利用深度學習開發和建立了基于人體裸露背部圖像的脊柱側彎智能篩查系統,該系統篩查準確率可達人類專家平均水平。但上述方法均需要需脫去衣物檢查(不利隱私保護),且設備價格昂貴、效率較低,阻礙了脊柱側彎篩查在健康普測中大面積應用。
針對以上問題,本文構建了一種較為輕量級的人體姿態估計網絡去提取人的關節點坐標,再利用SVM(support vector machine)分類器對脊柱側彎程度進行分類。實現了在正常環境下準確快速地對脊柱側彎進行篩查。本文主要研究貢獻包括:
1) 利用人體關節點,提出一種全新的脊柱側彎篩查方法,并通過自制數據集實驗驗證了該方法的有效性。
2) 將MobileNetV3 作為網絡模型的主框架,結合反池化反卷積的上采樣方法,設計了用于提取人體關節點的輕量級人體姿態估計模型,便于移植到嵌入式平臺,推動脊柱側彎篩查在健康普測中大面積應用。
姿態估計方法可分為基于坐標回歸和基于熱圖檢測兩種類型,基于熱圖檢測的方法是目前的研究主流[7],各種優秀的人體姿態估計方法如卷積位姿機[8]、高分辨率網絡[9]和沙漏堆疊網絡[10]等都是基于熱圖回歸。Zhao 等[11]提出一種新的人體位姿估計網絡架構,“平行金字塔”網絡架構,實現了速度和精度之間的良好平衡。Zhao等[12]還通過在端到端人體姿勢學習中添加質量預測塊,來提高平均精確率(average precision,AP)值。但由于網絡復雜和運算量大的原因,無法布置在移動硬件設備上,限制了這類姿態估計算法的實際應用。
近年來,輕量級姿態估計網絡成為研究的熱點。Osokin[13]采用輕量級Open Pose 網絡實現了CPU 上的實時2D 多人姿態估計,檢測速度可達28 f/s;Luo 等[14]以Simple Baseline 架構為基礎,利用深度卷積和注意力機制設計了一個輕量級瓶頸塊,使得設計出來的網絡模型相比Simple Baseline網絡復雜度減少91%,而計算復雜度只有其11%;Ren 等[15]在Luo 的基礎上,將結構相似性度量概念引入輕量級瓶頸塊中,用以細化固有特征圖的適當比例和減小模型大小,使得計算成本大大降低;Bazarevsky 等[16]設計了一種用于人體姿勢估計的輕量級卷積神經網絡架構Blaze Pose,實現了移動設備上人體姿勢估計的實時推理;谷歌提出的MobileNetV3[17]卷積神經網絡模型,可以直接將算法搭載到嵌入式開發板中運行;國內也有不少研究者對現有經典網絡進行修改使之輕量化,并應用在姿勢評估的研究方面[18-20]。
機器學習在脊柱畸形檢測方面的應用是當今的熱門領域。Ramirez 等[21]結合人體背部表面形貌圖和臨床數據,利用支持向量機分類器進行分類,成功將Cobb 角的大小分為3 類(小于 30°、 30°~50°和大于 50°),準確率在69%~85%;Seoud 等[22]在Ramirez 的基礎上成功對脊柱的彎曲類型進行分類,準確率達到72.2%;Sun 等[23]利用結構化支持向量回歸,實現了從X 光片圖像中對Cobb 角的高精度估算;Zhang 等[24]將深度神經網絡用于估算X 光片的錐體斜率,再由斜率估算Cobb 角;類似的還有采用卷積神經網絡(convolutional neural network, CNN)[25]、Mask R-CNN[26]以及U-Net[27]等網絡的方法對椎骨進行分割、重建和計算脊柱曲率。Tan 等[28]使用Unet 網絡分割X 光片中的脊柱,再通過最小外包絡矩形不斷在局部區域逼近椎體邊界,最終擬合出脊柱邊界曲線用SVM對脊柱進行分型,實驗結果與醫生評估的結論相同。
圖1 為本文提出的采用輕量級姿態估計網絡的脊柱側彎篩查算法流程。首先,對采集到的RGB 圖像進行簡單的預處理,再將其輸入本文搭建的輕量級人體姿態估計模型獲取人體關鍵點的二維坐標信息。接著,從關鍵點二維坐標中提取人體姿態的空間特征送進訓練好的SVM 分類器中完成脊柱側彎程度的分類。

圖1 脊柱側彎篩查算法流程Fig.1 Scoliosis screening algorithm flow
由于MobileNetV3 具有體積小、計算量少和精度高的優點,所以本文在設計輕量級姿態估計網絡時以MobileNetV3 為編碼器來構建網絡模型。本文設計的模型主要分為3 部分:編碼器、解碼器和坐標解碼(即熱圖回歸),如圖2 所示。

圖2 輕量級姿態估計網絡結構Fig.2 Lightweight pose estimation network architecture
網絡直接使用MobileNetV3 的前13 層作為編碼器來提取輸入圖片的特征圖,這樣做可以在保證模型輕量級的同時減少網絡計算量。經過編碼器提取的多維特征需要通過上采樣的方式進行可視化,為此,采用5 層反池化反卷積的上采樣方法提取人體各關節點的熱圖,具體操作如圖3 所示。最終通過一系列的反池化、反卷積操作預測出各個關鍵點的熱圖。反卷積反池化網絡的具體結構和參數如表1 所示,其中K是關鍵點的個數。

表1 反卷積反池化網絡結構和參數設置Table 1 Deconvolution depoolerization network structure and parameter settings
在得到關鍵點的熱圖后,為了得到各關鍵點的二維坐標需要將對應的分辨率恢復轉換回原始的坐標空間,并預測關節在原始圖像坐標空間中的位置,這個過程被稱為坐標解碼即熱圖回歸。
人體關節坐標按比例編碼到熱圖中可以表示為
式中:λ是分辨率降低率,p與p′對應圖中及熱圖中的點坐標。
被預測熱圖的二維高斯分布表示為
式中:μ為待估計關節位置對應的高斯均值;協方差Σ是一個對角矩陣,與坐標編碼中使用的矩陣相同。
采用二維高斯編碼的熱圖,高斯分布的均值μ所對應的坐標即原圖的人體關節點的坐標。解碼的過程就是從帶有誤差的高斯分布中估計均值μ的坐標的過程。
如何獲取μ值本文有如下推理:
作為極值點,方程滿足在x = μ時一階導數為0,可表示為
再由泰勒展開式可得:
其中,
將式(5)~(7)聯立可得:
在得到μ后,再利用式(1)預測原始圖像空間中的關節點坐標p。
為將脊柱側彎疾病進行詳細分級,需要提取人體姿態的空間特征。主要有:X和Y軸上的差值、體態角度。
體態角度分為傾角和夾角,如圖4(a)所示,關節點記作p1=[x1y1]T,p2=[x2y2]T,其連線向量為l=[x1-x2y1-y2]T,垂直方向單位向量為e=[0 1]T,所以傾角θ的計算公式為

圖4 體態角度和空間特征示意Fig.4 Schematic diagram of posture angle and spatial characteristics
如圖4(b)所示,關節點記作p1=[x1y1]T,p2=[x2y2]T,p3=[x3y3]T,記l1=p1-p2,l2=p3-p2,所以夾角β的計算公式為
圖4(c)和(d)是人體正面和側面空間特征的具體部位。將上述所得的關節點坐標和人體姿態的空間特征組成體態矩陣,并結合脊柱側彎的標簽,送入SVM 分類器進行訓練,最終實現脊柱側彎的分類即脊柱側彎篩查的目的。
本文的實驗設備為NVIDIAGTX 1080-Ti, 10 GB內存的計算機,使用的是Tensorflow 2.1.0 深度學習框架。在MSCOCO 和MPII 數據集上進行了實驗,用以評估輕量級人體姿態估計網絡的性能。MSCOCO 數據集由微軟公司制作,含25 萬個人體實例和18 個關鍵點;MPII 數據集是從各種真實世界活動拍攝的,對全身的姿態都有注釋。
PCP(percentage correct parts)[29]是人體姿態估計評估準確性的常用評價標準,本次姿態估計實驗使用該標準作為實驗結果的評價指標。另外,用參數量(Params)和計算量(FLOPs)判斷網絡模型的輕量級。訓練時通過隨機旋轉[ -45°, 4 5°]、隨機尺度[0.65, 1.35]和翻轉的方式對數據進行增強。在優化器的選擇上,本文使用Adam 優化器,初始學習率設為10-3,經過第90 次和120 次迭代后分別減小為10-4和10-5??偣驳螖翟O置為200 次。
為進一步驗證本文所采用輕量級姿態估計網絡的先進性,將該模型與Simple Baseline、Deep Pose 和HRNet 這3 種具有代表性的模型在MPII數據集上進行對比,其結果如表2 所示(輸入圖片大小為224 像素×224 像素)。

表2 MPII 數據集在不同方法下的參數量、計算量和PCPTable 2 Params, GFLOPs and PCP of MPII dataset under different methods
根據表2 所示,本文提出的方法在參數量上相比Simple Baseline、Deep Pose、HRNet 分別減少68.9%、48.8%、62.8%,同時在計算量上也分別減少2.5、1.1、5.9 GB。各個關鍵點的平均識別率也有所提高,可達到93.9%。結果表明本文算法能夠很好地對人體關鍵點進行提取。
由于目前國內外沒有利用姿態識別進行脊柱側彎篩查的案例和相應的數據庫,所以本文自行采集制作了一個500 人的脊柱側彎數據集,用于驗證算法的可行性。利用Kinect 相機采集500 名年齡在12~15 歲中小學生在自然站立下(雙手自然下垂,雙腳并攏)的正面照和側面照,其中男生274 名,女生226 名,無側彎208 人,側彎Ⅰ度40人,側彎Ⅱ度180 人,側彎Ⅲ度72 人。側彎程度是由專業的醫生利用脊柱側彎尺和Adams 前屈實驗,根據《兒童青少年脊柱彎曲異常的篩查標準(GB/T16133—2014)》[30]判斷得到。脊柱側彎類型分為無側彎(脊柱側彎測量儀< 5°)、側彎Ⅰ度( 5°≤ 脊柱側彎測量儀<7°) 、側彎Ⅱ度( 7°≤脊柱側彎測量儀<1 0°)、側彎Ⅲ度(脊柱側彎測量儀≥1 0°),分別用0、1、2、3 作為標簽方便后續訓練。本實驗自制數據集的訓練集數據和測試集數據如表3 所示。圖5 是不同程度側彎人群的圖片展示。

表3 脊柱側彎數據集Table 3 Scoliosis datasets

圖5 4 種不同程度的脊柱側彎Fig.5 Four different degrees of scoliosis
本文使用SVM 分類器對脊柱側彎疾病進行詳細分級,為提高模型的可靠性和泛化能力,本文實驗均采用四折交叉驗證的方式進行訓練。將采集的數據直接輸入SVM 分類模型進行訓練得到混淆矩陣如圖6(a)所示,對于4 種不同程度的側彎分類的準確率分別是85.0%、62.0%、74.0%、81.0%。為了進一步提高分類的準確率,本文提出利用3 個SVM 二分類分類器對脊柱側彎程度進行細化分級。具體操作為:1)分類器SVMⅠ將側彎分為無側彎和有側彎兩類;(2)利用分類器SVMⅡ將有側彎的分為側彎Ⅰ度和其他;(3) 利用分類器SVMⅢ完成最終分類。訓練后得到的混淆矩陣如圖6(b)所示,4 種不同程度的脊柱側彎分類的準確率分別為93.0%、81.7% (0.95×0.86=0.817)、81.3% (0.95×0.94×0.91≈0.813)、86.6% (0.95×0.94×0.97≈0.866),可以更好地完成脊柱側彎的詳細分級。

圖6 脊柱側彎分類的混淆矩陣Fig.6 Confusion matrix for scoliosis classification
將本文訓練好的算法模型嵌入到開發板上構建了便攜式脊柱側彎篩查系統,外部RGB 圖像的采集,使用1080 P 高清USB 攝像頭。該系統具有成本低、攜帶方便和快速篩查等特點,便于推廣到學校和社區大范圍應用。圖7 是便攜式脊柱側彎篩查系統的檢測流程,圖8 是該系統現場的篩查檢測結果,在實際篩查中可實現每人20 s 的篩查速度。

圖7 嵌入式脊柱側彎篩查系統算法流程Fig.7 Embedded scoliosis screening system algorithm flow

圖8 脊柱側彎篩查系統實現Fig.8 Scoliosis screening system implementation
本研究提出采用輕量級姿態估計網絡的脊柱側彎篩查方法。該網絡參數量上相比Simple Baseline、Deep Pose、HRNet 分別減少68.9%、48.8%、62.8%,在計算量上分別減少2.5、1.1、5.9 GB,且關鍵點的平均識別率達到93.9%。在脊柱側彎分類時采用3 個SVM 二分類進行詳細分級,在4 種不同程度的側彎中準確率分別達到93.0%、81.7%、81.3%、86.6%,比單獨采用一個SVM 進行四分類時分別高出8.0%、19.7%、7.3%、5.6%。設計開發了便攜式脊柱側彎篩查系統,實際篩查時可實現每人20 s的篩查速度。
本文采集的脊柱側彎數據集存在一定誤差,且數據集的數量相對較少,這些因素對模型訓練和評估產生一定影響,后期將通過擴大數據集和引進X 光片診斷結果作為標簽的方法進一步對該方法進行優化完善。