(57)【要約】【課題】低コストで収集可能な学習用データのみに基づいて、画像に撮像された被写体の姿勢を精度良く推定することができる。【解決手段】姿勢推定装置１５０は、第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を推定する。姿勢推定装置１５０は、第一の画像に対して所定の処理を行うことで相対的な姿勢を推定する推定部６４を有し、所定の処理は、基準姿勢の前記所定の被写体が撮像されている第二の画像に、第一の画像を幾何変換するよう最適化された処理の一部に基づいている。【選択図】図６
2020135637.tif 000002
【特許請求の範囲】
【請求項１】
第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を推定する姿勢推定装置であって、
前記第一の画像に対して所定の処理を行うことで前記相対的な姿勢を推定する推定部を有し、
前記所定の処理は、前記基準姿勢の前記所定の被写体が撮像されている第二の画像に、前記第一の画像を幾何変換するよう最適化された処理の一部に基づいている
姿勢推定装置。
【請求項２】
前記幾何変換するよう最適化された処理は、前記第一の画像を前記第二の画像に幾何変換するように最適化されたものであって、前記相対的な姿勢を推定する処理を有するものである請求項１記載の姿勢推定装置。
【請求項３】
前記幾何変換するよう最適化された処理は、ＳＴＮ（Ｓｐａｔｉａｌ  Ｔｒａｎｓｆｏｒｍｅｒ  Ｎｅｔｗｏｒｋｓ）である請求項１又は２記載の姿勢推定装置。
【請求項４】
前記推定部は、前記幾何変換するよう最適化された処理により幾何変換された画像の特徴量を抽出する処理を更に行い、
前記画像の特徴量を抽出する処理は、
前記所定の被写体とは異なる被写体が撮像された画像である第三の画像の特徴量を抽出する処理を行って得られた特徴量と、前記第一の画像に対して前記幾何変換するよう最適化された処理及び前記画像の特徴量を抽出する処理を行って得られた特徴量との距離が遠くなり、かつ、
前記第一の画像に対して前記幾何変換するよう最適化された処理及び前記画像の特徴量を抽出する処理を行って得られた特徴量と、前記第一の画像の特徴量を抽出する処理を行って得られた特徴量との距離が近くなるように最適化されたものである請求項１〜請求項３の何れか１項記載の姿勢推定装置。
【請求項５】
前記推定部により得られた特徴量と、被写体情報が付与された参照画像に対して前記画像の特徴量を抽出する処理を行って得られた特徴量とを照合することにより、前記第一の画像に撮像された所定の被写体を認識する照合部を更に含む請求項４記載の姿勢推定装置。
【請求項６】
第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を推定する処理を学習する学習装置であって、
前記第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を推定し、前記推定された前記相対的な姿勢を用いて、前記基準姿勢の前記所定の被写体が撮像されている第二の画像に、前記第一の画像を幾何変換する推定部と、
前記推定部による幾何変換の結果と、前記第二の画像とが一致するように、前記相対的な姿勢の推定及び前記幾何変換を学習する学習部と、
を含む学習装置。
【請求項７】
第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を推定する姿勢推定方法であって、
推定部が、前記第一の画像に対して所定の処理を行うことで前記相対的な姿勢を推定することを含み、
前記所定の処理は、前記基準姿勢の前記所定の被写体が撮像されている第二の画像に、前記第一の画像を幾何変換するよう最適化された処理の一部に基づいている
姿勢推定方法。
【請求項８】
第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を推定するためのプログラムであって、
コンピュータに、
前記第一の画像に対して所定の処理を行うことで前記相対的な姿勢を推定することを実行させるためのプログラムであり、
前記所定の処理は、前記基準姿勢の前記所定の被写体が撮像されている第二の画像に、前記第一の画像を幾何変換するよう最適化された処理の一部に基づいている
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、姿勢推定装置、学習装置、方法、及びプログラムに係り、特に、画像に撮像された被写体の姿勢を推定するための姿勢推定装置、学習装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
画像認識技術の進展が目覚ましい。これまで実用化されてきた顔や指紋による個人認証技術や、人物・顔の認識・追跡技術の更なる高度化に加え、スマートフォン等の汎用デバイス上で動作する文字認識／物体認識技術も普及してきており、O2Oサービスやナビゲーションサービス等、新しいサービスへも活用されるようになってきている。
【０００３】
特に最近注目を集めている応用の一つに、ロボットの“目”としての活用がある。製造業においては、古くより画像認識機能を備えたロボットによるファクトリーオートメーションの導入が進められてきたが、昨今のロボットＡＩ技術の進歩に伴い、リテイル・物流現場での搬送・在庫管理、運送・運搬など、より高度な認識が求められるフィールドへの展開が期待されてきている。
【０００４】
典型的な画像認識技術は、画像そのもの、あるいは、それに写る被写体に名称ラベル（以降単にラベルと呼ぶ）を与える技術である。例えば、ある画像にリンゴが写っていたとし、これを入力された時の画像認識技術の望ましい動作としては、“リンゴ”というラベルを出力する、あるいは、当該画像のリンゴの写る領域、すなわち画素の集合に対して、“リンゴ”というラベルを割り当てることである。
【０００５】
一方で、先に述べたようなロボットに具備されうる画像認識技術においては、このようにラベルを出力するのみでは不十分である場合も多い。例えば、リテーラーでのロボットの活用事例として、物品棚にある商品を把持・運搬し、別の商品棚に移すような場面を考えよう。この際、当該タスクを完遂するためには、ロボットは大雑把に言って、（１）物品棚にあるさまざまな商品の中から、移すべき対象の商品を特定する、（２）当該商品を把持する、（３）目的の商品棚まで移動・運搬する、（４）望ましいレイアウトとなるよう配置する、という工程を実行できなければならない。然るに画像認識技術は、物品棚、商品、商品棚を認識できることはもちろんのこと、これに加えて、特に（２）、（４）に関連しては物体を把持、陳列するために物体の姿勢、すなわち、位置・角度・大きさも正確に認識できる必要があるのである。先に述べたような典型的な画像認識技術には、このような物体の姿勢を推定する機能は備えておらず、別途、物体の姿勢を推定するような技術が必要となる。
【０００６】
このような問題を鑑み、物体の姿勢を推定するための画像認識技術が発明・開示されてきている。
【０００７】
非特許文献１には、Scale Invariant Feature Transform (SIFT)特徴と一般化ハフ変換に基づく姿勢推定方法が開示されている。この姿勢推定方法では、画像の輝度値を解析することで、顕著な輝度変化を持つような部分領域を多数抽出し、それら各部分領域の輝度変化を、大きさ・回転に対して不変性を持つ特徴量ベクトルとして表現する（SIFT特徴）。次に、同一物体を写した互いに異なる２枚の画像に含まれる部分領域について、SIFT特徴同士のユークリッド距離を測り、これが小さい値を持つような異なる画像間の部分領域同士を対応候補として求める。さらに、同一の物体から得られた部分領域であれば、物体上の対応する部分領域間の姿勢の変化が、撮影視点に依らず一貫性を持つという仮定に基づき、対応候補となった部分領域間の位置・姿勢・大きさの「ずれ」を求める。同一の物体から得られた対応する部分領域の集合は、このずれに一貫性があるという仮定の下、ずれのヒストグラムを構成したとすると、これらはごく少数のビンに集中して分布することが想定される。したがって、頻度の高いビンに分布している対応候補のみを真に有効な対応であると見做し、そのビンに対応するずれを姿勢パラメータとして推定する。この姿勢は、比較された２枚の画像に写る物体の相対的な姿勢変化を表しており、一方の物体の姿勢を基準姿勢とすれば、他方の姿勢を知ることが可能となっている。
【０００８】
特許文献１には、非特許文献１を改良した技術が開示されている。SIFT特徴に基づき部分領域の対応候補を求め、これらの位置・姿勢・大きさのずれを計算して対応の適否を判定することは同様であるが、ずれを評価する際に３次元回転角度を考えている。結果として、非特許文献１の技術よりもさらに精細な姿勢推定を可能にしている。
【０００９】
非特許文献２に開示の技術は、前述の２つの文献とは異なり、畳み込みニューラルネットワーク（Convolutional Neural Network: CNN）を用いた機械学習に基づく技術を開示している。予め、画像に対して、そこに写る物体を囲む８点の直方体の頂点を記録した大量の学習用画像データ（例えば１２万枚）を用意しておき、このデータを基に、画像が入力された際に、当該画像に写る物体を囲む８点の直方体の頂点を予測するようなCNNを誤差逆伝搬法に基づいて学習することにより、姿勢推定を可能にしている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開2015-95156号公報
【非特許文献】
【００１１】
【非特許文献１】David G. Lowe, “Distinctive Image Features from Scale-Invariant Keypoints ”, International Journal of Computer Vision, pp.91-110, 2004.
【非特許文献２】Jonathan Tremblay, Thang To, Balakumar Sundaralingam, Yu Xiang, Dieter Fox, and Stan Birchfield. Deep Object Pose Estimation for Semantic Robotic Grasping of Household Objects, Proceedings of Conference on Robot Learning, pp. 306-316, 2018.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
大局的にみれば、既存の発明は、同一物体を写した２枚の異なる画像間の対応関係を分析することにより、相対的な姿勢を推定するか（非特許文献１、特許文献１）、あるいは、画像とそこに写る物体の姿勢を表す情報（８点の直方体の頂点など）を記録した大量の学習用データを基にCNNを学習し、姿勢推定器を構成するか（非特許文献２）のいずれかの方法を採っている。
【００１３】
しかしながら、特許文献１、非特許文献１に記載の技術は、予め姿勢を推定する対象となる種類の物体の画像を必ず保持していなければならないという問題があった。仮に、姿勢を推定する対象の物体が１０種類であるとすると、姿勢を推定したい画像と、先の１０種類の物体がそれぞれ基準姿勢で撮影された、少なくとも１０枚の画像とをそれぞれ比較し、相対的な姿勢を推定する必要がある。この原理的に、物体の姿勢を推定するためには、必ずその物体が基準姿勢として写っている画像を保持しておかなければ適用できず、すなわち、未知の物体に対しては適用できないという問題があった。
【００１４】
さらに、姿勢推定は２枚の画像間の相対的な姿勢変化により実施されるため、物体の種類の数に応じて姿勢推定処理に掛かる時間が増大していくという問題もあった。
【００１５】
また、非特許文献２に記載の方法は、CNNの学習に、姿勢を表す情報を記録した大量の学習用データが必要となるという問題があった。姿勢を表す情報（非特許文献２の場合、８点の直方体の頂点）は画像の画素レベルでの精細さと、正確さを備えている必要があり、このような情報を付与するのはコストがかかる。また、CNNは一般に大量の学習データが必要であることからも、学習データの構築に掛かるコストは非常に高くなることが想定される。
【００１６】
すなわち、現在に至るまで、低コストで収集可能な学習用データのみに基づき、未知の物体に対しても高精度に姿勢を推定できる画像認識技術は発明されていなかった。
【００１７】
本発明は、上記問題点を解決するために成されたものであり、低コストで収集可能な学習用データのみに基づいて、画像に撮像された被写体の姿勢を精度良く推定することができる姿勢推定装置、方法、及びプログラムを提供することを目的とする。
【００１８】
また、低コストで収集可能な学習用データのみに基づいて、画像に撮像された被写体の姿勢を精度良く推定するための学習を行うことができる学習装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成するために、第１の態様に係る姿勢推定装置は、第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を推定する姿勢推定装置であって、前記第一の画像に対して所定の処理を行うことで前記相対的な姿勢を推定する推定部を有し、前記所定の処理は、前記基準姿勢の前記所定の被写体が撮像されている第二の画像に、前記第一の画像を幾何変換するよう最適化された処理の一部に基づいている。
【００２０】
第２の態様に係る学習装置は、第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を推定する処理を学習する学習装置であって、前記第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を推定し、前記推定された前記相対的な姿勢を用いて、前記基準姿勢の前記所定の被写体が撮像されている第二の画像に、前記第一の画像を幾何変換する推定部と、前記推定部による幾何変換の結果と、前記第二の画像とが一致するように、前記相対的な姿勢の推定及び前記幾何変換を学習する学習部と、を含んで構成されている。
【００２１】
第３の態様に係る姿勢推定方法は、第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を推定する姿勢推定方法であって、推定部が、前記第一の画像に対して所定の処理を行うことで前記相対的な姿勢を推定することを含み、前記所定の処理は、前記基準姿勢の前記所定の被写体が撮像されている第二の画像に、前記第一の画像を幾何変換するよう最適化された処理の一部に基づいている。
【００２２】
第４の態様に係るプログラムは、第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を推定するためのプログラムであって、コンピュータに、前記第一の画像に対して所定の処理を行うことで前記相対的な姿勢を推定することを実行させるためのプログラムであり、前記所定の処理は、前記基準姿勢の前記所定の被写体が撮像されている第二の画像に、前記第一の画像を幾何変換するよう最適化された処理の一部に基づいている。
【発明の効果】
【００２３】
本発明の一態様である姿勢推定装置、方法、及びプログラムによれば、低コストで収集可能な学習用データのみに基づいて、画像に撮像された被写体の姿勢を精度良く推定することができる、という効果が得られる。
【００２４】
また、本発明の一態様である学習装置によれば、低コストで収集可能な学習用データのみに基づいて、画像に撮像された被写体の姿勢を精度良く推定するための学習を行うことができる、という効果が得られる。
【図面の簡単な説明】
【００２５】
【図１】幾何変換層付きの画像変換器の構成を示すブロック図である。
【図２】幾何変換層の構成を示すブロック図である。
【図３】幾何変換層無しの画像変換器の構成を示すブロック図である。
【図４】本発明の実施の形態に係る学習処理の流れを示すフローチャートである。
【図５】本発明の実施の形態に係る学習装置の構成を示すブロック図である。
【図６】本発明の実施の形態に係る姿勢推定装置の構成を示すブロック図である。
【図７】学習装置又は姿勢推定装置として機能するコンピュータの一例の概略ブロック図である。
【図８】実験結果を示す図である。
【発明を実施するための形態】
【００２６】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２７】
＜＜処理概要＞＞
本実施形態における姿勢推定方法は、画像を入力として受け付けると、その姿勢パラメータ、姿勢変換画像、並びに特徴量を出力するニューラルネットワークを画像変換器として用いる構成を採る。ここで言う姿勢パラメータとは、物体の姿勢を表す値であり、より具体的には、例えば、物体の位置・大きさ・角度を与える行列であるアフィン変換行列や射影変換行列の要素である。また、姿勢とは、基準となる姿勢から、物体にどのような剛体運動が与えられたかを示す値である。姿勢変換画像は、当該姿勢パラメータによる姿勢変換を入力画像に適用した場合に得られる姿勢変換後の画像を意味する。また、特徴量は、入力画像に写る物体の特徴をベクトル表現したものであり、物体の名称を特定するのに用いるものである。
【００２８】
画像変換器の構成は、上記のような入出力関係を実現できるものであれば任意の構成を採ることができるが、構成の一例を説明する。
【００２９】
図１は当該画像変換器１０の構成の一例を示す図である。この構成はCNNに基づいており、畳み込み層、プーリング層、全結合層、幾何変換層の４種類の層の組み合わせで構成されており、例えば、幾何変換層１１、畳み込み層１２、プーリング層１３、畳み込み層１４、プーリング層１５、全結合層１６、１７を含んで構成されている。畳み込み層、プーリング層、全結合層については広く知られた公知の層であり、例えば参考文献１に記載のものを用いればよい。
【００３０】
［参考文献１］Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton. ImageNet Classification with Deep Convoutional Neural Networks. Proceedings of Neural Information Processing Systems, 2012.
【００３１】
また、幾何変換層１１については、画像を入力として受け付けると、その姿勢パラメータ、並びに、姿勢パラメータに基づく画像変換を入力画像に適用して得られる姿勢変換画像を出力できるような層であればどんなものでも構わない。例えば、下記の公知の層を用いることができる。
【００３２】
［参考文献２］Max Jaderberg, Karen Simonyan, Andrew Zisserman, and Koray Kavukcuoglu. Spatial Transformer Networks. Proceedings of Neural Information Processing Systems, 2015.
【００３３】
例えば、図２に示すように、幾何変換層１１は、当該幾何変換層１１に入力された画像Ｕから、アフィン変換行列、又は、射影変換行列により表現される姿勢パラメータθを推定する姿勢パラメータ推定層１１Ａと、推定した姿勢パラメータθを画像Ｕに適用することによって姿勢変換画像Ｖを求め、出力する画像変換層１１Ｂとにより構成される。姿勢パラメータ推定層１１Ａは、画像Ｕを入力として受け付け、当該画像Ｕに写る物体のアフィン変換行列、又は、射影変換行列の要素を出力するニューラルネットワークにより構成される。このように構成される幾何変換層１１は、入力画像に写る物体が、基準姿勢に対して位置・大きさ・角度の観点でどの程度ずれているかを直接推定することができるため、好適である。
【００３４】
もちろん、本発明における画像変換器１０のニューラルネットワークの構成はこれに限られるものではなく、先の入出力要件を満たす限りどんな構成を採っても構わない。好ましくは、最終層にＬ２正規化層を加える。こうすることによって、特徴量を頑健化できるため、好適である。
【００３５】
また、例えば、図１に示した構成は、畳み込み層及びプーリング層の組み合わせを２回繰り返し、その後全結合層を２層積んだ構造となっているが、この全結合層２層の代わりに、参考文献３、あるいは、参考文献４などに開示されている大域的プーリング層を用いても構わない。
【００３６】
［参考文献３］Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep Residual Learning for Image Recognition,Proceedings of Conference on Computer Vision and Pattern Recognition, 2016.
【００３７】
［参考文献４］Giorgos Tolias, Ronan Sicre, and Herve Jegou. Particular Object Retrieval with Integral Max-pooling of CNN Activations. ArXiv Preprint: https://arxiv.org/abs/1511.05879, 2015.
【００３８】
このように、全結合の無い構成にすることにより、入力画像のサイズに依らず、常に同じ次元数の特徴量を求めることができるため好適である。
【００３９】
以降、簡単のため、図１に示す画像変換器１０を用いる場合を例にとり、説明を続ける。
【００４０】
本実施形態における姿勢推定方法は、この画像変換器１０を用いて特徴量及び姿勢を求める姿勢推定処理と、当該画像変換器１０を学習する学習処理の、大別して２つの異なる処理を実行する。
【００４１】
以降、まず学習処理について詳述し、その後、姿勢推定処理について詳細に述べる。
【００４２】
＜＜学習処理＞＞
学習処理は、姿勢推定を行う前に、少なくとも一度実施する必要のある処理であり、より具体的には、画像変換器１０のパラメータであるニューラルネットワークの重みを学習用データに基づいて適切に決定するための処理である。
【００４３】
なお、本学習処理を実行する上では、先に説明した画像変換器１０（ニューラルネットワーク）において、幾何変換層を除いた画像変換器１０Ａも用いる。一例として、図１の画像変換器１０に対し、幾何変換層１１を除いたニューラルネットワークの構成を図３に図示する。以降、幾何変換層１１を有するニューラルネットワークにより構成された画像変換器１０を幾何変換層付きモデル１０、それを持たない画像変換器１０Ａを幾何変換層無しモデル１０Ａと呼称する。ここで、幾何変換層１１以外のパラメータは両モデルで共通のものを利用する。すなわち、図１、図３の例では、対応する畳み込み層、全結合層のパラメータは全て同じ値を持つものとする。
【００４４】
本実施形態における学習処理を実行するには、予め学習用画像データを準備しておく必要がある。この学習用画像データは、画像の三つ組みの集合により構成されるものである。この三つ組みとは、ある物体を基準姿勢で写した画像Ｉａ、画像Ｉａと同一の被写体を別姿勢で写した画像Ｉｐ、画像Ｉａとは異なる被写体を写した画像Ｉｎの三つからなり、異なる画像の組み合わせからなる三つ組みの集合により学習用画像データが構成されるとする。
【００４５】
このような三つ組みの学習用画像データは、次の（ａ）〜（ｄ）の要件を満たす画像集合があれば自動的に構成することが可能である。
【００４６】
（ａ）１枚以上の画像を含み、各画像は少なくとも一つの物体を写したものであること。
【００４７】
（ｂ）学習用画像データ全体を通して２種類以上の物体を含み、同一種類の物体を写した画像が少なくとも２枚以上存在すること。
【００４８】
（ｃ）全種類の物体に対して、それぞれ基準姿勢となる物体画像が存在し、特定できること。
【００４９】
（ｄ）同一種類の物体を写した画像同士が互いに識別可能であること。
【００５０】
上記（ａ）〜（ｄ）の要件が揃ったものであれば、例えば、以下の（１）〜（３）の処理により、上記三つ組みを一組構成することができる。
【００５１】
（１）基準姿勢となる画像をランダムに一つ選び、これを画像Ｉａとする。
【００５２】
（２）画像Ｉａと同一の被写体を写した基準姿勢でない画像Ｉｐをランダムに選び、これを画像Ｉｐとする。
【００５３】
（３）画像Ｉａ、Ｉｐと別の被写体を写した画像をランダムに選び、これを画像Ｉｎとする。
【００５４】
（１）〜（３）の処理を、所望の組数が揃うまで繰り返せば、学習用画像データを構成可能である。
【００５５】
なお実際には、上記要件を満たすような学習用画像データを準備する手段は本発明の要点とは無関係であり、どのような手段で準備しても構わない。人手によって準備しても構わないし、自動的に準備しても構わない。
【００５６】
上記のような学習用画像データが存在するもとで、本発明の実施形態における学習処理は、次の工程により実行される。図４に、本実施形態における学習処理の概要を示す。
【００５７】
まず、ステップＳ３０１では、画像Ｉｐに対して幾何変換層付きモデル１０を適用し、幾何変換後の画像Ｉｐである画像Ｉｐｔ、並びに特徴量ｆｐｔを求める。
【００５８】
続いてステップＳ３０２では、画像Ｉａ、画像Ｉｎのそれぞれに対して幾何変換層無しモデル１０Ａを適用し、対応する特徴量ｆａ、ｆｎを求める。
【００５９】
続いてステップＳ３０３では、画像Ｉｐｔと画像Ｉａに基づき、アピアランス損失を求める。
【００６０】
続いてステップＳ３０４では、特徴量ｆａ、特徴量ｆｐｔ、特徴量ｆｎを基に、特徴量損失を求める。
【００６１】
続いてステップＳ３０５では、アピアランス損失と特徴量損失の重み付き和を小さくするように幾何変換層付きモデル１０のパラメータを更新し、幾何変換層無しモデル１０Ａにパラメータをコピーする。
【００６２】
上記ステップＳ３０１〜Ｓ３０５を所定の終了条件が満たされるまで繰り返し、終了条件を満たした場合に学習処理を終了する。
【００６３】
ステップＳ３０１、Ｓ３０２については、先に説明した幾何変換層付きモデル１０、幾何変換層無しモデル１０Ａを各画像に対して適用することで直ちに実行することができるものである。以降、ステップＳ３０３〜Ｓ３０５について、その処理詳細を説明する。
【００６４】
＜各処理の処理詳細＞
以降、各処理の詳細処理について、本実施形態における一例を説明する。
【００６５】
［ステップＳ３０３：アピアランス損失計算処理］
【００６６】
この処理では、同一の被写体を含む画像Ｉａ、並びに、Ｉｐｔに基づいて、その画像としての見え方の差異であるところのアピアランス損失を求める。
【００６７】
ステップＳ３０１を通して、学習用画像データに含まれる画像Ｉｐに対して、幾何変換層１１による姿勢変換を施した姿勢変換画像Ｉｐｔが得られている。画像Ｉａ、Ｉｐは同一の被写体を写しており、異なっているのはそれぞれ撮影された姿勢であることから、理想的には、姿勢変換後の画像Ｉｐｔは、画像Ｉａと同じ見えになっていることが好ましい。
【００６８】
この考え方から、画像Ｉａと画像Ｉｐｔの画素値の距離の総和を求め、これをアピアランス損失Ｌａとして用いる。画素値の距離は、例えばＬ１距離によって下記のように求めることができる。
【００６９】
【数１】
2020135637.tif 000003
（１）
【００７０】
ここで、Ｉａｉ（ｘ、ｙ、ｃ）またはＩｐｔｉ（ｘ、ｙ、ｃ）は、それぞれ画像ＩａｉまたはＩｐｔｉのｘ、ｙ位置におけるチャネルｃの画素値を表し、Ｘｉ、Ｙｉ、ＣｉはそれぞれＩａｉ、Ｉｐｔｉの組に対するｘの定義域、ｙの定義域、ｃの定義域を表す。Ｎは学習用画像データの中に含まれる三つ組みの数、あるいはそれ以下の定数である。
【００７１】
このアピアランス損失Ｌａは、姿勢変換後の画像Ｉｐｔｉと画像Ｉａｉが同じ見えになっているほど小さい値を取り、Ｉｐｔｉ＝Ｉａｉの場合に０となる。すなわち、様々な画像Ｉｐｉに対してこの値が小さくするように幾何変換層１１のパラメータを学習することによって、どんな姿勢で撮影された被写体であっても、常に基準姿勢時の被写体を撮影した画像Ｉａｉに近づけるような姿勢変換を行うことができるようになり、結果として、姿勢パラメータは基準姿勢との差異を推定することができるようになるのである。
【００７２】
アピアランス損失は必ずしも上記式（１）の形でなくとも構わず、画像Ｉｐｔｉと画像Ｉａｉが同じ見えになっているほど小さい値を取り、Ｉｐｔｉ＝Ｉａｉの場合に０となるようなものであれば任意の形態をとって構わない。例えば、利用する距離はＬ１距離でなくともよく、例えばＬ２距離などを用いても構わない。また、Ｘｉ、Ｙｉ、Ｃｉは必ずしも画像全体を指示するものでなくとも構わない。もし予め物体の写る領域が何らかの形で与えられるのであれば、その範囲に限定して計算しても構わない。通常、画像には、背景など、対象とする被写体以外のものが写り込んでいる場合も多いが、物体の姿勢変化を求めるという観点からは、被写体と関係のない画素の情報を含まない方が望ましく、そのような観点では可能な限り被写体が写る領域に限定して定義域が設定されていることが好ましい。
【００７３】
以上がステップＳ３０３で行う処理である。
【００７４】
［ステップＳ３０４：特徴量損失計算処理］
この処理では、特徴量を学習するために必要な特徴量損失を求める。画像認識の観点から言えば、同一の被写体を含む画像Ｉａ、Ｉｐｔの特徴量ｆａ、ｆｐｔはベクトルとして互いに近く、また、逆に、異なる被写体を含む画像Ｉａ、Ｉｎの特徴量ｆａ、ｆｎはベクトルとして互いに遠くなっている方が好ましい。このような特徴量を得ることにより、特徴量の近さに基づいて同一被写体を検索したり、あるいは、例えばK近傍法などの識別法により被写体の名称を推定することもできるようになる。
【００７５】
このような特徴量を学習するための損失は様々な形態のものが有り得るが、例えば下記のような損失を用いることができる。
【００７６】
【数２】
2020135637.tif 000004
（２）
【００７７】
ここで、｜｜ｘ｜｜２２はｘのＬ２ノルム、ｍは０以上の実数値であり、任意の値に設定してよいが、例えば０．３などとすればよい。
【００７８】
この特徴量損失Ｌｆは、特徴量ｆｐｔｉが特徴量ｆｎｉよりもＬ２距離の意味で特徴量ｆａｉにｍ以上近しければ最小値である０を取り、そうでなければ、０よりも大きな値を取る。したがって、様々な三つ組みに対してこの値が小さくするように幾何変換層付きモデル１０のパラメータを学習することによって、同一の被写体を撮影した画像ほど近い特徴量を出力できるようになるのである。
【００７９】
あるいは、下記のような特徴量損失を用いても構わない。
【００８０】
【数３】
2020135637.tif 000005
（３）
【００８１】
このように定められた特徴量損失Ｌｆは、特徴量ｆｐｔｉとｆａｉが同じＬ２距離の意味で近いほど小さい値となり、また、特徴量ｆｎｉとｆａｉがＬ２距離の意味で遠いほど小さい値を取る。そうでなければ、０よりも大きな値を取る。
【００８２】
特徴量損失は必ずしも上記式（２）あるいは式（３）の形でなくとも構わない。例えば、ノルムはＬ２ノルムでなくともよく、例えばＬ１ノルムなどを用いても構わない。
【００８３】
以上がステップＳ３０４で行う処理である。
【００８４】
［ステップＳ３０４：モデルパラメータ更新］
【００８５】
この処理では、ステップＳ３０３、Ｓ３０４で求めたアピアランス損失Ｌａ、及び特徴量損失Ｌｆを基に、これらの重み付き和Ｌを小さくするように幾何変換層付きモデル１０のパラメータを更新する。
【００８６】
具体的には、Ｌは下記のように定義される。
【００８７】
【数４】
2020135637.tif 000006
（４）
【００８８】
λは二つの損失のバランスを取るパラメータであり、任意の実数値を設定してよい。例えばλ＝１００などとすればよい。
【００８９】
Ｌａ、Ｌｆ共に、ニューラルネットワークのパラメータに対して区分的に微分可能であることを鑑みれば、勾配法により学習可能である。例えば、確率的勾配降下法に基づいて学習する場合、幾何変換層付きモデル１０のあるパラメータをｗとおくと、１ステップあたり、
【００９０】
【数５】
2020135637.tif 000007
（５）
【００９１】
に基づいてパラメータｗを更新していけばよい。任意のパラメータｗに対するＬの微分値は、誤差逆伝搬法により計算することができる。もちろん、モーメンタム項を利用する、重み減衰を利用するなど、一般的な確率的勾配降下法の改善法を導入しても構わないし、あるいは別の勾配降下法を利用しても構わない。
【００９２】
上記に基づいて全てのパラメータの値を更新した後、幾何変換層１１を除く全てのパラメータを幾何変換層無しモデル１０Ａへとコピーする。
【００９３】
以上がステップＳ３０５で行う処理である。
【００９４】
以上、Ｓ３０１〜Ｓ３０５までの処理を、終了条件を満たすまで繰り返す。終了条件は任意のものを定めて構わないが、例えば「所定の回数（例えば１００回など）繰り返したら終了」、「誤差の現象が一定の繰り返し回数の間、一定の範囲内に収まっていたら終了」などとすればよい。
【００９５】
以上、本実施形態の一例における学習処理の詳細を説明した。
【００９６】
＜＜姿勢推定処理＞＞
続いて、本実施形態の一例における姿勢推定方法の姿勢推定処理について説明する。
【００９７】
学習処理が済んだ幾何変換層付きモデル１０を用いれば、姿勢推定処理は非常に単純である。具体的には、幾何変換層付きモデル１０に対して画像を入力し、幾何変換層１１が出力した姿勢パラメータを得ればよい。なお、本実施形態の一例において、姿勢パラメータはアフィン変換行列、あるいは、射影変換行列を想定しているが、両者ともに、当該行列から物体の大きさ、位置（平行移動）、及び角度は容易に求めることが可能である。
【００９８】
また、もし仮に本実施形態の一例において得られる幾何変換層付きモデル１０は、特徴量も同時に出力することができるが、前述の通り、この特徴量を用いれば、例えばＫ平均法などの公知の方法を用いて、被写体の名称を認識することも可能である。
【００９９】
以上が、本実施形態の一例における姿勢推定方法の姿勢推定処理である。
【０１００】
＜＜装置構成＞＞
以下、図面を参照して、本発明の一実施形態による学習装置及び姿勢推定装置について説明する。
【０１０１】
図５は、学習装置１００の構成を示すブロック図である。同図に示す学習装置１００は、上述した学習処理に従って、入力された第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を表す姿勢パラメータを推定する画像変換器１０を学習する。学習装置１００は、入力部２０及び演算部３０を備える。演算部３０は、モデル記憶部３２、推定部３４、及び学習部３８を備える。なお、モデル記憶部３２は、学習装置１００の内部にあっても外部にあっても構わないが、本実施形態においては内部に配する構成を採る。
【０１０２】
入力部２０は、所定の被写体が撮影された２枚以上の第一の画像、及び所定の被写体とは異なる被写体が撮像された画像である２枚以上の第三の画像を受け付ける。
【０１０３】
モデル記憶部３２は、画像変換器１０及び画像変換器１０Ａの各々のパラメータを記憶する。
【０１０４】
推定部３４は、画像変換器１０により、第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を表す姿勢パラメータを推定し、推定された姿勢パラメータを用いて、第一の画像を幾何変換することにより、基準姿勢の所定の被写体が撮像されている第二の画像を求めると共に、第二の画像の特徴量を抽出する。
【０１０５】
また、推定部３４は、画像変換器１０Ａにより、第一の画像の特徴量を抽出する。また、推定部３４は、画像変換器１０Ａにより、第一の画像の被写体とは異なる被写体が撮像された画像である第三の画像の特徴量を抽出する。
【０１０６】
学習部３８は、同一被写体を撮影した少なくとも２枚以上の第一の画像を、少なくとも１枚以上の画像を含む２つのグループに分け、一方のグループの画像に画像変換器１０Ａの幾何変換層１１を適用して求めた第二の画像の画素値と、他方のグループの画像の画素値の距離の総和が最小となり、かつ、第一の画像の被写体とは異なる被写体が撮像された画像である第三の画像に対して画像変換器１０Ａにより得られた特徴量と、第一の画像に対して画像変換器１０により得られた特徴量との距離が遠くなり、かつ、第一の画像に対して画像変換器１０により得られた特徴量と、第一の画像に対して画像変換器１０Ａにより得られた特徴量との距離が近くなるように、上記式（１）〜式（５）に従って、画像変換器１０、１０Ａを学習し、モデル記憶部３２を更新する。
【０１０７】
上記の推定部３４、及び学習部３８の各処理は、予め定められた終了条件を満たすまで繰り返し行われる。
【０１０８】
図６は、姿勢推定装置１５０の構成を示すブロック図である。同図に示す姿勢推定装置１５０は、上述した姿勢推定処理に従って、入力された第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を表す姿勢パラメータを推定すると共に、第一の画像の被写体を認識する。姿勢推定装置１５０は、入力部５０、演算部６０、及び出力部７０を備える。演算部６０は、モデル記憶部６２、推定部６４、参照画像データベース６６、及び照合部６８を備える。なお、モデル記憶部６２及び参照画像データベース６６は、姿勢推定装置１５０の内部にあっても外部にあっても構わないが、本実施形態においては内部に配する構成を採る。
【０１０９】
入力部５０は、推定対象となる、所定の被写体が撮影された第一の画像を受け付ける。
【０１１０】
モデル記憶部６２は、学習装置１００によって学習された、画像変換器１０のパラメータを記憶する。
【０１１１】
推定部６４は、画像変換器１０により、第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を表す姿勢パラメータを推定し、推定された姿勢パラメータを用いて、第一の画像を幾何変換することにより、基準姿勢の所定の被写体が撮像されている第二の画像を求めると共に、第二の画像の特徴量を抽出する。
【０１１２】
参照画像データベース６６には、被写体情報である被写体の名称が既知の、参照画像の各々についての特徴量を記憶している。参照画像の特徴量は、予め画像変換器１０又は画像変換器１０Ａによって抽出しておくものとする。
【０１１３】
また、照合部６８は、推定部６４によって抽出された特徴量と、参照画像の特徴量とを照合することにより、第一の画像の被写体の名称を認識する。
【０１１４】
出力部７０は、推定された姿勢パラメータ、第二の画像、及び第一の画像の被写体の名称を出力する。
【０１１５】
学習装置１００及び姿勢推定装置１５０の各々は、一例として、図７に示すコンピュータ８４によって実現される。コンピュータ８４は、ＣＰＵ８６、メモリ８８、プログラム９０を記憶した記憶部９２、モニタを含む表示部９４、及びキーボードやマウスを含む入力部９６を含んでいる。ＣＰＵ８６、メモリ８８、記憶部９２、表示部９４、及び入力部９６はバス９８を介して互いに接続されている。
【０１１６】
記憶部９２はＨＤＤ、ＳＳＤ、フラッシュメモリ等によって実現される。記憶部９２には、コンピュータ８４を学習装置１００又は姿勢推定装置１５０として機能させるためのプログラム９０が記憶されている。ＣＰＵ８６は、プログラム９０を記憶部９２から読み出してメモリ８８に展開し、プログラム９０を実行する。なお、プログラム９０をコンピュータ可読媒体に格納して提供してもよい。
【０１１７】
＜＜実験結果＞＞
これまで説明した本技術の実施形態の一例により構築した学習処理方法及び姿勢推定処理方法を用いて学習処理及び姿勢推定処理を行った実験結果を示す。
【０１１８】
本実験は、１０種類の文字がさまざまな姿勢で撮影された１２９３９組の三つ組みを含む画像群を用い、認識精度、及び、姿勢推定誤差を評価したものである。ここで、三つ組みは、文字が基準姿勢で撮影されたシード画像と、当該シード画像を、予め求めておいたアフィン変換行列により幾何変換したアフィン変換画像と、当該シード画像とは異なる文字が撮影されたシード画像とからなる。
【０１１９】
なお、学習用画像データとして、上記三つ組みの集合の内１１５５９組を用いて学習処理を実施し、評価用データとして、残りの１３８０組を用いて姿勢推定処理を実施した。
【０１２０】
また、比較例となる従来技術として、参考文献２に記載のＣＮＮを用いて構成した画像変換器を用いた技術についても、同様に、学習処理及び姿勢推定処理を実施した。
【０１２１】
図８に、認識精度及び姿勢推定誤差の結果を示す。ここで、認識精度は、文字の種類を正しく認識できた画像の割合であり、０〜１の値を取り、高ければ高いほどよいことを表す。姿勢推定誤差は、真の姿勢（アフィン変換行列）に対する推定誤差であり、０以上の値を取り、小さければ小さいほどよいことを表す。本図から明らかな通り、本技術によれば、従来技術に対して極めて高精度な認識が可能である。
【０１２２】
以上説明したように、本発明の実施の形態に係る姿勢推定装置によれば、基準姿勢の被写体が撮像されている第二の画像に、第一の画像を幾何変換するよう最適化することにより、低コストで収集可能な学習用データのみに基づいて、画像に撮像された被写体の姿勢を精度良く推定することができる。
【０１２３】
本発明の実施の形態に係る学習装置によれば、基準姿勢の被写体が撮像されている第二の画像に、第一の画像を幾何変換するよう最適化することにより、低コストで収集可能な学習用データのみに基づいて、画像に撮像された被写体の姿勢を精度良く推定するための学習を行うことができる。
【０１２４】
また、画像変換器は、幾何変換層を備えたニューラルネットワークにより構成され、当該幾何変換層の学習は、同一被写体を撮影した異なる２枚の画像Ａと画像Ｂを入力し、一方の画像Ｂにのみ当該幾何変換層を適用して姿勢変換画像Ｂを求め、この姿勢変換画像Ｂと、もう一方の幾何変換層を適用しなかった画像Ａとの画素値が一致するように行われる。このように学習された幾何変換層を用いると、画像Ｂに写る物体がどのような姿勢のものであっても、常に画像Ａと見た目が一致するように変換することができる。この原理により、仮に画像Ａが基準姿勢で写る物体を含むようなものである場合、任意の姿勢で写る同一被写体画像を基準姿勢に近づけることができるようになるのである。同時に、この幾何変換層は、その変換に用いた姿勢パラメータを出力するように構成されており、その姿勢パラメータを持って、画像Ｂに写る物体が、基準姿勢からどの程度ずれているかを推定することが可能である。
【０１２５】
また、同一被写体を写した画像さえあれば、常にこれが基準姿勢を写した画像となるように画像を変換する幾何変換層を学習するという原理により、明示的な姿勢情報が付与された学習用データが無くとも、画像の見た目が一致するか否かという基準のみで、姿勢推定を行うことができるようになるのである。これは、明示的な姿勢情報が付与された学習用データを収集するよりも、遥かに低コストで収集可能な学習用データによって学習できることを意味しており、非特許文献２のような技術よりも極めて低いコストで学習が可能である。
【０１２６】
さらに、当該幾何変換層を、入力画像に対して適用して、アフィン変換行列、または、射影変換行列を推定し、これを適用して幾何変換画像を求めるニューラルネットワークとして画像変換器を構成することにより、位置・大きさ・角度を正確に求めることが可能である。これは、アフィン変換行列及び射影変換行列は、位置・大きさ・角度を変換する行列であることに由来する。このように構成することで、画像Ｂが、基準姿勢を持つ画像Ａに対して、位置・大きさ・角度の観点でどの程度ずれているかを直接推定することができるのである。
【０１２７】
また、本発明の実施の形態による学習装置は、同一被写体画像のみを要求し、その物体がどんな種類のものであるかという情報を利用しない。すなわち、非特許文献１あるいは特許文献１とは異なり、未知の物体に対しても高精度に姿勢を推定できる。
【０１２８】
以上の通り、本発明の実施の形態により、低コストで収集可能な学習用データのみに基づき、未知の物体に対しても高精度に姿勢を推定できる姿勢推定装置、方法、及びプログラムを提供することができる。
【０１２９】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１３０】
例えば、姿勢推定装置は、入力画像の複数の領域で、それぞれ姿勢パラメータを推定するようにしてもよい。例えば、入力画像を領域分割して画像変換器に入力し、領域毎に姿勢パラメータを推定するようにしてもよい。
【０１３１】
また、学習装置と姿勢推定装置とを別々の装置として構成する場合を例に説明したが、一つの装置として構成してもよい。
【０１３２】
また、本発明の実施形態における姿勢推定方法及び学習方法を、汎用演算処理装置、記憶装置等を備えたコンピュータやサーバ等により構成して、各処理がプログラムによって実行されるものとしてもよい。このプログラムは記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。もちろん、その他いかなる構成要素についても、単一のコンピュータやサーバによって実現しなければならないものではなく、ネットワークによって接続された複数のコンピュータに分散して実現しても構わない。
【０１３３】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
【符号の説明】
【０１３４】
１０   画像変換器、幾何変換層付きモデル
１０Ａ 画像変換器、幾何変換層無しモデル
１１   幾何変換層
１１Ａ 姿勢パラメータ推定層
１１Ｂ 画像変換層
２０、５０    入力部
３０、６０    演算部
３２、６２    モデル記憶部
３４、６４    推定部
３８   学習部
６６   参照画像データベース
６８   照合部
７０   出力部
１００ 学習装置
１５０ 姿勢推定装置
【図１】
2020135637.tif 000008
【図２】
2020135637.tif 000009
【図３】
2020135637.tif 000010
【図４】
2020135637.tif 000011
【図５】
2020135637.tif 000012
【図６】
2020135637.tif 000013
【図７】
2020135637.tif 000014
【図８】
2020135637.tif 000015