画像処理装置および画像処理方法
【課題】
三次元ディスプレイのように2個以上のペアを持つステレオ画像についてImage-retargetingを適切に実施する。
【解決手段】
第1の画像データの連結画素のパスを画素勾配エネルギーに基づいて算出し、第1の画像データと第2の画像データのステレオ対応関係に基づいて、第1の画像データの連結画素の各画素に対応する、第2の画像データの各画素を初期探索点として算出し、初期探索点近傍において第1の画像データの画素と第2の画像データの画素の間のエネルギーが最小となる画素を第2の画像データの連結画素のパスとして算出し、エネルギーを用いて第1の画像データの最適連結画素のパスを算出する。
三次元ディスプレイのように2個以上のペアを持つステレオ画像についてImage-retargetingを適切に実施する。
【解決手段】
第1の画像データの連結画素のパスを画素勾配エネルギーに基づいて算出し、第1の画像データと第2の画像データのステレオ対応関係に基づいて、第1の画像データの連結画素の各画素に対応する、第2の画像データの各画素を初期探索点として算出し、初期探索点近傍において第1の画像データの画素と第2の画像データの画素の間のエネルギーが最小となる画素を第2の画像データの連結画素のパスとして算出し、エネルギーを用いて第1の画像データの最適連結画素のパスを算出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置および画像処理方法に関し、特に、ステレオ画像のImage Retargetingの技術に関する。
【背景技術】
【0002】
昨今の映像表示システムは、PDAや携帯のような小型モニタから、大画面ディスプレイなど、用途に応じた多様化を見せている。この多様化にともない、解像度の違いなどを考慮しない単純な映像の縮小によっては、画像の印象や必要な視覚情報が失われる場合もあるため、各コンテンツ画像の自動/半自動サイズ変更が重要な問題となってきている。
このディスプレイの多様化にともなう改変の問題は、三次元ディスプレイについてはさらに大きな問題になる。ステレオ画像を改変する場合には、各画像に映るオブジェクトの位置の間の視差量が奥行きを示す値となるため、たがいの整合性を満たす必要が生まれ、二次元画像の改変よりもはるかに制約条件が厳しくなる。
【0003】
このような背景から、特に二次元画像コンテンツの改変技術として、人間による観察時に画像内で重要となる部分を考慮した映像処理(Context-aware image processing)の研究が進められている。この処理は、重要部分を切り抜く(Cropping)という単純な処理から、意味要素を残した構図の自動的変更などを含む。この中で、重要オブジェクトの形状を維持したままで縦横比率の変更を行う処理は Image Retargeting等といわれる。このImage retargetingの処理技法の一つにSeam-carvingと呼ばれる技術が提唱されている(非特許文献1)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】AVIDAN, S., AND SHAMIR, A. 2007. Seam carving for content-aware image resizing. ACM Trans. Graph.26, 3, Article No.10.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記非特許文献1においては、三次元ディスプレイ等のように2個以上のペアを持つステレオ画像について処理を適用する際に、画像間の互いのステレオ対応関係の情報を加味しないで独立にシームの探索処理を行うことになる。このため、画像間の対応が取れずにオブジェクトの形状維持が破綻し、一枚の画像だけでシームを選んで他の画像から対応点を探そうとすると他の画像に適切なシームが選べないシームが優先的に選ばれてしまうという課題がある。
【課題を解決するための手段】
【0006】
本発明は、対象となる主画像と副画像のペアの間にステレオ対応関係の概略をあらかじめ計算し、主画像のシームの各ピクセルに対して局所的にエネルギー最小となる連結成分を選択していく中で、主画像のシーム上の画素に対応する画素が副画像にも存在するかどうかの判定を行い、その主画像の画素と副画像の画素の色の差と位置の差を用いて主画像のシーム探索に用いるエネルギーの補正項として最適シームの探索における判定処理に加算することによって、ステレオ画像に対しても安定した画像処理を行うことを最も主要な特徴とする。
【発明の効果】
【0007】
本発明によれば、ステレオ画像の互いの関係の崩れを軽減するImage-retargettingの処理を行うことが出来るようになる。
【図面の簡単な説明】
【0008】
【図1】Seam-carvingの実行対象となる画像データの例。
【図2】Seam-carvingの処理フローの全体。
【図3】Seam-carvingのシームの探索処理フロー。
【図4】Seam-carvingの処理を実行するためのデータ構造体の例。
【図5】Seam-carvingのシームの連結処理フロー。
【図6】実行対象となる画像データの例。
【図7】計算処理装置の例。
【図8】処理フローの全体。
【図9】処理を実行する主画像の各ピクセルに対応したデータを保存する構造体の例。
【図10】処理を実行する副画像の各ピクセルに対応したデータを保存する構造体の例。
【図11】シームの探索処理フロー。
【図12】処理を実行するためのデータ構造体の例。
【図13】実施例2を実行するための計算処理装置の例。
【図14】実施例1における、ピクセルの探索の例。
【図15】実施例4を実行するための計算処理装置の例。
【発明を実施するための形態】
【0009】
まず、Seam-carvingの概要について図1から図5を用いて説明する。本発明の実施形態はこのSeam-carvingを前提とするものであり、図6から図15を用いて後述する。
【0010】
図1は、Seam-carvingの処理内容を示す概念図である。Seam-carvingとは、人間が意味的解釈する絵の要素を変えることなく画像内容を改変するための画像フィルタ技術である。この技法では、図1の画像100内に、画像に写っている被写体などの目に付く画像オブジェクトを避けながら、画像の上下をつなぐ 110〜115のような継ぎ目(seam:以下シームと記載)と呼ばれる一連の連結パスを探索し、このシームに沿って、ピクセルの削除、複製を行う。(1)単調性、(2)連続性 の制約条件を満たしたうえで、式1であらわされる画像勾配のエネルギーを最小化する領域を取ることで、画像上の目に付くオブジェクトをよける曲線をシームとして選択できるという点がこの技法の主眼点である。この技法では、上から下、左から右に、連結成分で色の変化が少ない画素関係、即ちエネルギーが少ない画素を探していく。
【0011】
【数1】
【0012】
ただし、上記での単調性と連続性は、(1)一つのシームとあるy座標値を選んだときに対象となるピクセルが一つのみ存在する一意性の制約条件と、(2)(x0,y)と(x1,y+1)が連結成分であるためには|x0-x1|<kを満たすという制約条件という二つの制約条件を意味する。
【0013】
このようなシームを計算・保存するためのデータ領域の一例を図4に示す。単位構造体410を要素として、横X縦Yの画像サイズに合わせた二次元配置である。単位構造体410は、それぞれ、画像の色情報(R,G,B)成分のデータ格納領域(411)と、シーム番号のデータ格納領域(412)、連結される上候補の方向を示す計算データの格納領域(413)、シームを削除改変した後の画像位置情報のデータ格納領域(414)、シームの方向を決定するための画像エネルギーを保存する領域(415)から構成される。
【0014】
既存のseam-carvingでは上から下に向かって数1のエネルギーが最小になるシームの探索を行っている。この手法を実現するための処理のフローを図2に示す。
【0015】
まず、工程202では、横Xピクセル縦Yピクセルの元画像P0を用意し、初期化処理を行う。各画素(座標位置(x,y))に対して、(x,y)の位置にある単位構造体の色情報領域411に元画像の色情報をコピーし、シーム番号(412)にはデフォルト値-1を書き込み、計算データ領域D(413)に0を書き込み、画像位置情報F(414)に(x,y)の値を書き込み、エネルギーEに0を書き込む。
【0016】
この画像構造体400に対して、工程203〜205のループをN回繰り返して、エネルギーの低い順に必要な個数のシームをN本順番に選び出していく。図2の工程203〜205はこのシームを作成するN回のループである。以下では、このループのインデックスをシーム番号nとする。
【0017】
工程203では、エネルギー計算用のテンポラリ画像PTを作成する。このテンポラリ画像PTは、元画像構造体400の各ピクセル(x,y)の中についてシーム番号412が-1、すなわち画像イメージの中からまだシームとして定められていない画素の色情報を、画素座標位置414のピクセルに書き込むことによって作成する。この画像PTの画素(x,y)に対して、ピクセルの輝度I(x,y)を計算し、そこから画像勾配のエネルギーを数1に基づいて計算する。
【0018】
この計算後、元画像構造体400の各ピクセル(x,y)の中についてシーム番号412が-1である、すなわち画像イメージの中でまだシームとして定められていない画素について、各ピクセルの画像エネルギー領域E(415)に、画像P1の座標Fで計算された画像勾配エネルギーの情報を書き込む。
【0019】
工程204では、エネルギー領域E(415)の情報から、エネルギーを最小とするシームを選択する。この処理内容の詳細を、図3のフローに示す。
【0020】
工程302・工程307は、y座標=1(すなわち上から2列目)から、y=Y-1(すなわち一番下の列)の間、工程303〜306を繰り返して行うループ処理の開始場所と終了判定をそれぞれ意味する。また、工程303・306は、x座標=0から、x=X-1の間を工程304を繰り返して行うループ処理を意味する。
【0021】
工程304は、ループの示すピクセル位置(x、y)に対して、その一つ上の列から連結成分を選び出す処理を示す。この処理の内容の詳細を図5のフロー図に従って示す。
【0022】
工程501は連結成分探索処理の開始を示す。工程502では、位置座標(x,y-1)のピクセルから、右左それぞれの方向にk個、まだシームとして定められていない画素を選択する。これを集合X0とする。
【0023】
工程503では集合X0の中から勾配エネルギー領域405に書き込まれている値が最も小さい画素(x0,y-1)を選び出す。
【0024】
工程504では、選ばれたx0の値を連結成分格納領域D(413)に保存する。
【0025】
工程505では、このピクセル(x,y)の画像エネルギー領域E(415)の値に、上の連結ピクセル(x0,y-1)の画像エネルギー領域E(415)を足しあわせ、ピクセル(x,y)の画像エネルギー領域E(415)に上書き更新する。すなわち、この領域には、連結成分格納領域413に示される方向でシームをたどっていった場合の、エネルギーの累積値が保存される。
【0026】
以上で、工程304の連結対象発見処理は完了する(工程506)。
【0027】
これらの一連の工程302〜037を、最終列y=Y-1にたどり着くまで、yについてループ処理を行う。
【0028】
工程308では、最終列の状態において、Y-1列目の各構造体で画像エネルギー領域E(415)に書き込まれた累積エネルギーが最小となっているものを選び出す。
工程309・311はy=Y-1からy=0までyの値を一つずつ減らしながら工程310を行うループ処理の、開始・終了判定処理をそれぞれ意味する。工程310では、(x,y)の位置にあるピクセルのシーム番号のデータ格納領域(412)に現在のシーム番号nの値を書き込む。また、シームの右側、すなわち同一のy座標をもつライン内のピクセルの中で、x座標がx1よりも大きい画素については、シーム削除改変後の画像位置情報Fのデータ格納領域(414)のx座標を一つ減らす。これにより、まだシームとして選ばれていない画素が左詰めになった改変画像の座標値が得られる。また、その位置の上のラインの連結成分を辿っていく際に、(x,y)の画像情報の連結成分格納領域413から一つ上のx座標の情報を読み込み、新しいx座標の位置とする。
【0029】
ピクセルの工程311はループ終了判定であり、yが0になるまで1つずつ減らして工程310の処理を繰り返す。以上の処理を309〜311を実行することで、n本目のエネルギー最小のシームの情報が、構造体400に登録される。
【0030】
図2に戻り、工程205はシーム探索の終了判定であり、nの値を調べて必要な本数のシームが選択されたならばループ処理を終了する。まだシームの数が必要本数のNに足りないならば、nを一つ増やして工程203に戻る。
【0031】
これらの処理を繰り返すことで、元画像から横方向がNピクセル削減された新しいサイズの画像が作成される。
【0032】
以上の各フローチャートにおける各処理は、後述する中央演算装置がプログラムを読み出して実行することに実行される。
【0033】
以上、Seam-carvingの概要を説明した。以下、具体的な実施例を説明する。
【0034】
第一の実施例として、図6の601、602のようなステレオ画像が与えられたとき、画像の主要なオブジェクトについて改変を加えることなく、かつ互いペア画像とのの視差を出来るだけ変えることなく、横方向の画像サイズをX-Nに改変した一組のステレオ画像621、622を生成する画像情報処理を実行する処理機構を示す。即ち、幅X、高さYの画像を幅X’= X−N、高さYの画像に変更する画像情報処理を示している。
【0035】
図7は、このような情報処理ルーチンを実行するための標準的な情報処理装置700を実現するための機構の例を示す模式図である。中央演算装置705、主記憶装置706、外部記憶装置707と、外部に表示する画像を作成する映像出力部708、外部入出力インタフェース部709、ネットワークインタフェース部710の要素から構成される。
【0036】
これらの各情報処理機器の実装は汎用の計算機として実装されている各種に準じる。また、外部入出力インタフェースにはUSBなど汎用の外部機器制御インタフェースを用いる。また、情報処理機器は互いにネットワークIF710を介してメッセージを交換するが、このネットワークの実装には、TCP/IPなどのメッセージ交換用プロトコルを利用する。また、画像データを入力する画像データ入力機器711が接続される。この読み取り機器711としては、SDカードなど磁気・光学データの読み取り装置などの技術を用いることで実装可能である。
【0037】
この実施例を実現するための一連の情報処理の流れを示すフロー図を図8に示す。
【0038】
図8の工程801では、横Xピクセル、縦Yピクセルのステレオペア画像P0とP1(例えば、図6の601と602)を、画像データ入力機器710から読み込む。ここでP0を主画像とし、P1をその周辺のカメラ位置から撮影した副画像とする。これらは、一定の視差を設定した、同視野角、同方向を向けた2台のカメラで撮影したデジタル画像であるとする。
【0039】
主画像P0について、シームを計算・保存するためのデータ領域を図9に示す。P0のあるひとつのピクセルに対応した計算過程に必要な情報を保持する単位構造体910を要素として、横X縦Yの画像サイズに合わせた二次元配列としたデータ構造を用意し、本計算処理の作業工程に用いる。単位構造体910は、それぞれ、画像の色情報(R,G,B)成分のデータ格納領域(911)と、シーム番号のデータ格納領域(912)、連結される上候補の方向を示す計算データの格納領域(913)、シームを削除改変した後の画像位置情報のデータ格納領域(914)、シームの方向を決定するための画像エネルギーを保存する領域(915)、同ピクセルに対応する画像P1上の画像座標位置916、同ピクセルに対応する画像P1上の画素リスト917、ステレオから類推される深度情報918から構成される。
【0040】
また、副画像P1について、シームを計算・保存するためのデータ領域を図10に示す。単位構造体1010を要素として、横X縦Yの画像サイズに合わせた二次元配置である。単位構造体1010は、それぞれ、P1の画素の色情報(R,G,B)成分のデータ格納領域(1011)と、シーム番号のデータ格納領域(1012)、対応するP0の画素位置格納領域(1013)、シームを削除改変した後の画像位置情報のデータ格納領域(1014)から構成される。
【0041】
主画像P0について、工程801では初期化処理を行う。座標位置(x,y)の各ピクセルに対し、単位構造体911に色情報をコピーし、シーム番号(912)に-1を書き込み、計算データ領域(913)に0を書き込み、画像位置情報(914)に(x,y)の値を書き込み、エネルギー(915)に0を書き込む。副画像P1についても初期化処理を行い、シーム番号に-1を、それ以外の各値に0を入れる。
【0042】
工程802では、ステレオ画像間の対応関係を示すテーブルを作成する。この工程では、ステレオペアの間の対応ピクセル関係を、サブピクセル精度で検出する。本実施例においては、位相限定相関法により実行される。その詳細は、「一次元位相限定相関法に基づくステレオ画像の高精度サブピクセル対応付け手法」、柴原琢磨, 沼徳仁,長嶋聖,青木孝文,中島寛,小林孝次,電子情報通信学会論文誌 D Vol.J91-D No.9 pp.2343-2356、に記述されている。
【0043】
上記処理により作成される、P0の各画素p0(x,y)に対応するP1画像上の位置p1(x_p,y_p)を、主画像の各ピクセル構造体の持つメモリ領域916に保存する。これを対応初期画素と呼ぶ。但しx_p, y_pは共に小数であり、サブピクセル精度で画像上の位置を示す座標である。また、これらの視差の値から求められた奥行き情報の値を、主画像の各ピクセル構造体の持つメモリ領域917に保存する。
【0044】
この画像構造体900に対して、工程803〜806の処理をN回ループして繰り返し、エネルギーの低い順に必要な個数のシームをN本順番に選び出していく。図2の工程807はこのN回のループの終了判定である。以下では、このループのインデックスをシーム番号nとする。
【0045】
工程803では、エネルギー計算用のテンポラリ画像P1を作成する。このテンポラリ画像は、元画像構造体900の各ピクセル(x,y)の中についてシーム番号912が-1、すなわち画像イメージの中からまだシームとして定められていない画素の色情報を、画素位置914の座標Fの位置に書き込むことによって作成する。
【0046】
画像P1の画素(x,y)に対して、R,G,Bからピクセルの輝度I(x,y)を計算し、そこから画像勾配のエネルギーを数1に基づいて計算する。
【0047】
この計算後、元画像構造体900の各ピクセルp=(x,y)の中についてシーム番号912が-1、すなわち画像イメージの中からまだシームとして定められていない画素について、各ピクセルの画像エネルギー領域E(915)に、画像P1の座標Fで計算された画像勾配エネルギーの情報を書き込む。
【0048】
工程804では、テンポラリ画像P1のエネルギー情報から、主画像のエネルギーに副画像からの対応エネルギーを加算した値を最小とするシームを選択する。この処理内容の詳細を、図11のフローを用いて説明する。
【0049】
工程1102〜1108は、y座標=1(すなわち上から2列目)から、y=Y-1(すなわち一番下の列)の間をyに対して、工程1103〜1107を繰り返して行うループ処理を意味する。
【0050】
工程1103〜1107は、x座標=0からX-1の間をxに対して、工程1104〜1106を繰り返して行うループ処理を意味する。
【0051】
工程1104では主画像のエネルギー関数を用いて、画像P0の一列上のラインから連結対象となるピクセルp_00を探す。この処理には先行技術例に挙げた工程304とその詳細内容を示す図5のルーチン処理に基づいて実行する。工程1105は、上の列から連結成分を選び出す処理を示す。この処理の内容を図12に示す。
【0052】
図12は、主画像P0でシームの候補となったあるピクセルp0に対して、これに対応するあるピクセルp1を副画像P1上から選び出す一連の操作を示すものである。但し、このピクセル位置は整数で示される座標系の0個以上のリストであり、このリストの各成分は画像P1上のある特定のピクセルを示す座標である。これを対応画素リスト(917)と呼ぶ。
工程1201は、対応初期画素p1=(x_p,y_p)の近傍から、適切なピクセルを検索し対応画素リストに保存する一連の処理ルーチンを開始する処理である。
【0053】
工程1202では、対応画像位置2の値をクリアして、空リストとする。
【0054】
工程1203では、工程802においてピクセルp0の構造体のメモリ領域916に書き込まれた対応初期画素p1 (x_p,y_p)を読み込み、このy_pに対し、小数値以下を四捨五入した整数値y1'=round(y_p)を計算する。
【0055】
次に画像0におけるシームの連結成分ピクセルp_00が保有する対応画素リスト(917)の値を読み込み、そのyの値をy0'とする。
【0056】
y0'>=y1'である場合には、このリストには何のピクセルも登録せず、空集合としたままで工程1230に進む。y1'>y0'である場合には、工程1211〜1220のループ処理を実行する。
【0057】
工程1211は、画像P1上のラインを示す変数値yyを、y0'からy1'の間繰り返すループ処理の開始を示す工程であり、副画像P1の各ラインy=yyについて工程1212から1219の処理が行われる。工程1212では、またテンポラリ変数D_all_totalの値を0にセットし、副画像P1のラインy=y1'において、対応画像位置p0'の近傍(距離2kk)以内にあるピクセルの集合X0を作成する。この集合X0の状態を図14の模式図に示す。1410は、画像P0上で、1ライン上の連結ピクセルp_00を示し、1411は画素p、1420はp_00の対応画素リストの要素画素(の一番下のもの)、1421は画素pの対応初期画素 916が示す座標位置、1430はラインy=yyから選ばれたピクセルの集合X0を示す。
【0058】
工程1213は、画像P1上のラインを示す変数値yyを、y0'からy1'の間繰り返すループ処理の開始を示す工程であり、この集合内の各要素ピクセルp1'=(x1',y1')について1214〜1216の処理を行う。はじめに工程1214で、色の整合性をエネルギー関数に加算する。ピクセルp0の色情報p0.colorと、ピクセルp1.colorの色を比較する処理を行い、結果その結果を変数D_c = colDiff(p0,p1)に保存する。
【0059】
この処理は、画像P0内のピクセルp0の色情報911と、画像P1内のピクセルp1の色情報1011を比較して、距離として算出するものである。二つの色の間に距離を定義する手法はいくつか知られており、色空間の定義に応じて適切なものを設定することが可能だが、本実施例ではRGB色情報の差、|r0-r1|+|g0-g1|+|b0-b1|として簡便に与えるものとする。ただし、ただしRGB値がそれぞれ(r0,g0,b0)(r1,g1,b1)である。この値をD_cとしてテンポラリ変数に保存する。
【0060】
続いて、工程1215で、奥行きと推定距離情報の整合性をエネルギー関数に加算する。
【0061】
副画像P1の奥行き情報と、候補ピクセルp1での奥行き情報の差を算出する。この値の計算結果D_z = |p0.depth-p1.depth |を計算する。さらに、p1'とp0'のxy平面状の距離をD_xy = ((x_p-x1')^2+(y_p-y1')^2)^(1/2)として計算する。テンポラリ変数D_dにDz+D_xyの値を保存する。工程1216では、上記二つの要素を併せた最終的な評価値を D_all = A_c D_c + A_d D_d として算出し、テンポラリ領域に保存する。ただし、本実施例ではA_cとA_dは定数と定める。これらのD_allを全ての探索集合点x0の中に対して作成されていたかをチェックする。未対応の点がある場合には、ループに戻り1214〜1216の処理を繰り返す。
【0062】
工程1218では、各x0'の値に対して、D_allを最も小さくする x0'の値を選択する。この値が、画像P1のラインy=y2におけるシームの座標(x0',yy)となる。
【0063】
工程1219では、以下の情報の更新を行う。この選ばれたP1上の座標(x0',y2)の値を、副画像のシームの情報として、ピクセルp0の構造体の対応画素リスト(917)に追記保存する。また、D_all_total=max(D_all_total, D_all)と改変する。
【0064】
工程1220は、ループの終了条件をチェックし、y2'がy1'より小さいならば、1211からのループ処理を繰り返す。y2'がy1'と等しいならば、ループ終了となる。ループ終了の場合、D_all_totalを勾配エネルギー915に足して保存する。また、副画像のピクセルp1のdepth値と、主画像のピクセルp0のdepth値の平均を取り、主画像のピクセルp0のdepth値918として上書き保存する。
【0065】
以上で、対応する副画像のピクセル選択処理が終了となる。最終的に対応画素リストに入っているリストが、画像P0の画素p0に対応する、画像P1のシーム情報となる。また、累積のエネルギー915のこれらの工程1102〜1108を最終列y=Y-1にたどり着くまで、ループ処理を行う。
【0066】
図11のルーチンに戻り、主画像のピクセルp0(x,y)の領域915に、上のラインからの累積エネルギーと、このピクセルのエネルギーに加え、対応する副画像側エネルギーD_allを加えた結果を、ピクセルの累積エネルギーとして、915に保存する。
【0067】
工程1109〜1112は、工程309〜312と同一の処理を行う。
【0068】
以上のように、本実施例では、一組のステレオ画像が主画像と副画像のペアとして与えられているとき、主画像の上方から下方まで連続的に連結された画素のパスから画素勾配エネルギー最小となるものを選択し、また対象となる主画像と副画像のステレオ対応関係から、主画像の連結画素上の各画素に対応する副画像上の各画素位置を初期探索点として計算し、その初期探索点の近傍において主画像の画素と副画像の画素の間での色の差と位置の差を合計して得られるエネルギーが最小になる副画像上の連結画素のパスを選択し、この主画像と副画像との差から生まれるエネルギーを主画像の画素勾配のエネルギーの補正項として用いて最適連結画素の再帰的な探索処理を行い、その総合値から最小エネルギーとなる連結画素のパスを算出し、この連結画素のパスにそって画素を挿入または削除することによって、画像の構図と縦横サイズを変更する。
【0069】
この実施例の手法の効果として、主画像と副画像の色の差が少なく、かつdepth値の不連続な変動が少ないシームを優先的に選択することができる。これらのシーム上のピクセルから画像の拡大/縮小を行うことによって、画像内のオブジェクトの形状が維持されると同時に、互いの画像のオクルージョン領域となる部分については改変が行われない。このためステレオマッチングの対応関係を壊さないままで、ステレオ画像のImage Retargeting処理を行うことが出来るようになる。
【0070】
第二の実施例について述べる。本実施例はステレオカメラが装備された機器であり、そのカメラで得られた情報を処理する機器の例である。本実施例は、以下に新たに説明する内容を除き、構成および処理動作等は実施例1と同様である。
【0071】
各機構の部品1301から1310は、実施例1の機構部品701から710にそれぞれ対応するが、それに加えて、2台のカメラ1311, 1312が追加されている。2台のカメラは、情報処理装置で操作されて、撮影された画像データは入出力IF1309を通じ、主記憶上に取り込まれ、主画像701、副画像702のメモリ領域に保存される。
【0072】
カメラ0で撮影された画像が主画像、カメラ1で撮影された副画像として、実施例1と同等の処理をすることにより、実施例1の技法を適用して、Image Retargetingの処理を行うことが出来る。
【0073】
第三の実施例について述べる。本実施例は、多視点L個のステレオ画像に対して適用した例である。本実施例は、以下に新たに説明する内容を除き、構成および処理動作等は実施例1と同様である。
【0074】
本実施例では、主画像0のほかに、L個の画像が副画像の対象として用いられる。図15のフローチャートは、この実施例の処理の流れを記載したものである。
【0075】
この実施例では、対応画素リストとして、リストをL個配列として保持とする。また、工程1502で対応画素リストの配列を全てクリアし、処理の対象となる副画像を指示する変数lを1〜L-1までループさせる。このループ構造の工程1540、1541の存在が実施例1との相違点となる。
【0076】
工程1540と1541の間で実行される各処理1503〜1520は、実施例1の1203〜1220にそれぞれ対応し、同一の処理を行うが、工程1520における勾配エネルギの加算がL回繰り返して行われる点と、depth値の平均がN個のdepthの平均値となる点のみが異なる。
【0077】
第四の実施例について述べる。本実施例では、実施例1に対し、位相限定相関法に特有な距離推定のバイアスを加味して、エッジ付近の重要度をシーム選択判定に加える処理のアルゴリズム例を示す。本実施例は、以下に新たに説明する内容を除き、構成および処理動作等は実施例1と同様である。
【0078】
実施例1の工程1206において用いられた、ステレオ間の空間距離のずれをエネルギー関数に取り込むA_dの値として、実施例1の定数処理の代わりに、副画像の位置(x,y)に応じて以下の手法で定義される変数を用いる。
【0079】
A_d(x,y) = A_d1/(dd(x,y)+1)
【0080】
ただし、このdd(x,y)は、画像P1に対してエッジ検出フィルタ処理を行ったP1'について、対象ピクセル位置(x,y)から最も近いエッジ検出位置までの距離を示す値である。またA_d1は定数である。
【0081】
実施例1に基づいた計算の過程において、固定値A_dの代わりに、このエッジからの距離に基づいた重み付けを付けることにより、対象ピクセルがオブジェクトのエッジ部分の周辺にない場合には色の差のみを重要な判断基準として計算が行い、エッジの周辺にある場合にのみ画像の深度と位置を正確に用いる計算処理をとることになる。これにより、位相限定相関法に特有な平坦なオブジェクト部分で深度の推定が変動する現象によってシームの選択基準が影響を受けることを緩和する。
【0082】
以上に説明した各実施例における各処理は、後述する中央演算装置がプログラムを読み出して実行することに実行される。
【0083】
以上のように、上述した実施形態における画像処理を用いることで、シームの探索においてステレオ画像に対応する画像が存在する点を優先的に検出するため、これらのシーム上でのピクセルの削除・追加作業によって、人間の視覚特性に特徴的なオブジェクトについては、互いのステレオ関係を崩すことなくImage retargetingの処理を行うことが出来る。
【符号の説明】
【0084】
601 元の主画像(左画像)
602 元の副画像(右画像)
621 本実施例適用後の主画像(左画像)
622本実施例適用後の副画像(右画像)
700 情報処理装置
910 主画像について各ピクセルの計算処理情報を入れる構造体
1010 副画像について各ピクセルの計算処理情報を入れる構造体
【技術分野】
【0001】
本発明は、画像処理装置および画像処理方法に関し、特に、ステレオ画像のImage Retargetingの技術に関する。
【背景技術】
【0002】
昨今の映像表示システムは、PDAや携帯のような小型モニタから、大画面ディスプレイなど、用途に応じた多様化を見せている。この多様化にともない、解像度の違いなどを考慮しない単純な映像の縮小によっては、画像の印象や必要な視覚情報が失われる場合もあるため、各コンテンツ画像の自動/半自動サイズ変更が重要な問題となってきている。
このディスプレイの多様化にともなう改変の問題は、三次元ディスプレイについてはさらに大きな問題になる。ステレオ画像を改変する場合には、各画像に映るオブジェクトの位置の間の視差量が奥行きを示す値となるため、たがいの整合性を満たす必要が生まれ、二次元画像の改変よりもはるかに制約条件が厳しくなる。
【0003】
このような背景から、特に二次元画像コンテンツの改変技術として、人間による観察時に画像内で重要となる部分を考慮した映像処理(Context-aware image processing)の研究が進められている。この処理は、重要部分を切り抜く(Cropping)という単純な処理から、意味要素を残した構図の自動的変更などを含む。この中で、重要オブジェクトの形状を維持したままで縦横比率の変更を行う処理は Image Retargeting等といわれる。このImage retargetingの処理技法の一つにSeam-carvingと呼ばれる技術が提唱されている(非特許文献1)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】AVIDAN, S., AND SHAMIR, A. 2007. Seam carving for content-aware image resizing. ACM Trans. Graph.26, 3, Article No.10.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記非特許文献1においては、三次元ディスプレイ等のように2個以上のペアを持つステレオ画像について処理を適用する際に、画像間の互いのステレオ対応関係の情報を加味しないで独立にシームの探索処理を行うことになる。このため、画像間の対応が取れずにオブジェクトの形状維持が破綻し、一枚の画像だけでシームを選んで他の画像から対応点を探そうとすると他の画像に適切なシームが選べないシームが優先的に選ばれてしまうという課題がある。
【課題を解決するための手段】
【0006】
本発明は、対象となる主画像と副画像のペアの間にステレオ対応関係の概略をあらかじめ計算し、主画像のシームの各ピクセルに対して局所的にエネルギー最小となる連結成分を選択していく中で、主画像のシーム上の画素に対応する画素が副画像にも存在するかどうかの判定を行い、その主画像の画素と副画像の画素の色の差と位置の差を用いて主画像のシーム探索に用いるエネルギーの補正項として最適シームの探索における判定処理に加算することによって、ステレオ画像に対しても安定した画像処理を行うことを最も主要な特徴とする。
【発明の効果】
【0007】
本発明によれば、ステレオ画像の互いの関係の崩れを軽減するImage-retargettingの処理を行うことが出来るようになる。
【図面の簡単な説明】
【0008】
【図1】Seam-carvingの実行対象となる画像データの例。
【図2】Seam-carvingの処理フローの全体。
【図3】Seam-carvingのシームの探索処理フロー。
【図4】Seam-carvingの処理を実行するためのデータ構造体の例。
【図5】Seam-carvingのシームの連結処理フロー。
【図6】実行対象となる画像データの例。
【図7】計算処理装置の例。
【図8】処理フローの全体。
【図9】処理を実行する主画像の各ピクセルに対応したデータを保存する構造体の例。
【図10】処理を実行する副画像の各ピクセルに対応したデータを保存する構造体の例。
【図11】シームの探索処理フロー。
【図12】処理を実行するためのデータ構造体の例。
【図13】実施例2を実行するための計算処理装置の例。
【図14】実施例1における、ピクセルの探索の例。
【図15】実施例4を実行するための計算処理装置の例。
【発明を実施するための形態】
【0009】
まず、Seam-carvingの概要について図1から図5を用いて説明する。本発明の実施形態はこのSeam-carvingを前提とするものであり、図6から図15を用いて後述する。
【0010】
図1は、Seam-carvingの処理内容を示す概念図である。Seam-carvingとは、人間が意味的解釈する絵の要素を変えることなく画像内容を改変するための画像フィルタ技術である。この技法では、図1の画像100内に、画像に写っている被写体などの目に付く画像オブジェクトを避けながら、画像の上下をつなぐ 110〜115のような継ぎ目(seam:以下シームと記載)と呼ばれる一連の連結パスを探索し、このシームに沿って、ピクセルの削除、複製を行う。(1)単調性、(2)連続性 の制約条件を満たしたうえで、式1であらわされる画像勾配のエネルギーを最小化する領域を取ることで、画像上の目に付くオブジェクトをよける曲線をシームとして選択できるという点がこの技法の主眼点である。この技法では、上から下、左から右に、連結成分で色の変化が少ない画素関係、即ちエネルギーが少ない画素を探していく。
【0011】
【数1】
【0012】
ただし、上記での単調性と連続性は、(1)一つのシームとあるy座標値を選んだときに対象となるピクセルが一つのみ存在する一意性の制約条件と、(2)(x0,y)と(x1,y+1)が連結成分であるためには|x0-x1|<kを満たすという制約条件という二つの制約条件を意味する。
【0013】
このようなシームを計算・保存するためのデータ領域の一例を図4に示す。単位構造体410を要素として、横X縦Yの画像サイズに合わせた二次元配置である。単位構造体410は、それぞれ、画像の色情報(R,G,B)成分のデータ格納領域(411)と、シーム番号のデータ格納領域(412)、連結される上候補の方向を示す計算データの格納領域(413)、シームを削除改変した後の画像位置情報のデータ格納領域(414)、シームの方向を決定するための画像エネルギーを保存する領域(415)から構成される。
【0014】
既存のseam-carvingでは上から下に向かって数1のエネルギーが最小になるシームの探索を行っている。この手法を実現するための処理のフローを図2に示す。
【0015】
まず、工程202では、横Xピクセル縦Yピクセルの元画像P0を用意し、初期化処理を行う。各画素(座標位置(x,y))に対して、(x,y)の位置にある単位構造体の色情報領域411に元画像の色情報をコピーし、シーム番号(412)にはデフォルト値-1を書き込み、計算データ領域D(413)に0を書き込み、画像位置情報F(414)に(x,y)の値を書き込み、エネルギーEに0を書き込む。
【0016】
この画像構造体400に対して、工程203〜205のループをN回繰り返して、エネルギーの低い順に必要な個数のシームをN本順番に選び出していく。図2の工程203〜205はこのシームを作成するN回のループである。以下では、このループのインデックスをシーム番号nとする。
【0017】
工程203では、エネルギー計算用のテンポラリ画像PTを作成する。このテンポラリ画像PTは、元画像構造体400の各ピクセル(x,y)の中についてシーム番号412が-1、すなわち画像イメージの中からまだシームとして定められていない画素の色情報を、画素座標位置414のピクセルに書き込むことによって作成する。この画像PTの画素(x,y)に対して、ピクセルの輝度I(x,y)を計算し、そこから画像勾配のエネルギーを数1に基づいて計算する。
【0018】
この計算後、元画像構造体400の各ピクセル(x,y)の中についてシーム番号412が-1である、すなわち画像イメージの中でまだシームとして定められていない画素について、各ピクセルの画像エネルギー領域E(415)に、画像P1の座標Fで計算された画像勾配エネルギーの情報を書き込む。
【0019】
工程204では、エネルギー領域E(415)の情報から、エネルギーを最小とするシームを選択する。この処理内容の詳細を、図3のフローに示す。
【0020】
工程302・工程307は、y座標=1(すなわち上から2列目)から、y=Y-1(すなわち一番下の列)の間、工程303〜306を繰り返して行うループ処理の開始場所と終了判定をそれぞれ意味する。また、工程303・306は、x座標=0から、x=X-1の間を工程304を繰り返して行うループ処理を意味する。
【0021】
工程304は、ループの示すピクセル位置(x、y)に対して、その一つ上の列から連結成分を選び出す処理を示す。この処理の内容の詳細を図5のフロー図に従って示す。
【0022】
工程501は連結成分探索処理の開始を示す。工程502では、位置座標(x,y-1)のピクセルから、右左それぞれの方向にk個、まだシームとして定められていない画素を選択する。これを集合X0とする。
【0023】
工程503では集合X0の中から勾配エネルギー領域405に書き込まれている値が最も小さい画素(x0,y-1)を選び出す。
【0024】
工程504では、選ばれたx0の値を連結成分格納領域D(413)に保存する。
【0025】
工程505では、このピクセル(x,y)の画像エネルギー領域E(415)の値に、上の連結ピクセル(x0,y-1)の画像エネルギー領域E(415)を足しあわせ、ピクセル(x,y)の画像エネルギー領域E(415)に上書き更新する。すなわち、この領域には、連結成分格納領域413に示される方向でシームをたどっていった場合の、エネルギーの累積値が保存される。
【0026】
以上で、工程304の連結対象発見処理は完了する(工程506)。
【0027】
これらの一連の工程302〜037を、最終列y=Y-1にたどり着くまで、yについてループ処理を行う。
【0028】
工程308では、最終列の状態において、Y-1列目の各構造体で画像エネルギー領域E(415)に書き込まれた累積エネルギーが最小となっているものを選び出す。
工程309・311はy=Y-1からy=0までyの値を一つずつ減らしながら工程310を行うループ処理の、開始・終了判定処理をそれぞれ意味する。工程310では、(x,y)の位置にあるピクセルのシーム番号のデータ格納領域(412)に現在のシーム番号nの値を書き込む。また、シームの右側、すなわち同一のy座標をもつライン内のピクセルの中で、x座標がx1よりも大きい画素については、シーム削除改変後の画像位置情報Fのデータ格納領域(414)のx座標を一つ減らす。これにより、まだシームとして選ばれていない画素が左詰めになった改変画像の座標値が得られる。また、その位置の上のラインの連結成分を辿っていく際に、(x,y)の画像情報の連結成分格納領域413から一つ上のx座標の情報を読み込み、新しいx座標の位置とする。
【0029】
ピクセルの工程311はループ終了判定であり、yが0になるまで1つずつ減らして工程310の処理を繰り返す。以上の処理を309〜311を実行することで、n本目のエネルギー最小のシームの情報が、構造体400に登録される。
【0030】
図2に戻り、工程205はシーム探索の終了判定であり、nの値を調べて必要な本数のシームが選択されたならばループ処理を終了する。まだシームの数が必要本数のNに足りないならば、nを一つ増やして工程203に戻る。
【0031】
これらの処理を繰り返すことで、元画像から横方向がNピクセル削減された新しいサイズの画像が作成される。
【0032】
以上の各フローチャートにおける各処理は、後述する中央演算装置がプログラムを読み出して実行することに実行される。
【0033】
以上、Seam-carvingの概要を説明した。以下、具体的な実施例を説明する。
【0034】
第一の実施例として、図6の601、602のようなステレオ画像が与えられたとき、画像の主要なオブジェクトについて改変を加えることなく、かつ互いペア画像とのの視差を出来るだけ変えることなく、横方向の画像サイズをX-Nに改変した一組のステレオ画像621、622を生成する画像情報処理を実行する処理機構を示す。即ち、幅X、高さYの画像を幅X’= X−N、高さYの画像に変更する画像情報処理を示している。
【0035】
図7は、このような情報処理ルーチンを実行するための標準的な情報処理装置700を実現するための機構の例を示す模式図である。中央演算装置705、主記憶装置706、外部記憶装置707と、外部に表示する画像を作成する映像出力部708、外部入出力インタフェース部709、ネットワークインタフェース部710の要素から構成される。
【0036】
これらの各情報処理機器の実装は汎用の計算機として実装されている各種に準じる。また、外部入出力インタフェースにはUSBなど汎用の外部機器制御インタフェースを用いる。また、情報処理機器は互いにネットワークIF710を介してメッセージを交換するが、このネットワークの実装には、TCP/IPなどのメッセージ交換用プロトコルを利用する。また、画像データを入力する画像データ入力機器711が接続される。この読み取り機器711としては、SDカードなど磁気・光学データの読み取り装置などの技術を用いることで実装可能である。
【0037】
この実施例を実現するための一連の情報処理の流れを示すフロー図を図8に示す。
【0038】
図8の工程801では、横Xピクセル、縦Yピクセルのステレオペア画像P0とP1(例えば、図6の601と602)を、画像データ入力機器710から読み込む。ここでP0を主画像とし、P1をその周辺のカメラ位置から撮影した副画像とする。これらは、一定の視差を設定した、同視野角、同方向を向けた2台のカメラで撮影したデジタル画像であるとする。
【0039】
主画像P0について、シームを計算・保存するためのデータ領域を図9に示す。P0のあるひとつのピクセルに対応した計算過程に必要な情報を保持する単位構造体910を要素として、横X縦Yの画像サイズに合わせた二次元配列としたデータ構造を用意し、本計算処理の作業工程に用いる。単位構造体910は、それぞれ、画像の色情報(R,G,B)成分のデータ格納領域(911)と、シーム番号のデータ格納領域(912)、連結される上候補の方向を示す計算データの格納領域(913)、シームを削除改変した後の画像位置情報のデータ格納領域(914)、シームの方向を決定するための画像エネルギーを保存する領域(915)、同ピクセルに対応する画像P1上の画像座標位置916、同ピクセルに対応する画像P1上の画素リスト917、ステレオから類推される深度情報918から構成される。
【0040】
また、副画像P1について、シームを計算・保存するためのデータ領域を図10に示す。単位構造体1010を要素として、横X縦Yの画像サイズに合わせた二次元配置である。単位構造体1010は、それぞれ、P1の画素の色情報(R,G,B)成分のデータ格納領域(1011)と、シーム番号のデータ格納領域(1012)、対応するP0の画素位置格納領域(1013)、シームを削除改変した後の画像位置情報のデータ格納領域(1014)から構成される。
【0041】
主画像P0について、工程801では初期化処理を行う。座標位置(x,y)の各ピクセルに対し、単位構造体911に色情報をコピーし、シーム番号(912)に-1を書き込み、計算データ領域(913)に0を書き込み、画像位置情報(914)に(x,y)の値を書き込み、エネルギー(915)に0を書き込む。副画像P1についても初期化処理を行い、シーム番号に-1を、それ以外の各値に0を入れる。
【0042】
工程802では、ステレオ画像間の対応関係を示すテーブルを作成する。この工程では、ステレオペアの間の対応ピクセル関係を、サブピクセル精度で検出する。本実施例においては、位相限定相関法により実行される。その詳細は、「一次元位相限定相関法に基づくステレオ画像の高精度サブピクセル対応付け手法」、柴原琢磨, 沼徳仁,長嶋聖,青木孝文,中島寛,小林孝次,電子情報通信学会論文誌 D Vol.J91-D No.9 pp.2343-2356、に記述されている。
【0043】
上記処理により作成される、P0の各画素p0(x,y)に対応するP1画像上の位置p1(x_p,y_p)を、主画像の各ピクセル構造体の持つメモリ領域916に保存する。これを対応初期画素と呼ぶ。但しx_p, y_pは共に小数であり、サブピクセル精度で画像上の位置を示す座標である。また、これらの視差の値から求められた奥行き情報の値を、主画像の各ピクセル構造体の持つメモリ領域917に保存する。
【0044】
この画像構造体900に対して、工程803〜806の処理をN回ループして繰り返し、エネルギーの低い順に必要な個数のシームをN本順番に選び出していく。図2の工程807はこのN回のループの終了判定である。以下では、このループのインデックスをシーム番号nとする。
【0045】
工程803では、エネルギー計算用のテンポラリ画像P1を作成する。このテンポラリ画像は、元画像構造体900の各ピクセル(x,y)の中についてシーム番号912が-1、すなわち画像イメージの中からまだシームとして定められていない画素の色情報を、画素位置914の座標Fの位置に書き込むことによって作成する。
【0046】
画像P1の画素(x,y)に対して、R,G,Bからピクセルの輝度I(x,y)を計算し、そこから画像勾配のエネルギーを数1に基づいて計算する。
【0047】
この計算後、元画像構造体900の各ピクセルp=(x,y)の中についてシーム番号912が-1、すなわち画像イメージの中からまだシームとして定められていない画素について、各ピクセルの画像エネルギー領域E(915)に、画像P1の座標Fで計算された画像勾配エネルギーの情報を書き込む。
【0048】
工程804では、テンポラリ画像P1のエネルギー情報から、主画像のエネルギーに副画像からの対応エネルギーを加算した値を最小とするシームを選択する。この処理内容の詳細を、図11のフローを用いて説明する。
【0049】
工程1102〜1108は、y座標=1(すなわち上から2列目)から、y=Y-1(すなわち一番下の列)の間をyに対して、工程1103〜1107を繰り返して行うループ処理を意味する。
【0050】
工程1103〜1107は、x座標=0からX-1の間をxに対して、工程1104〜1106を繰り返して行うループ処理を意味する。
【0051】
工程1104では主画像のエネルギー関数を用いて、画像P0の一列上のラインから連結対象となるピクセルp_00を探す。この処理には先行技術例に挙げた工程304とその詳細内容を示す図5のルーチン処理に基づいて実行する。工程1105は、上の列から連結成分を選び出す処理を示す。この処理の内容を図12に示す。
【0052】
図12は、主画像P0でシームの候補となったあるピクセルp0に対して、これに対応するあるピクセルp1を副画像P1上から選び出す一連の操作を示すものである。但し、このピクセル位置は整数で示される座標系の0個以上のリストであり、このリストの各成分は画像P1上のある特定のピクセルを示す座標である。これを対応画素リスト(917)と呼ぶ。
工程1201は、対応初期画素p1=(x_p,y_p)の近傍から、適切なピクセルを検索し対応画素リストに保存する一連の処理ルーチンを開始する処理である。
【0053】
工程1202では、対応画像位置2の値をクリアして、空リストとする。
【0054】
工程1203では、工程802においてピクセルp0の構造体のメモリ領域916に書き込まれた対応初期画素p1 (x_p,y_p)を読み込み、このy_pに対し、小数値以下を四捨五入した整数値y1'=round(y_p)を計算する。
【0055】
次に画像0におけるシームの連結成分ピクセルp_00が保有する対応画素リスト(917)の値を読み込み、そのyの値をy0'とする。
【0056】
y0'>=y1'である場合には、このリストには何のピクセルも登録せず、空集合としたままで工程1230に進む。y1'>y0'である場合には、工程1211〜1220のループ処理を実行する。
【0057】
工程1211は、画像P1上のラインを示す変数値yyを、y0'からy1'の間繰り返すループ処理の開始を示す工程であり、副画像P1の各ラインy=yyについて工程1212から1219の処理が行われる。工程1212では、またテンポラリ変数D_all_totalの値を0にセットし、副画像P1のラインy=y1'において、対応画像位置p0'の近傍(距離2kk)以内にあるピクセルの集合X0を作成する。この集合X0の状態を図14の模式図に示す。1410は、画像P0上で、1ライン上の連結ピクセルp_00を示し、1411は画素p、1420はp_00の対応画素リストの要素画素(の一番下のもの)、1421は画素pの対応初期画素 916が示す座標位置、1430はラインy=yyから選ばれたピクセルの集合X0を示す。
【0058】
工程1213は、画像P1上のラインを示す変数値yyを、y0'からy1'の間繰り返すループ処理の開始を示す工程であり、この集合内の各要素ピクセルp1'=(x1',y1')について1214〜1216の処理を行う。はじめに工程1214で、色の整合性をエネルギー関数に加算する。ピクセルp0の色情報p0.colorと、ピクセルp1.colorの色を比較する処理を行い、結果その結果を変数D_c = colDiff(p0,p1)に保存する。
【0059】
この処理は、画像P0内のピクセルp0の色情報911と、画像P1内のピクセルp1の色情報1011を比較して、距離として算出するものである。二つの色の間に距離を定義する手法はいくつか知られており、色空間の定義に応じて適切なものを設定することが可能だが、本実施例ではRGB色情報の差、|r0-r1|+|g0-g1|+|b0-b1|として簡便に与えるものとする。ただし、ただしRGB値がそれぞれ(r0,g0,b0)(r1,g1,b1)である。この値をD_cとしてテンポラリ変数に保存する。
【0060】
続いて、工程1215で、奥行きと推定距離情報の整合性をエネルギー関数に加算する。
【0061】
副画像P1の奥行き情報と、候補ピクセルp1での奥行き情報の差を算出する。この値の計算結果D_z = |p0.depth-p1.depth |を計算する。さらに、p1'とp0'のxy平面状の距離をD_xy = ((x_p-x1')^2+(y_p-y1')^2)^(1/2)として計算する。テンポラリ変数D_dにDz+D_xyの値を保存する。工程1216では、上記二つの要素を併せた最終的な評価値を D_all = A_c D_c + A_d D_d として算出し、テンポラリ領域に保存する。ただし、本実施例ではA_cとA_dは定数と定める。これらのD_allを全ての探索集合点x0の中に対して作成されていたかをチェックする。未対応の点がある場合には、ループに戻り1214〜1216の処理を繰り返す。
【0062】
工程1218では、各x0'の値に対して、D_allを最も小さくする x0'の値を選択する。この値が、画像P1のラインy=y2におけるシームの座標(x0',yy)となる。
【0063】
工程1219では、以下の情報の更新を行う。この選ばれたP1上の座標(x0',y2)の値を、副画像のシームの情報として、ピクセルp0の構造体の対応画素リスト(917)に追記保存する。また、D_all_total=max(D_all_total, D_all)と改変する。
【0064】
工程1220は、ループの終了条件をチェックし、y2'がy1'より小さいならば、1211からのループ処理を繰り返す。y2'がy1'と等しいならば、ループ終了となる。ループ終了の場合、D_all_totalを勾配エネルギー915に足して保存する。また、副画像のピクセルp1のdepth値と、主画像のピクセルp0のdepth値の平均を取り、主画像のピクセルp0のdepth値918として上書き保存する。
【0065】
以上で、対応する副画像のピクセル選択処理が終了となる。最終的に対応画素リストに入っているリストが、画像P0の画素p0に対応する、画像P1のシーム情報となる。また、累積のエネルギー915のこれらの工程1102〜1108を最終列y=Y-1にたどり着くまで、ループ処理を行う。
【0066】
図11のルーチンに戻り、主画像のピクセルp0(x,y)の領域915に、上のラインからの累積エネルギーと、このピクセルのエネルギーに加え、対応する副画像側エネルギーD_allを加えた結果を、ピクセルの累積エネルギーとして、915に保存する。
【0067】
工程1109〜1112は、工程309〜312と同一の処理を行う。
【0068】
以上のように、本実施例では、一組のステレオ画像が主画像と副画像のペアとして与えられているとき、主画像の上方から下方まで連続的に連結された画素のパスから画素勾配エネルギー最小となるものを選択し、また対象となる主画像と副画像のステレオ対応関係から、主画像の連結画素上の各画素に対応する副画像上の各画素位置を初期探索点として計算し、その初期探索点の近傍において主画像の画素と副画像の画素の間での色の差と位置の差を合計して得られるエネルギーが最小になる副画像上の連結画素のパスを選択し、この主画像と副画像との差から生まれるエネルギーを主画像の画素勾配のエネルギーの補正項として用いて最適連結画素の再帰的な探索処理を行い、その総合値から最小エネルギーとなる連結画素のパスを算出し、この連結画素のパスにそって画素を挿入または削除することによって、画像の構図と縦横サイズを変更する。
【0069】
この実施例の手法の効果として、主画像と副画像の色の差が少なく、かつdepth値の不連続な変動が少ないシームを優先的に選択することができる。これらのシーム上のピクセルから画像の拡大/縮小を行うことによって、画像内のオブジェクトの形状が維持されると同時に、互いの画像のオクルージョン領域となる部分については改変が行われない。このためステレオマッチングの対応関係を壊さないままで、ステレオ画像のImage Retargeting処理を行うことが出来るようになる。
【0070】
第二の実施例について述べる。本実施例はステレオカメラが装備された機器であり、そのカメラで得られた情報を処理する機器の例である。本実施例は、以下に新たに説明する内容を除き、構成および処理動作等は実施例1と同様である。
【0071】
各機構の部品1301から1310は、実施例1の機構部品701から710にそれぞれ対応するが、それに加えて、2台のカメラ1311, 1312が追加されている。2台のカメラは、情報処理装置で操作されて、撮影された画像データは入出力IF1309を通じ、主記憶上に取り込まれ、主画像701、副画像702のメモリ領域に保存される。
【0072】
カメラ0で撮影された画像が主画像、カメラ1で撮影された副画像として、実施例1と同等の処理をすることにより、実施例1の技法を適用して、Image Retargetingの処理を行うことが出来る。
【0073】
第三の実施例について述べる。本実施例は、多視点L個のステレオ画像に対して適用した例である。本実施例は、以下に新たに説明する内容を除き、構成および処理動作等は実施例1と同様である。
【0074】
本実施例では、主画像0のほかに、L個の画像が副画像の対象として用いられる。図15のフローチャートは、この実施例の処理の流れを記載したものである。
【0075】
この実施例では、対応画素リストとして、リストをL個配列として保持とする。また、工程1502で対応画素リストの配列を全てクリアし、処理の対象となる副画像を指示する変数lを1〜L-1までループさせる。このループ構造の工程1540、1541の存在が実施例1との相違点となる。
【0076】
工程1540と1541の間で実行される各処理1503〜1520は、実施例1の1203〜1220にそれぞれ対応し、同一の処理を行うが、工程1520における勾配エネルギの加算がL回繰り返して行われる点と、depth値の平均がN個のdepthの平均値となる点のみが異なる。
【0077】
第四の実施例について述べる。本実施例では、実施例1に対し、位相限定相関法に特有な距離推定のバイアスを加味して、エッジ付近の重要度をシーム選択判定に加える処理のアルゴリズム例を示す。本実施例は、以下に新たに説明する内容を除き、構成および処理動作等は実施例1と同様である。
【0078】
実施例1の工程1206において用いられた、ステレオ間の空間距離のずれをエネルギー関数に取り込むA_dの値として、実施例1の定数処理の代わりに、副画像の位置(x,y)に応じて以下の手法で定義される変数を用いる。
【0079】
A_d(x,y) = A_d1/(dd(x,y)+1)
【0080】
ただし、このdd(x,y)は、画像P1に対してエッジ検出フィルタ処理を行ったP1'について、対象ピクセル位置(x,y)から最も近いエッジ検出位置までの距離を示す値である。またA_d1は定数である。
【0081】
実施例1に基づいた計算の過程において、固定値A_dの代わりに、このエッジからの距離に基づいた重み付けを付けることにより、対象ピクセルがオブジェクトのエッジ部分の周辺にない場合には色の差のみを重要な判断基準として計算が行い、エッジの周辺にある場合にのみ画像の深度と位置を正確に用いる計算処理をとることになる。これにより、位相限定相関法に特有な平坦なオブジェクト部分で深度の推定が変動する現象によってシームの選択基準が影響を受けることを緩和する。
【0082】
以上に説明した各実施例における各処理は、後述する中央演算装置がプログラムを読み出して実行することに実行される。
【0083】
以上のように、上述した実施形態における画像処理を用いることで、シームの探索においてステレオ画像に対応する画像が存在する点を優先的に検出するため、これらのシーム上でのピクセルの削除・追加作業によって、人間の視覚特性に特徴的なオブジェクトについては、互いのステレオ関係を崩すことなくImage retargetingの処理を行うことが出来る。
【符号の説明】
【0084】
601 元の主画像(左画像)
602 元の副画像(右画像)
621 本実施例適用後の主画像(左画像)
622本実施例適用後の副画像(右画像)
700 情報処理装置
910 主画像について各ピクセルの計算処理情報を入れる構造体
1010 副画像について各ピクセルの計算処理情報を入れる構造体
【特許請求の範囲】
【請求項1】
一組のステレオ画像が主画像と副画像のペアとして与えられているとき、主画像の上方から下方まで連続的に連結された画素のパスから画素勾配エネルギー最小となるものを選択し、また対象となる主画像と副画像のステレオ対応関係から、主画像の連結画素上の各画素に対応する副画像上の各画素位置を初期探索点として計算し、その初期探索点の近傍において主画像の画素と副画像の画素の間での色の差と位置の差を合計して得られるエネルギーが最小になる副画像上の連結画素のパスを選択し、この主画像と副画像との差から生まれるエネルギーを主画像の画素勾配のエネルギーの補正項として用いて最適連結画素の再帰的な探索処理を行い、その総合値から最小エネルギーとなる連結画素のパスを算出し、この連結画素のパスにそって画素を挿入または削除することによって、画像の構図と縦横サイズを変更する画像処理装置。
【請求項2】
一組のステレオ画像が主画像と副画像のペアとして与えられているとき、主画像の上方から下方まで連続的に連結された画素のパスから画素勾配エネルギー最小となるものを選択し、また対象となる主画像と副画像のステレオ対応関係から、主画像の連結画素上の各画素に対応する副画像上の各画素位置を初期探索点として計算し、その初期探索点の近傍において主画像の画素と副画像の画素の間での色の差と位置の差を合計して得られるエネルギーが最小になる副画像上の連結画素のパスを選択し、この主画像と副画像との差から生まれるエネルギーを主画像の画素勾配のエネルギーの補正項として用いて最適連結画素の再帰的な探索処理を行い、その総合値から最小エネルギーとなる連結画素のパスを算出し、この連結画素のパスにそって画素を挿入または削除することによって、画像の構図と縦横サイズを変更する画像処理方法。
【請求項3】
N組の多眼ステレオ画像が主画像とN−1個の副画像として与えられているとき、主画像の上方から下方まで連続的に連結された画素のパスから画素勾配エネルギー最小となるものを選択し、また対象となる主画像と副画像の各ステレオ対応関係から、主画像の連結画素上の各画素に対応する副画像上の各画素位置を初期探索点としてそれぞれ計算し、その初期探索点の近傍において主画像の画素と副画像の画素の間での色の差と位置の差を合計して得られるエネルギーが最小になる副画像上の連結画素のパスを選択し、この主画像と副画像との差から生まれるエネルギーの総和を主画像の画素勾配のエネルギーの補正項として用いて最適連結画素の再帰的な探索処理を行い、その総合値から最小エネルギーとなる連結画素のパスを算出し、この連結画素のパスにそって画素を挿入または削除することによって、画像の構図と縦横サイズを変更する画像処理方法。
【請求項4】
画像データを入力する入力部と、
前記入力された画像データに対して画像処理を施す中央演算装置と、
前記画像処理が施された画像データを出力する出力部と、を備える画像処理装置において、
前記入力部は、
一組のステレオ画像データである第1の画像データと第2の画像データとを入力し、
前記中央演算装置は、
前記第1の画像データの画像の上端から下端まで連続的に連結された連結画素のパスを画素勾配エネルギーに基づいて算出し、
前記第1の画像データと前記第2の画像データのステレオ対応関係に基づいて、前記第1の画像データの前記連結画素の各画素に対応する、前記第2の画像データの各画素を初期探索点として算出し、
前記初期探索点近傍において前記第1の画像データの画素と前記第2の画像データの画素の間の色および位置の差から得られるエネルギーが最小となる画素を前記第2の画像データの連結画素のパスとして算出し、
前記エネルギーを用いて前記第1の画像データの最適連結画素のパスを算出し、
前記最適連結画素のパスに沿って前記第1の画像の画素を挿入または削除し、かつ、前記第2の画像データの連結画素のパスに沿って前記第2の画像の画素を挿入または削除することにより、前記第1の画像データと前記第2の画像データの画像の構図およびサイズを変更することを特徴とする画像処理装置。
【請求項5】
画像データを入力する入力部と、
前記入力された画像データに対して画像処理を施す中央演算装置と、
前記画像処理が施された画像データを出力する出力部と、を備える画像処理装置における画像処理方法において、
前記入力部は、
一組のステレオ画像データである第1の画像データと第2の画像データとを入力し、
前記中央演算装置は、
前記第1の画像データの画像の上端から下端まで連続的に連結された連結画素のパスを画素勾配エネルギーに基づいて算出し、
前記第1の画像データと前記第2の画像データのステレオ対応関係に基づいて、前記第1の画像データの前記連結画素の各画素に対応する、前記第2の画像データの各画素を初期探索点として算出し、
前記初期探索点近傍において前記第1の画像データの画素と前記第2の画像データの画素の間の色および位置の差から得られるエネルギーが最小となる画素を前記第2の画像データの連結画素のパスとして算出し、
前記エネルギーを用いて前記第1の画像データの最適連結画素のパスを算出し、
前記最適連結画素のパスに沿って前記第1の画像の画素を挿入または削除し、かつ、前記第2の画像データの連結画素のパスに沿って前記第2の画像の画素を挿入または削除することにより、前記第1の画像データと前記第2の画像データの画像の構図およびサイズを変更することを特徴とする画像処理方法。
【請求項1】
一組のステレオ画像が主画像と副画像のペアとして与えられているとき、主画像の上方から下方まで連続的に連結された画素のパスから画素勾配エネルギー最小となるものを選択し、また対象となる主画像と副画像のステレオ対応関係から、主画像の連結画素上の各画素に対応する副画像上の各画素位置を初期探索点として計算し、その初期探索点の近傍において主画像の画素と副画像の画素の間での色の差と位置の差を合計して得られるエネルギーが最小になる副画像上の連結画素のパスを選択し、この主画像と副画像との差から生まれるエネルギーを主画像の画素勾配のエネルギーの補正項として用いて最適連結画素の再帰的な探索処理を行い、その総合値から最小エネルギーとなる連結画素のパスを算出し、この連結画素のパスにそって画素を挿入または削除することによって、画像の構図と縦横サイズを変更する画像処理装置。
【請求項2】
一組のステレオ画像が主画像と副画像のペアとして与えられているとき、主画像の上方から下方まで連続的に連結された画素のパスから画素勾配エネルギー最小となるものを選択し、また対象となる主画像と副画像のステレオ対応関係から、主画像の連結画素上の各画素に対応する副画像上の各画素位置を初期探索点として計算し、その初期探索点の近傍において主画像の画素と副画像の画素の間での色の差と位置の差を合計して得られるエネルギーが最小になる副画像上の連結画素のパスを選択し、この主画像と副画像との差から生まれるエネルギーを主画像の画素勾配のエネルギーの補正項として用いて最適連結画素の再帰的な探索処理を行い、その総合値から最小エネルギーとなる連結画素のパスを算出し、この連結画素のパスにそって画素を挿入または削除することによって、画像の構図と縦横サイズを変更する画像処理方法。
【請求項3】
N組の多眼ステレオ画像が主画像とN−1個の副画像として与えられているとき、主画像の上方から下方まで連続的に連結された画素のパスから画素勾配エネルギー最小となるものを選択し、また対象となる主画像と副画像の各ステレオ対応関係から、主画像の連結画素上の各画素に対応する副画像上の各画素位置を初期探索点としてそれぞれ計算し、その初期探索点の近傍において主画像の画素と副画像の画素の間での色の差と位置の差を合計して得られるエネルギーが最小になる副画像上の連結画素のパスを選択し、この主画像と副画像との差から生まれるエネルギーの総和を主画像の画素勾配のエネルギーの補正項として用いて最適連結画素の再帰的な探索処理を行い、その総合値から最小エネルギーとなる連結画素のパスを算出し、この連結画素のパスにそって画素を挿入または削除することによって、画像の構図と縦横サイズを変更する画像処理方法。
【請求項4】
画像データを入力する入力部と、
前記入力された画像データに対して画像処理を施す中央演算装置と、
前記画像処理が施された画像データを出力する出力部と、を備える画像処理装置において、
前記入力部は、
一組のステレオ画像データである第1の画像データと第2の画像データとを入力し、
前記中央演算装置は、
前記第1の画像データの画像の上端から下端まで連続的に連結された連結画素のパスを画素勾配エネルギーに基づいて算出し、
前記第1の画像データと前記第2の画像データのステレオ対応関係に基づいて、前記第1の画像データの前記連結画素の各画素に対応する、前記第2の画像データの各画素を初期探索点として算出し、
前記初期探索点近傍において前記第1の画像データの画素と前記第2の画像データの画素の間の色および位置の差から得られるエネルギーが最小となる画素を前記第2の画像データの連結画素のパスとして算出し、
前記エネルギーを用いて前記第1の画像データの最適連結画素のパスを算出し、
前記最適連結画素のパスに沿って前記第1の画像の画素を挿入または削除し、かつ、前記第2の画像データの連結画素のパスに沿って前記第2の画像の画素を挿入または削除することにより、前記第1の画像データと前記第2の画像データの画像の構図およびサイズを変更することを特徴とする画像処理装置。
【請求項5】
画像データを入力する入力部と、
前記入力された画像データに対して画像処理を施す中央演算装置と、
前記画像処理が施された画像データを出力する出力部と、を備える画像処理装置における画像処理方法において、
前記入力部は、
一組のステレオ画像データである第1の画像データと第2の画像データとを入力し、
前記中央演算装置は、
前記第1の画像データの画像の上端から下端まで連続的に連結された連結画素のパスを画素勾配エネルギーに基づいて算出し、
前記第1の画像データと前記第2の画像データのステレオ対応関係に基づいて、前記第1の画像データの前記連結画素の各画素に対応する、前記第2の画像データの各画素を初期探索点として算出し、
前記初期探索点近傍において前記第1の画像データの画素と前記第2の画像データの画素の間の色および位置の差から得られるエネルギーが最小となる画素を前記第2の画像データの連結画素のパスとして算出し、
前記エネルギーを用いて前記第1の画像データの最適連結画素のパスを算出し、
前記最適連結画素のパスに沿って前記第1の画像の画素を挿入または削除し、かつ、前記第2の画像データの連結画素のパスに沿って前記第2の画像の画素を挿入または削除することにより、前記第1の画像データと前記第2の画像データの画像の構図およびサイズを変更することを特徴とする画像処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2011−39801(P2011−39801A)
【公開日】平成23年2月24日(2011.2.24)
【国際特許分類】
【出願番号】特願2009−186957(P2009−186957)
【出願日】平成21年8月12日(2009.8.12)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成23年2月24日(2011.2.24)
【国際特許分類】
【出願日】平成21年8月12日(2009.8.12)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]