(57)【要約】【課題】対象物を表す複数の画像に基づいて精度良く対象物の立体画像を生成できる撮影装置、並びに撮影装置の制御プログラム及び制御方法を提供する。【解決手段】撮影装置１００は、対象物を撮影した第１画像と第２画像とを取得する画像取得部１５０と、対象物上の点が第１画像に表された第１特徴点と、対象物上の点が第２画像に表された第２特徴点とを複数取得する特徴点取得部１６１と、対象物が有する平面上の点を表す第１特徴点と第２特徴点とを特定する面上点特定部１６３と、面上点特定部１６３が特定した第１特徴点と第２特徴点とに基づいて、第１画像の撮影時と第２画像の撮影時とにおける撮影装置１００の配置の変化を特定する配置変化特定部１６４と、配置変化特定部１６４が特定した配置の変化と、第１特徴点と第２特徴点とに基づいて、対象物の立体画像を生成する立体画像生成部１７０と、を備える。【選択図】図４
2011176626.tif 000002
【特許請求の範囲】
【請求項１】
撮影手段が対象物を撮影した第１画像と第２画像とを取得する画像取得手段と、
前記画像取得手段が取得した前記第１画像から、前記対象物を特徴付ける前記対象物上の点が前記第１画像に表された第１特徴点と、前記点が前記第２画像に表された第２特徴点とを複数取得する特徴点取得手段と、
前記特徴点取得手段が取得した前記複数の第１特徴点及び前記複数の第２特徴点の内で、前記対象物が有する平面上の点を表す前記第１特徴点と前記第２特徴点とを特定する面上点特定手段と、
前記面上点特定手段が特定した前記第１特徴点と前記第２特徴点とに基づいて、前記第１画像の撮影時と前記第２画像の撮影時とにおける前記撮影手段の配置の変化を特定する配置変化特定手段と、
前記配置変化特定手段が特定した前記配置の前記変化と、前記第１特徴点と前記第２特徴点とに基づいて、前記対象物の立体画像を生成する立体画像生成手段と、
前記立体画像生成手段が生成した前記対象物の前記立体画像を表示する表示部と、
を備えることを特徴とする撮影装置。
【請求項２】
前記撮影手段の前記配置の前記変化は、前記撮影手段の回転により生じる前記配置の変化を含み、
前記配置変化特定手段は、
前記面上点特定手段によって特定された前記第１特徴点の前記第１画像における第１画像位置を、特定された前記第２特徴点の前記第２画像における第２画像位置へ変換する変換行列を用いて、前記対象物が有する前記平面の勾配を表す勾配ベクトルを算出する勾配算出手段と、
前記勾配算出手段が算出した前記勾配ベクトルと、前記勾配ベクトルの算出に用いられた前記変換行列とに基づいて、前記撮影手段の前記回転を表す回転行列を特定する回転行列特定手段とを有し、
前記立体画像生成手段は、前記回転行列特定手段が特定した前記回転行列と、前記第１画像位置及び前記第２画像位置とに基づいて、前記対象物の前記立体画像を生成する、
ことを特徴とする請求項１に記載の撮影装置。
【請求項３】
前記撮影手段の前記配置の前記変化は、前記撮影手段の移動により生じる前記配置の変化をさらに含み、
前記配置変化特定手段は、
前記面上点特定手段によって特定された前記第１特徴点の第１画像位置を、特定された前記第２特徴点の第２画像位置へ変換する変換行列に基づいて、前記撮影手段の前記移動の方向を表す並進ベクトルを特定する並進ベクトル特定手段をさらに有し、
前記立体画像生成手段は、前記並進ベクトル特定手段が特定した前記並進ベクトル及び前記回転行列と、前記第１画像位置及び前記第２画像位置とに基づいて、前記対象物の前記立体画像を生成する、
ことを特徴とする請求項２に記載の撮影装置。
【請求項４】
前記面上点特定手段は、
前記特徴点取得手段が取得した前記複数の第１特徴点の前記第１画像位置と前記複数の第２特徴点の前記第２画像位置とに基づいて、前記対象物が有する複数の前記点の立体空間における位置を算出する空間位置算出手段と、
前記空間位置算出手段が算出した前記位置に在る前記複数の点によって定まる平面を表す平面方程式をハフ変換するハフ変換手段と、
前記ハフ変換手段がハフ変換した前記平面方程式のパラメーターに基づいて、前記平面方程式で表される前記平面上に在る前記点の数を算出する点数算出手段と、
前記点数算出手段が算出した前記数に基づいて、前記対象物が有する前記平面を特定すると共に、特定した前記平面上に在る前記点を表す前記第１特徴点と前記第２特徴点とを、前記対象物が有する前記平面上に在る点を表す前記第１特徴点及び前記第２特徴点として特定する面特定手段と、を備える、
ことを特徴とする請求項３に記載の撮影装置。
【請求項５】
前記面上点特定手段は、
前記特徴点取得手段が取得した前記複数の第１特徴点及び前記複数の第２特徴点から、所定数の前記第１特徴点及び前記第２特徴点を選択する特徴点選択手段と、
前記特徴点選択手段によって選択された前記第１特徴点の第１画像位置を、選択された前記第２特徴点の前記第２画像位置へ変換する変換行列を算出する変換行列算出手段と、
前記特徴点取得手段が取得した前記複数の第１特徴点の第１画像位置を、前記変換行列算出手段が算出した前記変換行列を用いて変換する画像位置変換手段と、
前記画像位置変換手段による変換結果と、前記特徴点取得手段が取得した前記第２特徴点の前記第２画像位置との誤差を算出する誤差算出手段と、
前記誤差算出手段が算出した前記誤差に基づいて、前記特徴点選択手段が選択した前記第１特徴点と前記第２特徴点とを、前記対象物が有する前記平面上に在る前記点を表す前記第１特徴点と前記第２特徴点として特定する面特定手段と、を備える、
ことを特徴とする請求項３に記載の撮影装置。
【請求項６】
コンピューターを、
撮影手段が対象物を撮影した第１画像と第２画像とを取得する画像取得手段と、
前記画像取得手段が取得した前記第１画像から、前記対象物を特徴付ける前記対象物上の点が前記第１画像に表された第１特徴点と、前記点が前記第２画像に表された第２特徴点とを複数取得する特徴点取得手段と、
前記特徴点取得手段が取得した前記複数の第１特徴点及び前記複数の第２特徴点の内で、前記対象物が有する平面上の点を表す前記第１特徴点と前記第２特徴点とを特定する面上点特定手段と、
前記面上点特定手段が特定した前記第１特徴点と前記第２特徴点とに基づいて、前記第１画像の撮影時と前記第２画像の撮影時とにおける前記撮影手段の配置の変化を特定する配置変化特定手段と、
前記配置変化特定手段が特定した前記配置の前記変化と、前記第１特徴点と前記第２特徴点とに基づいて、前記対象物の立体画像を生成する立体画像生成手段と、
前記立体画像生成手段が生成した前記対象物の前記立体画像を表示するよう表示部を制御する表示制御手段と、
して機能させることを特徴とする撮影装置の制御プログラム。
【請求項７】
撮影手段が対象物を撮影した第１画像と第２画像とを取得する画像取得ステップと、
前記画像取得ステップで取得された前記第１画像から、前記対象物を特徴付ける前記対象物上の点が前記第１画像に表された第１特徴点と、前記点が前記第２画像に表された第２特徴点とを複数取得する特徴点取得ステップと、
前記特徴点取得ステップで取得された前記複数の第１特徴点及び前記複数の第２特徴点の内で、前記対象物が有する平面上の点を表す前記第１特徴点と前記第２特徴点とを特定する面上点特定ステップと、
前記面上点特定ステップで特定された前記第１特徴点と前記第２特徴点とに基づいて、前記第１画像の撮影時と前記第２画像の撮影時とにおける前記撮影手段の配置の変化を特定する配置変化特定ステップと、
前記配置変化特定ステップで特定された前記配置の前記変化と、前記第１特徴点と前記第２特徴点とに基づいて、前記対象物の立体画像を生成する立体画像生成ステップと、
前記立体画像生成ステップで生成された前記対象物の前記立体画像を表示するよう表示部を制御する表示制御ステップと、
を有することを特徴とする撮影装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を撮影する撮影装置、並びに撮影装置の制御プログラム及び制御方法に関する。
【背景技術】
【０００２】
非特許文献１には、２つのカメラを光軸が平行で、かつ画像座標系の座標軸が同一直線上で同一方向になる配置（つまり、平行ステレオ）に固定すると共に、固定した２つのカメラで撮影された画像における撮影対象物（以下単に、対象物という）の見え方の差異（つまり、視差）とカメラ間の距離（つまり、基線長）とに基づいて、対象物の三次元画像（つまり、立体画像）を生成する技術が開示されている。また、１つのカメラを移動前後で平行ステレオになるように移動させると共に、移動の前後にカメラで撮影した２つの画像を用いて、撮影された対象物の三次元画像を生成する技術が知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】佐藤  洋一  著、「デジタル画像処理」、ＣＧ−ＡＲＴＳ協会出版、２００９年１１月２日発行、第２５１頁から第２６２頁
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、非特許文献１に係る技術は、２つのカメラが必要であるという問題があった。また、１つのカメラが撮影した２つの画像を用いて立体画像を生成する技術では、２つの画像を精度良く対応させることができないためカメラの移動方向及び移動に伴ったカメラの回転を精度良く特定できず、立体画像を精度良く生成できないという問題があった。
【０００５】
本発明はこのような点に鑑み、その目的とするところは、対象物を表す複数の画像に基づいて精度良く対象物の立体画像を生成できる撮影装置、並びに撮影装置の制御プログラム及び制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第一の観点に係る撮影装置は、
撮影手段が対象物を撮影した第１画像と第２画像とを取得する画像取得手段と、
前記画像取得手段が取得した前記第１画像から、前記対象物を特徴付ける前記対象物上の点が前記第１画像に表された第１特徴点と、前記点が前記第２画像に表された第２特徴点とを複数取得する特徴点取得手段と、
前記特徴点取得手段が取得した前記複数の第１特徴点及び前記複数の第２特徴点の内で、前記対象物が有する平面上の点を表す前記第１特徴点と前記第２特徴点とを特定する面上点特定手段と、
前記面上点特定手段が特定した前記第１特徴点と前記第２特徴点とに基づいて、前記第１画像の撮影時と前記第２画像の撮影時とにおける前記撮影手段の配置の変化を特定する配置変化特定手段と、
前記配置変化特定手段が特定した前記配置の前記変化と、前記第１特徴点と前記第２特徴点とに基づいて、前記対象物の立体画像を生成する立体画像生成手段と、
前記立体画像生成手段が生成した前記対象物の前記立体画像を表示する表示部と、
を備えることを特徴とする。
【０００７】
第一の観点に係る撮影装置において、
前記撮影手段の前記配置の前記変化は、前記撮影手段の回転により生じる前記配置の変化を含み、
前記配置変化特定手段は、
前記面上点特定手段によって特定された前記第１特徴点の前記第１画像における第１画像位置を、特定された前記第２特徴点の前記第２画像における第２画像位置へ変換する変換行列を用いて、前記対象物が有する前記平面の勾配を表す勾配ベクトルを算出する勾配算出手段と、
前記勾配算出手段が算出した前記勾配ベクトルと、前記勾配ベクトルの算出に用いられた前記変換行列とに基づいて、前記撮影手段の前記回転を表す回転行列を特定する回転行列特定手段とを有し、
前記立体画像生成手段は、前記回転行列特定手段が特定した前記回転行列と、前記第１画像位置及び前記第２画像位置とに基づいて、前記対象物の前記立体画像を生成しても良い。
【０００８】
また、第一の観点に係る撮影装置において、
前記撮影手段の前記配置の前記変化は、前記撮影手段の移動により生じる前記配置の変化をさらに含み、
前記配置変化特定手段は、
前記面上点特定手段によって特定された前記第１特徴点の第１画像位置を、特定された前記第２特徴点の第２画像位置へ変換する変換行列に基づいて、前記撮影手段の前記移動の方向を表す並進ベクトルを特定する並進ベクトル特定手段をさらに有し、
前記立体画像生成手段は、前記並進ベクトル特定手段が特定した前記並進ベクトル及び前記回転行列と、前記第１画像位置及び前記第２画像位置とに基づいて、前記対象物の前記立体画像を生成しても良い。
【０００９】
さらに、第一の観点に係る撮影装置において、
前記面上点特定手段は、
前記特徴点取得手段が取得した前記複数の第１特徴点の前記第１画像位置と前記複数の第２特徴点の前記第２画像位置とに基づいて、前記対象物が有する複数の前記点の立体空間における位置を算出する空間位置算出手段と、
前記空間位置算出手段が算出した前記位置に在る前記複数の点によって定まる平面を表す平面方程式をハフ変換するハフ変換手段と、
前記ハフ変換手段がハフ変換した前記平面方程式のパラメーターに基づいて、前記平面方程式で表される前記平面上に在る前記点の数を算出する点数算出手段と、
前記点数算出手段が算出した前記数に基づいて、前記対象物が有する前記平面を特定すると共に、特定した前記平面上に在る前記点を表す前記第１特徴点と前記第２特徴点とを、前記対象物が有する前記平面上に在る点を表す前記第１特徴点及び前記第２特徴点として特定する面特定手段と、を備えても良い。
【００１０】
またさらに、第一の観点に係る撮影装置において、
前記面上点特定手段は、
前記特徴点取得手段が取得した前記複数の第１特徴点及び前記複数の第２特徴点から、所定数の前記第１特徴点及び前記第２特徴点を選択する特徴点選択手段と、
前記特徴点選択手段によって選択された前記第１特徴点の第１画像位置を、選択された前記第２特徴点の前記第２画像位置へ変換する変換行列を算出する変換行列算出手段と、
前記特徴点取得手段が取得した前記複数の第１特徴点の第１画像位置を、前記変換行列算出手段が算出した前記変換行列を用いて変換する画像位置変換手段と、
前記画像位置変換手段による変換結果と、前記特徴点取得手段が取得した前記第２特徴点の前記第２画像位置との誤差を算出する誤差算出手段と、
前記誤差算出手段が算出した前記誤差に基づいて、前記特徴点選択手段が選択した前記第１特徴点と前記第２特徴点とを、前記対象物が有する前記平面上に在る前記点を表す前記第１特徴点と前記第２特徴点として特定する面特定手段と、を備えても良い。
【００１１】
また上記目的を達成するため、本発明の第二の観点に係る撮影装置の制御プログラムは、
コンピューターを、
撮影手段が対象物を撮影した第１画像と第２画像とを取得する画像取得手段と、
前記画像取得手段が取得した前記第１画像から、前記対象物を特徴付ける前記対象物上の点が前記第１画像に表された第１特徴点と、前記点が前記第２画像に表された第２特徴点とを複数取得する特徴点取得手段と、
前記特徴点取得手段が取得した前記複数の第１特徴点及び前記複数の第２特徴点の内で、前記対象物が有する平面上の点を表す前記第１特徴点と前記第２特徴点とを特定する面上点特定手段と、
前記面上点特定手段が特定した前記第１特徴点と前記第２特徴点とに基づいて、前記第１画像の撮影時と前記第２画像の撮影時とにおける前記撮影手段の配置の変化を特定する配置変化特定手段と、
前記配置変化特定手段が特定した前記配置の前記変化と、前記第１特徴点と前記第２特徴点とに基づいて、前記対象物の立体画像を生成する立体画像生成手段と、
前記立体画像生成手段が生成した前記対象物の前記立体画像を表示するよう表示部を制御する表示制御手段と、
して機能させることを特徴とする。
【００１２】
また上記目的を達成するため、本発明の第三の観点に係る撮影装置の制御方法は、
撮影手段が対象物を撮影した第１画像と第２画像とを取得する画像取得ステップと、
前記画像取得ステップで取得された前記第１画像から、前記対象物を特徴付ける前記対象物上の点が前記第１画像に表された第１特徴点と、前記点が前記第２画像に表された第２特徴点とを複数取得する特徴点取得ステップと、
前記特徴点取得ステップで取得された前記複数の第１特徴点及び前記複数の第２特徴点の内で、前記対象物が有する平面上の点を表す前記第１特徴点と前記第２特徴点とを特定する面上点特定ステップと、
前記面上点特定ステップで特定された前記第１特徴点と前記第２特徴点とに基づいて、前記第１画像の撮影時と前記第２画像の撮影時とにおける前記撮影手段の配置の変化を特定する配置変化特定ステップと、
前記配置変化特定ステップで特定された前記配置の前記変化と、前記第１特徴点と前記第２特徴点とに基づいて、前記対象物の立体画像を生成する立体画像生成ステップと、
前記立体画像生成ステップで生成された前記対象物の前記立体画像を表示するよう表示部を制御する表示制御ステップと、
を有することを特徴とする。
【発明の効果】
【００１３】
本発明に係る撮影装置、並びに撮影装置の制御プログラム及び制御方法によれば、対象物を表す複数の画像に基づいて精度良く対象物の立体画像を生成できる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態に係る撮影装置の外観の一例を表す図である。図１（ａ）は正面図、図１（ｂ）は背面図、図１（ｃ）は右側面図、図１（ｄ）は上面図である。
【図２】撮影装置の回路構成の一例を表すブロック図である。
【図３】制御部が実行する立体画像生成処理の一例を表すフローチャートである。
【図４】図４（ａ）は、第１の実施形態に係る撮影装置が有する機能の一例を表す機能ブロック図である。図４（ｂ）は、第１の実施形態に係る配置特定部の一構成例を表す図である。図４（ｃ）は、第１の実施形態に係る面上点特定部の一構成例を表す図である。
【図５】図５（ａ）は、第１画像の一例を表す図である。図５（ｂ）は、第１特徴点の一例を表す図である。図５（ｃ）は、同一平面上にある第１特徴点の一例を表す図である。
【図６】第１画像の撮影時と第２画像の撮影時とにおける撮影装置の配置の一例を表す図である。
【図７】図７（ａ）は、第１の実施形態に係る制御部が実行する配置特定処理の一例を表すフローチャートである。図７（ｂ）は、第１の実施形態に係る制御部が実行する面上点特定処理の一例を表すフローチャートである。
【図８】第１画像の撮影時と第２画像の撮影時とにおける撮影装置の透視投影モデルの一例を表す図である。
【図９】第２の実施形態に係る撮影装置が有する機能の一部を表す図である。
【図１０】図１０（ａ）は、第３の実施形態に係る撮影装置が有する機能の一例を表す機能ブロック図である。図１０（ｂ）は、第３の実施形態に係る配置特定部の一構成例を表す図である。図１０（ｃ）は、第３の実施形態に係る面上点特定部の一構成例を表す図である。
【図１１】図１１（ａ）は、第３の実施形態に係る制御部が実行する配置特定処理の一例を表すフローチャートである。図１１（ｂ）は、第３の実施形態に係る制御部が実行する面上点特定処理の一例を表すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の最良の実施形態について添付図面を参照しつつ説明する。
【００１６】
＜第１実施形態＞
本発明の実施形態に係る撮影装置１００は、デジタルカメラであり、図１（ａ）に示すような、携帯可能な所謂コンパクトカメラの形状を模しており、ユーザーに携帯されて撮影位置を変更される。撮影装置１００は、撮影位置の変更前後（つまり、撮影装置１００の移動前後）に対象物（つまり、被写体）を撮影した２つの画像を用いて対象物を表す立体画像を生成する。
【００１７】
撮影装置１００は、図１（ａ）に示すように、正面にストロボ発光窓１０１及び撮影レンズ１０２を有する。ストロボ発光窓１０１は、必要に応じてキセノンフラッシュが発光したストロボ光を対象物に向けて照射する。
【００１８】
また、図１（ｂ）に示すように、撮影装置１００は、背面に、液晶モニタ画面である表示部１０３と、電源キー１０４ｐ、３Ｄ（dimension）モデリングキー１０４ｄ、及び操作キー１０５を有する。
表示部１０３は、ファインダーとして機能するＬＣＤ（Liquid Crystal Display）パネルを有する。また、表示部１０３のＬＣＤパネルは、撮影装置１００の操作に必要な種々の画面、撮影時のライブビュー画像、撮影装置１００が撮影した画像（以下、撮影画像という）及び撮影画像に基づいて生成された立体画像を表示する。
【００１９】
電源キー１０４ｐは、撮影装置１００の電源がＯＮである場合に長押しをされると、撮影装置１００の電源をＯＦＦにするように命じる信号を入力し、撮影装置１００の電源がＯＦＦである場合に押されると、撮影装置１００の電源をＯＮにするように命じる信号を入力する。
【００２０】
３Ｄモデリングキー１０４ｄは、トグル動作をし、押される度に通常の撮影を行う通常撮影モードと、立体画像を生成する３Ｄ（Dimension）モデリングモードとの二者を択一に切り替える信号を入力する。
【００２１】
操作キー１０５は、十字キー及び決定キーを有する。十字キーは、撮影モードの切替時又は表示切替時に表示部１０３に表示される撮影モード又は表示モードを選択するユーザーの操作に応じた信号を撮影装置１００へ入力する。決定キーは、選択された撮影モード又は表示モードにモードを決定するユーザーの操作に応じた信号を撮影装置１００へ入力する。
【００２２】
さらに、撮影装置１００は、図１（ｃ）に示すように、右側面に、ＵＳＢ（Universal Serial Bus）接続端子である外部インターフェース部（以下、外部Ｉ／Ｆ部という）１０６を有する。尚、外部Ｉ／Ｆ部１０６は、ビデオ出力端子であっても良い。また、撮影装置１００は、図１（ｄ）に示すように、上面に、シャッターボタン１０９を有する。
【００２３】
次に、撮影装置１００の回路構成について説明する。
撮影装置１００は、図２に示すような撮影部１１０、データ処理部１２０、及びインターフェース部１３０（以下単に、Ｉ／Ｆ部１３０という）で構成される。
【００２４】
撮影部１１０は、光学装置１１１及びイメージセンサー部１１２で構成される。光学装置１１１は、不図示のレンズ、絞り機構、及びシャッター機構を有し、対象物の撮影に関する光学的動作を行う。この光学的動作は、レンズを用いて入射光を集光すると、焦点距離及び絞りを調節すると共にシャッタースピードを調整する動作をいう。つまり、光学的動作は、画角、ピント、及び露出といった光学的な要素を調整する動作である。尚、光学装置１１１が有するシャッター機構はいわゆるメカニカルシャッターである。しかし、イメージセンサーの動作によってシャッター動作を行う場合には、光学装置１１１は、シャッター機構を有さなくても良い。
【００２５】
イメージセンサー部１１２は、ＣＣＤ（Charge Coupled Device：電荷結合素子）で構成される。イメージセンサー部１１２は、光電変換を行うことで、光学装置１１１によって集光された入射光に応じた電気信号を発生させると共に、発生させた電気信号をデータ処理部１２０に出力する。尚、イメージセンサー部１１２は、ＣＭＯＳ（Complementary Metal Oxide Semiconductor：相補型金属酸化物半導体）で構成されても良い。
【００２６】
データ処理部１２０は、撮影部１１０から出力された電気信号を処理することで、撮影部１１０が撮影した撮影画像を表すデジタルデータを生成すると共に、生成したデータが表す撮影画像に対する画像処理を行う。尚、データ処理部１２０は、制御部１２１、記憶部１２２、外部記憶部１２３、画像処理部１２４、画像メモリ１２５、及び画像出力部１２６で構成される。
【００２７】
制御部１２１は、不図示のＣＰＵ（Central Processing Unit：中央演算処理部）及びＲＡＭ（Random Access Memory）で構成され、記憶部１２２に格納されたプログラムを実行することで、撮影装置１００の各部を制御する。
【００２８】
記憶部１２２は、ＲＯＭ（Read Only Memory）で構成され、制御部１２１が実行するプログラム及びプログラムの実行時に使用されるパラメーター及び演算式を表すデータを格納する。尚、記憶部１２２は、フラッシュメモリであっても良い。
【００２９】
外部記憶部１２３は、撮影装置１００に着脱可能な記憶装置であるメモリカードで構成され、撮影画像を表す画像データ及び撮影画像に基づいて生成した立体画像を表すデータ（以下、３Ｄモデリングデータという）を格納する。
【００３０】
画像処理部１２４は、不図示のＡＤＣ（Analog‐Digital Converter：アナログ・デジタル変換器）、バッファメモリ、画像処理用のプロセッサ（いわゆる、画像処理エンジン）で構成される。画像処理部１２４は、イメージセンサー部１１２から出力されたアナログ電気信号をＡＤＣでデジタル信号に変換すると共に、変換したデジタル信号で表されるデータを順次バッファメモリに格納する。次に、画像処理部１２４は、バッファメモに格納したデジタルデータに対して、画像処理用のプロセッサが現像処理を行うことで、撮影画像の画質の調整及び画像データの圧縮を行う。
【００３１】
画像メモリ１２５は、フラッシュメモリで構成され、画像処理部１２４によって生成された画像データ、及び制御部１２１によって処理される画像データを一時的に格納する。
【００３２】
画像出力部１２６は、ＲＧＢ信号を生成する回路で構成され、画像メモリ１２５に展開された画像データをＲＧＢ信号に変換して表示部１０３及び外部Ｉ／Ｆ部１０６へ出力する。
【００３３】
Ｉ／Ｆ部１３０は、撮影装置１００と、撮影装置１００の使用者（つまり、ユーザー）又は撮影装置１００と接続する外部装置とのインターフェースを提供する。尚、Ｉ／Ｆ部１３０は、図１の表示部１０３、外部Ｉ／Ｆ部１０６、及び操作部１３１で構成される。操作部１３１は、図１の電源キー１０４ｐ、３Ｄモデリングキー１０４ｄ、及び操作キー１０５で構成される。
【００３４】
次に、撮影装置１００が図２に示したハードウェアを用いて立体画像を生成するために実行する立体画像生成処理について説明を行う。図２の制御部１２１は、図３に示すような立体画像生成処理を実行することで、図４（ａ）に示すような撮影制御部１４０、画像取得部１５０、配置特定部１６０、立体画像生成部１７０、表示制御部１８１、出力制御部１８２、及び立体画像保存部１８３として機能する。
【００３５】
ユーザーが図１（ｂ）の３Ｄモデリングキー１０４ｄを操作して３Ｄモデリングモードを選択すると、制御部１２１は、３Ｄモデリングモードの選択を検出して図３の立体画像生成処理を開始する。立体画像生成処理が開始されると、図４（ａ）の撮影制御部１４０は、シャッターボタン１０９がユーザーによって押し下げられたか否かを判断する（ステップＳ０１）。ユーザーがシャッターボタン１０９を押すと、撮影制御部１４０は、シャッターボタン１０９が押し下げられたと判断して（ステップＳ０１；Ｙｅｓ）、撮影部１１０の焦点を撮影対象とする対象物へ合わせる。具体例として、対象物が人物である場合には、撮影部１１０は、顔検出処理を行うと共に、図２の光学装置１１１を動作させて、検出した顔の位置に合うように撮影部１１０の焦点を制御する。尚、撮影制御部１４０は、シャッターボタン１０９が押し下げられていないと判断すると（ステップＳ０１；Ｎｏ）、押し下げられるまで待機する。
【００３６】
次に、画像取得部１５０は、撮影部１１０から、対象物を撮影した図５（ａ）に示すような画像（以下、第１画像という）を表すデータを取得すると共に、取得したデータを図２の画像メモリ１２５へ格納する（ステップＳ０２）。その後、ユーザーによって、撮影装置１００の配置は、図６に示すように、第１画像を撮影した配置と異なる配置にされる。つまり、撮影装置１００は、第１画像を撮影した撮影位置Ｏと異なる撮影位置Ｏ’へ移動させられると共に、撮影位置Ｏ’から対象物を撮影するためにユーザーによって回転させられる。このため、第２画像の撮影時における撮影装置１００の配置は、第１画像の撮影時を基準にすると、撮影位置Ｏから撮影位置Ｏ’への移動を表す移動ベクトルｔ（以下、並進ベクトルｔという）と、撮影装置１００の回転を表す回転行列Ｒとで表される。
【００３７】
図３のステップＳ０２が実行された後に、撮影制御部１４０は、ステップＳ０１と同様に、シャッターボタン１０９が押し下げられたと判断する（ステップＳ０３；Ｙｅｓ）。尚、ステップＳ０１と同様に、撮影制御部１４０は、シャッターボタン１０９が押し下げられていないと判断すると（ステップＳ０３；Ｎｏ）、押し下げられるまで待機する。
【００３８】
次に、画像取得部１５０は、対象物を撮影した画像（以下、第２画像という）を表すデータを取得すると共に、データを画像メモリ１２５へ格納する（ステップＳ０４）。
【００３９】
その後、図４（ａ）の配置特定部１６０は、第２画像の撮影時における撮影装置１００の配置を特定する図７（ａ）に示すような配置特定処理を実行する（ステップＳ０５）。尚、図４（ａ）の配置特定部１６０は、図４（ｂ）に示すように、特徴点取得部１６１、特徴点対応部１６２、面上点特定部１６３、配置変化特定部１６４を有する。また、配置変化特定部１６４は、勾配算出部１６４ａ、並進ベクトル算出部１６４ｂ、及び回転行列算出部１６４ｃを有する。
【００４０】
図７（ａ）の配置特定処理が開始されると、図４（ｂ）の特徴点取得部１６１は、第１画像に対してハリスのコーナー検出法を用いることで、図８に示すような対象物を特徴付ける対象物上の点Ｍが第１画像に表された第１特徴点と、第１特徴点の画像座標値（以下、第１画像位置という）ｍとを、図５（ｂ）に×印で表すように複数取得する（ステップＳ２１）。同様に、特徴点取得部１６１は、第２画像から第２画像に表された第２特徴点と、第２特徴点の画像座標値（以下、第２画像位置という）ｍ’を複数取得する（ステップＳ２２）。
【００４１】
尚、図８は、図６に示した第１画像の撮影時（つまり、移動前）と第２画像の撮影時（つまり、移動後）における撮影部１１０の透視投影モデルを表す。ＸＹＺ軸は第１画像撮影時のカメラ座標系の座標軸であり、Ｘ’Ｙ’Ｚ’軸は第２画像撮影時のカメラ座標系の座標軸であり、Ｚ軸及びＺ’軸はそれぞれ第１画像撮影時及び第２画像撮影時における撮影装置１００の光軸ＯＡ及びＯＡ’と一致している。またｕｖ軸及びｕ’ｖ’軸は、それぞれ第１画像撮影時及び第２画像撮影時の画像座標系の座標軸を表す。
【００４２】
次に、図４（ｂ）の特徴点対応部１６２は、対象物上の同じ点を表した第１特徴点と、第２特徴点とを対応させて対応点を取得する（ステップＳ２３）。具体的には、特徴点対応部１６２は、第１特徴点と第２特徴点との間で、特徴点から所定の距離にある画像領域（特徴点近傍画像）に対するテンプレート照合を行うと共に、テンプレート照合で算出した照合度が所定の閾値以上であり、かつ最も高い値となる第１特徴点と第２特徴点とを対応させて、それぞれを対応点とする。
【００４３】
その後、図４（ｂ）の 面上点特定部１６３は、対象物が有する同じ面上に在る点を表す第１特徴点と第２特徴点とを特定する図７（ｂ）に示すような面上点特定処理を実行する（ステップＳ２４）。尚、面上点特定部１６３は、図４（ｃ）に示すように、特徴点選択部１６３ａ、変換行列算出部１６３ｂ、画像位置変換部１６３ｃ、誤差算出部１６３ｄ、投票数算出部１６３ｅ、及び面特定部１６３ｆを有する。
【００４４】
図７（ｂ）の面上点特定処理が実行されると、図４（ｃ）の特徴点選択部１６３ａは、特徴点対応部１６２が対応付けた複数の第１特徴点と第２特徴点との組（つまり、対応点）の内から４つランダムに選択する（ステップＳ３１）。選択された第１特徴点が表す対象物上の点が同じ平面上の点であれば、選択された第１特徴点の画像座標値（つまり、第１画像位置）ｍと、対応付けられた第２特徴点の第２画像位置ｍ’とは、以下の式（１）を満足する。このため、少なくとも４つのｍ及びｍ’の組を用いれば、式（１）で使用される射影変換行列Ｈを算出できるからである。つまり、射影変換行列Ｈは３×３行列であり、かつスケールが不定の場合には、４つの対応点により射影変換行列Ｈの８要素を算出できるからである。
【００４５】
ｍ〜Ｈ・ｍ’・・・（１）
但し、記号〜は両辺が定数倍の違いを許して等しいことを表す。
【００４６】
図７（ａ）のステップＳ３１が実行された後に、変換行列算出部１６３ｂは、上記の式（１）に、特徴点選択部１６３ａが選択した対応点の画像座標値ｍ及びｍ’を用いて射影変換行列Ｈを算出する（ステップＳ３２）。
【００４７】
次に、画像位置変換部１６３ｃは、全ての対応点の第１特徴点の画像座標値（つまり、第１画像位置）について、射影変換行列Ｈを用いて射影変換を行う（ステップＳ３３）。その後、誤差算出部１６３ｄは、画像位置変換部１６３ｃによる第１特徴点の第１画像位置の変換結果と、図７（ａ）のステップＳ２２で実際に取得された第２特徴点の第２画像位置との差異（つまり、射影変換誤差）を算出する（ステップＳ３４）。
【００４８】
その後、投票数算出部１６３ｅは、誤差算出部１６３ｄが算出した差異が所定の閾値ＴＨ以下となった対応点の数（以下、投票数という）を算出する（ステップＳ３５）。
【００４９】
その後、図４（ｃ）の面特定部１６３ｆは、所定回数（本実施例では１０回）に渡って、上記ステップＳ３１からＳ３５の処理の実行を繰り返したか否かを判断する（ステップＳ３６）。面特定部１６３ｆは、ステップＳ３１からＳ３５の処理を所定回数繰り返していないと判断し（ステップＳ３６；Ｎｏ）、ステップＳ３１からＳ３５の処理を繰り返す。
【００５０】
その後、面特定部１６３ｆは、ステップＳ３１からＳ３５の処理を１０回繰り返した後に、ステップＳ３５で算出した投票数が最も多い射影変換行列Ｈを選択して、変換行列Ｔとする（ステップＳ３７）。その後、面特定部１６３ｆは、変換行列Ｔの算出に用いた対応点を、対象物が有する同一平面上に在る点の第１特徴点及び第２特徴点と特定する（ステップＳ３８）。その後、面上点特定部１６３は、面上点特定処理の実行を終了する。
【００５１】
これらの構成によれば、例えば、立体空間における対象物上の点の位置（以下、空間位置という）を算出した後に、対象物上の点の空間位置に基づいて、対象物が有する面を特定する場合と比べて、少ない計算量で、面上に在る点の数が最も多い面を特定できる。
【００５２】
図７（ａ）のステップＳ２４の実行が終了した後に、図４（ｂ）の配置変化特定部１６４は、特定した第１特徴点及び第２特徴点に表された対象物上の点が存在する平面の勾配を算出すると共に、算出した勾配に基づいて撮影装置１００の配置を特定する。
【００５３】
先ず、配置変化特定部１６４の勾配算出部１６４ａは、計算の便宜のために、変換行列Ｔを、以下の式（２）が成立するように予め適当な定数を掛けて正規化する。
【００５４】
ｄｅｔ［Ｔ］＝１・・・（２）
但し、記号ｄｅｔ［Ｔ］は、変換行列Ｔの行列式を表す。
【００５５】
次に、勾配算出部１６４ａは、変換行列Ｔを用いた以下の式（３）から（５）の式と数式１とから、図８に示す様な対象物が有する平面ＷＬの勾配を表す勾配ベクトル｛ｐ，ｑ｝を算出する（金谷健一著、「画像理解」、森北出版、２００５年８月３０日発行、第８０頁から９５頁を参照）（ステップＳ２５）。
【００５６】
ｐ＝−ｐ’／ｌ’・・・（３）
ｑ＝−ｑ’／ｌ’・・・（４）
σ１≧σ２≧σ３・・・（５）
（金谷健一著、「画像理解」、第９４頁の式（４．７１）を参照）
【００５７】
【数１】
2011176626.tif 000003
（金谷健一著、「画像理解」、第８９頁の式（４．４０）を参照）
【００５８】
但し、記号σ１、σ２、及びσ３はＴ・ｔｒａｎｓ（Ｔ）の固有値を表し、記号ｔｒａｎｓは転置行列を表し、記号Ｕ１、Ｕ２、及びＵ３は固有値σ１、σ２、及びσ３に対応する固有ベクトルを表す。
【００５９】
図７（ａ）のステップＳ２５が実行された後に、図４（ｂ）の配置変化特定部１６４が有する並進ベクトル算出部１６４ｂは、変換行列Ｔを用いた以下の数式２から、撮影装置１００の移動方向を表すスケールが不定な並進ベクトルｔ／ｒを算出する（ステップＳ２６）。
【００６０】
【数２】
2011176626.tif 000004
但し、記号ｒは、図８の撮影装置１００から対象物が有する平面ＷＬまでの距離を表す。
（金谷健一著、「画像理解」、第８９頁の式（４．４１）を参照）。
【００６１】
図７（ａ）のステップＳ２６が実行された後に、図４（ｂ）の配置変化特定部１６４が有する回転行列算出部１６４ｃは、変換行列Ｔと、対象物が有する平面ＷＬの勾配ベクトル｛ｐ，ｑ｝と、スケール不定の並進ベクトルｔ／ｒとを用いた以下の数式３から、撮影装置１００の回転を表す回転行列Ｒを算出する（ステップＳ２７）。その後、図４（ｂ）の配置特定部１６０は、図７（ａ）の配置特定処理の実行を終了する。
【００６２】
【数３】
2011176626.tif 000005
但し、記号Ｉは単位行列を表し、記号ｔ（１）、ｔ（２）、及びｔ（３）は、並進ベクトルｔの第１要素、第２要素、及び第３要素をそれぞれ表す。
（金谷健一著、「画像理解」、第９０頁の式（４．４２）を参照）。
【００６３】
尚、σ１＝σ２＝σ３となる場合には、Ｒ＝Ｔ、かつｔ＝［０；０；０］となる。但し、記号；は行列の改行を表す。つまり、σ１＝σ２＝σ３となる場合は、第１画像の撮影時と第２画像の撮影時とで撮影装置１００が移動せず、回転のみをした場合である。
【００６４】
また、勾配算出部１６４ａ及び並進ベクトル算出部１６４ｂは、勾配ベクトル｛ｐ，ｑ｝及びスケールが不定な並進ベクトルｔ／ｒを、以下の数式４及び数式５を用いても算出できる。しかし、撮影装置１００の前方に対象物が在るという制約により、勾配算出部１６４ａ及び並進ベクトル算出部１６４ｂは、上記の数式１及び数式２を用いるか、又は以下の数式４及び数式５を用いるかを判断できる。
【００６５】
【数４】
2011176626.tif 000006
（金谷健一著、「画像理解」、第８９頁の式（４．４０）を参照）
【００６６】
【数５】
2011176626.tif 000007
（金谷健一著、「画像理解」、第８９頁の式（４．４１）を参照）。
【００６７】
これらの構成によれば、第１画像に表された対象物上の面を、第２画像に表された対象物上の面に変換する変換行列Ｔと、対象物上の面の勾配を表す勾配ベクトル｛ｐ，ｑ｝とに基づいて撮影装置１００の配置の変化を特定するため、基本行列Ｅを用いることなく撮影装置１００の配置を特定できる。このため、例えば、第１画像又は第２画像がノイズを有する場合であっても、基本行列Ｅを用いて撮影装置１００の配置を特定する場合と比べて、ノイズの影響を受け難く、精度良く撮影装置１００の配置を特定できる。
【００６８】
次に、図３のステップＳ０５の処理が終了すると、図４（ａ）の立体画像生成部１７０は、第１画像と第２画像と、特定された撮影装置１００の配置とを用いて対象物の立体画像を生成する３Ｄモデリング処理を行う（ステップＳ０６）。
【００６９】
具体的には、立体画像生成部１７０は、ハリスのコーナー検出法を用いて第１画像の第１特徴点と、第２画像の第２特徴点とを再度取得する。尚、立体画像生成部１７０は、ＳＩＦＴ（Scale-Invariant Feature Transform）法を用いて第１特徴点と第２特徴点とを取得しても良い。次に、立体画像生成部１７０は、テンプレートマッチングによって、再取得した第１特徴点と第２特徴点とを対応付ける。その後、立体画像生成部１７０は、対応付けたＮ個の第１特徴点の（２次元の）画像座標値（つまり、第１画像位置）を要素とするＮ×２行列ｎを生成する。同様に、立体画像生成部１７０は、対応付けたＮ個の第２特徴点の第２画像位置を要素とするＮ×２行列ｎ’を生成する。
【００７０】
ここで、第１画像の撮影時におけるカメラ座標系と原点及び座標軸の方向が同じ世界座標系の座標値を、第２画像の撮影時における画像座標系の座標値へ変換する行列（つまり、射影カメラ行列）ＰＢは、以下の式（６）及び以下の数式６で表される。
【００７１】
ＰＢ=Ａ・[Ｒ｜ｔ]・・・（６）
但し、記号｜は連結を表す。
【００７２】
【数６】
2011176626.tif 000008
但し、記号Ａは撮影装置１００の内部パラメーターを表す３×３行列を表し、記号ｆは撮影装置１００のレンズ焦点距離を表し、記号Ｃｕは撮影装置１００の光軸がｕｖ画像座標系と交わる交点のｕ軸座標値を表し、記号Ｃｖは同様に交点のｖ軸座標値を表す。
【００７３】
尚、イメージセンサーの１画素は正方（つまり、アスペクト比が値１）である。また、撮影装置１００に固有な内部パラメーターであるｆ，Ｃｕ，Ｃｖは、予め測定して値を求めておくことができるため、対象物の撮影時に行列Ａは既知であるとする。
【００７４】
このため、対象物上に有るＮ個の点の（３次元の）世界座標値を要素としたＮ×３行列Ｗと、第１画像に表された対象物上のＮ個の点（つまり、第１特徴点）の画像座標値（つまり、第１画像位置）を要素としたＮ×２行列ｎとの関係は、以下の式（７）及び数式７で表される。同様に、行列Ｗと、第２画像に表された対象物上のＮ個の点（つまり、第２特徴点）の画像座標値を要素としたＮ×２行列ｎ’との関係は、上記の式（６）で示した射影カメラ行列ＰＢを用いた以下の式（８）で表される。
【００７５】
ｔｒａｎｓ（［ｎ    １］）〜ＰＡ・ｔｒａｎｓ［Ｗ  １］・・・（７）
ｔｒａｎｓ（［ｎ’  １］）〜ＰＢ・ｔｒａｎｓ［Ｗ  １］・・・（８）
【００７６】
【数７】
2011176626.tif 000009
【００７７】
尚、画像座標及び世界座標を同次座標として扱うため、値「１」の要素を付加して次元拡張を行っている。回転行列Ｒが３×３行列であり、並進ベクトルｔが３×１ベクトルであるため、外部パラメーターである（Ｒ｜ｔ）は３×４行列となるからである。
【００７８】
よって、立体画像生成部１７０は、取得した第１特徴点の画像座標値を上記の式（７）に代入すると共に、第２特徴点の画像座標値を上記の式（８）に代入することで４本の等式を生成すると共に、生成した４本の等式を満足する３要素の世界座標値を、最小二乗法を用いて算出する。
【００７９】
その後、立体画像生成部１７０は、算出した対象物上の点の世界座標値を用いて、ドルネー（ドロネー：Delaunay）三角形で表される対象物の立体画像（つまり、ポリゴン）を生成する。
【００８０】
これらの構成によれば、対象物が有する同一面に在る点の第１特徴点と第２特徴点を特定すると共に、特定した第１特徴点と第２特徴点とを対応させるため、第１特徴点と第２特徴点とを精度良く対応させることができる。よって、例えば、第１画像又は第２画像がノイズを有する場合でも、対応させた第１特徴点と第２特徴点とに基づいて、第１画像の撮影時と第２画像の撮影時とにおける撮影手段の配置の変化を精度良く特定できるだけでなく、特定した配置の変化に基づいて立体画像を精度良く生成できる。
【００８１】
図３のステップＳ０６が実行された後に、図４（ａ）の表示制御部１８１は、対象物の立体画像を表示するよう図１（ｂ）の表示部１０３を制御する（ステップＳ０７）。次に、出力制御部１８２は、撮影装置１００に接続するコンピューターへ立体画像を表す３Ｄモデリングデータを出力するよう図１（ｃ）の外部Ｉ／Ｆ部１０６を制御する（ステップＳ０８）。その後、立体画像保存部１８３は、立体画像を図２の外部記憶部１２３へ保存する（ステップＳ０９）。その後、撮影装置１００は、立体画像生成処理の実行を終了する。
【００８２】
＜第２実施形態＞
次に、第２実施形態について説明を行う。
第２実施形態に係る画像処理装置２００は、対象物が有する平面ＷＬの勾配を用いずに、平面上に在ると特定した点の第１特徴点と第２特徴点とに基づいて基礎行列Ｅを算出すると共に、基礎行列Ｅに基づいて撮影装置の配置（つまり、回転行列Ｒと並進ベクトルｔ）を特定する。尚、本実施形態に係る画像処理装置２００と、第１実施形態に係る画像処理装置１００とは、配置変化特定部においてのみ相違するため、その他の共通する部分については説明を省略する。
【００８３】
画像処理装置２００の配置変化特定部２６４は、図９に示すような面上点特定部２６３からデータを取得する基礎行列算出部２６４ａと、並進ベクトル算出部２６４ｂ及び回転行列算出部２６４ｃとを有する。
【００８４】
ここで、画像座標がｍである第１特徴点の世界座標値は、カメラ内部パラメーターを表す行列Ａを用いて、ｉｎｖ（Ａ）・ｍと表される。また、画像座標がｍ’である第２特徴点の世界座標値は、行列Ａ及び回転行列Ｒを用いて、Ｒ・ｉｎｖ（Ａ）・ｍ’と表される。ここで、並進ベクトルｔと、ｉｎｖ（Ａ）・ｍと、Ｒ・ｉｎｖ（Ａ）・ｍ’とは、同一平面上にあるため、これらのスカラー三重積は値「０」となる。このため、以下の式（９）及び式（９）を変形した式（１０）から式（１２）が成立する。
ｔｒａｎｓ（ｉｎｖ（Ａ）・ｍ）・（ｔ×（Ｒ・ｉｎｖ（Ａ）・ｍ’））＝０・・・（９）
ｔｒａｎｓ（ｍ）・ｔｒａｎｓ（ｉｎｖ（Ａ））・ｔ×Ｒ・ｉｎｖ（Ａ）・ｍ’＝０・・・（１０）
ｔｒａｎｓ（ｍ）・ｔｒａｎｓ（ｉｎｖ（Ａ））・Ｅ・ｉｎｖ（Ａ）・ｍ’＝０・・・（１１）
∵基礎行列Ｅ＝ｔ×Ｒ
ｔｒａｎｓ（ｍ）・Ｆ・ｍ’＝０・・・（１２）
但し、基本行列Ｆ＝ｔｒａｎｓ（ｉｎｖ（Ａ））・Ｅ・ｉｎｖ（Ａ）
【００８５】
ここで、基本行列Ｆは、３行３列の行列であり、行列Ａは、スケールに関連するパラメーターを考慮していないため、８個以上の対応点（つまり、ｍとｍ’との組）と上記の式（１２）とを用いて、基本行列Ｆ及び基礎行列Ｅを算出できる。
【００８６】
よって、面上点特定部２６３は、投票数が８以上の平面を、対象物が有する面であると特定する。また、図９の基礎行列算出部２６４ａは、面上点特定部２６３が同一平面に在ると特定した８個の点の対応点を用いて基本行列Ｆ及び基礎行列Ｅを算出する。
【００８７】
次に、図９の並進ベクトル算出部２６４ｂは、基礎行列算出部２６４ａが算出した基礎行列Ｅから並進ベクトルｔを算出する。具体的には、並進ベクトル算出部２６４ｂは、行列「ｔｒａｎｓ（Ｅ）・Ｅ」の最小固有値の固有ベクトルを算出する。
【００８８】
これは、基礎行列Ｅはｔ×Ｒであるため、基礎行列Ｅと並進ベクトルｔとの内積は値「０」となり、以下の式（１３）が成立するからであり、式（１３）が成立するということは、並進ベクトルｔが行列「ｔｒａｎｓ（Ｅ）・Ｅ」の最小固有値の固有ベクトルとなるからである。
ｔｒａｎｓ（Ｅ）・ｔ＝０・・・（１３）
【００８９】
但し、並進ベクトルｔは、スケールと符号が不定であるが、カメラ前方に対象物が存在するという制約により並進ベクトルｔの符号を求めることができる。
【００９０】
その後、図９の回転行列算出部２６４ｃは、基礎行列Ｅと並進ベクトルｔとを用いて回転行列Ｒを算出する。具体的には、基礎行列Ｅはｔ×Ｒであるため、回転行列算出部２６４ｃは、以下の式（１４）を用いて、算出対象とする回転行列Ｒ及び既に算出した並進ベクトルｔの外積と、既に算出した基礎行列Ｅとの誤差が最小になるように、最小二乗法を用いて回転行列Ｒを算出する。
Σ（ｔ×Ｒ−Ｅ）＾２⇒ｍｉｎ・・・（１４）
但し、記号＾２は行列の２乗を表し、記号Σは行列の全要素の和を表し、記号⇒ｍｉｎは左辺の値を最小化することを表す。
【００９１】
ここで、回転行列算出部２６４ｃは、上記の式（１４）を解くために、既に算出した並進ベクトルｔと基礎行列Ｅとを用いて−ｔ×Ｅを算出すると共に、以下の式（１５）の様に−ｔ×Ｅを特異値分解してユニタリ行列Ｕ、特異値の対角行列Ｓ、及び随伴行列Ｖを算出する。
Ｕ・Ｓ・Ｖ＝ｓｖｄ（−ｔ×Ｅ）・・・（１５）
但し、記号＝ｓｖｄは、括弧内の行列−ｔ×Ｅを特異値分解することを表す。
【００９２】
次に、回転行列算出部２６４ｃは、既に算出したユニタリ行列Ｕ及び随伴行列Ｖを下記の式（１６）に用いて回転行列Ｒを算出する。
Ｒ＝Ｕ・ｄｉａｇ（１，１，ｄｅｔ（Ｕ・Ｖ））・Ｖ・・・（１６）
但し、記号ｄｉａｇは対角行列を表す。
【００９３】
＜第３実施形態＞
次に、第３実施形態について説明を行う。
第３実施形態に係る画像処理装置３００は、対象物上の点の立体空間における位置を算出することで、対象物が有する平面上の点を特定する。尚、第１実施形態に係る画像処理装置１００と共通する部分については説明を省略する。
【００９４】
画像処理装置３００が有する制御部は、図３に示すような立体画像生成処理を実行することで、図１０（ａ）に示すような撮影制御部３４０、画像取得部３５０、配置特定部３６０、立体画像生成部３７０、表示制御部３８１、出力制御部３８２、及び立体画像保存部３８３として機能する。
【００９５】
図３の立体画像生成処理が開始されると、図１０（ａ）の撮影制御部３４０及び画像取得部３５０は、ステップＳ０１からＳ０４の処理を実行する。次に、配置特定部３６０は、図１１（ａ）に示すような配置特定処理を実行する（ステップＳ０５）。尚、配置特定部３６０は、図１０（ｂ）に示すような特徴点取得部３６１、特徴点対応部３６２、面上点特定部３６３、変換行列算出部３６３ｂ、及び配置変化特定部３６４を有する。また、配置変化特定部３６４は、勾配算出部３６４ａ、並進ベクトル算出部３６４ｂ、及び回転行列算出部３６４ｃを有する。
【００９６】
図１１（ａ）の配置特定処理が開始されると、図１０（ｂ）の特徴点取得部３６１は、図７（ａ）のステップＳ２１及びＳ２２と同様の処理を実行する（ステップＳ４１及びＳ４２）。次に、特徴点対応部３６２は、図７（ａ）のステップＳ２３と同様の処理を実行する（ステップＳ４３）。
【００９７】
その後、面上点特定部３６３は、図１１（ｂ）に示す様な面上点特定処理を実行する。尚、面上点特定部３６３は、図１０（ｃ）に示すような基礎行列算出部３６３ａ、並進ベクトル算出部３６３ｂ、回転行列算出部３６３ｃ、空間位置算出部３６３ｄ、ハフ変換部３６３ｅ、投票部３６３ｆ、点数算出部３６３ｇ、及び面特定部３６３ｈを有する。
【００９８】
図１１（ｂ）の面上点特定処理が開始されると、基礎行列算出部３６３ａは、第１特徴点の画像座標値と第２特徴点の画像座標値とに基づいて基礎行列Ｅを、実施形態２で説明した算出方法を用いて算出する（ステップＳ５１）。
【００９９】
次に、並進ベクトル算出部３６３ｂは、基礎行列Ｅに基づいて並進ベクトルｔを、実施形態２で説明した算出方法を用いて算出する（ステップＳ５２）。その後、回転行列算出部３６３ｃは、基礎行列Ｅに基づいて回転行列Ｒを、実施形態２で説明した算出方法を用いて算出する（ステップＳ５３）。
【０１００】
その後、空間位置算出部３６３ｄは、算出した回転行列Ｒと並進ベクトルｔと第１特徴点の画像座標値と第２特徴点の画像座標値とを、上記の式（７）及び（８）に用いることで、対象物上の点の世界座標値（つまり、空間位置）を算出する（ステップＳ５４）。次に、ハフ変換部３６３ｅは、対象物上の点の世界座標値で定まる平面を特定すると共に、特定した平面の、以下の式（１７）で表される平面方程式を、以下の式（１８）で表される方程式へハフ変換する（ステップＳ５５）。
【０１０１】
Ｚ＝ｐＸ＋ｑＹ＋ｒ・・・（１７）
【０１０２】
ｓ＝Ｘ・ｓｉｎθ・ｃｏｓφ＋Ｙ・ｓｉｎθ・ｓｉｎφ＋Ｚ・ｃｏｓθ・・・（１８）
但し、記号θ及びφはラジアンを表し、０から２πまでの値を持つ。
【０１０３】
次に、投票部３６３ｆは、ハフ変換により得られるｓ、θ、及びφのパラメーター空間を、所定の大きさの立方体（以下、セルという）に分割する（ステップＳ５６）。その後、投票部３６３ｆは、ハフ変換部３６３ｅがハフ変換することで得られたｓ、θ、及びφの値の組（以下、パラメーター組という）で表される点をパラメーター空間にプロット（つまり、投票）する（ステップＳ５７）。つまり、ハフ変換部３６３ｅ及び投票部３６３ｆは、対象物上の点を世界座標系の空間からｓ、θ、及びφパラメーター空間へ写像させる。
【０１０４】
その後、点数算出部３６３ｇは、パラメーター空間のセル毎に、投票されたパラメーター組の数（つまり、点の数）を算出する（ステップＳ５８）。次に、面特定部３６３ｈは、最も得票数が多い（最もパラメーター組が多く通る）セルを選択する（ステップＳ５９）。その後、面特定部３６３ｈは、選択されたセル内（選択セル内と図示する）のパラメーター組に対応した点を、対象物が有する同一平面上の点と特定すると共に、特定した点で定まる面を対象物が有する平面と特定する（ステップＳ６０）。その後、面上点特定部３６３は、面上点特定の実行を終了する。
【０１０５】
図１１（ａ）のステップＳ４４の処理が実行された後に、図１０（ｂ）の変換行列算出部３６３ｂは、同一平面上にあると特定された点の第１特徴点の画像座標値を、第２特徴点の画像座標値へ変換する変換行列Ｔを、上記の式（１）を用いて算出する（ステップＳ４５）。
【０１０６】
その後、図１０（ｂ）の配置変化特定部３６４が有する勾配算出部３６４ａ、並進ベクトル算出部３６４ｂ、及び回転行列算出部３６４ｃは、図７（ａ）のステップＳ２５からＳ２７の処理と同様の処理を実行する（ステップＳ４６からＳ４８）。その後、図１０（ｂ）の配置特定部３６０は、配置特定処理の実行を終了する。
【０１０７】
図３のステップＳ０５の処理が実行された後に、立体画像生成部３７０、表示制御部３８１、出力制御部３８２、及び立体画像保存部３８３は、それぞれステップＳ０６からＳ０９の処理を実行する。その後、立体画像生成処理の実行が終了される。
【０１０８】
尚、本発明に係る機能を実現するための構成を予め備えた撮影装置として提供できることはもとより、プログラムの適用により、既存の撮影装置を本発明に係る撮影装置として機能させることもできる。すなわち、上記実施形態で例示した撮影装置１００、２００、又は３００による各機能構成を実現させるための制御プログラムを、既存の撮影装置を制御するコンピューター（ＣＰＵなど）が実行できる様に適用することで、本発明に係る撮影装置１００、２００、又は３００として機能させることができる。また、本発明に係る撮影装置の制御方法は、撮影装置１００、２００、又は３００を用いて実施できる。
【０１０９】
このようなプログラムの配布方法は任意であり、例えば、メモリカード、ＣＤ−ＲＯＭ、又はＤＶＤ−ＲＯＭなどの記録媒体に格納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。
【０１１０】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【０１１１】
１００，２００，３００・・・撮影装置、１０１・・・ストロボ発光窓、１０２・・・撮影レンズ、１０３・・・表示部、１０４ｄ・・・３Ｄモデリングキー、１０４ｐ・・・電源キー、１０５・・・操作キー、１０６・・・外部Ｉ／Ｆ部、１０９・・・シャッターボタン、１１０・・・撮影部、１１１・・・光学装置、１１２・・・イメージセンサー部、１２０・・・データ処理部、１２１・・・制御部、１２２・・・記憶部、１２３・・・外部記憶部、１２４・・・画像処理部、１２５・・・画像メモリ、１２６・・・画像出力部、１３０・・・Ｉ／Ｆ部、１３１・・・操作部、１４０，３４０・・・撮影制御部、１５０，３５０・・・画像取得部、１６０，３６０・・・配置特定部、１６１，３６１・・・特徴点取得部、１６２，３６２・・・特徴点対応部、１６３，２６３，３６３・・・面上点特定部、１６３ａ・・・特徴点選択部、１６３ｂ，３６３ｂ・・・変換行列算出部、１６３ｃ・・・画像位置変換部、１６３ｄ・・・誤差算出部、１６３ｅ・・・投票数算出部、１６３ｆ，３６３ｈ・・・面特定部、１６４，２６４，３６４・・・配置変化特定部、１６４ａ，３６４ａ・・・勾配算出部、１６４ｂ，２６４ｂ，３６３ｂ，３６４ｂ・・・並進ベクトル算出部、１６４ｃ，２６４ｃ，３６３ｃ，３６４ｃ・・・回転行列算出部、１７０，３７０・・・立体画像生成部、１８１，３８１・・・表示制御部、１８２，３８２・・・出力制御部、１８３，３８３・・・立体画像保存部、２６４ａ，３６３ａ・・・基礎行列算出部、３６３ｄ・・・空間位置算出部、３６３ｅ・・・ハフ変換部、３６３ｆ・・・投票部、３６３ｇ・・・点数算出部
【図１】
2011176626.tif 000010
【図２】
2011176626.tif 000011
【図３】
2011176626.tif 000012
【図４】
2011176626.tif 000013
【図５】
2011176626.tif 000014
【図６】
2011176626.tif 000015
【図７】
2011176626.tif 000016
【図８】
2011176626.tif 000017
【図９】
2011176626.tif 000018
【図１０】
2011176626.tif 000019
【図１１】
2011176626.tif 000020