画像処理装置、画像照合方法、および、プログラム
【課題】より精度の高い距離算出を実現する。
【解決手段】特徴点抽出部213が、第1撮像部100Aおよび第2撮像部100Bで取得された画像の一方で特徴点を設定すると、テンプレート設定部214は、特徴点を含む基準テンプレートを、撮像画像のエッジ抽出画像上に設定する。基準テンプレート内の画像がエッジによって分断されている場合、テンプレート設定部214は、分断された領域のうち特徴点を含んでいない領域を基準テンプレートから削除し、削除した領域と同じ面積の領域を、分断された領域のうち特徴点が含まれている領域に、エッジを越えないように追加した変形テンプレートを設定する。距離算出部215は、基準テンプレートもしくは変形テンプレートのいずれかを用いて、他方の画像の他方に対するテンプレートマッチングをおこない、マッチングのとれた特徴点までの撮影距離を算出する。
【解決手段】特徴点抽出部213が、第1撮像部100Aおよび第2撮像部100Bで取得された画像の一方で特徴点を設定すると、テンプレート設定部214は、特徴点を含む基準テンプレートを、撮像画像のエッジ抽出画像上に設定する。基準テンプレート内の画像がエッジによって分断されている場合、テンプレート設定部214は、分断された領域のうち特徴点を含んでいない領域を基準テンプレートから削除し、削除した領域と同じ面積の領域を、分断された領域のうち特徴点が含まれている領域に、エッジを越えないように追加した変形テンプレートを設定する。距離算出部215は、基準テンプレートもしくは変形テンプレートのいずれかを用いて、他方の画像の他方に対するテンプレートマッチングをおこない、マッチングのとれた特徴点までの撮影距離を算出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像照合方法、および、プログラムに関し、特に、画像間のテンプレートマッチングに好適な画像処理装置、画像照合方法、および、プログラムに関する。
【背景技術】
【0002】
撮像画像における被写体までの距離を測定する方法として、視差のある2以上の撮像画像で三角測量の原理を用いる方法が知られている。
【0003】
この場合において、視差を求めるために、複数画像間でテンプレートマッチングをおこなうことが一般的である。テンプレートマッチングでは、一方の画像上のテンプレート領域を他方の画像上で走査し、相違度が最も小さい位置を探索することで視差を求める。
【0004】
ここで、撮像画像において、被写体と背景との距離が大きく異なるような場合、被写体境界近傍では、被写体と背景間に距離があるため、2つの画像間で見え方が異なるオクルージョンが発生する。このような場合、オクルージョンの発生箇所近傍での距離算出精度が著しく低下するという問題がある。
【0005】
このような問題を解消するため、通常のテンプレートマッチングをおこなった後に、距離変化の大きい箇所においてサイズの小さいテンプレートを使用したテンプレートマッチングをおこなう手法が提案されている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平10−021403号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1の手法は、マッチング対象領域が「距離の大きく変化する領域」や「エッジを含む領域」である場合にテンプレートサイズを小さくすることで、オクルージョンによる影響の解消を図るものであるが、テンプレートマッチングに用いるテンプレートのサイズが小さい場合、位置照合の精度は向上するものの、距離算出の精度が低下するという問題がある。
【0008】
ここで、例えば、実写の撮像画像を用いた3Dモデリングをおこなう場合においては、距離算出精度が低いと正確なモデリングをおこなうことができない。よって、撮像画像における距離算出をより高い精度でおこなえる手法の確立が望まれる。
【0009】
本発明は、上記実状に鑑みてなされたものであり、より精度の高い距離算出をおこなうことのできる画像処理装置、画像照合方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明の第1の観点にかかる画像処理装置は、
複数の画像間でテンプレートマッチングをおこなう画像処理装置において、
同一被写体について視差のある2以上の画像を取得する画像取得手段と、
前記画像取得手段が取得した画像の一方で特徴点を設定する特徴点設定手段と、
前記特徴点設定手段が設定した特徴点を含むテンプレートを基準テンプレートとして設定するテンプレート設定手段と、
前記テンプレート設定手段が設定した基準テンプレート内の画像が、エッジによって分断されているか否かを判別する画像判別手段と、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する変形テンプレート設定手段と、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう照合手段と、
前記照合手段によるテンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する距離算出手段と、
を備えることを特徴とする。
【0011】
上記画像処理装置は、
前記画像から前記エッジを抽出したエッジ抽出画像を生成するエッジ抽出画像生成手段をさらに備えていることが望ましく、この場合、
前記テンプレート設定手段は、該エッジ抽出画像生成手段が生成したエッジ抽出画像上で前記基準テンプレートを設定することが望ましい。
【0012】
上記画像処理装置において、
前記変形テンプレート設定手段は、前記追加する領域を、前記エッジまでの距離および前記特徴点までの距離に基づいて決定することが望ましい。
【0013】
上記画像処理装置において、
前記変形テンプレート設定手段は、前記変形テンプレートを用いた照合での相違度が閾値以上となる場合、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除した縮小テンプレートを設定する縮小テンプレート設定手段をさらに備えていることが望ましく、この場合、
前記照合手段は、前記変形テンプレートを用いたテンプレートマッチングでマッチングがとれた位置に基づいて、前記縮小テンプレートを用いたテンプレートマッチングをおこなうことが望ましい。
【0014】
上記画像処理装置において、
前記照合手段は、前記縮小テンプレートを用いたテンプレートマッチングで複数のマッチングがとれた場合、前記変形テンプレートで照合された位置に最も近い位置でのマッチングを採用することが望ましい。
【0015】
上記画像処理装置において、
前記照合手段は、前記縮小テンプレートのサイズが基準値以下となる場合、当該特徴点を処理対象から除外することが望ましい。
【0016】
上記画像処理装置において、
前記画像取得手段は、光軸位置の異なる2以上の撮像手段を備えていてもよい。
【0017】
上記目的を達成するため、本発明の第2の観点にかかる画像照合方法は、
画像処理装置によって複数の画像間でテンプレートマッチングをおこなうための画像照合方法において、
同一被写体について視差のある2以上の画像を取得する画像取得ステップと、
前記画像取得ステップで取得された画像の一方で特徴点を設定する特徴点設定ステップと、
前記特徴点設定ステップで設定された特徴点を含むテンプレートを基準テンプレートとして設定するテンプレート設定ステップと、
前記テンプレート設定ステップで設定された基準テンプレート内の画像が、エッジによって分断されているか否かを判別する画像判別ステップと、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する変形テンプレート設定ステップと、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう照合ステップと、
前記照合ステップでのテンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する距離算出ステップと、
を含むことを特徴とする。
【0018】
上記目的を達成するため、本発明の第3の観点にかかるプログラムは、
複数の画像間でテンプレートマッチングをおこなう画像処理装置を制御するコンピュータに、
同一被写体について視差のある2以上の画像を取得する機能と、
前記取得された画像の一方で特徴点を設定する機能と、
前記設定された特徴点を含むテンプレートを基準テンプレートとして設定する機能と、
前記設定された基準テンプレート内の画像が、エッジによって分断されているか否かを判別する機能と、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する機能と、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう機能と、
前記テンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する機能と、
を実行させることを特徴とする。
【発明の効果】
【0019】
本発明によれば、より精度の高い距離算出をおこなうことができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施形態にかかるデジタルカメラの構成を示すブロック図である。
【図2】本発明の実施形態にかかるデジタルカメラが複眼カメラ(平行ステレオカメラ)であることを説明するための図であり、(a)はデジタルカメラの外観構成を示し、(b)は平行ステレオの概念を示す。
【図3】図1に示す制御部によって実現される機能を示す機能ブロック図である。
【図4】本発明の実施形態にかかる「撮像時距離算出処理」を説明するためのフローチャートである。
【図5】図4に示す「撮像時距離算出処理」で実行される「テンプレートマッチング処理」を説明するためのフローチャートである。
【図6】図5に示す「テンプレートマッチング処理」で実行される「変形照合処理」を説明するためのフローチャートである。
【図7】図5に示す「テンプレートマッチング処理」で実行される「縮小照合処理」を説明するためのフローチャートである。
【図8】本発明の実施形態で想定する場面を説明するための図であり、(a)は撮影する場面の例を示し、(b)および(c)は撮像された画像の例を示す。
【図9】図5に示した「テンプレートマッチング処理」における動作を説明するための図であり、(a)は撮像画像上で抽出された特徴点の例を示し、(b)はエッジ抽出画像の例を示し、(c)はエッジ抽出画像上にマッピングされた特徴点の例を示す。
【図10】図6に示した「変形照合処理」を説明するための図であり、(a)は基準テンプレートの例を示し、(b)は基準テンプレートがエッジで分断される場合の例を示し、(c)は削除対象領域の例を示し、(d)は基準テンプレートから削除対象領域を削除した例を示す。
【図11】図6に示した「変形照合処理」をさらに説明するための図であり、(a)は追加領域候補点の例を示し、(b)は追加領域の例を示し、(c)は変形テンプレートの例を示す。
【図12】図7に示した「縮小照合処理」における動作を説明するための図であり、(a)は基準テンプレートの例を示し、(b)は削除対象領域の例を示し、(c)は縮小テンプレートの例を示す。
【図13】三角測量の原理を説明するための図である。
【図14】三角測量の原理を説明するための図である。
【発明を実施するための形態】
【0021】
本発明にかかる実施形態を、図面を参照して以下に説明する。本実施形態では、本発明をデジタルスチルカメラ(以下、デジタルカメラ)によって実現した場合を例示する。本実施形態にかかるデジタルカメラ1は、一般的なデジタルスチルカメラが有する機能を備えているものとするが、撮像にかかる構成を2つ備えた、いわゆる複眼カメラとする。
【0022】
図1は、本発明の実施形態にかかるデジタルカメラ1の構成を示すブロック図である。本実施形態にかかるデジタルカメラ1の概略的構成は、図示するように、第1撮像部100A、第2撮像部100B、データ処理部200、インタフェース(I/F)部300、などである。
【0023】
第1撮像部100Aおよび第2撮像部100Bは、デジタルカメラ1の撮像動作をおこなう部分である。上述したように、本実施形態にかかるデジタルカメラ1は複眼カメラであるため、第1撮像部100Aと第2撮像部100Bとを有する構成であるが、第1撮像部100Aと第2撮像部100Bは同一の構成である。以下、第1撮像部100Aについての構成には参照符号の末尾に「A」を付し、第2撮像部100Bについての構成には参照符号の末尾に「B」を付す。
【0024】
図1に示すように、第1撮像部100A(第2撮像部100B)は、光学装置110A(110B)やイメージセンサ部120A(120B)などから構成されている。
【0025】
光学装置110A(110B)は、例えば、レンズ、絞り機構、シャッタ機構、などを含み、撮像にかかる光学的動作をおこなう。すなわち、光学装置110A(110B)の動作により、入射光が集光されるとともに、焦点距離、絞り、シャッタスピードなどといった、画角やピント、露出などにかかる光学的要素の調整がなされる。なお、光学装置110A(110B)に含まれるシャッタ機構はいわゆるメカニカルシャッタであり、イメージセンサの動作のみでシャッタ動作をおこなう場合には、光学装置110A(110B)にシャッタ機構が含まれていなくてもよい。また、光学装置110A(110B)は、後述する制御部210による制御によって動作する。
【0026】
イメージセンサ部120A(120B)は、光学装置110A(110B)によって集光された入射光に応じた電気信号を生成する、例えば、CCD(Charge Coupled Device:電荷結合素子)やCMOS(Complementally Metal Oxide Semiconductor:相補型金属酸化物半導体)などのイメージセンサから構成される。イメージセンサ部120A(120B)は、光電変換をおこなうことで、受光に応じた電気信号を発生してデータ処理部200に出力する。
【0027】
上述したように、第1撮像部100Aと第2撮像部100Bは同一の構成である。より詳細には、レンズの焦点距離fやF値、絞り機構の絞り範囲、イメージセンサのサイズや画素数、配列、画素面積などの各仕様がすべて同一である。
【0028】
このような第1撮像部100Aと第2撮像部100Bを有するデジタルカメラ1は、図2(a)に示すように、光学装置110Aに構成されたレンズと光学装置110Bに構成されたレンズとが、デジタルカメラ1の外面における同一面上に形成された構成とする。ここでは、シャッタボタンが上になる方向でデジタルカメラ1を水平にした場合に、中心位置が水平方向で同一線上となるよう2つのレンズ(受光部)が配置されるものとする。つまり、第1撮像部100Aと第2撮像部100Bとを同時に動作させた場合、同一被写体について2つの画像が撮像されることになるが、各画像における光軸位置が横方向にずれている画像となる。
【0029】
この場合、図2(b)の透視射影モデルに示すような光学的特性となるよう第1撮像部100Aと第2撮像部100Bが配置される。図2(b)に示す透視射影モデルは、X、Y、Zからなる3次元直交座標系に基づくものであり、第1撮像部100Aについてのこの座標系を以下「カメラ座標」と呼ぶ。図2(b)では、第1撮像部100Aの光学中心を原点としたカメラ座標を示している。
【0030】
カメラ座標においては、Z軸をカメラの光学方向に一致する方向とし、X軸とY軸はそれぞれ画像の横方向と縦方向に平行する。ここで、光軸と画像座標面の交点を原点(すなわち、光学中心)とし、イメージセンサの画素間隔を換算してカメラ座標と長さの単位を合わせた場合、第1撮像部100Aについての画像座標面で被写体A1を示す画像座標を(u1, v1)とし、第2撮像部100Bについての画像座標面では(u'1, v'1)とする。
【0031】
第1撮像部100Aと第2撮像部100Bは、それぞれの光軸が平行(すなわち、輻輳角が0)になり、かつ、第1撮像部100Aについての画像座標u軸と第2撮像部100Bについての画像座標u'軸が同一線上で同じ方向となるよう配置される(すなわち、エピポーラ線が一致)。また、上述したように、第1撮像部100Aおよび第2撮像部100Bの焦点距離fや画素間隔は同じであり、光軸と画像座標面とが垂直に交わっている。このような構成を「平行ステレオ」と呼び、デジタルカメラ1の第1撮像部100Aと第2撮像部100Bは平行ステレオの構成となっている。
【0032】
図1に戻り、デジタルカメラ1の構成の説明を続ける。
【0033】
データ処理部200は、第1撮像部100Aおよび第2撮像部100Bによる撮像動作によって生成された電気信号を処理し、撮像画像を示すデジタルデータを生成するとともに、撮像画像に対する画像処理などをおこなう。図1に示すように、データ処理部200は、制御部210、画像処理部220、画像メモリ230、画像出力部240、記憶部250、外部記憶部260、などから構成される。
【0034】
制御部210は、例えば、CPU(Central Processing Unit:中央演算処理装置)などのプロセッサや、RAM(Random Access Memory)などの主記憶装置(メモリ)、などから構成され、後述する記憶部250などに格納されているプログラムを実行することで、デジタルカメラ1の各部を制御する。また、本実施形態では、所定のプログラムを実行することで、後述する各処理にかかる機能が制御部210によって実現される。
【0035】
画像処理部220は、例えば、ADC(Analog-Digital Converter:アナログ−デジタル変換器)、バッファメモリ、画像処理用のプロセッサ(いわゆる、画像処理エンジン)などから構成され、イメージセンサ部120Aおよび120Bによって生成された電気信号に基づいて、撮像画像を示すデジタルデータを生成する。
【0036】
すなわち、イメージセンサ部120A(120B)から出力されたアナログ電気信号をADCがデジタル信号に変換して順次バッファメモリに格納すると、バッファされたデジタルデータに対し、画像処理エンジンがいわゆる現像処理などをおこなうことで、画質の調整やデータ圧縮などをおこなう。
【0037】
画像メモリ230は、例えば、RAMやフラッシュメモリなどの記憶装置から構成され、画像処理部220によって生成された撮像画像データや、制御部210によって処理される画像データなどを一時的に格納する。
【0038】
画像出力部240は、例えば、RGB信号の生成回路などから構成され、画像メモリ230に展開された画像データをRGB信号などに変換して表示画面(後述する表示部310など)に出力する。
【0039】
記憶部250は、例えば、ROM(Read Only Memory)やフラッシュメモリなどの記憶装置から構成され、デジタルカメラ1の動作に必要なプログラムやデータなどを格納する。本実施形態では、制御部210などが実行する動作プログラムや処理に必要となるパラメータや演算式などが記憶部250に格納されているものとする。
【0040】
外部記憶部260は、例えば、メモリカードなどといった、デジタルカメラ1に着脱可能な記憶装置から構成され、デジタルカメラ1で撮像した画像データなどを格納する。
【0041】
インタフェース部300は、デジタルカメラ1とその使用者あるいは外部装置とのインタフェースにかかる構成であり、図1に示すように、表示部310、外部インタフェース(I/F)部320、操作部330、などから構成される。
【0042】
表示部310は、例えば、液晶表示装置などから構成され、デジタルカメラ1を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像、などを表示出力する。本実施形態では、画像出力部240からの画像信号(RGB信号)などに基づいて撮像画像等の表示出力がおこなわれる。
【0043】
外部インタフェース部320は、例えば、USB(Universal Serial Bus)コネクタやビデオ出力端子などから構成され、外部のコンピュータ装置への画像データの出力や、外部のモニタ装置への撮像画像の表示出力などをおこなう。
【0044】
操作部330は、デジタルカメラ1の外面上に構成されている各種ボタンなどによって構成され、デジタルカメラ1の使用者による操作に応じた入力信号を生成して制御部210に入力する。操作部330を構成するボタンとして、例えば、シャッタ動作を指示するためのシャッタボタンや、デジタルカメラ1のもつ動作モードを指定するためのモードボタン、各種設定をおこなうための十字キーや機能ボタン、などが含まれているものとする。
【0045】
ここで、本実施形態では、記憶部250に格納されている動作プログラムを制御部210が実行することで、後述する各処理が実現されるが、この場合に制御部210によって実現される機能を、図3を参照して説明する。
【0046】
図3は、制御部210によって実現される機能を示した機能ブロック図である。ここでは、複眼カメラによって撮像された画像を用いて、画像内に写された各部分までの撮影距離を算出する動作を実現するために必要な機能構成を示す。この場合、図示するように、制御部210は、動作モード処理部211、撮像制御部212、特徴点抽出部213、テンプレート設定部214、距離算出部215、などとして機能する。
【0047】
動作モード処理部211は、表示部310との協働により、デジタルカメラ1が有する各種動作モードをデジタルカメラ1のユーザに指定させるために必要な画面表示や指定された動作モード毎の設定画面表示などをおこなう他、操作部330との協働により、ユーザが指定した動作モードを認識し、当該動作モードの実行に必要なプログラムや演算式などを記憶部250から読み出し、制御部210の主記憶装置(メモリ)にロードする。
【0048】
本実施形態では、デジタルカメラ1で撮像した撮像画像上の特徴点毎に撮影距離を算出する動作モード(距離算出モード)がユーザによって指定されるものとし、以下に説明する制御部210の各機能構成は、距離算出モードの指定に応じて動作モード処理部211がロードしたプログラムを実行することで実現される機能構成である。
【0049】
撮像制御部212は、第1撮像部100Aおよび第2撮像部100Bを制御することでデジタルカメラ1での撮像動作を実行する。本実施形態にかかる撮影距離算出機能は、平行ステレオ構成となっている第1撮像部100Aと第2撮像部100Bから得られた、視差のある2つの画像から撮影距離を算出するので、本実施形態にかかる撮像制御部212は、第1撮像部100Aと第2撮像部100Bで同時に撮像動作をおこなうよう制御する。これにより、同一の被写体について、光軸位置の異なる2つの撮像画像が取得される。
【0050】
特徴点抽出部213は、撮像制御部212の制御によって得られた撮像画像上で、例えば、ハリスのコーナー検出関数などにより特徴点の抽出をおこなう。また、画像処理部220を制御することで、撮像画像上でのエッジ抽出動作をおこなう。
【0051】
テンプレート設定部214は、取得される2つの撮像画像間でテンプレートマッチングをおこなう際のテンプレートの設定をおこなう。本実施形態では、特徴点抽出部213によって抽出された特徴点を含むテンプレートの設定をおこなうとともに、設定したテンプレート内にエッジ部分が含まれる際には、テンプレートの変形やサイズの変更をおこなう。
【0052】
距離算出部215は、テンプレート設定部214によって設定されたテンプレートを用いて、2つの撮像画像間でテンプレートマッチングをおこない、特徴点毎に撮影距離を算出する。本実施形態では、撮像によって得られる2つの画像のうちの一方を最終的な出力対象となる「対象画像」とし、他方をテンプレートマッチングの際に参照される「参照画像」とする。以下、第1撮像部100Aによる撮像画像が「対象画像」、第2撮像部100Bによる撮像画像が「参照画像」であるものとする。
【0053】
この場合において、特徴点抽出部213は、対象画像上で特徴点を抽出し、テンプレート設定部214は、特徴点が抽出された対象画像上でテンプレートを設定する。距離算出部215は、対象画像上に設定されたテンプレートを参照画像上で走査することでテンプレートマッチングをおこない、マッチングがとれた画像の相違度(視差)から、三角測量の原理によって撮影距離を算出する。ここで、距離算出部215は、例えば、差の2乗和を評価式とするSSD(Sum of Squared Difference)を用いたテンプレートマッチングをおこなうものとする。
【0054】
距離算出部215は、算出した特徴点毎の撮影距離を示す情報(以下、「距離情報」とする)を生成し、対象画像とともに出力する。この場合の出力先は、例えば、表示部310、記憶部250または外部記憶部260などとすることができる他、外部インタフェース部320を介した外部装置などとすることができる。
【0055】
以上が制御部210によって実現される機能である。なお、本実施形態では、制御部210がプログラムを実行することによる論理的処理で上述した各機能が実現されるものとするが、これらの機能を、例えば、ASIC(Application Specific Integrated Circuit:特定用途向け集積回路)などのハードウェアによって構成してもよい。この場合、図3に示した機能のうち、画像処理にかかる機能については、画像処理部220によって実現されてもよい。
【0056】
以上説明したデジタルカメラ1の構成は、本発明を実現するために必要な構成であり、デジタルカメラとしての基本機能や種々の付加機能に用いられる構成は必要に応じて備えられているものとする。
【0057】
このような構成のデジタルカメラ1による動作を以下に説明する。ここでは、デジタルカメラ1の動作モードのうち、上述した「距離算出モード」が選択された場合にデジタルカメラ1が実行する「撮像時距離算出処理」を、図4に示すフローチャートを参照して説明する。この「撮像時距離算出処理」は、デジタルカメラ1のユーザが操作部330を操作することで、距離算出モードが選択されたことを契機に開始される。この場合、動作モード処理部211が、撮影距離算出動作にかかるプログラムなどを記憶部250からロードすることで、図3に示した各機能構成により以下の処理が実行される。
【0058】
処理が開始されると、撮像制御部212は、シャッタボタン(操作部330)が操作されたことに応じて、第1撮像部100Aおよび第2撮像部100Bを制御し、第1撮像部100Aおよび第2撮像部100Bで同時に撮像動作(複眼同時撮像)をおこなわせる(ステップS101:Yes、ステップS102)。
【0059】
ここで、本実施形態では、図8(a)に示すような場面をデジタルカメラ1で撮影する場合を想定する。ここでは、図8(a)に示すように、撮影画角内に被写体Aと被写体Bが含まれているものとする。この場合において、デジタルカメラ1から各被写体までの距離は被写体Aの方が近くなっている。すなわち、被写体Aが主体的な被写体であり、被写体Aの背景として被写体Bが写り込むような場面を想定する。
【0060】
このような場面で複眼同時撮像をおこなった場合の撮像画像の例を、図8(b)および図8(c)に示す。本実施形態では、被写体に向かって左側となるレンズが第2撮像部100Bに構成され、被写体に向かって右側となるレンズが第1撮像部100Aに構成されているものとする。この場合、図8(b)は、第2撮像部100Bによって撮像された画像を示し、図8(c)は、第1撮像部100Aによって撮像された画像を示す。
【0061】
本実施形態では、第1撮像部100Aによって撮像された画像を最終的な撮像画像として用いるものとし、以下「対象画像10A」とする。ここで、各レンズの光軸が水平方向に異なるよう配置されているので、第2撮像部100Bで撮像された画像にも対象画像10Aと同じ被写体が写っているが、その横方向の位置は異なっている。このような、第2撮像部100Bで撮像された画像は、視差に基づいた撮影距離算出時のテンプレートマッチングで参照される画像であり、以下「参照画像10B」とする。ここで、本実施形態では、図8(c)に示すように、対象画像10Aにおいて、撮影距離の異なる被写体Aと被写体Bとが重なって写っているものとする。
【0062】
撮像制御部212が第1撮像部100Aおよび第2撮像部100Bを制御することで、対象画像10Aおよび参照画像10Bが得られると、各撮像画像は画像処理部220で所定の画像処理がなされ、画像メモリ230に展開される。このとき、画像処理部220は、対象画像10Aおよび参照画像10Bが画像メモリ230に展開された旨、および、各画像を特定する情報(ファイル名やアドレスなど)を特徴点抽出部213に通知する。
【0063】
特徴点抽出部213は、画像処理部220からの通知に応じて、取得された対象画像10Aおよび参照画像10Bを用いたテンプレートマッチングをおこなうための「テンプレートマッチング処理」を実行する(ステップS200)。この「テンプレートマッチング処理」を、図5に示すフローチャートを参照して説明する。
【0064】
処理が開始されると、特徴点抽出部213は、画像メモリ230に展開されている対象画像10Aにおいて特徴点の抽出をおこなう(ステップS201)。ここでは、ハリスのコーナー検出関数などのような既知の特徴点抽出手法を用いて、例えば、輝度情報に基づいた特徴点の抽出をおこなう。この場合、図9(a)に示すように、対象画像10A上に複数の特徴点が抽出される。なお、図9(a)は、理解を容易にするため、抽出された特徴点を誇大表示しており、実際には、対象画像10Aを構成している画素単位で特徴点が抽出される。
【0065】
このようにして複数の特徴点を抽出すると、特徴点抽出部213は、抽出された各特徴点に1〜mの一意の番号を割り当てることでナンバリングする(ステップS202)。
【0066】
特徴点をナンバリングすると、特徴点抽出部213は、画像処理部220に対し、対象画像10Aについてのエッジ抽出画像を生成するよう指示する。特徴点抽出部213からの指示に応じて、画像処理部220は、画像メモリ230に展開されている対象画像10Aを複製し、複製した画像上で、既知のエッジ抽出手法を適用することで、対象画像10Aのエッジが抽出されたエッジ抽出画像を生成する(ステップS203)。ここでは、エッジの連結性に優れるケニー法などのエッジ抽出手法により、輝度情報に基づいたエッジ抽出がおこなわれるものとする。
【0067】
この場合のエッジ抽出画像の例を図9(b)に示す。ここでは、図示するような、対象画像10Aにおける被写体の輪郭線が強調された画像としてエッジ抽出画像(以下、「エッジ抽出画像11A」とする)が生成される。画像処理部220は、このようなエッジ抽出画像11Aを生成すると、画像メモリ230に展開し、その旨を特徴点抽出部213に通知する。
【0068】
特徴点抽出部213は、画像処理部220からの通知に応じて、ステップS202でナンバリングした特徴点を指定するポインタPに初期値「1」を設定することで、ポインタPの初期化をおこなう(ステップS204)。
【0069】
特徴点抽出部213は、ポインタPで指定した特徴点の座標情報を特定し、テンプレート設定部214に通知する。テンプレート設定部214は、特徴点抽出部213からの通知に基づき、テンプレートマッチングで用いる基準テンプレートBTを、対象画像10A上で指定されたP番目の特徴点に設定する(ステップS205)。
【0070】
ここで、基準テンプレートBTの例を図10(a)に示す。図示するように、基準テンプレートBTは、例えば、k×k(kは奇数(例えば「9」))のドット(画素)によって構成された正方形のテンプレートであり、指定された特徴点の位置が中心となるよう設定される。
【0071】
テンプレート設定部214は、対象画像10A上で基準テンプレートBTを設定すると、当該基準テンプレートBTの座標情報に基づいて、エッジ抽出画像11A上の同じ位置に基準テンプレートBTをマッピングする(ステップS206)。この場合、現在対象となっている対象画像10A上の特徴点に対応するエッジ抽出画像11A上の位置にも特徴点を設定し、その特徴点が中心となる基準テンプレートBTをエッジ抽出画像11A上で設定することで、対象画像10Aで設定した基準テンプレートBTと同じ基準テンプレートBTがエッジ抽出画像11A上にマッピングされる。
【0072】
ここで、エッジ抽出画像11A上に特徴点を設定した場合の例を図9(c)に示す。本処理におけるテンプレートマッチングでは、対象画像10Aで抽出した特徴点のそれぞれについてテンプレートを設定しておこなうが、ここでは、図9(c)に示した2つの特徴点をサンプルとし、以下の動作を説明する。図示するように、サンプル1は、被写体Aと被写体Bとが近接している位置で抽出された特徴点であり、サンプル2は、被写体Aにおいてエッジ部分とは近接しない位置で抽出された特徴点である。
【0073】
現在対象となっている特徴点について、エッジ抽出画像11A上で基準テンプレートBTを設定すると、テンプレート設定部214は、当該基準テンプレートBT内がエッジによって分断されているか否かを判別する(ステップS207)。
【0074】
ここで、「エッジ」とは、エッジ抽出画像11Aによって強調された被写体の輪郭などを示す画像部分である。上述したサンプル1の特徴点に設定された基準テンプレートBTの場合、図10(b)に示すように、被写体Aの輪郭を示すエッジが基準テンプレートBT内に含まれることになる。
【0075】
本実施形態では、このように基準テンプレートBT内にエッジが含まれている場合、当該基準テンプレートBTがエッジによって分断されているものとする。図10(b)に示すように、基準テンプレートBT内に1つのエッジが含まれている場合であれば、基準テンプレートBTが2つの領域に分断されていることになる。よって、ステップS207では、エッジ抽出画像11A上に設定した基準テンプレートBTがこのようにエッジによって分断されているか否かが判別される。
【0076】
一方、図9(c)に示したサンプル2のような特徴点で基準テンプレートBTが設定された場合、被写体の輪郭などが近くにないため、基準テンプレートBTにエッジが含まれない。このような場合(ステップS207:No)、テンプレート設定部214は、対象画像10Aで設定した基準テンプレートBTを用いたテンプレートマッチングの実行を距離算出部215に指示することで、基準テンプレートBTを用いたテンプレートマッチングがおこなわれる(ステップS208)。
【0077】
この場合、距離算出部215は、基準テンプレートBTが設定された対象画像10Aとは光軸位置の異なる参照画像10B上で、基準テンプレートBTを走査する。ここでは、SSDなどによるテンプレートマッチングにより、基準テンプレートBT内の画素成分と類似する画像領域を参照画像10B上で探索する。ここで、SSDによるテンプレートマッチングをおこなった場合、完全に一致する画像があれば、値が0になる。この値は画像間の相違が大きい程大きくなるので、テンプレートマッチングによって得られる値は、テンプレートとの相違度を示すことになる。
【0078】
このような方法により、最も小さい相違度となる参照画像10B上の位置が、対象画像10Aで設定された基準テンプレートBTとマッチング(照合)した位置となる。上述したように、対象画像10Aと参照画像10Bとでは、横方向に光軸位置が異なっているので、対象画像10A上の基準テンプレートBTの位置と、参照画像10B上でマッチングした位置とでは、横方向に座標がずれていることになる。このずれが、当該特徴点についての視差であり、当該特徴点に対応する被写体位置までの撮影距離の算出(詳細後述)に用いられる。
【0079】
一方、エッジ抽出画像11A上で設定した基準テンプレートBTがエッジによって分断されている場合、当該特徴点の位置は、異なる被写体が隣接して写っている場所であると考えられる。この場合の被写体が、例えば、図8(a)に示した被写体Aと被写体Bのように、デジタルカメラ1からの距離が異なっている場合、図10(b)に示すようなエッジを跨いで設定された基準テンプレートBTを使ったテンプレートマッチングでは、オクルージョンの影響を受け、正確な撮影距離の算出ができない場合がある。
【0080】
この問題は、より近い被写体についての画素成分と、より遠い被写体についての画素成分の双方が当該基準テンプレートBTに含まれていることが要因と考えられるので、エッジ抽出画像11A上に設定した基準テンプレートBTがエッジにより分断されている場合、エッジを跨がないテンプレートを用いたテンプレートマッチングをおこなうことで、特徴点についての正確な距離算出をおこなうことができる。
【0081】
よって、エッジ抽出画像11A上で設定した基準テンプレートBTがエッジによって分断されている場合(ステップS207:Yes)、テンプレート設定部214は、基準テンプレートBTを変形したテンプレートによってテンプレートマッチング(テンプレート照合)をおこなうための「変形照合処理」を実行する(ステップS300)。この「変形照合処理」を、図6に示すフローチャートを参照して説明する。
【0082】
ここで、エッジによって分断された基準テンプレートBTは、図10(c)に示すように、「特徴点を含んだ分断領域」(以下、「分断領域R1」とする)と「特徴点を含んでいない分断領域」(以下、「分断領域R2」とする)の2種類に分けられる。本処理においては、特徴点についての撮影距離を算出するためにテンプレートマッチングをおこなっているので、特徴点を含んでいる分断領域R1をテンプレートとして用いる必要がある。
【0083】
よって、処理が開始されると、テンプレート設定部214は、基準テンプレートBTについての分断領域のうち、特徴点を含んでいない分断領域R2を削除対象領域に指定し(ステップS301)、指定した削除対象領域を構成しているドット(画素)の数(ドット数n)を計数する(ステップS302)。
【0084】
そして、テンプレート設定部214は、図10(d)に示すように、ステップS301で指定した削除対象領域(=分断領域R2)を基準テンプレートBTから削除する(ステップS303)。
【0085】
これにより、対象とする特徴点を含む分断領域R1のみから構成されるテンプレートとなるが、削除した分基準テンプレートBTより面積が小さくなってしまう。テンプレートの面積が小さくなると、すなわち、テンプレートのドットの数が少なくなると、画像間の相違度の算出に要する処理時間や処理負荷が減少する反面、マッチング探索の精度が低下してしまう。よって、基準テンプレートBTと同じ面積のテンプレートとすることで、マッチング探査における精度の向上を図る。
【0086】
本実施形態では、分断領域R1に、削除した分断領域R2と同じ面積の領域を追加することで、基準テンプレートBTと同じ面積となるテンプレートを設定する。このため、テンプレート設定部214は、分断領域R1に隣接し、かつ、エッジを越えない位置に、図11(a)に示すような追加領域候補点を設定する(ステップS304)。ここでは、例えば、図11(a)に示すように、分断領域R1の外周に沿うように追加領域候補点が設定される。この場合、削除された分断領域R2を構成していたドット数nよりも多い数の追加領域候補点が設定されるものとする。
【0087】
このように設定された追加領域候補点の数を、分断領域R2を構成していたドット数nと同じ数となるよう絞り込むことで、削除された領域と同じ面積の領域が、分断領域R1に追加されることになる。このときの絞り込みは、例えば、各追加領域候補点から特徴点およびエッジまでの距離に基づいておこなう。よって、テンプレート設定部214は、設定した追加領域候補点のそれぞれについて、特徴点およびエッジまでの距離を算出する(ステップS305)。
【0088】
ここで、特徴点までの距離をDA、エッジまでの距離をDBとした場合、テンプレート設定部214は、数1に示すような評価関数を用い、DAおよびDBに基づいた各追加領域候補点の評価値Qを算出する(ステップS306)。なお、数1におけるαは調整係数である。
【0089】
(数1)
Q=DA+α×DB (α<1)
【0090】
テンプレート設定部214は、追加領域候補点のそれぞれについて評価値Qを求めると、評価値Qの小さい順に追加領域候補点をn個に絞り込む(ステップS307)。ここで、評価値Qは、距離DAおよび距離DBに基づいているので、評価値Qの小さい順に絞り込むことで、特徴点およびエッジまでの距離がより近い追加領域候補点に絞り込まれることになる。
【0091】
追加領域候補点をn個に絞り込むと、テンプレート設定部214は、絞り込んだ追加領域候補点を分断領域R1に追加することで、分断領域R1からエッジを越えずに基準テンプレートBTと同面積となるテンプレート(以下、「変形テンプレートTT1」とする)を設定する(ステップS308)。
【0092】
つまり、図11(b)に示すように、n個に絞り込んだ追加領域候補点を追加領域とすることで、削除された分断領域R2と同じ面積の領域が分断領域R1に追加され、分断領域R1と追加領域によって構成される領域が、図11(c)に示すような変形テンプレートTT1となる。
【0093】
このような変形テンプレートTT1を設定すると、テンプレート設定部214は、当該変形テンプレートTT1を用いたテンプレートマッチングをおこなうよう距離算出部215に指示する。この場合、距離算出部215は、エッジ抽出画像11A上で設定された変形テンプレートTT1を対象画像10A上にマッピングし、対象画像10A上での変形テンプレートTT1を参照画像10B上で走査することでテンプレートマッチングをおこなう(ステップS309)。この場合も、上述した基準テンプレートBTを用いたテンプレートマッチングと同様、SSDによって求められる数値に基づいた相違度が最も小さい位置がマッチング(照合)のとれた位置とされる。
【0094】
このようにして、基準テンプレートBTがエッジで分断されている場合、基準テンプレートBTと同面積となる変形テンプレートTT1を用いたテンプレートマッチングがおこなわれ、「テンプレートマッチング処理」(図5)のフローに戻る。
【0095】
「テンプレートマッチング処理」のフローでは、「変形照合処理」のステップS309でおこなわれたマッチングの相違度が閾値以上であるか否かが距離算出部215によって判別される(ステップS209)。
【0096】
ここで、変形テンプレートTT1を用いたマッチングの相違度が高い場合、変形テンプレートTT1では照合の位置精度が低いことになるので、より位置精度の高いテンプレートマッチングをおこなうことが望ましい。よって、相違度が閾値以上である場合(ステップS209:Yes)、距離算出部215は、その旨をテンプレート設定部214に通知する。この場合、テンプレート設定部214は、基準テンプレートBTよりも小さいテンプレートを使ったテンプレートマッチングをおこなうための「縮小照合処理」を実行する(ステップS400)。この「縮小照合処理」を、図7に示すフローチャートを参照して説明する。
【0097】
処理が開始されると、テンプレート設定部214は、エッジ抽出画像11A上で現在対象となっている特徴点についての基準テンプレートBTを再設定する(ステップS401)。すなわち、当該特徴点を中心とした図12(a)に示すような基準テンプレートBTをエッジ抽出画像11A上に設定する。
【0098】
ここで、図9(c)に示すサンプル1の特徴点が対象となっている場合、図12(b)に示すように、基準テンプレートBTがエッジで分断されるため、テンプレート設定部214は、分断領域R2を削除対象領域に指定し(ステップS402)、基準テンプレートBTから削除対象領域を削除することで、図12(c)に示すような、基準テンプレートBTよりも面積の小さいテンプレート(以下、「縮小テンプレートTT2」とする)を設定する(ステップS403)。
【0099】
縮小テンプレートTT2を設定すると、テンプレート設定部214は、当該縮小テンプレートTT2のサイズが基準のサイズを示す基準値以上となっているか否かを判別する(ステップS404)。ここで、テンプレートの大きさが小さいほど特徴点に類似する他の照合位置でもマッチングする可能性が高くなる反面、テンプレートの大きさを小さくすることで被写体境界付近での特徴点に対応する照合位置にマッチングすることも可能になる。本処理は、前段の変形テンプレートTT1による照合では位置精度が低かったため、より位置精度を高くするためテンプレートのサイズを小さくしているが、必要以上に小さいと、特徴点に類似する他の照合位置でもマッチングされることになるので一定の大きさ以上のサイズとなる縮小テンプレートTT2のみを使用する。
【0100】
設定した縮小テンプレートTT2のサイズが基準値以上である場合(ステップS404:Yes)、テンプレート設定部214は、当該縮小テンプレートTT2を用いたテンプレートマッチングの実行を距離算出部215に指示する。この場合、距離算出部215は、エッジ抽出画像11A上で設定された縮小テンプレートTT2を対象画像10A上にマッピングしてテンプレートとし、当該テンプレートを参照画像10B上で走査することでテンプレートマッチングをおこなう(ステップS405)。このとき、距離算出部215は、先におこなった「変形照合処理」(図6)でマッチングがとれた位置の周辺で、縮小テンプレートTT2を用いた探索をおこなう。
【0101】
ここで、縮小テンプレートTT2は基準テンプレートBTよりサイズの小さいテンプレートであるため、複数箇所でマッチング(照合)がとれる可能性がある。すなわち、相違度の低い箇所(マッチングのピーク)が複数存在する可能性が高い。このように、複数箇所でマッチングがとれた場合(ステップS406:Yes)、距離算出部215は、直前におこなった変形テンプレートTT1を用いたテンプレートマッチングにおいて相違度が高いながらもマッチングがとれた位置を特定し(ステップS407)、この位置に最も近い位置でのマッチングを採用する(ステップS408)。
【0102】
このようにして、変形テンプレートTT1を用いたテンプレートマッチングでの相違度が閾値以上となる場合、基準テンプレートBTより小さいサイズの縮小テンプレートTT2を用いたテンプレートマッチングをおこない、「テンプレートマッチング処理」(図5)のフローに戻る。
【0103】
なお、設定した縮小テンプレートTT2のサイズが基準値に満たない場合(ステップS404:No)、テンプレート設定部214は、当該縮小テンプレートTT2を用いたテンプレートマッチングの実行を距離算出部215に指示せず、現在処理しているP番目の特徴点を対象から除外して(ステップS409)、「テンプレートマッチング処理」(図5)のフローに戻る。これは、必要なサイズに満たないテンプレートを用いたマッチングをおこなってもマッチング探索の精度が低下してしまうため撮影距離算出の精度が不十分となるためである。
【0104】
「テンプレートマッチング処理」においては、以上説明したように、状況に応じて3種類のテンプレートを使い分けたマッチング動作がおこなわれる。すなわち、設定した基準テンプレートBTがエッジで分断されていなければ、基準テンプレートBTを用いたテンプレートマッチングがおこなわれ、基準テンプレートBTがエッジで分断されている場合には、変形テンプレートTT1を用いたテンプレートマッチングがおこなわれ、変形テンプレートTT1を用いたテンプレートマッチングによる相違度が閾値以上となる場合には、縮小テンプレートTT2を用いたテンプレートマッチングがおこなわれる。
【0105】
いずれかの方法によってP番目の特徴点についてのテンプレートマッチングがおこなわれると、距離算出部215は、マッチング結果に基づいて、当該特徴点における撮影距離の算出をおこなう(ステップS210)。この場合の距離算出は、三角測量の原理を用いておこなわれる。三角測量の原理を用いた距離算出の例を、図13および図14を参照して説明する。
【0106】
図13は、テンプレートマッチングをおこなった際の対象画像10Aおよび参照画像10Bの例を示しており、対象画像10A上の特徴点(u1, v1)についてのテンプレートマッチングにより参照画像10B上でマッチングがとれた位置が(u'1, v'1)であることを示している。本実施形態にかかるデジタルカメラ1は、第1撮像部100Aと第2撮像部100Bの光軸が水平方向に異なる平行ステレオカメラであるため、対象画像10Aと参照画像10Bとの間には、マッチングがとれた位置についての視差が生じている。
【0107】
ここで、テンプレートマッチングによってマッチングのとれた(照合された)特徴点に対応する実際の位置を、図2(b)に示したカメラ座標でA1(X1、Y1、Z1)とした場合、A1の座標(X1、Y1、Z1)はそれぞれ、以下の数2〜数4で表される。上述したように、(u1, v1)は、第1撮像部100Aについての画像座標面(すなわち、対象画像)への射影点、(u'1, v'1)は、第2撮像部100Bについての画像座標面(すなわち、参照画像)への射影点を示しており、また、bは第1撮像部100Aおよび第2撮像部100Bの光軸間距離(基線間距離)を示す。
【0108】
(数2)
X1=(b×(u1))/((u'1)−u1)
【0109】
(数3)
Y1=(b×(v1))/((u'1)−u1)
【0110】
(数4)
Z1=(b×f)/((u'1)−u1)
【0111】
ここで、デジタルカメラ1からA1までの距離は、A1の座標Z1によって示されるので、距離算出部215は、上記数4を演算することで、特徴点に対応する実際の位置からデジタルカメラ1までの距離、すなわち撮影距離を算出することができる。
【0112】
この数4は、三角測量の原理によって導かれるものである。三角測量の原理を、図14を参照して説明する。
【0113】
図14は、図2(b)に示した平行ステレオ構成におけるカメラ座標を上から見た模式図である。第1撮像部100Aによる視点がカメラ座標となっているので、被写体位置A1のX軸方向の座標はカメラ座標上のX1で与えられ、この数値は図14に示した数式(1)で求められる。
【0114】
一方、第2撮像部100Bからの視点におけるA1のX軸方向の座標は、光軸間距離bとカメラ座標のX1との和であり、図14に示した数式(2)で求められ、これらの数式(1)と数式(2)から、上記数4が導き出される。
【0115】
このようにして、P番目の特徴点についての撮影距離を算出すると、距離算出部215は、ポインタPを+1することで次の特徴点を指定する(ステップS211)。ここで、次の特徴点が存在する場合(ステップS212:No)は、当該特徴点について、ステップS205以降の処理がおこなわれる。
【0116】
なお、「縮小照合処理」において、縮小テンプレートTT2のサイズが基準値に満たないために当該特徴点が除外された場合(ステップS404:No、ステップS409)には、ステップS210での距離算出をおこなわずに、次の特徴点が指定される(ステップS211)。
【0117】
以降、各特徴点について、上述した各処理が順次おこなわれることで撮影距離の算出がなされ、すべての特徴点について処理が終了すると(ステップS212:Yes)、「撮影時距離算出処理」(図4)のフローに戻る。
【0118】
「撮影時距離算出処理」において、距離算出部215は、「テンプレートマッチング処理」で算出した、各特徴点における撮影距離を示す距離情報を生成し、出力する(ステップS103)。
【0119】
ここでの出力は、例えば、表示部310への表示出力の他、撮像画像(対象画像10A)とともに記憶部250もしくは外部記憶部260へ出力することによる保存、あるいは、外部インタフェース部320を介した外部装置への出力、などとすることができる。このような出力方法の選択は、例えば、ユーザが操作部330を操作することによっておこなわれるものとする。このような選択動作にかかる表示部310への出力信号や操作部330からの入力信号は、動作モード処理部211を介して距離算出部215に入出力される。
【0120】
ここで、外部インタフェース部320を介して出力される外部装置は、例えば、距離情報に基づいて3Dモデリングをおこなう画像処理装置とすることができる。すなわち、実写画像に基づいて3Dコンピュータグラフィクスを生成する場合などにおいて、本実施形態にかかるデジタルカメラ1から、撮像画像と各特徴点の距離情報が入力されることで、3Dモデリングをおこなうことができる。
【0121】
デジタルカメラ1において距離情報の出力が完了すると、所定の終了イベント(例えば、距離算出モードの解除や、デジタルカメラ1の電源オフなど)が発生するまで上述した各処理をおこない(ステップS104:No)、終了イベントの発生により処理を終了する(ステップS104:Yes)。
【0122】
以上説明したように、本発明を上記実施形態の如く適用することにより、より高い精度で距離算出をおこなうことができる。
【0123】
この場合において、通常のテンプレート(基準テンプレート)内にエッジが検出された場合に、基準テンプレートと同じサイズで、エッジを越えないように変形させたテンプレートを用いるので、距離の異なる被写体の境界付近でテンプレートマッチングをおこなう場合でもテンプレートサイズを縮小することがない。これにより、オクルージョンの発生する画像であっても、より精度の高い距離算出をおこなうことができる。
【0124】
ここで、一方の画像からエッジを抽出したエッジ抽出画像に基準テンプレートを設定することで、テンプレートマッチングをおこなう箇所が被写体境界部分であるか否か容易に判別することができる。これにより、被写体境界部分である場合にのみ、テンプレートの変形をおこなうことができ、必要以上に処理負荷を増大させることなく、距離算出精度の向上を図ることができる。
【0125】
また、テンプレートを変形する際は、特徴点とエッジの双方により近い領域を追加するので、特徴点付近でのマッチング精度の高いテンプレートとすることができる。
【0126】
ここで、変形テンプレートでのマッチングにおける相違度が閾値以上となる場合にのみ、サイズを縮小したテンプレートを用いたテンプレートマッチングをおこなうので、距離算出精度の低下をもたらすテンプレートサイズの縮小を必要最小限にとどめることができる。
【0127】
また、縮小テンプレートを用いたテンプレートマッチングは、変形テンプレートでマッチングがとれた位置の周辺でおこなうので、テンプレートサイズが小さくなることで増大する探索時間を抑えることができる。
【0128】
なお、サイズの小さいテンプレートを用いたテンプレートマッチングでは、照合のピークが複数現れることがあるが、このような場合に、変形テンプレートでの照合位置に最も近い照合を採用することで、より正確なマッチングを効率的におこなうことができる。
【0129】
さらに、設定された縮小テンプレートのサイズが、例えば、必要な距離算出精度を担保できないほど小さいか否かを基準値との比較により判別し、基準値以下のサイズとなる場合には、マッチング対象としている特徴点を除外するので、一定水準の距離算出精度を確保することができる。
【0130】
また、本発明を、例えば、平行ステレオ構成の複眼カメラに適用することで、精度の高い距離算出を撮像時におこなうことができる。
【0131】
上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【0132】
例えば、上記実施形態では、撮像画像からエッジ抽出したエッジ抽出画像を生成することで、基準テンプレート内がエッジで分断されているか否かを判別するようにしたが、被写体境界であることが判別できるのであれば、判別方法はこれに限られず任意である。例えば、Shift Mean法などによるセグメンテーションをおこない、セグメント境界から被写体境界を判別するようにしてもよい。
【0133】
また、本発明を上記実施形態で例示したデジタルカメラ1のような撮像装置で実現する場合においては、本発明にかかる構成や機能を予め備えた撮像装置として提供できる他、制御部210の各機能と同様の機能を実現するプログラムを適用することにより、既存の撮像装置を本発明にかかる撮像装置をして機能させることもできる。この場合、平行ステレオの構成となっている撮像装置であることが望ましいが、撮像手段が単一の撮像装置であっても、同一の被写体について光軸位置の異なる画像を取得することができれば、本発明の適用により、テンプレートマッチングによる距離算出をおこなうことができる。
【0134】
例えば、上記実施形態では、平行ステレオの撮像装置として本発明を実現した場合を例示したが、撮像機能のない装置(例えば、パーソナルコンピュータなど)として本発明の画像処理装置を実現してもよい。
【0135】
すなわち、上記実施形態では、本発明を平行ステレオ構成の複眼カメラに適用した場合を例示したが、同一被写体について視差のある複数の画像を得ることができるのであれば、撮像装置以外の装置に本発明を適用することができる。
【0136】
例えば、3Dモデリングをおこなう装置に本発明を適用することもできる。すなわち、当該装置で図3に示したような機能構成を実現することにより、本実施形態にかかるデジタルカメラ1のような平行ステレオカメラで得られる光軸方向の異なる2つの撮像画像を当該装置に入力し、上述したような各処理と同様の処理をおこなうことで、当該装置内において、各特徴点における撮影距離を算出して3Dモデリングに利用することができる。
【0137】
この場合も、プログラムを適用することで、既存の装置を本発明にかかる画像処理装置として機能させることができる。
【0138】
このようなプログラムの適用方法は任意であり、例えば、CD−ROMやメモリカードなどの記憶媒体に格納して適用できる他、例えば、インターネットなどの通信媒体を介して適用することもできる。
【符号の説明】
【0139】
1…デジタルカメラ、10A…対象画像、10B…参照画像、11A…エッジ抽出画像、100A…第1撮像部、110A…光学装置、120A…イメージセンサ部、100B…第2撮像部、110B…光学装置、120B…イメージセンサ部、200…データ処理部、210…制御部、211…動作モード処理部、212…撮像制御部、213…特徴点抽出部、214…テンプレート設定部、215…距離算出部、220…画像処理部、230…画像メモリ、240…画像出力部、250…記憶部、260…外部記憶部、300…インタフェース部、310…表示部、320…外部インタフェース部、330…操作部、BT…基準テンプレート、TT1…変形テンプレート、TT2…縮小テンプレート、R1…(特徴点を含む)分断領域、R2…(特徴点を含まない)分断領域
【技術分野】
【0001】
本発明は、画像処理装置、画像照合方法、および、プログラムに関し、特に、画像間のテンプレートマッチングに好適な画像処理装置、画像照合方法、および、プログラムに関する。
【背景技術】
【0002】
撮像画像における被写体までの距離を測定する方法として、視差のある2以上の撮像画像で三角測量の原理を用いる方法が知られている。
【0003】
この場合において、視差を求めるために、複数画像間でテンプレートマッチングをおこなうことが一般的である。テンプレートマッチングでは、一方の画像上のテンプレート領域を他方の画像上で走査し、相違度が最も小さい位置を探索することで視差を求める。
【0004】
ここで、撮像画像において、被写体と背景との距離が大きく異なるような場合、被写体境界近傍では、被写体と背景間に距離があるため、2つの画像間で見え方が異なるオクルージョンが発生する。このような場合、オクルージョンの発生箇所近傍での距離算出精度が著しく低下するという問題がある。
【0005】
このような問題を解消するため、通常のテンプレートマッチングをおこなった後に、距離変化の大きい箇所においてサイズの小さいテンプレートを使用したテンプレートマッチングをおこなう手法が提案されている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平10−021403号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1の手法は、マッチング対象領域が「距離の大きく変化する領域」や「エッジを含む領域」である場合にテンプレートサイズを小さくすることで、オクルージョンによる影響の解消を図るものであるが、テンプレートマッチングに用いるテンプレートのサイズが小さい場合、位置照合の精度は向上するものの、距離算出の精度が低下するという問題がある。
【0008】
ここで、例えば、実写の撮像画像を用いた3Dモデリングをおこなう場合においては、距離算出精度が低いと正確なモデリングをおこなうことができない。よって、撮像画像における距離算出をより高い精度でおこなえる手法の確立が望まれる。
【0009】
本発明は、上記実状に鑑みてなされたものであり、より精度の高い距離算出をおこなうことのできる画像処理装置、画像照合方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明の第1の観点にかかる画像処理装置は、
複数の画像間でテンプレートマッチングをおこなう画像処理装置において、
同一被写体について視差のある2以上の画像を取得する画像取得手段と、
前記画像取得手段が取得した画像の一方で特徴点を設定する特徴点設定手段と、
前記特徴点設定手段が設定した特徴点を含むテンプレートを基準テンプレートとして設定するテンプレート設定手段と、
前記テンプレート設定手段が設定した基準テンプレート内の画像が、エッジによって分断されているか否かを判別する画像判別手段と、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する変形テンプレート設定手段と、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう照合手段と、
前記照合手段によるテンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する距離算出手段と、
を備えることを特徴とする。
【0011】
上記画像処理装置は、
前記画像から前記エッジを抽出したエッジ抽出画像を生成するエッジ抽出画像生成手段をさらに備えていることが望ましく、この場合、
前記テンプレート設定手段は、該エッジ抽出画像生成手段が生成したエッジ抽出画像上で前記基準テンプレートを設定することが望ましい。
【0012】
上記画像処理装置において、
前記変形テンプレート設定手段は、前記追加する領域を、前記エッジまでの距離および前記特徴点までの距離に基づいて決定することが望ましい。
【0013】
上記画像処理装置において、
前記変形テンプレート設定手段は、前記変形テンプレートを用いた照合での相違度が閾値以上となる場合、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除した縮小テンプレートを設定する縮小テンプレート設定手段をさらに備えていることが望ましく、この場合、
前記照合手段は、前記変形テンプレートを用いたテンプレートマッチングでマッチングがとれた位置に基づいて、前記縮小テンプレートを用いたテンプレートマッチングをおこなうことが望ましい。
【0014】
上記画像処理装置において、
前記照合手段は、前記縮小テンプレートを用いたテンプレートマッチングで複数のマッチングがとれた場合、前記変形テンプレートで照合された位置に最も近い位置でのマッチングを採用することが望ましい。
【0015】
上記画像処理装置において、
前記照合手段は、前記縮小テンプレートのサイズが基準値以下となる場合、当該特徴点を処理対象から除外することが望ましい。
【0016】
上記画像処理装置において、
前記画像取得手段は、光軸位置の異なる2以上の撮像手段を備えていてもよい。
【0017】
上記目的を達成するため、本発明の第2の観点にかかる画像照合方法は、
画像処理装置によって複数の画像間でテンプレートマッチングをおこなうための画像照合方法において、
同一被写体について視差のある2以上の画像を取得する画像取得ステップと、
前記画像取得ステップで取得された画像の一方で特徴点を設定する特徴点設定ステップと、
前記特徴点設定ステップで設定された特徴点を含むテンプレートを基準テンプレートとして設定するテンプレート設定ステップと、
前記テンプレート設定ステップで設定された基準テンプレート内の画像が、エッジによって分断されているか否かを判別する画像判別ステップと、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する変形テンプレート設定ステップと、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう照合ステップと、
前記照合ステップでのテンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する距離算出ステップと、
を含むことを特徴とする。
【0018】
上記目的を達成するため、本発明の第3の観点にかかるプログラムは、
複数の画像間でテンプレートマッチングをおこなう画像処理装置を制御するコンピュータに、
同一被写体について視差のある2以上の画像を取得する機能と、
前記取得された画像の一方で特徴点を設定する機能と、
前記設定された特徴点を含むテンプレートを基準テンプレートとして設定する機能と、
前記設定された基準テンプレート内の画像が、エッジによって分断されているか否かを判別する機能と、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する機能と、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう機能と、
前記テンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する機能と、
を実行させることを特徴とする。
【発明の効果】
【0019】
本発明によれば、より精度の高い距離算出をおこなうことができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施形態にかかるデジタルカメラの構成を示すブロック図である。
【図2】本発明の実施形態にかかるデジタルカメラが複眼カメラ(平行ステレオカメラ)であることを説明するための図であり、(a)はデジタルカメラの外観構成を示し、(b)は平行ステレオの概念を示す。
【図3】図1に示す制御部によって実現される機能を示す機能ブロック図である。
【図4】本発明の実施形態にかかる「撮像時距離算出処理」を説明するためのフローチャートである。
【図5】図4に示す「撮像時距離算出処理」で実行される「テンプレートマッチング処理」を説明するためのフローチャートである。
【図6】図5に示す「テンプレートマッチング処理」で実行される「変形照合処理」を説明するためのフローチャートである。
【図7】図5に示す「テンプレートマッチング処理」で実行される「縮小照合処理」を説明するためのフローチャートである。
【図8】本発明の実施形態で想定する場面を説明するための図であり、(a)は撮影する場面の例を示し、(b)および(c)は撮像された画像の例を示す。
【図9】図5に示した「テンプレートマッチング処理」における動作を説明するための図であり、(a)は撮像画像上で抽出された特徴点の例を示し、(b)はエッジ抽出画像の例を示し、(c)はエッジ抽出画像上にマッピングされた特徴点の例を示す。
【図10】図6に示した「変形照合処理」を説明するための図であり、(a)は基準テンプレートの例を示し、(b)は基準テンプレートがエッジで分断される場合の例を示し、(c)は削除対象領域の例を示し、(d)は基準テンプレートから削除対象領域を削除した例を示す。
【図11】図6に示した「変形照合処理」をさらに説明するための図であり、(a)は追加領域候補点の例を示し、(b)は追加領域の例を示し、(c)は変形テンプレートの例を示す。
【図12】図7に示した「縮小照合処理」における動作を説明するための図であり、(a)は基準テンプレートの例を示し、(b)は削除対象領域の例を示し、(c)は縮小テンプレートの例を示す。
【図13】三角測量の原理を説明するための図である。
【図14】三角測量の原理を説明するための図である。
【発明を実施するための形態】
【0021】
本発明にかかる実施形態を、図面を参照して以下に説明する。本実施形態では、本発明をデジタルスチルカメラ(以下、デジタルカメラ)によって実現した場合を例示する。本実施形態にかかるデジタルカメラ1は、一般的なデジタルスチルカメラが有する機能を備えているものとするが、撮像にかかる構成を2つ備えた、いわゆる複眼カメラとする。
【0022】
図1は、本発明の実施形態にかかるデジタルカメラ1の構成を示すブロック図である。本実施形態にかかるデジタルカメラ1の概略的構成は、図示するように、第1撮像部100A、第2撮像部100B、データ処理部200、インタフェース(I/F)部300、などである。
【0023】
第1撮像部100Aおよび第2撮像部100Bは、デジタルカメラ1の撮像動作をおこなう部分である。上述したように、本実施形態にかかるデジタルカメラ1は複眼カメラであるため、第1撮像部100Aと第2撮像部100Bとを有する構成であるが、第1撮像部100Aと第2撮像部100Bは同一の構成である。以下、第1撮像部100Aについての構成には参照符号の末尾に「A」を付し、第2撮像部100Bについての構成には参照符号の末尾に「B」を付す。
【0024】
図1に示すように、第1撮像部100A(第2撮像部100B)は、光学装置110A(110B)やイメージセンサ部120A(120B)などから構成されている。
【0025】
光学装置110A(110B)は、例えば、レンズ、絞り機構、シャッタ機構、などを含み、撮像にかかる光学的動作をおこなう。すなわち、光学装置110A(110B)の動作により、入射光が集光されるとともに、焦点距離、絞り、シャッタスピードなどといった、画角やピント、露出などにかかる光学的要素の調整がなされる。なお、光学装置110A(110B)に含まれるシャッタ機構はいわゆるメカニカルシャッタであり、イメージセンサの動作のみでシャッタ動作をおこなう場合には、光学装置110A(110B)にシャッタ機構が含まれていなくてもよい。また、光学装置110A(110B)は、後述する制御部210による制御によって動作する。
【0026】
イメージセンサ部120A(120B)は、光学装置110A(110B)によって集光された入射光に応じた電気信号を生成する、例えば、CCD(Charge Coupled Device:電荷結合素子)やCMOS(Complementally Metal Oxide Semiconductor:相補型金属酸化物半導体)などのイメージセンサから構成される。イメージセンサ部120A(120B)は、光電変換をおこなうことで、受光に応じた電気信号を発生してデータ処理部200に出力する。
【0027】
上述したように、第1撮像部100Aと第2撮像部100Bは同一の構成である。より詳細には、レンズの焦点距離fやF値、絞り機構の絞り範囲、イメージセンサのサイズや画素数、配列、画素面積などの各仕様がすべて同一である。
【0028】
このような第1撮像部100Aと第2撮像部100Bを有するデジタルカメラ1は、図2(a)に示すように、光学装置110Aに構成されたレンズと光学装置110Bに構成されたレンズとが、デジタルカメラ1の外面における同一面上に形成された構成とする。ここでは、シャッタボタンが上になる方向でデジタルカメラ1を水平にした場合に、中心位置が水平方向で同一線上となるよう2つのレンズ(受光部)が配置されるものとする。つまり、第1撮像部100Aと第2撮像部100Bとを同時に動作させた場合、同一被写体について2つの画像が撮像されることになるが、各画像における光軸位置が横方向にずれている画像となる。
【0029】
この場合、図2(b)の透視射影モデルに示すような光学的特性となるよう第1撮像部100Aと第2撮像部100Bが配置される。図2(b)に示す透視射影モデルは、X、Y、Zからなる3次元直交座標系に基づくものであり、第1撮像部100Aについてのこの座標系を以下「カメラ座標」と呼ぶ。図2(b)では、第1撮像部100Aの光学中心を原点としたカメラ座標を示している。
【0030】
カメラ座標においては、Z軸をカメラの光学方向に一致する方向とし、X軸とY軸はそれぞれ画像の横方向と縦方向に平行する。ここで、光軸と画像座標面の交点を原点(すなわち、光学中心)とし、イメージセンサの画素間隔を換算してカメラ座標と長さの単位を合わせた場合、第1撮像部100Aについての画像座標面で被写体A1を示す画像座標を(u1, v1)とし、第2撮像部100Bについての画像座標面では(u'1, v'1)とする。
【0031】
第1撮像部100Aと第2撮像部100Bは、それぞれの光軸が平行(すなわち、輻輳角が0)になり、かつ、第1撮像部100Aについての画像座標u軸と第2撮像部100Bについての画像座標u'軸が同一線上で同じ方向となるよう配置される(すなわち、エピポーラ線が一致)。また、上述したように、第1撮像部100Aおよび第2撮像部100Bの焦点距離fや画素間隔は同じであり、光軸と画像座標面とが垂直に交わっている。このような構成を「平行ステレオ」と呼び、デジタルカメラ1の第1撮像部100Aと第2撮像部100Bは平行ステレオの構成となっている。
【0032】
図1に戻り、デジタルカメラ1の構成の説明を続ける。
【0033】
データ処理部200は、第1撮像部100Aおよび第2撮像部100Bによる撮像動作によって生成された電気信号を処理し、撮像画像を示すデジタルデータを生成するとともに、撮像画像に対する画像処理などをおこなう。図1に示すように、データ処理部200は、制御部210、画像処理部220、画像メモリ230、画像出力部240、記憶部250、外部記憶部260、などから構成される。
【0034】
制御部210は、例えば、CPU(Central Processing Unit:中央演算処理装置)などのプロセッサや、RAM(Random Access Memory)などの主記憶装置(メモリ)、などから構成され、後述する記憶部250などに格納されているプログラムを実行することで、デジタルカメラ1の各部を制御する。また、本実施形態では、所定のプログラムを実行することで、後述する各処理にかかる機能が制御部210によって実現される。
【0035】
画像処理部220は、例えば、ADC(Analog-Digital Converter:アナログ−デジタル変換器)、バッファメモリ、画像処理用のプロセッサ(いわゆる、画像処理エンジン)などから構成され、イメージセンサ部120Aおよび120Bによって生成された電気信号に基づいて、撮像画像を示すデジタルデータを生成する。
【0036】
すなわち、イメージセンサ部120A(120B)から出力されたアナログ電気信号をADCがデジタル信号に変換して順次バッファメモリに格納すると、バッファされたデジタルデータに対し、画像処理エンジンがいわゆる現像処理などをおこなうことで、画質の調整やデータ圧縮などをおこなう。
【0037】
画像メモリ230は、例えば、RAMやフラッシュメモリなどの記憶装置から構成され、画像処理部220によって生成された撮像画像データや、制御部210によって処理される画像データなどを一時的に格納する。
【0038】
画像出力部240は、例えば、RGB信号の生成回路などから構成され、画像メモリ230に展開された画像データをRGB信号などに変換して表示画面(後述する表示部310など)に出力する。
【0039】
記憶部250は、例えば、ROM(Read Only Memory)やフラッシュメモリなどの記憶装置から構成され、デジタルカメラ1の動作に必要なプログラムやデータなどを格納する。本実施形態では、制御部210などが実行する動作プログラムや処理に必要となるパラメータや演算式などが記憶部250に格納されているものとする。
【0040】
外部記憶部260は、例えば、メモリカードなどといった、デジタルカメラ1に着脱可能な記憶装置から構成され、デジタルカメラ1で撮像した画像データなどを格納する。
【0041】
インタフェース部300は、デジタルカメラ1とその使用者あるいは外部装置とのインタフェースにかかる構成であり、図1に示すように、表示部310、外部インタフェース(I/F)部320、操作部330、などから構成される。
【0042】
表示部310は、例えば、液晶表示装置などから構成され、デジタルカメラ1を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像、などを表示出力する。本実施形態では、画像出力部240からの画像信号(RGB信号)などに基づいて撮像画像等の表示出力がおこなわれる。
【0043】
外部インタフェース部320は、例えば、USB(Universal Serial Bus)コネクタやビデオ出力端子などから構成され、外部のコンピュータ装置への画像データの出力や、外部のモニタ装置への撮像画像の表示出力などをおこなう。
【0044】
操作部330は、デジタルカメラ1の外面上に構成されている各種ボタンなどによって構成され、デジタルカメラ1の使用者による操作に応じた入力信号を生成して制御部210に入力する。操作部330を構成するボタンとして、例えば、シャッタ動作を指示するためのシャッタボタンや、デジタルカメラ1のもつ動作モードを指定するためのモードボタン、各種設定をおこなうための十字キーや機能ボタン、などが含まれているものとする。
【0045】
ここで、本実施形態では、記憶部250に格納されている動作プログラムを制御部210が実行することで、後述する各処理が実現されるが、この場合に制御部210によって実現される機能を、図3を参照して説明する。
【0046】
図3は、制御部210によって実現される機能を示した機能ブロック図である。ここでは、複眼カメラによって撮像された画像を用いて、画像内に写された各部分までの撮影距離を算出する動作を実現するために必要な機能構成を示す。この場合、図示するように、制御部210は、動作モード処理部211、撮像制御部212、特徴点抽出部213、テンプレート設定部214、距離算出部215、などとして機能する。
【0047】
動作モード処理部211は、表示部310との協働により、デジタルカメラ1が有する各種動作モードをデジタルカメラ1のユーザに指定させるために必要な画面表示や指定された動作モード毎の設定画面表示などをおこなう他、操作部330との協働により、ユーザが指定した動作モードを認識し、当該動作モードの実行に必要なプログラムや演算式などを記憶部250から読み出し、制御部210の主記憶装置(メモリ)にロードする。
【0048】
本実施形態では、デジタルカメラ1で撮像した撮像画像上の特徴点毎に撮影距離を算出する動作モード(距離算出モード)がユーザによって指定されるものとし、以下に説明する制御部210の各機能構成は、距離算出モードの指定に応じて動作モード処理部211がロードしたプログラムを実行することで実現される機能構成である。
【0049】
撮像制御部212は、第1撮像部100Aおよび第2撮像部100Bを制御することでデジタルカメラ1での撮像動作を実行する。本実施形態にかかる撮影距離算出機能は、平行ステレオ構成となっている第1撮像部100Aと第2撮像部100Bから得られた、視差のある2つの画像から撮影距離を算出するので、本実施形態にかかる撮像制御部212は、第1撮像部100Aと第2撮像部100Bで同時に撮像動作をおこなうよう制御する。これにより、同一の被写体について、光軸位置の異なる2つの撮像画像が取得される。
【0050】
特徴点抽出部213は、撮像制御部212の制御によって得られた撮像画像上で、例えば、ハリスのコーナー検出関数などにより特徴点の抽出をおこなう。また、画像処理部220を制御することで、撮像画像上でのエッジ抽出動作をおこなう。
【0051】
テンプレート設定部214は、取得される2つの撮像画像間でテンプレートマッチングをおこなう際のテンプレートの設定をおこなう。本実施形態では、特徴点抽出部213によって抽出された特徴点を含むテンプレートの設定をおこなうとともに、設定したテンプレート内にエッジ部分が含まれる際には、テンプレートの変形やサイズの変更をおこなう。
【0052】
距離算出部215は、テンプレート設定部214によって設定されたテンプレートを用いて、2つの撮像画像間でテンプレートマッチングをおこない、特徴点毎に撮影距離を算出する。本実施形態では、撮像によって得られる2つの画像のうちの一方を最終的な出力対象となる「対象画像」とし、他方をテンプレートマッチングの際に参照される「参照画像」とする。以下、第1撮像部100Aによる撮像画像が「対象画像」、第2撮像部100Bによる撮像画像が「参照画像」であるものとする。
【0053】
この場合において、特徴点抽出部213は、対象画像上で特徴点を抽出し、テンプレート設定部214は、特徴点が抽出された対象画像上でテンプレートを設定する。距離算出部215は、対象画像上に設定されたテンプレートを参照画像上で走査することでテンプレートマッチングをおこない、マッチングがとれた画像の相違度(視差)から、三角測量の原理によって撮影距離を算出する。ここで、距離算出部215は、例えば、差の2乗和を評価式とするSSD(Sum of Squared Difference)を用いたテンプレートマッチングをおこなうものとする。
【0054】
距離算出部215は、算出した特徴点毎の撮影距離を示す情報(以下、「距離情報」とする)を生成し、対象画像とともに出力する。この場合の出力先は、例えば、表示部310、記憶部250または外部記憶部260などとすることができる他、外部インタフェース部320を介した外部装置などとすることができる。
【0055】
以上が制御部210によって実現される機能である。なお、本実施形態では、制御部210がプログラムを実行することによる論理的処理で上述した各機能が実現されるものとするが、これらの機能を、例えば、ASIC(Application Specific Integrated Circuit:特定用途向け集積回路)などのハードウェアによって構成してもよい。この場合、図3に示した機能のうち、画像処理にかかる機能については、画像処理部220によって実現されてもよい。
【0056】
以上説明したデジタルカメラ1の構成は、本発明を実現するために必要な構成であり、デジタルカメラとしての基本機能や種々の付加機能に用いられる構成は必要に応じて備えられているものとする。
【0057】
このような構成のデジタルカメラ1による動作を以下に説明する。ここでは、デジタルカメラ1の動作モードのうち、上述した「距離算出モード」が選択された場合にデジタルカメラ1が実行する「撮像時距離算出処理」を、図4に示すフローチャートを参照して説明する。この「撮像時距離算出処理」は、デジタルカメラ1のユーザが操作部330を操作することで、距離算出モードが選択されたことを契機に開始される。この場合、動作モード処理部211が、撮影距離算出動作にかかるプログラムなどを記憶部250からロードすることで、図3に示した各機能構成により以下の処理が実行される。
【0058】
処理が開始されると、撮像制御部212は、シャッタボタン(操作部330)が操作されたことに応じて、第1撮像部100Aおよび第2撮像部100Bを制御し、第1撮像部100Aおよび第2撮像部100Bで同時に撮像動作(複眼同時撮像)をおこなわせる(ステップS101:Yes、ステップS102)。
【0059】
ここで、本実施形態では、図8(a)に示すような場面をデジタルカメラ1で撮影する場合を想定する。ここでは、図8(a)に示すように、撮影画角内に被写体Aと被写体Bが含まれているものとする。この場合において、デジタルカメラ1から各被写体までの距離は被写体Aの方が近くなっている。すなわち、被写体Aが主体的な被写体であり、被写体Aの背景として被写体Bが写り込むような場面を想定する。
【0060】
このような場面で複眼同時撮像をおこなった場合の撮像画像の例を、図8(b)および図8(c)に示す。本実施形態では、被写体に向かって左側となるレンズが第2撮像部100Bに構成され、被写体に向かって右側となるレンズが第1撮像部100Aに構成されているものとする。この場合、図8(b)は、第2撮像部100Bによって撮像された画像を示し、図8(c)は、第1撮像部100Aによって撮像された画像を示す。
【0061】
本実施形態では、第1撮像部100Aによって撮像された画像を最終的な撮像画像として用いるものとし、以下「対象画像10A」とする。ここで、各レンズの光軸が水平方向に異なるよう配置されているので、第2撮像部100Bで撮像された画像にも対象画像10Aと同じ被写体が写っているが、その横方向の位置は異なっている。このような、第2撮像部100Bで撮像された画像は、視差に基づいた撮影距離算出時のテンプレートマッチングで参照される画像であり、以下「参照画像10B」とする。ここで、本実施形態では、図8(c)に示すように、対象画像10Aにおいて、撮影距離の異なる被写体Aと被写体Bとが重なって写っているものとする。
【0062】
撮像制御部212が第1撮像部100Aおよび第2撮像部100Bを制御することで、対象画像10Aおよび参照画像10Bが得られると、各撮像画像は画像処理部220で所定の画像処理がなされ、画像メモリ230に展開される。このとき、画像処理部220は、対象画像10Aおよび参照画像10Bが画像メモリ230に展開された旨、および、各画像を特定する情報(ファイル名やアドレスなど)を特徴点抽出部213に通知する。
【0063】
特徴点抽出部213は、画像処理部220からの通知に応じて、取得された対象画像10Aおよび参照画像10Bを用いたテンプレートマッチングをおこなうための「テンプレートマッチング処理」を実行する(ステップS200)。この「テンプレートマッチング処理」を、図5に示すフローチャートを参照して説明する。
【0064】
処理が開始されると、特徴点抽出部213は、画像メモリ230に展開されている対象画像10Aにおいて特徴点の抽出をおこなう(ステップS201)。ここでは、ハリスのコーナー検出関数などのような既知の特徴点抽出手法を用いて、例えば、輝度情報に基づいた特徴点の抽出をおこなう。この場合、図9(a)に示すように、対象画像10A上に複数の特徴点が抽出される。なお、図9(a)は、理解を容易にするため、抽出された特徴点を誇大表示しており、実際には、対象画像10Aを構成している画素単位で特徴点が抽出される。
【0065】
このようにして複数の特徴点を抽出すると、特徴点抽出部213は、抽出された各特徴点に1〜mの一意の番号を割り当てることでナンバリングする(ステップS202)。
【0066】
特徴点をナンバリングすると、特徴点抽出部213は、画像処理部220に対し、対象画像10Aについてのエッジ抽出画像を生成するよう指示する。特徴点抽出部213からの指示に応じて、画像処理部220は、画像メモリ230に展開されている対象画像10Aを複製し、複製した画像上で、既知のエッジ抽出手法を適用することで、対象画像10Aのエッジが抽出されたエッジ抽出画像を生成する(ステップS203)。ここでは、エッジの連結性に優れるケニー法などのエッジ抽出手法により、輝度情報に基づいたエッジ抽出がおこなわれるものとする。
【0067】
この場合のエッジ抽出画像の例を図9(b)に示す。ここでは、図示するような、対象画像10Aにおける被写体の輪郭線が強調された画像としてエッジ抽出画像(以下、「エッジ抽出画像11A」とする)が生成される。画像処理部220は、このようなエッジ抽出画像11Aを生成すると、画像メモリ230に展開し、その旨を特徴点抽出部213に通知する。
【0068】
特徴点抽出部213は、画像処理部220からの通知に応じて、ステップS202でナンバリングした特徴点を指定するポインタPに初期値「1」を設定することで、ポインタPの初期化をおこなう(ステップS204)。
【0069】
特徴点抽出部213は、ポインタPで指定した特徴点の座標情報を特定し、テンプレート設定部214に通知する。テンプレート設定部214は、特徴点抽出部213からの通知に基づき、テンプレートマッチングで用いる基準テンプレートBTを、対象画像10A上で指定されたP番目の特徴点に設定する(ステップS205)。
【0070】
ここで、基準テンプレートBTの例を図10(a)に示す。図示するように、基準テンプレートBTは、例えば、k×k(kは奇数(例えば「9」))のドット(画素)によって構成された正方形のテンプレートであり、指定された特徴点の位置が中心となるよう設定される。
【0071】
テンプレート設定部214は、対象画像10A上で基準テンプレートBTを設定すると、当該基準テンプレートBTの座標情報に基づいて、エッジ抽出画像11A上の同じ位置に基準テンプレートBTをマッピングする(ステップS206)。この場合、現在対象となっている対象画像10A上の特徴点に対応するエッジ抽出画像11A上の位置にも特徴点を設定し、その特徴点が中心となる基準テンプレートBTをエッジ抽出画像11A上で設定することで、対象画像10Aで設定した基準テンプレートBTと同じ基準テンプレートBTがエッジ抽出画像11A上にマッピングされる。
【0072】
ここで、エッジ抽出画像11A上に特徴点を設定した場合の例を図9(c)に示す。本処理におけるテンプレートマッチングでは、対象画像10Aで抽出した特徴点のそれぞれについてテンプレートを設定しておこなうが、ここでは、図9(c)に示した2つの特徴点をサンプルとし、以下の動作を説明する。図示するように、サンプル1は、被写体Aと被写体Bとが近接している位置で抽出された特徴点であり、サンプル2は、被写体Aにおいてエッジ部分とは近接しない位置で抽出された特徴点である。
【0073】
現在対象となっている特徴点について、エッジ抽出画像11A上で基準テンプレートBTを設定すると、テンプレート設定部214は、当該基準テンプレートBT内がエッジによって分断されているか否かを判別する(ステップS207)。
【0074】
ここで、「エッジ」とは、エッジ抽出画像11Aによって強調された被写体の輪郭などを示す画像部分である。上述したサンプル1の特徴点に設定された基準テンプレートBTの場合、図10(b)に示すように、被写体Aの輪郭を示すエッジが基準テンプレートBT内に含まれることになる。
【0075】
本実施形態では、このように基準テンプレートBT内にエッジが含まれている場合、当該基準テンプレートBTがエッジによって分断されているものとする。図10(b)に示すように、基準テンプレートBT内に1つのエッジが含まれている場合であれば、基準テンプレートBTが2つの領域に分断されていることになる。よって、ステップS207では、エッジ抽出画像11A上に設定した基準テンプレートBTがこのようにエッジによって分断されているか否かが判別される。
【0076】
一方、図9(c)に示したサンプル2のような特徴点で基準テンプレートBTが設定された場合、被写体の輪郭などが近くにないため、基準テンプレートBTにエッジが含まれない。このような場合(ステップS207:No)、テンプレート設定部214は、対象画像10Aで設定した基準テンプレートBTを用いたテンプレートマッチングの実行を距離算出部215に指示することで、基準テンプレートBTを用いたテンプレートマッチングがおこなわれる(ステップS208)。
【0077】
この場合、距離算出部215は、基準テンプレートBTが設定された対象画像10Aとは光軸位置の異なる参照画像10B上で、基準テンプレートBTを走査する。ここでは、SSDなどによるテンプレートマッチングにより、基準テンプレートBT内の画素成分と類似する画像領域を参照画像10B上で探索する。ここで、SSDによるテンプレートマッチングをおこなった場合、完全に一致する画像があれば、値が0になる。この値は画像間の相違が大きい程大きくなるので、テンプレートマッチングによって得られる値は、テンプレートとの相違度を示すことになる。
【0078】
このような方法により、最も小さい相違度となる参照画像10B上の位置が、対象画像10Aで設定された基準テンプレートBTとマッチング(照合)した位置となる。上述したように、対象画像10Aと参照画像10Bとでは、横方向に光軸位置が異なっているので、対象画像10A上の基準テンプレートBTの位置と、参照画像10B上でマッチングした位置とでは、横方向に座標がずれていることになる。このずれが、当該特徴点についての視差であり、当該特徴点に対応する被写体位置までの撮影距離の算出(詳細後述)に用いられる。
【0079】
一方、エッジ抽出画像11A上で設定した基準テンプレートBTがエッジによって分断されている場合、当該特徴点の位置は、異なる被写体が隣接して写っている場所であると考えられる。この場合の被写体が、例えば、図8(a)に示した被写体Aと被写体Bのように、デジタルカメラ1からの距離が異なっている場合、図10(b)に示すようなエッジを跨いで設定された基準テンプレートBTを使ったテンプレートマッチングでは、オクルージョンの影響を受け、正確な撮影距離の算出ができない場合がある。
【0080】
この問題は、より近い被写体についての画素成分と、より遠い被写体についての画素成分の双方が当該基準テンプレートBTに含まれていることが要因と考えられるので、エッジ抽出画像11A上に設定した基準テンプレートBTがエッジにより分断されている場合、エッジを跨がないテンプレートを用いたテンプレートマッチングをおこなうことで、特徴点についての正確な距離算出をおこなうことができる。
【0081】
よって、エッジ抽出画像11A上で設定した基準テンプレートBTがエッジによって分断されている場合(ステップS207:Yes)、テンプレート設定部214は、基準テンプレートBTを変形したテンプレートによってテンプレートマッチング(テンプレート照合)をおこなうための「変形照合処理」を実行する(ステップS300)。この「変形照合処理」を、図6に示すフローチャートを参照して説明する。
【0082】
ここで、エッジによって分断された基準テンプレートBTは、図10(c)に示すように、「特徴点を含んだ分断領域」(以下、「分断領域R1」とする)と「特徴点を含んでいない分断領域」(以下、「分断領域R2」とする)の2種類に分けられる。本処理においては、特徴点についての撮影距離を算出するためにテンプレートマッチングをおこなっているので、特徴点を含んでいる分断領域R1をテンプレートとして用いる必要がある。
【0083】
よって、処理が開始されると、テンプレート設定部214は、基準テンプレートBTについての分断領域のうち、特徴点を含んでいない分断領域R2を削除対象領域に指定し(ステップS301)、指定した削除対象領域を構成しているドット(画素)の数(ドット数n)を計数する(ステップS302)。
【0084】
そして、テンプレート設定部214は、図10(d)に示すように、ステップS301で指定した削除対象領域(=分断領域R2)を基準テンプレートBTから削除する(ステップS303)。
【0085】
これにより、対象とする特徴点を含む分断領域R1のみから構成されるテンプレートとなるが、削除した分基準テンプレートBTより面積が小さくなってしまう。テンプレートの面積が小さくなると、すなわち、テンプレートのドットの数が少なくなると、画像間の相違度の算出に要する処理時間や処理負荷が減少する反面、マッチング探索の精度が低下してしまう。よって、基準テンプレートBTと同じ面積のテンプレートとすることで、マッチング探査における精度の向上を図る。
【0086】
本実施形態では、分断領域R1に、削除した分断領域R2と同じ面積の領域を追加することで、基準テンプレートBTと同じ面積となるテンプレートを設定する。このため、テンプレート設定部214は、分断領域R1に隣接し、かつ、エッジを越えない位置に、図11(a)に示すような追加領域候補点を設定する(ステップS304)。ここでは、例えば、図11(a)に示すように、分断領域R1の外周に沿うように追加領域候補点が設定される。この場合、削除された分断領域R2を構成していたドット数nよりも多い数の追加領域候補点が設定されるものとする。
【0087】
このように設定された追加領域候補点の数を、分断領域R2を構成していたドット数nと同じ数となるよう絞り込むことで、削除された領域と同じ面積の領域が、分断領域R1に追加されることになる。このときの絞り込みは、例えば、各追加領域候補点から特徴点およびエッジまでの距離に基づいておこなう。よって、テンプレート設定部214は、設定した追加領域候補点のそれぞれについて、特徴点およびエッジまでの距離を算出する(ステップS305)。
【0088】
ここで、特徴点までの距離をDA、エッジまでの距離をDBとした場合、テンプレート設定部214は、数1に示すような評価関数を用い、DAおよびDBに基づいた各追加領域候補点の評価値Qを算出する(ステップS306)。なお、数1におけるαは調整係数である。
【0089】
(数1)
Q=DA+α×DB (α<1)
【0090】
テンプレート設定部214は、追加領域候補点のそれぞれについて評価値Qを求めると、評価値Qの小さい順に追加領域候補点をn個に絞り込む(ステップS307)。ここで、評価値Qは、距離DAおよび距離DBに基づいているので、評価値Qの小さい順に絞り込むことで、特徴点およびエッジまでの距離がより近い追加領域候補点に絞り込まれることになる。
【0091】
追加領域候補点をn個に絞り込むと、テンプレート設定部214は、絞り込んだ追加領域候補点を分断領域R1に追加することで、分断領域R1からエッジを越えずに基準テンプレートBTと同面積となるテンプレート(以下、「変形テンプレートTT1」とする)を設定する(ステップS308)。
【0092】
つまり、図11(b)に示すように、n個に絞り込んだ追加領域候補点を追加領域とすることで、削除された分断領域R2と同じ面積の領域が分断領域R1に追加され、分断領域R1と追加領域によって構成される領域が、図11(c)に示すような変形テンプレートTT1となる。
【0093】
このような変形テンプレートTT1を設定すると、テンプレート設定部214は、当該変形テンプレートTT1を用いたテンプレートマッチングをおこなうよう距離算出部215に指示する。この場合、距離算出部215は、エッジ抽出画像11A上で設定された変形テンプレートTT1を対象画像10A上にマッピングし、対象画像10A上での変形テンプレートTT1を参照画像10B上で走査することでテンプレートマッチングをおこなう(ステップS309)。この場合も、上述した基準テンプレートBTを用いたテンプレートマッチングと同様、SSDによって求められる数値に基づいた相違度が最も小さい位置がマッチング(照合)のとれた位置とされる。
【0094】
このようにして、基準テンプレートBTがエッジで分断されている場合、基準テンプレートBTと同面積となる変形テンプレートTT1を用いたテンプレートマッチングがおこなわれ、「テンプレートマッチング処理」(図5)のフローに戻る。
【0095】
「テンプレートマッチング処理」のフローでは、「変形照合処理」のステップS309でおこなわれたマッチングの相違度が閾値以上であるか否かが距離算出部215によって判別される(ステップS209)。
【0096】
ここで、変形テンプレートTT1を用いたマッチングの相違度が高い場合、変形テンプレートTT1では照合の位置精度が低いことになるので、より位置精度の高いテンプレートマッチングをおこなうことが望ましい。よって、相違度が閾値以上である場合(ステップS209:Yes)、距離算出部215は、その旨をテンプレート設定部214に通知する。この場合、テンプレート設定部214は、基準テンプレートBTよりも小さいテンプレートを使ったテンプレートマッチングをおこなうための「縮小照合処理」を実行する(ステップS400)。この「縮小照合処理」を、図7に示すフローチャートを参照して説明する。
【0097】
処理が開始されると、テンプレート設定部214は、エッジ抽出画像11A上で現在対象となっている特徴点についての基準テンプレートBTを再設定する(ステップS401)。すなわち、当該特徴点を中心とした図12(a)に示すような基準テンプレートBTをエッジ抽出画像11A上に設定する。
【0098】
ここで、図9(c)に示すサンプル1の特徴点が対象となっている場合、図12(b)に示すように、基準テンプレートBTがエッジで分断されるため、テンプレート設定部214は、分断領域R2を削除対象領域に指定し(ステップS402)、基準テンプレートBTから削除対象領域を削除することで、図12(c)に示すような、基準テンプレートBTよりも面積の小さいテンプレート(以下、「縮小テンプレートTT2」とする)を設定する(ステップS403)。
【0099】
縮小テンプレートTT2を設定すると、テンプレート設定部214は、当該縮小テンプレートTT2のサイズが基準のサイズを示す基準値以上となっているか否かを判別する(ステップS404)。ここで、テンプレートの大きさが小さいほど特徴点に類似する他の照合位置でもマッチングする可能性が高くなる反面、テンプレートの大きさを小さくすることで被写体境界付近での特徴点に対応する照合位置にマッチングすることも可能になる。本処理は、前段の変形テンプレートTT1による照合では位置精度が低かったため、より位置精度を高くするためテンプレートのサイズを小さくしているが、必要以上に小さいと、特徴点に類似する他の照合位置でもマッチングされることになるので一定の大きさ以上のサイズとなる縮小テンプレートTT2のみを使用する。
【0100】
設定した縮小テンプレートTT2のサイズが基準値以上である場合(ステップS404:Yes)、テンプレート設定部214は、当該縮小テンプレートTT2を用いたテンプレートマッチングの実行を距離算出部215に指示する。この場合、距離算出部215は、エッジ抽出画像11A上で設定された縮小テンプレートTT2を対象画像10A上にマッピングしてテンプレートとし、当該テンプレートを参照画像10B上で走査することでテンプレートマッチングをおこなう(ステップS405)。このとき、距離算出部215は、先におこなった「変形照合処理」(図6)でマッチングがとれた位置の周辺で、縮小テンプレートTT2を用いた探索をおこなう。
【0101】
ここで、縮小テンプレートTT2は基準テンプレートBTよりサイズの小さいテンプレートであるため、複数箇所でマッチング(照合)がとれる可能性がある。すなわち、相違度の低い箇所(マッチングのピーク)が複数存在する可能性が高い。このように、複数箇所でマッチングがとれた場合(ステップS406:Yes)、距離算出部215は、直前におこなった変形テンプレートTT1を用いたテンプレートマッチングにおいて相違度が高いながらもマッチングがとれた位置を特定し(ステップS407)、この位置に最も近い位置でのマッチングを採用する(ステップS408)。
【0102】
このようにして、変形テンプレートTT1を用いたテンプレートマッチングでの相違度が閾値以上となる場合、基準テンプレートBTより小さいサイズの縮小テンプレートTT2を用いたテンプレートマッチングをおこない、「テンプレートマッチング処理」(図5)のフローに戻る。
【0103】
なお、設定した縮小テンプレートTT2のサイズが基準値に満たない場合(ステップS404:No)、テンプレート設定部214は、当該縮小テンプレートTT2を用いたテンプレートマッチングの実行を距離算出部215に指示せず、現在処理しているP番目の特徴点を対象から除外して(ステップS409)、「テンプレートマッチング処理」(図5)のフローに戻る。これは、必要なサイズに満たないテンプレートを用いたマッチングをおこなってもマッチング探索の精度が低下してしまうため撮影距離算出の精度が不十分となるためである。
【0104】
「テンプレートマッチング処理」においては、以上説明したように、状況に応じて3種類のテンプレートを使い分けたマッチング動作がおこなわれる。すなわち、設定した基準テンプレートBTがエッジで分断されていなければ、基準テンプレートBTを用いたテンプレートマッチングがおこなわれ、基準テンプレートBTがエッジで分断されている場合には、変形テンプレートTT1を用いたテンプレートマッチングがおこなわれ、変形テンプレートTT1を用いたテンプレートマッチングによる相違度が閾値以上となる場合には、縮小テンプレートTT2を用いたテンプレートマッチングがおこなわれる。
【0105】
いずれかの方法によってP番目の特徴点についてのテンプレートマッチングがおこなわれると、距離算出部215は、マッチング結果に基づいて、当該特徴点における撮影距離の算出をおこなう(ステップS210)。この場合の距離算出は、三角測量の原理を用いておこなわれる。三角測量の原理を用いた距離算出の例を、図13および図14を参照して説明する。
【0106】
図13は、テンプレートマッチングをおこなった際の対象画像10Aおよび参照画像10Bの例を示しており、対象画像10A上の特徴点(u1, v1)についてのテンプレートマッチングにより参照画像10B上でマッチングがとれた位置が(u'1, v'1)であることを示している。本実施形態にかかるデジタルカメラ1は、第1撮像部100Aと第2撮像部100Bの光軸が水平方向に異なる平行ステレオカメラであるため、対象画像10Aと参照画像10Bとの間には、マッチングがとれた位置についての視差が生じている。
【0107】
ここで、テンプレートマッチングによってマッチングのとれた(照合された)特徴点に対応する実際の位置を、図2(b)に示したカメラ座標でA1(X1、Y1、Z1)とした場合、A1の座標(X1、Y1、Z1)はそれぞれ、以下の数2〜数4で表される。上述したように、(u1, v1)は、第1撮像部100Aについての画像座標面(すなわち、対象画像)への射影点、(u'1, v'1)は、第2撮像部100Bについての画像座標面(すなわち、参照画像)への射影点を示しており、また、bは第1撮像部100Aおよび第2撮像部100Bの光軸間距離(基線間距離)を示す。
【0108】
(数2)
X1=(b×(u1))/((u'1)−u1)
【0109】
(数3)
Y1=(b×(v1))/((u'1)−u1)
【0110】
(数4)
Z1=(b×f)/((u'1)−u1)
【0111】
ここで、デジタルカメラ1からA1までの距離は、A1の座標Z1によって示されるので、距離算出部215は、上記数4を演算することで、特徴点に対応する実際の位置からデジタルカメラ1までの距離、すなわち撮影距離を算出することができる。
【0112】
この数4は、三角測量の原理によって導かれるものである。三角測量の原理を、図14を参照して説明する。
【0113】
図14は、図2(b)に示した平行ステレオ構成におけるカメラ座標を上から見た模式図である。第1撮像部100Aによる視点がカメラ座標となっているので、被写体位置A1のX軸方向の座標はカメラ座標上のX1で与えられ、この数値は図14に示した数式(1)で求められる。
【0114】
一方、第2撮像部100Bからの視点におけるA1のX軸方向の座標は、光軸間距離bとカメラ座標のX1との和であり、図14に示した数式(2)で求められ、これらの数式(1)と数式(2)から、上記数4が導き出される。
【0115】
このようにして、P番目の特徴点についての撮影距離を算出すると、距離算出部215は、ポインタPを+1することで次の特徴点を指定する(ステップS211)。ここで、次の特徴点が存在する場合(ステップS212:No)は、当該特徴点について、ステップS205以降の処理がおこなわれる。
【0116】
なお、「縮小照合処理」において、縮小テンプレートTT2のサイズが基準値に満たないために当該特徴点が除外された場合(ステップS404:No、ステップS409)には、ステップS210での距離算出をおこなわずに、次の特徴点が指定される(ステップS211)。
【0117】
以降、各特徴点について、上述した各処理が順次おこなわれることで撮影距離の算出がなされ、すべての特徴点について処理が終了すると(ステップS212:Yes)、「撮影時距離算出処理」(図4)のフローに戻る。
【0118】
「撮影時距離算出処理」において、距離算出部215は、「テンプレートマッチング処理」で算出した、各特徴点における撮影距離を示す距離情報を生成し、出力する(ステップS103)。
【0119】
ここでの出力は、例えば、表示部310への表示出力の他、撮像画像(対象画像10A)とともに記憶部250もしくは外部記憶部260へ出力することによる保存、あるいは、外部インタフェース部320を介した外部装置への出力、などとすることができる。このような出力方法の選択は、例えば、ユーザが操作部330を操作することによっておこなわれるものとする。このような選択動作にかかる表示部310への出力信号や操作部330からの入力信号は、動作モード処理部211を介して距離算出部215に入出力される。
【0120】
ここで、外部インタフェース部320を介して出力される外部装置は、例えば、距離情報に基づいて3Dモデリングをおこなう画像処理装置とすることができる。すなわち、実写画像に基づいて3Dコンピュータグラフィクスを生成する場合などにおいて、本実施形態にかかるデジタルカメラ1から、撮像画像と各特徴点の距離情報が入力されることで、3Dモデリングをおこなうことができる。
【0121】
デジタルカメラ1において距離情報の出力が完了すると、所定の終了イベント(例えば、距離算出モードの解除や、デジタルカメラ1の電源オフなど)が発生するまで上述した各処理をおこない(ステップS104:No)、終了イベントの発生により処理を終了する(ステップS104:Yes)。
【0122】
以上説明したように、本発明を上記実施形態の如く適用することにより、より高い精度で距離算出をおこなうことができる。
【0123】
この場合において、通常のテンプレート(基準テンプレート)内にエッジが検出された場合に、基準テンプレートと同じサイズで、エッジを越えないように変形させたテンプレートを用いるので、距離の異なる被写体の境界付近でテンプレートマッチングをおこなう場合でもテンプレートサイズを縮小することがない。これにより、オクルージョンの発生する画像であっても、より精度の高い距離算出をおこなうことができる。
【0124】
ここで、一方の画像からエッジを抽出したエッジ抽出画像に基準テンプレートを設定することで、テンプレートマッチングをおこなう箇所が被写体境界部分であるか否か容易に判別することができる。これにより、被写体境界部分である場合にのみ、テンプレートの変形をおこなうことができ、必要以上に処理負荷を増大させることなく、距離算出精度の向上を図ることができる。
【0125】
また、テンプレートを変形する際は、特徴点とエッジの双方により近い領域を追加するので、特徴点付近でのマッチング精度の高いテンプレートとすることができる。
【0126】
ここで、変形テンプレートでのマッチングにおける相違度が閾値以上となる場合にのみ、サイズを縮小したテンプレートを用いたテンプレートマッチングをおこなうので、距離算出精度の低下をもたらすテンプレートサイズの縮小を必要最小限にとどめることができる。
【0127】
また、縮小テンプレートを用いたテンプレートマッチングは、変形テンプレートでマッチングがとれた位置の周辺でおこなうので、テンプレートサイズが小さくなることで増大する探索時間を抑えることができる。
【0128】
なお、サイズの小さいテンプレートを用いたテンプレートマッチングでは、照合のピークが複数現れることがあるが、このような場合に、変形テンプレートでの照合位置に最も近い照合を採用することで、より正確なマッチングを効率的におこなうことができる。
【0129】
さらに、設定された縮小テンプレートのサイズが、例えば、必要な距離算出精度を担保できないほど小さいか否かを基準値との比較により判別し、基準値以下のサイズとなる場合には、マッチング対象としている特徴点を除外するので、一定水準の距離算出精度を確保することができる。
【0130】
また、本発明を、例えば、平行ステレオ構成の複眼カメラに適用することで、精度の高い距離算出を撮像時におこなうことができる。
【0131】
上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【0132】
例えば、上記実施形態では、撮像画像からエッジ抽出したエッジ抽出画像を生成することで、基準テンプレート内がエッジで分断されているか否かを判別するようにしたが、被写体境界であることが判別できるのであれば、判別方法はこれに限られず任意である。例えば、Shift Mean法などによるセグメンテーションをおこない、セグメント境界から被写体境界を判別するようにしてもよい。
【0133】
また、本発明を上記実施形態で例示したデジタルカメラ1のような撮像装置で実現する場合においては、本発明にかかる構成や機能を予め備えた撮像装置として提供できる他、制御部210の各機能と同様の機能を実現するプログラムを適用することにより、既存の撮像装置を本発明にかかる撮像装置をして機能させることもできる。この場合、平行ステレオの構成となっている撮像装置であることが望ましいが、撮像手段が単一の撮像装置であっても、同一の被写体について光軸位置の異なる画像を取得することができれば、本発明の適用により、テンプレートマッチングによる距離算出をおこなうことができる。
【0134】
例えば、上記実施形態では、平行ステレオの撮像装置として本発明を実現した場合を例示したが、撮像機能のない装置(例えば、パーソナルコンピュータなど)として本発明の画像処理装置を実現してもよい。
【0135】
すなわち、上記実施形態では、本発明を平行ステレオ構成の複眼カメラに適用した場合を例示したが、同一被写体について視差のある複数の画像を得ることができるのであれば、撮像装置以外の装置に本発明を適用することができる。
【0136】
例えば、3Dモデリングをおこなう装置に本発明を適用することもできる。すなわち、当該装置で図3に示したような機能構成を実現することにより、本実施形態にかかるデジタルカメラ1のような平行ステレオカメラで得られる光軸方向の異なる2つの撮像画像を当該装置に入力し、上述したような各処理と同様の処理をおこなうことで、当該装置内において、各特徴点における撮影距離を算出して3Dモデリングに利用することができる。
【0137】
この場合も、プログラムを適用することで、既存の装置を本発明にかかる画像処理装置として機能させることができる。
【0138】
このようなプログラムの適用方法は任意であり、例えば、CD−ROMやメモリカードなどの記憶媒体に格納して適用できる他、例えば、インターネットなどの通信媒体を介して適用することもできる。
【符号の説明】
【0139】
1…デジタルカメラ、10A…対象画像、10B…参照画像、11A…エッジ抽出画像、100A…第1撮像部、110A…光学装置、120A…イメージセンサ部、100B…第2撮像部、110B…光学装置、120B…イメージセンサ部、200…データ処理部、210…制御部、211…動作モード処理部、212…撮像制御部、213…特徴点抽出部、214…テンプレート設定部、215…距離算出部、220…画像処理部、230…画像メモリ、240…画像出力部、250…記憶部、260…外部記憶部、300…インタフェース部、310…表示部、320…外部インタフェース部、330…操作部、BT…基準テンプレート、TT1…変形テンプレート、TT2…縮小テンプレート、R1…(特徴点を含む)分断領域、R2…(特徴点を含まない)分断領域
【特許請求の範囲】
【請求項1】
複数の画像間でテンプレートマッチングをおこなう画像処理装置において、
同一被写体について視差のある2以上の画像を取得する画像取得手段と、
前記画像取得手段が取得した画像の一方で特徴点を設定する特徴点設定手段と、
前記特徴点設定手段が設定した特徴点を含むテンプレートを基準テンプレートとして設定するテンプレート設定手段と、
前記テンプレート設定手段が設定した基準テンプレート内の画像が、エッジによって分断されているか否かを判別する画像判別手段と、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する変形テンプレート設定手段と、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう照合手段と、
前記照合手段によるテンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する距離算出手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記画像から前記エッジを抽出したエッジ抽出画像を生成するエッジ抽出画像生成手段をさらに備え、
前記テンプレート設定手段は、該エッジ抽出画像生成手段が生成したエッジ抽出画像上で前記基準テンプレートを設定する、
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記変形テンプレート設定手段は、前記追加する領域を、前記エッジまでの距離および前記特徴点までの距離に基づいて決定する、
ことを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記変形テンプレート設定手段は、前記変形テンプレートを用いた照合での相違度が閾値以上となる場合、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除した縮小テンプレートを設定する縮小テンプレート設定手段をさらに備え、
前記照合手段は、前記変形テンプレートを用いたテンプレートマッチングでマッチングがとれた位置に基づいて、前記縮小テンプレートを用いたテンプレートマッチングをおこなう、
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記照合手段は、前記縮小テンプレートを用いたテンプレートマッチングで複数のマッチングがとれた場合、前記変形テンプレートで照合された位置に最も近い位置でのマッチングを採用する、
ことを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記照合手段は、前記縮小テンプレートのサイズが基準値以下となる場合、当該特徴点を処理対象から除外する、
ことを特徴とする請求項4または5に記載の画像処理装置。
【請求項7】
前記画像取得手段は、光軸位置の異なる2以上の撮像手段を備える、
ことを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項8】
画像処理装置によって複数の画像間でテンプレートマッチングをおこなうための画像照合方法において、
同一被写体について視差のある2以上の画像を取得する画像取得ステップと、
前記画像取得ステップで取得された画像の一方で特徴点を設定する特徴点設定ステップと、
前記特徴点設定ステップで設定された特徴点を含むテンプレートを基準テンプレートとして設定するテンプレート設定ステップと、
前記テンプレート設定ステップで設定された基準テンプレート内の画像が、エッジによって分断されているか否かを判別する画像判別ステップと、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する変形テンプレート設定ステップと、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう照合ステップと、
前記照合ステップでのテンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する距離算出ステップと、
を含むことを特徴とする画像照合方法。
【請求項9】
複数の画像間でテンプレートマッチングをおこなう画像処理装置を制御するコンピュータに、
同一被写体について視差のある2以上の画像を取得する機能と、
前記取得された画像の一方で特徴点を設定する機能と、
前記設定された特徴点を含むテンプレートを基準テンプレートとして設定する機能と、
前記設定された基準テンプレート内の画像が、エッジによって分断されているか否かを判別する機能と、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する機能と、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう機能と、
前記テンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する機能と、
を実行させることを特徴とするプログラム。
【請求項1】
複数の画像間でテンプレートマッチングをおこなう画像処理装置において、
同一被写体について視差のある2以上の画像を取得する画像取得手段と、
前記画像取得手段が取得した画像の一方で特徴点を設定する特徴点設定手段と、
前記特徴点設定手段が設定した特徴点を含むテンプレートを基準テンプレートとして設定するテンプレート設定手段と、
前記テンプレート設定手段が設定した基準テンプレート内の画像が、エッジによって分断されているか否かを判別する画像判別手段と、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する変形テンプレート設定手段と、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう照合手段と、
前記照合手段によるテンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する距離算出手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記画像から前記エッジを抽出したエッジ抽出画像を生成するエッジ抽出画像生成手段をさらに備え、
前記テンプレート設定手段は、該エッジ抽出画像生成手段が生成したエッジ抽出画像上で前記基準テンプレートを設定する、
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記変形テンプレート設定手段は、前記追加する領域を、前記エッジまでの距離および前記特徴点までの距離に基づいて決定する、
ことを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記変形テンプレート設定手段は、前記変形テンプレートを用いた照合での相違度が閾値以上となる場合、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除した縮小テンプレートを設定する縮小テンプレート設定手段をさらに備え、
前記照合手段は、前記変形テンプレートを用いたテンプレートマッチングでマッチングがとれた位置に基づいて、前記縮小テンプレートを用いたテンプレートマッチングをおこなう、
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記照合手段は、前記縮小テンプレートを用いたテンプレートマッチングで複数のマッチングがとれた場合、前記変形テンプレートで照合された位置に最も近い位置でのマッチングを採用する、
ことを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記照合手段は、前記縮小テンプレートのサイズが基準値以下となる場合、当該特徴点を処理対象から除外する、
ことを特徴とする請求項4または5に記載の画像処理装置。
【請求項7】
前記画像取得手段は、光軸位置の異なる2以上の撮像手段を備える、
ことを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項8】
画像処理装置によって複数の画像間でテンプレートマッチングをおこなうための画像照合方法において、
同一被写体について視差のある2以上の画像を取得する画像取得ステップと、
前記画像取得ステップで取得された画像の一方で特徴点を設定する特徴点設定ステップと、
前記特徴点設定ステップで設定された特徴点を含むテンプレートを基準テンプレートとして設定するテンプレート設定ステップと、
前記テンプレート設定ステップで設定された基準テンプレート内の画像が、エッジによって分断されているか否かを判別する画像判別ステップと、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する変形テンプレート設定ステップと、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう照合ステップと、
前記照合ステップでのテンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する距離算出ステップと、
を含むことを特徴とする画像照合方法。
【請求項9】
複数の画像間でテンプレートマッチングをおこなう画像処理装置を制御するコンピュータに、
同一被写体について視差のある2以上の画像を取得する機能と、
前記取得された画像の一方で特徴点を設定する機能と、
前記設定された特徴点を含むテンプレートを基準テンプレートとして設定する機能と、
前記設定された基準テンプレート内の画像が、エッジによって分断されているか否かを判別する機能と、
前記基準テンプレート内の画像が分断されていると判別された場合に、前記分断された領域のうち前記特徴点を含んでいない領域を前記基準テンプレートから削除し、該削除した領域と同じ面積の領域を、前記分断された領域のうち前記特徴点が含まれている領域に、前記エッジを越えないように追加した変形テンプレートを設定する機能と、
少なくとも前記基準テンプレートもしくは前記変形テンプレートのいずれかを用いて、前記画像の他方に対するテンプレートマッチングをおこなう機能と、
前記テンプレートマッチングでマッチングのとれた前記特徴点までの撮影距離を算出する機能と、
を実行させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2010−165248(P2010−165248A)
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願番号】特願2009−8010(P2009−8010)
【出願日】平成21年1月16日(2009.1.16)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願日】平成21年1月16日(2009.1.16)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
[ Back to top ]