高丙坤,馬 克,畢洪波,王 玲
(東北石油大學 電氣信息工程學院,黑龍江 大慶 163318)
人體姿態估計是計算機視覺領域的一個重要的研究方向,也是近年來的研究熱點之一,其目標就是準確地定位人體關鍵點的位置。它在動作跟蹤、行為識別和動畫制作等方向都有廣泛的應用[1-4]。傳統算法都是基于人為設計的圖像特征或者特征學習方法來對目標進行檢測。近幾年,隨著深度卷積神經網絡的提出,很多方向都開始用深度學習算法替代傳統算法,性能都有了很大提高。尤其一些性能優越的深度卷積神經網絡(DCNN)[5-8]模型更是被廣泛應用。2016年,沙漏網絡[9]被提出,它結合了不同分辨率的特征,在很多方向都有應用,尤其在人體姿態估計方向上有很好的效果。然而,由于攝像頭的角度和人體動作的多樣性,尺度問題一直是檢測的難點,針對這一問題,基于沙漏網絡的金字塔殘差網絡[10]提出了合理的解決方案,在每一個模塊中都加入了多尺度特征,有效地解決了尺度不一的問題。然而,隨著網絡性能的提高,也帶來了網絡復雜化的問題,上百層的結構和更多的通道數使得每一張圖片的計算量都達到了GFLOs的級別。這樣的網絡很難有效應用在手機、無人機等硬件上,所以設計性能優越又高效的網絡顯得格外重要。
本文在人體姿態估計的網絡模型中加入了一些輕量化的方法。受一些效果比較好的輕量化網絡的啟發[11-14],它們主要針對卷積方式和改變通道數來設計,本文在金字塔殘差網絡的基礎上,加入了深度可分離卷積,并結合通道分離和通道混合模塊,在MPII數據集上測試了網絡,該網絡可以在保持精度的基礎上,有效地減少計算量和存儲空間。
沙漏網絡在人體姿態估計上有好的檢測效果,利用多個沙漏網絡進行堆疊,不斷對檢測結果進行優化。每一個沙漏網絡都結合了多個分辨率的特征,同時它是一個模塊化的網絡,每一階段都多次使用殘差模塊進行特征提取。基于沙漏網絡的金字塔殘差網絡,如圖1所示,圖像經過7×7卷積層、池化層和金字塔殘差模塊(PRM),先將圖像分辨率降低到64×64,并且依次經過每個沙漏網絡,每個網絡后面都有一個中繼監督,以防止梯度消失。每個沙漏網絡的結構如圖2所示,不斷通過池化層來降低分辨率,最低分辨率到達了4×4,然后經過金字塔殘差模塊來進行特征提取。同時,在最后不斷結合多分辨率的特征進行有效的姿態估計。網絡里每個模塊都是一個金字塔殘差模塊,基于它是一個模塊化的網絡,本文對該模塊進行了輕量化設計,包括改變通道數和卷積方式,從而改進整體網絡。

圖1 多個沙漏網絡堆積成的網絡模型

圖2 多個相同結構的輕量化PRM組成的一個沙漏網絡
深度可分離卷積如圖3所示,一組普通卷積,卷積核為K,輸入通道數為M,輸出通道數為O,將其分成深度卷積和點卷積兩部分,深度卷積是先對每個通道進行一個K×K的卷積操作,然后點卷積用來將M個特征進行線性融合,點卷積的個數為輸出通道數。

圖3 深度可分離卷積
對于一個大小為Y×Z×M的輸入圖像,經過一個普通卷積的計算量為:
Y×Z×M×O×K×K
(1)
經過深度可分離卷積的計算量為:
Y×Z×M×O+Y×Z×M×K×K
(2)
經比較,當卷積核為3×3時,每個卷積的計算量都減少到之前的約1/9,同時這樣的卷積方式也可以有效地結合各個通道的特征。
通道分離重組如圖4所示,在應用時可以分組向下傳輸,分別提取特征,在最后特征融合時將通道重新進行排序。這樣可以在傳輸時減少通道數,還能保證在傳輸時,各部分的圖像特征都能有效的傳輸到后面,并且提高它們的相關性。

圖4 通道分離重組
沙漏網絡里的每個模塊都是一個金字塔殘差模塊。如圖5所示,它在殘差模塊的基礎上加入了多尺度特征,尺度的個數可以自定義,經過卷積提取特征之后,再上采樣到之前的分辨率進行特征融合。
根據上述分析,本文設計了輕量化的金字塔殘差模塊。如圖6(a)所示,將普通的卷積替換為深度可分離卷積。實驗中發現,深度可分離卷積雖然減少了參數量和計算量,但在計算速率上效果不好,因此本文只將原分辨率分支的卷積用深度可分離卷積替換掉。同時,在模塊開始部分加入了通道分離模塊,為了使網絡能夠提取到更多的特征,本文并沒有減少特征提取分支的通道數,而是在恒等映射部分選擇了一半的通道,并用級聯對特征進行融合。如果直接融合將有一半的通道少了特征提取的信息,所以在后面還要加入通道重組模塊[15],將通道進行有序的重新排序,該方法增強了特征之間的融合,使得每組輸出通道能夠包括所有輸入特征,增強了信息的相關性。

圖5 原始金字塔殘差模塊
輕量化金字塔殘差模塊可以表示為:
c(i+1)=0.5c(i)?P(c(i);w(i))
(3)
式中:0.5c(i)表示輸入特征圖通道數的1/2;w(i)表示第i層的濾波器;?表示級聯;P(c(i);w(i))表示特征金字塔,
(4)
M是金字塔多尺度的個數;fm(·)為第m個金字塔層的轉換,把輸出加到一起,作為g(·)的輸入。同時提取特征的原分辨率的分支用深度可分離卷積替換了普通的卷積,其他分支未在卷積方式上進行改進。如圖6(b)所示,去掉了原分辨率提取圖像特征的分支。在隨后的實驗中,本文分別對模型的參數量、計算量、檢測的準確率等指標進行了測試。

(a) 模型1

(b) 模型2
參考級聯金字塔網絡[16]在COCO數據集上驗證了2級沙漏模型在參數量和計算量,本文使用兩個沙漏網絡堆疊作為總的網絡框架。在人體姿勢估計的MPII數據集上訓練本文提出的網絡,結果如圖7所示,其中包括大約25 000張圖像和40 000注釋樣本(28 000次訓練,11 000次測試)。運行環境Ubuntu,迭代次數250,batchsize為6,使用Torch7框架和兩個NVIDIA 1080ti GPUs進行測試。使用Percentage Correct Keypoints (PCK)作為精度評價指標。同時按照一個參數8 bit計算存儲空間,結果在表1中顯示,復雜度按照輸入為256×256的RGB圖像進行計算的,結果如圖8所示。



圖7 被檢測的人和輕量化網絡在MPII數據集上檢測16個關鍵點的結果
根據表1以及圖8結果顯示,該網絡可節省約1/2的存儲空間和參數量,雖然準確率略有下降,但是計算的復雜度僅為2.83 GFLOs,是原模型的1/3,所以當存儲空間有限,但是檢測環境簡單時,該方法比較適用。

表1 在MPII數據上測試的結果

(a) 參數

(b) 復雜度
模型2的實驗結果顯示,去掉模型中提取原分辨率特征的分支后,準確率、復雜度以及參數量都不是最優的,這為今后的輕量化設計提供了依據。多尺度特征的每一部分都有各自的信息,輕量化設計應盡可能多的保留尺度信息,在其他方向進行輕量化的改進。
本文針對人體姿態估計在實際應用時,計算速度和存儲空間有限的特點,提出了一種輕量化金字塔殘差網絡,并在MPII數據集上進行了測試。該網絡有效地降低了復雜度和參數量,適用于具有簡單檢測環境和有限存儲空間的應用。在網絡結構上,它可以用于多分支網絡,這有助于輕量化各種模塊化的網絡。同時,下一步還需要設計更合理的網絡以提高檢測性能。