(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025009453
(43)【公開日】2025-01-20
(54)【発明の名称】関節姿勢推定方法、関節姿勢推定システム、及び関節姿勢推定プログラム
(51)【国際特許分類】
G06T 7/60 20170101AFI20250110BHJP
G06T 7/00 20170101ALI20250110BHJP
【FI】
G06T7/60 150D
G06T7/00 300E
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023112465
(22)【出願日】2023-07-07
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110003199
【氏名又は名称】弁理士法人高田・高橋国際特許事務所
(72)【発明者】
【氏名】小堀 訓成
(72)【発明者】
【氏名】ジンダラートウドムディー ジラ
(72)【発明者】
【氏名】コウ ゼン
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096CA02
5L096DA02
5L096EA13
5L096EA14
5L096FA09
5L096FA12
5L096FA67
5L096FA69
5L096FA73
5L096GA51
5L096HA11
5L096JA03
5L096KA04
5L096KA09
(57)【要約】
【課題】物体の二次元関節姿勢を精度よく推定することができる技術を提供する。
【解決手段】二次元関節姿勢モデルに対象物体の画像10を入力することにより推定二次元関節姿勢12が得られる。二次元関節姿勢モデルは、関節物体の画像の入力を受けて、関節物体の二次元関節姿勢を関節ごとの推定位置の確信度とともに出力するように構成されている。次に、推定二次元関節姿勢12から推定位置の確信度が閾値未満の関節が除去されてクエリ姿勢13が生成される。次に、サンプル関節物体の基本関節姿勢ごとに複数のサンプル二次元関節姿勢が登録されたデータベース150から、クエリ姿勢13に最も近い補正用二次元関節姿勢14が取得される。そして、推定位置の確信度が閾値未満の関節を補正用二次元関節姿勢14の対応する関節に置き換えることによって対象物体の二次元関節姿勢15が得られる。
【選択図】
図4
【特許請求の範囲】
【請求項1】
複数の関節で表現可能な関節物体の画像の入力を受けて前記関節物体の二次元関節姿勢を関節ごとの推定位置の確信度とともに出力するように構成されたモデルを用いて、前記関節物体に属する対象物体の画像から前記対象物体の二次元関節姿勢を推定することと、
前記対象物体の二次元関節姿勢から確信度が閾値未満の関節を除去してクエリ姿勢を生成することと、
サンプル関節物体の基本関節姿勢ごとに複数のサンプル二次元関節姿勢が登録されたデータベースから、前記クエリ姿勢に最も近いサンプル二次元関節姿勢を取得することと、
前記確信度が閾値未満の関節を前記最も近いサンプル二次元関節姿勢の対応する関節に置き換えることによって前記対象物体の二次元関節姿勢を補正することと、を含む
ことを特徴とする関節姿勢推定方法。
【請求項2】
請求項1に記載の関節姿勢推定方法において、
前記データベースから前記クエリ姿勢に最も関連する基本関節姿勢を取得すること、をさらに含む
ことを特徴とする関節姿勢推定方法。
【請求項3】
請求項2に記載の関節姿勢推定方法において、
前記基本関節姿勢は三次元関節姿勢である
ことを特徴とする関節姿勢推定方法。
【請求項4】
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサと結合され複数の実行可能なインストラクションを記憶したプログラムメモリと、を備え、
前記複数の実行可能なインストラクションは、前記少なくとも一つのプロセッサに、
複数の関節で表現可能な関節物体の画像の入力を受けて前記関節物体の二次元関節姿勢を関節ごとの推定位置の確信度とともに出力するように構成されたモデルを用いて、前記関節物体に属する対象物体の画像から前記対象物体の二次元関節姿勢を推定することと、
前記対象物体の二次元関節姿勢から確信度が閾値未満の関節を除去してクエリ姿勢を生成することと、
サンプル関節物体の基本関節姿勢ごとに複数のサンプル二次元関節姿勢が登録されたデータベースから、前記クエリ姿勢に最も近いサンプル二次元関節姿勢を取得することと、
前記確信度が閾値未満の関節を前記最も近いサンプル二次元関節姿勢の対応する関節に置き換えることによって前記対象物体の二次元関節姿勢を補正することと、を実行させるように構成されている
ことを特徴とする関節姿勢推定システム。
【請求項5】
少なくとも一つのプロセッサで実行可能な複数のインストラクションを含む関節姿勢推定プログラムであって、
前記複数のインストラクションは前記少なくとも一つのプロセッサに、
複数の関節で表現可能な関節物体の画像の入力を受けて前記関節物体の二次元関節姿勢を関節ごとの推定位置の確信度とともに出力するように構成されたモデルを用いて、前記関節物体に属する対象物体の画像から前記対象物体の二次元関節姿勢を推定することと、
前記対象物体の二次元関節姿勢から確信度が閾値未満の関節を除去してクエリ姿勢を生成することと、
サンプル関節物体の基本関節姿勢ごとに複数のサンプル二次元関節姿勢が登録されたデータベースから、前記クエリ姿勢に最も近いサンプル二次元関節姿勢を取得することと、
前記確信度が閾値未満の関節を前記最も近いサンプル二次元関節姿勢の対応する関節に置き換えることによって前記対象物体の二次元関節姿勢を補正することと、を実行させるように構成されている
ことを特徴とする関節姿勢推定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人を含む物体の関節姿勢の推定に用いて好適な技術に関する。
【背景技術】
【0002】
特許文献1には物体の姿勢を推定する技術が開示されている。この従来技術によれば、まず、多関節の物体を含む距離画像から物体の関節位置候補が算出される。次に、物体に相当する多関節物体モデルにおける関節間の配置関係に対する許容範囲の情報に基づいて、関節位置候補の配置の整合性が評価される。そして、その評価に基づいて、関節位置候補から物体の関節位置を決定することによって物体の姿勢が推定される。
【0003】
しかし、上記の従来技術ではオクルージョンやトランケーションについては考慮されていない。このため、オクルージョンやトランケーションを含む困難な状況下では、関節位置の推定精度が低下する虞がある。
【0004】
なお、本開示に関連する技術分野の技術水準を示す文献としては、特許文献1の他にも特許文献2及び特許文献3を例示することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第6433149号公報
【特許文献2】特許第4709723号公報
【特許文献3】特許第5555207号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は、上述のような問題に鑑みてなされたもので、オクルージョンやトランケーションを含む困難な状況下であっても物体の二次元関節姿勢を精度よく推定することができる技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示は上記目的を達成するための関節姿勢推定技術を提供する。本開示の関節姿勢推定技術は、関節姿勢推定方法、関節姿勢推定システム、及び関節姿勢推定プログラムを含む。
【0008】
本開示の関節姿勢推定方法は以下の第一乃至第四のステップを含む。第一のステップは複数の関節で表現可能な関節物体に属する対象物体の画像から対象物体の二次元関節姿勢を推定するステップである。二次元関節姿勢の推定には二次元関節姿勢モデルが用いられる。二次元関節姿勢モデルは、関節物体の画像の入力を受けて、関節物体の二次元関節姿勢を関節ごとの推定位置の確信度とともに出力するように構成されたモデルである。第二のステップは対象物体の二次元関節姿勢から推定位置の確信度が閾値未満の関節を除去してクエリ姿勢を生成するステップである。第三のステップはクエリ姿勢に最も近いサンプル二次元関節姿勢をデータベースから取得するステップである。データベースには、サンプル関節物体の基本関節姿勢ごとに複数のサンプル二次元関節姿勢が登録されている。第四のステップは推定位置の確信度が閾値未満の関節を最も近いサンプル二次元関節姿勢の対応する関節に置き換えることによって対象物体の二次元関節姿勢を補正するステップである。
【0009】
本開示の関節姿勢推定システムは少なくとも一つのプロセッサと、少なくとも一つのプロセッサと結合され複数のインストラクションを記憶したプログラムメモリとを備える。上記複数のインストラクションは少なくとも一つのプロセッサに以下の第一乃至第四の処理を実行させるように構成されている。第一の処理は二次元関節姿勢モデルを用いて複数の関節で表現可能な関節物体に属する対象物体の画像から対象物体の二次元関節姿勢を推定する処理である。第二の処理は対象物体の二次元関節姿勢から推定位置の確信度が閾値未満の関節を除去してクエリ姿勢を生成する処理である。第三の処理はクエリ姿勢に最も近いサンプル二次元関節姿勢をデータベースから取得する処理である。第四の処理は推定位置の確信度が閾値未満の関節を最も近いサンプル二次元関節姿勢の対応する関節に置き換えることによって対象物体の二次元関節姿勢を補正する処理である。
【0010】
本開示の関節姿勢推定プログラムは少なくとも一つのプロセッサで実行可能な複数のインストラクションを含む。上記複数のインストラクションは少なくとも一つのプロセッサに以下の第一乃至第四の処理を実行させるように構成されている。第一の処理は二次元関節姿勢モデルを用いて複数の関節で表現可能な関節物体に属する対象物体の画像から対象物体の二次元関節姿勢を推定する処理である。第二の処理は対象物体の二次元関節姿勢から推定位置の確信度が閾値未満の関節を除去してクエリ姿勢を生成する処理である。第三の処理はクエリ姿勢に最も近いサンプル二次元関節姿勢をデータベースから取得する処理である。第四の処理は推定位置の確信度が閾値未満の関節を最も近いサンプル二次元関節姿勢の対応する関節に置き換えることによって対象物体の二次元関節姿勢を補正する処理である。本開示の関節姿勢推定プログラムはコンピュータ読み取り可能な非一時的な記憶媒体に記憶されてもよいし、ネットワークを介して提供されてもよい。
【発明の効果】
【0011】
本開示の関節姿勢推定技術によれば、二次元関節姿勢モデルを用いて推定された二次元関節姿勢を構成する関節のうち、推定位置の確信度が高い関節は元の位置を維持し、推定位置の確信度が低い関節のみが最も近いサンプル二次元関節姿勢の対応する関節に置き換えられる。これにより、オクルージョンやトランケーションなどの困難な状況下においても、対象物体の二次元関節姿勢を精度よく推定することができる。
【図面の簡単な説明】
【0012】
【
図1】本開示の実施形態に係る関節姿勢推定方法を実現するシステムの構成を示す図である。
【
図2】二次元関節姿勢モデルの一例を示す図である。
【
図3】サンプル二次元関節姿勢取得ユニットについて説明する図である。
【
図4】本開示の実施形態に係る関節姿勢推定方法の具体的な流れを示す図である。
【
図5】本開示の実施形態に係る関節姿勢推定システムのハードウェアの構成の一例を示す図である。
【発明を実施するための形態】
【0013】
図1は、本開示の実施形態に係る関節姿勢推定方法を実現するシステム、すなわち、関節姿勢推定システムの構成を示す図である。本実施形態に係る関節姿勢推定システム100は、対象物体の画像10からその二次元関節姿勢15を推定するシステムである。対象物体は関節姿勢を推定したい多関節物体である。多関節物体は、人間だけでなく、車両、机の引き出し、はさみなど、複数の関節で表現可能なものすべてを含む。本実施形態に係る関節姿勢推定システム100は、二次元関節姿勢推定ユニット110、クエリ姿勢生成ユニット130、サンプル二次元関節姿勢取得ユニット140、及び二次元関節姿勢補正ユニット160を備える。
【0014】
まず、二次元関節姿勢推定ユニット110から説明する。二次元関節姿勢推定の推定には、二次元関節姿勢モデル120が用いられる。二次元関節姿勢モデル120は多関節物体の二次元関節姿勢の推定に用いられるモデル(ニューラルネットワーク)である。二次元関節姿勢モデル120は対象物体の種類毎に用意されている。以下の説明では、対象物体は人間であり、二次元関節姿勢モデル120は人間の二次元関節姿勢の推定用に学習されているものとする。
【0015】
二次元関節姿勢モデル120としては、Top-downアプローチによる関節位置のモデルが特に有効である。以下の論文に記載されているTransPose、AlphaPose、VitPose、RMPE、Location-free Human Pose Estimationの各アーキテクチャは、二次元関節姿勢モデル120として用いることができるTop-down型の関節位置モデルの例である。
(1)TransPose : Sen Yang, Zhibin Quan, Mu Nie, Wankou Yang. “TransPose: Keypoint Localization via Transformer” arXiv:2012.14214 [cs.CV] 1 Sep 2021
(2)AlphaPose : Hao-Shu Fang, Jiefeng Li, Hongyang Tang, Chao Xu, Haoyi Zhu, Yuliang Xiu, Yong-Lu Li, and Cewu Lu, “AlphaPose: Whole-Body Regional Multi-Person Pose Estimation and Tracking in Real-Tim” arXiv:2211.03375v1 [cs.CV] 7 Nov 2022
(3)VitPose : Yufei Xu, Jing Zhang, Qiming Zhang, Dacheng Tao, “ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation” arXiv:2204.12484v3 [cs.CV] 13 Oct 2022
(4)RMPE : Hao-Shu Fang1, Shuqin Xie, Yu-Wing Tai, Cewu Lu, “RMPE: Regional Multi-Person Pose Estimation” arXiv:1612.00137 [cs.CV] 4 Feb 2018
(5)Location-free Human Pose Estimation : Xixia Xu, Yingguo Gao, Ke Yan, Xue Lin, Qi Zou, “Location-free Human Pose Estimation” arXiv:2205.12619 [cs.CV] 25 May 2022
【0016】
図2は二次元関節姿勢モデル120の一例を示す。
図2に示す例では、二次元関節姿勢モデル120としてTransPoseアーキテクチャが用いられている。TransPoseアーキテクチャは、CNNバックボーン121、複数層からなるトランスフォーマエンコーダレイヤー122、およびヘッド123を有する。対象人物の画像10をCNNバックボーン121に入力することによって、複数枚のキーポイントヒートマップ11がヘッド123から出力される。キーポイントヒートマップ11は推定された関節毎に出力される。それぞれのキーポイントヒートマップ11では、対象人物の関節の推定位置とその確信度がヒートマップで示されている。
【0017】
TransPoseアーキテクチャのような二次元関節姿勢モデル120によれば、通常の状況下であれば多関節物体の関節位置を非常に正確に推定することができる。通常の状況とはオクルージョンやトランケーションのない状況を意味する。しかし、オクルージョンやトランケーションを含む困難な状況下では、二次元関節姿勢モデル120による関節位置の推定精度は低下する。
【0018】
図2に例示されるように、二次元関節姿勢モデル120は対象人物の関節ごとの推定位置の確信度を出力するように構成されている。オクルージョン(自身の体によって関節が隠れるセルフオクルージョンを含む)やトランケーションが生じていない場合、全ての関節の位置は高い確信度で推定される。一方、オクルージョンやトランケーションが生じている状況では、一部の関節の推定位置は他に比べて明らかに低い確信度となる。言い換えれば、オクルージョンやトランケーションが生じている状況であっても、多くの関節については高い確信度で位置の推定が行われている。
【0019】
ここで、対象物が属する関節物体のサンプルをサンプル関節物体と定義する。サンプル関節物体がとり得る関節姿勢は無限ではあるが、三次元的には有限個の基本関節姿勢に分類することができる。対象物の関節姿勢はサンプル関節物体のいずれかの基本関節姿勢に対応している。ゆえに、画像上ではオクルージョンやトランケーションによって一部が隠れているとしても、対象人物の関節姿勢と対応するサンプル関節物体の基本関節姿勢が分かれば、その基本関節姿勢から対象物の正しい二次元関節姿勢を高い確度で推定することができる。
【0020】
本実施形態に係る関節姿勢推定方法では、サンプル関節物体の基本関節姿勢を様々な方向から平面に投影することで、一つの基本関節姿勢につき視点の異なる多数のサンプル二次元関節姿勢が用意されている。各サンプル二次元関節姿勢は対応する基本関節姿勢に紐付けされてデータベースに登録されている。そのデータベースを検索する上でのクエリ情報として、本実施形態に係る関節姿勢推定方法では、二次元関節姿勢モデル120の出力から生成されたクエリ姿勢が用いられる。
【0021】
クエリ姿勢の作成は
図1に示すクエリ姿勢生成ユニット130によって行われる。クエリ姿勢生成ユニット130は、二次元関節姿勢推定ユニット110で推定された対象人物の二次元関節姿勢(以下、推定二次元関節姿勢と呼ぶ)からクエリ姿勢を生成する。二次元関節姿勢推定ユニット110からは、対象人物の推定二次元関節姿勢とともに、推定二次元関節姿勢における各関節の推定値の確信度が出力される。クエリ姿勢生成ユニット130は、推定二次元関節姿勢から確信度が閾値未満の関節を除去し、確信度が閾値以上の関節のみからなる二次元関節姿勢をクエリ姿勢として生成する。このようにして生成されたクエリ姿勢は、クエリ情報として高い情報精度を有している。
【0022】
クエリ姿勢生成ユニット130によって生成されたクエリ姿勢は、サンプル二次元関節姿勢取得ユニット140に送られる。サンプル二次元関節姿勢取得ユニット140は、2D/3Dデータベース150を有している。2D/3Dデータベース150には、サンプル関節物体の基本関節姿勢を表す三次元姿勢データと、サンプル二次元関節姿勢を表す二次元姿勢データとが登録されている。各三次元姿勢データには対応する二次元姿勢データが紐付けされている。例えば、2D/3Dデータベース150には、100セットの三次元姿勢データが登録されている。また、例えば、2D/3Dデータベース150には、1セットの三次元姿勢データにつき70セットの二次元姿勢データ、すなわち、合計7000セットの二次元姿勢データが登録されている。サンプル二次元関節姿勢取得ユニット140は、クエリ姿勢をクエリ情報として用いて2D/3Dデータベース150を検索し、クエリ姿勢に最も近いサンプル二次元関節姿勢を2D/3Dデータベース150から取得する。
【0023】
図3はサンプル二次元関節姿勢取得ユニット140の詳細について説明する図である。サンプル二次元関節姿勢取得ユニット140は、2D/3Dデータベース150の他に正規化ユニット141と検索ユニット142とを備える。正規化ユニット141はクエリ姿勢13を正規化し、画像中の対象人物の大きさや対象人物の体形などの検索への影響を排除する。検索ユニット142は、正規化されたクエリ姿勢13によって2D/3Dデータベース150を検索する。検索手法としては最近傍検索が用いられる。最近傍検索の結果、クエリ姿勢13に最も近いサンプル二次元関節姿勢が取得される。また、同時に、クエリ姿勢13に関連する基本関節姿勢も取得することができる。
図3に示す例において、クエリ姿勢13に最も近いサンプル二次元関節姿勢のデータが二次元姿勢データ2-2であった場合、それに対応する三次元姿勢データ2が基本関節姿勢のデータとして取得される。
【0024】
サンプル二次元関節姿勢取得ユニット140によって取得されたサンプル二次元関節姿勢は、二次元関節姿勢推定ユニット110で得られた推定二次元関節姿勢の補正に用いられる。以下、推定二次元関節姿勢の補正に用いられるサンプル二次元関節姿勢を補正用二次元関節姿勢14と呼ぶ。推定二次元関節姿勢の補正は
図1に示す二次元関節姿勢補正ユニット160によって行われる。二次元関節姿勢補正ユニット160は、推定位置の確信度が高い関節は元の位置を維持したまま、推定位置の確信度が閾値未満の関節のみを補正用二次元関節姿勢の対応する関節に置き換えることによって推定二次元関節姿勢を補正する。
【0025】
補正用二次元関節姿勢の各関節の位置は、対象物が現実的に取り得る基本関節姿勢に対応する自然な関節位置である。推定二次元関節姿勢のうち推定位置の確信度が高い関節は元の位置を維持したまま、推定位置の確信度が低い関節のみそのような自然な位置に補正することによって、推定二次元関節姿勢の全体としての蓋然性は向上する。このような補正が行われることにより、元の画像10上では対象人物の一部がオクルージョンやトランケーションによって隠れているとしても、高い確度で対象人物の正しい二次元関節姿勢を推定することができる。関節姿勢推定システム100は、二次元関節姿勢補正ユニット160によって補正された推定二次元関節姿勢を対象人物の二次元関節姿勢15として出力する。
【0026】
次に、関節姿勢推定システム100によって実施される関節姿勢推定方法の具体的な流れについて
図4を用いて説明する。なお、以下の例でが、二次元関節姿勢モデル120としてTransPoseアーキテクチャが用いられているものとする。
【0027】
ステップAでは、対象人物の画像10が二次元関節姿勢モデル120に入力される画像10では、対象人物の左足は障害物に隠れて映っていない。すなわち、画像10ではオクルージョンが発生している。二次元関節姿勢モデル120からは画像10に対応するキーポイントヒートマップ11が出力される。
【0028】
ステップBでは、キーポイントヒートマップ11から推定二次元関節姿勢12が作成される。推定二次元関節姿勢12の各関節にはその推定位置の確信度を示すデータが付されている。
図4に示す例では、推定二次元関節姿勢12を構成する黒丸は推定位置の確信度が閾値以上である関節を示し、白丸は推定位置の確信度閾値未満である関節を示している。
【0029】
ステップCでは、推定二次元関節姿勢12から推定位置の確信度が閾値未満の関節を除去することによってクエリ姿勢13が生成される。
【0030】
ステップDでは、正規化されたクエリ姿勢13をクエリ情報とする最近傍検索により、2D/3Dデータベース150が検索される。
【0031】
ステップEでは、2D/3Dデータベース150の検索で得られたサンプル二次元関節姿勢が補正用二次元関節姿勢14として取得される。このとき、補正用二次元関節姿勢14とともに、クエリ姿勢13に最も関連する三次元の基本関節姿勢が取得されてもよい。
【0032】
ステップFでは、推定二次元関節姿勢12を構成する関節のうち確信度が閾値未満の関節、すなわち、クエリ姿勢13において除去された関節が補正用二次元関節姿勢14の対応する関節に置き換えられる。これにより、対象人物の関節のうち画像10に映っている関節だけでなく、障害物で隠れている左足の関節位置についても高い確度で推定された二次元関節姿勢15が得られる。
【0033】
最後に、本実施形態に係る関節姿勢推定システム100のハードウェアの構成の一例について
図5を参照して説明する。
【0034】
関節姿勢推定システム100は、コンピュータ200、表示装置220及び入力装置240を含む。コンピュータ200は、プロセッサ202とプログラムメモリ204とデータストレージ208とを備える。プロセッサ202はプログラムメモリ204及びデータストレージ208に結合されている。
【0035】
プログラムメモリ204は複数の実行可能なインストラクション206を記憶する。データストレージ208は例えばフラッシュメモリやSSDやHDDであって、画像10とインストラクション206の実行に必要とされるデータとを記憶する。また、データストレージ208の一部は2D/3Dデータベース150を構成する。
【0036】
インストラクション206は関節姿勢推定プログラムを構成する。インストラクション206の一部或いは全部がプロセッサ202で実行されることにより、二次元関節姿勢推定ユニット110、クエリ姿勢生成ユニット130、サンプル二次元関節姿勢取得140、及び二次元関節姿勢補正ユニット160としての機能がコンピュータ200において実現される。
【0037】
表示装置220はコンピュータ200による計算結果を表示する。入力装置240は例えばキーボードやマウスであって、コンピュータ200に対する操作を受け付ける。なお、関節姿勢推定システム100はネットワークで接続された複数のコンピュータによって構成されてもよいし、インターネット上のサーバによって構成されてもよい。
【符号の説明】
【0038】
10 画像、11 キーポイントヒートマップ、12 推定二次元関節姿勢、13 クエリ姿勢、14 補正用二次元関節姿勢、15 二次元関節姿勢、100 関節姿勢推定システム、110 二次元関節姿勢推定ユニット、120 二次元関節姿勢モデル、130 クエリ姿勢生成ユニット、140 サンプル二次元関節姿勢取得、150 2D/3Dデータベース、160 二次元関節姿勢補正ユニット、200 コンピュータ、202 プロセッサ、204 プログラムメモリ、206 インストラクション、208 データストレージ、220 表示装置、240 入力装置