(57)【要約】【課題】従来よりも高い認識率が得られる画像処理装置等の提供。【解決手段】認識対象の教師データを用いて画像認識を行う画像処理装置において、認識対象の三次元モデルにおける描画パラメータを変化させるパラメータ変化部と、パラメータ変化部が変化させた描画パラメータに基づき、認識対象の教師データを生成する教師データ生成部と、を有する画像処理装置である。【選択図】図２
2018163554.tif 000002
【特許請求の範囲】
【請求項１】
認識対象の教師データを用いて画像認識を行う画像処理装置において、
前記認識対象の三次元モデルにおける描画パラメータを変化させるパラメータ変化部と、
前記パラメータ変化部が変化させた前記描画パラメータに基づき、前記認識対象の教師データを生成する教師データ生成部と、
を有することを特徴とする画像処理装置。
【請求項２】
前記画像処理装置において、
前記描画パラメータが、前記認識対象の三次元モデルの材質、前記認識対象の三次元モデルの形状、前記認識対象の三次元モデルのカメラの位置、前記認識対象の三次元モデルのカメラの向き、前記認識対象の三次元モデルのカメラの画角、前記認識対象の三次元モデルの照明条件、背景三次元モデル、遮蔽率及び教師画像の保存条件から選択される少なくとも一つ又はこれらの組み合わせである請求項１に記載の画像処理装置。
【請求項３】
前記画像処理装置はさらに、
前記認識対象の三次元モデルのカメラの位置、カメラの向き及びカメラの画角の少なくともいずれかを変化させてカメラモデルを生成するカメラモデル生成部を有する請求項２に記載の画像処理装置。
【請求項４】
前記画像処理装置はさらに、
前記認識対象の三次元モデルの照明条件を変化させて照明モデルを生成する照明モデル生成部を有する請求項２から３のいずれか一項に記載の画像処理装置。
【請求項５】
前記画像処理装置はさらに、
背景三次元モデル格納部から前記背景三次元モデルを取得する背景三次元モデル取得部を有する請求項２から４のいずれか一項に記載の画像処理装置。
【請求項６】
前記画像処理装置はさらに、
前記遮蔽率が遮蔽率閾値以下である教師画像を生成する教師画像生成部を有する請求項２から５のいずれか一項に記載の画像処理装置。
【請求項７】
前記画像処理装置において、
前記遮蔽率閾値が、前記認識対象の三次元モデルの分類毎に設定される請求項６に記載の画像処理装置。
【請求項８】
前記画像処理装置はさらに、
前記教師データ生成部で生成した教師データを用いて学習を行う学習部を有する請求項１から７のいずれか一項に記載の画像処理装置。
【請求項９】
前記画像処理装置はさらに、
前記学習部で求めた学習済み重みを用いて推論を行う推論部を有する請求項８に記載の画像処理装置。
【請求項１０】
前記画像処理装置において、
前記画像認識は、ディープラーニングの手法により行われる請求項１から９のいずれか一項に記載の画像処理装置。
【請求項１１】
認識対象の教師データを用いて画像認識を行う画像処理装置の画像処理方法において、
前記画像処理装置が有するパラメータ変化部が、前記認識対象の三次元モデルにおける描画パラメータを変化させ、
前記画像処理装置が有する教師データ生成部が、前記認識対象の教師データを生成する画像処理方法。
【請求項１２】
認識対象の教師データを用いて画像認識を行う画像処理装置の画像処理プログラムにおいて、
前記画像処理装置が有するパラメータ変化部に、前記認識対象の三次元モデルにおける描画パラメータを変化させ、
前記画像処理装置が有する教師データ生成部に、前記認識対象の教師データを生成させる画像処理プログラム。
【請求項１３】
認識対象の画像認識を行うための教師データを生成する教師データ生成装置を用いた教師データ生成方法において、
前記教師データ生成装置が有するパラメータ変化部が、前記認識対象の三次元モデルにおける描画パラメータを変化させ、
前記教師データ生成装置が有する教師データ生成部が、前記パラメータ変化部が変化させた前記描画パラメータに基づき、前記認識対象の教師データを生成する教師データ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、画像処理プログラム、及び教師データ生成方法に関する。
【背景技術】
【０００２】
今日、人工知能分野における機械学習のなかでもディープラーニング（ｄｅｅｐ  ｌｅａｒｎｉｎｇ；深層学習）は、画像認識の分野で目覚ましい成果を上げている。しかし、画像認識に限らず、ディープラーニングは、様々なバリエーションを持った大量の教師データを必要とする点が実用化においての課題となる。そのような大量の教師データを揃えることは時間面及びコスト面並びに著作権の権利処理の面から現実的に難しいことが多く、教師データが不十分な場合には学習が十分に行われず、認識精度が上がらないという問題がある。
【０００３】
このため、例えば、画像データから、三次元コンピュータグラフィックス（Ｔｈｒｅｅ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ；３ＤＣＧ）で光のモデルを変えた複数のデータを作成して、画像検出用の教師データを複数作成することが提案されている（例えば、特許文献１参照）。
また、カメラで撮影した画像から、３ＤＣＧでブレのある複数のデータを作成することで、画像検出用の教師データを複数作成することが提案されている（例えば、特許文献２参照）。
【０００４】
また、ディープラーニングにおいて、教師データが少ない場合に「データオーグメンテーション（ｄａｔａ  ａｕｇｍｅｎｔａｔｉｏｎ）」と呼ばれる手法を用いて、教師データのバリエーションを増強することが報告されている（例えば、非特許文献１参照）。この「データオーグメンテーション」は、画像の変色、変形、拡大・縮小、又は切り抜きを、教師データの特徴を損なわない範囲で行うものである。
また、教師データを増強する方法として、三次元（３Ｄ）モデルを利用した方法が報告されている（例えば、非特許文献２参照）。この方法では、認識対象の３Ｄモデルをレンダリングした画像を教師データとして利用している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−６２２２５号公報
【特許文献２】特開２０１０−２１１７３２号公報
【非特許文献】
【０００６】
【非特許文献１】Ａｌｅｘ  Ｋｒｉｚｈｅｖｓｋｙ，Ｉｌｙａ  Ｓｕｔｓｋｅｖｅｒ，ａｎｄ  Ｇｅｏｆｆｒｅｙ  Ｅ．  Ｈｉｎｔｏｎ，“ＩｍａｇｅＮｅｔ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ｗｉｔｈ  Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，Ｍａｒｃｈ  ２３，２０１７，［ｏｎｌｉｎｅ］，＜ｈｔｔｐｓ：／／ｐａｐｅｒｓ．ｎｉｐｓ．ｃｃ／ｐａｐｅｒ／４８２４−ｉｍａｇｅｎｅｔ−ｃｌａｓｓｉｆｉｃａｔｉｏｎ−ｗｉｔｈ−ｄｅｅｐ−ｃｏｎｖｏｌｕｔｉｏｎａｌ−ｎｅｕｒａｌ−ｎｅｔｗｏｒｋｓ．ｐｄｆ＞
【非特許文献２】Ｘｉｎｇｃｈａｏ  Ｐｅｎｇ，  Ｂａｏｃｈｅｎ  Ｓｕｎ，Ｋａｒｉｍ  Ａｌｉ，ａｎｄ  Ｋａｔｅ  Ｓａｅｎｋｏ，“Ｌｅａｒｎｉｎｇ  Ｄｅｅｐ  Ｏｂｊｅｃｔ  Ｄｅｔｅｃｔｏｒｓ  ｆｒｏｍ  ３Ｄ  Ｍｏｄｅｌｓ”，Ｍａｒｃｈ  ２３，  ２０１７，［ｏｎｌｉｎｅ］，＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｋａｒｉｍａｌｉ．ｏｒｇ／ｐｕｂｌｉｃａｔｉｏｎｓ／ＰＳＡＳ＿ＩＣＣＶ１５．ｐｄｆ＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、「データオーグメンテーション」は、あくまで画像加工であり、例えば、車の正面から撮影された画像から、車の側面や車の背面などの画像を生成することはできない手法である。
また、３Ｄモデルを用いた従来の方法では、以下に説明するように、実写写真を用いた教師データに比べて、正しく認識できない教師データが得られてしまうという問題がある。
（１）見た目のバリエーションが３Ｄモデルの数に依存してしまう
ディープラーニングでは教師データのバリエーションを増やすことが重要であるが、従来の方法では、固定の材質及び形状の教師データしか生成できず、３Ｄモデルの数でバリエーションが決まってしまう。このように３Ｄモデルを多数収集することはコストが高くなり、現実的でない。
（２）認識対象が遮蔽された教師データを生成できない
画像を入力データとしたディープラーニングでは、認識対象が一部遮蔽された教師データを含む場合には、ディープラーニングによって認識対象が一部遮蔽された教師データを正しく認識できるという利点がある。しかし、従来の方法では、認識対象が一部遮蔽された教師データを生成できないため、認識対象が一部遮蔽された教師データを認識できない確率が高くなる。
【０００８】
一つの側面では、従来よりも高い認識率が得られる画像処理装置、画像処理方法、画像処理プログラム、及び教師データ生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの実施態様では、認識対象の教師データを用いてディープラーニングにより画像認識を行う画像処理装置であって、
認識対象の三次元モデルにおける描画パラメータを変化させて認識対象の教師データを生成する教師データ生成部を、有する画像処理装置である。
【発明の効果】
【００１０】
一つの側面では、従来よりも認識率が得られる画像処理装置、画像処理方法、画像処理プログラム、及び教師データ生成方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、画像処理装置全体のハードウェア構成の一例を示すブロック図である。
【図２】図２は、画像処理装置全体の一例を示すブロック図である。
【図３】図３は、画像処理装置全体の処理の流れの一例を示すフローチャートである。
【図４】図４は、パラメータ変化部及び教師データ生成部を含む全体の一例を示すブロック図である。
【図５】図５は、パラメータ変化部及び教師データ生成部を含む全体の処理の流れの一例を示すフローチャートである。
【図６】図６は、パラメータ変化部及び教師データ生成部の一例を示すブロック図である。
【図７】図７は、パラメータ変化部及び教師データ生成部の処理の流れの一例を示すフローチャートである。
【図８】図８は、認識対象３Ｄモデルバリエーション生成部の一例を示すブロック図である。
【図９】図９は、認識対象３Ｄモデルバリエーション生成部の処理の流れの一例を示すフローチャートである。
【図１０】図１０は、カメラモデル生成部の一例を示すブロック図である。
【図１１】図１１は、カメラ画角が大きすぎると、教師画像中の認識対象３Ｄモデルが小さく描画されることを説明する説明図である。
【図１２】図１２は、カメラ画角が小さすぎると、教師画像中の認識対象３Ｄモデルが大きく描画されることを説明する説明図である。
【図１３】図１３は、カメラモデル生成部における画角の決定方法の一例を示す図である。
【図１４】図１４は、カメラモデル生成部の処理の流れの一例を示すフローチャートである。
【図１５】図１５は、教師画像生成部の一例を示すブロック図である。
【図１６】図１６は、遮蔽率の求め方を説明する説明図である。
【図１７】図１７は、教師画像生成部の処理の流れの一例を示すフローチャートである。
【図１８】図１８は、学習部全体の一例を示すブロック図である。
【図１９】図１９は、学習部全体の他の一例を示すブロック図である。
【図２０】図２０は、学習部全体の処理の流れの一例を示すフローチャートである。
【図２１】図２１は、推論部全体の一例を示すブロック図である。
【図２２】図２２は、推論部全体の他の一例を示すブロック図である。
【図２３】図２３は、推論部全体の処理の流れの一例を示すフローチャートである。
【図２４】図２４は、実施例２の画像処理装置全体の一例を示すブロック図である。
【図２５】図２５は、実施例２の画像処理装置全体の処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態について説明するが、本発明は、これらの実施形態に何ら限定されるものではない。
なお、本発明の「画像処理装置」におけるパラメータ変化部及び教師データ生成部が行う制御は、本発明の「画像処理方法」を実施することと同義であるので、本発明の「画像処理装置」の説明を通じて本発明の「画像処理方法」の詳細についても明らかにする。また、本発明の「画像処理プログラム」は、ハードウェア資源としてのコンピュータ等を用いることにより、本発明の「画像処理装置」として実現させることから、本発明の「画像処理装置」の説明を通じて本発明の「画像処理プログラム」の詳細についても明らかにする。
また、「教師データ生成装置」におけるパラメータ変化部及び教師データ生成部が行う制御は、本発明の「教師データ生成方法」を実施することと同義であるので、「教師データ生成装置」の説明を通じて本発明の「教師データ生成方法」の詳細についても明らかにする。また、「教師データ生成プログラム」は、ハードウェア資源としてのコンピュータ等を用いることにより、「教師データ生成装置」として実現させることから、「教師データ生成装置」の説明を通じて「教師データ生成プログラム」の詳細についても明らかにする。
【００１３】
本発明の画像処理装置は、認識対象の教師データを用いて画像認識を行う画像処理装置であり、画像認識はディープラーニングの手法により行われることが好ましい。
認識対象の三次元モデルにおける描画パラメータを変化させるパラメータ変化部と、
パラメータ変化部が変化させた描画パラメータに基づき、認識対象の教師データを生成する教師データ生成部とを有し、学習部及び推論部を有することが好ましい。
描画パラメータは、例えば、乱数を使用してランダムに変化させることができる。
【００１４】
認識対象とは、認識したい（分類したい）対象を意味する。認識対象としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、各種画像（例えば、人間の顔、鳥、犬、猫、猿、イチゴ、リンゴ、汽車、電車、大型自動車（バス、トラック等）、中型自動車、普通自動車、船、飛行機等）、図形、文字等の人間の視覚により検知できるものなどが挙げられる。
【００１５】
教師データとは、教師ありディープラーニングで用いられる「入力データ」と「正解ラベル」とのペアである。「入力データ」を多数のパラメータを有するニューラルネットワークに入力することでディープラーニング学習を実施し、推論ラベルと正解ラベルとの差（学習中重み）を更新し、学習済み重みを求める。したがって、教師データの形態は、学習したい問題（以下、「タスク」と称することもある）に依存する。いくつかの教師データの例を下記の表１に挙げる。
【００１６】
【表１】
2018163554.tif 000003
【００１７】
ディープラーニングは、人間の脳のニューロンを模した多層構造のニューラルネットワーク（ディープニューラルネットワーク）を用いた機械学習手法の一種であり、データの特徴を自動的に学習できる手法である。
【００１８】
画像認識は、画像データの画像内容を分析して、その形状を認識する技術である。
画像認識では、画像データから対象物となる輪郭を抽出し、背景から分離した上で、その対象物が何であるかを分析する。
画像認識を応用した技術としては、例えば、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ）、顔認証、虹彩認証などが挙げられる。
画像認識では、ピクセルの集合である画像データから、ある種のパターンを取り出し、そこから意味を読み取るという処理を行う。パターンの分析によって対象物の意味を抽出することをパターン認識と呼ぶ。パターン認識は、画像認識だけでなく、音声認識や言語解析などにも用いられる。
【００１９】
認識対象の三次元モデルは、三次元の座標と当該三次元の座標のそれぞれを結ぶ二次元の多角形（ポリゴン）の各頂点をつなぎ合わせて形成した集合体である。
三次元コンピュータグラフィックス（３ＤＣＧ）は、コンピュータの演算によって三次元空間内の仮想的な立体物を二次元である平面上の情報に変換することで立体感のある画像を生成する手法である。
【００２０】
描画パラメータの一例としては、認識対象の三次元モデルの材質、認識対象の三次元モデルの形状、認識対象の三次元モデルのカメラの位置、認識対象の三次元モデルのカメラの向き、認識対象の三次元モデルのカメラの画角、認識対象の三次元モデルの照明条件、背景三次元モデル、遮蔽率及び教師画像の保存条件等から少なくとも一つ選択される。
描画パラメータの他の一例としては、認識対象の三次元モデルの材質、認識対象の三次元モデルの形状、認識対象の三次元モデルの照明条件、背景三次元モデル、遮蔽率及び教師画像の保存条件等から少なくとも一つ選択される。
【実施例】
【００２１】
以下の実施例では、本発明の「画像処理装置」について具体的に説明するが、本発明は、この実施例に何ら限定されるものではない。
【００２２】
（実施例１）
（画像処理装置）
以下、実施例１の画像処理装置について説明する。この画像処理装置は、認識対象の教師データを用いて画像認識を行う装置である。
ここで、図１は、画像処理装置１００のハードウェア構成の一例を示す図である。画像処理装置１００の後述するストレージ装置７には画像処理プログラムが記録されており、後述のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１及びＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３が当該プログラムを読出して実行することにより、後述のパラメータ変化部１０、教師データ生成部５０、学習部２００、及び推論部３００として動作する。
【００２３】
この図１の画像処理装置１００は、ＣＰＵ１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２、ＧＰＵ３、及びＶＲＡＭ（Ｖｉｄｅｏ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４を備える。また、画像処理装置１００は、モニタ６、及びストレージ装置７を備えている。
【００２４】
ＣＰＵ１は、ストレージ装置７などに格納された教師データ生成部５０、学習部２００、及び推論部３００の各種プログラムを実行するユニットである。
【００２５】
ＲＡＭ２は、揮発性メモリであり、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙなどを含む。
【００２６】
ＧＰＵ３は、パラメータ変化部１０及び教師データ生成部５０における３ＤＣＧの描画をする際に必要な計算処理を実行するユニットである。
【００２７】
ＶＲＡＭ４は、モニタ等のディスプレイに画像を表示するために必要なデータを保持するためのメモリ領域であり、グラフィックスメモリ、又はビデオメモリとも呼ばれる。専用のデュアルポートのものもあれば、メインメモリと同じＤＲＡＭやＳＲＡＭを利用したものもある。
【００２８】
モニタ６は、教師データ生成部５０で生成した教師データを確認するために用いる。なお、ネットワークを介して接続された他の端末から教師データを確認できる場合は、モニタ６は不要である。
【００２９】
ストレージ装置７は、補助記憶装置であり、画像処理装置１００にインストールされた各種プログラムや、各種プログラムが実行されることで生成されるデータ等を記録するコンピュータ読み取り可能な記憶装置である。
【００３０】
画像処理装置１００は、図示を省略しているが、グラフィックコントローラ、キーボードやマウス、タッチパッド、トラックボール等の入出力インターフェース、ネットワークに接続するためのネットワークインターフェースなどを備えている。
【００３１】
次に、図２は、画像処理装置全体の一例を示すブロック図である。この図２の画像処理装置１００は、パラメータ変化部１０、教師データ生成部５０、学習部２００、及び推論部３００を備えている。
パラメータ変化部１０は、認識対象の三次元モデルにおける描画パラメータを変化させる。
教師データ生成部５０は、パラメータ変化部１０が変化させた描画パラメータに基づき、認識対象の教師データを生成する。
学習部２００は、教師データ生成部５０で生成した教師データを用いて学習を行う。
推論部３００は、学習部２００で求めた学習済み重みを用いて推論（テスト）を行う。
【００３２】
ここで、図３は、画像処理装置全体の処理の流れの一例を示すフローチャートである。以下、図２を参照して、画像処理装置全体の処理の流れについて説明する。
【００３３】
ステップＳ１０１では、パラメータ変化部１０が、認識対象の三次元モデルにおける描画パラメータを変化させると、処理をＳ１０２に移行する。
【００３４】
ステップＳ１０２では、教師データ生成部５０が、パラメータ変化部１０が変化させた描画パラメータに基づき、認識対象の教師データを生成すると、処理をＳ１０３に移行する。
【００３５】
ステップＳ１０３では、学習部２００が、教師データ生成部５０で生成した教師データを用いて学習を行い、学習済み重みを得ると、処理をＳ１０４に移行する。
【００３６】
ステップＳ１０４では、推論部３００が、得られた学習済み重みを用いて推論を行い、推論ラベル（推論結果）を出力すると、本処理を終了する。
【００３７】
以下、画像処理装置１００におけるパラメータ変化部１０、教師データ生成部５０、学習部２００、及び推論部３００について、具体的に説明する。
【００３８】
＜パラメータ変化部及び教師データ生成部＞
パラメータ変化部１０は、認識対象３Ｄモデルにおける描画パラメータを変化させる。
教師データ生成部５０は、認識対象３Ｄモデルにおける描画パラメータを変化させ、変化させた描画パラメータに基づいて、認識対象の教師データを生成する。
ここで、パラメータ変化部１０及び教師データ生成部５０の構成は、本発明に関する「教師データ生成装置」に該当し、パラメータ変化部１０及び教師データ生成部５０を実施する処理は、本発明の「教師データ生成方法」に該当し、パラメータ変化部１０及び教師データ生成部５０の処理をコンピュータに実行させるプログラムは、本発明に関する「教師データ生成プログラム」に該当する。
【００３９】
画像認識の認識率を高めるには、大量の教師データが必要となるが、例えば、横向きの人間の顔の画像のように近似した大量の教師データ（画像）だけがある場合、横向きの人間の顔を認識できても、前向きの人の顔や後ろ向きの人の顔は認識できない。人間は顔だけでなく、全身を見ても認識でき、全身の一部が隠れた画像なども認識率を高めるのに有効である。したがって、教師データの数だけでなく、教師データのバリエーションを増やすことが認識率を高める上で重要である。
【００４０】
画像分類タスクでは、教師データとして、教師画像と正解の分類（以下、「ラベル」、「クラス」、「カテゴリ」と称することもある）とのペアが与えられる。この実施例１では３ＤＣＧを用いて教師画像と正解とのペアを生成する。なお、実際には、画像分類タスク以外にも他タスクの教師データ（Ｏｂｊｅｃｔ  Ｄｅｔｅｃｔｉｏｎ、Ｓｅｍａｎｔｉｃ  Ｓｅｇｍｅｎｔａｔｉｏｎなど）を用いた実施例も考えられる。
この実施例１では、様々な描画パラメータをランダムに生成している。これは、パラメータの組み合わせを一定の間隔で網羅すると教師データの数が爆発的に増加するためである。
【００４１】
図４は、パラメータ変化部及び教師データ生成部を含む全体の一例を示すブロック図である。
生成対象ラベル・生成数１１は、ユーザ入力による「生成対象ラベル」及び「生成数」であり、教師データ生成制御部１２は、この「生成数」の分量の教師データを生成する。
「生成対象ラベル」は、生成対象物の種類を表し、例えば、車両（例えば、乗用車、トラック、バス、二輪車等）、動物（例えば、鳥、犬、猫、牛、馬、猿等）、植物（例えば、イチゴ、トマト、バラ等）など、人間が視覚により検知できるものが挙げられる。
「生成数」としては、教師データの生成数を表し、例えば、複数の「生成対象ラベル」について、それぞれ１，０００枚ずつ生成する場合などが挙げられる。
【００４２】
教師データ生成制御部１２は、生成対象ラベル・生成数１１でユーザから入力された「生成対象ラベル」及び「生成数」に基づき、教師データ生成部５０を実行し、生成した教師データを教師データ格納部１３へ格納する機能を有する。
【００４３】
パラメータ変化部１０は、入力された「生成対象ラベル」に基づき、認識対象の３Ｄモデルにおける描画パラメータを変化させ、変化させた描画パラメータを教師データ生成部５０に出力する機能を有する。
【００４４】
教師データ生成部５０は、入力された「生成対象ラベル」の教師データの１ペアを生成する機能を有する。教師データは、「入力データ」と「正解ラベル」とのペアで構成される。ここでは、特に「入力データ」を「教師画像」と呼ぶ。
【００４５】
教師データ格納部１３は、教師データ生成部５０で生成した教師データを格納し、例えば、図１に示すストレージ装置７などの補助記憶装置が該当する。
【００４６】
ここで、図５は、パラメータ変化部及び教師データ生成部を含む全体の処理の流れの一例を示すフローチャートである。以下、図４を参照して、パラメータ変化部及び教師データ生成部全体の処理の流れについて説明する。
【００４７】
ステップＳ２０１では、ユーザが「生成対象ラベル集合」及び各ラベルの「生成数」を教師データ生成制御部１２に入力すると、教師データ生成制御部１２が、処理をＳ２０２に移行する。
【００４８】
ステップＳ２０２では、教師データ生成制御部１２が、入力された「生成対象ラベル集合」の中から、「生成対象ラベル」をランダムに決定すると、処理をＳ２０３に移行する。
【００４９】
ステップＳ２０３では、教師データ生成制御部１２が、パラメータ変化部１０へ「生成対象ラベル」を出力し、パラメータ変化部１０が認識対象３Ｄモデルの描画パラメータを変化させ、変化させた描画パラメータを教師データ生成部５０へ出力すると、処理をＳ２０４に移行する。
【００５０】
ステップＳ２０４では、教師データ生成部５０が、パラメータ変化部１０で変化させた描画パラメータに基づき、教師データを生成し、生成した教師データを教師データ生成制御部１２に送ると、処理をＳ２０５に移行する。
【００５１】
ステップＳ２０５では、教師データ生成制御部１２が、教師データ生成部５０から送られた教師データを教師データ格納部１３へ格納すると、処理をＳ２０６に移行する。
【００５２】
ステップＳ２０６では、教師データ生成制御部１２が、現在の「生成対象ラベル」１１について、「生成数」の教師データを生成し終えたか否かを判断する。
教師データ生成制御部１２が「生成数」に達していないと判定すると、処理をＳ２０３に戻し、「生成数」に達したと判定すると、処理をＳ２０７に移行する。
【００５３】
ステップＳ２０７では、教師データ生成制御部１２が、「生成対象ラベル集合」の全ラベルについて「生成数」の教師データを生成し終えたか否かを判断する。
教師データ生成制御部１２が「生成対象ラベル集合」の全ラベルについて「生成数」に達していないと判定すると、処理をＳ２０８に移行し、ステップＳ２０８では、教師データ生成制御部１２が、教師データの生成が完了していない「生成対象ラベル」を選択すると、処理をＳ２０３に戻す。
一方、教師データ生成制御部１２が「生成数」に達したと判定すると、本処理を終了する。
【００５４】
図６は、パラメータ変化部１０及び教師データ生成部５０の一例を示すブロック図である。
パラメータ変化部１０は、認識対象３Ｄモデルバリエーション生成部１５、カメラモデル生成部１６、照明モデル生成部１７、及び背景３Ｄモデル取得部１８を有しており、これらにより、描画パラメータを変化させる。
教師データ生成部５０は、教師画像生成部１９を有しており、パラメータ変化部１０が変化させた描画パラメータに基づき、教師データ生成制御部１２の制御により、教師データ２１を生成する。
【００５５】
生成対象ラベル１１は、教師データ生成制御部１２に入力されるパラメータであり、教師データ生成部５０は、ユーザ入力された生成対象ラベル１１の教師データを生成する。
教師データ生成制御部１２により、パラメータ変化部１０としての認識対象３Ｄモデルバリエーション生成部１５、カメラモデル生成部１６、照明モデル生成部１７、及び背景３Ｄモデル取得部１８が作動し、それぞれの出力を教師データ生成部５０の教師画像生成部１９に与え、教師画像２０が得られる。
【００５６】
認識対象３Ｄモデルバリエーション生成部１５は、認識対象３Ｄモデルの材質及び形状の少なくともいずれかを変化させる。材質及び形状の少なくともいずれかを変化させることにより、認識率が向上する。
【００５７】
カメラモデル生成部１６は、認識対象の三次元モデルのカメラの位置、カメラの向き及びカメラの画角の少なくともいずれかを変化させてカメラモデルを生成する。
【００５８】
照明モデル生成部１７は、さまざまな光源についてのパラメータをランダムに与え、照明モデルを生成する。光源としては、例えば、並行光源、点光源、環境光などが挙げられる。
【００５９】
背景３Ｄモデル取得部１８は、認識対象３Ｄモデル以外の背景３Ｄモデルをランダムに取得する。
【００６０】
教師画像生成部１９は、認識対象３Ｄモデルバリエーション生成部１５、カメラモデル生成部１６、照明モデル生成部１７、及び背景３Ｄモデル取得部１８の出力から、ディープラーニングの教師データに適した教師画像を生成する。
なお、背景３Ｄモデルとカメラモデルの組み合わせ次第では、教師画像の生成に失敗する場合がある。教師画像の生成に失敗した場合には、カメラモデルを再計算する。
【００６１】
ここで、図７は、パラメータ変化部及び教師データ生成部の処理の流れの一例を示すフローチャートである。以下、図６を参照して、パラメータ変化部及び教師データ生成部の処理の流れについて説明する。
【００６２】
ステップＳ３０１では、教師データ生成制御部１２が、生成対象ラベル１１に基づき、パラメータ変化部１０を起動すると、処理をＳ３０２、Ｓ３０３、及びＳ３０４に移行する。
【００６３】
ステップＳ３０２では、教師データ生成制御部１２が、認識対象３Ｄモデルバリエーション生成部１５へ生成対象ラベル１１を入力すると、処理をＳ３０５に移行する。
【００６４】
ステップＳ３０３では、照明モデル生成部１７が、照明モデルを出力すると、処理をＳ３０７に移行する。
【００６５】
ステップＳ３０４では、背景３Ｄモデル取得部１８が、背景３Ｄモデルを出力すると、処理をＳ３０７に移行する。
【００６６】
ステップＳ３０５では、認識対象３Ｄモデルバリエーション生成部１５が、入力された生成対象ラベル１１に基づき、認識対象３Ｄモデルバリエーションを出力すると、処理をＳ３０６、及びＳ３０７に移行する。
【００６７】
ステップＳ３０６では、カメラモデル生成部１６が、カメラモデルを出力すると、処理をＳ３０７に移行する。
【００６８】
ステップＳ３０７では、教師データ生成制御部１２が、認識対象３Ｄモデルバリエーション、カメラモデル、照明モデル、及び背景３Ｄモデルを教師画像生成部１９に入力すると、処理をＳ３０８に移行する。
【００６９】
ステップＳ３０８では、教師画像生成部１９が、教師画像を生成し、生成した教師画像を教師データ生成制御部１２に出力すると、本処理を終了する。
【００７０】
−認識対象３Ｄモデルバリエーション生成部−
認識対象３Ｄモデルバリエーション生成部１５は、教師画像の描画に用いる３Ｄモデルについて、材質及び形状の少なくともいずれかを変化させる。３Ｄモデルの材質及び形状の少なくともいずれかを変化させることにより、認識率を向上させることができる。
図８は、認識対象３Ｄモデルバリエーション生成部１５のブロック図である。この図８の認識対象３Ｄモデルバリエーション生成部１５は、ユーザからの生成対象ラベル１１を入力とし、認識対象３Ｄモデルバリエーション１５９を出力する。
認識対象３Ｄモデルバリエーション１５９とは、認識対象３Ｄモデル１５３を、認識対象３Ｄモデルバリエーション生成部１５で加工したものである。
【００７１】
３Ｄモデル格納部１５２は、認識対象３Ｄモデル１５３を格納する。認識対象３Ｄモデル１５３は、ユーザ入力される生成対象ラベル１１の「ラベル情報」と紐づけて格納されている。「ラベル情報」は、生成した認識対象３Ｄモデルがディープラーニングにより何に認識されるべきかという情報である。
【００７２】
認識対象３Ｄモデル１５３は、教師データの元となる３Ｄモデルである。認識対象３Ｄモデル１５３は、一般的な３Ｄモデルのフォーマットを用いるが、以下の点が特殊である。３Ｄモデルは、形状変換部１５４により形状が、材質生成部１５６により材質が変化する。しかし、例えば、車両の３Ｄモデルの形状変換について考えると、楕円形の車両のタイヤは現実には存在せず、また、フロントガラスが不透明な車両も現実にはほぼ存在しない。したがって、認識対象３Ｄモデルにおいては、形状変換部１５４と材質生成部１５６が認識対象３Ｄモデルのどの部分に影響を及ぼすのか、あるいは影響を及ぼさないかの制御が必要である。そのような情報は認識対象３Ｄモデルのメタ情報として付与されている。
【００７３】
形状変換強度パラメータテーブル１５５の範囲内で認識対象３Ｄモデルを変形する。認識対象３Ｄモデル全体を変形することはなく、認識対象３Ｄモデルに付与されたメタ情報で指定された部分のみを変形する。
認識対象３Ｄモデルの変形は、以下のそれぞれを実施する。
（１）シアー：ランダムなベクトルに沿って、形状変換強度パラメータテーブル１５５の範囲内でランダムな大きさをシアーする。
（２）膨張・縮退：形状変換強度パラメータテーブル１５５の範囲内で膨張及び縮退の少なくともいずれかを行う。
【００７４】
形状変換強度パラメータテーブル１５５は、形状変換部１５４による形状の変形の強さを指定するパラメータであり、例えば、ユーザに指定されるユーザ指定値である。
【００７５】
材質生成部１５６は、色範囲テーブル１５７及び材質範囲テーブル１５８に基づき材質を生成し、認識対象３Ｄモデルに設定する。なお、認識対象３Ｄモデル全体の材質を設定することはなく、認識対象３Ｄモデルに付与されたメタ情報で指定された部分のみの材質を設定する。
【００７６】
色範囲テーブル１５７は、材質生成部１５６で生成される３Ｄモデルの材質の色の範囲を指定するパラメータであり、ユーザ指定値である。色範囲テーブル１５７は、例えば、ＲＧＢの３チャンネルのそれぞれについて０〜２５５の整数の範囲を任意に指定することができる。この実施例１では、例えば、Ｒ：３０〜２５５、Ｇ：０〜１８０、Ｂ：０〜１９２の範囲で指定する。
【００７７】
材質範囲テーブル１５８は、材質生成部１５６で生成される３Ｄモデルの材質の滑らかさ及び金属光沢の少なくともいずれかの範囲を指定するパラメータであり、ユーザ指定値である。材質範囲テーブル１５８は、例えば、滑らかさ及び金属光沢のそれぞれについて０．０〜１．０の任意の浮動小数を指定することができる。この実施例１では、例えば、滑らかさ：０．３〜０．５、金属光沢：０．１〜１．０の範囲に指定する。
【００７８】
ここで、図９は、認識対象３Ｄモデルバリエーション生成部の処理の流れの一例を示すフローチャートである。以下、図８を参照して、認識対象３Ｄモデルバリエーション生成部の処理の流れについて説明する。
【００７９】
ステップＳ４０１では、教師データ生成制御部１２が、ユーザ入力の生成対象ラベル１１を、認識対象３Ｄモデルバリエーション生成制御部１５１へ入力すると、処理をＳ４０２に移行する。
【００８０】
ステップＳ４０２では、認識対象３Ｄモデルバリエーション生成制御部１５１が、入力された生成対象ラベルの３Ｄモデルを、３Ｄモデル格納部１５２からランダムに選択すると、処理をＳ４０３に移行する。
【００８１】
ステップＳ４０３では、認識対象３Ｄモデルバリエーション生成制御部１５１が、選択した認識対象３Ｄモデル１５３を形状変換部１５４に入力すると、処理をＳ４０４に移行する。
【００８２】
ステップＳ４０４では、形状変換部１５４が、形状変換強度パラメータテーブル１５５に基づき、認識対象３Ｄモデル１５３の形状を変形すると、処理をＳ４０５に移行する。
【００８３】
ステップＳ４０５では、認識対象３Ｄモデルバリエーション生成制御部１５１が、形状変換部１５４で形状を変形した認識対象３Ｄモデルを材質生成部１５６に入力すると、処理をＳ４０６に移行する。
【００８４】
ステップＳ４０６では、材質生成部１５６が、色範囲テーブル１５７及び材質範囲テーブル１５８に基づき、ランダムに色及び材質を生成すると、処理をＳ４０７に移行する。
【００８５】
ステップＳ４０７では、材質生成部１５６が、形状変換部１５４で形状を変形した認識対象３Ｄモデルについて、予め、認識対象３Ｄモデルに付与されている色及び材質を、生成した色及び材質に設定すると、処理をＳ４０８に移行する。
【００８６】
ステップＳ４０８では、認識対象３Ｄモデルバリエーション生成制御部１５１が、形状及び材質の少なくともいずれかの設定を終了した認識対象３Ｄモデルバリエーションを、教師画像生成部１９及びカメラモデル生成部１６に出力すると、本処理が終了する。
【００８７】
−カメラモデル生成部−
カメラモデル生成部１６は、認識対象の三次元モデルのカメラの位置、カメラの向き及びカメラの画角の少なくともいずれかを変化させてカメラモデルを生成する。
図１０は、カメラモデル生成部１６の一例を示すブロック図である。この図１０のカメラモデル生成部１６において、ディープラーニングに適した教師データを生成するため、生成された教師データが正しく分類できるようにレンダリングされることを保証する必要がある。そのために、認識対象３Ｄモデルが適切な大きさでレンダリングされることを考慮してカメラモデルを生成する。
カメラの位置、カメラの向きについては、単純なベクトル計算によりカメラが認識対象３Ｄモデルを確実にとらえられるように決定できる。
カメラ画角については、以下に説明するように特別な考慮が必要である。
【００８８】
図１１及び図１２は、カメラが認識対象３Ｄモデルを捉えているときに、カメラ画角が大きすぎる場合や小さすぎる場合には、どのような教師画像が生成されるかを示した説明図である。
図１１に示すように、カメラ画角が大きすぎると、教師画像の中で認識対象３Ｄモデルが小さく描画されてしまう。一方、図１２に示すように、カメラ画角が小さすぎると、教師画像中に認識対象３Ｄモデルが大きく描画されてしまい、認識対象３Ｄモデルの一部しか描画されない。
【００８９】
図１３を参照して、カメラ画角は、以下のようにして求めることができる。
（１）ユーザが指定したカメラ位置範囲テーブル１６１（バウンディングボックス・距離指定）内のランダムな位置を計算することにより、カメラ位置を決定する。
（２）仮のカメラ位置から認識対象３Ｄモデルのバウンディングボックスの中心を向く向きを計算することにより、カメラ向きを決定する。したがって、カメラの視線のベクトルは認識対象３Ｄモデルの中心を通る。
（３）カメラの視線ベクトルと、カメラから認識対象３Ｄモデルの各頂点へのベクトルの角度を求め、最大の角度をカメラ画角とする。
【００９０】
ここで、図１４は、カメラモデル生成部の処理の流れの一例を示すフローチャートである。以下、図１０〜図１３を参照して、カメラモデル生成部の処理の流れについて説明する。
【００９１】
ステップＳ５０１では、認識対象３Ｄモデルバリエーション生成制御部１５１から、カメラモデル生成部１６へ、形状及び材質の少なくともいずれかの設定を終了した認識対象３Ｄモデルバリエーション１５９を入力すると、処理をＳ５０２に移行する。
【００９２】
ステップＳ５０２では、カメラモデル生成部１６が、ユーザ指定のカメラ位置範囲テーブル１６１に基づき、カメラの位置を決定すると、処理をＳ５０３に移行する。
【００９３】
ステップＳ５０３では、カメラモデル生成部１６が、決定したカメラの位置から、カメラの向きを認識対象３Ｄモデルの中心を向く向きに設定すると、処理をＳ５０４に移行する。
【００９４】
ステップＳ５０４では、カメラモデル生成部１６が、カメラの位置及びカメラの向きからカメラの画角を決定し、カメラモデル１６２を生成すると、処理をＳ５０５に移行する。
【００９５】
ステップＳ５０５では、カメラモデル生成部１６が、生成したカメラモデル１６２を教師画像生成部１９に出力すると、本処理を終了する。
【００９６】
−照明モデル生成部−
照明モデル生成部１７は、三次元（３Ｄ）空間上に光源を設定することにより、認識対象３Ｄモデルの照明モデルを生成する。光源の設定によって３Ｄモデルは可視物となる。光源としては、例えば、並行光源、点光源、環境光などが挙げられる。
【００９７】
並行光源は、無限遠からの光をシミュレートする光源であり、例えば、太陽光は地球からはほとんど並行光源のように見える。点光源のように距離によって光の強さが変化することはなく、一定である。
並行光源としては、例えば、角度、強さ、色（ユーザ指定の色温度（４，０００Ｋ〜６，０００Ｋ等））、数（０又は１）をランダムに定める。
【００９８】
点光源は、電球やスポットライトのような一点から光を全方向に放射する光源であり、光源から離れるにつれて、光は弱くなる。
点光源としては、例えば、位置、強さ、色（ＲＧＢのそれぞれ８ｂｉｔ整数で幅を指定、０〜２５５が最大）、数（０からユーザ指定数）をランダムに定める。
【００９９】
環境光は、総ての物体を均一に照らす光源であり、間接光を擬似的に表現する。３６０度全方位からの光の強さをシミュレーションすることができる。例えば、現実的にランダムに生成することが難しいため、いくつかのバリエーションを環境光ＨＤＲ（Ｈｉｇｈ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ）マップ格納部に格納しておき、それらをランダムにブレンドすることでレンダリング対象の環境光を生成する。
環境光ＨＤＲマップ格納部は、認識対象以外、つまり背景のうち空（空の色、雲、明るさ）を格納する。環境光ＨＤＲマップとは、３６０度全方位からの光の強さを表すビットマップファイルである。
【０１００】
−背景３Ｄモデル取得部−
背景３Ｄモデル取得部１８は、背景３Ｄモデル格納部から、ランダムな背景３Ｄモデルを取得する。背景３Ｄモデルとしては、例えば、町並み、ビル街、道路等の都市景観；海、木立、川、山等の自然風景などが挙げられる。
背景３Ｄモデル格納部は、認識対象以外、つまり背景のうち空（例えば、空の色、雲、明るさ）を除く部分の背景３Ｄモデルを格納する。なお、空は、環境光を用いることにより空が形成されるので指定しない。
ディープラーニングが背景３Ｄモデルを学習することを避けるため、十分なバリエーション、又は生成機構を備えることが必要となる。また、画像認識を堅牢にするために認識対象３Ｄモデルが一部隠れるような背景３Ｄモデルを用いることが好ましい。
【０１０１】
−教師画像生成部−
図１５に示すように、教師画像生成部１９は、教師画像生成制御部１９２により制御され、３Ｄ空間レンダラ１９５、遮蔽率計算部１９８、及び保存パラメータ生成部１９９を有している。
教師画像生成制御部１９２へ、遮蔽率閾値１９１、認識対象３Ｄモデルバリエーション１５９、背景３Ｄモデル１９３、照明モデル１９４、及びカメラモデル１６２を入力すると、教師画像生成制御部１９２は、教師画像２０、又は「エラー」を出力する。
【０１０２】
遮蔽率閾値１９１は、ユーザ入力であってもよいが、認識対象の三次元モデルの分類毎に設定することもできる。遮蔽率閾値１９１は、例えば、遮蔽率をビックデータで取得し、相関をとることにより求めることができる。これにより、認識率が向上する。
教師画像２０は、教師データの入力データに相当する画像である。
「エラー」は、遮蔽率が高すぎ、教師データとして用いる教師画像の生成に失敗したことを意味し、この場合は、上位でリトライする。
【０１０３】
３Ｄ空間レンダラ１９５は、三次元（３Ｄ）空間をレンダリングするソフトであり、認識対象３Ｄモデルバリエーション１５９、背景３Ｄモデル１９３、照明モデル１９４、及びカメラモデル１６２を入力すると、中間データ１９６及び教師画像候補１９７を出力する。
【０１０４】
中間データ１９６は、遮蔽率計算部１９８に入力するためのデータである。中間データ１９６は、教師データ画像と同等の画素数をもつ画像データであり、教師データ画像と同じレンダリング条件下で、以下の２つをレンダリングする。
（１）認識対象３Ｄモデルのみのレンダリング結果（０、１の２値画像、レンダリング対象が１、それ以外が０；図１６のＡ参照）
（２）認識対象３Ｄモデルと背景３Ｄモデル両方を含む、遮蔽を考慮したレンダリング結果（０、１の２値画像、レンダリング対象が１、それ以外が０；図１６のＢ参照）
【０１０５】
教師画像候補１９７は、教師画像の候補であり、遮蔽率計算部１９８により認識対象３Ｄモデルの遮蔽率が閾値以下であると、保存パラメータ生成部１９９を経て、教師画像２０に生成される。
【０１０６】
認識対象３Ｄモデルは、背景３Ｄモデル１９３とカメラモデル１６２の結果次第で、背景３Ｄモデル１９３に隠蔽される可能性がある。そのような認識対象３Ｄモデルは教師データとして用いることができないため、対象から除外する必要がある。一方、認識対象３Ｄモデルの一部が遮蔽された画像は教師データの堅牢性を上げることが知られており、教師データとして好ましい。
したがって、認識対象３Ｄモデルがカメラに十分写っているか否かを判定し、遮蔽率閾値以下のものを教師データとして用いる。
遮蔽率は、図１６に示すように、３Ｄ空間レンダラ１９５の中間データ１９６から、遮蔽率計算部１９８により、下記数式により算出することができる。
【０１０７】
【数１】
2018163554.tif 000004
ただし、数式において、３Ｄ空間レンダラ１９５が出力する中間データのうち、認識対象３Ｄモデルのみの２値画像（１−Ａ）をＡ、認識対象３Ｄモデルと背景の３Ｄモデルの両方を含む２値画像（１−Ｂ）をＢとする。ｆ（ｘ）は２値画像ｘのうち、１の面積（ピクセル数）を返す関数である。
【０１０８】
保存パラメータ生成部１９９は、教師画像の保存フォーマット、及び画質を決定する部であり、以下のパラメータをランダムに定める。
（１）保存フォーマット・・・「ｊｐｇ」、「ｐｎｇ」
（２）画質・・・「ｊｐｇ」では保存品質を設定することができる。「ｐｎｇ」では１ピクセル当たりに使用する色数を、決定するビット深度を指定することができる。
【０１０９】
ここで、図１７は、教師画像生成部の処理の流れの一例を示すフローチャートである。以下、図１５及び図１６を参照して、教師画像生成部の処理の流れについて説明する。
【０１１０】
ステップＳ６０１では、教師画像生成制御部１９２に、遮蔽率閾値１９１、認識対象３Ｄモデルバリエーション１５９、背景３Ｄモデル１９３、照明モデル１９４、及びカメラモデル１６２が入力されると、処理をＳ６０２に移行する。
【０１１１】
ステップＳ６０２では、教師画像生成制御部１９２が、入力された遮蔽率閾値１９１、認識対象３Ｄモデルバリエーション１５９、背景３Ｄモデル１９３、照明モデル１９４、及びカメラモデル１６２を、３Ｄ空間レンダラ１９５に出力すると、処理をＳ６０３に移行する。
【０１１２】
ステップＳ６０３では、３Ｄ空間レンダラ１９５が、中間データ１９６及び教師画像候補１９７を生成すると、処理をＳ６０４に移行する。
【０１１３】
ステップＳ６０４では、遮蔽率計算部１９８が、中間データ１９６を用いて遮蔽率を計算すると、処理をＳ６０５に移行する。
【０１１４】
ステップＳ６０５では、教師画像生成制御部１９２が、遮蔽率が遮蔽率閾値を超えるか、又はそれ以下であるかを判断する。
遮蔽率が遮蔽率閾値を超えると判定すると、処理をＳ６０７に移行し、教師画像の生成が失敗し、上位へエラーを返す。一方、遮蔽率が遮蔽率閾値以下であると判定すると、処理をＳ６０６に移行する。
【０１１５】
ステップＳ６０６では、保存パラメータ生成部１９９が、ランダムに保存パラメータを生成すると、処理をＳ６０８に移行する。
【０１１６】
ステップＳ６０８では、教師画像生成制御部１９２が、生成された保存パラメータに従って、教師画像２０を生成すると、本処理を終了する。
【０１１７】
以上により、堅牢性が高く、実写の教師データに近い認識率を有する教師データが得られる。教師データは、以下に説明する学習部及び推論部に好適に用いられる。
【０１１８】
＜学習部＞
学習部２００は、教師データ生成部５０で生成した教師データを用いて学習を行う。
図１８は、学習部全体の一例を示すブロック図であり、図１９は、学習部全体の他の一例を示すブロック図である。
教師データ生成部５０で生成した教師データを用いて行う学習は、通常のディープラーニング学習と同様にして行うことができる。
【０１１９】
教師データ格納部１３には、教師データ生成部５０で生成した入力データ（画像）と正解ラベルとのペアである教師データが格納されている。
【０１２０】
ニューラルネットワーク定義２０１は、多層構造のニューラルネットワーク（ディープニューラルネットワーク）の種別、多数のニューロン同士がどのようにつながっているのかという構造を定義したファイルであり、例えば、ユーザに指定されるユーザ指定値である。
【０１２１】
学習済み重み２０２は、ユーザ指定値であり、学習を開始する際に、予め学習済み重みを与えておくことが通常行われており、学習済み重みは、ニューラルネットワークの各ニューロンの重みを格納したファイルである。なお、学習において学習済み重みは必須ではない。
【０１２２】
ハイパーパラメータ２０３は、学習に関するパラメータ群であり、学習を何回行うのか、学習中の重みをどのような幅で更新するのかなどが格納されているファイルである。
【０１２３】
学習中重み２０５は、学習中のニューラルネットワークの各ニューロンの重みを表し、学習することで更新される。
【０１２４】
ディープラーニング学習部２０４は、教師データ格納部１３からミニバッチ２０７と呼ばれる単位で教師データを取得する。この教師データを入力データと正解ラベルとに分離し、順伝播処理と逆伝播処理とを行うことにより、学習中重みを更新して、学習済み重みを出力する。
学習の終了条件は、学習回数がハイパーパラメータの指定値に達しているか、又は損失関数２０８が閾値を下回ったかで決定される。
【０１２５】
ここで、図２０は、学習部全体の処理の流れの一例を示すフローチャートである。以下、図１８及び図１９を参照して、学習部全体の処理の流れについて説明する。
【０１２６】
ステップＳ７０１では、ユーザが、ディープラーニング学習部２０４に、教師データ格納部１３、ニューラルネットワーク定義２０１、ハイパーパラメータ２０３、及び必要に応じて学習済み重み２０２を与えると、処理をＳ７０２に移行する。
【０１２７】
ステップＳ７０２では、ディープラーニング学習部２０４が、ニューラルネットワーク定義２０１に従いニューラルネットワークを構築すると、処理をＳ７０３に移行する。
【０１２８】
ステップＳ７０３では、ディープラーニング学習部２０４が、学習済み重み２０２を有しているか否かを判断する。
学習済み重み２０２を有していないと判定すると、ディープラーニング学習部２０４が、構築したニューラルネットワークにニューラルネットワーク定義２０１で指定されたアルゴリズムに従い、初期値を設定すると（Ｓ７０５）、処理をＳ７０６に移行する。一方、学習済み重み２０２を有していると判定すると、ディープラーニング学習部２０４が、構築したニューラルネットワークに学習済み重み２０２を設定すると（Ｓ７０４）、処理をＳ７０６に移行する。なお、初期値は、ニューラルネットワーク定義２０１に記載されている。
【０１２９】
ステップＳ７０６では、ディープラーニング学習部２０４が、教師データ格納部１３から指定されたバッチサイズの教師データ集合を取得すると、処理をＳ７０７に移行する。
【０１３０】
ステップＳ７０７では、ディープラーニング学習部２０４が、教師データ集合を「入力データ」と「正解ラベル」とに分離すると、処理をＳ７０８に移行する。
【０１３１】
ステップＳ７０８では、ディープラーニング学習部２０４が、ニューラルネットワークに「入力データ」を入力し、順伝播処理を実施すると、処理をＳ７０９に移行する。
【０１３２】
ステップＳ７０９では、ディープラーニング学習部２０４が、順伝播処理の結果として、得られた「推論ラベル」と「正解ラベル」を損失関数２０８に与え、損失２０９を計算すると、処理をＳ７１０に移行する。なお、損失関数２０８は、ニューラルネットワーク定義２０１に記載されている。
【０１３３】
ステップＳ７１０では、ディープラーニング学習部２０４が、ニューラルネットワークに損失２０９を入力し、逆伝播処理を実施して、学習中重みを更新すると、処理をＳ７１１に移行する。
【０１３４】
ステップＳ７１１では、ディープラーニング学習部２０４が、終了条件に到達したか否かを判断する。ディープラーニング学習部２０４が、終了条件に到達していないと判定すると、処理をＳ７０６に戻し、終了条件に到達したと判定すると、処理をＳ７１２に移行する。なお、終了条件は、ハイパーパラメータ２０３に記載されている。
【０１３５】
ステップＳ７１２では、ディープラーニング学習部２０４が、学習中重みを学習済み重みとして出力し、本処理を終了する。
【０１３６】
＜推論部＞
推論部３００は、学習部２００で求めた学習済み重みを用いて推論（テスト）を行う。
図２１は、推論部全体の一例を示すブロック図であり、図２２は、推論部全体の他の一例を示すブロック図である。
テストデータ格納部３０１を用いた推論は、通常のディープラーニング推論と同様にして行うことができる。
テストデータ格納部３０１は、推論用のテストデータを格納した。テストデータは入力データ（画像）のみである。
ニューラルネットワーク定義３０２は、学習部２００のニューラルネットワーク定義２０１と基本的な構造は共通する。
学習済み重み３０３は、推論は学習した成果を評価するため、必ず与える。
ディープラーニング推論部３０４は、学習部２００のディープラーニング学習部２０４に対応する。
【０１３７】
ここで、図２３は、推論部全体の処理の流れの一例を示すフローチャートである。以下、図２１及び図２２を参照して、推論部全体の処理の流れについて説明する。
【０１３８】
ステップＳ８０１では、ユーザが、ディープラーニング推論部３０４に、テストデータ格納部３０１、ニューラルネットワーク定義３０２、及び学習済み重み３０３を与えると、処理をＳ８０２に移行する。
【０１３９】
ステップＳ８０２では、ディープラーニング推論部３０４が、ニューラルネットワーク定義３０２に従いニューラルネットワークを構築すると、処理をＳ８０３に移行する。
【０１４０】
ステップＳ８０３では、ディープラーニング推論部３０４が、構築したニューラルネットワークに学習済み重み３０３を設定すると、処理をＳ８０４に移行する。
【０１４１】
ステップＳ８０４では、ディープラーニング推論部３０４が、テストデータ格納部３０１から、指定されたバッチサイズのテストデータ集合を取得すると、処理をＳ８０５に移行する。
【０１４２】
ステップＳ８０５では、ディープラーニング推論部３０４が、ニューラルネットワークにテストデータ集合の入力データを入力し、順伝播処理を実施すると、処理をＳ８０６に移行する。
【０１４３】
ステップＳ８０６では、ディープラーニング推論部３０４が、推論ラベルを出力すると、本処理を終了する。
【０１４４】
以上により、実施例１の画像処理装置を用いて、車種分類を行った結果、９２％の正答率が得られた。
上記車種分類では、市販されている１２車種についての分類を実施した。テストデータとして、１２車種それぞれについて実写画像１００枚、計１，２００枚の実写画像を用いた。教師データは本実施例により生成したもののみを用いた。正答率は、１，２００枚の実写画像を正しく分類できた割合である。
上記正答率が得られた理由は、認識対象３Ｄモデルについて見た目にかかわる描画パラメータ（例えば、材質、形状、照明、カメラ）を複合的に変化させることにより、ディープラーニングに適したバリエーションの増強が行えること、また、従来は生成できなかった遮蔽を考慮した教師データを生成できる点が挙げられる。認識対象の見た目に関するパラメータを組み合わせることで、イレギュラーな状態（市販の色以外の塗料で着色された車両、照明による白とび、レンズ歪みによる実写画像上の形状の歪み）を認識することができ、また、教師データが遮蔽されたものを含むことで遮蔽された実写画像を認識することが可能となる。
【０１４５】
（実施例２）
実施例２の画像処理装置は、実施例１の画像処理装置において、教師データを永続化しないこと以外は、実施例１と同様であるため、既に説明した同一の構成については、同じ参照符号を付してその説明を省略する。
【０１４６】
実施例１において、教師データ生成部５０は、生成した教師データを教師データ格納部１３に格納すること、即ち、教師データを永続化した後、教師データ格納部１３から教師データを読み込んで学習を実施する。ディープラーニングでは、教師データはバリエーションが多いほど認識率が高くなるため、必然的にデータ量が増大し、教師データを格納するためのコストが増大する。このことは、生成される教師データを、直接、ディープラーニング学習部２０４に入力する構成とすることにより解消できる。
【０１４７】
学習は、ミニバッチと呼ばれる単位で複数枚まとめて行われる。１つのミニバッチに含まれる教師データ数をバッチサイズと呼ぶ。一定枚数をメモリやファイルシステムに一時的にバッファリングする。即ち、実施例２においては、教師データ生成と学習とを並行に進めることができる。
【０１４８】
図２４は、実施例２の画像処理装置全体の一例を示すブロック図である。
パラメータ変化部１０及び教師データ生成部５０は、実施例１と同様である。
教師データバッファ３２は、教師データ生成部５０で生成された教師データを指定されたバッチサイズの数に一時的に格納する。
ディープラーニング学習部２０４は、教師データバッファ３２に格納されたバッチを用い、指定された回数の学習を実施する。実施例１のディープラーニング学習部２０４と同様である。
学習制御部３１は、教師データ生成の制御、及びディープラーニング学習部２０４へのミニバッチの入力を行う。
ディープラーニング推論部３０４は、実施例１のディープラーニング推論部３０４と同様である。
【０１４９】
図２５は、実施例２の画像処理装置全体の処理の流れの一例を示すフローチャートである。以下、図２４を参照して、実施例２の画像処理装置全体の処理の流れについて説明する。
【０１５０】
ステップＳ９０１では、ユーザが、学習制御部３１に、ハイパーパラメータとして学習回数、バッチサイズを指定すると、処理をＳ９０２に移行する。
【０１５１】
ステップＳ９０２では、学習制御部３１が、ランダムに生成対象ラベルを教師データ生成部５０へ入力し、教師データ生成部５０が描画パラメータを変化させ、変化させた描画パラメータを教師データ生成部５０に入力すると、処理をＳ９０３に移行する。
【０１５２】
ステップＳ９０３では、学習制御部３１が、教師データ生成部５０で生成した教師データを教師データバッファ３２へ追加すると、処理をＳ９０４に移行する。
【０１５３】
ステップＳ９０４では、教師データバッファ３２に格納された教師データ数がハイパーパラメータのバッチサイズ以上であるか否かを判断する。
教師データ数がバッチサイズ未満であると判定すると、処理をＳ９０２に戻し、教師データ数がバッチサイズ以上であると判定すると、処理をＳ９０５に移行する。
【０１５４】
ステップＳ９０５では、学習制御部３１が、教師データバッファ３２のミニバッチをディープラーニング学習部２０４に入力すると、処理をＳ９０６に移行する。
【０１５５】
ステップＳ９０６では、ディープラーニング学習部２０４が、入力されたミニバッチの学習を開始すると、処理をＳ９０７に移行する。
【０１５６】
ステップＳ９０７では、学習制御部３１が、教師データバッファ３２をクリアし、処理をＳ９０２、及びＳ９０８に移行する。
【０１５７】
ステップＳ９０８では、ディープラーニング学習部２０４が、ミニバッチの学習を完了し、学習回数をインクリメントすると、処理をＳ９０９に移行する。
【０１５８】
ステップＳ９０９では、ディープラーニング学習部２０４が、現在の学習回数がユーザの指定値に到達したか否かを判断する。
学習回数がユーザの指定値に到達していないと判定すると、処理をＳ９１０に移行し、ミニバッチの入力を待ち合わせて、処理をＳ９０６に移行する。一方、学習回数がユーザの指定値に到達したと判定すると、本処理を終了する。
【０１５９】
以上により、実施例２の画像処理装置を用いて、実施例１と同様にして、車種分類を行った結果、実施例１と同レベルの正答率が得られた。
【０１６０】
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
認識対象の教師データを用いて画像認識を行う画像処理装置において、
前記認識対象の三次元モデルにおける描画パラメータを変化させるパラメータ変化部と、
前記パラメータ変化部が変化させた前記描画パラメータに基づき、前記認識対象の教師データを生成する教師データ生成部と、
を有することを特徴とする画像処理装置。
（付記２）
前記画像処理装置において、
前記描画パラメータが、前記認識対象の三次元モデルの材質、前記認識対象の三次元モデルの形状、前記認識対象の三次元モデルのカメラの位置、前記認識対象の三次元モデルのカメラの向き、前記認識対象の三次元モデルのカメラの画角、前記認識対象の三次元モデルの照明条件、背景三次元モデル、遮蔽率及び教師画像の保存条件から選択される少なくとも一つ又はこれらの組み合わせである付記１に記載の画像処理装置。
（付記３）
前記画像処理装置はさらに、
前記認識対象の三次元モデルのカメラの位置、カメラの向き及びカメラの画角の少なくともいずれかを変化させてカメラモデルを生成するカメラモデル生成部を有する付記２に記載の画像処理装置。
（付記４）
前記画像処理装置はさらに、
前記認識対象の三次元モデルの照明条件を変化させて照明モデルを生成する照明モデル生成部を有する付記２から３のいずれか一項に記載の画像処理装置。
（付記５）
前記画像処理装置はさらに、
背景三次元モデル格納部から前記背景三次元モデルを取得する背景三次元モデル取得部を有する付記２から４のいずれか一項に記載の画像処理装置。
（付記６）
前記画像処理装置はさらに、
前記遮蔽率が遮蔽率閾値以下である教師画像を生成する教師画像生成部を有する付記２から５のいずれか一項に記載の画像処理装置。
（付記７）
前記画像処理装置において、
前記遮蔽率閾値が、前記認識対象の三次元モデルの分類毎に設定される付記６に記載の画像処理装置。
（付記８）
前記画像処理装置はさらに、
前記教師データ生成部で生成した教師データを用いて学習を行う学習部を有する付記１から７のいずれか一項に記載の画像処理装置。
（付記９）
前記画像処理装置はさらに、
前記学習部で求めた学習済み重みを用いて推論を行う推論部を有する付記８に記載の画像処理装置。
（付記１０）
前記画像処理装置において、
前記画像認識は、ディープラーニングの手法により行われる付記１から９のいずれか一項に記載の画像処理装置。
（付記１１）
認識対象の教師データを用いて画像認識を行う画像処理装置の画像処理方法において、
前記画像処理装置が有するパラメータ変化部が、前記認識対象の三次元モデルにおける描画パラメータを変化させ、
前記画像処理装置が有する教師データ生成部が、前記認識対象の教師データを生成する画像処理方法。
（付記１２）
認識対象の教師データを用いて画像認識を行う画像処理装置の画像処理プログラムにおいて、
前記画像処理装置が有するパラメータ変化部に、前記認識対象の三次元モデルにおける描画パラメータを変化させ、
前記画像処理装置が有する教師データ生成部に、前記認識対象の教師データを生成させる画像処理プログラム。
（付記１３）
認識対象の画像認識を行うための教師データを生成する教師データ生成装置を用いた教師データ生成方法において、
前記教師データ生成装置が有するパラメータ変化部が、前記認識対象の三次元モデルにおける描画パラメータを変化させ、
前記教師データ生成装置が有する教師データ生成部が、前記パラメータ変化部が変化させた前記描画パラメータに基づき、前記認識対象の教師データを生成する教師データ生成方法。
（付記１４）
前記教師データ生成方法において、
前記描画パラメータが、前記認識対象の三次元モデルの材質、前記認識対象の三次元モデルの形状、前記認識対象の三次元モデルのカメラの位置、前記認識対象の三次元モデルのカメラの向き、前記認識対象の三次元モデルのカメラの画角、前記認識対象の三次元モデルの照明条件、背景三次元モデル、遮蔽率及び教師画像の保存条件から選択される少なくとも一つ又はこれらの組み合わせである付記１３に記載の教師データ生成方法。
（付記１５）
前記教師データ生成装置はさらに、
前記認識対象の三次元モデルのカメラの位置、カメラの向き及びカメラの画角の少なくともいずれかを変化させてカメラモデルを生成するカメラモデル生成部を有する付記１４に記載の教師データ生成方法。
（付記１６）
前記教師データ生成装置はさらに、
前記認識対象の三次元モデルの照明条件を変化させて照明モデルを生成する照明モデル生成部を有する付記１４から１５のいずれか一項に記載の教師データ生成方法。
（付記１７）
前記教師データ生成装置はさらに、
背景三次元モデル格納部から背景三次元モデルを取得する背景三次元モデル取得部を有する付記１４から１６のいずれか一項に記載の教師データ生成方法。
（付記１８）
前記教師データ生成装置はさらに、
前記遮蔽率が遮蔽率閾値以下である教師画像を生成する教師画像生成部を有する付記１４から１７のいずれか一項に記載の教師データ生成方法。
（付記１９）
前記教師データ生成装置において、
前記遮蔽率閾値が、前記認識対象の三次元モデルの分類毎に設定される付記１８に記載の教師データ生成方法。
（付記２０）
認識対象の画像認識を行うための教師データを生成する教師データ生成装置において、
前記認識対象の三次元モデルにおける描画パラメータを変化させるパラメータ変化部と、
前記パラメータ変化部が変化させた描画パラメータに基づき、前記認識対象の教師データを生成する教師データ生成部と、を有する教師データ生成装置。
（付記２１）
認識対象の画像認識を行うための教師データを生成する教師データ生成装置を用いた教師データ生成プログラムにおいて、
前記画像処理装置が有するパラメータ変化部に、前記認識対象の三次元モデルにおける描画パラメータを変化させ、
前記画像処理装置が有する教師データ生成部に、前記認識対象の教師データを生成させる教師データ生成プログラム。
【符号の説明】
【０１６１】
１０      パラメータ変化部
１２      教師データ生成制御部
１５      認識対象３Ｄモデルバリエーション生成部
１６      カメラモデル生成部
１７      照明モデル生成部
１８      背景３Ｄモデル取得部
１９      教師画像生成部
２０      教師画像
２１      教師データ
５０      教師データ生成部
１００      画像処理装置
２００      学習部
３００      推論部
【図１】
2018163554.tif 000005
【図２】
2018163554.tif 000006
【図３】
2018163554.tif 000007
【図４】
2018163554.tif 000008
【図５】
2018163554.tif 000009
【図６】
2018163554.tif 000010
【図７】
2018163554.tif 000011
【図８】
2018163554.tif 000012
【図９】
2018163554.tif 000013
【図１０】
2018163554.tif 000014
【図１１】
2018163554.tif 000015
【図１２】
2018163554.tif 000016
【図１３】
2018163554.tif 000017
【図１４】
2018163554.tif 000018
【図１５】
2018163554.tif 000019
【図１６】
2018163554.tif 000020
【図１７】
2018163554.tif 000021
【図１８】
2018163554.tif 000022
【図１９】
2018163554.tif 000023
【図２０】
2018163554.tif 000024
【図２１】
2018163554.tif 000025
【図２２】
2018163554.tif 000026
【図２３】
2018163554.tif 000027
【図２４】
2018163554.tif 000028
【図２５】
2018163554.tif 000029