(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-25
(45)【発行日】2022-02-15
(54)【発明の名称】キーポイントデータに関する加工装置、方法及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20220207BHJP
【FI】
G06T7/00 C
G06T7/00 660B
(21)【出願番号】P 2017225709
(22)【出願日】2017-11-24
【審査請求日】2019-12-10
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】徐 建鋒
(72)【発明者】
【氏名】田坂 和之
(72)【発明者】
【氏名】柳原 広昌
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】特開2007-072620(JP,A)
【文献】国際公開第2012/046392(WO,A3)
【文献】国際公開第2015/029982(WO,A3)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
(57)【特許請求の範囲】
【請求項1】
全身またはその一部分から抽出される二次元キーポイントデータに幾何学変換をそれぞれ適用して複数の加工データを得る候補生成部と、
複数の三次元キーポイントデータを所定姿勢において二次元マッピングして得られた複数の参照用二次元キーポイントデータと、前記得た複数の加工データと、の間で最も類似するものを探索し、当該最も類似する加工データ及び/又は当該加工データに適用された幾何学変換の情報を出力する探索部と、を備え、
前記複数の三次元キーポイントデータを所定姿勢において二次元マッピングすることで前記複数の参照用二次元キーポイントデータを得る参照対象生成部をさらに備え、
前記参照対象生成部は、前記複数の三次元キーポイントデータのそれぞれにつき、複数パラメータのそれぞれで特定される透視投影変換を行って参照用二次元キーポイントデータの複数候補を得て、当該複数候補の中から、複数の所定のキーポイントデータを頂点として形成される多角形の面積が最大となるものに基づいて、参照用二次元キーポイントデータを得ることを特徴とするキーポイントデータに関する加工装置。
【請求項2】
前記参照対象生成部は、前記多角形の面積が最大となるものにおける透視投影変換のパラメータを正面に該当するものとして特定し、当該特定した正面に基づいて前記二次元マッピングする所定姿勢を定めることを特徴とする請求項
1に記載のキーポイントデータに関する加工装置。
【請求項3】
前記所定姿勢は前記特定した正面におけるものである、または当該正面から傾いたものであることを特徴とする請求項
2に記載のキーポイントデータに関する加工装置。
【請求項4】
前記候補生成部では、前記幾何学変換として所定パラメータで特定されるアフィン変換又はホモグラフィ変換をそれぞれ適用して前記複数の加工データを得ることを特徴とする請求項1ないし
3のいずれかに記載のキーポイントデータに関する加工装置。
【請求項5】
前記候補生成部では、幾何学変換を適用してさらに、二次元キーポイントデータのうちの所定点を座標基準点として設定し、二次元キーポイントデータのうち所定の2点間の長さが基準値となるようスケール変換したものとして前記複数の加工データを得ることを特徴とする請求項1ないし
4のいずれかに記載のキーポイントデータに関する加工装置。
【請求項6】
前記複数の参照用二次元キーポイントデータのそれぞれは、二次元キーポイントデータのうちの所定点を座標基準点として設定し、二次元キーポイントデータのうち所定の2点間の長さが基準値となるようスケール変換したものとして得られていることを特徴とする請求項1ないし
5のいずれかに記載のキーポイントデータに関する加工装置。
【請求項7】
前記候補生成部で複数の加工データを得る元となった前記二次元キーポイントデータの各点には信頼度が紐づいており、
前記探索部で前記最も類似するものを探索する際には、当該紐づいた信頼度を考慮することを特徴とする請求項1ないし
6のいずれかに記載のキーポイントデータに関する加工装置。
【請求項8】
前記二次元及び三次元の各キーポイントデータは、全身骨格関節データ、表情を反映可能とされる顔の骨格関節データ又は手の骨格関節データのいずれかとしてモデル化されたものであることを特徴とする請求項1ないし
7のいずれかに記載のキーポイントデータに関する加工装置。
【請求項9】
コンピュータによって実行されるキーポイントデータに関する加工方法であって、
全身またはその一部分から抽出される二次元キーポイントデータに幾何学変換をそれぞれ適用して複数の加工データを得る候補生成段階と、
複数の三次元キーポイントデータを所定姿勢において二次元マッピングして得られた複数の参照用二次元キーポイントデータと、前記得た複数の加工データと、の間で最も類似するものを探索し、当該最も類似する加工データ及び/又は当該加工データに適用された幾何学変換の情報を出力する探索段階と、を備え、
前記複数の三次元キーポイントデータを所定姿勢において二次元マッピングすることで前記複数の参照用二次元キーポイントデータを得る参照対象生成段階をさらに備え、
前記参照対象生成段階は、前記複数の三次元キーポイントデータのそれぞれにつき、複数パラメータのそれぞれで特定される透視投影変換を行って参照用二次元キーポイントデータの複数候補を得て、当該複数候補の中から、複数の所定のキーポイントデータを頂点として形成される多角形の面積が最大となるものに基づいて、参照用二次元キーポイントデータを得ることを特徴とするキーポイントデータに関する加工方法。
【請求項10】
コンピュータを請求項1ないし
8のいずれかに記載のキーポイントデータに関する加工装置として機能させることを特徴とするキーポイントデータに関するプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、骨格関節データといったようなキーポイントデータが二次元データとして与えられている場合であっても三次元空間における所定姿勢に関連した情報を得ることが可能な、キーポイントデータに関する加工装置、方法及びプログラムに関する。
【背景技術】
【0002】
近年、モーションキャプチャーセンサー、特に安価なセンサーのKinect(登録商標)の普及により、
図1にその模式例を示すような3次元骨格関節データ(所定の3次元空間において骨格関節位置を与えたデータ、スケルトンデータ)等の取得が容易となった。当該種々の3次元データの取得が容易となったこと等を契機として、例えば非特許文献2に開示されるような、当該3次元データによって表現されるジェスチャや顔表情等を対象とした、深層学習を用いた認識技術が提案されている。
【0003】
一方、近年、通常の画像のみに基づいて全身または顔の骨格関節データを推定する技術も成熟化してきている。当該技術においてはKinectを含めて特殊なセンサが不要であり、身近なWebカメラ等といったような通常のカメラのみを用いればよいという利点があるが、現状では画像から3次元データとして骨格関節データ等の推定は困難であり、画像上座標の2次元データとしての骨格関節データ等の推定に留まっている。
【0004】
当該2次元での推定技術として例えば非特許文献1では、映像から同時に複数人の2次元骨格関節データの推定を実現すると共に、各関節について0から1までの信頼度を同時に算出している。
【先行技術文献】
【非特許文献】
【0005】
【文献】Cao, Zhe, et al. "Realtime multi-person 2d pose estimation using part affinity fields." CVPR2017(2017).
【文献】Ke, Qiuhong, et al. "A New Representation of Skeleton Sequences for 3D Action Recognition." CVPR2017 (2017).
【文献】Wu, Ren, et al. "Deep image: Scaling up image recognition." arXiv preprint arXiv:1501.02876 7.8 (2015).
【文献】Wang, Limin, et al. "Temporal segment networks: Towards good practices for deep action recognition." European Conference on Computer Vision. Springer International Publishing, 2016.
【文献】Shen, Jie, et al. "The first facial landmark tracking in-the-wild challenge: Benchmark and results." Proceedings of the IEEE International Conference on Computer Vision Workshops. 2015.
【文献】Simon, Tomas, et al. "Hand Keypoint Detection in Single Images using Multiview Bootstrapping." arXiv preprint arXiv:1704.07809 (2017).
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、以上のような非特許文献1等における、通常画像のみから得られることで原理的に3次元情報を得ることが不可能な2次元骨格関節データ等を対象として認識処理等を行うことを考える場合、前処理等として正面等の所定姿勢に補正すること、すなわち加工することが望ましいと考えられるが、いずれの従来技術においてもこのような加工の実現は課題として考慮されていなかったことから、従来技術ではこのような加工は実現不可能であった。
【0007】
すなわち、このような加工はデプス情報ないし3次元情報の欠如とセマンティック情報の欠如という原理的な制約から、非常にチャレンジングなものであり、従来技術では実現できないものであった。さらに、当該加工処理は、認識処理における学習データの増強(augmentation)等にも寄与することが期待されるものである。
【0008】
なお、当該課題の関連技術として、認識処理等を考慮しての加工処理に関しては以下のようなものがあるが、いずれも上記のような加工を実現することはできなかった。
【0009】
例えば、一般の画像認識を対象とした非特許文献3では、深層学習で用いるデータ増強のための加工処理として、画像全体を赤や青といった特定色に偏らせるようにする色かぶり(color casting)加工、画像周辺部分を中心部分よりも暗くする周辺減光(ビネッティング、vignetting)加工、画像中心部の矩形領域を樽型に膨張させる又はその逆に糸巻き型に収縮させる変換としてのレンズ歪(lens distortion)加工などを挙げているが、これらは上記の正面等の所定姿勢へと補正する加工を実現できるものではない。
【0010】
また、静止画像で成功した深層学習をさらに映像における行動認識に適用することを目指した非特許文献4では、映像を時間軸上で複数の断片(snippet)に区切ったうえで当該複数の断片で深層ネットワークを学習することを提案しており、当該学習の際のデータ増強のための加工処理として、矩形トリミング(corner cropping)加工及びスケールジッタリング(scale jittering)加工を挙げている。矩形トリミングにおいては画像領域を縦横2×2=4等分することによる1/4サイズの画像をトリミングする他、中央部分からも同1/4サイズの画像をトリミングする。スケールジッタリングにおいては当該トリミングした画像の縦及び横サイズを解像度候補{256, 224,192,168}の中からランダムに決定したうえでさらに所定サイズ224x224へとリサイズする。非特許文献4における当該矩形トリミング及びスケールジッタリングによるデータ増強も基本的には非特許文献3等が対象とする静止画像に対する手法を踏襲するものであり、やはり上記の正面等の所定姿勢へと補正する加工を実現できるものではない。
【0011】
上記従来技術の課題に鑑み、本発明は、骨格関節データといったようなキーポイントデータが二次元データとして与えられている場合であっても三次元空間における所定姿勢に関連した情報を得ることが可能なキーポイントデータに関する加工装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
上記目的を達成するため、本発明は、キーポイントデータに関する加工装置であって、全身またはその一部分から抽出される二次元キーポイントデータに幾何学変換をそれぞれ適用して複数の加工データを得る候補生成部と、複数の三次元キーポイントデータを所定姿勢において二次元マッピングして得られた複数の参照用二次元キーポイントデータと、前記得た複数の加工データと、の間で最も類似するものを探索し、当該最も類似する加工データ及び/又は当該加工データに適用された幾何学変換の情報を出力する探索部と、を備えることを特徴とする。また、当該加工装置に対応する方法及びプログラムであることを特徴とする。
【発明の効果】
【0013】
本発明によれば、候補生成部において二次元キーポイントデータに幾何学変換をそれぞれ適用して複数の加工データを得たうえで、複数の三次元キーポイントデータを所定姿勢において二次元マッピングして得られた複数の参照用二次元キーポイントデータとの間で最も類似するものを探索部で探索することにより、当該最も類似する加工データ及び/又は当該加工データに適用された幾何学変換の情報として、三次元空間における所定姿勢に関連した情報を得ることが可能となる。
【図面の簡単な説明】
【0014】
【
図1】3次元骨格関節データの模式例を示す図である。
【
図2】一実施形態に係る加工装置の機能ブロック図である。
【
図3】3次元骨格データセットの一例としてのMSRAction3Dにおけるデータ形式を模式的に示すものである。
【
図4】
図3のデータ形式を用いる場合における、正面決定のための面積算出の対象となる所定の多角形の定義例を示す図である。
【
図5】全身骨格関節データ以外に本発明を適用可能なキーポイントデータの例として、顔の骨格関節データ及び手の骨格関節データの模式例を示す図である。
【発明を実施するための形態】
【0015】
図2は、一実施形態に係る加工装置の機能ブロック図である。図示する通り、加工装置10は、候補生成部1、参照対象生成部2及び探索部3を備え、各機能部の概略的な機能は以下の通りである。なお、
図2では機能ブロックに加え、説明の理解促進の観点から各部で処理されるデータの模式例を表現した挿絵が括弧で囲って描かれている。
【0016】
候補生成部1では2次元キーポイントデータD0を入力として受け取り、これに種々のN種類の加工処理Pi(i=1, 2, ..., N)を施すことで複数の加工データDi(i=1,2, ..., N)をそれぞれ得て、当該複数の加工データDiのそれぞれを検索部3へと出力する。参照対象生成部2では、予め構築されたデータベース等として用意されている参照用の複数(M個)の3次元キーポイントデータRj(j=1,2, ...,M)を入力として受け取り、これに変換処理等を施すことで所定姿勢での正規化された2次元キーポイントデータQj(j=1,2, ..., M)を生成し、当該生成した2次元キーポイントデータQjをそれぞれ探索部3へと出力する。
【0017】
探索部3では、候補生成部1で加工して得られた複数の2次元キーポイントデータDiと、参照対象生成部2で生成して得られた複数の参照用の2次元キーポイントデータQjと、の間で最も類似しているものを探索する。説明上、当該探索により最類似と判定されたデータDi及びQjをi=imax及びでj=jmaxでそれぞれ指定されるデータDimax及びQjmaxとして表すものとすると、検索部3ではさらに、当該最類似判定された加工データDimaxを候補生成部1に入力された元のデータD0に対する加工結果として出力する。なお、探索部3からの出力は、当該加工結果データDimaxに代えて、あるいは加えて、元のデータD0に対する加工内容Pimaxとしてもよい。
【0018】
なお、当該探索するために探索部3が算出するデータDi及びデータQjの類似度スコア(類似度が高いほど大きな値となるように類似度を数値化したスコア)をscore(Di,Qj)と表すと、最類似結果に対応するi=imax及びj=jmaxは以下の(1)のように書くことができる。
【0019】
【0020】
以下、
図2の各機能部の処理内容の詳細を参照対象生成部2、候補生成部1、探索部3の順に説明する。ここで、各機能部で2次元又は3次元のデータとして処理するキーポイントデータが、具体的には骨格関節データである場合を例として説明するが、キーポイントデータは骨格関節データ以外の種類のものであってもよい。これと同様に、
図2のデータDiやデータQj等の模式例としての挿絵は、キーポイントデータが骨格関節データである場合の例として描かれているが、これは説明の明確化のための例示に過ぎず、キーポイントデータは骨格関節データ以外の種類のものであってもよい。なお、骨格関節データ以外の種類のキーポイントデータに関しては後述する。
【0021】
<参照対象生成部2>
参照対象生成部2では、所定形式で全身骨格をモデル化したものとして予め用意されている既存の3次元骨格関節データセットの各データRjから正面姿勢の2次元骨格関節データを生成し、さらに当該生成した2次元骨格関節データを正規化することでデータQjを得る。所定形式の3次元骨格データセットとしては例えば、行動認識の学術・技術分野などにおいて評価用のデータセットとして利用されているMSRAction3D形式のものを利用することができる。
【0022】
図3は当該3次元骨格データセットの一例としてのMSRAction3Dにおけるデータ形式を模式的に示すものである。(なお、前掲の
図1も当該データ形式の模式例である。)
図3に示されるように、MSRAction3Dのデータは予め定義されている20個の関節及び19本の骨(関節間の接続関係)を使って全身骨格をモデル表現するものであり、当該20個の関節のそれぞれの3次元座標を与えることによって人物等のキャラクタの姿勢を表現することができるものである。また、時系列上で当該データを与えることでキャラクタのジャスチャ等の行動を表現することができるものである。なお、
図3の3次元骨格データのキャラクタは紙面にその顔が向かう状態を表すものであるため、紙面上の右側及び左側の関節が逆に当該キャラクタの左側及び右側の関節に対応している。
【0023】
図3に示される通り、MSRAction3Dのデータでは関節及びその接続関係が次のように定義されている。すなわち、座高部分で「頭(head)-首(neck)-背骨(spine)-臀部中央(center hip)」が定義され、右腕側部分で「首(neck)-右肩(right shoulder)-右肘(right elbow)-右手首(right wrist)-右手(right hand)」が定義され、左腕側部分でも同様のものが左側として定義され、右脚側部分で「臀部中央(center hip)-臀部右側(right hip)-右膝(right knee)-右踵(right ankle)-右足(right foot)」が定義され、左脚側部分でも同様のものが左側として定義されている。
【0024】
なお、参照対象生成部2にて読み込む3次元骨格データセットはこのようなMSRAction3Dの形式のものに限らず、同様に関節及びその接続関係をモデル化して定義した任意の所定形式のものを利用することができる。
【0025】
具体的に、参照対象生成部2では以下の手順21,22,23によって3次元形式の各データRjから2次元形式の各データQjを生成することができる。
【0026】
(手順21)
以下の式(2-1),(2-2)で表現されるように、予め設定しておく種々のパラメータ候補θx,θy,θzのもとでそれぞれ透視投影変換(すなわち、3DのCG(コンピュータグラフィックス)等を扱う数学として既知の変換)を行うことにより、3次元データRjを2次元データBj(θx,θy,θz)にマッピングする。
【0027】
【0028】
ここで、(ax,ay,az)は3次元骨格関節データの中の1つの3次元関節座標であり、(cx,cy,cz)は事前に設定しておく3次元カメラ座標であり、各パラメータ候補としての(θx,θy,θz)は2次元投影するためのカメラの向き(オイラー角のうちTait-Bryan angles)であり、式(2-1)で計算される(dx,dy,dz)を介して式(2-2)で得られる(bx,by)が3次元骨格座標(ax,ay,az)の2次元投影結果としての座標となる。
【0029】
すなわち、3次元データRjを構成する各点(ax,ay,az)∈Rjを、上記の(2-1),(2-2)によりパラメータ(θx,θy,θz)の下で2次元データの各点(bx,by)∈Bj(θx,θy,θz)へと変換することができる。
【0030】
当該式(2-1),(2-2)による変換はカメラ位置座標(cx,cy,cz)を固定してカメラ角度(θx,θy,θz)をパラメータとして振るものであったが、これに限定されず、3次元骨格関節データRjを様々な視点から見た際の2次元データとして表現するような任意のパラメータ設定及び変換関係式を利用してマッピングを行えばよい。すなわち、3次元データRjを所定カメラ(ボケ等は存在しない理論モデルとしてのピンホールカメラ)を用いて、パラメータで指定される様々な視点から撮影することで得られる画像平面上のデータとしてマッピングされた2次元データを得るようにすればよい。
【0031】
例えば、カメラ角度(θx,θy,θz)はカメラ位置から3次元データRjの所定点(例えば重心)に向かうものとして設定し、3次元データRjを覆う所定球面(例えば当該重心を中心とする所定サイズの球面)上から均一にサンプリングされるカメラ位置座標(cx,cy,cz)をパラメータとしてもよい。ただし、次の手順22を適切に実施する観点からは、3次元骨格関節データRjを様々な視点から見る際の距離が大きく変わることはないようにパラメータ設定等を行うことが望ましい。
【0032】
なお、以下の説明において、2次元データにおける位置関係等を説明する際は、説明の直感的な把握を促す観点から、当該2次元データの座標に対応するもの等を適宜、「画像」等と称して、また、「画像」関連の用語(画素数やアスペクト比など)を適宜用いて、説明することとする。
【0033】
(手順22)
上記手順21で各パラメータ(θx,θy,θz)に関して求めた2次元データBj(θx,θy,θz)の中から、所定姿勢の一例としての正面から3次元データRjを見たものに該当するデータBj(θx,θy,θz)[正面]を決定する。
【0034】
具体的に、2次元データBj(θx,θy,θz)のうちの所定関節を所定順番で辿ることで形成される多角形の面積をarea(Bj(θx,θy,θz))とすると、当該面積の最大値を与えるようなパラメータ(θx,θy,θz)を正面に該当するパラメータとして決定することができる。式で表現すれば以下の(2-3)の通りである。
【0035】
【0036】
ここで、上記の面積area(Bj(θx,θy,θz))を算出する対象となる多角形を形成するための所定関節及びこれを辿る所定順番に関しては、参照対象生成部2で読み込んだ3次元骨格関節データで定義されている所定種類の関節に対応して、所定のものを定義しておけばよい。当該定義するに際しては、以下の第一及び第二性質を満たすものとして定義すればよい。
(第一性質)キャラクタのポーズ種別(データRjに対応するポーズ種別であり、キャラクタ自体の区別(大人と子供など)を含んでもよい。以下同様とする。)によらず、正面に該当する場合に形成される多角形の面積が最大となる。(なお、必ずしも厳密に真正面で厳密に最大となる必要はなく、人手による判断等で正面とされうる一定方向に近いほど面積が大きくなる傾向があればよい。)
(第二性質)キャラクタのポーズ種別が異なるもの同士であって、そのサイズが異なることがあったとしても、当該多角形の相対的な形状(3次元空間内で見た正面に該当する場合の形状)が大きく異なることはない。
【0037】
具体的に、
図3で説明したMSRAction3Dのデータ形式の場合であれば、例えば
図4の[1]又は[2]のような多角形(太線で示される多角形)を面積算出用として定義しておくことができる。
図4の[1]は、「頭→左肩→臀部左側→臀部右側→右肩→頭」の順番で各頂点(すなわち各関節)が並んで形成される5角形を面積算出対象として定義する例である。
図4の[2]は、「首→左肩→臀部中央→右肩→首」の順番で各頂点(すなわち各関節)が並んで形成される4角形を面積算出対象として定義する例である。
【0038】
図4の[1],[2]のいずれの例も、キャラクタの胴体に概ね該当する部分の関節から多角形を定義しており、次の第一及び第二特性を有することによって前述の第一及び第二性質を満たすものである。
(第一特性)ポーズ種別が異なったとしても、(ポーズを取るキャラクタが違っている場合のサイズ変化を除き、)胴体形状自体はそれほど変化するものではない。
(第二特性)且つ、当該変化しない胴体形状は概ね平面的な形状であり、3次元空間内での胴体関連の関節座標は全て当該胴体を貫く仮想的な平面(正面向きに対応する平面)から一定距離内にあり、概ね共面の関係にある。
【0039】
なお、例えば胴体関連の関節ではなく、ポーズ種別の違いよって大きな相対的位置変化を伴いうる腕や脚の関節を含めて多角形を仮に定義したとすると、上記第一及び第二特性を有さないことからも、前述の第一及び第二性質を満たさないものとなってしまう。
【0040】
(手順23)
上記の手順22で得た正面データBj(θx,θy,θz)[正面]を正規化することにより、当初の3次元データRjを所定姿勢で2次元マッピング及び正規化した結果としてのデータQjを得る。当該正規化は探索部3での類似データ探索を適切になし得るようにするためのものであり、具体的には以下のように大きさ(スケール)及び位置に関する正規化を行えばよい。
【0041】
すなわち、大きさの正規化として、正面データBj(θ
x,θ
y,θ
z)
[正面]における骨格関節の位置座標のうち、所定の2点間の距離djが正規化用の所定の固定値d
[正規化](例えば50画素値など)となるように当該正面データのサイズを縦横共に(すなわちアスペクト比を変えることなく)d
[正規化]/dj倍する。ここで、距離djを与える所定の2点については、正面化した骨格関節データにおいて当該2点間の長さがポーズ種別によらず安定して変わらない性質を有するようなものとして設定すればよい。例えば、
図3のデータ形式の場合であれば、当該2点として「頭(head)及び首(neck)」、「首(neck)及び背骨(spine)」又は「背骨(spine)及び臀部中央(center hip)」のいずれか等を設定しておけばよい。なお、これらの例は手順22で正面化した際の胴体の中心部分に関連するものであり、2点間距離が安定していることが想定されるものである。
【0042】
また、位置の正規化として、正面データBj(θx,θy,θz)[正面]における骨格関節の位置座標のうち、所定の点が原点となるように並進移動を行う。当該並進移動により原点とする所定の点は例えば、大きさの正規化に用いた2点のうちのいずれか1点とすればよく、例えば「頭(head)及び首(neck)」の2点間距離で正規化した場合、首の座標が原点となるように設定しておけばよい。当該原点とする所定点の座標を(x[基準],y[基準])とすると、正面データBj(θx,θy,θz)[正面]における各骨格関節の位置座標は正規化前の(x[正規化前],y[正規化前])から以下の式(2-4)の左辺のように正規化されることとなる。
【0043】
【0044】
なお、以上の大きさ及び位置の正規化はいずれの順番で行っても同じ結果であるので、いずれの順番で行ってもよい。また、次に説明する候補生成部1において様々な角度に回転させた候補を生成することから、参照対象生成部2の手順23においては以上のような大きさ及び位置の正規化を行うものの、座標軸方向の正規化を行う必要はない。
【0045】
<候補生成部1>
候補生成部1では2次元の骨格関節データD0を受け取り、これに種々の幾何学変換としての複数の所定の加工処理Pi(i=1, 2, ..., N)を施すことで複数の加工データDi(i=1,2, ..., N)をそれぞれ得る。当該施す幾何変換としての加工処理Piは、そのうちいずれかの加工処理によって2次元データD0を所定姿勢としての正面の場合のデータへと、少なくとも近似的に補正しうるような複数の処理として所定のパラメータ範囲のものを設定しておけばよい。なお、当該パラメータ範囲の設定の方針としては、参照対象生成部2における手順21での透視投影変換のパラメータ設定の際の方針と概ね同じ方針、すなわち見る角度として球面上の全方位を網羅するようにする方針を採用することができる。当該見る角度の違いによる見え方の違いを網羅するようなものとして、複数の幾何学変換を設定しておくことが望ましい。
【0046】
加工処理Piは具体的には例えば、正面化するための変形ないし回転変換を含むものとして、アフィン変換及び/又はホモグラフィ変換において当該変換の詳細を特定するパラメータを与えたものとして設定しておくことができる。なお、周知のように、アフィン変換はホモグラフィ変換のうちの特別の場合に該当する。候補生成部1では具体的には以下の手順11,12によってデータD0を加工処理Piで加工したデータDiを得ることができる。
【0047】
(手順11)
データD0∋(x[変換前],y[変換前])に対してアフィン変換又はホモグラフィ変換(処理Piに対応する所定パラメータで特定される変換)を行うことでデータEi∋(x[変換後],y[変換後])を得る。数学的関係として周知のように同次座標表現を用いて2次元でのアフィン変換(行列要素aij)及びホモグラフィ変換(行列要素hij)はそれぞれ以下の式(3-1),(3-2)のように表現できる。
【0048】
【0049】
(手順12)
上記手順11で得たデータEiを正規化することによって加工されたデータDiを得る。当該正規化は参照対象生成部2の手順23において既に説明した正規化と同じ処理をデータEiに対して適用すればよいので、重複した説明は省略する。
【0050】
なお、候補生成部1において読み込む2次元骨格関節データD0に関しては、例えば前掲の非特許文献1の手法等により当該データD0を抽出することによって用意することができる。非特許文献1では、キャラクタを撮影した画像から身体部分に関する信頼度(part confidence)マップ及び身体部分に関する親和度(part affinity)ベクトルマップを抽出したうえで当該両マップに対する深層学習によってデータD0を算出しており、この際にデータD0を構成する各関節の信頼度も算出される。ここで、次に説明する探索部3の処理を高精度に実現するために、データD0の各関節には当該信頼度も紐づけておくようにすることが好ましい。また、候補生成部1で読み込む2次元データD0は、参照対象生成部2で読み込む3次元データRjのデータ形式において定義されているのと同種類の関節に関して定義されたものとする。例えば3次元データRjが
図3で説明したようなMSRAction3Dのデータ形式である場合、2次元データD0も当該データ形式で定義されている
図3のような各関節の2次元座標を与えるものとして用意しておくようにする。
【0051】
<探索部3>
探索部3は、候補生成部1から得た加工処理Pi(i=1, 2, ..., N)ごとの加工データDi(2次元骨格関節データ)と、参照対象生成部2から得た複数の3次元骨格関節データRj(j=1,2, ..., M)がそれぞれ所定姿勢として正面化され2次元骨格関節データとして表現されたデータQjと、の間で最類似となるペアとしてのデータDimax及びQjmaxを探索し、当該探索結果における加工データDimax及び/又はその加工内容Pimaxを加工装置10からの出力として出力する。探索部3では具体的に以下の手順31,32によって当該探索処理を行なうことができる。
【0052】
(手順31)
各加工データDiに対して、データQj(j=1,2, ..., M)との類似度スコアscore(Di,Qj)を計算することで最類似となるデータQjmax[i]を探索し、その類似度スコアscore[i]=score(Di, Qjmax[i])を記録しておく。類似度スコアscore(Di,Qj)に関しては、当該2つのデータ間の距離L(Di,Qj)を以下の(4),(5),(6)のように計算し、当該距離が小さいほど類似度スコアが大きくなるように所定の減少関数fを用いてscore(Di,Qj)=f(L(Di,Qj))のように計算すればよい。
【0053】
【0054】
距離を計算する式(4)において、x(Di)
kはデータDiのk番目の所定関節の2次元位置座標であり、x(Qj)
kはデータQjのk番目の所定関節の2次元位置座標であり、データDi及びQj(の元となるRj)は同種データを採用する旨を前述した通り、これらk番目の所定関節の種類は同じものである。例えば
図3のMSRAction3Dのデータ形式を用いる場合であったとして、Diのk=1番目の関節が「頭」であればQjのk=1番目の関節も「頭」である。KはDi及びQjのデータ形式にて定義されている関節の総数である。
【0055】
そして、式(4)の距離L(Di,Qj)を計算するための重みwkの計算に関して、式(5)及び/又は(6)を利用することができ、ckはDiのk番目の関節に関して前掲の非特許文献1等の手法により計算されている信頼度(当該関節に該当する確率が高いほど高い値として、非負の値で計算される信頼度)である。式(5)のTH1,TH2は当該信頼度に対する閾値であり、信頼度が低ければ重みの値を低い0に、中程度であれば重みの値を中程度の0.5に、高ければ重みの値を高い1に設定している。
【0056】
なお、式(5)及び式(6)の両方を用いる場合は、式(6)で計算される右辺のwkを「正規化された信頼度ck[正規化]」と読み替えて、当該「正規化された信頼度ck[正規化]」を式(5)の閾値判定に利用するようにして、重みの値が0, 0.5, 1のいずれかとなるように計算すればよい。
【0057】
なお、データDiの各関節に信頼度が紐づいていない場合(信頼度の情報が利用できない場合)は、全ての重みを例えばwk=1のように等しい値として設定して、式(4)で距離を計算すればよい。
【0058】
また、式(4),(5),(6)の別の実施形態として、信頼度ckを非負の値として算出しておき、wk=ckとすることで信頼度ckをそのまま重みwkとして採用して式(4)から距離を計算してもよい。また、式(5)は信頼度の値を3段階に閾値で分けてその大小に応じた重みを与える例であったが、同様に任意数の段階に分けて各段階に応じた重みを与えてもよい。同様に、式(5)の変形例として、所定の増加関数g(非負の値をとる)を用いてwk=g(ck)として重みを計算してもよい。
【0059】
(手順32)
上記の手順31によって各データDiに関して求まった最類似スコアscore[i]=score(Di, Qjmax[i])のうち、最大値に該当するものを最類似結果Dimaxとして決定し、対応する情報(加工情報Pimax及び又は加工データDimax)を結果として出力する。
【0060】
以上、本発明は2次元骨格関節データD0を候補生成部1において種々の候補Diに加工して、多数の三次元データRjから参照対象生成部2でそれぞれ生成された正面化データとしてのデータQjと検索部3において対比することによって、撮影角度依存問題を解決することができる。すなわち、データD0が非特許文献1のような手法で画像から抽出して得られている場合における、撮影角度依存問題を解決することができる。ここで、画像データと比べると、骨格関節データは関節情報のような高次情報を持っており式(4)の計算に反映されることから、より正確に撮影角度の補正が可能となる。ここで更に、関節位置の信頼度も利用することにより、より正確に撮影角度の補正が出来る。
【0061】
以下、本発明における説明上の補足を述べる。
【0062】
(1)以上の説明では、キーポイントデータの例として全身骨格関節データを説明のために用いていたが、本発明は全身骨格データに限らず任意の全身またはその一部から抽出されるキーポイントデータについて同様に適用可能である。例えば、
図5の[1A]に模式例を示すような顔の骨格関節データや、
図6の[1B]に模式例を示すような手の骨格関節データに対しても、本発明は適用可能である。キーポイントは、当該キーポイントを追跡することでキャラクタの全身又はその一部の動きやジェスチャをモデル化するのに適した点であればよく、実際の関節やモデル化された関節その他の点(関節でなくともよい)として定義されたものであればよい。関節の場合、関節間の「骨」に相当するものが定義されていてもよいし、定義されていなくともよい。
【0063】
図5の[1A]の顔の骨格関節データは、左右の眉部分、左右の目の周囲部分、鼻筋及び鼻の下部分、唇の外周及び内周部分、左右の耳から頬を通って顎に至るまでの顔の境界部分、に関して関節がモデル化されたものである。この場合例えば[2A]に黒塗りで示された左右の目尻及び鼻先の3つの関節で形成される3角形を、参照対象生成部2の手順22における正面化のための面積area(Bj(θ
x,θ
y,θ
z))を算出するものとして設定しておけばよい。なお、候補生成部1への入力データとしての、顔の骨格関節データを2次元データとして画像から得る処理は例えば前掲の非特許文献5に開示の処理を用いればよい。3次元データも同様の関節に関して定義されたものを用意して参照対象生成部2に入力すればよい。
【0064】
図5の[1B]の手の骨格関節データは、手首関節から第1~第5指の各指の第三、第二、第一関節及び指先関節の間にそれぞれ骨を定義してモデル化したものである。この場合例えば[2B]に黒塗りで示された手首関節及び各指の第三関節で定義される6角形を参照対象生成部2の手順22における正面化のための面積area(Bj(θ
x,θ
y,θ
z))を算出するものとして設定しておけばよい。なお、候補生成部1への入力データとしての、手の骨格関節データを2次元データとして画像から得る処理は例えば前掲の非特許文献6に開示の処理を用いればよい。3次元データも同様の関節に関して定義されたものを用意して参照対象生成部2に入力すればよい。
【0065】
なお、顔の骨格関節データを用いる場合、本発明は例えば表情認識の前処理等として利用可能であり、手の骨格関節データを用いる場合、本発明は例えば手の操作内容や作業内容の認識の前処理等として利用可能である。
【0066】
(2)本発明は所定姿勢の一例として正面向きに該当する結果を探索部3で得る場合に関して説明したが、正面を基準として傾いた方向にある所定姿勢に該当する結果を探索部3で得るようにすることもできる。この場合、参照対象生成部2の手順22で正面パラメータ(θx,θy,θz)[正面]を求めることでデータRjの空間内での正面方向を把握したうえで、式(2-1),(2-2)の透視投影変換を当該正面方向から傾いた所定方向に対して適用することで、次の手順23による正規化処理の対象となる傾いた所定姿勢のデータBj(θx,θy,θz)[傾いた所定姿勢]を用意するようにすればよい。
【0067】
(3)3次元データRjに予め正面方向が定義されている場合、参照対象生成部2における手順22のパラメータ探索を省略して、手順21では当該定義されている正面方向のみにおいて透視投影変換を行うことで手順23による正規化処理対象となる2次元データを用意すればよい。
【0068】
(4)予め2次元マッピングされたデータQjを用意しておくことで、参照対象生成部2におけるデータRjからQjを得る処理を省略してもよい。
【0069】
(5)加工装置10は一般的な構成のコンピュータとして実現可能である。すなわち、CPU(中央演算装置)、当該CPUにワークエリアを提供する主記憶装置、ハードディスクやSSDその他で構成可能な補助記憶装置、キーボード、マウス、タッチパネルその他といったユーザからの入力を受け取る入力インタフェース、ネットワークに接続して通信を行うための通信インタフェース、表示を行うディスプレイ、カメラ及びこれらを接続するバスを備えるような、一般的なコンピュータによって加工装置10を構成することができる。さらに、
図2に示す加工装置10の各部の処理はそれぞれ、当該処理を実行させるプログラムを読み込んで実行するCPUによって実現することができるが、任意の一部の処理を別途の専用回路等(GPUを含む)において実現するようにしてもよい。
【符号の説明】
【0070】
10…加工装置、1…候補生成部、2…参照対象生成部、3…探索部