(57)【要約】  動きベクトル算出部４は、フレーム画像間の動き量を算出する。マスク範囲指定部５は、フレーム画像を構成する領域を、動き量が相対的に大きな領域と、動き量が相対的に小さな領域とに分割して、動き量が相対的に大きな領域を、マスクすべき範囲として指定する。こうして、マスクが施された範囲以外から、補正パラメータの検出がなされる。補正パラメータが傾き角度である場合、傾き補正部７は、撮像素子により得られたフレーム画像に対して傾き補正を施す。
2009001510.tif 000002
【特許請求の範囲】
【請求項１】
補正パラメータを用いてフレーム画像データを補正する画像処理装置であって、
フレーム画像データにおける絵柄の特徴を表したフレーム特徴データを生成する生成手段と、
時間的に前のフレーム画像データからの動きベクトルを、処理対象となるフレーム画像データを構成する各画素ブロックのそれぞれに対して算出する算出手段と、
各画素ブロックについて算出された動きベクトルに基づいて、フレーム特徴データ全体のうち、マスクを施すべき範囲を指定する範囲指定手段と、
フレーム特徴データのうち、マスクが施された範囲以外の部分から、補正パラメータを検出する検出手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記マスクを施すべきフレーム特徴データの範囲とは、
動きベクトルにおける動き量が、所定の閾値を越える画素ブロックに対応する、フレーム特徴データの一部分であり、
所定の閾値とは、
画像データにおける複数のブロックの動き量の平均値である
ことを特徴とする請求項１記載の画像処理装置。  
【請求項３】
前記動きベクトルにおける動き量が、前記所定の閾値を越える画素ブロックとは、フレーム特徴データにおける近景領域であり、
前記範囲指定手段は、
動きベクトルにおける動き量に基づき、フレーム特徴データを、近景領域と遠景領域とに分離する処理を行い、
前記範囲指定手段によりマスクが施されるべき範囲とは、近景領域及び／又は遠景領域である
ことを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記検出手段は更に、
近景領域及び遠景領域のうち、マスクが施された領域以外の領域に対して、フレーム特徴データに存在する角度成分がとりうる角度範囲と、当該角度範囲の度数とを対応付けて示すヒストグラムを作成する処理(1)、
ヒストグラムにおける度数の平均又は分散に基づいて、ヒストグラムに示される角度成分の信頼度を算出する処理(2)を行い、
前記信頼度は、各角度成分に対応する度数がどれだけ突発的であるかを示すパラメータであり、
前記検出手段により検出される補正パラメータとは、
近景領域及び遠景領域について算出されたヒストグラムに示される角度成分のうち、算出された信頼度が最も高いものから選ばれた角度である
ことを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記フレーム画像データに対する補正とは、
回転行列を用いて、複数のフレーム画像データにおける特徴点を、同じ位置に固定することにより、撮影時の揺れを補正する処理であり、
前記検出手段により検出される補正パラメータとは、
フレーム特徴データのうち、マスクが施された領域以外に存在する2つの特徴点における揺れ量を示す回転行列である
ことを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記検出手段は、補正パラメータを検出するにあたって、
フレーム特徴データにおいてマスクが施されていない範囲から、特徴点の候補となる点のペアをランダムにえらんで、その候補点のペア毎に、回転行列を算出とすると共に、その回転行列を作用させた場合のフレーム画像データ間の一致度合を計算する処理を行い、
前記補正パラメータとして選ばれる2つの特徴点は、
フレーム特徴データにおいてマスクが施されていない範囲から選ばれる候補点のペアのうち、回転行列における一致度合が最も高いものである
ことを特徴とする請求項５記載の画像処理装置。
【請求項７】
前記処理対象となるフレーム画像データは、傾きセンサを有した撮像装置によって撮影され、
前記フレーム画像データに対する補正とは、処理対象となるフレーム画像データに対して回転変換を施すことで、撮影時における撮影装置の傾きを補正する処理であり、
前記検出手段は更に、
マスク領域以外の領域に対して、フレーム特徴データに存在する角度成分がとりうる角度範囲と、当該角度範囲の度数とを対応付けて示すヒストグラムを作成する処理(1)、
ヒストグラムに度数が現れた角度範囲のうち、傾きセンサの出力となる角度範囲内に属するものを、選択する処理(2)を行い、
前記補正パラメータとは、選択された角度範囲に属する角度である
ことを特徴とする請求項１記載の画像処理装置。
【請求項８】
処理対象となるフレーム画像データは、被写体までの距離を計測可能なセンサを具備した撮影装置によって撮影され、
前記画像処理装置による前記フレーム画像データに対する補正とは、処理対象に対して回転変換を施すことで、撮影装置の傾きを修正する処理であり、
前記画像処理装置は、センサからの出力値に応じて、処理対象を構成する複数の画素ブロックのそれぞれが、近景に対応するものか、遠景に対応するものかの判定を行う判定手段を備え、
フレーム特徴データのうち、マスクが施される一部とは、
近景に対応すると判定された画素ブロックに対応する、フレーム特徴データの一部である
ことを特徴とする請求項１記載の画像処理装置。
【請求項９】
フレーム特徴データのうち、マスクが施される一部とは、
動きベクトルにおける動き量が、所定の閾値を越える画素ブロック、及び、
所定の方向成分とは異なる方向成分の動きベクトルをもつ画素ブロックに対応した部分であり、
所定の方向成分とは、
処理対象となるフレーム画像データを構成する複数の画素ブロックのうち、時間的に前に撮影されたフレーム画像データを構成する画素ブロックとの対応がとれるものがもつ方向成分である
ことを特徴とする請求項１記載の画像処理装置。
【請求項１０】
前記範囲指定手段は、
動きベクトルにおける動き量が、所定の閾値を越える画素ブロックを近景領域として分離する処理を行い、
前記画像処理装置は、
処理対象となるフレーム画像データを構成する複数の画素ブロックのうち、近景領域に存在するもの以外から2つの特徴量を選択して、選択された2つの特徴点が、その直前のフレーム画像データからどれだけ変化したかを示す揺れ量を推定する推定手段を備え、
所定の方向成分をもつ画素ブロックとは、
近景領域に存在する画素ブロック以外の画素ブロックについて推定された揺れ量に基づき、時間的に前に撮影されたフレーム画像データを構成する画素ブロックとの対応がとれるものを選択することで選ばれる画素ブロックである
ことを特徴とする請求項９記載の画像処理装置。
【請求項１１】
前記フレーム画像データに対する補正とは、
処理対象に対して回転変換を施すことで、撮影時の傾きを補正する処理、及び、
連続して撮影された複数のフレーム画像データにおける背景領域を、同じ位置に固定することにより、撮影時の揺れを補正する処理
の双方である、ことを特徴とする請求項９記載の画像処理装置。
【請求項１２】
前記範囲指定手段は、
動きベクトルにおける動き量に基づき、フレーム特徴データを、近景領域と遠景領域とに分離する処理を行い、
前記マスクを施すべきフレーム特徴データの範囲とは、
フレーム特徴データにおける近景領域であり、
前記フレーム画像データに対する補正とは、
回転行列を用いて、フレーム画像間に共通に存在する特徴点を、同じ位置に固定することにより、撮影時の揺れを補正する処理であり、
前記検出手段により検出される補正パラメータとは、
フレーム特徴データのうち、マスクが施された近景領域以外の遠景領域に存在する2つの特徴点における揺れ量を示す回転行列である
ことを特徴とする請求項１記載の画像処理装置。
【請求項１３】
前記画像処理装置は更に、補正パラメータを用いた補正が施されたフレーム画像データを符号化する符号化部を備える、請求項１に記載の画像処理装置。
【請求項１４】
前記画像処理装置には、複数のフレームメモリが接続されており、
処理対象となるフレーム画像データと、時間的に前のフレーム画像データとは、複数のフレームメモリに格納されている
ことを特徴とする請求項１に記載の画像処理装置。
【請求項１５】
補正パラメータを用いてフレーム画像データを補正する画像処理方法であって、
フレーム画像データにおける絵柄の特徴を表したフレーム特徴データを生成する生成ステップと、
時間的に前のフレーム画像データからの動きベクトルを、処理対象となるフレーム画像データを構成する各画素ブロックのそれぞれに対して算出する算出ステップと、
各画素ブロックについて算出された動きベクトルに基づいて、フレーム特徴データ全体のうち、マスクを施すべき範囲を指定する範囲指定ステップと、
フレーム特徴データのうち、マスクが施された範囲以外の部分から、補正パラメータを検出する検出ステップと
を有することを特徴とする画像処理方法。
【請求項１６】
補正パラメータを用いてフレーム画像データを補正する処理をコンピュータに実行させるプログラムであって、
フレーム画像データにおける絵柄の特徴を表したフレーム特徴データを生成する生成ステップと、
時間的に前のフレーム画像データからの動きベクトルを、処理対象となるフレーム画像データを構成する各画素ブロックのそれぞれに対して算出する算出ステップと、
各画素ブロックについて算出された動きベクトルに基づいて、フレーム特徴データ全体のうち、マスクを施すべき範囲を指定する範囲指定ステップと、
フレーム特徴データのうち、マスクが施された範囲以外の部分から、補正パラメータを検出する検出ステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像補正処理の技術分野に属する発明である。
【背景技術】
【０００２】
画像補正処理とは、処理対象となるフレーム画像データから補正パラメータを検出して、補正パラメータを用いて画像データに補正を施す技術であり、画像の傾き補正技術、揺れ補正技術というものが知られている。【０００３】
画像の傾き補正技術とは、基準となる角度からの傾き角を推定し、その傾き角を基に画像を補正する技術である。揺れ補正技術とは、連続して撮影された複数のフレーム画像データにおける背景領域を、同じ位置に固定することにより、撮影時の揺れを補正する技術である。【０００４】
従来の傾き補正技術は、スキャナやコピー機等、光学読取機器の産業分野で広く利用されていたが、撮影機器の産業分野への応用も、近年、検討されつつある。一方、傾き補正技術の成果物たる工業製品には、画像処理装置、この画像処理装置を組込んだビデオカメラ、撮影処理のためのプログラムがある。【０００５】
ビデオカメラへの応用が、どのような技術的意義を有するかについて説明する。ビデオカメラで歩行しながら撮影をしている場合、撮影者自身の動きと共に撮影しているビデオカメラも揺れ動いてしまう。そのため、歩行時に撮影された映像は、常に水平状態を保ったまま撮影されているとは限らない。また、ビデオカメラに備えつきのファインダーを見ずに撮影する場合、撮影者は、実際に撮影されている映像を見ている訳ではないため、先と同様に、撮影者が期待している水平状態を保った映像が常に取れている訳ではない。【０００６】
水平状態から傾いた状態のまま撮影された映像は、視聴に耐えない。この傾いた映像を水平に補正するにあたって、上述したような傾き補正技術が必要になる。かかる傾き補正技術にあたっては、その基準となる角度をどのように定めるかが大きな問題になる。以下の特許文献１には、スキャナから取り込まれた文章画像において、文章画像の傾きを、基準として用いることで、傾き補正を実現する技術が開示されている。
【特許文献１】特開２００５−１８４６８５号広報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上述したような画像処理で、高い精度の補正を実現できるかどうかは、補正のための補正パラメータを、精度良く検出できるかどうかが鍵になる。つまり、補正のための補正パラメータを精度良く検出できれば、自ずと、補正後の画像の品位が向上するといっても過言ではない。例えば、傾き補正にあたっては、フレーム画像データから回転角度を検出するため、ハフ変換と呼ばれる検出アルゴリズムを実行する必要がある。ところが、ハフ変換は、画素毎の演算が必要になるため演算負荷が大きく、処理対象となる画像が、１９２０×１０８０という解像度を有している場合、演算量が大きくなり、携帯機器での実装に適さない。【０００８】
そこで精度を向上させるには、フレーム画像において、どこに何が写っているかという情報を事前に取得しておけばよいように考えられる。何故なら、一般的に、スキャナなどから取り込まれる文章画像では、レイアウトが予め決まっており、光学機器の応用分野では、そのようなレイアウトの情報を手がかりとして角度を推定しているからである。【０００９】
しかし、ビデオカメラなどで撮影される映像の撮影条件、撮像環境は撮影者・撮影タイミングによって異なるため、前述のレイアウト情報のような有効な事前情報が得られることは期待できない。【００１０】
本発明の目的は、撮影される内容に関する事前情報を必要とすることなく、補正パラメータを高い精度で検出することができる画像処理装置を提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するための画像処理装置は、補正パラメータを用いてフレーム画像データを補正する画像処理装置であって、フレーム画像データにおける絵柄の特徴を表したフレーム特徴データを生成する生成手段と、時間的に前のフレーム画像データからの動きベクトルを、処理対象となるフレーム画像データを構成する各画素ブロックのそれぞれに対して算出する算出手段と、各画素ブロックについて算出された動きベクトルに基づいて、フレーム特徴データ全体のうち、マスクを施すべき範囲を指定する範囲指定手段と、フレーム特徴データのうち、マスクが施された範囲以外の部分から、補正パラメータを検出する検出手段とを備える。
【発明の効果】
【００１２】
上述したように、課題解決手段を具備した画像処理装置においてマスクが施される範囲は、各画素ブロックについて算出された動きベクトルに基づいて指定される。ここで、画像データ上の領域のうち、近景に含まれる物体や人物像等には、前のフレームからの動きベクトルの大きさや動きベクトルの方向が変わったものになることが多く、こうした物体や人物像が存在する部分が、マスクを施すべき箇所として指定されることになる。【００１３】
このように、近景に含まれる物体や人物像等の近景領域にマスクが施されるので、マスクが施された領域以外の領域、つまり、撮像により得られた画像データ上の領域のうち、実世界における遠景領域に、補正パラメータ検出のための演算処理が実行されることになる。【００１４】
ここで遠景領域には高いビル等、本来的に水平・垂直となるエッジ成分値を有する物体が含まれていることが多い。具体的な事例を挙げるのなら、高いビルのような構造物は遠景領域に含まれることが多いと考えられる。【００１５】
このマスクにより残った領域、つまり、建造物等の静止体が写っている可能性が高い遠景領域内の特徴量に、補正パラメータ検出のための演算範囲を絞りこむことにより、構造物等の実世界における水平・垂直成分を有する物体のエッジ等が、補正パラメータとして高い確率で検出されることになる。かかる補正パラメータを用いて画像処理を行えば、傾き補正、揺れ補正といった補正処理によって、高品位な画像が得られることになる。【００１６】
フレーム特徴データのうち、マスクが施された部分以外から補正パラメータを検出するので、ハフ変換などの補正パラメータ検出のための検出アルゴリズムの実行範囲が、絞りこまれることになる。こうした絞り込みにより、検出アルゴリズム実行のための処理負荷が小さくなり、消費電力を大きく低減させることができる。これにより、携帯機器への画像処理装置の実装を好適に行うことができる。マスクが施される場所は、概して近景領域なので、連続するフレームに対する動きベクトル算出によって指定することができる。かかる動きベクトル算出によって、マスクが施される範囲を決めることができるので、事前情報を必要とすることなく、補正パラメータを高精度に検出することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明にかかる画像処理装置が組込まれたビデオカメラ１００の使用行為の形態を示す図である。
【図２】本発明にかかる画像処理装置が組込まれたビデオカメラ１００のハードウェア構成を示す図である。
【図３】本発明にかかる画像処理エンジン５０のソフトウェア構成を示す機能構成図である。
【図４】（ａ）DMAコントローラ２０により、フレームメモリ３０及び、フレームメモリ４０に書き込まれたフレーム画像t-1,フレーム画像tを示す図である。  （ｂ）フレーム画像を構成する複数のブロックを示す図である。  （ｃ）フレーム画像における一画素の画素値となるＹ,Cr,Cbを表す、３２ビットデータを示す図である。
【図５】（ａ）図４に示したフレーム画像tに対して得られたフレーム特徴データを示す図である。  （ｂ）角度推定にあたって、生成されるヒストグラムの一例を示す図である。
【図６】（ａ）連続するフレーム画像に対する動きベクトルの検出結果を示す図である。  （ｂ）近景領域を示す情報の一例を示す図である。  （ｃ）１６画素×１６画素からなるブロックの形状にて近似された、近景領域形状を示す図である。
【図７】（ａ）傾きを表す有効なエッジ情報の所在を示す図である。（ｂ）（ｃ）マスクパターンの一例を示す図である。
【００１８】
【図８】（ａ）マスク処理のための論理演算を模式的に示す図である。（ｂ）マスクを施した場合に得られる出現頻度を実線で示し、施さなかった場合に得られる出現頻度を破線で示したヒストグラムである。（ｃ）近景領域と遠景領域との境界における擬似輪郭に対して生成されたエッジ情報を示す図である。
【図９】（ａ）近景領域のマスクがなされたフレーム画像に対して、角度推定を行った場合に得られるヒストグラムを示す図である。  （ｂ）20°という推定角度に基づき傾き補正部７が回転補正を行うことで得られる補正画像を示す図である。
【図１０】フレーム画像に対する領域分割の処理手順を示すフローチャートである。
【図１１】特徴量抽出から角度推定までの処理手順を示すフローチャートである。
【図１２】第２実施形態に係る画像処理装置のハードウェア構成を示す図である。
【図１３】（ａ）近景領域分離により得られるヒストグラムを示す図である。  （ｂ）センサ値に基づき狭められた推定範囲を示す図である。
【図１４】（ａ）第３実施形態における傾き推定処理において、題材となるフレーム画像データであり、バスの車内で撮影された画像データを示す。
【００１９】
（ｂ）図１４（ａ）のフレーム画像データに対して特徴量抽出を行うことにより得られるフレーム特徴データを示す図である。【００２０】
（ｃ）近景領域に対してマスクが施されたフレーム特徴データを示す。【００２１】
（ｄ）遠景領域に対してマスクが施されたフレーム特徴データを示す。
【図１５】マスクが施された画像データと、これらのフレーム画像データに対して作成されたヒストグラムとを示す図である。
【図１６】第３実施形態に係る画像処理装置の内部構成を示す図である。
【図１７】第３実施形態に係る信頼度付き傾き補正処理の処理手順を示すフローチャートである。
【図１８】（ａ）揺れ補正の対象となる、連続フレームの一例を示す図である。
【００２２】
（ｂ）フレームt-1の画像データの(X4,Y4)(X5,Y5)を、フレームt-1の画像データの(X1,Y1)(X2,Y2)に一致するように変換するための回転行列Rの一例を示す図である。【００２３】
（ｃ）揺れ補正が施されたフレーム画像t-1の一例である。
【図１９】（ａ）フレーム画像t-1、フレーム画像tに対して生成されたフレーム特徴データである。
【００２４】
（ｂ）図１９（ａ）のフレーム画像t-1、フレーム画像tのうち、近景領域をマスクすることで得られるフレーム特徴データを示す図である。【００２５】
（ｃ）フレーム画像t-1のフレーム特徴データ、フレーム画像tのフレーム特徴データから検出された特徴点を示す図である。
【図２０】（ａ）（ｂ）揺れ補正が施されていない2つのフレーム画像データと、揺れ補正が施された2つのフレーム画像データとを対比して示す図である。
【図２１】第４実施形態に係る画像処理装置の内部構成を示す図である。
【図２２】揺れ補正処理のフローチャートである。
【図２３】単位球面(半径=1)上の座標へ投影されるフレーム画像t-1における特徴量と、フレーム画像tにおける特徴量とを示す図である。
【図２４】（ａ）連続フレームを構成するフレームt-1の画像データ、フレームtの画像データを示す図である。
【００２６】
（ｂ）フレームtの画像データを構成する各マクロブロックから検出された動きベクトルを示す図である。【００２７】
（ｃ）構造物の存在する領域内に構造物以外の領域がノイズとして存在する事例を示す図である。
【図２５】（ａ）図２４におけるフレーム特徴データを、揺れ特徴(t-1,t)の結果と同じ動きベクトルが占める領域と、揺れ特徴(t-1,t)の結果と異なる方向の動きベクトルが占める領域とに分離した図である。
【００２８】
（ｂ）各マクロブロックについての算出された動きベクトルのうち、揺れ量推定結果に該当する方向をもつもののみを示す図である。【００２９】
（ｃ）補正パラメータである傾き角度の検出に用いられるフレーム特徴データを示す図である。
【図２６】第５実施形態に係る画像処理装置の内部構成を示す図である。
【図２７】揺れ量推定処理のフローチャートである。
【図２８】第５実施形態に係る画像処理装置全体のフローチャートである。
【図２９】第６実施形態に係る画像処理装置の内部構成を示す図である。
【符号の説明】
【００３０】
１０  撮像デバイス
２０  DMAコントローラ
３０  フレームメモリ
４０  フレームメモリ
５０  画像処理エンジン
６０  カードドライブ
７０  角速度センサ
１００  ビデオカメラ１００
１  特徴量抽出部
２  線分検出部
３  角度推定部
４  動きベクトル算出部
５  マスク範囲指定部
６  マスク部
７  傾き推定部
８  符号化部
５１  遠近両用マスク部
５２  信頼度付角度推定部
５３  傾き角度選択部
５４  揺れ特徴抽出部
５５  揺れ量推定部
５６  揺れ補正部
５７  マスクパターン拡大部
５８  揺れ補正・傾き補正部
５９  測距センサ
【発明を実施するための最良の形態】
【００３１】
以下本発明に係る画像処理装置について図面を参照しながら説明する。【００３２】
（実施の形態１）
本実施形態は、処理対象となるフレーム画像データから、補正パラメータとして傾きを検出して、この補正パラメータを用いて処理対象となるフレーム画像データに対して画像処理を施すための1つの形態である。かかる画像処理には、回転変換がある。【００３３】
図１は、本発明にかかる画像処理装置が適用される撮像装置の使用形態を示す図である。本図に示すようにユーザは、吊ひもを利用することで、本発明にかかる画像処理装置を組み込んだビデオカメラ１００を身に付けることができ、ハンズフリーカメラワークによる撮影を行うことができる。このビデオカメラ１００の筐体には、記録媒体となる半導体メモリカードを装抜するためのカードスロット１０１や、撮影開始操作を受け付ける録画キー１０２、撮影停止操作を受け付ける停止キー１０３が存在している。これら、録画キー１０２の押下にて、ユーザは、ハンズフリーカメラワークによる撮影処理をビデオカメラ１００に開始させる。そして、撮影により得られたフレーム画像は傾き補正される。傾き補正された画像データは静止画として、あるいは連続して出力されるデータを動画像として符号化した上、例えば半導体メモリカード等の記録媒体に書き込む。【００３４】
図２は、本発明にかかる画像処理装置が組込まれたビデオカメラ１００のハードウェア構成図である。【００３５】
ビデオカメラ１００は、撮像デバイス１０、DMAコントローラ２０、フレームメモリ３０、フレームメモリ４０、画像処理エンジン５０、カードドライブ６０から構成される。【００３６】
（撮像デバイス１０）
撮像デバイス１０は、例えば、CCD(Charge Coupled Device)イメージセンサ，CMOS（Complementary Metal Oxide
Semiconductor）イメージセンサなどの撮像素子を具備している。撮像素子が受光した光量（アナログ値）はＡＤ変換され、所定のタイミング毎に１画面分のデータとして、後述するフレームメモリ３０、フレームメモリ４０に書き込まれる。【００３７】
（DMAコントローラ２０）
DMAコントローラ２０は、撮像デバイス１０で得られた画像データを、MPUを介することなくフレームメモリ４０、フレームメモリ３０に書き込む。【００３８】
例えば、連続する２枚のフレームの画像t-1とフレーム画像tの２枚の画像を交互に、予め用意された複数のメモリ領域、フレームメモリ３０及びフレームメモリ４０に書き込む。
（フレームメモリ３０、４０）
フレームメモリ３０、４０は、連続するフレーム画像を格納しておくために、所定のタイミング毎に用意された記憶領域である。フレームメモリは物理的に分離している必要はなく、メモリ（SD-RAM）内の分割された近景領域であってもよい。これらのフレームメモリ３０、フレームメモリ４０のアドレス空間は、後述するMPUからアクセス可能なように所定の方式でアドレス空間にマッピングされる。【００３９】
（画像処理エンジン５０）
画像処理エンジン５０は、フレームメモリ３０に格納されたフレーム画像に対して、傾き補正のための画像処理を施す。ここで、画像処理エンジン（画像処理装置）は、例えばノイマン型の一般的なコンピュータアーキテクチャに準拠し、バスにMPU、ＲＡＭ、外部スロットアクセス部（メモリカード６０等）が接続される。図中、DSPはフレームメモリに記憶された画像データを処理するためのプロセッサである。【００４０】
（カードドライブ６０）
カードドライブ６０は、画像処理エンジン５０により符号化がなされたフレーム画像を記録するための外部記録メディア（半導体メモリカード等）に書き込むために用意されるスロットである。【００４１】
以上が、ビデオカメラ１００のハードウェア構成である。【００４２】
図３を用いて画像処理エンジン５０の機能ブロックについて説明する。【００４３】
画像処理エンジン５０は、特徴量抽出部１、線分検出部２、角度推定部３、動きベクトル算出部４、マスク範囲指定部５、マスク部６、傾き補正部７、符号化部８から構成される。【００４４】
（特徴抽出部１）
特徴量抽出部１は、時刻ｔのタイミングで撮像された画像データであるフレームメモリ３０に保持された画像データの輝度成分に対してエッジ成分を抽出する。エッジを検出するための手法としては、例えば各々の画素についてSobelフィルタやCannyフィルタによって取得し、取得された値を所定のしきい値と比較する等の方法によりエッジとして検出する。特徴抽出された画像データをフレーム特徴データとしてDPRAMに記録する。【００４５】
DPRAM内に記録されたフレーム特徴データは、フレーム画像内に存在する被写体の特徴的な輪郭線を表す。【００４６】
図５（ａ）は、図４に示したフレーム画像tに対して得られたフレーム特徴データを示す。フレーム特徴データは、輝度情報のエッジ成分のデータから構成される。この輝度情報のエッジ成分は、ノイズ除去などで不適切なエッジ成分が除去された後に得られたデータである。かかるフレーム特徴データのうち、エッジでない画素を黒地で、エッジ部分を白で示した画で示す。図中の白抜きの線分は、エッジ成分であると判定された画素の集合であり、フレーム画像に存在していた人物及び構造物の輪郭が含まれる。【００４７】
（動きベクトル算出部４）
動きベクトル算出部４は、時刻ｔの画像データを記録するフレームメモリ３０の画像データと、時刻t-1の画像データを記録するフレームメモリ４０に格納された画像データとを比較することにより、時刻ｔの画像データについてブロック単位の動きベクトルを算出して、そのスカラ量である動き量を取得する。【００４８】
時刻ｔの画像データの所定ブロック（例えば、縦１６画素×横１６画素からなるブロックの画素値）と、フレーム画像t-1の画像データに含まれる同じサイズの範囲の画素のうち、相関値の高い範囲を検出することにより時刻ｔの所定ブロックが、フレーム画像t-1のどの位置に対応するかを検出することにより実現できる。【００４９】
例として、ブロックマッチング法を詳細に説明する。フレームはブロック単位で区切られており、そのブロックの大きさは予め設定された大きさ、例えば、横１６画素×縦１６画素などで統一されているとする。ブロックマッチング法は、所定の１ブロック内に含まれる画素（例えば、１６×１６の画素）は、ブロック単位では動きが一様であると仮定して、現在の画像内を複数のブロックに区切り、現フレームの所定ブロックが、他（のあるいは現在）の画像内のどの画素値（１６×１６）と相関が高いか検索することにより、所定ブロックがフレーム間でどのように動いたのかの動きの対応付けを行う手法である。動きベクトル検出部４は、フレーム画像を構成するブロック単位に、フレーム画像t-1とフレーム画像ｔとでマッチングを行い、SAD(Sum
of Absolute Difference)などの類似度を計測する手段を用いて、ブロックごとに最も類似度の高いブロックを探索する。探索範囲は、該当ブロックから一定範囲内とし、その範囲内で現在のフレームに含まれるブロックごとに動きベクトルを検出する。【００５０】
尚、DSPがMPEG等の動画符号化用の専用DSPである場合は、フレームメモリ３０、４０に連続して保持された画像データを動画符号化する過程でDSPが取得する動きベクトルを、動き量として用いることができる。【００５１】
動き量検出について、撮像された画像データを用いて具体的に説明する。【００５２】
図４（ａ）は、時刻t-1のタイミングでフレームメモリ３０に書き込まれた画像データ、及び、時刻ｔのタイミングでフレームメモリ４０に書き込まれた画像データを示す図である。ここで、図４では、フレーム画像t-1からフレーム画像tにかけて人物は大きく左に移動しているとする。その人物の動きに追従して、撮影者はビデオカメラ１００を左方向に人物の移動量に比して小さく少し移動させていた場合である。（図４（ａ）によれば、フレーム画像t-1、フレーム画像tに撮影された両画像は、水平から20°傾いた状態で撮影されている（尚、フレーム画像t-1は説明の便宜上直前（１フレーム前のフレーム）とした）。【００５３】
図４（ｂ）は、動き量を検出する上で行われるブロック分割を示す図である。フレーム画像が、横７２０画素×縦４８０画素の解像度をもっているとする。例えば各々が横１６画素×縦１６画素のサイズを有する複数のブロックに分割される。これらのブロックには、フレーム画像の左上座標を原点とした座標系が与えられており、各ブロックは、例えば左上のブロックは、（０，０）、（１５，０）、（０，１５）、（１５，１５）の４点の座標を取り囲む座標となり、ブロック中の端点の座標のいずれか（例として(0,0)
(15,0), (31,0), (0,15), (15,15), (31,15)というような）座標を用いて一意に識別することができる。【００５４】
図６（ａ）は、図４（ａ）に示す連続するフレーム画像が撮影されたケースにおける動きベクトルの検出結果を模式的に示したものである。図中の矢印は、検出された動きベクトルの方向及び大きさを模式的に示している。フレーム画像のうち、人物像が占有している範囲（範囲に含まれるブロック）からは、各々大きい動きベクトル（範囲内のブロックの動き量平均を“１”の動きベクトルとする）が検出される。【００５５】
（マスク範囲指定部５）
マスク範囲指定部５は、マスク部６がマスクを行うにあたって、フレーム特徴データにおけるどの範囲に、マスクを施すべきかという範囲指定を行う。この範囲指定にあたって、マスク範囲指定部５は、各ブロックにおける動きベクトルの大きさの平均値（あるいは動きベクトルの大きさを変形した値）と、各ブロックの動き量の比較を行うことで、画像中の近景領域の分離を行い、遠景領域か否かを示す情報を抽出する。そして、フレーム特徴データのうち、分離された近景領域にあたる範囲を、マスクを行うべき範囲として指定する。【００５６】
まず、マスク範囲指定部５は、画像全体が極端に大きく動いていない場合にのみ遠景領域か否かの判定を行うため、前処理を行う。【００５７】
前処理においては、フレーム画像全体における、動き量（たとえば、全画素ブロックの動き量の平均値）が、所定の上限値より大きいかどうかを判定する。動き量の平均値が上限値より大きいと判定された場合は、ビデオカメラ１００が大きく揺れたため、フレーム画像がブレ画像になっているということが考えられる。この場合、マスク範囲指定部５は、フレームメモリ３０に格納されているフレーム画像tを廃棄させ、特徴量抽出部１による特徴量抽出を中止（アボート）させる。これにより次のフレーム画像が、特徴量抽出部１の処理対象となる。このような前処理により、画像全体が大きく動いているためブレているようなフレーム画像は、近景領域分離の対象から除外されることになる。以上がマスク範囲指定部５による前処理である。【００５８】
次に、近景領域分離は、以下の手順で行われる。【００５９】
時刻ｔのフレーム画像を構成する各ブロックの動き量と、所定の分割指標とを比較する。ブロックの動き量が所定の分割指標よりも大きい場合は近景領域とし、小さい場合は遠景領域（近景領域でない領域）として判定する。【００６０】
ここで、分割指標の値は、絶対量（事前に指定されている値）でもよいし、相対量（全ブロックの動き量の平均値等、画像データの中で相対的に求められる値）であってもよい。【００６１】
相対量の場合は、マスク範囲指定部５は、所定のタイミングの画像データについて、動き量の平均値・中央値等を算出することで前述の分割指標を求め、この指標と各ブロックの動き量とを再度比較することで、近景領域の判定を行う。【００６２】
以上の判定後、ブロック単位の遠景領域であるか否かの判定結果（２値データ）は、ブロック位置座標とともに保持される。【００６３】
図６（ｂ）は、前述の判定により近景領域であると判定されたブロックについての位置座標の保持形式を示す。【００６４】
図６（ｃ）は、このブロックの位置座標を用いて、図４（ｂ）に示したブロック端点座標を連結することにより形成された近景領域を模式的に示した図である。近景領域は、図６（ｃ）に示すように、１６画素×１６画素のブロック形状を用いて近似されることになる。【００６５】
以上のように、マスク範囲指定部５では、フレーム画像tのそれぞれのブロックが近景であるか遠景であるかの判定処理を行う。【００６６】
（マスク部６）
マスク部６は、特徴抽出部１で得られたフレーム特徴データとマスク範囲指定部５で得られた近景領域（ブロック）を示す情報とを入力しマスク処理を行う。ここでのマスクは、マスクパターンを構成する各画素と、フレーム特徴データを構成する各画素との論理演算を行うことでなされる。図７（ａ）は、フレーム特徴データに存在するエッジ情報に、傾きを表すエッジ群と、傾きを表さないエッジ群とが存在していることを示す図である。具体的には、エッジ情報のうち、動き量の大きい領域内（近景領域）に存在する人物画にあたる部分のエッジ情報は傾き（実世界での垂直）を表さず、動き量の小さい領域内（遠景領域）に存在する構造物にあたる部分のエッジ情報は傾き（実世界での垂直）を表す。何故なら、ビル等の構造物は地面に対して垂直に建ててあり、そのエッジの垂直成分は、垂直を表すためである。【００６７】
図７（ｂ）は、マスク部６がマスクに用いるマスクパターンの一例を示す図である。本図におけるマスクパターンは、図６（ｃ）に対応するものであり、近景領域の部分が黒一色になっており、遠景領域が白一色になっている。かかるマスクパターンとの論理演算が、各画素毎になされれば、その結果としては、近景領域に対応する特徴量のみが抽出されることになる。【００６８】
マスクパターンの生成の具体的な手順は、以下の通りである。まず、フレーム画像のうち、近景領域であると判定された領域を００００、遠景領域であると判定された領域をFFFF値としてマスクパターンを作成する。図７（ｃ）は、図５（ａ）のフレーム特徴データから得られたマスクパターンを示す図である。【００６９】
次に、マスクパターンと、フレーム特徴データとの論理演算（AND演算等）を実行する。図８（ａ）は、フレーム特徴データとマスクパターンとから傾き検出に利用されるフレーム特徴データの算出を模式的に示す図である。図８（ａ）のように、図５のフレーム特徴データの示すエッジから、近景領域と判定された領域のエッジ情報が削除された（遠景領域に該当する領域のエッジを含む）フレーム特徴データが生成される。【００７０】
このような処理により、近景領域でない（遠景領域である）と判定された領域における特徴量のみを残すようにする（尚、以下ではマスク範囲指定部５による分離と、マスク部６によるマスクとを併せて、“近景領域分離”と呼ぶ。）。【００７１】
（線分検出部２）
線分検出部２は、マスク部６の出力により“近景領域分離”されたフレーム特徴データを用いて、図８（ａ）のフレーム特徴データから回転角度を示す角度成分を検出する。画像データから角度成分を検出する方法として、一般に知られたハフ変換等を用いることができる。尚、角度成分の検出には、絵柄の輪郭をなす線分を検出し、検出した線分を基に画像の角度成分を検出する必要があり、ためのアルゴリズムは、例えば特開2007-141167等に開示されている等の方法を利用することができる。【００７２】
また、本発明において画像から角度成分を検出するための、より好ましい方法として、発明者はハフ変換の代わりに濃度勾配を用いる手法を用いた。濃度勾配法もハフ変換と同様に、画像上の線分情報を利用し、傾き角度を検出する手法であり、両手法において、共通して用いる画像特徴は、画像中のエッジ情報である。ハフ変換と異なるのは、線分情報が画像上では濃度の勾配として表れる事を積極的に利用し、線分を直接求める代わりに、濃度勾配の総体として線分を扱う事である。線分が存在するという事は、画像上で線自体の画素値とその周辺の画素値に比較的大きな差(濃度の勾配)が存在しており、これを検出する事で、濃度の勾配の総体としての線分情報を利用する事が可能となる。【００７３】
このように濃度勾配法を利用する事で、ハフ変換と比べ、計算コストが低く、かつ濃度勾配の総体として線分情報を利用可能なため、ノイズに強く、安定した傾き角度が検出可能である。また、ハフ変換を利用した場合は処理の並列化が困難であるが、濃度勾配を用いた場合は並列化が容易であるという利点もある。また、ハフ変換を用いる際はノイズを低減させるため、短い線分を除去し、長い線分のみを利用するなどの対策が練られるため、一定の長さ以上の線分が必要となる。しかし、カメラを使用する状況は様々考えられるため、常に一定以上の長さの線分が得られるとは限らない。一方で、濃度勾配法は、濃度勾配の総体として線分情報を扱うために、線分情報に一定の長さを必要としない。そのため、濃度勾配法は様々な環境下においてもハフ変換で得られる結果よりも、安定した結果が得られるという利点がある。【００７４】
（角度推定部３）
角度推定部３は、線分検出部２により検出された線分の長さと角度情報を元に、画像データが、水平軸からの何度傾いたものであるかの傾き角度を推定する。【００７５】
まず、フレーム単位に線分検出部から出力された角度情報を入力して、所定単位の角度毎のヒストグラムを生成する。ここでは、例えば、１°単位で入力された線分の角度情報を、１０°単位の角度情報にまとめ−９０°〜９０°までの範囲でヒストグラム化する。【００７６】
図８（ｂ）の破線で示すヒストグラムは、従来の方法により、マスク処理部によりフレーム特徴データにマスクを施さない場合の画像データ（動き量が大きい近景領域を含むフレーム特徴データ）から算出された角度情報に基づくヒストグラムである。図８（ｂ）のヒストグラムのうち破線で示されるグラフでは、人物像（近景）にあたる部分から検出されたエッジ情報の発生頻度も加味されているので、人物像の傾きを示す角度の頻度が最も高くなっている。【００７７】
一方、本発明による角度情報を図８（ｂ）の実線で示すヒストグラムで示す。マスク処理部によりフレーム特徴データにマスクを施した結果、動き量が小さい遠景領域のエッジ画像の線分から抽出された角度情報のヒストグラムである。【００７８】
図８（ｂ）の実線でしめすヒストグラムでは、人物像のエッジ方向にあたる角度（第１の方向）の頻度は低くなっており、これの代わりに、（遠景にある）静止体像の角度（第２の方向）の頻度が高くなっているので、この静止体像の角度(20°)が、正しい垂直成分として推定できることになる。【００７９】
角度推定部は、ヒストグラムのピークに相当する角度（この場合２０°）を抽出し、傾き角度として傾き補正部に出力する。【００８０】
以上の線分検出部２、角度推定部３は、補正パラメータの1つである、傾き角度の検出を行うものなので、線分検出部２と、角度推定部３との組みは、“補正パラメータ検出部９”に該当する。【００８１】
（傾き補正部７）
傾き補正部７は、角度推定部３が推定した角度で、フレーム画像tの傾き補正を行う。【００８２】
補正の手法としては、Affine変換などを採用する。近景領域のマスクがなされたフレーム画像に対して、角度推定部３が角度推定を行った場合、ヒストグラムは図９（ａ）のようになり、20°という角度が推定されるので、かかる角度に基づき傾き補正部７が回転補正を行えば、図９（ｂ）のような補正画像がえられる。【００８３】
(符号化部８)
符号化部８は、傾き補正部７により傾き補正が施されたフレーム画像を用いて、例えばｉ）傾き補正されたフレーム画像を静止画として、又は、ｉｉ）傾き補正の上連続して出力された画像データを動画像符号化により動画像として符号化し、カードドライブ６０による記録に供する。【００８４】
以上が、本発明にかかる撮像装置及び画像処理装置の機能である。【００８５】
このように、本発明では、実世界における構造物の線分を基準角度として角度補正を行う確率を向上させるために、遠景領域のエッジ成分であるフレーム特徴データを用いて（近景領域の影響を除外したフレーム特徴データから）回転角度を示す角度成分の抽出を行う。【００８６】
これにより、例えば、ｉ）本来的に水平・垂直成分値を多く含む地上に垂直に立てられた構造物が多く含まれていると考えられる遠景領域を抽出し、又は、ｉｉ)比較的近景に含まれる物体（前述人物像）の前述エッジ成分の影響を除外することができ、真の水平・垂直線分を基準として角度補正をする確率を向上させることができる。【００８７】
(マスク部６が、特徴量抽出後にマスクを行う理由)
上述したような処理過程において、マスク部６が、特徴抽出部１による特徴量の抽出後にマスクを行っているのには理由がある。特徴量の抽出前に近景遠景のマスク処理を行うと、近景領域と遠景領域との境界についての擬似輪郭が余分に検出され、この擬似輪郭のエッジ情報も角度を推定するための特徴として算出されてしまう。図８（ｃ）は、近景領域と遠景領域との境界における擬似輪郭に対して生成されたエッジ情報を示す図である。【００８８】
このエッジ情報はノイズとなるため、検出結果に悪影響を及ぼしてしまう。このようなエッジ情報を除去するため、特徴抽出部１で特徴を抽出した後に、近景領域及び遠景領域でマスキング処理を行う。こうすることで、純粋に遠景領域にあるエッジ情報のみを利用することができるため、真の水平・垂直成分を基準として角度補正をする確率を向上させることができる。こうして、傾き角度検出の精度を向上させる目的のため、マスク部６が、特徴抽出部１による特徴量の抽出後にマスクを行っている。【００８９】
尚、画像処理エンジン５０は、動き検出部として動画像符号化用のDSPを用いてもよい。このDSPが検出する動きベクトルを、マスク範囲指定部に供する動き量とすることで、汎用的なプロセッサを用いて、本発明による画像処理装置を実現することができる。【００９０】
尚、本実施の形態では、遠景領域の抽出（近景領域の判定）に、動きベクトル算出部４の出力によりブロック毎の動き量の値の絶対値（あるいは相対値）との比較を用いたが、これに限るものではない。【００９１】
例えば、Shape from Focus(SFF)といった手法のように、高速に焦点距離を変化させた画像を複数枚取得し、焦点位置を検出することで、カメラからの画像データ中の物体の距離を推定し、近景遠景領域の分割を行う事も可能である。【００９２】
また、ビルなどのような幾何学模様のようなものが存在するような領域をテンプレートマッチングなどの手法で照合することにより、類似性が高い領域を「構造物の領域（遠景領域）」として、近景遠景領域の分割をする事も可能である。【００９３】
（実施の形態１の変形例）
実施の形態１で説明したマスク範囲指定部、マスク部、線分検出部、角度推定部、傾き補正部等の各機能は、図１０、図１１のフローチャートに示される処理手順を、MPUに実行させるようなプログラムとして実装することもできる。【００９４】
図１０は、フレーム画像に対する近景領域分離の処理手順を示すフローチャートであり、図１１は、特徴量抽出から角度推定までの処理手順を示すフローチャートである。図１０のフローチャートのうち、ステップＳ２は動きベクトル算出部４の処理、ステップＳ３〜ステップＳ１２はマスク範囲指定部５の処理である。図１１のフローチャートのうち、ステップＳ２３〜ステップＳ２７はマスク部６の処理、ステップＳ２８は線分検出部２の処理、ステップＳ２９〜ステップＳ３１は角度推定部３の処理に該当する。【００９５】
以降、ビデオカメラ１００が行うべき、ソフトウェアの処理について説明する。【００９６】
図１０、図１１のフローチャートを実現するプログラムは、リアルタイムOS上では、複数のタスクとして扱われるので、カーネルは、かかるプログラムをRAMにロードすることで、かかるプログラムについてのタスクを生成する。以降、撮影開始を意味するユーザ操作がなされ、このユーザ操作に従った割込みが発生し、タスクのプリエンプションが発生すれば、図１０のフローチャートに示した処理が開始されることになる。【００９７】
本フローチャートのステップＳ１は、フレーム画像が得られたかを待つという事象成立待ちループを形成している。フレーム画像が得られれば、ステップＳ２〜ステップＳ１２からなる処理に移行する。この処理は、フレーム画像tを構成するブロックのそれぞれについて、動きベクトルを算出して(ステップＳ２)、全ブロックの動き量の平均をとり、指標とする(ステップＳ３)。これら処理を行った後、ステップＳ４の判定を経て、ステップＳ６〜ステップＳ１１のループ処理を実行する。【００９８】
ステップＳ４は、指標を得るため算出した動き量の平均値が、所定の上限値より大きいかどうかの判定である。このような上限値より大きいということは、ビデオカメラ１００が大きく揺れたため、フレーム画像がブレ画像になっているということである。この場合、フレームメモリ３０に格納されているフレーム画像tを廃棄して(ステップＳ５)、次のフレーム画像が撮影されるのを待つ。かかるステップＳ４、ステップＳ５が存在するため、画像全体が大きく動いているようなフレーム画像は、傾き補正技術の対象から除外されることになる。そして適度に、近景領域、遠景領域が存在しているフレーム画像が、傾き補正技術の対象になる。【００９９】
続くループ処理は、フレーム画像を構成するブロックのうち、画面左端に位置するもの(最初のブロック)を、ブロックuに設定して(ステップＳ６)、ステップＳ７からステップＳ１１の処理を繰り返すというものである。【０１００】
ステップＳ７からステップＳ１１の処理は、ブロックuの動き量が指標より小さいかどうかの判定を行い(ステップＳ７)、小さければ、ブロックuは、遠景領域に帰属するものとして分類し(ステップＳ８)、大きければ、ブロックuは、ブロックuが近景領域に帰属するものとして分類する(ステップＳ９)との処理を行ったうえ、ステップＳ１０を経て、次のブロックをブロックuとする(ステップＳ１１)という一連の処理からなる。【０１０１】
ステップＳ１０は、このループ処理の終了条件を規定しており、変数uが、ブロック総数mを越えない限り、本ループ処理が繰り返されることになり、越えれば、本ループ処理を抜けて、近景領域に帰属するブロックの座標を、領域情報として格納した上で(ステップＳ１２)、ステップＳ１に移行する。【０１０２】
続いて、図１１の処理について説明する。図１１のフローチャートでは、フレーム画像tの特徴量を抽出した上で(ステップＳ２１)、近景領域に属するブロックを３２ビットの画素値0000で表し、遠景領域に属するブロックを、３２ビットの画素値FFFFで表したマスクパターンを作成する(ステップＳ２２)。その後、ステップＳ２３〜ステップＳ２７のループ処理に移行する。本フローチャートは、画面左端に位置するブロックを、最初のブロックとして、ブロックvに設定して(ステップＳ２３)、ステップＳ２４〜ステップＳ２７を繰り返すというものである。このステップＳ２４〜ステップＳ２７の処理は、フレーム特徴データにおけるブロックvの画素値と、マスクパターンにおけるブロックvの画素値とのマスク処理のための論理演算を実行して(ステップＳ２４)、論理演算の結果を、傾き検出用のブロックvとして格納して(ステップＳ２５)、その後、次のブロックを、ブロックvに代入するという処理を(ステップＳ２７)、変数vが特徴量の総数nを越えるまで繰り返すというものである(ステップＳ２６)。【０１０３】
画面左上端に存在するブロックから画面右下端に存在するブロックまでに対して処理を行い、かかるループ処理を終えれば、論理演算により得られたブロックからなる、フレーム特徴データが得られることになる。その後、フレーム特徴データから線分を検出して(ステップＳ２８)、各線分の傾きを算出し(ステップＳ２９)、算出された傾きのヒストグラムを得てから(ステップＳ３０)、ヒストグラムにおいて最も頻度が高い角度を、撮像デバイス１０における撮像面の傾きを示す角度であるとして推定結果を下し(ステップＳ３１)、その後、ステップＳ２１に移行する。【０１０４】
以上のように本実施形態によれば、フレーム間の動きベクトルの大きさを利用して近景領域の分離を行い、遠景領域から算出された画像の特徴のみを傾き角度検出法に用いることで、人物などが大きく画像内に入り込んでいるような映像であっても、精度良く傾き角度の推定をし、推定された角度をもとに傾き補正することができる。【０１０５】
（第２実施形態）
図１２は、本発明の第２実施形態に係る画像処理装置のハードウェア構成を示す図である。図１１において、図１と同じ構成要素については同じ符号を用い、説明を省略する。      【０１０６】
図１１に示したように、本発明の第２実施形態は、ロール軸方向の角度成分を検出する事ができる慣性センサ７０が追加されている点と、線分検出部２が、このセンサ７０からの出力を利用する点とが第１実施形態と異なる。このロール軸方向の角度成分を検出する事ができる慣性センサとしては、加速度センサ、ジャイロセンサなどがあげられる。【０１０７】
慣性センサ７０は、撮像装置１０でフレーム画像tが撮影された時刻のロール軸方向の角度を取り込む。この際の値は、慣性センサから出力される生の値であっても、何らかの手段を用いて補正された値であっても構わない。【０１０８】
以上が慣性センサ７０について説明である。【０１０９】
続いて、第２実施形態に係わる線分検出部２の改良点について説明する。【０１１０】
線分検出部２は、傾き角度検出法で検出された線分の長さと角度情報からヒストグラムを作成する際に、慣性センサ７０からの出力となる角度範囲を基に、作成するヒストグラムの角度範囲を制限し、制限された区間内のヒストグラムから角度の推定を行う。【０１１１】
撮影しているビデオカメラ１００などの筺体自身が動いてしまっている場合、センサ値は、慣性の影響を受け、実際の角度とは異なる角度が出力されることがある。そのため、取り込んだ値±x°の範囲が、フレーム画像tが撮影された時刻の実際の角度範囲であるとして、傾き角度検出法で検出された線分から作成されるヒストグラムの角度範囲を前記センサ値から定められる角度範囲に狭め、その角度範囲内で傾き角度の推定を行う。【０１１２】
図１３（ａ）は、近景領域分離により得られるヒストグラムを示す。このヒストグラムでは、正しい角度である２０°以外に、-１０°当たりに頻度のピークが存在するので、正しい角度を推定することができない。図１３（ｂ）は、センサ値に基づき狭められた推定範囲を示す図である。センサ値を用いて推定する角度範囲が狭められれば、正しい角度である２０°の頻度が最も高くなり、かかる角度を傾き補正に用いることにより、正しい画像を得ることができる。【０１１３】
（第３実施形態）
本実施形態は、カメラ保持者の存在する座標系自身が移動する場合の改良である。カメラ保持者が車などの移動物に乗っている場合のように、カメラ保持者の存在する座標系自身が動く場合は、構造物の存在する領域の移動量が相対的に大きくなる場合がある。そのような場合、第１実施形態のように、動きベクトルの大きさのみで傾き補正に使用する領域を判定してしまうと、構造物が存在する領域が近景領域であると誤判定される場合があり、その場合、構造物の存在する領域の特徴量から傾き角度を求める事ができない。このような場合、遠景領域から傾き角度を推定する上記の枠組みでは対応できない。【０１１４】
そこで本実施形態では、画像データ中に存在する角度範囲の度数を示すヒストグラムを遠景・近景のそれぞれで求め、それぞれの領域毎に、信頼度を算出して、その信頼度が最も高い領域から得られた傾き角度を補正パラメータとして採用することにする。【０１１５】
本実施形態における傾きの推定について、図１４、図１５を参照しながら説明する。【０１１６】
図１４（ａ）は、第３実施形態における傾き推定処理において、題材となるフレーム画像データであり、バスの車内で撮影された画像データを示す。かかる画像データが処理対象となるフレーム画像データである場合、かかるフレーム画像データに対して特徴量抽出を行うことで、同図（ｂ）のフレーム特徴データが得られる。図１４（ｂ）は、図１４（ａ）のフレーム画像データに対して特徴量抽出を行うことにより得られるフレーム特徴データを示す図である。第１実施形態では、こうして得られたフレーム特徴データに対して近景領域分離を行い、そうして分離された近景領域に対してマスクを行ったが、本実施形態では、近景領域分離で得られた近景領域と、分離にて残った遠景領域とのそれぞれに対してマスクを実行する。【０１１７】
図１４（ｃ）は、近景領域に対してマスクが施されたフレーム特徴データを示す。図１４（ｄ）は、遠景領域に対してマスクが施されたフレーム特徴データを示す。このようにして、近景領域にマスクが施されたフレーム特徴データ、遠景領域にマスクが施されたフレーム特徴データのそれぞれについてヒストグラムを求める。これを使ってヒストグラムの範囲を制限する。【０１１８】
図１５は、マスクが施されたフレーム画像データと、これらのフレーム画像データに対して作成されたヒストグラムとを示す図である。これらのヒストグラムでは、８０°を中心とした角度範囲α１、９０°を中心とした角度範囲α２が出現していることがわかる。この角度範囲α１は、窓越しに移る車外の光景における線分の角度範囲であり、角度範囲α２は、車内に存在する座席と、乗客とにおける線分の角度範囲であるものと仮定する。こう仮定した場合、角度範囲α1,α2のそれぞれについて信頼度を算出する。角度範囲α1では、８０°という角度の度数が極めて高く、８０°付近の度数は低いものになっている。このように、８０°という角度が突発的になっているので、角度の散らばり度合が小さく、角度範囲α1における信頼度は高いものになっている。一方、角度範囲α2では、９０°付近の角度の度数が、まんべんなく出現していて、角度の散らばり度合が高く、角度範囲α2における信頼度は低いものになっている。この場合、これらの信頼度には、遠景領域＞近景領域という関係が成立するので、補正パラメータとしては、角度範囲α１内の角度が選択されることになる。【０１１９】
このように、構造物から得られた傾き角度を含む角度範囲は、水平からの傾きを表す角度が多く表れるため、突発性が大きくなっており信頼度は高くなる。一方、構造物以外の領域から得られた傾き角度を含む角度範囲は、推定した場合、突発性が小さいため、その信頼度は低くなる。【０１２０】
以上が、信頼度付き角度推定の処理手順の概要である。【０１２１】
以降、第３実施形態に係る画像処理装置の内部構成について説明する。【０１２２】
図１６は、第３実施形態に係る画像処理装置の内部構成を示す図である。本図は、図３をベースとして作図されており、このベースとなる構成と比較して、マスク部６が遠近両用マスク部５１に置き換えられ、線分検出部２、角度推定部３が、信頼度付角度推定部５２、傾き角度選択部５３に置き換えられている点が異なる。図１６の構成要素のうち、図３と同じものについては同じ符号を用い、説明を省略する。【０１２３】
（遠近両用マスク部５１）
遠近両用マスク部５１は、遠景領域のみを取り出すマスクと、近景領域のみを取り出すマスクである。遠景・近景それぞれの領域を個別に取り出す事で、遠景領域・近景領域のそれぞれから傾き角度の検出が可能となる。【０１２４】
（信頼度付角度推定部５２）
信頼度付角度推定部５２は、遠近両用マスク部５１で生成された遠景・近景の両方の領域において、前記ハフ変換または濃度勾配法で傾き角度の推定を行う。この際、推定された傾き角度がどの程度確からしいかを表す信頼度を生成する。この信頼度は、傾き角度ヒストグラムを生成後、センサで指定された角度範囲内で最大の度数を有する角度が傾き角度であると判定される際に、推定された傾き角度がヒストグラム上でどれだけ突発しているかを表す指標である。【０１２５】
（傾き角度選択部５３）
傾き角度選択部５３は、信頼度付角度推定部５２で生成された遠景・近景の傾き角度の信頼度の比較を行う。構造物の存在する領域から得られた傾き角度の信頼度は、高いピークを持つため、信頼度の高い傾き角度が構造物の存在する領域から得られたものであるとし、信頼度の高い傾き角度を、正しい傾き角度として選択する。また、傾き角度を生成した領域が3つ以上存在する場合、生成した傾き角度のうち最も高い信頼度を有する傾き角度を、正しい傾き角度として選択する。【０１２６】
信頼度を用いた補正パラメータ選択を行うための画像処理装置の処理としては、以下のものとなる。【０１２７】
以上の構成において、信頼度付角度推定部５２は、遠景に存在する領域、近景に存在する領域それぞれから信頼度付傾き角度を求めるので、構造物の情報のない領域から得られた角度の信頼度は、構造物の存在する領域から得られた角度の信頼度よりも低くなる。そのため、信頼度を比較する事で、動的に使用する領域の選択が可能となる。このように傾き角度選択部５３で信頼度に基づいて傾き角度を指定する事で、カメラ保持者あるいはカメラ保持者の存在する座標系が動く場合においても、構造物の存在する領域を使用する事ができるため、高精度な傾き角度推定が行える。【０１２８】
図１７は、第３実施形態に係る信頼度付き傾き補正処理の処理手順を示すフローチャートである。本図左脇の括弧記号｛は、本フローの各ステップが、どの構成要素に割り当てられているかを示す。ステップＳ４１は特徴量抽出部１に割り当てられており、ステップＳ４２は遠近両用マスク部５１に、ステップＳ４２〜ステップＳ４６、ステップＳ５１〜ステップＳ５５は信頼度付角度推定部５２に、ステップＳ５６〜ステップＳ５８は傾き角度選択部５３に割り当てられていることがわかる。【０１２９】
以降、各ステップについて説明する。ステップＳ４１は、フレーム特徴データに対する特徴抽出であり、この特徴抽出の結果を用いて、近景領域についての信頼度S1を算出する処理(ステップＳ４２〜ステップＳ４６)、遠景領域についての信頼度S2を算出する処理(ステップＳ５１〜ステップＳ５５)をパラレルに実行し、近景領域における信頼度S1、遠景領域における信頼度S2を得て、信頼度S1が信頼度S2より大きいかどうかの判定を行い(ステップＳ５６)、判定結果に応じて。傾きを設定する(ステップＳ５７、ステップＳ５８)というものである。【０１３０】
近景領域の処理は、ステップＳ４２において遠景領域に対してマスクを設定し、ステップＳ４３において近景領域における傾きの度数分布を示すヒストグラムを作成する。そしてステップＳ４４では、慣性センサ７０で推定した角度範囲によってヒストグラムを区切り、ステップＳ４５では、最大度数の角度を、近景領域における傾きθ1とする。そしてステップＳ４６では、最大度数周辺の度数の平均／分散から信頼度S1を求める。【０１３１】
遠景領域に対する処理は、ステップＳ５１において近景領域に対するマスクをセットし、ステップＳ５２において遠景領域における傾きのヒストグラムを作成する。ステップＳ５３では、慣性センサ７０で推定した角度範囲を用いてヒストグラムを区切り、ステップＳ５４では、最大度数の角度を遠景領域での傾きθ2とする。ステップＳ５５では、最大度数周辺の度数の平均又は分散から、信頼度S2を求める。【０１３２】
こうして得られた信頼度S1、信頼度S2が、信頼度S1＞信頼度S2の関係を満たす場合(ステップＳ５６でYes)、近景領域から得られた傾きθ1をフレーム特徴データの傾きとして採用する(ステップＳ５７)。信頼度S2＞信頼度S1の関係を満たす場合(ステップＳ５６でNo)、近景領域から得られた傾きθ2をフレーム特徴データの傾きとして採用する(ステップＳ５８)。【０１３３】
以上のように本実施形態によれば、フレーム間の動きベクトルの大きさを利用して領域の分離を行い、分離した領域それぞれの画像の特徴のみを傾き角度検出法に用いて信頼度と傾き角度を算出し、信頼度の高い傾き角度を採用する事で、ｉ）カメラ保持者自身が移動する場合、及びｉｉ）カメラ保持者の存在する座標系が移動する場合の両場合においても、構造物の存在する領域から得られる傾き角度を動的に選択し、検出する事が可能となる。【０１３４】
（第４実施形態）
これまでの実施形態は、動き量に基づき、傾き補正を実行するというものであったが、本実施形態では、画像揺れに対する揺れ補正を実行するというものである。画像揺れとは、撮影系の動きであって、手ブレよりも大きいものをいう。【０１３５】
そして揺れ補正とは、連続フレームにおける遠景領域の座標を合わせることで、遠景領域のスタビライズを行う技術である。図１８（ａ）は、揺れ補正の対象となる、連続フレームの一例を示す図である。この連続フレームを構成する画像データは、競馬場で疾走する馬を追うように撮影された動画であるが、これらは馬を追うようなカメラワークで撮影されたため、遠景領域にある垂直柱の位置は、大きく変位している。遠景領域にある垂直柱の位置がフレーム毎に異なるような動画を再生に供しようとすると、フレーム毎に、垂直柱が変化するので、見ている者の酔い、つまり“映像酔い”を招く。【０１３６】
またビデオカメラで歩行しながら撮影をしている場合、映像が傾いてしまうだけでなく、撮影者自身の動きと共に撮影しているビデオカメラも揺れ動いてしまう。そのため、撮影された映像には揺れが印加されてしまい、視聴に耐えない。ハンズフリーカメラワークの実用化を考えた場合、かかる映像酔いにも考慮が必要なので、揺れ補正を施すことにしている。【０１３７】
ここで図１８（ａ）によると、フレームt-1の画像データ、フレームtの画像データにおいて、垂直柱は共通に出現しているので、かかる垂直柱の座標を同じにすれば、遠景領域を固定化することができる。ここでフレームtの画像データにおいて垂直柱に(X1,Y1)(X2,Y2)という2つの特徴点が存在しており、フレームt-1の画像データにおいて垂直柱が(X4,Y4)(X5,Y5)という2つの特徴点が存在している場合、図１８（ｂ）に示すように、フレームt-1の画像データの(X4,Y4)(X5,Y5)を、フレームtの画像データの(X1,Y1)(X2,Y2)に一致するように変換するための回転行列Rを求める。このように、回転行列Rを求めることを“揺れ量の推定”という。かかる揺れ量の推定によって回転行列Rが求められれば、フレームt-1の画像データを構成する各画素を、回転行列Rに基づき変換することで、垂直柱の座標をフレームt-1の画像データと、フレームtの画像データとで一致させる。以上の処理により、見る者の映像酔いを招かない連続フレームを得ることができる。【０１３８】
図１８（ｃ）は、揺れ補正が施されたフレーム画像t-1の一例である。かかる揺れ補正の結果において、フレームt-1の画像データでは、画像データにおける垂直柱の座標が、フレームt-1の画像データと同じ場所になっているので、右端部分に、余白が生じているものの、動画再生において映像酔いが発生することはなくなっている。固定された遠景領域を背にして、被写体が移動してゆくような画像データが得られる。そしてS/Nのうち、Sが向上して、Nが低下するので、S/Nが高くなるという効果がある。【０１３９】
揺れ補正については以下の参考文献に記載があるので、詳細については、この参考文献を参照されたい。【０１４０】
“Robust and Real-time Rotation Estimation of Compound Omnidirectional
Sensor(2007 IEEE International Conference on Robotics and Automation Roma,Italy
10-14 April 2007)”
「III.MOTION AND MOTION COMPUTATION OF DISTANT FEATURE POINTS」
以降、揺れ補正の原理について、簡単に説明する。【０１４１】
フレーム間の揺れ量を推定する際には、フレームt, t-1間のカメラの動きを検出する事になる。このフレーム間の揺れ量を画像情報から正しく検出するためには、両フレームに共通に存在する座標(図１８における(X1,Y1)(X2,Y2)(X4,Y4)(X5,Y5))を得る必要がある。これら(X1,Y1)(X2,Y2)(X4,Y4)(X5,Y5)のようにフレーム画像t-1、フレーム画像t間で安定して現れる特徴を、“揺れ特徴(t-1,t)”という。また、揺れ特徴(t-1,t)を構成する各フレーム特徴データの一点を“特徴点”という。【０１４２】
揺れ特徴(t-1,t)を検出する観点から画像の領域を大きく分けると、カメラから被写体までの距離が近い領域と、カメラから被写体までの距離が遠い領域となる。カメラから被写体まで距離が遠い領域上では、フレーム間の動きが小さくなるため、揺れ特徴(t-1,t)を安定に検出できる。逆に近景領域ではフレーム間の動きが大きいので、揺れ特徴(t-1,t)を安定的に検出し辛い。【０１４３】
そこで本実施形態では、フレーム画像t-1、フレーム画像tに対して近景領域の分離を行って、マスクを施すことにしている。図１９（ａ）〜（ｃ）は、近景領域をマスクすることでなされる揺れ特徴(t-1,t)を示す図である。図１９（ａ）は、フレーム画像t-1、フレーム画像tに対して生成されたフレーム特徴データである。図１９（ｂ）は、図１９（ａ）のフレーム画像t-1、フレーム画像tのうち、近景領域をマスクすることで得られるフレーム特徴データを示す図である。近景領域に対してマスクが施されたので、フレーム画像t-1、フレーム画像tは垂直柱の部分のみとなり、フレーム画像t-1ーフレーム画像t間の対応が取りやすくなっている。図１９（ｃ）は、フレーム画像t-1のフレーム特徴データ、フレーム画像tのフレーム特徴データから検出された特徴点を示す。近景領域となる競走馬の部分がマスクされたので、フレーム特徴データは垂直柱の部分のみとなり、揺れ特徴(t-1,t)が検出しやすくなっている。【０１４４】
この近景領域となる競走馬の部分は、第１実施形態におけるマスク範囲指定部により、指定することができるので、揺れ特徴(t-1,t)の効率良い検出には、第１実施形態の動きベクトル算出部４とマスク範囲指定部５、マスク部６をそのまま適用することができる。【０１４５】
また、フレーム間の揺れ補正を実行する際には、検出されたフレーム間の動き量と逆の量をフレームtに作用させる事で、補正を行う。【０１４６】
図２０（ａ）（ｂ）は、揺れ補正が施されていない2つのフレーム画像データと、揺れ補正が施された2つのフレーム画像データとを対比して示す図である。図２０（ａ）では、フレームt-1からフレームtまでの間に、大地と、垂直柱とが大きく揺れているので、映像酔いの発生を招きかねない。これに対して図２０（ｂ）では、フレームt-1と、フレームtとで、大地、垂直柱の位置が固定されているため、見る者の映像酔いを招くことはない。同様の処理を、１０秒、２０秒といった時間間隔内に撮影された複数のフレーム画像データに施せば、非常に見易い動画再生を実現することができる。【０１４７】
図２１は、第４実施形態に係る画像処理装置の内部構成を示す図である。本図は、図３をベースとして作図されており、このベースとなる構成と比較して、特徴量抽出部１が揺れ特徴抽出部５４に置き換えられ、角度推定部３、傾き推定部７が、揺れ量推定部５５、揺れ補正部５６に置き換えられている点が異なる。図１６の構成要素のうち、図３と同じものについては同じ符号を用い、説明を省略する。【０１４８】
(揺れ特徴抽出部５４)
揺れ特徴抽出部５４では、フレームメモリ３０、４０における画像データから特徴量を抽出する。ここでは、特徴量の1つの例として、エッジ成分を抽出する。【０１４９】
（揺れ量推定部５５）
揺れ量推定部５５は、マスクがかけられたフレーム特徴データから特徴点を選出し、フレーム間の揺れの量（＝フレーム間のカメラの動き）を推定する。【０１５０】
（揺れ補正部５６）
揺れ補正部５６では揺れ量推定部５５で推定された揺れ量を用いて揺れの補正を行う。【０１５１】
図２２は、揺れ補正処理のフローチャートである。ステップＳ９１において、フレーム画像t-1,tに対してHarrisアルゴリズムを適用することにより、安定的に抽出できる一定数の点を候補点(遠景領域内において特徴点の候補となる点)として選択し、ステップＳ９２において画角の違い等の影響をキャンセルするべく、選択された各候補点を単位球面(半径=1)上の座標へ投影する。【０１５２】
図２３は、単位球面(半径=1)上の座標へ投影されるフレーム画像t-1における特徴量と、フレーム画像tにおける特徴量とを示す図である。本図に示すように、フレーム画像t-1、フレーム画像t上の特徴量には、近景領域に属するものと、遠景領域に属するものとがあるが、これらのうち、遠景領域に属する特徴量が、単位球面に投影されている。近景領域に属するものは、単位球面に投影されていないことが判る。これは、フレーム特徴データにおける近景領域にマスクが施されているからである。【０１５３】
その後、RANSAC手法に基づく回転行列Rの算出を実行する。【０１５４】
以降、RANSAC手法に基づく回転行列Rの算出手順について述べる。ステップＳ９３においてフレーム画像t-1, tにおいて、単位球面上へ投影された候補点のうち、マスクされた近景領域以外にある２点の候補点をランダムに選択してステップＳ９４〜ステップＳ９９のループを構成する。【０１５５】
このループは、フレーム画像t-1, tの各2点(計4点)の関係を表す回転行列Rを求めて(ステップＳ９４)、求められた回転行列Rで、ランダムに選ばれたフレーム画像t-1における2点以外の点を回転し(ステップＳ９５)、回転行列Rを求め、その一致度合を計測して(ステップＳ９７)、規定時間内であるか否かを判定し(ステップＳ９８)、もし規定時間以内であれば(ステップＳ９８でYes)、フレーム画像t-1,tにおいて、単位球面上へ投影された候補点のうち、マスクされた近景領域以外にある未選択の２つの候補点をランダムに選択した上(ステップＳ９９)、ステップＳ９４に戻る。このようにして、近景領域以外にある未選択の２つの候補点をランダムに選び、回転行列を算出するという処理を、全ての点の組合せについて繰り返すのが、このループである。【０１５６】
ステップＳ９８がNoであれば、選ばれた2つの点の回転行列Rは間違っているので、ステップＳ９８からステップＳ９９に移行して、フレーム画像t-1, tにおいて、単位球面上へ投影された候補点のうち、マスクされた近景領域以外にある未選択の２点のものをランダムに選択した上、ステップＳ９４に戻る。【０１５７】
規定時間をオーバーすれば、ステップＳ９８がNoとなり、ステップＳ１００において、２点の候補点の組合せ毎に算出された回転行列Rのうち、最大の一致度合いを持つ回転行列Rを、フレーム画像t-1,t間の揺れの関係を表現する回転行列Rとする。そしてステップＳ１０１において、求まった回転行列Rを用いて、フレーム画像t-1の揺れを補正する。【０１５８】
以上のように本実施形態によれば、フレーム間の動きベクトルの大きさを利用して近景領域の分離を行い、遠景領域から算出された画像の特徴のみを揺れ量検出に用いることで、人物などが大きく画像内に入り込んでいるような映像であっても、精度良くフレーム間の揺れ量の推定をし、推定された揺れ量をもとに揺れ補正することができる。【０１５９】
（第５実施形態）
これまでの実施形態では、補正パラメータの検出に動きベクトルのスカラ量を用いたが、本実施形態では、動きベクトルの方向を用いる改良に関する。つまり、処理対象となるフレーム画像データを構成する各マクロブロックについて動きベクトルを算出して、これらのマクロブロックのうち、正しいと推定される方向をもたないマクロブロックを分離することで、マスクを施すべき範囲を決めるのである。ここで正しいと推定される方向とは、フレーム間のカメラの動きを示すものであり、先の実施形態で述べた揺れ推定の結果となる方向である。【０１６０】
ここで、これまでに説明した実施形態(第３実施形態、第４実施形態)と比較した、本実施形態の利点を述べる。第３実施形態では、動きベクトルの大きさを用いて、領域をフレーム間の動きが大きな領域と小さな領域の2つに分け、構造物の存在する領域の特徴を用いて傾き角度の推定を行っている。しかし動くものが多数存在すると、様々な大きさの動きベクトルが現れる。そのため動きベクトルの大きさのみではうまく領域の分割が行えないことがある。図２４（ａ）は、連続フレームを構成するフレームt-1の画像データ、フレームtの画像データを示す図であり、図２４（ｂ）は、フレームtの画像データを構成する各マクロブロックから検出された動きベクトルを示す。図２４（ｃ）は、動きベクトルのスカラ量が大きい近景領域のみをマスクすることで得られたフレーム特徴データを示す。【０１６１】
このフレーム特徴データでは、構造物だけではなく、人物の後方に存在する樹木が特徴として現れているので、この図２４（ｃ）のフレーム特徴データでは、この樹木の部分の特徴量がノイズとして表れ、傾き角度の推定精度が低くなってしまう。【０１６２】
第３実施形態において、フレーム間の動きベクトルの大きさ以外に、カメラがフレーム間にどう動いたかを表すフレーム間の動きの方向を事前に知る事ができれば、構造物の存在する領域からノイズを低減させることができる。これは、構造物は自律的に動く事はなく、かつ、カメラの移動した方向とは逆方向に移動してカメラに写る事を利用する事で、カメラの動きと構造物の動きに対応しない動き方向を持つ領域を構造物領域ではないとして除外可能である事による。【０１６３】
第４実施形態では、フレーム間の揺れの量を推定し、補正を行っているが、前述のように、このフレーム間の揺れの量はフレーム間のカメラの動き量に相当する。そのため、この揺れ量を用いる事で図２４（ｂ）の動きベクトルのうち、フレーム間のカメラの動きと対応の取れない動きベクトルをもつ画素ブロックをマスクする事で、構造物以外の領域に存在するノイズを削除することができる。【０１６４】
図２５（ａ）は、図２４（ｂ）におけるフレーム特徴データを、揺れ量推定の結果と同じ動きベクトルが占める領域と、揺れ量推定の結果と異なる方向の動きベクトルが占める領域とに分離した図である。【０１６５】
図２５（ｂ）の枠w1、w2は、各マクロブロックについての算出された動きベクトルのうち、揺れ推定の結果に該当する方向をもつもののみを示している。こうして得られた方向が、正しいと推定される方向であると仮定すれば、そのような方向をもたないマクロブロックに対してマスクを施して補正パラメータの検出を行うことで、人物像の後方における樹木の部分の線分を除外することができる。これにより高精度な補正パラメータを得ることができる。図２５（ｃ）は、補正パラメータである傾き角度の検出に用いられるフレーム特徴データを示す図である。【０１６６】
以上が、第３実施形態、第４実施形態と比較した本実施形態の利点となる。【０１６７】
図２６は、第５実施形態に係る画像処理装置の内部構成を示す図である。本図は、図１６に準じた内部構成と、図２１に準じた内部構成とを組合せた形態になっている。特徴量抽出部１、動きベクトル検出部４、マスク範囲指定部５、信頼度付角度推定部５２、傾き角度選択部５３、慣性センサ７０が、図１６に準じた内部構成である。この組合せにあたって、マスク部６は、マスクパターン拡大部５７に置き換えられている。マスクパターン拡大部５７は、本実施形態特有の構成要素である。【０１６８】
また、揺れ特徴抽出部５４、マスク部６、揺れ量推定部５５は、図２１に準じた内部構成である。揺れ補正部５６は、揺れ補正・傾き補正部５８に置き換えられているが、この揺れ補正・傾き補正部５８は、本実施形態特有の構成要素である。以降、本実施形態特有の構成要素(マスクパターン拡大部５７、揺れ補正・傾き補正部５８)と、本実施形態の処理のために改良が加えられた構成要素(信頼度付角度推定部５２、傾き角度選択部５３)とについて説明する。【０１６９】
(マスクパターン拡大部５７)
マスクパターン拡大部５７は、マスク範囲指定部５により指定されたマスクパターンを、揺れ量推定部５５による揺れ補正の結果に基づいて拡大する。マスク範囲指定部５は、動きベクトルの大きさに応じて近景領域が分離した。マスクパターン拡大部５７は、マスク範囲指定部５で分離された各領域の動きベクトルの向きと、揺れ量推定部５５で得られたカメラの動きベクトルの向きとを照合し、揺れ量との対応が取れない領域を網羅するように、マスクパターンの範囲を拡大する。こうすることで、カメラの動きベクトルの向きと対応の取れる領域のみを対象とするマスクパターンが生成されることになる。【０１７０】
(信頼度付角度推定部５２)
信頼度付角度推定部５２における改良点は、マスクパターン拡大部５７によって生成されたマスクパターンによって分離された近景領域、遠景領域に対して信頼度付傾き角度推定を行うことである。【０１７１】
(傾き角度選択部５３)
傾き角度選択部５３における改良点は、信頼度付角度推定部５２で生成された遠景・近景の傾き角度の信頼度の比較して、信頼度の高い傾き角度を、正しい傾き角度として選択する点である。また、傾き角度を生成した領域が3つ以上存在する場合、生成した傾き角度のうち最も高い信頼度を有する傾き角度を、正しい傾き角度として選択する。【０１７２】
(揺れ補正・傾き補正部５８)
揺れ補正・傾き補正部５８は、傾き角度選択部５３から得られた傾き角度、及び、揺れ量推定部から得られたフレーム間の揺れ量を用いてフレームメモリ３０のフレーム画像tの傾きと揺れとを同時に補正する。この補正方法としては、第１実施形態で傾きを補正する際に用いていたAffine変換がある。【０１７３】
図２７は、揺れ量推定処理のフローチャートである。ステップＳ８１において、変数tを0に初期化し、ステップＳ８２、ステップＳ８３のループに移行する。このループは、変数tにて指示される個々のフレーム特徴データに対して、ステップＳ８４〜ステップＳ９０の処理を繰り返すというものであり、変数tのインクリメントは、ステップＳ９０でなされる。ますステップＳ８４において変数tが0かどうかを判定し、0であれば、ステップＳ８５においてフレーム特徴データ0から揺れ特徴(t-1,t)を抽出する。0でなければ、ステップＳ８６においてフレーム特徴データから揺れ特徴(t-1,t)を抽出して、ステップＳ８７において前フレームと絵を合わせることで揺れ特徴(t-1,t)を得る。ステップＳ８８では、揺れ特徴(t-1,t)のうち移動量が大きいもの除外する。【０１７４】
ステップＳ８９において、揺れ特徴(t-1,t)のうち、除外されていない領域にある特徴点間の対応関係を調べて、対応関係を示す回転行列Rを算出することで、揺れ推定の結果を得る。【０１７５】
図２８は、第５実施形態に係るマスク処理、補正処理の処理手順を示すフローチャートである。本フローチャートにおける変数tは、フレーム特徴データを指示する制御変数である。ステップＳ６１において、この変数tを0に初期化し、ステップＳ６２〜ステップＳ６３のループに移る。このループは、フレーム特徴データのそれぞれについて、ステップＳ６４〜ステップＳ７１の処理を実行するものである。ステップＳ６４は、フレーム特徴データをｓｊする変数tが0であるかどうかの判定であり、t=0であれば、ステップＳ６５においてフレーム特徴データ0から揺れ特徴(t-1,t)を抽出する。【０１７６】
変数tが0でなければ、ステップＳ６６において近景領域分離を行い、ステップＳ６７において、揺れ特徴(t-1,t)に対する揺れ量推定の結果とは異なる方向成分をもつブロックと、近景領域に該当するブロックとを網羅するマスクパターンを生成する。【０１７７】
ステップＳ６８では、揺れ特徴(t-1,t)に対する揺れ補正結果とは異なる方向成分をもつブロックと、近景領域に該当するブロックとを網羅するマスクパターンとを用いて、近景領域の再分離を行う。【０１７８】
ステップＳ６９では、傾きセンサから特定された近景領域と、この近景領域以外の遠景領域とに対して、それぞれ信頼度を算出して、この信頼度に基づき、近景領域、遠景領域の何れかから傾きを選択するかを決定して、傾き角度θを算出する。【０１７９】
ステップＳ６９において角度θと、揺れ量推定結果となる回転行列とを補正パラメータとして用いて傾き補正と、揺れ補正とを実行する。ステップＳ７１では、フレーム特徴データtを符号化して、表示する。その上、ステップＳ７２において変数tをインクリメントする。【０１８０】
以上のように本実施形態によれば、フレーム間の動きベクトルの大きさを利用して近景領域をマスクし、更にフレーム間の揺れ量の推定結果を用いてマスクすることで、構造物の存在する領域内のノイズを除去する事が可能となる。これにより、ｉ)人物などが大きく画像内に入り込んでいるような映像、ｉｉ)木などの輝度値がバラバラでフレーム間に多様動く様な領域が存在する映像、ｉｉｉ)たまたまフレーム間の動き量が小さいような物体が存在するような映像であっても、精度良くフレーム間の傾き角度の推定をし、推定された傾き角度をもとに傾き補正することができる。【０１８１】
（第６実施形態）
フレーム画像データに現れるが被写体が近景領域かどうかの判定に測距センサ５９を用いる改良である。図２９は、第６実施形態に係る画像処理装置の内部構成を示す図である。本図は、図３をベースとして作図されており、このベースとなる構成と比較して、測距センサ５９がマスク範囲指定部５に直列的に接続されている点が、本実施形態特有の改良になっている。図２９において、図３と同じ構成要素については同じ符号を用い、説明を省略する。【０１８２】
図２９にある測距センサ５９は、例えば赤外線センサなどがあり、センサの位置から被写体までの距離が３mから５m程度であり、比較的近い場合、その被写体までの距離を計測できる。この測距センサをカメラに取り付ける事で、カメラから画像が撮影された際の被写体までの距離が近い領域の情報を知る事ができる。第１実施形態のようにフレーム間の動きベクトルの大きさを計測しただけでは、計測誤差や誤対応などの原因により、完全に分割する事ができない場合でも、測距センサを使用する事で、確実に近景領域である領域が分かる。【０１８３】
これを利用し、マスク範囲指定部５で動きの大きな領域と小さな領域分離した結果と照合し、計測誤差や誤対応などにより、遠景領域であると判定されていた領域が近景領域である事が分かる。そのため、近景・遠景領域の分離精度が高くなるので、より高精度に傾き角度を検出する事が可能になる。【０１８４】
（その他変形例）
１.フレーム特徴データの算出方法
特徴量抽出部１では、エッジ検出を行った後にエッジのS/N比を高める目的で前処理を加えても構わない。前処理の例としては、以下のものが挙げられる。エッジ検出前に行う前処理としては、メディアンフィルタ、ローパスフィルタなどの平滑化処理を行ってノイズを減らす方法がある。また、エッジ検出後に行う前処理としては、エッジ情報に含まれるノイズ除去するために前処理としてエッジ情報に対してラベリング処理を行い、孤立しているエッジを除去する孤立点除去方法。同様の目的で、前処理として、エッジ情報に対してモルフォロジフィルタを使用し、opening処理を行う方法などがある。【０１８５】
２.角度範囲の制限
角度範囲を制限する際には、センサの信頼度を尤度などで表現をし、そのセンサの尤度を乗じたヒストグラムを、角度の存在確率として捉えて、その確率の最大の角度を、水平からの傾き角度であるとして推定を行っても構わない。【０１８６】
かかる構成によれば、センサの出力値を基準に傾き角度の存在する範囲を限定することで、傾き角度の推定範囲が狭くなるため、傾き角度の推定精度が向上する。【０１８７】
３.マスクを施すべき範囲
これまでの実施形態では、画素ブロック毎に算出された動きベクトルのスカラ量又は方向に基づいて、フレーム特徴データ全体のうち、マスクを施すべき範囲を指定したが、指定の基準は、動きベクトルのスカラ量又は方向に限らない。動きベクトルに依拠するパラメータであれば、ＤＣＴ係数や直流成分等、他のパラメータを採用してよいことはいうまでもない。【０１８８】
４.補正パラメータのバリエーション
これまでの実施形態では、補正パラメータとして、傾き角度や回転行列を検出したが、何等かの補正を施すことができるものなら、他のものを検出してもよい。例えば、フィルタ係数や、輝度変換のパラメータを補正パラメータとして検出してもよい。【０１８９】
５.信頼度付角度推定のバリエーション
信頼度付角度推定部５２は、遠近両用マスク部５１で生成された遠景・近景の両方の領域において傾き角度の推定を行ったが、遠景領域に対したのみ、信頼度を算出してもよい。
【産業上の利用可能性】
【０１９０】
本発明にかかる画像処理装置は、撮影された映像の傾き補正機能を有し、安定撮影可能なビデオカメラ１００等として有用である。またデジタルカメラ等への用途にも応用できる。
【図１】
2009001510.tif 000003
【図２】
2009001510.tif 000004
【図３】
2009001510.tif 000005
【図４】
2009001510.tif 000006
【図５】
2009001510.tif 000007
【図６】
2009001510.tif 000008
【図７】
2009001510.tif 000009
【図８】
2009001510.tif 000010
【図９】
2009001510.tif 000011
【図１０】
2009001510.tif 000012
【図１１】
2009001510.tif 000013
【図１２】
2009001510.tif 000014
【図１３】
2009001510.tif 000015
【図１４】
2009001510.tif 000016
【図１５】
2009001510.tif 000017
【図１６】
2009001510.tif 000018
【図１７】
2009001510.tif 000019
【図１８】
2009001510.tif 000020
【図１９】
2009001510.tif 000021
【図２０】
2009001510.tif 000022
【図２１】
2009001510.tif 000023
【図２２】
2009001510.tif 000024
【図２３】
2009001510.tif 000025
【図２４】
2009001510.tif 000026
【図２５】
2009001510.tif 000027
【図２６】
2009001510.tif 000028
【図２７】
2009001510.tif 000029
【図２８】
2009001510.tif 000030
【図２９】
2009001510.tif 000031
【手続補正書】
【提出日】平成21年1月22日(2009.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
補正パラメータを用いてフレーム画像データを補正する画像処理装置であって、
フレーム画像データにおける絵柄の特徴を表したフレーム特徴データを生成する生成手段と、
時間的に前のフレーム画像データからの動きベクトルを、処理対象となるフレーム画像データを構成する各画素ブロックのそれぞれに対して算出する算出手段と、
各画素ブロックについて算出された動きベクトルに基づいて、フレーム特徴データ全体のうち、マスクを施すべき範囲を指定する範囲指定手段と、
フレーム特徴データのうち、マスクが施された範囲以外の部分から、補正パラメータを検出する検出手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記マスクを施すべきフレーム特徴データの範囲とは、
動きベクトルにおける動き量が、所定の閾値を越える画素ブロックに対応する、フレーム特徴データの一部分であり、
所定の閾値とは、
画像データにおける複数のブロックの動き量の平均値である
ことを特徴とする請求項１記載の画像処理装置。  
【請求項３】
前記動きベクトルにおける動き量が、前記所定の閾値を越える画素ブロックとは、フレーム特徴データにおける近景領域であり、
前記範囲指定手段は、
動きベクトルにおける動き量に基づき、フレーム特徴データを、近景領域と遠景領域とに分離する処理を行い、
前記範囲指定手段によりマスクが施されるべき範囲とは、近景領域及び／又は遠景領域である
ことを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記検出手段は更に、
近景領域及び遠景領域のうち、マスクが施された領域以外の領域に対して、ヒストグラムを作成する処理(1)、ヒストグラムにおける度数の平均又は分散に基づいて、信頼度を算出する処理(2)を行い、
ヒストグラムは、フレーム特徴データに存在する角度成分がとりうる角度範囲と、当該角度範囲の度数とを対応付けて示し、   前記信頼度は、各角度範囲に対応する度数がどれだけ突発的であるかを示すパラメータであり、
前記検出手段により検出される補正パラメータとは、
近景領域及び遠景領域について算出されたヒストグラムに示される角度成分のうち、算出された信頼度が最も高いものから選ばれた角度である
ことを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記フレーム画像データに対する補正とは、
回転行列を用いて、複数のフレーム画像データにおける特徴点を、同じ位置に固定することにより、撮影時の揺れを補正する処理であり、
前記検出手段により検出される補正パラメータとは、
フレーム特徴データのうち、マスクが施された領域以外に存在する2つの特徴点における揺れ量を示す回転行列である
ことを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記検出手段は、補正パラメータを検出するにあたって、
フレーム特徴データにおいてマスクが施されていない範囲から、特徴点の候補となる点のペアをランダムにえらんで、その候補点のペア毎に、回転行列を算出とすると共に、その回転行列を作用させた場合のフレーム画像データ間の一致度合を計算する処理を行い、
前記補正パラメータとして選ばれる2つの特徴点は、
フレーム特徴データにおいてマスクが施されていない範囲から選ばれる候補点のペアのうち、回転行列における一致度合が最も高いものである
ことを特徴とする請求項５記載の画像処理装置。
【請求項７】
前記処理対象となるフレーム画像データは、傾きセンサを有した撮像装置によって撮影され、
前記フレーム画像データに対する補正とは、処理対象となるフレーム画像データに対して回転変換を施すことで、撮影時における撮影装置の傾きを補正する処理であり、
前記検出手段は更に、
マスク領域以外の領域に対して、フレーム特徴データに存在する角度成分がとりうる角度範囲と、当該角度範囲の度数とを対応付けて示すヒストグラムを作成する処理(1)、
ヒストグラムに度数が現れた角度範囲のうち、傾きセンサの出力となる角度範囲内に属するものを、選択する処理(2)を行い、
前記補正パラメータとは、選択された角度範囲に属する角度である
ことを特徴とする請求項１記載の画像処理装置。
【請求項８】
前記画像処理装置は更に、被写体までの距離に応じて、処理対象を構成する複数の画素ブロックのそれぞれが、近景に対応するものか、遠景に対応するものかの判定を行う判定手段を備え、
処理対象となるフレーム画像データは、被写体までの距離を計測可能なセンサを具備した撮影装置によって撮影され、
前記画像処理装置による前記フレーム画像データに対する補正とは、処理対象に対して回転変換を施すことで、撮影装置の傾きを修正する処理であり、
フレーム特徴データのうち、マスクが施される一部とは、
近景に対応すると判定された画素ブロックに対応する、フレーム特徴データの一部である
ことを特徴とする請求項１記載の画像処理装置。
【請求項９】
フレーム特徴データのうち、マスクが施される一部とは、
動きベクトルにおける動き量が、所定の閾値を越える画素ブロック、及び、
所定の方向成分とは異なる方向成分の動きベクトルをもつ画素ブロックに対応した部分であり、
所定の方向成分とは、
処理対象となるフレーム画像データを構成する複数の画素ブロックのうち、時間的に前に撮影されたフレーム画像データを構成する画素ブロックとの対応がとれるものがもつ方向成分である
ことを特徴とする請求項１記載の画像処理装置。
【請求項１０】
前記画像処理装置は、
処理対象となるフレーム画像データを構成する複数の画素ブロックのうち、近景領域に存在するもの以外から2つの特徴量を選択して、選択された2つの特徴点が、その直前のフレーム画像データからどれだけ変化したかを示す揺れ量を推定する推定手段を備え、
前記近景領域は、
動きベクトルにおける動き量が、所定の閾値を越える画素ブロックから構成され、
所定の方向成分をもつ画素ブロックとは、
近景領域に存在する画素ブロック以外の画素ブロックについて推定された揺れ量に基づき、時間的に前に撮影されたフレーム画像データを構成する画素ブロックとの対応がとれるものを選択することで選ばれる画素ブロックである
ことを特徴とする請求項９記載の画像処理装置。
【請求項１１】
前記フレーム画像データに対する補正とは、
処理対象に対して回転変換を施すことで、撮影時の傾きを補正する処理、及び、
連続して撮影された複数のフレーム画像データにおける背景領域を、同じ位置に固定することにより、撮影時の揺れを補正する処理
の双方である、ことを特徴とする請求項９記載の画像処理装置。
【請求項１２】
前記範囲指定手段は、
動きベクトルにおける動き量に基づき、フレーム特徴データを、近景領域と遠景領域とに分離する処理を行い、
前記マスクを施すべきフレーム特徴データの範囲とは、
フレーム特徴データにおける近景領域であり、
前記フレーム画像データに対する補正とは、
回転行列を用いて、フレーム画像間に共通に存在する特徴点を、同じ位置に固定することにより、撮影時の揺れを補正する処理であり、
前記検出手段により検出される補正パラメータとは、
フレーム特徴データのうち、マスクが施された近景領域以外の遠景領域に存在する2つの特徴点における揺れ量を示す回転行列である
ことを特徴とする請求項１記載の画像処理装置。
【請求項１３】
前記画像処理装置は更に、補正パラメータを用いた補正が施されたフレーム画像データを符号化する符号化部を備える、請求項１に記載の画像処理装置。
【請求項１４】
前記画像処理装置には、複数のフレームメモリが接続されており、
処理対象となるフレーム画像データと、時間的に前のフレーム画像データとは、複数のフレームメモリに格納されている
ことを特徴とする請求項１に記載の画像処理装置。
【請求項１５】
補正パラメータを用いてフレーム画像データを補正する画像処理方法であって、
フレーム画像データにおける絵柄の特徴を表したフレーム特徴データを生成する生成ステップと、
時間的に前のフレーム画像データからの動きベクトルを、処理対象となるフレーム画像データを構成する各画素ブロックのそれぞれに対して算出する算出ステップと、
各画素ブロックについて算出された動きベクトルに基づいて、フレーム特徴データ全体のうち、マスクを施すべき範囲を指定する範囲指定ステップと、
フレーム特徴データのうち、マスクが施された範囲以外の部分から、補正パラメータを検出する検出ステップと
を有することを特徴とする画像処理方法。
【請求項１６】
補正パラメータを用いてフレーム画像データを補正する処理をコンピュータに実行させるプログラムであって、
フレーム画像データにおける絵柄の特徴を表したフレーム特徴データを生成する生成ステップと、
時間的に前のフレーム画像データからの動きベクトルを、処理対象となるフレーム画像データを構成する各画素ブロックのそれぞれに対して算出する算出ステップと、
各画素ブロックについて算出された動きベクトルに基づいて、フレーム特徴データ全体のうち、マスクを施すべき範囲を指定する範囲指定ステップと、
フレーム特徴データのうち、マスクが施された範囲以外の部分から、補正パラメータを検出する検出ステップと
をコンピュータに実行させることを特徴とするプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像補正処理の技術分野に属する発明である。
【背景技術】
【０００２】
画像補正処理とは、処理対象となるフレーム画像データから補正パラメータを検出して、補正パラメータを用いて画像データに補正を施す技術であり、画像の傾き補正技術、揺れ補正技術というものが知られている。
画像の傾き補正技術とは、基準となる角度からの傾き角を推定し、その傾き角を基に画像を補正する技術である。揺れ補正技術とは、連続して撮影された複数のフレーム画像データにおける背景領域を、同じ位置に固定することにより、撮影時の揺れを補正する技術である。
【０００３】
従来の傾き補正技術は、スキャナやコピー機等、光学読取機器の産業分野で広く利用されていたが、撮影機器の産業分野への応用も、近年、検討されつつある。一方、傾き補正技術の成果物たる工業製品には、画像処理装置、この画像処理装置を組込んだビデオカメラ、撮影処理のためのプログラムがある。
ビデオカメラへの応用が、どのような技術的意義を有するかについて説明する。ビデオカメラで歩行しながら撮影をしている場合、撮影者自身の動きと共に撮影しているビデオカメラも揺れ動いてしまう。そのため、歩行時に撮影された映像は、常に水平状態を保ったまま撮影されているとは限らない。また、ビデオカメラに備えつきのファインダーを見ずに撮影する場合、撮影者は、実際に撮影されている映像を見ている訳ではないため、先と同様に、撮影者が期待している水平状態を保った映像が常に取れている訳ではない。
【０００４】
水平状態から傾いた状態のまま撮影された映像は、視聴に耐えない。この傾いた映像を水平に補正するにあたって、上述したような傾き補正技術が必要になる。かかる傾き補正技術にあたっては、その基準となる角度をどのように定めるかが大きな問題になる。以下の特許文献１には、スキャナから取り込まれた文章画像において、文章画像の傾きを、基準として用いることで、傾き補正を実現する技術が開示されている。
【特許文献１】特開２００５−１８４６８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上述したような画像処理で、高い精度の補正を実現できるかどうかは、補正のための補正パラメータを、精度良く検出できるかどうかが鍵になる。つまり、補正のための補正パラメータを精度良く検出できれば、自ずと、補正後の画像の品位が向上するといっても過言ではない。例えば、傾き補正にあたっては、フレーム画像データから回転角度を検出するため、ハフ変換と呼ばれる検出アルゴリズムを実行する必要がある。ところが、ハフ変換は、画素毎の演算が必要になるため演算負荷が大きく、処理対象となる画像が、１９２０×１０８０という解像度を有している場合、演算量が大きくなり、携帯機器での実装に適さない。
【０００６】
そこで精度を向上させるには、フレーム画像において、どこに何が写っているかという情報を事前に取得しておけばよいように考えられる。何故なら、一般的に、スキャナなどから取り込まれる文章画像では、レイアウトが予め決まっており、光学機器の応用分野では、そのようなレイアウトの情報を手がかりとして角度を推定しているからである。
しかし、ビデオカメラなどで撮影される映像の撮影条件、撮像環境は撮影者・撮影タイミングによって異なるため、前述のレイアウト情報のような有効な事前情報が得られることは期待できない。
【０００７】
本発明の目的は、撮影される内容に関する事前情報を必要とすることなく、補正パラメータを高い精度で検出することができる画像処理装置を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するための画像処理装置は、補正パラメータを用いてフレーム画像データを補正する画像処理装置であって、フレーム画像データにおける絵柄の特徴を表したフレーム特徴データを生成する生成手段と、時間的に前のフレーム画像データからの動きベクトルを、処理対象となるフレーム画像データを構成する各画素ブロックのそれぞれに対して算出する算出手段と、各画素ブロックについて算出された動きベクトルに基づいて、フレーム特徴データ全体のうち、マスクを施すべき範囲を指定する範囲指定手段と、フレーム特徴データのうち、マスクが施された範囲以外の部分から、補正パラメータを検出する検出手段とを備える。
【発明の効果】
【０００９】
上述したように、課題解決手段を具備した画像処理装置においてマスクが施される範囲は、各画素ブロックについて算出された動きベクトルに基づいて指定される。ここで、画像データ上の領域のうち、近景に含まれる物体や人物像等には、前のフレームからの動きベクトルの大きさや動きベクトルの方向が変わったものになることが多く、こうした物体や人物像が存在する部分が、マスクを施すべき箇所として指定されることになる。
【００１０】
このように、近景に含まれる物体や人物像等の近景領域にマスクが施されるので、マスクが施された領域以外の領域、つまり、撮像により得られた画像データ上の領域のうち、実世界における遠景領域に、補正パラメータ検出のための演算処理が実行されることになる。
ここで遠景領域には高いビル等、本来的に水平・垂直となるエッジ成分値を有する物体が含まれていることが多い。具体的な事例を挙げるのなら、高いビルのような構造物は遠景領域に含まれることが多いと考えられる。
【００１１】
このマスクにより残った領域、つまり、建造物等の静止体が写っている可能性が高い遠景領域内の特徴量に、補正パラメータ検出のための演算範囲を絞りこむことにより、構造物等の実世界における水平・垂直成分を有する物体のエッジ等が、補正パラメータとして高い確率で検出されることになる。かかる補正パラメータを用いて画像処理を行えば、傾き補正、揺れ補正といった補正処理によって、高品位な画像が得られることになる。
【００１２】
フレーム特徴データのうち、マスクが施された部分以外から補正パラメータを検出するので、ハフ変換などの補正パラメータ検出のための検出アルゴリズムの実行範囲が、絞りこまれることになる。こうした絞り込みにより、検出アルゴリズム実行のための処理負荷が小さくなり、消費電力を大きく低減させることができる。これにより、携帯機器への画像処理装置の実装を好適に行うことができる。マスクが施される場所は、概して近景領域なので、連続するフレームに対する動きベクトル算出によって指定することができる。かかる動きベクトル算出によって、マスクが施される範囲を決めることができるので、事前情報を必要とすることなく、補正パラメータを高精度に検出することができる。
【発明を実施するための最良の形態】
【００１３】
以下本発明に係る画像処理装置について図面を参照しながら説明する。
（実施の形態１）
本実施形態は、処理対象となるフレーム画像データから、補正パラメータとして傾きを検出して、この補正パラメータを用いて処理対象となるフレーム画像データに対して画像処理を施すための1つの形態である。かかる画像処理には、回転変換がある。
【００１４】
図１は、本発明にかかる画像処理装置が適用される撮像装置の使用形態を示す図である。本図に示すようにユーザは、吊ひもを利用することで、本発明にかかる画像処理装置を組み込んだビデオカメラ１００を身に付けることができ、ハンズフリーカメラワークによる撮影を行うことができる。このビデオカメラ１００の筐体には、記録媒体となる半導体メモリカードを装抜するためのカードスロット１０１や、撮影開始操作を受け付ける録画キー１０２、撮影停止操作を受け付ける停止キー１０３が存在している。これら、録画キー１０２の押下にて、ユーザは、ハンズフリーカメラワークによる撮影処理をビデオカメラ１００に開始させる。そして、撮影により得られたフレーム画像は傾き補正される。傾き補正された画像データは静止画として、あるいは連続して出力されるデータを動画像として符号化した上、例えば半導体メモリカード等の記録媒体に書き込む。
【００１５】
図２は、本発明にかかる画像処理装置が組込まれたビデオカメラ１００のハードウェア構成図である。
ビデオカメラ１００は、撮像デバイス１０、DMAコントローラ２０、フレームメモリ３０、フレームメモリ４０、画像処理エンジン５０、カードドライブ６０から構成される。
（撮像デバイス１０）
撮像デバイス１０は、例えば、CCD(Charge Coupled Device)イメージセンサ，CMOS（Complementary Metal Oxide
Semiconductor）イメージセンサなどの撮像素子を具備している。撮像素子が受光した光量（アナログ値）はＡＤ変換され、所定のタイミング毎に１画面分のデータとして、後述するフレームメモリ３０、フレームメモリ４０に書き込まれる。
【００１６】
（DMAコントローラ２０）
DMAコントローラ２０は、撮像デバイス１０で得られた画像データを、MPUを介することなくフレームメモリ４０、フレームメモリ３０に書き込む。
例えば、連続する２枚のフレームの画像t-1とフレーム画像tの２枚の画像を交互に、予め用意された複数のメモリ領域、フレームメモリ３０及びフレームメモリ４０に書き込む。
（フレームメモリ３０、４０）
フレームメモリ３０、４０は、連続するフレーム画像を格納しておくために、所定のタイミング毎に用意された記憶領域である。フレームメモリは物理的に分離している必要はなく、メモリ（SD-RAM）内の分割された近景領域であってもよい。これらのフレームメモリ３０、フレームメモリ４０のアドレス空間は、後述するMPUからアクセス可能なように所定の方式でアドレス空間にマッピングされる。
【００１７】
（画像処理エンジン５０）
画像処理エンジン５０は、フレームメモリ３０に格納されたフレーム画像に対して、傾き補正のための画像処理を施す。ここで、画像処理エンジン（画像処理装置）は、例えばノイマン型の一般的なコンピュータアーキテクチャに準拠し、バスにMPU、ＲＡＭ、外部スロットアクセス部（メモリカード６０等）が接続される。図中、DSPはフレームメモリに記憶された画像データを処理するためのプロセッサである。
【００１８】
（カードドライブ６０）
カードドライブ６０は、画像処理エンジン５０により符号化がなされたフレーム画像を記録するための外部記録メディア（半導体メモリカード等）に書き込むために用意されるスロットである。
以上が、ビデオカメラ１００のハードウェア構成である。
【００１９】
図３を用いて画像処理エンジン５０の機能ブロックについて説明する。
画像処理エンジン５０は、特徴量抽出部１、線分検出部２、角度推定部３、動きベクトル算出部４、マスク範囲指定部５、マスク部６、傾き補正部７、符号化部８から構成される。
（特徴抽出部１）
特徴量抽出部１は、時刻ｔのタイミングで撮像された画像データであるフレームメモリ３０に保持された画像データの輝度成分に対してエッジ成分を抽出する。エッジを検出するための手法としては、例えば各々の画素におけるエッジ成分をSobelフィルタやCannyフィルタを用いて取得し、取得された値を所定のしきい値と比較する等の方法によりエッジとして検出する。特徴抽出された画像データをフレーム特徴データとしてDPRAMに記録する。
【００２０】
DPRAM内に記録されたフレーム特徴データは、フレーム画像内に存在する被写体の特徴的な輪郭線を表す。
図５（ａ）は、図４に示したフレーム画像tに対して得られたフレーム特徴データを示す。フレーム特徴データは、輝度情報のエッジ成分のデータから構成される。この輝度情報のエッジ成分は、ノイズ除去などで不適切なエッジ成分が除去された後に得られたデータである。かかるフレーム特徴データのうち、エッジでない画素を黒地で、エッジ部分を白で示した画で示す。図中の白抜きの線分は、エッジ成分であると判定された画素の集合であり、フレーム画像に存在していた人物及び構造物の輪郭が含まれる。
【００２１】
（動きベクトル算出部４）
動きベクトル算出部４は、時刻ｔの画像データを記録するフレームメモリ３０の画像データと、時刻t-1の画像データを記録するフレームメモリ４０に格納された画像データとを比較することにより、時刻ｔの画像データについてブロック単位の動きベクトルを算出して、そのスカラ量である動き量を取得する。
【００２２】
時刻ｔの画像データの所定ブロック（例えば、縦１６画素×横１６画素からなるブロックの画素値）と、フレーム画像t-1の画像データに含まれる同じサイズの範囲の画素のうち、相関値の高い範囲を検出することにより時刻ｔの所定ブロックが、フレーム画像t-1のどの位置に対応するかを検出することにより実現できる。
例として、ブロックマッチング法を詳細に説明する。フレームはブロック単位で区切られており、そのブロックの大きさは予め設定された大きさ、例えば、横１６画素×縦１６画素などで統一されているとする。ブロックマッチング法は、所定の１ブロック内に含まれる画素（例えば、１６×１６の画素）は、ブロック単位では動きが一様であると仮定して、現在の画像内を複数のブロックに区切り、現フレームの所定ブロックが、他（のあるいは現在）の画像内のどの画素値（１６×１６）と相関が高いか検索することにより、所定ブロックがフレーム間でどのように動いたのかの動きの対応付けを行う手法である。動きベクトル検出部４は、フレーム画像を構成するブロック単位に、フレーム画像t-1とフレーム画像ｔとでマッチングを行い、SAD(Sum
of Absolute Difference)などの類似度を計測する手段を用いて、ブロックごとに最も類似度の高いブロックを探索する。探索範囲は、該当ブロックから一定範囲内とし、その範囲内で現在のフレームに含まれるブロックごとに動きベクトルを検出する。
【００２３】
尚、DSPがMPEG等の動画符号化用の専用DSPである場合は、フレームメモリ３０、４０に連続して保持された画像データを動画符号化する過程でDSPが取得する動きベクトルを、動き量として用いることができる。
動き量検出について、撮像された画像データを用いて具体的に説明する。
図４（ａ）は、時刻t-1のタイミングでフレームメモリ３０に書き込まれた画像データ、及び、時刻ｔのタイミングでフレームメモリ４０に書き込まれた画像データを示す図である。ここで、図４では、フレーム画像t-1からフレーム画像tにかけて人物は大きく左に移動しているとする。その人物の動きに追従して、撮影者はビデオカメラ１００を左方向に人物の移動量に比して小さく少し移動させていた場合である。（図４（ａ）によれば、フレーム画像t-1、フレーム画像tに撮影された両画像は、水平から20°傾いた状態で撮影されている（尚、フレーム画像t-1は説明の便宜上直前（１フレーム前のフレーム）とした）。
【００２４】
図４（ｂ）は、動き量を検出する上で行われるブロック分割を示す図である。フレーム画像が、横７２０画素×縦４８０画素の解像度をもっているとする。例えば各々が横１６画素×縦１６画素のサイズを有する複数のブロックに分割される。これらのブロックには、フレーム画像の左上座標を原点とした座標系が与えられており、各ブロックは、例えば左上のブロックは、（０，０）、（１５，０）、（０，１５）、（１５，１５）の４点の座標を取り囲む座標となり、ブロック中の端点の座標のいずれか（例として(0,0)
(15,0), (31,0), (0,15), (15,15), (31,15)というような）座標を用いて一意に識別することができる。
【００２５】
図６（ａ）は、図４（ａ）に示す連続するフレーム画像が撮影されたケースにおける動きベクトルの検出結果を模式的に示したものである。図中の矢印は、検出された動きベクトルの方向及び大きさを模式的に示している。フレーム画像のうち、人物像が占有している範囲（範囲に含まれるブロック）からは、各々大きい動きベクトル（範囲内のブロックの動き量平均を“１”の動きベクトルとする）が検出される。
【００２６】
（マスク範囲指定部５）
マスク範囲指定部５は、マスク部６がマスクを行うにあたって、フレーム特徴データにおけるどの範囲に、マスクを施すべきかという範囲指定を行う。この範囲指定にあたって、マスク範囲指定部５は、各ブロックにおける動きベクトルの大きさの平均値（あるいは動きベクトルの大きさを変形した値）と、各ブロックの動き量の比較を行うことで、画像中の近景領域の分離を行い、遠景領域か否かを示す情報を抽出する。そして、フレーム特徴データのうち、分離された近景領域にあたる範囲を、マスクを行うべき範囲として指定する。
【００２７】
まず、マスク範囲指定部５は、画像全体が極端に大きく動いていない場合にのみ遠景領域か否かの判定を行うため、前処理を行う。
前処理においては、フレーム画像全体における、動き量（たとえば、全画素ブロックの動き量の平均値）が、所定の上限値より大きいかどうかを判定する。動き量の平均値が上限値より大きいと判定された場合は、ビデオカメラ１００が大きく揺れたため、フレーム画像がブレ画像になっているということが考えられる。この場合、マスク範囲指定部５は、フレームメモリ３０に格納されているフレーム画像tを廃棄させ、特徴量抽出部１による特徴量抽出を中止（アボート）させる。これにより次のフレーム画像が、特徴量抽出部１の処理対象となる。このような前処理により、画像全体が大きく動いているためブレているようなフレーム画像は、近景領域分離の対象から除外されることになる。以上がマスク範囲指定部５による前処理である。
【００２８】
次に、近景領域分離は、以下の手順で行われる。
時刻ｔのフレーム画像を構成する各ブロックの動き量と、所定の分割指標とを比較する。ブロックの動き量が所定の分割指標よりも大きい場合は近景領域とし、小さい場合は遠景領域（近景領域でない領域）として判定する。
ここで、分割指標の値は、絶対量（事前に指定されている値）でもよいし、相対量（全ブロックの動き量の平均値等、画像データの中で相対的に求められる値）であってもよい。
【００２９】
相対量の場合は、マスク範囲指定部５は、所定のタイミングの画像データについて、動き量の平均値・中央値等を算出することで前述の分割指標を求め、この指標と各ブロックの動き量とを再度比較することで、近景領域の判定を行う。
以上の判定後、ブロック単位の遠景領域であるか否かの判定結果（２値データ）は、ブロック位置座標とともに保持される。
【００３０】
図６（ｂ）は、前述の判定により近景領域であると判定されたブロックについての位置座標の保持形式を示す。
図６（ｃ）は、このブロックの位置座標を用いて、図４（ｂ）に示したブロック端点座標を連結することにより形成された近景領域を模式的に示した図である。近景領域は、図６（ｃ）に示すように、１６画素×１６画素のブロック形状を用いて近似されることになる。
【００３１】
以上のように、マスク範囲指定部５では、フレーム画像tのそれぞれのブロックが近景であるか遠景であるかの判定処理を行う。
（マスク部６）
マスク部６は、特徴抽出部１で得られたフレーム特徴データとマスク範囲指定部５で得られた近景領域（ブロック）を示す情報とを入力しマスク処理を行う。ここでのマスクは、マスクパターンを構成する各画素と、フレーム特徴データを構成する各画素との論理演算を行うことでなされる。図７（ａ）は、フレーム特徴データに存在するエッジ情報に、傾きを表すエッジ群と、傾きを表さないエッジ群とが存在していることを示す図である。具体的には、エッジ情報のうち、動き量の大きい領域内（近景領域）に存在する人物画にあたる部分のエッジ情報は傾き（実世界での垂直）を表さず、動き量の小さい領域内（遠景領域）に存在する構造物にあたる部分のエッジ情報は傾き（実世界での垂直）を表す。何故なら、ビル等の構造物は地面に対して垂直に建ててあり、そのエッジの垂直成分は、垂直を表すためである。
【００３２】
図７（ｂ）は、マスク部６がマスクに用いるマスクパターンの一例を示す図である。本図におけるマスクパターンは、図６（ｃ）に対応するものであり、近景領域の部分が黒一色になっており、遠景領域が白一色になっている。かかるマスクパターンとの論理演算が、各画素毎になされれば、その結果としては、近景領域に対応する特徴量のみが抽出されることになる。
【００３３】
マスクパターンの生成の具体的な手順は、以下の通りである。まず、フレーム画像のうち、近景領域であると判定された領域を００００、遠景領域であると判定された領域をFFFF値としてマスクパターンを作成する。図７（ｃ）は、図５（ａ）のフレーム特徴データから得られたマスクパターンを示す図である。
次に、マスクパターンと、フレーム特徴データとの論理演算（AND演算等）を実行する。図８（ａ）は、フレーム特徴データとマスクパターンとから傾き検出に利用されるフレーム特徴データの算出を模式的に示す図である。図８（ａ）のように、図５のフレーム特徴データの示すエッジから、近景領域と判定された領域のエッジ情報が削除された（遠景領域に該当する領域のエッジを含む）フレーム特徴データが生成される。
【００３４】
このような処理により、近景領域でない（遠景領域である）と判定された領域における特徴量のみを残すようにする（尚、以下ではマスク範囲指定部５による分離と、マスク部６によるマスクとを併せて、“近景領域分離”と呼ぶ。）。
（線分検出部２）
線分検出部２は、マスク部６の出力により“近景領域分離”されたフレーム特徴データを用いて、図８（ａ）のフレーム特徴データから回転角度を示す角度成分を検出する。画像データから角度成分を検出する方法として、一般に知られたハフ変換等を用いることができる。尚、角度成分の検出には、絵柄の輪郭をなす線分を検出し、検出した線分を基に画像の角度成分を検出する必要があり、ためのアルゴリズムは、例えば特開2007-141167等に開示されている等の方法を利用することができる。
【００３５】
また、本発明において画像から角度成分を検出するための、より好ましい方法として、発明者はハフ変換の代わりに濃度勾配を用いる手法を用いた。濃度勾配法もハフ変換と同様に、画像上の線分情報を利用し、傾き角度を検出する手法であり、両手法において、共通して用いる画像特徴は、画像中のエッジ情報である。ハフ変換と異なるのは、線分情報が画像上では濃度の勾配として表れる事を積極的に利用し、線分を直接求める代わりに、濃度勾配の総体として線分を扱う事である。線分が存在するという事は、画像上で線自体の画素値とその周辺の画素値に比較的大きな差(濃度の勾配)が存在しており、これを検出する事で、濃度の勾配の総体としての線分情報を利用する事が可能となる。
【００３６】
このように濃度勾配法を利用する事で、ハフ変換と比べ、計算コストが低く、かつ濃度勾配の総体として線分情報を利用可能なため、ノイズに強く、安定した傾き角度が検出可能である。また、ハフ変換を利用した場合は処理の並列化が困難であるが、濃度勾配を用いた場合は並列化が容易であるという利点もある。また、ハフ変換を用いる際はノイズを低減させるため、短い線分を除去し、長い線分のみを利用するなどの対策が練られるため、一定の長さ以上の線分が必要となる。しかし、カメラを使用する状況は様々考えられるため、常に一定以上の長さの線分が得られるとは限らない。一方で、濃度勾配法は、濃度勾配の総体として線分情報を扱うために、線分情報に一定の長さを必要としない。そのため、濃度勾配法は様々な環境下においてもハフ変換で得られる結果よりも、安定した結果が得られるという利点がある。
【００３７】
（角度推定部３）
角度推定部３は、線分検出部２により検出された線分の長さと角度情報を元に、画像データが、水平軸からの何度傾いたものであるかの傾き角度を推定する。
まず、フレーム単位に線分検出部から出力された角度情報を入力して、所定単位の角度毎のヒストグラムを生成する。ここでは、例えば、１°単位で入力された線分の角度情報を、１０°単位の角度情報にまとめ−９０°〜９０°までの範囲でヒストグラム化する。
【００３８】
図８（ｂ）の破線で示すヒストグラムは、従来の方法により、マスク処理部によりフレーム特徴データにマスクを施さない場合の画像データ（動き量が大きい近景領域を含むフレーム特徴データ）から算出された角度情報に基づくヒストグラムである。図８（ｂ）のヒストグラムのうち破線で示されるグラフでは、人物像（近景）にあたる部分から検出されたエッジ情報の発生頻度も加味されているので、人物像の傾きを示す角度の頻度が最も高くなっている。
【００３９】
一方、本発明による角度情報を図８（ｂ）の実線で示すヒストグラムで示す。マスク処理部によりフレーム特徴データにマスクを施した結果、動き量が小さい遠景領域のエッジ画像の線分から抽出された角度情報のヒストグラムである。
図８（ｂ）の実線でしめすヒストグラムでは、人物像のエッジ方向にあたる角度（第１の方向）の頻度は低くなっており、これの代わりに、（遠景にある）静止体像の角度（第２の方向）の頻度が高くなっているので、この静止体像の角度(20°)が、正しい垂直成分として推定できることになる。
【００４０】
角度推定部は、ヒストグラムのピークに相当する角度（この場合２０°）を抽出し、傾き角度として傾き補正部に出力する。
以上の線分検出部２、角度推定部３は、補正パラメータの1つである、傾き角度の検出を行うものなので、線分検出部２と、角度推定部３との組みは、“補正パラメータ検出部９”に該当する。
【００４１】
（傾き補正部７）
傾き補正部７は、角度推定部３が推定した角度で、フレーム画像tの傾き補正を行う。
補正の手法としては、Affine変換などを採用する。近景領域のマスクがなされたフレーム画像に対して、角度推定部３が角度推定を行った場合、ヒストグラムは図９（ａ）のようになり、20°という角度が推定されるので、かかる角度に基づき傾き補正部７が回転補正を行えば、図９（ｂ）のような補正画像がえられる。
【００４２】
(符号化部８)
符号化部８は、傾き補正部７により傾き補正が施されたフレーム画像を用いて、例えばｉ）傾き補正されたフレーム画像を静止画として、又は、ｉｉ）傾き補正の上連続して出力された画像データを動画像符号化により動画像として符号化し、カードドライブ６０による記録に供する。
【００４３】
以上が、本発明にかかる撮像装置及び画像処理装置の機能である。
このように、本発明では、実世界における構造物の線分を基準角度として角度補正を行う確率を向上させるために、遠景領域のエッジ成分であるフレーム特徴データを用いて（近景領域の影響を除外したフレーム特徴データから）回転角度を示す角度成分の抽出を行う。
【００４４】
これにより、例えば、ｉ）本来的に水平・垂直成分値を多く含む地上に垂直に立てられた構造物が多く含まれていると考えられる遠景領域を抽出し、又は、ｉｉ)比較的近景に含まれる物体（前述人物像）の前述エッジ成分の影響を除外することができ、真の水平・垂直線分を基準として角度補正をする確率を向上させることができる。
(マスク部６が、特徴量抽出後にマスクを行う理由)
上述したような処理過程において、マスク部６が、特徴抽出部１による特徴量の抽出後にマスクを行っているのには理由がある。特徴量の抽出前に近景遠景のマスク処理を行うと、近景領域と遠景領域との境界についての擬似輪郭が余分に検出され、この擬似輪郭のエッジ情報も角度を推定するための特徴として算出されてしまう。図８（ｃ）は、近景領域と遠景領域との境界における擬似輪郭に対して生成されたエッジ情報を示す図である。
【００４５】
このエッジ情報はノイズとなるため、検出結果に悪影響を及ぼしてしまう。このようなエッジ情報を除去するため、特徴抽出部１で特徴を抽出した後に、近景領域及び遠景領域でマスキング処理を行う。こうすることで、純粋に遠景領域にあるエッジ情報のみを利用することができるため、真の水平・垂直成分を基準として角度補正をする確率を向上させることができる。こうして、傾き角度検出の精度を向上させる目的のため、マスク部６が、特徴抽出部１による特徴量の抽出後にマスクを行っている。
【００４６】
尚、画像処理エンジン５０は、動き検出部として動画像符号化用のDSPを用いてもよい。このDSPが検出する動きベクトルを、マスク範囲指定部に供する動き量とすることで、汎用的なプロセッサを用いて、本発明による画像処理装置を実現することができる。
尚、本実施の形態では、遠景領域の抽出（近景領域の判定）に、動きベクトル算出部４の出力によりブロック毎の動き量の値の絶対値（あるいは相対値）との比較を用いたが、これに限るものではない。
【００４７】
例えば、Shape from Focus(SFF)といった手法のように、高速に焦点距離を変化させた画像を複数枚取得し、焦点位置を検出することで、カメラからの画像データ中の物体の距離を推定し、近景遠景領域の分割を行う事も可能である。
また、ビルなどのような幾何学模様のようなものが存在するような領域をテンプレートマッチングなどの手法で照合することにより、類似性が高い領域を「構造物の領域（遠景領域）」として、近景遠景領域の分割をする事も可能である。
【００４８】
（実施の形態１の変形例）
実施の形態１で説明したマスク範囲指定部、マスク部、線分検出部、角度推定部、傾き補正部等の各機能は、図１０、図１１のフローチャートに示される処理手順を、MPUに実行させるようなプログラムとして実装することもできる。
図１０は、フレーム画像に対する近景領域分離の処理手順を示すフローチャートであり、図１１は、特徴量抽出から角度推定までの処理手順を示すフローチャートである。図１０のフローチャートのうち、ステップＳ２は動きベクトル算出部４の処理、ステップＳ３〜ステップＳ１２はマスク範囲指定部５の処理である。図１１のフローチャートのうち、ステップＳ２３〜ステップＳ２７はマスク部６の処理、ステップＳ２８は線分検出部２の処理、ステップＳ２９〜ステップＳ３１は角度推定部３の処理に該当する。
【００４９】
以降、ビデオカメラ１００が行うべき、ソフトウェアの処理について説明する。
図１０、図１１のフローチャートを実現するプログラムは、リアルタイムOS上では、複数のタスクとして扱われるので、カーネルは、かかるプログラムをRAMにロードすることで、かかるプログラムについてのタスクを生成する。以降、撮影開始を意味するユーザ操作がなされ、このユーザ操作に従った割込みが発生し、タスクのプリエンプションが発生すれば、図１０のフローチャートに示した処理が開始されることになる。
【００５０】
本フローチャートのステップＳ１は、フレーム画像が得られたかを待つという事象成立待ちループを形成している。フレーム画像が得られれば、ステップＳ２〜ステップＳ１２からなる処理に移行する。この処理は、フレーム画像tを構成するブロックのそれぞれについて、動きベクトルを算出して(ステップＳ２)、全ブロックの動き量の平均をとり、指標とする(ステップＳ３)。これら処理を行った後、ステップＳ４の判定を経て、ステップＳ６〜ステップＳ１１のループ処理を実行する。
【００５１】
ステップＳ４は、指標を得るため算出した動き量の平均値が、所定の上限値より大きいかどうかの判定である。このような上限値より大きいということは、ビデオカメラ１００が大きく揺れたため、フレーム画像がブレ画像になっているということである。この場合、フレームメモリ３０に格納されているフレーム画像tを廃棄して(ステップＳ５)、次のフレーム画像が撮影されるのを待つ。かかるステップＳ４、ステップＳ５が存在するため、画像全体が大きく動いているようなフレーム画像は、傾き補正技術の対象から除外されることになる。そして適度に、近景領域、遠景領域が存在しているフレーム画像が、傾き補正技術の対象になる。
【００５２】
続くループ処理は、フレーム画像を構成するブロックのうち、画面左上端に位置するもの(最初のブロック)を、ブロックuに設定して(ステップＳ６)、ステップＳ７からステップＳ１１の処理を繰り返すというものである。
ステップＳ７からステップＳ１１の処理は、ブロックuの動き量が指標より小さいかどうかの判定を行い(ステップＳ７)、小さければ、ブロックuは、遠景領域に帰属するものとして分類し(ステップＳ８)、大きければ、ブロックuは、ブロックuが近景領域に帰属するものとして分類する(ステップＳ９)との処理を行ったうえ、ステップＳ１０を経て、次のブロックをブロックuとする(ステップＳ１１)という一連の処理からなる。
【００５３】
ステップＳ１０は、このループ処理の終了条件を規定しており、変数uが、ブロック総数mを越えない限り、本ループ処理が繰り返されることになり、越えれば、本ループ処理を抜けて、近景領域に帰属するブロックの座標を、領域情報として格納した上で(ステップＳ１２)、ステップＳ１に移行する。
続いて、図１１の処理について説明する。図１１のフローチャートでは、フレーム画像tの特徴量を抽出した上で(ステップＳ２１)、近景領域に属するブロックを３２ビットの画素値0000で表し、遠景領域に属するブロックを、３２ビットの画素値FFFFで表したマスクパターンを作成する(ステップＳ２２)。その後、ステップＳ２３〜ステップＳ２７のループ処理に移行する。本フローチャートは、画面左上端に位置するブロックを、最初のブロックとして、ブロックvに設定して(ステップＳ２３)、ステップＳ２４〜ステップＳ２７を繰り返すというものである。このステップＳ２４〜ステップＳ２７の処理は、フレーム特徴データにおけるブロックvの画素値と、マスクパターンにおけるブロックvの画素値とのマスク処理のための論理演算を実行して(ステップＳ２４)、論理演算の結果を、傾き検出用のブロックvとして格納して(ステップＳ２５)、その後、次のブロックを、ブロックvに代入するという処理を(ステップＳ２７)、変数vが特徴量の総数nを越えるまで繰り返すというものである(ステップＳ２６)。
【００５４】
画面左上端に存在するブロックから画面右下端に存在するブロックまでに対して処理を行い、かかるループ処理を終えれば、論理演算により得られたブロックからなる、フレーム特徴データが得られることになる。その後、フレーム特徴データから線分を検出して(ステップＳ２８)、各線分の傾きを算出し(ステップＳ２９)、算出された傾きのヒストグラムを得てから(ステップＳ３０)、ヒストグラムにおいて最も頻度が高い角度を、撮像デバイス１０における撮像面の傾きを示す角度であるとして推定結果を下し(ステップＳ３１)、その後、ステップＳ２１に移行する。
【００５５】
以上のように本実施形態によれば、フレーム間の動きベクトルの大きさを利用して近景領域の分離を行い、遠景領域から算出された画像の特徴のみを傾き角度検出法に用いることで、人物などが大きく画像内に入り込んでいるような映像であっても、精度良く傾き角度の推定をし、推定された角度をもとに傾き補正することができる。
（第２実施形態）
図１２は、本発明の第２実施形態に係る画像処理装置のハードウェア構成を示す図である。図１２において、図１と同じ構成要素については同じ符号を用い、説明を省略する。      
【００５６】
図１２に示したように、本発明の第２実施形態は、ロール軸方向の角度成分を検出する事ができる慣性センサ７０が追加されている点と、線分検出部２が、このセンサ７０からの出力を利用する点とが第１実施形態と異なる。このロール軸方向の角度成分を検出する事ができる慣性センサとしては、加速度センサ、ジャイロセンサなどがあげられる。
【００５７】
慣性センサ７０は、撮像装置１０でフレーム画像tが撮影された時刻のロール軸方向の角度を取り込む。この際の値は、慣性センサから出力される生の値であっても、何らかの手段を用いて補正された値であっても構わない。
以上が慣性センサ７０について説明である。
続いて、第２実施形態に係わる線分検出部２の改良点について説明する。
【００５８】
線分検出部２は、傾き角度検出法で検出された線分の長さと角度情報からヒストグラムを作成する際に、慣性センサ７０からの出力となる角度範囲を基に、作成するヒストグラムの角度範囲を制限し、制限された区間内のヒストグラムから角度の推定を行う。
撮影しているビデオカメラ１００などの筺体自身が動いてしまっている場合、センサ値は、慣性の影響を受け、実際の角度とは異なる角度が出力されることがある。そのため、取り込んだ値±x°の範囲が、フレーム画像tが撮影された時刻の実際の角度範囲であるとして、傾き角度検出法で検出された線分から作成されるヒストグラムの角度範囲を前記センサ値から定められる角度範囲に狭め、その角度範囲内で傾き角度の推定を行う。
【００５９】
図１３（ａ）は、近景領域分離により得られるヒストグラムを示す。このヒストグラムでは、正しい角度である２０°以外に、-１０°当たりに頻度のピークが存在するので、正しい角度を推定することができない。図１３（ｂ）は、センサ値に基づき狭められた推定範囲を示す図である。センサ値を用いて推定する角度範囲が狭められれば、正しい角度である２０°の頻度が最も高くなり、かかる角度を傾き補正に用いることにより、正しい画像を得ることができる。
【００６０】
（第３実施形態）
本実施形態は、カメラ保持者の存在する座標系自身が移動する場合の改良である。カメラ保持者が車などの移動物に乗っている場合のように、カメラ保持者の存在する座標系自身が動く場合は、構造物の存在する領域の移動量が相対的に大きくなる場合がある。そのような場合、第１実施形態のように、動きベクトルの大きさのみで傾き補正に使用する領域を判定してしまうと、構造物が存在する領域が近景領域であると誤判定される場合があり、その場合、構造物の存在する領域の特徴量から傾き角度を求める事ができない。このような場合、遠景領域から傾き角度を推定する上記の枠組みでは対応できない。
【００６１】
そこで本実施形態では、画像データ中に存在する角度範囲の度数を示すヒストグラムを遠景・近景のそれぞれで求め、それぞれの領域毎に、信頼度を算出して、その信頼度が最も高い領域から得られた傾き角度を補正パラメータとして採用することにする。
本実施形態における傾きの推定について、図１４、図１５を参照しながら説明する。
図１４（ａ）は、第３実施形態における傾き推定処理において、題材となるフレーム画像データであり、バスの車内で撮影された画像データを示す。かかる画像データが処理対象となるフレーム画像データである場合、かかるフレーム画像データに対して特徴量抽出を行うことで、同図（ｂ）のフレーム特徴データが得られる。図１４（ｂ）は、図１４（ａ）のフレーム画像データに対して特徴量抽出を行うことにより得られるフレーム特徴データを示す図である。第１実施形態では、こうして得られたフレーム特徴データに対して近景領域分離を行い、そうして分離された近景領域に対してマスクを行ったが、本実施形態では、近景領域分離で得られた近景領域と、分離にて残った遠景領域とのそれぞれに対してマスクを実行する。
【００６２】
図１４（ｃ）は、近景領域に対してマスクが施されたフレーム特徴データを示す。図１４（ｄ）は、遠景領域に対してマスクが施されたフレーム特徴データを示す。このようにして、近景領域にマスクが施されたフレーム特徴データ、遠景領域にマスクが施されたフレーム特徴データのそれぞれについてヒストグラムを求める。これを使ってヒストグラムの範囲を制限する。
【００６３】
図１５は、マスクが施されたフレーム画像データと、これらのフレーム画像データに対して作成されたヒストグラムとを示す図である。これらのヒストグラムでは、８０°を中心とした角度範囲α１、９０°を中心とした角度範囲α２が出現していることがわかる。この角度範囲α１は、窓越しに移る車外の光景における線分の角度範囲であり、角度範囲α２は、車内に存在する座席と、乗客とにおける線分の角度範囲であるものと仮定する。こう仮定した場合、角度範囲α1,α2のそれぞれについて信頼度を算出する。角度範囲α1では、８０°という角度の度数が極めて高く、８０°付近の度数は低いものになっている。このように、８０°という角度が突発的になっているので、角度の散らばり度合が小さく、角度範囲α1における信頼度は高いものになっている。一方、角度範囲α2では、９０°付近の角度の度数が、まんべんなく出現していて、角度の散らばり度合が高く、角度範囲α2における信頼度は低いものになっている。この場合、これらの信頼度には、遠景領域＞近景領域という関係が成立するので、補正パラメータとしては、角度範囲α１内の角度が選択されることになる。
【００６４】
このように、構造物から得られた傾き角度を含む角度範囲は、水平からの傾きを表す角度が多く表れるため、突発性が大きくなっており信頼度は高くなる。一方、構造物以外の領域から得られた傾き角度を含む角度範囲は、推定した場合、突発性が小さいため、その信頼度は低くなる。
以上が、信頼度付き角度推定の処理手順の概要である。
【００６５】
以降、第３実施形態に係る画像処理装置の内部構成について説明する。
図１６は、第３実施形態に係る画像処理装置の内部構成を示す図である。本図は、図３をベースとして作図されており、このベースとなる構成と比較して、マスク部６が遠近両用マスク部５１に置き換えられ、線分検出部２、角度推定部３が、信頼度付角度推定部５２、傾き角度選択部５３に置き換えられている点が異なる。図１６の構成要素のうち、図３と同じものについては同じ符号を用い、説明を省略する。
【００６６】
（遠近両用マスク部５１）
遠近両用マスク部５１は、遠景領域のみを取り出すマスクと、近景領域のみを取り出すマスクである。遠景・近景それぞれの領域を個別に取り出す事で、遠景領域・近景領域のそれぞれから傾き角度の検出が可能となる。
（信頼度付角度推定部５２）
信頼度付角度推定部５２は、遠近両用マスク部５１で生成された遠景・近景の両方の領域において、前記ハフ変換または濃度勾配法で傾き角度の推定を行う。この際、推定された傾き角度がどの程度確からしいかを表す信頼度を生成する。この信頼度は、傾き角度ヒストグラムを生成後、センサで指定された角度範囲内で最大の度数を有する角度が傾き角度であると判定される際に、推定された傾き角度がヒストグラム上でどれだけ突発しているかを表す指標である。
【００６７】
（傾き角度選択部５３）
傾き角度選択部５３は、信頼度付角度推定部５２で生成された遠景・近景の傾き角度の信頼度の比較を行う。構造物の存在する領域から得られた傾き角度の信頼度は、高いピークを持つため、信頼度の高い傾き角度が構造物の存在する領域から得られたものであるとし、信頼度の高い傾き角度を、正しい傾き角度として選択する。また、傾き角度を生成した領域が3つ以上存在する場合、生成した傾き角度のうち最も高い信頼度を有する傾き角度を、正しい傾き角度として選択する。
【００６８】
信頼度を用いた補正パラメータ選択を行うための画像処理装置の処理としては、以下のものとなる。
以上の構成において、信頼度付角度推定部５２は、遠景に存在する領域、近景に存在する領域それぞれから信頼度付傾き角度を求めるので、構造物の情報のない領域から得られた角度の信頼度は、構造物の存在する領域から得られた角度の信頼度よりも低くなる。そのため、信頼度を比較する事で、動的に使用する領域の選択が可能となる。このように傾き角度選択部５３で信頼度に基づいて傾き角度を指定する事で、カメラ保持者あるいはカメラ保持者の存在する座標系が動く場合においても、構造物の存在する領域を使用する事ができるため、高精度な傾き角度推定が行える。
【００６９】
図１７は、第３実施形態に係る信頼度付き傾き補正処理の処理手順を示すフローチャートである。本図左脇の括弧記号｛は、本フローの各ステップが、どの構成要素に割り当てられているかを示す。ステップＳ４１は特徴量抽出部１に割り当てられており、ステップＳ４２は遠近両用マスク部５１に、ステップＳ４３〜ステップＳ４６、ステップＳ５１〜ステップＳ５５は信頼度付角度推定部５２に、ステップＳ５６〜ステップＳ５８は傾き角度選択部５３に割り当てられていることがわかる。
【００７０】
以降、各ステップについて説明する。ステップＳ４１は、フレーム特徴データに対する特徴抽出であり、この特徴抽出の結果を用いて、近景領域についての信頼度S1を算出する処理(ステップＳ４２〜ステップＳ４６)、遠景領域についての信頼度S2を算出する処理(ステップＳ５１〜ステップＳ５５)をパラレルに実行し、近景領域における信頼度S1、遠景領域における信頼度S2を得て、信頼度S1が信頼度S2より大きいかどうかの判定を行い(ステップＳ５６)、判定結果に応じて。傾きを設定する(ステップＳ５７、ステップＳ５８)というものである。
【００７１】
近景領域の処理は、ステップＳ４２において遠景領域に対してマスクを設定し、ステップＳ４３において近景領域における傾きの度数分布を示すヒストグラムを作成する。そしてステップＳ４４では、慣性センサ７０で推定した角度範囲によってヒストグラムを区切り、ステップＳ４５では、最大度数の角度を、近景領域における傾きθ1とする。そしてステップＳ４６では、最大度数周辺の度数の平均／分散から信頼度S1を求める。
【００７２】
遠景領域に対する処理は、ステップＳ５１において近景領域に対するマスクをセットし、ステップＳ５２において遠景領域における傾きのヒストグラムを作成する。ステップＳ５３では、慣性センサ７０で推定した角度範囲を用いてヒストグラムを区切り、ステップＳ５４では、最大度数の角度を遠景領域での傾きθ2とする。ステップＳ５５では、最大度数周辺の度数の平均又は分散から、信頼度S2を求める。
【００７３】
こうして得られた信頼度S1、信頼度S2が、信頼度S1＞信頼度S2の関係を満たす場合(ステップＳ５６でYes)、近景領域から得られた傾きθ1をフレーム特徴データの傾きとして採用する(ステップＳ５７)。信頼度S2＞信頼度S1の関係を満たす場合(ステップＳ５６でNo)、近景領域から得られた傾きθ2をフレーム特徴データの傾きとして採用する(ステップＳ５８)。
【００７４】
以上のように本実施形態によれば、フレーム間の動きベクトルの大きさを利用して領域の分離を行い、分離した領域それぞれの画像の特徴のみを傾き角度検出法に用いて信頼度と傾き角度を算出し、信頼度の高い傾き角度を採用する事で、ｉ）カメラ保持者自身が移動する場合、及びｉｉ）カメラ保持者の存在する座標系が移動する場合の両場合においても、構造物の存在する領域から得られる傾き角度を動的に選択し、検出する事が可能となる。
【００７５】
（第４実施形態）
これまでの実施形態は、動き量に基づき、傾き補正を実行するというものであったが、本実施形態では、画像揺れに対する揺れ補正を実行するというものである。画像揺れとは、撮影系の動きであって、手ブレよりも大きいものをいう。
そして揺れ補正とは、連続フレームにおける遠景領域の座標を合わせることで、遠景領域のスタビライズを行う技術である。図１８（ａ）は、揺れ補正の対象となる、連続フレームの一例を示す図である。この連続フレームを構成する画像データは、競馬場で疾走する馬を追うように撮影された動画であるが、これらは馬を追うようなカメラワークで撮影されたため、遠景領域にある垂直柱の位置は、大きく変位している。遠景領域にある垂直柱の位置がフレーム毎に異なるような動画を再生に供しようとすると、フレーム毎に、垂直柱が変化するので、見ている者の酔い、つまり“映像酔い”を招く。
【００７６】
またビデオカメラで歩行しながら撮影をしている場合、映像が傾いてしまうだけでなく、撮影者自身の動きと共に撮影しているビデオカメラも揺れ動いてしまう。そのため、撮影された映像には揺れが印加されてしまい、視聴に耐えない。ハンズフリーカメラワークの実用化を考えた場合、かかる映像酔いにも考慮が必要なので、揺れ補正を施すことにしている。
【００７７】
ここで図１８（ａ）によると、フレームt-1の画像データ、フレームtの画像データにおいて、垂直柱は共通に出現しているので、かかる垂直柱の座標を同じにすれば、遠景領域を固定化することができる。ここでフレームtの画像データにおいて垂直柱に(X1,Y1)(X2,Y2)という2つの特徴点が存在しており、フレームt-1の画像データにおいて垂直柱が(X4,Y4)(X5,Y5)という2つの特徴点が存在している場合、図１８（ｂ）に示すように、フレームt-1の画像データの(X4,Y4)(X5,Y5)を、フレームtの画像データの(X1,Y1)(X2,Y2)に一致するように変換するための回転行列Rを求める。このように、回転行列Rを求めることを“揺れ量の推定”という。かかる揺れ量の推定によって回転行列Rが求められれば、フレームt-1の画像データを構成する各画素を、回転行列Rに基づき変換することで、垂直柱の座標をフレームt-1の画像データと、フレームtの画像データとで一致させる。以上の処理により、見る者の映像酔いを招かない連続フレームを得ることができる。
【００７８】
図１８（ｃ）は、揺れ補正が施されたフレーム画像t-1の一例である。かかる揺れ補正の結果において、フレームt-1の画像データでは、画像データにおける垂直柱の座標が、フレームtの画像データと同じ場所になっているので、右端部分に、余白が生じているものの、動画再生において映像酔いが発生することはなくなっている。固定された遠景領域を背にして、被写体が移動してゆくような画像データが得られる。そしてS/Nのうち、Sが向上して、Nが低下するので、S/Nが高くなるという効果がある。
【００７９】
揺れ補正については以下の参考文献に記載があるので、詳細については、この参考文献を参照されたい。
“Robust and Real-time Rotation Estimation of Compound Omnidirectional
Sensor(2007 IEEE International Conference on Robotics and Automation Roma,Italy
10-14 April 2007)”
「III.MOTION AND MOTION COMPUTATION OF DISTANT FEATURE POINTS」
以降、揺れ補正の原理について、簡単に説明する。
【００８０】
フレーム間の揺れ量を推定する際には、フレームt, t-1間のカメラの動きを検出する事になる。このフレーム間の揺れ量を画像情報から正しく検出するためには、両フレームに共通に存在する座標(図１８における(X1,Y1)(X2,Y2)(X4,Y4)(X5,Y5))を得る必要がある。これら(X1,Y1)(X2,Y2)(X4,Y4)(X5,Y5)のようにフレーム画像t-1、フレーム画像t間で安定して現れる特徴を、“揺れ特徴(t-1,t)”という。また、揺れ特徴(t-1,t)を構成する各フレーム特徴データの一点を“特徴点”という。
【００８１】
揺れ特徴(t-1,t)を検出する観点から画像の領域を大きく分けると、カメラから被写体までの距離が近い領域と、カメラから被写体までの距離が遠い領域となる。カメラから被写体まで距離が遠い領域上では、フレーム間の動きが小さくなるため、揺れ特徴(t-1,t)を安定に検出できる。逆に近景領域ではフレーム間の動きが大きいので、揺れ特徴(t-1,t)を安定的に検出し辛い。
【００８２】
そこで本実施形態では、フレーム画像t-1、フレーム画像tに対して近景領域の分離を行って、マスクを施すことにしている。図１９（ａ）〜（ｃ）は、近景領域をマスクすることでなされる揺れ特徴(t-1,t)を示す図である。図１９（ａ）は、フレーム画像t-1、フレーム画像tに対して生成されたフレーム特徴データである。図１９（ｂ）は、図１９（ａ）のフレーム画像t-1、フレーム画像tのうち、近景領域をマスクすることで得られるフレーム特徴データを示す図である。近景領域に対してマスクが施されたので、フレーム画像t-1、フレーム画像tは垂直柱の部分のみとなり、フレーム画像t-1ーフレーム画像t間の対応が取りやすくなっている。図１９（ｃ）は、フレーム画像t-1のフレーム特徴データ、フレーム画像tのフレーム特徴データから検出された特徴点を示す。近景領域となる競走馬の部分がマスクされたので、フレーム特徴データは垂直柱の部分のみとなり、揺れ特徴(t-1,t)が検出しやすくなっている。
【００８３】
この近景領域となる競走馬の部分は、第１実施形態におけるマスク範囲指定部により、指定することができるので、揺れ特徴(t-1,t)の効率良い検出には、第１実施形態の動きベクトル算出部４とマスク範囲指定部５、マスク部６をそのまま適用することができる。
また、フレーム間の揺れ補正を実行する際には、検出されたフレーム間の動き量と逆の量をフレームtに作用させる事で、補正を行う。
【００８４】
図２０（ａ）（ｂ）は、揺れ補正が施されていない2つのフレーム画像データと、揺れ補正が施された2つのフレーム画像データとを対比して示す図である。図２０（ａ）では、フレームt-1からフレームtまでの間に、大地と、垂直柱とが大きく揺れているので、映像酔いの発生を招きかねない。これに対して図２０（ｂ）では、フレームt-1と、フレームtとで、大地、垂直柱の位置が固定されているため、見る者の映像酔いを招くことはない。同様の処理を、１０秒、２０秒といった時間間隔内に撮影された複数のフレーム画像データに施せば、非常に見易い動画再生を実現することができる。
【００８５】
図２１は、第４実施形態に係る画像処理装置の内部構成を示す図である。本図は、図３をベースとして作図されており、このベースとなる構成と比較して、特徴量抽出部１が揺れ特徴抽出部５４に置き換えられ、角度推定部３、傾き推定部７が、揺れ量推定部５５、揺れ補正部５６に置き換えられている点が異なる。図１６の構成要素のうち、図３と同じものについては同じ符号を用い、説明を省略する。
【００８６】
(揺れ特徴抽出部５４)
揺れ特徴抽出部５４では、フレームメモリ３０、４０における画像データから特徴量を抽出する。ここでは、特徴量の1つの例として、エッジ成分を抽出する。
（揺れ量推定部５５）
揺れ量推定部５５は、マスクがかけられたフレーム特徴データから特徴点を選出し、フレーム間の揺れの量（＝フレーム間のカメラの動き）を推定する。
【００８７】
（揺れ補正部５６）
揺れ補正部５６では揺れ量推定部５５で推定された揺れ量を用いて揺れの補正を行う。
図２２は、揺れ補正処理のフローチャートである。ステップＳ９１において、フレーム画像t-1,tに対してHarrisアルゴリズムを適用することにより、安定的に抽出できる一定数の点を候補点(遠景領域内において特徴点の候補となる点)として選択し、ステップＳ９２において画角の違い等の影響をキャンセルするべく、選択された各候補点を単位球面(半径=1)上の座標へ投影する。
【００８８】
図２３は、単位球面(半径=1)上の座標へ投影されるフレーム画像t-1における特徴量と、フレーム画像tにおける特徴量とを示す図である。本図に示すように、フレーム画像t-1、フレーム画像t上の特徴量には、近景領域に属するものと、遠景領域に属するものとがあるが、これらのうち、遠景領域に属する特徴量が、単位球面に投影されている。近景領域に属するものは、単位球面に投影されていないことが判る。これは、フレーム特徴データにおける近景領域にマスクが施されているからである。
【００８９】
その後、RANSAC手法に基づく回転行列Rの算出を実行する。
以降、RANSAC手法に基づく回転行列Rの算出手順について述べる。ステップＳ９３においてフレーム画像t-1, tにおいて、単位球面上へ投影された候補点のうち、マスクされた近景領域以外にある２点の候補点をランダムに選択してステップＳ９４〜ステップＳ９９のループを構成する。
【００９０】
このループは、フレーム画像t-1, tの各2点(計4点)の関係を表す回転行列Rを求めて(ステップＳ９４)、求められた回転行列Rで、ランダムに選ばれたフレーム画像t-1における2点以外の点を回転し(ステップＳ９５)、回転行列Rを求め、その一致度合を計測して(ステップＳ９７)、規定時間内であるか否かを判定し(ステップＳ９８)、もし規定時間以内であれば(ステップＳ９８でYes)、フレーム画像t-1,tにおいて、単位球面上へ投影された候補点のうち、マスクされた近景領域以外にある未選択の２つの候補点をランダムに選択した上(ステップＳ９９)、ステップＳ９４に戻る。このようにして、近景領域以外にある未選択の２つの候補点をランダムに選び、回転行列を算出するという処理を、全ての点の組合せについて繰り返すのが、このループである。
【００９１】
ステップＳ９８がNoであれば、選ばれた2つの点の回転行列Rは間違っているので、ステップＳ９８からステップＳ９９に移行して、フレーム画像t-1, tにおいて、単位球面上へ投影された候補点のうち、マスクされた近景領域以外にある未選択の２点のものをランダムに選択した上、ステップＳ９４に戻る。
規定時間をオーバーすれば、ステップＳ９８がNoとなり、ステップＳ１００において、２点の候補点の組合せ毎に算出された回転行列Rのうち、最大の一致度合いを持つ回転行列Rを、フレーム画像t-1,t間の揺れの関係を表現する回転行列Rとする。そしてステップＳ１０１において、求まった回転行列Rを用いて、フレーム画像t-1の揺れを補正する。
【００９２】
以上のように本実施形態によれば、フレーム間の動きベクトルの大きさを利用して近景領域の分離を行い、遠景領域から算出された画像の特徴のみを揺れ量検出に用いることで、人物などが大きく画像内に入り込んでいるような映像であっても、精度良くフレーム間の揺れ量の推定をし、推定された揺れ量をもとに揺れ補正することができる。
（第５実施形態）
これまでの実施形態では、補正パラメータの検出に動きベクトルのスカラ量を用いたが、本実施形態では、動きベクトルの方向を用いる改良に関する。つまり、処理対象となるフレーム画像データを構成する各マクロブロックについて動きベクトルを算出して、これらのマクロブロックのうち、正しいと推定される方向をもたないマクロブロックを分離することで、マスクを施すべき範囲を決めるのである。ここで正しいと推定される方向とは、フレーム間のカメラの動きを示すものであり、先の実施形態で述べた揺れ推定の結果となる方向である。
【００９３】
ここで、これまでに説明した実施形態(第３実施形態、第４実施形態)と比較した、本実施形態の利点を述べる。第３実施形態では、動きベクトルの大きさを用いて、領域をフレーム間の動きが大きな領域と小さな領域の2つに分け、構造物の存在する領域の特徴を用いて傾き角度の推定を行っている。しかし動くものが多数存在すると、様々な大きさの動きベクトルが現れる。そのため動きベクトルの大きさのみではうまく領域の分割が行えないことがある。図２４（ａ）は、連続フレームを構成するフレームt-1の画像データ、フレームtの画像データを示す図であり、図２４（ｂ）は、フレームtの画像データを構成する各マクロブロックから検出された動きベクトルを示す。図２４（ｃ）は、動きベクトルのスカラ量が大きい近景領域のみをマスクすることで得られたフレーム特徴データを示す。
【００９４】
このフレーム特徴データでは、構造物だけではなく、人物の後方に存在する樹木が特徴として現れているので、この図２４（ｃ）のフレーム特徴データでは、この樹木の部分の特徴量がノイズとして表れ、傾き角度の推定精度が低くなってしまう。
第３実施形態において、フレーム間の動きベクトルの大きさ以外に、カメラがフレーム間にどう動いたかを表すフレーム間の動きの方向を事前に知る事ができれば、構造物の存在する領域からノイズを低減させることができる。これは、構造物は自律的に動く事はなく、かつ、カメラの移動した方向とは逆方向に移動してカメラに写る事を利用する事で、カメラの動きと構造物の動きに対応しない動き方向を持つ領域を構造物領域ではないとして除外可能である事による。
【００９５】
第４実施形態では、フレーム間の揺れの量を推定し、補正を行っているが、前述のように、このフレーム間の揺れの量はフレーム間のカメラの動き量に相当する。そのため、この揺れ量を用いる事で図２４（ｂ）の動きベクトルのうち、フレーム間のカメラの動きと対応の取れない動きベクトルをもつ画素ブロックをマスクする事で、構造物以外の領域に存在するノイズを削除することができる。
【００９６】
図２５（ａ）は、図２４（ｂ）におけるフレーム特徴データを、揺れ量推定の結果と同じ動きベクトルが占める領域と、揺れ量推定の結果と異なる方向の動きベクトルが占める領域とに分離した図である。
図２５（ｂ）の枠w1、w2は、各マクロブロックについての算出された動きベクトルのうち、揺れ推定の結果に該当する方向をもつもののみを示している。こうして得られた方向が、正しいと推定される方向であると仮定すれば、そのような方向をもたないマクロブロックに対してマスクを施して補正パラメータの検出を行うことで、人物像の後方における樹木の部分の線分を除外することができる。これにより高精度な補正パラメータを得ることができる。図２５（ｃ）は、補正パラメータである傾き角度の検出に用いられるフレーム特徴データを示す図である。
【００９７】
以上が、第３実施形態、第４実施形態と比較した本実施形態の利点となる。
図２６は、第５実施形態に係る画像処理装置の内部構成を示す図である。本図は、図１６に準じた内部構成と、図２１に準じた内部構成とを組合せた形態になっている。特徴量抽出部１、動きベクトル検出部４、マスク範囲指定部５、信頼度付角度推定部５２、傾き角度選択部５３、慣性センサ７０が、図１６に準じた内部構成である。この組合せにあたって、マスク部６は、マスクパターン拡大部５７に置き換えられている。マスクパターン拡大部５７は、本実施形態特有の構成要素である。
【００９８】
また、揺れ特徴抽出部５４、マスク部６、揺れ量推定部５５は、図２１に準じた内部構成である。揺れ補正部５６は、揺れ補正・傾き補正部５８に置き換えられているが、この揺れ補正・傾き補正部５８は、本実施形態特有の構成要素である。以降、本実施形態特有の構成要素(マスクパターン拡大部５７、揺れ補正・傾き補正部５８)と、本実施形態の処理のために改良が加えられた構成要素(信頼度付角度推定部５２、傾き角度選択部５３)とについて説明する。
【００９９】
(マスクパターン拡大部５７)
マスクパターン拡大部５７は、マスク範囲指定部５により指定されたマスクパターンを、揺れ量推定部５５による揺れ補正の結果に基づいて拡大する。マスク範囲指定部５は、動きベクトルの大きさに応じて近景領域が分離した。マスクパターン拡大部５７は、マスク範囲指定部５で分離された各領域の動きベクトルの向きと、揺れ量推定部５５で得られたカメラの動きベクトルの向きとを照合し、揺れ量との対応が取れない領域を網羅するように、マスクパターンの範囲を拡大する。こうすることで、カメラの動きベクトルの向きと対応の取れる領域のみを対象とするマスクパターンが生成されることになる。
【０１００】
(信頼度付角度推定部５２)
信頼度付角度推定部５２における改良点は、マスクパターン拡大部５７によって生成されたマスクパターンによって分離された近景領域、遠景領域に対して信頼度付傾き角度推定を行うことである。
(傾き角度選択部５３)
傾き角度選択部５３における改良点は、信頼度付角度推定部５２で生成された遠景・近景の傾き角度の信頼度の比較して、信頼度の高い傾き角度を、正しい傾き角度として選択する点である。また、傾き角度を生成した領域が3つ以上存在する場合、生成した傾き角度のうち最も高い信頼度を有する傾き角度を、正しい傾き角度として選択する。
【０１０１】
(揺れ補正・傾き補正部５８)
揺れ補正・傾き補正部５８は、傾き角度選択部５３から得られた傾き角度、及び、揺れ量推定部から得られたフレーム間の揺れ量を用いてフレームメモリ３０のフレーム画像tの傾きと揺れとを同時に補正する。この補正方法としては、第１実施形態で傾きを補正する際に用いていたAffine変換がある。
【０１０２】
図２７は、揺れ量推定処理のフローチャートである。ステップＳ８１において、変数tを0に初期化し、ステップＳ８２、ステップＳ８３のループに移行する。このループは、変数tにて指示される個々のフレーム特徴データに対して、ステップＳ８４〜ステップＳ９０の処理を繰り返すというものであり、変数tのインクリメントは、ステップＳ９０でなされる。ますステップＳ８４において変数tが0かどうかを判定し、0であれば、ステップＳ８５においてフレーム特徴データ0から揺れ特徴(t-1,t)を抽出する。0でなければ、ステップＳ８６においてフレーム特徴データtから揺れ特徴(t-1,t)を抽出して、ステップＳ８７において前フレームと比較することで揺れ特徴(t-1,t)を得る。ステップＳ８８では、揺れ特徴(t-1,t)のうち移動量が大きいもの除外する。
【０１０３】
ステップＳ８９において、揺れ特徴(t-1,t)のうち、除外されていない領域にある特徴点間の対応関係を調べて、対応関係を示す回転行列Rを算出することで、揺れ推定の結果を得る。
図２８は、第５実施形態に係るマスク処理、補正処理の処理手順を示すフローチャートである。本フローチャートにおける変数tは、フレーム特徴データを指示する制御変数である。ステップＳ６１において、この変数tを0に初期化し、ステップＳ６２〜ステップＳ６３のループに移る。このループは、フレーム特徴データのそれぞれについて、ステップＳ６４〜ステップＳ７１の処理を実行するものである。ステップＳ６４は、フレーム特徴データをｓｊする変数tが0であるかどうかの判定であり、t=0であれば、ステップＳ６５においてフレーム特徴データ0から揺れ特徴(t-1,t)を抽出する。
【０１０４】
変数tが0でなければ、ステップＳ６６において近景領域分離を行い、ステップＳ６７において、揺れ特徴(t-1,t)に対する揺れ量推定の結果とは異なる方向成分をもつブロックと、近景領域に該当するブロックとを網羅するマスクパターンを生成する。
ステップＳ６８では、揺れ特徴(t-1,t)に対する揺れ補正結果とは異なる方向成分をもつブロックと、近景領域に該当するブロックとを網羅するマスクパターンとを用いて、近景領域の再分離を行う。
【０１０５】
ステップＳ６９では、傾きセンサから特定された近景領域と、この近景領域以外の遠景領域とに対して、それぞれ信頼度を算出して、この信頼度に基づき、近景領域、遠景領域の何れかから傾きを選択するかを決定して、傾き角度θを算出する。
ステップＳ７０において角度θと、揺れ量推定結果となる回転行列とを補正パラメータとして用いて傾き補正と、揺れ補正とを実行する。ステップＳ７１では、フレーム特徴データtを符号化して、表示する。その上、ステップＳ７２において変数tをインクリメントする。
【０１０６】
以上のように本実施形態によれば、フレーム間の動きベクトルの大きさを利用して近景領域をマスクし、更にフレーム間の揺れ量の推定結果を用いてマスクすることで、構造物の存在する領域内のノイズを除去する事が可能となる。これにより、ｉ)人物などが大きく画像内に入り込んでいるような映像、ｉｉ)木などの輝度値がバラバラでフレーム間に多様動く様な領域が存在する映像、ｉｉｉ)たまたまフレーム間の動き量が小さいような物体が存在するような映像であっても、精度良くフレーム間の傾き角度の推定をし、推定された傾き角度をもとに傾き補正することができる。
【０１０７】
（第６実施形態）
フレーム画像データに現れるが被写体が近景領域かどうかの判定に測距センサ５９を用いる改良である。図２９は、第６実施形態に係る画像処理装置の内部構成を示す図である。本図は、図３をベースとして作図されており、このベースとなる構成と比較して、測距センサ５９がマスク範囲指定部５に直列的に接続されている点が、本実施形態特有の改良になっている。図２９において、図３と同じ構成要素については同じ符号を用い、説明を省略する。
【０１０８】
図２９にある測距センサ５９は、例えば赤外線センサなどがあり、センサの位置から被写体までの距離が３mから５m程度であり、比較的近い場合、その被写体までの距離を計測できる。この測距センサをカメラに取り付ける事で、カメラから画像が撮影された際の被写体までの距離が近い領域の情報を知る事ができる。第１実施形態のようにフレーム間の動きベクトルの大きさを計測しただけでは、計測誤差や誤対応などの原因により、完全に分割する事ができない場合でも、測距センサを使用する事で、確実に近景領域である領域が分かる。
【０１０９】
これを利用し、マスク範囲指定部５で動きの大きな領域と小さな領域分離した結果と照合し、計測誤差や誤対応などにより、遠景領域であると判定されていた領域が近景領域である事が分かる。そのため、近景・遠景領域の分離精度が高くなるので、より高精度に傾き角度を検出する事が可能になる。
（その他変形例）
１.フレーム特徴データの算出方法
特徴量抽出部１では、エッジ検出を行った後にエッジのS/N比を高める目的で前処理を加えても構わない。前処理の例としては、以下のものが挙げられる。エッジ検出前に行う前処理としては、メディアンフィルタ、ローパスフィルタなどの平滑化処理を行ってノイズを減らす方法がある。また、エッジ検出後に行う前処理としては、エッジ情報に含まれるノイズ除去するために前処理としてエッジ情報に対してラベリング処理を行い、孤立しているエッジを除去する孤立点除去方法。同様の目的で、前処理として、エッジ情報に対してモルフォロジフィルタを使用し、opening処理を行う方法などがある。
【０１１０】
２.角度範囲の制限
角度範囲を制限する際には、センサの信頼度を尤度などで表現をし、そのセンサの尤度を乗じたヒストグラムを、角度の存在確率として捉えて、その確率の最大の角度を、水平からの傾き角度であるとして推定を行っても構わない。
かかる構成によれば、センサの出力値を基準に傾き角度の存在する範囲を限定することで、傾き角度の推定範囲が狭くなるため、傾き角度の推定精度が向上する。
【０１１１】
３.マスクを施すべき範囲
これまでの実施形態では、画素ブロック毎に算出された動きベクトルのスカラ量又は方向に基づいて、フレーム特徴データ全体のうち、マスクを施すべき範囲を指定したが、指定の基準は、動きベクトルのスカラ量又は方向に限らない。動きベクトルに依拠するパラメータであれば、ＤＣＴ係数や直流成分等、他のパラメータを採用してよいことはいうまでもない。
【０１１２】
４.補正パラメータのバリエーション
これまでの実施形態では、補正パラメータとして、傾き角度や回転行列を検出したが、何等かの補正を施すことができるものなら、他のものを検出してもよい。例えば、フィルタ係数や、輝度変換のパラメータを補正パラメータとして検出してもよい。
５.信頼度付角度推定のバリエーション
信頼度付角度推定部５２は、遠近両用マスク部５１で生成された遠景・近景の両方の領域において傾き角度の推定を行ったが、遠景領域に対したのみ、信頼度を算出してもよい。
【産業上の利用可能性】
【０１１３】
本発明にかかる画像処理装置は、撮影された映像の傾き補正機能を有し、安定撮影可能なビデオカメラ１００等として有用である。またデジタルカメラ等への用途にも応用できる。
【図面の簡単な説明】
【０１１４】
【図１】本発明にかかる画像処理装置が組込まれたビデオカメラ１００の使用行為の形態を示す図である。
【図２】本発明にかかる画像処理装置が組込まれたビデオカメラ１００のハードウェア構成を示す図である。
【図３】本発明にかかる画像処理エンジン５０のソフトウェア構成を示す機能構成図である。
【図４】（ａ）DMAコントローラ２０により、フレームメモリ３０及び、フレームメモリ４０に書き込まれたフレーム画像t-1,フレーム画像tを示す図である。  （ｂ）フレーム画像を構成する複数のブロックを示す図である。  （ｃ）フレーム画像における一画素の画素値となるＹ,Cr,Cbを表す、３２ビットデータを示す図である。
【図５】（ａ）図４に示したフレーム画像tに対して得られたフレーム特徴データを示す図である。  （ｂ）角度推定にあたって、生成されるヒストグラムの一例を示す図である。
【図６】（ａ）連続するフレーム画像に対する動きベクトルの検出結果を示す図である。  （ｂ）近景領域を示す情報の一例を示す図である。  （ｃ）１６画素×１６画素からなるブロックの形状にて近似された、近景領域形状を示す図である。
【図７】（ａ）傾きを表す有効なエッジ情報の所在を示す図である。（ｂ）（ｃ）マスクパターンの一例を示す図である。
【図８】（ａ）マスク処理のための論理演算を模式的に示す図である。（ｂ）マスクを施した場合に得られる出現頻度を実線で示し、施さなかった場合に得られる出現頻度を破線で示したヒストグラムである。（ｃ）近景領域と遠景領域との境界における擬似輪郭に対して生成されたエッジ情報を示す図である。
【図９】（ａ）近景領域のマスクがなされたフレーム画像に対して、角度推定を行った場合に得られるヒストグラムを示す図である。  （ｂ）20°という推定角度に基づき傾き補正部７が回転補正を行うことで得られる補正画像を示す図である。
【図１０】フレーム画像に対する領域分割の処理手順を示すフローチャートである。
【図１１】特徴量抽出から角度推定までの処理手順を示すフローチャートである。
【図１２】第２実施形態に係る画像処理装置のハードウェア構成を示す図である。
【図１３】（ａ）近景領域分離により得られるヒストグラムを示す図である。  （ｂ）センサ値に基づき狭められた推定範囲を示す図である。
【図１４】（ａ）第３実施形態における傾き推定処理において、題材となるフレーム画像データであり、バスの車内で撮影された画像データを示す。  （ｂ）図１４（ａ）のフレーム画像データに対して特徴量抽出を行うことにより得られるフレーム特徴データを示す図である。  （ｃ）近景領域に対してマスクが施されたフレーム特徴データを示す。  （ｄ）遠景領域に対してマスクが施されたフレーム特徴データを示す。
【図１５】マスクが施された画像データと、これらのフレーム画像データに対して作成されたヒストグラムとを示す図である。
【図１６】第３実施形態に係る画像処理装置の内部構成を示す図である。
【図１７】第３実施形態に係る信頼度付き傾き補正処理の処理手順を示すフローチャートである。
【図１８】（ａ）揺れ補正の対象となる、連続フレームの一例を示す図である。  （ｂ）フレームt-1の画像データの(X4,Y4)(X5,Y5)を、フレームt-1の画像データの(X1,Y1)(X2,Y2)に一致するように変換するための回転行列Rの一例を示す図である。  （ｃ）揺れ補正が施されたフレーム画像t-1の一例である。
【図１９】（ａ）フレーム画像t-1、フレーム画像tに対して生成されたフレーム特徴データである。  （ｂ）図１９（ａ）のフレーム画像t-1、フレーム画像tのうち、近景領域をマスクすることで得られるフレーム特徴データを示す図である。  （ｃ）フレーム画像t-1のフレーム特徴データ、フレーム画像tのフレーム特徴データから検出された特徴点を示す図である。
【図２０】（ａ）（ｂ）揺れ補正が施されていない2つのフレーム画像データと、揺れ補正が施された2つのフレーム画像データとを対比して示す図である。
【図２１】第４実施形態に係る画像処理装置の内部構成を示す図である。
【図２２】揺れ補正処理のフローチャートである。
【図２３】単位球面(半径=1)上の座標へ投影されるフレーム画像t-1における特徴量と、フレーム画像tにおける特徴量とを示す図である。
【図２４】（ａ）連続フレームを構成するフレームt-1の画像データ、フレームtの画像データを示す図である。  （ｂ）フレームtの画像データを構成する各マクロブロックから検出された動きベクトルを示す図である。  （ｃ）構造物の存在する領域内に構造物以外の領域がノイズとして存在する事例を示す図である。
【図２５】（ａ）図２４におけるフレーム特徴データを、揺れ特徴(t-1,t)の結果と同じ動きベクトルが占める領域と、揺れ特徴(t-1,t)の結果と異なる方向の動きベクトルが占める領域とに分離した図である。  （ｂ）各マクロブロックについての算出された動きベクトルのうち、揺れ量推定結果に該当する方向をもつもののみを示す図である。  （ｃ）補正パラメータである傾き角度の検出に用いられるフレーム特徴データを示す図である。
【図２６】第５実施形態に係る画像処理装置の内部構成を示す図である。
【図２７】揺れ量推定処理のフローチャートである。
【図２８】第５実施形態に係る画像処理装置全体のフローチャートである。
【図２９】第６実施形態に係る画像処理装置の内部構成を示す図である。
【符号の説明】
【０１１５】
１０  撮像デバイス
２０  DMAコントローラ
３０  フレームメモリ
４０  フレームメモリ
５０  画像処理エンジン
６０  カードドライブ
７０    慣性センサ
１００  ビデオカメラ１００
１  特徴量抽出部
２  線分検出部
３  角度推定部
４  動きベクトル算出部
５  マスク範囲指定部
６  マスク部
７  傾き推定部
８  符号化部
５１  遠近両用マスク部
５２  信頼度付角度推定部
５３  傾き角度選択部
５４  揺れ特徴抽出部
５５  揺れ量推定部
５６  揺れ補正部
５７  マスクパターン拡大部
５８  揺れ補正・傾き補正部
５９  測距センサ
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009001510.tif 000032
【図２】
2009001510.tif 000033
【図３】
2009001510.tif 000034
【図４】
2009001510.tif 000035
【図５】
2009001510.tif 000036
【図６】
2009001510.tif 000037
【図７】
2009001510.tif 000038
【図８】
2009001510.tif 000039
【図９】
2009001510.tif 000040
【図１０】
2009001510.tif 000041
【図１１】
2009001510.tif 000042
【図１２】
2009001510.tif 000043
【図１３】
2009001510.tif 000044
【図１４】
2009001510.tif 000045
【図１５】
2009001510.tif 000046
【図１６】
2009001510.tif 000047
【図１７】
2009001510.tif 000048
【図１８】
2009001510.tif 000049
【図１９】
2009001510.tif 000050
【図２０】
2009001510.tif 000051
【図２１】
2009001510.tif 000052
【図２２】
2009001510.tif 000053
【図２３】
2009001510.tif 000054
【図２４】
2009001510.tif 000055
【図２５】
2009001510.tif 000056
【図２６】
2009001510.tif 000057
【図２７】
2009001510.tif 000058
【図２８】
2009001510.tif 000059
【図２９】
2009001510.tif 000060
【国際調査報告】
2009001510.tif 000061
2009001510.tif 000062