(57)【要約】【課題】適切な照明条件で撮影されたのではない撮影画像を用いて現在位置を取得した場合には、現在位置の精度が低くなるという問題があった。【解決手段】移動体１は、撮影部１１と、撮影画像を補正する画像補正装置１２と、補正された撮影画像を用いて現在位置を取得する現在位置取得部１５と、現在位置を用いて移動制御を行う移動制御部１７とを備え、画像補正装置１２は、教師あり機械学習によって学習された学習器が記憶される学習器記憶部１３と、撮影画像を、学習器を用いて、基準となる照明条件である基準照明条件で撮影された撮影画像となるように補正する画像補正部１４とを備える。このようにして、補正後の撮影画像を用いて現在位置を取得することによって、より精度の高い現在位置を取得することができ、移動の精度も向上することになる。【選択図】図１
2020129241.tif 000002
【特許請求の範囲】
【請求項１】
教師あり機械学習によって学習された学習器が記憶される学習器記憶部と、
移動体に装着された撮影部によって撮影された撮影画像を、前記学習器を用いて、基準となる照明条件である基準照明条件で撮影された撮影画像となるように補正する画像補正部と、を備えた画像補正装置。
【請求項２】
前記学習器は、物体認識用の畳み込みニューラルネットワークの所定の中間層までを少なくとも含む物体認識学習器であり、
前記画像補正部は、
前記撮影部によって撮影された撮影画像を前記物体認識学習器に適用することによって、あらかじめ決められた中間層の出力画像であるコンテンツ出力画像を取得する出力画像取得部と、
基準照明条件で撮影された撮影画像である基準撮影画像が前記物体認識学習器に適用されることによって得られた、中間層の出力画像のチャネル間の相関であるスタイル行列が記憶されるスタイル行列記憶部と、
入力画像を前記物体認識学習器に適用することによって得られる前記あらかじめ決められた中間層の出力画像と前記コンテンツ出力画像との誤差、及び前記入力画像を前記物体認識学習器に適用することによって得られる中間層の出力画像のチャネル間の相関である出力行列と前記スタイル行列との誤差に応じた目的関数を最適化する前記入力画像である補正後の撮影画像を取得する最適化部と、を備えた、請求項１記載の画像補正装置。
【請求項３】
前記学習器は、撮影画像である訓練用入力画像と、当該撮影画像に対応する画像であり、基準照明条件での画像である訓練用出力画像との組を複数用いて学習された学習器であり、
前記画像補正部は、前記撮影部によって撮影された撮影画像を前記学習器に適用することによって、基準照明条件で撮影されたように補正された撮影画像を取得する、請求項１記載の画像補正装置。
【請求項４】
自律的に移動する移動体であって、
撮影画像を取得する撮影部と、
前記撮影画像について補正を行う、請求項１から請求項３のいずれか記載の画像補正装置と、
補正後の前記撮影画像を用いて、前記移動体の現在位置を取得する現在位置取得部と、
前記移動体を移動させる移動機構と、
前記現在位置取得部によって取得された現在位置を用いて、前記移動機構を制御する移動制御部と、を備えた移動体。
【請求項５】
撮影画像である訓練用入力画像と、当該撮影画像に対応する画像であり、基準となる照明条件である基準照明条件での画像である訓練用出力画像との複数の組の学習結果である学習器であって、
撮影画像が適用されると、基準照明条件で撮影されたように補正された撮影画像を取得することができる、学習器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影された画像を、適切な照明条件で撮影された画像となるように補正する画像補正装置等に関する。
【背景技術】
【０００２】
従来の移動体において、移動環境に配置されたマーカを撮影し、その撮影したマーカを用いることによって、マーカに対する位置決めを行うことがあった。そのような移動体において、マーカの撮影時に逆光になることがあり得る。例えば、移動環境に配置されているマーカの背後にシャッターや窓が存在する状況において、通常は、シャッターやブラインド等が閉じられていることによってマーカの撮影時に逆光にならないが、商品搬出やその他の理由などによってシャッターやブラインド等が開けられた際に、逆光になることがある。そのような場合には、撮影画像において白飛びなどのため、マーカを適切に認識することができず、マーカを用いた位置決めを行うことができなくなるという問題があった。
【０００３】
なお、関連した技術として、逆光状態で撮像する場合にも、光量検出手段によって検出された光量の情報を用いて、適切な露出調整を行う作物列検出装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−２６５５４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に記載された技術では、露出補正を行うために光量検出手段を別途、備える必要があり、それに応じて装置が複雑化すると共に、コストが増大するという問題があった。
また、夕方には、西日の影響によって色が変化することもあるが、そのような変化に対応することもできないという問題もあった。
【０００６】
一般的に言えば、移動体等において撮影された撮影画像について、露出や色などの照明条件が適切なものとなるように補正したいという要望があった。
【０００７】
本発明は、上記課題を解決するためになされたものであり、撮影された撮影画像が、適切な照明条件で撮影された画像となるように補正することができる画像補正装置等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明による画像補正装置は、教師あり機械学習によって学習された学習器が記憶される学習器記憶部と、移動体に装着された撮影部によって撮影された撮影画像を、学習器を用いて、基準となる照明条件である基準照明条件で撮影された撮影画像となるように補正する画像補正部と、を備えたものである。
このような構成により、学習器を用いることによって、撮影画像を適切に補正することができる。また、その補正後の撮影画像が用いられることによって、移動体の周囲の状況をより正確に把握することができるようになる。その結果として、例えば、より正確な位置を取得したり、より正確な周囲環境の情報を取得したり、より正確なユーザからの指示を取得したりすることができるようになる。また、撮影画像を補正するために、光量検出手段などを用いる必要もないため、装置の複雑化や、それに応じたコストの増大も回避することができる。また、例えば、西日などに対応するための色の調整をも行うことができるようになる。
【０００９】
また、本発明による画像補正装置では、学習器は、物体認識用の畳み込みニューラルネットワークの所定の中間層までを少なくとも含む物体認識学習器であり、画像補正部は、撮影部によって撮影された撮影画像を物体認識学習器に適用することによって、あらかじめ決められた中間層の出力画像であるコンテンツ出力画像を取得する出力画像取得部と、基準照明条件で撮影された撮影画像である基準撮影画像が物体認識学習器に適用されることによって得られた、中間層の出力画像のチャネル間の相関であるスタイル行列が記憶されるスタイル行列記憶部と、入力画像を物体認識学習器に適用することによって得られるあらかじめ決められた中間層の出力画像とコンテンツ出力画像との誤差、及び入力画像を物体認識学習器に適用することによって得られる中間層の出力画像のチャネル間の相関である出力行列とスタイル行列との誤差に応じた目的関数を最適化する入力画像である補正後の撮影画像を取得する最適化部と、を備えてもよい。
このような構成により、入力画像について、形状は撮影画像に近づき、テクスチャの特徴は基準撮影画像に近づくように最適化を行うことができ、結果として、撮影画像が、基準照明条件で撮影されたものとなるように補正することができる。
【００１０】
また、本発明による画像補正装置では、学習器は、撮影画像である訓練用入力画像と、撮影画像に対応する画像であり、基準照明条件での画像である訓練用出力画像との組を複数用いて学習された学習器であり、画像補正部は、撮影部によって撮影された撮影画像を学習器に適用することによって、基準照明条件で撮影されたように補正された撮影画像を取得してもよい。
このような構成により、学習器に撮影画像を適用することによって、基準照明条件で撮影されたものとなるように補正することができる。また、学習器が畳み込みニューラルネットワークである場合には、例えば、その補正された撮影画像を短期間で取得することもでき、リアルタイムで補正を行うことも可能になる。
【００１１】
また、本発明による移動体は、自律的に移動する移動体であって、撮影画像を取得する撮影部と、撮影画像について補正を行う画像補正装置と、補正後の撮影画像を用いて、移動体の現在位置を取得する現在位置取得部と、移動体を移動させる移動機構と、現在位置取得部によって取得された現在位置を用いて、移動機構を制御する移動制御部と、を備えたものである。
このような構成により、補正後の撮影画像を用いて現在位置が取得されるため、より正確な現在位置の取得が可能となる。その結果、移動体の移動がより精度の高いものになる。
【００１２】
また、本発明による学習器は、撮影画像である訓練用入力画像と、撮影画像に対応する画像であり、基準となる照明条件である基準照明条件での画像である訓練用出力画像との複数の組の学習結果である学習器であって、撮影画像が適用されると、基準照明条件で撮影されたように補正された撮影画像を取得することができる、ものである。
このような構成により、この学習器を用いることによって、撮影画像が基準照明条件で撮影されたものとなるように容易に補正することができるようになる。
【発明の効果】
【００１３】
本発明による画像補正装置等によれば、例えば、撮影画像が適切な照明条件で撮影された画像となるように補正することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態による移動体の構成を示すブロック図
【図２】同実施の形態による学習器製造装置の構成を示すブロック図
【図３】同実施の形態による移動体の動作を示すフローチャート
【図４】同実施の形態による学習器製造装置の動作を示すフローチャート
【図５Ａ】同実施の形態における配置されたマーカと移動体とを示す模式図
【図５Ｂ】同実施の形態における配置されたマーカと移動体とを示す模式図
【図６】同実施の形態における画像補正装置の他の構成の一例を示すブロック図
【発明を実施するための形態】
【００１５】
以下、本発明による移動体、画像補正装置、及び学習器製造装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。本実施の形態による移動体は、撮影された撮影画像が、適切な照明条件で撮影された撮影画像となるように補正する画像補正装置を有するものである。
【００１６】
図１は、本実施の形態による移動体１の構成を示すブロック図である。本実施の形態による移動体１は、自律的に移動するものであり、撮影部１１と、画像補正装置１２と、現在位置取得部１５と、移動機構１６と、移動制御部１７とを備える。なお、移動体１が自律的に移動するとは、移動体１がユーザ等から受け付ける操作指示に応じて移動するのではなく、自らの判断によって目的地に移動することであってもよい。その目的地は、例えば、手動で決められたものであってもよく、または、自動的に決定されたものであってもよい。また、その目的地までの移動は、例えば、移動経路に沿って行われてもよく、または、そうでなくてもよい。また、自らの判断によって目的地に移動するとは、例えば、進行方向、移動や停止などを移動体１が自ら判断することによって、目的地まで移動することであってもよい。また、例えば、移動体１が、障害物に衝突しないように移動することであってもよい。移動体１は、例えば、台車であってもよく、移動するロボットであってもよい。ロボットは、例えば、エンターテインメントロボットであってもよく、監視ロボットであってもよく、搬送ロボットであってもよく、清掃ロボットであってもよく、動画や静止画を撮影するロボットであってもよく、その他のロボットであってもよい。
【００１７】
撮影部１１は、移動体１の周囲の撮影画像を取得する。この撮影画像の用途は問わないが、本実施の形態では、移動体１の現在位置を取得するために撮影画像が用いられる場合について主に説明する。なお、それ以外の撮影画像の用途としては、例えば、交通信号機の点灯色などのように、移動体１の周囲環境の認識のために用いられてもよく、ユーザが移動体１にジェスチャーによって指示を与える場合に、そのジェスチャーを認識するために用いられてもよく、その他の用途のために用いられてもよい。
【００１８】
なお、撮影画像を用いて現在位置を取得する方法としては、例えば、マーカを撮影し、そのマーカを用いて現在位置を取得する方法や、Ｖｉｓｕａｌ−ＳＬＡＭ（Simultaneous Localization and Mapping）などによって知られている方法を用いてもよい。また、あらかじめ作成された地図（例えば、周囲の物体の撮影画像に応じた地図など）が記憶されている場合には、その地図と撮影画像とを用いて、その撮影画像に対応する位置を特定することによって現在位置を取得することができる。本実施の形態では、現在位置を取得するためにマーカの撮影画像が用いられる場合について主に説明する。
【００１９】
撮影部１１は、例えば、ＣＣＤやＣＭＯＳなどのイメージセンサによって実現することができる。また、撮影部１１は、撮影対象からの光をイメージセンサの受光面に結像させるための光学系を含んでいてもよい。また、撮影画像のデータ形式等は問わない。撮影部１１は、移動体１に固定されているため、移動体１の移動に応じて撮影対象が異なることになる。したがって、撮影部１１は、連続的に撮影を行い、撮影範囲にマーカが含まれる場合に、そのマーカを含む撮影画像が現在位置取得部１５等によって用いられてもよい。なお、撮影範囲にマーカが含まれるかどうかは、例えば、マーカのパターンマッチングによって行ってもよく、その他の方法によって行ってもよい。
【００２０】
図５Ａは、移動体１の撮影部１１によってマーカ５が撮影されている状況を示す模式図である。図５Ａで示されるように、撮影部１１の撮影範囲にマーカ５が存在することにより、撮影部１１は、マーカ５の撮影画像を取得することができる。なお、撮影部１１の露出は、例えば、自動露出であってもよく、または、固定の露出であってもよい。また、露出は、例えば、露光時間（シャッター速度）であってもよく、絞り値（Ｆ値）であってもよく、その両方であってもよい。
【００２１】
マーカは、視覚的に認識可能な２次元の図形であり、移動体１の位置決めのために移動環境に配置されている。例えば、移動体１が給電位置や、搬送対象の積み降ろし位置に正確に移動できるようにするため、マーカが配置されていてもよい。マーカの形状（図形の形状）は問わないが、例えば、正方形状や、長方形状、その他の多角形状、円形状、楕円形状、また、それらの組み合わせであってもよい。なお、その形状は、特定可能な３以上の特徴点を有していることが好適である。また、その特徴点の少なくとも３点については、特徴点間のサイズが既知であることが好適である。そのサイズは、マーカと、撮影部１１との相対的な位置関係を取得するのに必要であるため、移動体１の図示しない記録媒体において保持されており、現在位置取得部１５等がアクセス可能になっていることが好適である。マーカは、例えば、紙やフィルム等に印刷され、移動環境に配置される。移動体１の移動環境に配置されるマーカのワールド座標系における位置（例えば、ワールド座標系とマーカの座標系との相対的な関係（平行移動、回転に関する情報）であってもよい。）は分かっていてもよく、または、そうでなくてもよい。前者の場合には、マーカの撮影画像を用いることによって、移動体１のワールド座標系における位置を取得することができるようになり、後者の場合には、マーカの撮影画像を用いることによって、移動体１のマーカに対する相対的な位置を取得することができるようになる。したがって、マーカのワールド座標系における位置が分からない場合には、移動環境に配置されているマーカに対する相対的な位置によって、位置決めを行うことになるため、移動体１の目的とする位置決め場所に対して、あらかじめ決められた相対的な位置となるように、そのマーカが配置されることが好適である。
【００２２】
画像補正装置１２は、撮影部１１によって取得された撮影画像について補正を行うものであり、学習器記憶部１３と、画像補正部１４とを備える。この補正は、照明条件に関する補正である。照明条件に関する補正は、例えば、露出に関する補正であってもよく、色に関する補正であってもよく、その両方であってもよい。本実施の形態では、照明条件に関する補正が露出と色との両方の補正である場合について主に説明する。
【００２３】
学習器記憶部１３では、教師あり機械学習によって学習された学習器が記憶される。本実施の形態では、まず、この学習器が、撮影画像である訓練用入力画像と、その撮影画像に対応する画像であり、基準となる照明条件である基準照明条件での画像である訓練用出力画像との組を複数用いて学習された学習器である場合について説明し、それ以外の場合については後述する。
【００２４】
訓練用出力画像は、訓練用入力画像に対応した画像である。すなわち、訓練用出力画像は、照明条件（例えば、露出や色など）以外は、訓練用入力条件と同じであることが好適である。例えば、画像に含まれる形状は、訓練用入力画像と訓練用出力画像とで同じであることが好適である。基準照明条件での画像とは、例えば、基準照明条件で撮影された画像のことである。基準照明条件で撮影された画像は、理想的な照明条件で撮影された画像である。例えば、昼間に屋外で撮影された画像は、基準照明条件での画像となる。すなわち、白色光（例えば、自然光であってもよく、人工光であってもよい。）の下で適正露出によって撮影された画像が、基準照明条件での画像であると考えてもよい。基準照明条件で撮影された画像は、例えば、基準照明条件で撮影されたに等しい画像であってもよい。基準照明条件で撮影されたに等しい画像とは、例えば、基準照明条件で撮影されたものとなるように写真編集ソフトウェアによって修正された画像であってもよい。適正露出とは、露出がオーバーでもなく、アンダーでもない状況のことである。白飛びや黒つぶれになっている画像は、基準照明条件での画像ではないと考えてもよい。なお、訓練用入力画像と訓練用出力画像との組を訓練画像と呼ぶこともある。学習器は、例えば、ニューラルネットワーク（ＮＮ：Neural Network）の学習結果であってもよく、それ以外の機械学習の学習結果であってもよい。
【００２５】
ニューラルネットワークは、例えば、畳み込みニューラルネットワーク（ＣＮＮ：Convolutional Neural Network）であってもよく、それ以外のニューラルネットワーク（例えば、全結合層から構成されるニューラルネットワーク等）であってもよい。また、ニューラルネットワークが少なくとも１個の中間層（隠れ層）を有する場合には、そのニューラルネットワークの学習は、深層学習（ディープラーニング、Deep Learning）であると考えてもよい。また、機械学習にニューラルネットワークを用いる場合において、そのニューラルネットワークの層数、各層におけるノード数、各層の種類（例えば、畳み込み層、全結合層など）等については、適宜、選択したものを用いてもよい。なお、入力層と出力層のノード数は、通常、訓練画像に含まれる入力と出力とによって決まることになる。
【００２６】
なお、学習器が学習器記憶部１３で記憶されているとは、例えば、学習器そのもの（例えば、入力に対して値を出力する関数や学習結果のモデル等）が記憶されていることであってもよく、学習器を構成するために必要なパラメータ等の情報が記憶されていることであってもよい。後者の場合であっても、そのパラメータ等の情報を用いて学習器を構成できるため、実質的に学習器が学習器記憶部１３で記憶されていると考えることができるからである。本実施の形態では、学習器そのものが学習器記憶部１３で記憶されている場合について主に説明する。
【００２７】
学習器記憶部１３に学習器が記憶される過程は問わない。例えば、記録媒体を介して学習器が学習器記憶部１３で記憶されるようになってもよく、通信回線等を介して送信された学習器が学習器記憶部１３で記憶されるようになってもよい。学習器記憶部１３での記憶は、ＲＡＭ等における一時的な記憶でもよく、または、長期的な記憶でもよい。学習器記憶部１３は、所定の記録媒体（例えば、半導体メモリや磁気ディスク、光ディスクなど）によって実現されうる。
【００２８】
ここで、学習器の生成について説明する。図２は、本実施の形態による学習器製造装置２の構成を示すブロック図である。本実施の形態による学習器製造装置２は、訓練画像受付部２１と、学習器製造部２２と、学習器出力部２３とを備える。学習器製造装置２は、通常、学習を行う汎用の情報処理装置であるが、例えば、学習を行う専用の装置であってもよく、サーバ等であってもよい。
【００２９】
訓練用入力画像は、例えば、移動体１の撮影部１１によって撮影されたものであってもよく、撮影部１１とは異なるカメラ等によって手動で撮影されたものであってもよい。なお、Ｖｉｓｕａｌ−ＳＬＡＭと同様の手法による現在位置の取得が行われる場合には、訓練用入力画像は、移動体１の移動領域における撮影画像であることが好適であるが、そうでなくてもよい。また、マーカを用いた現在位置の取得が行われる場合には、訓練用入力画像は、マーカの撮影画像であることが好適であるが、そうでなくてもよい。訓練用入力画像には、基準照明条件の画像の他に、基準照明条件ではない照明条件での画像も含まれていることが好適である。例えば、西日で撮影された画像や、逆光の条件で撮影された画像などが含まれていることが好適である。
【００３０】
訓練用出力画像は、訓練用入力画像に対応する画像であり、基準照明条件での画像である。訓練用入力画像に対応する画像は、例えば、画像に含まれる被写体などの構図が訓練用入力画像と同じ画像であってもよい。訓練用出力画像は、例えば、撮影された画像であってもよく、または、撮影された画像が写真編集ソフトウェアによって修正された画像であってもよい。前者の場合には、例えば、訓練用入力画像を撮影した撮影部によって、同じ位置、撮影方向、画角において基準照明条件となるように撮影された撮影画像が、その訓練用入力画像と組になる訓練用出力画像であってもよい。基準照明条件となるように撮影するため、例えば、露光時間や絞り値が調整されてもよく、また、撮影部への光学フィルタの装着や、撮影部での色温度の調節等が行われてもよい。また、後者の場合、すなわち、訓練用出力画像が、撮影された画像が写真編集ソフトウェアによって修正された画像である場合には、訓練用入力画像の露出や色などが適切に修正された後の画像が、訓練用出力画像であってもよい。
【００３１】
訓練画像受付部２１は、撮影画像である訓練用入力画像と、その撮影画像に対応する画像であり、基準照明条件での画像である訓練用出力画像との組を複数受け付ける。訓練画像受付部２１は、例えば、有線または無線の通信回線を介して送信された複数の訓練画像を受信してもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）から読み出された複数の訓練画像を受け付けてもよい。なお、訓練画像受付部２１は、受け付けを行うためのデバイス（例えば、モデムやネットワークカードなど）を含んでもよく、または含まなくてもよい。また、訓練画像受付部２１は、ハードウェアによって実現されてもよく、または所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００３２】
学習器製造部２２は、訓練用入力画像と訓練用出力画像との複数の組を学習することによって学習器を製造する。この学習器は、撮影画像である訓練用入力画像と、その撮影画像に対応する画像であり、基準照明条件での画像である訓練用出力画像との複数の組の学習結果である。したがって、例えば、この学習器に撮影画像が適用されると、基準照明条件で撮影されたように補正された撮影画像を取得することができる。この学習の詳細については後述する。
【００３３】
学習器出力部２３は、学習器製造部２２によって製造された学習器を出力する。学習器出力部２３によって出力された学習器が、図１で示される移動体１の学習器記憶部１３で記憶されることになる。ここで、この出力は、例えば、所定の機器への通信回線を介した送信でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。なお、学習器出力部２３は、出力を行うデバイス（例えば、通信デバイスなど）を含んでもよく、または含まなくてもよい。また、学習器出力部２３は、ハードウェアによって実現されてもよく、または、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００３４】
次に、学習器製造部２２による機械学習について説明する。この機械学習は、上記のように、教師ありのものであり、ニューラルネットワークの学習であってもよい。そのニューラルネットワークは、例えば、畳み込みニューラルネットワークであってもよい。その畳み込みニューラルネットワークは、例えば、複数の畳み込み層を有するものであってもよい。また、畳み込みニューラルネットワークは、畳み込み層の後段にプーリング層を有していてもよく、または、そうでなくてもよい。また、複数の畳み込み層の後段に、全結合層が１以上存在してもよく、または、そうでなくてもよい。全結合層やプーリング層を有していない場合には、畳み込みニューラルネットワークは、例えば、複数の連続した畳み込み層を有しているものであってもよい。通常、訓練用入力画像と訓練用出力画像とは同じ画素数であるため、畳み込みニューラルネットワークが全結合層やプーリング層を有しない場合には、畳み込み層において、適宜、パディングが行われてもよい。本実施の形態による学習器は、入力と出力の画像サイズが同じであるため、その学習器の畳み込みニューラルネットワークは、複数の畳み込み層のみを有しており、プーリング層や全結合層を有していないものであってもよい。その場合には、畳み込み層においてパディングを行うことによって、出力マップが縮小しないようにしてもよい。通常、訓練用入力画像のサイズと訓練用出力画像のサイズとは同じだからである。また、畳み込みニューラルネットワークがプーリング層を有する場合には、入力のサイズよりも出力マップのサイズが小さくなるため、後段に全結合層などが存在することが好適である。その全結合層によって、出力層のマップサイズが入力層と同じになるように調節されてもよい。
【００３５】
また、各層におけるストライドは問わないが、例えば、畳み込み層におけるストライドは、例えば、１であってもよい。また、プーリング層のストライドは、２以上であることが好適である。また、各層において適宜、パディングを行ってもよい。そのパディングは、例えば、ゼロパディングであってもよく、画像の最外周の画素値を外挿するパディングであってもよく、画像の各辺で折り返した画素値とするパディングであってもよい。
【００３６】
また、各層において、バイアスを用いてもよく、または、用いなくてもよい。バイアスを用いるかどうかは、層ごとに独立して決められてもよい。そのバイアスは、例えば、層ごとのバイアスであってもよく、または、フィルタごとのバイアスであってもよい。前者の場合には、各層において１個のバイアスが用いられることになり、後者の場合には、各層において１個以上（フィルタと同数）のバイアスが用いられることになる。畳み込み層でバイアスを用いる場合には、各画素値にフィルタのパラメータを掛けて足し合わせた結果にバイアスを加算したものが、活性化関数に入力されることになる。
【００３７】
ニューラルネットワークにおける各設定は、次のようであってもよい。活性化関数は、例えば、ＲｅＬＵ（正規化線形関数）であってもよく、シグモイド関数であってもよく、その他の活性化関数であってもよい。また、学習では、例えば、誤差逆伝搬法を用いてもよく、ミニバッチ法を用いてもよい。また、損失関数（誤差関数）は、平均二乗誤差であってもよい。また、ｅｐｏｃｈ数（パラメータの更新回数）は特に問わないが、過剰適合とならないｅｐｏｃｈ数が選択されることが好適である。なお、機械学習における学習方法としては、公知の方法を用いることができ、その詳細な説明を省略する。
【００３８】
なお、画像は、分割されて学習されてもよい。その場合には、学習器に撮影画像を適用する際にも、撮影画像を分割して適用してもよい。また、その分割時に、重なりがあるように画像が分割されてもよく、または、そうでなくてもよい。画像を分割して学習したり、画像を分割して学習器に適用したりすることは、すでに公知であり、その詳細な説明を省略する。
【００３９】
図１に戻り、画像補正部１４は、移動体１に装着された撮影部１１によって撮影された撮影画像を、学習器記憶部１３で記憶されている学習器を用いて、基準照明条件で撮影された撮影画像となるように補正する。ここでは、学習器を用いた撮影画像の補正が、学習器に撮影画像を適用することによって行われる場合について主に説明する。具体的には、画像補正部１４は、撮影部１１によって撮影された撮影画像を学習器に入力することによって、その学習器の出力である補正後の撮影画像を取得することができる。
【００４０】
現在位置取得部１５は、補正後の撮影画像を用いて、移動体１の現在位置を取得する。補正後の撮影画像にマーカが含まれる場合には、現在位置取得部１５は、補正後の撮影画像において認識したマーカを用いて、移動体１の現在位置を取得する。ここで、現在位置取得部１５がマーカの撮影画像を用いて直接、得ることができるのは、移動体１のマーカに対する相対的な現在位置（例えば、ローカル座標系であるマーカ座標系での移動体１の位置など）である。一方、マーカのワールド座標系における位置が既知である場合には、現在位置取得部１５は、その相対的な現在位置と、ワールド座標系におけるマーカの位置とを用いて、移動体１のワールド座標系における位置である現在位置をも取得できることになる。現在位置取得部１５が取得する移動体１の現在位置は、そのように、ローカル座標系における現在位置であってもよく、ワールド座標系における現在位置であってもよい。本実施の形態では、後者の場合について主に説明する。現在位置取得部１５が取得する現在位置は、角度（姿勢）を含まないものであってもよく、または角度を含んでいてもよい。その角度とは、マーカの面に対する相対的な角度であってもよく、ワールド座標系における角度であってもよい。本実施の形態では、現在位置取得部１５によって取得される位置に、角度も含まれる場合について主に説明する。なお、補正後の撮影画像は、適切な照明条件で撮影されたものとなっているため、適切にマーカを認識することができ、そのマーカを用いた位置の取得を高精度に行うことができるようになる。また、現在位置取得部１５は、上記のように、Ｖｉｓｕａｌ−ＳＬＡＭと同様の方法によって現在位置を取得してもよい。
【００４１】
なお、マーカを用いて現在位置を取得する場合には、撮影画像にマーカが含まれていなければ、現在位置を取得できないことになる。したがって、撮影画像にマーカが含まれていない状況に対応するため、現在位置取得部１５は、撮影画像を用いて現在位置を取得する以外の方法によっても、移動体１の現在位置を取得してもよい。その現在位置の取得は、例えば、無線通信を用いて行われてもよく、周囲の物体までの距離の測定結果を用いて行われてもよく、現在位置を取得できるその他の方法を用いてなされてもよい。無線通信を用いて現在位置を取得する方法としては、例えば、ＧＰＳ（Global Positioning System）を用いる方法や、屋内ＧＰＳを用いる方法、最寄りの無線基地局を用いる方法などが知られている。また、例えば、周囲の物体までの距離の測定結果を用いることによって現在位置を取得する方法としては、例えば、ＳＬＡＭなどによって知られている方法を用いてもよい。また、あらかじめ作成された地図（例えば、周囲の物体までの距離の測定結果を有する地図など）が記憶されている場合には、現在位置取得部１５は、周囲の物体までの距離を測定し、地図を用いて、その測定結果に対応する位置を特定することによって現在位置を取得してもよい。また、現在位置取得部１５は、例えば、自律航法装置を用いて現在位置を取得してもよい。また、現在位置取得部１５は、移動体１の向き（方向）を含む現在位置を取得することが好適である。その方向は、例えば、北を０度として、時計回りに測定された方位角によって示されてもよく、その他の方向を示す情報によって示されてもよい。その向きは、電子コンパスや地磁気センサによって取得されてもよい。
【００４２】
また、現在位置取得部１５は、透視歪マッチングやハフ変換などの位置ずれ計算アルゴリズムを用いて、補正後の撮影画像から移動体１の位置ずれを算出してもよい。この場合には、現在位置取得部１５は、通常、別の手法によって現在位置を取得し、その現在位置の取得とは別に、補正後の撮影画像から移動体１の位置ずれを算出して、現在位置を補正するようにしてもよい。
【００４３】
次に、マーカを用いた位置の取得について簡単に説明する。ここで、撮影部１１のローカル座標系をＣＣとし、マーカ５のローカル座標系をＣＭとする。また、ある点に関して、撮影部１１の座標系ＣＣにおける座標値を（ｘ，ｙ，ｚ）＝（ｐｘ，ｐｙ，ｐｚ）とし、マーカ５の座標系ＣＭにおける座標値を（ｘ１，ｙ１，ｚ１）＝（ｐｘ１，ｐｙ１，ｐｚ１）とすると、両座標値は、両座標系間で座標値を変換する同次変換行列ＰＣＭを用いて次式のように関連づけられることになる。なお、Ｔは、転置を示している。
（ｐｘ，ｐｙ，ｐｚ，１）Ｔ＝ＰＣＭ（ｐｘ１，ｐｙ１，ｐｚ１，１）Ｔ
【００４４】
上式の同次変換行列ＰＣＭには、引数ｑｘ，ｑｙ，ｑｚ，θ，φ，ψが含まれており、それらは、撮影部１１の座標系ＣＣに対するマーカの座標系ＣＭの平行移動（ｑｘ，ｑｙ，ｑｚ）と回転（θ，φ，ψ）とを示すものである。なお、上記のように、マーカの３点の特徴点間のサイズが既知であるとすると、そのサイズ（特徴点間の距離）を用いることによって、同次変換行列ＰＣＭに含まれる各引数を求められることが知られており、同次変換行列ＰＣＭを特定することができる。このようにして、マーカを撮影することにより、同次変換行列ＰＣＭを算出でき、撮影部１１の座標系ＣＣとマーカ５の座標系ＣＭとの関係、すなわち、マーカ５に対する撮影部１１の相対的な位置を取得することができる。なお、移動体１のローカル座標系において、撮影部１１の向きを含む位置は既知である。したがって、撮影部１１とマーカ５との位置関係が分かれば、移動体１とマーカ５との位置関係も分かることになる。このようにして、移動体１は、マーカ５に対する移動体１の位置を取得することができるようになる。
【００４５】
また、マーカ５のワールド座標系における位置が既知である場合には、移動体１とマーカ５との相対的な位置関係と、マーカ５のワールド座標系における位置とを用いることによって、移動体１のワールド座標系における位置をも取得できることは言うまでもない。
【００４６】
また、本実施の形態では、マーカを用いた位置の取得に同次変換行列を用いる場合について主に説明したが、そうでなくてもよい。同次変換行列を用いない方法によっても、マーカを用いた位置の取得を行うことができることは言うまでもない。
【００４７】
移動機構１６は、移動体１を移動させる。移動機構１６は、例えば、移動体１を全方向に移動できるものであってもよく、または、そうでなくてもよい。全方向に移動できるとは、任意の方向に移動できることである。移動機構１６は、例えば、走行部（例えば、車輪など）と、その走行部を駆動する駆動手段（例えば、モータやエンジンなど）とを有していてもよい。なお、移動機構１６が、移動体１を全方向に移動できるものである場合には、その走行部は、全方向移動車輪（例えば、オムニホイール、メカナムホイールなど）であってもよい。全方向移動車輪を有し、全方向に移動可能な移動体については、例えば、特開２０１７−１２８１８７号公報を参照されたい。この移動機構１６としては、公知のものを用いることができるため、その詳細な説明を省略する。
【００４８】
移動制御部１７は、現在位置取得部１５によって取得された現在位置を用いて、移動機構１６を制御する。その移動機構１６の制御によって、移動体１の移動が制御されることになる。移動の制御は、移動体１の移動の向きや、移動の開始・停止などの制御であってもよい。なお、現在位置取得部１５によって取得された現在位置は、例えば、マーカが撮影された場合には、そのマーカを用いて取得された現在位置であり、そうでない場合には、マーカ以外を用いて取得された現在位置であってもよい。また、例えば、移動経路が設定されている場合には、移動制御部１７は、移動体１がその移動経路に沿って移動するように、移動機構１６を制御してもよい。より具体的には、移動制御部１７は、現在位置取得部１５によって取得される現在位置が、その移動経路に沿ったものになるように、移動機構１６を制御してもよい。また、移動制御部１７は、地図を用いて、移動の制御を行ってもよい。その場合には、移動体１は、地図が記憶される記憶部を備えていてもよい。
【００４９】
次に、移動体１の動作について図３のフローチャートを用いて説明する。
（ステップＳ１０１）移動制御部１７は、移動を開始するかどうか判断する。そして、移動を開始する場合には、ステップＳ１０２に進み、そうでない場合には、移動を開始するまでステップＳ１０１の処理を繰り返す。なお、移動制御部１７は、例えば、新たな目的地までの移動の指示を受け付けた場合に、移動を開始すると判断してもよく、その他のタイミングで移動を開始すると判断してもよい。
【００５０】
（ステップＳ１０２）撮影部１１は、撮影画像を取得する。
【００５１】
（ステップＳ１０３）画像補正部１４は、ステップＳ１０２で取得された撮影画像を、学習器記憶部１３で記憶されている学習器に適用することによって、補正後の撮影画像を取得する。
【００５２】
（ステップＳ１０４）現在位置取得部１５は、補正後の撮影画像を用いて、移動体１の現在位置を取得する。なお、例えば、補正後の撮影画像にマーカが含まれていない場合には、現在位置取得部１５は、マーカを用いない方法によって現在位置を取得してもよい。
【００５３】
（ステップＳ１０５）移動制御部１７は、ステップＳ１０４で取得された現在位置を用いて、移動機構１６を制御する。この移動の制御は、例えば、目的地に向かう自律的な移動の制御である。このステップＳ１０５の移動の制御が繰り返して行われることによって、移動体１は、出発地から目的地に向けて移動することになる。
【００５４】
（ステップＳ１０６）移動制御部１７は、移動を終了するかどうか判断する。そして、移動を終了する場合には、ステップＳ１０１に戻り、移動を継続する場合には、ステップＳ１０２に戻る。なお、移動制御部１７は、現在位置が目的地となった場合に、移動を終了すると判断してもよい。
【００５５】
なお、図３のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。また、図３のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００５６】
次に、学習器製造装置２の動作について図４のフローチャートを用いて説明する。
（ステップＳ２０１）訓練画像受付部２１は、訓練用入力画像と訓練用出力画像との複数の組を受け付けたかどうか判断する。そして、訓練用入力画像と訓練用出力画像との複数の組を受け付けた場合には、ステップＳ２０２に進み、そうでない場合には、それらを受け付けるまでステップＳ２０１の処理を繰り返す。
【００５７】
（ステップＳ２０２）学習器製造部２２は、ステップＳ２０１で受け付けられた複数の訓練画像を用いて、機械学習によって学習器を製造する。
【００５８】
（ステップＳ２０３）学習器出力部２３は、ステップＳ２０２で製造された学習器を出力する。このようにして、学習器を製造する一連の処理が終了する。
なお、図４のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。
【００５９】
次に、本実施の形態による移動体１の動作について、具体例を用いて簡単に説明する。
まず、訓練画像を取得するため、移動体１を動作させて、時間帯や天気、季節などが異なる種々の状況における撮影画像を取得させる。このようにして、移動体１の移動領域における異なる照明条件での撮影画像を取得することができる。この撮影画像が、訓練用入力画像となる。次に、ユーザは、写真編集ソフトウェアを用いて、訓練用入力画像である撮影画像が、基準照明条件で撮影された撮影画像となるように、手作業で露出や色温度等を調整する。基準照明条件を満たすように調整された撮影画像が、訓練用出力画像となる。このようにして、訓練用入力画像と訓練用出力画像との組である訓練画像を複数用意することができる。
【００６０】
次に、ユーザは、その用意した複数の訓練画像を学習器製造装置２に入力する。その複数の訓練画像は、訓練画像受付部２１によって受け付けられ、学習器製造部２２に渡される（ステップＳ２０１）。そして、学習器製造部２２は、その複数の訓練画像について機械学習を行うことによって学習器を製造する（ステップＳ２０２）。その製造された学習器は、学習器出力部２３によって図示しない記録媒体に蓄積される（ステップＳ２０３）。
【００６１】
その学習器が移動体１の学習器記憶部１３に蓄積された後に、移動体１による移動が開始される。ここでは、マーカ５を用いた位置決めを行う移動について説明する。その移動において、図５Ａ、図５Ｂで示されるように、撮影部１１は、マーカ５を含む撮影画像を取得する（ステップＳ１０１，Ｓ１０２）。その撮影画像は、画像補正部１４によって学習器に適用されることによって、基準照明条件で撮影された撮影画像となるように補正され、現在位置取得部１５に渡される（ステップＳ１０３）。例えば、図５Ａでは、マーカ５の背後に存在するシャッター９が閉まっているため、撮影部１１によって取得されたマーカ５の撮影画像は、基準照明条件での撮影画像に近いものとなる。一方、例えば、図５Ｂで示されるように、シャッター９が空いている場合には、マーカ５の撮影が逆光になり、撮影部１１によって取得されたマーカ５の撮影画像における露出や色温度が基準照明条件とは異なるものになることもあり得る。いずれの場合であっても、撮影部１１によって取得された撮影画像が学習器に適用されることによって、基準照明条件での撮影画像に補正することができる。
【００６２】
現在位置取得部１５は、その補正後の撮影画像に含まれるマーカ５を用いて、移動体１の現在位置を取得し、その現在位置を移動制御部１７に渡す（ステップＳ１０４）。この現在位置の取得において補正された撮影画像が用いられるため、撮影画像におけるマーカ５の位置を認識する際に、誤認識となる可能性を低減することができ、マーカ５を用いた現在位置の取得の精度を向上させることができるようになる。現在位置を受け取ると、移動制御部１７は、その現在位置を用いて移動体１の移動を行ったり、位置決めを行ったりするために、移動機構１６を制御する。このようにして、補正後の撮影画像を用いて移動体１を目的地にまで高精度に移動させることができるようになる（ステップＳ１０５，Ｓ１０６）。
【００６３】
以上のように、本実施の形態による移動体１によれば、学習器を用いることによって、撮影画像を適切に補正することができる。その結果、その補正後の撮影画像を用いて現在位置が取得されることによって、より精度の高い現在位置の取得を実現することができ、結果として、移動体１の移動精度を向上させることができるようになる。例えば、撮影画像の露出や色温度などをルールベースで補正することも考えられるが、そのような場合には、想定外の撮影画像が得られたときに、適切な補正を行うことができないことになる。そのため、補正で用いられるパラメータを環境に応じて調整する必要がある。一方、本実施の形態の手法では、基準照明条件と同様の撮影が行われたものとなるように撮影画像が補正されることによって、そのようなパラメータ調整等を行うことなく、より適切な補正を行うことができるようになる。また、本実施の形態では、補正後の撮影画像が現在位置の取得のために用いられる場合について主に説明したが、それ以外の用途、例えば、交通信号機の点灯色などの周囲環境の情報認識のためや、ジェスチャーを認識のためなどに補正後の撮影画像が用いられる場合であっても、その情報認識やジェスチャー認識などの精度を向上させることができる。また、畳み込みニューラルネットワークの学習結果である学習器を用いた場合には、補正後の撮影画像を短時間で取得することができるため、リアルタイムでの補正が可能となり、その結果、補正後の撮影画像を用いたスムーズな移動制御を実現させることができるようになる。
また、本実施の形態による学習器製造装置２によれば、複数の訓練画像を用いて、撮影画像の照明条件に関する補正を行うために用いられる学習器を生成することができるようになる。
【００６４】
なお、本実施の形態では、学習器記憶部１３で記憶されている学習器が、撮影画像である訓練用入力画像と、その撮影画像に対応する画像であり、基準となる照明条件である基準照明条件での画像である訓練用出力画像との組を複数用いて学習された学習器である場合について主に説明したが、以下、その学習器とは異なる学習器を用いて撮影画像の補正が行われる場合について、図６を参照しながら説明する。その撮影画像の補正方法を、ここでは、「最適化による撮影画像の補正」と呼ぶことにする。
【００６５】
図６は、画像補正装置１２の他の構成の一例を示すブロック図である。図６において、画像補正装置１２は、学習器記憶部１８と、画像補正部１９とを備える。また、画像補正部１９は、最適化による撮影画像の補正を行うものであり、出力画像取得部３１と、スタイル行列記憶部３２と、最適化部３３とを備える。
【００６６】
最適化による撮影画像の補正が行われる場合には、学習器記憶部１８では、物体認識用の畳み込みニューラルネットワークの所定の中間層までを少なくとも含む物体認識学習器が記憶されているものとする。その物体認識学習器は、物体認識用の畳み込みニューラルネットワークそのものであってもよく、その物体認識用の畳み込みニューラルネットワークの後段の複数の層（例えば、全結合層やソフトマックス層など）を含まないニューラルネットワークであってもよい。撮影画像の補正で用いるのは、物体認識用の畳み込みニューラルネットワークのうち、中間層の出力マップまでであり、出力層の出力は用いないからである。その物体認識用の畳み込みニューラルネットワークとしては、例えば、VGG 16-layerの畳み込みニューラルネットワークモデルを用いてもよい。なお、VGG 16-layerの畳み込みニューラルネットワークモデルには、前段側に複数の畳み込み層とプーリング層との複数のセットが含まれ、出力層の直前に、３個の全結合層と１個のソフトマックス層とが含まれるが、その４層については、最適化による撮影画像の補正では用いないため、上記のように、学習器記憶部１８に含まれていなくてもよい。また、物体認識用の畳み込みニューラルネットワークにおけるプーリング層では、平均プーリングが採用されてもよい。そのように、物体認識用の畳み込みニューラルネットワークに含まれるプーリング層において平均プーリングが行われる場合であっても、そのニューラルネットワークを、物体認識用の畳み込みニューラルネットワークと呼ぶことにする。層の種類や並び順は、物体認識のものと同様だからである。また、物体認識用の畳み込みニューラルネットワークも、教師あり機械学習によって学習された学習器であることは言うまでもない。ここでは、物体認識学習器が、物体認識用の畳み込みニューラルネットワークそのものである場合について主に説明する。
【００６７】
まず、最適化による撮影画像の補正の概要について説明する。物体認識学習器では、中間層においても、入力画像の特徴的な形状（撮影画像に含まれる物体の配置等）が維持されているという特徴がある。一方、画像のテクスチャの特徴は、中間層のチャネル間の相関によって示されることが知られている。したがって、ホワイトノイズ画像等の入力画像を物体認識学習器に適用した中間層の出力マップと、撮影画像を物体認識学習器に適用した中間層の出力マップとの誤差が小さくなり、その入力画像を物体認識学習器に適用した中間層のチャネル間の相関と、基準照明条件で撮影された撮影画像を物体認識学習器に適用した中間層のチャネル間の相関との誤差が小さくなるようにした入力画像を求めることによって、撮影画像の補正を行うことができる。そのようにして求められた入力画像は、物体の配置等は撮影画像に似たものとなる一方、色合いや明るさなどのテクスチャは、基準照明条件で撮影された撮影画像に似たものとなるからである。なお、このようにして、画像のテクスチャを変更する手法はすでに公知であり、例えば、次の文献を参照されたい。
文献：Leon A. Gatys, Alexander S. Ecker, Matthias Bethge,「A Neural Algorithm of Artistic Style」、Nature Communications, 2015
【００６８】
出力画像取得部３１は、撮影部１１によって撮影された撮影画像を物体認識学習器に適用することによって、あらかじめ決められた中間層の出力画像であるコンテンツ出力画像を取得する。あらかじめ決められた中間層は、例えば、後段の全結合層の直前の層（例えば、VGG 16-layerの畳み込みニューラルネットワークモデルの場合には、最後段のプーリング層となる）であってもよく、それよりも前段側の層であってもよい。
【００６９】
撮影画像を物体認識学習器に適用した場合における、ｋ番目の層の出力マップをＰkとし、あらかじめ決められた層がＫ１番目の層であるとすると、出力画像取得部３１は、撮影画像を物体認識学習器に適用することによって、コンテンツ出力画像ＰK1を取得してもよい。なお、行列（出力マップ）ＰkにおけるＰkijは、ｋ番目の層の出力マップにおけるｉ番目のチャネルのｊ番目の画素の値である。例えば、ｋ番目の層のチャネル数がＮk個であり、ｋ番目の層の１チャネルの出力マップのサイズがＷ１k×Ｗ２kである場合には、Ｐkijに関して、例えば、ｉは０からＮk−１までの整数となり、ｊは０からＭk−１までの整数となる。なお、Ｍk＝Ｗ１k・Ｗ２kである。また、ｋは１以上の整数である。また、Ｋ１は、あらかじめ決められていることが好適である。
【００７０】
スタイル行列記憶部３２では、基準照明条件で撮影された撮影画像である基準撮影画像が物体認識学習器に適用されることによって得られた、中間層の出力画像のチャネル間の相関であるスタイル行列が記憶される。以下、そのスタイル行列について説明する。
【００７１】
基準撮影画像を物体認識学習器に適用した場合におけるｋ番目の層の出力マップをＢkとすると、基準撮影画像に関するｋ番目の層のスタイル行列Ａkのｉ行目ｊ列目の成分Ａkijは、次式のようにして算出することができる。Ａkijは、基準撮影画像を物体認識学習器に適用した場合におけるｋ番目の層のｉ番目のチャネルの出力マップのベクトルと、ｊ番目のチャネルの出力マップのベクトルとの内積となる。したがって、各（ｉ，ｊ）についてＡkijを算出することによって、基準撮影画像に関するｋ番目の層の出力画像におけるチャネル間の相関を各要素に有するスタイル行列Ａkを取得することができる。
【数１】
2020129241.tif 000003
【００７２】
スタイル行列記憶部３２では、例えば、物体認識学習器の１番目の層からＫ２番目の層までのスタイル行列Ａ1〜ＡK2が記憶されていてもよい。なお、スタイル行列記憶部３２にスタイル行列が記憶される過程は問わない。例えば、記録媒体を介してスタイル行列がスタイル行列記憶部３２で記憶されるようになってもよく、通信回線等を介して送信されたスタイル行列がスタイル行列記憶部３２で記憶されるようになってもよい。スタイル行列記憶部３２での記憶は、ＲＡＭ等における一時的な記憶でもよく、または、長期的な記憶でもよい。スタイル行列記憶部３２は、所定の記録媒体（例えば、半導体メモリや磁気ディスク、光ディスクなど）によって実現されうる。
【００７３】
なお、学習器記憶部１８と、スタイル行列記憶部３２とは、同一の記録媒体によって実現されてもよく、または、別々の記録媒体によって実現されてもよい。前者の場合には、学習器を記憶している領域が学習器記憶部１８となり、スタイル行列を記憶している領域がスタイル行列記憶部３２となる。
【００７４】
最適化部３３は、入力画像を物体認識学習器に適用することによって得られるあらかじめ決められた中間層の出力画像とコンテンツ出力画像との誤差、及び入力画像を物体認識学習器に適用することによって得られる中間層の出力画像のチャネル間の相関である出力行列とスタイル行列との誤差に応じた目的関数を最適化する入力画像である補正後の撮影画像を取得する。なお、入力画像を物体認識学習器に適用することによって得られるあらかじめ決められた中間層の出力画像とコンテンツ出力画像との誤差Ｅ１、及び出力行列とスタイル両列との誤差Ｅ２に応じた目的関数とは、例えば、誤差Ｅ１が大きくなるほど値が大きくなり、誤差Ｅ２が大きくなるほど値が大きくなる目的関数であってもよく、または、誤差Ｅ１が大きくなるほど値が小さくなり、誤差Ｅ２が大きくなるほど値が小さくなる目的関数であってもよい。前者の場合には、目的関数の最適化は、目的関数を最小化することであり、後者の場合には、目的関数の最適化は、目的関数を最大化することである。ここでは、前者の場合について主に説明する。
【００７５】
入力画像の初期値は、上記のように、ホワイトノイズ画像であってもよい。以下、入力画像をベクトルｘとする。すなわち、ベクトルｘの各要素が、入力画像の各画素値になるものとする。また、入力画像を物体認識学習器に適用することによって得られる、あらかじめ決められた中間層（上記のように、Ｋ１番目の層である）の出力画像（出力マップ）をＦK1とする。すると、入力画像を物体認識学習器に適用することによって得られるあらかじめ決められた中間層の出力画像とコンテンツ出力画像との誤差Ｅ１は、例えば、次式のように算出することができる。次式の誤差Ｅ１は、出力画像ＦK1の各画素と、コンテンツ出力画像ＰK1の各画素との差の二乗が、画素ごとに、またチャネルごとに加算された結果である。なお、次式において、撮影画像をベクトルｐとしている。
【数２】
2020129241.tif 000004
【００７６】
また、ｋ番目の層の出力行列Ｇkの（ｉ，ｊ）成分Ｇkijは、次式のようにして、入力画像（ベクトルｘ）に対応するｋ番目の層の出力画像Ｆkを用いて算出することができる。したがって、各（ｉ，ｊ）についてＧkijを算出することによって、入力画像に関するｋ番目の層の出力行列Ｇkを取得することができる。なお、最適化部３３は、例えば、物体認識学習器の１番目の層からＫ２番目の層までの出力行列Ｇ1〜ＧK2を算出してもよい。
【数３】
2020129241.tif 000005
【００７７】
物体認識学習器のｋ番目の層に関する、出力行列とスタイル行列との誤差は、次式のようにして算出することができる。次式の誤差Ｅkは、ｋ番目の層の出力行列Ｇkの各要素と、ｋ番目の層のスタイル行列Ａkの各要素との差の二乗が、行列の要素ごとに加算された結果である。なお、基準撮影画像をベクトルａとしている。また、上記のように、Ｎkはｋ番目の層のチャネル数であり、Ｍkは、ｋ番目の層の出力マップの画素数である。
【数４】
2020129241.tif 000006
【００７８】
ｋ番目の層の誤差Ｅkと、重みｗkとを掛けて層ごとに足し合わせることによって、１番目の層からＫ２番目の層までの出力行列とスタイル行列との誤差Ｅ２を次式のように算出することができる。この誤差Ｅ２が、出力行列とスタイル行列との誤差である。なお、重みｗkは特に限定されるものではないが、例えば、ｗk＝１／Ｋ２であってもよい。また、Ｋ２の値は特に問わないが、例えば、VGG 16-layerの場合には、３や５、７程度であってもよい。また、これに限定されるものではないが、Ｋ２＜Ｋ１であることが好適である。
【数５】
2020129241.tif 000007
【００７９】
なお、ここでは、出力行列とスタイル行列との誤差Ｅ２が、Ｋ２層分の誤差である場合について示しているが、そうでなくてもよい。特定の１以上の中間層に関する出力行列とスタイル両列との誤差Ｅ２が最適化の処理に用いられてもよい。その特定の１以上の中間層は、例えば、１個の中間層であってもよく、２個以上の中間層であってもよい。その２個以上の中間層は、連続したものであってもよく、または、そうでなくてもよい。また、特定の１以上の中間層は、２番目以降の中間層であってもよい。
【００８０】
目的関数Ｅは、例えば、次式のように誤差Ｅ１と誤差Ｅ２とをそれぞれ重みα、βを掛けて足し合わせたものであってもよい。α、βは、それぞれ正の実数である。なお、α、βの値は特に問わないが、例えば、α／βは、１×１０−３や、１×１０−４などであってもよい。
【数６】
2020129241.tif 000008
【００８１】
最適化部３３は、この目的関数Ｅが最適化されるように、すなわち最小化されるように、入力画像であるベクトルｘの各要素を求める。そのようにして求められた入力画像が、補正後の撮影画像となる。なお、最適化部３３は、その最適化の処理において、例えば、最急降下法などの公知の方法を用いてもよい。このように、最適化による撮影画像の補正を行う場合には、１個の基準撮影画像を用意することによって、撮影画像の補正を行うことができるため、基準撮影画像を準備するための負担が軽減されることになる。
【００８２】
なお、最適化部３３による最適化によって補正後の撮影画像を取得するのにかかる時間は、上記のように、学習器に撮影画像を適用することによって補正後の撮影画像を取得する時間よりも大幅に長くなる。したがって、通常は、最適化による撮影画像の補正においてリアルタイムで撮影画像の補正を行うことは困難であるが、例えば、撮影画像の補正がＴ秒に１回行われることによって、Ｔ秒に１回は、精度の高い現在位置の取得を行うことができるようになる。そのため、例えば、通常は、未補正の撮影画像を用いた現在位置の取得や、撮影画像を用いる以外の手法による現在位置の取得を行い、Ｔ秒に１回、精度の高い現在位置が取得されるごとに、現在位置を補正するようにしてもよい。このように、最適化による撮影画像の補正によって得られた補正後の撮影画像は、位置ずれの補正のために用いられてもよい。
【００８３】
また、交通信号機の点灯色などの周囲環境の情報認識のためや、ジェスチャーを認識のためなどに補正後の撮影画像が用いられる場合には、最適化部３３によって補正後の撮影画像が得られるまで、周囲環境の情報認識の結果や、ジェスチャー認識の結果に応じた移動が行われないようにしてもよい。
【００８４】
このように、最適化による撮影画像の補正を行う場合であっても、撮影画像の露出や色温度等を基準照明条件に応じたものに変更することができ、補正後の撮影画像を用いた高精度な現在位置の取得や周囲環境の情報認識、ジェスチャー認識等を行うことができるようになる。
【００８５】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【００８６】
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う２個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、または、その情報の受け渡しを行う２個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
【００８７】
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いる閾値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、または長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、または、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、または、図示しない読み出し部が行ってもよい。
【００８８】
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いる閾値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、または、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
【００８９】
また、上記実施の形態において、移動体１、及び学習器製造装置２に含まれる２以上の構成要素が通信デバイスや入力デバイス等を有する場合に、２以上の構成要素が物理的に単一のデバイスを有してもよく、または、別々のデバイスを有してもよい。
【００９０】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
【００９１】
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【００９２】
以上より、本発明による画像補正装置等によれば、適切な照明条件で撮影された画像となるように撮影画像を補正することができるという効果が得られ、例えば、移動体において撮影画像を補正する装置等として有用である。
【符号の説明】
【００９３】
１  移動体、２  学習器製造装置、１１  撮影部、１２  画像補正装置、１３、１８  学習器記憶部、１４、１９  画像補正部、１５  現在位置取得部、１６  移動機構、１７  移動制御部、３１  出力画像取得部、３２  スタイル行列記憶部、３３  最適化部
【図１】
2020129241.tif 000009
【図２】
2020129241.tif 000010
【図３】
2020129241.tif 000011
【図４】
2020129241.tif 000012
【図５Ａ】
2020129241.tif 000013
【図５Ｂ】
2020129241.tif 000014
【図６】
2020129241.tif 000015