【課題】意図的なカメラ操作による動きを検出し、意図的なカメラ操作を反映しつつ、ぶれのない画像を生成することができる画像処理システム、画像処理装置、画像処理方法及びプログラムを提供すること。
【解決手段】本発明は、所定の解像度を持つカメラで撮影された画像フレーム中の所定位置に配置された対象領域の画像を切り出して、出力画像を生成する画像生成手段と、カメラに設けられ、画像フレームにおけるカメラの動きを検出する第1の動き検出手段と、カメラが積載される積載部に設けられ、画像フレームにおける積載部の動きを検出する第2の動き検出手段と、第1の動き検出手段が検出した動きと第2の動き検出手段が検出した動きとに基づいて、画像フレームにおける対象領域を配置する位置を決定する対象領域配置位置制御手段とを有する画像処理システムである。
【発明を実施するための形態】
【0015】
尚、本実施の形態では、撮影装置の例として、ビデオカメラに本発明を適用した場合について説明する。
【0016】
図1は本実施の形態に係る画像処理システムのブロック図である。
【0017】
1はビデオカメラ、2はビデオカメラ1が積載される積載部、3は画像処理装置である。
【0018】
ビデオカメラ1は、撮影部10と、センサ11とを備える。
【0019】
撮影部10は、被写体を動画として撮影する撮影手段として機能する。具体的には、撮影部10は、被写体が撮像されたフレームのデータ(以下、単に「フレーム」と言う)をカメラコントロール回路に所定のサンプリングレートで順次出力するものであり、CCDやCMOS等の光電変換素子がマトリクス状あるいはハニカム状に配置されてなるイメージセンサ、複数の光学レンズを有してなる光学レンズ系、この光学レンズ系を駆動してズーム・フォーカスや絞り等を実現するためのレンズ駆動装置、イメージセンサによって取得されたアナログ信号の画像をデジタル信号に変換して画像データを出力するA/D変換回路等を備えて構成される。撮影部10により撮影される動画は、例えば1秒あたり60フレーム(60fps)の連続する複数の静止画像の集合として記録され、フレーム毎に画像処理を施すことが可能である。
【0020】
センサ11は、ビデオカメラ1のぶれ量を検出するぶれ検出手段として機能する。具体的には、
図2に示すように、画像フレームの横方向(以下、X軸と定義する)の移動と高さ方向(以下、Y軸と定義する)の移動とのそれぞれの角速度を個別に検出すべく、X軸ジャイロセンサおよびY軸ジャイロセンサの2つのジャイロセンサを有する。そして、それぞれのジャイロセンサが角速度に応じた電圧値の角速度検出信号を出力する。尚、ジャイロセンサに限らず、加速度センサを用いて光軸回りの回転量θを検出し、光軸の回転により生じるローリングぶれを検出するようにしても良い。また、XY軸の並進方向のぶれを検知する加速度センサを用いて、並進(シフト)ぶれを検出するようにしても良い。
【0021】
積載部2は、ビデオカメラ1が積載されるものである。本実施の形態では、ビデオカメラ1が積載される台を例にして説明するが、これに限られない。例えば、テレビの撮影ではビデオカメラが中継車等の移動体に積載されることが多い。そのような場合では、積載部2は中継車等の移動体となる。
【0022】
センサ21は、積載部2のぶれ量を検出するぶれ検出手段として機能し、上述したセンサ11と同様なものであり、X軸ジャイロセンサおよびY軸ジャイロセンサの2つのジャイロセンサを有する。そして、それぞれのジャイロセンサが角速度に応じた電圧値の角速度検出信号を出力する。
【0023】
画像処理装置3は、センサ11からの角速度検出信号、撮影部10からの画像信号及びセンサ21からの角速度検出信号を受信し、撮影部10により撮影されたフレームからぶれのない出力用画像を生成するぶれ補正処理を実行する。
【0024】
図3は、画像処理装置3のブロック図である。画像処理装置3は、ぶれ量算出部30、31と、減算器32と、ぶれ補正量算出部33と、出力画像生成部34とを有する。
【0025】
ぶれ量算出部30、31は、それぞれセンサ11からの角速度検出信号、センサ21からの角速度検出信号を受信する。ここで、ぶれ量の算出について、
図4を用いて簡単に説明すると、ぶれ量算出部30、31はそれぞれの角速度検出信号に基づいて角速度(rad/秒)を算出し、この角速度(rad/秒)をフレームのサンプリング間隔(秒)で積分することで移動角度量θ(rad)を算出する。そして、ぶれ量算出部30、31は、移動角度量θ(rad)に基づいて手ぶれ量を画素数(dot)として算出する。すなわち、
図4に示すように、焦点距離をL、画角をαとし、画角α>>移動角度量θである場合、手ぶれ量K(dot)と移動角度量θとの間には、
手ぶれ量K(dot)=移動角度量θ×補正係数r
の関係が成立する。
【0026】
上記式において、
補正係数r=焦点距離L×(1+tan
2(α/2))
であり、画角αは焦点距離Lとイメージセンサのサイズ(画素数)とによって決まる値の関係式が成り立ち、この関係式に基づいて、ぶれ量算出部30、31はX軸およびY軸についてぶれ量をフレームごとに算出する。
【0027】
減算器32は、ぶれ量算出部30のぶれ量とぶれ量算出部31のぶれ量との差分を算出する。
【0028】
ぶれ補正算出部33は、減算器32のぶれ量の差分と、ぶれ量算出部30、31のぶれ量とを受信し、ぶれの補正量を算出する。
【0029】
出力画像生成部34は、ぶれ補正算出部33からのぶれの補正量を受信し、撮影されたフレームの一部をトリミングした画像を生成して、この画像を出力する。
【0030】
以下に、ぶれ補正算出部33のぶれの補正量の算出、及び出力画像生成部34の出力画像の生成について述べる。
【0031】
まず、前提となるぶれの補正について述べる。
【0032】
図5(a)は、ぶれが発生していないビデオカメラ1の撮影時を示したものであり、撮影部10により撮影された画像フレーム40は、画像処理装置3から出力される画像よりも多くの画素からなる画像となっており、出力画像生成部34は、撮影されたフレームの一部をトリミングした画像を生成して、この画像を出力する。
【0033】
ここで、
図5(b)に示すように、ビデオカメラ1の撮影時に手ぶれが発生すると、被写体に対する撮影対象範囲の相対位置が移動する。従って、撮影された画像中で被写体が不自然に動くことになり、画像が見難く煩雑なものとなる。そこで、トリミングする対象領域41を移動させることによって、手ぶれの影響を軽減することができる。すなわち、出力画像生成部34は、撮影部10により撮影された画像フレーム40から、対象領域41をトリミングして出力画像とする。
【0034】
画像フレーム40における対象領域41の位置は、初期状態では画像フレーム40の中央位置にあるが、この初期状態から任意に変更できる。このため、撮影時に手ぶれが発生して画像フレーム40に写る被写体が移動した場合には、
図4(b)、(c)に示すように、これを補償するように、ぶれ方向と反対の方向に対象領域41を移動させ、移動後の対象領域41をトリミングすると、
図4(d)に示すように、被写体の位置がぶれ発生の前と変わらない補正画像が得られる。この場合の対象領域41の移動量(補正量)は、上述したように求められる手ぶれ量K(画素数)と同じ値としてもよいし、画像フレーム40と対象領域41との面積または画素数の比に従って、手ぶれ量Kの値から求めた値としてもよい。
【0035】
このように、ぶれ補正処理によれば、ぶれによる画像フレーム40の移動(フレーム40中における被写体の見かけ上の移動)が、対象領域41の移動によって相殺され、ぶれの影響を解消できる。
【0036】
ところで、通常の撮影方法では、上述のぶれ補正は有効ではあるが、パン撮影やチルト撮影の場合は、意図的なビデオカメラの振れ動作であるにもかかわらず、これらの動作をぶれと認識して正常なぶれ補正ができない場合があった。ここで、パン動作とは、
図2に示したY軸に平行な軸を中心としてビデオカメラ1を回動させる動作であり、パン撮影とは、撮影部10による撮影中にパン動作がなされること、およびこの撮影方法を指す。また、チルト動作とは、
図2に示したX軸に平行な軸を中心としてビデオカメラ1を回動させる動作であって、チルト撮影とは、撮影部10による撮影中にチルト動作が行われること、およびこの撮影方法を指す。
【0037】
そこで、ぶれ補正算出部33は、減算器32のぶれ量の差分と、ぶれ量算出部30、31のぶれ量とから、パン動作やチルト動作を判定し、正常なぶれ補正量を算出する。
図6は、ぶれ補正算出部33のぶれ補正量の算出を説明する為の図であり、
図6では、ビデオカメラ1のパン動作を例にしている。
【0038】
まず、ビデオカメラ1のパン動作の場合、
図5(a)、(b)に示す如く、センサ11の検出量とセンサ21の検出量とが異なる。これは、センサ11はビデオカメラ1に搭載されており、センサ11はビデオカメラ1の意図的ではないぶれのみならず、パン動作やチルト動作の全ての移動量を検出するからである。すなわち、センサ11の検出量は、ビデオカメラ1のパン動作による移動量と、意図的ではないぶれによる移動量との双方の移動量となる。一方、センサ21は積載部2に搭載されており、ビデオカメラ1のパン動作の影響を受けない。よって、センサ21の検出量は、振動等によるビデオカメラ1のぶれ量を検出することになる。
【0039】
従って、減算器32のぶれ量の差分の絶対値が所定値以上ある場合、ビデオカメラ1についてパン動作が行われていると判定することができ、その差分はビデオカメラ1のパン動作による移動量を示しているともいえる。
【0040】
例えば、所定値を理想的な場合を想定し、0とし、ぶれ量算出部30が算出したぶれ量(センサ11の検出量)が100(dot)であり、ぶれ量算出部31が算出したぶれ量(センサ21の検出量)が25(dot)であった場合、減算器32のぶれ量の差分は、差分=100−25=75(dot)であり、所定値以上の値となり、ぶれ補正算出部33はパン動作が行われていると判定することができる。尚、前述の例において、所定値を理想的な場合を想定して0に設定したが、実際には、ぶれのある環境下で、パン動作やチルト動作を予め試行し、適切な値を求めておく。
【0041】
ぶれ補正算出部33は、減算器32のぶれ量の差分の絶対値が所定値以上ある場合、ビデオカメラ1についてパン動作やチルト動作が行われていると判定し、このパン動作やチルト動作による移動量を考慮したぶれの補正量(対象領域の移動量)を算出する。このぶれの補正量(対象領域の移動量)は、センサ11のぶれ量から減算器32のぶれ量の差分を減算した減算値としても良いし、その減算値とセンサ21のぶれ量との平均値として良い。そして、算出されたぶれの補正量(対象領域41の移動量)を出力画像生成部34に出力する。
【0042】
出力画像生成部34は、
図5(b)、(c)に示すように、これを補償するように、受信したぶれの補正量(対象領域41の移動量)だけ、ぶれ方向と反対の方向に対象領域41を移動させ、移動後の対象領域41をトリミングする。すると、
図5(d)に示すように、パン動作が正しく反映され、かつ、ぶれない補正画像が得られる。尚、この場合の対象領域41の移動量(補正量)は、従来の技術と同様に、算出されたぶれ量(画素数)と同じ値としてもよいし、画像フレーム40と対象領域41との面積または画素数の比に従って、ぶれ量の値から求めた値としてもよい。
【0043】
尚、上記の補正量であるが、対象領域41が画像フレーム40の領域よりもはみ出すような場合は、対象領域41が画像フレーム40の領域内に収まるようにクリッピング処理を行うようにしても良い。また、減算器32の出力(ぶれ量の差分)が異常な値を示した場合(例えば、予め定めた閾値よりも大きな値)、対象領域41が画像フレーム40の領域内に収まるようにクリッピング処理を行うようにしても良い。
【0044】
このように、本実施の形態によれば、パン動作やチルト動作等の意図的なカメラ操作によるぶれを検出し、意図的なカメラ操作を反映しつつ、カメラのぶれのない画像を生成することができる。
【0045】
尚、上記実施の形態では、カメラ1の動きを検出するため、ジャイロセンサを備えたセンサ部11、21により角速度を検出する構成としたが、本発明はこれに限定されるものではなく、カメラ1の単位時間あたりの移動量を検出可能なものであれば、例えば加速度センサを用いることも可能である。
【0046】
また、上記実施の形態では、カメラ1の動きの検出及びぶれの補正として、ピッチング、ヨーイングを中心に説明したが、これに限られない。例えば、
図7(a)に示す如く、加速度センサを用いて光軸回りの回転量θを検出するようにすれば、光軸の回転により生じるローリングぶれを検出することができる。そして、
図7(b)に示す如く、検出した回転量θに基づいて、対象領域41を回転することにより、ローリングぶれの補正を行うことができる。
【0047】
また、上記実施の形態では、ビデオカメラ1と画像処理装置3とを別々の構成としたが、
図8に示すように、ビデオカメラ1内に画像処理装置3を含んでも良い。
【0048】
また、画像フレーム40と対象領域41との関係は、画像フレーム40の解像度が対象領域41の解像度よりも大きければ良く、例えば、画像フレーム40の画像を4K画像とし、対象領域41を2K画像とし、4K画像から2K画像を切り出すような画像処理にも適用することができる。
【0049】
また、本発明は、上記実施の形態で説明したビデオカメラ1以外の動画撮影機能を有する撮影機器にも適用することが可能であり、具体例を挙げると、動画撮影機能付きデジタルスチルカメラ、および、このようなデジタルスチルカメラを具備したスマートフォン、ノート型パソコン等の各種電子機器においても適用可能である。
【0050】
また、上述した実施の形態では、各部をハードウェアで構成したが、上述した動作の処理を情報処理装置(CPU)に行わせるプログラムによっても構成できる。
【0051】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0052】
(付記1)
所定の解像度を持つカメラで撮影された画像フレーム中の所定位置に配置された対象領域の画像を切り出して、出力画像を生成する画像生成手段と、
前記カメラに設けられ、前記画像フレームにおける前記カメラの動きを検出する第1の動き検出手段と、
前記カメラが積載される積載部に設けられ、前記画像フレームにおける前記積載部の動きを検出する第2の動き検出手段と、
前記第1の動き検出手段が検出した動きと前記第2の動き検出手段が検出した動きとに基づいて、前記画像フレームにおける前記対象領域を配置する位置を決定する対象領域配置位置制御手段と
を有する画像処理システム。
【0053】
(付記2)
前記対象領域配置位置制御手段は、
前記第1の動き検出手段が検出した動きと前記第2の動き検出手段が検出した動きとの第1の差分を計算し、前記第1の差分に基づいて、前記画像フレームにおけるパン撮影またはチルト撮影を判定する
付記1に記載の画像処理システム。
【0054】
(付記3)
前記対象領域配置位置制御手段は、
前記第1の動き検出手段が検出した動きと前記第2の動き検出手段が検出した動きとの第1の差分を計算し、
前記第1の差分と、前記第1の動き検出手段が検出した動きとの第2の差分を計算し、
前記第2の差分に基づいて、前記対象領域を配置する位置を決定する
付記1又は付記2に記載の画像処理システム。
【0055】
(付記4)
前記第1の差分が、前記画像フレームにおけるパン撮影またはチルト撮影の移動量であり、
前記第2の差分が、前記画像フレームにおけるカメラの振れである
付記3に記載の画像処理システム。
【0056】
(付記5)
前記積載部は、車、又は、カメラ固定台のいずれかである
付記1から付記4のいずれかに記載の画像処理システム。
【0057】
(付記6)
所定の解像度を持つカメラで撮影された画像フレーム中の所定位置に配置された対象領域の画像を切り出して、出力画像を生成する画像生成手段と、
前記カメラに設けられ、前記画像フレームにおける前記カメラの動きを検出する第1の動き検出手段が検出した動きと、前記カメラが積載される積載部に設けられ、前記画像フレームにおける前記積載部の動きを検出する第2の動き検出手段が検出した動きとに基づいて、前記画像フレームにおける前記対象領域を配置する位置を決定する対象領域配置位置制御手段と
を有する画像処理装置。
【0058】
(付記7)
前記対象領域配置位置制御手段は、
前記第1の動き検出手段が検出した動きと前記第2の動き検出手段が検出した動きとの第1の差分を計算し、前記第1の差分に基づいて、前記画像フレームにおけるパン撮影またはチルト撮影を判定する
付記6に記載の画像処理装置。
【0059】
(付記8)
前記対象領域配置位置制御手段は、
前記第1の動き検出手段が検出した動きと前記第2の動き検出手段が検出した動きとの第1の差分を計算し、
前記第1の差分と、前記第1の動き検出手段が検出した動きとの第2の差分を計算し、
前記第2の差分に基づいて、前記対象領域を配置する位置を決定する
付記6又は付記7に記載の画像処理装置。
【0060】
(付記9)
前記第1の差分が、前記画像フレームにおけるパン撮影またはチルト撮影の移動量であり、
前記第2の差分が、前記画像フレームにおけるカメラの振れである
付記8に記載の画像処理装置。
【0061】
(付記10)
所定の解像度を持つカメラに設けられた第1の動き検出手段により、画像フレームにおける前記カメラの動きを検出し、
前記カメラが積載される積載部に設けられた第2の動き検出手段により、画像フレームにおける前記積載部の動きを検出し、
前記第1の動き検出手段が検出した動きと、前記第2の動き検出手段が検出した動きとに基づいて、前記画像フレームにおける対象領域を配置する位置を決定し、
画像フレーム中の配置された対象領域の画像を切り出して、出力画像を生成する
画像処理方法。
【0062】
(付記11)
前記第1の動き検出手段が検出した動きと前記第2の動き検出手段が検出した動きとの第1の差分を計算し、前記第1の差分に基づいて、前記画像フレームにおけるパン撮影またはチルト撮影を判定する
付記10に記載の画像処理方法。
【0063】
(付記12)
前記第1の動き検出手段が検出した動きと前記第2の動き検出手段が検出した動きとの第1の差分を計算し、
前記第1の差分と、前記第1の動き検出手段が検出した動きとの第2の差分を計算し、
前記第2の差分に基づいて、前記対象領域を配置する位置を決定する
付記10又は付記11に記載の画像処理方法。
【0064】
(付記13)
前記第1の差分が、前記画像フレームにおけるパン撮影またはチルト撮影の移動量であり、
前記第2の差分が、前記画像フレームにおけるカメラの振れである
付記12に記載の画像処理方法。
【0065】
(付記14)
所定の解像度を持つカメラに設けられた第1の動き検出手段により、画像フレームにおける前記カメラの動き検出する処理と、
前記カメラが積載される積載部に設けられた第2の動き検出手段により、画像フレームにおける前記積載部の動きを検出する処理と、
前記第1の動き検出手段が検出した動きと、前記第2の動き検出手段が検出した動きとに基づいて、前記画像フレームにおける対象領域を配置する位置を決定する処理と、
画像フレーム中の配置された対象領域の画像を切り出して、出力画像を生成する処理と
をコンピュータに実行させるプログラム。
【0066】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することができる。