(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022028312
(43)【公開日】2022-02-16
(54)【発明の名称】姿勢推定方法、学習方法、姿勢推定装置、学習装置及びプログラム
(51)【国際特許分類】
G06T 7/73 20170101AFI20220208BHJP
【FI】
G06T7/73
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2020131632
(22)【出願日】2020-08-03
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504150461
【氏名又は名称】国立大学法人鳥取大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】特許業務法人 志賀国際特許事務所
(72)【発明者】
【氏名】入江 豪
(72)【発明者】
【氏名】西山 正志
(72)【発明者】
【氏名】岩井 儀雄
(72)【発明者】
【氏名】米田 駿介
(72)【発明者】
【氏名】上野 高貴
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA05
5L096CA02
5L096DA02
5L096FA67
5L096HA11
5L096JA03
5L096JA11
5L096KA04
(57)【要約】
【課題】低コストで収集可能な学習用データに基づいて、画像に撮像された被写体の姿勢を精度良く推定する。
【解決手段】姿勢推定方法は、第一の画像において所定の被写体が写っていない画素である背景画素と、第一の画像に写っている所定の被写体の基準姿勢に対する相対的な姿勢とを推定する推定処理、及び、推定された背景画素を第一の画像から除去した背景除去画像に、推定された相対的な姿勢を用いて幾何変換を行って変換画像を生成する変換処理を行う推定ステップを有する。推定処理及び変換処理は、背景がなく、かつ、基準姿勢の所定の被写体が写っている第二の画像の特徴と変換画像の特徴とが近くなるように学習されている。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第一の画像において所定の被写体が写っていない画素である背景画素と、前記第一の画像における前記所定の被写体の基準姿勢に対する相対的な姿勢とを推定する推定処理、及び、推定された前記背景画素を前記第一の画像から除去した背景除去画像に、推定された前記相対的な姿勢を用いて幾何変換を行って変換画像を生成する変換処理を行う推定ステップを有し、
前記推定処理及び前記変換処理は、背景がなく、かつ、前記基準姿勢の前記所定の被写体が写っている第二の画像の特徴と前記変換画像の特徴とが近くなるように学習されている、
姿勢推定方法。
【請求項2】
第一の画像において所定の被写体が写っていない画素である背景画素と、前記第一の画像における前記所定の被写体の基準姿勢に対する相対的な姿勢とを推定する推定処理、及び、推定された前記背景画素を前記第一の画像から除去した背景除去画像に、推定された前記相対的な姿勢を用いて幾何変換を行って変換画像を生成する変換処理を行う推定ステップと、
背景がなく、かつ、前記基準姿勢の前記所定の被写体が写っている第二の画像の特徴と前記変換画像の特徴とが近くなるように、前記推定処理及び前記変換処理を学習する学習ステップと、
を有する学習方法。
【請求項3】
前記推定ステップにおいては、画像の特徴を抽出する特徴抽出処理により、前記第二の画像と、前記背景除去画像と、前記所定の被写体とは異なる被写体が写っている第三の画像とのそれぞれから特徴を抽出し、
前記学習ステップにおいては、前記第二の画像から抽出された前記特徴と前記変換画像から抽出された前記特徴とが近く、かつ、前記第二の画像から抽出された前記特徴と前記第三の画像から抽出された前記特徴とが遠くなるように、前記推定処理、前記変換処理及び前記特徴抽出処理を学習する、
請求項2に記載の学習方法。
【請求項4】
第一の画像において所定の被写体が写っていない画素である背景画素と、前記第一の画像における前記所定の被写体の基準姿勢に対する相対的な姿勢とを推定する推定処理、及び、推定された前記背景画素を前記第一の画像から除去した背景除去画像に、推定された前記相対的な姿勢を用いて幾何変換を行って変換画像を生成する変換処理を行う推定部を備え、
前記推定処理及び前記変換処理は、背景がなく、かつ、前記基準姿勢の前記所定の被写体が写っている第二の画像の特徴と前記変換画像の特徴とが近くなるように学習されている、
姿勢推定装置。
【請求項5】
第一の画像において所定の被写体が写っていない画素である背景画素と、前記第一の画像における前記所定の被写体の基準姿勢に対する相対的な姿勢とを推定する推定処理、及び、推定された前記背景画素を前記第一の画像から除去した背景除去画像に、推定された前記相対的な姿勢を用いて幾何変換を行って変換画像を生成する変換処理を行う推定部と、
背景がなく、かつ、前記基準姿勢の前記所定の被写体が写っている第二の画像の特徴と前記変換画像の特徴とが近くなるように、前記推定処理及び前記変換処理を学習する学習部と、
を備える学習装置。
【請求項6】
コンピュータに、
請求項1に記載の姿勢推定方法を実行させるためのプログラム。
【請求項7】
コンピュータに、
請求項2又は請求項3に記載の学習方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、姿勢推定方法、学習方法、姿勢推定装置、学習装置及びプログラムに関する。
【背景技術】
【0002】
画像認識技術の進展が目覚ましい。これまで実用化されてきた顔や指紋による個人認証技術や、人物・顔の認識・追跡技術の更なる高度化に加え、スマートフォン等の汎用デバイス上で動作する文字認識/物体認識技術も普及してきており、O2Oサービスやナビゲーションサービス等、新しいサービスへも活用されるようになってきている。
【0003】
特に最近注目を集めている応用の一つに、ロボットの“目”としての活用がある。製造業においては、古くより画像認識機能を備えたロボットによるファクトリーオートメーションの導入が進められてきたが、昨今のロボットAI技術の進歩に伴い、リテイル・物流現場での搬送・在庫管理、運送・運搬など、より高度な認識が求められるフィールドへの展開が期待されてきている。
【0004】
典型的な画像認識技術は、画像そのもの、あるいは、それに写る被写体に名称ラベル(以降単にラベルと呼ぶ)を与える技術である。例えば、ある画像にリンゴが写っていたとし、これを入力された時の画像認識技術の望ましい動作としては、“リンゴ”というラベルを出力する、あるいは、当該画像のリンゴの写る領域、すなわち画素の集合に対して、“リンゴ”というラベルを割り当てることである。
【0005】
一方で、先に述べたようなロボットに具備されうる画像認識技術においては、このようにラベルを出力するのみでは不十分である場合も多い。例えば、リテーラーでのロボットの活用事例として、物品棚にある商品を把持・運搬し、別の商品棚に移すような場面を考えよう。この際、当該タスクを完遂するためには、ロボットは大雑把に言って、(1)物品棚にあるさまざまな商品の中から、移すべき対象の商品を特定する、(2)当該商品を把持する、(3)目的の商品棚まで移動・運搬する、(4)望ましいレイアウトとなるよう配置する、という工程を実行できなければならない。然るに画像認識技術は、物品棚、商品、商品棚を認識できることはもちろんのこと、これに加えて、特に(2)、(4)に関連しては物体を把持、陳列するために物体の姿勢、すなわち、位置・角度・大きさも正確に認識できる必要がある。先に述べたような典型的な画像認識技術には、このような物体の姿勢を推定する機能は備えておらず、別途、物体の姿勢を推定するような技術が必要となる。
【0006】
このような問題を鑑み、物体の姿勢を推定するための画像認識技術が発明・開示されてきている(例えば、特許文献1、非特許文献1~4参照)。
【0007】
非特許文献1には、Scale Invariant Feature Transform(SIFT)特徴と一般化ハフ変換に基づく姿勢推定方法が開示されている。この姿勢推定方法では、画像の輝度値を解析することで、顕著な輝度変化を持つような部分領域を多数抽出し、それら各部分領域の輝度変化を、大きさ・回転に対して不変性を持つ特徴量ベクトルとして表現する(SIFT特徴)。次に、同一物体を写した互いに異なる2枚の画像に含まれる部分領域について、SIFT特徴同士のユークリッド距離を測り、これが小さい値を持つような異なる画像間の部分領域同士を対応候補として求める。さらに、同一の物体から得られた部分領域であれば、物体上の対応する部分領域間の姿勢の変化が、撮影視点に依らず一貫性を持つという仮定に基づき、対応候補となった部分領域間の位置・姿勢・大きさの「ずれ」を求める。同一の物体から得られた対応する部分領域の集合は、このずれに一貫性があるという仮定の下、ずれのヒストグラムを構成したとすると、これらはごく少数のビンに集中して分布することが想定される。したがって、頻度の高いビンに分布している対応候補のみを真に有効な対応であると見做し、そのビンに対応するずれを姿勢パラメータとして推定する。この姿勢は、比較された2枚の画像に写る物体の相対的な姿勢変化を表しており、一方の物体の姿勢を基準姿勢とすれば、他方の姿勢を知ることが可能となっている。
【0008】
特許文献1には、非特許文献1を改良した技術が開示されている。SIFT特徴に基づき部分領域の対応候補を求め、これらの位置・姿勢・大きさのずれを計算して対応の適否を判定することは同様であるが、ずれを評価する際に3次元回転角度を考えている。結果として、非特許文献1の技術よりもさらに精細な姿勢推定を可能にしている。
【0009】
非特許文献2に開示の技術は、前述の2つの文献とは異なり、畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)を用いた機械学習に基づく技術を開示している。予め、画像に対して、そこに写る物体を囲む8点の直方体の頂点を記録した大量の学習用画像データ(例えば12万枚)を用意しておき、このデータを基に、画像が入力された際に、当該画像に写る物体を囲む8点の直方体の頂点を予測するようなCNNを誤差逆伝搬法に基づいて学習することにより、姿勢推定を可能にしている。
【0010】
非特許文献3は、物体の姿勢に対する正解データが無い場合でも、物体の姿勢推定器を学習可能にする技術を開示している。基準となる姿勢である物体を撮影した画像である基準画像があるとする。任意の姿勢の物体が写った画像が入力された場合、当該入力画像に対して、非特許文献4に開示されているSpatial Transformer Network(STN)を導入した幾何変換層を用い、基準画像に見え方が一致するように幾何変換を施す。この幾何変換に用いられた姿勢パラメータを用いて、当該画像の基準画像からのずれを推定する。
【先行技術文献】
【特許文献】
【0011】
【非特許文献】
【0012】
【非特許文献1】David G. Lowe,"Distinctive Image Features from Scale-Invariant Keypoints",International Journal of Computer Vision,pp.91-110,2004.
【非特許文献2】Jonathan Tremblay,Thang To,Balakumar Sundaralingam,Yu Xiang,Dieter Fox,Stan Birchfield,"Deep Object Pose Estimation for Semantic Robotic Grasping of Household Objects",Proceedings of Conference on Robot Learning,pp. 306-316,2018.
【非特許文献3】Kouki Ueno,Go Irie,Masashi Nishiyama,Yoshio Iwai,"Weakly Supervised Triplet Learning of Canonical Plane Transformation for Joint Object Recognition and Pose Estimation",Proceedings of 2019 IEEE International Conference on Image Processing (ICIP),2019.
【非特許文献4】Max Jaderberg,Karen Simonyan,Andrew Zisserman,Koray Kavukcuoglu,"Spatial Transformer Networks",Proceedings of Neural Information Processing Systems,2015.
【発明の概要】
【発明が解決しようとする課題】
【0013】
大局的にみれば、既存の発明は、同一物体を写した2枚の異なる画像間の対応関係を分析することにより、相対的な姿勢を推定するか(非特許文献1、特許文献1)、あるいは、画像とそこに写る物体の姿勢を表す情報(8点の直方体の頂点など)を記録した大量の学習用データを基にCNNを学習し、姿勢推定器を構成するか(非特許文献2)のいずれかの方法を採っている。
【0014】
しかしながら、特許文献1、非特許文献1に記載の技術は、予め姿勢を推定する対象となる種類の物体の画像を必ず保持していなければならないという問題があった。仮に、姿勢を推定する対象の物体が10種類であるとすると、姿勢を推定したい画像と、先の10種類の物体がそれぞれ基準姿勢で撮影された、少なくとも10枚の画像とをそれぞれ比較し、相対的な姿勢を推定する必要がある。この原理的に、物体の姿勢を推定するためには、必ずその物体が基準姿勢として写っている画像を保持しておかなければ適用できず、すなわち、未知の物体に対しては適用できないという問題があった。
【0015】
さらに、姿勢推定は2枚の画像間の相対的な姿勢変化により実施されるため、物体の種類の数に応じて姿勢推定処理に掛かる時間が増大していくという問題もあった。
【0016】
また、非特許文献2に記載の方法は、CNNの学習に、姿勢を表す情報を記録した大量の学習用データが必要となるという問題があった。姿勢を表す情報(非特許文献2の場合、8点の直方体の頂点)は画像の画素レベルでの精細さと、正確さを備えている必要があり、このような情報を付与するのはコストがかかる。また、CNNは一般に大量の学習データが必要であることからも、学習データの構築に掛かるコストは非常に高くなることが想定される。
【0017】
一方、非特許文献3に記載の技術は、正解姿勢の情報を与えられた学習データが無くとも、STNを援用した幾何変換層を導入することによって、基準姿勢に対する相対的な姿勢を推定可能な姿勢推定器を学習することを可能にしている。この技術は、学習データに含まれていないような未知の物体であっても、対象の形状や見た目に部分的ではあっても類似性がある場合には正確な姿勢推定が可能であるという利点を有する。しかしながら、幾何変換層は、任意の姿勢で物体が写った入力画像を、基準画像に一致するように幾何変換を施すことにより学習されるため、入力画像と基準画像に異なる背景が写り込んでいた場合、画像が一致せず、姿勢推定器の学習並びに姿勢推定に失敗する可能性があった。
【0018】
このように、現在に至るまで、低コストで収集可能な学習用データに基づき、未知の物体が写る画像、特に、背景が写り込んでいるような画像に対しても、高精度に物体の姿勢を推定できる画像認識技術は発明されていなかった。
【0019】
上記事情に鑑み、本発明は、低コストで収集可能な学習用データに基づいて、画像に撮像された被写体の姿勢を精度良く推定することができる姿勢推定方法、学習方法、姿勢推定装置、学習装置及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0020】
本発明の一態様は、第一の画像において所定の被写体が写っていない画素である背景画素と、前記第一の画像における前記所定の被写体の基準姿勢に対する相対的な姿勢とを推定する推定処理、及び、推定された前記背景画素を前記第一の画像から除去した背景除去画像に、推定された前記相対的な姿勢を用いて幾何変換を行って変換画像を生成する変換処理を行う推定ステップを有し、前記推定処理及び前記変換処理は、背景がなく、かつ、前記基準姿勢の前記所定の被写体が写っている第二の画像の特徴と前記変換画像の特徴とが近くなるように学習されている、姿勢推定方法である。
【0021】
本発明の一態様は、第一の画像において所定の被写体が写っていない画素である背景画素と、前記第一の画像における前記所定の被写体の基準姿勢に対する相対的な姿勢とを推定する推定処理、及び、推定された前記背景画素を前記第一の画像から除去した背景除去画像に、推定された前記相対的な姿勢を用いて幾何変換を行って変換画像を生成する変換処理を行う推定ステップと、背景がなく、かつ、前記基準姿勢の前記所定の被写体が写っている第二の画像の特徴と前記変換画像の特徴とが近くなるように、前記推定処理及び前記変換処理を学習する学習ステップと、を有する学習方法である。
【0022】
本発明の一態様は、第一の画像において所定の被写体が写っていない画素である背景画素と、前記第一の画像における前記所定の被写体の基準姿勢に対する相対的な姿勢とを推定する推定処理、及び、推定された前記背景画素を前記第一の画像から除去した背景除去画像に、推定された前記相対的な姿勢を用いて幾何変換を行って変換画像を生成する変換処理を行う推定部を備え、前記推定処理及び前記変換処理は、背景がなく、かつ、前記基準姿勢の前記所定の被写体が写っている第二の画像の特徴と前記変換画像の特徴とが近くなるように学習されている、姿勢推定装置である。
【0023】
本発明の一態様は、第一の画像において所定の被写体が写っていない画素である背景画素と、前記第一の画像における前記所定の被写体の基準姿勢に対する相対的な姿勢とを推定する推定処理、及び、推定された前記背景画素を前記第一の画像から除去した背景除去画像に、推定された前記相対的な姿勢を用いて幾何変換を行って変換画像を生成する変換処理を行う推定部と、背景がなく、かつ、前記基準姿勢の前記所定の被写体が写っている第二の画像の特徴と前記変換画像の特徴とが近くなるように、前記推定処理及び前記変換処理を学習する学習部と、を備える学習装置である。
【0024】
本発明の一態様は、コンピュータに、上述した姿勢推定方法を実行させるためのプログラムである。
【0025】
本発明の一態様は、コンピュータに、上述した学習方法を実行させるためのプログラムである。
【発明の効果】
【0026】
本発明により、低コストで収集可能な学習用データに基づいて、画像に撮像された被写体の姿勢を精度良く推定することが可能となる。
【図面の簡単な説明】
【0027】
【
図1】本発明の一実施形態による学習装置の構成を示すブロック図である。
【
図2】同実施形態による姿勢推定装置の構成を示すブロック図である。
【
図3】同実施形態による学習装置又は情報処理装置として用いられるコンピュータのハードウェア構成を示す図である。
【
図4】同実施形態による画像変換器の構成の一例を示す図である。
【
図5】同実施形態による背景除去層の構成の一例を示す図である。
【
図6】同実施形態による幾何変換層の構成の一例を示す図である。
【
図7】同実施形態による画像変換器の構成の一例を示す図である。
【
図8】同実施形態による学習装置の学習処理の一例を示す図である。
【発明を実施するための形態】
【0028】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0029】
<装置構成>
図1は、学習装置1の構成を示すブロック図である。同図に示す学習装置1は、学習処理を行って、画像変換器を学習する。画像変換器は、姿勢推定器の一例であり、入力された画像に撮像された所定の被写体の姿勢パラメータを推定する関数である。姿勢パラメータは、基準姿勢に対する相対的な姿勢を表す。画像変換器には、例えば、ニューラルネットワークが用いられる。学習装置1は、入力部2及び演算部3を備える。演算部3は、モデル記憶部31、推定部32、及び学習部33を備える。なお、モデル記憶部31は、学習装置1の内部にあっても外部にあっても構わないが、本実施形態においては内部に備える構成を採る。
【0030】
入力部2は、1枚以上の第一の画像と、1枚以上の第二の画像と、1枚以上の第三の画像との入力を受け付ける。第一の画像は、所定の被写体を任意の姿勢及び任意の背景で撮影した画像のデータである。第二の画像は、所定の被写体を基準姿勢かつ背景のない状態で撮影した画像のデータである。第三の画像は、所定の被写体とは異なる被写体を任意の姿勢及び任意の背景で撮像した画像のデータである。
【0031】
モデル記憶部31は、画像変換器を記憶する。具体的には、モデル記憶部31は、後述する
図4に示す画像変換器10と、後述する
図7に示す画像変換器10Aの各々のパラメータの値を記憶する。画像変換器10は、背景を含む画像の入力を受け、入力画像の背景画素、入力画像から背景画素を除去した背景除去画像、背景除去画像から推定された姿勢パラメータ、変換画像、及び、変換画像の特徴量を出力するニューラルネットワークである。変換画像は、姿勢パラメータを用いて背景除去画像を変換してられる画像であり、背景の無い所定の被写体の基準姿勢の画像である。画像変換器10Aは、背景画素、入力画像から背景画素を除去した背景除去画像、姿勢パラメータ及び変換画像を出力する変換層を画像変換器10から除いた構成である。
【0032】
推定部32は、画像変換器10に第一の画像を入力することにより、推定処理、変換処理及び特徴抽出処理を行う。推定処理において、推定部32は、第一の画像に撮像された背景画素と、第一の画像に写っている所定の被写体の基準姿勢に対する相対的な姿勢を表す姿勢パラメータとを推定する。変換処理において、推定部32は、推定された背景画素及び姿勢パラメータを用いて第一の画像を変換した変換画像である第四の画像を求める。第四の画像は、背景が除去され、かつ、基準姿勢の所定の被写体が撮像された画像である。特徴抽出処理において、推定部32は、第四の画像の特徴量を抽出する。また、推定部32は、第二の画像を画像変換器10Aに入力して特徴抽出処理を行い、第二の画像の特徴量を抽出する。また、推定部32は、第三の画像を画像変換器10Aに入力して特徴抽出処理を行い、第三の画像の特徴量を抽出する。
【0033】
学習部33は、第二の画像の画素値と第四の画像の画素値との距離の総和が最小となり、かつ、第二の画像の特徴量と第三の画像の特徴量との距離が遠くなり、かつ、第二の画像の特徴量と第四の画像の特徴量との距離が近くなるように、画像変換器10、10Aのパラメータ値を学習し、モデル記憶部31を更新する。
【0034】
上記の推定部32及び学習部33の各処理は、予め定められた終了条件を満たすまで繰り返し行われる。
【0035】
図2は、姿勢推定装置5の構成を示すブロック図である。同図に示す姿勢推定装置5は、姿勢推定処理を行って、推定対象の画像に撮像された所定の被写体の姿勢パラメータを推定すると共に、その推定対象の画像の被写体を認識する。姿勢パラメータは、推定対象の画像に撮像された所定の被写体の基準姿勢に対する相対的な姿勢を表す。姿勢推定装置5は、入力部6、演算部7及び出力部8を備える。演算部7は、モデル記憶部71、推定部72、参照画像データベース(DB)73、及び照合部74を備える。なお、モデル記憶部71及び参照画像データベース73は、姿勢推定装置5の内部にあっても外部にあっても構わないが、本実施形態においては内部に配する構成を採る。
【0036】
入力部6は、推定対象となる、所定の被写体が撮影された画像である推定対象画像(第一の画像)を受け付ける。モデル記憶部71は、学習装置1によって学習された、画像変換器10のパラメータの値を記憶する。
【0037】
推定部72は、入力部6が入力した推定対象画像に対して、画像変換器10により推定処理、変換処理及び特徴抽出処理を行う。推定処理において、推定部72は、入力部6が入力した推定対象画像の背景画素と、推定対象画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を表す姿勢パラメータを推定する。変換処理において、推定部72は、推定された背景画素を推定対象画像から除去した背景除去画像に、推定された姿勢パラメータを用いて幾何変換を行うことにより、基準姿勢の所定の被写体が撮像されている変換画像を求める。特徴抽出処理において、推定部72は、求めた変換画像の特徴量を抽出する。
【0038】
参照画像データベース73は、被写体情報が既知の各参照画像の特徴量を記憶している。被写体情報は、例えば、被写体の名称である。参照画像の特徴量は、予め画像変換器10又は画像変換器10Aによって抽出しておくものとする。照合部74は、推定部72によって抽出された特徴量と、参照画像の特徴量とを照合することにより、推定対象画像の被写体の名称を認識する。
【0039】
出力部8は、演算部7により推定された姿勢パラメータ、変換画像、及び、推定対象画像の被写体の名称を出力する。
【0040】
学習装置1及び姿勢推定装置5の各々は、一例として、
図3に示すコンピュータ84によって実現される。
図3は、コンピュータ84のハードウェア構成を示す図である。コンピュータ84は、CPU86、メモリ88、プログラム90を記憶した記憶部92、モニタを含む表示部94、及び、キーボードやマウスを含む入力部96を含んでいる。CPU86、メモリ88、記憶部92、表示部94、及び入力部96は、バス98を介して互いに接続されている。
【0041】
記憶部92はHDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等によって実現される。記憶部92には、コンピュータ84を学習装置1又は姿勢推定装置5として機能させるためのプログラム90が記憶されている。CPU86は、プログラム90を記憶部92から読み出してメモリ88に展開し、プログラム90を実行する。なお、プログラム90をコンピュータ可読媒体に格納して提供してもよい。
【0042】
<処理概要>
本実施形態における姿勢推定装置5が実行する姿勢推定方法は、背景を含む画像を入力として受け付けると、その背景画素、姿勢パラメータ、変換画像、並びに特徴量を出力するニューラルネットワークを画像変換器として用いる。ここで言う背景画素とは、画像中の対象となる被写体が写っている領域以外の画素、あるいは、その画素を指し示す情報である。また、姿勢パラメータとは、物体の姿勢を表す値であり、より具体的には、例えば、物体の位置・大きさ・角度を与える行列であるアフィン変換行列や射影変換行列の要素である。また、姿勢とは、基準となる姿勢から、物体にどのような剛体運動が与えられたかを示す値である。変換画像は、当該背景画像による背景除去処理、並びに、姿勢パラメータによる姿勢変換を入力画像に適用した場合に得られる変換後の画像を意味する。また、特徴量は、入力画像に写る物体の特徴をベクトル表現したものであり、物体の名称を特定するのに用いられる。
【0043】
画像変換器の構成は、上記のような入出力関係を実現できるものであれば任意の構成を採ることができるが、構成の一例を説明する。
【0044】
図4は、画像変換器10の構成の一例を示す図である。この構成はCNNに基づいており、畳み込み層、プーリング層、全結合層、幾何変換層の4種類の層を用いて構成することができる。例えば、
図4に示す画像変換器10は、変換層11、畳み込み層12、プーリング層13、畳み込み層14、プーリング層15、全結合層16及び全結合層17を含んで構成されている。さらに、変換層11は、背景除去層11aと幾何変換層11bとの2つの層により構成されている。畳み込み層、プーリング層、全結合層については広く知られた公知の層であり、例えば参考文献1に記載のものを用いればよい。
【0045】
[参考文献1]Alex Krizhevsky,Ilya Sutskever,Geoffrey E. Hinton,"ImageNet Classification with Deep Convolutional Neural Networks",Proceedings of Neural Information Processing Systems,2012.
【0046】
背景除去層11aは、画像を入力として受け付けると、その背景画素を出力できるものであればどのような構成を採っても構わない。
【0047】
図5は、背景除去層11aの構成の一例を示す図である。例えば、
図5に示すように、背景除去層11aは、背景画素推定層111aと、画像変換層112aとにより構成される。背景画素推定層111aは、背景除去層11aに入力された画像Uから、各画素が背景であるか否かを表す情報を格納した画像であるマスク画像Mを推定する。背景画素推定層111aは、画像Uを入力として受け付け、当該画像Uの各画素が背景であるか否かを表す情報を格納したマスク画像Mを出力するニューラルネットワークにより構成される。好ましくは、マスク画像Mは、背景に対応する画素に0、それ以外の画素に1を格納した画像である。画像変換層112aは、背景画素推定層111aにより推定されたマスク画像Mを画像Uに適用することによって背景除去画像Vを求め、出力する。具体的には、画像変換層112aは、上記のように生成されたマスク画像Mを用い、マスク画像Mにおいて1に対応する位置にある入力画像Uの画素のみを通し、0の位置に対応する画素を除去することにより背景除去画像Vを求め、求めた背景除去画像Vを出力する。すなわち、入力画像Uの画素のうち、背景画素には0が掛かるため値が0になり、背景以外の画素には1が掛かるため元の値がそのまま採用される。この処理は、マスク画像Mを入力画像Uの各チャネル(RGB等)に掛けることによって簡易に実装可能である。
【0048】
マスク画像Mを出力する背景画素推定層111aのニューラルネットワークは、その出力層の活性化関数の選択が重要である。通常用いられるニューラルネットワークの活性化関数、例えばシグモイド関数は、0~1の実数値を出力する。すなわち、出力が連続値であるため、そのままでは背景か否かを判断することができない。また、もし仮にこの実数値を用いてマスク画像Mを構成したとすると、入力画像Uに掛かる値が実数値、例えば0.8などとなるため、元の入力画像Uの画素値を変えてしまうことになり、後段の姿勢推定に影響を及ぼすため、好ましくない。
【0049】
一つの好ましい選択は、ステップ関数を採用することである。このような構成にすることで、出力が厳密に0又は1の二値となり、各画素が背景か否かを表す情報を直接ニューラルネットワークの出力として得ることができる。しかしながら、ステップ関数を用いた場合、有効な微分値が求められないため、学習ができなくなるという問題が起こる。この点については後述の学習処理の説明の際に述べる。
【0050】
別の好ましい選択は、参考文献2に記載の式(1)のような活性化関数を用いることである。
【0051】
【0052】
ここで、xは背景画素推定層のニューラルネットワークの出力にシグモイド関数を掛けたもの、β0、β1はそれぞれガンベル分布からサンプルした乱数、τは0以上の実数値を取るパラメータである。この関数はxについて微分可能であるが、τ→0のときステップ関数に一致することが知られており、例えばτを適当な値、例えば1.0から徐々に0に近づけながら学習するなどの方法により、ステップ関数の利点を享受しつつ学習を行うことが可能であるので好適である。
【0053】
[参考文献2]Eric Jang,Shixiang Gu,Ben Poole,"Categorical Reparameterization with Gumbel-Softmax",arXiv preprint 1611.01144,2016,インターネット<URL:https://arxiv.org/abs/1611.01144>
【0054】
幾何変換層11bについては、画像を入力として受け付けると、その姿勢パラメータ、並びに、姿勢パラメータに基づく画像変換を入力画像に適用して得られる姿勢変換画像を出力できるような層であればどんなものでも構わない。例えば、非特許文献4に記載のSTNを用いることができる。
【0055】
図6は、幾何変換層11bの構成の例を示す図である。例えば、
図6に示すように、幾何変換層11bは、姿勢パラメータ推定層111bと、画像変換層112bとにより構成される。姿勢パラメータ推定層111bは、幾何変換層11bに入力された画像Uから、アフィン変換行列、又は、射影変換行列により表現される姿勢パラメータθを推定する。姿勢パラメータ推定層111bは、画像Uを入力として受け付け、当該画像Uに写る物体のアフィン変換行列、又は、射影変換行列の要素を出力するニューラルネットワークにより構成される。画像変換層112bは、姿勢パラメータ推定層111bにより推定された姿勢パラメータθを画像Uに適用することによって姿勢変換画像Vを求め、出力する。このように構成される幾何変換層11bは、入力画像に写る物体が、基準姿勢に対して位置・大きさ・角度の観点でどの程度ずれているかを直接推定することができるため、好適である。
【0056】
もちろん、本実施形態における画像変換器10のニューラルネットワークの構成はこれに限られるものではなく、先の入出力要件を満たす限りどんな構成を採っても構わない。好ましくは、最終層にL2正規化層を加える。こうすることによって、特徴量を頑健化できるため、好適である。
【0057】
また、例えば、
図4に示す画像変換器10の構成は、畳み込み層及びプーリング層の組み合わせを2回繰り返し、その後全結合層を2層積んだ構造となっているが、この2層の全結合層の代わりに、参考文献3、あるいは、参考文献4などに開示されている大域的プーリング層を用いても構わない。
【0058】
[参考文献3]Kaiming He,Xiangyu Zhang,Shaoqing Ren,Jian Sun,"Deep Residual Learning for Image Recognition",Proceedings of Conference on Computer Vision and Pattern Recognition,2016.
【0059】
[参考文献4]Giorgos Tolias,Ronan Sicre,Herve Jegou,"Particular Object Retrieval With Integral Max-Pooling of CNN Activations",2015,ArXiv Preprint,インターネット<URL:https://arxiv.org/abs/1511.05879>.
【0060】
このように、画像変換器10を、全結合の無い構成にすることにより、入力画像のサイズに依らず、常に同じ次元数の特徴量を求めることができるため好適である。
【0061】
以降、簡単のため、
図4に示す画像変換器10を用いる場合を例にとり、説明を続ける。
【0062】
本実施形態における姿勢推定方法は、学習装置1が画像変換器10を学習する処理を実行する過程と、姿勢推定装置5がこの学習された画像変換器10を用いて特徴量及び姿勢を求める姿勢推定処理を実行する過程との、大別して2つの異なる過程を有する。以降、まず学習処理について詳述し、その後、姿勢推定処理について詳細に述べる。
【0063】
<<学習処理>>
学習処理は、姿勢推定装置5が姿勢推定を行う前に、学習装置1によって少なくとも一度実施される必要のある処理である。より具体的には、学習処理は、画像変換器10のパラメータの値であるニューラルネットワークの重みを学習用データに基づいて適切に決定するための処理である。なお、本学習処理を実行する上では、先に説明した画像変換器10(ニューラルネットワーク)において、変換層を除いた画像変換器10Aも用いる。
【0064】
図7は、画像変換器10Aの構成の例を示す図である。
図7に示す画像変換器10Aは、
図4に示す画像変換器10から変換層11を除いたニューラルネットワークの構成である。以降、変換層11を有するニューラルネットワークにより構成された画像変換器10を変換層付きモデル10、変換層11を持たない画像変換器10Aを変換層無しモデル10Aと呼称する。ここで、変換層11以外のパラメータの値には、変換層付きモデル10と変換層無しモデル10Aとの両モデルで共通のものを利用する。すなわち、
図4、
図7の例では、対応する同じ符号の畳み込み層、全結合層のパラメータは全て同じ値を持つものとする。
【0065】
本実施形態における学習処理を実行するには、予め学習用画像データを準備しておく必要がある。この学習用画像データは、画像の三つ組みの集合により構成される。この三つ組みとは、ある物体を基準姿勢で写した背景の無い画像Ia(第二の画像)、画像Iaと同一の被写体を別姿勢で写した背景のある画像Ip(第一の画像)、及び、画像Iaとは異なる被写体を写した背景のある画像In(第三の画像)の三つからなり、異なる画像の組み合わせからなる三つ組みの集合により学習用画像データが構成される。
【0066】
このような三つ組みの学習用画像データは、次の(a)~(d)の要件を満たす画像集合があれば自動的に構成することが可能である。
【0067】
(a)1枚以上の画像を含み、各画像は少なくとも一つの物体を写したものであること。
(b)学習用画像データ全体を通して2種類以上の物体を含み、同一種類の物体を写した画像が少なくとも2枚以上存在すること。
(c)全種類の物体に対して、それぞれ基準姿勢となる物体画像が存在・特定可能であり、当該画像は背景が無いこと。
(d)同一種類の物体を写した画像同士が互いに識別可能であること。
【0068】
上記(a)~(d)の要件が揃ったものであれば、例えば、以下の(1)~(3)の処理により、上記三つ組みを一組構成することができる。
【0069】
(1)基準姿勢となる画像をランダムに一つ選び、これを画像Iaとする。
(2)画像Iaと同一の被写体を写した基準姿勢でない画像をランダムに選び、これを画像Ipとする。
(3)画像Ia、画像Ipとは別の被写体を写した画像をランダムに選び、これを画像Inとする。
【0070】
(1)~(3)の処理を、所望の組数が揃うまで繰り返せば、学習用画像データを構成可能である。なお実際には、上記要件を満たすような学習用画像データを準備する手段は本発明の要点とは無関係であり、どのような手段で準備しても構わない。人手によって準備しても構わないし、自動的に準備しても構わない。
【0071】
上記のような学習用画像データが存在するもとで、本実施形態における学習処理は、次の工程により実行される。すなわち、学習装置1の入力部2が上記の学習用画像データを入力した後、演算部3は、学習処理を実行する。
【0072】
図8は、本実施形態における学習装置1の学習処理の概要を示すフロー図である。まず、ステップS101において、推定部32は、画像I
pに対して変換層付きモデル10を適用し、画像I
pの変換画像である画像I
ptと、画像I
ptの画像特徴量である特徴量f
ptを求める。
【0073】
続いてステップS102において、学習部33は、画像Ia、画像Inのそれぞれに対して変換層無しモデル10Aを適用し、画像Iaの画像特徴量である特徴量fa、及び、画像Inの画像特徴量である特徴量fnを求める。続いてステップS103において、学習部33は、画像Iptと画像Iaに基づき、アピアランス損失を求める。続いてステップS104において、学習部33は、特徴量fa、特徴量fpt、特徴量fnを基に、特徴量損失を求める。続いてステップS105において、学習部33は、アピアランス損失と特徴量損失の重み付き和を小さくするように変換層付きモデル10のパラメータの値を更新し、変換層無しモデル10Aにパラメータの値をコピーする。
【0074】
ステップS106において、学習部33は、所定の終了条件が満たされか否かを判定する。学習部33が所定の終了条件を満たすと判定するまで、演算部3は、上記ステップS101~S105の処理を繰り返す。演算部3は、学習部33が終了条件を満たしたと判定した場合に学習処理を終了する。
【0075】
<<各処理の処理詳細>>
ステップS101、ステップS102については、先に説明した変換層付きモデル10、変換層無しモデル10Aを各画像に対して適用することで直ちに実行することができ。以降、ステップS103~S105の各処理の詳細処理について、本実施形態における一例を説明する。
【0076】
[ステップS103:アピアランス損失計算処理]
この処理では、学習部33は、同一の被写体を含む画像Ia、並びに、画像Iptに基づいて、その画像としての見え方の差異であるところのアピアランス損失を求める。
【0077】
ステップS101において、学習用画像データに含まれる画像Ipに対して、変換層11による背景除去、姿勢変換を施した姿勢変換画像Iptが得られている。画像Ia、画像Ipは同一の被写体を写しており、異なっているのは画像Ipには背景があること、及び、それぞれが撮影された姿勢であることから、理想的には、背景除去、並びに、姿勢変換を経た画像Iptは、画像Iaと同じ見えになっていることが好ましい。
【0078】
この考え方から、学習部33は、画像Iaと画像Iptの画素値の距離の総和を求め、これをアピアランス損失Laとして用いる。画素値の距離は、例えばL1距離によって下記の式(2)のように求めることができる。
【0079】
【0080】
ここで、Ia
i(x、y、c)は、画像Ia
iのx、y位置におけるチャネルcの画素値であり、Ipt
i(x、y、c)は、画像Ipt
iのx、y位置におけるチャネルcの画素値である。また、Xi、Yi、Ciはそれぞれ、画像Ia
i、画像Ipt
iの組に対するxの定義域、yの定義域、cの定義域を表す。Nは、学習用画像データの中に含まれる三つ組みの数、あるいはそれ以下の定数である。添え字iは、N個の三つ組みのうちi番目であることを示す。
【0081】
このアピアランス損失Laは、変換後の画像Ipt
iと画像Ia
iが同じ見えになっているほど小さい値を取り、Ipt
i=Ia
iの場合に0となる。すなわち、様々な画像Ip
iに対してこの値を小さくするように変換層11のパラメータの値を学習することによって、どんな姿勢で撮影された被写体であっても、常に基準姿勢時の被写体を撮影した画像Ia
iに近づけるような姿勢変換を行うことができるようになる。結果として、背景画素を除いた後の姿勢パラメータにより、基準姿勢との差異を推定することができるようになる。
【0082】
アピアランス損失は必ずしも上記式(2)の形でなくとも構わず、画像Ipt
iと画像Ia
iが同じ見えになっているほど小さい値を取り、Ipt
i=Ia
iの場合に0となるようなものであれば任意の形態をとって構わない。例えば、利用する距離はL1距離でなくともよく、例えばL2距離などを用いても構わない。また、Xi、Yi、Ciは必ずしも画像全体を指示するものでなくとも構わない。
以上がステップS103において学習部33が行う処理である。
【0083】
[ステップS104:特徴量損失計算処理]
この処理では、学習部33は、特徴量を学習するために必要な特徴量損失を求める。画像認識の観点から言えば、同一の被写体を含む画像Ia、画像Iptそれぞれの特徴量fa、特徴量fptはベクトルとして互いに近く、また、逆に、異なる被写体を含む画像Ia
、画像Inそれぞれの特徴量fa、特徴量fnはベクトルとして互いに遠くなっている方が好ましい。このような特徴量を得ることにより、特徴量の近さに基づいて同一被写体を検索したり、あるいは、例えばK近傍法などの識別法により被写体の名称を推定したりすることもできるようになる。
【0084】
このような特徴量を学習するための損失は様々な形態のものが有り得るが、例えば下記の式(3)のような特徴量損失Lfを用いることができる。
【0085】
【0086】
ここで、||x||2
2はxのL2ノルムである。また、mは0以上の実数値であり、任意の値に設定してよいが、例えば0.3などとすればよい。
【0087】
特徴量損失Lfは、特徴量fpt
iが特徴量fn
iよりもL2距離の意味で特徴量fa
iにm以上近しければ最小値である0を取り、そうでなければ、0よりも大きな値を取る。したがって、様々な三つ組みに対してこの値が小さくするように変換層付きモデル10のパラメータを学習することによって、同一の被写体を撮影した画像ほど近い特徴量を出力できるようになる。
【0088】
あるいは、下記の式(4)のような特徴量損失Lfを用いても構わない。
【0089】
【0090】
式(4)のように定められた特徴量損失Lfは、特徴量fpt
iと特徴量fa
iとが同じL2距離の意味で近いほど小さい値となり、また、特徴量fn
iと特徴量fa
iとがL2距離の意味で遠いほど小さい値を取る。そうでなければ、特徴量損失Lfは、0よりも大きな値を取る。
【0091】
特徴量損失は必ずしも上記式(3)あるいは式(4)の形でなくとも構わない。例えば、ノルムはL2ノルムでなくともよく、例えばL1ノルムなどを用いても構わない。
以上がステップS104において学習部33が行う処理である。
【0092】
[ステップS105:モデルパラメータ更新]
この処理では、学習部33は、ステップS103で求めたアピアランス損失LaとステップS104で求めた特徴量損失Lfの重み付き和Lを小さくするように変換層付きモデル10のパラメータを更新する。具体的には、重み付き和Lは下記の式(5)のように定義される。
【0093】
【0094】
λは、アピアランス損失La及び特徴量損失Lfの二つの損失のバランスを取るパラメータであり、任意の実数値を設定してよい。例えば、λ=100などとすればよい。
【0095】
アピアランス損失La及び特徴量損失Lf共に、ニューラルネットワークのパラメータに対して区分的に微分可能であることを鑑みれば、勾配法により学習可能である。例えば、確率的勾配降下法に基づいて学習する場合、変換層付きモデル10のあるパラメータをwとおくと、1ステップあたり、以下の式(6)に基づいてパラメータwの値を更新すればよい。
【0096】
【0097】
通常のニューラルネットワークの構成層については、任意のパラメータwに対する重み付き和Lの微分値を、誤差逆伝搬法により計算することが可能である。ただし、背景除去層のマスク画像を出力するニューラルネットワークの出力層にステップ関数を用いた場合、ステップ関数は原点で微分不可能、その他の点で微分値が0になるため、当該ニューラルネットワークのパラメータ(あるいはそれよりも入力画像側にあるパラメータ)に対して、式(6)を求めることができないという問題が発生する。この問題を回避するため、例えば入力画像からマスク画像を求めるための順伝搬のときのみステップ関数を用い、学習時の誤差逆伝搬時には式(6)を計算可能な以下の式(7)のシグモイド関数で代用してもよい。
【0098】
【0099】
さらには、λ→∞のときステップ関数に一致することが知られており、例えばλを適当な値、例えば1.0から徐々に大きくしながら学習するなどの方法により、ステップ関数の利点を享受しつつ学習を行うことが可能であるので好適である。このように構成することにより、任意のパラメータwに対する重み付き和Lの微分値を式(6)により計算することができる。もちろん、モーメンタム項を利用する、重み減衰を利用するなど、一般的な確率的勾配降下法の改善法を導入しても構わないし、あるいは別の勾配降下法を利用しても構わない。
【0100】
学習部33は、上記に基づいて全てのパラメータの値を更新した後、変換層11を除く全てのパラメータの値を変換層無しモデル10Aへとコピーする。
以上がステップS105において学習部33が行う処理である。
【0101】
演算部3は、ステップS101~ステップS105までの処理を、学習部33が終了条件を満たすと判定するまで繰り返す。終了条件は任意のものを定めて構わないが、例えば「所定の回数(例えば100回など)繰り返したら終了」、「誤差の現象が一定の繰り返し回数の間、一定の範囲内に収まっていたら終了」などとすればよい。
以上、本実施形態の一例における学習処理の詳細を説明した。
【0102】
<<姿勢推定処理>>
続いて、本実施形態の一例における姿勢推定方法により、姿勢推定装置5が実行する姿勢推定処理について説明する。学習処理が済んだ変換層付きモデル10を用いれば、姿勢推定処理は非常に単純である。すなわち、変換層付きモデル10に対して画像を入力し、変換層11が出力した姿勢パラメータを得ればよい。なお、本実施形態の一例において、姿勢パラメータはアフィン変換行列、あるいは、射影変換行列を想定しているが、両者ともに、当該行列から物体の大きさ、位置(平行移動)、及び角度は容易に求めることが可能である。
【0103】
また、本実施形態の一例において得られる変換層付きモデル10は、特徴量も同時に出力することができる。前述の通り、この特徴量を用いれば、例えばK平均法などの公知の方法を用いて、被写体の名称を認識することも可能である。
【0104】
具体的には、姿勢推定装置5は、以下のように動作する。姿勢推定装置5の入力部6は、推定対象画像の入力を受け付ける。推定部72は、学習装置1が更新したパラメータ値をモデル記憶部71から読み出す。推定部72は、読み出したパラメータ値を用いた変換層付きモデル10に、入力部6が受け付けた推定対象画像を入力し、変換層11が出力した姿勢パラメータと、全結合層17が出力した特徴量を得る。照合部74は、推定部72が得た特徴量と、参照画像データベース73に記憶されている参照画像の画像特徴量とを照合し、照合により選択した参照画像と対応付けられた被写体の名称を取得する。出力部8は、姿勢パラメータ、及び、被写体の名称を出力する。
以上が、本実施形態の一例における姿勢推定方法の姿勢推定処理である。
【0105】
以上の通り、本発明の実施形態により、任意の背景が写り込んでいる画像を第一の画像や第三の画像として学習に用いることができるため、背景が除去された画像を用意する手間を軽減した、低コストで収集可能な学習用データに基づき、背景を含む未知の物体に対しても高精度に姿勢を推定できる。
【0106】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0107】
例えば、姿勢推定装置は、入力画像の複数の領域で、それぞれ姿勢パラメータを推定するようにしてもよい。例えば、入力画像を領域分割して画像変換器に入力し、領域毎に姿勢パラメータを推定するようにしてもよい。
【0108】
また、学習装置1と姿勢推定装置5とを別々の装置として構成する場合を例に説明したが、一つの装置として構成してもよい。
【0109】
非特許文献3では、画像変換器へ入力する画像に背景がある場合、正しい姿勢を得られないことがあった。本実施形態では、任意の姿勢で被写体が写っている入力画像が基準姿勢画像と一致するように姿勢変換をするだけでなく、背景を除去する処理を画像変換器に組み込むことにより、この問題を回避する。一般的に、背景を除去する処理を学習する場合、正解となる背景画素が与えられた学習用データが必要となるが、本実施形態では、そのような明示的な学習用データが無くとも、背景を除去する処理を学習することができる。よって、低コストで収集可能な学習用データを用いて、非特許文献3の技術と同様のレベルで、背景のある画像に対して被写体の姿勢を精度よく推定を可能にする姿勢推定器を学習することができる。
【0110】
また、上述した実施形態における姿勢推定方法及び学習方法を、汎用演算処理装置、記憶装置等を備えたコンピュータやサーバ等により構成して、各処理がプログラムによって実行されるものとしてもよい。このプログラムは記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。もちろん、その他いかなる構成要素についても、単一のコンピュータやサーバによって実現しなければならないものではなく、ネットワークによって接続された複数のコンピュータに分散して実現しても構わない。
【0111】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
【符号の説明】
【0112】
1…学習装置、2…入力部、3…演算部、5…姿勢推定装置、6…入力部、7…演算部、8…出力部、10…画像変換器、10A…画像変換器、31…モデル記憶部、32…推定部、33…学習部、71…モデル記憶部、72…推定部、73…参照画像データベース、74…照合部、84…コンピュータ、86…CPU、88…メモリ、90…プログラム、92…記憶部、94…表示部、96…入力部、98…バス