「背景技術」の欄で記載したように、ディープラーニング等の機械学習が用いられることにより、機械装置による高精度な識別技術の実現が可能になった。このような識別技術を、車両の自動運転及びロボットの動作に適用することが試みられている。車両及びロボットは、移動体であるため、移動しつつ、カメラの撮像画像から周囲の物体を認識する必要がある。このため、高い識別処理速度が要求される。
非特許文献1に開示される技術は、高い識別精度を得るために、高解像度の画像を必要とする。高解像度の画像情報を取得するためには、高価なカメラを使用する必要があり、物体の識別システム自体が高価になるという課題がある。また、高解像度の画像の取得には、高価なカメラが必要になるだけでなく、高解像度の画像の処理量が大きくなり、処理に遅延が生じる可能性がある。
非特許文献2には、奥行情報を使用する高精度な識別システムについての技術が開示されている。このようなシステムは、奥行情報を取得するために高価な3次元レンジファインダを必要とするため、コストが増大するという課題がある。さらに、この技術では、撮像画像と奥行情報とを関連付けて処理する必要があるため、処理量が多くなる。3次元レンジファインダによる奥行情報は、例えばレーダを用いた走査による数多くの点からなる点群情報を含むことから、そのデータサイズは大きいためである。つまり、画像情報に加えこのような3次元レンジファインダ等による奥行情報も入力として用いることで、ニューラルネットワークのネットワークサイズが大きくなり、識別処理速度が低下するという問題もある。
また、非特許文献3に開示される技術では、低解像度の画像から高解像度の画像を復元する処理量が膨大である。本開示に係る本発明者らは、非特許文献1~3の技術に上述のような問題を見出し、識別精度を向上しつつ、識別処理速度を向上する技術を検討し、以下に示すような技術を創案した。
本開示の一態様に係る学習装置は、メモリ及び処理回路を備えた学習装置であって、前記処理回路は、(a)前記メモリから撮像対象物及び前記撮像対象物の周辺環境を含む第1の計算撮像画像を取得し、前記第1の計算撮像画像は複数の第1の画素を有し、(b)前記メモリから前記撮像対象物及び前記撮像対象物の周辺環境を含む撮像画像を取得し、前記撮像画像は複数の第2の画素を有し、(c)前記撮像画像に含まれる前記撮像対象物及び前記撮像対象物の周辺環境の識別結果を取得し、(d)前記複数の第1の画素及び前記複数の第2の画素の対応関係を参照して、前記撮像画像の識別結果に基づいて、前記第1の計算撮像画像を識別するための識別モデルを生成し、(e)第2の計算撮像画像を識別する画像識別装置に、前記識別モデルを出力する。
計算撮像画像には、画像自体に奥行情報等の他の情報を付加することができるため、物体の識別にあたり、単に画像自体を入力として用いるだけでよく、3次元レンジファインダ等によるデータサイズの大きい点群情報等を入力として用いることを要さない。このため、ニューラルネットワークのネットワークサイズが大きくなることを抑制でき、識別処理速度を向上できる。また、低解像度の画像から高解像度の画像を復元する処理も要さないため、識別処理速度を向上できる。また、計算撮像画像によって奥行情報等の他の情報を用いることができるため、識別精度を向上できる。このように、画像を用いた物体の識別精度を向上し、かつ、識別処理速度を向上することが可能になる。
ただし、計算撮像画像は、人によって実空間の状態と同様に視覚的に認識できない画像であり、第1の計算撮像画像を入力として機械学習を行う場合、人は第1の計算撮像画像を実空間の状態と同様に視覚的に認識できないことから、機械学習を行う際に第1の計算撮像画像についての識別結果を識別正解として入力することは困難である。そこで、第1の計算撮像画像を入力として機械学習を行う場合であっても、人によって実空間の状態と同様に視覚的に認識できる通常の撮像画像についての識別結果を識別正解として入力する。撮像画像は、人によって実空間の状態と同様に視覚的に認識できる画像であることから、撮像画像に含まれる撮像対象物及び撮像対象物の周辺環境の位置等の識別結果を容易に取得できるためである。また、第1の計算撮像画像を入力とし、第1の計算撮像画像とは異なる撮像画像についての識別結果に基づいて機械学習を行うことで、第1の計算撮像画像を識別するための識別モデルを生成するためには、第1の計算撮像画像に含まれる撮像対象物及び撮像対象物の周辺環境の位置(画素)が、撮像画像ではどこの位置(画素)に対応するかがわかっている必要がある。このため、本態様では、第1の計算撮像画像と撮像画像との位置についての対応関係(具体的には、第1の計算撮像画像が有する複数の第1の画素と撮像画像が有する複数の第2の画素との対応関係)を参照している。
例えば、前記識別結果は、前記撮像対象物及び前記撮像対象物の周辺環境の平面における位置を含んでいてもよい。
これによれば、撮像対象物及び前記撮像対象物の周辺環境の平面における位置に基づいて識別モデルが生成されるため、当該識別モデルを用いて、第2の計算撮像画像に含まれる撮像対象物及び撮像対象物の周辺環境の平面における位置を識別できる。
例えば、前記識別結果は、前記撮像対象物及び前記撮像対象物の周辺環境の奥行方向における位置を含んでいてもよい。
これによれば、撮像対象物及び前記撮像対象物の周辺環境の奥行方向における位置に基づいて識別モデルが生成されるため、当該識別モデルを用いて、第2の計算撮像画像に含まれる撮像対象物及び撮像対象物の周辺環境の奥行方向における位置を識別できる。
例えば、前記識別結果は、前記撮像対象物及び前記撮像対象物の周辺環境が属するカテゴリ情報を含んでいてもよい。
これによれば、撮像対象物及び前記撮像対象物の周辺環境のカテゴリ情報に基づいて識別モデルが生成されるため、当該識別モデルを用いて、第2の計算撮像画像に含まれる撮像対象物及び撮像対象物の周辺環境のカテゴリ情報を識別できる。例えば、撮像対象物等が人物、自動車、自転車又は信号等であるかを識別できる。
例えば、前記第1の計算撮像画像及び前記第2の計算撮像画像は、前記撮像対象物及び前記撮像対象物の周辺環境がそれぞれ複数重畳された視差情報を含んだ画像であってもよい。具体的には、前記第1の計算撮像画像及び前記第2の計算撮像画像は、マルチピンホールカメラ、Coded Apertureカメラ、ライトフィールドカメラ、又は、レンズレスカメラによる前記撮像対象物及び前記撮像対象物の周辺環境の撮像により得られる画像であってもよい。
これによれば、撮像対象物及び撮像対象物の周辺環境をそれぞれ複数重畳することで、画像自体に奥行情報を付加することができる。
例えば、前記撮像画像は、マルチビューステレオカメラによる前記撮像対象物及び前記撮像対象物の周辺環境の撮像により得られる画像であってもよい。
マルチビューステレオカメラにより得られる撮像画像を用いることで、当該撮像画像に含まれる撮像対象物及び撮像対象物の周辺環境の奥行方向における位置を推定することができる。したがって、撮像画像についての識別結果として奥行方向における位置を、識別正解として入力することができる。
例えば、前記第1の計算撮像画像の撮像に用いられるカメラの光軸と、前記撮像画像の撮像に用いられるカメラの光軸とは、略一致していてよい。具体的には、前記第1の計算撮像画像の撮像に用いられるカメラの光軸と、前記撮像画像の撮像に用いられるカメラの光軸とは、ビームスプリッタ、プリズム又はハーフミラーを介することで一致していてもよい。
これによれば、撮像画像に対する識別正解を第1の計算撮像画像に対する識別正解に変換する際に、各光軸を略一致(若しくは一致)させることで、変換に伴う誤差を小さくすることができ、より高精度の識別が実現できる。第1の計算撮像画像の撮像に用いられるカメラの光軸と、撮像画像の撮像に用いられるカメラの光軸とが略一致することで、第1の計算撮像画像と撮像画像とが略同じ位置(環境)を撮像したときに得られる画像となるためである。
本開示の一態様に係る学習方法は、(a)撮像対象物及び前記撮像対象物の周辺環境を含む第1の計算撮像画像であって、複数の第1の画素を有する第1の計算撮像画像を取得し、(b)前記撮像対象物及び前記撮像対象物の周辺環境を含む撮像画像であって、複数の第2の画素を有する撮像画像を取得し、(c)前記撮像画像に含まれる前記撮像対象物及び前記撮像対象物の周辺環境の識別結果を取得し、(d)前記複数の第1の画素及び前記複数の第2の画素の対応関係を参照して、前記撮像画像の識別結果に基づいて、前記第1の計算撮像画像を識別するための識別モデルを生成し、(e)第2の計算撮像画像を識別する画像識別装置に、前記識別モデルを出力する。
これによれば、画像を用いた物体の識別精度を向上し、かつ、識別処理速度を向上する学習方法を提供できる。
本開示の一態様に係るプログラムは、上記の学習方法をコンピュータに実行させるためのプログラムである。
これによれば、画像を用いた物体の識別精度を向上し、かつ、識別処理速度を向上するプログラムを提供できる。
なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD-ROM等の不揮発性の記録媒体を含む。
[実施の形態]
以下、実施の形態について、図面を参照しながら説明する。なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、構成要素、構成要素の配置位置及び接続形態、ステップ(工程)、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、以下の実施の形態の説明において、略一致のような「略」を伴った表現が用いられる場合がある。例えば、略一致とは、完全に一致であることを意味するだけでなく、実質的に一致、すなわち、例えば数%程度の差異を含むことも意味する。他の「略」を伴った表現についても同様である。また、各図は模式図であり、必ずしも厳密に図示されたものではない。さらに、各図において、実質的に同一の構成要素に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。
実施の形態に係る画像識別装置を説明する。
図1は、実施の形態に係る画像識別装置10を備える識別システム1の機能的な構成の一例を示す模式図である。
識別システム1は、撮像対象物及び撮像対象物の周辺環境を含む計算撮像画像を撮像するカメラと、識別モデルを用いて、計算撮像画像中の撮像対象物を識別する処理回路とを備える。当該識別モデル及び計算撮像画像については後述する。識別システム1は、当該処理回路を有する画像識別装置10と当該カメラとして撮像部11とを備える。画像識別装置10は、取得部101と、識別部102と、出力部103とを備える。識別システム1は、撮像部11が取得する画像を用いて、当該画像に含まれる被写体を検出し、検出結果を出力する。画像における被写体の検出を、「識別」とも呼ぶ。
識別システム1は、車両及びロボット等の移動体に搭載されてもよく、監視カメラシステム等の固定物に搭載されてもよい。本実施の形態では、識別システム1は、移動体の一例である自動車に搭載されるとして説明する。この場合、撮像部11及び画像識別装置10の両方が移動体に搭載されてもよい。又は、撮像部11が移動体に搭載され、画像識別装置10が移動体の外部に配置されてもよい。画像識別装置10が配置される対象の例は、コンピュータ装置又は移動体の操作者の端末装置等である。端末装置の例は、移動体専用の操作用端末装置、又は、スマートフォン、スマートウォッチ及びタブレット等の汎用的な携帯端末装置等である。コンピュータ装置の例は、カーナビゲーションシステム、ECU(Engine Control Unit)又はサーバ装置等である。
画像識別装置10と撮像部11とが離れて配置される場合、画像識別装置10及び撮像部11は、有線通信又は無線通信を介して通信してもよい。有線通信には、例えば、イーサネット(登録商標)規格に準拠したネットワーク等の有線LAN(Local Area Network)及びその他のいかなる有線通信が適用されてもよい。無線通信には、第3世代移動通信システム(3G)、第4世代移動通信システム(4G)、又はLTE(登録商標)等のような移動通信システムで利用されるモバイル通信規格、Wi-Fi(登録商標)(Wireless Fidelity)などの無線LAN、及び、Bluetooth(登録商標)、ZigBee(登録商標)等の近距離無線通信が適用されてもよい。
撮像部11は、撮像対象物及び撮像対象物の周辺環境を含む計算撮像画像(computational imaging photography)を撮像する、つまり取得する。具体的には、撮像部11は、計算撮像画像として、撮像対象物及び撮像対象物の周辺環境がそれぞれ複数重畳された視差情報を含んだ画像を撮像(取得)する。撮像部11が取得する計算撮像画像を第2の計算撮像画像とも呼ぶ。第2の計算撮像画像は、物体の識別時に用いられる画像である。なお、計算撮像画像は、計算画像とも呼ばれる。例えば、撮像部11は、所定の周期である第1の周期毎に第2の計算撮像画像を取得してもよいし、連続的に動画として第2の計算撮像画像を取得してもよい。撮像部11は、時刻と対応付けられた第2の計算撮像画像を取得してもよい。撮像部11のハードウェアの例はカメラであり、具体的にはマルチピンホールカメラ、Coded Apertureカメラ、ライトフィールドカメラ、又は、レンズレスカメラ等である。このようなカメラである場合、撮像部11は、後述するように、1回の撮像動作で被写体についての複数の画像を同時に取得することができる。なお、撮像部11は、例えば、撮像部11が備える撮像素子の撮像領域、つまり受光領域を変化させることによって、上記の複数の画像を複数回の撮像動作で取得してもよい。撮像部11は、取得した第2の計算撮像画像を、画像識別装置10の取得部101に出力する。
なお、撮像部11は、物体の識別時に用いられる第2の計算撮像画像だけでなく、後述する図2等で説明する学習時に用いられる第1の計算撮像画像を取得し、取得した第1の計算撮像画像を、学習装置12の第一画像取得部121(図2参照)に出力してもよい。
ここで、計算撮像画像と通常撮像画像とを説明する。通常撮像画像は、光学系を通して撮像される画像である。通常撮像画像は、通常、光学系により集光された物体からの光を結像(imaging)することによって、取得される。光学系の一例は、レンズである。物体と像内の像点(image point)とを入れ替えて、像点に物体を配置することにより、物体と像内の像点とを入れ替える前と同じ光学系で元の物体の位置に像点ができるような物体の点と像点との位置関係を共役(conjugate)と呼ぶ。本明細書において、このように共役関係にある状態で撮像された画像は、通常撮像画像(又は撮像画像)と表記する。物体が存在する環境下で、人が物体を直接見たとき、人は通常撮像画像とほぼ同様の状態で当該物体を知覚する。言い換えると、人は、通常のデジタルカメラで撮像された通常撮像画像を、実空間の状態と同様に視覚的に認識する。
一方、計算撮像画像は、例えばマルチピンホールを用いることで複数の画像がずれて重畳されたものであり、人によって実空間の状態と同様に視覚的に認識できない画像である。ただし、計算撮像画像は、人が視覚的に認識できない画像であり得るが、コンピュータ処理を用いれば、撮像対象物及び周辺環境等の画像に含まれる情報の取得が可能である画像である。計算撮像画像は、画像を復元することによって人が認識できるように視覚化されることができる。計算撮像画像の例は、マルチピンホール又はマイクロレンズを用いて撮像されたライトフィールド画像、時空間で画素情報を重み付け加算して撮像された圧縮センシング画像、又は、符号化絞りとコード化されたマスクとを使用して撮像されたCoded Aperture画像(符号化開口画像)などの符号化画像である。例えば、非特許文献3には、圧縮センシング画像の例が示されている。また、計算撮像画像の他の例は、非特許文献4及び非特許文献5に示されるような、屈折による結像光学系を有しないレンズレスカメラを使用して撮像された画像である。上記のいずれの計算撮像画像も、既知な技術であるため、その詳細な説明を省略する。
例えば、ライトフィールド画像には、各画素に、画像値に加えて、奥行情報も含まれる。ライトフィールド画像は、撮像素子の前に配置された複数のピンホール又はマイクロレンズを介して、撮像素子によって取得された画像である。複数のピンホール及びマイクロレンズは、撮像素子の受光面に沿って平面的に配置され、例えば、格子状に配置される。撮像素子は、その全体での1回の撮像動作において、複数のピンホール又はマイクロレンズのそれぞれを通じて複数の像を同時に取得する。複数の像は、異なる視点から撮像された像である。このような複数の像と視点との位置関係から、被写体の奥行方向の距離の取得が可能である。撮像素子の例は、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサ又はCCD(Charge-Coupled Device)イメージセンサ等のイメージセンサである。
圧縮センシング画像は、圧縮センシングの対象画像である。圧縮センシングの対象画像の例は、レンズレスカメラで撮像された画像である。レンズレスカメラは、屈折による結像光学系を有さず、撮像素子の前に配置されたマスクを介して、画像を取得する。マスクは、透過率が異なる複数の領域を、例えば格子状に含む。このようなマスクを通して撮影することで、様々な方向からの光線(ライトフィールド画像)をマスクによってコード化して撮像することができる。圧縮センシングでは、このマスク情報を利用することで、コード化されたライトフィールド画像から、所望の方向の光線のみの画像、又は、すべての距離に焦点が合った全焦点画像を取得することができ、さらには奥行情報を取得することができる。
また、このようなマスクをカメラの開口部に絞りとして設置して撮影した画像はCoded Aperture画像(符号化開口画像)と呼ばれる。
このように、計算撮像画像(第1の計算撮像画像及び第2の計算撮像画像)は、撮像対象物及び撮像対象物の周辺環境がそれぞれ複数重畳された視差情報を含んだ画像であり、具体的には、マルチピンホールカメラ、Coded Apertureカメラ、ライトフィールドカメラ、又は、レンズレスカメラによる撮像対象物及び撮像対象物の周辺環境の撮像により得られる画像である。
画像識別装置10の取得部101は、撮像部11から第2の計算撮像画像を取得し、識別部102に出力する。また、取得部101は、識別部102が識別のために用いる識別器を取得してもよく、取得した識別器を識別部102に出力してもよい。画像識別装置10が移動体に搭載される場合、取得部101は、移動体から、移動体の速度を取得してもよい。取得部101は、移動体の速度をリアルタイムに取得してもよく、定期的に取得してもよい。例えば、取得部101は、移動体が速度計を備える場合、速度計から速度を取得してもよく、また、移動体が備えるコンピュータであって、速度計から速度情報を受信するコンピュータから速度を取得してもよい。また、例えば、取得部101は、移動体が速度計を備えない場合、移動体が備えるGPS(Global Positioning System)装置、加速度計及び角速度計などの慣性計測装置等から速度に関連する情報を取得してもよい。
識別部102は、取得部101から第2の計算撮像画像を取得する。識別部102は、例えば取得部101から取得した識別器を含む。識別器は、画像から対象物の情報を取得するための識別モデルであって、識別部102が識別のために用いるデータである。識別器は、機械学習を用いて構築される。計算撮像画像を学習用データとして用いて機械学習することによって、識別性能を向上した識別器の構築が可能である。なお、学習用データとして機械学習のために用いられる計算撮像画像を第1の計算撮像画像とも呼ぶ。本実施の形態では、識別器に適用される機械学習モデルは、Deep Learning(深層学習)等のニューラルネットワークを用いた機械学習モデルであるが、他の学習モデルであってもよい。例えば、機械学習モデルは、Random Forest、又はGenetic Programming等を用いた機械学習モデルであってもよい。
識別部102は、識別器を用いて、第2の計算撮像画像中の物体(撮像対象物及び撮像対象物の周辺環境)の情報を取得する。具体的には、識別部102は、第2の計算撮像画像に含まれる物体を識別し、且つ、第2の計算撮像画像中の物体の位置を取得する。つまり、物体の情報は、物体の存在の有無と、物体の位置とを含む。物体の位置は、画像上における平面的な位置と、画像の奥行方向の位置とを含んでもよい。例えば、識別部102は、識別器を用いて、第2の計算撮像画像の少なくとも1つの画素毎に、物体が存在するか否かを識別する。識別部102は、第2の計算撮像画像中の物体の位置として、物体が存在することが識別された少なくとも1つの画素の位置を取得する。ここで、本明細書における物体の識別とは、第2の計算撮像画像において、物体が存在する画素を検出することを含む。
例えば、識別システム1が自動車に搭載される場合、物体の例は、人物、自動車、自転車又は信号である。なお、識別部102は、第2の計算撮像画像を用いて、あらかじめ定められた1種類の物体を識別してもよく、複数の種類の物体を識別してもよい。また、識別部102は、人物、自動車又は自転車を含む移動体などのカテゴリ単位で、物体を識別してもよい。このとき、識別する物体の種類(カテゴリ)に応じた識別器が用いられてもよい。識別器は、例えば画像識別装置10が有するメモリ(例えば後述する第一メモリ203)に記録される。
例えば、ライトフィールド画像には、画像値に加えて、各画素の被写体の奥行情報も含まれる。また、非特許文献2にも記載されるように、被写体の奥行情報を学習データに用いることは、識別器の識別能力向上に有効である。例えば、画像において小さく写っている物体が、遠方に存在する被写体であることを認識でき、ゴミとして認識されない(つまり無視されてしまう)ことを抑制できる。このため、ライトフィールド画像を使用した機械学習により構築された識別器は、その識別性能を向上することができる。同様に、圧縮センシング画像及び符号化開口画像を用いた機械学習も、識別器の識別性能の向上に有効である。
また、識別システム1は、後述する図2に示すように、識別器を生成するための学習装置12を備えてもよい。この場合、画像識別装置10の識別部102は、学習装置12で生成された、言い換えると学習が完了した識別器を使用する。
出力部103は、識別部102の識別結果を出力する。出力部103は、識別システム1がさらにディスプレイを備える場合には、当該ディスプレイに、識別結果を出力する指示を出力する。又は、出力部103は、通信部を有し、通信部を介して、有線又は無線で、識別結果を出力してもよい。上述の通り、物体の情報は、物体の存在の有無と、物体の位置とを含み、物体の情報についての識別結果に応じて自動運転等が行われ、また、例えばディスプレイ等に物体の情報が出力されることで、ユーザは識別システム1が搭載された移動体の周辺の状況を認識できる。
上述のような取得部101、識別部102及び出力部103からなる画像識別装置10の構成要素は、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)等のプロセッサ、並びに、RAM(Random Access Memory)及びROM(Read-Only Memory)等のメモリなどからなる処理回路により構成されてもよい。上記構成要素の一部又は全部の機能は、CPU又はDSPがRAMを作業用のメモリとして用いてROMに記録されたプログラムを実行することによって達成されてもよい。また、上記構成要素の一部又は全部の機能は、電子回路又は集積回路等の専用のハードウェア回路によって達成されてもよい。上記構成要素の一部又は全部の機能は、上記のソフトウェア機能とハードウェア回路との組み合わせによって構成されてもよい。
次に、識別システムが学習装置を含むケースとして、実施の形態に係る識別システム1の変形例を、図2を用いて説明する。
図2は、実施の形態の変形例に係る識別システム1Aの機能的な構成の一例を示す模式図である。
図2に示すように、変形例に係る識別システム1Aは、画像識別装置10と、撮像部11と、学習装置12とを備える。学習装置12は、第一画像取得部121と、第二画像取得部122と、識別正解取得部123と、学習部124とを備える。画像識別装置10、撮像部11及び学習装置12は、1つの装置に搭載されてもよく、複数の装置に分かれて搭載されてもよい。画像識別装置10、撮像部11及び学習装置12が複数の装置に分かれて搭載される場合、有線通信又は無線通信を介して、装置間で情報が授受されてもよい。適用される有線通信及び無線通信は、上記で例示したもののいずれかであってもよい。
図3は、実施の形態の変形例に係る識別システム1Aのハードウェア構成の一例を示す模式図である。
図3に示すように、学習装置12は、第二入力回路221と、第三入力回路222と、第二演算回路223と、第二メモリ224とを備える。また、画像識別装置10は、第一入力回路201と、第一演算回路202と、第一メモリ203と、出力回路204とを備える。
第一入力回路201、第一演算回路202及び出力回路204は、画像識別装置10が備える処理回路の一例であり、第一メモリ203は、画像識別装置10が備えるメモリの一例である。図1及び図2を参照すると、第一入力回路201は、取得部101に対応する。第一演算回路202は、識別部102に対応する。出力回路204は、出力部103に対応する。このように、取得部101、識別部102及び出力部103は、第一入力回路201、第一演算回路202及び出力回路204に対応していることから、第取得部101、識別部102及び出力部103についても、画像識別装置10が備える処理回路の一例といえる。第一メモリ203は、第一入力回路201、第一演算回路202及び出力回路204が処理を実行するためのコンピュータプログラム、取得部101が取得する第2の計算撮像画像、及び、識別部102が用いる識別器等を記憶する。第一メモリ203は、1つのメモリで構成されてもよく、同じ種類又は異なる種類の複数のメモリで構成されてもよい。第一入力回路201及び出力回路204は、通信回路を含んでもよい。
第二入力回路221、第三入力回路222及び第二演算回路223は、学習装置12が備える処理回路の一例であり、第二メモリ224は、学習装置12が備えるメモリの一例である。図2及び図3を参照すると、第二入力回路221は、第一画像取得部121に対応する。第二入力回路221は、通信回路を含んでもよい。第三入力回路222は、第二画像取得部122に対応する。第三入力回路222は、通信回路を含んでもよい。第二演算回路223は、識別正解取得部123及び学習部124に対応する。第二演算回路223は、通信回路を含んでもよい。このように、第一画像取得部121、第二画像取得部122、識別正解取得部123及び学習部124は、第二入力回路221、第三入力回路222及び第二演算回路223に対応していることから、第一画像取得部121、第二画像取得部122、識別正解取得部123及び学習部124についても、学習装置12が備える処理回路の一例といえる。第二メモリ224は、第二入力回路221、第三入力回路222及び第二演算回路223が処理を実行するためのコンピュータプログラム、第一画像取得部121が取得する第1の計算撮像画像、第二画像取得部122が取得する撮像画像、識別正解取得部123が取得する識別正解、学習部124が生成した識別器等を記憶する。第二メモリ224は、1つのメモリで構成されてもよく、同じ種類又は異なる種類の複数のメモリで構成されてもよい。
第一入力回路201、第一演算回路202、出力回路204、第二入力回路221、第三入力回路222及び第二演算回路223は、CPU又はDSP等のプロセッサを含む処理回路で構成され得る。第一メモリ203及び第二メモリ224は、例えば、ROM、RAM、フラッシュメモリなどの半導体メモリ、ハードディスクドライブ、又は、SSD(Solid State Drive)等の記憶装置によって実現される。第一メモリ203及び第二メモリ224は、1つのメモリにまとめられてもよい。プロセッサは、メモリに展開されたコンピュータプログラムに記述された命令群を実行する。これにより、プロセッサは種々の機能を実現することができる。
学習装置12の第一画像取得部121及び第二画像取得部122は、機械学習のための第1の計算撮像画像及び撮像画像を取得する。第一画像取得部121のハードウェアの例は計算撮像画像を撮像するためのカメラであり、具体的にはマルチピンホールカメラ、Coded Apertureカメラ、ライトフィールドカメラ、又は、レンズレスカメラ等である。つまり、第一画像取得部121は、例えば、第二入力回路221と計算撮像画像を撮像するためのカメラとによって実現される。第二画像取得部122のハードウェアの例は撮像画像を撮像するためのカメラであり、具体的にはデジタルカメラ等である。つまり、第二画像取得部122は、例えば、第三入力回路222と撮像画像を撮像するためのカメラとによって実現される。
例えば、計算撮像画像を撮像するためのカメラによって撮像された第1の計算撮像画像は第二メモリ224に記憶され、第二入力回路221が第二メモリ224から第1の計算撮像画像を取得することで、第一画像取得部121は、第1の計算撮像画像を取得する。なお、第一画像取得部121は、ハードウェアとして計算撮像画像を撮像するためのカメラを含んでいなくてもよい。この場合、第一画像取得部121(第二入力回路221)は、撮像部11から第1の計算撮像画像を取得してもよく(具体的には、撮像部11によって撮像された第1の計算撮像画像は第二メモリ224に記憶され、第二メモリ224から第1の計算撮像画像を取得してもよく)、識別システム1Aの外部から有線通信又は無線通信を介して、第1の計算撮像画像を取得してもよい。適用される有線通信及び無線通信は、上記で例示したもののいずれかであってもよい。
また、例えば、撮像画像を撮像するためのカメラによって撮像された撮像画像は第二メモリ224に記憶され、第三入力回路222が第二メモリ224から撮像画像を取得することで、第二画像取得部122は、撮像画像を取得する。なお、第二画像取得部122は、ハードウェアとして撮像画像を撮像するためのカメラを含んでいなくてもよい。この場合、第二画像取得部122(第三入力回路222)は、識別システム1Aの外部から有線通信又は無線通信を介して、撮像画像を取得してもよい。適用される有線通信及び無線通信は、上記で例示したもののいずれかであってもよい。
識別正解取得部123は、第一画像取得部121が取得した第1の計算撮像画像を用いた機械学習のために、識別正解を取得する。識別正解は、第1の計算撮像画像と共に、識別システム1Aの外部から与えられてもよく、ユーザが識別正解を手動等により入力することによって与えられてもよい。識別正解は、第1の計算撮像画像に含まれる被写体が属するカテゴリ情報と、被写体の位置情報とを含む。被写体のカテゴリの例は、人物、自動車、自転車又は信号等である。位置情報は、画像上の位置(具体的には、平面における位置又は奥行方向における位置)を含む。識別正解取得部123は、取得した識別正解を、第1の計算撮像画像と対応付けて、第二メモリ224に格納する。
ただし、前述のように、取得部101及び第一画像取得部121が取得する計算撮像画像は、人によって実空間の状態と同様に視覚的に認識できない画像である。そのため、第一画像取得部121が取得した第1の計算撮像画像に識別正解を入力することは困難である。そこで、本実施の形態の識別システム1Aは、第二画像取得部122を有し、第一画像取得部121が取得した第1の計算撮像画像ではなく、第二画像取得部122が取得した、人によって実空間の状態と同様に視覚的に認識できる撮像画像に対して識別正解を入力する。詳細は、後述する。
学習部124は、第一画像取得部121が取得した第1の計算撮像画像と、識別正解取得部123が取得した、第二画像取得部122が取得した撮像画像に対する識別正解とを用いて、識別部102の識別器の学習を行う。学習部124は、第二メモリ224に格納された識別器に機械学習をさせ、学習後の最新の識別器を第二メモリ224に格納する。識別部102は、第二メモリ224に格納された最新の識別器を取得し、第一メモリ203に格納しつつ、識別処理に使用する。上記機械学習は、例えば、ディープラーニングなどにおける誤差逆伝播法(BP:BackPropagation)などによって実現される。具体的には、学習部124は、識別器に第1の計算撮像画像を入力し、識別器が出力する識別結果を取得する。そして、学習部124は、識別結果が識別正解となるように識別器を調整する。学習部124は、このような調整をそれぞれ異なる複数の(例えば数千組の)第1の計算撮像画像及びこれに対応する識別正解について繰り返すことによって、識別器の識別精度を向上させる。
次に、図2~図4を参照しつつ、学習装置12の動作について説明する。
図4は、学習装置12の主要な処理の流れの一例を示すフローチャートである。
まず、ステップS1において、学習部124は、第一画像取得部121が取得する第1の計算撮像画像と、第二画像取得部122が取得する撮像画像の画像上での位置(画素)の対応関係を取得する。具体的には、学習部124は、第1の計算撮像画像が有する複数の第1の画素及び撮像画像が有する複数の第2の画素の対応関係を取得する。これは、第1の計算撮像画像及び撮像画像に対して幾何学的キャリブレーションが行なわれることで実現される。幾何学的キャリブレーションは、3次元位置が既知の点が第1の計算撮像画像及び撮像画像のどこに撮像されるかを事前に取得し、その情報を元に被写体の3次元位置と第1の計算撮像画像及び撮像画像との関係を求めるものである。これは、例えばTsaiのキャリブレーションとして知られている手法を利用することで実現できる。通常、撮像画像からは被写体の3次元位置を求めることができないが、前述のように、計算撮像画像であるライトフィールド画像では1枚の画像から3次元位置を求めることができる。また、第一画像取得部121が取得する第1の計算撮像画像と、第二画像取得部122が取得する撮像画像の画像上での対応点(画素)を取得することで、キャリブレーションを実現することができる。例えば、第1の計算撮像画像と撮像画像との対応関係が取得されることで、第1の計算撮像画像と撮像画像との原点合わせをすることができる。なお、第1の計算撮像画像を撮像するカメラと、撮像画像を撮像するカメラとの位置関係が変わらなければ、このようなキャリブレーションは一度行うだけでよい。なお、以下の説明では、計算撮像画像がライトフィールド画像であるとして説明する。
ライトフィールド画像は、画素値と奥行情報との両方の情報を有する。ライトフィールド画像は、ライトフィールドカメラによって取得される。ライトフィールドカメラの具体例は、マルチピンホール又はマイクロレンズを使用したカメラである。撮像部11がライトフィールドカメラであり、第一画像取得部121は、撮像部11が撮像したライトフィールド画像を取得してもよい。又は、第一画像取得部121は、識別システム1Aの外部から有線通信又は無線通信を介してライトフィールド画像を取得してもよい。
図5は、マルチピンホールを使用したライトフィールドカメラの例を示す図である。
図5に示すライトフィールドカメラ211は、マルチピンホールマスク211aと、イメージセンサ211bとを有する。マルチピンホールマスク211aは、イメージセンサ211bから一定距離離れて配置されている。マルチピンホールマスク211aは、ランダム又は等間隔に配置された複数のピンホール211aaを有している。複数のピンホール211aaのことを、マルチピンホールとも呼ぶ。イメージセンサ211bは、各ピンホール211aaを通じて被写体の画像を取得する。ピンホールを通じて取得される画像を、ピンホール画像と呼ぶ。各ピンホール211aaの位置及び大きさによって、被写体のピンホール画像は異なるため、イメージセンサ211bは、複数のピンホール画像の重畳画像を取得する。ピンホール211aaの位置は、イメージセンサ211b上に投影される被写体の位置に影響を与え、ピンホール211aaの大きさは、ピンホール画像のボケに影響を与える。マルチピンホールマスク211aを用いることによって、位置及びボケの程度が異なる複数のピンホール画像を重畳して取得することが可能である。被写体がピンホール211aaから離れている場合、複数のピンホール画像はほぼ同じ位置に投影される。一方、被写体がピンホール211aaに近い場合、複数のピンホール画像は離れた位置に投影される。このように、重畳された複数のピンホール画像のずれ量と、被写体とマルチピンホールマスク211a間の距離とは対応しているため、重畳画像には当該ずれ量に応じた被写体の奥行情報が含まれている。
例えば、図6及び図7にはそれぞれ、通常撮像画像の例と、マルチピンホールを使用したライトフィールドカメラによるライトフィールド画像(計算撮像画像)の例とが、示されている。
図6は、通常撮像された被写体の画像(撮像画像)の例を示す模式図であり、図7は、マルチピンホールマスクを含むライトフィールドカメラを使用して撮像された被写体の画像(計算撮像画像)の例を示す模式図である。
図6に示すように、通常撮像画像において、被写体として、道路上の人物Aと自動車B及びCとが写し出される。これらの被写体を、例えば4つのピンホールを有するライトフィールドカメラで撮像した場合、図7に示すように、人物A、自動車B及びCそれぞれの画像は、複数の重畳された画像として取得される。具体的には、人物Aの画像は、人物A1、A2及びA3として取得され、自動車Bの画像は、自動車B1、B2、B3及びB4として取得され、自動車Cの画像は、自動車C1、C2、C3及びC4として取得される。また、図6及び図7において符号を付していないが、図6において自動車B及びCが走行する道路の画像についても、図7に示すように、複数の重畳された画像として取得される。このように、計算撮像画像は、撮像対象物(例えば人物A、自動車B及びC等)及び撮像対象物の周辺環境(例えば道路等)がそれぞれ複数重畳された視差情報を含んだ画像となる。
図4に示すように、ステップS2において、第一画像取得部121は第二メモリ224から撮像対象物及び撮像対象物の周辺環境を含む第1の計算撮像画像を取得し、ステップS3において、第二画像取得部122は第二メモリ224から当該撮像対象物及び当該周辺環境を含む撮像画像を取得する。ここで、第一画像取得部121は実空間の状態と同様に視覚的に認識できない画像である計算撮像画像を取得するが、第二画像取得部122は、実空間の状態と同様に視覚的に認識できる画像である通常の撮像画像を取得する。
図4に示すように、ステップS4において、識別正解取得部123は、第二画像取得部122が取得した撮像画像に含まれる撮像対象物及び撮像対象物の周辺環境の識別結果(識別正解)を取得する。識別正解は、例えば、撮像対象物及び撮像対象物の周辺環境(人物、自動車、自転車又は信号等の被写体)が属するカテゴリ情報と、画像上での撮像対象物及び撮像対象物の周辺環境の平面における位置及び領域とを含む。なお、識別正解は、画像上での撮像対象物及び撮像対象物の周辺環境の奥行方向における位置を含んでいてもかまわない。識別正解は、第1の計算撮像画像と共に識別システム1Aの外部から与えられたもの、又は、第二画像取得部122による撮像画像に対してユーザによって与えられたものである。識別正解取得部123は、撮像画像において、被写体の位置に基づき、被写体を特定し、特定した被写体とカテゴリとを対応付ける。この結果、識別正解取得部123は、被写体の領域と、被写体のカテゴリと、第二画像取得部122が取得した撮像画像に対する被写体の位置情報とを対応付けて取得し、これらの情報を識別正解とする。
識別正解取得部123は、被写体の撮像画像上での平面位置及び領域を決定する際、指標を用いる。例えば、識別正解取得部123は、当該指標として、被写体を囲む枠を用いる。以下、被写体を囲む枠を識別領域枠とも呼ぶ。識別領域枠は、被写体の位置及び領域を示すことができる。識別領域枠の一例が、図8A及び図8Bに示されている。
図8Aは、識別領域枠が重畳表示された撮像画像を示す模式的な図である。図8Bは、識別領域枠のみを示す模式的な図である。
図8A及び図8Bに示す例では、識別正解取得部123は、各被写体を外から囲み且つ各被写体に外接する矩形の識別領域枠を設定する。なお、識別領域枠の形状は、図8A及び図8Bの例に限定されない。
図8A及び図8Bにおいて、識別正解取得部123は、例えば、人物Aに識別領域枠FAを設定し、自動車Bに識別領域枠FBを設定し、自動車Cに識別領域枠FCを設定する。この際、識別正解取得部123は、識別領域枠の形状及びその位置を示す情報として、識別領域枠全体の線形及び座標を算出してもよく、識別領域枠の各頂点の座標を算出してもよく、識別領域枠の左上等の1つの頂点の座標及び各辺の長さを算出してもよい。座標は、例えば上述したように、第1の計算撮像画像と撮像画像とで原点合わせをしたときの当該原点に対する座標である。上述のようにすることで、識別正解取得部123は、識別正解として、識別領域枠の領域の平面位置(座標)及び形状等を含む情報を出力する。なお、識別正解として、識別領域枠の領域の平面位置及び形状等の他に撮像画像が含まれていてもよい。また、ここでは、識別正解として、道路には識別領域枠が設定されていないが、道路等の周辺環境に対しても識別領域枠が設定されてもよい。
また、識別正解取得部123は、識別正解として、識別領域枠の情報を取得するのではなく、画素毎に識別正解を取得してもよい。画素毎の識別正解は、図9においてドットハッチングで示すように例えば画像上にマスクとして与えられてもよい。
図9は、画像上でマスクとして与えられた識別正解の例を示す模式図である。
図9の例では、識別正解として、人物AにはマスクAaが与えられ、自動車B及びCにはそれぞれマスクBa及びCaが与えられている。このようにすることで、識別正解取得部123は、画素毎に識別正解を出力する。なお、ここでは、識別正解として、道路にはマスクが与えられていないが、道路等の周辺環境に対してもマスクが与えられてもよい。
図4に示すように、ステップS5において、学習部124は、ステップS1で取得された複数の第1の画素及び複数の第2の画素の対応関係を参照して、撮像画像の識別結果に基づいて、第1の計算撮像画像を識別するための識別モデル(識別器)を生成する。例えば、図6に示す撮像画像が有する複数の第2の画素と図7に示す第1の計算撮像画像が有する複数の第1の画素との対応関係を参照することで、撮像画像における各位置(各画素)が第1の計算撮像画像においてどの位置(画素)に対応しているかを認識できる。そして、例えば、図7に示す第1の計算撮像画像に含まれる人物A1、A2及びA3についての識別正解が、図6に示す撮像画像の識別結果である図8Bに示すような識別領域枠FAの位置又は図9に示すようなマスクAaの位置となり、かつ、カテゴリが人となるように機械学習が行われて識別器が生成される。同じように、自動車B1、B2、B3及びB4についての識別正解が、識別領域枠FBの位置又はマスクBaの位置となり、かつ、カテゴリが自動車となるように機械学習が行われ、自動車C1、C2、C3及びC4についての識別正解が、識別領域枠FCの位置又はマスクCaの位置となり、かつ、カテゴリが自動車となるように機械学習が行われて識別器が生成される。なお、このとき、撮像対象物及び撮像対象物の周辺環境の奥行方向における位置についても機械学習が行われてもよい。詳細は後述するが、通常の撮像画像を撮像するカメラとしてマルチビューステレオカメラ等を用いることで、容易に当該奥行方向における位置を取得でき、取得した奥行方向における位置に基づいて機械学習を行うことができる。
図6に示すような撮像画像及び図7に示すような第1の計算撮像画像の組を数多く(例えば数千組)準備する。学習部124は、第二メモリ224に格納された識別器を取得し、識別器にこれらの第1の計算撮像画像を入力し出力結果を取得し、出力結果が第1の計算撮像画像のそれぞれに対応する撮像画像を用いて入力された識別正解となるように、識別器を調整する。そして、学習部124は、調整後の識別器を第二メモリ224に格納することで第二メモリ224内の識別器を更新する。
ステップS6において、学習部124は、第2の計算撮像画像を識別する画像識別装置10に、識別モデル(識別器)を出力する。これにより、画像識別装置10は、学習装置12によって生成された識別器を用いて、人によって実空間の状態と同様に視覚的に認識できない第2の計算撮像画像に含まれる撮像対象物及び撮像対象物の周辺環境を識別できるようになる。これについて、図1及び図10を参照して説明する。
図10は、実施の形態に係る画像識別装置10の動作の流れの一例を示すフローチャートである。なお、以下の説明において、撮像部11がライトフィールドカメラであるとして説明する。
ステップS101において、取得部101は、第一メモリ203(図3参照)から、撮像部11によって撮像された撮像対象物及び撮像対象物の周辺環境を含む第2の計算撮像画像を取得する。具体的には、第一入力回路201が第一メモリ203から第2の計算撮像画像を取得することで、取得部101は、第2の計算撮像画像を取得する。例えば、撮像部11は、所定の周期である第1の周期毎に、第2の計算撮像画像として、ライトフィールド画像を撮像(取得)し、当該画像が第一メモリ203に記憶される。取得部101は、撮像部11が撮像したライトフィールド画像を取得し、識別部102に出力する。なお、取得部101は、識別システム1の外部からライトフィールド画像を取得してもよい(具体的には、外部からのライトフィールド画像は第一メモリ203に記憶され、取得部101は、第一メモリ203からライトフィールド画像を取得してもよい)。
次いで、ステップS102において、識別部102は、第一メモリ203に記憶された識別器を用いて、第2の計算撮像画像中の撮像対象物を識別する。つまり、識別部102は、ライトフィールド画像において識別対象とされる物体を検出する。識別対象の物体は、予め、識別器に設定されてよい。例えば、識別システム1が自動車に搭載される場合、識別対象の物体の例は、人物、自動車、自転車及び信号等である。識別部102は、識別器にライトフィールド画像に入力することによって、識別器から、出力結果として、識別対象の物体の識別結果を取得する。識別部102による識別処理の詳細については後述する。なお、識別部102は、識別処理済みのライトフィールド画像を、第一メモリ203に格納してもよい。
次いで、ステップS103において、出力部103は、識別部102によって識別処理された結果(識別結果)を出力する。例えば、出力部103は、ライトフィールド画像を含む画像情報を出力してもよいし、ライトフィールド画像を含まない画像情報を出力してもよい。少なくともこの画像情報は、識別部102が検出した物体の情報を含んでもよい。物体の情報は、物体の位置(平面における位置又は奥行方向における位置)、領域等を含む。出力部103は、識別システム1が備えるディスプレイ及び外部機器の少なくとも一方に、画像情報を出力してもよい。
さらに、図10におけるステップS102の識別処理を説明する。ライトフィールドカメラである撮像部11が撮像したライトフィールド画像から、画像情報と奥行情報とを同時に取得することが可能である。識別部102は、ライトフィールド画像に対して、学習装置12で学習した識別器を使用して識別処理を行う。この学習は、上述したように、ディープラーニングなどのニューラルネットワークを用いた機械学習によって実現する。
識別部102は、テクスチャ情報の識別と奥行情報の識別とを行い、識別されたテクスチャ情報及び奥行情報を用いて、画像に含まれる物体を統合的に識別する構成であってもよい。このような構成を図11に示す。
図11は、識別部102の機能的な構成の一例を示す模式図である。
このような識別部102は、図11に示すように、テクスチャ情報識別部1021と、奥行情報識別部1022と、統合識別部1023とを含む。テクスチャ情報識別部1021及び奥行情報識別部1022は、例えば、統合識別部1023に対して、並列に接続されている。
テクスチャ情報識別部1021は、ライトフィールド画像においてテクスチャ情報を使用して被写体を検出する。具体的には、テクスチャ情報識別部1021は、例えば、非特許文献1に記載されるようなニューラルネットワークを識別器として使用することによって、ライトフィールド画像において被写体の領域(平面における位置)と被写体のカテゴリとを識別する。テクスチャ情報識別部1021への入力情報は、ライトフィールド画像であり、テクスチャ情報識別部1021の識別結果は、学習装置12の場合と同様に、ライトフィールド画像上での被写体の領域及び被写体のカテゴリである。通常撮像画像の場合、入射する光線の方向の値、つまり奥行値が積分されて画素値に含まれるため、奥行情報が削除されている。このような通常撮像画像と比較すると、ライトフィールド画像は、画像自体に被写体に関する多くの情報を含む。このため、マルチピンホール等が用いられるライトフィールド画像が、識別器の入力情報として用いられることによって、通常撮像画像を入力情報とする場合以上の高精度な識別が可能である。
奥行情報識別部1022は、ライトフィールド画像から被写体の奥行情報を検出する。具体的には、奥行情報識別部1022は、学習装置12において、ライトフィールド画像と対応する被写体の奥行情報を事前に学習する。被写体の奥行情報は、後述するように、第二画像取得部122からマルチビューステレオ画像を取得することで計算してもかまわないし、識別正解取得部123から取得してもかまわない。
統合識別部1023は、テクスチャ情報識別部1021の識別結果と、奥行情報識別部1022の識別結果とを統合し、最終的な識別結果を出力する。統合識別部1023が用いる識別器は、テクスチャ情報識別部1021のテクスチャ情報又はその識別結果と、奥行情報識別部1022の識別結果である奥行情報とを入力とし、最終的な識別結果を出力するものである。最終的な識別結果は、ライトフィールド画像に含まれる物体の領域、当該領域の画像上での平面位置、及び当該領域の奥行位置等を含む。
なお、テクスチャ情報識別部1021用のニューラルネットワークと、奥行情報識別部1022用のニューラルネットワークとがそれぞれ生成されてもよい。つまり、平面における位置及びカテゴリについては、平面における位置及びカテゴリを識別するためのニューラルネットワークが用いられ、奥行方向における位置については平面における位置及びカテゴリを識別するためのニューラルネットワークとは別途生成された、奥行方向における位置を識別するためのニューラルネットワークが用いられてもよい。また、テクスチャ情報識別部1021用のニューラルネットワークと、奥行情報識別部1022用のニューラルネットワークとがまとめて生成されてもよい。つまり、平面における位置、奥行方向における位置及びカテゴリについて、平面における位置、奥行方向における位置及びカテゴリをまとめて識別するための1つのニューラルネットワークが用いられてもよい。
また、上記説明では、撮像部11は、マルチピンホール又はマイクロレンズを用いるライトフィールドカメラであったが、これに限らない。例えば、撮像部11は、符号化開口画像を撮像する構成であってもよい。これは、一種のマルチピンホールカメラでもある。
図12は、ランダムマスクを符号化絞りとして使用する符号化開口マスクの例の模式図である。
図12に示すように、符号化開口マスク311は、色無し領域で示される光の透過領域と、黒塗り領域で示される光の遮光領域とを有し、光の透過領域及び遮光領域はランダムに配置されていることがわかる。このような符号化開口マスク311は、ガラスにクロムを蒸着することで作製される。このような符号化開口マスク311が、主レンズとイメージセンサとの間の光路上に配置されると、光線の一部が遮断される。これにより、符号化開口画像を撮像するカメラの実現が可能である。
また、第二画像取得部122は通常画像ではなく、画像情報に加え、奥行情報も取得できる画像を取得するようにしてもかまわない。例えば、第二画像取得部122はマルチビューステレオカメラで構成されてもよい。第二画像取得部122は、マルチビューステレオ画像を取得することにより、被写体の3次元情報も取得することができる。そのため、第一画像取得部121と第二画像取得部122の取得する画像を事前にキャリブレーションすることで、第一画像取得部121が取得した画像と第二画像取得部122が取得した画像の対応関係を取得することができる。このキャリブレーションでは、第二画像取得部122で取得する3次元座標と第一画像取得部121が取得する画像座標との対応が求められる。これにより、第二画像取得部122が取得した撮像画像に対する識別正解を、第一画像取得部121が取得した第1の計算撮像画像に対する識別正解に変換させることができる。このように、撮像画像は、マルチビューステレオカメラによる撮像対象物及び撮像対象物の周辺環境の撮像により得られる画像であってもよい。
以上の説明では、識別正解として、例えば、人物、自動車、自転車又は信号等の被写体が属するカテゴリ情報と、画像上での被写体の平面的な位置及び領域と、画像上での被写体の奥行方向における位置を与えていた。例えば、識別システム1が、識別正解として奥行方向における位置(奥行情報)を識別することは、第二画像取得部122が取得したマルチビューステレオから求めた奥行方向における位置(奥行情報)を識別正解として与えるようにすることで実現できる。
また、識別部102は、テクスチャ情報識別部1021と奥行情報識別部1022とが並列関係である構成を有するのではなく、奥行情報識別部1022による奥行情報の抽出後に、テクスチャ情報識別部1021による識別を行うように構成されてもよい。
図13は、識別部102の機能的な構成の別の一例を示す模式図である。
図13に示すように、識別部102では、奥行情報識別部1022、テクスチャ情報識別部1021及び統合識別部1023が直列関係にあってもよい。奥行情報識別部1022は、ライトフィールド画像に対して奥行画像を生成する。テクスチャ情報識別部1021は、奥行情報識別部1022が生成した奥行画像を入力情報として、例えば、非特許文献1に記載されるようなニューラルネットワークを用いることによって、被写体の位置、領域及び被写体のカテゴリを識別する。統合識別部1023は、テクスチャ情報識別部1021の識別結果を出力する。最終的な識別結果は、テクスチャ情報識別部1021及び統合識別部1023が並列関係にある場合と同様に、ライトフィールド画像に含まれる物体の領域、当該領域の画像上での平面位置、及び当該領域の奥行位置等を含む。
また、識別部102は、撮像部11に応じて、そのニューラルネットワークの構成を変えるようにしてもよい。撮像部11がライトフィールドカメラである場合、奥行画像は、撮像部11のマルチピンホールの位置及び大きさ等を用いて生成される。例えば、撮像部11の種類又は製造ばらつき等によって、マルチピンホールの位置及び大きさが撮像部11毎に異なる場合、撮像部11毎にニューラルネットワークを構成することにより(言い換えると撮像部11毎に個別に機械学習がなされることにより)、識別部102の識別精度を向上させることができる。なお、マルチピンホールの位置及び大きさの情報は、事前にカメラキャリブレーションを実施することで取得可能である。
以上のように、識別部102は、ライトフィールド画像を入力情報とし、当該ライトフィールド画像のテクスチャ情報及び奥行情報から識別処理を行う。それにより、識別部102は、従来の通常撮像画像を使用したテクスチャ画像のみに基づく識別処理と比べ、例えばどれだけ離れた位置にあるのかも識別できるため、より高精度の識別処理を可能にする。
上述したように、識別部102を含む画像識別装置10を備える実施の形態に係る識別システム1と、当該画像識別装置10と学習装置12とを備える実施の形態の変形例に係る識別システム1Aとを例示した。しかしながら、例えば、識別部102は、学習装置12を包含してもよく、この場合、識別システム1が学習装置12を備えることになる。つまり、この場合、識別システム1は、識別システム1Aと同等の機能を有する。
以上のように、実施の形態及び変形例に係る識別システム1及び1Aにおいて、画像識別装置10は、ライトフィールド画像等の第2の計算撮像画像を用いて、当該画像内の被写体の識別を行う。さらに、画像識別装置10は、一連の識別処理の過程において、第2の計算撮像画像を通常撮像画像に画像復元せず、第2の計算撮像画像に含まれるテクスチャ情報と、計算撮像画像に含まれる奥行情報とに基づき、第2の計算撮像画像内の被写体の識別を行う。よって、画像識別装置10は、被写体の識別処理量を低減することができる。特に、識別処理の際に第2の計算撮像画像から通常撮像画像への画像復元を伴う手法と比較して、画像識別装置10は、識別処理の大幅な高速化を可能にする。また、3次元レンジファインダ等を用いなくても奥行情報を取得できるため、低コスト化が可能となる。
また、第1の計算撮像画像の撮像に用いられるカメラ(例えば第一画像取得部121)の光軸と、撮像画像の撮像に用いられるカメラ(例えば第二画像取得部122)の光軸とは、略一致するようにしてもかまわない。図14Aはこれを説明するための模式図である。
図14Aは、第二画像取得部122の光軸と第一画像取得部121の光軸とがおおよそ一致することを示す模式図である。
この図において、第一画像取得部121及び第二画像取得部122として、それぞれ、そのハードウェアの例であるカメラを模式的に示している。また、光軸231は第一画像取得部121の光軸を示し、光軸232は第二画像取得部122の光軸を示している。各光軸をおおよそ一致させるためには、第一画像取得部121と第二画像取得部122とを接近させ、かつ、各光軸がほぼ平行になるように配置すればよい。
また、第二画像取得部122をステレオカメラとして構成する場合、第二画像取得部122を構成する2つのカメラのそれぞれの光軸と第一画像取得部121の光軸とがおおよそ一致するようにすればよい。図14Bはこれを説明するための模式図である。
図14Bは、第二画像取得部122を構成するステレオカメラの各光軸と第一画像取得部121の光軸とがおおよそ一致することを示す模式図である。
この図において、図14Aと同じ構成要素には同じ符号を付与し説明を省略する。この図において、光軸232a及び232bは第二画像取得部122を構成するステレオカメラの各光軸を示している。前述のように、本実施の形態の識別システム1又は1Aは、第二画像取得部122が取得した撮像画像に対する識別正解を、第一画像取得部121が取得した第1の計算撮像画像に対する識別正解に変換させるが、各光軸をおおよそ一致させることで、変換に伴う誤差を小さくすることができ、より高精度の識別が実現できる。
また、第一画像取得部121と第二画像取得部122の光軸を一致させるために、ビームスプリッタ、プリズム又はハーフミラーなどを利用してもかまわない。
図15は、第一画像取得部121の光軸と第二画像取得部122の光軸とを一致させるために、ビームスプリッタが利用されることを示す模式図である。
この図において、図14Aと同じ構成要素には同じ番号を付与し説明を省略する。ビームスプリッタ240により、被写体からの光線を二つに分離することができるため、分離した光線の一方を第一画像取得部121の光軸231と一致させ、もう一方を第二画像取得部122の光軸232と一致させることで、第一画像取得部121の光軸と第二画像取得部122の光軸とを一致させることが可能である。このように、第1の計算撮像画像の撮像に用いられるカメラ(例えば第一画像取得部121)の光軸と、撮像画像の撮像に用いられるカメラ(例えば第二画像取得部122)の光軸とは、ビームスプリッタ、プリズム又はハーフミラーを介することで一致する。前述のように、本実施の形態の識別システム1又は1Aは、第二画像取得部122が取得した撮像画像に対する識別正解を、第一画像取得部121が取得した第1の計算撮像画像に対する識別正解に変換させるが、各光軸を一致させることで、変換に伴う誤差を小さくすることができ、より高精度の識別が実現できる。
以上、本開示の学習装置12について、実施の形態に基づいて説明したが、本開示は、上記実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、及び、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の範囲内に含まれる。
例えば、上記実施の形態では、第2の計算撮像画像に含まれる撮像対象物及び撮像対象物の周辺環境の平面における位置、奥行方向における位置及びカテゴリ情報が識別されたが、これに限らない。例えば、撮像対象物及び撮像対象物の周辺環境の平面における位置、奥行方向における位置及びカテゴリ情報のいずれか1つ又は2つのみが識別されてもよい。つまり、撮像対象物及び撮像対象物の周辺環境の平面における位置、奥行方向における位置及びカテゴリ情報のいずれか1つ又は2つのみが機械学習されて、識別モデルが生成されてもよい。
また、例えば、上記実施の形態では、奥行方向における位置についても機械学習されたが、されなくてもよい。例えば、取得部101が第2の計算撮像画像を取得した段階において、第2の計算撮像画像に含まれる撮像対象物及び撮像対象物の周辺環境がそれぞれ複数重畳された画像を用いて、被写体の奥行方向における位置が計算されてもよい。つまり、識別モデルを用いずに、第2の計算撮像画像自体から直接奥行方向における位置が計算されてもよい。
また、例えば、第二画像取得部122が取得した撮像画像に対する識別正解は、例えば人によって手動で与えられたが、これに限らない。例えば、第二画像取得部122が取得した撮像画像に対する識別正解を与えるための学習モデルを予め準備しておいて、当該学習モデルを用いて識別正解が与えられてもよい。
また、例えば、本開示は、学習装置12として実現できるだけでなく、学習装置12を構成する各構成要素が行うステップ(処理)を含む学習方法として実現できる。
具体的には、当該学習方法は、図4に示すように、撮像対象物及び撮像対象物の周辺環境を含む第1の計算撮像画像であって、複数の第1の画素を有する第1の計算撮像画像を取得し(ステップS2)、撮像対象物及び撮像対象物の周辺環境を含む撮像画像であって、複数の第2の画素を有する撮像画像を取得し(ステップS3)、撮像画像に含まれる撮像対象物及び撮像対象物の周辺環境の識別結果を取得し(ステップS4)、複数の第1の画素及び複数の第2の画素の対応関係を参照して、撮像画像の識別結果に基づいて、第1の計算撮像画像を識別するための識別モデルを生成し(ステップS5)、第2の計算撮像画像を識別する画像識別装置10に、識別モデルを出力する(ステップS6)。
また、例えば、それらのステップは、コンピュータ(コンピュータシステム)によって実行されてもよい。そして、本開示は、それらの方法に含まれるステップを、コンピュータに実行させるためのプログラムとして実現できる。さらに、本開示は、そのプログラムを記録したCD-ROM等である非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
また、本開示において、システム、装置、部材又は部の全部又は一部、又は各図に示されるブロック図の機能ブロックの全部又は一部は、半導体装置、半導体集積回路(IC)、又はLSI(large scale integration)を含む一つ又は複数の電子回路によって実行されてもよい。
LSI又はICは、一つのチップに集積されてもよいし、複数のチップを組み合わせて構成されてもよい。例えば、記憶素子以外の機能ブロックは、一つのチップに集積されてもよい。ここでは、LSIやICと呼んでいるが、集積の度合いによって呼び方が変わり、システムLSI、VLSI(very large scale integration)、若しくはULSI(ultra large scale integration)と呼ばれるものであってもよい。LSIの製造後にプログラムされる、Field Programmable Gate Array(FPGA)、又はLSI内部の接合関係の再構成又はLSI内部の回路区画のセットアップができるreconfigurable logic deviceも同じ目的で使うことができる。
さらに、システム、装置、部材又は部の全部又は一部の機能又は操作は、上述したように、ソフトウェア処理によって実行することが可能である。この場合、ソフトウェアは少なくとも1つのROM、光学ディスク、又はハードディスクドライブなどの非一時的記録媒体に記録され、ソフトウェアが処理装置(processor)によって実行されたときに、そのソフトウェアで特定された機能が処理装置(processor)及び周辺装置によって実行される。
システム又は装置は、ソフトウェアが記録されている一つ又は複数の非一時的記録媒体、処理装置(processor)、及びハードウェアデバイスを備えていてもよい。
また、上記で用いた序数、数量等の数字は、全て本開示の技術を具体的に説明するために例示するものであり、本開示は例示された数字に制限されない。また、構成要素間の接続関係は、本開示の技術を具体的に説明するために例示するものであり、本開示の機能を実現する接続関係はこれに限定されない。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを1つの機能ブロックとして実現したり、1つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、単一のハードウェア又はソフトウェアが、類似する機能を有する複数の機能ブロックの機能を並列又は時分割に処理してもよい。
本開示の一態様に係る識別システム1Aは、撮像対象の周辺環境の情報を含む第2の計算撮像画像を撮像する撮像部11と、撮像部11が撮像した第2の計算撮像画像から、識別器を利用して当該画像に含まれる被写体を検出し、検出結果を出力する画像識別装置10と、識別器を生成する学習装置12からなる識別システムである。学習装置12は、第1の計算撮像画像を取得する第一画像取得部121と、撮像画像を取得する第二画像取得部122と、第二画像取得部122が取得した撮像画像に関する識別正解を取得する識別正解取得部123と、撮像画像に関する識別正解を利用して、第一画像取得部121が取得した第1の計算撮像画像に対する機械学習を行なうことで、識別器を取得する学習部124とを備えることを特徴とする。
撮像部11及び第一画像取得部121は、マルチピンホールカメラ、Coded Apertureカメラ、ライトフィールドカメラ、又は、レンズレスカメラ、から構成される。
撮像部11及び第一画像取得部121は、計算撮像画像として、人が見ても視覚的に認識できない画像を取得する。
学習装置12は、第一画像取得部121が取得する第1の計算撮像画像と、第二画像取得部122が取得する撮像画像の画像上での位置関係の対応を利用することで、第二画像取得部122が取得した撮像画像に関する識別正解を第一画像取得部121の識別正解として学習する。
第二画像取得部122は、画像情報に加え、奥行情報も取得できる画像を取得する。
第二画像取得部122は、マルチビューステレオカメラである。
学習装置12において、第一画像取得部121と第二画像取得部122の光軸がおおよそ一致する。
学習装置12は、さらにビームスプリッタを有し、ビームスプリッタを用いて光軸を一致させている。
本開示の一態様に係る学習装置12は、第1の計算撮像画像を取得する第一画像取得部121と、撮像画像を取得する第二画像取得部122と、第二画像取得部122が取得した撮像画像に関する識別正解を取得する識別正解取得部123と、撮像画像に関する識別正解を利用して、第一画像取得部121が取得した第1の計算撮像画像に対する機械学習を行なうことで、識別器を取得する学習部124とを備える。
本開示の一態様に係る学習方法では、第1の計算撮像画像から、識別器を利用して当該画像に含まれる被写体を検出し、検出結果を出力し、第1の計算撮像画像と撮像画像を取得し、撮像画像に関する識別正解を取得し、撮像画像に関する識別正解を利用して、第1の計算撮像画像に対する機械学習を行なうことで、識別器を生成する。