以下に、図面を参照しながら、本発明に係る撮像システムおよび撮像方法の実施の形態を詳細に説明する。また、以下の実施の形態によって本発明が限定されるものではなく、以下の実施の形態における構成要素には、当業者が容易に想到できるもの、実質的に同一のもの、およびいわゆる均等の範囲のものが含まれる。さらに、以下の実施の形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換および変更を行うことができる。
(第1の実施の形態)
<撮像システムの全体構成>
図1は、第1の実施の形態の撮像システムの全体構成の一例を示す図である。図1を参照しながら、本実施の形態の撮像システム500の構成について説明する。
図1に示すように、本実施の形態の撮像システム500は、撮像装置1と、PC2と、を備えている。撮像装置1とPC2とは、Ethernet(登録商標)ケーブル等の通信ケーブル3によって通信可能に接続されている。
撮像装置1は、被写体4から出る光を電気信号に変換することによって被写体4を撮像し、画像の情報(以下、単に画像という)にして通信ケーブル3を介してPC2へ送信する。PC2は、撮像装置1から受信した画像に対して所定の処理を実行する。
例えば、撮像装置1は、生産ラインを流れる製品に添付されたバーコードを撮像して、バーコードの画像をPC2に送信する。PC2は、受信した画像からバーコードの情報を読み出して解析する。
なお、図1に示すように、撮像システム500は、撮像装置1とPC2とが通信ケーブル3を介してデータを通信する有線通信方式のシステムとしているが、これに限定されるものではない。例えば、撮像装置1とPC2とは、Wi−Fi(登録商標)(WirelessFidelity)等の無線通信方式によって互いにデータが通信可能であってもよい。
<情報処理装置の構成>
図2は、第1の実施の形態の情報処理装置の構成の一例を示す図である。図2を参照しながら、情報処理装置の一例であるPC2の構成について説明する。
図2に示すように、情報処理装置の一例であるPC2は、通信部21と、操作部22と、表示部23と、記憶部24と、外部記憶装置25と、制御部26と、を備えている。上記の各部は、バス27によって接続され、互いにデータの送受信が可能となっている。
通信部21は、通信ケーブル3を介して、撮像装置1と通信する装置である。通信部21は、例えば、NIC(Network Interface Card)等の通信装置によって実現される。通信部21の通信プロトコルは、例えば、TCP(Transmission Control Protocol)/IP(Internet Protocol)またはUDP(User Datagram Protocol)/IP等である。
操作部22は、ユーザによって制御部26に対して所定の処理を実行させるための操作入力を行う装置である。操作部22は、例えば、マウス、キーボード、テンキー、タッチパッドまたはタッチパネルにおける操作入力機能によって実現される。
表示部23は、制御部26により実行されているアプリケーション画像等を表示する装置である。表示部23は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、プラズマディスプレイまたは有機EL(Electroluminescence)ディスプレイ等によって実現される。
記憶部24は、PC2で実行される各種プログラムおよびPC2で行われる各種処理に使用されるデータ等を記憶する装置である。記憶部24は、例えば、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置によって実現される。
外部記憶装置25は、画像、プログラムおよびフォントデータ等を蓄積して記憶する記憶装置である。外部記憶装置25は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク、または光磁気ディスク(MO:Magneto−Optical Disk)等の記憶装置によって実現される。
制御部26は、PC2の各部の動作を制御する装置である。制御部26は、例えば、CPU(Central Processing Unit)およびASIC(Application Specific Integrated Circuit)等で実現される。
<撮像装置の構成>
図3は、第1の実施の形態の撮像装置の構成の一例を示す図である。図3を参照しながら、本実施の形態の撮像装置1の構成について説明する。
図3に示すように、撮像装置1は、レンズユニット11(光学系)と、撮像素子12(撮像手段)と、画像処理部14と、認識処理部15a〜15c(認識処理手段)と、通信部16と、を備えている。
レンズユニット11は、被写体4から出る光を集光し、撮像素子12に対して結像させるユニットである。レンズユニット11は、1枚以上のレンズで構成された光学系によって実現される。レンズユニット11は、位相板11aと、絞り11bとを備えている。被写体4は、例えば、人物、車両、道路、被監視物、バーコード、2次元または文字列等である。
位相板11aは、レンズユニット11に入射する光に対して収差を与える作用を有する。その結果、位相板11aは、撮像素子12に入射される光に対して点像分布関数を付加する作用を奏し、撮像素子12で撮像される画像がぼけた状態にすると共に、広い被写界深度でそのぼけが一定となるようにする。
絞り11bは、レンズユニット11に入射する光の量を自在に調整する部材であり、位相板11aの近傍に配置されている。
撮像素子12は、レンズユニット11に入射する被写体からの光を電気信号に変換することにより、被写体4を撮像して画像を生成する固体撮像素子である。撮像素子12は、固体撮像素子を構成する各検出素子によって撮像した画像を構成する画素を出力する。撮像素子12は、例えば、CCDセンサまたはCMOSセンサ等によって実現される。
画像処理部14は、撮像素子12から出力される画像に対して復元処理を実行する装置である。後述するように、画像処理部14は、フィルタ係数の異なる複数の逆変換フィルタにより復元処理を実行し、復元処理が施された画像をそれぞれ出力する。
認識処理部15a〜15cは、画像処理部14から出力されたそれぞれの画像から、所定の対象物を認識する認識処理を実行する装置である。以下、認識処理部15a〜15cを、区別なく呼称する場合または総称する場合、単に認識処理部15というものとする。所定の対象物とは、例えば、画像上の人物、車両または道路上の白線等である。なお、図3においては、撮像装置1が、3つの認識処理部15(15a〜15c)を備えるものとしているが、2つまたは4つ以上の認識処理部15を備えるものとしてもよい。また、認識処理部15は、プログラムであるソフトウェアによって実現されてもよく、あるいは、ハードウェア回路によって実現されてもよい。
通信部16は、通信ケーブル3を介して、PC2と通信する装置である。通信部16は、例えば、認識処理部15から出力される画像をPC2に対して送信する。通信部16は、例えば、NIC等の通信装置によって実現される。通信部16の通信プロトコルは、例えば、TCP/IPまたはUDP/IP等である。
<画像処理部の構成および動作>
図4は、第1の実施の形態の撮像装置の画像処理部の構成の一例を示す図である。図5は、撮像素子によって検出される画像の一例を示す図である。図4を参照しながら、本実施の形態の撮像装置1の画像処理部14の構成について説明する。
撮像素子12は、上述のように、レンズユニット11に入射する被写体からの光を電気信号に変換することにより被写体4を撮像し、画像を生成する固体撮像素子である。以下、撮像素子12は、VGAの画像を形成して出力するものとして説明する。具体的には、撮像素子12は、図5に示すように、X方向に640個、Y方向に480個の検出素子によって、640×480のマトリックス状に配列された画素で構成される画像である検出画像101を検出する。
なお、撮像素子12が検出する画像の大きさは640×480のVGAの画像であるものとしたが、これに限定されるものではなく、異なる大きさの画像であってもよい。
図4に示すように、本実施の形態の画像処理部14は、画像バッファ部141と、フィルタ処理部143a〜143c(逆変換手段)とを備えている。
画像バッファ部141は、撮像素子12から出力される画素を順に入力してバッファリングする装置である。画像バッファ部141の具体的な構成および動作については、図6および7において後述する。
フィルタ処理部143a〜143cは、画像バッファ部141から出力される画素に対して、フィルタ回路によって、所定のフィルタ処理(復元処理)を行う。本実施の形態においては、復元処理に使用するフィルタとして、位相板11aの作用によって点像分布関数を与えられたぼけた画像に対して、ぼけを補正する逆変換処理をするための逆変換フィルタを例に説明する。フィルタ処理部143の具体的な構成および動作については、図8〜11において後述する。以下、フィルタ処理部143a〜143cを、区別なく呼称する場合または総称する場合、単にフィルタ処理部143というものとする。なお、図4においては、撮像装置1が、3つのフィルタ処理部143(143a〜143c)を備えるものとしているが、認識処理部15の数に応じて、2つまたは4つ以上のフィルタ処理部143を備えるものとしてもよい。
<<画像バッファ部141の構成および動作>>
図6は、画像バッファ部の構成の一例を示す図である。図7は、撮像素子から出力される画素が画像バッファ部に入力される動作を示すタイミングチャートである。図6および7を参照しながら、画像処理部14の画像バッファ部141の構成および動作について説明する。
画像バッファ部141は、図6に示すように、レジスタ1411a〜1411dと、ラインバッファ1412a〜1412dと、を備えている。画像バッファ部141は、撮像素子12から出力される画素を入力部1410から入力し、バッファリングした画素を出力部1413a〜1413eから出力する。撮像素子12によって検出される画像の640×480の各画素について、X方向のX番目およびY方向のY番目の画素を(X,Y)の画素というものとする。
図6に示すように、レジスタ1411aの入力側は、入力部1410および出力部1413aに接続されている。レジスタ1411a〜1411dの出力側は、それぞれラインバッファ1412a〜1412dの入力側に接続されている。ラインバッファ1412a〜1412cの出力側は、それぞれレジスタ1411b〜1411dの入力側に接続されている。そして、ラインバッファ1412a〜1412dの出力側は、それぞれ出力部1413b〜1413eに接続されている。
次に、図7を参照しながら、撮像素子12によって検出された画像の出力動作について説明する。撮像素子12は、検出した画素をX方向の1水平ラインずつ走査しながら、その1水平ラインに含まれる画素を出力する。具体的には、撮像素子12は、Y方向の1番目の水平ラインに含まれる画素を、X方向の1番目の画素から640番目の画素まで順に出力する。撮像素子12は、上記の動作を、Y方向の480番目までの水平ラインに含まれる画素の出力をそれぞれ行う。
上述の動作を図7に示すタイミングチャートに基づいて説明する。図7に示すように、撮像素子12は、有効フレーム信号がオン状態のとき、1フレーム分、すなわち1画像分の画素を出力する。撮像素子12において、有効フレーム信号がオン状態になってからフレーム開始期間Aを経て、Y方向の1番目の水平ラインの画素の出力許可を示す有効ライン信号L1がオン状態になる。撮像素子12は、有効ライン信号L1がオン状態になっている有効データ期間Tの間に、Y方向の1番目の水平ラインを走査し、その水平ラインに含まれるX方向の1〜640番目の画素((1,1)〜(640,1)の画素)を順に出力する。撮像素子12によってY方向の1番目の水平ラインの画素が出力された後、有効ライン信号L1がオフ状態になる。
撮像素子12において、有効ライン信号L1がオフ状態になってから水平ブランキング期間Bを経て、Y方向の2番目の水平ラインの画素の出力許可を示す有効ライン信号L2がオン状態になる。撮像素子12は、有効ライン信号L2がオン状態になっている有効データ期間Tの間に、Y方向の2番目の水平ラインを走査し、その水平ラインに含まれるX方向の1〜640番目の画素((1,2)〜(640,2)の画素)を順に出力する。撮像素子12によってY方向の2番目の水平ラインの画素が出力された後、有効ライン信号L2がオフ状態になる。
撮像素子12は、以上の動作について、有効ライン信号L480がオン状態になっている有効データ期間Tの間に、Y方向の480番目の水平ラインに含まれるX方向の1〜640番目の画素を出力するまで行う。撮像素子12において、有効ライン信号L480がオフ状態になってからフレーム終了期間Cを経て、有効フレーム信号がオフ状態になる。以上の動作によって、撮像素子12による1フレーム分の画素の出力が終了する。また、撮像素子12において、有効フレーム信号がオフ状態になってから垂直ブランキング期間Dを経て、再び有効フレーム信号がオン状態になり、次の1フレーム分の画素の出力が開始される。
次に、図6を参照しながら、画像バッファ部141における撮像素子12から出力される画素のバッファリング処理について説明する。画像バッファ部141は、撮像素子12から出力される画素を入力部1410から入力する。具体的には、画像バッファ部141は、まず、Y方向の1番目の水平ラインについて、撮像素子12から入力した(1,1)の画素を、出力部1413aから出力すると共に、レジスタ1411aに格納する。
画像バッファ部141は、次のタイミングで、レジスタ1411aに格納した画素をラインバッファ1412aの記憶領域B1aに格納する。そして、画像バッファ部141は、撮像素子12から次に入力した(2,1)の画素を出力部1413aから出力すると共に、レジスタ1411aに格納する。
画像バッファ部141は、次のタイミングで、記憶領域B1aに格納した画素をラインバッファ1412aの記憶領域B2aにシフトして格納し、レジスタ1411aに格納した画素を記憶領域B1aに格納する。そして、画像バッファ部141は、撮像素子12から次に入力した(3,1)の画素を出力部1413aから出力すると共に、レジスタ1411aに格納する。
以上の動作を繰り返すことにより、画像バッファ部141は、撮像素子12から入力したY方向の1番目の水平ラインの画素を出力部1413aから出力する。それと共に、画像バッファ部141は、Y方向の1番目の水平ラインの1〜639番目の画素をラインバッファ1412aの記憶領域B639a〜B1aにそれぞれ格納し、640番目の画素をレジスタ1411aに格納する。
次に、画像バッファ部141は、ラインバッファ1412aの記憶領域B1a〜B639aに格納した画素を記憶領域B2a〜B640aにシフトして格納し、レジスタ1411aに格納した画素を記憶領域B1aに格納する。画像バッファ部141は、記憶領域B640aに格納した(1,1)の画素を出力部1413bから出力すると共に、レジスタ1411bに格納する。そして、画像バッファ部141は、Y方向の2番目の水平ラインについて、撮像素子12から入力した(1,2)の画素を出力部1413aから出力すると共に、レジスタ1411aに格納する。すなわち、画像バッファ部141は、X方向の値が同一の画素である(1,1)および(1,2)の画素を、出力部1413bおよび1413aからそれぞれ出力する。
画像バッファ部141は、次のタイミングで、レジスタ1411bに格納した画素をラインバッファ1412bの記憶領域B1bに格納する。画像バッファ部141は、ラインバッファ1412aの記憶領域B1a〜B639aに格納した画素を記憶領域B2a〜B640aにシフトして格納し、レジスタ1411aに格納した画素を記憶領域B1aに格納する。画像バッファ部141は、記憶領域B640aに格納した(2,1)の画素を出力部1413bから出力すると共に、レジスタ1411bに格納する。そして、画像バッファ部141は、撮像素子12から次に入力した(2,2)の画素を出力部1413aから出力すると共に、レジスタ1411aに格納する。
画像バッファ部141は、次のタイミングで、記憶領域B1bに格納した画素をラインバッファ1412bの記憶領域B2bにシフトして格納し、レジスタ1411bに格納した画素を記憶領域B1bに格納する。画像バッファ部141は、ラインバッファ1412aの記憶領域B1a〜B639aに格納した画素を記憶領域B2a〜B640aにシフトして格納し、レジスタ1411aに格納した画素を記憶領域B1aに格納する。画像バッファ部141は、記憶領域B640aに格納した(3,1)の画素を出力部1413bから出力すると共に、レジスタ1411bに格納する。そして、画像バッファ部141は、撮像素子12から次に入力した(3,2)の画素を出力部1413aから出力すると共に、レジスタ1411aに格納する。
以上の動作を繰り返すことにより、画像バッファ部141は、撮像素子12から入力したY方向の1および2番目の水平ラインの画素についてX方向の値が同一の画素を、出力部1413aおよび1413bからそれぞれ同一のタイミングで出力する。それと共に、画像バッファ部141は、Y方向の1番目の水平ラインの1〜639番目の画素をラインバッファ1412bの記憶領域B639b〜B1bにそれぞれ格納し、640番目の画素をレジスタ1411bに格納する。さらに、画像バッファ部141は、Y方向の2番目の水平ラインの1〜639番目の画素をラインバッファ1412aの記憶領域B639a〜B1aにそれぞれ格納し、640番目の画素をレジスタ1411aに格納する。
以上の動作のように、画像バッファ部141は、撮像素子12から入力した各水平ラインの画素をラインバッファ1412a〜1412dにバッファリングする。それと共に、画像バッファ部141は、X方向の値が同一の画素、すなわち、(X,Y−4)、(X,Y−3)、(X,Y−2)、(X,Y−1)および(X,Y)の画素を、出力部1413a〜1413eからそれぞれ同一のタイミングで出力する。
なお、図6は画像バッファ部141の構成の一例を示すものであり、この構成に限定されるものではなく、上述した画像バッファ部141のバッファリング処理と同様の作用を奏する構成であればよい。
<<フィルタ処理部143の構成および動作>>
図8は、フィルタ処理部の構成の一例を示す図である。図9は、逆変換フィルタの構成の一例を示す図である。図10は、画像を逆変換フィルタによってフィルタ処理することを説明する図である。図11は、画像において逆変換フィルタのフィルタ処理の対象となる対象部分画像をスキャンする動作を説明する図である。図8〜11を参照しながら、画像処理部14のフィルタ処理部143(143a〜143c)の構成および動作について説明する。
フィルタ処理部143は、図8に示すように、レジスタ1432a〜1432e、1433a〜1433e、1434a〜1434e、1435a〜1435e、1436a〜1436eおよび1437a〜1437eを備えている。フィルタ処理部143は、乗算器1438a〜1438e、1439a〜1439e、1440a〜1440e、1441a〜1441eおよび1442a〜1442eを備えている。フィルタ処理部143は、加算器1443a〜1443e、1444a〜1444e、1445a〜1445e、1446a〜1446eおよび1447a〜1447cを備えている。フィルタ処理部143a〜143cは、それぞれ、画像バッファ部141から出力される画素を入力部1431a〜1431eから入力する。そして、フィルタ処理部143は、入力した画素について、導出方法を後述するフィルタ係数を有する逆変換フィルタによってコンボリューション演算(畳み込み演算)を行い、演算値を出力部1448から出力する。
乗算器1438a〜1438e、1439a〜1439e、1440a〜1440e、1441a〜1441eおよび1442a〜1442eは、入力側から入力される画素の値とフィルタ係数との乗算値を出力する回路である。具体的には、乗算器1438a〜1442aは、それぞれフィルタ係数a55〜a51と画素との乗算値を出力する。乗算器1438b〜1442bは、それぞれフィルタ係数a45〜a41と画素との乗算値を出力する。乗算器1438c〜1442cは、それぞれフィルタ係数a35〜a31と画素との乗算値を出力する。乗算器1438d〜1442dは、それぞれフィルタ係数a25〜a21と画素との乗算値を出力する。乗算器1438e〜1442eは、それぞれフィルタ係数a15〜a11と画素との乗算値を出力する。加算器1443a〜1443e、1444a〜1444e、1445a〜1445e、1446a〜1446e、ならびに1447aおよび1447cは、入力側から入力される2つのデータの値の加算値を出力する回路である。加算器1447bは、入力側から入力される3つのデータの値の加算値を出力する回路である。
図8に示すように、入力部1431a〜1431eは、それぞれレジスタ1432a〜1432eの入力側に接続されている。レジスタ1432a〜1437aは、直列に接続している。レジスタ1432b〜1437b、1432c〜1437c、1432d〜1437dおよび1432e〜1437eのそれぞれについても同様である。
入力部1431a〜1431eは、それぞれ乗算器1438a〜1438eの入力側に接続されている。レジスタ1432a〜1435aの出力側は、それぞれ乗算器1439a〜1442aの入力側に接続されている。レジスタ1432b〜1435bと乗算器1439b〜1442bとの接続関係、レジスタ1432c〜1435cと乗算器1439c〜1442cとの接続関係、レジスタ1432d〜1435dと乗算器1439d〜1442dとの接続関係、およびレジスタ1432e〜1435eと乗算器1439e〜1442eとの接続関係もそれぞれ同様である。
乗算器1438a〜1438eの出力側は、それぞれ加算器1443a〜1443eの入力側に接続されている。加算器1443a〜1446aは、直列に接続している。加算器1443b〜1446b、1443c〜1446c、1443d〜1446dおよび1443e〜1446eのそれぞれについても同様である。
乗算器1439a〜1442aの出力側は、それぞれ加算器1443a〜1446aの入力側に接続されている。乗算器1439b〜1442bと加算器1443b〜1446bとの接続関係、乗算器1439c〜1442cと加算器1443c〜1446cとの接続関係、乗算器1439d〜1442dと加算器1443d〜1446dとの接続関係、および乗算器1439e〜1442eと加算器1443e〜1446eとの接続関係もそれぞれ同様である。
加算器1446aおよび1446bの出力側は、加算器1447aの入力側に接続されている。加算器1446dおよび1446eの出力側は、加算器1447cの入力側に接続されている。加算器1446c、1447aおよび1447cの出力側は、加算器1447bの入力側に接続されている。加算器1447bの出力側は、出力部1448に接続されている。
次に、図8〜11を参照しながら、フィルタ処理部143における逆変換処理(復元処理)について説明する。復元処理に使用されるフィルタは、図9に示すように、上述したフィルタ係数a11〜a15、a21〜a25、a31〜a35、a41〜a45およびa51〜a55によって構成されるタップ数が5×5の線形フィルタである逆変換フィルタ121である。逆変換フィルタ121による復元処理の対象となる画像の部分を、図10に示す対象部分画像131であるものとする。対象部分画像131は、画素A11〜A15、A21〜A25、A31〜A35、A41〜A45およびA51〜A55によって構成された5×5の部分画像である。
レジスタ1432a〜1432e、1433a〜1433e、1434a〜1434e、1435a〜1435e、1436a〜1436eおよび1437a〜1437eには、データが格納されていない状態、すなわち、0の値が格納された状態であるものとする。フィルタ処理部143は、入力部1431a〜1431eから対象部分画像131の画素A51、A41、A31、A21およびA11を入力し、それぞれレジスタ1432a〜1432eに格納すると共に、乗算器1438a〜1438eに入力させる。乗算器1438a〜1438eは、それぞれのフィルタ係数であるa55、a45、a35、a25およびa15と、それぞれ入力した画素A51、A41、A31、A21およびA11との乗算値を出力する。乗算器1438a〜1438eによって演算された乗算値は、加算器1447a〜1447cによって加算される。加算値は、加算器1447bから出力され、出力部1448からフィルタ処理部143の外部に出力される。
フィルタ処理部143は、次のタイミングで、レジスタ1432a〜1432eに格納した画素A51、A41、A31、A21およびA11を、それぞれレジスタ1433a〜1433eにシフトして格納し、乗算器1439a〜1439eに入力させる。フィルタ処理部143は、入力部1431a〜1431eから対象部分画像131の画素A52、A42、A32、A22およびA12を入力し、それぞれレジスタ1432a〜1432eに格納すると共に、乗算器1438a〜1438eに入力させる。乗算器1439a〜1439eは、それぞれのフィルタ係数であるa54、a44、a34、a24およびa14と、それぞれ入力した画素A51、A41、A31、A21およびA11との乗算値を出力する。乗算器1438a〜1438eは、それぞれのフィルタ係数であるa55、a45、a35、a25およびa15と、それぞれ入力した画素A52、A42、A32、A22およびA12との乗算値を出力する。乗算器1439a〜1439eによって演算された乗算値、および乗算器1438a〜1438eによって演算された乗算値は、加算器1443a〜1443eおよび1447a〜1447cによって加算される。加算値は、加算器1447bから出力され、出力部1448からフィルタ処理部143の外部に出力される。
そして、以上の動作が繰り返された結果、レジスタ1432a〜1436a、1432b〜1436b、1432c〜1436c、1432d〜1436dおよび1432e〜1436eに、それぞれ画素A55〜A51、A45〜A41、A35〜A31、A25〜A21およびA15〜A11が格納されたものとする。また、乗算器1438a〜1442a、1438b〜1442b、1438c〜1442c、1438d〜1442dおよび1438e〜1442eに、それぞれ画素A55〜A51、A45〜A41、A35〜A31、A25〜A21およびA15〜A11が入力されたものとする。乗算器1442a〜1442eは、それぞれのフィルタ係数であるa51、a41、a31、a21およびa11と、それぞれ入力した画素A51、A41、A31、A21およびA11との乗算値を出力する。乗算器1441a〜1441eは、それぞれのフィルタ係数であるa52、a42、a32、a22およびa12と、それぞれ入力した画素A52、A42、A32、A22およびA12との乗算値を出力する。乗算器1440a〜1440eは、それぞれのフィルタ係数であるa53、a43、a33、a23およびa13と、それぞれ入力した画素A53、A43、A33、A23およびA13との乗算値を出力する。乗算器1439a〜1439eは、それぞれのフィルタ係数であるa54、a44、a34、a24およびa14と、それぞれ入力した画素A54、A44、A34、A24およびA14との乗算値を出力する。乗算器1438a〜1438eは、それぞれのフィルタ係数であるa55、a45、a35、a25およびa15と、それぞれ入力した画素A55、A45、A35、A25およびA15との乗算値を出力する。
乗算器1438a〜1438e、1439a〜1439e、1440a〜1440e、1441a〜1441eおよび1442a〜1442eによって演算された乗算値は、図8に示す全ての加算器によって加算される。加算値は、加算器1447bから出力され、出力部1448からフィルタ処理部143の外部に出力される。この加算値は、図10に示すように、対象部分画像131に対して逆変換フィルタ121によりコンボリューション演算した値、すなわち、式(1)で表される演算値と同一である。コンボリューション演算の演算値は、対象部分画像131の中央に位置する画素である中央データに対して復元処理を実行した値となる。すなわち、コンボリューションの演算値は、復元処理後の画像(復元画像)において、復元処理前の画像の中央データに相当する位置の画素となる。
次に、フィルタ処理部143の復元処理について、図11を参照しながら、画像105においてX方向の水平ラインを走査しながら復元処理をする動作の概略を説明する。図11(a)は、フィルタ処理部143が、画像105における(1,1)の画素に対して逆変換フィルタ121によって逆変換処理をする状態を示している。図11(a)に示すように、(1,1)の画素を中央データ135aとしてコンボリューション演算するためには、(1,1)の画素を中央データとする対象部分画像131aと、画像105とが重複している部分の画素が必要になる。すなわち、対象部分画像131aのうち、図10に示す対象部分画像131の画素A33〜A35、A43〜A45およびA53〜A55に相当する画素が必要である。
そのためは、画素A33〜A35、A43〜A45およびA53〜A55に相当する画素が、画像バッファ部141の出力部1413a〜1413cから出力されている必要がある。さらに、画素A35〜A33、A45〜A43およびA55〜A53に相当する画素が、フィルタ処理部143のレジスタ1432c〜1434c、1432b〜1434bおよび1432a〜1434aに格納されている必要がある。そして、対象部分画像131aにおいて、画像105と重複していない部分の画素は「0」として取り扱うものとする。
以上の状態において、フィルタ処理部143は、図10に示したコンボリューション演算と同様に、対象部分画像131aに対して逆変換フィルタ121によってコンボリューション演算を行う。フィルタ処理部143は、画像105の対象部分画像131aの中央データ135aである(1,1)の画素に対してコンボリューション演算した値を、復元処理後の画像の(1,1)の画素として出力する。
次に、フィルタ処理部143は、図11(b)に示すように、コンボリューション演算の対象となる画素をX方向にひとつシフトし、対象部分画像131bの中央データ135bである(2,1)の画素に対して復元処理をする。そして、フィルタ処理部143は、X方向の水平ラインをシフトしながらコンボリューション演算を繰り返し、図11(c)に示すように、X方向の水平ラインの最後の画素である(640,1)の画素に対して復元処理をする。(640,1)の画素は、図11(c)に示すように、対象部分画像131cの中央データ135cである。
以上のように、フィルタ処理部143は、X方向の水平ラインをシフトしながらコンボリューション演算を繰り返し、水平ラインの最後の画素に対する復元処理が終了すると、Y方向の次の水平ラインに対して同様に復元処理を行う。
図11(d)〜11(f)は、フィルタ処理部143が、画像105におけるY方向の4番目の水平ラインの画素に対して復元処理を行う状態を示している。図11(d)は、フィルタ処理部143が、画像105における(1,4)の画素に対して逆変換フィルタ121によって復元処理をする状態を示している。図11(d)に示すように、(1,4)の画素を中央データ135dとしてコンボリューション演算するためには、(1,4)の画素を中央データとする対象部分画像131dと、画像105とが重複している部分の画素が必要になる。そして、対象部分画像131dにおいて、画像105と重複していない部分の画素は、上述と同様に「0」として取り扱うものとする。
図11(e)は、フィルタ処理部143が、画像105における(5,4)の画素に対して逆変換フィルタ121によって復元処理をする状態を示している。図11(e)に示すように、(5,4)の画素を中央データ135eとする対象部分画像131eは全体が画像105と重複しているので、フィルタ処理部143は、対象部分画像131eに含まれる画素をすべて利用した復元処理が可能となる。
そして、フィルタ処理部143は、X方向の水平ラインをシフトしながらコンボリューション演算を繰り返し、図11(f)に示すように、X方向の水平ラインの最後の画素である(640,4)の画素に対して復元処理をする。(640,4)の画素は、図11(f)に示すように、対象部分画像131fの中央データ135fである。
以上のように、フィルタ処理部143は、画像105を構成する各画素に対して逆変換フィルタ121によるコンボリューション演算を行って復元処理をするので、位相板11aによってぼけた画像を補正し、画像の解像度を向上させることができる。
なお、上述のように、画像105における逆変換フィルタ121によるコンボリューション演算の対象となる対象部分画像について、画像105と重複していない部分の画素は「0」としたが、これに限定されるものではない。例えば、対象部分画像の画像105と重複していない部分の画素は、対象部分画像の中央データを基準にして、対象部分画像の画像105と重複している部分の画素を折り返した場合の画素を用いるものとしてもよい。
具体的に、図11(a)の対象部分画像131aを例にして説明する。対象部分画像131aのそれぞれの画素の名称を、仮に図10に示す対象部分画像131の画素の名称と同様とする。この場合、対象部分画像131aの画像105と重複していない部分の画素は、画素A11〜A15、A21〜A25、A31、A32、A41、A42、A51およびA52である。また、対象部分画像131aの画像105と重複している部分の画素は、画素A33〜A35、A43〜A45およびA53〜A55である。
このとき、画素A31、A32、A41、A42、A51およびA52は、中央データを基準にして、対象部分画像131aの画像105と重複している部分の画素を折り返し、それぞれ画素A35、A34、A45、A44、A55およびA54の値を用いる。また、画素A13〜A15およびA23〜A25は、中央データを基準にして、対象部分画像131aの画像105と重複している部分の画素を折り返し、それぞれ画素A53〜A55およびA43〜A45の値を用いる。そして、画素A11、A12、A21およびA22は、中央データを基準にして、対象部分画像131aの画像105と重複している部分の画素のうち点対象の位置関係にある画素、すなわち、それぞれA55、A54、A45およびA44の値を用いる。以上のような方法によって、対象部分画像の各画素を決定するものとしてもよい。
また、図9および10に示すように、フィルタ処理部143が有する逆変換フィルタはタップ数が5×5のフィルタとしているが、これに限定されるものではない。すなわち、フィルタのタップ数は3×3、15×15または21×21等異なるタップ数としてもよい。この場合、フィルタのタップ数に合わせて、対象部分画像の大きさも一致させる必要がある。また、フィルタによる逆変換処理の対象となる中央データが存在するように、フィルタのタップ数は奇数である必要がある。
また、逆変換フィルタは、例えば15×15以上のタップ数であることが好ましい。逆変換フィルタは、タップ数が多いほど、位相板によって被写界深度が拡張されてぼけが加えられた画像に対して、ぼけを補正できる光軸上の幅を大きくすることができる。したがって、タップ数が多い逆変換フィルタを用いることによって、位相板およびレンズの被写界深度についての設計のバリエーションを増やすことができる。
<逆変換フィルタの周波数特性の導出>
まず、1箇所のフォーカス位置において光学系であるレンズユニット11によって広がったスポットを一点に集まるように復元する復元処理に使用される逆変換フィルタの周波数特性の導出方法について説明する。上述の周波数特性を実現するフィルタとしては、2次元の線形フィルタかつFIR(Finite Impulse Response)フィルタが好適である。
まず、撮像素子12によって撮像された画像への光学系による影響のモデルを以下の式(2)に示す2次元のコンボリューション演算(畳み込み演算)の式によって表す。
ここで、imagecapturedは光学系を通って検出された2次元の撮像画像の画素であり、imageidealは被写体4そのものを示す理想画像の画素であり、hは光学系のPSFを示す。
以下、画像処理系(撮像素子12および画像処理部14)に加わるノイズの影響を考慮して、復元処理後の画像の各画素と、理想画像の各画素との誤差についての平均二乗誤差を最小とする逆変換フィルタの周波数特性の導出を考える。平均二乗誤差は、以下の式(3)によって表される。
ここで、E[]は期待値(平均値)を示し、nは画像上の位置を示し、imageprocessed(n)は、imagecapturedに対して復元処理をした画像の画素を示す。なお、imagecapturedは、ノイズが含まれていることを考慮する。
波形x(n)が持つエネルギーのnの全領域についての総和と、波形x(n)のエネルギーのフーリエ変換X(ω)の全周波数成分についての総和とが等しいとするパーセバルの定理より、式(3)は、周波数領域における平均二乗誤差として以下の式(4)で表される。
ここで、IMAGEideal(ω)はimageideal(n)の周波数特性を示し、IMAGEprocessed(ω)はimageprocessed(n)の周波数特性を示し、ωは空間周波数を示す。
逆変換フィルタの周波数特性をR(ω)とすると、以下の式(5)の最小値を与える周波数特性R(ω)が最適の逆変換フィルタとなる。
ここで、IMAGEcaptured(ω)は、imagecaptured(n)の周波数特性である。
式(5)において、IMAGE
ideal(ω)=S(ω)、およびIMAGE
captured(ω)=X(ω)とし、式(5)の最小値を求めるため、式(5)をR
*によって微分すると、下記の式(6)が得られる。
ここで、E[|X(ω)|2]は、ノイズを含んだ撮像画像のパワースペクトルであり、E[S(ω)・X(ω)*]は、ノイズを含んだ撮像画像と理想画像との相互パワースペクトルである。
式(5)の最小値を求めるため、式(6)の最右辺を0とすると下記の式(7)が得られる。
この式(8)に示す周波数特性R(ω)に基づく逆変換フィルタが、上述の式(3)に示す平均二乗誤差を最小とする最適のフィルタとなる。
ここで、ノイズの周波数特性をW(ω)とし、光学系のPSFであるhの周波数特性をH(ω)として、上述の式(2)を周波数空間で示すと下記の式(9)で示される。
ノイズの周波数特性W(ω)と、周波数特性S(ω)とが無相関であるとすると、E[S(ω)・W(ω)
*]=0であるので、上述の式(8)の右辺の分母に、式(9)を代入すると、下記の式(10)が得られる。
同じくノイズの周波数特性W(ω)と、周波数特性S(ω)とが無相関であるとすると、E[W(ω)・S(ω)
*]=0およびE[S(ω)
*・W(ω)]=0であるので、上述の式(8)の右辺の分母に、式(9)を代入すると、下記の式(11)が得られる。
上述の式(8)、(10)および(11)から、下記の式(12)に示す周波数特性R(ω)が得られる。
この式(12)に示す周波数特性R(ω)に基づく逆変換フィルタが、画像処理系のノイズを考慮した場合の上述の式(3)に示す平均二乗誤差を最小とする最適なフィルタとなる。ここで、E[|S(ω)|2]は理想画像のパワースペクトルの平均値であり、E[|W(ω)|2]はノイズのパワースペクトルの平均値であり、|H(ω)|2は光学系の周波数特性のパワースペクトルである。
また、上述の式(12)に示す周波数特性R(ω)を適用した場合において、復元処理後の画像の各画素と、理想画像の各画素との二乗誤差についての周波数領域における積分を取ると、下記の式(13)が得られる。
この式(13)の演算においては、上述のように、ノイズの周波数特性W(ω)と、周波数特性S(ω)とが無相関であることを利用している。式(13)の最右辺の第1項は、復元処理後の画像の復元しきれなかった誤差量を示している。第2項は、ノイズによる誤差量を示している。
式(13)の積分値が最小となるように、光学系の周波数特性H(ω)を設計することによって、上述の式(5)に示す周波数領域においての平均二乗誤差が最小となる光学系および逆変換フィルタの組み合わせを得ることができる。また、パーセバルの定理より、上述の式(3)に示す実空間における平均二乗誤差が最小となる光学系および逆変換フィルタの組み合わせを得ることができる。
ただし、上述の式(12)に示す周波数特性R(ω)に基づく逆変換フィルタは、1箇所のフォーカス位置(すなわち1箇所の周波数特性H)において、光学系によって広がったスポットを復元することができるものである。したがって、式(12)に示す周波数特性R(ω)に基づく逆変換フィルタは、スポットの形状が異なるその他のデフォーカス位置においては、スポットを復元するための最適なフィルタにはならない。
次に、光軸上のあるデフォーカス位置範囲内において光学系であるレンズユニット11によって広がったスポットを復元する復元処理に使用される逆変換フィルタの周波数特性の導出方法について説明する。これによって、1箇所のフォーカス位置における最適な逆変換フィルタではなく、複数の位置において最適な逆変換フィルタを求めることができる。
まず、2箇所のデフォーカス位置を想定し、上述の式(5)を変形して、2つの画像についての周波数領域における平均二乗誤差の和は、下記の式(14)で表される。
2つの画像は、それぞれIMAGE1およびIMAGE2に対応する。
式(14)において、IMAGE1
ideal(ω)=S1(ω)、IMAGE1
captured(ω)=X1(ω)、IMAGE2
ideal(ω)=S2(ω)およびIMAGE2
captured(ω)=X2(ω)とする。そして、式(14)の最小値を求めるため、式(14)をR
*によって微分すると、下記の式(15)が得られる。
式(15)の最小値を求めるため、式(15)の最右辺を0として、周波数特性R(ω)について解くと、下記の式(16)が得られる。
撮像装置1によって同一の画像を撮像しているものと仮定すると、S1(ω)=S2(ω)となり、これをS(ω)とおき、さらに、上述の式(9)の関係式から下記の式(17)が得られる。
この式(17)に示す周波数特性R(ω)に基づく逆変換フィルタが、上述の式(14)に示す周波数領域の平均二乗誤差を最小とする最適なフィルタとなる。
以上は2つの画像の場合であったが、N個の画像、すなわち、N箇所のデフォーカス位置に一般化した周波数特性R(ω)は、下記の式(18)で表される。
この式(18)に示す周波数特性R(ω)に基づく逆変換フィルタが、画像処理系のノイズを考慮し、式(14)に基づく複数のデフォーカス位置に対応する周波数領域の平均二乗誤差を最小とする最適なフィルタとなる。なお、できるだけ多くのデフォーカス位置、すなわち、できるだけ大きなNの値によって周波数特性Rを導出するのが好ましい。
また、上述の式(17)に示す周波数特性R(ω)を適用した場合において、復元処理後の画像の各画素と、理想画像の各画素との二乗誤差についての周波数領域における積分を取ると、下記の式(19)が得られる。
この式(19)の演算においては、上述のように、ノイズの周波数特性W(ω)と、周波数特性S(ω)とが無相関であることを利用している。
上述の式(19)について、N個の画像、すなわち、N箇所のデフォーカス位置に一般化すると、下記の式(20)が得られる。
式(20)に示す値をNで割った値である下記の式(21)で示される値をN箇所のデフォーカス位置に一般化した場合の周波数領域における平均二乗誤差MSE(Mean Square Error)であると定義する。
式(21)に示すMSEが最小となるように、光学系の周波数特性H(ω)を設計することによって、上述の式(14)に示す周波数領域においての平均二乗誤差が最小となる光学系および逆変換フィルタの組み合わせを得ることができる。また、パーセバルの定理により、実空間においての平均二乗誤差が最小となる光学系および逆変換フィルタの組み合わせを得ることができる。したがって、式(18)に示す周波数特性R(ω)に基づいて、例えば、画像処理部14のフィルタ処理部143が有する逆変換フィルタ121を導出するものとすればよい。
以上のように、N箇所のデフォーカス位置、すなわち、複数のデフォーカス位置について、式(18)に示す周波数特性R(ω)から最適な逆変換フィルタをもとめることができる。これによって、デフォーカス位置によってスポットの形状が変わっても、同一の逆変換フィルタによって復元することができるので、より広い範囲にまで被写界深度を拡張することができる。
図12は、フィルタ処理部の逆変換フィルタを決定するための周波数特性を演算する流れを示すフローチャートである。図12を参照しながら、式(18)に示す周波数特性Rを具体的に演算する流れについて説明する。
<<ステップS1>>
まず、レンズユニット11における面曲率および面間隔等、ならびに位相板11aの特性等の光学系パラメータに基づいて、レンズユニット11に対する光線追跡演算によりPSFを導出する。ここで、複数のデフォーカス位置における光学系パラメータによって光線追跡演算を行い、PSFを導出する。そして、ステップS2へ進む。
<<ステップS2>>
ステップS1で導出したPSFをフーリエ変換することによって、光学系の周波数特性Hを導出する。そして、ステップS5へ進む。
<<ステップS3>>
画像処理系(撮像素子12および画像処理部14)に加わるノイズ特性を測定する。そして、ノイズ特性をフーリエ変換することによって、ノイズの周波数特性Wを導出する。なお、ノイズ特性の測定が困難である場合は、空間周波数によらず、撮像素子12のS/N比の値を定数としてノイズの周波数特性Wを導出するものとしてもよい。そして、ステップS5へ進む。
<<ステップS4>>
撮像装置1により、自然風景またはバーコード等を様々な大きさおよび撮影条件によって撮像された画像を理想画像とする。例えば、理想画像を構成する画素の値をフーリエ変換し、空間周波数ωについての平均値を被写体の周波数特性Sとして導出する。この被写体の周波数特性Sの導出の詳細については後述する。そして、ステップS5へ進む。
<<ステップS5>>
ステップS2で導出した光学系の周波数特性H、ステップS3で導出したノイズの周波数特性W、およびステップS4で導出した被写体の周波数特性Sから、上述の式(18)を使用して、逆変換フィルタの周波数特性Rを演算する。
<MTFについて>
図13は、光学系を通過した光によって検出された画像の空間周波数特性を示す図である。図14は、復元処理が行われた画像の空間周波数特性を示す図である。図13および14を参照しながら、画像の空間周波数特性について説明する。
まず、図13を参照しながら、レンズユニット11(光学系)を通過した光が撮像素子12によって撮像された画像についての空間周波数ωに対するMTF(Modulation Transfer Function)について説明する。MTFは、光学系の結像性能を知るために、被写体の持つコントラストをどの程度忠実に再現できるかを空間周波数ωについての特性として表現した値である。図13に示す目標空間周波数特性201は、被写体の撮像画像のコントラストが完全に再現された場合のMTFの空間周波数ωについての特性(MTF=1)を示す。
上述したように、レンズユニット11を通過した光は、収差を与えるレンズおよび位相板11aの作用によって点像分布関数(PSF)が付加される。図13に示す空間周波数特性202は、レンズユニット11を通過した光に基づいて、撮像素子12によりフォーカス位置において撮像された撮像画像のMTFを示す。図13に示す空間周波数特性203は、レンズユニット11を通過した光に基づいて撮像素子12によってあるデフォーカス位置において撮像された撮像画像のMTFを示す。レンズユニット11を通過した光はPSFが付加されているので、フォーカス位置における空間周波数特性202、およびデフォーカス位置における空間周波数特性203は、図13に示すように、何れも目標空間周波数特性201よりも低い値となる。
次に、図14(a)を参照しながら、図8に示すフィルタ処理部143が有する逆変換フィルタが、上述の式(12)に示す周波数特性Rによって求められた場合を考える。この場合において、撮像素子12によって撮像された画像がフィルタ処理部143によって復元処理が行われた画像についてのMTFについて説明する。
図14(a)に示す空間周波数特性202aは、撮像素子12によりフォーカス位置において撮像された撮像画像について、フィルタ処理部143により復元処理された画像のMTFを示す。図14(a)に示す空間周波数特性203aは、撮像素子12によりあるデフォーカス位置において撮像された撮像画像について、フィルタ処理部143により復元処理された画像のMTFを示す。上述のように、式(12)は1箇所のフォーカス位置において、レンズユニット11によってPSFが付加された画像を復元する逆変換フィルタの周波数特性Rなので、フォーカス位置での空間周波数特性202aは、MTF=1となり、目標空間周波数特性201と一致する。しかし、式(12)に示す周波数特性Rから導出された逆変換フィルタは、フォーカス位置におけるスポットとは形状の異なるデフォーカス位置には対応していないので、空間周波数特性203aのMTFは、空間周波数特性202aのMTFよりも低くなる。
次に、図14(b)を参照しながら、図8に示すフィルタ処理部143が有する逆変換フィルタが、上述の式(18)に示す周波数特性Rに基づいてもとめられた場合を考える。この場合において、撮像素子12によって撮像された画像がフィルタ処理部143によって復元処理が行われた画像についてのMTFについて説明する。
図14(b)に示す空間周波数特性202bは、撮像素子12により、あるデフォーカス位置P1において撮像された撮像画像について、フィルタ処理部143により復元処理された画像のMTFを示す。図14(b)に示す空間周波数特性203bは、撮像素子12により、あるデフォーカス位置P2において撮像された撮像画像について、フィルタ処理部143により復元処理された画像のMTFを示す。上述のように、式(18)は複数のデフォーカス位置において、すなわち、光軸上の所定の位置範囲(被写界深度)において、レンズユニット11によってPSFが付加された画像を復元する逆変換フィルタの周波数特性Rである。したがって、被写界深度に含まれる何れのデフォーカス位置においても、撮像素子12により撮像され、かつ、フィルタ処理部143により復元処理された画像の空間周波数特性におけるMTFは、目標空間周波数特性201のMTFに近接することになる。すなわち、上述の逆変換フィルタによって複数のデフォーカス位置における画像が復元処理された画像についてのMTFは、図14(b)に示すように、目標空間周波数特性201よりも大きい値であったり、小さい値であったりする。いずれにしても、上述の逆変換フィルタによって復元処理された画像のMTFは、図14(b)に示すように、目標空間周波数特性201に近接する。
以上のように、フィルタ処理部143は、式(18)に示す周波数特性R(ω)に基づいてもとめられた逆変換フィルタによる復元処理によって、所定の位置範囲において、レンズユニット11によってPSFが付加された画像を復元することができる。したがって、所定の位置範囲においてスポットの形状が変わっても、同一の逆変換フィルタによって復元することができるので、より広い範囲にまで被写界深度を拡張することができる。
<認識処理部における認識処理>
上述においては、復元処理後の画像の各画素と、理想画像の各画素との誤差についての平均二乗誤差を最小とする復元処理について説明した。ここで、認識処理部15における認識処理の内容によっては、復元処理後の画像がぼけてもよいのでS/N比を高く(ノイズを低く)したい場合、または、復元処理後の画像にノイズがあっても(S/N比が低くても)よいので解像度を高くしたい場合等が想定される。例えば、道路上の白線を認識する認識処理では、白線はある程度の太さがあるため、高い解像度は要求されず、ノイズが少ない方が望ましい。また、遠方に存在する人物を認識する認識処理では、人物のエッジを検出する必要があるため、ノイズは多くても、高い解像度が要求される。すなわち、認識処理によって求められる画像の解像度およびノイズ量の組み合わせが異なるので、認識処理ごとに復元処理後の画像が異なるものとなり、復元処理のための逆変換フィルタを変更する必要がある。
ここで、一度作成した光学系(レンズユニット11)は構成変更することは困難であるが、画像処理系のパラメータを変更することは容易である。そこで、式(18)に示す逆変換フィルタの周波数特性R(ω)のうち、周波数特性S(ω)を設定変更する(具体的には、フィルタ係数を変更する)ことによって、上述の式(18)により、各認識処理に応じた逆変換フィルタを求めることができる。例えば、上述の道路上の白線を認識する認識処理については、周波数特性S(ω)の高周波成分を小さく設定することによって、ノイズ量を低減する逆変換フィルタを求めることができる。また、上述の人物を認識する認識処理については、周波数特性S(ω)の高周波成分を大きく設定することによって、解像度を上昇させる逆変換フィルタを求めることができる。
図3および4において上述したように、本実施の形態に係る撮像装置1は、画像バッファ部141から出力された同一の撮像画像が、フィルタ処理部143a〜143cに入力される。フィルタ処理部143aにより復元処理された画像は、認識処理部15aに入力され、フィルタ処理部143bにより復元処理された画像は、認識処理部15bに入力され、フィルタ処理部143cにより復元処理された画像は、認識処理部15cに入力される。すなわち、認識処理部15a〜15cにおける各認識処理に応じて、フィルタ処理部143a〜143cそれぞれにおいて、異なる逆変換フィルタが設定されている。
以上のように、撮像装置1は、同一の撮像画像が入力される複数のフィルタ処理部143を有し、それぞれのフィルタ処理部143で異なる逆変換フィルタにより撮像画像に対して復元処理をして、それぞれのフィルタ処理部143に対応する認識処理部15に復元処理後の画像が入力されるものとしている。したがって、上述のように広い範囲で被写界深度を拡張しつつ、各フィルタ処理部143は、各認識処理部15の認識処理に適した解像度およびノイズ量を有する復元処理後の画像を出力することができるので、各認識処理部15の認識性能を向上させることができる。
なお、認識処理部15は、撮像装置1内に備えられるものとしたが、認識処理部15の機能を撮像装置1外の装置(例えば、PC2)に備えさせるものとしてもよい。
<第1の実施の形態の変形例>
第1の実施の形態においては、図3に示すように、1つの光学系(レンズユニット11)と、1つの撮像素子12とを有する撮像装置1における認識処理について説明した。この認識処理の中には、上述で例示したものの他に、例えば、視差演算により撮像画像の対象物までの距離を推定する処理がある。本変形例において、視差演算により撮像画像の対象物までの距離を推定する認識処理について説明する。視差演算を実行するためには、ステレオカメラを構成するための2つのカメラ、すなわち、2つの光学系および2つの撮像素子が必要である。したがって、本変形例に係る撮像装置は、少なくとも、2つの光学系と、2つの撮像素子と、2つの撮像素子の撮像画像をそれぞれ復元処理する2つのフィルタ処理部と、2つのフィルタ処理部それぞれから復元処理後の画像(第1復元画像および第2復元画像)を入力して視差演算による距離推定の認識処理を実行する認識処理部と、を備える。ステレオカメラの2つの光学系は、通常水平に設置されるので、2つの光学系から入射した光(第1入射光、第2入射光)によって撮像された画像を、それぞれ左画像(第1画像または第2画像)、右画像(第2画像または第1画像)というものとする。
視差演算による距離推定の認識処理では、視差演算精度を高めるため、高い解像度よりも、S/N比が高い(ノイズが少ない)方が望ましい。したがって、周波数特性S(ω)の高周波成分を小さく設定して、上述の式(18)により逆変換フィルタを求める。
なお、撮像素子は必ずしも2つ備える必要はなく、1つの撮像素子の撮像面に所定の偏光成分のみと透過させる2種類のフィルタを、ピクセルごとに交互に配置して、2つの光学系から入射してフィルタにより異なる偏光方向に偏光された光が、1つの撮像素子で撮像されるものとしてもよい。この場合、撮像画像から、2つの光学系から入射したそれぞれの光によって撮像された2つの画像を抽出することができる。
また、本変形例に係る撮像装置は、視差演算による距離推定の認識処理を実行する認識処理部のみではなく、他の認識処理を実行する認識処理部を備えてもよく、それに応じたフィルタ処理部もさらに備えてもよいのは、言うまでもない。
次に、視差演算による距離推定の具体的な処理内容について説明する。視差とは、左画像および右画像に映り込んでいる同一の対象物(または対象位置)について、左画像における対象物(対象位置)の位置と、右画像における対象物(対象位置)の位置との差をいうものとする。なお、本変形例においては、左画像および右画像の画像間で、垂直方向の対象物の変位はないものとし、水平方向の対象物の変位が視差であるものとする。ここで、視差をPrとおき、2つの光学系の距離(光学系間距離)をLd、焦点距離をFdとすると、対象物までの距離Tdは、Td=(Ld×Fd)/Prによって算出することができる。焦点距離Fdは、2つの光学系において同一であるものとする。ここで、光学系間距離Ldおよび焦点距離Fdが既知である場合、視差Prを導出することによって、対象物までの距離Tdを求めることができる。
<<ブロックマッチングによる視差の導出>>
次に、ブロックマッチングによる視差の導出方法について説明する。まず、認識処理部は、左画像または右画像のうちいずれかを基準画像として選び、基準画像における対象物(または対象位置)を含む部分の画像(ブロック)を切り出す。次に、認識処理部は、基準画像ではないもう一方の画像(対比画像)(左画像を基準画像とした場合、右画像が対比画像となる)において、基準画像におけるブロックの垂直方向の位置と同じ位置で、基準画像のブロックと同じ大きさのブロックを水平方向にピクセル単位に移動させながら、基準画像のブロックと対比画像のブロックとがどれだけ類似しているかを判定する。そして、基準画像のブロックの水平方向の位置と、基準画像のブロックと最も類似している対比画像のブロックの水平方向の位置との差が視差となる。この場合の視差は、ピクセル単位で求められる視差である。
基準画像のブロックと対比画像のブロックとがどれだけ類似しているかを示す評価値として、以下のマッチング評価関数を用いることができる。ここで、基準画像および対比画像のブロックは、X方向(図5参照)に画素数がM個、Y方向に画素数がN個で構成されているものとする。T(i,j)は、基準画像のブロックにおいてX方向のi番目(i=0〜M−1)、Y方向のj番目(j=0〜N−1)の画素値とする。I(i,j)は、対比画像のブロックにおいてX方向のi番目(i=0〜M−1)、Y方向のj番目(j=0〜N−1)の画素値とする。
(1)SAD(Sum of Absolute Difference)
基準画像および対比画像のブロックの画素値の差の絶対値の和を評価値とするものである。評価値が小さいほど、基準画像のブロックおよび対比画像のブロックが類似していると判定される。SADによる評価値R
SADは、以下の式(22)で示され、計算量が少ないという特徴を有する。
(2)SSD(Sum of Squared Difference)
基準画像および対比画像ブロックの画素値の差の二乗の和を評価値とするものである。評価値が小さいほど、基準画像のブロックおよび対比画像のブロックが類似していると判定される。SSDによる評価値R
SSDは、以下の式(23)で示される。
(3)NCC(Normalized Cross Correlation)
正規化相互相関で、明るさおよびコントラストに影響されにくいという特徴を有する。評価値が1に近いほど、基準画像のブロックおよび対比画像のブロックが類似していると判定される。NCCによる評価値R
NCCは、以下の式(24)で示される。
(4)ZSAD(Zero mean Sum of Absolute Difference)
SADの式における基準画像および対比画像のブロックの画素値から、各ブロックの画素値の平均値を引いたものである。評価値が小さいほど、基準画像のブロックおよび対比画像のブロックが類似していると判定される。ZSADによる評価値R
ZSADは、以下の式(25)で示される。評価値R
SADは、画像の明るさが変動すると値も変動するが、評価値R
ZSADは、ブロックの画素値からブロックの画素値の平均値を引いているので、明るさの変動があっても安定的に評価値を得ることができるという特徴を有する。
式(25)の対比画像のブロックの画素値の平均値は、下記の式(26)で示される。
また、式(25)の基準画像のブロックの画素値の平均値は、下記の式(27)で示される。
(5)ZSSD(Zero mean Sum of Squared Difference)
SSDの式における基準画像および対比画像のブロックの画素値から、各ブロックの画素値の平均値を引いたものである。評価値が小さいほど、基準画像のブロックおよび対比画像のブロックが類似していると判定される。ZSSDによる評価値R
ZSSDは、以下の式(28)で示される。評価値R
SSDは、画像の明るさが変動すると値も変動するが、評価値R
ZSSDは、ブロックの画素値からブロックの画素値の平均値を引いているので、明るさの変動があっても安定的に評価値を得ることができるという特徴を有する。
(6)ZNCC(Zero mean Normalized Cross Correlation)
NCCの式における基準画像および対比画像のブロックの画素値から、各ブロックの画素値の平均値を引いたものである。評価値が小さいほど、基準画像のブロックおよび対比画像のブロックが類似していると判定される。ZNCCによる評価値R
ZNCCは、以下の式(29)で示される。評価値R
NCCは、画像の明るさが変動すると値も変動するが、評価値R
ZNCCは、ブロックの画素値からブロックの画素値の平均値を引いているので、明るさの変動があっても安定的に評価値を得ることができるという特徴を有する。
以上のようなマッチング評価関数を使用することによって、基準画像のブロックと対比画像のブロックとの類似度を求めて視差を導出し、対象物(対象位置)までの距離をもとめることができる。ただし、マッチング評価関数を用いたブロックマッチングによる視差演算は、ピクセル単位でしか視差を求めることができない。ここで、ピクセル単位よりも細かい仮想的な単位であるサブピクセル単位で視差を求めることができるサブピクセル位置推定について、次に説明する。
<<サブピクセル位置推定による視差の導出>>
図15は、第1の実施の形態の変形例に係る撮像装置において等角直線フィッティングによりサブピクセル位置推定を行う場合を説明する図である。図16は、第1の実施の形態の変形例に係る撮像装置においてパラボラフィッティングによりサブピクセル位置推定を行う場合を説明する図である。図15および16を参照しながら、サブピクセル位置推定による視差の導出方法について説明する。
まず、図15を参照しながら、等角直線フィッティングによりサブピクセル位置推定を行う場合ついて説明する。上述したブロックマッチングと同様の方法により、認識処理部は、左画像または右画像のうちいずれかを基準画像として選び、基準画像における対象物(または対象位置)を含む部分の画像(ブロック)を切り出す。次に、認識処理部は、対比画像において、基準画像におけるブロックの垂直方向の位置と同じ位置で、基準画像のブロックと同じ大きさのブロックを水平方向にピクセル単位に移動させながら、基準画像のブロックと対比画像のブロックとがどれだけ類似しているかの評価値を算出していく。評価値としては、値が小さいほど基準画像のブロックおよび対比画像のブロックが類似していると判定される、SAD、SSD、ZSADまたはZSSDのいずれかのマッチング評価関数を用いて算出するものとする。
ここで、図15に示すように、評価値を算出していった結果、横軸に対比画像の水平方向の位置i、縦軸を評価値R(i)として、評価値R(i)をプロットする。便宜的に、ブロックマッチングにより評価値R(i)が最小となった対比画像の水平方向の位置をi=0とし、図15では、i=−1、0、1のピクセル単位の位置における評価値R(−1)、R(0)、R(1)が示されている。次に、認識処理部は、図15に示すように、各プロット点を結ぶ一次の対称関数(折れ線、等角直線)を描く。この一次の対照関数のピークとなる水平位置の座標i=i
0において評価値が最も小さくなると判定し、サブピクセル単位で評価値が最小となる対比画像のブロックの水平位置を推定することができる。このi
0は、下記の式(30)によって算出される。
次に、図16を参照しながら、パラボラフィッティングによりサブピクセル位置推定を行う場合について説明する。図15において説明した等角直線フィッティングによりサブピクセル位置推定の場合と同様に、ブロックマッチングにより評価値を算出していった結果、横軸に対比画像の水平方向の位置i、縦軸を評価値R(i)として、評価値R(i)をプロットする。便宜的に、ブロックマッチングにより評価値R(i)が最小となった対比画像の水平方向の位置をi=0とし、図16では、i=−1、0、1のピクセル単位の位置における評価値R(−1)、R(0)、R(1)が示されている。次に、認識処理部は、図16に示すように、各プロット点を結ぶ放物線を描く。この放物線の底となる水平位置の座標i=i
0において評価値が最も小さくなると判定し、サブピクセル単位で評価値が最小となる対比画像のブロックの水平位置を推定することができる。このi
0は、下記の式(31)によって算出される。
以上のように、等角直線フィッティングまたはパラボラフィッティングによりサブピクセル位置推定により、サブピクセル単位で、評価値が最小となる対比画像のブロックの水平位置が推定可能となる。したがって、上述のブロックマッチングのみによる視差演算よりも高精度は視差演算が可能となり、高精度に対象物との距離を求めることが可能となる。
(第2の実施の形態)
第2の実施の形態に係る撮像装置1について、第1の実施の形態に係る撮像装置1の構成および動作と相違する点を中心に説明する。第2の実施の形態に係る撮像システムの全体構成は、第1の実施の形態に係る撮像システム500と同様である。
<撮像装置の構成>
図17は、第2の実施の形態の撮像装置の構成の一例を示す図である。図17を参照しながら、本実施の形態の撮像装置1aの構成について説明する。
図17に示すように、撮像装置1aは、レンズユニット11と、撮像素子12と、画像処理部14aと、認識処理部15a〜15cと、通信部16と、スイッチ部17(スイッチング手段)と、フレーム制御部18(フレーム制御手段)と、を備えている。
撮像素子12は、レンズユニット11に入射する被写体からの光を電気信号に変換することにより、被写体4を撮像して画像を生成する固体撮像素子である。撮像素子12は、固体撮像素子を構成する各検出素子によって撮像した画像を構成する画素を出力する。撮像素子12は、例えば、CCDセンサまたはCMOSセンサ等によって実現される。撮像素子12は、フレーム制御部18から受信した露光時間情報にしたがって、指定された露光時間によって被写体4を撮像する。
画像処理部14aは、撮像素子12から出力される画像に対して復元処理を実行する装置である。画像処理部14aは、フレーム制御部18から受信したフィルタ係数切替情報に基づいて、後述するフィルタ処理部143dにおける復元処理のための逆変換フィルタのフィルタ係数を変更する。
スイッチ部17は、フレーム制御部18から受信したスイッチング切替情報に基づいて、画像処理部14aから出力された復元処理後の画像を、認識処理部15a〜15cのいずれかへ中継する。
フレーム制御部18は、撮像素子12により撮像された画像(フレーム)ごとに異なる露光時間情報、フィルタ係数切替情報およびスイッチング切替情報を、それぞれ、撮像素子12、画像処理部14aおよびスイッチ部17へ送信する。
<画像処理部の構成および動作>
図18は、第2の実施の形態の撮像装置の画像処理部の構成の一例を示す図である。図18を参照しながら、本実施の形態の画像処理部14aの構成について説明する。
図18に示すように、本実施の形態の画像処理部14aは、画像バッファ部141と、フィルタ処理部143d(逆変換手段)とを備えている。
フィルタ処理部143dは、画像バッファ部141から出力される画素に対して、フィルタ回路によって、所定のフィルタ処理(復元処理)を行う。フィルタ処理部143dは、上述したように、フレーム制御部18から受信したフィルタ係数切替情報に基づいて、復元処理のための逆変換フィルタのフィルタ係数を変更する。
<認識処理部における認識処理>
第1の実施の形態に係る撮像装置1は、各認識処理部15の認識処理に応じた復元処理後の画像を得るために、各認識処理部15に対応した固定の逆変換フィルタを有するフィルタ処理部143を備えているものとした。したがって、撮像素子12から出力される撮像画像の全フレームが、各フィルタ処理部143に入力され、各認識処理部15によって異なる復元処理がなされるものとしている。
ただし、撮像素子12から出力される撮像画像の全フレームについて、各フィルタ処理部143がそれぞれ復元処理をする必要がない場合もある。例えば、1フレーム目は、車両を認識するための認識処理用とし、2フレーム目は、道路上の白線を認識するための認識処理用として、3フレーム目は、人物を認識するための認識処理用とし、これを繰り返す処理が要求される場合もある。すなわち、フレームごとに異なる認識処理を実行する必要がある場合もある。
本実施の形態に係る撮像装置1aは、フレーム制御部18が、撮像素子12により撮像された画像(フレーム)ごとに異なるフィルタ係数切替情報およびスイッチング切替情報を、それぞれ画像処理部14aおよびスイッチ部17へ送信する。これによって、上述の処理が可能となる。
本実施の形態に係る撮像装置1aにおける画像(フレーム)ごとに異なる認識処理を実行する動作を具体的に説明する。例えば、認識処理部15aは、車両を認識する認識処理を実行し、認識処理部15bは、道路上の白線を認識する認識処理を実行し、認識処理部15cは、人物を認識する認識処理を実行するものとする。なお、認識処理部15a〜15cが実行する認識処理は、上述の処理内容に限定されるものではないのは言うまでもない。
まず、撮像素子12により撮像された1フレーム目の撮像画像を、認識処理部15aによる認識処理に使用するものとする。この場合、車両を認識する認識処理においては、車両のエッジを検出する必要があるため、ノイズは多くても高い解像度の画像が要求される。したがって、フレーム制御部18は、解像度が上昇するように、高周波成分を大きくなるように設定した周波数特性S(ω)を用いて、式(18)により復元処理のための逆変換フィルタのフィルタ係数を算出する。次に、フレーム制御部18は、撮像素子12から1フレーム目の撮像画像が出力される際に、算出したフィルタ係数を含むフィルタ係数切替情報をフィルタ処理部143dに送信してフィルタ係数を切り替える。そして、フレーム制御部18は、スイッチ部17にスイッチング切替情報を送信して、フィルタ処理部143dから出力される復元処理後の画像が、認識処理部15aに入力されるようにする。このようにして、1フレーム目の撮像画像は、認識処理部15aの車両を認識する認識処理に適するように、フィルタ処理部143dにより復元処理されて、認識処理部15aに入力される。認識処理部15aは、入力した復元処理後の画像を使用して、車両を認識する認識処理を実行する。
次に、撮像素子12により撮像された2フレーム目の撮像画像を、認識処理部15bによる認識処理に使用するものとする。この場合、道路上の白線を認識する認識処理においては、白線はある程度の太さがあるため、高い解像度は要求されず、ノイズが少ない方が望ましい。したがって、フレーム制御部18は、ノイズ量が低減するように、高周波成分を小さくなるように設定した周波数特性S(ω)を用いて、式(18)により復元処理のための逆変換フィルタのフィルタ係数を算出する。次に、フレーム制御部18は、撮像素子12から2フレーム目の撮像画像が出力される際に、算出したフィルタ係数を含むフィルタ係数切替情報をフィルタ処理部143dに送信してフィルタ係数を切り替える。そして、フレーム制御部18は、スイッチ部17にスイッチング切替情報を送信して、フィルタ処理部143dから出力される復元処理後の画像が、認識処理部15bに入力されるようにする。このようにして、2フレーム目の撮像画像は、認識処理部15bの道路上の白線を認識する認識処理に適するように、フィルタ処理部143dにより復元処理されて、認識処理部15bに入力される。認識処理部15bは、入力した復元処理後の画像を使用して、道路上の白線を認識する認識処理を実行する。
次に、撮像素子12により撮像された3フレーム目の撮像画像を、認識処理部15cによる認識処理に使用するものとする。この場合、人物を認識する認識処理においては、人物のエッジを検出する必要があるため、ノイズは多くても高い解像度の画像が要求される。したがって、フレーム制御部18は、解像度が上昇するように、高周波成分を大きくなるように設定した周波数特性S(ω)を用いて、式(18)により復元処理のための逆変換フィルタのフィルタ係数を算出する。次に、フレーム制御部18は、撮像素子12から3フレーム目の撮像画像が出力される際に、算出したフィルタ係数を含むフィルタ係数切替情報をフィルタ処理部143dに送信してフィルタ係数を切り替える。そして、フレーム制御部18は、スイッチ部17にスイッチング切替情報を送信して、フィルタ処理部143dから出力される復元処理後の画像が、認識処理部15cに入力されるようにする。このようにして、3フレーム目の撮像画像は、認識処理部15cの人物を認識する認識処理に適するように、フィルタ処理部143dにより復元処理されて、認識処理部15cに入力される。認識処理部15cは、入力した復元処理後の画像を使用して、人物を認識する認識処理を実行する。
4フレーム目以降の撮像画像は、上述の車両を認識する認識処理、道路上の白線を認識する認識処理、および人物を認識する認識処理が繰り返して実行される。
上述では、画像(フレーム)ごとに異なる認識処理を実行する動作について説明した。この他、例えば、撮像装置1aにより被写体として風景等を撮像する場合、撮像画像の下部は基本的に近くかつ大きくものが写るため、高い解像度は必要なく、撮像画像の中央または上部は基本的に遠くかつ小さく写るため、高い解像度が必要とされる場合もある。また、画面上の中央部を重点的に確認したい認識処理の場合、中央部の解像度を周辺部の解像度よりも高める必要がある。このような、撮像画像内の位置によって異なる解像度が要求される認識処理の場合、撮像画像内の位置ごとにフィルタ係数を変更する必要がある。すなわち、フィルタ処理部143dが、撮像素子12により撮像された1つの撮像画像について復元処理をしている途中で、その撮像画像内の位置ごとに適した解像度およびノイズ量の組み合わせとなるようにフィルタ係数を切り替える必要がある。
本実施の形態に係る撮像装置1aは、フレーム制御部18が、撮像素子12により撮像された画像(フレーム)に対して、フィルタ処理部143dにより復元処理がされている状態で、フレーム内の位置に応じた解像度およびノイズ量となるように設定した周波数特性S(ω)を用いて、式(18)により逆変換フィルタのフィルタ係数を算出する。そして、フレーム制御部18は、同様に、フィルタ処理部143dにより復元処理がされている状態で、算出したフィルタ係数を含むフィルタ係数切替情報を、画像処理部14aへ送信する。これによって、上述の処理が可能となる。
以上のように、本実施の形態に係る撮像装置1aは、フレーム制御部18が、撮像素子12により撮像された画像(フレーム)ごとに、そのフレームに適した解像度およびノイズ量となるように設定した周波数特性Sを用いてフィルタ係数を算出し、そのフィルタ係数を含むフィルタ係数切替情報を、画像処理部14aに送信し、フィルタ処理部143dのフィルタ係数を切り替える。そして、フレーム制御部18は、フィルタ処理部143dにより上述のフィルタ係数で復元処理された画像を必要とする認識処理部15にその画像が入力されるように、スイッチ部17にスイッチング切替情報を送信するものとしている。これによって、1つのフィルタ処理部を用いることによって、各認識処理部15における認識処理に適した解像度およびノイズ量を有する復元処理後の画像を入力させることができる。
また、本実施の形態に係る撮像装置1aは、フレーム制御部18が、撮像画像(フレーム)に対して、フィルタ処理部143dにより復元処理がされている状態で、フレーム内の位置に応じた解像度およびノイズ量となるように設定した周波数特性Sを用いて、フィルタ係数を算出することができる。そして、フレーム制御部18は、同様に、フィルタ処理部143dにより復元処理がされている状態で、算出したフィルタ係数を含むフィルタ係数切替情報を、画像処理部14aへ送信するものとしている。これによって、認識処理部15の認識処理に応じて、フィルタ処理部143dは、1つの撮像画像に対して位置ごとに解像度およびノイズ量の異なる復元処理後の画像を生成することができ、認識処理部15に入力させることができる。
また、上述のように、複数の認識処理部15の認識処理に適した画像を、1つのフィルタ処理部143dによりフィルタ係数を切り替えて復元処理が実行されることによって生成することができる。すなわち、各認識処理部15に応じたフィルタ処理部を備える必要が無いので、フィルタ回路をコンパクトにすることができ、コストを削減することができる。
なお、上述では、フレームごとに、スイッチ部17によって、復元処理後の画像が入力される認識処理部15を切り替えていたが、スイッチ部17の導通状態を固定することによって、撮像画像の全フレームを、特定の認識処理を実行する認識処理部15に入力することも可能である。
また、スイッチ部17は、スイッチング作用により、画像処理部14a(フィルタ処理部143d)を、複数の認識処理部15のいずれか1つに接続させるものとして説明したが、これに限定されるものではない。すなわち、スイッチ部17は、スイッチング作用により、画像処理部14a(フィルタ処理部143d)を、同時に複数の認識処理部15に接続させるものとしてもよい。これによって、例えば、認識処理の処理内容は異なるが、要求する解像度およびノイズ量を有する復元処理後の画像が同一である認識処理部15が複数ある場合に、その画像を、同時にその複数の認識処理部15に入力させることができる。
また、スイッチ部17および認識処理部15は、撮像装置1a内に備えられるものとしたが、スイッチ部17および認識処理部15の機能を撮像装置1a外の装置(例えば、PC2)に備えさせるものとしてもよい。