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

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

▶ 日本電気株式会社の特許一覧

特許7687382関節点検出装置、関節点検出方法、及びプログラム
<>
  • 特許-関節点検出装置、関節点検出方法、及びプログラム 図1
  • 特許-関節点検出装置、関節点検出方法、及びプログラム 図2
  • 特許-関節点検出装置、関節点検出方法、及びプログラム 図3
  • 特許-関節点検出装置、関節点検出方法、及びプログラム 図4
  • 特許-関節点検出装置、関節点検出方法、及びプログラム 図5
  • 特許-関節点検出装置、関節点検出方法、及びプログラム 図6
  • 特許-関節点検出装置、関節点検出方法、及びプログラム 図7
  • 特許-関節点検出装置、関節点検出方法、及びプログラム 図8
  • 特許-関節点検出装置、関節点検出方法、及びプログラム 図9
  • 特許-関節点検出装置、関節点検出方法、及びプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-26
(45)【発行日】2025-06-03
(54)【発明の名称】関節点検出装置、関節点検出方法、及びプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20250527BHJP
   G06V 10/82 20220101ALI20250527BHJP
【FI】
G06T7/00 660Z
G06V10/82
【請求項の数】 8
(21)【出願番号】P 2023502225
(86)(22)【出願日】2022-02-01
(86)【国際出願番号】 JP2022003766
(87)【国際公開番号】W WO2022181252
(87)【国際公開日】2022-09-01
【審査請求日】2023-07-27
(31)【優先権主張番号】P 2021029411
(32)【優先日】2021-02-26
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】石井 遊哉
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】特開2007-004732(JP,A)
【文献】国際公開第2020/000096(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 ー 7/90
G06V 10/00 - 20/90
(57)【特許請求の範囲】
【請求項1】
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す第1の特徴量を出力する、全特徴量出力手段と、
前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している機械学習モデルを用いて、前記特定の関節点が画像上で見えない場合における、前記対象の関節点それぞれを表す第2の特徴量を出力する、部分特徴量出力手段と、
を備え
前記機械学習モデルは、
特定の対象の関節点それぞれ毎の特徴量から、複数の前記特定の関節点それぞれ毎に、当該特定の関節点の特徴量のみが存在しない場合の特徴量のセットを、訓練用特徴量セットとして生成し、複数の前記特定の関節点それぞれ毎に、対応する前記訓練用特徴量セットを含む訓練データを用いて、当該特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習する、ことによって、生成されている、
ことを特徴とする関節点検出装置。
【請求項2】
請求項1に記載の関節点検出装置であって、
前記対象の関節点それぞれ毎の前記第2の特徴量を用いて、前記対象の関節点の座標を検出する、関節点検出手段を更に備えている、
ことを特徴とする関節点検出装置。
【請求項3】
請求項1に記載の関節点検出装置であって、
前記部分特徴量出力手段が、前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、複数の前記特定の関節点それぞれについて当該特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している、機械学習モデルを用いて、前記特定の関節点が画像上で見えない場合における、前記対象の関節点それぞれを表す第2の特徴量を出力する、
ことを特徴とする関節点検出装置。
【請求項4】
請求項1に記載の関節点検出装置であって、
前記機械学習モデルが、畳み込みニューラルネットワークによって構築されており、
前記第1の特徴量、及び前記第2の特徴量、それぞれが、画像上の関節点が存在する可能性を表現するヒートマップを含む、
ことを特徴とする関節点検出装置。
【請求項5】
コンピュータが実行する方法であって、
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す第1の特徴量を出力し、
前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している機械学習モデルを用いて、前記特定の関節点が画像上で見えない場合における、前記対象の関節点それぞれを表す第2の特徴量を出力し、
前記機械学習モデルは、
特定の対象の関節点それぞれ毎の特徴量から、複数の前記特定の関節点それぞれ毎に、当該特定の関節点の特徴量のみが存在しない場合の特徴量のセットを、訓練用特徴量セットとして生成し、複数の前記特定の関節点それぞれ毎に、対応する前記訓練用特徴量セットを含む訓練データを用いて、当該特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習する、ことによって、生成されている、
ことを特徴とする関節点検出方法。
【請求項6】
請求項5に記載の関節点検出方法であって、
前記対象の関節点それぞれ毎の前記第2の特徴量を用いて、前記対象の関節点の座標を検出する、
ことを特徴とする関節点検出方法。
【請求項7】
コンピュータに、
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す第1の特徴量を出力させ、
前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している機械学習モデルを用いて、前記特定の関節点が画像上で見えない場合における、前記対象の関節点それぞれを表す第2の特徴量を出力させる、プログラムであって、
前記機械学習モデルは、
特定の対象の関節点それぞれ毎の特徴量から、複数の前記特定の関節点それぞれ毎に、当該特定の関節点の特徴量のみが存在しない場合の特徴量のセットを、訓練用特徴量セットとして生成し、複数の前記特定の関節点それぞれ毎に、対応する前記訓練用特徴量セットを含む訓練データを用いて、当該特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習する、ことによって、生成されている、ことを特徴とするプログラム。
【請求項8】
請求項7に記載のプログラムであって、
前記コンピュータに、更に、
前記対象の関節点それぞれ毎の前記第2の特徴量を用いて、前記対象の関節点の座標を検出させる、
ことを特徴とするプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像から生体の関節点を検出するための、関節点検出装置、及び関節点検出方法に関し、更には、これらを実現するためのプログラムに関する。また、本発明は、画像からの生体の関節点の検出用の学習モデルを生成するための、学習モデル生成装置、及び学習モデル生成方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【0002】
近年、画像から人の姿勢を推定するシステムが提案されている。このようなシステムは、映像監視、ユーザインタフェース等の分野での利用が期待されている。例えば、画像監視システムにおいて、人の姿勢を推定できれば、カメラに写った人物が何をしているかを推定できるので、監視精度の向上が図られる。また、ユーザインタフェースにおいて、人の姿勢を推定できれば、ジェスチャーによる入力が可能となる。
【0003】
例えば、非特許文献1は、画像から人の姿勢、とりわけ、人の手の姿勢を推定するシステムを開示している。非特許文献1に開示されたシステムは、まず、手の画像を含む画像データを取得すると、取得した画像データを、関節点毎の画像特徴量を機械学習したニューラルネットワークに入力して、関節点毎に、関節点の存在確率を色彩及び濃度によって表現するヒートマップを出力させる。
【0004】
続いて、非特許文献1に開示されたシステムは、関節点と対応するヒートマップとの関係を機械学習したニューラルネットワークに、出力されたヒートマップを入力する。また、このようなニューラルネットワークは複数個用意されており、あるニューラルネットワークからの出力結果は、別のニューラルネットワークに入力される。この結果、ヒートマップ上の関節点の位置がリファインされる。
【0005】
また、特許文献1も、画像から手の姿勢を推定するシステムを開示している。特許文献1に開示されたシステムも、非特許文献1に開示されたシステムと同様に、ニューラルネットワークを使用して、関節点の座標を推定する。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2017-191576号公報
【非特許文献】
【0007】
【文献】Christian Zimmermann, Thomas Brox, ”Learning to Estimate 3D Hand Pose from Single RGB Images”, [online], University of Freiburg, [2021年2月8日検索],インターネット<URL:https://openaccess.thecvf.com/content_ICCV_2017/papers/Zimmermann_Learning_to_Estimate_ICCV_2017_paper.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0008】
非特許文献1又は特許文献1に開示されたシステムを用いれば、上述したように、画像から人の手の関節点の座標を推定することができるが、これらのシステムには、以下のように推定精度が低下するという問題点がある。
【0009】
まず、生体には多くの関節点があり、画像には、一部の関節点が映っていない場合がある。このような場合、非特許文献1及び特許文献1に開示されたシステムでは、画像に映っていない関節点のヒートマップでの位置が誤った位置となる可能性がある。そして、この結果、ニューラルネットワークによって各関節点の位置がリファインされる際に、画像に映っていない関節点の誤った位置に引きずられて、画像に写っている関節点の位置までも誤った位置となる。
【0010】
本発明の目的の一例は、関節点の位置の推定精度の向上を図り得る、関節点検出装置、学習モデル生成装置、関節点検出方法、学習モデル生成方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0011】
上記目的を達成するため、本発明の一側面における関節点検出装置は、
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す第1の特徴量を出力する、全特徴量出力部と、
前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している機械学習モデルを用いて、前記対象の関節点それぞれ毎に、当該関節点を表す第2の特徴量を出力する、部分特徴量出力部と、
を備えていることを特徴とする。
【0012】
上記目的を達成するため、本発明の一側面における学習モデル生成装置は、
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す特徴量を出力する、全特徴量出力部と、
前記対象の関節点それぞれ毎の前記特徴量から、特定の関節点の特徴量が存在しない場合の特徴量を訓練用特徴量として生成する、特徴量生成部と、
生成された前記訓練用特徴量を含む訓練データを用いて、前記特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習することによって、機械学習モデルを生成する、学習モデル生成部と、
を備えていることを特徴とする。
【0013】
上記目的を達成するため、本発明の一側面における関節点検出方法は、
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す第1の特徴量を出力する、全特徴量出力ステップと、
前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している機械学習モデルを用いて、前記対象の関節点それぞれ毎に、当該関節点を表す第2の特徴量を出力する、部分特徴量出力ステップと、
を有する、ことを特徴とする。
【0014】
上記目的を達成するため、本発明の一側面における学習モデル生成方法は、
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す特徴量を出力する、全特徴量出力ステップと、
前記対象の関節点それぞれ毎の前記特徴量から、特定の関節点の特徴量が存在しない場合の特徴量を訓練用特徴量として生成する、特徴量生成ステップと、
生成された前記訓練用特徴量を含む訓練データを用いて、前記特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習することによって、機械学習モデルを生成する、学習モデル生成ステップと、
を有する、ことを特徴とする。
【0015】
上記目的を達成するため、本発明の一側面における第1のプログラムは、
コンピュータに、
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す第1の特徴量を出力する、全特徴量出力ステップと、
前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している機械学習モデルを用いて、前記対象の関節点それぞれ毎に、当該関節点を表す第2の特徴量を出力する、部分特徴量出力ステップと、
を実行させることを特徴とする。
【0016】
上記目的を達成するため、本発明の一側面における第2のプログラムは、
コンピュータに、
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す特徴量を出力する、全特徴量出力ステップと、
前記対象の関節点それぞれ毎の前記特徴量から、特定の関節点の特徴量が存在しない場合の特徴量を訓練用特徴量として生成する、特徴量生成ステップと、
生成された前記訓練用特徴量を含む訓練データを用いて、前記特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習することによって、機械学習モデルを生成する、学習モデル生成ステップと、
を実行させることを特徴とする。
【発明の効果】
【0017】
以上のように、本発明によれば、関節点の位置の推定精度の向上を図ることができる。
【図面の簡単な説明】
【0018】
図1図1は、実施の形態1における学習モデル生成装置の概略構成を示す構成図である。
図2図2は、実施の形態1における学習モデル生成装置の構成を具体的に示すブロック図である。
図3図3は、実施の形態1における全特徴量出力部の機能を説明する図である。
図4図4は、実施の形態1における特徴量生成部及び学習モデル生成部の機能を説明する図である。
図5図5は、実施の形態1における学習モデル生成装置の動作を示すフロー図である。
図6図6は、実施の形態2における関節点検出装置の概略構成を示す構成図である。
図7図7は、実施の形態2における関節点検出装置の構成をより具体的に示す図である。
図8図8は、実施の形態2における全特徴量出力部及び部分特徴量出力部の機能を説明する図である。
図9図9は、実施の形態2における関節点検出装置の動作を示すフロー図である。
図10図10は、実施の形態1における学習モデル生成装置と実施の形態2における関節点検出装置とを実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【0019】
(実施の形態1)
最初に、実施の形態1において、学習モデル生成装置、学習モデル生成方法、及び学習モデル生成用のプログラムについて、図1図5を参照しながら説明する。
【0020】
[装置構成]
最初に、実施の形態1における学習モデル生成装置の概略構成について図1を用いて説明する。図1は、実施の形態1における学習モデル生成装置の概略構成を示す構成図である。
【0021】
図1に示す実施の形態1における学習モデル生成装置10は、関節点の検出ための機械学習モデルを生成する装置である。図1に示すように、学習モデル生成装置10は、全特徴量出力部11と、特徴量生成部12と、学習モデル生成部13とを備えている。
【0022】
全特徴量出力部11は、対象の画像データから、対象の関節点それぞれ毎に、関節点を表す特徴量を出力する。特徴量生成部12は、対象の関節点それぞれ毎の特徴量から、特定の関節点の特徴量が存在しない場合の特徴量を訓練用特徴量として生成する。
【0023】
学習モデル生成部13は、生成された訓練用の特徴量を含む訓練データを用いて、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習することによって、機械学習モデルを生成する。
【0024】
このように、実施の形態1では、訓練データとして用いられる訓練用特徴量は、特定の関節点の特徴量が存在しないことに設定された場合の特徴量である。このため、生成された機械学習モデルを用いて、関節点の検出を行えば、対象の特定の関節点が画像に写っていない場合でも、対象の関節点を精度良く推定することが可能となる。
【0025】
続いて、図2図4を用いて、実施の形態1における学習モデル生成装置10の構成及び機能について具体的に説明する。図2は、実施の形態1における学習モデル生成装置の構成を具体的に示すブロック図である。図3は、実施の形態1における全特徴量出力部の機能を説明する図である。図4は、実施の形態1における特徴量生成部及び学習モデル生成部の機能を説明する図である。
【0026】
図2に示すように、実施の形態では、学習モデル生成装置10は、上述した全特徴量出力部11、特徴量生成部12、及び学習モデル生成部13に加えて、乱数発生部14と、記憶部15とを備えている。
【0027】
乱数発生部14は、設定された範囲内で乱数を発生させ、発生させた乱数を特徴量生成部12に入力する。乱数を用いた特徴量生成部12での処理については後述する。記憶部15は、学習モデル生成部13によって生成された機械学習モデル16を格納している。
【0028】
また、実施の形態では、機械学習モデル16は、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)によって構築されている。実施の形態においては、学習モデル生成部13による機械学習モデルの生成は、CNNのパラメータの初期値を学習によって更新することで行われる。以降においては、機械学習モデルは、「CNN」とも表記する。
【0029】
また、以降においては、対象が人の手である場合を例に挙げて説明する。なお、実施の形態1において、対象は、人の手に限定されず、人の体全体であっても良いし、他の部位であっても良い。対象は、関節点を有するものであれば良く、人以外のもの、例えば、ロボットであっても良い。更に、実施の形態1では、関節点に加え、関節点以外の部分、例えば、指先といった特徴的な部分も、検出の対象となっていても良い。
【0030】
加えて、実施の形態1では、特徴量として、ヒートマップが用いられているとする。ヒートマップは、画像上の関節点が存在する可能性を表現するマップであり、例えば、関節点の存在の可能性を色の濃淡で表現することができる。なお、特徴量として、ヒートマップ以外のもの、例えば、座標値が用いられても良い。
【0031】
全特徴量出力部11は、実施の形態1では、まず、対象の画像データ20を取得する。そして、全特徴量出力部11は、図3に示すように、画像データ20から、関節点を表す特徴量として、ヒートマップ21を出力する。図3の例では、ヒートマップ21は、画像データ20上の関節点毎に複数出力されている。
【0032】
具体的には、全特徴量出力部11は、例えば、画像上の関節点とヒートマップとの関係を学習している機械学習モデルを用い、この機械学習モデルに、画像データを入力することで、ヒートマップ21を出力する。この場合の機械学習モデルとしても、CNNが挙げられる。また、このCNNの機械学習では、関節点の画像データと、正解となるヒートマップとが訓練データとなる。そして、CNNの機械学習は、訓練データとなる画像データの出力結果(ヒートマップ)と正解となるヒートマップとの差分が小さくなるように、パラメータを更新することで行われる。
【0033】
特徴量生成部12は、実施の形態では、対象の関節点それぞれ毎のヒートマップ21から、複数の特定の関節点それぞれ毎に、特定の関節点の特徴量のみが存在しないことに設定された特徴量のセットを、訓練用特徴量セット22として生成する。
【0034】
具体的には、図4に示すように、特徴量生成部12は、まず、乱数発生部14から乱数を受け取る。そして、特徴量生成部12は、画像上の関節点毎に生成された複数のヒートマップ21のうち、乱数が示すj番目の関節点のヒートマップ上のデータをゼロまたは1として、j番目の関節点の特徴量を存在しないことに設定する。これにより、画像上の関節点毎に生成された複数のヒートマップ21のうちj番目の関節点のヒートマップのみが存在しないことに設定された、特徴量のセット(訓練用特徴量セット)22が生成される。なお、各関節点には予め番号が振られているとする。
【0035】
また、図4の例では、発生した乱数に応じて、複数の関節点それぞれの特徴量が存在しないことに設定されているが、これに限定されず、特徴量が存在しないことに設定される関節点は予め設定されていても良い。また、特徴量生成部12は、全ての関節点それぞれについて、順に特徴量が存在しないことに設定し、関節点の数だけ、訓練用特徴量セット22を生成しても良い。なお、図4の例では、訓練用の特徴量もヒートマップであるので、訓練用特徴量セット22は、「訓練用ヒートマップセット22」と表記する。
【0036】
学習モデル生成部13が、実施の形態では、複数の特定の関節点それぞれ毎に、対応する訓練用ヒートマップセットを含む訓練データを用いて、特定の関節点のヒートマップが存在しない場合の他の関節点間の位置関係を機械学習して、機械学習モデルを生成する。
【0037】
具体的には、図4に示すように、学習モデル生成部13は、記憶部15からCNN16を取得し、CNN16に、選択した訓練用ヒートマップセット22を入力し、出力結果となる各ヒートマップセットと対応する正解のヒートマップとの差分を算出する。なお、正解のヒートマップは予め用意されている。また、特徴量が存在しないとされたヒートマップについては、差分は算出されないか、正解のヒートマップとして、特徴量が存在しないヒートマップが用いられるかするとする。
【0038】
そして、学習モデル生成部13は、算出した差分が最小となるように、CNN16のパラメータを更新し、パラメータが更新されたCNN16を記憶部15に格納する。また、学習モデル生成部13は、この処理を、未選択の訓練用ヒートマップセット22がなくなるまで実行する。この結果、関節点の検出に用いることができるCNNが生成されることになる。
【0039】
[装置動作]
次に、実施の形態1における学習モデル生成装置10の動作について図5を用いて説明する。図5は、実施の形態1における学習モデル生成装置の動作を示すフロー図である。以下の説明においては、適宜図1図4を参照する。また、実施の形態1では、学習モデル生成装置10を動作させることによって、学習モデル生成方法が実施される。よって、実施の形態1における学習モデル生成方法の説明は、以下の学習モデル生成装置10の動作説明に代える。
【0040】
図5に示すように、最初に、全特徴量出力部11は、対象の画像データ20を取得し、取得した画像データ20から、関節点を表す特徴量として、ヒートマップ21を出力する(ステップA1)。
【0041】
次に、特徴量生成部12は、乱数発生部14で発生した乱数jを取得する(ステップA2)。続いて、特徴量生成部12は、ステップA1で出力された関節点それぞれ毎のヒートマップ21から、j番目の関節点の特徴量のみが存在していないことに設定、即ち、j番目の関節点のヒートマップのみがゼロ(または1)に設定されたヒートマップのセットを、訓練用ヒートマップセット22として生成する(ステップA3)。
【0042】
次に、特徴量生成部12は、所定数の訓練用ヒートマップセット22が生成されているかどうかを判定する(ステップA4)。そして、ステップA4の判定の結果、所定数の訓練用ヒートマップセット22が生成されていない場合(ステップA4:No)は、特徴量生成部12は、再度ステップA2を実行する。
【0043】
一方、ステップA4の判定の結果、所定数の訓練用ヒートマップセット22が生成されている場合(ステップA4:Yes)は、特徴量生成部12は、学習モデル生成部13に、訓練用ヒートマップセット22の生成が終了したことを通知する。
【0044】
通知を受けると、学習モデル生成部13は、ステップA3で生成された所定数の訓練用ヒートマップセット22を用いて、CNN16のパラメータを更新する(ステップA5)。これにより、特定の関節点のヒートマップが存在しない場合の他の関節点間の位置関係が機械学習されて、機械学習モデルが生成される。ステップA5の実行後、学習モデルの生成のための処理は終了する。
【0045】
このように、実施の形態1では、訓練データとして用いられる訓練用ヒートマップセットは、特定の関節点の特徴量が存在しない場合の特徴量を表している。このため、生成されたCNN16を用いて、後述のように、関節点の検出を行えば、対象の特定の関節点が画像に写っていない場合でも、対象の関節点を精度良く推定することが可能となる。
【0046】
[プログラム]
実施の形態1における学習モデル生成用のプログラムは、コンピュータに、図5に示すステップA1~A5を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、実施の形態1における学習モデル生成装置と学習モデル生成方法とを実現することができる。この場合、コンピュータのプロセッサは、全特徴量出力部11、特徴量生成部12、学習モデル生成部13、及び乱数発生部14として機能し、処理を行なう。
【0047】
また、実施の形態1では、記憶部15は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現されていても良いし、別のコンピュータの記憶装置によって実現されていても良い。また、コンピュータとしては、汎用のPCの他に、スマートフォン、タブレット型端末装置が挙げられる。
【0048】
実施の形態1における学習モデル生成用のプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、全特徴量出力部11、特徴量生成部12、学習モデル生成部13、及び乱数発生部14のいずれかとして機能しても良い。
【0049】
(実施の形態2)
続いて、実施の形態2において、関節点検出装置、関節点検出方法、及び関節点検出用のプログラムについて、図6図9を参照しながら説明する。
【0050】
[装置構成]
最初に、実施の形態2における関節点検出装置の概略構成について図6を用いて説明する。図6は、実施の形態2における関節点検出装置の概略構成を示す構成図である。
【0051】
図6に示す実施の形態2における関節点検出装置30は、対象、例えば、生体、ロボット等の関節点を検出するための装置である。図6に示すように、関節点検出装置30は、全特徴量出力部31と、部分特徴量出力部32と、を備えている。
【0052】
全特徴量出力部31は、対象の画像データから、対象の関節点それぞれ毎に、関節点を表す第1の特徴量を出力する。部分特徴量出力部32は、対象の関節点それぞれ毎の第1の特徴量を入力として、機械学習モデルを用いて、対象の関節点それぞれ毎に、関節点を表す第2の特徴量を出力する。機械学習モデルは、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している機械学習モデルである。
【0053】
このように、実施の形態2では、各関節点を表す第1の特徴量から、機械学習モデルを用いて、第2の特徴量が出力される。機械学習モデルは、特定の関節点以外の関節点間の位置関係を機械学習しているので、第2の特徴量は、特定の関節点が見えない場合における、それ以外の関節点の位置を適切に示すことができる。このため、実施の形態2によれば、各関節点の位置の推定精度を向上することが可能となる。
【0054】
続いて、図7及び図8を用いて、実施の形態2における関節点検出装置30の構成及び機能について具体的に説明する。図7は、実施の形態2における関節点検出装置の構成をより具体的に示す図である。図8は、実施の形態2における全特徴量出力部及び部分特徴量出力部の機能を説明する図である。
【0055】
図7に示すように、実施の形態2では、関節点検出装置30は、上述した全特徴量出力部31及び部分特徴量出力部32に加えて、関節点検出部33と、記憶部34とを備えている。記憶部34は、実施の形態1において図2に示したCNN16を格納している。
【0056】
実施の形態2においても、対象が人の手である場合を例に挙げて説明する。なお、実施の形態2においても、関節点の検出の対象は、人の手に限定されず、人の体全体であっても良いし、他の部位であっても良い。また、関節点の検出の対象は、関節点を有するものであれば良く、人以外のもの、例えば、ロボットであっても良い。更に、実施の形態2でも、関節点に加え、関節点以外の部分、例えば、指先といった特徴的な部分も、検出の対象となっていても良い。
【0057】
加えて、実施の形態2でも、特徴量として、ヒートマップが用いられているとする。なお、実施の形態2でも、特徴量として、ヒートマップ以外のもの、例えば、座標値が用いられても良い。
【0058】
全特徴量出力部31は、実施の形態1と同様の機能を有しており、まず、対象の画像データ40を取得する。そして、全特徴量出力部1は、図に示すように、画像データ0から、関節点を表す第1の特徴量として、第1のヒートマップ41を出力する。また、図8の例では、第1のヒートマップ41は、画像データ40上の関節点毎に複数出力されている。
【0059】
具体的には、全特徴量出力部31も、実施の形態1に示した全特徴量出力部11と同様に、例えば、画像上の関節点とヒートマップとの関係を学習している機械学習モデルを用い、この機械学習モデルに、画像データを入力することで、第1のヒートマップ41を出力する。この場合の機械学習モデルとしても、CNNが挙げられる。
【0060】
部分特徴量出力部32は、実施の形態2では、全特徴量出力部31から出力された、対象の関節点それぞれ毎の第1のヒートマップ41を、CNN16に入力し、CNN16から、対象の関節点それぞれ毎に第2のヒートマップ42を出力させる。
【0061】
CNN16は、実施の形態1において述べたように、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している機械学習モデルである。このため、第2のヒートマップ42では、第2の特徴量として、特定の関節点が見えない場合における、それ以外の関節点の位置が適切に示されている。
【0062】
関節点検出部33は、対象である手の関節点毎の第2のヒートマップ42を取得する。そして、関節点検出部33は、関節点毎の第2のヒートマップ42を用いて、対象の関節点それぞれの座標を検出する。
【0063】
具体的には、関節点検出部33は、関節点毎に、第2のヒートマップ42の最も濃度の高い箇所を特定し、特定した箇所の画像上の2次元座標を検出する。また、関節点毎に、第2のヒートマップ42が複数存在する場合は、関節点検出部33は、第2のヒートマップ42毎に最も濃度の高い箇所の2次元座標を特定し、更に、特定した各2次元座標の平均を求め、求めた平均の座標を最終的な座標とする。
【0064】
[装置動作]
次に、実施の形態2における関節点検出装置30の動作について図9を用いて説明する。図9は、実施の形態2における関節点検出装置の動作を示すフロー図である。以下の説明においては、適宜図6図8を参照する。また、実施の形態2では、関節点検出装置30を動作させることによって、関節点検出方法が実施される。よって、実施の形態2における関節点検出方法の説明は、以下の関節点検出装置30の動作説明に代える。
【0065】
図9に示すように、最初に、全特徴量出力部31は、対象の画像データ40を取得し、取得した画像データ40から、関節点を表す特徴量として、第1のヒートマップ41を出力する(ステップB1)。
【0066】
次に、部分特徴量出力部32は、CNN16に、ステップ1で出力された第1のヒートマップ41を入力し、関節点を表す第2のヒートマップ42を出力させる(ステップB2)。
【0067】
次に、関節点検出部33は、ステップB2で出力された各関節点の第2のヒートマップ42から、対象の各関節点の座標を検出する(ステップB3)。
【0068】
以上のように、実施の形態2では、画像データから取得された第1のヒートマップ41が、CNN16に入力される。CNN16、特定の関節点以外の関節点間の位置関係を機械学習しているので、第2のヒートマップ42は、特定の関節点が見えない場合における、それ以外の関節点の位置を適切に示すことができる。このため、実施の形態2によれば、対象の関節点の位置の推定精度の向上が図られることになる。
【0069】
[プログラム]
実施の形態2における関節点検出用のプログラムは、コンピュータに、図9に示すステップB1~B3を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、実施の形態2における関節点検出装置と関節点検出方法とを実現することができる。この場合、コンピュータのプロセッサは、全特徴量出力部31、部分特徴量出力部32、及び関節点検出部33として機能し、処理を行なう。
【0070】
また、本実施の形態では、記憶部34は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現されていても良いし、別のコンピュータの記憶装置によって実現されていても良い。また、コンピュータとしては、汎用のPCの他に、スマートフォン、タブレット型端末装置が挙げられる。
【0071】
実施の形態2における関節点検出用のプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、全特徴量出力部31、部分特徴量出力部32、及び関節点検出部33のいずれかとして機能しても良い。
【0072】
(物理構成)
ここで、実施の形態1におけるプログラムを実行することによって学習モデル生成装置10を実現するコンピュータと、実施の形態2におけるプログラムを実行することによって関節点検出装置30を実現するコンピュータとについて、図10を用いて説明する。図10は、実施の形態1における学習モデル生成装置と実施の形態2における関節点検出装置とを実現するコンピュータの一例を示すブロック図である。
【0073】
図10に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
【0074】
また、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていても良い。この態様では、GPU又はFPGAが、実施の形態におけるプログラムを実行することができる。
【0075】
CPU111は、記憶装置113に格納された、コード群で構成された実施の形態におけるプログラムをメインメモリ112に展開し、各コードを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。
【0076】
また、実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
【0077】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0078】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0079】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
【0080】
なお、学習モデル生成装置10及び関節点検出装置30は、それぞれ、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェア、例えば、回路を用いることによっても実現可能である。更に、学習モデル生成装置10及び関節点検出装置30は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0081】
上述した実施の形態の一部又は全部は、以下に記載する(付記1)~(付記21)によって表現することができるが、以下の記載に限定されるものではない。
【0082】
(付記1)
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す第1の特徴量を出力する、全特徴量出力部と、
前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している機械学習モデルを用いて、前記対象の関節点それぞれ毎に、当該関節点を表す第2の特徴量を出力する、部分特徴量出力部と、
を備えていることを特徴とする関節点検出装置。
【0083】
(付記2)
付記1に記載の関節点検出装置であって、
前記対象の関節点それぞれ毎の前記第2の特徴量を用いて、前記対象の関節点の座標を検出する、関節点検出部を更に備えている、
ことを特徴とする関節点検出装置。
【0084】
(付記3)
付記1または2に記載の関節点検出装置であって、
前記部分特徴量出力部が、前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、複数の前記特定の関節点それぞれについて当該特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している、機械学習モデルを用いて、前記対象の関節点それぞれ毎に、当該関節点を表す第2の特徴量を出力する、
ことを特徴とする関節点検出装置。
【0085】
(付記4)
付記1から3のいずれかに記載の関節点検出装置であって、
前記機械学習モデルが、畳み込みニューラルネットワークによって構築されており、
前記第1の特徴量、及び前記第2の特徴量、それぞれが、画像上の関節点が存在する可能性を表現するヒートマップを含む、
ことを特徴とする関節点検出装置。
【0086】
(付記5)
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す特徴量を出力する、全特徴量出力部と、
前記対象の関節点それぞれ毎の前記特徴量から、特定の関節点の特徴量が存在しない場合の特徴量を訓練用特徴量として生成する、特徴量生成部と、
生成された前記訓練用特徴量を含む訓練データを用いて、前記特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習することによって、機械学習モデルを生成する、学習モデル生成部と、
を備えていることを特徴とする学習モデル生成装置。
【0087】
(付記6)
付記5に記載の学習モデル生成装置であって、
前記特徴量生成部が、前記対象の関節点それぞれ毎の前記特徴量から、複数の特定の関節点それぞれ毎に、当該特定の関節点の特徴量のみが存在しない場合の特徴量のセットを、訓練用特徴量セットとして生成し、
前記学習モデル生成部が、複数の特定の関節点それぞれ毎に、対応する前記訓練用特徴量セットを含む訓練データを用いて、当該特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習することによって、機械学習モデルを生成する、
ことを特徴とする学習モデル生成装置。
【0088】
(付記7)
付記5または6に記載の学習モデル生成装置であって、
前記機械学習モデルが、畳み込みニューラルネットワークによって構築されており、
前記特徴量が、画像上の関節点が存在する可能性を表現するヒートマップを含み、
前記特徴量生成部が、前記ヒートマップ上のデータをゼロまたは1とすることによって、特徴量を存在しないことに設定する、
ことを特徴とする学習モデル生成装置。
【0089】
(付記8)
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す第1の特徴量を出力する、全特徴量出力ステップと、
前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している機械学習モデルを用いて、前記対象の関節点それぞれ毎に、当該関節点を表す第2の特徴量を出力する、部分特徴量出力ステップと、
を有する、ことを特徴とする関節点検出方法。
【0090】
(付記9)
付記8に記載の関節点検出方法であって、
前記対象の関節点それぞれ毎の前記第2の特徴量を用いて、前記対象の関節点の座標を検出する、関節点検出ステップを更に有する、
ことを特徴とする関節点検出方法。
【0091】
(付記10)
付記8または9に記載の関節点検出方法であって、
前記部分特徴量出力ステップにおいて、前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、複数の前記特定の関節点それぞれについて当該特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している、機械学習モデルを用いて、前記対象の関節点それぞれ毎に、当該関節点を表す第2の特徴量を出力する、
ことを特徴とする関節点検出方法。
【0092】
(付記11)
付記8から10のいずれかに記載の関節点検出方法であって、
前記機械学習モデルが、畳み込みニューラルネットワークによって構築されており、
前記第1の特徴量、及び前記第2の特徴量、それぞれが、画像上の関節点が存在する可能性を表現するヒートマップを含む、
ことを特徴とする関節点検出方法。
【0093】
(付記12)
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す特徴量を出力する、全特徴量出力ステップと、
前記対象の関節点それぞれ毎の前記特徴量から、特定の関節点の特徴量が存在しない場合の特徴量を訓練用特徴量として生成する、特徴量生成ステップと、
生成された前記訓練用特徴量を含む訓練データを用いて、前記特定の関節点の特徴量がゼロである場合の他の関節点間の位置関係を機械学習することによって、機械学習モデルを生成する、学習モデル生成ステップと、
を有する、ことを特徴とする学習モデル生成方法。
【0094】
(付記13)
付記12に記載の学習モデル生成方法であって、
前記特徴量生成ステップにおいて、前記対象の関節点それぞれ毎の前記特徴量から、複数の特定の関節点それぞれ毎に、当該特定の関節点の特徴量のみが存在しない場合の特徴量のセットを、訓練用特徴量セットとして生成し、
前記学習モデル生成ステップにおいて、複数の特定の関節点それぞれ毎に、対応する前記訓練用特徴量セットを含む訓練データを用いて、当該特定の関節点の特徴量がゼロである場合の他の関節点間の位置関係を機械学習することによって、機械学習モデルを生成する、
ことを特徴とする学習モデル生成方法。
【0095】
(付記14)
付記12または13に記載の学習モデル生成方法であって、
前記機械学習モデルが、畳み込みニューラルネットワークによって構築されており、
前記特徴量が、画像上の関節点が存在する可能性を表現するヒートマップを含み、
前記特徴量生成ステップが、前記ヒートマップ上のデータをゼロまたは1とすることによって、特徴量を存在しないことに設定する、
ことを特徴とする学習モデル生成方法。
【0096】
(付記15)
コンピュータに、
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す第1の特徴量を出力する、全特徴量出力ステップと、
前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している機械学習モデルを用いて、前記対象の関節点それぞれ毎に、当該関節点を表す第2の特徴量を出力する、部分特徴量出力ステップと、
を実行させる、プログラム。
【0097】
(付記16)
付記15に記載のプログラムであって、
前記コンピュータに、更に、
前記対象の関節点それぞれ毎の前記第2の特徴量を用いて、前記対象の関節点の座標を検出する、関節点検出ステップを実行させる、
ことを特徴とするプログラム
【0098】
(付記17)
付記15または16に記載のプログラムであって、
前記部分特徴量出力ステップにおいて、前記対象の関節点それぞれ毎の前記第1の特徴量を入力として、複数の前記特定の関節点それぞれについて当該特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習している、機械学習モデルを用いて、前記対象の関節点それぞれ毎に、当該関節点を表す第2の特徴量を出力する、
ことを特徴とするプログラム
【0099】
(付記18)
付記15から17のいずれかに記載のプログラムであって、
前記機械学習モデルが、畳み込みニューラルネットワークによって構築されており、
前記第1の特徴量、及び前記第2の特徴量、それぞれが、画像上の関節点が存在する可能性を表現するヒートマップを含む、
ことを特徴とするプログラム
【0100】
(付記19)
コンピュータに、
対象の画像データから、前記対象の関節点それぞれ毎に、当該関節点を表す特徴量を出力する、全特徴量出力ステップと、
前記対象の関節点それぞれ毎の前記特徴量から、特定の関節点の特徴量がゼロに設定された場合の特徴量を訓練用特徴量として生成する、特徴量生成ステップと、
生成された前記訓練用特徴量を含む訓練データを用いて、前記特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習することによって、機械学習モデルを生成する、学習モデル生成ステップと、
を実行させる、プログラム。
【0101】
(付記20)
付記19に記載のプログラムであって、
前記特徴量生成ステップにおいて、前記対象の関節点それぞれ毎の前記特徴量から、複数の特定の関節点それぞれ毎に、当該特定の関節点の特徴量のみが存在しない場合の特徴量のセットを、訓練用特徴量セットとして生成し、
前記学習モデル生成ステップにおいて、複数の特定の関節点それぞれ毎に、対応する前記訓練用特徴量セットを含む訓練データを用いて、当該特定の関節点の特徴量が存在しない場合の他の関節点間の位置関係を機械学習することによって、機械学習モデルを生成する、
ことを特徴とするプログラム
【0102】
(付記21)
付記19または20に記載のプログラムであって、
前記機械学習モデルが、畳み込みニューラルネットワークによって構築されており、
前記特徴量が、画像上の関節点が存在する可能性を表現するヒートマップを含み、
前記特徴量生成ステップにおいて、前記ヒートマップ上のデータをゼロまたは1とすることによって、特徴量を存在しないことに設定する、
ことを特徴とするプログラム
【0103】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0104】
この出願は、2021年2月26日に出願された日本出願特願2021-029411を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0105】
以上のように、本発明によれば、関節点の位置の推定精度の向上を図ることができる。本発明は、人、ロボットといった、関節点を有するものの姿勢検出が求められる分野に有用である。具体的な分野としては、映像監視、ユーザインタフェースなどが挙げられる。
【符号の説明】
【0106】
10 学習モデル生成装置(実施の形態1)
11 全特徴量出力部
12 特徴量生成部
13 学習モデル生成部
14 乱数発生部
15 記憶部
16 機械学習モデル(CNN)
20 画像データ(学習用)
21 ヒートマップ
22 訓練用ヒートマップセット
30 関節点検出装置(実施の形態2)
31 全特徴量出力部
32 部分特徴量出力部
33 関節点検出部
34 記憶部
40 画像データ(検出対象)
41 第1のヒートマップ
42 第2のヒートマップ
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10