(57)【要約】【課題】被写体上の指定された２点間の長さを精度良く測定する撮像装置を提供する。【解決手段】被写体の指定された２点間の長さを測定する。撮像動作部１００は、同一の被写体に対する１回の撮像で、視差のある１組のペア画像を取得する。表示部３１０は、取得されたペア画像の少なくとも一方の画像に基づく表示画像を表示する。操作部３３０は、表示画像上における被写体上の始点及び終点の指定を受け付ける。制御部２１０は、１又は複数組のペア画像に基づいて、指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出し、算出した実空間上の始点及び終点位置に基づいて、被写体上の始点から終点までの長さを取得する。【選択図】図２
2011232330.tif 000002
【特許請求の範囲】
【請求項１】
同一の被写体に対する１回の撮像で、視差のある１組のペア画像を取得する撮像部と、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示部と、
前記表示画像上における前記被写体上の始点及び終点の指定を受け付ける受付部と、
１又は複数組の前記ペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出し、算出した実空間上の始点及び終点位置に基づいて、前記被写体上の始点から終点までの長さを取得する長さ取得部と、を備える、
ことを特徴とする撮像装置。
【請求項２】
前記長さ取得部は、前記指定された被写体上の始点及び終点が１組の前記ペア画像中に収まる場合、当該１組のペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出する、
ことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記長さ取得部は、前記指定された被写体上の始点及び終点が同じ組の前記ペア画像中に収まっていない場合、前記撮像部による複数回の撮像によって得られた複数組の前記ペア画像における前記被写体の画像部分に基づいて、前記始点が収まっているペア画像が撮像された位置に対する前記終点が収まっているペア画像が撮像された位置の相対座標を算出し、算出した相対座標に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出する、
ことを特徴とする請求項１又は２に記載の撮像装置。
【請求項４】
前記長さ取得部は、前記被写体までの距離と奥行きの精度との相対誤差を算出し、算出した相対誤差が所定値よりも大きい場合、前記撮像部による複数回の撮像によって得られた複数組の前記ペア画像における、前記被写体より手前に存在する他の被写体の画像部分に基づいて、前記始点が収まっているペア画像が撮像された位置に対する前記終点が収まっているペア画像が撮像された位置の相対座標を算出し、算出した相対座標に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出する、
ことを特徴とする請求項１乃至３の何れか１項に記載の撮像装置。
【請求項５】
前記相対誤差（ΔＺ／Ｚ）は、（ｐ／Ｂ）・（Ｚ／ｆ）であり、Ｚは被写体までの距離、ΔＺは奥行きの精度、Ｂは平行移動距離、ｆは焦点距離、ｐは撮像素子のピクセルサイズ、である、
ことを特徴とする請求項４に記載の撮像装置。
【請求項６】
前記表示部は、前記受付部によって受け付けられた被写体上の始点及び終点を、前記表示画像上に重畳して表示する、
ことを特徴とする請求項１乃至５の何れか１項に記載の撮像装置。
【請求項７】
同一の被写体に対する１回の撮像で、視差のある１組のペア画像を取得する撮像部を有する撮像装置で前記被写体上における指定された２点間の長さを測定する長さ測定方法であって、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示ステップと、
前記表示画像上における前記被写体上の始点及び終点の指定を受け付ける受付ステップと、
１又は複数組の前記ペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出し、算出した実空間上の始点及び終点位置に基づいて、前記被写体上の始点から終点までの長さを取得する長さ取得ステップと、を含む、
ことを特徴とする長さ測定方法。
【請求項８】
同一の被写体に対する１回の撮像で、視差のある１組のペア画像を取得する撮像部を有する撮像装置を制御するコンピュータに、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示機能と、
前記表示画像上における前記被写体上の始点及び終点の指定を受け付ける受付機能と、
１又は複数組の前記ペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出し、算出した実空間上の始点及び終点位置に基づいて、前記被写体上の始点から終点までの長さを取得する長さ取得機能と、を実現させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体の長さを測定する撮像装置と測定方法、及びプログラムに関する。
【背景技術】
【０００２】
２つの撮像部を備え立体視用の画像を撮像できる、いわゆるステレオカメラはよく知られている（例えば、特許文献１参照）。このステレオカメラでは、各撮像部によって同一の被写体を同時に撮像し、右眼用画像と左眼用画像との２種類の画像を取得する。
【０００３】
また、複数のステレオカメラを同時に使用することで被写体までの距離を測定する技術が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−３１２２号公報
【特許文献２】特開２００４−０９３４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ステレオカメラ等の撮像装置を用いて、被写体上のユーザが指定した２点間の長さを精度良く測定する技術について、未だ有益な提案がなされていないのが実情である。
【０００６】
本発明は上記実情に鑑みてなされたものであり、被写体上の指定された２点間の長さを精度良く測定する撮像装置と測定方法ならびにこれらをコンピュータ上で実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の第１の観点に係る撮像装置は、
同一の被写体に対する１回の撮像で、視差のある１組のペア画像を取得する撮像部と、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示部と、
前記表示画像上における前記被写体上の始点及び終点の指定を受け付ける受付部と、
１又は複数組の前記ペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出し、算出した実空間上の始点及び終点位置に基づいて、前記被写体上の始点から終点までの長さを取得する長さ取得部と、を備えることを特徴とする。
【０００８】
上記構成の撮像装置において、
前記長さ取得部は、前記指定された被写体上の始点及び終点が１組の前記ペア画像中に収まる場合、当該１組のペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出する、ようにしてもよい。
【０００９】
また、上記構成の撮像装置において、
前記長さ取得部は、前記指定された被写体上の始点及び終点が同じ組の前記ペア画像中に収まっていない場合、前記撮像部による複数回の撮像によって得られた複数組の前記ペア画像における前記被写体の画像部分に基づいて、前記始点が収まっているペア画像が撮像された位置に対する前記終点が収まっているペア画像が撮像された位置の相対座標を算出し、算出した相対座標に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出する、ようにしてもよい。
【００１０】
また、上記構成の撮像装置において、
前記長さ取得部は、前記被写体までの距離と奥行きの精度との相対誤差を算出し、算出した相対誤差が所定値よりも大きい場合、前記撮像部による複数回の撮像によって得られた複数組の前記ペア画像における、前記被写体より手前に存在する他の被写体の画像部分に基づいて、前記始点が収まっているペア画像が撮像された位置に対する前記終点が収まっているペア画像が撮像された位置の相対座標を算出し、算出した相対座標に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出する、ようにしてもよい。
【００１１】
上記の場合、前記相対誤差（ΔＺ／Ｚ）は、（ｐ／Ｂ）・（Ｚ／ｆ）であり、Ｚは被写体までの距離、ΔＺは奥行きの精度、Ｂは平行移動距離、ｆは焦点距離、ｐは撮像素子のピクセルサイズ、であることが好ましい。
【００１２】
また、上記構成の撮像装置において、
前記表示部は、前記受付部によって受け付けられた被写体上の始点及び終点を、前記表示画像上に重畳して表示する、ようにしてもよい。
【００１３】
上記目的を達成するために、本発明の第２の観点に係る長さ測定方法は、
同一の被写体に対する１回の撮像で、視差のある１組のペア画像を取得する撮像部を有する撮像装置で前記被写体上における指定された２点間の長さを測定する長さ測定方法であって、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示ステップと、
前記表示画像上における前記被写体上の始点及び終点の指定を受け付ける受付ステップと、
１又は複数組の前記ペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出し、算出した実空間上の始点及び終点位置に基づいて、前記被写体上の始点から終点までの長さを取得する長さ取得ステップと、を含むことを特徴とする。
【００１４】
上記目的を達成するために、本発明の第３の観点に係るプログラムは、
同一の被写体に対する１回の撮像で、視差のある１組のペア画像を取得する撮像部を有する撮像装置を制御するコンピュータに、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示機能と、
前記表示画像上における前記被写体上の始点及び終点の指定を受け付ける受付機能と、
１又は複数組の前記ペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出し、算出した実空間上の始点及び終点位置に基づいて、前記被写体上の始点から終点までの長さを取得する長さ取得機能と、を実現させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、被写体上の指定された２点間の長さを精度良く測定することが可能となる。
【図面の簡単な説明】
【００１６】
【図１Ａ】本発明の実施形態にかかるデジタルカメラの外観構成を示す図である。
【図１Ｂ】本発明の実施形態における平行ステレオの概念を示す図である。
【図２】本発明の実施形態にかかるデジタルカメラの構成を示すブロック図である。
【図３】長さ測定処理を説明するためのフローチャートである。
【図４】図３に示す「長さ測定処理」で実行される測定モード１の処理を説明するためのフローチャートである。
【図５】三次元モデル生成処理を説明するためのフローチャートである。
【図６】図３に示す「長さ測定処理」で実行される測定モード２の処理を説明するためのフローチャートである。
【図７】カメラ位置推定処理を説明するためのフローチャートである。
【図８】座標変換パラメータ取得処理を説明するためのフローチャートである。
【図９】測定モード３の処理を説明するためのフローチャートである。
【図１０】本発明の被写体の測定開始位置及び測定終了位置の指定方法について説明するための図であり、（ａ）は、タッチパネルで指定する場合を示し、（ｂ）は、十字ボタンを使用して指定する場合を示す。
【図１１】測定モード３の処理について説明するための図である。
【図１２】測定結果の表示例を示す図である。
【図１３】位置情報の算出について説明するための図（その１）である。
【図１４】位置情報の算出について説明するための図（その２）である。
【発明を実施するための形態】
【００１７】
本発明にかかる実施形態を、図面を参照して以下に説明する。本実施形態では、本発明をデジタルスチルカメラ（以下、デジタルカメラという）によって実現した場合を例示する。図１Ａに示す本実施形態に係るデジタルカメラ１は、一般的なデジタルカメラが有する機能を備えると共に、撮像にかかる構成を２つ備えた、いわゆる複眼カメラ（ステレオカメラ）である。デジタルカメラ１は、このようなステレオカメラとしての構成を、いわゆるコンパクトカメラとして実現したものである。
【００１８】
デジタルカメラ１は、撮像した画像を用いて三次元モデリング（３Ｄモデリング）を行う機能を有している。この３Ｄモデリング機能において、本実施形態に係るデジタルカメラ１では、３Ｄモデリングに好適な撮像画像が得られるよう、パターン投影法が採用されている。
【００１９】
図２は、デジタルカメラ１の構成を示すブロック図である。デジタルカメラ１は、図示するように、撮像動作部１００、データ処理部２００、インタフェース（Ｉ／Ｆ）部３００、などにより構成される。
【００２０】
撮像動作部１００は、撮像時の動作を行う部分であり、図２に示すように、第１撮像部１１０、第２撮像部１２０、などから構成される。
【００２１】
上述したように、デジタルカメラ１はステレオカメラ（複眼カメラ）であって、第１撮像部１１０と第２撮像部１２０とを有する。第１撮像部１１０と第２撮像部１２０の構成は同一である。
【００２２】
以下、第１撮像部１１０についての構成には１１０番台の参照符号、第２撮像部１２０についての構成には１２０番台の参照符号をそれぞれ付す。これらの参照符号において１桁目が同値となるものは同一の構成であることを示す。
【００２３】
図２に示すように、第１撮像部１１０（第２撮像部１２０）は、光学装置１１１（１２１）やイメージセンサ部１１２（１２２）などから構成される。
【００２４】
光学装置１１１（１２１）は、例えば、レンズ、絞り機構、シャッタ機構、などを含み、撮像にかかる光学的動作を行う。即ち、光学装置１１１（１２１）の動作により、入射光が集光されるとともに、焦点距離、絞り、シャッタスピードなどといった、画角やピント、露出などにかかる光学的要素の調整がなされる。
【００２５】
なお、光学装置１１１（１２１）に含まれるシャッタ機構はいわゆるメカニカルシャッタである。しかし、イメージセンサの動作のみでシャッタ動作を行う場合には、光学装置１１１（１２１）にシャッタ機構が含まれていなくてもよい。また、光学装置１１１（１２１）は、後述する制御部２１０による制御によって動作する。
【００２６】
イメージセンサ部１１２（１２２）は、光学装置１１１（１２１）によって集光された入射光に応じた電気信号を生成する。イメージセンサ部１１２（１２２）は、例えば、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementally Metal Oxide Semiconductor）などのイメージセンサから構成される。イメージセンサ部１１２（１２２）は、光電変換を行うことで、受光に応じた電気信号を発生してデータ処理部２００に出力する。
【００２７】
上述したように、第１撮像部１１０と第２撮像部１２０は同一の構成である。より詳細には、レンズの焦点距離ｆやＦ値、絞り機構の絞り範囲、イメージセンサのサイズや画素数、配列、画素面積などの各仕様がすべて同一である。
【００２８】
図１Ａに示すように、光学装置１１１が備えるレンズと光学装置１２１が備えるレンズは、デジタルカメラ１の外面における同一面上に設けられている。
【００２９】
より詳細には、これらのレンズは、シャッタボタンが上になる方向でデジタルカメラ１を水平にした場合に、各々の中心位置が水平方向で同一線上となるように、所定の間隔を隔てて配置されている。つまり、第１撮像部１１０と第２撮像部１２０とを同時に動作させた場合、同一被写体についての２つの画像（ペア画像）が撮像される。この場合、各画像における光軸位置が横方向にずれている画像となる。
【００３０】
より詳細には、第１撮像部１１０と第２撮像部１２０は、図１Ｂの透視射影モデルに示すような光学的特性が得られるように配置される。図１Ｂに示す透視射影モデルは、Ｘ、Ｙ、Ｚからなる三次元直交座標系に基づくものであり、第１撮像部１１０についてのこの座標系を以下「カメラ座標」と呼ぶ。図１Ｂでは、第１撮像部１１０の光学中心を原点としたカメラ座標を示している。
【００３１】
カメラ座標においては、Ｚ軸をカメラの光学方向に一致する方向とし、Ｘ軸とＹ軸はそれぞれ画像の横方向と縦方向に平行する。ここで、光軸と画像座標面の交点を原点（即ち、光学中心）とし、イメージセンサの画素間隔を換算してカメラ座標と長さの単位を合わせた場合、第１撮像部１１０についての画像座標面で被写体Ａ１を示す画像座標を（ｕ１，ｖ１）とし、第２撮像部１２０についての画像座標面では（ｕ'１，ｖ'１）とする。
【００３２】
第１撮像部１１０と第２撮像部１２０は、それぞれの光軸が互いに平行（即ち、輻輳角が０）になり、かつ、第１撮像部１１０についての画像座標ｕ軸と第２撮像部１２０についての画像座標ｕ'軸が同一線上で同じ方向となるよう配置される（即ち、エピポーラ線が一致）。また、上述したように、第１撮像部１１０および第２撮像部１２０の焦点距離ｆや画素間隔は同じであり、光軸と画像座標面とが垂直に交わっている。このような構成は「平行ステレオ」と呼ばれ、デジタルカメラ１の第１撮像部１１０と第２撮像部１２０は平行ステレオの構成となっている。
【００３３】
図２に戻り、デジタルカメラ１の構成説明を続ける。データ処理部２００は、第１撮像部１１０および第２撮像部１２０による撮像動作によって生成された電気信号を処理し、撮像画像を示すデジタルデータを生成する。さらに、データ処理部２００は、撮像画像に対する画像処理などを行う。図２に示すように、データ処理部２００は、制御部２１０、画像処理部２２０、画像メモリ２３０、画像出力部２４０、記憶部２５０、外部記憶部２６０、などから構成される。
【００３４】
制御部２１０は、例えば、ＣＰＵ（Central Processing Unit）などのプロセッサや、ＲＡＭ（Random Access Memory）などの主記憶装置などから構成される。制御部２１０は、後述する記憶部２５０などに格納されているプログラムを実行することで、デジタルカメラ１の各部を制御する。また、本実施形態では、所定のプログラムを実行することで、後述する各処理にかかる機能が制御部２１０によって実現される。本実施形態では、後述する各処理にかかる動作を制御部２１０が行うものとするが、制御部２１０とは独立した専用プロセッサなどが行うように構成してもよい。
【００３５】
画像処理部２２０は、例えば、ＡＤＣ（Analog-Digital Converter）、バッファメモリ、画像処理用のプロセッサ（いわゆる、画像処理エンジン）などから構成され、イメージセンサ部１１２および１２２によって生成された電気信号に基づいて、撮像画像を示すデジタルデータを生成する。
【００３６】
即ち、ＡＤＣが、イメージセンサ部１１２（１２２）から出力されたアナログ電気信号をデジタル信号に変換して順次バッファメモリに格納する。そして、画像処理エンジンが、バッファされたデジタルデータに対し、いわゆる現像処理などを行う。これにより、画質の調整やデータ圧縮などが行われる。
【００３７】
画像メモリ２３０は、例えば、ＲＡＭやフラッシュメモリなどの記憶装置から構成され、画像処理部２２０によって生成された撮像画像データや、制御部２１０によって処理される画像データなどを一時的に格納する。
【００３８】
画像出力部２４０は、例えば、ＲＧＢ信号の生成回路などから構成され、画像メモリ２３０に展開された画像データをＲＧＢ信号などに変換して表示画面（後述する表示部３１０など）に出力する。
【００３９】
記憶部２５０は、例えば、ＲＯＭ（Read Only Memory）やフラッシュメモリなどの記憶装置から構成され、デジタルカメラ１の動作に必要なプログラムやデータなどを格納する。本実施形態では、制御部２１０などが実行する動作プログラムや、動作プログラムの実行時に必要となるパラメータや演算式などのデータが記憶部２５０に格納されている。
【００４０】
外部記憶部２６０は、例えば、メモリカードなどといった、デジタルカメラ１に着脱可能な記憶装置から構成され、デジタルカメラ１で撮像した画像データなどを格納する。
【００４１】
Ｉ／Ｆ（インタフェース）部３００は、デジタルカメラ１と、ユーザあるいは外部装置との間のインタフェースに係る機能を担う処理部である。Ｉ／Ｆ部３００は、表示部３１０、外部Ｉ／Ｆ部３２０、操作部３３０などから構成される。
【００４２】
表示部３１０は、例えば、液晶表示装置などから構成され、デジタルカメラ１を操作するために必要な種々の画面や、撮像時のライブビュー画像（ファインダ画像）、撮像画像、などを表示出力する。本実施形態では、表示部３１０は、画像出力部２４０からの画像信号（ＲＧＢ信号）などに基づいて撮像画像等の表示出力を行う。
【００４３】
外部Ｉ／Ｆ部３２０は、例えば、ＵＳＢ（Universal Serial Bus）コネクタやビデオ出力端子などから構成され、画像データなどを外部のコンピュータ装置へ転送したり、撮像画像などを外部のモニタ装置に表示出力したりする。
【００４４】
操作部３３０は、デジタルカメラ１の外面上に設けられている各種ボタンなどによって構成され、デジタルカメラ１の使用者による操作に応じた入力信号を生成して制御部２１０に送出する。操作部３３０を構成するボタンには、例えば、シャッタ動作を指示するためのシャッタボタンや、デジタルカメラ１の動作モードを指定するためのモードボタン、各種の設定操作を行うための十字キーや機能ボタン、などが含まれる。
【００４５】
以上、本発明を実現するために必要となるデジタルカメラ１の構成について説明したが、デジタルカメラ１は、このほかにも、一般的なデジタルカメラの機能を実現するための構成を備えているものとする。
【００４６】
次に、図３〜図９に示すフローチャートを参照して、上記構成のデジタルカメラ１が実行する長さ測定処理について説明する。
【００４７】
まず、制御部２１０は、ユーザにより測定開始位置が指定されたか否かを判別する（ステップＳ１０１）。制御部２１０は、測定開始位置が指定されていないと判別すると（ステップＳ１０１：ＮＯ）、再度ステップＳ１０１の処理を実行する。一方、制御部２１０は、測定開始位置が指定されたと判別すると（ステップＳ１０１：ＹＥＳ）、被写体の撮像を行う（ステップＳ１０２）。取得した撮像画像は、例えば、画像メモリ２３０に記憶される。
【００４８】
ここで、測定開始位置及び測定終了位置の指定方法について、図１０を参照して説明する。図１０（ａ）は、表示部３１０のタッチパネル画面で、被写体４００上における測定開始位置と測定終了位置をタッチすることにより指定する方法を示している。また、図１０（ｂ）は、画面上に表示されるポインタをデジタルカメラ１の十字ボタン３３１により動かして、被写体４００上における測定開始位置と測定終了位置を指定する方法を示している。
【００４９】
撮像後、制御部２１０は測定開始位置が一定以上動いたか否かを判別する（ステップＳ１０３）。例えば、ライブビュー画像（ファインダ画像）において、測定開始位置が前回の撮像時から所定ピクセル以上移動したか否かが判別される。なお、測定開始位置がライブビュー画像に含まれていない（即ち、測定開始位置がフレーミングアウトしている）場合には、ライブビュー画像中の被写体４００の位置が前回の撮像時から所定ピクセル以上移動したか否かを判別する。このようにして判別した結果、このようにして判別した結果、測定開始位置が一定以上動いた場合（ステップＳ１０３：ＹＥＳ）、制御部２１０は、再度撮像を行う（ステップＳ１０４）。測定開始位置が一定以上動いていない場合（ステップＳ１０３：ＮＯ）又はステップＳ１０４の処理後、制御部２１０は、ユーザにより測定終了位置が指定されたかどうか判別する（ステップＳ１０５）。制御部２１０は、ユーザにより測定終了位置が指定されたと判別すると（ステップＳ１０５：ＹＥＳ）、ステップＳ１０６の処理を行う。
【００５０】
一方、制御部２１０は、ユーザにより測定終了位置が指定されていないと判別すると（ステップＳ１０５：ＮＯ）、再度ステップＳ１０３の処理を実行する。
【００５１】
制御部２１０は、ステップＳ１０５の処理を完了した後、撮像回数が１回であるか否かを判別する（ステップＳ１０６）。撮像回数が１回であると判別すると（ステップＳ１０６：ＹＥＳ）、測定モード１の処理を行う（ステップＳ１０７）。
【００５２】
ここで、図４に示すフローチャートを参照して、測定モード１の処理について説明する。本実施形態のデジタルカメラ１は、被写体上における任意の２点間の長さを測定する。また、その際、デジタルカメラ１は、被写体までの距離や被写体の大きさに応じて測定方法（測定モード）を変えることができる。測定モード１の処理は、撮像位置から被写体までの距離が近く、且つ１組のペア画像中に被写体が収まる場合に対応した処理である。この処理では、１組のペア画像における視差により長さを測定する。まず、制御部２１０は、三次元モデル生成処理を実行する（ステップＳ２０１）。
【００５３】
図５に示すフローチャートを参照して、三次元モデル生成処理について説明する。なお、三次元モデル生成処理は、１組のペア画像に基づいて三次元モデルを生成する処理である。つまり、三次元モデル生成処理は、一つのカメラ位置から見た三次元モデルを生成する処理と考えることができる。
【００５４】
まず、制御部２１０は、特徴点の候補を抽出する（ステップＳ３０１）。例えば、制御部２１０は、画像Ａ（第１撮像部１１０による撮像の結果得られた画像）に対してコーナー検出を行う。コーナー検出においては、ハリスなどのコーナー特徴量が、所定閾値以上かつ所定半径内で最大になる点がコーナー点として選択される。従って、被写体の先端など、他の点に対して特徴のある点が特徴点として抽出される。
【００５５】
制御部２１０は、ステップＳ３０１の処理を完了すると、ステレオマッチングを実行することで、画像Ａの特徴点に対応する点（対応点）を画像Ｂ（第２撮像部１２０による撮像の結果得られた画像）から探す（ステップＳ３０２）。具体的には、制御部２１０は、テンプレートマッチングにより類似度が所定閾値以上かつ最大のもの（相違度が所定閾値以下かつ最小のもの）を対応点とする。テンプレートマッチングには、例えば、残差絶対値和（ＳＡＤ）、残差平方和（ＳＳＤ）、正規化相関（ＮＣＣやＺＮＣＣ）、方向符号相関など、様々な既知の技法が利用可能である。
【００５６】
制御部２１０は、ステップＳ３０２の処理を完了すると、ステップＳ３０２において見つけられた対応点の視差情報、第１撮像部１１０および第２撮像部１２０の画角、基線長などから、特徴点の位置情報を算出する（ステップＳ３０３）。生成された特徴点の位置情報は、例えば、記憶部２５０に記憶される。
【００５７】
ここで、位置情報の算出について、詳細に説明する。図１３は、テンプレートマッチングを行った際の画像Ａおよび画像Ｂの例を示している。図１３において、画像Ａの被写体４００上の特徴点（ｕ１，ｖ１）についてのテンプレートマッチングにより画像Ｂの被写体４００上でマッチングがとれた位置が（ｕ'１，ｖ'１）であることが示されている。本実施形態に係るデジタルカメラ１は、第１撮像部１１０と第２撮像部１２０の光軸が水平方向に異なる平行ステレオカメラであるため、画像Ａと画像Ｂとの間には、マッチングがとれた位置についての視差（ｕ’−ｕ）が生じている。
【００５８】
ここで、テンプレートマッチングによってマッチングのとれた（照合された）特徴点に対応する実際の位置を、図１Ｂに示したカメラ座標でＡ１（Ｘ１、Ｙ１、Ｚ１）とした場合、Ａ１の座標（Ｘ１、Ｙ１、Ｚ１）はそれぞれ、以下の式（１）〜式（３）で表される。上述したように、（ｕ１，ｖ１）は、第１撮像部１１０についての画像座標面（即ち、対象画像）への射影点を示している。（ｕ'１，ｖ'１）は、第２撮像部１２０についての画像座標面（即ち、参照画像）への射影点を示している。また、ｂは、第１撮像部１１０および第２撮像部１２０の光軸間の長さ（基線長）を示す。
【００５９】
［数１］
Ｘ１＝（ｂ＊ｕ１）／（ｕ'１−ｕ１）          （１）
【００６０】
［数２］
Ｙ１＝（ｂ＊ｖ１）／（ｕ'１−ｕ１）          （２）
【００６１】
［数３］
Ｚ１＝（ｂ＊ｆ）／（ｕ'１−ｕ１）            （３）
【００６２】
この式（３）は、三角測量の原理によって導かれるものである。三角測量の原理を、図１４を参照して説明する。
【００６３】
図１４は、図１Ｂに示した平行ステレオ構成におけるカメラ座標を上から見た模式図である。第１撮像部１１０による視点がカメラ座標となっているので、位置Ａ１のＸ軸方向の座標はカメラ座標上のＸ１で与えられ、この数値は図１４に示した式（Ａ）で求められる。
【００６４】
一方、第２撮像部１２０からの視点におけるＡ１のＸ軸方向の座標は、基線長ｂとカメラ座標のＸ１との和であり、図１４に示した式（Ｂ）で求められ、式（Ａ）と式（Ｂ）から、上記式（３）が導き出される。
【００６５】
制御部２１０は、ステップＳ３０３の処理を完了すると、ステップＳ３０３において算出された特徴点の位置情報を基にドロネー三角形分割を実行し、ポリゴン化を実行する（ステップＳ３０４）。生成されたポリゴン情報は、例えば、記憶部２５０に記憶される。制御部２１０は、ステップＳ３０４の処理を完了すると、三次元モデル生成処理を終了する。
【００６６】
なお、特徴点の数が少ない場合、被写体の形状情報が欠損し、被写体の忠実な三次元モデルが得られない。一方、より多くの特徴点が得られるように、特徴点の候補を抽出する条件やステレオマッチングの条件を緩くした場合、次のような不都合が生じる。即ち、不適切な点が特徴点の候補に含まれたり、ステレオマッチングで誤対応が発生したりして、位置精度が低下、つまり、モデリング精度が悪化する。このため、モデリング精度の悪化を防ぎつつ、被写体の忠実な三次元モデルを得ることができるように、適切な数の特徴点が抽出されるようにする必要がある。
【００６７】
図４のフローに戻って、制御部２１０は、相対誤差を計算する（ステップＳ２０２）。
【００６８】
ここで、相対誤差について説明する。相対誤差は以下の式（４）を用いて求められる。
【００６９】
［数４］
ΔＺ／Ｚ＝（ｐ／Ｂ）・（Ｚ／ｆ）          （４）
【００７０】
なお、Ｚは、被写体までの距離、ΔＺは奥行きの精度、ΔＺ／Ｚは相対誤差、Ｂは平行移動距離、ｆは焦点距離、ｐはイメージセンサのピクセルサイズを表す。すると、（ｐ／Ｂ）が精度となり、これに倍率（Ｚ／ｆ）を乗算することで、相対誤差ΔＺ／Ｚが求められる。
【００７１】
制御部２１０は、相対誤差が基準値以下であると判別すると（ステップＳ２０３：ＹＥＳ）、測定モード１の処理を終了する。図３のフローに戻り、制御部２１０は、三次元モデル上の測定開始位置及び測定終了位置の座標より求めた長さと相対誤差を表示して（ステップＳ１０９）、処理を終了する。
【００７２】
ステップＳ１０９では、例えば、図１２に示すように、相対誤差が２０％以下の場合、測定した長さとそのときの相対誤差が画面に表示される。
【００７３】
なお、相対誤差の値によっては、もう少し近くで撮像することで精度を上げることができるなどのアドバイスをユーザに提示しても良い。
【００７４】
図４のフローにおいて、制御部２１０は、相対誤差が基準値を超えると判別すると（ステップＳ２０３：ＮＯ）、測定方法を変えた測定を行う。このため、ユーザにその旨を通知し、カメラ位置をずらしてもう１回、被写体を撮像するように促す（ステップＳ２０４）。
【００７５】
その後、ユーザにより測定終了位置が指定された場合（ステップＳ２０５：ＹＥＳ）、制御部２１０は、被写体の撮像を行う（ステップＳ２０６）。
【００７６】
それから、制御部２１０は、三次元モデル生成処理を行う（ステップＳ２０７）。その後、制御部２１０は、測定モード３の処理を行って（ステップＳ２０８）、測定モード１の処理を終了する。測定モード３の処理については、後で詳述する。
【００７７】
図３のフローに戻り、撮像回数が１回でない場合、つまり測定終了位置が記録されるまでに複数回の撮像が行われた場合（ステップＳ１０６：ＮＯ）、制御部２１０は、測定モード２の処理を行う（ステップＳ１０８）。
【００７８】
ここで、図６のフローチャートを参照して、測定モード２の処理について説明する。測定モード２の処理は、撮像位置から被写体までの距離が近く、且つ被写体が大きくて１組のペア画像中に測定開始位置と測定終了位置が収まらない場合に対応した処理である。
【００７９】
例として、１回目で被写体の測定開始位置を撮像し、カメラ位置をずらして２回目で測定終了位置を撮像した場合、撮像された２組のペア画像の中から少なくとも３つの同じ特徴点を検出する。そして、これらの特徴点から、最初のカメラ位置に対する相対的な位置を取得し、それにより測定開始位置と測定終了位置の座標を得て、三角測量の原理により長さを測定する。なお、２回の撮像では始点（測定開始位置）と終点（測定終了位置）が収まらない場合には、始点から終点までを追跡するようにして複数回撮像を行い、上記と同じようにして、始点と終点との間の長さを測定する。
【００８０】
ここでは、２組のペア画像からカメラ位置を計算する方法について考える。まず、制御部２１０は、三次元モデル生成処理を行う（ステップＳ４０１）。制御部２１０は、ステップＳ４０１の処理を完了すると、カメラ位置推定処理を行う（ステップＳ４０２）。
【００８１】
ここで、図７のフローチャートを参照して、カメラ位置推定処理について説明する。まず、制御部２１０は、被合成三次元モデルおよび合成三次元モデルの双方から三次元空間上の特徴点を取得する（ステップＳ５０１）。例えば、制御部２１０は、被合成三次元モデル（もしくは、合成三次元モデル）の特徴点のうち、コーナー強度が高く、ステレオマッチングの一致度が高いものを選択する。または、制御部２１０は、ペア画像間でエピ線拘束を考慮した上で、ＳＵＲＦ（Ｓｐｅｅｄｅｄ−Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）特徴量によるマッチングを実行することで、特徴点を取得するようにしてもよい。ここで、最初の撮像により得られる三次元モデルであって、合成の基礎となる三次元モデルを被合成三次元モデルという。また、２回目以降の撮像により得られる三次元モデルであって、被合成三次元モデルに合成される三次元モデルを合成三次元モデルという。
【００８２】
制御部２１０は、ステップＳ５０１の処理を完了すると、被合成三次元モデルから３つの特徴点を選択する（ステップＳ５０２）。ここで、選択される３つの特徴点は、以下に示す（Ａ）および（Ｂ）の条件を満たすものが選択される。（Ａ）の条件は、３つの特徴点を頂点とする三角形の面積が小さすぎないこと、即ち、予め決められた面積以上であることである。（Ｂ）の条件は、３つの特徴点を頂点とする三角形が極端に鋭角な角を持たないこと、即ち、予め決められた角度以上であることである。例えば、制御部２１０は、上記（Ａ）および（Ｂ）の条件を満たす３つの特徴点が選択されるまで、ランダムに３つの特徴点を選択する。
【００８３】
制御部２１０は、ステップＳ５０２の処理を完了すると、合成三次元モデルが有する３つの特徴点を３つの頂点とする三角形の中から、ステップＳ５０２において選択された３つの特徴点を３つの頂点とする三角形と合同な三角形を探索する（ステップＳ５０３）。例えば、３辺の長さがほぼ等しい場合、２つの三角形は合同であると判別される。ステップＳ５０３の処理は、合成三次元モデルの特徴点のうち、ステップＳ５０２において被合成三次元モデルから選択された３つの特徴点に対応すると考えられる３つの特徴点を探索する処理と考えることもできる。なお、制御部２１０は、特徴点や周辺の色情報、またはＳＵＲＦ特徴量などで三角形の候補をあらかじめ絞ることで、探索を高速化してもよい。探索された三角形を示す情報（典型的には、当該三角形の頂点を構成する３つの特徴点の三次元空間上の座標を示す情報）は、例えば、記憶部２５０に記憶される。合同な三角形が複数ある場合、全ての三角形を示す情報が、記憶部２５０に記憶される。
【００８４】
制御部２１０は、ステップＳ５０３の処理を完了すると、ステップＳ５０３において、少なくとも１つの合同な三角形が探索されたか否かを判別する（ステップＳ５０４）。なお、探索された合同な三角形が多すぎる場合、合同な三角形が探索されなかったものとみなす仕様にしてもよい。
【００８５】
制御部２１０は、少なくとも１つの合同な三角形が探索されたと判別すると（ステップＳ５０４：ＹＥＳ）、合同な三角形を一つ選択する（ステップＳ５０５）。一方、制御部２１０は、合同な三角形が１つも探索されなかったと判別すると（ステップＳ５０４：ＮＯ）、ステップＳ５０２に処理を戻す。
【００８６】
制御部２１０は、ステップＳ５０５の処理を終了すると、座標変換パラメータ取得処理を実行する（ステップＳ５０６）。座標変換パラメータ取得処理については、図８に示すフローチャートを参照して、詳細に説明する。なお、座標変換パラメータ取得処理は、合成三次元モデルの座標を被合成三次元モデルの座標系の座標に変換するための、座標変換パラメータを取得する処理である。座標変換パラメータ取得処理は、ステップＳ５０２において選択された３つの特徴点と、ステップＳ５０５において選択された合同な三角形と、の組み合わせ毎に実行される。ここで、座標変換パラメータ取得処理は、以下の式（５）および式（６）で与えられる対応点ペア（特徴点ペア、頂点ペア）に対して、式（７）を満たす回転行列Ｒと移動ベクトルｔとを求める処理である。式（５）および式（６）のｐとｐ'とは、各々のカメラ視線から見た三次元空間上の座標を持つ。なお、Ｎは、対応点ペアのペア数である。
【００８７】
【数５】
2011232330.tif 000003
【００８８】
【数６】
2011232330.tif 000004
【００８９】
【数７】
2011232330.tif 000005
【００９０】
まず、制御部２１０は、以下の式（８）および式（９）に示すように、対応点ペアを設定する（ステップＳ６０１）。ここで、ｃ１とｃ２とは、対応する列ベクトルが対応点の座標になる行列である。この行列から回転行列Ｒと移動ベクトルｔとを直接求めることは難しい。しかしながら、ｐとｐ'との分布がほぼ等しいことから、対応点の重心を合わせてから回転すれば、対応点を重ね合わせることができる。このことを利用して、回転行列Ｒと移動ベクトルｔとを求める。
【００９１】
【数８】
2011232330.tif 000006
【００９２】
【数９】
2011232330.tif 000007
【００９３】
つまり、制御部２１０は、以下の式（１０）および式（１１）を用いて、特徴点の重心である重心ｔ１およびｔ２を求める（ステップＳ６０２）。
【００９４】
【数１０】
2011232330.tif 000008
【００９５】
【数１１】
2011232330.tif 000009
【００９６】
次に、制御部２１０は、以下の式（１２）および式（１３）を用いて、特徴点の分布である分布ｄ１およびｄ２を求める（ステップＳ６０３）。ここで、上述したように、分布ｄ１と分布ｄ２との間には、式（１４）の関係がある。
【００９７】
【数１２】
2011232330.tif 000010
【００９８】
【数１３】
2011232330.tif 000011
【００９９】
【数１４】
2011232330.tif 000012
【０１００】
次に、制御部２１０は、以下の式（１５）および式（１６）を用いて、分布ｄ１およびｄ２の特異値分解を実行する（ステップＳ６０４）。特異値は、降順に並べられているものとする。ここで、記号＊は複素共役転置を表す。
【０１０１】
【数１５】
2011232330.tif 000013
【０１０２】
【数１６】
2011232330.tif 000014
【０１０３】
次に、制御部２１０は、分布ｄ１およびｄ２が二次元以上であるか否かを判別する（ステップＳ６０５）。特異値は、分布の広がり具合に対応している。従って、最大の特異値とそれ以外の特異値との比率や、特異値の大きさを用いて判定がなされる。例えば、２番目に大きい特異値が、所定値以上かつ最大の特異値との比率が所定範囲内である場合に、分布が二次元以上と判定される。
【０１０４】
制御部２１０は、分布ｄ１およびｄ２が二次元以上でないと判別すると（ステップＳ６０５：ＮＯ）、回転行列Ｒを求めることができないので、エラー処理を実行し（ステップＳ６１３）、座標変換パラメータ取得処理を終了する。
【０１０５】
一方、制御部２１０は、分布ｄ１およびｄ２が二次元以上であると判別すると（ステップＳ６０５：ＹＥＳ）、関連付けＫを求める（ステップＳ６０６）。式（１４）〜（１６）から、回転行列Ｒは、以下の式（１７）のように表すことができる。ここで、関連付けＫを、式（１８）のように定義すると、回転行列Ｒは、式（１９）のようになる。
【０１０６】
【数１７】
2011232330.tif 000015
【０１０７】
【数１８】
2011232330.tif 000016
【０１０８】
【数１９】
2011232330.tif 000017
【０１０９】
ここで、固有ベクトルＵは、分布ｄ１およびｄ２の固有ベクトルに相当し、関連付けＫにより関連付けられる。関連付けＫの要素は、固有ベクトルが対応する場合は１か−１が、そうでない場合は０が与えられる。ところで、分布ｄ１およびｄ２が等しいことから、特異値も等しい。つまり、Ｓも等しい。実際には、分布ｄ１と分布ｄ２とには誤差が含まれているので、誤差を丸める。以上を考慮すると、関連付けＫは、以下の式（２０）のようになる。つまり、制御部２１０は、ステップＳ６０６において、式（２０）を計算する。
【０１１０】
【数２０】
2011232330.tif 000018
【０１１１】
制御部２１０は、ステップＳ６０６の処理を完了すると、回転行列Ｒを計算する（ステップＳ６０７）。具体的には、制御部２１０は、式（１９）と式（２０）とに基づいて、回転行列Ｒを計算する。計算により得られた回転行列Ｒを示す情報は、例えば、記憶部２５０に記憶される。
【０１１２】
制御部２１０は、ステップＳ６０７の処理を完了すると、分布ｄ１およびｄ２が二次元であるか否かを判別する（ステップＳ６０８）。例えば、最小の特異値が、所定値以下または最大の特異値との比率が所定範囲外である場合、分布ｄ１およびｄ２は二次元であると判別される。
【０１１３】
制御部２１０は、分布ｄ１およびｄ２が二次元ではないと判別すると（ステップＳ６０８：ＮＯ）、移動ベクトルｔを計算する（ステップＳ６１４）。ここで、分布ｄ１およびｄ２が二次元ではないことは、分布ｄ１およびｄ２が三次元であることを示す。ここで、ｐとｐ'は、以下の式（２１）の関係を満たす。式（２１）を変形すると、式（２２）のようになる。式（２２）と式（７）との対応から、移動ベクトルｔは、以下の式（２３）のようになる。
【０１１４】
【数２１】
2011232330.tif 000019
【０１１５】
【数２２】
2011232330.tif 000020
【０１１６】
【数２３】
2011232330.tif 000021
【０１１７】
一方、制御部２１０は、分布ｄ１およびｄ２が二次元であると判別すると（ステップＳ６０８：ＹＥＳ）、回転行列Ｒを検証し、回転行列Ｒが正常であるか否かを判別する（ステップＳ６０９）。分布が二次元の場合、特異値の１つが０になるので、式（１８）から判るように、関連付けが不定になる。つまり、Ｋの３行３列目の要素が１か−１のどちらかであるが、式（２０）では正しい符号を割り当てる保証がない。そこで、回転行列Ｒの検証が必要になる。検証は、回転行列Ｒの外積関係の確認や式（１４）による検算などである。ここでいう外積関係の確認とは、回転行列Ｒの列ベクトル（および、行ベクトル）が座標系による制約を満たすことの確認である。右手座標系では、１列目のベクトルと２列目のベクトルの外積は、３列目のベクトルに等しくなる。
【０１１８】
制御部２１０は、回転行列Ｒが正常であると判別すると（ステップＳ６０９：ＹＥＳ）、移動ベクトルｔを計算し（ステップＳ６１４）、座標変換パラメータ取得処理を終了する。
【０１１９】
一方、制御部２１０は、回転行列Ｒが正常ではないと判別すると（ステップＳ６０９：ＮＯ）、関連付けＫを修正する（ステップＳ６１０）。ここでは、関連付けＫの３行３列目の要素の符号を反転する。
【０１２０】
制御部２１０は、ステップＳ６１０の処理を完了すると、修正された関連付けＫを用いて回転行列Ｒを計算する（ステップＳ６１１）。
【０１２１】
制御部２１０は、ステップＳ６１１の処理を完了すると、念のため、再度、回転行列Ｒが正常であるか否かを判別する（ステップＳ６１２）。
【０１２２】
制御部２１０は、回転行列Ｒが正常であると判別すると（ステップＳ６１２：ＹＥＳ）、移動ベクトルｔを計算し（ステップＳ６１４）、座標変換パラメータ取得処理を終了する。
【０１２３】
一方、制御部２１０は、回転行列Ｒが正常ではないと判別すると（ステップＳ６１２：ＮＯ）、エラー処理を実行し（ステップＳ６１３）、座標変換パラメータ取得処理を終了する。
【０１２４】
図７のフローに戻り、制御部２１０は、座標変換パラメータ取得処理（ステップＳ５０６）を終了すると、取得された座標変換パラメータを用いて、座標系を合わせる（ステップＳ５０７）。具体的には、式（７）を用いて、合成三次元モデルの特徴点の座標を、被合成三次元モデルの座標系の座標に変換する。
【０１２５】
次に、制御部２１０は、ステップＳ５０７の処理を終了すると、特徴点ペアを記憶する（ステップＳ５０８）。ここで、特徴点ペアは、被合成三次元モデルの特徴点と、座標変換後の合成三次元モデルの特徴点のうち、当該被合成三次元モデルの特徴点との距離が所定値以下かつ最近傍である特徴点と、から構成される。ここで、特徴点ペアの数が多いほど、ステップＳ５０２における３つの特徴点の選択、ならびに、ステップＳ５０５における合同な三角形の選択が適切であったと推定される。なお、特徴点ペアは、座標変換パラメータの取得条件（ステップＳ５０２における３つの特徴点の選択、ならびに、ステップＳ５０５における合同な三角形の選択）とともに、記憶部２５０などに記憶される。
【０１２６】
制御部２１０は、ステップＳ５０８の処理を終了すると、ステップＳ５０３において探索された全ての合同な三角形が、ステップＳ５０５において選択されたか否かを判別する（ステップＳ５０９）。
【０１２７】
制御部２１０は、いずれかの合同な三角形が選択されていないと判別すると（ステップＳ５０９：ＮＯ）、ステップＳ５０５に処理を戻す。
【０１２８】
一方、制御部２１０は、全ての合同な三角形が選択されたと判別すると（ステップＳ５０９：ＹＥＳ）、終了条件を満たすか否かを判別する（ステップＳ５１０）。本実施形態では、終了条件は、所定個数以上の条件について座標変換パラメータを取得したこととする。
【０１２９】
制御部２１０は、終了条件を満たしていないと判別すると（ステップＳ５１０：ＮＯ）、ステップＳ５０２に処理を戻す。
【０１３０】
一方、制御部２１０は、終了条件を満たしていると判別すると（ステップＳ５１０：ＹＥＳ）、最適な座標変換パラメータを特定する（ステップＳ５１１）。具体的には、特徴点ペアが最も多く取得された座標変換パラメータが特定される。言い換えれば、ステップＳ５０２における３つの特徴点の選択、ならびに、ステップＳ５０５における合同な三角形の選択が最適であるものが特定される。なお、座標変換パラメータには、回転行列Ｒと移動ベクトルｔとが含まれる。
【０１３１】
制御部２１０は、ステップＳ５１１の処理を終了すると、カメラ位置推定処理を終了する。
【０１３２】
図６のフローに戻り、制御部２１０は、相対誤差を計算する（ステップＳ４０３）。制御部２１０は、相対誤差が基準値以下であると判別すると（ステップＳ４０４：ＹＥＳ）、測定モード２の処理を終了する。そして、図３のフローに戻り、制御部２１０は、三次元モデル上の測定開始位置及び測定終了位置の座標より求めた長さと相対誤差を表示して、長さ測定処理を終了する（ステップＳ１０９）。
【０１３３】
一方、制御部２１０は、相対誤差が基準値を超えると判別すると（ステップＳ４０４：ＮＯ）、測定モード３の処理を行って（ステップＳ４０５）、測定モード２の処理を終了する。
【０１３４】
続いて、図９に示すフローチャートを参照して、測定モード３の処理について説明する。測定モード３の処理は、撮像位置から測定対象の被写体までの距離が遠い場合に対応した処理である。
【０１３５】
図１１に示すように、測定モード３の処理では、制御部２１０は、測定対象の被写体４００よりもデジタルカメラ１の近くにある被写体（基準被写体４１０）を用いてカメラ位置を求める。そして、その結果に基づいて、制御部２１０は、測定対象の被写体４００における指定された長さを測定する。
【０１３６】
まず、制御部２１０は、基準被写体４１０に基づいて、カメラ位置推定処理を実行する（ステップＳ７０１）。
【０１３７】
図１１を参照して説明する。制御部２１０は、最初のカメラ位置Ａ、移動後のカメラ位置Ｂでのそれぞれの撮像において、デジタルカメラ１までの距離が近く、各々の位置で、デジタルカメラ１の２つのレンズの画角内に収まる被写体を基準被写体４１０として決定する。そして、制御部２１０は、撮像された２組のペア画像の中から、基準被写体４１０において、少なくとも３点の共通する特徴点を取得する。これにより、カメラ位置Ａとカメラ位置Ｂの相対的な位置関係が取得できる。つまり、カメラ位置Ａにおけるａレンズと、カメラ位置Ｂにおけるｂレンズの主点位置関係を取得できる。次に、レンズ主点位置関係、つまりカメラ位置Ａにおけるａレンズからの（回転行列、並進ベクトルからなる）運動パラメータより、カメラ射影パラメータを生成する。
【０１３８】
そして、以下の式（２４）より、画像Ａのカメラ射影パラメータＰ、画像Ｂのカメラ射影パラメータＰ'を求め、例えば、以下の式（２５）及び式（２６）から最小二乗法にて三次元情報（Ｘ１，Ｙ１、Ｚ１）を求める。
【０１３９】
【数２４】
2011232330.tif 000022
【０１４０】
［数２５］
ｔｒａｎｓ（ｕ１，ｖ１，１）〜Ｐ  ・ｔｒａｎｓ（Ｘ１，Ｙ１，Ｚ１，１） （２５）
【０１４１】
［数２６］
ｔｒａｎｓ（ｕ'１，ｖ'１，１）〜Ｐ'・ｔｒａｎｓ（Ｘ１，Ｙ１，Ｚ１，１）（２６）
【０１４２】
なお、式（２５）、式（２６）において、画像座標、世界座標ともに同次座標で表しており、記号“〜”は、その両辺が定数倍の違いを許して等しいことを表す。
【０１４３】
これにより測定開始位置（始点）と測定終了位置（終点）の座標が得られ、測定対象の被写体４００における指定された長さが求められる。
【０１４４】
なお、２回の撮像では、始点と終点が収まらない場合には始点から終点までを追跡するようにして複数回撮像を行い、上記と同じようにして、始点と終点との間の長さを測定する。
【０１４５】
制御部２１０は、カメラ位置推定処理を完了した後、そのときの相対誤差を計算し（ステップＳ７０２）、測定モード３の処理を終了する。
【０１４６】
制御部２１０は、測定モード３の処理を終了すると、図３のフローに戻って、三次元モデル上の測定開始位置及び測定終了位置の座標より求めた長さと相対誤差を表示して（ステップＳ１０９）、長さ測定処理を終了する。
【０１４７】
（変形例）
本発明は、上記実施形態に開示したものに限られない。
【０１４８】
上記実施形態では、制御部２１０は、相対誤差が基準値を超えている場合には測定モード３への移行を自動的に行った。しかし、直ちにモード移行するのではなく、制御部２１０は、使用者に対して、被写体４００との撮像間距離を短くすることを促す旨のメッセージを表示部３１０を介して表示しても良い。即ち、使用者が被写体４００に近づけば、デジタルカメラ１と被写体４００との距離が短くなることによって測定精度が向上するからである。そして、メッセージを表示してから一定時間経過しても、相対誤差が基準値を超えている場合には、制御部２１０は、測定モード３の処理を行うようにすればよい。
【０１４９】
以上説明したように、本発明の上記実施形態に係るデジタルカメラ１は、ユーザがそれぞれ指定した被写体上の２点（始点及び終点）間の長さを、３Ｄモデリングによって得られた座標位置に基づいて求めることがきる。
【０１５０】
その際、デジタルカメラ１は、３つの測定モードから何れかの測定モードを適宜選択して、長さ測定処理を実行する。例えば、デジタルカメラ１から測定対象の被写体までの距離が短く、且つ、第１撮像部１１０及び第２撮像部１２０の同時撮像により得られた１組のペア画像中に始点及び終点が収まっている場合、測定モード１が選択される。測定モード１の処理では、１回の撮像結果に基づく被写体の３Ｄモデリングによって、上記２点間の長さが求まる。
【０１５１】
また、デジタルカメラ１から測定対象の被写体までの距離が短いが、被写体が大きく、上記の同時撮像により得られた１組のペア画像中に始点及び終点が収まらない場合、測定モード２が選択される。測定モード２の処理では、複数のカメラ位置での複数回の撮像結果に基づく被写体の３Ｄモデリングによって、上記２点間の長さが求まる。
【０１５２】
また、デジタルカメラ１から測定対象の被写体までの距離が長く、上記の同時撮像により得られた１組のペア画像中に始点及び終点が収まっているものの、被写体までの距離と奥行きの精度との相対誤差が所定値よりも大きい場合、測定モード３が選択される。測定モード３の処理では、複数のカメラ位置での複数回の撮像結果から、測定対象の被写体よりも手前に存在する他の被写体の画像部分に基づいて、カメラ位置（移動ベクトル、回転ベクトル）を算出する。これにより、デジタルカメラ１から測定対象の被写体までの距離が長い場合でも、上記２点間の長さを精度良く算出することができる。
【０１５３】
また、使用者によって指定された被写体上の始点及び終点を表示画像上に重畳して表示するので、使用者は、被写体上の始点及び終点の位置を容易に認識することができる。
【０１５４】
なお、本発明に係る撮像装置は、既存のステレオカメラ等を用いても実現可能である。即ち、上述した制御部２１０が実行したようなプログラムを既存のステレオカメラ等に適用し、そのステレオカメラ等のＣＰＵ等（コンピュータ）が当該プログラムを実行することで、当該ステレオカメラ等を本発明に係る撮像装置として機能させることができる。
【０１５５】
このようなプログラムの配布方法は任意であり、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＭＯ（Ｍａｇｎｅｔｏ  Ｏｐｔｉｃａｌ  Ｄｉｓｋ）、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよい。あるいは、インターネット等の通信ネットワーク上のサーバ装置が有するディスク装置等に上記プログラムを格納しておき、かかるサーバ装置から、当該通信ネットワークを介して、上記プログラムを搬送波に重畳させて配信してもよい。
【０１５６】
この場合、上述した本発明に係る機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などでは、アプリケーションプログラム部分のみを記録媒体等に格納してもよい。
【０１５７】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【０１５８】
以下に本願の当初の特許請求の範囲に記載された発明を付記する。
【０１５９】
（付記１）
同一の被写体に対する１回の撮像で、視差のある１組のペア画像を取得する撮像部と、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示部と、
前記表示画像上における前記被写体上の始点及び終点の指定を受け付ける受付部と、
１又は複数組の前記ペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出し、算出した実空間上の始点及び終点位置に基づいて、前記被写体上の始点から終点までの長さを取得する長さ取得部と、を備えることを特徴とする撮像装置。
【０１６０】
（付記２）
前記長さ取得部は、前記指定された被写体上の始点及び終点が１組の前記ペア画像中に収まる場合、当該１組のペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出する、ことを特徴とする付記１に記載の撮像装置。
【０１６１】
（付記３）
前記長さ取得部は、前記指定された被写体上の始点及び終点が同じ組の前記ペア画像中に収まっていない場合、前記撮像部による複数回の撮像によって得られた複数組の前記ペア画像における前記被写体の画像部分に基づいて、前記始点が収まっているペア画像が撮像された位置に対する前記終点が収まっているペア画像が撮像された位置の相対座標を算出し、算出した相対座標に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出する、ことを特徴とする付記１又は２に記載の撮像装置。
【０１６２】
（付記４）
前記長さ取得部は、前記被写体までの距離と奥行きの精度との相対誤差を算出し、算出した相対誤差が所定値よりも大きい場合、前記撮像部による複数回の撮像によって得られた複数組の前記ペア画像における、前記被写体より手前に存在する他の被写体の画像部分に基づいて、前記始点が収まっているペア画像が撮像された位置に対する前記終点が収まっているペア画像が撮像された位置の相対座標を算出し、算出した相対座標に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出する、ことを特徴とする付記１乃至３の何れかに記載の撮像装置。
【０１６３】
（付記５）
前記相対誤差（ΔＺ／Ｚ）は、（ｐ／Ｂ）・（Ｚ／ｆ）であり、Ｚは被写体までの距離、ΔＺは奥行きの精度、Ｂは平行移動距離、ｆは焦点距離、ｐは撮像素子のピクセルサイズ、である、ことを特徴とする付記４に記載の撮像装置。
【０１６４】
（付記６）
前記表示部は、前記受付部によって受け付けられた被写体上の始点及び終点を、前記表示画像上に重畳して表示する、ことを特徴とする付記１乃至５の何れかに記載の撮像装置。
【０１６５】
（付記７）
同一の被写体に対する１回の撮像で、視差のある１組のペア画像を取得する撮像部を有する撮像装置で前記被写体上における指定された２点間の長さを測定する長さ測定方法であって、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示ステップと、
前記表示画像上における前記被写体上の始点及び終点の指定を受け付ける受付ステップと、
１又は複数組の前記ペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出し、算出した実空間上の始点及び終点位置に基づいて、前記被写体上の始点から終点までの長さを取得する長さ取得ステップと、を含むことを特徴とする長さ測定方法。
【０１６６】
（付記８）
同一の被写体に対する１回の撮像で、視差のある１組のペア画像を取得する撮像部を有する撮像装置を制御するコンピュータに、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示機能と、
前記表示画像上における前記被写体上の始点及び終点の指定を受け付ける受付機能と、
１又は複数組の前記ペア画像に基づいて、前記指定された被写体上の始点及び終点における実空間上のそれぞれの位置を算出し、算出した実空間上の始点及び終点位置に基づいて、前記被写体上の始点から終点までの長さを取得する長さ取得機能と、を実現させることを特徴とするプログラム。
【符号の説明】
【０１６７】
１…デジタルカメラ、１１０…第１撮像部、１１１…光学装置、１１２…イメージセンサ部、１２０…第２撮像部、１２１…光学装置、１２２…イメージセンサ部、２００…データ処理部、２１０…制御部、２２０…画像処理部、２３０…画像メモリ、２４０…画像出力部、２５０…記憶部、２６０…外部記憶部、３００…インタフェース（Ｉ／Ｆ）部、３１０…表示部、３３１…十字ボタン、３２０…外部インタフェース（Ｉ／Ｆ）部、３３０…操作部、４００…被写体、４１０…基準被写体
【図１Ａ】
2011232330.tif 000023
【図１Ｂ】
2011232330.tif 000024
【図２】
2011232330.tif 000025
【図３】
2011232330.tif 000026
【図４】
2011232330.tif 000027
【図５】
2011232330.tif 000028
【図６】
2011232330.tif 000029
【図７】
2011232330.tif 000030
【図８】
2011232330.tif 000031
【図９】
2011232330.tif 000032
【図１４】
2011232330.tif 000033
【図１０】
2011232330.tif 000034
【図１１】
2011232330.tif 000035
【図１２】
2011232330.tif 000036
【図１３】
2011232330.tif 000037
【手続補正書】
【提出日】平成23年8月29日(2011.8.29)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上記目的を達成するために、本発明の第１の観点に係る撮像装置は、
視差のある１組のペア画像を取得する撮像部と、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示部と、
前記表示画像上における被写体上の始点及び終点の指定を受け付ける受付部と、
１又は複数組の前記ペア画像に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成する生成部と、
前記指定された被写体上の始点及び終点の前記３Ｄモデル上の座標位置に基づいて、前記被写体上の始点から終点までの実空間上の長さを取得する長さ取得部と、を備えることを特徴とする。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
上記構成の撮像装置において、
前記生成部は、前記指定された被写体上の始点及び終点が１組の前記ペア画像中に収まる場合、当該１組のペア画像に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成し、
前記長さ取得部は、前記生成部が生成した被写体の３Ｄモデルに基づいて、前記指定された被写体上の始点から終点までの実空間上の長さを取得する、ようにしてもよい。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
また、上記構成の撮像装置において、
前記生成部は、前記指定された被写体上の始点及び終点が同じ組の前記ペア画像中に収まっていない場合、前記撮像部による複数回の撮像によって得られた複数組の前記ペア画像における前記被写体の画像部分に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成し、
前記長さ取得部は、前記生成部が生成した被写体の３Ｄモデルに基づいて、前記指定された被写体上の始点から終点までの実空間上の長さを取得する、ようにしてもよい。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
また、上記構成の撮像装置において、
前記被写体までの距離と奥行きの精度との相対誤差を算出する相対誤差算出部を備え、
前記生成部は、前記相対誤差算出部によって算出された相対誤差が所定値よりも大きい場合、前記撮像部による複数回の撮像によって得られた複数組の前記ペア画像における、前記被写体より手前に存在する他の被写体の画像部分に基づいて、複数組の前記ペア画像を撮像した当該装置それぞれの相対的な位置及び光軸の向きを算出し、算出された当該撮像装置それぞれの相対位置に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成する、ようにしてもよい。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
上記目的を達成するために、本発明の第２の観点に係る長さ測定方法は、
視差のある１組のペア画像を取得する撮像部を有する撮像装置で被写体上における指定された２点間の長さを測定する長さ測定方法であって、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示ステップと、
前記表示画像上における前記被写体上の始点及び終点の指定を受け付ける受付ステップと、
１又は複数組の前記ペア画像に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成する生成ステップと、
前記指定された被写体上の始点及び終点の前記３Ｄモデル上の座標位置に基づいて、前記被写体上の始点から終点までの実空間上の長さを取得する長さ取得ステップと、を含むことを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
上記目的を達成するために、本発明の第３の観点に係るプログラムは、
視差のある１組のペア画像を取得する撮像部を有する撮像装置を制御するコンピュータに、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示機能と、
前記表示画像上における被写体上の始点及び終点の指定を受け付ける受付機能と、
１又は複数組の前記ペア画像に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成する生成機能と、
前記指定された被写体上の始点及び終点の前記３Ｄモデル上の座標位置に基づいて、前記被写体上の始点から終点までの実空間上の長さを取得する長さ取得機能と、を実現させることを特徴とする。
【手続補正７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
視差のある１組のペア画像を取得する撮像部と、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示部と、
前記表示画像上における被写体上の始点及び終点の指定を受け付ける受付部と、
１又は複数組の前記ペア画像に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成する生成部と、
前記指定された被写体上の始点及び終点の前記３Ｄモデル上の座標位置に基づいて、前記被写体上の始点から終点までの実空間上の長さを取得する長さ取得部と、を備える、
ことを特徴とする撮像装置。
【請求項２】
前記生成部は、前記指定された被写体上の始点及び終点が１組の前記ペア画像中に収まる場合、当該１組のペア画像に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成し、
前記長さ取得部は、前記生成部が生成した被写体の３Ｄモデルに基づいて、前記指定された被写体上の始点から終点までの実空間上の長さを取得する、
ことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記生成部は、前記指定された被写体上の始点及び終点が同じ組の前記ペア画像中に収まっていない場合、前記撮像部による複数回の撮像によって得られた複数組の前記ペア画像における前記被写体の画像部分に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成し、
前記長さ取得部は、前記生成部が生成した被写体の３Ｄモデルに基づいて、前記指定された被写体上の始点から終点までの実空間上の長さを取得する、
ことを特徴とする請求項１又は２に記載の撮像装置。
【請求項４】
前記被写体までの距離と奥行きの精度との相対誤差を算出する相対誤差算出部を備え、
前記生成部は、前記相対誤差算出部によって算出された相対誤差が所定値よりも大きい場合、前記撮像部による複数回の撮像によって得られた複数組の前記ペア画像における、前記被写体より手前に存在する他の被写体の画像部分に基づいて、複数組の前記ペア画像を撮像した当該装置それぞれの相対的な位置及び光軸の向きを算出し、算出された当該撮像装置それぞれの相対位置に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成する、
ことを特徴とする請求項１乃至３の何れか１項に記載の撮像装置。
【請求項５】
前記相対誤差（ΔＺ／Ｚ）は、（ｐ／Ｂ）・（Ｚ／ｆ）であり、Ｚは被写体までの距離、ΔＺは奥行きの精度、Ｂは平行移動距離、ｆは焦点距離、ｐは撮像素子のピクセルサイズ、である、
ことを特徴とする請求項４に記載の撮像装置。
【請求項６】
前記表示部は、前記受付部によって受け付けられた被写体上の始点及び終点を、前記表示画像上に重畳して表示する、
ことを特徴とする請求項１乃至５の何れか１項に記載の撮像装置。
【請求項７】
視差のある１組のペア画像を取得する撮像部を有する撮像装置で被写体上における指定された２点間の長さを測定する長さ測定方法であって、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示ステップと、
前記表示画像上における前記被写体上の始点及び終点の指定を受け付ける受付ステップと、
１又は複数組の前記ペア画像に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成する生成ステップと、
前記指定された被写体上の始点及び終点の前記３Ｄモデル上の座標位置に基づいて、前記被写体上の始点から終点までの実空間上の長さを取得する長さ取得ステップと、を含む、
ことを特徴とする長さ測定方法。
【請求項８】
視差のある１組のペア画像を取得する撮像部を有する撮像装置を制御するコンピュータに、
前記ペア画像の少なくとも一方の画像に基づく表示画像を表示する表示機能と、
前記表示画像上における被写体上の始点及び終点の指定を受け付ける受付機能と、
１又は複数組の前記ペア画像に基づいて、前記始点及び終点が指定された被写体の３Ｄモデルを生成する生成機能と、
前記指定された被写体上の始点及び終点の前記３Ｄモデル上の座標位置に基づいて、前記被写体上の始点から終点までの実空間上の長さを取得する長さ取得機能と、を実現させる、
ことを特徴とするプログラム。