(57)【特許請求の範囲】
【請求項１】
被写体の距離画像を生成するための動画を撮像する撮像装置からフレームを取得し、動
画の出力を制御する制御装置であって、
前記撮像装置が撮像した動画を構成するフレームに対応する距離画像を取得する取得手
段と、
前記距離画像に基づいて、前記距離画像における被写体の形状の複雑度を算出する算出
手段と、
前記複雑度に応じて、出力する動画のフレームレートを決定する決定手段と、
前記決定手段が取得したフレームレートに従って前記撮像装置が撮像した動画からフレームを取得し、前記フレームレートの動画を生成する生成手段とを有することを特徴とする制御装置。
【請求項２】
前記決定手段は、前記複雑度が高いほど、前記動画のフレームレートを高いフレームレートに決定することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記決定手段は、前記複雑度に基づいて、前記取得手段が取得した距離画像に対応する
フレームの後、前記撮像装置から取得するフレーム数を決定し、
前記生成手段は、前記取得手段が取得した距離画像に対応するフレームから前記フレーム数のフレームを取得することを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記取得手段は、前記撮像装置が撮像した動画を構成するフレームに対応する距離画像
のうち、所定の時刻ごとに距離画像を取得し、
前記決定手段は、前記取得手段が距離画像を取得するたびに、前記フレーム数を決定し、
前記生成手段は、前記取得手段が距離画像を取得した時刻間において、前記フレーム数
のフレームを取得し、前記フレーム数が動的に変動する動画を生成することを特徴とする
請求項３に記載の制御装置。
【請求項５】
前記算出手段は、前記距離画像における測距不能画素の数に基づいて、前記複雑度を算
出することを特徴とする請求項１乃至４のいずれか一項に記載の制御装置。
【請求項６】
前記算出手段は、前記距離画像におけるエッジ画素を検出し、前記エッジ画素の数に基
づいて前記複雑度を算出することを特徴とする請求項１乃至５のいずれか一項に記載の制
御装置。
【請求項７】
前記算出手段は、前記撮像装置の運動方向を推定し、前記運動方向に応じて特定の方向
のエッジ画素を検出することを特徴とする請求項１乃至６のいずれか一項に記載の制御装
置。
【請求項８】
前記生成手段は、前記取得手段が取得した距離画像と、前記撮像装置が撮像した動画から取得したフレームとを符号化し、動画として出力することを特徴とする請求項１乃至７のいずれか一項に記載の制御装置。
【請求項９】
前記生成手段は、前記取得手段が取得した前記距離画像と同時に撮像されたフレームから、前記取得手段が次に取得した距離画像と同時に撮像されるフレームの直前のフレームまでを１つのＧＯＰとし、該距離画像と同時に取得された画像をＩフレームとして符号化することを特徴とする請求項８に記載の制御装置。
【請求項１０】
前記生成手段は、前記ＧＯＰのヘッダに前記算出手段が算出された前記フレームレートを示す情報を格納することを特徴とする請求項９に記載の制御装置。
【請求項１１】
前記取得手段は、前記撮像装置から互いに異なる視点で撮像した複数の画像を取得し、前記複数の画像に基づいて前記距離画像を生成することを特徴とする請求項１乃至１０のいずれか一項に記載の制御装置。
【請求項１２】
コンピュータに読み込ませ実行させることで、前記コンピュータを請求項１乃１１の何れか一項に記載された制御装置として機能させることを特徴とするコンピュータプログラ
ム。
【請求項１３】
被写体の距離画像を生成するための動画を撮像する撮像装置からフレームを取得し、動
画の出力を制御する制御方法であって、
前記撮像装置が撮像した動画を構成するフレームに対応する距離画像を取得し、
前記距離画像に基づいて、前記距離画像における被写体の形状の複雑度を算出し、
前記複雑度に応じて、出力する動画のフレームレートを決定し、
前記フレームレートに従って前記撮像装置が撮像した動画からフレームを取得し、前記
フレームレートの動画を生成することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラで撮影した複数枚の画像を用いて被写体の３次元形状を生成ための撮影を制御する技術に関する。
【背景技術】
【０００２】
従来、被写体に対して視点の異なる複数枚の画像を取得し、撮影した画像から被写体の３次元形状を復元する技術（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  ｍｏｔｉｏｎ）が知られている。被写体の三次元形状を動画として生成するためには、被写体に対して視点の異なる複数の画像を連続的に撮影する必要がある。そこで、被写体に対して動画を撮影した結果に基づいて、被写体の３次元形状を生成する技術がある。ただし、３次元形状を生成するために撮影する動画のフレームレートは、３次元形状の生成精度とのトレードオフを考えなければならない。動画のフレームレートが高い（取得できる画像の枚数が多い）ほど、３次元形状の生成精度は上がる。一方、データ量や処理負荷は増大する。データ量や処理負荷を優先して、フレームレートを下げる（取得する画像の枚数を減らす）と、３次元形状を生成するために必要な情報が欠落してしまう場合がある。
【０００３】
特許文献１には、車載カメラから撮影した動画から自動車から見える被写体の３次元情報を取得する方法において、動的に動画のフレームレートを制御する方法を開示している。具体的には、車両の速度や視野変化量などに基づいて衝突の危険があると判定された場合には、高フレームレートで動画を撮影し、それ以外の場合は低フレームレートで動画を撮影する。これにより、状況把握に必要な情報を確保しながら、保存するデータ量を削減している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２７３１７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら特許文献１に開示された方法では、適切にフレームレートを制御できない場合がある。低フレームレートの動画でも３次元形状を生成できる被写体を高フレームレートで動画を撮影してしまったり、高フレームレートで撮影しなければ３次元形状を生成できない被写体に対いて低フレームレートで動画を撮影してしまったりすることがある。
【０００６】
そこで本発明は、３次元形状を生成するために取得する動画のフレームレートを被写体に応じて適切に制御することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため本発明は、被写体の距離画像を生成するための動画を撮像する撮像装置からフレームを取得し、動画の出力を制御する制御装置であって、前記撮像装置が撮像した動画を構成するフレームに対応する距離画像を取得する取得手段と、前記距離画像に基づいて、前記距離画像における被写体の形状の複雑度を算出する算出手段と、
前記複雑度に応じて、出力する動画のフレームレートを決定する決定手段と、前記決定手段が取得したフレームレートに従って前記撮像装置が撮像した動画からフレームを取得し、前記フレームレートの動画を生成する生成手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明の効果は、３次元形状を生成するために取得する動画のフレームレートを被写体に応じて適切に制御することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態の３次元形状生成を行う撮影制御装置のブロック図
【図２】第１の実施形態の被写体の撮影処理のフローチャート
【図３】第１の実施形態の形状生成のフローチャート
【図４】第１の実施形態の複雑度算出処理及びフレームレート算出処理のフローチャート
【図５】並進移動しながら平面を撮影するカメラ
【図６】カメラの撮影範囲を表す図
【図７】凹凸のある平面を撮影するカメラとオクルージョンの様子
【図８】凹凸のある平面を撮影するカメラとオクルージョンの様子の詳細
【図９】符号化におけるＧＯＰの構成
【図１０】コンピュータのブロック構成図
【図１１】第２の実施形態の３次元形状生成を行う撮影制御装置のブロック図
【図１２】第２の実施形態の３次元形状生成を行う撮影制御装置のフローチャート
【図１３】凹領域を検出するためのフィルタの一例を示す図
【発明を実施するための形態】
【００１０】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下の実施形態において示す各構成は、一例にすぎず、本発明は図示された構成に限定されるものではない。
【００１１】
［第１の実施形態］
第１の実施形態では、被写体に対してカメラを一定の速度で並進移動させながら動画を撮影し、撮影した動画のうち少なくとも一部をストレージに記録する。撮影した動画に基づいて、撮影したシーンにおける距離画像を生成し、距離画像に基づいてシーンに含まれる被写体の３次元形状を生成する。特に本実施形態では、動画撮影時に簡易的に算出したシーンの距離画像に基づいて、動的に取得する動画のフレームレートを制御する。なお、本実施形態において動画とは、連続した時刻で撮影された複数の画像をフレームとした画像列を意味する。具体的なユースケースとしては、ゴンドラにカメラを載せてビルの壁面を撮影したり、車にカメラを積んで道路を撮影したりするなど、様々な用途が考えられる。
【００１２】
図１は、第１の実施形態に適用可能な撮像装置１０９と撮像装置１０９から得られたカラー画像を利用して３次元形状を生成する画像処理装置１１２のブロック図である。本実施形態において撮像装置１０９は、多視点撮影が可能なカメラである。具体的には、プレノプティックカメラを用いる。プレノプティックカメラは、撮像センサの前にマイクロレンズアレイを設置することで入射光を分離し、同時に多視点画像を撮影できるカメラである。なお、多視点撮影が可能なカメラとしては、複数の撮像部が配置された多眼カメラを用いてもよい。撮像部１１１は、撮像センサやマイクロレンズアレイなど光学系である。さらに撮像装置１０９には、撮像部１１１が撮像して得られる画像に対して、各種処理やフレームレートを制御する制御装置１１０が内蔵されている。一方画像処理装置１１２は、撮像装置１０９とは異なる装置であり、撮像装置１０９から取得したデータに基づいて画像処理を行い、３次元形状を生成する。画像処理装置１１２としては、例えばパーソナルコンピュータなどにより実現される。
【００１３】
まず、撮像装置１０９について説明する。撮像部１１１は、動画撮影開始の指示を受けて、所定のフレームレートで被写体を動画撮影する。なおここでは、レッド（Ｒ），ブルー（Ｂ），グリーン（Ｇ）からなるカラーのデジタル画像によって構成された動画を撮影する。また、多視点で画像を取得できるため、実質的には互いに異なる視点からの複数の動画を取得していることになる。多視点画像取得部１０１は、撮像部１１１から動画を構成する各フレームの画像を順次、取得する。また、多視点画像取得部１０１は、フレームレート決定部１０３から入力されるフレームレートに従って、撮像部１１１が取得した動画から一部のフレームを取得し、距離画像生成部１０２及び単視点画像生成部１０４に出力する。
【００１４】
距離画像生成部１０２は、取得した多視点画像から距離画像を生成する。距離画像とは、画素単位でカメラ位置から被写体までの距離を表す距離情報を格納した画像である。距離情報は、メートル単位系で表わされる距離そのものでもよいし、視差などの距離に変換可能な値であってもよい。距離画像生成部１０２は、取得した動画のうち、同時刻に撮影された複数の互いに異なる視点の画像（フレーム）から、１つの距離画像を生成する。ここでは、例えばステレオマッチングによる視差推定を行い視差画像（ディスパリティマップ）を、距離画像として生成する。なおここで算出した距離画像を、第一の距離画像とする。距離画像生成部１０２は、距離画像をフレームレート決定部１０３に出力する。
【００１５】
フレームレート決定部１０３は、距離画像から被写体の複雑度を算出する。被写体の複雑度とは、カメラから撮影可能な被写体領域において、被写体の形状の複雑さを表す指標である。フレームレート決定部１０３は、被写体の複雑度に応じて、多視点画像取得部１０１が取得すべき動画のフレームレートを決定する。複雑度及びフレームレートの算出処理については後述する。
【００１６】
単視点画像生成部１０４は、取得した動画において、対応するフレームである互いに視点の異なる複数の画像から単視点の画像を順に生成し、符号化画像ストレージ１０６に出力する。ここでは、単視点画像生成部１０４は、同時刻に対応する視点の異なる複数の画像を、対応する画素毎に画素値を平均した値を算出することにより、単視点画像を生成する。単視点画像生成部１０４が生成する単視点画像も、多視点画像同様、ＲＧＢからなるカラー画像である。単視点画像生成部１０４は、動画を構成する複数のフレームから順に、単視点画像を生成し、出力されるため、単視点画像生成部１０４から出力される画像は、単視点における動画を構成する画像（フレーム）列とも言える。さらに単視点画像生成部１０４から出力される動画は、被写体の形状に応じて動的にフレームレートが変更された動画である。ここで生成された単視点画像は、後段の３次元形状生成処理に利用される。なお、単視点画像の生成方法は、複数の多視点画像から１視点の画像を選ぶ方法でもよいし、多視点画像における各画素の画素値の平均ではなく、各画像の画素値の和を単視点画像における画素値として算出する方法を取ってもよい。
【００１７】
画像符号化部１０５は、単視点画像生成部１０４から出力される単視点画像を順次、所定の符号化方式により符号化し、符号化画像ストレージ１０６へ送る。ここでは、前述の通り多視点画像生成部１０４からは単視点画像をフレームとして順に出力されるため、フレーム間の時間相関を利用するＨ．２６４を用いて符号化する。なお、符号化方法は前記単視点カラー画像を効率的に符号化できるものであれよく、例えば各単視点画像を独立にＪＰＥＧを用いて符号化してもよい。
【００１８】
次に、画像処理装置１１２を説明する。画像復号部１０７は、符号化画像ストレージ１０６から符号化されたデータを取得し、復号し、単視点の動画を出力する。３次元形状生成部１０８は入力された複数の単視点画像から距離画像を生成する。前述の通り、撮像装置１０９は、一定の速度で並進移動しているため、複数の単視点画像は、撮影した時刻は異なるものの互いに異なる視点から撮影した画像とみなすことができる。そこで３次元形状生成部１０８は、カメラが移動したことにより撮影された多視点画像を用いて、距離画像を生成する。なおここで算出された距離画像は、第二の距離画像とする。さらに、第二の距離画像に基づいて、被写体の３次元形状を生成する。
【００１９】
次に、撮像装置１０９における処理の流れについて説明する。図２は、撮像装置１０９を実現するための処理フローを示す。ステップＳ２０１において多視点画像取得部１０１は、撮像部１１１から撮像部１１１が撮影した被写体の動画から着目するフレームの画像を取得する。ここで取得する画像は、同時刻に異なる複数の視点から撮影した多視点画像である。ステップＳ２０２において距離画像生成１０２は、同時刻に撮影された互いに視点の異なる複数の画像に基づいて、距離画像を生成する。
【００２０】
ステップＳ２０３においてフレームレート決定部１０３は、距離画像から被写体の複雑度を算出する。ステップＳ２０４においてフレームレート決定部１０４は、被写体の複雑度に応じて次に距離画像を生成するまで間に取得すべき多視点画像のフレーム数Ｍを算出する。これは、多視点画像のフレームレートが距離画像のフレームレートのＭ倍であることを意味する。なお、ステップＳ２０３とステップＳ２０４の詳細な説明は後述する。ステップＳ２０５において単視点画像生成部１０４は、互いに視点の異なる複数の画像から１つの単視点画像を生成する。
【００２１】
ステップＳ２０６において画像符号化部１０５は、単視点画像を符号化し、符号化画像ストレージ１０６へ出力する。本実施形態では、撮像装置１０９が出力する動画のフレームレートが動的に変化することを鑑みて、以下のように符号化を行う。上述したように、距離画像はすべてのフレーム画像に対して算出されるのではなく、時間的に一定のフレーム周期で生成される。距離画像は、取得したカラーの多視点画像から生成される一方、全てのフレームの多視点画像から単視点画像が生成されている。そのため、必ず距離画像と同じ時刻に対応するカラーの単視点画像が存在し、かつ距離画像が対応する時刻間でフレーム数が変動する。そこで、距離画像が生成されるタイミングで、動画の符号化単位であるＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）を区切り、距離画像と同時刻に対応する単視点画像を、ＧＯＰのＩフレーム（先頭フレーム）とする。この時、ＧＯＰを構成するフレーム数はＩフレームを入れてＭとなる。ＧＯＰの様子を図９に示す。図９において、単視点画像のＩ、Ｐ、ＢはそれぞれＨ．２６４符号化のＩフレーム、Ｐフレーム、Ｂフレームを表している。通常、動画のフレームレートは、シーケンスレイヤのシーケンスヘッダに記述されるが、ここではＧＯＰ毎にフレームレートが異なるため、ＧＯＰレイヤのＧＯＰヘッダに構成フレーム数Ｍを記述しておく。また、フレームレートが低下すると、フレーム間の時間相関が低下する。そのためフレーム数Ｍが所定の閾値を下回ると、同ＧＯＰ内の全フレームをイントラ符号化する。
【００２２】
ステップＳ２０７、ステップＳ２０８、ステップＳ２０９はそれぞれ、ステップＳ２０１、ステップＳ２０５、ステップＳ２０６と同様の処理である。ステップＳ２０７〜ステップＳ２０９の処理は、多視点画像が取得されるフレームレートに合わせて、Ｍ−１回繰り返される。ステップＳ２１０において撮像装置１０９は、外部から入力される撮影終了信号を確認し、撮影が終了されていれば処理フローを終了し、終了されていなければステップＳ２０１に戻る。
【００２３】
さらに、ステップＳ２０３およびステップＳ２０４の処理の流れを詳細に説明する。図３は、フレームレート決定部１０３を実現するための処理フローである。なお、ステップＳ２０３はステップＳ３０２〜Ｓ３０４、ステップＳ２０４はステップＳ３０５、Ｓ３０６に対応している。
【００２４】
まずステップＳ３０１において複雑度ｎを０により初期化する。ステップＳ３０２において、距離画像における測距不能画素の数をｎに加算する。測距不能画素とは、距離情報を算出できなかった画素を意味する。距離画像を生成する際、オクルージョン領域など多視点画像のうち１視点の画像にしか撮像されなかった領域は、多視点画像間で対応点を検出することができず、測距不能となる。オクルージョン領域が多い被写体は、その分被写体形状が複雑である可能性が高く、測拒不能画素の数は、被写体形状の複雑度と相関がある。そこで、測拒不能画素数を検出し、複雑度ｎに加算する。
【００２５】
ステップＳ３０３において、距離画像におけるエッジ画素を検出する。エッジ画素の検出には、距離画像に対してソーベルフィルタなどを用いることで実現できる。距離画像のエッジとは、距離が不連続な境界を表すものである。距離画像においてエッジ画素が多いということは、存在位置の異なる被写体が様々存在している、あるいは、被写体自体に、急峻な表面凹凸が多数存在している可能性が高い。このような場合、オクルージョン領域が発生しやすく、被写体が複雑な形状であるとみなすことができる。そこでステップＳ３０４において、算出されたエッジ画素の数をカウントし、複雑度ｎに加算する。
【００２６】
ステップＳ３０５において、算出した複雑度ｎに基づいて、フレームレートＦを算出する。まず、３次元形状を生成するために最低限必要なフレームレートＦｍｉｎを、図５を用いて説明する。図５は、平面を被写体として、平面に対してカメラが一定の距離を保って一定の速さで移動しながら撮影する様子を示している。図５においてカメラの位置は撮像した視点を、カメラから延びた破線は各視点位置におけるカメラの画角を表している。運動視差を利用して３次元形状を生成する場合、被写体である表面の全ての位置において、２フレーム以上で撮影されている必要がある。そこで、平面全体が常に２フレームの画角に収まるように撮影した様子を図５（ａ）に示している。原理的には図５（ａ）に示した撮像間隔であれば３次元形状を生成することは可能であるが、カメラの光学的性質上、画像端付近では空間解像度が低下することや画角の境界部分で対応点を検出できない場合がある。そこで、図５（ｂ）に示すように平面全体が常に３フレームの画角に収まるように撮像するフレームレートが、安定した３次元形状生成に最低限必要なフレームレートであると設定する。
【００２７】
次に具体的なパラメータを用いて、最低限必要なフレームレートＦｍｉｎを算出する。ここで、カメラと平面の間の距離をＬ［ｍ］、カメラの移動速度をＶ［ｍ／ｓ］、カメラの画角をθ［°］とする。図６から（２／３）Ｌｔａｎ（θ／２）［ｍ］に一回の撮像が必要であることが分かるので、撮像周期は（２／３Ｖ）Ｌｔａｎ（θ／２）［ｓ］であり、フレームレートＦｍｉｎ［ｆｐｓ］は、式１に従って算出できる。
Ｆｍｉｎ＝３Ｖ／（２Ｌｔａｎ（θ／２））    ・・・式１
ここで、式１のパラメータＬ、Ｖ、θの求め方を説明する。距離Ｌは距離画像からカメラ被写体間のおおよその値を知ることができる。カメラの運動速度Ｖは、距離Ｌと動画符号化で利用される動きベクトルと組み合わせることで推定する。また、カメラの画角θは撮影装置の焦点距離と撮影素子の大きさから取得することができる。以上の通り、撮像装置１０９の撮像条件や取得した情報に基づいて、フレームレートＦｍｉｎを算出する。なお、事前にパラメータＶ，Ｌ，θを一定に保って撮影を行う環境がある場合は、事前にパラメータを入力して撮影を行ってもよい。
【００２８】
さらに、被写体の形状が複雑な場合には、高フレームレートな画像列を生成することにより被写体の形状を生成するために必要な情報を取得する。例えば、被写体である平面上に図７（ａ）に示したような凹凸がある場合、図５（ｂ）に示す条件で撮影すると平面の面Ｂや面Ｃ、面Ｅ、面Ｆには１視点のカメラでしか撮像されない領域が存在する。従って面Ｂや面Ｃ、面Ｅ、面Ｆの領域では第二の距離画像を得ることができない。しかし、図７（ｂ）に示すように、被写体に対して一様に高フレームレートな画像列の動画として出力することは無駄が大きい。
【００２９】
そこでステップＳ３０５では、プレノプティックカメラで得られた第一の距離画像を利用して算出した被写体の複雑度に応じてフレームレートＦを動的に調節する。フレームレートの最低値は、式１に示される最低限必要なフレームレートＦｍｉｎとする。また、最大値は撮影に用いたカメラが撮影可能な最大フレームレートＦｍａｘである。ステップＳ３０２からステップＳ３０４において算出した複雑度ｎは、測距不能画素やエッジ画素といった被写体の構造が複雑である部分を表す画素の数を示す。従って複雑度の最大値は、画像全体の画素数Ｎである。本実施形態ではフレームレートＦ-を式２に示すように設定する。
【００３０】
【数１】
0006622575.tif 000002
ただしＰ（Ｐ≧１）はパラメータであり、ここで求めたＦがＦｍａｘを超える場合はＦ＝Ｆｍａｘとする。ステップＳ３０６において距離画像のフレームレートと撮影している動画のフレームレートＦとに基づいて、フレーム数Ｍを算出する。まず、距離画像のフレームレートをＦｄとすると、フレーム数Ｍは、式３に従って算出できる。
【００３１】
【数２】
0006622575.tif 000003
本実施形態では、Ｆｄ＝Ｆｍｉｎとする。従って式３は式４のように変形される。
【００３２】
【数３】
0006622575.tif 000004
以上で、ステップＳ２０３およびステップＳ２０４の詳細な説明を終了する。
【００３３】
次に、画像処理装置１１２が実行する３次元形状生成処理を、図４を用いて説明する。ステップＳ４０１において画像復号部１０７は、符号化されたデータを復号する。復号の結果、動画を構成する画像（フレーム）が得られ、１つの視点が一定の速度で並進移動しながら撮像した動画を取得できる。
【００３４】
ステップＳ４０２において３次元形状生成部１０８は、ステップＳ４０１におおいて取得した画像から局所特徴量を抽出し、画像上の対応する特徴量を探索する。さらに対応する特徴量の位置に基づいて、それぞれのフレームにおけるカメラの外部パラメータを推定する。ただし、内部パラメータは予め求められており、全フレームで共通であるものとする。内部パラメータは一般にカメラの焦点距離、画像の原点の位置、レンズ歪みの特性などを表す。外部パラメータはグローバル座標系におけるカメラ姿勢であり、一般的にはカメラのグローバル座標Tと光軸方向Ｒで表される。また、ここでは局所特徴量として、ＳＩＦＴ（Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）を用いる。なお、特徴量は画像における局所的な対応を探索できる方法であればよく、ＳＵＲＦ（Ｓｐｅｅｄｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）やその他の方法を用いてもよい。なおここでは、局所特徴量の計算及び対応点探索に加えて、Ｒａｎｓａｃ（ｒａｎｄｏｍ  ｓａｍｐｌｅ  ｃｏｎｓｅｎｓｕｓ）などを用いて、誤った対応点を除くことが望ましい。
【００３５】
ステップＳ４０３において３次元形状生成部１０８は、推定された内部／外部パラメータに基づいて、局所特徴量が対づいた複数の視点画像の組から視差を推定し、第二の距離画像を生成する。ここで得た第二の距離画像の距離値を、グローバルな座標系に投影し、被写体の表面を表す点群を生成する。ステップＳ４０４においてさらに、得られた点群から、被写体の３次元形状モデルを生成する。３次元形状モデルの生成方法は、ドロネー三角形分割など陽的にモデリングする方法を用いても構わないし、ポアソン法など陰的にモデリングする方法を用いても構わない。以上で被写体の３次元形状を生成する処理を完了する。
【００３６】
以上の通り第１の実施形態によれば、被写体の形状に基づいて、距離画像を生成するための動画のフレームレートを制御する。被写体の形状が複雑であることが予測される場合には、高いフレームレートで動画を作成し、それ以外の場合には低いフレームレートで動画を作成する。これにより、距離画像の算出に必要な情報を取得しつつ、保存するデータ量を適切に抑制することができる。
【００３７】
また、第１の実施形態では、同時刻に撮影された複数の視点における画像に基づいて生成される第一の距離画像を用いて、被写体の複雑度を算出した。プレノプティックカメラの基線長は、カメラの絞る幅に依存し、比較的短い。そのため、算出される距離情報の精度は低い。一方、カメラ運動を推定する必要がないため、比較的簡易に距離情報を得ることができる。そこで簡易な方法で生成した第一の距離画像を用いてフレームレートを制御しつつ、３次元形状の生成にはより高精度な運動視差に基づいて算出される第二の距離画像を用いた。これにより、画像処理装置１１０は多視点画像ではなく単視点画像からなる動画を取得すればよく、撮像装置１０９からの出力データ量および画像処理装置１１０が取得する入力データ量を抑えることができる。
【００３８】
また、距離画像を出力可能な撮像装置１０９には、距離画像における各画素の測距値の正確さを表す信頼度を別途出力する形態の装置もある。この場合、出力される信頼度が小さい画素を測距不能画素として扱ってもよい。さらに、測拒不能画素の数やエッジ画素の数は、それぞれいずれか一方のみに基づいて複雑度を算出してもよい。
【００３９】
さらに、測拒不能画素の数やエッジ画素の数以外の指標を用いて、被写体の複雑度を算出してもよい。測拒不能画素の数やエッジ画素の数以外の指標として、以下に３つの例を説明する。まず、エッジ画素の全てではなく、特定の方向を持ったエッジ領域の画素数に基づいて複雑度を算出してもよい。図８は、被写体とカメラの位置関係を示す図である。図８（ａ）（ｂ）（ｃ）はそれぞれ、図７の視点７０６，７０７，７０８それぞれの画角に映っている領域を太線で表現している。面Ｅと面Ｆの接合部が画角に映っているのは、図８（ｂ）に示す視点７０７のみである。従って、面Ｅと面Ｆの接合部は、第二の距離情報を得ることができない。そこで面Ｅと面Ｆを含む凹部を撮影可能な視点７０７付近では、高いフレームレートで撮影することが望ましい。
【００４０】
面Ｅと面Ｆの接合部の特徴として、カメラの運動方向に対してエッジ方向が垂直であることがあげられる。このようなエッジの場合、このエッジを含むように撮影可能な視点位置は少ないため、面Ｅと面Ｆの接合部は複雑度を比較的大きい値にするとよい。そこで、カメラの動き方向に基づいて、特定の方向のエッジを構成する画素の数を複雑度として検出する。具体的には、距離画像を取得した直前の単視点画像を符号化した結果得られる動きベクトルから、以降のカメラの運動方向を推定する。符号化方式がＨ．２６４を用いている場合の具体的な処理を説明する。Ｈ．２６４ではマクロブロック及びサブブロック単位に動きベクトルが設定され、ブロックによっては動きベクトルが与えられない場合もある。画面全体の動きを得るには、各動きベクトルのブロックサイズに応じた重み付き平均をとればよい。つまり、動きベクトルが設定されたブロックの動きベクトルとそのブロックサイズをそれぞれＣｉ、Ｓｉとすると、画面全体の平均動きベクトルＭＣは、式５に従って算出できる。
【００４１】
【数４】
0006622575.tif 000005
式５により得られた平均動きベクトルの方向を利用して、平均動きベクトルと反対に近いエッジ画素のみを検出し、検出した画素数を複雑度に加算する。これにより、カメラの運動方向に応じてオクルージョンが発生しやすい形状について、より適切に複雑度を導出することができる。
【００４２】
なお前述の実施形態において説明した全てのエッジ画素の数を算出することなく、特定の方向のエッジ画素の数のみを複雑度に加算してもよい。全てのエッジ画素を検出する場合、あらゆる方向のエッジを検出するため、少なくとも垂直と水平の２方向に対してフィルタをかける必要がある。これに対して、検出したいエッジ方向が限定されている場合は、その方向に合わせた一回のフィルタリングで十分であるため、検出の処理にかかる演算量を軽減することができる。
【００４３】
次に、凹領域の検出し、複雑度を算出する例を説明する。オクルージョン領域は、被写体自信の凹凸に起因するものであり、特に凹部でオクルージョンが発生しやすい。そこで、距離画像に対して凹部を検出するフィルタ処理を施し、検出した凹部の画素数を複雑度として定義する。凹領域の検出には、フィルタ中心からの距離が遠くなるほど係数が小さくなるようなフィルタを用いる。凹領域の検出に用いるフィルタの例を図１３に示す。図１３（ａ）は３画素×３画素の場合、（ｂ）は５画素×５画素の場合である。検出できる凹領域の大きさはフィルタサイズに依存する。例えば、画像上で１００×１００ピクセルの大きな凹領域に対して、３×３のフィルタを用いても凹領域として検出することはできない。逆に、ピクセル数の小さな凹領域に対してサイズの大きなフィルタを利用しても検出することはできない。この性質を利用して、検出するべき凹みのサイズを決定することができる。また、どの程度の凹みを凹領域と判定するかはフィルタ処理後の値の絶対値に対して閾値を定めて決めることができ、閾値を大きくするほど深い凹みしか検出しなくなる。
【００４４】
さらに、距離画像における分散を算出し、分散に基づいて複雑度を算出してもよい。距離画像における分散が大きい場合、被写体とカメラとの距離が一様ではなく、被写体の形状が複雑であることが予測される。そこで、距離画像における分散の値が大きいほど、複雑度が大きくなるように、分散値と複雑度を対応づけておき、分散に基づいて複雑度を算出してもよい。特に分散のみに基づいて複雑度を算出する場合、複雑度の算出にフィルタ処理を必要としないため、より簡易な構成により実現することができる。なお、エッジ画素の数や測拒不能画素の数などと組み合わせて複雑度を算出する場合は、算出した分散は正規化することが好ましい。
【００４５】
［第１の実施形態の変形例］
図１に示した制御装置１１１の各部は、撮像装置１０９に内蔵されたハードウェアで構成しても良いが、撮像装置１０９の外部装置として、ソフトウェア（コンピュータプログラム）として実装しても良い。この場合、このソフトウェアは、ＰＣ（パーソナルコンピュータ）等、一般のコンピュータのメモリにインストールされることになる。そしてこのコンピュータのＣＰＵがこのインストールされたソフトウェアを実行することで、このコンピュータは、上述の撮影部１１１の制御装置としての機能を実現することになる。第１の実施形態の撮影装置の制御装置に適用可能なコンピュータのハードウェア構成例について、図１０のブロック図を用いて説明する。
【００４６】
ＣＰＵ１００１は、ＲＡＭ１００２やＲＯＭ１００３に格納されているコンピュータプログラムやデータを用いて、コンピュータ全体の制御を行うと共に、撮影制御装置が行うものとして説明した上述の各処理を実行する。
【００４７】
ＲＡＭ１００２は、コンピュータ読み取り可能な記憶媒体の一例である。ＲＡＭ１００２は、外部記憶装置１００７や記憶媒体ドライブ１００８、更にはネットワークインタフェース１０１０からロードされたコンピュータプログラムやデータを一時的に記憶するためのエリアを、有する。更に、ＲＡＭ１００２は、ＣＰＵ１００１が各種の処理を実行する際に用いるワークエリアを有する。即ち、ＲＡＭ１００２は、各種のエリアを適宜提供することができる。ＲＯＭ１００３は、コンピュータ読み取り可能な記憶媒体の一例であり、コンピュータの設定データや、ブートプログラムなどが格納されている。
【００４８】
キーボード１００４、マウス１００５は、コンピュータの操作者が操作することで、各種の指示をＣＰＵ１００１に対して入力することができる。表示装置１００６は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１００１による処理結果を画像や文字などでもって表示することができる。
【００４９】
外部記憶装置１００７は、コンピュータ読み取り記憶媒体の一例であり、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置１００７には、ＯＳ（オペレーティングシステム）や、図１に示した各処理をＣＰＵ１００１に実現させるためのコンピュータプログラムやデータ、上記の各種テーブル、データベース等が保存されている。外部記憶装置１００７に保存されているコンピュータプログラムやデータは、ＣＰＵ１００１による制御に従って適宜ＲＡＭ１００２にロードされ、ＣＰＵ１００１による処理対象となる。
【００５０】
記憶媒体ドライブ１００８は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されているコンピュータプログラムやデータを読み出し、読み出したコンピュータプログラムやデータを外部記憶装置１００７やＲＡＭ１００２に出力する。なお、外部記憶装置１００７に保存されているものとして説明した情報の一部若しくは全部をこの記憶媒体に記録させておき、この記憶媒体ドライブ１００８に読み取らせても良い。
【００５１】
Ｉ／Ｆ１００９は、外部からカラー画像、距離画像、等を入力したり、フレームレートを出力したりするためのインタフェースであり、一例として示すのであればＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）である。外部装置としては撮像装置１０９が接続されており、Ｉ／Ｆ１００７を通して、カラー画像や距離画像を出力する。１０１０は、上述の各部を繋ぐバスである。
【００５２】
上述構成において、本コンピュータの電源がＯＮになると、ＣＰＵ１００１はＲＯＭ１００３に格納されているブートプログラムに従って、外部記憶装置１００７からＯＳをＲＡＭ１００２にロードする。この結果、キーボード１００４、マウス１００５を介した情報入力操作が可能となり、表示装置１００６にＧＵＩを表示することが可能となる。ユーザが、キーボード１００４やマウス１００５を操作し、外部記憶装置１００７に格納された符号化アプリケーションの起動指示を入力すると、ＣＰＵ１００１はこのプログラムをＲＡＭ１００２にロードし、実行する。これにより、本コンピュータが撮影制御装置として機能することになる。
【００５３】
なお、ＣＰＵ１００１が実行する符号化アプリケーションプログラムは、図２に示すフローチャートを実現するプログラムである。出力される符号化データは、外部記憶装置１００７に保存することになる。なお、このコンピュータは、以降の各実施形態に係る撮影制御装置にも同様に適用可能である。
【００５４】
［第２の実施形態］
第１の実施形態では、プレノプティックカメラを用いて多視点画像を取得する場合を例に説明した。第２の実施形態では、単視点カメラを手に持って撮影する場合を例に説明する。ユースケースとしては、非常に複雑な形状を持った被写体に対して様々なカメラ姿勢で撮影する必要がある場合や、建物の中を巡回しながら内部の３次元形状を生成する等が考えられる。第２の実施形態では、距離画像を取得するため、カラー画像を取得する単視点カメラとは別途、赤外線照射型カメラを用いる。第１の実施形態では距離画像を一定の時間的周期で取得して、出力する単視点画像のフレームレートを制御し、出力する単視点画像のフレームレートは距離画像のフレームレート以上としていた。第２の実施形態では、単視点画像と距離画像は同じフレームレートで同期して取得されるものとし、フレームレート決定部は単視点画像と距離画像の両方のフレームレートを制御する。
【００５５】
図１１は、第２の実施形態に適用可能な撮影装置１１０９と画像処理装置１１１２の構成を示すブロック図である。以降では、図１と異なる部分を説明する。
【００５６】
単視点画像取得部１１０１は、フレームレート決定部１１０５から得られたフレームレートに従って、撮像部１１１１から単視点画像を順次取得する。ここで取得する単視点画像は、ＲＧＢからなる画像データである。単視点画像取得部１１０１は、単視点画像を画像符号化部１１０４に出力する。距離画像取得部１１０２はフレームレート決定部１１０５から得られたフレームレートに従って、撮像部１１１１から赤外線画像を取得する。距離画像取得部１０２は、赤外線画像に基づいて距離画像を生成する。赤外線画像から距離画像を生成する方法は、例えばＳｔｒｕｃｔｕｒｅｄ  Ｌｉｇｈｔ方式や、Ｔｉｍｅ  Ｏｆ  Ｆｌｉｇｈｔ（ＴＯＦ）方式等がある。なお単視点画像取得部１１０１が取得する単視点画像と、距離画像取得部１１０２が取得する赤外線画像は、ほぼ同じタイミングで撮像されたもので、フレームレートは対応している。距離画像取得部１１０２は、距離画像をフレームレート決定部１１０３及び、画像符号化部１１０４に出力する。画像符号化部１１０４は、単視点画像と距離画像の両方を符号化する。赤外線照射型の距離画像は、第１の実施形態の多視点型の距離画像よりも距離の精度がよく、後段の３次元形状の生成に利用できるように符号化した。３次元形状生成部１１０７は多視点画像と同時に取得された距離画像を利用して、より簡易に３次元形状を生成する。
【００５７】
次に、本実施形態における撮像装置１１０９が実行する処理のフローを示す。ステップＳ１２０１において単視点画像取得部１１０１と距離画像取得部１１０２はそれぞれ、同じタイミングの単視点画像及び距離画像を撮像部１１１１から取得する。ステップＳ１２０２において画像符号化部１１０４は、単視点画像を符号化する。ステップＳ１２０３においてフレームレート決定部１１０３は、距離画像から距離画像に映る被写体の複雑度を算出する。ステップＳ１２０４においてフレームレート決定部１１０３は、次のカラー画像及び距離画像を取得するまでの遅延時間を算出する。これは、フレームレートが１フレーム単位で変化することを意味する。なお、遅延時間の更新は必ずしも１フレーム毎に行われる必要はなく、例えば定数時間毎に一度行ってもよいし、一定フレーム毎に一度の頻度で行ってもよい。ステップＳ１２０５において画像符号化部１１０４は、距離画像を符号化する。ステップＳ１２０６において撮像装置１１０９は、撮影終了信号を確認し、終了であれば処理を終了し、そうでなければステップＳ１２０１に戻る。
【００５８】
次に、第２の実施形態における画像処理装置１１１２について説明する。第２の実施形態における画像処理装置１１１２は、撮像装置１１０９から距離画像を取得する。外部パラメータの推定Ｓ３０２は第１の実施形態と同様にカラー画像間の局所特徴量のマッチングにより運動情報を推定することができるが、距離画像から得られる点群同士の位置合わせによって推定することもできる。
【００５９】
被写体の表面を表す密な点群の生成Ｓ３０３は、外部パラメータを用いて第一の距離情報をグローバル座標系に投影することで、点群の生成を簡易に行うことができる。ただしこの時、第一の距離画像からは信頼度の低い点や被写体の素材の問題で距離情報が得られなかった領域の点群を補完するのに、第二の距離情報おｗ必要な部分のみ生成して用いることも可能である。
【００６０】
以上で本実施形態の説明を終える。以上の構成により、第１の実施形態と同様に被写体の形状の複雑度に応じて動的にフレームレートを制御しながら、被写体の撮影をする。これにより、距離画像の算出に必要な情報を取得しつつ、保存するデータ量を適切に抑制することができる。更に、本実施形態では、第１の実施形態で必要だった被写体表面を表す点群を生成する処理を大幅に削減することができるようになった。
【符号の説明】
【００６１】
１０１  多視点画像取得部
１０２  距離画像生成部
１０３  フレームレート決定部
１０４  単視点画像生成部
１０５  画像符号化部
１１０  制御装置
【図１】
0006622575.tif 000006
【図２】
0006622575.tif 000007
【図３】
0006622575.tif 000008
【図４】
0006622575.tif 000009
【図５】
0006622575.tif 000010
【図６】
0006622575.tif 000011
【図７】
0006622575.tif 000012
【図８】
0006622575.tif 000013
【図９】
0006622575.tif 000014
【図１０】
0006622575.tif 000015
【図１１】
0006622575.tif 000016
【図１２】
0006622575.tif 000017
【図１３】
0006622575.tif 000018