IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ コニカミノルタ株式会社の特許一覧

特許74398323次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置
<>
  • 特許-3次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置 図1
  • 特許-3次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置 図2
  • 特許-3次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置 図3
  • 特許-3次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置 図4
  • 特許-3次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置 図5
  • 特許-3次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置 図6
  • 特許-3次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置 図7
  • 特許-3次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置 図8
  • 特許-3次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-19
(45)【発行日】2024-02-28
(54)【発明の名称】3次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置
(51)【国際特許分類】
   G06T 7/70 20170101AFI20240220BHJP
   G06T 7/00 20170101ALI20240220BHJP
【FI】
G06T7/70 Z
G06T7/00 660B
G06T7/00 350C
【請求項の数】 12
(21)【出願番号】P 2021522693
(86)(22)【出願日】2020-04-15
(86)【国際出願番号】 JP2020016571
(87)【国際公開番号】W WO2020241100
(87)【国際公開日】2020-12-03
【審査請求日】2022-12-23
(31)【優先権主張番号】P 2019101023
(32)【優先日】2019-05-30
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001270
【氏名又は名称】コニカミノルタ株式会社
(74)【代理人】
【識別番号】110001933
【氏名又は名称】弁理士法人 佐野特許事務所
(72)【発明者】
【氏名】関井 大気
【審査官】宮島 潤
(56)【参考文献】
【文献】国際公開第2018/087933(WO,A1)
【文献】特開2017-91377(JP,A)
【文献】特開2015-167008(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
G06T 1/00 - 1/40
G06T 3/00 - 5/50
G06T 9/00 - 9/40
(57)【特許請求の範囲】
【請求項1】
少なくとも1つの物体が写っている画像から、前記物体の3次元姿勢を前記物体ごとに推定する3次元姿勢推定方法であって、
機械学習可能なCNNで構成される深度マップ推定部が、前記画像が入力されたときに、所定の前記物体の骨格を規定する制御点のペアのそれぞれについて、前記画像上で前記ペアの一方の制御点に対する他方の制御点の相対位置を複数仮定するとともに、仮定した前記複数の相対位置のそれぞれについて、前記一方の制御点を前記画像上の各位置に存在するものとして、前記一方の制御点に対する前記他方の制御点の相対深度を前記画像全体に渡って推定する深度マップ推定ステップと、
前記画像を用いて、複数の前記制御点の前記画像上での2次元位置を前記物体ごとに検出する位置検出ステップと、
仮定した前記複数の相対位置のそれぞれについて推定した前記相対深度と、前記複数の制御点の前記2次元位置とに基づいて、前記複数の制御点の相対的な3次元位置を求めるとともに、前記3次元位置を求める処理を、連接する前記制御点のペアを順番にずらして全ての前記ペアについて行うことにより、前記3次元姿勢を前記物体ごとに推定する姿勢推定ステップとを含み、
前記深度マップ推定部を構成するCNNは、前記画像が入力されたときに、前記画像上で前記一方の制御点に対する前記他方の制御点の相対深度を、仮定した前記複数の相対位置のそれぞれについて推定するように予め学習されている、3次元姿勢推定方法。
【請求項2】
前記位置検出ステップでは、機械学習可能なCNNで構成される位置検出部が、前記複数の制御点の前記2次元位置の検出を、前記CNNでの演算によって実行し、
前記位置検出部を構成するCNNは、前記画像が入力されたときに、前記制御点の前記画像上での前記2次元位置を検出するように予め機械学習されている、請求項1に記載の3次元姿勢推定方法。
【請求項3】
前記深度マップ推定ステップでは、前記深度マップ推定部が前記相対深度の推定結果を示す相対深度マップを出力し、
前記位置検出ステップでは、位置検出部が、入力される前記画像と前記相対深度マップとに基づいて、前記2次元位置を前記物体ごとに検出し、
前記位置検出部は、演算部と、後処理部と、を含み、
前記演算部は、機械学習可能なCNNで構成されており、
前記演算部を構成するCNNは、前記画像と前記相対深度マップとが入力されたときに、前記物体の複数の制御点の前記画像上での前記2次元位置の候補とその尤度とを出力するように予め学習されており、
前記位置検出ステップでは、前記後処理部が、前記演算部から出力される前記2次元位置の候補の中から、前記尤度の最も高い候補を選択し、選択した前記候補の2次元位置の情報を出力する、請求項1に記載の3次元姿勢推定方法。
【請求項4】
前記深度マップ推定ステップでは、前記深度マップ推定部を構成するCNNが、前記複数の相対位置のそれぞれに対応して、前記相対深度の推定結果を示す相対深度マップを複数パターン生成し、
前記複数パターンは、前記画像を複数のグリッドに分割したときに、任意のグリッドに対する他のグリッドの相対位置を、前記一方の制御点に対する前記他方の制御点の相対位置として仮定したパターンにそれぞれ対応しており、
前記姿勢推定ステップでは、
前記複数の制御点の前記2次元位置に基づき、前記ペアのそれぞれについて、一方の制御点に対する他方の制御点の相対位置を求め、
前記複数パターンの前記相対深度マップを参照することにより、前記相対位置に対応する相対深度を抽出し、
抽出した前記相対深度と、前記複数の制御点の前記2次元位置とに基づいて、前記複数の制御点の相対的な3次元位置を求める、請求項1から3のいずれかに記載の3次元姿勢推定方法。
【請求項5】
前記複数の制御点は、前記物体としての人物の関節点を含む、請求項1から4のいずれかに記載の3次元姿勢推定方法。
【請求項6】
請求項1から5のいずれかに記載の3次元姿勢推定方法をコンピュータに実行させるためのプログラム。
【請求項7】
請求項6に記載のプログラムを記録した、コンピュータ読取可能な記録媒体。
【請求項8】
少なくとも1つの物体が写っている画像から、前記物体の3次元姿勢を前記物体ごとに推定する3次元姿勢推定装置であって、
機械学習可能なCNNで構成されており、前記画像が入力されたときに、所定の前記物体の骨格を規定する制御点のペアのそれぞれについて、前記画像上で前記ペアの一方の制御点に対する他方の制御点の相対位置を複数仮定するとともに、仮定した前記複数の相対位置のそれぞれについて、前記一方の制御点を前記画像上の各位置に存在するものとして、前記一方の制御点に対する前記他方の制御点の相対深度を前記画像全体に渡って推定する深度マップ推定部と、
前記画像を用いて、複数の前記制御点の前記画像上での2次元位置を前記物体ごとに検出する位置検出部と、
仮定した前記複数の相対位置のそれぞれについて推定した前記相対深度と、前記複数の制御点の前記2次元位置とに基づいて、前記複数の制御点の相対的な3次元位置を求めるとともに、前記3次元位置を求める処理を、連接する前記制御点のペアを順番にずらして全ての前記ペアについて行うことにより、前記3次元姿勢を前記物体ごとに推定する姿勢推定部とを備え、
前記深度マップ推定部を構成するCNNは、前記画像が入力されたときに、前記画像上で前記一方の制御点に対する前記他方の制御点の相対深度を、仮定した前記複数の相対位置のそれぞれについて推定するように予め学習されている、3次元姿勢推定装置。
【請求項9】
前記位置検出部は、機械学習可能なCNNで構成され、前記複数の制御点の前記2次元位置の検出を、前記CNNでの演算によって実行し、
前記位置検出部を構成するCNNは、前記画像が入力されたときに、前記制御点の前記画像上での前記2次元位置を検出するように予め機械学習されている、請求項8に記載の3次元姿勢推定装置。
【請求項10】
前記深度マップ推定部は、前記相対深度の推定結果を示す相対深度マップを出力し、
前記位置検出部は、入力される前記画像と前記相対深度マップとに基づいて、前記2次元位置を前記物体ごとに検出し、
前記位置検出部は、演算部と、後処理部と、を含み、
前記演算部は、機械学習可能なCNNで構成されており、
前記演算部を構成するCNNは、前記画像と前記相対深度マップとが入力されたときに、前記物体の複数の制御点の前記画像上での前記2次元位置の候補とその尤度とを出力するように予め学習されており、
前記後処理部は、前記演算部から出力される前記2次元位置の候補の中から、前記尤度の最も高い候補を選択し、選択した前記候補の2次元位置の情報を出力する、請求項8に記載の3次元姿勢推定装置。
【請求項11】
前記深度マップ推定部を構成するCNNは、前記複数の相対位置のそれぞれに対応して、前記相対深度の推定結果を示す相対深度マップを複数パターン生成し、
前記複数パターンは、前記画像を複数のグリッドに分割したときに、任意のグリッドに対する他のグリッドの相対位置を、前記一方の制御点に対する前記他方の制御点の相対位置として仮定したパターンにそれぞれ対応しており、
前記姿勢推定部は、
前記複数の制御点の前記2次元位置に基づき、前記ペアのそれぞれについて、一方の制御点に対する他方の制御点の相対位置を求め、
前記複数パターンの前記相対深度マップを参照することにより、前記相対位置に対応する相対深度を抽出し、
抽出した前記相対深度と、前記複数の制御点の前記2次元位置とに基づいて、前記複数の制御点の相対的な3次元位置を求める、請求項8から10のいずれかに記載の3次元姿勢推定装置。
【請求項12】
前記複数の制御点は、前記物体としての人物の関節点を含む、請求項8から11のいずれかに記載の3次元姿勢推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、少なくとも1つの物体が写っている画像から、物体の3次元姿勢を物体ごとに推定する3次元姿勢推定方法と、その3次元姿勢推定方法をコンピュータに実行させるためのプログラムと、そのプログラムを記録した記録媒体と、3次元姿勢推定装置とに関する。
【背景技術】
【0002】
カメラで撮影した映像から人物の3次元姿勢(各関節点の3次元絶対/相対座標)を検出する技術は、監視カメラシステムなどの多くのアプリケーションの基礎技術として利用されている。近年では、CNN(Convolutional Neural Network)を用いて検出した人物の各関節の画像上の候補位置と、別途CNNで推定した深度とから、人物の3次元姿勢を推定する技術が提案されている(例えば非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】Dushyant Mehta, et al., “Single-Shot Multi-Person 3D Pose Estimation From Monocular RGB”, International Conference on 3D Vision (3DV 2018), August 28, 2018
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところが、非特許文献1の技術では、CNNで推定した深度が、画像上でどの位置の関節に対する相対深度であるのか不明である(相対深度を推定するにあたって画像上で基準となる関節位置が不明である)。このため、深度の推定が曖昧となり、深度の推定精度が低下する。その結果、物体の3次元姿勢の推定精度が低下する。
【0005】
本発明は、上記の問題点を解決するためになされたもので、その目的は、画像上で物体の骨格を規定する関節位置などの制御点の深度を推定するにあたって、深度推定の曖昧性を排除して深度の推定精度を向上させることができ、これによって物体の3次元姿勢の推定精度を向上させることができる3次元姿勢推定方法と、その3次元姿勢推定方法をコンピュータに実行させるためのプログラムと、そのプログラムを記録した記録媒体と、3次元姿勢推定装置とを提供することにある。
【課題を解決するための手段】
【0006】
本発明の一側面に係る3次元姿勢推定方法は、少なくとも1つの物体が写っている画像から、前記物体の3次元姿勢を前記物体ごとに推定する3次元姿勢推定方法であって、所定の前記物体の骨格を規定する制御点のペアのそれぞれについて、前記画像上で前記ペアの一方の制御点に対する他方の制御点の相対位置を複数仮定するとともに、仮定した前記複数の相対位置のそれぞれについて、前記一方の制御点を前記画像上の各位置に存在するものとして、前記一方の制御点に対する前記他方の制御点の相対深度を前記画像全体に渡って推定する深度マップ推定ステップと、前記画像を用いて、複数の前記制御点の前記画像上での2次元位置を前記物体ごとに検出する位置検出ステップと、仮定した前記複数の相対位置のそれぞれについて推定した前記相対深度と、前記複数の制御点の前記2次元位置とに基づいて、前記複数の制御点の相対的な3次元位置を求めることにより、前記3次元姿勢を前記物体ごとに推定する姿勢推定ステップとを含む。
【0007】
本発明の他の側面に係るプログラムは、上述した3次元姿勢推定方法をコンピュータに実行させるためのプログラムである。
【0008】
本発明のさらに他の側面に係る記録媒体は、上記のプログラムを記録した、コンピュータ読取可能な記録媒体である。
【0009】
本発明のさらに他の側面に係る3次元姿勢推定装置は、少なくとも1つの物体が写っている画像から、前記物体の3次元姿勢を前記物体ごとに推定する3次元姿勢推定装置であって、所定の前記物体の骨格を規定する制御点のペアのそれぞれについて、前記画像上で前記ペアの一方の制御点に対する他方の制御点の相対位置を複数仮定するとともに、仮定した前記複数の相対位置のそれぞれについて、前記一方の制御点を前記画像上の各位置に存在するものとして、前記一方の制御点に対する前記他方の制御点の相対深度を前記画像全体に渡って推定する深度マップ推定部と、前記画像を用いて、複数の前記制御点の前記画像上での2次元位置を前記物体ごとに検出する位置検出部と、仮定した前記複数の相対位置のそれぞれについて推定した前記相対深度と、前記複数の制御点の前記2次元位置とに基づいて、前記複数の制御点の相対的な3次元位置を求めることにより、前記3次元姿勢を前記物体ごとに推定する姿勢推定部とを備えている。
【発明の効果】
【0010】
深度マップ推定ステップ(または深度マップ推定部)により、画像上でペアを構成する一方の制御点に対する他方の制御点の相対位置が複数仮定され、その仮定された複数の相対位置のそれぞれについて、一方の制御点に対する他方の制御点の相対深度が画像全体に渡って推定される。したがって、推定される相対深度がどの制御点を基準とする深度であるかが明確である。よって、深度の推定が曖昧となることはない。
【0011】
また、位置検出ステップ(または位置検出部)により、複数の制御点の画像上での2次元位置が検出されるため、姿勢推定ステップでは(または姿勢推定部は)、複数の相対位置のそれぞれについて推定された相対深度と、複数の制御点の2次元位置とに基づいて、複数の制御点の相対的な3次元位置を求めることが可能となり、これによって物体の3次元姿勢を推定することが可能となる。例えば、複数の制御点の上記2次元位置から、ペアを構成する制御点同士の相対位置を求めることができるため、複数の相対位置のそれぞれについて推定された相対深度の中から、ペアを構成する制御点同士の相対位置に対応する相対深度を抽出し、このような相対深度の抽出を複数のペアのそれぞれについて行うことにより、複数の制御点の相対的な3次元位置を求めて物体の3次元姿勢を推定することが可能となる。
【0012】
以上のように、物体の骨格を規定する複数の制御点の相対深度を推定するにあたって、深度の推定が曖昧となることはないため、深度の推定精度を向上させることができる。したがって、推定された相対深度を利用して物体の3次元姿勢を推定する際の推定精度を向上させることができる。
【図面の簡単な説明】
【0013】
図1】本発明の実施の形態の3次元姿勢推定装置の概略の構成を示すブロック図である。
図2】上記3次元姿勢推定装置の深度マップ推定部および位置検出部を構成するCNNの構成を模式的に示す説明図である。
図3】上記3次元姿勢推定装置によって実行される3次元位置推定方法による処理の流れを示すフローチャートである。
図4】上記深度マップ推定部から出力される相対深度マップを模式的に示す説明図である。
図5】上記相対深度マップの一例を模式的に示す説明図である。
図6】上記相対深度マップの他の例を模式的に示す説明図である。
図7】上記位置検出部によって各制御点の2次元位置を検出する処理の一例を模式的に示す説明図である。
図8】連接する一方の制御点を基準として他方の制御点の3次元位置を求める処理を模式的に示す説明図である。
図9】上記位置検出部によって各制御点の2次元位置を検出する処理の他の例を模式的に示す説明図である。
【発明を実施するための形態】
【0014】
本発明の実施の形態について、図面に基づいて説明すれば、以下の通りである。なお、本発明は、以下の内容に限定されるわけではない。
【0015】
〔3次元姿勢推定装置の構成〕
図1は、本実施形態の3次元姿勢推定装置1の概略の構成を示すブロック図である。3次元姿勢推定装置1は、例えば、パーソナルコンピュータなどの端末装置で構成されており、店舗内に設置される少なくとも1台のカメラCAと通信回線(有線、無線を問わない)を介して接続されている。カメラCAでの撮影によって取得された画像(動画または静止画)のデータが3次元姿勢推定装置1に入力されると、3次元姿勢推定装置1では、後述する3次元姿勢推定方法による処理を実行し、これによって、画像に写っている物体の3次元姿勢が推定される。なお、本実施形態において、「物体」とは、主に人物を指すが、人物以外であってもよい。例えば、動物、車や電車などの乗物、建物などの構造物も「物体」に含めることができる。以下、3次元姿勢推定装置1の詳細について説明する。
【0016】
3次元姿勢推定装置1は、制御部2と、記憶部3と、入力部4と、表示部5と、通信部6と、読取部7と、深度マップ推定部8と、位置検出部9と、姿勢推定部10とを備えている。
【0017】
制御部2は、例えば中央演算処理装置(CPU;Central Processing Unit)で構成されており、記憶部3に記憶された動作プログラムに従って動作し、3次元姿勢推定装置1の各部の動作を制御する。
【0018】
記憶部3は、上記動作プログラムや、カメラCAで取得された画像のデータなどを記憶するメモリである。記憶部3は、例えばハードディスクで構成されるが、RAM(Random Access Memory)、ROM(Read Only Memory)、光ディスク、光磁気ディスク、不揮発性メモリなどの記録媒体から適宜選択して構成されてもよい。
【0019】
入力部4は、例えばキーボード、マウス、タッチパッド、タッチパネルなどで構成されており、ユーザによる各種の指示入力を受け付ける。表示部5は、カメラCAで取得された画像や、姿勢推定部10によって推定された物体の3次元姿勢などの各種の情報を表示するデバイスであり、例えば液晶表示装置で構成される。通信部6は、外部(カメラCAを含む)と通信するためのインターフェースであり、入出力端子などを含んで構成される。なお、例えばカメラCAと3次元姿勢推定装置1とが無線で通信(例えば画像データの送受信)を行う場合、通信部6は、アンテナ、送受信回路、変調回路、復調回路などを含んで構成されてもよい。
【0020】
読取部7は、記録媒体Rに記録された情報(例えば制御部2の動作プログラム)を読み取る装置であり、例えばディスクドライブなどの読取装置で構成される。なお、記録媒体Rが可搬型の不揮発性メモリである場合、上記不揮発性メモリの接続部が指し込まれる接続ポートも読取部7に含まれるとする。
【0021】
深度マップ推定部8は、所定の物体の骨格を規定する制御点のペアのそれぞれについて、画像上でペアの一方の制御点に対する他方の制御点の相対位置を複数仮定するとともに、仮定した複数の相対位置のそれぞれについて、一方の制御点を画像上の各位置に存在するものとして、一方の制御点に対する他方の制御点の相対深度を画像全体に渡って推定し、相対深度マップとして出力する。
【0022】
ここで、物体が例えば人物であれば、上記の制御点には、人物の関節の位置(関節点)や頭蓋骨の中心位置が含まれる。なお、画像上で、人物の目、鼻、耳の位置も、頭蓋骨の大きさや形状を規定することから、制御点になり得る。また、制御点のペアとは、ここでは、連接する制御点のペアを指す。なお、「連接する制御点」とは、物体の骨格を規定するにあたって2つの制御点が連なり続く位置関係にあることを意味する。したがって、例えば画像上で、人物の頭および首の各位置は、連接する2つの制御点であり、かつ、連接する制御点のペアを構成する。また、例えば画像上で、人物の左膝および左踵の各位置も、連接する2つの制御点であり、かつ、連接する制御点のペアを構成する。したがって、例えば、深度マップ推定部8は、画像上で、連接する制御点のペアを構成する人物の左肩および左肘の相対位置を3つ仮定したとき、左肩に対する左肘の相対深度を、仮定した3つの相対位置のそれぞれについて推定した相対深度マップを出力する。
【0023】
このような深度マップ推定部8は、例えば機械学習が可能なCNNで構成されている。つまり、深度マップ推定部8を構成するCNNは、画像が入力されたときに、上記画像上で、連接する制御点のペアを構成する一方の制御点に対する他方の制御点の相対深度を、仮定した複数の相対位置のそれぞれについて検出(推定)するように予め学習されている。
【0024】
なお、連接する制御点のペア(手首および肘ペア、肘および肩ペアなど)、およびそれぞれのペアに対して仮定される相対位置など、制御点のペアに関する定義は予め設定されており、CNNはその設定の下で学習される。したがって、CNNは、そのような設定の下で画像全体の相対深度マップを出力する。
【0025】
位置検出部9は、入力される画像を用いて、複数の制御点の画像上での2次元位置を物体ごとに検出する。このような位置検出部9は、深度マップ推定部8と同様に、機械学習が可能なCNNで構成されている。なお、位置検出部9での上記2次元位置の検出にあたっては、例えば、Zhe Cao, et al., "OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields", Computer Vision and Pattern Recognition (cs.CV), Submitted on 18 Dec 2018に記載の技術など、公知の技術を利用することができる。
【0026】
上記した深度マップ推定部8および位置検出部9を構成するCNNは、リアルタイムな画像処理に特化した演算装置であるGPU(Graphics Processing Unit)によって実現することができる。
【0027】
姿勢推定部10は、深度マップ推定部8によって複数の相対位置のそれぞれについて推定した相対深度と、位置検出部9によって検出された複数の制御点の2次元位置とに基づいて、複数の制御点の相対的な3次元位置を求めることにより、3次元姿勢を物体ごとに推定する。このような姿勢推定部10は、例えばCPUで構成されるが、上記のGPUで構成されてもよい。
【0028】
ここで、深度マップ推定部8および位置検出部9を構成するCNNについて、説明を補足しておく。
【0029】
図2は、CNNの構成を模式的に示す説明図である。CNNは、入力層11と、畳み込み層12と、プーリング層13と、出力層14とを有して構成される。畳み込み層12およびプーリング層13は、少なくとも1組あればよいが、複数組あってもよい。
【0030】
CNNを構成する上述した各層は、それぞれ複数のノード(またはユニット)を有しており、各層間で、複数のノードの少なくとも一部がエッジで結ばれている。ニューラルネットワークとは、人間の神経ネットワークを模倣した情報処理システムのことであるが、上記のノードは、人間の神経細胞に相当する工学的なニューロンのモデルを表す。各層は、活性化関数(応答関数)と呼ばれる関数を持ち、エッジは重みを持つ。したがって、各層のノードから出力される値は、前の層のノードの値と、エッジの重みと、層が持つ活性化関数とから計算される。なお、エッジの重みは、学習によって変化させることができる。
【0031】
入力層11の各ノードには、1枚の画像を構成する各画素のデータ(画素値)がそれぞれ入力される。畳み込み層12は、前の層の所定のノードから出力される値に対してフィルタ処理を行って特徴マップを得る。プーリング層13は、畳み込み層12から出力された特徴マップをさらに縮小して新たな特徴マップを得る。出力層14は、CNNの最終層であり、前の層のノードの値と、エッジの重みと、出力層14が持つ活性化関数とから、所定の情報(例えばペアを構成する一方の制御点に対する他方の制御点の相対深度や、各制御点の画像上での2次元位置の情報など)を出力する。なお、出力層14は、フィルタ処理を行う畳み込み層で構成されてもよいし、1つ前の層の全ノードからの出力を結合し、所定の演算を行って各パラメータを出力する全結合層で構成されてもよい。
【0032】
CNNの学習アルゴリズムとしては、例えば、正解付きの画像データを用い、上記画像データを入力したときに得られる出力層14からの出力値と、正解を示す値との2乗誤差が最小となるように、最急降下法を用いて、各層(エッジ)の重みを出力層14側から入力層11側に向かって順次変化させていく誤差逆伝播法(バックプロパゲーション)を用いることができる。このようにCNNを予め学習させておくことにより、少なくとも1つの物体が写った画像をCNNに入力させたときに、上述した所定の情報をCNNから出力させることができる。つまり、ペアを構成する一方の制御点に対する他方の制御点の相対深度や、各制御点の画像上での2次元位置を検出(推定)することができる。
【0033】
〔3次元位置推定方法〕
次に、本実施形態の3次元位置推定方法について説明する。図3は、図1の3次元姿勢推定装置1によって実行される3次元位置推定方法による処理の流れを示すフローチャートである。本実施形態の3次元位置推定方法は、深度マップ推定ステップ(S1)と、位置検出ステップ(S2)と、姿勢推定ステップ(S3)とを含む。以下、より詳細に説明する。
【0034】
(S1;深度マップ推定ステップ)
S1では、深度マップ推定部8は、画像が入力されたときに、CNNでのニューロ演算により、連接する制御点の複数のペアのそれぞれについて、ペアの一方の制御点に対する他方の制御点の相対位置を複数仮定するとともに、仮定した複数の相対位置のそれぞれについて、一方の制御点を画像上の各位置に存在するものとして、一方の制御点に対する他方の制御点の相対深度を画像全体に渡って推定し、相対深度の推定結果を示す相対深度マップを出力する。なお、制御点の数がN個で、連接する制御点のペアの個数をL個としたとき、L=(N-1)である。ただし、Lは複数(L≧2)であることから、N≧3である。
【0035】
例えば、図4は、人物が写った画像を、深度マップ推定部8を構成するCNNに入力して得られる特徴マップ(相対深度マップ)を模式的に示している。図4では、連接する制御点のペアとして、「頭・首」ペアから「左膝・左踵」ペアまでのL個のペアのそれぞれについて、P×Pパターンの相対深度マップが得られた場合を示している。なお、Pは2以上の整数とする。
【0036】
ここで、上記相対深度マップの詳細について説明する。図5は、「頭・首」ペアにおいて、縦×横=P×Pのグリッドに分割される画像上で、「頭」に対する「首」の相対位置を(x1,y1)と仮定したときの相対深度マップを模式的に示している。また、図6は、「頭・首」ペアにおいて、縦×横=P×Pのグリッドに分割される画像上で、「頭」に対する「首」の相対位置を(xp,yp)と仮定したときの相対深度マップを模式的に示している。なお、これらの図中の矢印が相対深度(単位は例えばcm)を示しているとする。
【0037】
P=3では、任意のグリッドに対する他のグリッドの相対位置は、P×P=3×3=9通り存在する(同一グリッド間での相対位置も含む)。したがって、この場合、深度マップ推定部8は、一方の制御点(例えば「頭」)に対する他方の制御点(例えば「首」)の相対位置として、9通りを仮定することができる。そして、深度マップ推定部8は、仮定したそれぞれの相対位置について、一方の制御点(例えば「頭」)に対する他方の制御点(例えば「首」)の相対深度を、予め学習されたCNNによって推定し、全部で9通り(P×Pパターン)の相対深度マップを得ることができる。なお、「頭・首」ペア以外の各ペアについても、上記と同様にして、P×Pパターンの相対深度マップをそれぞれ得ることができる。
【0038】
このように、S1では、深度マップ推定部8を構成するCNNでのニューロ演算により、連接する制御点の各ペアについて、仮定した複数の相対位置のそれぞれに対応して、相対深度の推定結果を示す相対深度マップが複数パターン(P×Pパターン)生成される。
【0039】
なお、ペアを構成する制御点のうち、基準となる一方の制御点が画像上の任意の位置Xに存在するとし、さらに他方の制御点が位置Xから画像上で相対位置dXの位置(X+dX)に存在すると仮定した場合の相対深度をm(X,dX)とする。この場合、深度マップ推定部8を構成するCNNは、各相対位置dX((x1,y1)~(xp,yp)のいずれか)について相対深度マップM(dX)を1枚出力する。したがって、画像サイズを縦Wグリッド×横Hグリッドとしたとき、相対深度マップM(dX)は、{m((0,0),dX),…,m((W-1,H-1),dX)}の相対深度の集合、すなわちW×Hの相対深度マップとなる。CNNでは、Xと(X+dX)の位置に各制御点が存在するとしてそれぞれ設定されたX(画像全体)およびdX((x1,y1)~(xp,yp)のP×P個)の範囲に渡って相対深度の値が網羅的に推定されるため、S1で深度マップ推定部8(CNN)から出力される相対深度マップは、W×H×(P×P)の3階のテンソルとなる。
【0040】
(S2;位置検出ステップ)
S2では、位置検出部9は、上述した"OpenPose"のアルゴリズムに基づくCNNでのニューロ演算により、入力画像から複数の制御点の上記画像上での2次元位置(2次元座標)を検出(推定)する。例えば、図7に示すように、画像に写っている人物の頭、首、左肩、などの各制御点の2次元位置が位置検出部9によって検出される。
【0041】
(S3;姿勢推定ステップ)
S3では、姿勢推定部10は、S1で推定した相対深度、つまり、制御点の各ペアについて仮定した複数の相対位置のそれぞれについて推定した相対深度と、S2で検出した複数の制御点の2次元位置とに基づいて、複数の制御点の相対的な3次元位置を求めることにより、画像中の人物の3次元姿勢を推定する。
【0042】
例えば、図8は、連接する制御点のペアである「頭・首」ペアにおいて、頭を基準(原点位置)として首の3次元位置を求める処理を模式的に示している。S2で各制御点の2次元位置が検出されると、頭を基準とする首の相対位置(2次元座標)は特定される。ここでは、頭に対する首の相対位置を示す2次元座標を、(xh,yh)とする。姿勢推定部10は、S1で、「頭・首」ペアについて仮定した9通りの相対位置から、(xh,yh)と一致する相対位置を検出するとともに、S1で得られた複数の相対深度マップを参照して、上記相対位置に対応する相対深度を検出(抽出)する。抽出した相対深度、すなわち、頭に対する首の相対深度が例えばzhであると、姿勢推定部10は、頭に対する首の相対位置を示す2次元座標(xh,yh)と、頭に対する首の相対深度(zh)とに基づき、頭に対する首の3次元位置の座標を(xh,yh,zh)として出力する。
【0043】
次に、姿勢推定部10は、首を基準として、首とペアとなる制御点(例えば左肩)についても上記と同様の処理を行う。これにより、首に対する左肩の3次元位置を示す座標が姿勢推定部10から出力される。以降、姿勢推定部10は、連接する制御点のペアを順番にずらして上記と同様の処理を行うことにより、全てのペアについて、一方の制御点に対する他方の制御点の相対的な3次元位置の座標を取得することができ、これによって画像中の人物の3次元姿勢を推定することが可能となる。
【0044】
〔効果〕
以上のように、S1では、画像上でペアを構成する一方の制御点(例えば頭)に対する他方の制御点(例えば首)の相対位置が複数(例えば9通り)仮定され、その仮定された複数の相対位置のそれぞれについて、一方の制御点に対する他方の制御点の相対深度が推定される(図5図6参照)。したがって、推定される相対深度がどの制御点を基準とする深度であるかが明確である(上述の例では、画像上で人物の首の相対深度が頭を基準とする深度であることが明確である)。よって、従来のように深度の推定が曖昧となることはなく、深度の推定精度を向上させることができる。
【0045】
また、S2では、複数の制御点の画像上での2次元位置が検出されるため、画像上でペアを構成する2つの制御点の相対位置を求めることができる。これにより、S3では、複数の相対位置のそれぞれについて推定された相対深度を参照して、ペアを構成する2つの制御点の相対位置(例えば(xh,yh))に対応する相対深度(例えば(zh))を抽出することができる。そして、このような相対深度の抽出を複数のペアのそれぞれについて行うことにより、複数の制御点の相対的な3次元位置を求めて物体の3次元姿勢を推定することができる。本実施形態では、上述のように、深度の推定精度を向上させることができるため、推定された相対深度を利用して、上記のように物体の3次元姿勢を推定する際の推定精度も向上させることができる。
【0046】
また、S2では、複数の制御点の2次元位置の検出を、CNNでのニューロ演算によって実行する。この場合、複数の制御点の2次元位置の検出を迅速にかつ高精度で行うことができるとともに、CNNの機械学習による2次元位置の検出精度のさらなる向上が期待できる。
【0047】
また、S1では、一方の制御点に対する他方の制御点の相対深度の推定を、CNNでのニューロ演算によって実行する。この場合、相対深度の推定を迅速にかつ高精度で行うことができるとともに、CNNの機械学習による相対深度の推定精度のさらなる向上が期待できる。
【0048】
また、S1では、CNNでのニューロ演算により、制御点の各ペアについて、ペアを構成する2つの制御点について仮定した複数の相対位置のそれぞれに対応して、相対深度の推定結果を示す相対深度マップを複数パターン(例えば1つのペアにつき9パターン)生成している。そして、S3では、(1)S2で検出された複数の制御点の2次元位置に基づき、複数のペアのそれぞれについて、一方の制御点に対する他方の制御点の相対位置を求め、(2)S1で生成された複数パターンの相対深度マップを参照することにより、上記(1)で求めた相対位置に対応する相対深度を抽出し、(3)上記(2)で抽出した相対深度と、S2で求めた複数の制御点の2次元位置とに基づいて、複数の制御点の相対的な3次元位置を求める。ニューロ演算によって得られる複数パターンの相対深度マップを参照することにより、制御点の相対位置に対応する相対深度を容易に抽出できるため、抽出した相対深度と上記2次元位置とに基づいて、複数の制御点の相対的な3次元位置を容易に求めることが可能となる。
【0049】
また、本実施形態では、複数の制御点は、物体としての人物の関節点を含む。この場合、複数の関節点の相対的な3次元位置を求めることによって、人物の3次元姿勢を推定すること可能となる。
【0050】
なお、以上では、画像に写っている人物が1人であり、その1人の人物の3次元姿勢を推定する例について説明したが、画像に写っている人物が複数の場合でも、人物ごとに(物体ごとに)、上述した深度の推定および制御点の2次元位置の検出を行うことにより、人物ごとに(物体ごとに)の3次元姿勢を推定することが可能である。
【0051】
〔変形例〕
図9は、上述したS2の位置検出ステップの他の例を模式的に示す説明図である。S2の位置検出ステップでは、位置検出部9が、カメラCAからの入力画像に加えて、S1の深度推定ステップで推定した相対深度(S1で生成された相対深度マップ)を用いて、複数の制御点の画像上での2次元位置を物体ごとに検出してもよい。このような位置検出部9は、演算部9aと、後処理部9bとで構成することができる。演算部9aは、例えばCNNで構成され、後処理部9bは、例えばCPUで構成される。
【0052】
例えば、画像と相対深度マップとが入力されたときに、物体の複数の制御点の画像上での2次元位置の候補とその尤度(確からしさ、スコア)とを出力するように、演算部9aを予め学習させておく。2次元位置の検出時には、後処理部9bが、演算部9aから出力される2次元位置の候補の中から、尤度の最も高い候補を選択し、選択した候補の2次元位置の情報(例えば座標)を出力する。
【0053】
このように、カメラCAからの入力画像に加えて、相対深度の情報(相対深度マップ)を用いることにより、2次元位置の検出に用いる情報量が増えるため、各制御点の2次元位置の検出精度がさらに向上し、検出した2次元位置に基づく3次元姿勢の推定精度をさらに向上させることが可能となる。
【0054】
特に、位置検出部9を、上記の演算部9aと、後処理部9bとで構成することにより、各制御点の2次元位置の検出精度を確実に向上させて、3次元姿勢の推定精度を確実に向上させることが可能となる。
【0055】
〔プログラムおよび記録媒体〕
本実施形態で説明した3次元姿勢推定装置1は、例えば、所定のプログラム(アプリケーションソフトウェア)をインストールしたコンピュータ(PC)で構成することができる。上記プログラムをコンピュータ(例えばCPUとしての制御部2)が読み取って実行することにより、3次元姿勢推定装置1の各部を動作させて上述した各処理(各工程)を実行させることができる。このようなプログラムは、例えばネットワークを介して外部からダウンロードすることによって取得されて記憶部3に記憶される。また、上記プログラムは、例えばCD-ROM(Compact Disk-Read Only Memory)などのコンピュータ読取可能な記録媒体Rに記録され、この記録媒体Rから上記プログラムをコンピュータが読み取って記憶部3に記憶される形態であってもよい。
【0056】
〔その他〕
上述した本実施形態の3次元姿勢推定装置1は、必ずしもカメラCAと接続されている必要はなく、外部から画像データを取得できる構成であればよい。例えば、3次元姿勢推定装置1は、画像データのファイルを添付した電子メールを他の端末装置から受信することにより、上記画像データを取得したり、記録媒体Rに記録された画像データを読取部7によって読み取ることにより、3次元姿勢の推定に必要な上記画像データを取得する構成であってもよい。
【0057】
以上で説明した本実施形態の3次元姿勢推定方法、プログラム、記録媒体および3次元姿勢推定装置は、以下のように表現されてもよい。
【0058】
1.少なくとも1つの物体が写っている画像から、前記物体の3次元姿勢を前記物体ごとに推定する3次元姿勢推定方法であって、
所定の前記物体の骨格を規定する制御点のペアのそれぞれについて、前記画像上で前記ペアの一方の制御点に対する他方の制御点の相対位置を複数仮定するとともに、仮定した前記複数の相対位置のそれぞれについて、前記一方の制御点を前記画像上の各位置に存在するものとして、前記一方の制御点に対する前記他方の制御点の相対深度を前記画像全体に渡って推定する深度マップ推定ステップと、
前記画像を用いて、複数の前記制御点の前記画像上での2次元位置を前記物体ごとに検出する位置検出ステップと、
仮定した前記複数の相対位置のそれぞれについて推定した前記相対深度と、前記複数の制御点の前記2次元位置とに基づいて、前記複数の制御点の相対的な3次元位置を求めることにより、前記3次元姿勢を前記物体ごとに推定する姿勢推定ステップとを含むことを特徴とする3次元姿勢推定方法。
【0059】
2.前記位置検出ステップでは、前記複数の制御点の前記2次元位置の検出をニューロ演算によって実行することを特徴とする前記1に記載の3次元姿勢推定方法。
【0060】
3.前記深度マップ推定ステップでは、前記相対深度の推定をニューロ演算によって実行することを特徴とする前記1または2に記載の3次元姿勢推定方法。
【0061】
4.前記位置検出ステップでは、前記画像に加えて、前記深度マップ推定ステップで推定した前記相対深度を用いて、前記2次元位置を前記物体ごとに検出することを特徴とする前記1に記載の3次元姿勢推定方法。
【0062】
5.前記位置検出ステップでは、前記画像および前記相対深度に基づいて、前記2次元位置の候補および尤度をニューロ演算によって求め、前記2次元位置の候補の中から、前記尤度の最も高い候補を選択し、選択した前記候補の2次元位置の座標を出力することを特徴とする前記4に記載の3次元姿勢推定方法。
【0063】
6.前記深度マップ推定ステップでは、前記ニューロ演算により、前記複数の相対位置のそれぞれに対応して、前記相対深度の推定結果を示す相対深度マップを複数パターン生成し、
前記姿勢推定ステップでは、
前記複数の制御点の前記2次元位置に基づき、前記ペアのそれぞれについて、一方の制御点に対する他方の制御点の相対位置を求め、
前記複数パターンの前記相対深度マップを参照することにより、前記相対位置に対応する相対深度を抽出し、
抽出した前記相対深度と、前記複数の制御点の前記2次元位置とに基づいて、前記複数の制御点の相対的な3次元位置を求めることを特徴とする前記1から5のいずれかに記載の3次元姿勢推定方法。
【0064】
7.前記複数の制御点は、前記物体としての人物の関節点を含むことを特徴とする前記1から6のいずれかに記載の3次元姿勢推定方法。
【0065】
8.前記1から7のいずれかに記載の3次元姿勢推定方法をコンピュータに実行させるためのプログラム。
【0066】
9.前記8に記載のプログラムを記録した、コンピュータ読取可能な記録媒体。
【0067】
10.少なくとも1つの物体が写っている画像から、前記物体の3次元姿勢を前記物体ごとに推定する3次元姿勢推定装置であって、
所定の前記物体の骨格を規定する制御点のペアのそれぞれについて、前記画像上で前記ペアの一方の制御点に対する他方の制御点の相対位置を複数仮定するとともに、仮定した前記複数の相対位置のそれぞれについて、前記一方の制御点を前記画像上の各位置に存在するものとして、前記一方の制御点に対する前記他方の制御点の相対深度を前記画像全体に渡って推定する深度マップ推定部と、
前記画像を用いて、複数の前記制御点の前記画像上での2次元位置を前記物体ごとに検出する位置検出部と、
仮定した前記複数の相対位置のそれぞれについて推定した前記相対深度と、前記複数の制御点の前記2次元位置とに基づいて、前記複数の制御点の相対的な3次元位置を求めることにより、前記3次元姿勢を前記物体ごとに推定する姿勢推定部とを備えていることを特徴とする3次元姿勢推定装置。
【0068】
11.前記位置検出部は、前記複数の制御点の前記2次元位置の検出をニューロ演算によって実行することを特徴とする前記10に記載の3次元姿勢推定装置。
【0069】
12.前記深度マップ推定部は、前記相対深度の推定をニューロ演算によって実行することを特徴とする前記10または11に記載の3次元姿勢推定装置。
【0070】
13.前記位置検出部は、前記画像に加えて、前記深度マップ推定部によって推定された前記相対深度を用いて、前記2次元位置を前記物体ごとに検出することを特徴とする前記10に記載の3次元姿勢推定装置。
【0071】
14.前記位置検出部は、
前記画像および前記相対深度に基づいて、前記2次元位置の候補および尤度をニューロ演算によって求める演算部と、
前記2次元位置の候補の中から、前記尤度の最も高い候補を選択し、選択した前記候補の2次元位置の座標を出力する後処理部とを有していることを特徴とする前記13に記載の3次元姿勢推定装置。
【0072】
15.前記深度マップ推定部は、前記ニューロ演算により、前記複数の相対位置のそれぞれに対応して、前記相対深度の推定結果を示す相対深度マップを複数パターン生成し、
前記姿勢推定部は、
前記複数の制御点の前記2次元位置に基づき、前記ペアのそれぞれについて、一方の制御点に対する他方の制御点の相対位置を求め、
前記複数パターンの前記相対深度マップを参照することにより、前記相対位置に対応する相対深度を抽出し、
抽出した前記相対深度と、前記複数の制御点の前記2次元位置とに基づいて、前記複数の制御点の相対的な3次元位置を求めることを特徴とする前記10から14のいずれかに記載の3次元姿勢推定装置。
【0073】
16.前記複数の制御点は、前記物体としての人物の関節点を含むことを特徴とする前記10から15のいずれかに記載の3次元姿勢推定装置。
【0074】
以上、本発明の実施形態について説明したが、本発明の範囲はこれに限定されるものではなく、発明の主旨を逸脱しない範囲で拡張または変更して実施することができる。
【産業上の利用可能性】
【0075】
本発明は、例えば画像に写っている物体の3次元姿勢を推定するアプリケーションに利用可能である。
【符号の説明】
【0076】
1 3次元姿勢推定装置
8 深度マップ推定部
9 位置検出部
10 姿勢推定部
R 記録媒体
図1
図2
図3
図4
図5
図6
図7
図8
図9