(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-27
(45)【発行日】2024-06-04
(54)【発明の名称】骨格推定装置及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240528BHJP
【FI】
G06T7/00 350C
G06T7/00 660B
(21)【出願番号】P 2021040781
(22)【出願日】2021-03-12
【審査請求日】2023-03-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】徐 建鋒
(72)【発明者】
【氏名】小森田 賢史
【審査官】佐藤 実
(56)【参考文献】
【文献】YU LIU et al.,PosePropagationNet: Towards Accurate and Efficient Pose Estimation in Videos,IEEE Access,Volume 8,IEEE,2020年05月28日,Pages 100661 - 100669,https://ieeexplore.ieee.org/document/9103077
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
入力映像の各フレームについて深層学習ネットワークによる骨格推定を行う骨格推定装置であって、
各フレームを第1種フレームまたは第2種フレームのいずれかとして区別し、
第1種フレームについては、当該第1種フレームのみを静止画として第1深層学習ネットワークに入力して骨格推定結果を得る第1処理を適用し、
第2種フレームについては、当該第2種フレームのみを静止画として第2深層学習ネットワークに入力して骨格推定の中間結果を得て、当該中間結果と
、当該第2種フレームよりも過去のフレームについての骨格推定結果
のうち少なくとも1つと
、を用いて当該第2種フレームの骨格推定結果を得る第2処理を適用し、
前記第2深層学習ネットワークは、前記第1深層学習ネットワークよりも軽量化されたものであ
り、
前記第2処理で用いる当該第2種フレームよりも過去のフレームについての骨格推定結果は、当該第2種フレームから最も近い過去にある第1種フレームよりも過去のフレームにおける骨格推定結果を含まないことを特徴とする骨格推定装置。
【請求項2】
前記第2深層学習ネットワークは、前記第1深層学習ネットワークと共通構造のネットワークであることを特徴とする請求項1に記載の骨格推定装置。
【請求項3】
前記第2処理では、前記中間結果と少なくとも1つの前記過去のフレームについての骨格推定結果とを遷移ネットワークに入力して、時間軸上で少なくとも1つの前記過去のフレームの骨格推定結果も考慮した前記第2種フレームについての少なくとも1つの遷移骨格推定結果を得て、当該遷移骨格推定結果と、前記中間結果と、を統合することにより当該第2種フレームの骨格推定結果を得ることを特徴とする請求項1または2に記載の骨格推定装置。
【請求項4】
前記第2処理では、前記過去のフレームのうち少なくとも1つとして、骨格推定の対象となる第2種フレームから最も近い過去にある第1種フレームについての骨格推定結果を利用することを特徴とする請求項1ないし3のいずれかに記載の骨格推定装置。
【請求項5】
前記第2処理では、骨格推定の対象となる第2種フレームと、当該第2種フレームから最も近い過去にある第1種フレームと、の間に骨格推定済みの第2種フレームが存在する場合には、さらに当該骨格推定済みの第2種フレームの骨格推定結果も用いて、当該第2種フレームの骨格推定を行うことを特徴とする請求項4に記載の骨格推定装置。
【請求項6】
前記第1種フレームは映像の時間軸上で間欠的に1枚ずつ設定され、当該設定された第1種フレーム同士の間に連続して第2種フレームが設定されることを特徴とする請求項1ないし5のいずれかに記載の骨格推定装置。
【請求項7】
入力映像に対してシーン検出を適用することで、シーンが切り替わった直後であると判定されたフレームについては第1種フレームとして設定することを特徴とする請求項6に記載の骨格推定装置。
【請求項8】
前記第2深層学習ネットワークは、前記第1深層学習ネットワークに対して、入力解像度と、ネットワーク内で処理される特徴マップのチャネル幅と、を削減することによって前記軽量化されていることを特徴とする請求項1ないし7のいずれかに記載の骨格推定装置。
【請求項9】
コンピュータを請求項1ないし8のいずれかに記載の骨格推定装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像に対して骨格推定を行う骨格推定装置及びプログラムに関する。
【背景技術】
【0002】
非特許文献1に開示されるOpenPoseを始め、近年、沢山の骨格抽出技術が開発されており、この技術により静止画に映った人物の全身骨格を抽出できる。一般的に、骨格抽出技術は非特許文献1のようなボトムアップ方式と非特許文献2のようなトップダウン方式に分類することができる。例えば、非特許文献2のHRNet(高解像度ネット)では、画像から検出した人物のバウンディングボックス(Bounding box)毎に全身の骨格を抽出する。ただし、ボトムアップ方式及びトップダウン方式のいずれも、各関節のヒートマップ(Heatmap)から関節位置及び推定信頼度を式(1A),(1B)で推定する。
【0003】
【0004】
式(1A),(1B)において、H(x,y)はヒートマップ(所定の関節種別ごとに定義されるヒートマップのうち、ある任意の1つの関節に関するヒートマップ)であり、x,yは当該ヒートマップに対応する静止画の座標であり、W,Hは当該ヒートマップ及び対応する静止画における横、縦のサイズである。各関節のヒートマップH(x,y)はすなわち、骨格抽出の対象となる静止画の各画素位置(x,y)において、当該位置(x,y)が当該種類の関節に該当する信頼度をマップとして与えたものである。ヒートマップH(x,y)を参照して式(1A)により、信頼度値が最大となる位置Pを当該関節の位置として推定し、式(1B)により、当該最大値となる位置Pの関節の信頼度fを推定することができる。
【0005】
一方、映像を入力すると、前記静止画の骨格抽出技術を用いて各フレームから独立に人物の骨格を抽出できる。ただし、人物の動きにより画像がボケることや人物の一部が隠れることなど課題があるため、骨格抽出精度が落ちる可能性がある。
【0006】
そこで、最近、映像の時間軸情報を利用して骨格抽出の精度向上を狙う技術が開発された。例えば、非特許文献3では、3D Convolution(3次元畳み込み)を用いて時間軸情報を利用する。非特許文献4では、CNN(畳み込みニューラルネットワーク)で各フレームから抽出した特徴マップをLSTM(長・短期記憶)に入力し、LSTMの出力を別のCNNに入力し、各関節のヒートマップを推定する。非特許文献5では、オプティカルフローを利用して前後のフレームのヒートマップを当フレームに遷移させて当フレームの姿勢推定の精度を向上させる。非特許文献6では、別フレームのヒートマップと当フレームのヒートマップの差分を専用サブネットワークに入力し、別フレームのヒートマップを当フレームに遷移させる。
【先行技術文献】
【非特許文献】
【0007】
【文献】Z. Cao, G. Hidalgo Martinez, T. Simon, S.Wei, and Y. A. Sheikh. Openpose: Realtime multi-person 2d pose estimation using part affinity fields. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2019.
【文献】Ke Sun, Bin Xiao, Dong Liu, and JingdongWang. Deep high-resolution representation learning for human pose estimation. In CVPR, 2019.
【文献】Zhou, Lu, Yingying Chen, Jinqiao Wang, and Hanqing Lu. "Progressive Bi-C3D Pose Grammar for Human Pose Estimation." In AAAI, pp. 13033-13040. 2020.
【文献】Luo, Yue, Jimmy Ren, Zhouxia Wang, Wenxiu Sun, Jinshan Pan, Jianbo Liu, Jiahao Pang, and Liang Lin. "LSTM pose machines." In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 5207-5215. 2018.
【文献】Pfister, Tomas, James Charles, and Andrew Zisserman. "Flowing convnets for human pose estimation in videos." In Proceedings of the IEEE International Conference on Computer Vision, pp. 1913-1921. 2015.
【文献】Gedas Bertasius, Christoph Feichtenhofer, Du Tran, Jianbo Shi, and Lorenzo Torresani. Learning temporal pose estimation from sparsely-labeled videos. In Advances in Neural Information Processing Systems 32, pages 3027‐3038, 2019.
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、従来技術は、時間軸の情報を使うために、元々重いネットワークを更に複雑にさせて、計算量が増えてしまう。一方、実応用では、リアルタイム処理が必要である場合、または、計算リソースが限られる組込みシステムの場合、時間軸の情報を用いて計算量を削減することが重要である。
【0009】
上記従来技術の課題に鑑み、本発明は、時間軸情報を利用して高精度な推定を実現しつつ計算量を削減できる骨格推定装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明は、入力映像の各フレームについて深層学習ネットワークによる骨格推定を行う骨格推定装置であって、各フレームを第1種フレームまたは第2種フレームのいずれかとして区別し、第1種フレームについては、当該第1種フレームのみを静止画として第1深層学習ネットワークに入力して骨格推定結果を得る第1処理を適用し、第2種フレームについては、当該第2種フレームのみを静止画として第2深層学習ネットワークに入力して骨格推定の中間結果を得て、当該中間結果と当該第2種フレームよりも過去のフレームについての骨格推定結果とを用いて当該第2種フレームの骨格推定結果を得る第2処理を適用し、前記第2深層学習ネットワークは、前記第1深層学習ネットワークよりも軽量化されたものであることを特徴とする。また、本発明は、コンピュータを前記骨格推定装置として機能させるプログラムであることを特徴とする。
【発明の効果】
【0011】
本発明によれば、入力映像の各フレームについて第1種、第2種の区別を設けて、第1種フレームについては静止画の手法で高精度に骨格推定し、第2種フレームについては静止画の手法を軽量化ネットワークにおいて適用した中間結果に加えて、過去フレームの骨格推定結果も利用して骨格推定することによって第2種フレームについて高精度な推定と計算量の削減とを両立させることができ、映像に対して時間軸情報を利用して高精度な推定を実現しつつ計算量を削減して骨格推定を行うことが可能となる。
【図面の簡単な説明】
【0012】
【
図1】一実施形態に係る骨格推定装置の機能ブロック図である。
【
図2】一実施形態に係る骨格推定部によるIフレーム及びPフレームで区別した処理の概要を示す図である。
【
図3】一実施形態に係る骨格推定部の詳細として、深層学習ネットワークで骨格推定部を実現する場合のネットワーク構造例を示す図である。
【
図4】一実施形態に係る骨格推定部で利用されるHRNet(高解像度ネット)のネットワーク構造を示す図である。
【
図5】一実施形態に係る骨格推定部で利用される遷移ネットワークのネットワーク構造を示す図である。
【
図6】一実施形態に係る骨格推定部での共通の手順(n)を行うネットワーク構造を示す図である。
【
図7】一実施形態に係る骨格推定部でのパラメータ等の設定例を示す図である。
【
図8】一般的なコンピュータにおけるハードウェア構成を示す図である。
【発明を実施するための形態】
【0013】
図1は、一実施形態に係る骨格推定装置の機能ブロック図であり、図示するように骨格推定装置10はフレーム配分部1及び骨格推定部2を備え、骨格推定部2はIフレーム骨格推定部21及びPフレーム骨格推定部22を備える。
【0014】
骨格推定装置10は、その全体的な動作として、各時刻t=1,2,…のフレームF(t)で構成される入力映像を読み込み、この映像の時間軸情報を考慮したうえでの各フレームF(t)の骨格推定結果FH(t)をヒートマップの形式で出力することができる。(なお、この
図1や後述する各図においては、当該出力される骨格推定結果FH(t)に対応する挿絵として、ヒートマップにおいて信頼度が最大の位置を関節位置とした骨格の模試例を示している。)各部の処理内容の概要は次の通りである。
【0015】
フレーム配分部1では、入力映像の各フレームF(t)についてIフレームまたはPフレームの2種類のいずれに該当するかの区別を付与して骨格推定部2へと出力する。骨格推定部2ではIフレームに該当するフレームF(t)についてはIフレーム骨格推定部21により骨格推定を行い、また、Pフレームに該当するフレームF(t)についてはPフレーム骨格推定部22により骨格推定を行うことにより、各フレームF(t)におけるヒートマップとしての骨格推定結果FH(t)を出力する。
【0016】
図2は、一実施形態に係る骨格推定部22によるIフレーム及びPフレームで区別した処理の概要を示す図である。
図2ではフレーム配分部1によってフレームF(t)がIフレームとして決定され、これに続くk枚の連続フレームF(t+1),F(t+2),…,F(t+k)がPフレームとして決定された場合の骨格推定部22による処理を模式的に示している。
【0017】
図2に示すように、Iフレームとして決定されたフレームF(t)については、この1枚のフレームF(t)のみを入力として、Iフレーム骨格推定部21が静止画に対する骨格推定の手法により骨格推定結果FH(t)を得ることができる。また、Pフレームとして決定された各フレームF(t+n)(n=1,2,…,k)については、当該フレームF(t+n)と、これよりも過去の1つ以上のフレーム(例えばF(t+n-1),F(t+n-2),…)と、を入力としてPフレーム骨格推定部22が時間軸情報を考慮した手法により骨格推定結果FH(t)を得ることができる。この際、当該フレームF(t+n)よりも過去の1つ以上のフレーム(例えばF(t+n-1),F(t+n-2),…)については、既に推定済みである骨格推定結果(例えばFH(t+n-1),FH(t+n-2),…)を入力として、Pフレーム骨格推定部22では骨格推定結果FH(t+n)を得ることができる。
【0018】
図2の例では以下の手順(0),(1),(2),…(k)によって骨格推定結果を得ることができる。なお、Iフレーム骨格推定部21の処理は以下の手順(0)であり、Pフレーム骨格推定部22の処理は以下の手順(1),(2),…(k)である。
<手順(0)> IフレームF(t)について、当該フレームF(t)のみを入力として骨格推定結果FH(t)を得る。
<手順(1)> PフレームF(t+1)について、当該フレームF(t+1)と、1つ前の時刻で既に推定済みであるIフレームの骨格推定結果FH(t)と、の2データを入力として骨格推定結果FH(t+1)を得る。
<手順(2)> PフレームF(t+2)について、当該フレームF(t+2)と、1つ前及び2つ前の2時刻でそれぞれ既に推定済みであるPフレーム及びIフレームの骨格推定結果FH(t+1)及びF(t)と、の3データを入力として骨格推定結果FH(t+1)を得る。
…
<手順(k)> PフレームF(t+k)について、当該フレームF(t+k)と、1つ前及びk個前の2時刻でそれぞれ既に推定済みであるPフレーム及びIフレームの骨格推定結果FH(t+k-1)及びFH(t)と、の3データを入力として骨格推定結果FH(t+n)を得る。
【0019】
なお、手順(1),(2),…(k)では、当該骨格推定対象となるPフレームよりも過去のIフレームで、最も時間的に近い過去のIフレームとしてフレームF(t)を利用している。
【0020】
なお、上記の手順(2)~(k)は共通であって、n=2,3,…,kとして以下の共通の手順(n)として記述できるものである。
<手順(n)> PフレームF(t+n)について、当該フレームF(t+n)と、1つ前及びn個前の2時刻でそれぞれ既に推定済みであるPフレーム及びIフレームの骨格推定結果FH(t+n-1)及びFH(t)と、の3データを入力として骨格推定結果FH(t+n)を得る。
【0021】
図2の例では、以下のようにして映像を対象として認識精度を維持しつつ計算量を抑制して骨格推定結果を得ることができる。すなわち、IフレームF(t)については、静止画として扱って高精度に骨格推定を得るようにし、これに続く各PフレームF(t+1),F(t+2),…,F(t+k)については、計算量を抑制して(当該1枚の静止画について得られる中間出力において精度を下げて)静止画に対する骨格推定の手法を適用しながらも、併せて過去時刻において既に高精度に推定された結果も利用することで、これら処理全体によって精度を確保することで、映像に対して計算量を抑制しながらも精度を確保して骨格推定結果を得ることができる。この詳細については以下でさらに説明する。
【0022】
また、
図2の例では、入力映像の各フレームF(t)をその時刻tの順番で処理して骨格推定結果FH(t)を得るようにすることから、入力映像としてその場でリアルタイムに撮影している映像を読み込んでリアルタイムに骨格推定結果を得るようにすることも可能となる。(一方で、リアルタイムではなく既に撮影され保存されている映像を読み込んで骨格推定結果を得ることも可能である。)
【0023】
以下、骨格推定装置10の各部の処理の詳細についてさらに説明する。
【0024】
フレーム配分部1では、入力映像の各時刻t(t=1,2,…)のフレームF(t)について、次の骨格推定部2における処理の仕方を区別するためにIフレームまたはPフレームの区別を付与する。この区別は、
図2で例示したように、Iフレームを所定の一定間隔ごとに時間軸上で間欠的に設け、Iフレームの間に存在する連続フレームを全てPフレームとするようにしてよい。
図2の例では、k+1枚の連続時刻フレームごとの周期単位で、1枚のIフレームと、これに続くk枚のPフレームとを設定する例となっている。例えば、kの値を所定の正整数として設定しておき、フレーム時刻の整数がk+1で割り切れる場合はIフレームとし、割り切れない場合はPフレームとする等により、
図2の設定が可能である。
【0025】
なお、本実施形態では既存の映像符号化手法との類推から便宜上、フレーム配分部1で区別する2種類のフレームをIフレーム(映像符号化の場合、イントラ予測(フレーム内予測)により当該フレームのみを用いて符号化するフレーム)及びPフレーム(映像符号化の場合、フレーム間予測により当該フレーム以外も用いて符号化するフレーム)と称しているが、本実施形態は入力映像に対する映像符号化の態様とは独立に実施可能である。従って例えば単純に、Iフレームを第1種フレーム、Pフレームを第2種フレーム等と称してもよいが、以下でも便宜上の名称としてIフレーム及びPフレームを用いるものとする。
【0026】
フレーム配分部1によるI,Pフレーム区別の追加的な実施形態として、入力映像に対して既存のシーン検出技術を適用し、シーンが切り替わった直後と判定されたフレーム(新しいシーンの最初の時刻のフレーム)に関しては強制的にIフレームであるものとして設定するようにしてもよい。当該強制的に設定されたIフレーム以降については以上と同様に、連続kフレームをPフレームとし、k+1フレームの周期でIフレームを1枚ずつ間欠的に配置してよい。
【0027】
図3は、一実施形態に係る骨格推定部21の詳細として、深層学習ネットワークで骨格推定部21を実現する場合のネットワーク構造例を示す図である。
図3では、
図2で説明した手順(0),(1),(2),…(k)のうち手順(0),(1),(2)を実行する部分のみをそれぞれ
図3の上段、中段、下段の部分に示している。
【0028】
図3では、個別の深層学習ネットワークとして、1つの大規模CNN(Large CNN)ネットワークLG0と、2つの軽量CNN(Light CNN)ネットワークLT1及びLT2と、3つの遷移(Transfer)ネットワークTR1,TR20,TR21と、が示されている。これらのうち、2つの軽量CNNネットワークLT1及びLT2は同一(同一ネットワーク構造及び学習パラメータ)とすることができ、また、3つの遷移ネットワークTR1,TR20,TR21も同一(同一ネットワーク構造及び学習パラメータ)とすることができるが、図示される通り入出力で扱うデータが異なるため、互いに区別した参照符号を付与してある。また、以下でも説明するように、大規模ネットワークLG0と、軽量ネットワークLT1,LT2とは、互いに共通構造(後述する
図4に例示される共通構造)のネットワークであるがその規模(後述する
図7に例示されるようなチャネル幅や解像度による規模)が異なる関係にある(学習パラメータも異なる)ものを利用することができ、軽量ネットワークLT1,LT2は大規模ネットワークLG0の規模を小さくして簡素化(軽量化)したネットワークを用いることができる。
【0029】
以下、
図3のネットワーク構造を有する骨格推定部2が実行する手順(0),(1),(2)についてそれぞれ説明する。
【0030】
<手順(0)> Iフレームである入力フレームF(t)を大規模CNNネットワークLG0で処理することにより、骨格推定結果としてのヒートマップFH(t)を得る。
【0031】
一実施形態では、大規模CNNネットワークLG0(及び後述する手順(1),(2)における軽量CNNネットワークLT1,LT2)として、
図4にそのネットワーク構造を示す前掲の非特許文献2のHRNet(高解像度ネット)を用いることができる。
【0032】
図4では説明欄EXに示すように、左向きの水平方向矢印が畳み込み処理を行うことを、左下向きの矢印がダウンサンプリングを行うことを、左上向きの矢印がアップサンプリングを行うことを、それぞれ示している。また、矢印の矢先部分(出力部分)が複数重複している場合は、対応するデータ(複数のテンソル)の加算を行う。また、矢印の間に記載されているm11等は、当該矢印で示される処理により得られる中間データとしての特徴マップ(テンソル)を表している。
【0033】
HRNetの手法では、
図4に上段部分に示される特徴マップ群m11~m19において高解像度で処理を行い、中段部分に示される特徴マップ群m23~m29において中解像度で処理を行い、下段部分に示される特徴マップ群m37~m39において低解像度で処理を行い、これらピラミッド状の3つの解像度段階で並行して処理を行うことで静止画入力に対して高精度に骨格推定結果を得ることができる。なお、2つ以上の任意の段階数で構成されるこのようなピラミッド状の構造によりHRNetを構成してよく、
図4ではその一例として3段階の場合を示している。
【0034】
HRNet内での処理は以上説明した通りであるが、畳み込み処理、ダウンサンプリング処理、アップサンプリング処理をそれぞれ関数conv(),down(),up()として表記することで部分的に例を示すと以下の通りである。
m11=conv(F(t))
m13=conv(m12)
m23=down(m12)
m19=conv(m18)+up(m28)+up(m38)
FH(t)=conv(m19)
【0035】
<手順(1)> Pフレームである入力フレームF(t+1)と、IフレームF(t)について既に得られている骨格推定結果FH(t)と、の2データを入力として、当該入力フレームF(t+1)の骨格推定結果FH(t+1)を得る。
図3中にも示される通り、この手順(1)は以下の手順(11),(12),(13)として実現することができる。
【0036】
<手順(11)> 入力データの1つであるフレームF(t+1)を軽量CNNネットワークLT1で処理して中間データとしてのヒートマップMH(t+1)を得て、このヒートマップMH(t+1)を差分器D10及び加算器A1へと出力する。
【0037】
<手順(12)> 入力データの1つであるヒートマップFH(t)と、手順(11)で得たヒートマップMH(t+1)と、の差分「FH(t)-MH(t+1)」を差分器D10で求め、この差分「FH(t)-MH(t+1)」を遷移ネットワークTR10で処理して遷移ヒートマップTH(t,t+1)を得て、この遷移ヒートマップTH(t,t+1)を加算器A1へと出力する。
【0038】
<手順(13)> 手順11で得た中間データのヒートマップMH(t+1)と、手順12で得た遷移ヒートマップTH(t,t+1)(同じく、中間データとしてのヒートマップに相当する)と、を加算器A1で加算して、当該入力フレームF(t+1)の骨格推定結果FH(t+1)を得る。
【0039】
図5は、上記の手順(12)で利用する遷移ネットワークTR10(及び前述したこれと同一であって後述する手順(2)で利用される遷移ネットワークTR20,TR21)のネットワーク構造を示す図であり、本実施形態では前掲の非特許文献6のサブネットワークを遷移ネットワークTR10,TR20,TR21として利用する場合を例として、
図5に示している。
【0040】
遷移ネットワークTR10,TR20,TR21ではヒートマップの差分(それぞれFH(t)-MH(t+1), FH(t)-MH(t+2), FH(t+1)-MH(t+2))を入力として、遷移ヒートマップTH(t,t+1),TH(t,t+2),TH(t+1,t+2)をそれぞれ出力する。ここで、遷移ヒートマップTH(a,b)とは、フレームF(b)のヒートマップを、当該フレームF(b)の情報のみではなくフレームF(a)の情報も(当該時刻bよりも過去時刻a(a<b)において既に得られているヒートマップFH(a)の情報を介して)利用することにより、2フレームF(a),F(b)の時間軸情報を利用して推定したものとなる。(なお、当該「遷移ヒートマップ」は既存手法の非特許文献6において「ワープトヒートマップ」(warped heatmap)として説明されるものに該当する。)
【0041】
図5に示されるように、遷移ネットワークTR10,TR20,TR21では以下の処理を行う。差分入力に対して前処理SRとして複数の残差ネット(Stack of ResNet)で処理を行い、出力を5つの拡張2次元畳み込み処理部2D-Conv(d)(拡張(dilation)パラメータd=3,6,12,18,24)へと入力し、中間出力としてのオフセットOFd(d=3,6,12,18,24)をそれぞれ得て、この中間データOFdをさらにオフセットを有するフィルタを用いる5つのdeformable(変形)畳み込み処理部Def-Conv(d)(オフセット量を指定する拡張(dilation)パラメータd=3,6,12,18,24)で処理して得られる5つの出力を加算して、最終的な出力である遷移ヒートマップを得ることができる。
【0042】
<手順(2)> Pフレームである入力フレームF(t+2)と、IフレームF(t)及びPフレームF(t+1)について既に得られている骨格推定結果FH(t)及びFH(t+1)と、の3データを入力として、当該入力フレームF(t+2)の骨格推定結果FH(t+2)を得る。
【0043】
図3中にも示される通り、前述の手順(1)と概ね対応して概ね同様のものとして、この手順(2)は以下の手順(21),(22a),(22b),(23)として実現することができる。(なお、手順(21)は手順(11)に、手順(22a),(22b)は手順(12)に、手順(23)は手順(13)に、概ね対応している。)
【0044】
<手順(21)> 入力データの1つであるフレームF(t+2)を軽量CNNネットワークLT2で処理して中間データとしてのヒートマップMH(t+2)を得て、このヒートマップMH(t+2)を差分器D20、差分器D21及び加算器A2へと出力する。
【0045】
<手順(22a)> 入力データの1つであるヒートマップFH(t)と、手順(21)で得たヒートマップMH(t+2)と、の差分「FH(t)-MH(t+2)」を差分器D20で求め、この差分「FH(t)-MH(t+2)」を遷移ネットワークTR20で処理して遷移ヒートマップTH(t,t+2)を得て、この遷移ヒートマップTH(t,t+2)を加算器A2へと出力する。
【0046】
<手順(22b)> 入力データの1つであるヒートマップFH(t+1)と、手順(21)で得たヒートマップMH(t+2)と、の差分「FH(t+1)-MH(t+2)」を差分器D21で求め、この差分「FH(t+1)-MH(t+2)」を遷移ネットワークTR21で処理して遷移ヒートマップTH(t+1,t+2)を得て、この遷移ヒートマップTH(t+1,t+2)を加算器A2へと出力する。
【0047】
<手順(23)> 手順21で得た中間データのヒートマップMH(t+2)と、手順22a,22bで得た遷移ヒートマップTH(t,t+2)及びTH(t+1,t+2)(同じく、中間データとしてのヒートマップに相当する)と、を加算器A2で加算して、当該入力フレームF(t+2)の骨格推定結果FH(t+2)を得る。
【0048】
なお、
図3では手順(2)までのみを示しているが、既に
図2を参照して説明したように、手順(2)以降の手順(2),(3),…(k)は全て、手順(2)と共通のものとして実施可能である。すなわち、これらはいずれも、n=2,3,…,kとして前述した共通の手順(n)として記述できるものであり、
図6に示すネットワーク構造によって可能である。(この手順(n)は、処理内容自体は手順(2)と同様で入力データがF(t+2),FH(t),FH(t+1)に代えてそれぞれF(t+n),FH(t),FH(t+n-1)となった点のみが相違する(n=2では手順(2)と一致する)ものであるため、重複する説明は省略する。)
【0049】
ここで、以上のように手順(0)においてIフレーム骨格推定部21による処理を行い、手順(1),(2)等においてPフレーム骨格推定部22による処理を行うことで計算量を抑制しつつ精度を確保できる効果の数値例として、Iフレーム骨格推定部21で用いる大規模CNNネットワークLG0と、Pフレーム骨格推定部22で用いる共通の軽量CNNネットワークLT1,LT2等と遷移ネットワークTR10,TR20,TR21等とのパラメータ等設定例(学習パラメータではなく、ネットワーク規模の設定パラメータ例)を紹介する。
【0050】
図7にこのパラメータ等の設定例の1つを示す。この設定では、共通のHRNetを異なる規模で設定しており、
図4のピラミッド構造として
図4のような3段階ではなく4段階の構造を採用した際の、最終出力段の4解像度段階のテンソル(特徴マップ)のチャネル幅を図示される通りに設定している。すなわち、
図4では3解像度段階のテンソルm19,m29,m39であるが、
図7の例では4段階目のテンソルm49に相当するものがさらに存在しており、これら4テンソルm19,m29,m39,m49のチャネル幅が図示される通り大規模CNNでは48,96,192,384であるのに対し、軽量CNNではこれより小さい32,64,128,256へと削減して設定する。チャネル幅はこのように最終出力段のみではなく、途中の部分の各テンソル(特徴マップ)でも同様に、軽量CNNの方を大規模CNNよりも削減して設定する。なお、HRNetに入力する画像の解像度も、当該チャネル幅の設定に応じて、大規模CNNの384x288に対して軽量CNNでは低解像度化した256x192とする。(従って、
図3や
図6の説明では省略したが、軽量CNNであるLT1,LT2,LTn等へ画像を入力する際は、前処理としてこのように低解像度化して解像度をネットワークに合わせるようにする処理も行われる。また、軽量CNNの出力も大規模CNNの出力と比べて低解像度化されているため、Iフレームにおける高解像度の出力と合わせて利用する際は、低解像度側に合わせる処理を行う。例えば
図3の差分器D10では、「高解像度から低解像度化したFH(t)」と「低解像度のMH(t+1)」の差分を求める。)
【0051】
この設定により、大規模CNNネットワークの計算量(約32.9GFOPs)に対して軽量CNNネットワークの計算量(約7.10GFOPs)へと2割程度に抑制することができる。この設定例により、k=15として1枚のIフレームとこれに続く15枚のPフレームを16枚ごとの周期的な処理単位として本実施形態を適用した場合、1フレーム当たりの計算量は以下の通りとなる。
(32.9+15*7.1+2.1+2.1*2*14)/16=12.5GFOPs/フレーム
【0052】
上記の計算量は、従来手法で全てのフレームをIフレーム(1枚のみの静止画入力)として扱って大規模CNNネットワークで高精度に処理した場合の1フレーム当たりの計算量「32.9GFOPs/フレーム」の4割程度であり、本実施形態によって計算量を抑制することが可能である。手順(1),(2),(n)に関して既に説明したように、この際、Pフレームについては高精度なIフレームの推定結果FH(t)等を利用して遷移ネットワークによる遷移ヒートマップを1つまたは2つ求め、軽量CNNネットワークで求めた中間データとしてのヒートマップと加算器によって統合して最終的なヒートマップを得るので、Pフレームについても計算量を抑制しつつ、時間軸情報を利用して推定精度を確保することができる。
【0053】
以上、本発明の実施形態によれば、IフレームF(t)については静止画の手法で高精度に骨格推定し、これよりも後の時刻のPフレームF(t+n)(n>0)については軽量CNNで推定した中間結果MH(t+n)を、最も近い過去で既に推定済みのIフレームの骨格推定結果FH(t)から得られる遷移ヒートマップTH(t,t+n)に対して以下の式(1)のように統合することで、あるいは、n≧2の場合はIフレームの骨格推定結果FH(t)及び直前のPフレームの推定結果FH(t+n-1)からそれぞれ得られる遷移ヒートマップTH(t,t+n), TH(t+n-1,t+n)に対して以下の式(2)のように統合することで、PフレームF(t+n)についても計算量を抑制しながら高精度に骨格推定結果FH(t+n)を得ることができる。
FH(t+n)={MH(t+n)+TH(t,t+n)}/2 …(1)
FH(t+n)={MH(t+n)+TH(t,t+n)+TH(t+n-1,t+n)}/3 …(2)
【0054】
以下、種々の補足例、追加例、代替例などについて説明する。
【0055】
(1) 本発明の実施形態によれば、その応用例として、アバタを介した遠隔コミュニケーションにおける要素処理として、アバタ(対応するユーザの動きや表情をリアルタイムで反映するためのアバタ)の姿勢推定のためのユーザの骨格推定を、計算量を抑制して高精度に行うことが可能となる。これにより、アバタを介して遠隔コミュニケーションをより自然に行うことにより、1箇所の実地にユーザ同士が集まって対面での実コミュニケーションを行わずに済ませることも可能となり、ユーザ移動に必要となるエネルギー資源を節約することで二酸化炭素排出量を抑制できることから、国連が主導する持続可能な開発目標(SDGs)の目標13「気候変動とその影響に立ち向かうため、緊急対策を取る」に貢献することが可能となる。
【0056】
(2) 骨格推定装置10において推定する対象となる骨格関節の種別や骨格モデル等は任意のものを利用してよく、入力フレームF(t)において撮影されている人物(骨格が定義できれば人物に限らず動物やロボット等でもよい)の各種類の骨格についてのヒートマップをテンソル量などの形式で骨格推定結果FH(t)として得ることが可能となる。
【0057】
(3) 手順(1),(2)等に関して前述の式(1),(2)で示したように、Pフレーム骨格推定部22では最後の処理として加算器A1,A2等で加算して統合することによりPフレームについての骨格推定結果を得る。この加算による統合は式(1),(2)で示されるように均一重みづけ平均を用いてもよいし、必ずしも均一ではない重みづけ平均を用いるようにしてもよい。この必ずしも均一ではない重みづけ平均の重みは、骨格関節の種別ごとに異なる重み(事前学習で求めておく重み)を用いてもよい。
【0058】
(4) 別の実施例として、当Pフレーム(例えば、
図2の時刻t+kのフレームF(t+k))の姿勢を推定する時に、最も近い過去にあるIフレーム(例えば、
図2の時刻tのフレームF(t))から直前のPフレーム(例えば、
図2(不図示)の時刻t+k-1)までの全てまたは一部のフレーム(一部のフレームの場合、その中にIフレームが含まれても含まれなくてもよい)を参照して統合するようにしてもよい。例えば、全てを統合する場合は以下の式(3)で表現でき、当該統合するための新たな遷移ヒートマップTH(t+k-2,t+n),…TH(t+k-2,t+n), TH(t+k-2,t+n)等も
図5と同様の遷移ネットワークにより出力するようにすればよい。
FH(t+k)={MH(t+k)+TH(t+k-1,t+k)+TH(t+k-2,t+k)+…
…+TH(t+2,t+k)+TH(t+1,t+k)+TH(t,t+k)}/(k+1) …(3)
【0059】
上記の式(3)では最も近い過去のIフレームF(t)の結果FH(t)を遷移ヒートマップTH(t,t+k)の形で利用しているが、これを用いずに例えば以下の式(4)あるいは式(5)のように、過去のPフレームの結果のみを利用するようにしてもよい。
FH(t+k)={MH(t+k)+TH(t+k-1,t+k)+TH(t+k-2,t+k)+
…+TH(t+2,t+k)+TH(t+1,t+k) }/k …(4)
FH(t+k)={MH(t+k)+TH(t+k-1,t+k)}/2 …(5)
【0060】
すなわち、姿勢推定対象となる当PフレームF(t+k)を推定する際には、当PフレームF(t+k)を軽量CNNで静止画として処理した中間結果MH(t+k)と、当Pフレームよりも過去の少なくとも1つの所定フレーム(Iフレームが含まれてもよいし含まれなくてもよい)についての推定済み結果FH(t+k-L)(L>0)を用いた少なくとも1つの遷移ヒートマップTH(t+k-L,t+k)と、を統合すればよい。
【0061】
(5) 上記(4)に関してさらに、前記参照フレームの数を事前に固定または動的に調整するようにしてもよい。動的に調整する際には、その時点の利用できる計算リソースや必要な認識精度を考慮するようにしてもよい。
【0062】
(6) 骨格推定装置10を構成する深層学習ネットワークのパラメータの学習や、上記(3)で説明した骨格関節種別ごとの重みの学習に関しては、学習データを用いて種々の態様で学習することができる。すなわち、
図3等のネットワーク構造に示される大規模CNNネットワーク、軽量CNNネットワーク、遷移ネットワークの3種類のネットワークのパラメータ及び骨格関節種別ごとの重みに関して、エンドツーエンド(End-to-end)で学習してよい。
【0063】
また、データセットが小さい時、または学習を効率的に行わせたい時には、まず、大規模CNNネットワークと軽量CNNネットワークを独立に学習させて、大規模CNNネットワーク及び軽量CNNネットワークのパラメータ(重み)を固定しながら、遷移ネットワークと関節毎の重みを学習させるようにしてもよい。また、別の実施例として、
図3等の3つの遷移ネットワークTR10,TR20,TR21等のパラメータは別々に学習するようにしてもよい。
【0064】
(7) 大規模CNNネットワークと軽量CNNネットワークとは、
図4のような共通構造ネットワークで例えば
図7のように後者の方を軽量化したものとして設定したが、計算量削減が可能なように後者の方が軽量化されていれば、必ずしも互いに共通構造を有するネットワークではなく、異なる構造を有する深層学習ネットワーク(静止画から姿勢推定を行うという共通処理を行うが、構造が互いに異なるネットワーク)を用いるようにしてもよい。この際、大規模の前者及び/又は軽量の後者に関して、CNN以外の種類のネットワークを用いてもよい。
【0065】
(8)
図8は、一般的なコンピュータ装置70におけるハードウェア構成の例を示す図である。骨格推定装置10は、このような構成を有する1台以上のコンピュータ装置70として実現可能である。なお、2台以上のコンピュータ装置70で骨格推定装置10を実現する場合、ネットワーク経由で処理に必要な情報の送受を行うようにしてよい。コンピュータ装置70は、所定命令を実行するCPU(中央演算装置)71、CPU71の実行命令の一部又は全部をCPU71に代わって又はCPU71と連携して実行する専用プロセッサとしてのGPU(グラフィックス演算装置)72、CPU71(及びGPU72)にワークエリアを提供する主記憶装置としてのRAM73、補助記憶装置としてのROM74、通信インタフェース75、ディスプレイ76、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース77、カメラ78と、これらの間でデータを授受するためのバスBSと、を備える。
【0066】
骨格推定装置10の各機能部は、各部の機能に対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又はGPU72によって実現することができる。なお、CPU71及びGPU72は共に、演算装置(プロセッサ)の一種である。ここで、表示関連の処理が行われる場合にはさらに、ディスプレイ76が連動して動作し、データ送受信に関する通信関連の処理が行われる場合にはさらに通信インタフェース75が連動して動作する。骨格推定装置10による処理結果等はディスプレイ76で表示して出力してよい。骨格推定装置10への入力として用いる映像の全部又は一部をカメラ78で撮影して得るようにしてもよい。
【符号の説明】
【0067】
10…骨格推定装置、1…フレーム配分部、2…骨格推定部、21…Iフレーム骨格推定部、22…Pフレーム骨格推定部