(57)【特許請求の範囲】
【請求項１】
第１の撮像素子及び第２の撮像素子の少なくとも２つの撮像素子を有する撮像装置であって、
前記撮像装置の撮影方向を検知する撮影方向検知部と、
前記撮像素子による撮影画像から視差を算出する視差算出部と、
前記視差算出部により算出した視差情報を被写体位置に関する情報に変換する視差変換部と、
前記撮像装置の撮影方向を指示する撮影方向指示部と、
撮影被写体の形状を設定する形状設定部と、を備え、
前記撮影方向指示部は、前記形状設定部により設定された被写体の形状に基づき、前記撮影方向を指示することを特徴とする撮像装置。
【請求項２】
被写体の検出方向を設定する検出方向設定部をさらに備え、
前記検出方向は、前記形状設定部により指定された被写体の形状に基づき設定され、
前記撮影方向は、前記指定された検出方向に対して同一の方向に２つの撮像素子が並ぶように撮影方向を指定することを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記撮影方向検知部は、画像から被写体のエッジを検出するエッジ検出部を有し、前記エッジ検出部は、前記検出方向と同方向における被写体のエッジを検出し、前記撮影方向指示部は、前記エッジの検出量が最も少なくなるように撮影方向を指示することを特徴とする請求項２に記載の撮像装置。
【請求項４】
前記視差変換部は、視差を被写体位置に関する情報である前記撮像装置から被写体までの距離、被写体の長さ、面積、体積の少なくともいずれかに変換することを特徴とする請求項１から３までのいずれか１項に記載の撮像装置。
【請求項５】
第１の撮像素子及び第２の撮像素子の少なくとも２つの撮像素子を有する撮像装置の撮影方向を検知する撮影方向検知ステップと、
前記撮像素子による撮影画像から視差を算出する視差算出ステップと、
視差情報を被写体位置に関する情報に変換する視差変換ステップと、
前記撮像装置の撮影方向を指示する撮影方向指示ステップと、
撮影被写体の形状を設定する形状設定ステップと、を含み、
前記形状設定ステップにより設定された被写体の形状に基づき、前記撮影方向指示ステップにおいて撮影方向を決定することを特徴とする撮像制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる視点位置から被写体を撮像し、被写体の長さ等を検出する事が可能な撮像装置、及び撮像制御方法に関する。
【背景技術】
【０００２】
複数の視点から同一被写体をカメラで撮像して得られる複数の画像に基づいて、画像間の相対的なずれ量である視差を算出し、三角測量の原理を用いて被写体の距離情報（奥行き情報）や三次元形状を計測する撮像システムがある。
【０００３】
画像間の視差を算出する手法としては、ステレオマッチングと呼ばれる２つの画像間での対応点探索が行われている。具体的な対応点の探索方法としては、領域ベースで行うＳＡＤ（Sum Of Absolute Difference）やＳＳＤ（Sum of Squared Difference）のほか、エッジやコーナー点などの特徴点を算出してから行う特徴量をベースとしたマッチング手法などが知られている。
【０００４】
このような対応点探索により距離や三次元形状を計測する例として、下記特許文献１には測定対象物を１つのカメラである単カメラにより重複させながら順次撮影し、三次元位置測定部により撮影画像とライブ画像で重複する特徴点の三次元座標を求めながら、測定対象物の撮影範囲を三次元空間に表現するための撮影範囲画像に各特徴点を書き込むことで、次に撮影する撮影の重複状況を把握でき、撮影を過不足なく効率的に行なえる三次元計測用画像撮影装置が記載されている。
【０００５】
また、下記特許文献２には少なくとも３台のカメラによって物体を撮像し、そのうち２台のカメラ画像により被写体を検出して形状や姿勢を判断する事で、最も適切な２台のカメラを選択して物体の形状・姿勢を正確に検出する検出装置が記載されている。
【０００６】
また、下記特許文献３には異なる視点から計測対象物を撮像して視点毎の画像を取得し、一方の画像から特徴点を抽出し、抽出した特徴点に対して別の画像上で対応点探索を行い、特徴点に対応する点が探索によって得られたものに対して所定の印を表示することにより、特徴点の選択による計測箇所の指定操作を効率的に行えるようにする画像計測装置が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−２５６２５２号公報
【特許文献２】特開平８-２６３６２９号公報
【特許文献３】特開２００６−３２９６８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このように、様々な距離や三次元形状を測定するシステムがあるが、より簡易な方法で特定の被写体の長さや面積、大きさを知りたいと言う要求がある。
【０００９】
しかしながら、特許文献１に記載の装置にあっては、物体全体の形状を知ることを目的としており、多くの回数の撮影をする事が必要となる。また、撮影角度と被写体位置・形状によっては、適切に物体までの距離を検出できない領域が存在する可能性がある。
【００１０】
また、特許文献２に記載の装置にあっては、３台のカメラ構成で被写体平面に対して可能な限り正対する２つのカメラを設定する事で検出し易いようにしているが、特許文献１同様被写体の位置や形状によっては、被写体の長さを測る際に測定が出来ない点が存在するほか、カメラが３台以上必要な構成を前提としており、構成が複雑になる。
【００１１】
また、特許文献３に記載の装置にあっては、特徴点を検出し、対応点が特定できた部分のみを明示しているが、対応点が特定できなかった部分の検出方法については考慮されていない。
【００１２】
本発明は、以上のような問題点を解決するためになされたものであって、被写体におけるユーザーが測定したい部分の長さや大きさを、できる限り容易に、より確実に測定する事が出来る撮像装置及び撮影制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の撮像装置は、第１の撮像素子及び第２の撮像素子の少なくとも２つの撮像素子を有する撮像装置であって、前記撮像装置の撮影方向を検知する撮影方向検知部と、前記撮像素子による撮影画像から視差を算出する視差算出部と、視差情報を被写体位置に関する情報に変換する視差変換部と、前記撮像装置の撮影方向を指定する撮影方向指定部と、を備え、前記撮影方向指定部は、指定する前記撮影方向に撮像装置を移動するように指示することを特徴とする。
【００１４】
本発明によれば、撮影方向指定部により撮影方向を指定することで、所望の被写体位置における視差を算出しやすくすることが可能となる。
【００１５】
本発明の撮像装置は、被写体における長さを検出する方向をあらかじめ指定する検出方向設定部を更に備え、前記検出方向設定部により指定された検出方向に基づき、前記撮影方向指定部における撮影方向を決定することを特徴とする。
【００１６】
本発明によれば、あらかじめ被写体の長さを検出する方向を指定する事により、より確実に所望の被写体位置における視差を算出し被写体の長さを算出する事が可能となる。
【００１７】
本発明の撮像装置は、前記検出方向設定部は、たとえばユーザーにより選択された２点の座標から検出方向を設定することを特徴とする。
【００１８】
本発明によれば、２点の座標から検出方向をすることにより、ユーザーの検出方向の設定を容易にする事が可能となる。
【００１９】
本発明の撮像装置は、撮影被写体の形状を指定する形状設定部を更に備え、前記被写体の形状に基づき被写体の検出方向を設定することを特徴とする。
【００２０】
本発明によれば、形状設定部により指定された被写体の形状に適した撮影方向を指定する事ができ、被写体における長さ等をより確実に算出する事が可能となる。
【００２１】
本発明の撮像装置は、前記撮影方向を、前記指定された検出方向に対して同一の方向に２つの撮像素子が並ぶように撮影方向を指定することを特徴とする。
【００２２】
本発明によれば、検出方向に対する視差の算出をより確実に算出することが可能となる。  
【００２３】
本発明の撮像装置は、前記撮影方向検知部を、画像から被写体のエッジを検出するエッジ検出部を有し、前記エッジ検出部は、前記検出方向と同方向における被写体のエッジを検出し、前記エッジの検出量が最も少なくなるように撮影方向を指示することを特徴とする。
【００２４】
エッジ検出を行いこの結果に従って撮影方向を設定する事により、撮影方向検知部を特別な機構を用いることなく実現できると共に、検出方向の視差を算出しやすくすることが可能となる。
【００２５】
また、前記視差変換部は、視差を被写体位置に関する情報である前記撮像装置から被写体までの距離、被写体の長さ、面積、体積の少なくともいずれかに変換することを特徴とする。
【００２６】
本発明の撮像制御方法は、第１の撮像素子及び第２の撮像素子の少なくとも２つの撮像素子を有する撮像装置の撮影方向を検知する撮影方向検知ステップと、前記撮像素子による撮影画像から視差を算出する視差算出ステップと、視差情報を被写体位置に関する情報に変換する視差変換ステップと、前記撮像装置の撮影方向をする撮影方向指定ステップと、被写体における長さを検出する方向をあらかじめ指定する検出方向設定ステップと、を含み、前記指定された検出方向に基づき、前記撮影方向指定ステップにおいて撮影方向を決定することを特徴とする。
【００２７】
本発明によれば、撮影方向を指定する事で、所望の被写体位置における視差を算出しやすくする事が可能となる。
【００２８】
本発明は、コンピュータに上記に記載の撮像制御方法を実行させるためのプログラムであっても良く、当該プログラムを記録するコンピュータ読み取り可能な記録媒体であっても良い。
【発明の効果】
【００２９】
本発明の撮像装置及び撮像制御方法によれば、被写体においてユーザーが測定したい部分の長さや大きさを、できる限り容易に、かつ確実に測定する事が可能となるという効果が得られる。
【図面の簡単な説明】
【００３０】
【図１】本発明の第１の実施形態における撮像装置の一構成例を示す機能ブロック図である。
【図２】本発明の第１の実施形態における撮像装置における処理の流れを示すフローチャート図である。
【図３】検出方向設定時のメニュー例を示す図である。
【図４】被写体と撮像装置との関係を示す図である。
【図５】左右カメラ画像間の視差について説明するための図である。
【図６】エピポーラ線の説明に関する図である。
【図７】補正後の左右カメラ画像の概要を示す図である。
【図８】ＳＡＤによるステレオマッチングの概要を示す図である。
【図９】被写体における視差算出を説明する為の図である。
【図１０】２つのカメラが垂直方向に並ぶ際の被写体と視差について説明する為の図である。
【図１１】検出方向と撮影方向の対応を示す図である。
【図１２】本発明の第２の実施形態における撮像装置の一構成例を示す機能ブロック図である。
【図１３】本発明の第２の実施形態における撮像装置における処理の流れを示すフローチャート図である。
【図１４】検出方向を設定する方法を説明する図である。
【図１５】本発明の第３の実施形態における撮像装置の一構成例を示す機能ブロック図である。
【図１６】本発明の第３の実施形態における撮像装置における処理の流れを示すフローチャート図である。
【図１７】検出方向設定時のメニュー例を示す図である。
【図１８】撮影方向検知部を２回撮影で行う方法を説明する為の図である。
【発明を実施するための形態】
【００３１】
本発明の実施形態について、図面を参照しながら以下に詳細に説明する。
【００３２】
（第１の実施形態）
図１は、本発明の第１の実施形態における撮像装置の一構成例を示す機能ブロック図である。
【００３３】
図１に示すように、撮像装置１００は２つの撮像素子を備えたデジタルカメラであり、第１の撮像素子である画像を取得する第１カメラ１０１と、第２の撮像素子である第２カメラ１０２と、情報を記憶する記憶部１０３と、様々な情報を表示すると共にユーザーからの入力操作を受け付ける表示・入力部１０４と、被写体の検出方向を指定する検出方向設定部１０５と撮影方向を指定する撮影方向指定部１０６、撮像装置の向きを検知する撮影方向検知部である加速度センサ１０７、２つの異なる視点からの映像から視差を算出する視差算出部１０８、及び視差を被写体位置に関する情報であるカメラから被写体までの距離や被写体の長さ、面積、体積等に変換する視差変換部１０９と、を有している。但し、撮像装置１００内に、上記全ての構成要素が含まれている場合に限定されない。第１カメラ１０１を基準カメラとし、第１カメラ１０１と第２カメラ１０２は各カメラの光軸が平行になるように配置されている。記憶部１０３はハードディスクやフラッシュメモリ、あるいはＤＲＡＭ（Dynamic Random Access Memory）といった記憶媒体、表示・入力部１０４はタッチパネル式の液晶パネルや有機ＥＬ（Electro Luminescence）パネルで構成可能である。
【００３４】
撮像装置１００は、複数のモードを切り替えるモード設定部１１０を備える。モード設定部１１０によって設定されるモードは、例えば２つのカメラで立体画像を撮影する３Ｄ撮影モード、１つのカメラのみで通常の撮影を行う単眼撮影モード、２つのカメラを利用して被写体の大きさを測定する被写体測定モード等がある。ここでは、表示・入力部１０４によってユーザーから被写体測定モードを指定され、モード設定部１１０により被写体測定モードが設定されている場合の動作について詳細を記載する。
【００３５】
ユーザーは、検出方向設定部１０５により被写体において長さを測定したい方向を設定し、この検出方向に従い撮影方向指定部１０６は撮影方向を設定する。撮影方向と現在のカメラの方向が一致しているかどうかを撮影方向検知部１０７により判定し、一致していない場合は表示・入力部１０４に撮影方向を変えるメッセージを表示し、カメラが撮影方向となるようユーザーを誘導する。そして、撮影方向と現在のカメラ方向が一致した場合、第１カメラ１０１と第２カメラ１０２により映像を取得し、記憶部１０３に保持される各映像から視差算出部１０８によって視差を算出する。視差算出部１０８によって算出された視差情報を元に、視差変換部１０９は記憶部１０３に保持される２つのカメラの位置関係などを示すカメラパラメータを取得し、ユーザーによって指定された点の距離、あるいは２点間の長さを視差情報とカメラパラメータを元に算出し表示・入力部１０４へ表示する。
【００３６】
図２は本実施の形態による撮像制御方法の処理の流れを示すフローチャート図であり、これに従い処理の内容について詳細に説明する。モード設定部１１０により、被写体測定モードが設定された場合、検出方向設定部１０５はユーザーが検出方向を設定するためのメニューを表示するよう表示・入力部１０４に指示する。検出方向とは、被写体の大きさを測定する際に、被写体の高さ、あるいは幅など、どの方向について大きさ（長さ）を測定したいかという方向である。
【００３７】
図３にこの際に表示するメニューの一例を示す。図３は表示・入力部１０４の表示画面であり、記憶部１０３から読み出された基準カメラである第１カメラ画像がプレビュー表示されており、大きさを測ろうとする被写体１１１が表示されている。そして、画面の右側に検出方向設定部１０５によるメニューが表示されており、メニューは被写体の縦方向の長さを測定することを指示するボタン１１２、横方向の長さを測定することを指示するボタン１１３、縦・横の両方を表示するボタン１１４を有している。
【００３８】
いま、撮像装置１００は図４に示すように被写体１１１に向かって、基準カメラである第１カメラは左に、第２カメラは右に位置した状態で撮影している。ユーザーは、被写体においてどの方向の長さを測定するかをこのボタンにより検出方向を設定する（ステップＳ１０）。例えば図３に矢印１１５で示す縦方向の長さを測定する場合にはボタン１１２を、矢印１１６で示す横方向の長さを測定する場合にはボタン１１３を選択する。尚、ここでの縦、横方向とは図４に示すように水平方向に２つのカメラが並ぶよう撮像装置１００が位置している場合であり、垂直方向に２つのカメラが並ぶ場合には、縦と横は入れ替わり、画像の長手方向が縦、短い方向が横となる。
【００３９】
検出方向設定部１０５から撮影方向指定部１０６に検出方向が送られる。撮影方向指定部１０６は、検出方向に従って撮影方向を決定する（ステップＳ１１）。撮影方向とは、被写体に対する２つのカメラの並ぶ方向であり、詳細については後述する。
【００４０】
撮影方向指定部１０６は現在のカメラの方向を撮影方向検知部１０７から取得し、カメラの向きと撮影方向が一致しているかどうかを判定する（ステップＳ１２）。もし一致していない場合は、撮影方向指定部１０６は表示・入力部１０４にメッセージを表示し、カメラの向きと撮影方向が一致するよう誘導する（ステップＳ１３）。撮影方向検知部１０７は３軸の加速度センサであることから、重力加速度によりカメラの状態や動きを判別可能であり、これによりカメラの向きを判断する。カメラの傾きに従い、例えば、「カメラを９０度時計回りに回転してください」といったメッセージにより誘導する。これにより、撮影方向とカメラの向きを確実に一致させることが可能となる。
【００４１】
撮影方向指定部１０６は、カメラの向きと撮影方向が一致したことを確認し、視差算出部１０８に視差の算出を行うよう指示する。視差算出部１０８は、そのときの第１カメラ１０１の画像と第２カメラ１０２の画像を記憶部１０３より取得し、視差の算出を行う。以下に視差の算出方法について詳細を記載する（ステップＳ１４、ステップＳ１５）。
【００４２】
図５（ａ）は第１カメラ画像１１７を、図５（ｂ）は第２カメラ画像１１８を示している。被写体１１１における対応点同士の位置を比較すると、被写体１１１は第２カメラ画像において、第１カメラ画像に対してｄの幅だけ左側に撮像されており、この同一被写体の対応点同士のズレ量であるｄが視差である。ｄは画素数で表すものとする。第１カメラ１０１と第２カメラ１０２は輻輳を持たない平行な配置としているので、視差は無限遠で０となり、被写体が近づくほど大きな視差となる。また、エピポーラ線は同じ高さの水平な直線となり、対応点は同じ高さの同一のライン上に位置する。なお輻輳とは、眼球運動の一種で対象に視線を交差させようとする両眼の動きであり、カメラにおいては各カメラの光軸が交わることを言う。エピポーラ線とは、図６に示すように、空間中の特徴点１と、２つのカメラ２、３のレンズ中心と、によってできる平面（エピポーラ平面）４と、それぞれのカメラの画像平面５、６との交線が対応する線であり、図６では７、８の点線で示される。カメラの光軸を平行に配置する平行配置の場合は、図６で示したエピポーラ線７、８は、図７に示すように同じ高さの水平な直線となる。よって２つのカメラ画像における対応点は、同一ライン上に位置することとなる。
【００４３】
ここで、図８を用いてステレオマッチングの一種であるＳＡＤによるブロックマッチングについて説明する。図８（ａ）に示す第１カメラ画像１１７と第２カメラ画像１１８において、エピポーラ線は一致しているものとし、左右画像上の対応点は水平方向に同一ライン上にあるものとする。第１カメラ画像１１７上で視差を算出したい画素を中心に３×３のサイズを持つウインドウ１２０を設定する。ウインドウ１１９の右端は、第１カメラ画像１１７の右端からａ画素の位置とする。第２カメラ画像１１８において、このウインドウ１１９と同一ライン上で画像右端からａ+ｄ＿ｍａｘの距離離れた位置のウインドウ１２０から、画像右端からａの位置にあるウインドウ１２１まで、１画素ずつウインドウの位置をずらしながら左画像のウインドウ１１９に対する相関値を計算することにより、対応点を特定する事が可能となる。図８（ｂ）は、それぞれウインドウ１１９、１２０を示しておりＸ０、Ｘ’０などＸやＸ’に数値を付与した記号は、ウインドウの各画素におけるＧの画素値を示している。
【００４４】
【数１】
0005980541.tif 000002
【００４５】
上記の数式に従い、ウインドウごとの相関値であるＳＡＤ値を算出する。これを、ウインドウ１１９に対し、右画像上でウインドウを移動しながら相関値を算出していき、ＳＡＤ値が最も小さくなる位置がウインドウ１１９に対する対応点となり、この位置情報から視差ｄが算出される。このような操作を、第１カメラ画像１１７の全ての画像に対して行う事で、第２カメラ画像１１８に対する視差マップが算出される。
【００４６】
このような対応点探索により視差算出部１０８において視差の算出が行われるが、被写体の位置によっては視差の算出が出来ない場合がある。図９（ａ）において、第１カメラ画像１１７上に示すウインドウ１１９の位置の対応点探索を行う場合、図９（ｂ）の第２カメラ画像１１８上に示すようにウインドウ１２０から１２１において相関値の算出を行う事となる。この際、ウインドウ１２０から１２１における全ての位置の相関値はほぼ同一となってしまい、対応点が複数見つかる為正確な視差を算出出来ない。このように、探索方向とエッジの方向が略同一になる場合には対応点が複数検出され正しい視差が算出できず、長さは視差を元に算出されるためユーザーが被写体の縦方向の長さを知りたいと思っても測定できない事がありうる。例えば図９（ａ）においてウインドウ１１９の中心点と、１２２で示すポイント間の長さを知りたいと思っても、ウインドウ１１９、ポイント１２２のどちらも視差が正しく算出されず、長さを知る事が出来ない。
【００４７】
しかし、前述の撮影方向指定部１０６によって、ユーザーは長さを測定したい方向に応じて撮影方向を設定しカメラの向きを誘導する事により、測定位置における視差の探索方向と画像の特徴量であるエッジの方向が同一にならないように設定され、測定位置における視差を確実に算出できるようにする事が出来る。図９（ａ）に示したウインドウ１１９の中心点と、１２２で示すポイント間の長さ、すなわち図３における１１５の方向の長さを知りたい場合には、図３におけるボタン１１２が選択され検出方向設定部１０５により縦方向の長さを検出するよう検出方向が設定されている。このとき、撮影方向指定部１０６は、２つのカメラを垂直方向に並ぶよう誘導する。図１０はこのときの２つのカメラ画像であり、第１カメラが被写体に対して左、第２カメラが被写体に対して右の位置から、第１カメラが下、第２カメラが上に来るよう半時計周りに９０度回転した際の画像である。対応点探索におけるウインドウの移動方向は変わらずＢの矢印で示す方向である。この状態でポイント１２２の視差を算出すると、対応点を見つける事が可能となり正しく視差が算出できる。
【００４８】
図１１に検出方向と撮影方向の対応を示す。ここでは図４に示すように、２つのカメラが水平に並んだ状態を基準としており、検出方向における縦とは、画像上の短い方向であり、横は画像の長手方向である。撮影方向における縦とは２つのカメラが垂直方向に並んだ場合であり、横とは、水平方向に２つのカメラが並んだ状態である。検出方向に従い撮影方向を決定し、現在のカメラの状態と一致しているかどうかを判別し誘導する。被写体の縦横両方の長さを同時に求める場合には、２つのカメラが被写体の縦方向、及び横方向に対して斜めに傾くような位置に誘導する。例えば図３における矢印１１５、１１６の両方に対して２つのカメラの並ぶ方向が略４５度になるような位置に誘導する。このように斜めに配置する場合、被写体を２つのカメラの両方に全てが映るようにするには画角の関係から距離を離す必要が出てくる場合があり、やや距離精度が低下する可能性があるが、同時に縦方向も横方向も長さを算出できるという利点がある。このように、被写体の長さを測定する方向に応じて撮影方向を最適化することにより、被写体における所望の位置の長さを正確かつ確実に測定できるという効果がある。なお、最初の撮影時にカメラが垂直に２つ並ぶ状態だった場合、検出方向は画像の長手方向を縦、短い方向を横とする。これにより撮影方向は図１１と同様にすることで対応可能となる。
【００４９】
以下、視差算出後の処理について記載する。視差変換部１０９は、ユーザーに基準カメラである第１カメラ１０１の画像上から、被写体の特定の２点を指示するよう促す（ステップＳ１６）。選択された被写体の２点において、視差算出部１０８によって算出された視差情報と、記憶部１０３から読み出した２つのカメラのカメラパラメータを元に距離情報に変換し、ユーザーの指定した２点間の長さを算出する（ステップＳ１７）。視差から距離への換算は、２つのカメラ間隔（基線長）をｂ、各カメラの焦点距離をｆ、カメラから被写体の注目点までの実際の距離をＺとすると、視差ｄを用いて以下の式で表される。
Ｚ＝Ｂ×ｆ／ｄ    
【００５０】
この被写体の注目点までの距離Ｚがわかると、カメラのピクセルピッチ、画像上での距離を元に三角測量により被写体における２点間の長さを算出する事が可能である。
【００５１】
そして、視差変換部１０９は指定された２点間の長さを表示・入力部１０４に記憶部１０３から読み出した第１カメラ１０１の画像と共に表示する（ステップＳ１８）。これによりユーザーは指定した位置の被写体の長さやサイズを知る事が出来る。
【００５２】
なお、本実施形態における視差算出時のウインドウサイズは３×３としたが、５×５、９×９などより大きくてもよく、ウインドウの重心位置が中央からはずれるが４×４などの偶数のウインドウでもよく、このサイズに限定するものではない。探索範囲であるｄ＿ｍａｘはカメラ基線長や被写体の距離などの条件に従い、自由に設定する事が可能である。また、探索方向もここでは１２１から１２２の方向へ探索を行っているが、この方向に限定するものではない。また、図８（ｂ）にてＸ０等の値はＧの画素値としたが、Ｒ（赤）やＢ（青）など他の色のどれか一つや合計値、あるいは各画素の輝度値、またＲＧＢ３色全てを用いてもよく、これに限定されるものではない。また、対応点探索の手法としてＳＡＤを用いたがＳＳＤ（Sum of Squared Difference）など他の手法を用いても良い。
【００５３】
なお、本実施形態においては、図３において検出方向を設定するメニューを被写体と重畳して右に設定したが、右上に限らず下、左などどの位置であっても構わない。また、被写体と重畳せず最初にメニューだけを表示する形でも良く、別途設定メニューを表示するボタンを用意し、そのボタンによりメニューを呼び出すようにしても良い。また、ここではメニューの各入力領域の記述は縦、横といった記述にしたが、たとえば矢印で方向を示す、あるいは縦横の代わりに高さ、幅など異なる表現方法にしても良く、被写体の検出方向を指示するものであればどのようなものでも良い。
【００５４】
また、ここでは第１カメラを基準カメラとしたが、第２カメラを基準としても良い。第２カメラ基準で視差を算出する際には、探索方向を逆方向にする事で視差が算出可能である。また、ここでは２つのカメラは光軸が平行になるように配置している物としたが、輻輳がついていても良い。この際は、カメラパラメータから輻輳をキャンセルするよう補正処理を行った後、視差を算出する事で実現可能となる。
【００５５】
また、ここでは撮影方向検知部を加速度センサであるとしたが、方位センサやジャイロセンサを用いても良く、これらを併用しても良い。被写体を机上において真上から撮影する場合など、加速度センサだけでは方向が判別出来ない事があるが、方位センサ、あるいはジャイロセンサを用いる事により方向の判別が可能となる。
【００５６】
また、図１１における検出方向と撮影方向の対応において、縦横両方向を測定する為には斜めに配置する角度は略４５度が好ましいが、これに限定されるものではない。また、図１１に示すように検出方向と撮影方向を対応付けるのが最も良いが、縦、あるいは横のどちらかが選択された場合にもカメラの並ぶ方向が斜めにくるように誘導するようにする事も可能である。
【００５７】
また、ここでは被写体の長さを視差変換部１０９で算出するものとしたが、面積等を算出するようにしてもよい。例えば、検出方向として縦・横が選択された場合には縦方向の長さと横方向の長さから面積の算出が可能である。また、検出方向設定時のメニューも「縦・横」の代わりに「面積」として、「縦・横」が選択された場合と同様の動作をするようにしても良い。
【００５８】
（第２の実施形態）
本発明の第２の実施形態について、図面を参照しながら説明する。
図１２は、本発明の実施形態２における撮像装置の構成を示すブロック図である。なお、第１の実施形態と同様の動作をする構成に関しては同一の符号を付してある。図１３は、本発明の第２の実施形態における撮像装置における処理の流れを示すフローチャート図である。
【００５９】
撮像装置２００は、２つの撮像素子を備えた携帯端末であり、画像を取得する第１カメラ１０１と、第２カメラ１０２と、情報を記憶する記憶部１０３と、様々な情報を表示すると共にユーザーからの入力操作を受け付ける表示・入力部１０４と、被写体の検出方向を指定する検出方向設定部２０１と撮影方向を指定する撮影方向指定部２０２、撮像装置の向きを検知する撮影方向検知部であるエッジ検出部２０３、２つの異なる視点からの映像から視差を算出する視差算出部１０８、及び視差を被写体位置に関する情報であるカメラからの距離や長さに変換する視差変換部１０９を有する。ここでの携帯端末とは、例えば、携帯電話やタブレット端末、小型のパーソナルコンピュータ等である。２つのカメラ１０１と１０２は、画像の長手方向と同一の方向に並ぶ形で配置されており、カメラ１０１が基準カメラであるとする。第１の実施形態と同様、モード設定部１１０により被写体測定モードが設定されている場合の動作について詳細を記載する。
【００６０】
検出方向設定部２０１は、表示・入力部１０４によりユーザーに長さを測定したい２点の位置を入力させる（ステップＳ２０）。この際、表示・入力部１０４には第１カメラ１０１の画像が記憶部１０３を通じて表示されている。この画面上からユーザーは２点をタッチし、タッチパネルである表示・入力部１０４がその座標を取得することで２点の位置を特定する。
【００６１】
まず、あらかじめ表示・入力部１０４にメッセージを表示し、第１実施形態の図４と同様、第１カメラ１０１と第２カメラ１０１が水平方向に並ぶ状態に誘導してあるものとする。検出方向設定部２０１は、２点の座標から被写体の検出方向を設定する（ステップＳ２１）。選択した被写体の２点を結ぶ直線において、画像の長手方向となす角度を算出する。このときの角度は２つの直線によってなす角のうち鋭角の角度であることとする。
【００６２】
図１４はこの角度に対する説明の図である。第１カメラ画像２０４上に被写体２０５が写されており、黒点２０６、黒点２０７はユーザーによって指定された長さを測る２点を示している。図中ｘで示す画像の長手方向に対する角度は図中の記号Ａで表される。この角度Ａが３０度以下である場合には、画像の長手方向の長さ、すなわち現在の画面において横方向の長さを測定するものと判断し検出方向設定部２０１は検出方向を横方向に設定する。一方、６０度以上になる場合には検出方向を縦方向に設定する。それ以外の場合には、検出方向を斜め方向に設定する。このように２点の座標から検出方向を設定することにより、検出方向の設定するための操作を減らし、簡易に行うことが可能となる。
【００６３】
撮影方向指定部２０２は、検出方向設定部２０１から送られる検出方向に従い、撮影方向を決定する（ステップＳ２２）。検出方向の視差が算出できるよう撮影方向である２つのカメラの並ぶ向きを決定するが、この際エッジ検出部２０３によって被写体に対するカメラの向きを判定する。（ステップＳ２３）。検出方向が縦方向であった場合、エッジ検出部２０３は横方向のエッジ検出フィルタを設定し、指定した２つの点２０７、２０８の周辺でエッジの検出を行う。そして検出した横方向のエッジが少なくなるようにカメラの向きを変更するようメッセージを表示・入力部１０４に表示する（ステップＳ２４）。この際に表示するメッセージは、例えば「カメラを回転してください」といったメッセージである。このように横方向、すなわち画像の長手方向のエッジが少なくなるように移動する理由は、図１４に示すように縦方向の長さを測定する場合には横方向のエッジが選択されることが多く、この視差を算出する必要があるが、２つのカメラが並ぶ方向と同一方向のエッジは実施形態１で記載したように視差が算出しにくいためである。そこで、リアルタイムでこの方向のエッジを検出し、この検出成分が少なくなるよう撮影方向を設定することによって、視差が算出できる位置にカメラを誘導することが可能となる。なお、横方向や斜め方向が選択された場合には、その状態で視差が算出できる可能性が高い為、撮影方向指定部２０２はそのまま撮影し視差を算出するように視差算出部１０８に指示する。このように、エッジ検出を行いこの結果に従って撮影方向を設定することにより、撮影方向検知部を特別な機構を用いることなく実現できると共に、検出方向の視差を算出しやすくすることが可能となる。
【００６４】
以下、ステップＳ２５以下の処理については、第１の実施形態と同様の処理内容である為、説明は省略する。尚、ステップＳ２６の視差算出において、本実施形態のようにあらかじめ２点が選択されている場合には、その部分のみで視差の算出を行えばよく、これにより処理量を低減する事が可能となる。
【００６５】
なお、実施形態２において、ここでは撮像装置２００における２つのカメラが水平方向に並ぶようにした状態を初期状態として説明したが、垂直方向に並ぶ形を初期状態にするようにしても良い。その場合は、画像の長手方向に対する角度Ａが３０度以下だった場合には検出方向は縦方向となる。この際にはカメラは垂直方向に並んでいるため、そのままの状態で視差の算出が可能である。これは、撮像装置に画像の長手方向に２つのカメラが並ぶよう組み込まれている場合には、長手方向のエッジに対する視差が算出できず、短い方向には算出できるためである。画像の長手方向に２つのカメラが並ぶよう組み込まれている撮像装置を縦に構え、カメラが垂直方向に２つ並ぶ場合、検出方向が横方向の場合に視差が算出できなくなる。このように、撮像装置の配置によって縦、横の概念と視差が算出される方向は変化する。また、検出方向を設定する際の画像長手方向との成す角を３０度としたが、この角度は一例であり２０度や４５度など別の角度を基準としても良い。
【００６６】
また、ここでは２つのカメラが撮影画像における長手方向と同一の方向に並んでいるものとしたが、長手ではなく撮影画像における短い方向と同一の方向に並んでいる構成でも良く、その際は画像における短い方向について視差の算出が困難になる為、この方向を基準にして検出方向と撮影方向の決定を行うこととなる。
【００６７】
なお、ここではユーザーにより２点が選択されて長さを算出する場合について記載しているが、１点のみが選択され、カメラから選択された被写体位置までの距離を算出する場合にも、撮影方向検知部であるエッジ検出部２０３により、指定された位置の視差が算出可能かどうかを判断し、撮影方向指定部２０２で視差が算出されやすい方向に撮影方向を指示するようにしても良い。この際には、検出方向設定部２０１による検出方向の設定は不要である。また、１点、あるいは２点を指定する前にエッジ検出部２０３により視差が算出出来ない方向のエッジを検出し、その検出量が最も少なくなるよう誘導しても良い。検出方向を指定するのが最も確実であるが、これにより距離、長さを指定する点を選択前にあらかじめ視差を算出しやすい撮影方向に誘導する事が出来る。
【００６８】
（第３の実施形態）
本発明の第３の実施形態について、図面を参照しながら説明する。図１５は、本発明の第３の実施形態における画像処理装置の構成を示すブロック図である。なお、実施形態１、２と同様の動作をするものに関しては同一の符号を付してある。
【００６９】
撮像装置３００は２つの撮像素子を備えたデジタルカメラであり、画像を取得する第１カメラ１０１と、第２カメラ１０２と、情報を記憶する記憶部１０３と、様々な情報を表示すると共にユーザーからの入力操作を受け付ける表示・入力部１０４と、被写体の形状を設定する形状設定部３０１と、被写体の検出方向を指定する検出方向設定部３０２と、撮影方向を指定する撮影方向指定部１０６、撮像装置の向きを検知する撮影方向検知部である加速度センサ１０７、２つの異なる視点からの映像から視差を算出する視差算出部１０８、及び視差を被写体に関する情報であるカメラからの距離や長さに変換する視差変換部１０９を有する。２つのカメラ１０１と１０２は、画像の長手方向と同一の方向に並ぶ形で配置されており、カメラ１０１が基準カメラであるとする。実施形態１、２と同様、図示しないモード設定部１１０により被写体測定モードが設定されている場合の動作について詳細を記載する。
【００７０】
図１６は本実施形態の撮像装置における処理の流れを示すフローチャートである。まず、形状設定部３０１は表示・入力部１０４に形状を設定する為のメニューを表示し、ユーザーに測定対象である被写体の形状を選択させる（ステップＳ３０）。図１７はこのときのメニュー例を示している。画像３０３は表示・入力部に表示されている画像であり、基準カメラである第１カメラ画像１０１とメニューが重畳されて表示されている。被写体３０４が表示され、右側には形状を指定するボタンがあり、円を指定するボタン３０５、立方体・直方体を指定するボタン３０６、四角形を指定するボタン３０７がある。ユーザーは測定する被写体の形状をボタンによって選択する。このときは、円であるのでボタン３０５を選択する。その後、検出方向設定部３０２は、選択された形状に従って検出方向を設定する（ステップＳ３１）。円である場合には、どの角度から算出しても視差が算出できるため、撮影方向を全方向に設定する。また、立方体・直方体である場合、または平面の四角形である場合には、検出方向を画像長手方向に対して斜め方向に設定する。撮影方向指定部１０６は、検出方向に従い撮影方向を設定し（ステップＳ３２）、カメラの向きと撮影方向が一致しているかどうかを確認する（ステップＳ３３）。検出方向が全方向であった場合には、撮影方向も全方向とし、カメラの向きと撮影方向は一致しているものと判定する。それ以外の場合は、撮像装置３００を２つのカメラが水平に並ぶようにし、被写体に正対するよう入力・表示部１０４を通じてユーザーに指示し、その状態から指定した撮影方向になるよう撮像装置３００を動かすよう指示する。すなわち、斜め方向に検出方向が設定されている場合、撮影方向も斜め方向とし、初期状態から略４５度回転することを加速度センサ１０７によって検知し、一致した状態で撮影を行う。
【００７１】
このように形状に応じて検出方向、撮影方向を設定する事により、様々な形状の被写体に対して多くの箇所で長さを正確に算出する事が可能となる。
以下ステップＳ３５以降は前述の実施形態と同様である為、詳細な説明は省略する。
【００７２】
なお、本実施形態においては、円・立方体などいくつかの形状について示したが、ここで記載した形状に限定するものではない。また、ここではユーザーによって形状を選択する物としたが、形状設定部が複数の形状のテンプレート画像を保持し、パターンマッチング等の手法により自動で形状を認識するようにしても良い。
【００７３】
なお、上記各実施例では被写体の検出方向に従って撮影方向を指定する例を記載したが、検出方向を指定せず、異なる方向で２回撮影するようにしても良い。この場合、一度撮影を行った後、撮影方向指定部により撮影方向を変更するよう指示し、撮影方向検知部により撮影方向が変更されたことを検知して２回目の撮影を行う。この２回のデータそれぞれで視差を算出することにより、異なる角度で撮影されていることから、ユーザーが長さを測定したい所望の２点においてどちらかの画像により確実に視差が算出できるようになる。また、撮影方向検知部を画像処理部として図１８に示すように一回目に撮影した基準画像をあらかじめ決められた角度、例えば９０度回転して表示・入力部に半透明で表示し、２回目の撮影画像がこの画像に重なる位置に来た際に撮影方向であると検知し２回目の撮影を行うようにしてもよい。図１８（ａ）は１回目の基準カメラにおける撮影画像を示しており、図１８（ｂ）は２回目の撮影をするためのプレビュー画像である。点線３０８は１回目の撮影画像を回転し半透明で示したもの、実線で示す被写体１１１は現在撮像している被写体である。これが一致するように撮影を行う。重なったかどうかの判定は回転した画像と現在の画像とで差分をとり、差分があらかじめ定めた閾値以下となった際に重なったと判定し、撮影方向にあったと判断できる。このように、基準画像の大きさを各撮影回で合わせることにより、例えば縦と横の長さを同時に表示したい場合などに、特別な大きさ合わせを行う手間を省く事が出来、位置あわせが容易となる。なお、ここでは回転を９０度としたが、４５度や３０度でも良く、これに限定するものではない。
【００７４】
また、上記各実施例では２眼を例に挙げて説明を行っているが、略同一直線状に２眼以上のカメラがある場合も基準カメラを決めて対象となるカメラ間で同様の処理を行えばよく、２眼のカメラに限定するものではない。
【００７５】
また、撮像装置の撮影方向を変える際、表示部にメッセージとして表示する例を示しているが、音声等で誘導するようにしても良い。
【００７６】
また、本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的部を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【００７７】
また、本発明の各構成要素は、任意に取捨選択することができ、取捨選択した構成を具備する発明も本発明に含まれるものである。
【００７８】
また、本実施の形態で説明した機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。尚、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００７９】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００８０】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また前記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。機能の少なくとも一部は、集積回路などのハードウェアで実現しても良い。
【符号の説明】
【００８１】
１００  撮像装置
１０１  第１カメラ
１０２  第２カメラ
１０３  記憶部
１０４  表示・入力部
１０５  検出方向設定部
１０６  撮影方向指定部
１０７  加速度センサ
１０８  視差算出部
１０９  視差変換部
１１０  モード設定部
２００  撮像装置
２０１  検出方向設定部
２０２  撮影方向指定部
２０３  エッジ検出部
３００  撮像装置
３０１  形状設定部
３０２  検出方向設定部
【図１】
0005980541.tif 000003
【図２】
0005980541.tif 000004
【図３】
0005980541.tif 000005
【図４】
0005980541.tif 000006
【図５】
0005980541.tif 000007
【図６】
0005980541.tif 000008
【図７】
0005980541.tif 000009
【図８】
0005980541.tif 000010
【図９】
0005980541.tif 000011
【図１０】
0005980541.tif 000012
【図１１】
0005980541.tif 000013
【図１２】
0005980541.tif 000014
【図１３】
0005980541.tif 000015
【図１４】
0005980541.tif 000016
【図１５】
0005980541.tif 000017
【図１６】
0005980541.tif 000018
【図１７】
0005980541.tif 000019
【図１８】
0005980541.tif 000020