(57)【要約】      （修正有）【課題】物体検出処理、姿勢検出処理等を実行するときに用いられる学習済みモデルを取得するために、学習処理時に必要となる学習用データを短時間に多量に取得できる学習用データ生成システムを提供する。【解決手段】学習用データ生成システムは、３次元空間を撮像して得た背景画像を取得する。また、物体の形状およびテクスチャーの少なくとも１つを含むコンピュータグラフィックス処理用のデータであるＣＧ物体生成用データを取得する。取得したＣＧ物体生成用データに基づいてＣＧ物体画像を生成する。３次元空間内での所定の位置にＣＧ物体が配置されるように、ＣＧ物体画像を背景画像に合成することで得られるレンダリング画像を学習用画像として取得する。【選択図】図２
2020119127.tif 000002
【特許請求の範囲】
【請求項１】
所定の３次元空間を撮像して取得した背景画像を取得する背景画像取得ステップと、
物体の形状およびテクスチャーの少なくとも１つを含むコンピュータグラフィックス処理用のデータであるＣＧ物体生成用データを取得し、取得した前記ＣＧ物体生成用データに基づいて生成されるＣＧ物体を、前記背景画像の撮像対象とした前記３次元空間内の所定の座標位置に配置されるように前記背景画像に合成することで取得される画像であるレンダリング画像を学習用画像データとして取得する学習用画像データ取得ステップと、
を備える学習用データ生成方法。
【請求項２】
前記学習用画像データから、前記レンダリング画像上において、前記ＣＧ物体を囲む領域である２次元バウンディング領域を設定し、前記２次元バウンディングの座標情報を学習用位置ラベルとして取得する学習用位置ラベル取得ステップをさらに備える、
請求項１に記載の学習用データ生成方法。
【請求項３】
前記学習用画像データから、前記レンダリング画像上において、前記ＣＧ物体を囲む画像領域を抽出することで取得した画像であるクロップ画像を姿勢検出用画像データとして取得する姿勢検出用画像データ取得ステップと、
前記姿勢検出用画像データに含まれる前記ＣＧ物体の姿勢に関する情報と前記姿勢検出用画像データとを対応付けたデータを姿勢検出用学習データとして取得する姿勢検出用学習データ取得ステップと、
をさらに備える、
請求項１に記載の学習用データ生成方法。
【請求項４】
前記学習用画像データ取得ステップは、
前記背景画像に実物の処理対象物体が含まれている場合、当該処理対象物体を含む画像領域以外の画像領域に、前記ＣＧ物体が配置されるように前記レンダリング画像を生成する、
請求項１から３のいずれかに記載の学習用データ生成方法。
【請求項５】
前記背景画像は、第１物体を含む画像であり、
前記ＣＧ物体は、少なくとも一部が前記第１物体の表面上に配置されるように、前記背景画像に合成される、
請求項１に記載の学習用データ生成方法。
【請求項６】
前記背景画像取得ステップは、前記背景画像に、第１物体を含む画像を合成することで第１背景画像を取得し、
前記ＣＧ物体は、少なくとも一部が前記第１物体の表面上に配置されるように、前記第１背景画像に合成される、
請求項１に記載の学習用データ生成方法。
【請求項７】
前記ＣＧ物体は、前記第１物体において鍵穴を形成する形状を有している、
請求項５または６に記載の学習用データ生成方法。
【請求項８】
請求項１から７のいずれかに記載の学習用データ生成方法をコンピュータに実行させるためのプログラム。
【請求項９】
所定の３次元空間を撮像して取得した背景画像を取得する背景画像データ取得部と、
物体の形状およびテクスチャーの少なくとも１つを含むコンピュータグラフィックス処理用のデータであるＣＧ物体生成用データを取得し、取得した前記ＣＧ物体生成用データに基づいて生成されるＣＧ物体を、前記背景画像の撮像対象とした前記３次元空間内の所定の座標位置に配置されるように前記背景画像に合成することで取得される画像であるレンダリング画像を学習用画像データとして取得する学習用画像データ取得部と、
を備える学習用データ生成装置。
【請求項１０】
請求項５から７のいずれかに記載の学習用データ生成方法により取得した学習用データを用いて、学習処理を実行することで、学習済みモデルを取得する学習済みモデル取得ステップと、
前記第１物体の表面上に配置されている所定の形状を含む画像を入力とし、前記学習済みモデルによる予測処理を実行することで、前記所定の形状の位置を特定するためのデータを出力する予測処理ステップと、
を備える推論処理方法。
【請求項１１】
前記所定の形状の位置を特定するためのデータの検出精度を判定する検出精度判定ステップと、
前記第１物体の表面上に配置されている所定の形状を含む画像を撮像する撮像装置の撮影パラメータを調整する撮影パラメータ調整ステップと、
をさらに備え、
前記所定の形状の位置を特定するためのデータの検出精度が所定の閾値よりも低い場合、
前記撮影パラメータ調整ステップが前記撮像装置の前記撮影パラメータを変更した後、前記予測処理ステップは、前記予測処理を実行する、
請求項１０に記載の推論処理方法。
【請求項１２】
請求項１０または１１に記載の推論処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体検出処理、姿勢検出処理等に用いられる学習用データを自動生成する技術に関する。
【背景技術】
【０００２】
従来から、各種の物体を把持したり搬送したりするための装置が知られている（例えば、特許文献１を参照）。このような装置において、多様な形状を有する物体を効率良く把持し、運搬するために、多様な技術が開発されている。例えば、特許文献２には、物体を把持するピッキングロボットのピッキング動作を撮影した画像と、そのときのピッキングロボットの動作状態を示す情報とを学習用データとして、学習処理を実行することで、多様な形状を有する物体を効率良く把持し、運搬することを可能にする技術の開示がある。
【０００３】
多様な形状を有する物体を効率良く把持し、運搬するためには、把持しようとする対象の物体を検出する処理（物体検出処理）や対象物体の姿勢を検出する処理（姿勢検出処理）を高精度に実行することが重要である。近年、深層学習技術等に代表される機械学習技術を用いて、物体検出処理等を高精度に実行するための技術が開発されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１８−５０４３３３号公報
【特許文献２】特開２０１８−８３２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
機械学習技術を用いて、物体検出処理等を高精度に実行するためには、多量の学習用データを用いた学習処理を実行し、高精度の学習済みモデルを取得する必要がある。例えば、多様な物体に対して物体検出処理や姿勢検出処理を行う学習済みモデルを取得するためには、多量の学習用データが必要となる。通常、物体検出処理や姿勢検出処理を行う学習済みモデルを取得するためには、対象物体を撮像した画像を取得し、当該画像に撮像されている対象物体の位置情報や姿勢情報を手動で特定し、特定した位置情報や姿勢情報と、撮像した画像とをセットにして、学習用データとする。
【０００６】
しかしながら、このような手法により学習用データを取得する場合、手動で対象物体の位置情報や姿勢情報を特定する作業が必要となるため、短時間に多量の学習用データを取得することは困難である。
【０００７】
そこで、本発明は、上記課題に鑑み、物体検出処理、姿勢検出処理等を実行するときに用いられる学習済みモデルを取得するために、学習処理時に必要となる学習用データを短時間に多量に取得できる学習用データ生成方法を実現することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、第１の発明は、背景画像取得ステップと、学習用画像データ取得ステップと、を備える学習用データ生成方法である。
【０００９】
背景画像取得ステップは、所定の３次元空間を撮像して取得した背景画像を取得する。
【００１０】
学習用画像データ取得ステップは、物体の形状およびテクスチャーの少なくとも１つを含むコンピュータグラフィックス処理用のデータであるＣＧ物体生成用データを取得し、取得したＣＧ物体生成用データに基づいて生成されるＣＧ物体を、背景画像の撮像対象とした３次元空間内の所定の座標位置に配置されるように背景画像に合成することで取得される画像であるレンダリング画像を学習用画像データとして取得する。
【００１１】
この学習用データ生成方法では、背景画像を取得した３次元空間内での３次元位置が分かっているＣＧ物体を、背景画像にレンダリングして学習用画像を取得するので、例えば、当該学習用画像において、各ＣＧ物体の位置や姿勢を特定する学習用位置ラベルや学習用姿勢ラベルを取得することで、極めて正確な教師データを取得することができる。つまり、各ＣＧ物体は、ＣＧ処理により生成したものであるので、各ＣＧ物体を背景画像上に投影したとき、各ＣＧ物体が占める画像領域がどこになるのか、各ＣＧ物体の姿勢（向き）はどのようになっているかを計算により正確に求めることができる。その結果、学習用データ生成方法で取得された学習用画像データを用いて生成した、各ＣＧ物体の位置や姿勢を特定する学習用位置ラベルや学習用姿勢ラベルは、極めて正確なものとなる。
【００１２】
さらに、この学習用データ生成方法では、ＣＧ処理により、人手を介することなく、自動でＣＧ物体を生成することができる。そして、この学習用データ生成方法では、生成したＣＧ物体を背景画像に投影することで（レンダリング処理を行うことで）、短時間に多量の学習用画像Ｉｍｇ１を生成することができる。
【００１３】
したがって、学習用データ生成方法により、物体検出処理や姿勢検出等を実行するときに用いられる学習済みモデルを取得するために、学習処理時に必要となる学習用データを短時間に多量に取得することができる。
【００１４】
そして、この学習用データ生成方法により取得された、多量であり、かつ、極めて正確な教師データを用いて、学習処理を行うことで、例えば、物体検出処理や姿勢検出等を実行するときに用いられる学習済みモデルを高精度に、かつ、効率的に取得することでできる。
【００１５】
なお、「背景画像に合成する」ために、例えば、３Ｄ（３次元）座標データを射影変換して２Ｄ（２次元）データを取得すればよい。
【００１６】
第２の発明は、第１の発明であって、学習用位置ラベル取得ステップをさらに備える。
【００１７】
学習用位置ラベル取得ステップは、学習用画像データから、レンダリング画像上において、ＣＧ物体を囲む領域である２次元バウンディング領域を設定し、２次元バウンディングの座標情報を学習用位置ラベルとして取得する。
【００１８】
これにより、この学習用データ生成方法では、ＣＧ処理により生成したＣＧ物体を背景画像上にレンダリングして合成することで取得した学習用画像（レンダリング画像）と、学習用画像（レンダリング画像）上において、各ＣＧ物体の位置を特定する学習用位置ラベル（各ＣＧ物体の２Ｄバウンディングボックスの座標データ）とを取得することができる。この学習用データ生成方法では、３次元空間内での３次元位置が分かっているＣＧ物体を、背景画像にレンダリングして学習用画像を取得し、当該学習用画像において、各ＣＧ物体の位置を特定する学習用位置ラベル（例えば、各ＣＧ物体の２Ｄバウンディングボックスの座標データ）を特定するので、極めて正確な教師データを取得することができる。つまり、各ＣＧ物体は、この学習用データ生成方法において、ＣＧ処理により生成したものであるので、各ＣＧ物体を背景画像上に投影したとき、各ＣＧ物体が占める画像領域がどこになるのかを計算により正確に求めることができる。その結果、各ＣＧ物体の位置を特定する学習用位置ラベル（各ＣＧ物体の２Ｄバウンディングボックスの座標データ）は、極めて正確なものとなる。
【００１９】
さらに、この学習用データ生成方法では、ＣＧ処理により、人手を介することなく、自動でＣＧ物体を生成することができる。そして、この学習用データ生成方法では、生成したＣＧ物体を背景画像に投影することで（レンダリング処理を行うことで）、短時間に多量の学習用画像Ｉｍｇ１と、学習用位置ラベル（各ＣＧ物体の２Ｄバウンディングボックスの座標データ）とを生成することができる。
【００２０】
したがって、この学習用データ生成方法では、物体検出処理等を実行するときに用いられる学習済みモデルを取得するために、学習処理時に必要となる学習用データを短時間に多量に取得することができる。
【００２１】
そして、この学習用データ生成方法により取得された、多量であり、かつ、極めて正確な教師データを用いて、学習処理を行うことで、例えば、物体検出処理を実行するときに用いられる学習済みモデルを高精度に、かつ、効率的に取得することでできる。
【００２２】
第３の発明は、第１の発明であって、姿勢検出用画像データ取得ステップと、姿勢検出用学習データ取得ステップと、をさらに備える。
【００２３】
姿勢検出用画像データ取得ステップは、学習用画像データから、レンダリング画像上において、ＣＧ物体を囲む画像領域を抽出することで取得した画像であるクロップ画像を姿勢検出用画像データとして取得する。
【００２４】
姿勢検出用学習データ取得ステップは、姿勢検出用画像データに含まれるＣＧ物体の姿勢に関する情報と姿勢検出用画像データとを対応付けたデータを姿勢検出用学習データとして取得する。
【００２５】
この学習用データ生成方法では、ＣＧ処理により生成したＣＧ物体を背景画像上にレンダリングして合成することで取得したレンダリング画像から、ＣＧ物体毎に取得したクロップ画像と、当該クロップ画像内のＣＧ物体の姿勢を特定する姿勢ラベルとを取得することができる。
【００２６】
この学習用データ生成方法では、３次元空間内での３次元位置、姿勢が分かっているＣＧ物体を、背景画像にレンダリングしてレンダリング画像を取得し、当該レンダリング画像において、各ＣＧ物体の位置を特定する２Ｄバウンディングボックスで規定される領域をクロップ領域に特定するので、各ＣＧ物体を含むクロップ画像を極めて正確に取得することができる。
【００２７】
さらに、クロップ画像に含まれるＣＧ物体は、学習用データ生成方法においてＣＧ処理により生成したものであるので、各ＣＧ物体を背景画像上に投影したとき、各ＣＧ物体の姿勢がどのようになるのかを計算により正確に求めることができる。その結果、クロップ画像上において、各ＣＧ物体の姿勢を特定する学習用姿勢ラベル（各ＣＧ物体のクロップ画像上での姿勢を特定するデータ（例えば、クラスの番号））は、極めて正確なものとなる。
【００２８】
さらに、この学習用データ生成方法では、ＣＧ処理により、人手を介することなく、自動でＣＧ物体を生成することができる。そして、この学習用データ生成方法では、生成したＣＧ物体を背景画像に投影することで（レンダリング処理を行うことで）、短時間に多量の学習用画像（各ＣＧ物体のクロップ画像）と、学習用姿勢ラベル（各ＣＧ物体のクロップ画像上での姿勢を特定するデータ（例えば、クラスの番号））とを生成することができる。
【００２９】
したがって、この学習用データ生成方法では、姿勢検出処理等を実行するときに用いられる学習済みモデルを取得するために、学習処理時に必要となる学習用データを短時間に多量に取得することができる。
【００３０】
そして、この学習用データ生成方法により取得された、多量であり、かつ、極めて正確な教師データを用いて、学習処理を行うことで、例えば、姿勢検出処理を実行するときに用いられる学習済みモデルを高精度に、かつ、効率的に取得することでできる。
【００３１】
第４の発明は、第１から第３のいずれかの発明であって、学習用画像データ取得ステップは、背景画像に実物の処理対象物体が含まれている場合、当該処理対象物体を含む画像領域以外の画像領域に、ＣＧ物体が配置されるようにレンダリング画像を生成する。
【００３２】
これにより、この学習用データ生成方法では、例えば、手動で設定された２Ｄバウンディングボックスの画像領域（実物の処理対象物体が含まれている画像領域）以外の領域に、ＣＧ物体をレンダリングすることで、学習用データを生成する処理を実行することができる。
【００３３】
第５の発明は、第１の発明であって、背景画像は、第１物体を含む画像である。
【００３４】
ＣＧ物体は、少なくとも一部が第１物体の表面上に配置されるように、背景画像に合成される。
【００３５】
これにより、この学習用データ生成方法では、少なくとも一部が第１物体の表面上に配置される背景画像による学習用データを生成することができる。
【００３６】
なお、「第１物体」とは、例えば、サイズが既知である任意の物体である。第１物体は、例えば、サイズが既知である直方体の物体である。
【００３７】
第６の発明は、第１の発明であって、背景画像取得ステップは、前記背景画像に、第１物体を含む画像を合成することで第１背景画像を取得する。
【００３８】
ＣＧ物体は、少なくとも一部が第１物体の表面上に配置されるように、第１背景画像に合成される。
【００３９】
これにより、この学習用データ生成方法では、第１物体が写っていない背景画像に対して、第１物体の画像を合成することで、実際に第１物体が写っている背景画像と同様の画像である第１背景画像を取得することができる。そして、この学習用データ生成方法では、背景画像の代わりに、第１背景画像を用いて、学習用データの生成処理を行うことができる。
【００４０】
第７の発明は、第５または第６の発明であって、ＣＧ物体は、第１物体において鍵穴を形成する形状を有している。
【００４１】
これにより、この学習用データ生成方法では、第１物体の表面上に鍵穴を形成する形状を合成した画像による学習用データを生成することができる。
【００４２】
第８の発明は、第１から第７のいずれかの発明である学習用データ生成方法をコンピュータに実行させるためのプログラムである。
【００４３】
これにより、第１から第７のいずれかの発明と同様の効果を奏する学習用データ生成方法をコンピュータに実行させるためのプログラムを実現することができる。
【００４４】
第９の発明は、背景画像データ取得部と、学習用画像データ取得部と、を備える学習用データ生成装置である。
【００４５】
背景画像データ取得部は、所定の３次元空間を撮像して取得した背景画像を取得する。
【００４６】
学習用画像データ取得部は、物体の形状およびテクスチャーの少なくとも１つを含むコンピュータグラフィックス処理用のデータであるＣＧ物体生成用データを取得し、取得したＣＧ物体生成用データに基づいて生成されるＣＧ物体を、背景画像の撮像対象とした３次元空間内の所定の座標位置に配置されるように背景画像に合成することで取得される画像であるレンダリング画像を学習用画像データとして取得する。
【００４７】
これにより、第１の発明と同様の効果を奏する学習用データ生成装置を実現することができる。
【００４８】
第１０の発明は、学習済みモデル取得ステップと、予測処理ステップと、を備える推論処理方法である。
【００４９】
学習済みモデル取得ステップは、第５から第７のいずれかの発明である学習用データ生成方法により取得した学習用データを用いて、学習処理を実行することで、学習済みモデルを取得する。
【００５０】
予測処理ステップは、第１物体の表面上に配置されている所定の形状を含む画像を入力とし、学習済みモデルによる予測処理を実行することで、所定の形状の位置を特定するためのデータを出力する。
【００５１】
これにより、この推論処理方法では、所定の形状の位置を特定するためのデータ（推論結果データ）を取得することができる。
【００５２】
第１０の発明は、第９の発明であって、検出精度判定ステップと、撮影パラメータ調整ステップと、をさらに備える。
【００５３】
検出精度判定ステップは、所定の形状の位置を特定するためのデータの検出精度を判定する。
【００５４】
撮影パラメータ調整ステップは、第１物体の表面上に配置されている所定の形状を含む画像を撮像する撮像装置の撮影パラメータを調整する。
【００５５】
そして、所定の形状の位置を特定するためのデータの検出精度が所定の閾値よりも低い場合、撮影パラメータ調整ステップが撮像装置の撮影パラメータを変更した後、予測処理ステップは、予測処理を実行する。
【００５６】
これにより、この推論処理方法では、所定の形状の位置を特定するためのデータ（推論結果データ）の精度が不十分である場合、撮像装置の撮影パラメータを調整し、高精度に推論処理ができる可能性の高い画像を用いて、予測処理を実行することができる。
【００５７】
なお、第１物体の大きさ（実際の大きさ）が既知である場合、（１）撮像装置の焦点距離（撮影パラメータの一例）と、（２）当該焦点距離により撮像装置で撮像した画像（撮像画像）における、全画像領域に対する対象物体（第１物体）に相当する画像領域が占有する割合とから、撮像装置から対象物体（第１物体）までの３次元距離を取得することができる。したがって、予測処理ステップでは、上記のようにして取得した撮像装置から対象物体（第１物体）までの３次元距離も用いて、予測処理が実行されるものであってもよい。
【００５８】
第１１の発明は、第９または第１０の発明である推論処理方法をコンピュータに実行させるためのプログラムである。
【００５９】
これにより、第９または第１０の発明と同様の効果を奏する推論処理方法をコンピュータに実行させるためのプログラムを実現することができる。
【発明の効果】
【００６０】
本発明によれば、物体検出処理、姿勢検出処理等を実行するときに用いられる学習済みモデルを取得するために、学習処理時に必要となる学習用データを短時間に多量に取得できる学習用データ生成方法を実現することができる。
【図面の簡単な説明】
【００６１】
【図１】第１実施形態に係る学習用データ生成システム１０００の概略構成図。
【図２】物体検出処理の学習用データを生成する場合において、学習用データ生成システム１０００が実行する処理のフローチャート。
【図３】背景画像を取得するための３次元空間ＳＰ１（部屋Ｒｍ１内の３次元空間）を模式的に示した図。
【図４】背景画像Ｉｍｇ０（一例）を示す図。
【図５】Ｎ個（Ｎ＝９）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ９を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ１（レンダリング画像Ｉｍｇ１）を示す図。
【図６】Ｎ個（Ｎ＝９）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ９を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ１（レンダリング画像Ｉｍｇ１）において、各ＣＧ物体のバウンディングボックスを矩形で明示した画像を示す図。
【図７】第１実施形態の第１変形例の学習用データ生成システムにより、Ｎ個（Ｎ＝９）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ９を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ１Ａ（レンダリング画像Ｉｍｇ１Ａ）を示す図。
【図８】Ｎ個（Ｎ＝９）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ９を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ１Ａ（レンダリング画像Ｉｍｇ１Ａ）において、各ＣＧ物体のバウンディングボックスを矩形で明示した画像を示す図。
【図９】第２実施形態に係る学習用データ生成システム２０００の概略構成図。
【図１０】ＣＧ物体の姿勢を特定する方法を説明するための図。
【図１１】姿勢検出処理の学習用データを生成する場合において、学習用データ生成システム２０００が実行する処理のフローチャート。
【図１２】Ｎ個（Ｎ＝１０）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ１０を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ２（レンダリング画像Ｉｍｇ２）を示す図。
【図１３】Ｎ個（Ｎ＝１０）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ１０を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ２Ａ（レンダリング画像Ｉｍｇ２Ａ）において、各ＣＧ物体のバウンディングボックス（クロップする画像領域に相当）を矩形で明示した画像を示す図。
【図１４】Ｎ個（Ｎ＝１０）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ９のクロップ画像Ｉｍｇ＿ｃｒｏｐ（１）〜Ｉｍｇ＿ｃｒｏｐ（９）と、判定されたクラスの番号を示す図。
【図１５】第３実施形態に係る学習用データ生成システム３０００の概略構成図。
【図１６】検出対象物体（実物）Ｒｅａｌ＿ｏｂｊが写っている背景画像Ｉｍｇ０Ａを示す図。
【図１７】検出対象物体（実物）Ｒｅａｌ＿ｏｂｊが写っている背景画像Ｉｍｇ０Ａに手動で設定された２ＤバウンディングボックスＢｂｏｘ＿ｍａｎｕａｌを示した図。
【図１８】検出対象物体（実物）Ｒｅａｌ＿ｏｂｊが写っている背景画像Ｉｍｇ０Ａに、ＣＧ物体をレンダリングして取得されたレンダリング画像Ｉｍｇ３を示す図。
【図１９】第４実施形態に係る学習用データ生成システム４０００の概略構成図。
【図２０】背景画像Ｉｍｇ４を示す図。
【図２１】背景画像Ｉｍｇ４を示す図。
【図２２】学習用データ生成システム４０００が実行する処理のフローチャート。
【図２３】抽出画像に鍵穴を合成する処理を説明するための図。
【図２４】抽出画像に鍵穴を合成する処理を説明するための図。
【図２５】第４実施形態に係る学習推論処理システムＳｙｓ１の概略構成図。
【図２６】第４実施形態に係る学習処理装置２００の概略構成図。
【図２７】第４実施形態に係る推論処理装置３００の概略構成図。
【図２８】推論処理装置３００の推論処理のフローチャート。
【図２９】入力画像Ｉｍｇ５を示す図。
【図３０】ズーム画像についての説明図。
【図３１】ＣＰＵバス構成を示す図。
【発明を実施するための形態】
【００６２】
［第１実施形態］
第１実施形態について、図面を参照しながら、以下、説明する。
【００６３】
＜１．１：学習用データ生成システムの構成＞
図１は、第１実施形態に係る学習用データ生成システム１０００の概略構成図である。
【００６４】
学習用データ生成システム１０００は、図１に示すように、背景画像データ格納部ＤＢ１と、学習用データ生成装置１００と、学習用データ格納部ＤＢ２とを備える。
【００６５】
背景画像データ格納部ＤＢ１は、所定の３次元空間を撮像して取得された背景画像データを格納するための機能部である。背景画像データ格納部ＤＢ１は、例えば、データベースにより実現される。背景画像データ格納部ＤＢ１には、所定の３次元空間を撮像して取得した画像と、当該画像を取得したときの撮像対象の３次元空間を特定するための情報（例えば、撮影パラメータ（撮像点（カメラの位置（例えば、撮像素子の撮像素子面の中心点））、焦点位置、焦点距離、画角、視野角、カメラ光学系の光軸等））とが格納される。
【００６６】
学習用データ生成装置１００は、図１に示すように、背景画像データ取得部１と、ＣＧ処理部２（ＣＧ：Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）と、レンダリング処理部３と、学習用データ生成部４とを備える。
【００６７】
背景画像データ取得部１は、背景画像データ格納部ＤＢ１から、所定の背景画像データ（背景画像と当該背景画像を取得したときの撮像対象の３次元空間を特定するための情報とを含むデータ）を取得する。そして、背景画像データ取得部１は、背景画像データから抽出した背景画像をデータＤ１としてレンダリング処理部３に出力する。また、背景画像データ取得部１は、背景画像データから抽出した背景画像を取得したときの撮像対象の３次元空間を特定するための情報（３次元空間の形状情報）をデータＩｎｆｏ＿３Ｄ＿ｓｐａｃｅとして、ＣＧ処理部２およびレンダリング処理部３に出力する。
【００６８】
ＣＧ処理部２は、背景画像を撮像した３次元空間に配置するＣＧ物体（ＣＧにより生成される物体）を生成し、当該ＣＧ物体を背景画像に合成するために必要なデータを生成する処理部である。ＣＧ処理部２は、図１に示すように、３Ｄ配置座標決定部２１と、姿勢決定部２２と、衝突検出部２３と、テクスチャー設定部２４と、３Ｄ−２Ｄ変換部２５とを備える。
【００６９】
３Ｄ配置座標決定部２１は、データＩｎｆｏ＿３Ｄ＿ｓｐａｃｅにより特定される３次元空間内に配置させるＣＧ物体（ＣＧにより生成したオブジェクト）の座標情報を取得する。例えば、３Ｄ配置座標決定部２１は、乱数を使用して、上記３次元空間内に配置させるＣＧ物体の座標情報を取得する。
【００７０】
姿勢決定部２２は、データＩｎｆｏ＿３Ｄ＿ｓｐａｃｅにより特定される３次元空間内に配置させるＣＧ物体の姿勢を決定するための情報を取得する。
【００７１】
衝突検出部２３は、データＩｎｆｏ＿３Ｄ＿ｓｐａｃｅにより特定される３次元空間内に配置させるＣＧ物体が複数ある場合、各ＣＧ物体が物理的に配置できない領域に配置されるように設定されていないかを検出する。
【００７２】
テクスチャー設定部２４は、各ＣＧ物体の表面に貼り付けるテクスチャーを設定する。なお、テクスチャー設定部２４は、例えば、複数のパターンのテクスチャーのデータを保持しており、任意のパターンごとにテクスチャーを設定することができる。
【００７３】
３Ｄ−２Ｄ変換部２５は、データＩｎｆｏ＿３Ｄ＿ｓｐａｃｅにより特定される３次元空間内に配置させるＣＧ物体を、背景画像に合成する場合の当該背景画像上の２次元座標を、当該ＣＧ物体の３次元空間内の３次元座標を３Ｄ−２Ｄ変換（射影変換）することで取得する。
【００７４】
ＣＧ処理部２は、ＣＧ処理部２に含まれる上記の各機能部により取得した情報を含むデータをデータＤａｔａ＿ＣＧ＿ｏｂｊとして、レンダリング処理部３に出力する。また、ＣＧ処理部２は、ＣＧ処理部２により生成されたＣＧ物体を背景画像上に表示させた場合に、当該ＣＧ物体を囲む画像領域の境界を規定するバウンディングボックスの情報を学習用データ生成部４に出力する。なお、ＣＧ処理部２によりＮ個（Ｎ：自然数）のＣＧ物体が生成された場合、ｉ番目（ｉ：自然数、１≦ｉ≦Ｎ）のＣＧ物体のバウンディングボックスの情報を「Ｄａｔａ＿ｆｏｒ＿ｔｒａｉｎｉｎｇ（ＢＢｏｘ（ｉ））」と表記する。
【００７５】
レンダリング処理部３は、背景画像データ取得部１から出力される背景画像Ｄ１およびデータＩｎｆｏ＿３Ｄ＿ｓｐａｃｅと、ＣＧ処理部２から出力されるデータＤａｔａ＿ＣＧ＿ｏｂｊとを入力する。レンダリング処理部３は、データＩｎｆｏ＿３Ｄ＿ｓｐａｃｅと、データＤａｔａ＿ＣＧ＿ｏｂｊとに基づいて、ＣＧ処理部２により生成されたＣＧ物体を、背景画像Ｄ１に合成することで、合成画像データＤ２（合成画像Ｉｍｇ１の画像データ）を取得し、取得した合成画像データＤ２を学習用データ生成部４に出力する。
【００７６】
学習用データ生成部４は、レンダリング処理部３から出力される合成画像データＤ２と、ＣＧ処理部２から出力されるＣＧ物体のバウンディングボックスの情報を含むデータＤａｔａ＿ｃｏｏｒｄｉｎａｔｅ（ＢＢｏｘ（ｉ））とを入力する。学習用データ生成部４は、入力されたデータから学習用データを生成し、生成したデータをデータＤｏｕｔとして、例えば、学習用データ格納部ＤＢ２に出力する。
【００７７】
学習用データ格納部ＤＢ２は、学習用データ生成部４から出力されるデータＤｏｕｔを入力し、当該データを記憶保持する。学習用データ格納部ＤＢ２は、例えば、データベースにより実現される。
【００７８】
なお、「学習用画像データ取得部」は、ＣＧ処理部２と、レンダリング処理部３と、学習用データ生成部４により、実現される機能部である。
【００７９】
＜１．２：学習用データ生成システムの動作＞
以上のように構成された学習用データ生成システム１０００の動作について、以下、説明する。
【００８０】
なお、以下では、学習用データ生成システム１０００において、物体検出処理の学習用データを生成する場合について、説明する。また、説明便宜のため、物体検出処理における検出対象の物体が、略直方体の形状を有しているものとする。
【００８１】
図２は、物体検出処理の学習用データを生成する場合において、学習用データ生成システム１０００が実行する処理のフローチャートである。
【００８２】
図３は、背景画像を取得するための３次元空間ＳＰ１（部屋Ｒｍ１内の３次元空間）を模式的に示した図である。図３は、部屋Ｒｍ１を上方から見た図であり、部屋Ｒｍ１内に、カメラＣａｍ１が配置されており、３次元空間（撮像対象空間）ＳＰ１を、画角α、カメラＣａｍ１の光学系の光軸を光軸Ａｘ１として撮像することで、背景画像Ｉｍｇ０（一例）を取得（撮像）するものとする。また、図３に示すように、ｘ軸、ｙ軸、ｚ軸が設定されるものとする。
【００８３】
図４は、背景画像Ｉｍｇ０（一例）を示す図である。
【００８４】
（ステップＳ１１）：
ステップＳ１１において、背景画像データ取得部１は、背景画像データ格納部ＤＢ１から１つの背景画像データを取得する。なお、説明便宜のため、背景画像データ取得部１は、背景画像データ格納部ＤＢ１から、図３の状況によりカメラＣａｍ１により撮像された背景画像Ｉｍｇ０（図４）を取得するものとし、以下、この場合について、説明する。
【００８５】
（ステップＳ１２〜Ｓ１４）：
ステップＳ１２において、ＣＧ処理部２は、ＣＧ物体を３次元空間ＳＰに配置するときに、ＣＧ物体が積み重なった状態で配置される最大の数を設定し、当該数を超えた数でＣＧ物体が積み重なった状態とならないようにする。
【００８６】
テクスチャー設定部２４は、各ＣＧ物体の表面に貼り付けるテクスチャーを設定する。なお、本実施形態では、１つのパターンのテクスチャーを各ＣＧ物体に貼り付けるものとする。つまり、ＣＧ処理部２により、１種類のＣＧ物体が生成されるものとする。
【００８７】
３Ｄ配置座標決定部２１は、データＩｎｆｏ＿３Ｄ＿ｓｐａｃｅにより特定される３次元空間ＳＰ１内に配置させるＣＧ物体（ＣＧにより生成したオブジェクト）の形状情報（３次元座標情報）を取得する。３Ｄ配置座標決定部２１は、乱数を使用して、３次元空間ＳＰ１内に配置させるＣＧ物体の座標情報を取得する（ステップＳ１３）。なお、ＣＧ物体は、Ｎ個生成されるものとし、ｉ番目のＣＧ物体の３次元空間ＳＰ１内の座標情報を３Ｄ＿ｃｏｏｒｄｉｎａｔｅ（ｉ）と表記する。そして、ｉ番目のＣＧ物体の３次元空間ＳＰ１内の座標情報３Ｄ＿ｃｏｏｒｄｉｎａｔｅ（ｉ）は、例えば、ｉ番目のＣＧ物体（略直方体）の６つの頂点の３次元空間ＳＰ１内の３次元座標のデータを含むデータである。
【００８８】
また、姿勢決定部２２は、ＣＧ物体の姿勢（ＣＧ物体の向き）を、乱数を使用して、決定する（ステップＳ１３）。
【００８９】
衝突検出部２３は、上記のようにして３次元空間ＳＰ１内に配置されたＮ個のＣＧ物体の中で、各ＣＧ物体が物理的に配置できない領域に配置されているものがないか検出する（ステップＳ１４）。そして、検出の結果、物理的に配置できない領域に配置されているＣＧ物体が存在していると判定された場合、物理的に配置できない領域に配置されているＣＧ物体の配置を取り消し、処理をステップＳ１３に戻す。一方、物理的に配置できない領域に配置されているＣＧ物体が存在していないと判定された場合、３次元空間ＳＰ１内に配置したＮ個のＣＧ物体は、すべて物理的に配置可能な領域に配置されているので、処理をステップＳ１５に進める。
【００９０】
（ステップＳ１５）：
ステップＳ１５において、ＣＧ処理部２により生成されたＣＧ物体（上記処理により、座標情報、姿勢等が決定されたＣＧ物体）を、背景画像Ｉｍｇ０に合成するためのレンダリング処理が実行される。
【００９１】
具体的には、３Ｄ−２Ｄ変換部２５は、データＩｎｆｏ＿３Ｄ＿ｓｐａｃｅにより特定される３次元空間ＳＰ１内に配置させるＣＧ物体を、背景画像Ｉｍｇ０に合成する場合の当該背景画像Ｉｍｇ０上の２次元座標を、当該ＣＧ物体の３次元空間ＳＰ１内の３次元座標を３Ｄ−２Ｄ変換（射影変換）することで取得する。
【００９２】
そして、レンダリング処理部３は、上記により取得した各ＣＧ物体の背景画像Ｉｍｇ０上の２次元座標に基づいて、各ＣＧ物体を３次元空間ＳＰ１から背景画像Ｉｍｇ０上の２次元空間に投影することで、各ＣＧ物体に相当する画像を、背景画像Ｉｍｇ０に合成する。なお、このとき、視線奥（カメラＣａｍ１から遠い位置）から視線手前（カメラＣａｍ１に近い位置）へ向かって順に、各ＣＧ物体の背景画像Ｉｍｇ０上へ投影して合成するレンダリング処理を行う。
【００９３】
（ステップＳ１６）：
ステップＳ１６において、学習用データ生成部４は、ステップＳ１５により取得されたレンダリング結果、すなわち、各ＣＧ物体を背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像を学習用データ（学習用画像）として、学習用データ格納部ＤＢ２に保存する。
【００９４】
図５に、一例として、Ｎ個（Ｎ＝９）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ９を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ１（レンダリング画像Ｉｍｇ１）を示す。
【００９５】
（ステップＳ１７〜Ｓ１９）：
ステップＳ１７において、ＣＧ処理部２の３Ｄ−２Ｄ変換部２５は、投影変換により、各ＣＧ物体のそれぞれの頂点の３次元座標から、レンダリング画像Ｉｍｇ１上の２次元座標を取得する。そして、３Ｄ−２Ｄ変換部２５は、各ＣＧ物体をレンダリング画像Ｉｍｇ１上において囲む領域を規定する２Ｄバウンディングボックスを決定する（ステップＳ１８）。３Ｄ−２Ｄ変換部２５は、決定した各ＣＧ物体の２Ｄバウンディングボックスを特定するための情報をデータＤａｔａ＿ｃｏｏｒｄｉｎａｔｅ（Ｂｂｏｘ（ｉ））として学習用データ生成部４に出力する。なお、「Ｂｂｏｘ（ｉ）」は、ｉ番目のＣＧ物体の２Ｄバウンディングボックスを示す表記であるものとする。
【００９６】
学習用データ生成部４は、ステップＳ１８で取得したＣＧ物体のバウンディングボックスの情報を含むデータＤａｔａ＿ｃｏｏｒｄｉｎａｔｅ（Ｂｂｏｘ（ｉ））（学習用位置ラベル）を学習用データ格納部ＤＢ２に出力し、学習用データ格納部ＤＢ２に保存する（ステップＳ１９）。
【００９７】
図６に、一例として、Ｎ個（Ｎ＝９）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ９を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ１（レンダリング画像Ｉｍｇ１）において、各ＣＧ物体のバウンディングボックスを矩形で明示した画像を示す。
【００９８】
以上により、学習用データ生成システム１０００では、ＣＧ処理部により生成したＣＧ物体を背景画像Ｉｍｇ０上にレンダリングして合成することで取得した学習用画像（レンダリング画像Ｉｍｇ１）と、学習用画像（レンダリング画像Ｉｍｇ１）上において、各ＣＧ物体の位置を特定する学習用位置ラベル（各ＣＧ物体の２Ｄバウンディングボックスの座標データ）とを取得することができる。学習用データ生成システム１０００では、３次元空間ＳＰ１内での３次元位置が分かっているＣＧ物体を、背景画像Ｉｍｇ０にレンダリングして学習用画像Ｉｍｇ１を取得し、当該学習用画像Ｉｍｇ１において、各ＣＧ物体の位置を特定する学習用位置ラベル（各ＣＧ物体の２Ｄバウンディングボックスの座標データ）を特定するので、極めて正確な教師データを取得することができる。つまり、各ＣＧ物体は、学習用データ生成装置１００のＣＧ処理部２により生成したものであるので、各ＣＧ物体を背景画像Ｉｍｇ０上に投影したとき、各ＣＧ物体が占める画像領域がどこになるのかを計算により正確に求めることができる。その結果、各ＣＧ物体の位置を特定する学習用位置ラベル（各ＣＧ物体の２Ｄバウンディングボックスの座標データ）は、極めて正確なものとなる。
【００９９】
さらに、学習用データ生成システム１０００では、ＣＧ処理部２により、人手を介することなく、自動でＣＧ物体を生成することができる。そして、学習用データ生成システム１０００では、生成したＣＧ物体を背景画像に投影することで（レンダリング処理を行うことで）、短時間に多量の学習用画像Ｉｍｇ１と、学習用位置ラベル（各ＣＧ物体の２Ｄバウンディングボックスの座標データ）とを生成することができる。
【０１００】
したがって、学習用データ生成システム１０００では、物体検出処理等を実行するときに用いられる学習済みモデルを取得するために、学習処理時に必要となる学習用データを短時間に多量に取得することができる。
【０１０１】
そして、学習用データ生成システム１０００により取得された、多量であり、かつ、極めて正確な教師データを用いて、学習処理を行うことで、例えば、物体検出処理を実行するときに用いられる学習済みモデルを高精度に、かつ、効率的に取得することでできる。
【０１０２】
≪第１変形例≫
次に、第１実施形態の第１変形例について、説明する。
【０１０３】
なお、第１実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
【０１０４】
本変形例の学習用データ生成システムでは、ＣＧ物体のテクスチャーを複数種類にする点が、第１実施形態とは相違する。
【０１０５】
図７は、第１実施形態の第１変形例の学習用データ生成システムにより、Ｎ個（Ｎ＝９）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ９を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ１Ａ（レンダリング画像Ｉｍｇ１Ａ）を示す図である。
【０１０６】
図８は、Ｎ個（Ｎ＝９）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ９を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ１Ａ（レンダリング画像Ｉｍｇ１Ａ）において、各ＣＧ物体のバウンディングボックスを矩形で明示した画像を示す図である。
【０１０７】
本変形例の学習用データ生成システムにおいて、テクスチャー設定部２４は、各ＣＧ物体の表面に貼り付けるテクスチャーを設定する。
【０１０８】
例えば、ＣＧ物体の種類を２種類とすると、テクスチャー設定部２４は、各ＣＧ物体の表面に貼り付けるテクスチャーを、上記２種類（２パターン）のいずれかのパターンに設定する。例えば、テクスチャー設定部２４は、図７に示すように、ＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ３、ＣＧ＿ｏｂｊ５、ＣＧ＿ｏｂｊ８を、第１パターンのテクスチャーとし、ＣＧ物体ＣＧ＿ｏｂｊ４、ＣＧ＿ｏｂｊ６〜ＣＧ＿ｏｂｊ７、ＣＧ＿ｏｂｊ９を、第２パターンのテクスチャーに設定する。
【０１０９】
このように２種類のテクスチャーを設定した場合において、本変形例の学習用データ生成システムでは、第１実施形態と同様の処理を実行することで、図８に示すように、正確に、各ＣＧ物体のバウンディングボックスを特定する情報を取得することができる。したがって、例えば、物体検出処理の対象となる物体が多種類である場合において、本変形例の学習用データ生成システムにより、短時間で多量の学習用データ（教師データ）を生成することができる。
【０１１０】
以上のように、本変形例の学習用データ生成システムでは、テクスチャーが多様に変化させることができ、多様なテクスチャーを有するＣＧ物体を背景画像に投影することで（レンダリング処理を行うことで）、短時間に多量の学習用画像Ｉｍｇ１Ａと、学習用位置ラベル（各ＣＧ物体の２Ｄバウンディングボックスの座標データ）とを生成することができる。
【０１１１】
なお、本変形例において、テクスチャーの種類を２種類としたが、これに限定されることはなく、テクスチャーの種類は３種類であってもよい。
【０１１２】
［第２実施形態］
次に、第２実施形態について、説明する。
【０１１３】
なお、上記実施形態（変形例を含む）と同様の部分については、同一符号を付し、詳細な説明を省略する。
【０１１４】
＜２．１：学習用データ生成システム２０００の構成＞
図９は、第２実施形態に係る学習用データ生成システム２０００の概略構成図である。
【０１１５】
第２実施形態の学習用データ生成システム２０００は、第１実施形態の学習用データ生成システム１０００において、学習用データ生成装置１００を学習用データ生成装置１００Ａに置換した構成を有している。そして、学習用データ生成装置１００Ａにおいて、ＣＧ処理部２をＣＧ処理部２Ａに置換し、学習用データ生成部４を学習用データ生成部４Ａに置換した構成を有している。それ以外については、第２実施形態の学習用データ生成システム２０００は、第１実施形態の学習用データ生成システム１０００と同様である。
【０１１６】
ＣＧ処理部２Ａは、姿勢決定部２２により決定（設定）された各ＣＧ物体の姿勢（向き）で、ＣＧ物体を背景画像Ｉｍｇ０上に投影したとき、ＣＧ物体がどのような姿勢であるか（どの方向を向いているか）を特定するための情報をデータＬａｂｅｌ＿ｐｏｓｔｕｒｅとして、学習用データ生成部４Ａに出力する。なお、ｉ番目のＣＧ物体の姿勢を特定するための情報をデータＬａｂｅｌ＿ｐｏｓｔｕｒｅ（ｉ）と表記する。
【０１１７】
例えば、図１０に示すように、ＣＧ物体が直方体である場合、３ＤのＣＧ物体を２Ｄに投影変換した場合、目視できる面が３面となるので、目視できる面がどの面であるかにより、クラスを設定し、例えば、クラスの番号により、ＣＧ物体を背景画像Ｉｍｇ０上に投影したときの姿勢（向き）を特定する。例えば、図１０の場合、背景画像Ｉｍｇ０（レンダリング画像Ｉｍｇ１）上で目視できる面は、上面としてＥ面、左側面としてＡ面、右側面としてＢ面であるので、この状態を、例えば、図１０に示すように「クラス１」とする。このようにして設定したクラスの番号により、ＣＧ物体を背景画像Ｉｍｇ０上に投影したときの姿勢（向き）を特定することができる。
【０１１８】
学習用データ生成部４Ａは、レンダリング処理部３から出力されるデータＤ２（レンダリング画像Ｉｍｇ１（ＣＧ物体を背景画像Ｉｍｇ０に合成した画像））と、ＣＧ処理部２Ａから出力されるデータＤａｔａ＿ｃｏｏｒｄｉｎａｔｅ（Ｂｂｏｘ（ｉ））（バウンディングボックスを特定するためのデータ）およびデータＬａｂｅｌ＿ｐｏｓｔｕｒｅ（ｉ）（レンダリング画像Ｉｍｇ１での各ＣＧ物体の姿勢を特定するためのデータ）とを入力する。そして、学習用データ生成部４Ａは、入力されたデータから学習用データを生成し、生成したデータをデータＤｏｕｔとして、例えば、学習用データ格納部ＤＢ２に出力する。
【０１１９】
＜２．２：学習用データ生成システム２０００の動作＞
以上のように構成された学習用データ生成システム２０００の動作について、以下説明する。
【０１２０】
なお、以下では、学習用データ生成システム２０００において、姿勢検出処理の学習用データを生成する場合について、説明する。また、説明便宜のため、姿勢検出処理における検出対象の物体が、略直方体の形状を有しているものとする。
【０１２１】
図１１は、姿勢検出処理の学習用データを生成する場合において、学習用データ生成システム２０００が実行する処理のフローチャートである。
【０１２２】
図１２は、Ｎ個（Ｎ＝１０）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ１０を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ２（レンダリング画像Ｉｍｇ２）を示す図である。
【０１２３】
図１３は、Ｎ個（Ｎ＝１０）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ１０を、背景画像Ｉｍｇ０へ投影して合成するレンダリング処理により取得された画像Ｉｍｇ２Ａ（レンダリング画像Ｉｍｇ２Ａ）において、各ＣＧ物体のバウンディングボックス（クロップする画像領域に相当）を矩形で明示した画像を示す図である。
【０１２４】
図１４は、Ｎ個（Ｎ＝１０）のＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ９のクロップ画像Ｉｍｇ＿ｃｒｏｐ（１）〜Ｉｍｇ＿ｃｒｏｐ（９）と、判定されたクラスの番号を示す図である。
【０１２５】
（ステップＳ２１〜Ｓ２５）：
ステップＳ２１〜Ｓ２５の処理は、第１実施形態のステップＳ１１〜Ｓ１５の処理と同様である。
【０１２６】
（ステップＳ２６）：
ステップＳ２６において、ＣＧ処理部２の３Ｄ−２Ｄ変換部２５は、投影変換により、各ＣＧ物体のそれぞれの頂点の３次元座標から、レンダリング画像Ｉｍｇ２上の２次元座標を取得する。そして、３Ｄ−２Ｄ変換部２５は、各ＣＧ物体をレンダリング画像Ｉｍｇ２上において、視点（背景画像Ｉｍｇ０のカメラ位置）から見たときに他のＣＧ物体に遮蔽されているＣＧ物体を検出し、完全または一部遮蔽されていると判定されたＣＧ物体を学習データ取得対象から除外する。つまり、ステップＳ２６の処理により、遮蔽されていないＣＧ物体のみが学習データ取得対象に設定される。
【０１２７】
（ステップＳ２７）：
ステップＳ２７において、学習用データ生成部４Ａは、２Ｄバウンディングボックス（レンダリング画像上の各ＣＧ物体を囲む領域を決定するためのデータ）で規定される領域をクロップ領域に設定し、当該クロップ領域の画像を抽出する。ｉ番目のＣＧ物体のクロップ領域を抽出した画像をクロップ画像Ｉｍｇ＿ｃｒｏｐ（ｉ）と表記する。
【０１２８】
そして、学習用データ生成部４Ａにより取得されたクロップ画像Ｉｍｇ＿ｃｒｏｐ（ｉ）は、学習用画像として、学習用データ格納部ＤＢ２に保存される。
【０１２９】
（ステップＳ２８）：
ステップＳ２８において、学習用データ生成部４Ａは、ＣＧ処理部２Ａから出力されるデータＬａｂｅｌ＿ｐｏｓｔｕｒｅ（ｉ）（ｉ番目のＣＧ物体のレンダリング画像上の姿勢を示すデータ）を取得し、当該データを学習用データ格納部ＤＢ２に保存する。なお、データＬａｂｅｌ＿ｐｏｓｔｕｒｅ（ｉ）は、クロップ画像Ｉｍｇ＿ｃｒｏｐ（ｉ）に含まれるＣＧ物体の姿勢を示すデータである。
【０１３０】
本実施形態の学習用データ生成システム２０００では、図１４に示すように、ＣＧ物体ＣＧ＿ｏｂｊ１〜ＣＧ＿ｏｂｊ９のクロップ画像Ｉｍｇ＿ｃｒｏｐ（１）〜Ｉｍｇ＿ｃｒｏｐ（９）（ＣＧ物体ＣＧ＿ｏｂｊ（１０）は遮蔽されているので除外されている）を正確に取得することができ、かつ、姿勢ラベル（クロップ画像上のＣＧ物体の姿勢を特定するデータ）も正確に取得することができる。
【０１３１】
以上により、学習用データ生成システム２０００では、ＣＧ処理部により生成したＣＧ物体を背景画像Ｉｍｇ０上にレンダリングして合成することで取得したレンダリング画像Ｉｍｇ２から、ＣＧ物体毎に取得したクロップ画像と、当該クロップ画像内のＣＧ物体の姿勢を特定する姿勢ラベルとを取得することができる。
【０１３２】
学習用データ生成システム２０００では、３次元空間ＳＰ１内での３次元位置、姿勢が分かっているＣＧ物体を、背景画像Ｉｍｇ０にレンダリングしてレンダリング画像Ｉｍｇ２を取得し、当該レンダリング画像Ｉｍｇ２において、各ＣＧ物体の位置を特定する２Ｄバウンディングボックスで規定される領域をクロップ領域に特定するので、各ＣＧ物体を含むクロップ画像を極めて正確に取得することができる。
さらに、クロップ画像に含まれるＣＧ物体は、学習用データ生成装置１００ＡのＣＧ処理部２Ａにより生成したものであるので、各ＣＧ物体を背景画像Ｉｍｇ０上に投影したとき、各ＣＧ物体の姿勢がどのようになるのかを計算により正確に求めることができる。その結果、クロップ画像上において、各ＣＧ物体の姿勢を特定する学習用姿勢ラベル（各ＣＧ物体のクロップ画像上での姿勢を特定するデータ（例えば、クラスの番号））は、極めて正確なものとなる。
【０１３３】
さらに、学習用データ生成システム２０００では、ＣＧ処理部２Ａにより、人手を介することなく、自動でＣＧ物体を生成することができる。そして、学習用データ生成システム２０００では、生成したＣＧ物体を背景画像に投影することで（レンダリング処理を行うことで）、短時間に多量の学習用画像（各ＣＧ物体のクロップ画像）と、学習用姿勢ラベル（各ＣＧ物体のクロップ画像上での姿勢を特定するデータ（例えば、クラスの番号））とを生成することができる。
【０１３４】
したがって、学習用データ生成システム２０００では、姿勢検出処理等を実行するときに用いられる学習済みモデルを取得するために、学習処理時に必要となる学習用データを短時間に多量に取得することができる。
【０１３５】
そして、学習用データ生成システム２０００により取得された、多量であり、かつ、極めて正確な教師データを用いて、学習処理を行うことで、例えば、姿勢検出処理を実行するときに用いられる学習済みモデルを高精度に、かつ、効率的に取得することでできる。
【０１３６】
なお、第１実施形態の第１変形例と同様に、本実施形態の学習用データ生成システム２０００においても、ＣＧ物体のテクスチャーを複数種類（複数パターン）としてもよい。
【０１３７】
［第３実施形態］
次に、第３実施形態について説明する。
【０１３８】
図１５は、第３実施形態に係る学習用データ生成システム３０００の概略構成図である。
【０１３９】
図１６は、検出対象物体（実物）Ｒｅａｌ＿ｏｂｊが写っている背景画像Ｉｍｇ０Ａを示す図である。
【０１４０】
図１７は、検出対象物体（実物）Ｒｅａｌ＿ｏｂｊが写っている背景画像Ｉｍｇ０Ａに手動で設定された２ＤバウンディングボックスＢｂｏｘ＿ｍａｎｕａｌを示した図である。
【０１４１】
図１８は、検出対象物体（実物）Ｒｅａｌ＿ｏｂｊが写っている背景画像Ｉｍｇ０Ａに、ＣＧ物体をレンダリングして取得されたレンダリング画像Ｉｍｇ３を示す図である。
【０１４２】
なお、上記実施形態（変形例を含む）と同様の部分については、同一符号を付し、詳細な説明を省略する。
【０１４３】
第３実施形態の学習用データ生成システム３０００では、第１実施形態の学習用データ生成システム１０００の学習用データ生成装置１００において、手動バウンディングボックス情報入力部５を追加した構成となっている。
【０１４４】
学習用データ生成システム３０００では、例えば、物体検出用の学習用データを生成するために、背景画像に写っている検出対象物体（実物）の画像領域を、従来と同様に手動で設定し、２Ｄバウンディングボックスを設定しているとき、当該手動で設定されている２Ｄバウンディングボックスの情報を、手動バウンディングボックス情報入力部５により取得する。
【０１４５】
そして、学習用データ生成システム３０００では、取得した情報をレンダリング処理部３に入力し、レンダリング処理部３は、当該手動で設定されている２Ｄバウンディングボックス内の画像領域以外の領域に、ＣＧによるＣＧ物体を配置するようにする。
【０１４６】
このようにすることで、検出対象物体（実物）が写っている背景画像Ｉｍｇ０Ａを用いて、従来手法による学習データを取得するとともに、上記実施形態で説明したＣＧにより生成したＣＧ物体を用いた学習用データ取得を行うことができる。
【０１４７】
学習用データ生成システム３０００では、例えば、図１６の背景画像Ｉｍｇ０Ａを用いて処理を行う場合、図１７に示すように、手動で設定された２ＤバウンディングボックスＢｂｏｘ＿ｍａｎｕａｌの画像領域以外の領域を使用して、上記実施形態の処理を行う。
【０１４８】
このように処理することで、学習用データ生成システム３０００では、例えば、図１８に示すように、手動で設定された２ＤバウンディングボックスＢｂｏｘ＿ｍａｎｕａｌの画像領域以外の領域に、ＣＧ物体をレンダリングすることで、上記実施形態で説明した処理を実行することができる。
【０１４９】
なお、第２実施形態の学習用データ生成装置１００Ａにおいて、本実施形態と同様に、手動バウンディングボックス情報入力部５を追加し、本実施形態と同様に、手動で設定された２ＤバウンディングボックスＢｂｏｘ＿ｍａｎｕａｌの画像領域以外の領域に、ＣＧ物体をレンダリングすることで、学習用データを取得するようにしてもよい。
【０１５０】
［第４実施形態］
次に、第４実施形態について説明する。
【０１５１】
なお、上記実施形態（変形例を含む）と同様の部分については、同一符号を付し、詳細な説明を省略する。
【０１５２】
＜４．１：学習用データ生成システム４０００の構成＞
図１９は、第４実施形態に係る学習用データ生成システム４０００の概略構成図である。
【０１５３】
第４実施形態の学習用データ生成システム４０００は、第１実施形態の学習用データ生成システム１０００において、学習用データ生成装置１００を学習用データ生成装置１００Ｃに置換した構成を有している。そして、学習用データ生成装置１００Ｃにおいて、背景画像データ取得部１を背景画像データ取得部１Ａに置換し、ＣＧ処理部２をＣＧ処理部２Ｂに置換し、姿勢決定部２２を鍵情報決定部２２Ａに置換し、レンダリング処理部３をレンダリング処理部３Ａに置換し、学習用データ生成部４を学習用データ生成部４Ｂに置換した構成を有している。それ以外については、第４実施形態の学習用データ生成システム４０００は、第１実施形態の学習用データ生成システム１０００と同様である。
【０１５４】
なお、第４実施形態では、説明便宜のため、一例として、図２０、図２１に示すように、所定の空間に配置された直方体の物体を含む画像（例えば、図２１の領域Ｒ１をクロップした画像）を背景画像（ＣＧ物体の被合成画像）として、当該直方体の物体の表面に鍵穴を形成する物体（ＣＧ物体）をＣＧ合成する場合について、説明する。
【０１５５】
背景画像データ取得部１Ａは、背景画像データ格納部ＤＢ１から、所定の背景画像データと、（１）当該背景画像を取得したときの撮像対象の３次元空間を特定するための情報（３次元空間の縦・横・高さの情報等）と、（２）当該背景画像を取得したときの撮影パラメータ（カメラの焦点距離、画角等）の情報と、（３）当該背景画像に含まれる抽出対象物（鍵穴を合成する被対象物）のサイズ、形状等の情報とを取得する。なお、背景画像データ取得部１Ａは、背景画像を撮像したときの上記（１）〜（３）の情報を含むデータを、データＩｎｆｏ１として、取得する。
【０１５６】
背景画像データ取得部１Ａは、例えば、画像認識処理により抽出対象物（鍵穴を合成する被対象物）の背景画像上の領域（例えば、図２１の領域Ｒ１）を特定し、当該領域を切り出した画像を抽出画像Ｄ１Ａとして取得する。また、背景画像データ取得部１Ａは、切り出した画像領域が、撮像対象の３次元空間のどの空間に対応するかを特定するための情報を含むデータＩｎｆｏ２（Ｄ１Ａ）を取得する。
【０１５７】
そして、背景画像データ取得部１Ａは、取得したデータＤ１Ａ（抽出対象物（鍵穴を合成する被対象物）の領域を抽出した画像）をレンダリング処理部３Ａに出力するとともに、取得したデータＩｎｆｏ１およびデータＩｎｆｏ２（Ｄ１Ａ）をＣＧ処理部２Ｂおよびレンダリング処理部３Ａに出力する。
【０１５８】
ＣＧ処理部２Ｂは、背景画像を撮像した３次元空間に配置するＣＧ物体（ＣＧにより生成される物体）を生成し、当該ＣＧ物体を背景画像（背景画像データ取得部１Ａから取得される画像Ｄ１Ａ）に合成するために必要なデータを生成する処理部である。
【０１５９】
鍵情報決定部２２Ａは、ＣＧ合成するための鍵の種別を特定し、また、ＣＧ合成する鍵の形状についての３次元空間の位置情報（鍵を３次元空間にＣＧ合成により配置させたときの当該鍵の３次元位置（３次元形状）を特定するための情報）を特定する。なお、鍵の種別を特定する情報、および、鍵の３次元位置（３次元形状）を特定するための情報とは、所定の記憶部（不図示）に格納されているものとする。また、ＣＧ合成する鍵の形状についての３次元空間の位置情報は、撮影対象の３次元空間に設定される３次元座標による３次元座標（絶対座標によるデータ）であってもよいし、抽出対象物（鍵穴を合成する被対象物）を切り出した領域に相当する空間に設定される３次元座標による３次元座標（例えば、切り出した領域の所定の点（例えば、左端点）を原点とする相対座標によるデータ）であってもよい。
【０１６０】
ＣＧ処理部２Ｂは、ＣＧ物体（鍵形状のＣＧ物体）を背景画像Ｄ１Ａに合成するために必要なデータＤａｔａ＿ＣＧ＿ｏｂｊをレンダリング処理部３Ａに出力する。なお、データＤａｔａ＿ＣＧ＿ｏｂｊは、３Ｄ−２Ｄ変換部２５により、鍵情報決定部２２Ａにより特定された鍵穴形状の物体（ＣＧ物体）の３次元の位置データ（３次元座標データ）を、背景画像に合成する場合の当該背景画像上の２次元座標データに変換することで取得される。
【０１６１】
また、ＣＧ処理部２Ｂは、鍵穴形状の物体（ＣＧ物体）を背景画像に合成する場合の当該ＣＧ物体の当該背景画像上の２次元座標データ（３Ｄ−２Ｄ変換することで取得される２次元座標データ）を含む情報をデータＫｅｙ＿ｐｏｓ（ｉ）として取得する。
【０１６２】
また、ＣＧ処理部２Ｂは、鍵情報決定部２２Ａにより特定された鍵穴形状の物体（ＣＧ物体）（これをｉ番目（ｉ：自然数）のＣＧ物体とする）の鍵種別を示す情報をデータＫｅｙ＿ｔｙｐｅ（ｉ）として、鍵穴形状の物体（ＣＧ物体）の合成画像上の鍵位置を示す情報をデータＫｅｙ＿ｐｏｓ（ｉ）として、学習用データ生成部４Ｂに出力する。
【０１６３】
レンダリング処理部３Ａは、背景画像データ取得部１Ａから出力されるデータＩｎｆｏ１、データＩｎｆｏ２（Ｄ１Ａ）、および、画像データＤ１Ａ（鍵穴を合成する被対象物を抽出した画像）と、ＣＧ処理部２Ｂから出力されるデータＤａｔａ＿ＣＧ＿ｏｂｊとを入力する。
【０１６４】
レンダリング処理部３Ａは、データＩｎｆｏ１と、データＩｎｆｏ２（Ｄ１Ａ）と、データＤａｔａ＿ＣＧ＿ｏｂｊとに基づいて、ＣＧ処理部２Ｂにより生成されたＣＧ物体（鍵穴形状のＣＧ物体）を、画像Ｄ１Ａに合成することで、合成画像データＩｍｇ＿ｒｅｎｄｅｒ（ｉ）を取得し、取得した合成画像データＩｍｇ＿ｒｅｎｄｅｒ（ｉ）を学習用データ生成部４Ｂに出力する。
【０１６５】
学習用データ生成部４Ｂは、レンダリング処理部３Ａから出力される合成画像データＩｍｇ＿ｒｅｎｄｅｒ（ｉ）と、ＣＧ処理部２Ｂから出力されるＣＧ物体（鍵穴形状のＣＧ物体）の鍵種別を示す情報をデータＫｅｙ＿ｔｙｐｅ（ｉ）と、鍵穴形状の物体（ＣＧ物体）の合成画像上の鍵位置を示す情報をデータＫｅｙ＿ｐｏｓ（ｉ）とを入力する。
【０１６６】
学習用データ生成部４Ｂは、入力されたデータから学習用データを生成し、生成したデータをデータＤｏｕｔとして、例えば、学習用データ格納部ＤＢ２に出力する。なお、データＤｏｕｔは、ｉ番目のＣＧ物体のデータとして、
（１）Ｉｍｇ＿ｒｅｎｄｅｒ（ｉ）（鍵穴を合成した画像）
（２）Ｌａｂｅｌ＿ｋｅｙ（ｉ）（鍵種別の情報と鍵位置の情報とを含むラベル）
を含むデータであるものとする。
【０１６７】
学習用データ格納部ＤＢ２は、学習用データ生成部４Ｂから出力されるデータＤｏｕｔを入力し、当該データを記憶保持する。
【０１６８】
＜４．２：学習用データ生成システム４０００の動作＞
以上のように構成された学習用データ生成システム４０００の動作について、以下、説明する。
【０１６９】
なお、以下では、学習用データ生成システム４０００において、鍵穴検出処理の学習用データを生成する場合について、説明する。また、説明便宜のため、鍵穴検出処理における検出対象の物体が、略直方体の形状を有しているものとする。
【０１７０】
図２２は、鍵検出処理の学習用データを生成する場合において、学習用データ生成システム４０００が実行する処理のフローチャートである。
【０１７１】
以下では、図２２のフローチャートを参照しながら、学習用データ生成システム４０００の動作について、説明する。
【０１７２】
（ステップＳ３１）：
ステップＳ３１において、背景画像データ取得部１Ａは、背景画像データ格納部ＤＢ１から１つの背景画像データを取得する。なお、説明便宜のため、背景画像データ取得部１Ａは、背景画像データ格納部ＤＢ１から、図２０に示す背景画像Ｉｍｇ４を取得するものとし、以下、この場合について、説明する。
【０１７３】
背景画像データ取得部１Ａは、例えば、画像認識処理により抽出対象物（鍵穴を合成する被対象物）の背景画像上の領域（例えば、図２１の領域Ｒ１）を特定し、当該領域を切り出した画像を抽出画像Ｄ１Ａとして取得する。また、背景画像データ取得部１Ａは、切り出した画像領域が、撮像対象の３次元空間のどの空間に対応するかを特定するための情報を含むデータＩｎｆｏ２（Ｄ１Ａ）を取得する。
【０１７４】
そして、背景画像データ取得部１Ａは、取得したデータＤ１Ａ（抽出対象物（鍵穴を合成する被対象物）の領域を抽出した画像）をレンダリング処理部３Ａに出力するとともに、取得したデータＩｎｆｏ１およびデータＩｎｆｏ２（Ｄ１Ａ）をＣＧ処理部２Ｂおよびレンダリング処理部３Ａに出力する。
【０１７５】
（ステップＳ３２、Ｓ３３）：
ＣＧ処理部２Ｂは、鍵情報決定部２２Ａにより、ＣＧ合成するための鍵の種別Ｋｅｙ＿ｔｙｐｅ（ｉ）を特定し（ステップＳ３２）、また、ＣＧ合成する鍵の形状についての３次元空間の位置情報を３Ｄ−２Ｄ変換して、背景画像上の２次元座標データを取得し、取得した当該２次元データを含むデータＫｅｙ＿ｐｏｓ（ｉ）を特定する（ステップＳ３３）。なお、ステップＳ３３において、鍵の位置情報Ｋｅｙ＿ｐｏｓ（ｉ）は、背景画像（合成画像）上において、鍵を合成するＣＧ物体の面の左右のいずれの領域に配置されるかを特定できる情報を含むものであってもよい。
【０１７６】
ＣＧ処理部２Ｂは、ＣＧ物体（鍵形状のＣＧ物体）を背景画像Ｄ１Ａに合成するために必要なデータＤａｔａ＿ＣＧ＿ｏｂｊをレンダリング処理部３Ａに出力する。
【０１７７】
また、ＣＧ処理部２Ｂは、鍵情報決定部２２Ａにより特定された鍵穴形状の物体（ＣＧ物体）（これをｉ番目（ｉ：自然数）のＣＧ物体とする）の鍵種別を示す情報をデータＫｅｙ＿ｔｙｐｅ（ｉ）として、鍵穴形状の物体（ＣＧ物体）の合成画像上の鍵位置を示す情報をデータＫｅｙ＿ｐｏｓ（ｉ）として、学習用データ生成部４Ｂに出力する。
【０１７８】
（ステップＳ３４）：
ステップＳ３４において、レンダリング処理部３Ａは、背景画像データ取得部１Ａから出力されるデータＩｎｆｏ１、データＩｎｆｏ２（Ｄ１Ａ）、および、画像データＤ１Ａ（鍵穴を合成する被対象物を抽出した画像）と、ＣＧ処理部２Ｂから出力されるデータＤａｔａ＿ＣＧ＿ｏｂｊとに基づいて、ＣＧ処理部２Ｂにより生成されたＣＧ物体（鍵穴形状のＣＧ物体）を、画像Ｄ１Ａに合成することで、合成画像データＩｍｇ＿ｒｅｎｄｅｒ（ｉ）（レンダリング結果の画像）を取得する。
【０１７９】
図２３、図２４に、一例として、画像データＤ１Ａ（鍵穴を合成する被対象物を抽出した画像）（図２３、図２４では、Ｉｍｇ＿ｒｅａｌ（ｂｏｘ１）と表記）に、４種類の鍵穴の形状のＣＧ物体ｋｅｙ１〜ｋｅｙ４を合成するときの様子を模式的に示す。なお、図２３、図２４では、鍵穴の形状のＣＧ物体ｋｅｙｘのデータＤａｔａ＿ＣＧ＿ｏｂｊをＤａｔａ＿ＣＧ＿ｏｂｊ（ｋｅｙｘ）と表記している。
【０１８０】
図２３に示すように、レンダリング処理部３Ａは、例えば、以下の学習用データを生成する。
（１）ｉ＝１の場合（鍵ｋｅｙ１を被合成物体の正面の左側領域に合成する場合）
鍵種類：ｋｅｙ１
合成画像データ：Ｉｍｇ＿ｒｅｎｄｅｒ（１）
学習ラベル用ラベル：Ｌａｂｅｌ＿ｋｅｙ（１）＝（ｋｅｙ１，ｐｏｓ＿Ｌ）
ｐｏｓ＿Ｌ：鍵穴形状ＣＧ物体の位置情報
（２）ｉ＝２の場合（鍵ｋｅｙ１を被合成物体の正面の右側領域に合成する場合）
鍵種類：ｋｅｙ１
合成画像データ：Ｉｍｇ＿ｒｅｎｄｅｒ（２）
学習ラベル用ラベル：Ｌａｂｅｌ＿ｋｅｙ（２）＝（ｋｅｙ１，ｐｏｓ＿Ｒ）
ｐｏｓ＿Ｒ：鍵穴形状ＣＧ物体の位置情報
（３）ｉ＝３の場合（鍵ｋｅｙ２を被合成物体の正面の左側領域に合成する場合）
鍵種類：ｋｅｙ２
合成画像データ：Ｉｍｇ＿ｒｅｎｄｅｒ（３）
学習ラベル用ラベル：Ｌａｂｅｌ＿ｋｅｙ（３）＝（ｋｅｙ２，ｐｏｓ＿Ｌ）
ｐｏｓ＿Ｌ：鍵穴形状ＣＧ物体の位置情報
（４）ｉ＝４の場合（鍵ｋｅｙ２を被合成物体の正面の右側領域に合成する場合）
鍵種類：ｋｅｙ２
合成画像データ：Ｉｍｇ＿ｒｅｎｄｅｒ（４）
学習ラベル用ラベル：Ｌａｂｅｌ＿ｋｅｙ（４）＝（ｋｅｙ２，ｐｏｓ＿Ｒ）
ｐｏｓ＿Ｒ：鍵穴形状ＣＧ物体の位置情報
また、図２４に示すように、レンダリング処理部３Ａは、例えば、以下の学習用データを生成する。
（５）ｉ＝５の場合（鍵ｋｅｙ３を被合成物体の正面の左側領域に合成する場合）
鍵種類：ｋｅｙ３
合成画像データ：Ｉｍｇ＿ｒｅｎｄｅｒ（５）
学習ラベル用ラベル：Ｌａｂｅｌ＿ｋｅｙ（５）＝（ｋｅｙ３，ｐｏｓ＿Ｌ）
ｐｏｓ＿Ｌ：鍵穴形状ＣＧ物体の位置情報
（６）ｉ＝６の場合（鍵ｋｅｙ２を被合成物体の正面の右側領域に合成する場合）
鍵種類：ｋｅｙ３
合成画像データ：Ｉｍｇ＿ｒｅｎｄｅｒ（６）
学習ラベル用ラベル：Ｌａｂｅｌ＿ｋｅｙ（６）＝（ｋｅｙ３，ｐｏｓ＿Ｒ）
ｐｏｓ＿Ｒ：鍵穴形状ＣＧ物体の位置情報
（７）ｉ＝７の場合（鍵ｋｅｙ４を被合成物体の正面の左側領域に合成する場合）
鍵種類：ｋｅｙ４
合成画像データ：Ｉｍｇ＿ｒｅｎｄｅｒ（７）
学習ラベル用ラベル：Ｌａｂｅｌ＿ｋｅｙ（７）＝（ｋｅｙ４，ｐｏｓ＿Ｌ）
ｐｏｓ＿Ｌ：鍵穴形状ＣＧ物体の位置情報
（８）ｉ＝８の場合（鍵ｋｅｙ４を被合成物体の正面の右側領域に合成する場合）
鍵種類：ｋｅｙ４
合成画像データ：Ｉｍｇ＿ｒｅｎｄｅｒ（８）
学習ラベル用ラベル：Ｌａｂｅｌ＿ｋｅｙ（８）＝（ｋｅｙ４，ｐｏｓ＿Ｒ）
ｐｏｓ＿Ｒ：鍵穴形状ＣＧ物体の位置情報
そして、レンダリング処理部３Ａは、取得した合成画像データＩｍｇ＿ｒｅｎｄｅｒ（ｉ）を学習用データ生成部４Ｂに出力する。
【０１８１】
（ステップＳ３５、Ｓ３６）：
学習用データ生成部４Ｂは、レンダリング処理部３Ａから出力される合成画像データＩｍｇ＿ｒｅｎｄｅｒ（ｉ）を学習用画像として、学習用データ格納部ＤＢ２に保存する（ステップＳ３５）。
【０１８２】
また、学習用データ生成部４Ｂは、ＣＧ処理部２Ｂから出力されるＣＧ物体（鍵穴形状のＣＧ物体）の鍵種別を示す情報をデータＫｅｙ＿ｔｙｐｅ（ｉ）と、鍵穴形状の物体（ＣＧ物体）の合成画像上の鍵位置を示す情報をデータＫｅｙ＿ｐｏｓ（ｉ）とを含む学習用ラベルＬａｂｅｌ＿ｋｅｙ（ｉ）（鍵種別の情報と鍵位置の情報とを含むラベル）を生成し、生成した学習用ラベルＬａｂｅｌ＿ｋｅｙ（ｉ）を学習用データ格納部ＤＢ２に保存する（ステップＳ３６）。
【０１８３】
以上により、学習用データ生成システム４０００では、ＣＧ処理部２Ｂにより生成したＣＧ物体を背景画像Ｄ１Ａ上にレンダリングして合成することで取得した学習用画像（レンダリング画像Ｉｍｇ＿ｒｅｎｄｅｒ（ｉ））と、学習用ラベルＬａｂｅｌ＿ｋｅｙ（ｉ）（鍵種別の情報Ｋｅｙ＿ｔｙｐｅ（ｉ）と鍵位置の情報Ｋｅｙ＿ｐｏｓ（ｉ）とを含むラベル）とを取得することができる。
【０１８４】
学習用データ生成システム４０００では、３次元空間ＳＰ１内での３次元位置が分かっているＣＧ物体（鍵穴形状のＣＧ物体）を、背景画像（被合成画像（例えば、図２１の領域Ｒ１の抽出画像））にレンダリングして学習用画像Ｉｍｇ＿ｒｅｎｄｅｒ（ｉ）（鍵穴合成画像データ）を取得し、さらに、当該学習用画像Ｉｍｇ＿ｒｅｎｄｅｒ（ｉ）において、各ＣＧ物体（鍵穴形状のＣＧ物体）の位置を特定する学習用ラベルＬａｂｅｌ＿ｋｅｙ（ｉ）（鍵種別の情報Ｋｅｙ＿ｔｙｐｅ（ｉ）と鍵位置の情報Ｋｅｙ＿ｐｏｓ（ｉ）とを含むラベル）を取得する。したがって、学習用データ生成システム４０００では、極めて正確な教師データを取得することができる。つまり、各ＣＧ物体は、学習用データ生成装置１００ＣのＣＧ処理部２Ｂにより生成したものであるので、鍵の種類を正確に把握することができるともに、各ＣＧ物体を背景画像Ｄ１Ａ上に投影したとき、各ＣＧ物体（鍵穴形状のＣＧ物体）が占める画像領域がどこになるのかを計算により正確に求めることができる。
【０１８５】
さらに、学習用データ生成システム４０００では、ＣＧ処理部２Ｂにより、人手を介することなく、自動でＣＧ物体を生成することができる。そして、学習用データ生成システム４０００では、生成したＣＧ物体を背景画像に投影することで（レンダリング処理を行うことで）、短時間に多量の学習用画像と、学習用ラベルとを生成することができる。
【０１８６】
したがって、学習用データ生成システム４０００では、鍵穴検出処理等を実行するときに用いられる学習済みモデルを取得するために、学習処理時に必要となる学習用データを短時間に多量に取得することができる。
【０１８７】
［第５実施形態］
次に、第５実施形態について説明する。
【０１８８】
なお、上記実施形態（変形例を含む）と同様の部分については、同一符号を付し、詳細な説明を省略する。
【０１８９】
＜５．１：学習推論処理システムＳｙｓ１の構成＞
図２５は、第５実施形態に係る学習推論処理システムＳｙｓ１の概略構成図である。
【０１９０】
図２６は、第５実施形態に係る学習処理装置２００の概略構成図である。
【０１９１】
図２７は、第５実施形態に係る推論処理装置３００の概略構成図である。
【０１９２】
学習推論処理システムＳｙｓ１は、図２５に示すように、学習用データ格納部ＤＢ２と、学習処理装置２００と、最適化パラメータ格納部ＤＢ３と、カメラＣ１と、推論処理装置３００とを備える。
【０１９３】
学習用データ格納部ＤＢ２には、第４実施形態の学習用データ生成システム４０００により生成された学習用データが格納されているものとする。
【０１９４】
学習推論処理システムＳｙｓ１では、学習処理において、学習用画像（レンダリング画像Ｉｍｇ＿ｒｅｎｄｅｒ（ｉ））と、学習用ラベルＬａｂｅｌ＿ｋｅｙ（ｉ）（鍵種別の情報Ｋｅｙ＿ｔｙｐｅ（ｉ）と鍵位置の情報Ｋｅｙ＿ｐｏｓ（ｉ）とを含むラベル）とを含む学習データにより学習処理を実行し、画像が入力されたときに、当該画像に含まれている物体の表面上の鍵の種類と鍵の位置とを特定するデータを出力する学習済みモデルを取得する。
【０１９５】
また、学習推論処理システムＳｙｓ１では、推論処理において、撮影対象の空間を撮像して取得した画像に含まれている物体の表面の鍵の３次元位置を推定する。
【０１９６】
以下では、学習処理装置２００と、推論処理装置３００とに分けて、説明する。
【０１９７】
＜５．２：学習処理装置２００＞
図２６に示すように、学習処理装置２００は、学習用データ入力部２０１と、学習用モデル２０２と、パラメータ更新部２０３と、判定部２０４とを備える。
【０１９８】
学習用データ入力部２０１は、学習用データ格納部ＤＢ２から学習用データＤＬ＿ｉｎを取得する。そして、学習用データ入力部２０１は、学習用データＤＬ＿ｉｎに含まれる画像データＩｍｇ＿ｒｅｎｄｅｒ（ｉ）（鍵穴合成画像）を取り出し、学習用モデル２０２に出力する。また、学習用データ入力部２０１は、学習用データＤＬ＿ｉｎに含まれる学習用ラベルＬａｂｅｌ＿ｋｅｙ（ｉ）（鍵種別の情報Ｋｅｙ＿ｔｙｐｅ（ｉ）と鍵位置の情報Ｋｅｙ＿ｐｏｓ（ｉ）とを含むラベル）を取り出し、教師データＤＬ＿ａｎｓｗｅｒとして、判定部２０４に出力する。
【０１９９】
学習用モデル２０２は、例えば、入力層と、複数の中間層と、出力層とを備えるニューラルネットワークによるモデルである。学習用モデル２０２の各層間の重み付け係数（各層間を繋ぐシナプス結合の重み付け）は、パラメータ更新部２０３から出力されるパラメータθにより設定（調整）される。学習用モデル２０２は、出力層から出力されるデータをデータＤＬ＿ｏｕｔとして、判定部２０４に出力する。なお、データＤＬ＿ｏｕｔは、学習用ラベルＬａｂｅｌ＿ｋｅｙ（ｉ）（鍵種別の情報Ｋｅｙ＿ｔｙｐｅ（ｉ）と鍵位置の情報Ｋｅｙ＿ｐｏｓ（ｉ）とを含むラベル）と同一次元のデータである。
【０２００】
パラメータ更新部２０３は、判定部２０４から出力される制御信号ａｄｊ＿ｐｒｍを入力し、当該制御信号ａｄｊ＿ｐｒｍに基づいて、学習用モデル２０２のパラメータθを更新する（各シナプス結合の重み付け係数を更新する）。
【０２０１】
判定部２０４は、学習用データ入力部２０１から出力される教師データＤＬ＿ａｎｓｗｅｒと、学習用モデル２０２から出力されるデータＤＬ＿ｏｕｔとを入力する。判定部２０４は、データＤＬ＿ｏｕｔと、教師データＤＬ＿ａｎｓｗｅｒとを比較し、両者（例えば、両者のノルム）の差が小さくなるように、パラメータを更新させるための制御信号ａｄｊ＿ｐｒｍを生成し、生成した制御信号ａｄｊ＿ｐｒｍをパラメータ更新部２０３に出力する。
【０２０２】
また、判定部２０４は、学習用モデル２０２への入力データＤＬ＿ｉｍｇの集合をｘとし、学習用モデル２０２からの出力データＤＬ＿ｏｕｔの集合をｙとし、入力データｘが学習用モデル２０２に入力されたときに出力データｙが出力される条件付き確率をＰ（ｙ｜ｘ）とすると、
【数１】
2020119127.tif 000003
を満たす最適パラメータθ＿ｏｐｔを、上記のパラメータを更新（調整）する処理を繰り返して取得する。なお、条件付きＰ（ｙ｜ｘ）は、出力データが教師データに近い程、大きな値をとるものとする。
【０２０３】
例えば、条件付きＰ（ｙ｜ｘ）は、以下のように設定される。
【数２】
2020119127.tif 000004
σ：標準偏差
なお、ｘｉは、集合ｘに含まれるベクトルであり、ｙｉは、集合ｙに含まれるベクトルであり、ｙｉ_ｃｏｒｒｅｃｔは、ｘｉを入力としたときの教師データ（正解データ）（ベクトルデータ）である。Ｈ（ｘｉ；θ）は、入力ｘｉに対して、例えば、複数層からなるニューラルネットワークの処理を施し、出力を取得する処理に相当する演算子を表している。パラメータθは、例えば、当該ニューラルネットワークのシナプス結合の重み付け等を決定するパラメータである。なお、Ｈ（ｘｉ；θ）には、非線形の演算が含まれてもよい。
【０２０４】
判定部２０４は、取得した最適パラメータθ＿ｏｐｔを最適化パラメータ格納部ＤＢ３に格納する。なお、パラメータθ、最適パラメータθ＿ｏｐｔは、ベクトル、または、テンソルである。
【０２０５】
以上にようにして、学習処理装置２００では、学習済みモデルに設定するパラメータである最適パラメータθ＿ｏｐｔを取得する。
【０２０６】
＜５．３．１：推論処理装置３００の構成＞
次に、推論処理装置３００の構成について説明する。
【０２０７】
図２７に示すように、推論処理装置３００は、入力インターフェース３１と、画像認識抽出部３２と、予測部３３と、２Ｄ座標検出部３４と、検出精度判定部３５と、撮影パラメータ調整部３６と、鍵パラメータ取得部３７と、３Ｄ座標推定部３８とを備える。また、推論処理装置３００は、カメラＣ１で撮像した画像を入力インターフェースに入力することができる。また、図２７に示すように、推論処理装置３００において、予測部３３は、最適化パラメータ格納部ＤＢ３と接続されており、２Ｄ座標検出部３４は、鍵穴パターン格納部ＤＢ４と接続されており、鍵パラメータ取得部３７は、鍵パラメータ格納部ＤＢ５と接続されている。
【０２０８】
入力インターフェース３１は、外部機器との入力インターフェースである。入力インターフェース３１は、カメラＣ１により撮像された画像（または映像）ＤＰｉｎを入力し、入力したデータをデータＤＰ１として、画像認識抽出部３２に出力する。
【０２０９】
画像認識抽出部３２は、入力インターフェース３１から出力されるデータＤＰ１（画像ＤＰ１）を入力し、当該データＤＰ１から所定の対象物を含む画像領域（例えば、入力画像が図２１のＩｍｇ４である場合の画像領域Ｒ１）を抽出する。そして、画像認識抽出部３２は、抽出した画像をデータＤＰ２（画像ＤＰ２）として予測部３３に出力する。また、画像認識抽出部３２は、抽出した画像領域に相当する空間が撮像対象の３次元空間内でどの位置に相当するかを特定するための情報をデータＩｎｆｏ＿３Ｄ＿ｅｘｔｒａｃｔｅｄ＿ｉｍｇとして３Ｄ座標推定部３８に出力する。なお、データＩｎｆｏ＿３Ｄ＿ｅｘｔｒａｃｔｅｄ＿ｉｍｇには、例えば、画像ＤＰ１において、画像ＤＰ１の全画像領域の面積に対する所定の対象物が占有する画像領域の面積の割合を示すデータが含められる。
【０２１０】
予測部３３は、最適化パラメータ設定部３３１と、予測モデル（学習済みモデル）３３２とを備える。
【０２１１】
最適化パラメータ設定部３３１は、最適化パラメータ格納部ＤＢ３から、学習処理装置により取得された最適パラメータθ＿ｏｐｔを取得する。そして、最適化パラメータ設定部３３１は、予測モデルに最適パラメータθ＿ｏｐｔを設定する。これにより、予測モデル３３２は、学習処理装置２００により取得された学習済みモデル（最適パラメータが設定されたときの学習用モデル２０２）と同じモデルとなる。
【０２１２】
予測モデル３３２は、学習用モデル２０２と同様の構成を有するモデルであり、最適化パラメータ設定部３３１により、予測モデル３３２のパラメータが設定される。予測モデル３３２は、画像認識抽出部３２から出力される画像ＤＰ２を入力し、対象物体の表面の鍵の種類と、当該鍵の位置情報とを含むデータを出力データＤＰ３として、２Ｄ座標検出部３４に出力する。
【０２１３】
２Ｄ座標検出部３４は、予測モデル３３２から出力されるデータＤＰ３と、画像認識抽出部３２から出力される画像ＤＰ２とを入力する。また、２Ｄ座標検出部３４は、鍵穴パターン格納部ＤＢ４から、パターンマッチング用のテンプレート（鍵穴パターンのテンプレート）データを入力する。２Ｄ座標検出部３４は、予測モデル３３２により取得されたデータＤＰ３に基づいて、画像ＤＰ２の鍵のおおよその位置（例えば、所定の表面の右側領域、あるいは、左側領域）を特定し、特定した位置に基づいて、鍵穴パターン格納部ＤＢ４から取得した鍵穴パターンのテンプレートを用いたパターンマッチングを行う。そして、２Ｄ座標検出部３４は、パターンマッチングの検出結果のデータＤＰ４と、パターンマッチングの検出精度ａｃｃｒ１とを検出精度判定部３５に出力する。
【０２１４】
検出精度判定部３５は、２Ｄ座標検出部３４から出力されるパターンマッチングの検出結果のデータＤＰ４と、パターンマッチングの検出精度ａｃｃｒ１と入力し、入力したデータに基づいて、２Ｄ座標検出部３４によるパターンマッチングの精度の判定を行う。そして、検出精度判定部３５は、判定結果を示すデータＲｓｔ１を撮影パラメータ調整部３６に出力する。また、検出精度判定部３５は、２Ｄ座標検出部３４によるパターンマッチングの精度が十分であると判定した場合、パターンマッチングにより所定の精度を確保することができた鍵のパターンについての情報と、当該鍵の画像ＤＰ４上の座標位置のデータとを含むデータをデータＤＰ５として、３Ｄ座標推定部３８に出力する。
【０２１５】
撮影パラメータ調整部３６は、カメラＣ１から出力される撮影パラメータＰａｒａｍ＿ｃａｍと、検出精度判定部３５から出力される精度検出結果データＲｓｔ１とを入力する。撮影パラメータ調整部３６は、精度検出結果データＲｓｔ１が十分な精度ではないことを示すデータであるとき、カメラＣ１の撮影パラメータ（例えば、焦点距離）を変更させるための制御信号Ｃｔｌ１を生成し、カメラＣ１に出力する。また、撮影パラメータ調整部３６は、カメラＣ１から取得した撮影パラメータＰａｒａｍ＿ｃａｍを３Ｄ座標推定部３８に出力する。
【０２１６】
鍵パラメータ取得部３７は、３Ｄ座標推定部３８から出力される鍵パラメータの取得要求をする要求信号Ｒｅｑ＿ｋｅｙを入力する。鍵パラメータ取得部３７は、要求信号Ｒｅｑ＿ｋｅｙを入力したら、当該要求信号Ｒｅｑ＿ｋｅｙに基づいて、鍵パラメータ格納部ＤＢ５から要求信号Ｒｅｑ＿ｋｅｙにより指定された鍵のパラメータを取得し、取得した鍵のパラメータを含むデータをデータＰｒｍ＿ｋｅｙとして３Ｄ座標推定部３８に出力する。
【０２１７】
３Ｄ座標推定部３８は、検出精度判定部３５から出力されるデータＤＰ５を入力する。また、３Ｄ座標推定部３８は、画像認識抽出部３２から出力されるデータＩｎｆｏ＿３Ｄ＿ｅｘｔｒａｃｔｅｄ＿ｉｍｇと、撮像した３次元空間を特定するための情報（データ）Ｉｎｆｏ＿３Ｄと、撮影パラメータ調整部３６から出力される撮影パラメータＰａｒａｍ＿ｃａｍと、鍵パラメータから出力される鍵パラメータのデータＰｒｍ＿ｋｅｙとを入力する。
【０２１８】
３Ｄ座標推定部３８は、データＤＰ５と、データＩｎｆｏ＿３Ｄ＿ｅｘｔｒａｃｔｅｄ＿ｉｍｇと、データＩｎｆｏ＿３Ｄと、撮影パラメータＰａｒａｍ＿ｃａｍと、鍵パラメータのデータＰｒｍ＿ｋｅｙとに基づいて、画像ＤＰ１に写っている対象物体の表面の鍵の３次元座標を推定する。そして、３Ｄ座標推定部３８は、その推定結果データをデータＤＰｏｕｔとして取得する。なお、３Ｄ座標推定部３８は、ＣＧ物体（例えば、鍵穴）を合成する被対象物（対象物体）の大きさのデータを取得することができるものとし、（１）カメラＣ１の焦点距離と、（２）当該焦点距離によりカメラＣ１で撮像した画像（撮像画像ＤＰｉｎ）における、全画像領域に対する対象物体に相当する画像領域が占有する割合とから、カメラＣ１から対象物体までの３次元距離を取得する。
【０２１９】
＜５．３．２：推論処理装置３００の動作＞
以上のように構成された推論処理装置３００の動作について、説明する。
【０２２０】
図２８は、推論処理装置３００の推論処理のフローチャートである。
【０２２１】
なお、以下では、推論処理装置３００において、推論処理として、鍵の種類・位置判定処理を行う場合について、説明する。また、説明便宜のため、カメラＣ１により取得された画像（映像）が図２９に示す画像Ｉｍｇ５であるものとする。
【０２２２】
以下では、図２８のフローチャートを参照しながら、学習用データ生成システム４０００の動作について、説明する。
【０２２３】
（ステップＳ４１）：
ステップＳ４１において、入力インターフェース３１は、カメラＣ１が撮像したデータＤＰｉｎ（画像Ｉｍｇ５）を入力することで、カメラＣ１からの映像フレームを取得する。
【０２２４】
（ステップＳ４２、Ｓ４３）：
画像認識抽出部３２は、画像Ｉｍｇ５に写っている対象物体（直方体の物体）を画像認識処理で認識し、対象物体の画像領域を抽出する（ステップＳ４２）。そして、画像認識抽出部３２は、抽出した画像を画像ＤＰ２として、予測部３３に出力する。
【０２２５】
また、画像認識抽出部３２は、抽出した物体の種別を判定する（ステップＳ４３）。この物体の種別判定は、例えば、実施形態１により生成した学習データ（物体検出用学習データ）により学習させた学習済みモデルを用いた推論処理装置により行うことが好ましい。
【０２２６】
また、予測部３３は、画像ＤＰ２を予測モデル３３２に入力することで、対象物体の表面の鍵の種類と、当該鍵の位置情報とを含むデータＤＰ３を取得する。
【０２２７】
そして、２Ｄ座標検出部３４は、予測モデル３３２により取得されたデータＤＰ３に基づいて、対象物体（直方体の物体）の表面の鍵の概略の位置（画像上の２次元座標位置）（例えば、所定の表面の右側領域、あるいは、左側領域）を特定する。
【０２２８】
（ステップＳ４４）：
ステップＳ４４において、２Ｄ座標検出部３４は、予測モデル３３２により取得されたデータＤＰ３に基づいて、特定された画像ＤＰ２の鍵のおおよその位置（例えば、所定の表面の右側領域、あるいは、左側領域）に基づいて、鍵穴パターン格納部ＤＢ４から取得した鍵穴パターンのテンプレートを用いたパターンマッチングを行う。そして、２Ｄ座標検出部３４は、パターンマッチングの検出結果のデータＤＰ４と、パターンマッチングの検出精度ａｃｃｒ１とを検出精度判定部３５に出力する。なお、パターンマッチングの検出精度ａｃｃｒ１は、例えば、以下の（１）、（２）により取得する。
（１）パターンマッチング対象画像（画像領域）の各画素の画素値Ｐ（ｉ，ｊ）（座標（ｉ，ｊ）の画素値）と、鍵穴パターンのテンプレートの各画素Ｐｔ（ｉ，ｊ）（座標（ｉ，ｊ）の画素値）との差分の絶対値の総和（パターンマッチングの対象とする全画像領域における総和）ｓｕｍ＿ｅｒｒｏｒを算出する。
（２）（１）で算出した総和ｓｕｍ＿ｅｒｒｏｒから、
ａｃｃｒ１＝ｆ１（ｓｕｍ＿ｅｒｒｏｒ）
ｆ１（ｘ）：ｘについての単調減少関数（ｘ≧０）
に相当する処理により、パターンマッチングの検出精度ａｃｃｒ１を取得する。なお、関数ｆ１（ｘ）は、ｘ≧０で定義され、ｘについての単調減少関数であるものとする（つまり、ｆ１（０）で最大値をとる関数であるものとする）。
【０２２９】
（ステップＳ４５）：
ステップＳ４５において、検出精度判定部３５は、２Ｄ座標検出部３４から出力されるパターンマッチングの検出結果のデータＤＰ４と、パターンマッチングの検出精度ａｃｃｒ１とを入力し、入力したデータに基づいて、２Ｄ座標検出部３４によるパターンマッチングの精度の判定を行う。パターンマッチングの精度の判定は、例えば、パターンマッチングの検出精度ａｃｃｒ１を所定の閾値Ｔｈ１と比較することで実行される。
【０２３０】
そして、検出精度判定部３５は、判定結果を示すデータＲｓｔ１を撮影パラメータ調整部３６に出力する。また、検出精度判定部３５は、２Ｄ座標検出部３４によるパターンマッチングの精度が十分であると判定した場合（例えば、ａｃｃｒ１＞Ｔｈ１である場合）（ステップＳ４５でＹｅｓの場合）、処理をステップＳ４７に進め、一方、精度が十分ではないと判定した場合（ステップＳ４５でＮｏの場合）、処理をステップＳ４６に進める。
【０２３１】
（ステップＳ４６）：
撮影パラメータ調整部３６は、精度検出結果データＲｓｔ１が十分な精度ではないことを示すデータであるので、カメラＣ１の撮影パラメータ（例えば、焦点距離）を変更させるための制御信号Ｃｔｌ１を生成し、カメラＣ１に出力する。これにより、例えば、鍵穴が存在する領域をズームする処理を実行できる。例えば、図３０に示すように、領域Ｒ２が拡大されるように、カメラＣ１の焦点距離を調整し、図３０の右図のズーム画像が取得されるようにする。図３０の右図に示すズーム画像では、鍵穴のディテールが認識できるので、当該ズーム画像を用いてパターンマッチングをすることで、鍵穴の検出精度を向上させることができる。
【０２３２】
ステップＳ４６の処理の後、処理をステップＳ４４に戻す。
【０２３３】
（ステップＳ４７、Ｓ４８）：
ステップＳ４６での検出精度が十分であると判定された場合、３Ｄ座標推定部３８は、検出精度判定部３５から出力されるデータＤＰ５（パターンマッチングにより所定の精度を確保することができた鍵のパターンについての情報と、当該鍵の画像ＤＰ上の座標位置のデータとを含むデータ）と、データＩｎｆｏ＿３Ｄ＿ｅｘｔｒａｃｔｅｄ＿ｉｍｇ（抽出画像に対応する領域の３次元座標を特定するためのデータ）と、データＩｎｆｏ＿３Ｄ（撮像した３次元空間を特定するためのデータ）と、撮影パラメータＰａｒａｍ＿ｃａｍと、鍵パラメータのデータＰｒｍ＿ｋｅｙと、を取得する（ステップＳ４７）。
【０２３４】
３Ｄ座標推定部３８は、（１）カメラＣ１の焦点距離と、（２）当該焦点距離によりカメラＣ１で撮像した画像（撮像画像ＤＰｉｎ）における、全画像領域に対する対象物体に相当する画像領域が占有する割合とから、カメラＣ１から対象物体までの３次元距離を取得する。対象物体の大きさ（サイズ）が既知であり、撮像画像ＤＰｉｎが取得されたときのカメラＣ１の焦点距離が既知であるので、撮像画像ＤＰｉｎ内の対象物体が占める割合が分かれば、カメラＣ１から対象物体Ｃ１までの３次元距離を取得することができる。したがって、３Ｄ座標推定部３８は、（１）カメラＣ１の焦点距離と、（２）当該焦点距離によりカメラＣ１で撮像した画像（撮像画像ＤＰｉｎ）における、全画像領域に対する対象物体に相当する画像領域が占有する割合とから、カメラＣ１から対象物体までの３次元距離を取得することができる。
【０２３５】
そして、３Ｄ座標推定部３８は、取得したデータに基づいて、画像ＤＰ１に写っている対象物体の表面の鍵の３次元座標を推定する（ステップＳ４８）。つまり、上記で取得したデータにより、対象物体の３次元座標データと、対象物体の表面上の鍵の位置、鍵のパターン、形状が分かるので、鍵の３次元空間内での位置を推定することができる。そして、このようにして推論したデータは、データＤＰｏｕｔとして取得される。
【０２３６】
以上のように、推論処理装置３００では、学習処理装置２００により学習したモデル（予測モデル（学習済みモデル）３３２）により、対象物体の鍵の種別と、鍵の概略位置を認識することができ、さらに、鍵のパターンとのパターンマッチングにより、鍵の正確な位置を取得することができる。そして、取得した鍵の正確な位置（抽出画像上の位置）を、鍵パターンのデータ、撮像空間の３次元座標データを用いて処理することで、当該鍵の３次元空間内の位置を高精度に推定することができる。
【０２３７】
さらに、推論処理装置３００では、パターンマッチングの精度判定を行い、精度が不十分である場合、カメラＣ１のズーム処理を行い、パターンマッチングの精度を向上させることができる。その結果、推論処理装置３００では、高精度の鍵位置の推論処理を行うことができる。
【０２３８】
なお、上記では、説明便宜のために、学習処理装置２００と推論処理装置３００とが別個の装置であるものとして説明したが、これに限定されることはない。例えば、学習処理装置２００と推論処理装置３００とを１つの装置として、学習処理モードと推論処理モードとを設け、モードにより処理を１つの装置で行うようにしてもよい。この場合、学習用モデル２０２と予測モデル（学習済みモデル）３３２を共通にしてもよい（１つのモデルに対して、学習処理を行い、最適パラメータが取得できた段階で、当該パラメータを最適パラメータに固定することで学習済みモデルを取得するようにしてもよい）。
【０２３９】
［他の実施形態］
上記実施形態および変形例を組み合わせて、学習用データ生成システム、学習用データ生成装置を構成するようにしてもよい。
【０２４０】
上記実施形態および変形例では、デカルト座標により座標を設定した場合を前提として説明したが、これに限定されず、極座標等の別の座標系を使用してもよい。
【０２４１】
また、ＣＧ処理部によりＣＧで作成する物体（ＣＧ物体）の形状は、略直方体以外の形状であってもよい。
【０２４２】
なお、検出対象物の形状が略直方体であり、例えば、１つの面が特定される物体（例えば、１つの面に必ず鍵穴が設けられているキャッシュボックス）を検出対象として、本発明を適用することで、例えば、キャッシュボックスのような所定の姿勢で所定の場所に置く処理を実行する処理のための物体検出処理、姿勢検出処理を高精度に実現する学習済みモデルを効率よく取得することができる。
【０２４３】
また、上記実施形態で説明した学習用データ生成システム、学習用データ生成装置において、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。
【０２４４】
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０２４５】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０２４６】
また、上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置（ＣＰＵ）により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。
【０２４７】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
【０２４８】
例えば、上記実施形態（変形例を含む）の各機能部を、ソフトウェアにより実現する場合、図３１に示したハードウェア構成（例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、入力部、出力部等をバスＢｕｓにより接続したハードウェア構成）を用いて、各機能部をソフトウェア処理により実現するようにしてもよい。
【０２４９】
また、上記実施形態の各機能部をソフトウェアにより実現する場合、当該ソフトウェアは、図３１に示したハードウェア構成を有する単独のコンピュータを用いて実現されるものであってもよいし、複数のコンピュータを用いて分散処理により実現されるものであってもよい。
【０２５０】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０２５１】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、Blu-ray（登録商標）、次世代光ディスク、半導体メモリを挙げることができる。
【０２５２】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０２５３】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【０２５４】
Ｓｙｓ１  学習推論処理システム
１０００、１０００、３０００  学習用データ生成システム
１００、１００Ａ、１００Ｂ  学習用データ生成装置
２００  学習処理装置
３００  推論処理装置
１、１Ａ  背景画像データ取得部
２、２Ａ、２Ｂ  ＣＧ処理部
３、３Ａ  レンダリング処理部
４、４Ａ、４Ｂ  学習用データ生成部
５  手動バウンディングボックス情報入力部
【図１】
2020119127.tif 000005
【図２】
2020119127.tif 000006
【図３】
2020119127.tif 000007
【図４】
2020119127.tif 000008
【図５】
2020119127.tif 000009
【図６】
2020119127.tif 000010
【図７】
2020119127.tif 000011
【図８】
2020119127.tif 000012
【図９】
2020119127.tif 000013
【図１０】
2020119127.tif 000014
【図１１】
2020119127.tif 000015
【図１２】
2020119127.tif 000016
【図１３】
2020119127.tif 000017
【図１４】
2020119127.tif 000018
【図１５】
2020119127.tif 000019
【図１６】
2020119127.tif 000020
【図１７】
2020119127.tif 000021
【図１８】
2020119127.tif 000022
【図１９】
2020119127.tif 000023
【図２０】
2020119127.tif 000024
【図２１】
2020119127.tif 000025
【図２２】
2020119127.tif 000026
【図２３】
2020119127.tif 000027
【図２４】
2020119127.tif 000028
【図２５】
2020119127.tif 000029
【図２６】
2020119127.tif 000030
【図２７】
2020119127.tif 000031
【図２８】
2020119127.tif 000032
【図２９】
2020119127.tif 000033
【図３０】
2020119127.tif 000034
【図３１】
2020119127.tif 000035
【手続補正書】
【提出日】令和2年1月14日(2020.1.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定の３次元空間を撮像して取得した背景画像を取得する背景画像取得ステップと、
物体の形状およびテクスチャーの少なくとも１つを含むコンピュータグラフィックス処理用のデータであるＣＧ物体生成用データを取得し、取得した前記ＣＧ物体生成用データに基づいて生成されるＣＧ物体を、前記背景画像の撮像対象とした前記３次元空間内の所定の座標位置に配置されるように前記背景画像に合成することで取得される画像であるレンダリング画像を学習用画像データとして取得する学習用画像データ取得ステップと、
前記学習用画像データから、前記レンダリング画像上において、前記ＣＧ物体を囲む画像領域を抽出することで取得した画像であるクロップ画像を姿勢検出用画像データとして取得する姿勢検出用画像データ取得ステップと、
前記姿勢検出用画像データに含まれる前記ＣＧ物体の姿勢に関する情報と前記姿勢検出用画像データとを対応付けたデータを姿勢検出用学習データとして取得する姿勢検出用学習データ取得ステップと、
を備える学習用データ生成方法。
【請求項２】
前記学習用画像データから、前記レンダリング画像上において、前記ＣＧ物体を囲む領域である２次元バウンディング領域を設定し、前記２次元バウンディングの座標情報を学習用位置ラベルとして取得する学習用位置ラベル取得ステップをさらに備える、
請求項１に記載の学習用データ生成方法。
【請求項３】
前記学習用画像データ取得ステップは、
前記背景画像に実物の処理対象物体が含まれている場合、当該処理対象物体を含む画像領域以外の画像領域に、前記ＣＧ物体が配置されるように前記レンダリング画像を生成する、
請求項１または２に記載の学習用データ生成方法。
【請求項４】
前記背景画像は、第１物体を含む画像であり、
前記ＣＧ物体は、少なくとも一部が前記第１物体の表面上に配置されるように、前記背景画像に合成される、
請求項１に記載の学習用データ生成方法。
【請求項５】
所定の３次元空間を撮像して取得した背景画像を取得する背景画像取得ステップと、
物体の形状およびテクスチャーの少なくとも１つを含むコンピュータグラフィックス処理用のデータであるＣＧ物体生成用データを取得し、取得した前記ＣＧ物体生成用データに基づいて生成されるＣＧ物体を、前記背景画像の撮像対象とした前記３次元空間内の所定の座標位置に配置されるように前記背景画像に合成することで取得される画像であるレンダリング画像を学習用画像データとして取得する学習用画像データ取得ステップと、
を備え、
前記背景画像取得ステップは、前記背景画像に、第１物体を含む画像を合成することで第１背景画像を取得し、
前記ＣＧ物体は、少なくとも一部が前記第１物体の表面上に配置されるように、前記第１背景画像に合成される、
学習用データ生成方法。
【請求項６】
前記ＣＧ物体は、前記第１物体において鍵穴を形成する形状を有している、
請求項４または５に記載の学習用データ生成方法。
【請求項７】
請求項１から６のいずれかに記載の学習用データ生成方法をコンピュータに実行させるためのプログラム。
【請求項８】
所定の３次元空間を撮像して取得した背景画像を取得する背景画像データ取得部と、
物体の形状およびテクスチャーの少なくとも１つを含むコンピュータグラフィックス処理用のデータであるＣＧ物体生成用データを取得し、取得した前記ＣＧ物体生成用データに基づいて生成されるＣＧ物体を、前記背景画像の撮像対象とした前記３次元空間内の所定の座標位置に配置されるように前記背景画像に合成することで取得される画像であるレンダリング画像を学習用画像データとして取得する学習用画像データ取得部と、
前記学習用画像データから、前記レンダリング画像上において、前記ＣＧ物体を囲む画像領域を抽出することで取得した画像であるクロップ画像を姿勢検出用画像データとして取得する姿勢検出用画像データ取得部と、
前記姿勢検出用画像データに含まれる前記ＣＧ物体の姿勢に関する情報と前記姿勢検出用画像データとを対応付けたデータを姿勢検出用学習データとして取得する姿勢検出用学習データ取得部と、
を備える学習用データ生成装置。
【請求項９】
請求項４から６のいずれかに記載の学習用データ生成方法により取得した学習用データを用いて、学習処理を実行することで、学習済みモデルを取得する学習済みモデル取得ステップと、
前記第１物体の表面上に配置されている所定の形状を含む画像を入力とし、前記学習済みモデルによる予測処理を実行することで、前記所定の形状の位置を特定するためのデータを出力する予測処理ステップと、
前記所定の形状の位置を特定するためのデータの検出精度を判定する検出精度判定ステップと、
前記第１物体の表面上に配置されている所定の形状を含む画像を撮像する撮像装置の撮影パラメータを調整する撮影パラメータ調整ステップと、
を備え、
前記所定の形状の位置を特定するためのデータの検出精度が所定の閾値よりも低い場合、
前記撮影パラメータ調整ステップが前記撮像装置の前記撮影パラメータを変更した後、前記予測処理ステップは、前記予測処理を実行する、
推論処理方法。
【請求項１０】
請求項９に記載の推論処理方法をコンピュータに実行させるためのプログラム。