JP5163409B2 - 撮像装置、撮像方法、およびプログラム - Google Patents
撮像装置、撮像方法、およびプログラム Download PDFInfo
- Publication number
- JP5163409B2 JP5163409B2 JP2008258114A JP2008258114A JP5163409B2 JP 5163409 B2 JP5163409 B2 JP 5163409B2 JP 2008258114 A JP2008258114 A JP 2008258114A JP 2008258114 A JP2008258114 A JP 2008258114A JP 5163409 B2 JP5163409 B2 JP 5163409B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- images
- parallax
- subject
- sensor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/64—Computer-aided capture of images, e.g. transfer from script file into camera, check of taken image quality, advice or proposal for image composition or decision on when to take image
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/698—Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6812—Motion detection based on additional sensors, e.g. acceleration sensors
Description
後者の場合、撮影は高速シャッタを用いる必要もある。
そこで用いられる技術は、カメラの動作方向と動作角速度を検出するとともに、その動作と逆向きに同角速度で光軸を動作させることにより、画像変化を打ち消し、あたかも1点を注視するかのごとく撮影する技術である。
ところが、カメラを手に持って肩を中心にして回して撮影した場合、カメラの視点よりかなり後方を中心として回すことになり、パララックスの影響を強く受ける。
すべてが遠方の景色なら殆ど問題ないが、近距離の被写体が含まれていると隣接画像との位置関係が遠距離の被写体と異なり、正しく合成することができない。
しかし、現行のカメラでは、視差や移動被写体の影響を管理(監視)することができないことから、撮影直後に取り直しが必要か否かの判断を行うことができない。
画像信号処理部では、隣接画像間の移動ベクトルの類似性で視差による影響または動被写体が検出され、検出結果が制御部に出力される。
制御部においては、画像信号処理部が、移動体または視差による影響を検出した場合に警告を出して撮影のやり直しを促す。
カメラ装置10は、これらの多数、たとえば数千枚の画像をしわ寄せなく正確に合成し、いわゆるパノラマ画像を形成することができるように構成されている。
すなわち、カメラ装置10は、固定撮像素子、たとえばCMOSイメージセンサ(CIS)を搭載したデジタルカメラを縦または横方向に高速に振り回して撮影した画像を用いてパノラマ画を作成する機能を有している。
カメラ装置10を移動させながら複数枚の撮像画像を行い、取得した画像を合成することによってパノラマ画像を生成するにあたって、画像を集光するレンズ(シフトレンズ)の光軸をカメラの移動方向と角速度を打ち消すよう制御する。
これにより、カメラが動いていてもあたかも1点を注視するがごとく画像を撮影する。 この構成においては、固体撮像素子としてはCIS(CMOS Image Sensor)を用い、中心方向の一部のラインに対して上記の制御を行い撮像する。
すなわち、一部のラインの露光時間と読み出し時間を加えた期間に上記の光軸制御が行われ、それ以外の時間においては、光軸を中心付近に戻すような制御が行われる。その際のカメラの撮影方向はCISのラインに対して垂直方向とする。
そして、カメラ装置10は、CISの一部を短冊状に切り出し、その部分に対応した光軸制御を行うことにより、カメラが高速に動いても高いフレームレートで解像度を低下させずにパノラマを生成する。
カメラ装置10は、連続した画像を、画像認識技術で得られたフレームの移動情報と、姿勢センサからの移動情報を用いて空間的に配置する技術を採用している。
この画像認識では、情報を得られない部分を姿勢センサ情報で補い、姿勢センサ情報は画像認識の成功確認や失敗時の補助座標として用いる。空間的に配置された画像は1つのパノラマ画像として完成する。
この場合、カメラ装置10は、主として手持ちで略一点から方向を変えながら複数枚撮影するカメラとして構成される。
カメラ装置10は、3軸(または2軸)加速度センサと3軸(または2軸)角速度センサまたはそのいずれかを含む姿勢センサを有する。
カメラ装置10は、撮影された各画像にはどの方向を向いて撮影したかという姿勢の情報を同時に記録し、撮影された複数の画像をその場で1枚に合成する機能を有する。
カメラ装置10は、画像の重複領域を利用してブロックマッチング等の画像認識機能を使って相互の画像の相対位置関係を算出し、各種の姿勢センサのデータによる画像の位置関係を算出する。
そして、カメラ装置10は、算出した相対位置関係と画像の位置関係の双方の選択的協調によってより精度の高い画像の相対位置関係を算出する。
その後、カメラ装置10は、各画像の中心が向く方向、パン角(経度)とチルト角(緯度)および、その光軸のまわりに回転するロール角(傾斜)といった各画像の絶対位置関係を特定し、これを初期値として精密自動合成を行う。
カメラ装置10は、連続した画像の記録において、画像認識技術で得られたフレームの移動情報と、姿勢センサからの移動情報を対応する技術を採用している。
カメラ装置10は、片方だけでは不明な、画像のピクセル画角、姿勢センサの静止時の値、姿勢センサ値のピクセル画角対応といった情報を算出する。オフセット、ゲイン等のパラメータを有し、これを変更することによって実際の方向とほぼ一致させることができる。
カメラ装置10は、静止時の姿勢のデータを3軸(または2軸)加速度センサが重力の方向となす角としてスタティックに検出し、それを姿勢情報の初期値とする。
カメラ装置10は、カメラの縦方向、横方向の主に回転移動をたとえば3軸角速度センサを時間積分したもので計算し、各画像の撮影された時点の方向データとする。
カメラ装置10は、画像の重複領域を利用してブロックマッチング等の画像認識手段を使って相互の画像の位置関係を算出する。カメラ装置10は、相互の画像の位置関係を演算で求めると同時にその結果が正しいか正しくないかの判定も行う。
カメラ装置10は、ここで判定された結果が正しい場合、この情報でパラメータを校正する。
そして、カメラ装置10は、判定された結果が正しくない場合、既に校正されているパラメータによる姿勢センサの値を使って画像を配置していく。
カメラ装置10は、移動体による影響を検出した場合に警告を出して撮影のやり直しを促す機能を有する。
カメラ装置10は、移動体の検出に関し、重複率を50%以上として被写体のどの部分も少なくとも2枚の画像にまたがって写るようにし、隣接画像間の移動ベクトルの類似性で視差による影響や動被写体を検出する機能を有する。
すなわち、カメラ装置10は、移動体または視差による影響を検出した場合に警告を出して撮影のやり直しを促す。
広い範囲の被写体をさっと一振りで複数の短冊状画像を撮影して一枚に合成するカメラ装置10において、近距離の被写体がパララックスの影響をどの程度受けているかを検出し、カメラの視点を中心として撮影し直すことを促す。
カメラ装置10は、スイープ角速度(ユーザがカメラを振り回す速さ)の適正値を知らせる方法と、速すぎる場合に警告を出して撮影のやり直しを促す。
カメラ装置10は、表示装置18、たとえばLCDの画面に横軸に時間、縦軸に姿勢センサ(ジャイロセンサ)の出力(スイープ角速度)をグラフにして表示する。水平画角、水平画素数、シャッタ速度が設定されると最大スイープ角速度が決まるので、その 60%〜80% を適正範囲としてグラフに表示する。
光学系11は、通常のレンズ111、光軸可変素子としてのシフトレンズ112、およびメカニカルシャッタ113を含んで構成される。
シフトレンズ112は、画像を集光する機能に加えて、ドライバ15の駆動により光軸の方向を変更可能な機能を有している。
本実施形態では、CMOSイメージセンサを例として説明する。また、上述した第1の構成では、固体撮像素子としてCMOSイメージセンサが適用される。
撮像素子12は、半導体基板上にマトリクス状に配列した光センサにより光学系11による被写体像を検出して信号電荷を生成し、同信号電荷を垂直信号線や水平信号線を介して読み出して被写体の画像信号を出力する。
撮像素子12がCMOSイメージセンサにより形成される場合、電子シャッタとしてグローバルシャッタとローリングシャッタで露光制御が行われる。この露光制御は、システムコントローラ16により行われる。
姿勢センサ14は、たとえば3軸加速度センサ141と3軸角速度センサ142により構成される。
加速度センサ141は重力の方向となす角をスタティックに知ることができ、チルト角とロール角を検出することが可能である。しかし、パン角を検出することはできない。
そこで、移動角を知るためには角速度センサ142を用いる。これはジャイロセンサとも言われ、回転中の角速度が電圧信号として検出が可能であり、この電圧信号を積分すると角度になる。そして、3軸であることからパン角、チルト角、ロール角が検出できる。
そして、図3に示すように、精密合成処理部1611は、第1色補正機能部16111、合成機能部16112、および第2色補正機能部16113を含んで構成されている。
マイクロコンピュータ162は、姿勢センサ14の検出結果に応じて、画像を集光するレンズ(シフトレンズ)の光軸をカメラの移動方向と角速度を打ち消すよう制御する。
マイクロコンピュータ162は、固体撮像素子としてはCMOSイメージセンサを用いた場合に、中一部のラインの露光時間と読み出し時間を加えた期間に上記の光軸制御を行いそれ以外の時間においては、光軸を中心付近に戻すようにドライバ15を制御する。その際のカメラの撮影方向はCMOSイメージセンサのラインに対して垂直方向とする。
そして、マイクロコンピュータ162は、CMOSイメージセンサの一部を短冊状に切り出し、その部分に対応した光軸制御を行うことにより、カメラが高速に動いても高いフレームレートで解像度を低下させずにパノラマを生成するように制御する。
あるいは、画像信号処理部161は、撮像された隣り合う画像の動き成分を検出し、マイクロコンピュータ162はこの検出された動き成分に応じて光軸の変化量を制御することも可能である。
あるいは、マイクロコンピュータ162は、算出された回転角度および動き成分を用いて光軸の変化量を制御することも可能である。
画像信号処理部161およびマイクロコンピュータ162は、画像の重複領域を利用してブロックマッチング等の画像認識機能を使って相互の画像の相対位置関係を算出し、各種の姿勢センサのデータによる画像の位置関係を算出する。
マイクロコンピュータ162は、算出した相対位置関係と画像の位置関係の双方の選択的協調によってより精度の高い画像の相対位置関係を算出する。
その後、マイクロコンピュータ162は、各画像の中心が向く方向、パン角(経度)とチルト角(緯度)および、その光軸のまわりに回転するロール角(傾斜)といった各画像の絶対位置関係を特定する。
画像信号処理部161は、これを初期値として精密自動合成を行う。
マイクロコンピュータ162は、静止時の姿勢のデータを3軸(または2軸)加速度センサが重力の方向となす角としてスタティックに検出し、それを姿勢情報の初期値とする。
マイクロコンピュータ162は、カメラの縦方向、横方向の主に回転移動をたとえば3軸角速度センサ142を時間積分したもので計算し、各画像の撮影された時点の方向データとする。
マイクロコンピュータ162は、画像の重複領域を利用してブロックマッチング等の画像認識機能を使って相互の画像の位置関係を算出するが、相互の画像の位置関係を演算で求めると同時にその結果が正しいか正しくないかの判定も行う。
マイクロコンピュータ162は、ここで判定された結果が正しい場合、この情報でパラメータを校正する。
そして、マイクロコンピュータ162は、判定された結果が正しくない場合、既に校正されているパラメータによる姿勢センサの値を使って画像を配置していく。
マイクロコンピュータ162は、移動体の検出に関し、重複率を50%以上として被写体のどの部分も少なくとも2枚の画像にまたがって写るようにし、隣接画像間の移動ベクトルの類似性で視差による影響や動被写体を検出する。
すなわち、マイクロコンピュータ162は、移動体または視差による影響を検出した場合に警告を出して撮影のやり直しを促す。
マイクロコンピュータ162は、近距離の被写体がパララックスの影響をどの程度受けているかを検出し、カメラの視点を中心として撮影し直すことを促す。
マイクロコンピュータ162は、表示装置18、たとえばLCDの画面に横軸に時間、縦軸に姿勢センサ(ジャイロセンサ)の出力(スイープ角速度)をグラフにして表示する。水平画角、水平画素数、シャッタ速度が設定されると最大スイープ角速度が決まるので、その60%〜80%を適正範囲RNGとして、図4に示すようにグラフに表示する。
操作手順の概略は以下の通りである。
[1]操作部19のスタートボタンを押してカメラを回し、その後スタートボタンを離す。
[2]スタートボタンが押されている間のスィープ角速度が、図4に示すように、表示装置18の画面に表示される。
[3]適正範囲RNGより遅い場合には警告はないが、一瞬でも範囲を越えて速い場合には警告音が出る。
なお、第1〜第5の構成における主たる制御はシステムコントローラ16により行われる。
第1の構成では、固体撮像素子としてCMOSイメージセンサを適用することからフレーム/フィールドと言った考え方は存在せず、全てのラインを順次読み出すプログレッシブ方式となる。
また、図5の濃い短冊部30で示されるように、本実施形態では、マイクロコンピュータ162は、CMOSイメージセンサの撮像範囲のうち中心部から切り出される短冊に対して光軸制御を行っている。
(a)パララックスの影響は短冊の幅が狭いほど有利になる。
(b)CMOSイメージセンサの非同時読み出しの影響も短冊の幅が狭いほど有利になる。
(c)周辺減光の影響にも有利になる。
(d)レンズ歪の影響にも有利になる。
マイクロコンピュータ162は、固体撮像素子としてはCMOSイメージセンサを用いた場合に、中一部のラインの露光時間と読み出し時間を加えた期間に上記の光軸制御を行いそれ以外の時間においては、光軸を中心付近に戻すようにドライバ15を制御する。
CMOSイメージセンサの各ラインにおいて露光に引き続き電荷の読み出しが行われるが、あるラインについて読み出しが終了した後、次のラインの露光と電荷の読み出しが行われる。この動作を繰り返して短冊部の全ての電荷処理が行われる間、光軸制御が行われる。
たとえば、シャッタ速度が1/1000秒(つまり露光時間が1msec)、短冊幅が200ラインの場合、図6の図の読み出し時間は1.56msec、光軸制御時間は2.56msecとなる。ちなみに、撮影のフレームレートが60fps(1画像あたり約16.66msec)において、対応する特許文献1の図3における数値を当てはめてみると、Sonは2.56msecであり、Soff = 16.66-2.56 = 14.1(msec)となる。
また、光軸制御される限界角度については、特許文献1では±1.2(deg)であるが、本実施形態の場合、たとえば、±0.5°の範囲で可変であるところ、0度〜0.3度までの間を使用する。これは可変範囲の最大値の約60%である。
以下、本実施形態の精密合成の特徴な機能部分を具体的に説明する。
換言すれば、第1色補正機能部16111は、原画像からレンズ歪み補正係数などのパラメータを抽出する。
そして、第1色補正機能部16111は、すべての部分画像に一様に周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を行う。
合成機能部16112は、すべての境界について同時にBM結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていき複数の画像の合成を精密に行う。
また、第2色補正機能部16113は、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正を行う。
つまり、空間的関数のシフトがスペクトル領域における位相のみ変化するというフーリエシフト定理に基づいた技術を採用している。
つまり、2つの関数f1およびf2が次の関係を満足しているとする。
f2(x、y)=f1(x+xt,y+yt)
F2(u,v)=F1(u,v)exp(−2πi(uxt+vyt))
実際、画像は、図7に示すように、2つの画像の相互電力スペクトルのようなビット雑音である。
したがって、相互電力スペクトル(CPS)のピークを探り出し、それからトランスレーション(平行移動)パラメータ(xt,yt)を引き出すことが望ましい。
図7(A)は2つの画像のステッチングの結果を示している。2次元のトランスレーションは、図7(B)に示すように、相互電力スペクトル(CPS)のピーク検出によって得られる。ここで、相互電力スペクトル(CPS)が読み可能であれば画像は完全に整合する。
ノイズの多い画像は、最高のピークを検出することが困難であることから、いくつかのピークから選択するようにしても良い。
ここで、BMは上述した相互電力スペクトル(CPS)のピークを引き出す機能を含む。
たとえば左下が第0の画像IM0、その右が第1の画像IM1、左上が第2の画像IM2、その右が第3の画像IM3とする。これらの画像IM0〜IM3は、隣接する画像間の境界で重なり部分を含むように配置される。
図8において、境界部分に配置した矩形で示すものがブロックBLKである。
このような配置条件で、BM(ブロックマッチング)を行う。
そして、上下左右の4つの境界BDR01,BDR02,BDR13,BDR23から、レンズ歪み、画角、チルト角などの情報を取り出す。
BMは、たとえば図9に示すように、一つの境界で3箇所について行う。
レンズ歪みがあると、BMの結果は図10に示すように弓なりになる。
チルト角が正しくないと、BMの結果は図11に示すような、図中の左右方向に傾いたような誤差が生じる。
レンズ歪みの中心が縦にずれていると、図12に示すように、上下の境界で左右の伸縮が起きる。左右の境界で上下の伸縮が起きているときは、レンズ歪みの中心が横にずれているときである。
上に向くにつれて画像が回転する場合、図13に示すように、上下方向に傾いたような誤差が生じる。メカニカルなチルト軸に対してカメラが正面を向いていないときに、図13のようになる。
これらの誤差が最小となるように各種パラメータを決める。
これにより、どこの4枚をつないでも、誤差を小さくすることができる。
この場合、基準画像を1枚決め、それ以外の画像を平行移動して最も誤差が小さくなる位置に収束させる。
平行移動で最適位置を求め、移動する。
この場合、ループを回す。
移動すべき量の総和を示すパラメータ fxy を 0.0 にする。
上下左右(縦横)のすべての画像について行う。
基準画像は動かさない。
BMの結果、隣接画像との位置関係が得られているのでこれに基づいて動かすべき量を計算する。
その方法は、真上と右隣のものを加え、真下と左隣のものを引いて平均を作り、f[y][x].x, f[y][x].y とする。
その80%を現在の画像の中心位置に加えて新しい画像の中心位置とする。
fxy に、すべての画像の移動すべき量の絶対値の総和を入れる。
この移動によって上下の位置関係、左右の位置関係がどう改善されるかを計算する。
fxy はこの移動を繰り返すことにより、だんだん小さくなる性質を持っている。
言い換えると、これ以上移動することができない状態に収束する。
fxy が十分小さくなったら終了する。
ここでは、4枚の画像について考察する。
第0の画像IM0は動かさない。すなわち、第0の画像IM0を基準画像とする。
BM(ブロックマッチング)の結果の横の成分を bx1[0]、bx1[1]、bx2[0]、bx2[1]とする。
縦の成分も独立に行うが、ここでは横のみを扱うことにする。
bx1は左右、bx2は上下である。[]の中の数字は0が下または左である。
基準画像IM0に対して右または上の画像が右または上にあるとき、BM結果は正の値となる。
今、極端な例として、一か所だけ異常な値があったときを想定し、bx1[0]=10、bx1[1]=0、bx2[0]=0、bx2[1]=0とする。
もし、第0の画像IM0と第1の画像IM1のBM結果から第1の画像IM1の位置を決め、第1の画像IM1と第3の画像IM3のBM結果から第3の画像IM3の位置を決める。そして、第2の画像IM2と第3の画像IM3のBM結果から第2の画像IM2の位置を決めていくと、第0の画像IM0と第2の画像IM2の位置関係に10画素という大きな値がしわ寄せとして生じてしまう。
xypos2()で隣接画像との位置関係から平行に移動すべき量を求める。
最初、第1の画像IM1は−5画素移動するべきと計算される。
move() で平行に移動する。
実際に移動させる量はその80%の4画素である。
第0の画像IM0以外の各画像IM1,IM2,IM3の移動量は pox[1]=4、pox[2]=0、pox[3]=0 となる。
このことにより、BM結果bx1[0]は10から6に変化する。
それに伴い、bx2[1]は0から4に変化する。
2回目、第1の画像IM1は−1画素移動するべきと計算される。
第3の画像IM3は−2画素移動するべきと計算される。
その80%、0.8を加算するとpox[1]=4.8となる。
以下、3回目、...と計算し、32回目に、移動すべき量の総和が fxy が 0.001画素を下回るため、終了となる。
このとき、平行に移動すべき画素数は7.5,2.5,5.0となり、各画像の位置関係も、
bx1[0]=10、bx1[1]=0、bx2[0]=0、bx2[1]=0であったものが、
bx1[0]=2.5、bx1[1]=-2.5、bx2[0]=-2.5、bx2[1]=2.5となって、誤差が分散されていることがわかる。
0 0 0.000000 0.000000
1 2 -0.000244 0.000000
2 2 -0.000244 0.000000
3 2 -0.000344 0.000000
n pox[n] poy[n] fz[n] 平行に移動すべき画素数
0 0.00 0.00
1 7.50 0.00
2 2.50 0.00
3 5.00 0.00
clrpos(); // 平行に移動すべき量[pixel] pox[],fzx[],rolla[] に 0 を入れる。
for (ii=0;ii<1000;ii++){
xypos2(); // 隣接画像との位置関係から平行に移動すべき量を求める。
if (fxy<0.001){break;}
move(); // 平行に移動する。
}
fprintf(inf,"ii=%3d, fxy=%8.5f fxy が 0.001 以下になったときの回数とその値\n",ii,fxy);
xypos(); // 隣接画像との位置関係から平行に移動すべき量を求める。
move(); // 平行に移動する。
dsppos(); // 補正量を表示する。
angle(); // 補正量を角度にし、 qq[n],pp[n] を更新する。
dsppos(); // 補正量を表示する。
dsperr(); // 各小画像対の誤差が 1 を超えるものを表示する。
step(); // qq[n],pp[n] からステップ角を作る。
−−プログラムの一部(ここまで)−−−−−−−−−−−−−−−−
void xypos2(){ // 隣接画像との位置関係から平行に移動すべき量 fx[n],fy[n] を求め、
// 平行に移動できないフラグ fz[n] を求める。(fprintf 削除)
int m,n,m2,n2,h,v,ix;
double cx,cy;
//fprintf(inf," n ix fx[n] fy[n]\n");
fxy=0;
for (v=0;v<ny;v++){ // すべての画像について
for (h=0;h<nx;h++){
m=(nx-1)*v+h; // 左右の境界
n=nx*v+h; // 上下の境界
ix=0;
if ((0<skip[h][v])||((v==(ny-1)/2)&&(h==(nx-1)/2))){ // 中央の画像と確定済みフラグの画像は動かさない。
fx[n]=0;fy[n]=0;fz[n]=4; // fz[n] は平行に移動できないフラグ
if (skip[h][v]==2){fz[n]=2;} // 確定済みフラグの画像は2とする。
}else{
cx=0;cy=0;
if (v!=0){ // 最下段ではないとき
n2=n-nx; // 真下
if (0<fok2[n2]){
ix++;
cx-=bx2[n2]; // 真下のものを引く
cy-=by2[n2];
}
}
if (v!=ny-1){ // 最上段ではないとき
if (0<fok2[n]){
ix++;
cx+=bx2[n]; // 自分のものをたす
cy+=by2[n];
}
}
if (h!=0){ // 最左端でないとき
m2=m-1; // 左隣り
if (0<fok1[m2]){
ix++;
cx-=bx1[m2]; // 左隣りのものを引く
cy-=by1[m2];
}
}
if (h!=nx-1){ // 最右端でないとき
if (0<fok1[m]){
ix++;
cx+=bx1[m]; // 自分のものをたす
cy+=by1[m];
}
}
if(ix==0){
fx[n]=0;fy[n]=0;fz[n]=1;
}else{
fx[n]=cx/ix;
fy[n]=cy/ix;
fz[n]=0;
}
fxy+=fabs(fx[n])+fabs(fy[n]);
}
}
}
}
//******************************************
void move(){ // 平行に移動する。
int m,n,h,v;
for (v=0;v<ny;v++){ // 画像の中心位置(画素)
for (h=0;h<nx;h++){
n=nx*v+h;
if (fz[n]==0){ // 周囲から隔絶されていないとき
pox[n]+=-fx[n]*0.8;
poy[n]+=-fy[n]*0.8;
}
}
}
for (v=0;v<ny;v++){ // 左右の位置関係
for (h=0;h<nx-1;h++){
m=nx*v+h;
n=(nx-1)*v+h;
bx1[n]+=-(fx[m]-fx[m+1])*0.8;
by1[n]+=-(fy[m]-fy[m+1])*0.8;
}
}
for (v=0;v<ny-1;v++){ // 上下の位置関係
for (h=0;h<nx;h++){
n=nx*v+h;
bx2[n]+=-(fx[n]-fx[n+nx])*0.8;
by2[n]+=-(fy[n]-fy[n+nx])*0.8;
}
}
}
//******************************************
合成する画像の数にかかわりなく、正確な合成を行うことが可能で、また、色ムラの発生を抑止することができる。
そして、レンズ歪補正係数を実写画像から抽出することができたため、厄介なキャリブレーションの作業が不要になり、精度も格段に向上する。
何千枚つないでもしわ寄せが出ない方法により、撮影枚数を気にすることなく、必要な範囲を必要な解像度で撮影することができるようになる。
連続撮影した画像の空間位置記録について説明する。
連続写真によるパノラマ撮影は、空間を分割して1枚の写真に収める作業となる。その写真からパノラマを作成する際に、撮影時の空間情報を用いて逆の演算を行うことで高精度なパノラマ写真とすることができる。
本実施形態では、写真を撮影する際にセンサと画像から撮影した空間の情報を計算し、その情報を写真1枚1枚に付与しておく事でパノラマ写真生成に役立てる。
たとえば、パノラマ撮影をする場合、一点に固定してモータでレンズを駆動させ撮影方向を変化させる。
この条件で撮影した写真は、撮影方向が異なるだけでカメラ装置10の位置つまり焦点位置は固定となる。よって、ここではとある一点から固定画角でその周囲を撮影した画像に限定する。
このような撮影方法の場合、撮影した空間の情報は以下の二つとなる。
すなわち、どこを狙って撮影したか(視線ベクトル)の情報と、視線ベクトルを軸とした回転角(ロール)の情報である。
空間を撮影した写真は1枚の面に投影される。
空間をパノラマ撮影すると考えたとき、全方位を扱うには撮影者の周辺に球が存在しそこに投影されると考えると画像処理が行い易い。この球を用いて視線ベクトルを定義することで座標空間も決定される。
カメラ装置10が存在する焦点位置を原点(0,0,0)とし、投影球を半径1と定義する。
水平時の正面方向はZ軸の1、f(0,0,1)とすると視線ベクトルは(0,0,0)からf(0,0,1)へ向かうベクトルとなる。
視線ベクトルは長さ1の単位ベクトルとなり、どこを向いても長さは1である。
視線ベクトルv1だけではフレームのロールが記録できないため、もう1つのロールベクトルv2を記録する。これは画像の上方向を示す情報で(v2-v1)が画像の上方向を示すベクトルとなる。
これにより、画像の撮影方向を2つのベクトル(投影球上の2点)で示すことができ、全方位で密度の差無く指し示すことができる。
撮影時の空間情報には相対情報と絶対情報の二種類が存在する。
パノラマ画像を作る目的においては、どこを向いて撮影した画像かという絶対的位置情報があれば良いのだが、確実な絶対情報が得られないため相対情報から積算したり、大雑把な絶対情報を使って補正したりすることになる。
レンズ駆動型パノラマカメラにおいては、レンズを移動するシナリオは絶対情報だが、撮影時の揺れ、レンズ駆動時の誤差混入、姿勢感知センサの精度の粗さ等が相対情報として加算されるため精密な絶対値は計算で求めることになる。
今、画像認識と姿勢センサにより正確な相対情報が入手できたとする。
現在の画像フレームf1が1つ前の画像フレームf2より、位置的に(dx, dy)移動しており、フレームロールがrzだけロールしていた場合、画角からx軸y軸の回転量がrx,ryと計算できる。このときf1の視線ベクトルv1はf2の視線ベクトルv2が(rx, ry, rz)回転したことになる。
この情報を元に投影球上の絶対位置を求めていくのであるが、v2の位置から回転(rx, ry, rz)と求めていくのは少々計算が複雑となる。
そこで、最新の画像f1を真正面v1(0,0,1)と固定してしまい、f2以降投影球上に配置された画像を球ごと(-rx,-ry,-rz)だけ回転させてしまう。つまり、最新の画像f1を基準に、他を相対的に移動させる。
これを繰り返していくと、最後の画像の位置が(0,0,1)となるがそれ以外の全ての画像の絶対座標が求まっている。
ロールの情報もベクトルとして、視線とロール二つのベクトルにしたのはこの相対的回転(球の方を回転させること)が容易になるからである。
画像の空間配置のために相対情報だけを用いたが、実際には姿勢センサ14等により絶対的なロールや上下方向の傾き情報も入手できている。ただ、姿勢センサ14により得られる絶対情報はパノラマ写真の生成に必要な精度と比べ荒く、その値をそのまま使うのは困難である。
一方、相対情報は画像認識から得るため高い精度を持つが、それでも誤差は含まれる。相対情報で繋いでいくと積算誤差で若干の誤差が大きなずれとなって現れる。
そこで、姿勢センサ14による絶対情報をこの積算誤差が生じていないかの確認として用いる。
相対移動の空間展開処理の途中で、ある程度の間を空けつつ姿勢センサの絶対値と比較をしていく。あまりにも相対移動が姿勢センサの絶対値と離れてきていたら姿勢センサの絶対値を用いて補正を行う。そしてまたそこの位置から相対的に移動の積算を行っていく。
また、撮像素子12を通して撮影したフレーム間の画像比較と移動量を検出部43で検出する。
移動量積分部42と検出部43の出力から協調補正ロジック44で協調補正し、相対位置積分部45で相対位置を積分し、絶対位置情報を得る。
そして、その絶対位置情報を加速度センサ141の検出結果に基づいて絶対位置補正部46で補正し、配置部47でフレームの空間位置を決定し、配置する。
以上のような計算を撮影しながら行っていき、画像とともに撮影方向といった空間座標情報をメタデータとして同時に記録する。
このメタデータだけでもパノラマ写真を生成することができるが、後処理より精密な調整とオーサリングを行う際の基本データとしても用いることができる。
この方法を使うと正面付近のみならず、真上も真後ろも正しく表現でき、全方位、あるいは全天球撮影に対応させることができるようになる。
正面付近のみの場合でもより広角画面でも誤差なく仕上げることが可能になる。
無論、手持ち撮影に十分に対応することができ、高精細な画像を得ることができる。
連続撮影した画像による位置認識の補正について説明する。
連続撮影した写真に高精度な撮影位置情報を付与するために、本構成では、姿勢センサと画像認識を合わせた手法、いわゆる「ダイナミックキャリブレーション」を用いる。
連続撮影した写真を用いてパノラマ写真を合成する際、画に高周波成分が含まれず画から連続性を特定できない場合がある。
そのような場面では連続するフレームがどれくらい移動しているのかといった情報を得ることができず、パノラマ写真全体が生成できないことになる。
そういった場面においても位置情報を得られるよう、姿勢センサ14を併用し撮影中に移動情報、位置情報を写真と同時に記録する。
姿勢センサ14は3軸の角速度センサ142と同じく3軸の加速度センサ141を同時並列に用いる。
角速度センサ142で今どれくらいの速度でカメラを回転させているかをとらえ、加速度センサ141で水平方向の傾きを感知する。
できるだけ撮影した写真で移動情報を得ていくが、画の都合で画像認識ができないような場面では前フレームからの移動量を姿勢センサ14から得る。
全体としての姿勢センサ14の検出結果の変化量と、画像認識による移動量を比較し相互に影響することでより厳密な位置情報を得ることができる。
目的とするパノラマ写真撮影においては、姿勢センサ14の精度よりも画像の精度の方が高くなっている。姿勢センサ14の情報のみで位置情報としてしまうと、パノラマ写真として成り立たないほどの粗さとなってしまう。
精度としては期待せずに、本当に情報が取れないときの補佐とする様な使い方となる。
一般的な物理センサと同じように、姿勢センサも安定した値を出さず常に揺れている。 また、制止時のゼロ位置が状況によって変化するため、撮影前に静止状態を作り出しゼロ位置の値を計測する必要がある。その値の計測後はゼロ値からの変位でどれくらい移動したかを計測する。
本構成では、連続したパノラマ写真を撮影しながら、姿勢センサの情報もメタデータとして記録していく。
この方法では姿勢センサ14の揺れが大きすぎるため、後々パノラマ合成時にメタデータの情報が使いにくいという難点がある。
そこで、撮影時に画像認識によるメタデータを補正計算しながら記録していく。
そこで、本実施形態では、画像認識と姿勢センサからこの内部保持している空間情報をリアルタイムに補正更新していこうというのが、ダイナミックキャリブレーションである。
モータ駆動で移動シナリオが存在する場合は、予めおおよその撮影位置が分かっているが撮影中の揺れや移動までは考慮できない。そうした、撮影時の変化を検知するために姿勢センサ14を用いる。
姿勢センサ14で撮影時の変化を感知したら画像認識で実際の移動シナリオとどれだけずれたかを精査する。この際の精査基準に姿勢センサ14の移動量を用いると画像認識も容易となる。
こうして、期待する移動シナリオとの誤差が算出できたら、移動シナリオの値に加算し実際に撮影した位置情報を撮影写真のメタデータとして記録していく。
手作業によるスイープ撮影の場合は移動シナリオが存在しないため、毎フレームの撮影毎に前フレームと今フレームを画像認識による比較で移動量を算出する。
このときどれだけ動いたかが分かりにくいので、姿勢センサ14の情報からおおよその移動量を得てその値を元に画像認識を行うことで精度の良い移動量算出が行える。
もし画像認識が困難だった場合は姿勢センサから得た移動量を記録しておき後ほど前後のフレームの位置関係などと照らし合わせて座標を決定することになる。
角速度センサ142の検出信号、加速度センサ141の検出信号、および検出部51の検出信号を基に静止検出部52で静止検出を行い、静止時の角速度センサの基準値を得る。
そして、記録部53により基準値の決定を行い、その基準値をメモリ17に記録する。う。
また、撮像素子12を通して撮影したフレーム間の画像比較と移動量を検出部51で検出する。
移動量積分部55と検出部51の出力から協調補正ロジック56で協調補正し、高精度の相対移動情報を得る。
したがって、画像から認識する方法も姿勢センサで検出する方法も単独では満足な精度のものが得られなかったが、その両者を協調させるというこの技術により、精度と安定度を格段に向上させることが可能となる。
パノラマ写真を撮影する際、撮影位置が変動すると視差による非連続性が発生する。
視差による非連続性は撮影後の画像処理で補正することができない。
このため、パノラマ写真を撮影する場合、撮影者とカメラは特定の位置で静止しカメラの焦点が一箇所になるようその場で回転しながら写真を撮影する。
このとき、撮影後の異なる2枚の写真内で見た目の移動距離は撮影時の回転量に比例する。
写真がデジタル画像であり、そのサイズがピクセル数で表現できる場合、2枚の画像間で何ピクセルの移動であったかは撮影時どれくらいの回転移動距離があったか逆算することが可能であるが、このとき必要なパラメータとして画角がある。
画角とは、写真一枚に写っている左右幅もしくは上下幅が撮影空間で何度の範囲かを示す数値である。
画角は撮影前に計測し与えられるパラメータであり、撮影中は揺るがないものとする。
水平画角が30度であり、撮影したデジタル写真の横方向のピクセル数が1000ピクセルであった場合、1ピクセルあたりの撮影空間角は0.03度となる。つまり、2枚の写真間で800ピクセル移動していることが認識できたとき、実際の撮影は24度回転して撮影されたもの計算される。
この1ピクセルあたりの画角が最も重要な初期値として適用される。
写真2枚の撮影時回転量=写真2枚のピクセル上での移動量*1ピクセルあたりの画角
角速度センサは現在の角速度を出力する。
時間経過によって出力値が変動するため、角速度の変化を知ることができるが、その値が直接回転量を表してはいない。角速度センサから回転角を得るためには、積分値の単位を規定することが必要となる。
角速度センサを一定時間ごとに計測を行い、この計測間隔を重要なパラメータとして固定する。
計測した角速度を時間で積分し、その間に実際に回転した量を外部からの計測で知る必要がある。積分された角速度を実際に回転した量で除算し、1度あたりの各速度積分値を求める。
以降は、角速度積分値を1度あたりの角速度積分値で除算することで、比例的に回転移動量を求めることができる。
実際の1度あたりの角速度積分値は初期値としてあらかじめ計測して保持しておく。
角速度センサの出力は相対的な角速度であるが、すぐれた角速度センサでない限りその出力は環境によって変化する。その変化が実際の計測に影響を及ぼすので、計測の度に補正を行う必要がある。
パノラマ撮影に特化して、その補正を撮影したパノラマ写真からのフィードバックで自動的に行う処理を、ここではダイナミックキャリブレーションという。
角速度センサで、環境によって変動するには静止時零点位置と1度あたりの角速度積分値の二つである。それと相対移動により積分誤差の積み上げがあり、以上3項目の補正を行う。
図18は、角速度センサの零点補正処理のフローチャートである。
角速度センサ142の零点補正においては、図18のステップST1〜ST16の処理が行われる。
角速度センサ142が静止しているときの出力値が正確にわからないと角速度を検出することができない。ところが、この静止時の零点が温度等の環境によって変化してしまうことがある。
この零点ドリフトを画像マッチングの結果から補正していき、撮影時の正確な零点を求める。
スタート時の角速度センサ142の零点出力値は初期値としてあらかじめ設定されている値を用いる。
2フレーム間の画像マッチングを行い(ST1〜ST3)、マッチングが高周波成分を含んだたしかなものであり、かつ、X,Y,Z軸方向に移動がなかった場合、X,Y,Z軸方向の角度センサは零点を指しているものとして数値をサンプリングする。
このとき零点としてサンプリングされた値を用いて補正を行う(ST4〜ST15)。
なお、軸方向に移動が検出された場合は零点ではないためサンプリングを行わず、零点補正は行われない。
サンプルを行ったらサンプル数をインクリメントし、零点値を補正する。
補正は現在の零点値とサンプル値の差分をサンプル数で除算したものを加算し、平均値の算出とする。
図19は、角速度センサの移動量補正のフローチャートである。
角速度センサの移動量補正においては、図19のステップST21〜ST26の処理が行われる。
1度あたりの角速度積分値は、角速度センサの角速度積分値から回転角を求めるパラメータであるが温度等の環境によって変化してしまうことがある。
この1度あたりの角速度積分値を画像マッチングを行い(ST21〜ST23)、マッチングの結果から補正、更新していき、撮影中の正確な値を求める(ST24〜ST26)。
2フレーム間の画像マッチングを行い、マッチングが高周波成分を含んだ確かなものであった場合、画像マッチングによって得られたX軸、Y軸、Z軸それぞれの移動量とそのときの角速度積分値から1度あたりの角速度積分値を求める。
角速度センサは相対的な角移動量を出力する。
現在どの位置にいるかという絶対位置情報はそれまでの相対値を積分することで算出される。
その相対値にわずかなずれやノイズが含まれていた場合、積分する時間が長引くほど大きなずれを生じる可能性がある。
角速度センサは重力加速度の検出でY軸方向の回転(チルト)とZ軸方向の回転(ロール)の絶対値を得ることができるが、パノラマ撮影に対して大きな単位でしか検出できず有用度では角速度センサにおとる。
しかし、絶対値が出てくるというメリットから、定期的に相対移動距離の積分値と比較して積分値の補正、絶対値の補正を行うことができる。
加速度センサで十分検出できるくらいの絶対量を移動したら、そのタイミングで相対移動距離の積分値による絶対位置と比較して必要であれば補正を行う。
図20は、移動量の取得方法のフローチャートである。
移動量の取得方法においては、図20のステップST31〜ST35の処理が行われる。
角速度センサ142の解像度と、画像マッチングによる移動量の解像度では画像マッチングの方が遥かに精度の高い数値となる。このため、相対移動距離はできるだけ画像マッチングから算出できるものを用いる(ST33,ST34)。
一面が同色の空ならの高周波成分が含まれない画像間ではマッチングが取れないが、そのときは角速度センサ142の数値を用いて相対移動量を算出していく(ST33,ST35)。
図21は、撮影した写真から空間座標を割り当てる方法のフローチャートである。
撮影した写真から空間座標を割り当てる方法においては、図21のステップST41〜ST47の処理が行われる。
上記のように撮影したパノラマ写真すべてに、画像マッチングと角度センサから得た前フレームからの相対的回転移動量を求めることができる(ST41〜ST43)。
パノラマ写真を構成するためには、これら相対的回転移動量から絶対空間座標への割り当てを行う必要がある。
撮影した写真はすべて同じ画角なので、撮影した中央の点、つまりカメラが向いていたベクトルのみに注視して割り当てを考慮することができる。
前フレームとの相対的回転移動量というのは、このカメラが向いていた方向、撮影視線ベクトルが前フレームのベクトルとどれだけの角をなしているかと表現することもできる。
配置にあたって視線ベクトルだけに簡略化するとフレームZ軸方向の回転、つまりロールが取れなくなる。
そこで、フレームの真上Y軸上にずらしたベクトルをもう一つ用意することでフレームのロールを表現することにする。
この2つのベクトルがカメラの撮影方向とZ軸のロールを表し、回転処理を行ってもフレームの情報を保持し続ける。
空間に配置する際、新しいフレームは必ず空間正面位置a(0,0,1.0)には位置する。
相対的回転移動量が出ている場合は、その分だけ逆方向に前のフレームすべてを回転させてから空間正面位置a(0,0,1.0)を配置する(ST44〜ST46)。
前のフレームから移動ではなく、現在のフレームから過去のフレーム画どれだけ移動したかということを基準にしてあつかう。
今回撮影したフレームをAとし、前回撮影したフレームをBとする。
フレームAを基準にして、フレームBがどれだけ相対的回転移動したかを算出する(ST43)。
現在のAのカメラ位置からみてBのカメラ位置がX軸方向にrx、Y軸方向にry、Z軸方向にrzだけ回転移動したものだと算出されたらA以外過去に撮影されたフレームの撮影方向ベクトルおよびロール指標ベクトルすべてに、rx,ry,rzの回転をかける。
回転マトリクスは一般的な三次元空間のものでよい。
x2=x*cos(rx)-y*sin(rx)
y2=y*sin(rx)+z*cos(rx)
z2=z
x2=x*cos(ry)-z*sin(ry)
y2=y
z2=x*sin(ry)+z*cos(ry)
x2=x
y2=y*cos(rz)-z*sin(rz)
z2=y*sin(rz)+z*cos(rz)
最終的にすべてを適用し終えたとき、すべてのフレームは適した絶対座標を持ちうる。
だだし、最後のフレームが基準になっているので、任意のフレームを基準に相対移動する必要がある場合もある。
第4の構成では、視差による影響や移動体による影響を検出した場合に、表示装置18や発音部20により警告を出して撮影のやり直しを促す。
また、第4の構成では、移動体の検出に関し、重複率を50%以上として被写体のどの部分も少なくとも2枚の画像にまたがって写るようにし、隣接画像間の移動ベクトルの類似性で視差による影響や動被写体を検出する。
一般に広角のカメラの視点はレンズの直後にあり、カメラを手に持って手首を中心に回すのが理想的である。
こうしてカメラの視点を中心として撮影したものは近距離の被写体が含まれていても正しく合成することができる。
本実施形態のカメラ装置10は、複数の画像をすべて短冊状に撮影するのでカメラの視点から少々ずれた位置を中心として撮影してもその影響が出にくいという長所も持っている。
しかし、それでもカメラを手に持って肩を中心にして回して撮影した場合、カメラの視点よりかなり後方を中心として回すことになり、パララックスの影響を強く受ける。
すべてが遠方の景色なら殆ど問題ないが、近距離の被写体が含まれていると隣接画像との位置関係が遠距離の被写体と異なり、正しく合成することができない。
そこで、第4の構成では、パララックスの影響で正しい画像合成ができないことが検出された場合に、視点を中心にして回すように指示を出して撮り直しを促すことにしている。
視差の検出方法について説明する。
時間的に隣接する2枚の画像の重複する領域内で複数のブロックマッチング(BM)を行い、その結果の移動ベクトルを求める。
通常、正しくスイープされているとBM結果がほぼ同一のベクトルになる。
肩中心に回したとき、遠距離の景色の一部に近距離の被写体があると、異なるベクトルの値になる。
近距離の被写体と遠距離の被写体の境目では画像の変化が激しいため、BM結果は正しく得られない。この方法で視差を検出する。
以下の処理は、システムコントローラ16の画像信号処理部161とマイクロコンピュータ162により協働して行われる。
[ラフ合成]
カメラ装置10を左から右に向かって回転移動させ、120度程度の範囲を数10枚撮影する。
隣接する画像には同一の被写体が写っている領域(重複領域)が十分に存在する。
撮影時のカメラ装置10の動きが姿勢センサ14によって検出され、細かい時間間隔で記録されている。
このデータは撮影された画像と同期を取りながら記録されているので、精度はさほど高くないが、各画像がどの方向を向いて撮影されたのかを知ることができる。
この情報に基づいて各画像を経度緯度平面上に配置する。
この状態では隣接画像の重複領域は、100画素程度の画素はあるものの、ほぼ正しい位置に置かれている。
ここから精密自動合成のルーチンに入る。
重複領域内で複数の場所で動き検出(ME;動き探索)を行う。
ME、すなわち動き検出では、FFTによる位相限定相関法を用いている。これは、特徴点抽出法やその他の方法であっても適用可能である。
平行移動のみの場合は、MEは一つで良い。
MEが2個あれば互いの傾斜がわかる。
3個あれば、レンズ歪みの係数がわかる。
重複領域内に動くものがなく、遠景で手持ちでもその影響が生じない場合はMEの数は少なくても良い。
しかし、動くものがあったり、近距離で視差の影響があったりすると、MEの数が少ないと何が起こっているかを把握することができない。
そこで、重複領域内で可能な限り、多くのMEを行う。
多くのMEの結果の移動ベクトルがほぼ同じ値の場合、一方の画像を平行移動によって合わせこむことができる。
ほぼ同じ値でない場合でも、上部から下部にかけて一様に変化する場合、一方の画像を傾斜させることで合わせこむことができる。
しかし、異なるME結果が重複領域内に存在する場合、合成ができない。
その理由は、動く被写体が存在するか、近距離と遠距離の被写体が混在するときに視点を移動させながら撮影したかである。
最初はMEを行う画像を縮小して大まかに行う。
だんだん縮小率を下げ、最後は等倍の画像で行う。
MEのブロックサイズを変えたり、ブロックの中心間距離を狭くして、より詳細な移動ベクトルを取得できるようにする。
多くのMEの結果から正しいスイッチングが可能か否かを判断し、不可能な場合、その旨を表示して撮影のやり直しを促す。
可能な場合はそのままスイッチング処理を行い、合成結果を表示すると共に、記録媒体(メモリ)に記録する。
次に、移動被写体の振る舞いについて説明する。
時間的に隣接する2枚の画像の重複する領域内で複数のブロックマッチング(BM)を行い、その結果の移動ベクトルを求める。
移動の方向に応じたベクトルになり、静止部分との分離が可能である。
移動物体と静止被写体の境目では画像の変化が激しいため、BM結果は正しく得られない。横にスイープしている場合、近距離の静止被写体による視差なのか、横に移動する被写体なのかを識別することができない。
そこで、視差と動被写体を区別しないで警告を発するようにする。
これを検出した場合、現在の技術ではこれを違和感なくステッチングすることができない。
そこで、本実施形態においては、「単に撮りなおし」、または「撮り方を変えて撮りなおし」を促すように警告を発する。
たとえば、「視差または移動体の影響が出ています。回転の半径を小さくして撮りなおしてください。」との警告を発する。
その結果、視差の影響が撮影直後にわかるため、撮りなおしができるようになる利点がある。
第5の構成では、スイープ角速度(ユーザがカメラを振り回す速さ)の適正値を知らせ、速すぎる場合に警告を出して撮影のやり直しを促す。
前述したように、マイクロコンピュータ162は、表示装置18、たとえばLCDの画面に横軸に時間、縦軸に姿勢センサ(ジャイロセンサ)の出力(スイープ角速度)をグラフにして表示する。
水平画角、水平画素数、シャッタ速度が設定されると最大スイープ角速度が決まるので、その60%〜80%を適正範囲RNGとして、図4に示すようにグラフに表示する。
操作手順の概略は以下の通りである。
[1]操作部19のスタートボタンを押してカメラを回し、その後スタートボタンを離す。
[2]スタートボタンが押されている間のスィープ角速度が、図4に示すように、表示装置18の画面に表示される。
[3]適正範囲RNGより遅い場合には警告はないが、一瞬でも範囲を越えて速い場合には警告音が出る。
露光時間、画素数、1ライン読み出し時間、画角、重複率、フレームレート等が決まったとき、ぶれの角度、ぶれの画素数、その他の問題が生じないためのスイープ速度を計算で求める方法について説明する。
3つの式で得られるスイープ速度の最も遅い値がその条件における最高角速度である。
[1]〜[6]は条件を変えた場合である。
以下に、図22の条件[1]を例にとって説明する。
nb2=vp・(ts+n・rs)・H/th
f=100/(100−k)・H・vp/n/th
vp=nb2・th/H/(ts+n・rs)[deg/sec]・・・(2)
vp=(100−k)/100・n・th・f/H ・・・(3)
また、ぶれの画素数nb2=19.9画素、長辺の画角th=50度、水平画素数H=3560画素とすれば、スイープ速度はvp=68[deg/sec]となる。
また、重複率k=20%、フレームレートf=15.13のときスイープ速度はvp=68[deg/sec]となる。
式(1)で得られたvpの値より速くスイープすると光学手振れ補正素子の動作限界を超える。
式(2)で得られたvpの値より速くスイープするとぶれの量が許容値を超える。
式(3)で得られたvpの値より速くスイープすると重複量が減り、場合いよっては重複しなくなる。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
Claims (7)
- 合成処理により1枚のパノラマ画像を生成するために、撮像装置を移動させながら光学系を通して複数の被写体像を撮像する撮像素子と、
時間的に隣接する2枚の画像の重複する領域内で複数の動き検出を行って複数の動きベクトルを求め、異なる値のベクトルが存在する場合に視差を検出したものと認識し、隣接画像間の移動ベクトルの類似性で視差による影響または動被写体を検出する画像信号処理部と、
上記画像信号処理部が、移動体または視差による影響を検出した場合に警告を出して撮影のやり直しを促す制御部と、
を備える
撮像装置。 - 上記画像信号処理部は、
時間的に隣接する2枚の画像の重複する領域内で複数の動き検出を行って複数の動きベクトルを求め、
上記制御部は、
移動物体と静止被写体の境目では、視差と動被写体を区別することなく警告を発する
請求項1記載の撮像装置。 - 上記制御部は、
被写体のどの部分も少なくとも2枚の画像にまたがって写るように重複率を保持して数枚の撮影画像を得るように制御する
請求項1または2記載の撮像装置。 - 撮像装置を移動させながら、光学系を通して撮像素子で被写体像を撮像するステップと、
時間的に隣接する2枚の画像の重複する領域内で複数の動き検出を行って複数の動きベクトルを求め、異なる値のベクトルが存在する場合に視差を検出したものと認識し、隣接画像間の移動ベクトルの類似性で視差による影響または動被写体を検出するステップと、
上記移動体または視差による影響を検出した場合に警告を出して撮影のやり直しを促すステップと
を有する撮像方法。 - 時間的に隣接する2枚の画像の重複する領域内で複数の動き検出を行って複数の動きベクトルを求め、
移動物体と静止被写体の境目では、視差と移動被写体を区別することなく警告を発する
請求項4記載の撮像方法。 - 被写体のどの部分も少なくとも2枚の画像にまたがって写るように重複率を保持して数枚の撮影画像を得るように制御する
請求項4または5記載の撮像方法。 - 撮像装置を移動させながら、光学系を通して撮像素子で被写体像を撮像する処理と、
時間的に隣接する2枚の画像の重複する領域内で複数の動き検出を行って複数の動きベクトルを求め、異なる値のベクトルが存在する場合に視差を検出したものと認識し、隣接画像間の移動ベクトルの類似性で視差による影響または動被写体を検出する処理と、
上記移動体または視差による影響を検出した場合に警告を出して撮影のやり直しを促す処理と
を有する撮像処理をコンピュータに実行させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008258114A JP5163409B2 (ja) | 2008-10-03 | 2008-10-03 | 撮像装置、撮像方法、およびプログラム |
CN2009102044431A CN101715055B (zh) | 2008-10-03 | 2009-09-29 | 成像设备和成像方法 |
US12/570,771 US8767036B2 (en) | 2008-10-03 | 2009-09-30 | Panoramic imaging apparatus, imaging method, and program with warning detection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008258114A JP5163409B2 (ja) | 2008-10-03 | 2008-10-03 | 撮像装置、撮像方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010088085A JP2010088085A (ja) | 2010-04-15 |
JP5163409B2 true JP5163409B2 (ja) | 2013-03-13 |
Family
ID=42075503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008258114A Expired - Fee Related JP5163409B2 (ja) | 2008-10-03 | 2008-10-03 | 撮像装置、撮像方法、およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8767036B2 (ja) |
JP (1) | JP5163409B2 (ja) |
CN (1) | CN101715055B (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5233606B2 (ja) * | 2008-11-19 | 2013-07-10 | 富士通株式会社 | 絶対移動経路算出装置及び方法、並びにプログラム |
JP4618370B2 (ja) * | 2008-12-08 | 2011-01-26 | ソニー株式会社 | 撮像装置、撮像方法、およびプログラム |
JP2010136302A (ja) * | 2008-12-08 | 2010-06-17 | Sony Corp | 撮像装置、撮像方法、およびプログラム |
JP5319347B2 (ja) * | 2009-03-17 | 2013-10-16 | キヤノン株式会社 | 撮像装置及びその制御方法 |
US8488040B2 (en) | 2010-06-18 | 2013-07-16 | Microsoft Corporation | Mobile and server-side computational photography |
CN103081455B (zh) * | 2010-11-29 | 2017-03-08 | 快图有限公司 | 从手持设备所捕获的多个图像进行肖像图像合成 |
JP5770486B2 (ja) * | 2011-02-21 | 2015-08-26 | 株式会社トプコン | 全周画像計測装置 |
JP2012191486A (ja) * | 2011-03-11 | 2012-10-04 | Sony Corp | 画像合成装置と画像合成方法およびプログラム |
CN102860836B (zh) * | 2011-07-04 | 2015-01-07 | 株式会社东芝 | 图像处理装置、图像处理方法以及医用图像诊断装置 |
TWI526706B (zh) * | 2011-10-05 | 2016-03-21 | 原相科技股份有限公司 | 影像系統 |
US9111484B2 (en) * | 2012-05-03 | 2015-08-18 | Semiconductor Components Industries, Llc | Electronic device for scene evaluation and image projection onto non-planar screens |
JP2015156523A (ja) * | 2012-06-06 | 2015-08-27 | ソニー株式会社 | 画像処理装置、画像処理方法、プログラム |
JP6331279B2 (ja) * | 2013-07-23 | 2018-05-30 | 株式会社ニコン | 撮像装置、撮像方法およびプログラム |
BR112016018024A2 (pt) * | 2014-02-07 | 2017-08-08 | Qualcomm Technologies Inc | Reconhecimento de cena ao vivo que permite modificação de imagem dependente de cena antes de gravação ou exibição de imagem |
US20150271400A1 (en) * | 2014-03-19 | 2015-09-24 | Htc Corporation | Handheld electronic device, panoramic image forming method and non-transitory machine readable medium thereof |
JP5843033B1 (ja) * | 2014-05-15 | 2016-01-13 | 株式会社リコー | 撮像システム、撮像装置、プログラムおよびシステム |
EP3255870A4 (en) * | 2015-02-02 | 2018-09-12 | OCR Systems Inc. | Optical terminal device and scan program |
US10477064B2 (en) * | 2017-08-21 | 2019-11-12 | Gopro, Inc. | Image stitching with electronic rolling shutter correction |
JP6545229B2 (ja) * | 2017-08-23 | 2019-07-17 | キヤノン株式会社 | 画像処理装置、撮像装置、画像処理装置の制御方法およびプログラム |
CN108038820B (zh) * | 2017-11-14 | 2021-02-02 | 影石创新科技股份有限公司 | 一种实现子弹时间拍摄效果的方法、装置及全景相机 |
IL257256A (en) * | 2018-01-30 | 2018-03-29 | HYATT Yonatan | System and method for establishing production line tests |
CN109146949B (zh) * | 2018-09-05 | 2019-10-22 | 天目爱视(北京)科技有限公司 | 一种基于视频数据的3d测量及信息获取装置 |
US20200104977A1 (en) * | 2018-09-30 | 2020-04-02 | Augentix Inc. | Method of Adaptive Image Stitching and Image Processing Device |
CN110505383B (zh) * | 2019-08-29 | 2021-07-23 | 重庆金山医疗技术研究院有限公司 | 一种图像获取方法、图像获取装置及内窥镜系统 |
CN111553262B (zh) * | 2020-04-26 | 2023-09-01 | 上海微阱电子科技有限公司 | 一种快速检测目标图形的检测装置及方法 |
CN111741223B (zh) * | 2020-07-17 | 2022-04-26 | 北京搜房科技发展有限公司 | 一种全景图像拍摄方法、装置和系统 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452105A (en) * | 1992-11-19 | 1995-09-19 | Sharp Kabushiki Kaisha | Joint-portion processing device for image data for use in an image processing apparatus |
KR100215448B1 (ko) | 1996-04-27 | 1999-08-16 | 윤종용 | 캠코더의 손떨림/이동속도 디스플레이장치 |
US5937212A (en) * | 1996-11-15 | 1999-08-10 | Canon Kabushiki Kaisha | Image pickup apparatus |
JP3802653B2 (ja) * | 1997-05-21 | 2006-07-26 | オリンパス株式会社 | 立体画像表示装置 |
JP3928222B2 (ja) | 1997-09-09 | 2007-06-13 | ソニー株式会社 | 画像信号撮像および記録装置および方法 |
US7015954B1 (en) * | 1999-08-09 | 2006-03-21 | Fuji Xerox Co., Ltd. | Automatic video system using multiple cameras |
US7149549B1 (en) * | 2000-10-26 | 2006-12-12 | Ortiz Luis M | Providing multiple perspectives for a venue activity through an electronic hand held device |
JP3925299B2 (ja) | 2002-05-15 | 2007-06-06 | ソニー株式会社 | モニタリングシステムおよび方法 |
JP2004221757A (ja) * | 2003-01-10 | 2004-08-05 | Renesas Technology Corp | 動き検出装置及び探索領域形状可変動き検出器 |
EP1617684A4 (en) * | 2003-04-17 | 2009-06-03 | Sharp Kk | THREE-DIMENSIONAL IMAGE CREATION DEVICE, THREE-DIMENSIONAL IMAGE REPRODUCING DEVICE, THREE-DIMENSIONAL IMAGE PROCESSING DEVICE, THREE-DIMENSIONAL IMAGE PROCESSING PROGRAM, AND RECORDING MEDIUM CONTAINING THE SAME |
US7746375B2 (en) * | 2003-10-28 | 2010-06-29 | Koninklijke Philips Electronics N.V. | Digital camera with panorama or mosaic functionality |
JP4591657B2 (ja) * | 2003-12-22 | 2010-12-01 | キヤノン株式会社 | 動画像符号化装置及びその制御方法、プログラム |
JP4356621B2 (ja) * | 2004-04-16 | 2009-11-04 | ソニー株式会社 | 撮像装置及び撮像方法 |
JP4340968B2 (ja) * | 2004-05-07 | 2009-10-07 | ソニー株式会社 | 画像処理装置および方法、記録媒体、並びにプログラム |
US7586518B2 (en) * | 2004-06-18 | 2009-09-08 | Canon Kabushiki Kaisha | Imaging technique performing focusing on plurality of images |
JP4328692B2 (ja) * | 2004-08-11 | 2009-09-09 | 国立大学法人東京工業大学 | 物体検出装置 |
JP4926400B2 (ja) * | 2004-12-27 | 2012-05-09 | 京セラ株式会社 | 移動カメラシステム |
EP1843598A4 (en) * | 2005-01-07 | 2010-03-10 | Fujitsu Ltd | COMPRESSION / ENCODING DEVICE, DECOMPRESSION / DECODING DEVICE |
US7457433B2 (en) * | 2005-01-20 | 2008-11-25 | International Business Machines Corporation | System and method for analyzing video from non-static camera |
JP2006217478A (ja) * | 2005-02-07 | 2006-08-17 | Sony Ericsson Mobilecommunications Japan Inc | 画像撮影装置及び画像撮影方法 |
JP4899803B2 (ja) * | 2006-11-06 | 2012-03-21 | ソニー株式会社 | 画像処理装置、カメラ装置、画像処理方法、およびプログラム |
KR100866230B1 (ko) * | 2007-04-12 | 2008-10-30 | 삼성전자주식회사 | 파노라마 사진 촬영 방법 |
US8866920B2 (en) * | 2008-05-20 | 2014-10-21 | Pelican Imaging Corporation | Capturing and processing of images using monolithic camera array with heterogeneous imagers |
JP2010136302A (ja) * | 2008-12-08 | 2010-06-17 | Sony Corp | 撮像装置、撮像方法、およびプログラム |
JP4770924B2 (ja) * | 2008-12-17 | 2011-09-14 | ソニー株式会社 | 撮像装置、撮像方法、およびプログラム |
-
2008
- 2008-10-03 JP JP2008258114A patent/JP5163409B2/ja not_active Expired - Fee Related
-
2009
- 2009-09-29 CN CN2009102044431A patent/CN101715055B/zh not_active Expired - Fee Related
- 2009-09-30 US US12/570,771 patent/US8767036B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8767036B2 (en) | 2014-07-01 |
CN101715055A (zh) | 2010-05-26 |
US20100085442A1 (en) | 2010-04-08 |
CN101715055B (zh) | 2012-03-21 |
JP2010088085A (ja) | 2010-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5163409B2 (ja) | 撮像装置、撮像方法、およびプログラム | |
JP4770924B2 (ja) | 撮像装置、撮像方法、およびプログラム | |
JP4962460B2 (ja) | 撮像装置、撮像方法、およびプログラム | |
JP4618370B2 (ja) | 撮像装置、撮像方法、およびプログラム | |
JP2010136302A (ja) | 撮像装置、撮像方法、およびプログラム | |
KR102526794B1 (ko) | 카메라 모듈, 고체 촬상 소자, 전자 기기 및 촬상 방법 | |
JP5659305B2 (ja) | 画像生成装置および画像生成方法 | |
US8294773B2 (en) | Image capturing apparatus and image processing method | |
US20110234750A1 (en) | Capturing Two or More Images to Form a Panoramic Image | |
JP5865388B2 (ja) | 画像生成装置および画像生成方法 | |
WO2013069047A1 (ja) | 画像生成装置および画像生成方法 | |
WO2013069049A1 (ja) | 画像生成装置および画像生成方法 | |
JP2010136302A5 (ja) | 撮像装置、撮像装置の制御方法、およびプログラム | |
JP3788714B2 (ja) | 撮像装置及びデジタルカメラ | |
JP5248951B2 (ja) | カメラ装置、画像撮影支援装置、画像撮影支援方法、及び画像撮影支援プログラム | |
JP4517813B2 (ja) | パンニング撮影可能なカメラおよび動画像編集用プログラム | |
JP5393877B2 (ja) | 撮像装置および集積回路 | |
JP2011055084A (ja) | 撮像装置及び電子機器 | |
JP2011259341A (ja) | 撮像装置 | |
JP5424725B2 (ja) | 撮像装置、撮像装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110922 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120828 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121029 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20121120 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121203 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151228 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5163409 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151228 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |