(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-03
(45)【発行日】2023-03-13
(54)【発明の名称】移動体、及び画像補正装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20230306BHJP
【FI】
G06T7/00 350C
(21)【出願番号】P 2019021202
(22)【出願日】2019-02-08
【審査請求日】2021-10-07
(73)【特許権者】
【識別番号】000000262
【氏名又は名称】株式会社ダイヘン
(74)【代理人】
【識別番号】100115749
【氏名又は名称】谷川 英和
(74)【代理人】
【識別番号】100121223
【氏名又は名称】森本 悟道
(72)【発明者】
【氏名】坂原 洋人
【審査官】伊知地 和之
(56)【参考文献】
【文献】国際公開第2017/215767(WO,A1)
【文献】特開2019-008796(JP,A)
【文献】特開2005-018401(JP,A)
【文献】特開2000-311243(JP,A)
【文献】特表2009-512088(JP,A)
【文献】Leon A. Gatys et al.,Image Style Transfer Using Convolutional Neural networks,2016 IEEE Conference on Computer Vision and Pattern Recognition(CVPR),IEEE,2016年06月30日,pp.2414-2423
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/12
G06T 1/00
G06T 3/00 - 3/60
G06T 5/00 - 5/50
G06T 7/00 - 7/90
G08G 1/00 - 99/00
H04N 5/222 - 5/257
CSDB(日本国特許庁)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
教師あり機械学習によって学習された学習器が記憶される学習器記憶部と、
移動体に装着された撮影部によって撮影された撮影画像を、前記学習器を用いて、基準となる照明条件である基準照明条件で撮影された撮影画像となるように、少なくとも露出に関して補正する画像補正部と、を備え
、
前記学習器は、物体認識用の畳み込みニューラルネットワークの所定の中間層までを少なくとも含む物体認識学習器であり、
前記画像補正部は、
前記撮影部によって撮影された撮影画像を前記物体認識学習器に適用することによって、あらかじめ決められた中間層の出力画像であるコンテンツ出力画像を取得する出力画像取得部と、
基準照明条件で撮影された撮影画像である基準撮影画像が前記物体認識学習器に適用されることによって得られた、中間層の出力画像のチャネル間の相関であるスタイル行列が記憶されるスタイル行列記憶部と、
入力画像を前記物体認識学習器に適用することによって得られる前記あらかじめ決められた中間層の出力画像と前記コンテンツ出力画像との誤差、及び前記入力画像を前記物体認識学習器に適用することによって得られる中間層の出力画像のチャネル間の相関である出力行列と前記スタイル行列との誤差に応じた目的関数を最適化する前記入力画像である補正後の撮影画像を取得する最適化部と、を備える、画像補正装置。
【請求項2】
自律的に移動する移動体であって、
撮影画像を取得する撮影部と、
前記撮影画像について補正を行う、請求項
1記載の画像補正装置と、
補正後の前記撮影画像を用いて、前記移動体の現在位置を取得する現在位置取得部と、
前記移動体を移動させる移動機構と、
前記現在位置取得部によって取得された現在位置を用いて、前記移動機構を制御する移動制御部と、を備えた移動体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮影された画像を、適切な照明条件で撮影された画像となるように補正する画像補正装置等に関する。
【背景技術】
【0002】
従来の移動体において、移動環境に配置されたマーカを撮影し、その撮影したマーカを用いることによって、マーカに対する位置決めを行うことがあった。そのような移動体において、マーカの撮影時に逆光になることがあり得る。例えば、移動環境に配置されているマーカの背後にシャッターや窓が存在する状況において、通常は、シャッターやブラインド等が閉じられていることによってマーカの撮影時に逆光にならないが、商品搬出やその他の理由などによってシャッターやブラインド等が開けられた際に、逆光になることがある。そのような場合には、撮影画像において白飛びなどのため、マーカを適切に認識することができず、マーカを用いた位置決めを行うことができなくなるという問題があった。
【0003】
なお、関連した技術として、逆光状態で撮像する場合にも、光量検出手段によって検出された光量の情報を用いて、適切な露出調整を行う作物列検出装置が知られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1に記載された技術では、露出補正を行うために光量検出手段を別途、備える必要があり、それに応じて装置が複雑化すると共に、コストが増大するという問題があった。
また、夕方には、西日の影響によって色が変化することもあるが、そのような変化に対応することもできないという問題もあった。
【0006】
一般的に言えば、移動体等において撮影された撮影画像について、露出や色などの照明条件が適切なものとなるように補正したいという要望があった。
【0007】
本発明は、上記課題を解決するためになされたものであり、撮影された撮影画像が、適切な照明条件で撮影された画像となるように補正することができる画像補正装置等を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明による画像補正装置は、教師あり機械学習によって学習された学習器が記憶される学習器記憶部と、移動体に装着された撮影部によって撮影された撮影画像を、学習器を用いて、基準となる照明条件である基準照明条件で撮影された撮影画像となるように補正する画像補正部と、を備えたものである。
このような構成により、学習器を用いることによって、撮影画像を適切に補正することができる。また、その補正後の撮影画像が用いられることによって、移動体の周囲の状況をより正確に把握することができるようになる。その結果として、例えば、より正確な位置を取得したり、より正確な周囲環境の情報を取得したり、より正確なユーザからの指示を取得したりすることができるようになる。また、撮影画像を補正するために、光量検出手段などを用いる必要もないため、装置の複雑化や、それに応じたコストの増大も回避することができる。また、例えば、西日などに対応するための色の調整をも行うことができるようになる。
【0009】
また、本発明による画像補正装置では、学習器は、物体認識用の畳み込みニューラルネットワークの所定の中間層までを少なくとも含む物体認識学習器であり、画像補正部は、撮影部によって撮影された撮影画像を物体認識学習器に適用することによって、あらかじめ決められた中間層の出力画像であるコンテンツ出力画像を取得する出力画像取得部と、基準照明条件で撮影された撮影画像である基準撮影画像が物体認識学習器に適用されることによって得られた、中間層の出力画像のチャネル間の相関であるスタイル行列が記憶されるスタイル行列記憶部と、入力画像を物体認識学習器に適用することによって得られるあらかじめ決められた中間層の出力画像とコンテンツ出力画像との誤差、及び入力画像を物体認識学習器に適用することによって得られる中間層の出力画像のチャネル間の相関である出力行列とスタイル行列との誤差に応じた目的関数を最適化する入力画像である補正後の撮影画像を取得する最適化部と、を備えてもよい。
このような構成により、入力画像について、形状は撮影画像に近づき、テクスチャの特徴は基準撮影画像に近づくように最適化を行うことができ、結果として、撮影画像が、基準照明条件で撮影されたものとなるように補正することができる。
【0010】
また、本発明による画像補正装置では、学習器は、撮影画像である訓練用入力画像と、撮影画像に対応する画像であり、基準照明条件での画像である訓練用出力画像との組を複数用いて学習された学習器であり、画像補正部は、撮影部によって撮影された撮影画像を学習器に適用することによって、基準照明条件で撮影されたように補正された撮影画像を取得してもよい。
このような構成により、学習器に撮影画像を適用することによって、基準照明条件で撮影されたものとなるように補正することができる。また、学習器が畳み込みニューラルネットワークである場合には、例えば、その補正された撮影画像を短期間で取得することもでき、リアルタイムで補正を行うことも可能になる。
【0011】
また、本発明による移動体は、自律的に移動する移動体であって、撮影画像を取得する撮影部と、撮影画像について補正を行う画像補正装置と、補正後の撮影画像を用いて、移動体の現在位置を取得する現在位置取得部と、移動体を移動させる移動機構と、現在位置取得部によって取得された現在位置を用いて、移動機構を制御する移動制御部と、を備えたものである。
このような構成により、補正後の撮影画像を用いて現在位置が取得されるため、より正確な現在位置の取得が可能となる。その結果、移動体の移動がより精度の高いものになる。
【0012】
また、本発明による学習器は、撮影画像である訓練用入力画像と、撮影画像に対応する画像であり、基準となる照明条件である基準照明条件での画像である訓練用出力画像との複数の組の学習結果である学習器であって、撮影画像が適用されると、基準照明条件で撮影されたように補正された撮影画像を取得することができる、ものである。
このような構成により、この学習器を用いることによって、撮影画像が基準照明条件で撮影されたものとなるように容易に補正することができるようになる。
【発明の効果】
【0013】
本発明による画像補正装置等によれば、例えば、撮影画像が適切な照明条件で撮影された画像となるように補正することができる。
【図面の簡単な説明】
【0014】
【
図1】本発明の実施の形態による移動体の構成を示すブロック図
【
図2】同実施の形態による学習器製造装置の構成を示すブロック図
【
図3】同実施の形態による移動体の動作を示すフローチャート
【
図4】同実施の形態による学習器製造装置の動作を示すフローチャート
【
図5A】同実施の形態における配置されたマーカと移動体とを示す模式図
【
図5B】同実施の形態における配置されたマーカと移動体とを示す模式図
【
図6】同実施の形態における画像補正装置の他の構成の一例を示すブロック図
【発明を実施するための形態】
【0015】
以下、本発明による移動体、画像補正装置、及び学習器製造装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。本実施の形態による移動体は、撮影された撮影画像が、適切な照明条件で撮影された撮影画像となるように補正する画像補正装置を有するものである。
【0016】
図1は、本実施の形態による移動体1の構成を示すブロック図である。本実施の形態による移動体1は、自律的に移動するものであり、撮影部11と、画像補正装置12と、現在位置取得部15と、移動機構16と、移動制御部17とを備える。なお、移動体1が自律的に移動するとは、移動体1がユーザ等から受け付ける操作指示に応じて移動するのではなく、自らの判断によって目的地に移動することであってもよい。その目的地は、例えば、手動で決められたものであってもよく、または、自動的に決定されたものであってもよい。また、その目的地までの移動は、例えば、移動経路に沿って行われてもよく、または、そうでなくてもよい。また、自らの判断によって目的地に移動するとは、例えば、進行方向、移動や停止などを移動体1が自ら判断することによって、目的地まで移動することであってもよい。また、例えば、移動体1が、障害物に衝突しないように移動することであってもよい。移動体1は、例えば、台車であってもよく、移動するロボットであってもよい。ロボットは、例えば、エンターテインメントロボットであってもよく、監視ロボットであってもよく、搬送ロボットであってもよく、清掃ロボットであってもよく、動画や静止画を撮影するロボットであってもよく、その他のロボットであってもよい。
【0017】
撮影部11は、移動体1の周囲の撮影画像を取得する。この撮影画像の用途は問わないが、本実施の形態では、移動体1の現在位置を取得するために撮影画像が用いられる場合について主に説明する。なお、それ以外の撮影画像の用途としては、例えば、交通信号機の点灯色などのように、移動体1の周囲環境の認識のために用いられてもよく、ユーザが移動体1にジェスチャーによって指示を与える場合に、そのジェスチャーを認識するために用いられてもよく、その他の用途のために用いられてもよい。
【0018】
なお、撮影画像を用いて現在位置を取得する方法としては、例えば、マーカを撮影し、そのマーカを用いて現在位置を取得する方法や、Visual-SLAM(Simultaneous Localization and Mapping)などによって知られている方法を用いてもよい。また、あらかじめ作成された地図(例えば、周囲の物体の撮影画像に応じた地図など)が記憶されている場合には、その地図と撮影画像とを用いて、その撮影画像に対応する位置を特定することによって現在位置を取得することができる。本実施の形態では、現在位置を取得するためにマーカの撮影画像が用いられる場合について主に説明する。
【0019】
撮影部11は、例えば、CCDやCMOSなどのイメージセンサによって実現することができる。また、撮影部11は、撮影対象からの光をイメージセンサの受光面に結像させるための光学系を含んでいてもよい。また、撮影画像のデータ形式等は問わない。撮影部11は、移動体1に固定されているため、移動体1の移動に応じて撮影対象が異なることになる。したがって、撮影部11は、連続的に撮影を行い、撮影範囲にマーカが含まれる場合に、そのマーカを含む撮影画像が現在位置取得部15等によって用いられてもよい。なお、撮影範囲にマーカが含まれるかどうかは、例えば、マーカのパターンマッチングによって行ってもよく、その他の方法によって行ってもよい。
【0020】
図5Aは、移動体1の撮影部11によってマーカ5が撮影されている状況を示す模式図である。
図5Aで示されるように、撮影部11の撮影範囲にマーカ5が存在することにより、撮影部11は、マーカ5の撮影画像を取得することができる。なお、撮影部11の露出は、例えば、自動露出であってもよく、または、固定の露出であってもよい。また、露出は、例えば、露光時間(シャッター速度)であってもよく、絞り値(F値)であってもよく、その両方であってもよい。
【0021】
マーカは、視覚的に認識可能な2次元の図形であり、移動体1の位置決めのために移動環境に配置されている。例えば、移動体1が給電位置や、搬送対象の積み降ろし位置に正確に移動できるようにするため、マーカが配置されていてもよい。マーカの形状(図形の形状)は問わないが、例えば、正方形状や、長方形状、その他の多角形状、円形状、楕円形状、また、それらの組み合わせであってもよい。なお、その形状は、特定可能な3以上の特徴点を有していることが好適である。また、その特徴点の少なくとも3点については、特徴点間のサイズが既知であることが好適である。そのサイズは、マーカと、撮影部11との相対的な位置関係を取得するのに必要であるため、移動体1の図示しない記録媒体において保持されており、現在位置取得部15等がアクセス可能になっていることが好適である。マーカは、例えば、紙やフィルム等に印刷され、移動環境に配置される。移動体1の移動環境に配置されるマーカのワールド座標系における位置(例えば、ワールド座標系とマーカの座標系との相対的な関係(平行移動、回転に関する情報)であってもよい。)は分かっていてもよく、または、そうでなくてもよい。前者の場合には、マーカの撮影画像を用いることによって、移動体1のワールド座標系における位置を取得することができるようになり、後者の場合には、マーカの撮影画像を用いることによって、移動体1のマーカに対する相対的な位置を取得することができるようになる。したがって、マーカのワールド座標系における位置が分からない場合には、移動環境に配置されているマーカに対する相対的な位置によって、位置決めを行うことになるため、移動体1の目的とする位置決め場所に対して、あらかじめ決められた相対的な位置となるように、そのマーカが配置されることが好適である。
【0022】
画像補正装置12は、撮影部11によって取得された撮影画像について補正を行うものであり、学習器記憶部13と、画像補正部14とを備える。この補正は、照明条件に関する補正である。照明条件に関する補正は、例えば、露出に関する補正であってもよく、色に関する補正であってもよく、その両方であってもよい。本実施の形態では、照明条件に関する補正が露出と色との両方の補正である場合について主に説明する。
【0023】
学習器記憶部13では、教師あり機械学習によって学習された学習器が記憶される。本実施の形態では、まず、この学習器が、撮影画像である訓練用入力画像と、その撮影画像に対応する画像であり、基準となる照明条件である基準照明条件での画像である訓練用出力画像との組を複数用いて学習された学習器である場合について説明し、それ以外の場合については後述する。
【0024】
訓練用出力画像は、訓練用入力画像に対応した画像である。すなわち、訓練用出力画像は、照明条件(例えば、露出や色など)以外は、訓練用入力条件と同じであることが好適である。例えば、画像に含まれる形状は、訓練用入力画像と訓練用出力画像とで同じであることが好適である。基準照明条件での画像とは、例えば、基準照明条件で撮影された画像のことである。基準照明条件で撮影された画像は、理想的な照明条件で撮影された画像である。例えば、昼間に屋外で撮影された画像は、基準照明条件での画像となる。すなわち、白色光(例えば、自然光であってもよく、人工光であってもよい。)の下で適正露出によって撮影された画像が、基準照明条件での画像であると考えてもよい。基準照明条件で撮影された画像は、例えば、基準照明条件で撮影されたに等しい画像であってもよい。基準照明条件で撮影されたに等しい画像とは、例えば、基準照明条件で撮影されたものとなるように写真編集ソフトウェアによって修正された画像であってもよい。適正露出とは、露出がオーバーでもなく、アンダーでもない状況のことである。白飛びや黒つぶれになっている画像は、基準照明条件での画像ではないと考えてもよい。なお、訓練用入力画像と訓練用出力画像との組を訓練画像と呼ぶこともある。学習器は、例えば、ニューラルネットワーク(NN:Neural Network)の学習結果であってもよく、それ以外の機械学習の学習結果であってもよい。
【0025】
ニューラルネットワークは、例えば、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)であってもよく、それ以外のニューラルネットワーク(例えば、全結合層から構成されるニューラルネットワーク等)であってもよい。また、ニューラルネットワークが少なくとも1個の中間層(隠れ層)を有する場合には、そのニューラルネットワークの学習は、深層学習(ディープラーニング、Deep Learning)であると考えてもよい。また、機械学習にニューラルネットワークを用いる場合において、そのニューラルネットワークの層数、各層におけるノード数、各層の種類(例えば、畳み込み層、全結合層など)等については、適宜、選択したものを用いてもよい。なお、入力層と出力層のノード数は、通常、訓練画像に含まれる入力と出力とによって決まることになる。
【0026】
なお、学習器が学習器記憶部13で記憶されているとは、例えば、学習器そのもの(例えば、入力に対して値を出力する関数や学習結果のモデル等)が記憶されていることであってもよく、学習器を構成するために必要なパラメータ等の情報が記憶されていることであってもよい。後者の場合であっても、そのパラメータ等の情報を用いて学習器を構成できるため、実質的に学習器が学習器記憶部13で記憶されていると考えることができるからである。本実施の形態では、学習器そのものが学習器記憶部13で記憶されている場合について主に説明する。
【0027】
学習器記憶部13に学習器が記憶される過程は問わない。例えば、記録媒体を介して学習器が学習器記憶部13で記憶されるようになってもよく、通信回線等を介して送信された学習器が学習器記憶部13で記憶されるようになってもよい。学習器記憶部13での記憶は、RAM等における一時的な記憶でもよく、または、長期的な記憶でもよい。学習器記憶部13は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
【0028】
ここで、学習器の生成について説明する。
図2は、本実施の形態による学習器製造装置2の構成を示すブロック図である。本実施の形態による学習器製造装置2は、訓練画像受付部21と、学習器製造部22と、学習器出力部23とを備える。学習器製造装置2は、通常、学習を行う汎用の情報処理装置であるが、例えば、学習を行う専用の装置であってもよく、サーバ等であってもよい。
【0029】
訓練用入力画像は、例えば、移動体1の撮影部11によって撮影されたものであってもよく、撮影部11とは異なるカメラ等によって手動で撮影されたものであってもよい。なお、Visual-SLAMと同様の手法による現在位置の取得が行われる場合には、訓練用入力画像は、移動体1の移動領域における撮影画像であることが好適であるが、そうでなくてもよい。また、マーカを用いた現在位置の取得が行われる場合には、訓練用入力画像は、マーカの撮影画像であることが好適であるが、そうでなくてもよい。訓練用入力画像には、基準照明条件の画像の他に、基準照明条件ではない照明条件での画像も含まれていることが好適である。例えば、西日で撮影された画像や、逆光の条件で撮影された画像などが含まれていることが好適である。
【0030】
訓練用出力画像は、訓練用入力画像に対応する画像であり、基準照明条件での画像である。訓練用入力画像に対応する画像は、例えば、画像に含まれる被写体などの構図が訓練用入力画像と同じ画像であってもよい。訓練用出力画像は、例えば、撮影された画像であってもよく、または、撮影された画像が写真編集ソフトウェアによって修正された画像であってもよい。前者の場合には、例えば、訓練用入力画像を撮影した撮影部によって、同じ位置、撮影方向、画角において基準照明条件となるように撮影された撮影画像が、その訓練用入力画像と組になる訓練用出力画像であってもよい。基準照明条件となるように撮影するため、例えば、露光時間や絞り値が調整されてもよく、また、撮影部への光学フィルタの装着や、撮影部での色温度の調節等が行われてもよい。また、後者の場合、すなわち、訓練用出力画像が、撮影された画像が写真編集ソフトウェアによって修正された画像である場合には、訓練用入力画像の露出や色などが適切に修正された後の画像が、訓練用出力画像であってもよい。
【0031】
訓練画像受付部21は、撮影画像である訓練用入力画像と、その撮影画像に対応する画像であり、基準照明条件での画像である訓練用出力画像との組を複数受け付ける。訓練画像受付部21は、例えば、有線または無線の通信回線を介して送信された複数の訓練画像を受信してもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)から読み出された複数の訓練画像を受け付けてもよい。なお、訓練画像受付部21は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、または含まなくてもよい。また、訓練画像受付部21は、ハードウェアによって実現されてもよく、または所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0032】
学習器製造部22は、訓練用入力画像と訓練用出力画像との複数の組を学習することによって学習器を製造する。この学習器は、撮影画像である訓練用入力画像と、その撮影画像に対応する画像であり、基準照明条件での画像である訓練用出力画像との複数の組の学習結果である。したがって、例えば、この学習器に撮影画像が適用されると、基準照明条件で撮影されたように補正された撮影画像を取得することができる。この学習の詳細については後述する。
【0033】
学習器出力部23は、学習器製造部22によって製造された学習器を出力する。学習器出力部23によって出力された学習器が、
図1で示される移動体1の学習器記憶部13で記憶されることになる。ここで、この出力は、例えば、所定の機器への通信回線を介した送信でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。なお、学習器出力部23は、出力を行うデバイス(例えば、通信デバイスなど)を含んでもよく、または含まなくてもよい。また、学習器出力部23は、ハードウェアによって実現されてもよく、または、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0034】
次に、学習器製造部22による機械学習について説明する。この機械学習は、上記のように、教師ありのものであり、ニューラルネットワークの学習であってもよい。そのニューラルネットワークは、例えば、畳み込みニューラルネットワークであってもよい。その畳み込みニューラルネットワークは、例えば、複数の畳み込み層を有するものであってもよい。また、畳み込みニューラルネットワークは、畳み込み層の後段にプーリング層を有していてもよく、または、そうでなくてもよい。また、複数の畳み込み層の後段に、全結合層が1以上存在してもよく、または、そうでなくてもよい。全結合層やプーリング層を有していない場合には、畳み込みニューラルネットワークは、例えば、複数の連続した畳み込み層を有しているものであってもよい。通常、訓練用入力画像と訓練用出力画像とは同じ画素数であるため、畳み込みニューラルネットワークが全結合層やプーリング層を有しない場合には、畳み込み層において、適宜、パディングが行われてもよい。本実施の形態による学習器は、入力と出力の画像サイズが同じであるため、その学習器の畳み込みニューラルネットワークは、複数の畳み込み層のみを有しており、プーリング層や全結合層を有していないものであってもよい。その場合には、畳み込み層においてパディングを行うことによって、出力マップが縮小しないようにしてもよい。通常、訓練用入力画像のサイズと訓練用出力画像のサイズとは同じだからである。また、畳み込みニューラルネットワークがプーリング層を有する場合には、入力のサイズよりも出力マップのサイズが小さくなるため、後段に全結合層などが存在することが好適である。その全結合層によって、出力層のマップサイズが入力層と同じになるように調節されてもよい。
【0035】
また、各層におけるストライドは問わないが、例えば、畳み込み層におけるストライドは、例えば、1であってもよい。また、プーリング層のストライドは、2以上であることが好適である。また、各層において適宜、パディングを行ってもよい。そのパディングは、例えば、ゼロパディングであってもよく、画像の最外周の画素値を外挿するパディングであってもよく、画像の各辺で折り返した画素値とするパディングであってもよい。
【0036】
また、各層において、バイアスを用いてもよく、または、用いなくてもよい。バイアスを用いるかどうかは、層ごとに独立して決められてもよい。そのバイアスは、例えば、層ごとのバイアスであってもよく、または、フィルタごとのバイアスであってもよい。前者の場合には、各層において1個のバイアスが用いられることになり、後者の場合には、各層において1個以上(フィルタと同数)のバイアスが用いられることになる。畳み込み層でバイアスを用いる場合には、各画素値にフィルタのパラメータを掛けて足し合わせた結果にバイアスを加算したものが、活性化関数に入力されることになる。
【0037】
ニューラルネットワークにおける各設定は、次のようであってもよい。活性化関数は、例えば、ReLU(正規化線形関数)であってもよく、シグモイド関数であってもよく、その他の活性化関数であってもよい。また、学習では、例えば、誤差逆伝搬法を用いてもよく、ミニバッチ法を用いてもよい。また、損失関数(誤差関数)は、平均二乗誤差であってもよい。また、epoch数(パラメータの更新回数)は特に問わないが、過剰適合とならないepoch数が選択されることが好適である。なお、機械学習における学習方法としては、公知の方法を用いることができ、その詳細な説明を省略する。
【0038】
なお、画像は、分割されて学習されてもよい。その場合には、学習器に撮影画像を適用する際にも、撮影画像を分割して適用してもよい。また、その分割時に、重なりがあるように画像が分割されてもよく、または、そうでなくてもよい。画像を分割して学習したり、画像を分割して学習器に適用したりすることは、すでに公知であり、その詳細な説明を省略する。
【0039】
図1に戻り、画像補正部14は、移動体1に装着された撮影部11によって撮影された撮影画像を、学習器記憶部13で記憶されている学習器を用いて、基準照明条件で撮影された撮影画像となるように補正する。ここでは、学習器を用いた撮影画像の補正が、学習器に撮影画像を適用することによって行われる場合について主に説明する。具体的には、画像補正部14は、撮影部11によって撮影された撮影画像を学習器に入力することによって、その学習器の出力である補正後の撮影画像を取得することができる。
【0040】
現在位置取得部15は、補正後の撮影画像を用いて、移動体1の現在位置を取得する。補正後の撮影画像にマーカが含まれる場合には、現在位置取得部15は、補正後の撮影画像において認識したマーカを用いて、移動体1の現在位置を取得する。ここで、現在位置取得部15がマーカの撮影画像を用いて直接、得ることができるのは、移動体1のマーカに対する相対的な現在位置(例えば、ローカル座標系であるマーカ座標系での移動体1の位置など)である。一方、マーカのワールド座標系における位置が既知である場合には、現在位置取得部15は、その相対的な現在位置と、ワールド座標系におけるマーカの位置とを用いて、移動体1のワールド座標系における位置である現在位置をも取得できることになる。現在位置取得部15が取得する移動体1の現在位置は、そのように、ローカル座標系における現在位置であってもよく、ワールド座標系における現在位置であってもよい。本実施の形態では、後者の場合について主に説明する。現在位置取得部15が取得する現在位置は、角度(姿勢)を含まないものであってもよく、または角度を含んでいてもよい。その角度とは、マーカの面に対する相対的な角度であってもよく、ワールド座標系における角度であってもよい。本実施の形態では、現在位置取得部15によって取得される位置に、角度も含まれる場合について主に説明する。なお、補正後の撮影画像は、適切な照明条件で撮影されたものとなっているため、適切にマーカを認識することができ、そのマーカを用いた位置の取得を高精度に行うことができるようになる。また、現在位置取得部15は、上記のように、Visual-SLAMと同様の方法によって現在位置を取得してもよい。
【0041】
なお、マーカを用いて現在位置を取得する場合には、撮影画像にマーカが含まれていなければ、現在位置を取得できないことになる。したがって、撮影画像にマーカが含まれていない状況に対応するため、現在位置取得部15は、撮影画像を用いて現在位置を取得する以外の方法によっても、移動体1の現在位置を取得してもよい。その現在位置の取得は、例えば、無線通信を用いて行われてもよく、周囲の物体までの距離の測定結果を用いて行われてもよく、現在位置を取得できるその他の方法を用いてなされてもよい。無線通信を用いて現在位置を取得する方法としては、例えば、GPS(Global Positioning System)を用いる方法や、屋内GPSを用いる方法、最寄りの無線基地局を用いる方法などが知られている。また、例えば、周囲の物体までの距離の測定結果を用いることによって現在位置を取得する方法としては、例えば、SLAMなどによって知られている方法を用いてもよい。また、あらかじめ作成された地図(例えば、周囲の物体までの距離の測定結果を有する地図など)が記憶されている場合には、現在位置取得部15は、周囲の物体までの距離を測定し、地図を用いて、その測定結果に対応する位置を特定することによって現在位置を取得してもよい。また、現在位置取得部15は、例えば、自律航法装置を用いて現在位置を取得してもよい。また、現在位置取得部15は、移動体1の向き(方向)を含む現在位置を取得することが好適である。その方向は、例えば、北を0度として、時計回りに測定された方位角によって示されてもよく、その他の方向を示す情報によって示されてもよい。その向きは、電子コンパスや地磁気センサによって取得されてもよい。
【0042】
また、現在位置取得部15は、透視歪マッチングやハフ変換などの位置ずれ計算アルゴリズムを用いて、補正後の撮影画像から移動体1の位置ずれを算出してもよい。この場合には、現在位置取得部15は、通常、別の手法によって現在位置を取得し、その現在位置の取得とは別に、補正後の撮影画像から移動体1の位置ずれを算出して、現在位置を補正するようにしてもよい。
【0043】
次に、マーカを用いた位置の取得について簡単に説明する。ここで、撮影部11のローカル座標系をCCとし、マーカ5のローカル座標系をCMとする。また、ある点に関して、撮影部11の座標系CCにおける座標値を(x,y,z)=(px,py,pz)とし、マーカ5の座標系CMにおける座標値を(x1,y1,z1)=(px1,py1,pz1)とすると、両座標値は、両座標系間で座標値を変換する同次変換行列PCMを用いて次式のように関連づけられることになる。なお、Tは、転置を示している。
(px,py,pz,1)T=PCM(px1,py1,pz1,1)T
【0044】
上式の同次変換行列PCMには、引数qx,qy,qz,θ,φ,ψが含まれており、それらは、撮影部11の座標系CCに対するマーカの座標系CMの平行移動(qx,qy,qz)と回転(θ,φ,ψ)とを示すものである。なお、上記のように、マーカの3点の特徴点間のサイズが既知であるとすると、そのサイズ(特徴点間の距離)を用いることによって、同次変換行列PCMに含まれる各引数を求められることが知られており、同次変換行列PCMを特定することができる。このようにして、マーカを撮影することにより、同次変換行列PCMを算出でき、撮影部11の座標系CCとマーカ5の座標系CMとの関係、すなわち、マーカ5に対する撮影部11の相対的な位置を取得することができる。なお、移動体1のローカル座標系において、撮影部11の向きを含む位置は既知である。したがって、撮影部11とマーカ5との位置関係が分かれば、移動体1とマーカ5との位置関係も分かることになる。このようにして、移動体1は、マーカ5に対する移動体1の位置を取得することができるようになる。
【0045】
また、マーカ5のワールド座標系における位置が既知である場合には、移動体1とマーカ5との相対的な位置関係と、マーカ5のワールド座標系における位置とを用いることによって、移動体1のワールド座標系における位置をも取得できることは言うまでもない。
【0046】
また、本実施の形態では、マーカを用いた位置の取得に同次変換行列を用いる場合について主に説明したが、そうでなくてもよい。同次変換行列を用いない方法によっても、マーカを用いた位置の取得を行うことができることは言うまでもない。
【0047】
移動機構16は、移動体1を移動させる。移動機構16は、例えば、移動体1を全方向に移動できるものであってもよく、または、そうでなくてもよい。全方向に移動できるとは、任意の方向に移動できることである。移動機構16は、例えば、走行部(例えば、車輪など)と、その走行部を駆動する駆動手段(例えば、モータやエンジンなど)とを有していてもよい。なお、移動機構16が、移動体1を全方向に移動できるものである場合には、その走行部は、全方向移動車輪(例えば、オムニホイール、メカナムホイールなど)であってもよい。全方向移動車輪を有し、全方向に移動可能な移動体については、例えば、特開2017-128187号公報を参照されたい。この移動機構16としては、公知のものを用いることができるため、その詳細な説明を省略する。
【0048】
移動制御部17は、現在位置取得部15によって取得された現在位置を用いて、移動機構16を制御する。その移動機構16の制御によって、移動体1の移動が制御されることになる。移動の制御は、移動体1の移動の向きや、移動の開始・停止などの制御であってもよい。なお、現在位置取得部15によって取得された現在位置は、例えば、マーカが撮影された場合には、そのマーカを用いて取得された現在位置であり、そうでない場合には、マーカ以外を用いて取得された現在位置であってもよい。また、例えば、移動経路が設定されている場合には、移動制御部17は、移動体1がその移動経路に沿って移動するように、移動機構16を制御してもよい。より具体的には、移動制御部17は、現在位置取得部15によって取得される現在位置が、その移動経路に沿ったものになるように、移動機構16を制御してもよい。また、移動制御部17は、地図を用いて、移動の制御を行ってもよい。その場合には、移動体1は、地図が記憶される記憶部を備えていてもよい。
【0049】
次に、移動体1の動作について
図3のフローチャートを用いて説明する。
(ステップS101)移動制御部17は、移動を開始するかどうか判断する。そして、移動を開始する場合には、ステップS102に進み、そうでない場合には、移動を開始するまでステップS101の処理を繰り返す。なお、移動制御部17は、例えば、新たな目的地までの移動の指示を受け付けた場合に、移動を開始すると判断してもよく、その他のタイミングで移動を開始すると判断してもよい。
【0050】
(ステップS102)撮影部11は、撮影画像を取得する。
【0051】
(ステップS103)画像補正部14は、ステップS102で取得された撮影画像を、学習器記憶部13で記憶されている学習器に適用することによって、補正後の撮影画像を取得する。
【0052】
(ステップS104)現在位置取得部15は、補正後の撮影画像を用いて、移動体1の現在位置を取得する。なお、例えば、補正後の撮影画像にマーカが含まれていない場合には、現在位置取得部15は、マーカを用いない方法によって現在位置を取得してもよい。
【0053】
(ステップS105)移動制御部17は、ステップS104で取得された現在位置を用いて、移動機構16を制御する。この移動の制御は、例えば、目的地に向かう自律的な移動の制御である。このステップS105の移動の制御が繰り返して行われることによって、移動体1は、出発地から目的地に向けて移動することになる。
【0054】
(ステップS106)移動制御部17は、移動を終了するかどうか判断する。そして、移動を終了する場合には、ステップS101に戻り、移動を継続する場合には、ステップS102に戻る。なお、移動制御部17は、現在位置が目的地となった場合に、移動を終了すると判断してもよい。
【0055】
なお、
図3のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。また、
図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0056】
次に、学習器製造装置2の動作について
図4のフローチャートを用いて説明する。
(ステップS201)訓練画像受付部21は、訓練用入力画像と訓練用出力画像との複数の組を受け付けたかどうか判断する。そして、訓練用入力画像と訓練用出力画像との複数の組を受け付けた場合には、ステップS202に進み、そうでない場合には、それらを受け付けるまでステップS201の処理を繰り返す。
【0057】
(ステップS202)学習器製造部22は、ステップS201で受け付けられた複数の訓練画像を用いて、機械学習によって学習器を製造する。
【0058】
(ステップS203)学習器出力部23は、ステップS202で製造された学習器を出力する。このようにして、学習器を製造する一連の処理が終了する。
なお、
図4のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。
【0059】
次に、本実施の形態による移動体1の動作について、具体例を用いて簡単に説明する。
まず、訓練画像を取得するため、移動体1を動作させて、時間帯や天気、季節などが異なる種々の状況における撮影画像を取得させる。このようにして、移動体1の移動領域における異なる照明条件での撮影画像を取得することができる。この撮影画像が、訓練用入力画像となる。次に、ユーザは、写真編集ソフトウェアを用いて、訓練用入力画像である撮影画像が、基準照明条件で撮影された撮影画像となるように、手作業で露出や色温度等を調整する。基準照明条件を満たすように調整された撮影画像が、訓練用出力画像となる。このようにして、訓練用入力画像と訓練用出力画像との組である訓練画像を複数用意することができる。
【0060】
次に、ユーザは、その用意した複数の訓練画像を学習器製造装置2に入力する。その複数の訓練画像は、訓練画像受付部21によって受け付けられ、学習器製造部22に渡される(ステップS201)。そして、学習器製造部22は、その複数の訓練画像について機械学習を行うことによって学習器を製造する(ステップS202)。その製造された学習器は、学習器出力部23によって図示しない記録媒体に蓄積される(ステップS203)。
【0061】
その学習器が移動体1の学習器記憶部13に蓄積された後に、移動体1による移動が開始される。ここでは、マーカ5を用いた位置決めを行う移動について説明する。その移動において、
図5A、
図5Bで示されるように、撮影部11は、マーカ5を含む撮影画像を取得する(ステップS101,S102)。その撮影画像は、画像補正部14によって学習器に適用されることによって、基準照明条件で撮影された撮影画像となるように補正され、現在位置取得部15に渡される(ステップS103)。例えば、
図5Aでは、マーカ5の背後に存在するシャッター9が閉まっているため、撮影部11によって取得されたマーカ5の撮影画像は、基準照明条件での撮影画像に近いものとなる。一方、例えば、
図5Bで示されるように、シャッター9が空いている場合には、マーカ5の撮影が逆光になり、撮影部11によって取得されたマーカ5の撮影画像における露出や色温度が基準照明条件とは異なるものになることもあり得る。いずれの場合であっても、撮影部11によって取得された撮影画像が学習器に適用されることによって、基準照明条件での撮影画像に補正することができる。
【0062】
現在位置取得部15は、その補正後の撮影画像に含まれるマーカ5を用いて、移動体1の現在位置を取得し、その現在位置を移動制御部17に渡す(ステップS104)。この現在位置の取得において補正された撮影画像が用いられるため、撮影画像におけるマーカ5の位置を認識する際に、誤認識となる可能性を低減することができ、マーカ5を用いた現在位置の取得の精度を向上させることができるようになる。現在位置を受け取ると、移動制御部17は、その現在位置を用いて移動体1の移動を行ったり、位置決めを行ったりするために、移動機構16を制御する。このようにして、補正後の撮影画像を用いて移動体1を目的地にまで高精度に移動させることができるようになる(ステップS105,S106)。
【0063】
以上のように、本実施の形態による移動体1によれば、学習器を用いることによって、撮影画像を適切に補正することができる。その結果、その補正後の撮影画像を用いて現在位置が取得されることによって、より精度の高い現在位置の取得を実現することができ、結果として、移動体1の移動精度を向上させることができるようになる。例えば、撮影画像の露出や色温度などをルールベースで補正することも考えられるが、そのような場合には、想定外の撮影画像が得られたときに、適切な補正を行うことができないことになる。そのため、補正で用いられるパラメータを環境に応じて調整する必要がある。一方、本実施の形態の手法では、基準照明条件と同様の撮影が行われたものとなるように撮影画像が補正されることによって、そのようなパラメータ調整等を行うことなく、より適切な補正を行うことができるようになる。また、本実施の形態では、補正後の撮影画像が現在位置の取得のために用いられる場合について主に説明したが、それ以外の用途、例えば、交通信号機の点灯色などの周囲環境の情報認識のためや、ジェスチャーを認識のためなどに補正後の撮影画像が用いられる場合であっても、その情報認識やジェスチャー認識などの精度を向上させることができる。また、畳み込みニューラルネットワークの学習結果である学習器を用いた場合には、補正後の撮影画像を短時間で取得することができるため、リアルタイムでの補正が可能となり、その結果、補正後の撮影画像を用いたスムーズな移動制御を実現させることができるようになる。
また、本実施の形態による学習器製造装置2によれば、複数の訓練画像を用いて、撮影画像の照明条件に関する補正を行うために用いられる学習器を生成することができるようになる。
【0064】
なお、本実施の形態では、学習器記憶部13で記憶されている学習器が、撮影画像である訓練用入力画像と、その撮影画像に対応する画像であり、基準となる照明条件である基準照明条件での画像である訓練用出力画像との組を複数用いて学習された学習器である場合について主に説明したが、以下、その学習器とは異なる学習器を用いて撮影画像の補正が行われる場合について、
図6を参照しながら説明する。その撮影画像の補正方法を、ここでは、「最適化による撮影画像の補正」と呼ぶことにする。
【0065】
図6は、画像補正装置12の他の構成の一例を示すブロック図である。
図6において、画像補正装置12は、学習器記憶部18と、画像補正部19とを備える。また、画像補正部19は、最適化による撮影画像の補正を行うものであり、出力画像取得部31と、スタイル行列記憶部32と、最適化部33とを備える。
【0066】
最適化による撮影画像の補正が行われる場合には、学習器記憶部18では、物体認識用の畳み込みニューラルネットワークの所定の中間層までを少なくとも含む物体認識学習器が記憶されているものとする。その物体認識学習器は、物体認識用の畳み込みニューラルネットワークそのものであってもよく、その物体認識用の畳み込みニューラルネットワークの後段の複数の層(例えば、全結合層やソフトマックス層など)を含まないニューラルネットワークであってもよい。撮影画像の補正で用いるのは、物体認識用の畳み込みニューラルネットワークのうち、中間層の出力マップまでであり、出力層の出力は用いないからである。その物体認識用の畳み込みニューラルネットワークとしては、例えば、VGG 16-layerの畳み込みニューラルネットワークモデルを用いてもよい。なお、VGG 16-layerの畳み込みニューラルネットワークモデルには、前段側に複数の畳み込み層とプーリング層との複数のセットが含まれ、出力層の直前に、3個の全結合層と1個のソフトマックス層とが含まれるが、その4層については、最適化による撮影画像の補正では用いないため、上記のように、学習器記憶部18に含まれていなくてもよい。また、物体認識用の畳み込みニューラルネットワークにおけるプーリング層では、平均プーリングが採用されてもよい。そのように、物体認識用の畳み込みニューラルネットワークに含まれるプーリング層において平均プーリングが行われる場合であっても、そのニューラルネットワークを、物体認識用の畳み込みニューラルネットワークと呼ぶことにする。層の種類や並び順は、物体認識のものと同様だからである。また、物体認識用の畳み込みニューラルネットワークも、教師あり機械学習によって学習された学習器であることは言うまでもない。ここでは、物体認識学習器が、物体認識用の畳み込みニューラルネットワークそのものである場合について主に説明する。
【0067】
まず、最適化による撮影画像の補正の概要について説明する。物体認識学習器では、中間層においても、入力画像の特徴的な形状(撮影画像に含まれる物体の配置等)が維持されているという特徴がある。一方、画像のテクスチャの特徴は、中間層のチャネル間の相関によって示されることが知られている。したがって、ホワイトノイズ画像等の入力画像を物体認識学習器に適用した中間層の出力マップと、撮影画像を物体認識学習器に適用した中間層の出力マップとの誤差が小さくなり、その入力画像を物体認識学習器に適用した中間層のチャネル間の相関と、基準照明条件で撮影された撮影画像を物体認識学習器に適用した中間層のチャネル間の相関との誤差が小さくなるようにした入力画像を求めることによって、撮影画像の補正を行うことができる。そのようにして求められた入力画像は、物体の配置等は撮影画像に似たものとなる一方、色合いや明るさなどのテクスチャは、基準照明条件で撮影された撮影画像に似たものとなるからである。なお、このようにして、画像のテクスチャを変更する手法はすでに公知であり、例えば、次の文献を参照されたい。
文献:Leon A. Gatys, Alexander S. Ecker, Matthias Bethge,「A Neural Algorithm of Artistic Style」、Nature Communications, 2015
【0068】
出力画像取得部31は、撮影部11によって撮影された撮影画像を物体認識学習器に適用することによって、あらかじめ決められた中間層の出力画像であるコンテンツ出力画像を取得する。あらかじめ決められた中間層は、例えば、後段の全結合層の直前の層(例えば、VGG 16-layerの畳み込みニューラルネットワークモデルの場合には、最後段のプーリング層となる)であってもよく、それよりも前段側の層であってもよい。
【0069】
撮影画像を物体認識学習器に適用した場合における、k番目の層の出力マップをPkとし、あらかじめ決められた層がK1番目の層であるとすると、出力画像取得部31は、撮影画像を物体認識学習器に適用することによって、コンテンツ出力画像PK1を取得してもよい。なお、行列(出力マップ)PkにおけるPk
ijは、k番目の層の出力マップにおけるi番目のチャネルのj番目の画素の値である。例えば、k番目の層のチャネル数がNk個であり、k番目の層の1チャネルの出力マップのサイズがW1k×W2kである場合には、Pk
ijに関して、例えば、iは0からNk-1までの整数となり、jは0からMk-1までの整数となる。なお、Mk=W1k・W2kである。また、kは1以上の整数である。また、K1は、あらかじめ決められていることが好適である。
【0070】
スタイル行列記憶部32では、基準照明条件で撮影された撮影画像である基準撮影画像が物体認識学習器に適用されることによって得られた、中間層の出力画像のチャネル間の相関であるスタイル行列が記憶される。以下、そのスタイル行列について説明する。
【0071】
基準撮影画像を物体認識学習器に適用した場合におけるk番目の層の出力マップをB
kとすると、基準撮影画像に関するk番目の層のスタイル行列A
kのi行目j列目の成分A
k
ijは、次式のようにして算出することができる。A
k
ijは、基準撮影画像を物体認識学習器に適用した場合におけるk番目の層のi番目のチャネルの出力マップのベクトルと、j番目のチャネルの出力マップのベクトルとの内積となる。したがって、各(i,j)についてA
k
ijを算出することによって、基準撮影画像に関するk番目の層の出力画像におけるチャネル間の相関を各要素に有するスタイル行列A
kを取得することができる。
【数1】
【0072】
スタイル行列記憶部32では、例えば、物体認識学習器の1番目の層からK2番目の層までのスタイル行列A1~AK2が記憶されていてもよい。なお、スタイル行列記憶部32にスタイル行列が記憶される過程は問わない。例えば、記録媒体を介してスタイル行列がスタイル行列記憶部32で記憶されるようになってもよく、通信回線等を介して送信されたスタイル行列がスタイル行列記憶部32で記憶されるようになってもよい。スタイル行列記憶部32での記憶は、RAM等における一時的な記憶でもよく、または、長期的な記憶でもよい。スタイル行列記憶部32は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
【0073】
なお、学習器記憶部18と、スタイル行列記憶部32とは、同一の記録媒体によって実現されてもよく、または、別々の記録媒体によって実現されてもよい。前者の場合には、学習器を記憶している領域が学習器記憶部18となり、スタイル行列を記憶している領域がスタイル行列記憶部32となる。
【0074】
最適化部33は、入力画像を物体認識学習器に適用することによって得られるあらかじめ決められた中間層の出力画像とコンテンツ出力画像との誤差、及び入力画像を物体認識学習器に適用することによって得られる中間層の出力画像のチャネル間の相関である出力行列とスタイル行列との誤差に応じた目的関数を最適化する入力画像である補正後の撮影画像を取得する。なお、入力画像を物体認識学習器に適用することによって得られるあらかじめ決められた中間層の出力画像とコンテンツ出力画像との誤差E1、及び出力行列とスタイル両列との誤差E2に応じた目的関数とは、例えば、誤差E1が大きくなるほど値が大きくなり、誤差E2が大きくなるほど値が大きくなる目的関数であってもよく、または、誤差E1が大きくなるほど値が小さくなり、誤差E2が大きくなるほど値が小さくなる目的関数であってもよい。前者の場合には、目的関数の最適化は、目的関数を最小化することであり、後者の場合には、目的関数の最適化は、目的関数を最大化することである。ここでは、前者の場合について主に説明する。
【0075】
入力画像の初期値は、上記のように、ホワイトノイズ画像であってもよい。以下、入力画像をベクトルxとする。すなわち、ベクトルxの各要素が、入力画像の各画素値になるものとする。また、入力画像を物体認識学習器に適用することによって得られる、あらかじめ決められた中間層(上記のように、K1番目の層である)の出力画像(出力マップ)をF
K1とする。すると、入力画像を物体認識学習器に適用することによって得られるあらかじめ決められた中間層の出力画像とコンテンツ出力画像との誤差E1は、例えば、次式のように算出することができる。次式の誤差E1は、出力画像F
K1の各画素と、コンテンツ出力画像P
K1の各画素との差の二乗が、画素ごとに、またチャネルごとに加算された結果である。なお、次式において、撮影画像をベクトルpとしている。
【数2】
【0076】
また、k番目の層の出力行列G
kの(i,j)成分G
k
ijは、次式のようにして、入力画像(ベクトルx)に対応するk番目の層の出力画像F
kを用いて算出することができる。したがって、各(i,j)についてG
k
ijを算出することによって、入力画像に関するk番目の層の出力行列G
kを取得することができる。なお、最適化部33は、例えば、物体認識学習器の1番目の層からK2番目の層までの出力行列G
1~G
K2を算出してもよい。
【数3】
【0077】
物体認識学習器のk番目の層に関する、出力行列とスタイル行列との誤差は、次式のようにして算出することができる。次式の誤差E
kは、k番目の層の出力行列G
kの各要素と、k番目の層のスタイル行列A
kの各要素との差の二乗が、行列の要素ごとに加算された結果である。なお、基準撮影画像をベクトルaとしている。また、上記のように、N
kはk番目の層のチャネル数であり、M
kは、k番目の層の出力マップの画素数である。
【数4】
【0078】
k番目の層の誤差E
kと、重みw
kとを掛けて層ごとに足し合わせることによって、1番目の層からK2番目の層までの出力行列とスタイル行列との誤差E2を次式のように算出することができる。この誤差E2が、出力行列とスタイル行列との誤差である。なお、重みw
kは特に限定されるものではないが、例えば、w
k=1/K2であってもよい。また、K2の値は特に問わないが、例えば、VGG 16-layerの場合には、3や5、7程度であってもよい。また、これに限定されるものではないが、K2<K1であることが好適である。
【数5】
【0079】
なお、ここでは、出力行列とスタイル行列との誤差E2が、K2層分の誤差である場合について示しているが、そうでなくてもよい。特定の1以上の中間層に関する出力行列とスタイル両列との誤差E2が最適化の処理に用いられてもよい。その特定の1以上の中間層は、例えば、1個の中間層であってもよく、2個以上の中間層であってもよい。その2個以上の中間層は、連続したものであってもよく、または、そうでなくてもよい。また、特定の1以上の中間層は、2番目以降の中間層であってもよい。
【0080】
目的関数Eは、例えば、次式のように誤差E1と誤差E2とをそれぞれ重みα、βを掛けて足し合わせたものであってもよい。α、βは、それぞれ正の実数である。なお、α、βの値は特に問わないが、例えば、α/βは、1×10
-3や、1×10
-4などであってもよい。
【数6】
【0081】
最適化部33は、この目的関数Eが最適化されるように、すなわち最小化されるように、入力画像であるベクトルxの各要素を求める。そのようにして求められた入力画像が、補正後の撮影画像となる。なお、最適化部33は、その最適化の処理において、例えば、最急降下法などの公知の方法を用いてもよい。このように、最適化による撮影画像の補正を行う場合には、1個の基準撮影画像を用意することによって、撮影画像の補正を行うことができるため、基準撮影画像を準備するための負担が軽減されることになる。
【0082】
なお、最適化部33による最適化によって補正後の撮影画像を取得するのにかかる時間は、上記のように、学習器に撮影画像を適用することによって補正後の撮影画像を取得する時間よりも大幅に長くなる。したがって、通常は、最適化による撮影画像の補正においてリアルタイムで撮影画像の補正を行うことは困難であるが、例えば、撮影画像の補正がT秒に1回行われることによって、T秒に1回は、精度の高い現在位置の取得を行うことができるようになる。そのため、例えば、通常は、未補正の撮影画像を用いた現在位置の取得や、撮影画像を用いる以外の手法による現在位置の取得を行い、T秒に1回、精度の高い現在位置が取得されるごとに、現在位置を補正するようにしてもよい。このように、最適化による撮影画像の補正によって得られた補正後の撮影画像は、位置ずれの補正のために用いられてもよい。
【0083】
また、交通信号機の点灯色などの周囲環境の情報認識のためや、ジェスチャーを認識のためなどに補正後の撮影画像が用いられる場合には、最適化部33によって補正後の撮影画像が得られるまで、周囲環境の情報認識の結果や、ジェスチャー認識の結果に応じた移動が行われないようにしてもよい。
【0084】
このように、最適化による撮影画像の補正を行う場合であっても、撮影画像の露出や色温度等を基準照明条件に応じたものに変更することができ、補正後の撮影画像を用いた高精度な現在位置の取得や周囲環境の情報認識、ジェスチャー認識等を行うことができるようになる。
【0085】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【0086】
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、または、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
【0087】
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いる閾値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、または長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、または、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、または、図示しない読み出し部が行ってもよい。
【0088】
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いる閾値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、または、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
【0089】
また、上記実施の形態において、移動体1、及び学習器製造装置2に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、または、別々のデバイスを有してもよい。
【0090】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
【0091】
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【0092】
以上より、本発明による画像補正装置等によれば、適切な照明条件で撮影された画像となるように撮影画像を補正することができるという効果が得られ、例えば、移動体において撮影画像を補正する装置等として有用である。
【符号の説明】
【0093】
1 移動体、2 学習器製造装置、11 撮影部、12 画像補正装置、13、18 学習器記憶部、14、19 画像補正部、15 現在位置取得部、16 移動機構、17 移動制御部、31 出力画像取得部、32 スタイル行列記憶部、33 最適化部