(57)【要約】【課題】属性値が既知の人工画像又は実画像が全くないような場合であっても、他方の実画像又は人工画像の属性値を精度良く推定することができるようにする。【解決手段】第１属性推定部１０５が、属性値が既知の人工画像及び実画像の何れか一方である第１の種類の画像と、属性値が未知の画像である人工画像及び実画像の何れか他方である第２の種類の画像を当該第１の種類の画像に変換して得られる画像と、を関連付けることにより、入力された画像の有する属性値を推定する。【選択図】図２
2020144411.tif 000002
【特許請求の範囲】
【請求項１】
推定対象である画像の有する属性値を推定する属性推定装置であって、
属性値が既知の人工画像及び実画像の何れか一方である第１の種類の画像と、属性値が未知の画像である人工画像及び実画像の何れか他方である第２の種類の画像を前記第１の種類の画像に変換して得られる画像と、を関連付けることにより、入力された前記画像の有する属性値を推定する第１属性推定部
を含む属性推定装置。
【請求項２】
前記第１属性推定部は、画像の有する属性値を推定するための第１属性推定器を用いて、入力された前記画像の有する属性値を推定し、
前記第２の種類の画像の変換は、前記第２の種類の画像を前記第１の種類の画像に変換するための第１画像変換器を用いて行われ、
前記第１属性推定器は、第１損失関数の値と、第２損失関数の値とが小さくなるように第２属性推定器と共に予め学習されたものであり、
前記第１画像変換器は、第３損失関数の値と、第４損失関数の値とが小さくなるように、前記第１の種類の画像を前記第２の種類の画像に変換するための第２画像変換器と共に予め学習されたものであり、
前記第１損失関数は、前記第１の種類の画像の属性値と、前記第１画像変換器により前記第２の種類の画像を変換した結果に対して、前記第１属性推定器により推定した属性値とが近いほど小さい値となる損失関数であり、
前記第２損失関数は、前記第１画像変換器又は前記第２画像変換器により前記第１の種類の画像又は前記第２の種類の画像を変換した結果に対して、前記第１属性推定器により推定した属性値と、前記第１画像変換器又は前記第２画像変換器により前記第１の種類の画像又は前記第２の種類の画像を変換した結果に対して、前記第２属性推定器により推定した属性値とが近いほど小さい値となる損失関数であり、
前記第３損失関数は、前記第１画像変換器により前記第１の種類の画像を変換した結果の分布が、前記第２の種類の画像の分布に近いほど小さい値となる損失関数であり、
前記第４損失関数は、前記第２画像変換器により前記第２の種類の画像を変換した結果の分布が、前記第１の種類の画像の分布に近いほど小さい値となる損失関数である
請求項１記載の属性推定装置。
【請求項３】
前記第２の種類の画像の変換は、前記第２の種類の画像を前記第１の種類の画像に変換し、かつ、推定対象の属性以外の少なくとも１つの属性を変更するものである請求項１又は２記載の属性推定装置。
【請求項４】
推定対象である画像の有する属性値を推定するための第１属性推定器を学習する属性推定器学習装置であって、
属性値が既知の人工画像及び実画像の何れか一方である第１の種類の画像と、属性値が未知の画像である人工画像及び実画像の何れか他方である第２の種類の画像を前記第１の種類の画像に変換して得られる画像と、を関連付けることにより、前記第１属性推定器を学習する学習部
を含む属性推定器学習装置。
【請求項５】
前記第２の種類の画像の変換は、前記第２の種類の画像を前記第１の種類の画像に変換するための第１画像変換器を用いて行われ、
前記学習部は、
前記第１属性推定器を、第１損失関数の値と、第２損失関数の値とが小さくなるように第２属性推定器と共に学習する第１学習部と、
前記第１画像変換器を、第３損失関数の値と、第４損失関数の値とが小さくなるように、前記第１の種類の画像を前記第２の種類の画像に変換するための第２画像変換器と共に学習する第２学習部と、
を含み、
前記第１損失関数は、前記第１の種類の画像の属性値と、前記第１画像変換器により前記第２の種類の画像を変換した結果に対して、前記第１属性推定器により推定した属性値とが近いほど小さい値となる損失関数であり、
前記第２損失関数は、前記第１画像変換器又は前記第２画像変換器により前記第１の種類の画像又は前記第２の種類の画像を変換した結果に対して、前記第１属性推定器により推定した属性値と、前記第１画像変換器又は前記第２画像変換器により前記第１の種類の画像又は前記第２の種類の画像を変換した結果に対して、前記第２属性推定器により推定した属性値とが近いほど小さい値となる損失関数であり、
前記第３損失関数は、前記第１画像変換器により前記第１の種類の画像を変換した結果の分布が、前記第２の種類の画像の分布に近いほど小さい値となる損失関数であり、
前記第４損失関数は、前記第２画像変換器により前記第２の種類の画像を変換した結果の分布が、前記第１の種類の画像の分布に近いほど小さい値となる損失関数である
請求項４記載の属性推定器学習装置。
【請求項６】
推定対象である画像の有する属性値を推定する属性推定方法であって、
第１属性推定部が、属性値が既知の人工画像及び実画像の何れか一方である第１の種類の画像と、属性値が未知の画像である人工画像及び実画像の何れか他方である第２の種類の画像を前記第１の種類の画像に変換して得られる画像と、を関連付けることにより、入力された前記画像の有する属性値を推定する
属性推定方法。
【請求項７】
推定対象である画像の有する属性値を推定する処理をコンピュータに実行させるプログラムであって、
第１属性推定部が、属性値が既知の人工画像及び実画像の何れか一方である第１の種類の画像と、属性値が未知の画像である人工画像及び実画像の何れか他方である第２の種類の画像を前記第１の種類の画像に変換して得られる画像と、を関連付けることにより、入力された前記画像の有する属性値を推定する
ことを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、属性推定装置、属性推定方法、属性推定器学習装置、及びプログラムに係り、特に、画像に写った物体の属性値を推定するための属性推定装置、属性推定方法、属性推定器学習装置、及びプログラムに関する。
【背景技術】
【０００２】
画像認識は、入力された画像に対して、画像の内容に関する属性値を出力する問題である。属性値には様々なものがあり得るが、多くは画像中に写る物体や場所、シーンの名称等、カテゴリカルなもの（一般にクラス等と呼ばれる）が代表的である。例えば、犬が写る画像が入力された場合、画像認識技術は「犬」という属性値を出力することが期待される。また、このようにカテゴリカルに表現できる情報だけでなく、それ以外のものも含みうる。例えば、画像中に写る特定の物体との距離、画像中に写る人物の年齢、その人物が見ている視線の方向等である。
【０００３】
属性推定技術の性能は、入力された画像に対して、いかに正確に正しい属性値を出力できるかにより議論され、統計的により正しい属性値を出力できるものほど高精度であるとされる。
【０００４】
画像はＲＧＢの画素を要素としたテンソルにより構成されているが、このような低レベル（物理信号レベル）な情報と、高レベルな意味のある属性値との間には大きな隔たりがある。このため、画像を入力としてそのまま高精度に属性を推定できるような属性推定器を学習することは困難だと考えられていた。
【０００５】
しかしながら、２０１１年頃、クラスラベルを推定する画像認識の分野において、深い畳み込みニューラルネットワーク（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＣＮＮ）を画像認識器として用いることにより、このような画素の配列からクラスを出力するような学習をしても、非常に高精度な認識ができることが実証された（非特許文献１）。これ以降、画像認識の精度はＣＮＮによって飛躍的な改善が報告され続けている。上記現象は属性推定においても例外ではなく、その後様々な属性推定タスクにおいてＣＮＮを用いた技術が提案され、性能改善が報告されている。
【０００６】
一般に、ＣＮＮによる属性推定の性能は、様々な要因に依存することが知られている。一例として、精度に大きく作用する要因としてＣＮＮの構造が挙げられる。通常、ＣＮＮは、比較的単純な処理を行う数種類の作用素（層、レイヤ等と呼ばれる）を、幾層にも積み重ねて実現される。例えば、代表的なもので言えば畳み込み層やプーリング層、全結合層等が存在する。詳細は非特許文献１等に譲るが、畳み込み層とは、その名の通り、入力されたテンソルに対して、高さ×幅方向に一定の大きさを持つ畳み込みフィルタを適用する層である。何種類のフィルタを持つかは任意であり、通常は設計者により指定される。畳み込み層はパラメータとして畳み込みフィルタの重みを有しており、これはデータに基づいて学習される。一方、一般に学習すべきパラメータを持たない層としてプーリング層が知られている。入力テンソルに対して高さ×幅方向に一定の大きさを持つ“フィルタ”を適用する点では畳み込み層と同様であるが、プーリング層は当該大きさの範囲に対して、例えば最大の値を出力する（最大値プーリング）、あるいは、平均値を出力する（平均値プーリング）等、固定的かつ単純な作用を適用する点で異なる。特に、パラメータ数を増加させずに入力テンソルの大きさを減少させたい場合等に利用される。ＣＮＮの性能は、このような畳み込み層やプーリング層をどのように構成し、配置するかによって左右される。
【０００７】
他方、属性推定においては、事前に推定したい属性値について、それが正解となるような画像の集合（以下、学習用画像と呼ぶ）を基に属性推定器を学習する必要がある。したがって当然のことながら属性推定精度は学習用画像の質と量に依存すると言って差し支えない。一般に、属性推定器の複雑度に応じて、複雑な属性推定器を用いる場合ほどより多くの学習用画像を用いる必要があることが知られているが、特に、ＣＮＮは非常に表現能力の高い複雑なモデルである。その分、非常に大量の学習用画像が必要であり、それにより初めてその性能が発揮されると言っても過言ではない。すなわち、現在のＣＮＮの成功は、良質なＣＮＮの構成と大量の学習用画像の双方が相まって初めて成し得たものとも見ることができる。
【０００８】
しかしながら、大量の学習用画像を準備することは容易ではない。なぜならば、多くの場合、撮影したばかりの画像には所望の属性値を表すような情報はなんらついていないからであり、したがって、撮影した画像を学習用画像として用いるためには、予め、所望の属性値を計測する何らかの装置や手段を用いて撮影を実行し、その属性値を付与するか、あるいは、人間が画像の内容を確認し、属性値を付与する「ラベリング」を行わなければならないからである。
【０００９】
ＣＮＮによる画像認識において最も良く知られる学習用画像データセットであるＩＬＳＶＲＣデータ（非特許文献１参照）は、実に１２０万枚もの学習用画像を含んでいる。仮に１枚当たり５秒で、休みなくラベリングできたとしても、全ての画像にラベルを付けるのに２か月を超える期間が必要である。もちろん、１人の人間により判断したクラスは必ずしも信頼できるものであるとは限らないことから、通常は複数人による合議が取られるため、実際の工数はこれよりもさらに数倍は大きい。また、これほどの規模となると、そもそもラベリングの対象とする画像を撮影・収集すること自体も全く簡単ではない。また、ＣＮＮによる属性推定として、画像に写る人物の視線方向を推定するタスクを扱っている非特許文献２では、専用の視線計測用ソフトウェアを導入した計算機を用い、数か月もかけて２１３６５９枚の画像を記録している。このように、学習用画像を構築するコストは、ＣＮＮによる画像認識技術を導入・利用する上で、重大な障壁となっている。
【００１０】
この課題を解決すべく、従来様々な発明がなされている。例えば、非特許文献３では、画像生成を用いた画像認識器の学習手法が開示されている。画像認識器として構成されたＣＮＮとは別に、画像を生成するＣＮＮである生成器を用意する。画像認識器には、通常のクラスラベルを回答する役割の他に、画像の真偽（実際の画像か、生成器が生成した偽画像か）を見極めるような学習も要請し、反対に、生成器には、可能な限り実画像と見まがうような画像、すなわち、画像認識器が真偽判断を誤るような画像を生成するように学習することを要請する。このような構成により、真の画像に近しい“偽画像”を生成し、この画像を補助的な学習用画像として用いることで、ラベリングされた画像が少数しかない場合であっても画像認識器の学習を可能にしている。
【００１１】
非特許文献４では、人工的に生成した人工画像に基づく属性推定器の学習手法が開示されている。実現方法は非特許文献３に記載の方法に類似しており、真の画像に近しい“偽画像”を生成するという発想は同一であるが、違いは、非特許文献３では画像を生成する生成器を利用していたのに対し、本技術ではコンピュータグラフィクス（ＣＧ）により人工的に生成した画像を、実画像に見まがうように変換する変換器が導入されている点にある。
【００１２】
また、特許文献１に開示されている技術は、少数の学習用画像から意味のある認識結果を出力できるようにするべく、画像に写る物体に関する様々な属性値を推定し、属性値からクラスを識別する方法を開示している。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０１８−０３２３４０号公報
【非特許文献】
【００１４】
【非特許文献１】Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, "ImageNet Classification with Deep Convolutional Neural Networks." In Proc. Advances in Neural Information Processing Systems (NIPS), 2012, Pages.1097-1105.
【非特許文献２】Xucong Zhang, Yusuke Sugano, Mario Fritz, Andreas Bulling, “Appearance-Based Gaze Estimation in the Wild.” In Proc. Conference on Computer Vision and Pattern Recognition (CVPR), 2015, Pages.4511-4520.
【非特許文献３】Tim Salimans, Ian Goodfellow, Wojciech Zaremba, Vicki Cheung, Alec Radford, and Xi Chen, "Improved Techniques for Training GANs." In Proc. Advances in Neural Information Processing Systems 29 (NIPS), 2016, Pages.2226-2234.
【非特許文献４】Ashish Shrivastava, Tomas Pfister, Oncel Tuzel, Josh Susskind, Wenda Wang, and Russ Webb, "Learning from Simulated and Unsupervised Images through Adversarial Training." In Proc. Conference on Computer Vision & Pattern Recognition (CVPR), 2017, Pages.2242-2251.
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、非特許文献３及び４の技術は、学習用画像の不足分を、人工画像の生成または変換により補おうとするものであり、この着想は合理的であるものの、いずれの技術においても、人工画像は、実際の画像に近づくように生成され、変換されるべきであるという基準のみに基づいて生成され、変換されている。画像認識精度を改善させるという本来の目的に鑑みれば、生成され、変換される人工画像は、実画像に近いだけでなく、学習する上で有益な画像である必要がある。
【００１６】
また、特許文献１に開示されている技術は、汎用的な属性値の存在を仮定し、これによりラベルを表現することで、学習用画像の削減を狙っているが、このような汎用的な属性値の構成法は自明ではなく、また、画像認識精度の観点で最適な属性を選定する方法も自明ではない。
【００１７】
したがって、従来の技術はいずれも属性推定の精度の観点からは必ずしも最適な方法にはなっていないという問題があった。すなわち、教師となる属性値の付与された実画像が一切得られないような場合には、精度の良い属性推定器を学習することができず、実画像の属性値を精度良く推定することができない、という問題があった。
【００１８】
また、教師有(属性値が既知)の人工画像のみを用いて学習を行った属性推定器で実画像の属性を推定すると、推定精度が低い場合がある、という問題があった。これは、人工画像と実画像との差分に起因すると想定される。この問題を解決するために、教師有の実画像を多数集めることが考えられるが、実画像を多数集めることも、集めた実画像１つ１つに教師をつけていくこともコストを要してしまう。
【００１９】
本発明は上記の点に鑑みてなされたものであり、属性値が既知の人工画像又は実画像が全くないような場合であっても、他方の実画像又は人工画像の属性値を精度良く推定することができる属性推定装置、属性推定方法、及びプログラムを提供することを目的とする。
【００２０】
また、本発明は、属性値が既知の人工画像又は実画像が全くないような場合であっても、他方の実画像又は人工画像の属性値を精度良く推定することができる属性推定器を学習することができる属性推定器学習装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明に係る属性推定装置は、推定対象である画像の有する属性値を推定する属性推定装置であって、属性値が既知の人工画像及び実画像の何れか一方である第１の種類の画像と、属性値が未知の画像である人工画像及び実画像の何れか他方である第２の種類の画像を前記第１の種類の画像に変換して得られる画像と、を関連付けることにより、入力された前記画像の有する属性値を推定する第１属性推定部を備えて構成される。
【発明の効果】
【００２２】
本発明の属性推定装置、属性推定方法、及びプログラムによれば、属性値が既知の人工画像又は実画像が全くないような場合であっても、他方の実画像又は人工画像の属性値を精度良く推定することができる。
【００２３】
また、本発明の属性推定器学習装置によれば、属性値が既知の人工画像又は実画像が全くないような場合であっても、他方の実画像又は人工画像の属性値を精度良く推定することができる属性推定器を学習することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態に係る属性推定装置として機能するコンピュータの概略構成を示すブロック図である。
【図２】本発明の実施の形態に係る属性推定装置の機能ブロック図である。
【図３】本発明の実施の形態に係る属性推定装置の学習処理ルーチンを示すフローチャートである。
【図４】本発明の実施の形態に係る属性推定装置の画像変換学習処理ルーチンを示すフローチャートである。
【図５】本発明の実施の形態に係る属性推定装置の属性推定学習処理ルーチンを示すフローチャートである。
【図６】本発明の実施の形態に係る属性推定装置の属性推定処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態について図面を用いて説明する。
【００２６】
＜本発明の実施の形態に係る属性推定装置の構成＞
図１及び図２を参照して、本発明の実施の形態に係る属性推定装置１００の構成について説明する。図１は、本発明の実施の形態に係る属性推定装置として機能するコンピュータの概略構成を示すブロック図である。
【００２７】
属性推定装置１００は、ＣＰＵ１１と、ＲＡＭ等のメモリ１２と、通信インターフェース（ＩＦ）部１３と、キーボード等の入力部１４と、ディスプレイ等の表示部１５と、後述する学習処理ルーチン及び属性推定処理ルーチンを実行するためのプログラム１７を記憶したＲＯＭ等の記憶部１６とを備えたコンピュータで構成されている。また、ＣＰＵ１１、メモリ１２、通信ＩＦ部１３、入力部１４、表示部１５、及び記憶部１６は、バス１０を介して接続されている。
【００２８】
通信ＩＦ部１３は、ネットワーク５０を介して、第１画像記憶装置１１０及び第２画像記憶装置１２０と接続されている。属性推定装置１００は、第１画像記憶装置１１０及び第２画像記憶装置１２０に格納されたデータを、ネットワーク５０と通信ＩＦ部１３とを介して取得することができるように構成されている。
【００２９】
通信手段は任意の公知ものを用いることができる。本実施の形態においては、各装置は、インターネット、ＴＣＰ／ＩＰにより通信するように接続されているものとする。
【００３０】
属性推定装置１００は、機能的には次に示すように構成されている。図２は、本発明の実施の形態に係る属性推定装置１００の構成を示すブロック図である。図２に示すように、本実施形態に係る属性推定装置１００は、第１画像記憶装置１１０及び第２画像記憶装置１２０と通信を用いて接続され、記憶部１３０と、画像変換部１０１と、学習部１０２と、第１属性推定部１０５と、第２属性推定部１０６と、入力部１０７と、出力部１０８とを備えて構成されている。
【００３１】
第１画像記憶装置１１０には、属性値が既知の、人工画像である第１の種類の画像の集合が格納されている。具体的には、第１の種類の画像には、既知の属性値が与えられている。
【００３２】
第２画像記憶装置１２０には、属性値が未知の画像である、実画像である第２の種類の画像の集合が格納されている。以下、本実施の形態では、第２種類の画像として、属性値が未知の実画像を例に説明する。
【００３３】
第１属性推定部１０５及び第２属性推定部１０６は、画像を入力として受け取り、入力された画像に対する属性値を出力することができるパラメータを持つ関数である第１属性推定器及び第２属性推定器であって、パラメータに対して微分可能であるものであれば、任意のものを用いることができる。本実施の形態では、第１属性推定器及び第２属性推定器にＣＮＮを用いるのが好適であるため、本実施の形態の説明においては、以降ＣＮＮを利用するものとして説明する。なお、後述の画像変換部１０１が用いる第１画像変換器及び第２画像変換器についてもＣＮＮを用いるものとする。
【００３４】
＜＜処理部の説明＞＞
以下、本実施の形態における属性推定装置１００の各処理部について説明する。なお、各処理部の具体的な処理については、後述する各処理の詳細において説明する。
【００３５】
第１属性推定部１０５及び第２属性推定部１０６は、何れも属性値が既知の人工画像である第１の種類の画像と、属性値が未知の画像である実画像である第２の種類の画像を当該第１の種類の画像に変換して得られる画像と、を関連付けることにより、入力された画像の有する属性値を推定する画像の属性値を出力する。第１属性推定部１０５は、画像の有する属性値を推定するための第１属性推定器を用いて、入力された前記画像の有する属性値を推定する。第２属性推定部１０６は、画像の有する属性値を推定するための第２属性推定器を用いて、入力された画像の有する属性値を推定する。
【００３６】
第１属性推定部１０５及び第２属性推定部１０６は、記憶部１３０に格納されている第１属性推定器及び第２属性推定器のパラメータを読み込んで、属性値の推定を行う。第１属性推定器及び第２属性推定器は基本的には同一の構造を持つＣＮＮとして構成され、差異はパラメータの値のみにある。詳細は後述する。
【００３７】
画像変換部１０１は、人工画像又は実画像が入力されると、それに対して画素値を確率的に操作し、人工画像であれば第２画像変換器を用いて実画像に、実画像であれば第１画像変換器を用いて人工画像に変換することにより画像を生成し、出力する。画像変換部１０１は、記憶部１３０に格納されている第１画像変換器及び第２画像変換器のパラメータを読み込んで生成を行う。
【００３８】
学習部１０２は、属性値が既知の人工画像である第１の種類の画像と、属性値が未知の画像である実画像である第２の種類の画像を当該第１の種類の画像に変換して得られる画像と、を関連付けることにより、第１属性推定器を学習する。具体的には、第１学習部１０３と、第２学習部１０４とを備える。
【００３９】
第１学習部１０３は、第１属性推定器を、第１損失関数の値と、第２損失関数の値とが小さくなるように第２属性推定器と共に学習する。第１損失関数は、第１の種類の画像の属性値と、第１画像変換器若しくは／及び第２画像変換器により第１の種類の画像を変換した結果に対して、第１属性推定器により推定した属性値とが近いほど小さい値となる損失関数であり、第２損失関数は、第１画像変換器又は第２画像変換器により第１の種類の画像又は第２の種類の画像を変換した結果に対して、第１属性推定器により推定した属性値と、第１画像変換器又は第２画像変換器により第１の種類の画像又は第２の種類の画像を変換した結果に対して、第２属性推定器により推定した属性値とが近いほど小さい値となる損失関数である。
【００４０】
具体的には、第１画像記憶装置１１０及び第２画像記憶装置１２０から第１の種類の画像の集合と第２の種類の画像の集合とを入力として受け付け、更に、画像変換部１０１を用いて第１属性推定器及び第２属性推定器のパラメータを反復更新し、記憶部１３０に格納する。より具体的には、ある画像が入力されると、当該画像が実画像か人工画像であるか、より厳密には、属性値が既知の画像であるか否かに応じて、適切な損失関数の値を評価し、その結果に基づいて第１属性推定器及び第２属性推定器のパラメータを更新する。
【００４１】
もし仮に入力画像が実画像、つまり、属性値が未知の画像である場合、第１学習部１０３は、当該画像を第１画像変換器より変換した結果に対して第１属性推定器が出力した属性値と、同じく当該画像を第１画像変換器より変換した結果に対して第２属性推定器が出力した属性値との差異を表す第２損失関数である平均推定損失関数の値を求める。
【００４２】
また、もし仮に入力画像が人工画像、つまり、属性値が既知の画像である場合、第１学習部１０３は、先述の平均推定損失関数の値に加え、当該画像に対して第１属性推定部１０５が出力した属性値と先の既知の属性値の差異を表す第１損失関数である教師推定損失関数の値を求める。第１学習部１０３は、これらの損失関数の値に基づき、いずれの損失関数の値も小さくなるように第１属性推定器及び第２属性推定器のパラメータを反復更新し、更新の度に第１属性推定部１０５のパラメータを記憶部１３０に格納する。
【００４３】
第２学習部１０４は、第１画像変換器を、第３損失関数の値と、第４損失関数の値とが小さくなるように、第１の種類の画像を第２の種類の画像に変換するための第２画像変換器と共に学習する。第３損失関数は、第２画像変換器により第１の種類の画像を変換した結果の分布が、第２の種類の画像の分布に近いほど小さい値となる損失関数であり、第４損失関数は、第１画像変換器により第２の種類の画像を変換した結果の分布が、第１の種類の画像の分布に近いほど小さい値となる損失関数である。
【００４４】
具体的には、第２学習部１０４は、第１画像記憶装置１１０及び第２画像記憶装置１２０から第１の種類の画像の集合と第２の種類の画像の集合とを入力として受け付けると、第３損失関数の値と、第４損失関数の値とが小さくなるように、人工画像と実画像を相互に変換する第１画像変換器及び第２画像変換器のパラメータを反復更新し、更新の度に当該一対の画像変換器のパラメータを記憶部１３０に格納する。
【００４５】
記憶部１３０には、画像変換部１０１に用いられる第１画像変換器並及び第２画像変換器、第１属性推定部１０５に用いられる第１属性推定器、並びに第２属性推定部１０６により用いられる第２属性推定器の各パラメータが格納されている。
【００４６】
＜本発明の実施の形態に係る属性推定装置の作用＞
次に、本発明の実施形態に係る属性推定装置１００の作用について説明する。第１属性推定器、第２属性推定器、第１画像変換器、及び第２画像変換器の学習処理について先に説明し、その後、属性推定装置１００による属性推定処理について説明する。
【００４７】
＜＜本発明の実施の形態に係る属性推定装置の学習処理＞＞
図３は、本発明の実施の形態に係る属性推定装置の学習処理ルーチンを示すフローチャートである。属性推定装置１００は、図３に示す第１画像記憶装置１１０及び第２画像記憶装置１２０から第１の種類の画像の集合及び第２の種類の画像の集合を受け付けると、図３に示す学習処理ルーチンを実行する。
【００４８】
まず、ステップＳ１００において、属性推定装置１００は、画像変換器学習処理を実行する。
【００４９】
次に、ステップＳ１１０において、属性推定装置１００は、属性推定器学習処理を実行する。
【００５０】
ステップＳ１２０において、属性推定装置１００は、所定の終了条件を満たしたか否かを判定する。
【００５１】
終了条件を満たしていないと判定した場合（上記ステップＳ１２０のＮＯ）、ステップＳ１００に戻り、再度ステップＳ１００〜Ｓ１１０の処理を繰り返す。
【００５２】
一方、終了条件を満たしていると判定した場合（上記ステップＳ１２０のＹＥＳ）、処理を終了する。
【００５３】
ステップＳ１２０で判定する終了条件については任意のものを用いてよい。例えば、終了条件として、「所定の回数を繰り返すまで」、「損失関数の値が一定以上変化しなくなるまで」、「学習に用いた画像とは別の検証用画像を用いて計算した損失関数の値が一定以上変化しなくなるまで」等とすることができる。
【００５４】
上記ステップＳ１００における画像変換器学習処理について説明する。図４は、本発明の実施の形態に係る画像変換器学習処理ルーチンを示すフローチャートである。
【００５５】
まず、ステップＳ２００において、第２学習部１０４は、第１画像記憶装置１１０及び第２画像記憶装置１２０から第１の種類の画像の集合及び第２の種類の画像の集合を取得する。
【００５６】
次に、ステップＳ２１０において、第２学習部１０４は、記憶部１３０に格納されている第１画像変換器及び第２画像変換器のパラメータを取得する。
【００５７】
ステップＳ２２０において、第２学習部１０４は、第１の種類の画像の集合及び第２の種類の画像の集合の中から、少なくとも一枚以上の画像を選ぶ。
【００５８】
ステップＳ２３０において、第２学習部１０４は、上記ステップＳ２２０で選んだ画像を基に、第３損失関数及び第４損失関数を含む画像変換損失関数の値を算出する。
【００５９】
ステップＳ２４０において、第２学習部１０４は、上記ステップＳ２３０により算出した画像変換損失関数の値を基に、これが小さくなるように第１画像変換器及び第２画像変換器のパラメータを反復更新する。
【００６０】
ステップＳ２５０において、第２学習部１０４は、所定の終了条件を満たしたか否かを判定する。
【００６１】
終了条件を満たしていないと判定した場合（上記ステップＳ２５０のＮＯ）、ステップＳ２００に戻り、再度ステップＳ２００〜Ｓ２４０の処理を繰り返す。
【００６２】
一方、終了条件を満たしていると判定した場合（上記ステップＳ２５０のＹＥＳ）、ステップＳ２６０において、第２学習部１０４は、上記ステップＳ２４０により更新された第１画像変換器及び第２画像変換器のパラメータを、記憶部１３０に格納し、リターンする
【００６３】
次に、上記ステップＳ１１０における属性推定器学習処理について説明する。図５は、本発明の実施の形態に係る属性推定器学習処理ルーチンを示すフローチャートである。
【００６４】
まず、ステップＳ３００において、第１学習部１０３は、第１画像記憶装置１１０及び第２画像記憶装置１２０から第１の種類の画像の集合及び第２の種類の画像の集合を取得する。
【００６５】
次に、ステップＳ３１０において、第１学習部１０３は、記憶部１３０に格納されている第１属性推定器、第２属性推定器、第１画像変換器及び第２画像変換器のパラメータを取得する。
【００６６】
ステップＳ３２０において、第１学習部１０３は、第１の種類の画像の集合及び第２の種類の画像の集合の中から、少なくとも一枚以上の画像を選ぶ。
【００６７】
ステップＳ３３０において、第１学習部１０３は、上記ステップＳ３２０で選んだ画像を基に、属性推定損失関数の値を算出する。
【００６８】
ステップＳ３４０において、第１学習部１０３は、上記ステップＳ３３０により算出された属性推定損失関数の値を基に、これが小さくなるように第１属性推定器のパラメータを反復更新する。
【００６９】
ステップＳ３５０において、第１学習部１０３は、上記ステップＳ３３０により算出された属性推定損失関数の値を基に、これが小さくなるように第２属性推定器のパラメータを反復更新する。
【００７０】
ステップＳ３６０において、第１学習部１０３は、所定の終了条件を満たしたか否かを判定する。
【００７１】
終了条件を満たしていないと判定した場合（上記ステップＳ３６０のＮＯ）、ステップＳ３００に戻り、再度ステップＳ３００〜Ｓ３５０の処理を繰り返す。一方、終了条件を満たしていると判定した場合（上記ステップＳ３６０のＹＥＳ）、ステップＳ３７０において、第１学習部１０３は、上記ステップＳ３４０により更新された第１属性推定器のパラメータと、上記ステップＳ３６０により更新された第２属性推定器のパラメータとを、記憶部１３０に格納し、リターンする
【００７２】
＜＜＜各処理の詳細＞＞＞
ここで、属性推定装置１００の学習処理における、各処理部の処理の詳細について説明する。以下、第１の種類の画像の集合に含まれる人工画像をｂ、第２の種類の画像の集合に含まれる実画像をａと表す。
【００７３】
また、属性値を推定する属性推定器をｆと表し、第１属性推定器のパラメータをθ、第２属性推定器のパラメータをηと表す。すなわち、例えば、ある実画像ａについて、第１属性推定器を用いて推定した属性値をｙと表現したとすると、下記式（１）のように表すことができる。
【００７４】
【数１】
2020144411.tif 000003
【００７５】
本実施の形態に係る属性推定装置１００の学習処理では、このθ及びηを、当該実画像ａの所望の属性値であるｙ＊に対してｙ＊＝ｙとなるように定めることにある。
【００７６】
典型的な公知の技術では、属性値が既知の人工画像ｂに対して、正しい属性値が推定できるようにθの値を求める。より具体的には、人工画像ｂの既知の属性値をｙ＊と表すとすると、下記式（２）で表される損失関数ＬＰＲＥＤを最小化するように、θを求める。
【００７７】
【数２】
2020144411.tif 000004
【００７８】
ここで、
2020144411.tif 000005
は、期待値を取る操作を表す。
【００７９】
このような方法は、人工画像と実画像との間に差異がなければうまくいく。しかし、実際には実画像さながらの画像を創り出せるような人工画像を生成できるツールは非常に限られており、常にこれが成り立つと考えることは現実的でない。したがって、このように学習した属性推定器は多くの場合、実画像に対して正しい属性値を与えることができず、結果として精度の低い属性推定器となってしまうのである。
【００８０】
これに対し、本実施の形態に係る属性推定装置１００は、更に属性値が未知の実画像ａを利用し、人工画像と実画像を互いに本物に見まがうような“偽物”へと相互に変換することにより、人工画像にしか既知の属性値が与えられていないような場合であっても、実画像の属性値を正しく推定できるような第１属性推定器及び第２属性推定器のパラメータを学習することを実現する。
【００８１】
更に、本実施の形態に係る属性推定装置１００では、より安定した属性推定を可能にするため、異なるパラメータを持つ第１属性推定器と第２属性推定器とを同時に学習し、これらが可能な限り同じ属性値を推定するように制約することで、推定の安定性を改善する。
【００８２】
以下、このような学習を実現する処理について詳述する。
【００８３】
＜＜＜画像変換器学習処理ルーチン＞＞＞
図４に示した第２学習部１０４による画像変換器学習処理ルーチンの処理を詳述する。
【００８４】
ここで、画像変換器学習処理の説明の前に、本実施の形態における画像変換部１０１による画像変換処理について説明する。
【００８５】
画像変換部１０１は、第２の種類の画像を第１の種類の画像に変換するための第１画像変換器と、第１の種類の画像を第２の種類の画像に変換するための第２画像変換器とを用いて、属性値が未知の画像である、実画像である第２の種類の画像を変換する。
【００８６】
具体的には、画像変換部１０１は、実画像ａ及び一つ以上の確率変数により構成されるベクトルｚｂを入力として受け取り、人工画像ｂ’を出力する、パラメータφｂを持つような下記式（３）に示す関数Ｇａｂで表される第１画像変換器と、人工画像ｂ及び一つ以上の確率変数により構成されるベクトルｚａを入力として受け取り、人工画像ａ’を出力する、パラメータφａを持つような下記式（４）に示す関数Ｇｂａで表される第２画像変換器との組を用いることにより実現する。
【００８７】
【数３】
2020144411.tif 000006
【００８８】
【数４】
2020144411.tif 000007
【００８９】
このような第１画像変換器及び第２画像変換器（関数Ｇａｂ及び関数Ｇｂａ）を実現する手段は様々なものがあるが、本実施の形態においては、ＣＮＮを利用する。より具体的な例としては、例えば参考文献１に記載のＣＮＮを用いることができる。
［参考文献１］Amjad Almahairi, Sai Rajeswar, Alessandro Sordoni, Philip Bachman, Aaron Courville, " Augmented CycleGAN: Learning Many-to-Many Mappings from Unpaired Data." In Proc. International Conference on Machine Learning (ICML), 2018.
【００９０】
このようなＣＮＮにより構成した関数Ｇａｂ及び関数Ｇｂａは、パラメータφａ及びφｂに対してそれぞれ微分可能であるという良好な性質を持つ。
【００９１】
画像変換損失関数値の評価（ステップＳ２３０）及び画像変換器の更新（ステップＳ２４０）の各処理について詳細に説明する。
【００９２】
［ステップＳ２３０：画像変換損失関数の値の算出］
第２学習部１０４は、第１画像変換器及び第２画像変換器のパラメータであるφａ及びφｂを更新するために、下記に示す一連の損失関数（真偽損失、循環損失、及び属性損失）の値を求め、これらの値を組み合わせた画像変換損失関数の値に基づいてパラメータを反復更新する。
【００９３】
（１．真偽損失）
人工画像ｂを第２画像変換器により変換した“偽物の”実画像ａ’は、当然のことながら実際の実画像、つまり実画像ａに見まがうようなものであることが好ましい。また逆に、実画像ａを第１画像変換器により変換した“偽物の”人工画像ｂ’は、当然のことながら実際の人工画像、つまり人工画像ｂに見まがうようなものであることが好ましい。これを実現するため、本実施の形態では、入力された実画像が、実際の実画像であるか、あるいは、人工画像が変換されたものであるかを表す確率値である実画像真偽確率値を出力する実画像識別器Ｄａ、並びに、入力された人工画像が、実際の人工画像であるか、あるいは、実画像が変換されたものであるかを表す確率値である人工画像真偽確率値を出力する人工画像識別器ＤｂをそれぞれＣＮＮにより構成し、用意する。これらのＣＮＮは特別な機能を導入する必要はなく、例えば、参考文献１に開示されているようなものを採ればよい。
【００９４】
第２学習部１０４は、人工画像識別器Ｄｂを用いて、第２画像変換器により第１の種類の画像を変換した結果の分布が、第２の種類の画像の分布に近いほど小さい値となる第３損失関数（下記式（５））の値と、実画像識別器Ｄａを用いて、第１画像変換器により第２の種類の画像を変換した結果の分布が、第１の種類の画像の分布に近いほど小さい値となる損失関数である第４損失関数（下記式（６））の値とを求める。
【００９５】
【数５】
2020144411.tif 000008
【００９６】
【数６】
2020144411.tif 000009
【００９７】
上記式（５）の第一項は、実際の人工画像ｂが与えられた下で、人工画像識別器Ｄｂが１に近い確率値を出力できた場合、すなわち、ｂを正しく実際の人工画像である確率が高いと判断できた場合に大きな値を取り、そうでない場合に小さな値を取る。また、上記式（５）の第二項は、“偽物の”人工画像ｂ’が与えられた下で、人工画像識別器Ｄｂが０に近い確率値を出力できた場合、すなわち、ｂ’を正しく“偽物の”人工画像である確率が高いと判断できた場合に大きな値を取り、そうでない場合に小さな値を取る。上記式（６）の場合、上記式（５）と人工画像と実画像が反対になっているだけで、構造と作用は同一である。
【００９８】
すなわち、上記式（５）、式（６）が大きくなるように人工画像識別器Ｄａ、人工画像識別器Ｄｂのパラメータを反復更新し、また、これらを小さくするように第１画像変換器及び第２画像変換器のパラメータφａ及びφｂを反復更新すれば、第１画像変換器及び第２画像変換器は、実際の実画像／人工画像に見まがうような画像へと変換することができるようになる。
【００９９】
（２．循環損失）
関数Ｇｂａが人工画像を実画像に変換し、関数Ｇａｂが実画像を人工画像に変換するような関数であるから、これらを順に適用することにより、人工画像→実画像→人工画像…と変換していくことが可能である。このような変換を考えた場合に、最も自然な制約は、ある人工画像ｂを実画像ａ’に変換し、再度人工画像に変換した画像ｂ”が、元の人工画像ｂに戻るように変換される（下記式（７））、あるいは反対に、ある実画像ａを人工画像ｂ’に変換し、再度実画像に変換した画像ａ”が、元の実画像ａと戻るように変換されることである（下記式（８））。
【０１００】
【数７】
2020144411.tif 000010
【０１０１】
【数８】
2020144411.tif 000011
【０１０２】
このような制約を表現した損失関数は、下記式（９）、式（１０）のように定めることができる。
【０１０３】
【数９】
2020144411.tif 000012
【０１０４】
【数１０】
2020144411.tif 000013
【０１０５】
第２学習部１０４が、上記式（９）及び式（１０）が小さくなるように第１画像変換器及び第２画像変換器のパラメータφａ及びφｂを反復更新すれば、第１画像変換器及び第２画像変換器は実際の実画像／人工画像に見まがうような画像へと変換することができるようになる。
【０１０６】
（３．属性損失）
いかに“本物”に見まがうような偽物が作れたとしても、変換の前後で本来推定すべき属性値が変化してしまっては、このような属性推定器の学習は成しえない。例えば、顔の画像から、当該人物の年齢を推定するような属性推定器を得たいとする。仮に、年齢を与えれば、その年齢にあった人の顔画像を人工的に生成することができるコンピュータグラフィクスツールがあるとして、その画像を属性値が既知の人工画像として用いることを考えたとする。この際、もし当該人工画像を実画像に変換した際に、例えその人工画像が実際の顔を写した顔写真のように変換できたとしても、写る人物の年齢が変わってしまったとすると、正しい年齢を推定できるような属性推定器にはならない。このような問題を克服すべく、推定の対象となる属性値が変換しないような制約を損失関数として導入することが好ましい。
【０１０７】
このような損失関数にはいくつかの形態がありうる。まず、最もシンプルなものは、下記式（１１）及び式（１２）のように、変換前の画像から可能な限り画素値そのものを変化させないようにすることである。
【０１０８】
【数１１】
2020144411.tif 000014
【０１０９】
【数１２】
2020144411.tif 000015
【０１１０】
また、仮に画像中の属性値に影響を与える領域が既知であるような場合には、その部分だけが変換の前後で変化しないように制約しても構わない。このようにすることで、画像の中でより属性の値に影響する部分だけを効果的に絞り込み、より高精度な推定を実現できる。仮に、ある画像から指定された領域ｒに該当する部分だけを切り出すクロッピング処理関数ｃｒｏｐがあったとすると、当該制約は、下記式（１３）及び式（１４）のような損失関数として表現できる。
【０１１１】
【数１３】
2020144411.tif 000016
【０１１２】
【数１４】
2020144411.tif 000017
【０１１３】
また、より直接的には、下記式（１５）及び式（１６）のように、第１属性推定器ｆの値が変化しないように制約を入れることも可能である。
【０１１４】
【数１５】
2020144411.tif 000018
【０１１５】
【数１６】
2020144411.tif 000019
【０１１６】
当然のことながら、本実施の形態において第１属性推定器ｆのパラメータθは学習される対象であり、この学習のために第１属性推定器ｆを利用するというのは非現実的な仮定であるように思える。しかし、実際にはいくつかの方法により同様の効果を得ることは十分に可能である。
【０１１７】
まず一つに、先に第１の種類の画像の集合の画像のみを用い、上記式（２）で表される典型的な損失関数で学習したｆを利用する方法がある。上記式（２）を最小化するように学習したｆのパラメータをθｓと表すし、上記式(１５)及び（１６）に代入すれば、下記式（１７）及び式（１８）となる。
【０１１８】
【数１７】
2020144411.tif 000020
【０１１９】
【数１８】
2020144411.tif 000021
【０１２０】
もちろん、このように学習したパラメータθｓは必ずしも正しい属性値を与えないが、多かれ少なかれ属性値に関係のある特徴を考慮したものになっているはずであるから、緩やかには属性値に関連する情報を保存するための損失として機能する。あるいは、必ずしも上記式（２）により学習したパラメータθｓでなくとも、別の方法で学習したパラメータθを利用しても構わない。例えば、一度上記式（１５）〜（１８）等をもとに、本実施の形態に係る属性推定装置１００を用いて学習したパラメータθ１を、パラメータθｓの代わりに用いるということも可能である。
【０１２１】
いずれにせよ、上記式（１１）〜式（１８）の値が小さくなるように、第１画像変換器及び第２画像変換器のパラメータφａ及びφｂを反復更新すれば、第１画像変換器及び第２画像変換器は、第１属性推定器ｆの推定対象の属性値に関する情報を保存するような変換を実現することができるようになる。
【０１２２】
すなわち、第２学習部１０４が、第１画像変換器及び第２画像変換器が画像を変換する際に、推定対象の属性以外の少なくとも１つの属性を変更するように学習することができる。例えば、「ｍｅａｎ  ｔｅａｃｈｅｒ」における教師無学習データに与えられるノイズを、意味があるノイズにするような変換を実現することができる。
【０１２３】
つまり、同じドメイン（実画像又は人工画像）内において推定対象となる１つの属性（例えば形状）を固定し、固定されていない少なくとも１つの属性を変更するように制約を持たせていることとなる。なお、このような制約を持たせた画像を得るためには、例えば公知の技術である「ａｕｇｍｅｎｔｅｄ  ｃｙｃｌｅ  ｇａｎ」を用いることができる。
【０１２４】
以上の３種類の損失関数を組み合わせた画像変換損失関数を、下記式（１９）のように表すことができる。
【０１２５】
【数１９】
2020144411.tif 000022
【０１２６】
ここで、λｂ、λａ、γｂ、γａは各損失関数の重みを制御するパラメータであり、任意の実数値を与えてよい。
【０１２７】
上記式（３）、式（４）にあるように、関数Ｇｂａ、関数Ｇａｂの引数である確率値のベクトルｚａ及びｚｂをどう構成するかは任意である。最も単純には、任意の乱数（例えば標準正規乱数など）をサンプルし、これにより定めるものとしてもよい。より好ましくは、参考文献１に開示されているように、符号化器を用いて、人工画像ｂあるいは実画像ａから直接ｚａ及びｚｂを生成するという方式を採る。この方式を採ることで、実際の人工画像、実画像に合わせた多様な変換を実現することができるようになるからである。
【０１２８】
［ステップＳ２４０：画像変換器のパラメータの更新］
第２学習部１０４は、上記式（１９）で表される画像変換損失関数ＬＴＲＡＮＳが大きくなるように人工画像識別器Ｄａ及び人工画像識別器Ｄｂのパラメータを反復更新し、上記式（１９）で表される画像変換損失関数ＬＴＲＡＮＳが小さくなるように第１画像変換器（関数Ｇａｂ）及び第２画像変換器（関数Ｇｂａ）のパラメータφａ及びφｂを反復更新する。これにより、望ましい第１画像変換器及び第２画像変換器を得ることができる。反復更新を行う手段としては、例えば確率的勾配降下法など、任意のものを用いることができる。
【０１２９】
なお、上記式（１９）で表される画像変換損失関数ＬＴＲＡＮＳは必ずしもこの形である必要はなく、必要に応じて任意の損失関数を除いても構わないが、先に説明した通り、各損失関数はそれぞれ重要な意味を持つため、全ての損失関数を含む式（１９）の形式で用いるのが好ましい。
【０１３０】
第２学習部１０４は、以上の処理を所定の終了条件を満たすまで繰り返したのち、ステップＳ２６０において、最終的に第１画像変換器及び第２画像変換器のパラメータφａ及びφｂを記憶部１３０に格納し、処理を終了する。
【０１３１】
ステップＳ２５０で判定する終了条件については任意のものを用いてよい。例えば、終了条件として、「所定の回数を繰り返すまで」、「損失関数の値が一定以上変化しなくなるまで」、「学習に用いた画像とは別の検証用画像を用いて計算した損失関数の値が一定以上変化しなくなるまで」等とすることができる。
以上が、画像変換器学習処理の一例である。
【０１３２】
＜＜＜属性推定器学習処理ルーチン＞＞＞
図５に示した第１学習部１０３による属性推定器学習処理ルーチンの処理を詳述する。
【０１３３】
上述の通り、典型的な公知の技術は、属性値が既知の人工画像に対して正しい属性値が推定できるよう、上記式（２）をパラメータθに対して最小化することで属性推定器のパラメータを求める。しかしながら、一般には人工画像と実画像との間には差異があるため、本来属性値を推定したい対象であるところの実画像の情報を一切用いることなく、人工画像のみを用いて学習した属性推定器では、実画像に対して正しく属性値を推定することができないという問題が起こる。
【０１３４】
この問題に鑑み、本実施の形態では、人工画像と実画像との双方を用いて属性推定器を学習することを考える。基本的な着想は、先に学習した画像変換部１０１により第１画像変換器及び第２画像変換器を適用することによって、実画像（第２の種類の画像の集合）を人工画像に変換し、人工画像と実画像の差異を小さくすること、並びに、変換処理を施した結果得られる“属性値が未知の人工画像の集合（実画像を変換したもの）”と、属性値が既知の人工画像の集合（第１の種類の画像の集合）とから、属性推定器を学習することである。以下、本処理について詳述する。
【０１３５】
画像変換処理を施した後、属性値が既知の人工画像及び属性値が未知の人工画像の集合から属性推定器を学習することになる。一般に、このように属性値が既知のデータと属性値が未知のデータとの双方を用いて、識別器や回帰関数を学習する問題を、半教師有学習と呼ぶ。過去多くの公知の半教師有学習技術が開示されてきており、本発明の実施形態の一例においても、任意の半教師有学習技術を用いることができる。例えば、参考文献２記載の方法を用いることができる。
［参考文献２］Antti Tarvainen, Harri Valpola, " A Mean Teachers are Better Role Models: Weight-averaged Consistency Targets Improve Semi-supervised Deep Learning Results." In Proc. Neural Information Processing Systems (NIPS), 2017.
【０１３６】
以降、参考文献２の方法をベースとして、本実施の形態における属性推定損失関数の値の算出（ステップＳ３３０）、第１属性推定器のパラメータの学習（ステップＳ３４０）、第２属性推定器のパラメータの学習（ステップＳ３５０）の各処理について詳細に説明する。
【０１３７】
［ステップＳ３３０：属性推定損失関数の値の算出］
第１学習部１０３は、第１損失関数の値と、第２損失関数の値とが小さくなるように第２属性推定器と共に学習する。第１損失関数は、第１の種類の画像の属性値と、第１画像変換器により前記第２の種類の画像を変換した結果に対して、第１属性推定器により推定した属性値とが近いほど小さい値となる損失関数である。第２損失関数は、第１画像変換器又は第２画像変換器により第１の種類の画像又は第２の種類の画像を変換した結果に対して、第１属性推定器により推定した属性値と、第１画像変換器又は第２画像変換器により第１の種類の画像又は第２の種類の画像を変換した結果に対して、第２属性推定器により推定した属性値とが近いほど小さい値となる損失関数である。
【０１３８】
具体的には、第１学習部１０３は、まず、属性値が既知の人工画像の各々に対して、画像変換部１０１による後述の画素変換作用を２度施し、人工画像ｂ１と人工画像ｂ２とを生成する。
【０１３９】
次に、第１学習部１０３は、人工画像ｂ１を第１属性推定部１０５に、人工画像ｂ２を第２属性推定部１０６にそれぞれ入力し、第１属性推定部１０５が第１属性推定器を用いて上記式（２）で表される第１損失関数の値を求めると共に、第１属性推定部１０５が人工画像ｂ１に対して、第１属性推定器を用いて推定した属性値と、第２属性推定部１０６が人工画像ｂ２に対して、第２属性推定器を用いて推定した属性値とが近いほど小さい値となる、下記式（２０）で表される第２損失関数の値を求める。
【０１４０】
【数２０】
2020144411.tif 000023
【０１４１】
また、第１学習部１０３は、属性値が未知の実画像の各々に対しても、画像変換部１０１による後述の画素変換作用を２度施し、人工画像ｂ’１と人工画像ｂ’２とを生成する。
【０１４２】
次に、第１学習部１０３は、人工画像ｂ’１を第１属性推定部１０５に、人工画像ｂ’２を第２属性推定部１０６にそれぞれ入力し、上記式（２０）と同様の下記式（２１）で表される第２損失関数の値を求める。
【０１４３】
【数２１】
2020144411.tif 000024
【０１４４】
上記式（２）で表される第１損失関数の値を最小化するようにパラメータθを求めることにより、第１属性推定器は、属性値が既知の人工画像について、正しい属性値を推定できるように学習される。また、上記式（２０）及び式（２１）で表される第２損失関数の値を最小化するようにパラメータθを求めることにより、第１属性推定器と、第２属性推定器とが、画像変換部１０１による後述の画素変換作用を加えた画像に対して推定した属性値が、同一の属性値となるように学習される。
【０１４５】
以上の３種類の損失関数を組み合わせた属性推定損失関数は、下記式（２２）のように定義することができる。
【０１４６】
【数２２】
2020144411.tif 000025
【０１４７】
［ステップＳ３４０：第１属性推定器のパラメータの学習］
第１学習部１０３は、上記式（２２）で表される属性推定損失関数ＬＥＳＴが小さくなるように、第１属性推定器ｆのパラメータθを反復更新することにより、望ましい第１属性推定器を得ることができる。反復更新手段としては、例えば確率的勾配降下法など、任意のものを用いることができる。
【０１４８】
なお、上記式（２２）の属性推定損失関数ＬＥＳＴは、必ずしもこの形である必要はなく、必要に応じて任意の損失関数を除いても構わないが、先に説明した通り、各種損失関数はそれぞれ重要な意味を持つため、全ての損失関数を含む上記式（２２）の形式で用いることが好ましい。
【０１４９】
ここで、上記式（２２）において、ｗ（ｔ）は学習の繰り返し回数ｔに依存して変化する重み関数である。ｗ（０）が１よりも小さい実数値を取ること、最大値が１であることを満たす限り、どのような関数を用いてもよい。例えば、ある繰り返し回数をＴ（定数）と表すと、ｗ（ｔ）を、下記式（２３）や式（２４）のように定義してもよい。
【０１５０】
【数２３】
2020144411.tif 000026
【０１５１】
【数２４】
2020144411.tif 000027
【０１５２】
ここで、上記式（２４）のαは、パラメータであり、任意の正の実数値を与えてよい。例えば、α＝５．０等とすることができる。
【０１５３】
［［画素変換作用］］
画素変換作用は、画像変換部１０１を用いて、元の画像に対してランダムな変換を施す処理であり、このようなものであれば任意の方法を更に採用することができる。
【０１５４】
例えば、画像変換部１０１による変換のみを施す場合、人工画像ｂに対しては第１画像変換器及び第２画像変換器を用いた上記式（７）を適用することにより、一度実画像ａ’に変換したのち、再度人工画像ｂ”に変換することができる。この際、変数ｚをランダムに変化させることにより、ランダムな画素変換を施すことができる。同様に、実画像ａに対しては、第２画像変換器を用いた上記式（４）を適用することにより人工画像ｂ’に変換することができる。
【０１５５】
また、画像変換部１０１による変換に加えて、画素値に対してランダムな乱数を与えてもよいし、画素値に対して平行移動、回転などの幾何変換作用を施してもよい。
【０１５６】
上記では、属性値が既知の人工画像の各々に対して、画像変換部１０１による１度目の画素変換作用を施したものが人工画像ｂ１、２度目の画素変換作用を施したものが人工画像ｂ２となる。
【０１５７】
また、属性値が未知の実画像の各々に対して、画像変換部１０１による１度目の画素変換作用を施したものが人工画像ｂ’１、２度目の画素変換作用を施したものが人工画像ｂ’２となる。
【０１５８】
なお、１度目の画素変換作用及び２度目の画素変換作用の何れか一方において、画像変換部１０１による変換以外の方法を用いてもよい。
【０１５９】
［ステップＳ３５０：第２属性推定器のパラメータの学習］
第１学習部１０３は、第１属性推定器のパラメータθの統計量を基に、第２属性推定器のパラメータηを反復更新する。ここで、利用する統計量は、どのようなものを用いても構わないが、第１属性推定器のパラメータθの更新履歴を用いて統計量を求めるのがよい。ｔ回目の繰り返し回数における第１属性推定器のパラメータをθｔ、第２属性推定器のパラメータをηｔ表すとする。例えば、第１学習部１０３は、ｔ回目までの属性推定器のパラメータθ１、…、θｔの平均により、第２属性推定器のパラメータηｔを更新する構成としてもよい（下記式（２５））。
【０１６０】
【数２５】
2020144411.tif 000028
【０１６１】
また、第１学習部１０３は、移動平均を利用して第２属性推定器のパラメータηｔを更新する構成としてもよい。例えば過去５回の繰り返しを利用するとすれば、下記式（２６）によりパラメータηｔを求めることができる。
【０１６２】
【数２６】
2020144411.tif 000029
【０１６３】
また、第１学習部１０３は、下記式（２７）のように、指数平滑移動平均を利用して、第２属性推定器のパラメータηｔを更新する構成としてもよい。
【０１６４】
【数２７】
2020144411.tif 000030
【０１６５】
第１学習部１０３は、以上の処理を所定の終了条件を満たすまで繰り返したのち、ステップＳ３７０において、最終的な第１属性推定器及び第２属性推定器のパラメータθ及びηを、記憶部１３０に格納し、処理を終了する。
【０１６６】
ステップＳ３６０で判定する終了条件については任意のものを用いてよい。例えば、「所定の回数を繰り返すまで」、「損失関数の値が一定以上変化しなくなるまで」、「学習に用いた画像とは別の検証用画像を用いて計算した損失関数の値が一定以上変化しなくなるまで」等とすることができる。
以上が、属性推定器学習処理の一例である。
【０１６７】
＜＜属性推定処理ルーチン＞＞
次に、属性推定処理について説明する。図６は、本発明の実施の形態に係る属性推定処理ルーチンを示すフローチャートである。入力部１０７に、属性値が未知の実画像である第２の種類の画像が入力されると、図６に示す属性推定処理ルーチンが実行される。
【０１６８】
上記学習した第１属性推定器及び第１画像変換器を用いて属性推定処理を行う場合の処理について説明する。
【０１６９】
まず、ステップＳ４００において、入力部１０７は、属性推定の対象となる第２の種類の画像の入力を受け付ける。
【０１７０】
次に、ステップＳ４１０において、画像変換部１０１と第１属性推定部１０５とは、記憶部１３０から、第１画像変換器のパラメータと、第１属性推定器のパラメータを取得する。
【０１７１】
ステップＳ４２０において、画像変換部１０１は、上記ステップＳ４００により受け付けた画像を、第１画像変換器を用いて人工画像である第１の種類の画像のドメインに合わせるように変換する。ここで、ドメインとは、人工画像又は実画像のことである。
【０１７２】
ステップＳ４３０において、第１属性推定部１０５は、上記ステップＳ４２０により変換された画像に対し、第１属性推定器を用いて属性値を推定する。
【０１７３】
ステップＳ４４０において、出力部１０８は、上記ステップＳ４３０により推定された属性値を出力する。
【０１７４】
＜＜各処理の詳細＞＞
ここで、属性推定装置１００の属性推定処理における、各処理部の処理の詳細について説明する。
【０１７５】
画像変換部１０１は、入力された第２の種類の画像を、学習に用いた第１の種類の画像のドメイン（本実施の形態では人工画像）に合わせるように、第１画像変換器を用いて画像を変換する。
【０１７６】
具体的には、画像変換部１０１は、まず、記憶部１３０から第１画像変換器のパラメータφｂを取得する。次に、画像変換部１０１は、乱数あるいは固定値を用いて、ｚｂを任意の値に定める。そして、画像変換部１０１は、上記式（３）により、実画像ａを人工画像ｂ’へと変換する。
【０１７７】
なお、入力された画像が人工画像である場合には、画像変換部１０１は入力された画像を変換しない構成としてもよいし、入力された画像を、第２画像変換器を用いて実画像に変換し、更に人工画像に変換する構成としてもよい。
【０１７８】
第１属性推定部１０５は、画像の有する属性値を推定するための第１属性推定器を用いて、画像変換部１０１により生成された画像の有する属性値を推定し、入力された第２の種類の画像の属性値とする。
【０１７９】
具体的には、第１属性推定部１０５は、まず、記憶部１３０から予め学習された第１属性推定器のパラメータθを取得する。次に、第１属性推定部１０５は、画像変換部１０１により変換された画像ｂ’に対し、第１属性推定器を用いて下記式（２８）を計算することにより、属性値ｙを推定する。
【０１８０】
【数２８】
2020144411.tif 000031
【０１８１】
以上説明したように、本発明の実施形態に係る属性推定装置によれば、属性値が既知の人工画像である第１の種類の画像と、属性値が未知の画像である実画像である第２の種類の画像を当該第１の種類の画像に変換して得られる画像と、を関連付けることにより、入力された画像の有する属性値を推定することにより、属性値が既知の人工画像又は実画像が全くないような場合であっても、他方の実画像又は人工画像の属性値を精度良く推定することができる。
【０１８２】
また、本発明の実施形態に係る属性推定装置によれば、推定対象である画像の有する属性値を推定するための第１属性推定器を学習する属性推定器学習装置であって、属性値が既知の人工画像である第１の種類の画像と、属性値が未知の画像である実画像である第２の種類の画像を当該第１の種類の画像に変換して得られる画像と、を関連付けることにより、第１属性推定器を学習することにより、属性値が既知の人工画像又は実画像が全くないような場合であっても、他方の実画像又は人工画像の属性値を精度良く推定することができる属性推定器を学習することができる。
【０１８３】
第一の種類の画像が、人工シミュレータにより生成された人工画像、第二の種類の画像が実画像であるとした場合、本発明の実施形態に係る属性推定装置によれば、第１属性推定器は次の（１）〜（３）の条件を満たすように学習される。
【０１８４】
（１）第１属性推定器は、第１の種類の画像の属性値と、当該第１画像変換器により当該第２の種類の画像を変換した結果に対して、当該第１属性推定器により推定した属性値とが近いほど小さい値となる第１損失関数により、属性値が既知の人工画像については、正しい属性値を推定できるように学習される。（２）第１画像変換器又は第２画像変換器により第１の種類の画像又は第２の種類の画像を変換した結果に対して、第１属性推定器により推定した属性値と、第１画像変換器又は第２画像変換器により第１の種類の画像又は第２の種類の画像を変換した結果に対して、第２属性推定器により推定した属性値とが近いほど小さい値となる第２損失関数により、属性値が未知の実画像に対しても、２種類の異なる属性推定器（第１属性推定器及び第２属性推定器）が同じような推定結果を出力できるように学習される。（３）第２画像変換器により第１の種類の画像を変換した結果の分布が、第２の種類の画像の分布に近いほど小さい値となる第３損失関数と、第１画像変換器により第２の種類の画像を変換した結果の分布が、第１の種類の画像の分布に近いほど小さい値となる第４損失関数とにより、第１画像変換器及び第２画像変換器は、人工画像と実画像との差異を小さくするように学習される。
【０１８５】
これらの条件が充足されることにより、実画像と人工画像の差異を小さくしつつ、より安定した推定結果を出力できるような属性推定器が学習できる。
【０１８６】
この結果、属性値が既知の実画像が一切得られないような場合であっても、人工シミュレータにより生成した属性値が既知の画像を用いることで、実画像の属性値を精度よく予測可能な属性推定器を学習することができる。
【０１８７】
また、属性値が既知の実画像が得られる場合には、実画像の属性値を従来よりも精度よく予測可能な属性推定器を学習することができる。
【０１８８】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１８９】
例えば、上述の実施の形態では、第１の種類の画像が、人工画像であり、第２の種類の画像が、実画像である場合を例に説明したが、これに限定されるものではなく、第１の種類の画像が、属性値が既知の実画像であり、第２の種類の画像が、属性値が未知の人工画像であってもよい。この場合には、上述の実施の形態において、実画像を人工画像と読み替え、人工画像を実画像と読み替えて同様に処理すればよい。また、属性推定処理においても、属性値が未知の人工画像である第１の種類の画像を入力とし、第２画像変換器を用いて第２の種類の画像のドメインに合わせるように変換し、第１属性推定器を用いて属性値を推定すればよい。このように、属性値が既知の実画像を有する場合であっても、本発明を適用し得る。
【０１９０】
また、第１画像記憶装置１１０及び第２画像記憶装置１２０を属性推定装置１００の外部、記憶部１３０が属性推定装置１００の内部にある構成としたが、これに限定されるものではなく、第１画像記憶装置１１０、第２画像記憶装置１２０、及び記憶部１３０は、それぞれ属性推定装置１００の内部にある構成、外部にある構成としてよい。
【０１９１】
上述の実施の形態では、第２学習部１０４は、第１画像変換器及び第２画像変換器のいずれも用いて人工画像又は実画像を相互に変換して学習する構成としたが、これに限定されるものではなく、人工画像又は実画像どちらか一方に合わせるように、いずれか一方を変換する構成としてもよい。これは、人工画像と実画像とが異なるドメインであり、異なるドメインの学習データを用いるとうまく学習ができない場合があることを考慮し、学習データである第１の種類の画像と第２の種類の画像とのドメインを合わせるためである。実画像に変換しても人工画像に変換しても成立するが、属性値が既知である実画像を学習データとして得ることができない場合には、人工画像に合わせるように構成してもよい。
【０１９２】
また、上述の実施の形態では、属性推定処理において、第１属性推定器を用いて入力された画像の属性値を推定する構成としたが、これに限定されるものではなく、第２属性推定器を用いて画像の属性値を推定する構成としてもよい。この場合、上記式（２８）において、第１属性推定器のパラメータθの代わりに、第２属性推定器のパラメータηを用いる構成とすればよい。
【０１９３】
また、属性推定装置１００が備える各部は、演算処理装置、記憶装置等を備えたコンピュータやサーバ等により構成して、各部の処理がプログラムによって実行されるものとしてもよい。この場合、当該プログラムは、属性推定装置１００が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。もちろん、その他いかなる構成要素についても、単一のコンピュータやサーバによって実現しなければならないものではなく、ネットワークによって接続された複数のコンピュータに分散して処理を実現しても構わない。
【０１９４】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【０１９５】
１０   バス
１１   ＣＰＵ
１２   メモリ
１３   通信ＩＦ部
１４   入力部
１５   表示部
１６   記憶部
１７   プログラム
５０   ネットワーク
１００ 属性推定装置
１０１ 画像変換部
１０２ 学習部
１０３ 第１学習部
１０４ 第２学習部
１０５ 第１属性推定部
１０６ 第２属性推定部
１０７ 入力部
１０８ 出力部
１１０ 第１画像記憶装置
１２０ 第２画像記憶装置
１３０ 記憶部
【図１】
2020144411.tif 000032
【図２】
2020144411.tif 000033
【図３】
2020144411.tif 000034
【図４】
2020144411.tif 000035
【図５】
2020144411.tif 000036
【図６】
2020144411.tif 000037