(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-27
(45)【発行日】2024-06-04
(54)【発明の名称】骨格情報処理装置及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240528BHJP
【FI】
G06T7/00 350B
G06T7/00 660B
(21)【出願番号】P 2020182351
(22)【出願日】2020-10-30
【審査請求日】2023-03-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】徐 建鋒
(72)【発明者】
【氏名】田坂 和之
【審査官】佐藤 実
(56)【参考文献】
【文献】特開2002-123834(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
映像における対象フレームより
人物の骨格に関連する動きを推定する推定部と、
前記推定された動きがより大きいと判定される場合には前記対象フレームの周辺フレームからフレーム時間間隔がより小さくなる傾向を有するようにして、前記推定された動きがより小さいと判定される場合には前記対象フレームの周辺フレームからフレーム時間間隔がより大きくなる傾向を有するようにして、映像上の時間軸情報を考慮して前記対象フレームから骨格抽出を行うためのフレーム群を周辺フレームから選別する選別部と、を備え
、
前記推定部では、前記対象フレームと当該対象フレームとは別の別フレームとに対してそれぞれ骨格抽出として骨格を構成する各関節の抽出を行い、当該対象フレームにおける骨格抽出結果と当該別フレームにおける骨格抽出結果との間の変化に基づいて、前記対象フレームの動きを推定することを特徴とする骨格情報処理装置。
【請求項2】
前記推定部は、
深層学習ネットワークとして構成される第3ネットワークにより、前記対象フレームと、前記映像における前記対象フレームとは別の別フレームと、に対してそれぞれ
静止画としての関節信頼度マップであるヒートマップを推定し、
深層学習ネットワークとして構成される第4ネットワークにより、前記対象フレーム及び前記別フレームに対して
それぞれ推定された
対象時刻(t)及び別時刻(i)における2つのヒートマップを入力として、前記別フレームに対する1つのワープトヒートマップを
、前記対象時刻(t)と前記別時刻(i)との間での変動を考慮したうえでの前記対象時刻(t)に対応する関節信頼度マップとして推定し、
前記別フレームに対して
前記別時刻(i)に対応するものとして推定されたヒートマップと、前記別フレームに対して
前記対象時刻(t)に対応するものとして推定されたワープトヒートマップと、の間の動きとして、前記対象フレームにおける動きを推定することを特徴とする請求項
1に記載の骨格情報処理装置。
【請求項3】
前記選別されたフレーム群を用いて、時間軸情報を考慮して、前記対象フレームに対する骨格抽出を行う抽出部をさらに備えることを特徴とする請求項
2に記載の骨格情報処理装置。
【請求項4】
前記抽出部は、
前記フレーム群の各フレームより、静止画としての関節信頼度マップであるヒートマップを深層学習ネットワークにより推定する第1ネットワークと、
前記フレーム群の各フレームについて前記第1ネットワークにより推定されたヒートマップ(PH(i))における、前記対象フレームについて前記第1ネットワークにより推定されたヒートマップ(PH(t))からの変形を考慮することで、前記フレーム群の各フレームに対して時間軸情報を考慮した前記対象フレームの関節信頼度マップであるワープトヒートマップ(WH(i))を深層学習により推定する第2ネットワークと、を備えることを特徴とする請求項
3に記載の骨格情報処理装置。
【請求項5】
前記抽出部はさらに、
前記フレーム群の各フレームについて前記第2ネットワークにより推定されたワープトヒートマップ(WH(i))を統合した統合ヒートマップ(FH)を得て、当該統合ヒートマップを参照することにより、前記対象フレームから骨格抽出を行うことを特徴とする請求項
4に記載の骨格情報処理装置。
【請求項6】
前記第1ネットワークと前記第3ネットワークは共通構造であり、前記第2ネットワークと前記第4ネットワークとは共通構造であることを特徴とする請求項4または5に記載の骨格情報処理装置。
【請求項7】
前記選別部では、前記対象フレームと前記別フレームとを少なくとも選別し、周辺フレームの中からさらに、前記対象フレームから所定間隔を有するフレームを選別し、当該所定間隔は、前記推定された動きが小さいほど大きく設定されていることを特徴とする請求項
1ないし6のいずれかに記載の骨格情報処理装置。
【請求項8】
前記選別部では、前記周辺フレームの中から前記所定間隔を有するフレームを選別した後に、選別されたフレーム総数が所定数に到達しない場合は、当該所定数に到達するように、前記周辺フレームの中からランダムに、まだ選別されていないフレームを選別することを特徴とする請求項
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の技術では、複数枚のフレームを入力として、あるフレームで見えない関節でも別のフレームで見えることにより推定できることや、あるいは、あるフレームでボケている関節でも別のフレームではボケていないことにより推定できることが起こりうることを利用して、精度を向上させている。
【0007】
非特許文献3では具体的に、
図1に示すような深層学習によるネットワーク構造により骨格抽出を行っている。
図1の従来構成ネットワーク(NW)200は、第1のネットワークNW1、第2のネットワークNW2及び統合ユニットFUで構成され、この順番で処理を行うことにより、入力フレーム映像F(時刻tを中心とした5つの時刻t-2,t-1,t,t+1,t+2のフレーム群で構成される)より、中心時刻tにおける各関節のヒートマップを統合ヒートマップFHとして出力するものである。
【0008】
従来構成NW200では具体的に、入力フレーム映像Fの各フレームに対して、第1のネットワークNW1において非特許文献2のHRNetである高解像度ネットHRを適用することで、映像F内の静止画としての各フレームF(i)(i=t-2,t-1,t,t+1,t+2)に関する各関節のヒートマップPH={PH(i)|i=t-2,t-1,t,t+1,t+2}を生成する。次いで、第2のネットワークNW2において、中心時刻tのフレームの関節位置に合わせて変形させるワープトヒートマップ(Warped heatmap)WH={WH(i)|i=t-2,t-1,t,t+1,t+2}をポーズワーパーPW(PoseWarper)で生成する。最後に、統合ユニットFUにおいて、中心時刻tのフレームを含む全部で5時刻分のワープトヒートマップWHを統合し、1つの統合ヒートマップFHを生成する。具体的に、
図1の従来構成NW200の統合ユニットFUでは、以下の式(2)の重みづけ平均により、5時刻分のワープトヒートマップWHを統合し、統合ヒートマップFHを生成する。
【0009】
【0010】
式(2)にて、右辺のw(i)は第i(i=t-2,t-1,t,t+1,t+2)時刻のフレームに対する重みであり、Hi(x,y)は統合対象となる第iフレームのワープトヒートマップWH(i)であり、左辺のH(x,y)は統合ヒートマップFHである。従来技術(非特許文献3)では、式(2)の重みw(i) (i=t-2,t-1,t,t+1,t+2)として以下の式(3)に示されるように、固定重みを設定して利用している。
【0011】
【0012】
以上のようにして生成される統合ヒートマップFHは、中心時刻tのヒートマップを時間軸情報も考慮して推定したものに相当し、統合ヒートマップFHを参照して前述の式(1A),(1B)により、中心時刻tのフレームの各関節位置及びその信頼度を推定することができる。
【先行技術文献】
【非特許文献】
【0013】
【文献】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.
【文献】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.
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかしながら、以上の非特許文献3等のような、映像の時間軸情報を活用して骨格抽出の精度向上を図る従来技術では、時間軸情報の活用が必ずしも十分ではないという課題があった。
【0015】
例えば、映像Fにおける骨格抽出対象となる人物等に関しては、異なる映像Fごとに骨格に関連する動きのスピードが大きかったり小さかったりすることが想定されるが、動きのスピードが変わった場合においても、非特許文献3等では利用する複数フレームが固定されていた。具体的に、非特許文献3では映像F内の動きのスピードの大小によらず常に、骨格抽出対象となるフレーム(時刻tのフレーム)の周囲に位置する所定数(例えば5)の連続フレームを固定的に利用していた。
【0016】
ここで、遅い動きの場合は隣のフレームの情報がほぼ変わらないので、少し離れたフレームを利用した方が新しい情報を取れることとなり、骨格抽出の精度向上が期待できる。逆に、速い動きの場合には、離れたフレームからは相関が薄い情報しか取れないため、離れたフレームではなく、近くのフレーム(例えば隣のフレーム)を利用すべきだと考えられる。しかしながら、非特許文献3等の従来技術では、映像Fにおける動きのスピードの大小によらず、どのような動きがあっても常に固定されたフレームを利用していることから、この固定されたフレームを用いて骨格抽出する際の精度に改善の余地があった。
【0017】
上記従来技術の課題に鑑み、本発明は、映像から骨格抽出精度のよいフレームを選択できる骨格情報処理装置及びプログラムを提供することを第1の目的とする。また、本発明は、当該選択されたフレームを利用して精度よく骨格抽出できる骨格情報処理装置及びプログラムを提供することを第2の目的とする。
【課題を解決するための手段】
【0018】
上記目的を達成するため、本発明は骨格情報処理装置であって、映像における対象フレームより動きを推定する推定部と、前記推定された動きがより大きいと判定される場合には前記対象フレームの周辺フレームからフレーム時間間隔がより小さくなる傾向を有するようにして、前記推定された動きがより小さいと判定される場合には前記対象フレームの周辺フレームからフレーム時間間隔がより大きくなる傾向を有するようにして、映像上の時間軸情報を考慮して前記対象フレームから骨格抽出を行うためのフレーム群を周辺フレームから選別する選別部と、を備えることを第1の特徴とする。また、前記選別されたフレーム群より、時間軸情報を考慮して、前記対象フレームから骨格抽出を行う抽出部をさらに備える骨格情報処理装置であることを第2の特徴とする。また、コンピュータを前記骨格情報処理装置として機能させるプログラムであることを特徴とする。
【発明の効果】
【0019】
前記第1の特徴によれば、対象フレームの動きの大小に応じて適応的に設定される時間間隔でフレームを選別することにより、映像から骨格抽出精度のよいフレームを選別でき、前記第1の目的が達成される。前記第2の特徴よれば、当該選別されたフレームに対して骨格抽出を行うことにより、精度よく骨格抽出結果を得ることができ、前記第2の目的が達成される。
【図面の簡単な説明】
【0020】
【
図1】映像より骨格抽出を行う従来構成ネットワークの構造を示す図である。
【
図2】一実施形態に係る骨格情報処理装置の機能ブロック図である。
【
図3】一実施形態に係る骨格情報処理装置の動作のフローチャートである。
【
図4】一実施形態に係る推定部での動き推定処理に関する機能ブロック図である。
【
図6】一実施形態に係る抽出部の構成を示す図である。
【
図7】一般的なコンピュータにおけるハードウェア構成例を示す図である。
【発明を実施するための形態】
【0021】
図2は、一実施形態に係る骨格情報処理装置の機能ブロック図であり、図示するように骨格情報処理装置10は、推定部1、選別部2及び抽出部3を備える。骨格情報処理装置10の全体的な処理概要は次の通りである。
【0022】
入力として、骨格情報処理装置10は映像Fにおける骨格抽出の対象となるある時刻t(フレーム番号としての時刻t=1,2,3,…)のフレームF(t)と、その周辺フレーム群とを推定部1及び選別部2において読み込む。(この入力映像Fは、骨格抽出の対象となる人物等が撮影等された動画として用意しておく。)推定部1ではフレームF(t)における動きを推定し、推定結果を選別部2へと出力する。選別部2では、推定部1で推定された動きがより大きい場合はフレーム間の時間間隔がより小さくなる傾向を有するようにして、(従って同様に、推定された動きがより小さい場合はフレーム間の時間間隔がより大きくなる傾向を有するようにして、)入力された周辺フレーム群の中から、フレームF(t)から骨格抽出するのに用いるためのフレームを選別し、フレームF(t)及び当該選別されたフレームを抽出部3へと出力する。抽出部3は、選別部2より当該得られたフレームF(t)及び選別されたフレームが映像上の連続フレームに該当するものとみなして非特許文献3の手法を適用することにより、フレームF(t)より統合ヒートマップFHを抽出したうえでフレームF(t)における骨格抽出結果を出力する。
【0023】
以下、骨格情報処理装置10の処理内容の詳細を説明する。
図3は、一実施形態に係る骨格情報処理装置10の動作のフローチャートであり、その各ステップS1~S6は以下の通りである。
【0024】
ステップS1では骨格情報処理装置10への入力として、映像F内における骨格抽出の対象となるフレームF(t)と、その周辺フレーム群と、を推定部1及び選別部2において読み込んでから、ステップS2へと進む。ここで、フレームF(t)の周辺フレーム群は、例えばその前後の2N(N≧1)枚のフレームF(t-N),F(t-N+1),…,F(t-1),F(t+1),…,F(t+N-1),F(t+N)といったように、対象となるフレームF(t)に応じた所定のものを映像F内から読み込むように予め設定しておけばよい。なお、フレームF(t)の時間位置tは、周辺フレーム群の時間範囲の内部ではなく、端であってもよい。例えば周辺フレーム群として2N枚の、対象フレームF(t)よりも過去側のフレームF(t-1),F(t-2),…,F(t-2N)のみを設定してもよいし、この逆に未来側のフレームF(t+1),F(t+2),…,F(t+2N)のみを設定してもよい。
【0025】
ステップS2では、推定部1が、入力された周辺フレーム群の中から対象フレームF(t)の動きを推定するために用いる別のフレームF(i)を選択してから、ステップS3へと進む。この別のフレームF(i)は例えば、対象フレームF(t)の1つ前の過去フレームF(t-1)または1つ後の未来フレームF(t+1)等のように、対象フレームF(t)に応じた所定フレームとして予め設定しておけばよい。
【0026】
ステップS3では、推定部1が、入力された対象フレームF(t)と、自身がステップS2で選択した別フレームF(i)と、を用いて、フレームF(t)及びF(i)の間での動きとしてフレームF(t)の動きを推定してから、ステップS4へと進む。
【0027】
図4は、一実施形態に係る推定部1での動き推定処理(当該ステップS3での処理)に関する機能ブロック図である。推定部1は、高解像度ネットHR、ポーズワーパーPW及び動き推定部11を備え、この順番で処理を行うことにより、入力されたフレームF(t),F(i)より対象フレームF(t)における動き推定結果を出力する。
【0028】
なお、共通の符号を付していることからも示される通り、推定部1における高解像度ネットHR及びポーズワーパーPWはそれぞれ、
図1の従来構成NW200における第1のネットワークNW1内の各々の高解像度ネットHR及び第2のネットワークNW2内の各々のポーズワーパーPWと同一のものとすることができる。すなわち、深層学習ネットワークとして構成されるネットワーク構造及び当該構造において用いる学習されたパラメータとして互いに共通のものを用いて、
図4及び
図1におけるそれぞれの高解像度ネットHR及びポーズワーパーPWを構成してよい。
【0029】
換言すれば、
図1の従来構成NW200(このうち、5つのフレームF(i)(i=t-2~t+2)のそれぞれを処理する共通構成)と
図4の推定部1とは、前段側の構成は共通であり、後段側の構成が従来構成NW200では統合ユニットFUであるのに対して推定部1では動き推定部11である点で相違している。以下、
図4の各部を説明する。
【0030】
高解像度ネットHRは、選択された別フレームF(i)を静止画として読み込み、そのヒートマップPH(i)を生成してポーズワーパーPW及び動き推定部11へと出力する。高解像度ネットHRはまた、同様の処理によって、対象フレームF(t)を静止画として読み込み、そのヒートマップPH(t)を生成してポーズワーパーPWへと出力する。
【0031】
このヒートマップ(ポーズヒートマップ)PH(i),PH(t)のそれぞれは前述したとおり、骨格抽出の対象として予め設定されている各関節についてそれぞれ定義されるものであり、骨格抽出対象としての静止画フレームF(i),F(t)のそれぞれの各画素位置(x,y)において、当該位置(x,y)が当該種類の関節に該当する信頼度をマップとして与えたものである。
【0032】
既に説明している通り、高解像度ネットHRには、非特許文献2,3で利用されているHRNetと同様の構成(ネットワーク構造及び学習パラメータ)の深層学習ネットワークを用いることができる。
【0033】
ポーズワーパーPWは、高解像度ネットHRより出力された2つのヒートマップ(PH(i),PH(t)を読み込み、これら2つのヒートマップの対比によるヒートマップ間での変動に関する推定処理も行ったものとして、別時刻iから対象時刻tへの変形を考慮したヒートマップとしての対象時刻tでのワープトヒートマップWH(i)を出力する。(従って、ワープトヒートマップWH(i)の記号表記に関して、より正確には例えばWH(i→t)のように表記することも可能であるが、簡略化してWH(i)と表記するものとする。)
【0034】
すなわち、ワープトヒートマップWH(i)とは、対象時刻tでのヒートマップを、時刻iでのヒートマップからの変形も考慮して推定したものに相当する。(高解像度ネットHRでは個別時刻t,i等での静止画としての情報のみを独立に考慮してヒートマップを得ているのに対し、ポーズワーパーPWでは、時刻t,i間での変形も考慮して、時間軸情報を考慮したヒートマップを得る。)
【0035】
なお、
図1の第2のネットワークNW2内における各ポーズワーパーPWも、
図4に示されるように、2つのヒートマップPH(i),PH(t)(
図1ではi=t-2~t+2)を読み込み、対象時刻tへの変化を考慮したヒートマップとしてのワープトヒートマップWH(i)を出力するものであるが、読み込む2つのヒートマップのうち後者のPH(t)を読み込む流れを表す矢印は、図面の煩雑化を避ける観点から
図1においては描くのを省略している。
【0036】
既に説明している通り、
図4のポーズワーパーPWには、非特許文献3(
図1)で利用されているポーズワーパーPWと同様の構成(ネットワーク構造及び学習パラメータ)の深層学習ネットワークを用いることができる。
【0037】
動き推定部11は、対象フレームF(t)の別フレームF(i)に関して高解像度ネットHRが出力したヒートマップPH(i)(時刻iでの静止画情報によるヒートマップPH(i))と、ポーズワーパーPWが出力したワープトヒートマップWH(i)(時刻i,t間での変動を考慮したうえでの、時刻tに対応するワープトヒートマップWH(i)(=WH(i→t)))と、の2つを入力とし、この2つを対比することにより、
図3のステップS3での出力として対象フレームF(t)の動き推定結果を出力する。
【0038】
具体的に、動き推定部11では、各関節k(kは関節の識別子であり、k=1,2,…,Kとし、Kは予め設定されている関節の総数)についてそれぞれ与えられているヒートマップPH(i)=PH(i)k及びワープトヒートマップWH(i)=WH(i)kより、当該関節kの位置PPk,WPkを以下の式(4)で推定し、2つのマップPH(i)k及びWH(i)kの間での当該関節kの移動距離dkを以下の式(5)で算出する。
【0039】
【0040】
式(4)は、前述の式(1A),(1B)と同様の信頼度が最大値となる位置を関節位置として推定する処理を、2つのマップPH(i)k及びWH(i)kについてそれぞれ行うものである。すなわち、式(1A),(1B)と同様に(x,y)は当該マップPH(i)k及びWH(i)k内の座標であり、PH(i)k(x,y)及びWH(i)k(x,y)は当該マップの位置(x,y)における値(関節kの信頼度の値)であり、W,Hは当該マップの横、縦のサイズである。式(4)により2つのマップPH(i)k及びWH(i)k内でそれぞれ推定された関節位置PPk,WPk(共に(x,y)座標位置として求まっている)を用いて式(5)により、これら2点の間の距離dkとして、関節kの2つのマップPH(i)k及びWH(i)kの間での移動距離を求めることができる。
【0041】
なお、式(4)の少なくとも一方において、関節位置PPk,WPkが推定された際の最大信頼度の値が閾値判定で小さいと判定される場合には、当該関節kが対応フレーム画像(フレームF(i),F(t))においてボケていたりオクルージョン(遮蔽)が発生して見えない状態にあったりすることが想定されるので、当該関節kの検出に失敗したものと判断し、式(5)の距離dkの算出を省略するようにしてもよい。
【0042】
K個の関節のうちK'個(K'≦K)の関節が検出に成功したものとし、動き推定部11では最後にこれらの平均距離davgとして式(6)により、フレームF(t),F(i)間での動き推定結果を得ることができる。Aは検出に成功した関節k(関節の識別子k)の集合である。
【0043】
【0044】
なお、検出に成功した関節の数K'が閾値判定で小さいと判定される場合には、フレームF(t),F(i)間での動き推定に関して精度が不足しているものとして、式(6)の平均距離davgではなく、動き推定に失敗した旨を動き推定部11での動き推定結果として得るようにしてもよい。K'の判定閾値をKとすることにより、K'=Kの場合のみ(すなわち、全てのK個の関節について検出成功した場合のみ)に、動き推定が成功したものとし、1つでも検出失敗している関節が存在する場合には動き推定に失敗しているものとしてもよい。
【0045】
以上、一実施形態では
図4のように構成される推定部1により、
図3のステップS3における動き推定を行うことができる。以下、
図3の各ステップの説明に戻る。
【0046】
ステップS4では、推定部1がステップS3において動きを適切に推定できていたか否かを判定し、適切に推定できていれば式(6)の平均移動距離davgを動き推定結果として選別部2へと出力してからステップS5へと進み、適切に推定できていなければ、(すなわち、検出に成功した関節の個数K'が少ないと閾値判定された場合には、)ステップS2に戻る。
【0047】
ステップS4からステップS2に戻った場合には、過去時点でのステップS2で選択されていない所定のフレームF(i)(すなわち、対象フレームF(t)との間で関節検出に基づく動き検出に失敗していないフレームF(i))を、設定されている周辺フレーム群の中から新たに選択するようにすればよい。ステップS2において当該順番に選択するフレームF(i)は例えば以下の例[1]~[3]等のように、予めルールベース等で決めておけばよい。例[1]では対象フレームF(t)に近い側から過去フレーム側に1つずつ離れて選択し、例[2]では対象フレームF(t)に近い側から未来フレーム側に1つずつ離れて選択し、例[3]では対象フレームF(t)に近い側から過去フレーム側及び未来フレーム側に交互に1つずつ離れて選択している。
F(t-1)→F(t-2)→F(t-3)→F(t-4)→… 例[1]
F(t+1)→F(t+2)→F(t+3)→F(t+4)→… 例[2]
F(t-1)→F(t+1)→F(t-2)→F(t+2)→… 例[3]
【0048】
ステップS5では、ステップS4での推定部1での動き検出結果として平均移動距離davgを得た選別部2が、入力された対象フレームF(t)及びその周辺フレーム群の中から、当該距離dagvに応じて対象フレームF(t)から骨格抽出するためのフレーム群を選別し、選別したフレーム群を抽出部3へと出力してから、ステップS6へと進む。一実施形態では、選別部2では以下の手順1~4(なお、手順4は該当する場合のみに適用されるオプションとなる)に沿ってフレームを選別することができる。
【0049】
(手順1) まず、対象フレームF(t)と、動き推定に成功した別フレームF(i)(
図3のステップS3で動き推定に利用し、これに次ぐステップS4で適切に動き推定できたと判定されたフレームF(i))を選別する。
(手順2) 次いで、検出した動きの強弱(すなわち、平均移動距離d
agvの大小)により、対象フレームF(t)からの間隔を決める。間隔とはフレーム番号の差分である。例えば、以下の式(7)による場合分けで間隔Kを算出する。
【0050】
【0051】
式(7)は、3つの閾値TH1<TH2<TH3により動きの強弱dagvを4段階に場合分けし、動きが大きいほど間隔Kを狭くし、動きが小さいほど間隔Kを広くする方針により間隔Kを設定する例であるが、同様の方針であれば場合分けの段階数は4段階に限らず、2段階以上の任意数に設定してもよい。
【0052】
(手順3) 対象フレームF(t)に近いフレームであって予め設定されている周辺フレーム群内から手順2で決定した間隔Kに従い、所定数のフレームを選別する。この際、手順1で既に選別済みであるフレームF(i)が再度選別された場合には、既に選別済みであるものとしてスキップし、所定数にはカウントしないようにすればよい。また、
図3のステップS2~S4において選択したが動き推定に失敗したと判定されたフレームF(i)が当該手順3において選別された場合、不適切なフレームであるものとしてスキップし、所定数にはカウントしないようにしてよい。なお、対象フレームF(t)への近さ(距離L)が同じ未来フレームF(t+L)及び過去フレームF(t-L)の両方が選別対象として存在する場合、いずれを先に選別するかはルールベースで設定しておけばよい。
【0053】
(手順4) 手順3で間隔Kに従って対象フレームF(t)に近いフレームから周辺フレーム群内のフレームを可能な限り選別したが、選別された総数が所定数に到達しなかった場合には追加処理として、所定数に到達するまで周辺フレーム群内の中からランダムに選別する。この際も、
図3のステップS2~S4において動き推定に失敗したフレームF(i)を不適切なフレームとしてランダムに選別されうる対象から除外するようにしてもよい。
【0054】
図5は、選別部2による選別の例を示す図であり、映像Fより対象フレームF(t)と、その前後の8フレームで構成される周辺フレーム群とを読み込み、フレームF(t),F(t-1)間で動き推定に成功した際に、選別部2で未来側から順番に、フレームF(x),F(y),F(t),F(t-1),F(z)が選別フレーム群SFとして選別されている。例えば間隔K=2の場合、x=t+4,y=t+2,z=t-2として選別フレーム群SFが構成されうる。また例えば間隔K=1の場合、x=t+2,y=t+1,z=t-2として、選別フレーム群SFが構成されうる。
【0055】
ステップS6では、ステップS5で選別部2により選別されたフレーム群を入力として、抽出部3が対象フレームF(t)における骨格抽出を行ってその結果を出力し、
図3のフローは終了する。
【0056】
図6は一実施形態に係る抽出部3の構成として、非特許文献3と同様の手法を用いて、本実施形態で選別部2に選別されたフレーム群を入力として用いて対象フレームF(t)における骨格抽出を行う構成を示す図である。抽出部3はマップ算出部31及び骨格抽出部32を備える。マップ算出部31は
図1の従来構成NW200と同様の構成を有し、選別されたフレーム群を読み込んで対象フレームF(t)についての統合ヒートマップFHを生成し、骨格抽出部32へと出力する。骨格抽出部32は当該生成された統合ヒートマップFH(関節k=1,2,…,Kごとの統合ヒートマップFH
k)を参照して前述の式(1A),(1B)により、対象フレームF(t)における各関節kの位置やその信頼度を骨格抽出結果として出力する。
【0057】
なお、
図1の従来構成NW200は5時刻分のフレーム群を読み込む場合の例として示されているが、マップ算出部31はこれと同様の構成を、入力された選別フレーム群の数だけ有するものとなる。また、
図1の従来構成NW200では入力フレーム群の中の時間順で中央の位置に対象フレームF(t)が存在しているが、マップ算出部31では必ずしも、選別された結果としての入力フレーム群の中央の位置に対象フレームF(t)が存在していなくともよい。従来構成NW200と同様にマップ算出部31の最終段として統合ユニットFUを適用する際の重みは、式(3)のように、対象フレームF(t)に近い位置ほど大きな固定重みを用いるようにしてもよいし、対応する関節信頼度などに応じて可変となる重みを用いるようにしてもよい。
【0058】
以上、本実施形態によれば、対象フレームF(t)の動きの強弱により、複数フレームの中から適応的にフレームを選別する仕組みを導入し、時間軸情報を考慮して映像から骨格抽出を行う際の精度を高めることが可能となる。以下、種々の補足的事項や追加的事項に関して説明する。
【0059】
(1) 推定部1の構成として
図4のように、非特許文献3とネットワーク構造を部分的に共有する構成を利用し、且つ、抽出部3の構成として
図6(及び
図1)で示すように非特許文献3と同様の構成を利用する場合、本発明では、非特許文献3の手法に対する前処理として、非特許文献3とほぼ同等の計算負荷により、計算負荷を顕著に増大させることなく、骨格抽出の精度を向上させることが可能となる。
【0060】
この場合例えば、推定部1において例えば対象フレームF(t)とその1つ過去のフレームF(t-1)において適切に動き推定がなされ、
図5に例示されるようにフレームF(t),F(t-1)以外に3つのフレームF(x),F(y),F(z)が選別されたとする場合には、抽出部3のマップ算出部31において
図1のネットワーク構成(第1のネットワークNW1及び第2のネットワークNW2)により処理を行う対象は、追加で選別された3つのフレームF(x),F(y),F(z)のみとすることで、計算量の増加を防ぐことができる。すなわち、フレームF(t),F(t-1)に関しては
図4のように構成される推定部1のネットワーク構造によりヒートマップPH(i)及びワープトヒートマップWH(i)(i=t,t-1)が既に算出済みであるため、これを記憶しておくことにより、従来構成NW200として構成される抽出部3では、これらフレームF(t),F(t-1)についての2つのマップPH(i),WH(i)(i=t,t-1)を再度算出することを省略してよい。
【0061】
(2) 推定部1では対象フレームF(t)とその周辺の別フレームF(i)とから、対象フレームF(t)における動きを推定するが、当該推定する手法として、
図4に示したような非特許文献3等と(部分的に)共通構造を有する深層学習ネットワークを利用するのではなく、その他の既存手法で動き推定を行ってもよい。例えば、フレームF(t),F(i)間でのオプティカルフローを算出して、オプティカルフローのベクトルの大きさの平均値等として、前述の平均移動距離d
avgに相当する量を算出するようにしてもよい。また、フレームF(t),F(i)間で領域ごとに動きベクトル(例えば、動画像圧縮符号化における動き予測の際の動きベクトル)を求め、その大きさの平均値等として、前述の平均移動距離d
avgに相当する量を算出するようにしてもよい。
【0062】
(3) 推定部1では対象フレームF(t)とその周辺の1つの別フレームF(i)とから対象フレームF(t)における動きを推定するとしたが、2つ以上の別フレームから対象フレームF(t)の動きを推定するようにしてもよい。例えば2つの別フレームF(i),F(j)(i≠j)においてそれぞれ、1つの別フレームの場合と同様に動きdavgをdavg (i), davg (j)として推定し、その平均値として動きdavg={davg(i)+davg (j)}/2を推定してもよい。この際、単純平均ではなく、推定精度に応じた重みづけ和を用いるようにしてもよい。ここで、推定精度は、各関節kの位置を与えた最大信頼度の値の関節kでの平均値等として数値化すればよい。
【0063】
(4) 推定部1では対象フレームF(t)とその周辺の1つの別フレームF(i)とから対象フレームF(t)における動きを推定し、当該推定する手法として非特許文献3と部分的に共通のネットワーク構造(
図4の構造)を利用するものとしたが、別の手法を用いてもよい。例えば、非特許文献3の手法に限定されない、任意の骨格抽出についての既存手法(時間軸情報を考慮する手法及び考慮しない手法のいずれでもよい)を用いて対象フレームF(t)と別フレームF(i)とについてそれぞれ骨格抽出を行い、対象フレームF(t)の骨格抽出結果と別フレームF(i)の骨格抽出結果との間の変化(抽出された骨格関節位置の変化)が大きいほど、対象フレームの動きが大きいものとして、動き推定を行うようにしてもよい。
【0064】
(5)
図3のステップS4において、適切な動き推定ができなかったと判断された回数が所定の上限数に到達した場合、対象フレームF(t)に対して選択される別フレームF(i)ではなく、対象フレームF(t)自体がボケやオクルージョン等の発生を原因として、骨格抽出やこれに基づく動き推定に不適切な状態にあることが想定される。従って、このように上限数に到達した場合には、対象フレームF(t)が不適切である可能性がある旨を出力して、骨格情報処理装置10による当該フレームF(t)に対する処理を終えるようにしてもよい。
【0065】
(6)
図7は、一般的なコンピュータ装置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…選別部、3…抽出部