以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、本明細書および図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なる数字を付して区別する場合がある。ただし、実質的に同一の機能構成を有する複数の構成要素等の各々を特に区別する必要がない場合、同一符号のみを付する。また、異なる実施形態の類似する構成要素については、同一の符号の後に異なるアルファベットを付して区別する場合がある。ただし、異なる実施形態の類似する構成要素等の各々を特に区別する必要がない場合、同一符号のみを付する。
(0.概要)
図1は、本発明の実施形態に係る画像処理システムの構成例を示す図である。図1に示されるように、本発明の実施形態に係る画像処理システムは、画像処理装置10と複数のカメラ(複数の撮像部)の例としてのカメラC1~C4とを有する。図1に示された例では、カメラC1~C4は、道路平面を走行する車両30に設けられている。しかし、カメラC1~C4は、車両30の代わりに、他の物体に設けられてもよい。例えば、カメラC1~C4は、車両30とは異なる移動体(例えば、船舶、航空機など)に設けられてもよいし、移動しない物体(例えば、建物など)に設けられてもよい。
図1に示された例では、カメラC1が車両30の前面に設けられ、カメラC2が車両30の右側面に設けられ、カメラC3が車両30の背面に設けられ、カメラC4が車両30の左側面に設けられる例が示されている。しかし、カメラC1~C4が設けられる位置は限定されない。また、撮像方向も限定されない。例えば、図1に示された例では、カメラC1~C4が車両30の周囲を撮像しているが、カメラC1~C4の撮像方向は、必ずしも車両30の周囲への方向でなくてもよい。
カメラC1~C4は、互いに異なる視点から撮像を行う。図1を参照すると、カメラC1の撮像範囲R1が示され、カメラC2の撮像範囲R2が示され、カメラC3の撮像範囲R3が示され、カメラC4の撮像範囲R4が示されている。撮像範囲R1~R4を参照すると、カメラC1~C4それぞれの画角が180度であるが、カメラC1~C4それぞれの画角は特に限定されない。
そして、カメラC1の撮像範囲R1の一部とカメラC2の撮像範囲R2の一部とは重複領域r12において重複しており、カメラC2の撮像範囲R2の一部とカメラC3の撮像範囲R3の一部とは重複領域r23において重複しており、カメラC3の撮像範囲R3の一部とカメラC4の撮像範囲R4の一部とは重複領域r34において重複しており、カメラC4の撮像範囲R4の一部とカメラC1の撮像範囲R1の一部とは重複領域r41において重複している。
図1に示された例では、撮像範囲R1~R4それぞれの一部は、他のいずれか二つの撮像範囲の一部と重複している。しかし、撮像範囲R1~R4は、他の少なくとも一つの撮像範囲と一部または全部重複していればよい。撮像範囲R1~R4は空間的に連続していることが理想ではあるが、撮像手段を取り付ける物体の形状等の制約により一部空間的に連続ではない箇所があってもよい。これによって、死角(カメラC1~C4によって撮像されない範囲)が少なくなるようにカメラC1~C4が設けられ得る。
さらに、図1に示された例では、カメラの個数が4個であるが、カメラの個数は複数であれば特に限定されない。以下では、カメラの個数をM(Mは2以上の整数)個とし、画像処理システムが、M個のカメラ(カメラC1~CM)を有する場合を主に想定する。本発明の実施形態においては、カメラC1~CMを任意の位置に設定することを可能としつつ、カメラC1~CMそれぞれによって撮像された画像に基づく合成画像の歪みを低減させることを可能とする技術について主に説明する。
なお、カメラC1~CMそれぞれは、イメージセンサを含んで構成されており、イメージセンサによって撮像範囲を撮像する。カメラC1~CMの種類は特に限定されない。例えば、カメラC1~CMは、可視光カメラであってもよいし、赤外光カメラであってもよい。カメラC1~CMそれぞれによって撮像された画像は、入力画像として、撮像時刻(以下、単に「時刻」とも言う。)とともに、逐次的に画像処理装置10に入力される。撮像時刻の基準は特に限定されず、任意に設定されてよい。
以上、本発明の実施形態の概要について説明した。
(1.第1の実施形態)
続いて、本発明の第1の実施形態について説明する。
図2は、本発明の第1の実施形態に係る画像処理装置の機能構成例を示すブロック図である。図2に示されるように、本発明の第1の実施形態に係る画像処理装置10Aは、画像処理部120-1~120-M、カメラ個数検出部150、ネットワーク構造制御部160、合成処理部170Aおよび出力部180Aを備える。
画像処理装置10Aは、CPU(Central Processing Unit)などを含み、図示しない記憶部により記憶されているプログラムがCPUによりRAM(Random Access Memory)に展開されて実行されることにより、その機能が実現され得る。このとき、当該プログラムを記録した、コンピュータに読み取り可能な記録媒体も提供され得る。あるいは、画像処理装置10Aは、専用のハードウェアにより構成されていてもよいし、複数のハードウェアの組み合わせにより構成されてもよい。
画像処理部120-1~120-Mは、それぞれ対応するカメラに接続されている。例えば、画像処理部120-1は、カメラC1に接続されており、画像処理部120-2は、カメラC2に接続されており、画像処理部120-Mは、カメラCMに接続されている。画像処理部120-1~120-Mは、それぞれ対応するカメラからの入力画像に基づいて特徴量を抽出する。そして、画像処理部120-1~120-Mは、抽出したカメラごとの特徴量を逐次的に合成処理部170Aに出力する。
図3は、画像処理部120-1~120-Mの詳細構成例を示す図である。画像処理部120-1~120-Mそれぞれは、画像特徴量抽出CNN(Convolutional Neural Network)122-1~122-N、時間方向結合部123および時間変化参照RNN(Reccurent Neural Network)124を有する。
なお、本発明の実施形態では、カメラC1~CMによって動画が撮像される(画像が連続的に撮像される)場合を想定する。しかし、カメラC1~CMによって静止画が撮像されてもよい(画像が1枚撮像されてもよい)。かかる場合には、画像処理部120-1~120-Mそれぞれは、画像特徴量抽出CNN122を1つずつ有していればよく、時間方向結合部123および時間変化参照RNN124を有していなくてよい。
画像特徴量抽出CNN122-1~122-Nには、対応するカメラから入力画像と時刻とが入力される。例えば、画像処理部120-1において、画像特徴量抽出CNN122-1には、カメラC1からの(時刻T1における)入力画像と時刻T1とが入力され、画像特徴量抽出CNN122-Nには、カメラC1からの(時刻TNにおける)入力画像と時刻TNとが入力される。画像特徴量抽出CNN122-1~122-Nは、畳み込みニューラルネットワークであり、対応するカメラからの入力画像に基づいて特徴量を抽出する。画像特徴量抽出CNN122-1~122-Nは、特徴量と時刻との組み合わせを時間方向結合部123に出力する。
なお、画像特徴量抽出CNN122-1~122-Nの具体的な構成は限定されない。例えば、画像特徴量抽出CNN122-1~122-Nは、1つの畳み込み層を有してもよいし、複数の畳み込み層を有してもよい。また、画像特徴量抽出CNN122-1~122-Nは、畳み込み層以外の構成をさらに有していてもよく、例えば、プーリング層を有してもよい。
また、画像特徴量抽出CNN122-1~122-Nそれぞれのパラメータ(例えば、重み、バイアスなど)の初期値には、どのような値が設定されてもよい。例えば、画像特徴量抽出CNN122-1~122-Nそれぞれのパラメータの初期値には、ランダムに決められたパラメータが設定されてもよいし、事前訓練済みのパラメータが設定されてもよい。
また、図3に示された例では、画像特徴量抽出CNN122-1~122-Nによって、各カメラからの入力画像に基づいて特徴量が抽出される。しかし、各カメラからの入力画像に基づく特徴量は、必ずしも画像特徴量抽出CNN122-1~122-Nによって抽出されなくてもよい。例えば、各カメラからの入力画像に基づく特徴量は、畳み込みニューラルネットワークが用いられずに抽出されてもよい。
時間方向結合部123には、画像特徴量抽出CNN122-1~122-Nから特徴量と時刻との組み合わせが入力される。時間方向結合部123は、画像特徴量抽出CNN122-1~122-Nから入力される時刻に基づいて、各特徴量を結合する。ここでは、時間方向結合部123が、時刻T1に対応する特徴量、時刻T2に対応する特徴量、・・・、時刻TNに対応する特徴量の順(時刻の早い順)に各特徴量を結合する場合を想定する。しかし、各特徴量の結合順序は限定されない。時間方向結合部123は、このようにして結合した各特徴量を時間変化参照RNN124に出力する。
時間変化参照RNN124は、再帰型ニューラルネットワークである。時間変化参照RNN124には、時間方向結合部123によって結合された各特徴量が入力データ(時刻T1~TN)として入力される。そして、時間変化参照RNN124によって各特徴量の時間変化が参照される。時間変化参照RNN124からは、時間変化に応じた各特徴量が出力される。
図4は、時間変化参照RNN124の詳細構成例を示す図である。図4に示されるように、時間変化参照RNN124は、中間ノード125-1~125-Nを有する。中間ノード125-1~125-Nには、対応する特徴量が入力データとして入力される。例えば、中間ノード125-1には、時刻T1に対応する特徴量が入力データとして入力され、中間ノード125-2には、時刻T2に対応する特徴量が入力データとして入力され、中間ノード125-Nには、時刻TNに対応する特徴量が入力データとして入力される。
中間ノード125-1は、パラメータに基づいて入力データに対応する出力データを算出し、算出した出力データを合成処理部170Aに出力するとともに、次の中間ノード(図4に示された例では、次時刻に対応する中間ノード125-2)に出力する。これによって、中間ノード125-2は、自ノードへの入力データに加えて、前の中間ノード(図4に示された例では、前時刻に対応する中間ノード125-1)からの出力データに基づいて、自ノードからの出力データを算出することができる。
中間ノード125-2は、自ノードからの出力データを合成処理部170Aに出力するとともに、次の中間ノード(図4に示された例では、次時刻に対応する中間ノード)に出力する。以降の中間ノードも、中間ノード125-2と同様に、出力データを算出し、算出した出力データを合成処理部170Aに出力するとともに、次の中間ノードに出力する。そして、中間ノード125-Nも、中間ノード125-2と同様に、出力データを算出する。そして、中間ノード125-Nは、算出した出力データを合成処理部170Aに出力する。
上記したように、合成画像に生じる歪みは、カメラC1~CMによって撮像された画像の端部に生じやすい。しかし、移動体(車両30など)にカメラC1~CMが設けられる場合、ある時刻において画像の端に写っていた場所が、次の時刻においては画像の端から(歪みの小さい位置に)移動していることがあり得る。そこで、時間変化参照RNN124は、上記したように時間変化を参照することによって、歪みの小さい画像も参照し、合成画像に生じる歪みを低減することができる。
図4に示されるように、中間ノード125-2~125-Nは、時刻T1~TNに対応する出力データを出力する。時刻T1~TNに対応する出力データは、対応するカメラの出力データとして、合成処理部170Aに出力される。例えば、図3に示されるように、画像処理部120-1の時間変化参照RNN124からは、カメラC1に対応する出力データが合成処理部170Aに出力される。また、画像処理部120-Mの時間変化参照RNN124からは、カメラCMに対応する出力データが合成処理部170Aに出力される。
時間変化参照RNN124の構成は、図4に示された例に限定されない。例えば、中間ノード125の数や、中間ノード125同士の接続関係は適宜に変更されてよい。また、中間ノードの出力は時刻T1~TNに対応していなくてもよいし、最終ノードから一つのデータを出力する構成であってもよい。例えば、時間変化参照RNN124は、畳み込み層を有してもよいし、全結合層を有してもよい。また、時間変化参照RNN124は、他の中間ノードと結合しない中間ノードを有してもよい。また、時間変化参照RNN124は、RNNの一例としてのLSTM(Long Short-Term Memory)を有してもよいし、RNNの一例としてのBRNN(Bidirectional Recurrent Neural Networks)を有してもよい。
なお、図4に示された例では、画像処理部120-1~120-Mは、論理的に別々のブロックに分けられている。しかし、画像処理部120-1~120-Mは、物理的には共通のブロックであってよい。すなわち、画像処理部120-1~120-Mは、物理的に共通のモジュールによって実現されてよい。このとき、画像処理装置10Aは、共通のモジュールに対してカメラC1~CMからの入力画像および時刻を与えることによって、共通のモジュールからカメラC1~CMそれぞれに対応する出力データを得ることができる。
例えば、画像特徴量抽出CNN122-1は、画像処理部120-1~120-Mそれぞれにおいて、物理的に共通のネットワークであってよく、画像特徴量抽出CNN122-1には、カメラに依存しない共通のパラメータが設定されてよい。画像特徴量抽出CNN122-2~122-Nも同様である。これによって、画像処理装置10Aに接続されるカメラに依存せずに、すべてのカメラからの入力画像に基づく特徴量の抽出が実行され得るため、カメラの個数が任意に設定され得る。
また、画像特徴量抽出CNN122-1~122-Nは、論理的に別々のブロックに分けられている。しかし、画像特徴量抽出CNN122-1~122-Nは、物理的には共通のブロックであってよい。すなわち、画像特徴量抽出CNN122-1~122-Nは、物理的に共通のネットワークによって実現されてよい。このとき、画像処理装置10Aは、共通のネットワークに対して時刻T1~TNの入力画像を与えることによって、共通のネットワークから時刻T1~TNそれぞれに対応する特徴量を得ることができる。
同様に、時間変化参照RNN124は、画像処理部120-1~120-Mそれぞれにおいて、物理的に共通のネットワークであってよく、時間変化参照RNN124には、カメラに依存しない共通のパラメータが設定されてよい。これによって、画像処理装置10Aに接続されるカメラに依存せずに、すべてのカメラからの入力画像に基づく特徴量の時間変化が参照され得るため、カメラの個数が任意に設定され得る。
図2に戻って説明を続ける。合成処理部170Aは、画像処理部120-1~120-Mに接続された再帰型ニューラルネットワークを有し、再帰型ニューラルネットワークによって、画像処理部120-1~120-Mから逐次的に入力される各特徴量を合成する。このように、カメラC1~CMの間の空間変化(空間的な位置の相違)を参照して、各特徴量を合成することによって、カメラの位置を任意に設定することが可能となる。すなわち、かかる構成によれば、カメラの位置の変更があっても、変更前後で同じ学習モデルを用いて推論を行うことが可能となる。
図5は、合成処理部170Aの詳細構成例を示す図である。合成処理部170Aは、空間方向結合部171、カメラ情報記憶部172、カメラ情報結合部173および空間変化参照RNN174を有する。
空間方向結合部171には、画像処理部120-1~120-MからカメラC1~CMそれぞれに対応する入力データ(特徴量)が入力される。空間方向結合部171は、カメラC1~CMそれぞれに対応する入力データ(特徴量)を結合する。ここでは、空間方向結合部171が、カメラC1に対応する特徴量、カメラC2に対応する特徴量、・・・、カメラCMに対応する特徴量の順に各特徴量を結合する場合を想定する。各特徴量の結合順序は限定されない。空間方向結合部171は、このようにして結合した各特徴量をカメラ情報結合部173に出力する。
カメラ情報記憶部172は、カメラ情報を記憶している。ここでは、カメラ情報が、カメラの設置に関する情報を含む場合を主に想定する。そして、カメラの設置に関する情報が、カメラの位置情報およびカメラの方向情報を含む場合を主に想定する。しかし、カメラ情報は限定されない。例えば、カメラの設置に関する情報は、カメラの位置情報およびカメラの方向情報の一方のみを含んでもよい。なお、カメラの位置情報は、カメラが設置されている3次元的な位置を示す情報であってよい。カメラの方向情報は、カメラが向いている3次元的な方向を示す情報であってよい。
カメラ情報結合部173は、カメラC1~CMそれぞれのカメラ情報をカメラ情報記憶部172から取得する。そして、カメラ情報結合部173は、カメラC1~CMそれぞれの特徴量に対して、対応するカメラ情報を付加する。例えば、カメラ情報結合部173は、カメラC1の特徴量に対して、カメラC1のカメラ情報を付加し、カメラCMの特徴量に対して、カメラCMのカメラ情報を付加する。これによって、カメラごとにカメラ情報と特徴量との組み合わせが生成される。カメラ情報結合部173と空間方向結合部171の順序は特に限定されず、どちらが先であってもよい。
空間変化参照RNN174は、カメラ情報結合部173によって生成されたカメラ情報と特徴量との各組み合わせを合成する。このように、カメラ情報と特徴量との各組み合わせが合成されることによって、各カメラの空間的な位置がより反映された合成がなされ得る。しかし、必ずしも特徴量とカメラ情報とは結合されなくてもよく、空間変化参照RNN174は、カメラ情報とは結合されていない各特徴量を合成してもよい。
図6は、空間変化参照RNN174の詳細構成例を示す図である。図6に示されるように、空間変化参照RNN174は、中間ノード175-1~175-Mを有する。中間ノード175-1~175-Mには、対応する組み合わせが入力データとして入力される。例えば、中間ノード175-1には、カメラC1に対応する組み合わせが入力データとして入力され、中間ノード175-2には、カメラC2に対応する組み合わせが入力データとして入力され、中間ノード175-Mには、カメラCMに対応する組み合わせが入力データとして入力される。
中間ノード175-1は、パラメータに基づいて入力データに対応する出力データを算出し、算出した出力データを次の中間ノード(図6に示された例では、次のカメラC2に対応する中間ノード175-2)に出力する。これによって、中間ノード175-2は、自ノードへの入力データに加えて、前の中間ノード175-1からの出力データに基づいて、自ノードからの出力データを算出することができる。
中間ノード175-2は、自ノードからの出力データを次の中間ノードに出力する。以降の中間ノードも、中間ノード175-2と同様に、出力データを算出し、算出した出力データを次の中間ノードに出力する。このようにして、隣接する中間ノード間において、ある方向(図6に示された例では、上から下への方向)に出力データが伝搬していく。そして、中間ノード175-Mは、中間ノード175-2と同様に、出力データを算出する。中間ノード175-Mは、算出した出力データを前の中間ノードに出力する。
中間ノード175-Mよりも前の中間ノード(中間ノード175-1を除く)は、自ノードへの入力データと上記方向と逆方向に入力される出力データとに基づいて、自ノードからの出力データを算出して、前の中間ノードに出力する。このようにして、隣接する中間ノード間において、逆方向(図6に示された例では、下から上への方向)に出力データが伝搬していく。中間ノード175-1は、同様にして自ノードからの出力データを算出する。そして、中間ノード175-1は、出力データを出力部180Aに出力する。かかる出力データは、カメラC1~CMそれぞれに対応する組み合わせが合成されたデータに相当する。
空間変化参照RNN174の構成は、図6に示された例に限定されない。例えば、中間ノード175の数や、中間ノード175同士の接続関係は適宜に変更されてよい。例えば、空間変化参照RNN174は、畳み込み層を有してもよいし、全結合層を有してもよい。また、空間変化参照RNN174は、他の中間ノードと結合しない中間ノードを有してもよい。また、空間変化参照RNN174は、RNNの一例としてのLSTM(Long Short-Term Memory)を有してもよいし、BRNN以外のRNNを有してもよい。
カメラ個数検出部150(図2)は、画像処理装置10に接続されているカメラの個数を検出する。カメラの個数はどのように検出されてもよい。例えば、カメラ個数検出部150は、ユーザによって図示しない操作部(例えば、タッチパネル、ボタンなど)を介して入力される値をカメラの個数として検出してもよいし、カメラからの入力信号が有る接続端子の数をカメラの個数として自動的に検出してもよい。
そして、ネットワーク構造制御部160は、カメラ個数検出部150によって検出されたカメラの個数に基づいて空間変化参照RNN174の構造を制御する。例えば、ネットワーク構造制御部160は、カメラの個数と中間ノード175の数とが同一になるように空間変化参照RNN174の構造を制御してよい。これによって、カメラの個数に合った空間変化参照RNN174の構造が自動的に設定され得る。
図2に戻って説明を続ける。出力部180Aには、合成処理部170Aから合成後のデータが入力される。出力部180Aは、合成処理部170Aから入力される合成後のデータに応じた出力を行う。なお、出力部180Aからのデータの出力先は限定されない。例えば、出力部180Aからのデータが、図示しないディスプレイに出力された場合、出力部180Aから出力されたデータが、かかるディスプレイによって表示されてよい。
図7は、出力部180Aの詳細構成例を示す図である。図7に示されるように、出力部180Aは、3次元画像生成部181、3次元画像出力部182、2次元画像生成部183A、2次元画像出力部184、物体検出部185および検出結果出力部186を有する。なお、出力部180Aは、これらのブロックの全部を有する必要はなく、これらのブロックの一部のみを有してもよいし、これらのブロックの代わりに他のブロックを有してもよい。
3次元画像生成部181は、合成後のデータに基づいて3次元画像を生成する。3次元画像は、どのように生成されてもよい。例えば、3次元画像生成部181は、合成後のデータに対してアップサンプリングを行うことによって3次元画像を生成する。アップサンプリングは、逆畳み込み層、アンプーリング層などを有するニューラルネットワークによって実行されてもよい。逆畳み込み層およびアンプーリング層それぞれの数は1つに限定されず、複数であってもよい。3次元画像出力部182は、3次元画像生成部181によって生成された3次元画像を出力する。
図8は、3次元画像の例を示す図である。3次元画像G1には、車両30(図1)の前方を走行する車両の3次元モデル32や背景が写っている。かかる3次元画像G1が3次元画像生成部181によって生成される。そして、3次元画像出力部182は、このようにして生成された3次元画像G1を出力する。
図7に戻って説明を続ける。2次元画像生成部183Aは、合成後のデータに基づいて所定の視点(仮想視点)を基準とした2次元画像(仮想画像)を生成する。ここでは、2次元画像の基準となる視点が、あらかじめ決められている場合を想定する。しかし、後に説明するように、2次元画像の基準となる視点は、任意に決められてもよい。
2次元画像は、どのように生成されてもよい。例えば、2次元画像生成部183Aは、合成後のデータに対して、3次元画像生成部181が用いたアップサンプリングとは異なるアップサンプリングを行うことによって2次元画像を生成する。2次元画像生成部183Aが用いるアップサンプリングも、3次元画像生成部181が用いるアップサンプリングと同様に、逆畳み込み層、アンプーリング層などを有するニューラルネットワークによって実行されてもよい。逆畳み込み層およびアンプーリング層それぞれの数は1つに限定されず、複数であってもよい。
2次元画像出力部184は、2次元画像生成部183Aによって生成された2次元画像を出力する。
図9は、2次元画像の例を示す図である。2次元画像G2は、2次元画像生成部183Aによって生成される。2次元画像G2には、車両30(図1)の前方を走行する車両の2次元画像34や背景が写っている。そして、2次元画像出力部184は、このようにして生成された2次元画像G2を出力する。
図7に戻って説明を続ける。物体検出部185は、合成後のデータに基づいて物体を検出する。物体はどのように検出されてもよい。例えば、物体検出部185は、合成後のデータに対して、物体検知ニューラルネットワークを適用することによって物体を検出してよい。物体検知ニューラルネットワークには、R-CNN(Regions with CNN features)が用いられてもよいし、SSD(Single Shot Detector)を用いられてもよい。
物体検出部185は、合成後のデータに対して、物体検知ニューラルネットワークを直接適用してもよいし、合成後のデータに対してアップサンプリングが行われて得られた2次元画像に対して、物体検知ニューラルネットワークを適用してもよい。物体検知ニューラルネットワークが適用される2次元画像は、物体検出部185によって生成されてもよいし、2次元画像生成部183Aによって生成された2次元画像であってもよい。検出結果出力部186は、物体の検出結果を出力する。
図10は、物体検出結果の例を示す図である。物体検出結果G3は、物体検出部185によって得られる。物体検出結果G3には、車両30(図1)の前方を走行する車両の領域(物体領域36)が含まれている。なお、図10には、物体の検出結果として、物体領域が得られる例が示されているが、物体の検出結果は、かかる例に限定されない。例えば、物体の検出結果は、物体が検出された位置を示す情報(座標)であってもよいし、物体の種類(例えば、車両の種類)であってもよいし、単に物体の有無を示す情報であってもよい。そして、検出結果出力部186は、このようにして得られた物体検出結果G3を出力する。
例えば、上記各種のニューラルネットワークのパラメータは、誤差伝播法を用いた教師あり学習によって学習されてよい。このとき、上記各種のニューラルネットワークのパラメータは、出力される結果の種類(2次元画像または3次元画像)ごとに学習されてよい。すなわち、上記各種のニューラルネットワークのパラメータは、3次元画像が生成される場合と2次元画像が生成される場合とにおいて、共通である必要はなく、異なっていてよい。
以上に説明したように、本発明の第1の実施形態によれば、再帰型ニューラルネットワークによって、画像処理部120-1~120-Mから逐次的に入力される各特徴量が合成される。このように、カメラC1~CMの間の空間変化(空間的な位置の相違)を参照して、各特徴量を合成することによって、カメラの位置を任意に設定することが可能となる。すなわち、かかる構成によれば、カメラの位置の変更があっても、変更前後で同じ学習モデルを用いて推論を行うことが可能となる。
また、上記したように、合成画像に生じる歪みは、カメラC1~CMによって撮像された画像の端部に生じやすい。しかし、移動体(車両30など)にカメラC1~CMが設けられる場合、ある時刻において画像の端に写っていた場所が、次の時刻においては画像の端から(歪みの小さい位置に)移動していることがあり得る。本発明の第1の実施形態によれば、時間変化参照RNN124が、上記したように時間変化を参照することによって、歪みの小さい画像も参照し、合成画像に生じる歪みを低減することができる。
さらに、上記したように、画像特徴量抽出CNN122-1には、画像処理部120-1~120-Mそれぞれにおいて、共通のパラメータが設定されてよい。画像特徴量抽出CNN122-2~122-Nも同様である。これによって、画像処理装置10Aに接続されるカメラに依存せずに、すべてのカメラからの入力画像に基づく特徴量の抽出が実行され得るため、カメラの個数が任意に設定され得る。
同様に、時間変化参照RNN124には、画像処理部120-1~120-Mそれぞれにおいて、カメラに依存しない共通のパラメータが設定されてよい。これによって、画像処理装置10Aに接続されるカメラに依存せずに、特徴量の時間変化が参照され得るため、カメラの個数が任意に設定されても、すべてのカメラからの入力画像に基づく特徴量の時間変化が参照され得るため、カメラの個数が任意に設定され得る。
例えば、カメラが設けられる物体の形状(例えば、船舶の形状、建物の形状など)に応じて、適切なカメラの個数が異なる場合が想定される。あるいは、出力内容の用途(例えば、建物の近くの監視など)に応じて、適切なカメラの個数が異なる場合も想定される。このように、適切なカメラの個数が状況に応じて異なる場合であっても、本発明の第1の実施形態によれば、ニューラルネットワーク構造の変更、再学習を必要としないため、画像処理装置10Aの用途拡大や自由度向上といった効果が期待され得る。
以上、本発明の第1の実施形態について説明した。
(2.第2の実施形態)
続いて、本発明の第2の実施形態について説明する。
図11は、本発明の第2の実施形態に係る画像処理装置の機能構成例を示すブロック図である。図11に示されるように、本発明の第2の実施形態に係る画像処理装置10Bは、合成処理部170A(図2)の代わりに、合成処理部170Bを有する点において、本発明の第1の実施形態に係る画像処理装置10Aと主に異なる。したがって、以下では、合成処理部170Bについて主に説明し、他の構成についての詳細な説明は省略する。
本発明の第2の実施形態においては、カメラC1~CMは、複数のグループに分けられる。グループ数やカメラC1~CMそれぞれがどのグループに属するかは、あらかじめ任意に設定されてよい。例えば、グループ数やカメラC1~CMそれぞれがどのグループに属するかは、ユーザによる操作によって設定されてもよいし、合成処理部170Bによって(例えば、事前訓練済みのパラメータに基づいて)自動的に設定されてもよい。そして、合成処理部170Bは、グループごとに特徴量を合成する。
例えば、カメラC1~CMそれぞれがどのグループに属するかは、カメラC1~CMの位置に基づいて決定されてもよい。例えば、位置が近いカメラ同士が同じグループに属するようにグループ分けがされてもよい。一例として、カメラC1~CMが航空機に設けられる場合には、カメラC1~CMのうち、航空機の右翼側に設けられるカメラが、第1のグループに属し、航空機の左翼側に設けられるカメラが、第2のグループに属するようにグループ分けがされてもよい。
図12は、合成処理部170Bの詳細構成例を示す図である。図12に示された例では、カメラC1~CMが2つのグループに分かれている。すなわち、カメラC1~CLが第1のグループに属しており、それ以降が第2のグループに属している。そして、合成処理部170Bは、第1のグループに対応して、空間方向結合部171-1、カメラ情報結合部173-1、空間変化参照RNN174-1を有し、第2グループに対応して、空間方向結合部171-2、カメラ情報結合部173-2、空間変化参照RNN174-2を有する。
空間方向結合部171-1は、第1のグループに対応する入力データ(特徴量)を結合し、カメラ情報結合部173-1に出力する。同様に、空間方向結合部171-2は、第2のグループに対応する入力データ(特徴量)を結合し、カメラ情報結合部173-2に出力する。なお、空間方向結合部171-1および空間方向結合部171-2それぞれによる入力データ(特徴量)の結合は、本発明の第1の実施形態に係る空間方向結合部171による結合と同様に行われてよい。
カメラ情報結合部173-1は、空間方向結合部171-1からの入力データ(特徴量)に対してカメラ情報を結合し、空間変化参照RNN174-1に出力する。同様に、カメラ情報結合部173-2は、空間方向結合部171-2からの入力データ(特徴量)に対してカメラ情報を結合し、空間変化参照RNN174-2に出力する。なお、カメラ情報結合部173-1およびカメラ情報結合部173-2それぞれによるカメラ情報の結合は、本発明の第1の実施形態に係るカメラ情報結合部173による結合と同様に行われてよい。
空間変化参照RNN174-1は、第1のグループに対応するカメラ情報と特徴量との各組み合わせを合成し、出力部180Aおよび空間変化参照RNN174-3に出力する。同様に、空間変化参照RNN174-2は、第2のグループに対応するカメラ情報と特徴量との各組み合わせを合成し、出力部180Aおよび空間変化参照RNN174-3に出力する。なお、空間変化参照RNN174-1および空間変化参照RNN174-2それぞれによる合成は、本発明の第1の実施形態に係る空間変化参照RNN174による合成と同様に行われてよい。
空間変化参照RNN174-3は、空間変化参照RNN174-1および空間変化参照RNN174-2それぞれからの入力データを合成し、グループ全体に対応する出力データとして出力部180Aに出力する。なお、空間変化参照RNN174-3による合成も、本発明の第1の実施形態に係る空間変化参照RNN174による合成と同様に行われてよい。
なお、ネットワーク構造制御部160は、カメラ個数検出部150によって検出された第1のグループに属するカメラの個数に基づいて空間変化参照RNN174-1の構造を制御すればよい。また、ネットワーク構造制御部160は、カメラ個数検出部150によって検出された第2のグループに属するカメラの個数に基づいて空間変化参照RNN174-2の構造を制御すればよい。また、ネットワーク構造制御部160は、グループ数と中間ノードの数とが同一になるように空間変化参照RNN174-3の構造を制御してよい。
図12に示された例では、空間方向結合部171-1および空間方向結合部171-2は、論理的に別々のブロックに分けられている。しかし、空間方向結合部171-1および空間方向結合部171-2は、物理的には共通のブロックであってよい。すなわち、空間方向結合部171-1および空間方向結合部171-2は、物理的に共通のモジュールによって実現されてよい。
同様に、図12に示された例では、カメラ情報結合部173-1およびカメラ情報結合部173-2は、論理的に別々のブロックに分けられている。しかし、カメラ情報結合部173-1およびカメラ情報結合部173-2は、物理的には共通のブロックであってよい。すなわち、カメラ情報結合部173-1およびカメラ情報結合部173-2は、物理的に共通のモジュールによって実現されてもよい。
図12に示された例では、空間変化参照RNN174-1~174-3は、論理的に別々のネットワークに分けられている。しかし、空間変化参照RNN174-1~174-3は、物理的に共通のネットワークであってよく、空間変化参照RNN174-1~174-3には、共通のパラメータが設定されてよい。これによって、グループ分けに依存せずに、カメラC1~CMの間の空間変化(空間的な位置の相違)が参照されて各特徴量が合成され得るため、任意にグループ分けが行われ得る。
以上に説明したように、本発明の第2の実施形態によれば、本発明の第1の実施形態と同様の効果が期待される。さらに、本発明の第2の実施形態によれば、出力部180Aによって、グループごとに合成されたデータと、グループ全体として合成されたデータとの双方に基づく出力が行われ得る。例えば、カメラが設けられる物体の形状または出力内容の用途に応じて、ユーザが所望する出力の単位が異なる場合が想定される。本発明の第2の実施形態によれば、ユーザが所望する単位で出力が行われ得る。
(3.第3の実施形態)
続いて、本発明の第3の実施形態について説明する。
図13は、本発明の第3の実施形態に係る画像処理装置の機能構成例を示すブロック図である。図13に示されるように、本発明の第3の実施形態に係る画像処理装置10Cは、出力部180A(図2)の代わりに出力部180Bを有するとともに、視点情報検出部190を有する点において、本発明の第1の実施形態に係る画像処理装置10Cと主に異なる。したがって、以下では、出力部180Bおよび視点情報検出部190について主に説明し、他の構成についての詳細な説明は省略する。
本発明の第3の実施形態において、任意の視点を基準とした2次元画像(仮想画像)が生成され得る。より具体的に、視点情報検出部190は、視点情報を検出する。視点情報は、どのようにして検出されてもよい。例えば、図示しない操作部を介してユーザによって入力された視点情報が検出されてもよい。例えば、視点情報は、どの位置を基準とするかを示す3次元的な位置およびどの方向を基準とするかを示す3次元的な方向を含んでよい。そして、出力部180Bは、視点情報検出部190によって検出された視点情報が示す視点を基準とした2次元画像(仮想画像)を生成する。
図14は、出力部180Bの詳細構成例を示す図である。図14に示されるように、本発明の第3の実施形態に係る出力部180Bは、2次元画像生成部183A(図7)の代わりに2次元画像生成部183Bを有する点において、本発明の第1の実施形態に係る出力部180Aと主に異なる。したがって、以下では、2次元画像生成部183Bについて主に説明し、他の構成についての詳細な説明は省略する。
2次元画像生成部183Bには、視点情報検出部190から視点情報が入力される。そして、2次元画像生成部183Bは、視点情報検出部190から入力された視点情報が示す視点を基準とした2次元画像(仮想画像)を生成する。
例えば、2次元画像生成部183Bは、合成処理部170Aから入力されるデータと視点情報とに対して、全結合層を有するニューラルネットワークを適用することによって、当該データと視点情報とを合成してもよい。その後、2次元画像生成部183Bは、当該データと視点情報との合成結果に対して、本発明の第1の実施形態に係る2次元画像生成部183Aによるアップサンプリングと同様のアップサンプリングを行うことによって2次元画像を生成してよい。
以上に説明したように、本発明の第3の実施形態によれば、本発明の第1の実施形態と同様の効果が期待される。さらに、本発明の第3の実施形態によれば、出力部180Bが、視点情報検出部190によって検出された視点情報が示す視点を基準とした2次元画像(仮想画像)を生成するため、任意の視点を基準とした2次元画像(仮想画像)が生成され得る。例えば、カメラが設けられる物体の形状または出力内容の用途に応じて、ユーザが所望する視点が異なる場合が想定される。本発明の第3の実施形態によれば、ユーザが所望する視点を基準とした2次元画像(仮想画像)が出力され得る。
(4.ハードウェア構成例)
続いて、本発明の各実施形態に係る画像処理装置10のハードウェア構成例について説明する。以下では、本発明の各実施形態に係る画像処理装置10のハードウェア構成例として、情報処理装置900のハードウェア構成例について説明する。なお、以下に説明する情報処理装置900のハードウェア構成例は、画像処理装置10のハードウェア構成の一例に過ぎない。したがって、画像処理装置10のハードウェア構成は、以下に説明する情報処理装置900のハードウェア構成から不要な構成が削除されてもよいし、新たな構成が追加されてもよい。
図15は、本発明の各実施形態に係る画像処理装置10の例としての情報処理装置900のハードウェア構成を示す図である。情報処理装置900は、CPU(Central Processing Unit)901と、ROM(Read Only Memory)902と、RAM(Random Access Memory)903と、ホストバス904と、ブリッジ905と、外部バス906と、インタフェース907と、入力装置908と、出力装置909と、ストレージ装置910と、通信装置911と、を備える。
CPU901は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置900内の動作全般を制御する。また、CPU901は、マイクロプロセッサであってもよい。ROM902は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM903は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。これらはCPUバス等から構成されるホストバス904により相互に接続されている。
ホストバス904は、ブリッジ905を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス906に接続されている。なお、必ずしもホストバス904、ブリッジ905および外部バス906を分離構成する必要はなく、1つのバスにこれらの機能を実装してもよい。
入力装置908は、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチおよびレバー等ユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU901に出力する入力制御回路等から構成されている。情報処理装置900を操作するユーザは、この入力装置908を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置909は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Diode)装置、ランプ等の表示装置およびスピーカ等の音声出力装置を含む。
ストレージ装置910は、データ格納用の装置である。ストレージ装置910は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置等を含んでもよい。ストレージ装置910は、例えば、HDD(Hard Disk Drive)で構成される。このストレージ装置910は、ハードディスクを駆動し、CPU901が実行するプログラムや各種データを格納する。
通信装置911は、例えば、ネットワークに接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置911は、無線通信または有線通信のどちらに対応してもよい。
以上、本発明の各実施形態に係る画像処理装置10のハードウェア構成例について説明した。
(5.まとめ)
以上に説明したように、本発明の実施形態によれば、互いに異なる視点から撮像を行い撮像範囲が一部または全部重複する複数の撮像部それぞれからの入力画像に基づいて前記撮像部ごとに特徴量を抽出し、抽出した前記撮像部ごとの前記特徴量を逐次的に出力する複数の画像処理部と、前記複数の画像処理部に接続された再帰型ニューラルネットワークを有し、前記再帰型ニューラルネットワークによって、前記画像処理部から逐次的に入力される前記特徴量を合成する合成処理部と、を備える、画像処理装置が提供される。
かかる構成によれば、複数のカメラを任意の位置に設定することを可能としつつ、複数のカメラそれぞれによって撮像された画像に基づく合成画像を生成することが可能となる。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
例えば、上記では、画像処理装置10と図示しないディスプレイとが別体として存在する場合を主に説明した。しかし、画像処理装置10と図示しないディスプレイとは、一体化されていてもよい。また、上記では、カメラC1~CMが画像処理装置10とは別体として構成される場合を主に説明した。しかし、カメラC1~CMの一部または全部は、画像処理装置10と一体化されていてもよい。
また、本発明の各実施形態においては、カメラC1~CMの設置を終了し、画像処理装置10の動作を開始させた後、カメラの個数を特に変更しない場合を想定した。しかし、画像処理装置10の動作を開始させた後、カメラの数を変更することが可能であってもよい。例えば、画像処理装置10の動作を開始させた後、カメラの数を増加させてもよい。かかる場合には、上記各種のニューラルネットワークのパラメータは、再度学習され直してもよい。
また、上記では、本発明の各実施形態を順次に説明したが、本発明の各実施形態は適宜に組み合わされてよい。例えば、本発明の第2の実施形態と本発明の第3の実施形態とが組み合わされてもよい。具体的に、本発明の第2の実施形態に係る合成処理部170Bと本発明の第3の実施形態に係る出力部180Bとの双方が組み込まれた画像処理装置が提供されてもよい。