(57)【要約】【課題】本発明の目的は、複数のカメラで風景を撮影し、それらの画像をつなぎ合わせることで全体の画像を得るシステムにおいて、カメラの位置と角度を周囲の状況に合わせて移動させることによってより滑らかなつなぎ合わせの可能な画像を撮影することにある。【解決手段】複数のカメラ装置を組み合わせて全方位の映像を撮影するカメラ装置１０１によって装置周囲の映像を撮影する。その際に、撮影対象との距離を測定するセンサ装置１０３の情報に合わせて、各カメラの映像のつなぎ合わせ部分にカメラに近い対象物が写ることの少ない角度を制御装置１０４によって計算し、駆動装置１０２でカメラ装置１０１を回転させる。【選択図】図１
2004135208.tif 000002
【特許請求の範囲】
【請求項１】
複数のカメラ機器を用いて高解像度の映像を撮影する撮影装置において、
撮影された映像をつなぎ合わせる部分に特定の被写体が来た場合に、装置を物理的に回転させることにより各カメラの撮像範囲を変えて、つなぎ合わせ部分となる領域を変更することを特徴とする撮影装置。
【請求項２】
複数のカメラ機器を用いて高解像度の映像を撮影する撮影方法において、
撮影された映像をつなぎ合わせる部分に特定の被写体が来た場合に、装置を物理的に回転させることにより各カメラの撮像範囲を変えて、つなぎ合わせ部分となる領域を変更することを特徴とする撮影方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画および静止画を撮影する画像作成装置に関する。
【０００２】
【従来の技術】
広視野角の画像を撮影することによって、ユーザの入力に応じて自由な風景の見回しを行ったり、特殊な画像表示システムに周囲の映像を表示して没入感覚を味わったりするためのカメラシステムやそのコンテンツを応用したアプリケーションが生まれている。
【０００３】
このような高視野角の映像を撮影するための技術手法としては、曲面鏡などを利用して単一カメラで撮影する装置や、複数カメラの画像をつなぎ合わせることで画像を撮影する装置が発明されている。
【０００４】
前者のように単一のカメラを利用する例としては、双曲面ミラーとＣＣＤカメラを組み合わせたシステムなどが研究、発表されている。この種のシステムでは、装置全体が小さくまとまり、複数カメラの画像を合成することに起因する問題は生まれない。
【０００５】
しかし、ミラーの歪みによる誤差が最終画像の画質を大きく左右する問題点や、単一のカメラで全周囲の画像を撮影するため最終画像の解像度が不足がちになることが欠点として挙げられる。
【０００６】
複数のカメラを使用する後者の例としては、複数の小型カメラを単一の筐体に収めた全方位撮影用カメラが実現されている（例えば、特許文献１参照。）。このカメラでは、外部の制御装置から撮影命令を受信し、連動して動作する６台のカメラが撮影する各デジタル画像を専用の記憶装置に保存する。このデータは撮影終了後に汎用計算機に転送され、専用のソフトウェアを利用してつなぎ合わせ処理が行われて全周囲動画像へと変換される。このように複数台数のカメラを用いるシステムでは高い解像度の映像を得ることが出来る半面、画像同士のつなぎ合わせに起因する映像の劣化が見られる。
【０００７】
【特許文献１】
特開２００１−２０４０１５号公報（要約）
【０００８】
【発明が解決しようとする課題】
複数カメラの画像をつなぎ合わせて単一の画像を作成するためには、各画像を撮影したレンズ位置（光学中心）が一致していることが望ましい。光学中心が一致していない場合には、撮影対象物とカメラとの相対的な配置が映像ごとに異なるため、各画像の間で３次元的な視野差に起因する画像間の矛盾が起きるようになる。しかし、各カメラの光学中心を完全に一致させるためには複雑な反射鏡の設計が必要であり、その作成は極めて困難なかつ高価なものとなる。そのため複数カメラを組み合わせて撮影を行う製品の多くにおいては、光学中心は数センチから数十センチ離れている。
【０００９】
【課題を解決するための手段】
本発明では複数カメラを用いて画像を撮影する際に、カメラの位置と角度を物理的に変化させる動的な制御を行い、画像合成時に各カメラ間の視差に起因する品質の劣化が起こりにくい映像を作成する。そのために、周囲の撮影対象物の配置状況をセンサで取得し、撮影後につなぎ合わせ部分になる画像領域には、上述の示唆による映像の不整合が比較的おきにくい遠距離の対象物が写る配置になるようにカメラの配置を動かす。このことによって、視差の大きい映像をつなぎ合わせることによる画像品質の劣化を防ぐ。
【００１０】
【発明の実施の形態】
図１は、当発明の一実施例の側面図を図示したものである。本発明による撮影装置は大きく分けて、カメラ装置部分１０１、駆動装置部分１０２、センサ装置部分１０３、そして制御装置部分１０４から構成される。それぞれの部分の挙動および実現方法については、既存の実現例が数多く存在しているため、この実施例の解説においても、それら既存の技術においては必要な機能のみ記述するものとする。
【００１１】
図２は、カメラ装置部分１０１を別の角度（上面図）から見た図である。カメラ装置部分１０１は、複数のカメラ１２１〜１２６を周囲の各方向に向けて取り付けることで構成されたものである。以下ではこのカメラ装置部分の構成要素である各カメラ１２１〜１２６を要素カメラと呼称する。ただし、ここで要素カメラと呼称する部品は、レンズとカメラ機器の組み合わせで構成される部品であり、それぞれが光学中心を独立に持ち、映像を撮影する能力をもつ。この実施例においては、中心軸１２０を中心とした円周上に一定の間隔で要素カメラが配置されているものとする。図には　６個の要素カメラが記載されているが、本発明はこの要素カメラの台数として任意のｎ台を用いて構成することが可能である。このカメラ装置部分１０１は、制御装置１０４に電気信号を送信するケーブルによって接続され、同装置によって制御される。カメラ装置部分１０１は制御装置１０４から転送される命令データを受信し、各カメラを同期させて撮影し、撮影結果をデジタル画像データとしてデータ記憶装置１０５に転送する機能を有するものとする。これらの各要素カメラによるデジタル撮影手法、信号を伝達するケーブル、および記憶装置１０５など個々の部品の実現方法は、既存の発明に順ずるものとする。
【００１２】
制御装置１０４は汎用的な情報処理装置であり、各部へと制御命令を転送し、動作結果を受信する。また、カメラ装置部分１０１から転送されてくる撮影画像を記憶装置１０５に保持することができ、撮影中、もしくは撮影終了後に各画像をつなぎ合わせることによって画像データを全方位画像データへと変換する処理を行うことが出来る。
【００１３】
図４に、制御装置１０４の構成例を表したブロック図を挙げる。ＣＰＵ（中央演算処理装置）４０１は、主記憶装置４０２に記録されているプログラムに従い各種の処理を実行する。主記憶装置４０２と外部記憶装置１０５には制御処理を実行するに当たって必要なプログラムやデータが記憶される。外部記憶装置１０５にはハードディスクドライブやその他の既存の大容量メディアが使用されるものとする。入出力Ｉ／Ｆ部４０３では、カメラ装置部分、駆動装置部分、センサ装置への入力および出力データをやり取りするために必要なデータの転送手段を備えているものとする。ユーザの命令は入力機器１０６から行われる。このインタフェースにはキーボード、マウス、タッチパネルなどの既存の入力機器を使用する。また、制御装置１０４はタイマーによる割り込み処理を保有しており、ある時間ごとに設定された一連の動作を行う機能を有しているものとする。
【００１４】
図３はセンサ装置部分の構成例を示した図である。センサ装置部分１０３は、ｍ台の距離センサによって構成され、撮影対象物とカメラの距離を測定する機能を有する。距離測定センサ１３１〜１３４が装置の周囲に一定の間隔で取り付けられており、各センサは割り当てられた範囲角度内に存在するオブジェクトとカメラとの距離を測定する。このセンサは赤外線、レーザ、音波、またはステレオ視画像処理などを利用した既存のセンサシステムを使用するものとし、各センサが距離を測定する方法は既存の発明に順ずる。これらの各センサ類の実装方法については既存の実現例が多く存在するため、特定の実装手法について本明細書において記載はしない。
【００１５】
図３に示すように、このセンサ装置部分１０３も制御装置１０４と接続されている。制御装置１０４からの命令を受信すると、各センサ１３１〜１３４が作動し、周囲の物体との距離を測定して、測定結果を制御装置に転送する。このセンサ装置の測定結果は制御装置１０４に送られ、周囲の方向とその方向に存在する物体との距離関係を示すテーブルに保存される。このテーブルの実装例を図７に示す。記載されるデータの内容と作成方法は後述の動作手順解説内において記載する。
駆動装置部分１０２は、カメラ装置部分１０１を回転させる機器である。この回転の中心軸１２０は各要素カメラの光学中心の重心を通るカメラ装置部分１０１の中心軸と一致する。本実施例においては各カメラの位置および方向の移動はこの一軸の周りの回転のみを想定している。駆動装置部分１０２には、この回転軸を駆動させるためにモータが取り付けられている。このモータはネットワークで接続された制御装置１０４によって制御され、制御装置１０４からの命令信号を受け取ると、命令信号のデータ構造体に記載された角度になるように駆動する。また、各時刻における軸の回転角度を記録する機能を有する。
【００１６】
以下では、上記の各装置が動作する処理の流れを順序だてて解説する。図５は一連の動作順序をブロック図にしたものである。
【００１７】
入力機器１０６からユーザから制御装置への入力があると、設備は撮影機能を開始する（工程５０１）。制御装置１０４はタイマーの割り込み機能を利用して、一定のタイミング毎にあるルーチンを行う。以下この一定時間ごとによびだされるルーチン処理を撮影スレッドと呼ぶ。撮影スレッドは工程５０２で開始され、５０９で停止の命令が行われるまで、１／３０秒に一度の割合で呼び出されるものとする。この撮影スレッドは工程５０３〜５０８とは独立に並列のプロセスとして動作する。
【００１８】
図６は、一定時間ごとに呼び出される撮影スレッドのルーチン処理工程を示す。図６の左側は制御装置１０４の動作ルーチンを示し、右側はそれに伴ってのカメラ装置部分１０１の動作を示す。制御装置１０４の内臓タイマーによって撮影ルーチンが呼びだされる（工程６０１）と、制御装置１０４はカメラ装置部分１０１に撮像命令を発信し（工程６０２）、それと同時にその時刻の駆動装置部分１０２の回転角度情報を取得する。カメラ装置部分１０１ではこの撮像命令を受信する（工程６１０）と、映像を撮像し（工程６１１）、制御装置に撮像データを転送する。制御装置１０４はその映像情報を受信し、記憶装置１０５に保存する。また、この保存の際に工程６０３で得られた駆動装置部分１０２の回転角度の情報も一緒に保存する。以上で１回分の撮影ルーチンの処理が終了する。
【００１９】
制御装置１０４は、この撮影スレッドの動作と並行して、センサ装置１０３の情報に基づいて、駆動装置部分１０２の制御を行う。この処理は図５の工程５０３〜５０８に示されている。
【００２０】
制御装置１０４は、取得をセンサ装置１０３に命令する。各センサ１３１〜１３４は各々の設置された角度に対応した周囲の情報を取得し、得られた距離データを制御装置１０４に転送する（工程５０４）。制御装置１０４は各センサの距離情報をテーブルに記録する。このテーブルの実装例のひとつを図７に示す。図７のＩＤ＿０，ＩＤ＿１…はセンサのＩＤ番号を示す値である。各カメラから得られた情報は、このカメラのＩＤ番号をキーとしてテーブルから検索される。テーブル内のＤ＿０，Ｄ＿１…には各センサが向けられている方向を示す角度値が保管される。各々のセンサが取得した距離の情報は、対応するＩＤ番号をキーとしてＳ＿０，Ｓ＿１，　…に登録される。また、この距離の逆数Ｒ＿０，Ｒ＿１…をテーブル内の対応する位置に登録する。この値Ｒ＿０，Ｒ＿１…は、後に行う画像のつなぎ合わせを評価する値の作成において使用される。
【００２１】
続いて制御装置１０４は、センサから得られた距離情報を基にして、カメラの角度に対する評価関数を作成する（工程５０５）。
【００２２】
カメラ装置部分１０１の回転角度θは０〜３６０度の間の変数であらわされる。またこの角度がθ度であるときの画像をつなぎ合わせたときの合成品質を評価値Ｅ（θ）で推定する。制御装置１０４には下記の手順に基づいたプログラムが内蔵されており評価値Ｅ（θ）の計算を行う。以下、この評価関数の計算手順をしめす。
全周囲画像を作成したときに各画像が接続される部分となる画像領域は、駆動装置部分の回転角度θにのみ依存して一意に定めることが出来る。前述の通り本実施例ではｎ個のカメラが円弧状に連なっているものと想定してあり、θ＝０度のときにある要素カメラｋの向く方向を（θ（ｋ），０）として表現する。ただし、ｋはカメラの番号１からｎのどれかを示す整数である。またθ（ｋ）は水平方向の角度を示す値であり、カメラの仰角方向の成分は０、すなわち水平方向に向けて設置されているものとする。カメラは等間隔に並んでいるため、カメラ装置部分１０２の角度がθを向いているときに要素カメラｋ（＝１〜ｎ）は角度θ（ｋ）　＝（３６０／ｎ）＊（ｋ＋０．５）＋θの方向を向いていると表現することが出来る。この場合、つなぎ目となる領域θ＿ｃは、数１が示す不等式において、ｋが１からｎまでの整数値をとったときに、いずれかのｋの値に対して不等式の条件を満たしている領域として表現することが出来る。ただしｅはつなぎ目の幅を表す値である。
【００２３】
【数１】
−　ｅ／２　≦　θ＿ｃ　−θ−（３６０／ｎ）　ｋ　≦　ｅ／２
工程８０３〜８０６において、つなぎ目上での不整合の度合いを推定する値Ｅを求める。センサ装置の測定によって得られたテーブル７００において、センサの設置された角度Ｄ＿ｎが数１の条件を満たす領域はつなぎ目領域と判定される。この領域に対応する全センサのデータをテーブル７００から読み取り、それらの各評価値Ｒ＿ｎ（本実施例においては距離の逆数）の平均値を取る。この平均値が推定評価値Ｅ（θ）として用いられる。
【００２４】
この評価値Ｅ（θ）があらかじめ定められた定数である基準となる閾値Ｄよりも大きかった場合には、駆動装置部分を回転させる必要があると判断され、工程５０６と５０７を行う。Ｄよりも小さかった場合には、現状においては回転の必要がないものと判断され、一定時間待機（工程５０８）した後、再び５０３から一連の工程を行う。
【００２５】
駆動装置部分を回転させる必要があると判断した場合、制御装置は、前述の距離情報を基にして、図８のブロック図に示される手順に従い、カメラの回転角度を決定する（工程５０６）。
【００２６】
図８のブロック図に基づいてこの回転角度の決定手順の方法について記述する。駆動装置部分の計算処理５０６開始時点での回転角度をθとする。この値を変数θ＿０、θ＿１に初期値として代入し、θ＿０＝θ＿１＝θと設定する。また、同時点での回転角度に対応するつなぎ目上での不整合の度合いを推定する値Ｅには、工程５０５で計算した値Ｅ（θ）を用いる。
【００２７】
工程８０３〜８０７では、駆動装置部分の回転核がθ＿１であったときの、つなぎ目上での不整合の度合いを推定する値Ｅ＿ｔ＝Ｅ（θ＿１）を計算する。この計算は前述のＥ（θ）の計算手法と同じ方法を用いる。すなわち、現在仮に定められているθ＿１の値に対して、センサ装置の測定によって得られたテーブル７００から、Ｄ＿ｋが前述のつなぎ目領域を判定する方程式を満たす評価値Ｒ＿ｋ（本実施例においては距離の逆数）を読み取り（工程８０４〜８０５）、これらの値の平均を取る（工程８０６）。この平均値はつなぎ目上での不整合の度合いを推定する値として用いられる。平均値をＥと比較する（工程８０７）。新しい平均値がＥよりも小さかった場合にはＥに現在の合計値を上書き設定し、θ＿０に現在の角度θ＿１を保存する（工程８０８）。θ＿１を角度Δθだけ増加させる。θ＿１がθ＋３６０／ｎ度を超過した場合には繰り返し処理を終了し、工程８１０に移行する。それ以外の場合には、工程　８０３〜８０８　を更新されたカメラ角度θ＿１に対して再び行う（工程８０９）。工程８０２〜８０９の繰り返し処理が終了した辞典で、最終的に保存されている角度θ＿０をカメラの回転角度として決定する。
【００２８】
以上の一連の処理によって、最もつなぎ目の不整合が少なくなるカメラ角度θ＿０を推定することが出来る。
【００２９】
この情報を記憶装置に記録する。図９では記録されるデータ構造の一例を示す。このデータの中には、映像情報、回転角度（θ＿０）、計算終了時点の時刻情報が記載される。
【００３０】
制御装置１０４は、カメラの角度を上記処理によって計算されたθ＿０に向けて回転させる（工程５０７）。また、撮影スレッドがカメラ装置部分１０１の回転中に呼び出された場合には、回転中の駆動装置部分１０２から得ることの出来る回転角度情報を前述の工程６０３で示したように保存する。
【００３１】
撮影された各カメラの画像は、以下の手法を用いて全周囲画像へと変換することが出来る。この画像形式の変換処理は、撮影終了後に保存されたデータをオフラインで処理することも可能であり、制御装置に十分な計算能力があるならば、リアルタイムで変換処理をおこなうことも可能である。
【００３２】
各カメラの光学中心の位置、および単独のカメラが撮影可能な範囲（画角）の情報は、それぞれ公知の手法を用いて測定されているものとする。また各撮影タイミングにおけるカメラ装置部分１０１の向いている水平角度は、工程６０５によって記憶装置に保存されている。
【００３３】
カメラ装置部分１０１に搭載された各カメラの光学中心がカメラ装置部分１０１の中心にあるものと仮定して、各画像から全周囲画像を作成する方法を示す。ここでは全周囲画像を、カメラ装置部分１０１の光学中心から方向（η、φ）の対応する画素への写像として表現する。ただし、ηは水平方向の回転角度、φは仰角を表すものとする。すなわち全周囲画像は、図に示すようなデータ表現であらわされるものであるとする。
【００３４】
ある要素カメラの向いている方向を（θ＿ｋ，０）とする。このときθ＿ｋは水平方向の回転角度であり、仰角は０であるとする。機構の光学中心を（０，０）として、カメラの光学中心とシステム中心との相対位置を（ｄ１，ｄ２）と定める。またカメラの垂直画角をＦｘ、水平画角をＦｙとする。このとき、カメラで撮影された画像上の画素（ｕ，ｖ）と、方向（η、φ）の関係を以下のように対応付ける。
【００３５】
【数２】
ｔａｎ（η−θ＿ｋ）＝Ｆ＿ｘ　ｕ
【００３６】
【数３】
ｔａｎφ＝Ｆ＿ｙ　ｖ
上述の対応付けを用いて複数の画像をつなぎ合わせ、円筒形の全周囲画像を求める方法を以下に記す。また、本実施例においては周囲画像を円筒系のフォーマットで作成する方法を挙げるが、この装置が出力する出力フォーマットを円筒形に制限するものではない。図全周囲画像Ｘの各画素（η、φ）に対して各要素画像から対応する画素（ｕ＿ｋ，ｖ＿ｋ）を探す。ただし、ｕ＿ｋ，ｖ＿ｋは以下のように示される。
【００３７】
【数４】
ｕ＿ｋ＝ｔａｎ（η−θ＿ｋ）／Ｆ＿ｘ
【００３８】
【数５】
ｖ＿ｋ＝ｔａｎφ　／　Ｆ＿ｙ
各ｋ（＝１．．ｎ）に対してそれぞれ目的の画素位置が撮影された映像範囲内に存在するか検索する。１つの画像においてだけ対応する画素が存在した場合には、その画素の情報を方向（η、φ）の画素情報として用いる。２つ以上の画像において対応画素が発見された場合には、各画像ｋ内における画素位置（ｕ＿ｋ，ｖ＿ｋ）を比較して画素を合成する。画素の合成は以下のように行われる。
【００３９】
この処理により周囲画像データが作成される。
【００４０】
【発明の効果】
以上述べたように、本発明によって撮影された画像は、複数画像のつなぎ合わせ処理を行った際に、画像間の不整合に起因する映像の乱れの影響が少なくなっている。
【図面の簡単な説明】
【図１】装置の構成を示す代表図である。
【図２】カメラ装置部分の構成を示す図である。
【図３】センサ装置部分の構成を示す図である。
【図４】制御装置部分の構成を示す図である。
【図５】装置動作工程を解説するフローチャートである。
【図６】撮影スレッドの工程を解説するフローチャートである。
【図７】センサ情報を記録するテーブルの図である
【図８】合成品質の高いカメラの角度を計算するフローチャートである。
【符号の説明】
１０１　カメラ装置部分、１０２　駆動装置部分、１０３　センサ装置部分、１０４　制御装置部分、１０５　記憶装置、１２０　回転軸、１２１〜１２５　要素カメラ、１３１〜１３４　センサ
４０１　ＣＰＵ、４０２主記憶装置、４０３入出力インタフェース、４０４外部記憶装置、４０５操作用出力機器、４０６操作用入力機器、７００センサ情報登録テーブル
【図１】
2004135208.tif 000003
【図２】
2004135208.tif 000004
【図３】
2004135208.tif 000005
【図４】
2004135208.tif 000006
【図５】
2004135208.tif 000007
【図６】
2004135208.tif 000008
【図７】
2004135208.tif 000009
【図８】
2004135208.tif 000010