可以裝在手機裡的 3D 姿態估計,模型尺寸僅同類 1/7,平均關節位置誤差卻只有 5 釐米
長久以來,三維姿態估計都在追求準確性上一路狂奔。
但精度提高的同時,也帶來了計算成本的上升。
而剛剛被 CPVR 2021 接受的論文中所提出的模型,MobileHumanPose 卻可以同時做到又小又好。
還是放在手機上都能 hold 得住的那種。來感受一下:
這種動作的健身操也沒問題:
據瞭解,這個模型的尺寸,只有基於 ResNet-50 的模型的 1/7,算力達到了 3.92GFLOPS。
而且平均每關節位置誤差(MPJPE),也只有大約 5 釐米。
那麼這一模型到底是如何在有限的算力下產生極佳效能的呢?
基於編碼器-解碼器結構的改進
這是一個從基本的編碼器-解碼器結構改良得來的模型。
在編碼器用於全域性特徵提取,而解碼器進行姿態估計的基礎架構上,研究團隊對其主幹網路、啟用函式,以及 Skip concatenation 功能都進行了修改。
先來看研究團隊選擇的主幹網路,MobileNetV2。
他們在 MobileNetV2 的前四個倒置殘差塊(Residual Block)處修改了通道大小,獲得了效能提升。
接下來,將 PReLU 函式用於實現啟用功能,其中 ai 為學習引數 yi 是輸入訊號。
這一函式中的可學習引數能夠在每一層網路都獲得額外的資訊,因此在人體姿勢估計任務中使用引數化 PReLU 時可提升效能。
▲修改了啟用函式後的 baseline
現在,模型的效率已經不低了,但考慮到推理速度,團隊使用 Skip concatenation 結構。這一結構能從編碼器到解碼器中匯出低級別特徵訊號(Lowlevel feature signal),不會降低效能。
引數量減少 5 倍,計算成本降到 1/3
團隊使用 Human3.6M 和 MuCo-3DHP 作為三維人體姿勢資料集,他們提出了 MobileNetV2 的大小兩個模型。
在 Human3.6M 上,MobileNetV2 大模型實現了 51.44 毫米的平均每關節位置誤差。
且其引數量為 4.07M,對比同類模型的 20.4M(chen)減少了 5 倍,計算成本為 5.49GFLOPS,是同類模型的 1/3 不到(14.1G)。
對於多人三維姿勢估計任務,研究者使用 RootNet 來估計每個人的絕對座標,在 MuPoTS 的 20 個場景中進行了實驗:
實驗結果證明,對比 Zerui Chen 等研究者提出的獲 ECCV 2020 的三維人體姿態估計方法,MobileNetV2 在一般場景中的效能都更好,且在少數場景中取得了最佳效能:
在模型效率上,MobileNetV2 的大模型效率為 2.24M/3.92GFLOPS,遠超同類模型的 13.0M/10.7GFLOPS(Zerui Chen)。
而小模型也能實現 56.94 毫米的平均每關節位置誤差,有 224 萬個引數,計算成本為 3.92GFLOPS。
作者介紹
論文的三位作者皆畢業於韓國高等技術研究院,一作 Sangbum Choi 為該校的電機及電子工程專業碩士。
論文:
https://openaccess.thecvf.com/content/CVPR2021W/MAI/html/Choi_MobileHumanPose_Toward_Real-Time_3D_Human_Pose_Estimation_in_Mobile_Devices_CVPRW_2021_paper.html
開源地址:
[1]https://github.com/SangbumChoi/MobileHumanPose
[2]https://github.com/ibaiGorordo/ONNX-Mobile-Human-Pose-3D