(57)【要約】  ２次元動画像から立体表示のための視差画像を生成する画像処理方法は、２次元動画像の任意時刻の第1画像と、第1画像とは別の時刻の第２画像に基づいて、第1画像のブロック毎に、第２画像との間の動きベクトルを検出するステップと、奥行きが奥側となる部分の最奥ベクトルを、動きベクトルの中から検出するステップと、各動きベクトルと最奥ベクトルとの差分ベクトルを求め、差分ベクトルが大きい動きベクトルに対応する第１画像のブロックほど手前側の奥行きを与えるステップと、第１画像と前記奥行きから１枚以上の視差画像を生成するステップと、を含む。
2011030399.tif 000002
【特許請求の範囲】
【請求項１】
２次元動画像から３次元表示のための視差画像を生成する画像処理方法において、
２次元動画像の任意時刻の第1画像と、前記第1画像とは別の時刻の第２画像に基づいて、前記第1画像のブロック毎に、第２画像との間の動きベクトルを検出するステップと、
奥行きを最も奥側とすべきブロックに対して求めた最奥ベクトルを、前記動きベクトルの中から検出するステップと、
各動きベクトルと前記最奥ベクトルとの差分ベクトルを求め、前記差分ベクトルが大きい前記動きベクトルに対応する前記第１画像のブロックほど手前側の奥行きを与えるステップと、
前記第１画像と前記奥行きから１枚以上の視差画像を生成するステップと、
を有する画像処理方法。
【請求項２】
前記最奥ベクトルを検出するステップは、
前記動きベクトルを１つ以上のクラスタに分類し、前記クラスタ内の平均動きベクトルを求めるステップと、
前記平均動きベクトルのどれか１つを前記最奥ベクトルに設定するステップと、を含むことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記最奥ベクトル検出ステップは、
前記クラスタ間の動きベクトルの重なりを検出し、もっとも覆い被されているクラスタ内の平均動きベクトルを前記最奥ベクトルに設定するステップを含むことを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記差分ベクトルの大きさと前記奥行きの関係が反比例していることを特徴とする請求項３に記載の画像処理方法。
【請求項５】
前記差分ベクトルの大きさと前記奥行きの関係が比例していることを特徴とする請求項３に記載の画像処理方法。
【請求項６】
２次元動画像から３次元表示のための視差画像を生成する画像処理装置において、
２次元動画像の任意時刻の第1画像と、前記第1画像とは別の時刻の第２画像に基づいて、前記第1画像のブロック毎に、第２画像との間の動きベクトルを検出する動きベクトル検出器と、
奥行きが奥側となる部分の最奥ベクトルを、前記動きベクトルの中から検出する奥行きベクトル検出器と、
各動きベクトルと前記最奥ベクトルとの差分ベクトルを求め、前記差分ベクトルが大きい前記動きベクトルに対応する前記第１画像のブロックほど手前側の奥行きを与える視差ベクトル算出器と、
前記第１画像と前記奥行きから１枚以上の視差画像を生成する視差画像生成器と、
を含む画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元画像から立体表示のための視差画像を生成する画像処理方法及び装置に関する。
【背景技術】
【０００２】
視差のある画像それぞれを、左目、右目で視覚するよう表示することで立体像を認識させる立体表示技術が知られている。三角測量の要領によって左目で見たときの像は右目で見ると位置が若干ずれている。そのずれを三角測量の要領で把握することによってこの物体が手前にあるのか奥にあるのかを判定している。つまり立体表示を実現するために、画像間で両眼視差のある３次元画像が必要となる。【０００３】
近年では、一般のテレビ放送のような元々３次元の情報が含まれていない２次元画像に対しても３次元表示可能になるような映像を生成する技術が開発されている。２次元画像から３次元画像を生成する際に、物体を左目から見たときと右目から見たときとでどれくらいずれているかを示す視差が非常に大事な要素となる。一台のカメラで被写体を撮影した際には奥行きの情報は失われているので、奥行きを如何に求めるかが２次元画像から３次元画像への変換の課題となる。例えば、特許文献１は、２次元動画像の基準フレームから別のフレームへの動きベクトルを検出し、動きベクトルの水平成分に基づいてフレーム遅延量を決定し、動きベクトルの垂直成分に基づいてライン遅延量を決定し、フレーム・ライン遅延量から基準フレームに対応する視差画像を生成し、これをモーションステレオの原理に基づいて立体視する方法が提供されている。しかしながらこの方法では、画面全体の上下動を補正して正しい視差画像を生成することはできるが、画面内で局所的な動きをしている物体が含まれている場合には、物体がぶれてしまい正しい視差画像を生成することができない。【０００４】
また、特許文献２では、動きベクトルと背景領域を検出し、背景領域の動きベクトルから背景ベクトルを算出し、背景ベクトルを全動きベクトルから減じることにより相対ベクトルを算出し、相対ベクトルの大きさが大きいものほど手前に配置するように視差画像を生成する方法が提供されている。しかしながらこの方法では、背景領域の検出結果によっては、奥に存在する物体が手前に配置されるような違和感のある視差画像となってしまうことがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−２６４６３１号公報
【特許文献２】特開２０００−２６１８２８号公報
【発明の開示】
【０００６】
本発明は、２次元動画像が入力された時に、立体視を可能とする１枚以上の視差画像を生成することを目的としている。また、立体眼鏡により２次元動画像を立体視するような用途の場合には左右２枚の視差画像を生成することを目的とする。
【０００７】
本発明の一形態は、２次元動画像から３次元表示のための視差画像を生成する画像処理方法において、２次元動画像の任意時刻の第1画像と、前記第1画像とは別の時刻の第２画像に基づいて、前記第1画像のブロック毎に、第２画像との間の動きベクトルを検出するステップと、奥行きが奥側となる部分の最奥ベクトルを、前記動きベクトルの中から検出するステップと、各動きベクトルと前記最奥ベクトルとの差分ベクトルを求め、前記差分ベクトルが大きい前記動きベクトルに対応する前記第１画像のブロックほど手前側の奥行きを与えるステップと、前記第１画像と前記奥行きから１枚以上の視差画像を生成するステップと、を有する画像処理方法を提供する。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１実施形態に係る、２次元画像から立体表示のための視差画像を生成する画像処理装置のブロック図である。
【図２】本発明の第１の実施形態に係る画像処理方法を示すフローチャート図である。
【図３】モーションステレオの原理を説明するための図である。
【図４】動きがぶれることを説明するための図である。
【図５】視差ベクトルから奥行きへの変換モデルを説明するための図である。
【図６】画像の物体のコンフリクトを説明するための図である。
【図７】最奥ベクトル検出方法を示すフローチャート図である。
【図８】奥行き変換モデルを説明するための図である。
【図９】視差画像生成を説明するための図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について、詳細に説明する。
【００１０】
［第１実施形態］
第１実施形態に従った２次元画像から立体表示のための視差画像を生成する画像処理装置を図１のブロック図を参照して説明する。
【００１１】
図１に示す画像処理装置によると、フレームメモリ１１はビデオカメラ、ビデオ再生機などのビデオ装置からの入力動画像をフレーム単位で記憶する。このフレームメモリ１１は動きベクトル検出器２１に接続されている。動きベクトル検出器２１は入力動画像とフレームメモリ１１に記憶された画像とからブロックマッチングなどの周知の方法で動きベクトルを検出する。動きベクトル検出器２１の出力はクラスタリング装置２３に接続される。クラスタリング装置２３は画像（フレーム）を複数の領域（クラスタ）に分割する。クラスタリング装置２３の出力は最奥ベクトル検出器２４に接続され、この最奥ベクトル検出器２４はクラスタに基づいて一番奥の物体のベクトル、即ち最奥ベクトルを検出する。具体的には、奥の物体と手前の物体との重なり合いをクラスタに基づいて検出し、一番重なるクラスタを一番奥と決定し、このクラスタのベクトルを最奥ベクトルとして検出する。最奥ベクトル検出器２４の出力は奥行き算出器２５に接続され、この奥行き算出器２５は最奥ベクトルから奥行きを算出する。具体的には、最奥ベクトルと最も手前の物体のベクトル、即ち最前ベクトルとから最奥物体までの奥行きを算出する。奥行き算出器２５の出力は視差ベクトル算出器２６に接続され、この視差ベクトル算出器２６は奥行き情報に基づいて視差ベクトルを算出する。視差ベクトル算出器２６の出力は視差画像生成器２７に接続される。この視差画像生成器２７は後述する方法により視差ベクトルから右目で見た映像と左目で見た映像とを作成する。
【００１２】
図２のフローチャートを参照して図１の画像処理装置の作用を説明するに先立ち２次元画像から３次元画像に変換するメカニズムについて説明する。
２次元の画像から３次元の画像を生成する根拠は図３に示すようなモーションステレオの原理を利用する。すなわち１台のカメラが左から右に移動しながら撮影している状況を考えると、ｔ１の時刻の映像は左目で見える画像に、ｔ２の時刻の映像は右目で見える画像に酷似していると考えることができる。このような移動カメラの映像を右目及び左目で見ることにより立体視が可能となる。このように移動カメラからの動画像をそれぞれ左視差画像及び右視差画像として利用する技術がモーションステレオである。しかし図４に示すように、画面内にカメラの動きとは独立して動いている物体があると異なる時刻の映像が右目と左目に入ることになり、手や足がぶれてしまい物体を正しく立体視することができない。
【００１３】
そこで本実施形態では、入力された動画像の基準フレームから別時刻のフレームへの動きベクトルを求め、動きベクトルを視差ベクトルと見なして視差ベクトルから奥行きマップを算出し、算出された奥行きマップから再度視差ベクトルを算出し、基準フレームから視差ベクトルに従い２枚の視差画像を生成する（ただし２枚に限定するものではない）。このようにすることで、１枚の（１時刻の）基準フレームから同時刻の視差画像を生成できるため、前述したような手足のぶれ問題が解決される。
【００１４】
動きベクトルの水平成分を視差ベクトルとしたときに、視差ベクトルから奥行きへの変換は、人間の左右の目と対象物体への幾何学的関係から図５のモデルに従うことが知られている。左右の目は水平方向に配置されているため、視差は基本的に左右水平に発生する。このモデルに従えば動きから自然な奥行きを再現することが可能である。しかし動きの水平成分しか利用できないため、水平方向の動きを持つ映像に限られてしまう。
【００１５】
本実施形態では背景ベクトルを検出するのではなく、奥行きを動画の動きから追跡する方法を採用している。即ち、最も奥側に配置すべき領域の動きベクトル（最奥ベクトル）を検出し、最奥ベクトルとの差分ベクトルが大きい物体ほど手前に配置するようにする。最奥ベクトルは動きベクトルの重なり関係から検出する。このようにすることにより最も奥の領域から、動きベクトルの差によって物体を順次手前に配置していくことが可能である。
【００１６】
次に、図２のフローチャートを参照して図１の画像処理装置の作用を説明する。
【００１７】
入力２次元動画像の時刻ｔフレームの位置x,yの画素値をIt(x,y)、時刻ｔ−１フレームの位置x,yの画素値をIt-1(x,y)、時刻ｔ＋１フレームの位置x,yの画素値をIt+1(x,y)とする。
【００１８】
＜動きベクトル検出ステップＳ１１＞
動きベクトル検出ステップＳ１１では、動きベクトル検出器２２がｔフレームからｔ−１フレームへの動きベクトルを検出する。動きベクトルの検出には様々な方法が使えるが、ここではブロックマッチングを使ったものを述べる。ただしそれに限ったものではない。ブロックマッチングはｔフレームを矩形ブロックの部分に分割し、ブロック毎に対応するブロックをｔ−１フレーム上から探索する方法である。ブロックの大きさをＭ１，Ｍ２とし、ブロックの位置をi,jとする。動きを求めるための誤差関数として平均絶対値差分（Mean Absolute Difference：ＭＡＤ）などを用いることができる。
【数１】
2011030399.tif 000003
【００１９】
ここでu=(ux,uy)Tは評価したい動きベクトルである（Ｔは転置を表す）。または平均二乗誤差（Mean Squared Error）を用いても良い。探索範囲を−ＷからＷまでの矩形領域とすると、i,j位置の動きベクトルu(i,j)を求めるブロックマッチングアルゴリズムは以下のようになる。
【数２】
2011030399.tif 000004
【００２０】
また、ブロック内の動きベクトルはブロックの動きベクトルと同一とする。
【数３】
2011030399.tif 000005
【００２１】
また、動きベクトルをここで検出しなくても、例えばＭＰＥＧ２のような動画像符号化における圧縮のために用いられている動きベクトルを用いても良く、デコーダによってデコードされた動きベクトルを用いることができる。
【００２２】
＜クラスタリングステップＳ１２＞
クラスタリングステップＳ１２では、クラスタリング装置２３が、動きベクトルの方向及び大きさが近い対象同士を分類する。クラスタリング手法としてはＫ−ｍｅａｎｓ法などを用いることができるが、これに限ったものではない。以下Ｋ−ｍｅａｎｓ法による処理の概要を述べる。
【００２３】
Ｋ−ｍｅａｎｓ法では、動きベクトルの方向及び大きさが近い対象同士をクラスタというＫ個の領域に分類する。ｘ，ｙ位置の動きベクトルがどのクラスタに属するかを次式（４）により表現する。
【数４】
2011030399.tif 000006
【００２４】
ステップ３：各動きベクトルに関して、全クラスタ内でクラスタ内平均ベクトルと動きベクトルの差分（差分ベクトル）が最も小さいクラスタを選択し、そのクラスタ番号でラベルを更新する。
【００２５】
ステップ４：予め規定のイテレーションまでステップ２，３を繰り返す。
【００２６】
以上により動きベクトルをＫ個のクラスタに分類することができ、Ｋ個のクラスタ内平均ベクトルが算出される。
【００２７】
＜最奥ベクトル検出ステップＳ１３＞
最奥ベクトル検出ステップＳ１３では、最奥ベクトル検出器２４が、最も奥側に配置すべき動きベクトルを、検出されたクラスタ内平均ベクトルの中から選択する。最も奥側の領域は物体間の重なりにおいて、他の物体から覆われている確率が最も高い領域ということができる。そこでそのような領域を動きベクトルの重なり合いから判断する。
【００２８】
物体が背景上を移動している状態の断面図を図６に示す。ここで、破線で囲まれた領域を、動きベクトル同士が衝突する領域「コンフリクト」と定義する。このコンフリクトが動きベクトルの重なり合いを示している。コンフリクトしている次式（５）の２ベクトルに着目してみる。
【数５】
2011030399.tif 000007
【００２９】
手前にくる方の動きベクトルは常に画面上に表れているので、その画素差分値が奥になる動きベクトルよりも小さくなる。そこで、次式の絶対値画素差分によりコンフリクトした２ベクトルの前後関係を決定することができる。
【数６】
2011030399.tif 000008
【００３０】
すなわち２ベクトルの前後関係は次のようになる。
【数７】
2011030399.tif 000009
【００３１】
このときu(x1,y1)及びu(x2,y2)が属しているクラスタはラベルl(x1,y1)及びl(x2,y2)により判別できるので、これによりの動きベクトルのコンフリクトからクラスタ間の前後関係が分かる。この判定を画面全体で行い、最も奥側となるクラスタを決定する。
【００３２】
最奥ベクトル検出器２４の作用を図７のフローチャートを参照して説明する。
【００３３】
まず、動きベクトルのコンフリクトを検出する（ステップＳ２１）。検出されたコンフリクトしたベクトルの前後関係を判定する（Ｓ２２）。対応するクラスタの前後関係を更新する（Ｓ２３）。画面全体が処理されたかが判断される（Ｓ２４）。この判断がＹｅｓであると、最も奥側に来るクラスタを選択し（Ｓ２５）、処理を終了する。ステップＳ２４の判定がＮｏであると、処理はステップＳ２１に戻る。
【００３４】
＜奥行き算出ステップＳ１４＞
クラスタの平均動きベクトルを最奥ベクトルu_deepとする。奥行き算出ステップＳ１４では、奥行き算出器２５が動きベクトルと最奥ベクトルから奥行き値を算出する。奥行き値は、図５に示すように、右目、左目及び物体を結ぶ三角形と、画面上での右視差、左視差及び物体により規定される三角形との二つの三角形の相似性を利用して視差ベクトルから算出される。ここで図５に示される各パラメータは次のように定義するものとする。
【００３５】
奥行き：ｚ
視差ベクトル：ｄ［ｃｍ］
眼間距離：ｂ［ｃｍ］
画面までの距離：ｚｓ［ｃｍ］
飛び出し距離：ｚ０［ｃｍ］
奥行きの最大値：ｚmax
実空間での奥行きサイズ：Ｌｚ［ｃｍ］
ここでｂ、ｚｓ、ｚ０、Ｌｚは任意の値を設定しておく。視差は動きベクトルと最奥ベクトルから次式（８）によって計算できる。
【数８】
2011030399.tif 000010
【００３６】
ここで‖・‖はベクトルのｌ２ノルム（長さ）を算出するオペレータである。ただし、単位は画素であり、画素サイズから［ｃｍ］への変換は次式（９）に従って行われる。
【数９】
2011030399.tif 000011
【００３７】
奥行き値ｚは０−２５５の範囲であり（０−１でも良い）、０が手前、２５５が奥を表しているとする。しかしこの値はあくまで仮想的なものであり実際の距離に換算する必要がある。実空間での奥行きサイズLzを用いて次式（１０）に従って変換が行われる。
【数１０】
2011030399.tif 000012
【００３８】
ここでｚmax＝２５５である。すると画面から対象物までの距離は次式（１１）によって求められる。
【数１１】
2011030399.tif 000013
【００３９】
三角形の相似性から視差、奥行き変換モデルが次式（１２）により表される。
【数１２】
2011030399.tif 000014
【００４０】
画素毎に上記奥行き変換モデルにより奥行き値が算出される。図８は式１２によって算出される結果をプロットして作成された曲線を表している。図８のグラフの縦軸は視差、横軸は奥行きを示している。
【００４１】
上記の奥行き変換モデルにより右方向に大きい動きベクトルほど奥になり、左方向に大きい動きベクトルほど手前になる。軸を反転させると逆になる。
【００４２】
上記奥行き変換モデルは視差ベクトルと反比例の関係にあるモデルだったが、奥行き変換モデルは例えば反比例の関係を部分的な比例関係で近似した関数のモデルでも良い。
【００４３】
画面までの距離ｚsは算出される奥行き値に直接的に関係する値であり、算出された奥行き値のヒストグラムができる限り幅広くなるように画面までの距離ｚsを決定しても良い。
【００４４】
＜視差ベクトル算出ステップＳ１５＞
一度奥行き値を算出しておけば、任意のパラメータに従って視差画像を生成できる。視差ベクトル算出器２６は視差画像を生成する元となる視差ベクトルを奥行き値から算出する。
【００４５】
立体視のパラメータｂ、ｚｓ、ｚ０、Ｌｚは、提供したい立体視に基づいて任意に決定できる。例えば、実際の画面の位置に従ってｚｓを決定し、飛び出しを大きくしたい場合にはｚ０を大きくする。また、奥行きの深さはＬｚによって決定できる。
【００４６】
立体視のパラメータが決まれば、式（２）の変換モデルを変形した次式（１３）の奥行き視差ベクトル変換モデルに従って、奥行き値から視差ベクトルを算出できる。
【数１３】
2011030399.tif 000015
【００４７】
＜視差画像生成ステップＳ１６＞
視差画像生成ステップＳ１６では、視差画像生成器２７が生成したい視差画像の枚数分、ｔフレームと視差ベクトルから視差画像を生成する。
【数１４】
2011030399.tif 000016
【数１５】
2011030399.tif 000017
【００４８】
即ち、ｄＬ＝−０．５ｄ，ｄＲ＝０．５ｄとして左右の視差画像が生成できる。
【００４９】
左視差画像はｔフレームの画素値It(x,y)をdLに従って移動させることにより生成できる。右視差画像も同様である。単純に移動しただけでは穴が空いてしまう可能性もあるので、穴の領域には周辺の視差ベクトルから補間して映像を埋めればよい。ここでは２視差の場合を例に挙げたが、多視差の場合も同様に処理すればよい。
【００５０】
上述のようにして生成された左視差画像及び右視差画像は交互に高速に切替えて、又は画面の一ライン目を左目で見て二ライン目を右目で見るような形で時間的又は空間的に切り替えながら一つの画面として表示器に表示し、左目と右目に別々の映像を見せるようにする。
【００５１】
上記のように本発明によると、異なる時刻の画像をフレームメモリ記憶しておいて、異なる時刻の画像から動きベクトルを画面全体について検出する。この動きベクトルを同じ方向を持っているベクトル同士で分割し、纏める。即ちクラスタリングする。このクラスタリングにより、画面内から複数のクラスタを抽出する。これらクラスタの重なり合いをみてクラスタの中で一番多く被さられているクラスタを検出する。一番被さられているクラスタの平均動きベクトルを最奥ベクトルとする。この最奥ベクトルから各クラスタの動きベクトルを引き算して差分ベクトルの大きさが大きいほど手前に差分ベクトルが小さければ奥になることを決定する。このようにして各クラスタ、即ち各物体の奥行きが決定されると、各物体について左右の視差画像が生成される。
【００５２】
本発明によると、殆どぶれのない画像を立体視することができる視差画像を生成できる。
【００５３】
本発明の実施の形態に記載した本発明の手法は、コンピュータによって実行させることができ、また、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【符号の説明】
【００５４】
２１…フレームメモリ、２２…動きベクトル検出器、２３…クラスタリング装置、２４…最奥ベクトル検出器、２５…奥行き算出器、２６…視差ベクトル算出器、２７…視差画像生成器。
【図１】
2011030399.tif 000018
【図２】
2011030399.tif 000019
【図３】
2011030399.tif 000020
【図４】
2011030399.tif 000021
【図５】
2011030399.tif 000022
【図６】
2011030399.tif 000023
【図７】
2011030399.tif 000024
【図８】
2011030399.tif 000025
【図９】
2011030399.tif 000026
【国際調査報告】
2011030399.tif 000027
2011030399.tif 000028
2011030399.tif 000029