(58)【調査した分野】(Int.Cl.,DB名)
コンピュータ可読な媒体に配されたコンピュータプログラムであって、コンピュータを制御すべく操作可能でコンピュータで実行可能なプロセスステップを含み、これらプロセスステップが、コンピュータメモリ(16)に、画像を示す画像ファイル(18)を提供するステップと、前記画像ファイル(18)に対して画像分離操作を行って、前記画像に対応し照明画像と素材画像を有する1組の固有画像(34)を生成するステップと、1組の事前選択された操作にしたがって前記1組の固有画像(34)のうち事前選択された固有画像を修正するステップと、前記1組の固有画像(34)のうち修正された固有画像を前記1組の固有画像(34)に対してマージして、修正された出力画像を提供するステップとであり、
前記画像分離操作が、
色バンドに関する連続する画素間のスペクトル関係のような画像の連続する画素に関連する情報や、画像に示される単一素材または画像にエフェクトをかける照明束のような画像の特性に関連する画素スペクトル特性の空間的広がりである、空間スペクトル情報を含む、画像の表現若しくは特性である空間スペクトル演算子であって、連接画像領域であるトークンのような空間スペクトル演算子を生成し、ゾルバへの入力のために、前記空間スペクトル演算子間の制約空間スペクトル関係を定義する制約を、前記空間スペクトル演算子に受けさせることによって、実行され、
前記制約のそれぞれは、絶対素材色制約、同一素材制約、および相対反射度制約の1つであり、前記絶対素材制約は、画像の特定の位置での素材を特定の色に制約し、前記同一素材制約は、複数の空間スペクトル演算子を同一素材に制約し、前記相対反射度制約は、複数の空間スペクトル演算子を、反射度特性の類似性を有するように制約するもので、これら制約空間スペクトル関係は行列式Ax=bとして表され、Aは空間スペクトル演算子と制約空間スペクトル関係の定義によって満足する値の行列であり、bは画像で観察される値の行列であり、xは解かれる変数の行列であり、行列xは前記固有画像(34)の1つに対応する画像の照明成分と素材成分の一方を表し、行列Aの各行は1つの制約に対応する、コンピュータプログラム。
【発明を実施するための形態】
【0011】
次に図面を参照し、まず
図1を参照すると、画像に関係付けられた操作を行うように配置されて構成されたコンピュータシステム10のブロック図が示されている。CPU12は、例えばUSBポートを介して、例えばデジタルカメラ14などのデバイスに結合される。デジタルカメラ14は、カメラ14にローカルに記憶された画像をCPU12にダウンロードするように動作する。CPU12は、ダウンロードされた画像を画像ファイル18としてメモリ16に記憶する。モニタ20に表示するため、またはプリンタ22でプリントアウトするために、画像ファイル18にCPU12がアクセスすることができる。
【0012】
あるいは、CPU12は、例えばデジタルカメラ14やロボットなどのデバイスに埋め込まれたマイクロプロセッサとして実装することができる。また、CPU12には、例えばロボット操作やユーザとの対話操作に関連する、画像に関係付けられたリアルタイム操作のためのリアルタイム操作システムを備え付けることができる。
【0013】
図2aに示されるように、各画像ファイル18は、n×mの画素アレイを備える。各画素pは、画像全体の個々の部分に対応するピクチャ要素である。画素がすべて合わさって、画像ファイル18によって表される画像を定義する。各画素は、1組の色バンド/カラーバンド、例えばピクチャ要素の赤色、緑色、および青色成分(RGB)に対応するデジタル値を有する。本発明は、各バンドが電磁スペクトルの一部分に対応する任意のマルチバンド画像に適用可能である。画素アレイは、それぞれn行m列を含み、画素p(1,1)から始まり、画素p(n,m)で終わる。画像を表示または印刷するとき、CPU12は、対応する画像ファイル18をメモリ16から検索し、一般に知られているように、画像ファイル18内の画素のデジタル値に応じて、場合に応じてモニタ20またはプリンタ22を動作させる。
【0014】
本発明の1つの特徴によれば、画像処理において、CPU12は、画像ファイル18に記憶された画像の画素のRGB値などの情報を分析して処理するように動作して、例えばより正確な色補正や画像の修正など様々な目的を達成する。本発明の1つの例示的実施形態の1つの特徴によれば、対応する固有画像を生成するために、画像ファイル18の画像に示されるシーンの照明状況と素材状況の分離が行われる。固有画像は、例えば照明画像と素材画像を含み、どちらも元の画像に対応する。次いで、画像に示されるシーンの見た目を改良、変更、修正する、またはその他の方法でシーンを改変するために、画像の修正および改変が行われる。本発明の1つの特徴によれば、画像の修正は、固有画像の一方または両方に対して選択的に行われて、元の画像の修正または改変で通常得ることができるものに勝る改良を結果的に実現することができる。本明細書で使用する際、用語「修正」は、画像の修正、改変、または任意の他の変更の任意のものを意味するものとして使用する。
【0015】
そのような修正は、例えば、画像の強度もしくは色に関するものでよく、または陰影の改変、例えば画像内の陰影の見た目のパターンまたは特徴の変更に関するものでよい。改変は、画像を変形する、歪曲する、または画像の形態の任意の他の幾何学的変換を行うための幾何学的編集を含むことができる。次いで、修正された固有画像が、他方の固有画像とマージされて、修正または改変された出力画像を提供する。
【0016】
そのために、
図3は、本発明の1つの特徴に従って
図2aの画像ファイル18の画像に対する画像修正、例えばガンマ補正などの強度調節を行うためのルーチンに関する流れ図を示す。ステップ1000で、CPU12は、メモリ16から画像ファイル18を検索する。ステップ1002で、CPU12は、検索された画像ファイル18に示される画像にどちらも対応する照明画像と素材画像それぞれを生成するために、画像分離操作を行う。本発明の1つの特徴によれば、CPU12によって行われる画像
分離操作は、画像の照明成分と素材成分を識別するために空間スペクトル演算子/制約/ソルバモデルを実施する。
【0017】
本発明の基本的な発見の根底にある根本的な知見は、画像が2つの成分、すなわち素材成分と照明成分を備えることである。画像のすべての変更は、これらの成分の一方または他方によって
もたらされる。空間スペクトル情報は、画像ファイル18に示される画像の連続する画素に関連する情報であり、例えば、画素のRGB値など色バンドに関する連続する画素間のスペクトル関係や、画像に示される単一素材または画像にエフェクトをかける照明束に関するものなど画像の特性に関連する画素スペクトル特性の空間的広がりである。画像内で素材か照明の一方が分かっているとき、他方を容易に導き出すことができる。
【0018】
さらに、照明束は、入射光源と環境光源を含む。入射光源と環境光源に関するスペクトルは互いに異なることがある。したがって、陰影によって、すなわち入射光源の強度の減少によってスペクトルシフトが生じる。スペクトルシフトは、完全な陰影から半影を介して十分な照明まで、シーンに示される素材の色の変化を引き起こすことができる。本発明の1つの特徴によれば、スペクトルシフト現象は、空間スペクトル情報内に取り込まれる。空間スペクトル情報はスペクトル比を含む。これは、画像に示されるシーンの2つの領域間の色または強度の差に基づく比であり、そのような差は、異なる素材(物体縁部)、照明変化(照明境界)、またはその両方によってもたらされることがある。
【0019】
本発明の1つの特徴によれば、検索された画像ファイル18に示されるシーンの照明状況と素材状況の分離のためにステップ1002で行われるプロセスを容易にするために、空間スペクトル演算子が生成される。空間スペクトル演算子は、画像の素材状況と照明状況の処理で有用な空間スペクトル情報を含む画像の表現または特性を備える。空間スペクトル演算子は、ソルバへの入力のために、演算子間の制約空間スペクトル関係を定義する制約を受ける。ソルバは、空間スペクトル演算子間の制約関係に応じて、検索された画像ファイル18に記憶された元の画像から導出される素材画像および/または照明画像など固有画像を生成するために最適化解を得るように動作する数学的な処理エンジンを含む。
【0020】
空間スペクトル演算子は、例えば、トークン、トークンマップ情報、対数色度表現値、X−junction、BIDRモデル表現、境界表現、およびトークンヒストグラムベースの画素表現を含む。
【0021】
本発明の1つの特徴によれば、トークンは、画像の連接領域であり、この領域の画素は、素材および照明の識別など画像特徴および特性の識別に関連して互いに関係付けられている。トークンの使用は、画像の素材/照明/幾何的特性の特定の組が単一の画素を超えて広がっていることを認識し、したがって、本明細書で説明する画像処理を画素レベルで行うことができる一方で、トークンが画像性質のより効率的な処理を速める。トークンの画素は、例えば画素間の色値の近接補正など均質因子に関して、またはRGB空間など色空間内で幾何的に関係付けられた異なる色値(例えば一般にテクスチャと呼ばれる)など不均質因子に関して関係付けることができる。本発明の例示的実施形態は、画像ファイルの処理を改良するために、様々なタイプの均質または不均質トークンを識別するための方法およびシステムを提供する。本発明は、トークン領域を識別するために、画像ファイル18に示される画像の連続する画素に関連する空間スペクトル情報を利用する。
【0022】
本発明の1つの例示的実施形態によれば、均質トークンはそれぞれ、タイプAトークン、タイプBトークン、またはタイプCトークンに分類される。タイプAトークンは、シーン内で単一の素材を含む取り得る最大の画像領域を表す連続する画素を備える連接画像領域である。タイプBトークンは、シーン内で単一の素材を含む画像領域を表す連続する画像を備える連接画像領域であるが、その素材に対応する最大領域である必要は必ずしもない。タイプCトークンは、トークンの連続する画素間で類似の画像性質、例えば類似の色および強度を有する連接画像領域を備え、ここで、類似性は、画像を記録するために使用される撮像システムに関する雑音モデルに関して定義される。
【0023】
線形トークンは、画像の連接領域を備える不均質トークンであり、ここで、領域の隣接する画素が異なる色測定値を有し、これらの値は、RGB空間内で正の勾配に沿った暗色側の端部(陰影)から明色側の端部(照明端部)への円筒形内にある。本発明の1つの特徴によれば、色変化が、画像に示されるシーンの単一の素材にわたって陰影を形成する照明変化(すなわち、照明領域内での入射または直接光源と環境光源の相互作用としての入射光源の強度減少)によるものであるとき、円筒形構成は二光源二色性反射モデル(BIDRモデル)によって予測される。
【0024】
線形トークンを記述、識別、および使用するために、BIDRモデルは、I(x,y,z,θ,φ,λ)=c
b(λ)l
d(λ)γ
b+M
a(λ)c
b(λ)と記述することができ、ここで、I(x,y,z,θ,φ,λ)は、波長λに関する方向θ、φでの(x,y,z)での表面点の放射輝度であり、c
b(λ)は、波長λに関する表面の、幾何形状に無関係な物体の反射度/反射率であり、I
d(λ)は、波長λに関する入射光量である。γ
bは、陰影因子S
x,y,zと幾何学的因子m
b(θ
i)の積であり、M
a(λ)は、入射光量を除外した、半球にわたる環境光量と幾何学体の反射度の積分である。BIDRモデルに関するより詳細な情報は、2007年8月2日に米国特許出願公開第2007/0176940号として公開された、「Bi-illuminant Dichromatic Reflection Model For Image Manipulation」というタイトルの2006年1月27日出願の米国特許出願第11/341751号明細書を参照すべきである。
【0025】
トークンマップ情報は、画像内のトークンの互いに対する位置を示す。マップ情報を使用して隣接トークンを識別し、ソルバへの入力のために、トークン間の制約空間スペクトル関係に関連するトークン隣接関係の分析を行う。
【0026】
対数色度表現値は、画像の画素に関する照明不変値を提供する。画像画素の色バンド値の対数値が、対数色空間グラフに描かれる。次いで、対数値が、BIDRモデルに相関して方向付けられた対数色度投影面に投影される。色度面値は、各画素の色バンド値(例えばRGB値)の代わりとなる。対数色度表現値に関するより詳細な情報は、2007年10月18日に米国特許出願公開第2007/0242878号として公開された、「Method And System For Separating Illumination And Reflectance Using a Log Color Space」というタイトルの2006年4月13日出願の米国特許出願第11/403719号明細書を参照すべきである。
【0027】
X−junctionは、素材縁部と照明境界が互いに交差する画像の領域である。X−junctionは、画像の素材状況および照明状況の正確な分析のための最適な位置である。
【0028】
境界表現は、例えば隣接するタイプBトークンによって形成される境界の各側での画素の配列である。この配列は、境界の分析を容易にするために使用され、(照明縁部、深さ境界、または照明と素材の同時変化など別のタイプの境界とは対照的に)滑らかな表面上での素材境界として境界を分類する。画素表現は、境界を形成するタイプBトークンそれぞれの内部に画素のサンプルを提供するように構成される。サンプルの画素は空間スペクトル分析を受け、結果が比較されて、それぞれの境界が素材変化に対応する可能性を求める。
【0029】
テクストンは、テクスチャを備える画像領域に関する均質表現である。画像テクスチャは、画素強度の空間的変化に相関して定義することができる。画像テクスチャパターンは、画像表面の物理的性質または反射性質によるものであることが多い。一般に、画像テクスチャは、空間的な均質性に関連付けられ、典型的には、しばしば何らかのランダムな変化(例えばランダムな位置、向き、または色)を伴う繰返し構造を含む。また、画像テクスチャはしばしば、規則性、粗さ、コントラスト、および方向性などいくつかの視覚的性質によって特徴付けられる。画像テクスチャの一例は、縞模様の画像である。なぜなら、これは、空間的に均質であると見られ、何らかの繰返しパターンを形成する色強度の変化を含むものと思われるからである。いくつかの画像テクスチャは、ストライプまたはスポットなどの幾何学的特性によって定義することができる。テクストンベースの演算子は、テクスチャ付きの素材によって成される様々な反射度のパターンを均質表現に変換し、この均質表現は、画像内のテクスチャ付き領域のスペクトル特性および空間的特性を取り込む。
【0030】
制約は、例えば固定制約(anchor constraint)、同一照明制約、平滑照明制約、タイプBトークン制約、線形トークン制約、BIDR施行制約、同一テクストンヒストグラム制約、対数色度類似性制約、X−junction制約、および境界表現制約を備える。各制約は、それぞれの制約によって利用される空間スペクトル演算子を定義する制約ジェネレータソフトウェアモジュールとして構成され、成分演算子に課される制約関係の表現を提供する。
【0031】
固定制約は、画像内のいくつかの最高輝度/最大のタイプCトークンを利用する。この制約関係は、選択された最高輝度/最大のタイプCトークンの素材が、画像内で観察される色/輝度に関する絶対値となるように制約されるというものである。この制約は、画像に関する素材マップを絶対輝度に固定して、相対輝度制約を回避する。
【0032】
同一照明制約は、画像およびトークンマップ情報内で識別されるタイプCトークンおよびタイプBトークンを利用する。この制約関係は、トークンマップ情報によって示される隣接するタイプCトークンが同じタイプBトークンの一部でない限り同一照明であるというものである。用語「照明」に関連する用語「同一」は、画像を記録するために使用される撮像システムに関する雑音モデルに対する平均値を意味するものとして使用される。明らかなように、これは、同じタイプBトークンの一部でない隣接するタイプCトークン間の任意の観察される見た目の相違を、素材変化に制約する。
【0033】
平滑照明制約は、同一照明制約と同様である。しかし、同一照明制約の場合のように隣接するタイプCトークンのすべての画素を同一照明に制約するのではなく、平滑照明制約では、制約は、隣接するタイプCトークン間の共有された境界付近の画素の平均照明に基づく。これは、1つのトークンにわたって区分的に一定(上に定義した「同一」)ではなく、照明領域をいくぶん滑らかなものとなるように制約する。
【0034】
タイプBトークン制約も、タイプCトークンとタイプBトークンを利用する。しかし、この制約関係は、同じタイプBトークンの一部であるすべてのタイプCトークンが同一素材に制約されるというものである。この制約は、タイプBトークンの定義、すなわちシーン内で単一の素材を含む画像領域を表す連続する画素を備える連接画像領域であるが、その素材に対応する最大領域である必要は必ずしもないという定義を施行する。すなわち、同じタイプBトークン内にあるすべてのタイプCトークンが、タイプBトークンに課される定義によって同一素材のものとなり、しかし同一照明である必要は必ずしもない。したがって、タイプCトークンは、様々な照明によって引き起こされる観察される見た目の相違に対応するように制約される。
【0035】
したがって、タイプBトークン制約は、同一照明制約および平滑照明制約を補完するものであり、それらの照明制約は、上述したように、観察される相違を照明変化ではなく素材変化に対応するように制約する。これは、同一照明制約および平滑照明制約それぞれにおいて、隣接しているが同じタイプBトークンの一部ではないタイプCトークンが同一照明に制約されることによる。これらのタイプCトークンは異なる素材を備えるはずである。なぜなら、制約により、それらは同じタイプBトークンになく、したがって制約によって施行されるタイプBトークンの定義により、含んでいる素材がただ1つではないからであり、したがって照明が一定であるはずであり、任意の観察される相違は素材変化に起因するものと考えられる。
【0036】
要約すると、本発明の1つの特徴によれば、照明と素材の分離を可能にする画像の特性を提供するために、タイプCトークンおよびタイプBトークン空間スペクトル演算子が定義される。各タイプCトークンは、画像ファイル18に記録および記憶された類似の画像性質、例えば類似の色を有する連接画像領域を備える。したがって、隣接するタイプCトークンは、何らかの形態の画像変化を示すか、または同じタイプCトークンを形成する。タイプBトークンは単一の素材を含む。同一/平滑照明制約とタイプBトークン制約という補完的な制約が、素材変化または照明変化を示すトークン間の関係を規定する。
【0037】
隣接するタイプCトークンが同じタイプBトークン内にある場合、タイプBトークン制約と同様に、共通のタイプBトークンの同一素材特性により、それらの相違は照明変化に対応するはずである。隣接するタイプCトークンが同じタイプBトークン内にない場合、同一/平滑照明制約と同様に、単一素材の共通のタイプBトークンによって両方は定義されないので、それらの間の相違は素材変化に対応するはずである。
【0038】
線形トークン制約は、タイプCトークンと線形トークンを利用する。この制約関係は、線形トークンによって離隔された2つのタイプCトークン間の差が、画像に関する特徴的な光源スペクトル比にほぼ等しいというものである。定義したように、線形トークンは、色空間を通って正の勾配に沿った円筒形構成に従う。BIDRモデルは、正の勾配が、画像に関する特徴的な光源スペクトル比に等しいことを予測する。したがって、それぞれ線形トークンの暗色側の端部および明色側の端部にある2つのタイプCトークンの色の相違が、画像に関するそれぞれの特徴的な光源スペクトル比の値を反映すべきである。
【0039】
BIDR施行制約は、タイプCトークンと、対数色度投影面に関するBIDRモデル定義垂直ベクトルを利用する。この制約関係は、画像の局所パッチでのすべてのタイプCトークンに関する照明が対数色空間内の1組の平行線を成し、平行線の向きが、BIDRモデル定義垂直ベクトルによって定義されるというものである。したがって、この制約は、画像内に存在する照明領域を、照明に関するBIDRモデル予測に明確に適合させる。
【0040】
したがって、線形トークン制約とBIDR施行制約はそれぞれ、画像の照明状況および素材状況を分離するための基礎としてBIDRモデル予測を利用する。BIDRモデルは、色変化が、画像に示されるシーンの単一の素材にわたって陰影を形成する照明変化(すなわち、照明領域内での入射または直接光源と環境光源の相互作用としての入射光源の強度の減少)によるものであるとき、画像の色変化を予測する。BIDRモデルの色変化予測は、照明領域の入射光源成分と環境光源成分の間で生じるスペクトル変化の相互作用に応じて操作することによって、タイプCトークン間のすべての色バンド変化を、画像内で生じる照明領域効果に正確に制約する。したがって、BIDRモデルベースの制約は、すべての色バンド変化を1つの統合制約関係に組み合わせる。
【0041】
同一テクストンヒストグラム制約は、タイプCトークンと、画像内のテクスチャ領域に関して識別されるテクストンヒストグラム演算子とを利用する。テクストン分析が利用され、その際、例えばRGB色バンド値などそれぞれの画像ファイル18の記録された色バンド表現からの画像の各画素(またはテクスチャを備えるものと識別された画像領域の画素)が2つのバンド表現に変換され、これら2つのバンドは、テクストンラベルとテクストンヒストグラムラベルを備える。次いで、以下に述べるように、2つのバンド表現を使用してテクスチャトークンを識別する。同一テクスチャトークン内のすべてのタイプCトークンが同一平均素材のものであるという制約を課すことができる。
【0042】
対数色度類似性制約は、タイプCトークンと対数色度表現値を利用する。この制約関係は、類似の対数色度表現値を有する画素を有するタイプCトークンが同一の色値に制約され、観察される相違が照明領域の変化に起因するというものである。
【0043】
X−junction制約は、タイプCトークンとX−junction演算子を利用する。上述したように、X−junctionは、素材縁部と照明境界が互いに交差する画像の領域である。X−junctionは、典型的には4つのタイプCトークン、すなわち素材縁部を形成する2対の同一素材タイプCトークンによって識別され、同一素材の各対が、それぞれの同一素材を、照明されたタイプCトークンと陰影のかかったタイプCトークンとの対に分割する照明境界を有する。この制約関係は、1)タイプBトークン制約が、X−junctionを形成する同一素材のタイプCトークンの各対(それらの間に照明境界を有する対)の間で課されるというものであり、かつ2)同一照明制約が、X−junctionの素材縁部を形成するタイプCトークンの各対の間で課されるというものである。X−junction、および成分トークンの関係のより詳細な説明は、2006年8月10日に米国特許出願公開第2006/0177149号として公開された、「Method And System For Identifying Illumination Flux In An Image」というタイトルの2006年1月27日出願の米国特許出願第11/341742号明細書を参照すべきである。
【0044】
境界表現制約は、標準的な比率の制約によって定義される。境界表現に対して行われる分析は、素材変化を示すときには、照明が領域にわたって変化するときでさえ、境界によって定義される2つの隣接する領域間、例えば隣接するタイプBトークン間の色の比率の推定量を提供する。この制約は、2つの隣接する領域の色の比率がXであることを表す。境界表現分析はタイプBトークンのレベルで実行されて、境界を、素材変化によって引き起こされるものとして分類し、次いで成分タイプCトークンのレベルに下げて伝えられる。タイプBトークンレベルでの境界分析のより詳細な説明は、「System and Method For Illumination Invariant Image Segmentation」というタイトルの2008年3月28日出願の米国特許出願第12/079878号明細書を参照すべきである。
【0045】
本発明の1つの特徴によれば、境界表現分析によって示されるように、境界表現制約は、境界に沿ったタイプCトークンのすべての隣接する対(境界の各側に1つずつのタイプCトークンがあり、すべてのタイプCトークンが、それぞれの境界を形成するタイプBトークン内にある)が、比率Xを満たす色を有することを表す。
【0046】
本発明の1つの好ましい実施形態によれば、上述した制約はそれぞれ、3つの基本的なタイプの制約、すなわち絶対素材色制約、同一素材制約、および相対反射度制約の1つに分類することができる。絶対素材制約は、例えば固定制約で実施されるように、画像の特定の位置での素材が特定の色であるように制約する。同一素材制約は、画像に関連する演算子(例えば2つの画素またはタイプCトークン)が同一素材であるように制約する。同一素材タイプの制約は、例えばタイプB、X−junction、対数色度類似性、同一テクストンヒストグラム、および線形トークン制約で実施することができる。相対反射度制約は、画像に関連する演算子(例えば2つの画素またはタイプCトークン)を、平滑照明および同一照明制約によって定義されるような反射度特性の類似性を有するように制約し、これは、X−junctionおよび境界表現制約によって規定することができる。
【0047】
本発明の1つの特徴による例示的なソルバは、最適化関数、例えば[A][x]=[b]によって表される式の結果の最適化を実行するための数学的処理エンジンを備え、ここで[A]は、選択された制約によって示される演算子の定義および演算子に関する制約関係が満たすことができる(したがってそれらによって解かれると考えられる)値の行列であり、[x]は、式が最適解を見出す変数の行列であり、例えば画素やトークンなど画像成分の照明成分または素材成分の一方であり、[b]は、例えば、画像ファイル18の各画素のRGB色バンドに関する記録された値を処理するために、選択された画像で観察される値の行列である。最適化式は、例えば最小二乗ソルバや前処理付き共役勾配ソルバなど既知の凸型最適化操作など、1組の既知の最適化ソルバから選択される数学的な最適化関数で実施することができる。
【0048】
本発明のさらなる1つの特徴によれば、制約関係に加えて、実世界照明および素材現象に応じて、限度/境界を含む因子がソルバ操作に導入されて、以下に述べるように物理的に妥当な範囲内で素材/照明値を保ち、これは例えばリミット1,リミット無限(L
1,L
∞)ソルバ、有界最小二乗ソルバ(bounded least squares solver)、または有界L
1,L
∞ソルバである。
【0049】
図4は、本発明の1つの特徴による、例えば
図1のコンピュータシステム内で実装される画像分離システムアーキテクチャの機能ブロック図を示す。あるいは、
図4の機能ブロック図は、
図4のブロックの機能を実施するように構成された専用ハードウェア回路内に実装することができる。(画像ファイル18に示される)画像32が、前処理ブロック33に入力される。前処理ブロック33は、画像32の色収差の補正などの機能を行うことができ、複数の画像を組み合わせ、高いダイナミックレンジの画像を提供したり、画像に関する画素データを線形化したりして、処理のために画像を最適化する。次いで、前処理された画像がタイプCトークン化ブロック35に入力され、ブロック35は、以下に説明するように、前処理された画像内のタイプCトークンを識別するように動作する。タイプCトークンは、本発明の例示的実施形態で利用される制約の多くに共通であり、したがって、入力画像32に関するタイプCトークンの初期識別がさらなる処理を速める。
【0050】
本発明の1つの例示的実施形態では、CPU12は、前処理ブロック33とタイプCトークン化ブロック35の両方、およびサービスプロバイダ24を実施するためにコードを実行し、サービスプロバイダ24は、(メモリ16に構成された)中央エージェントおよびキャッシング構造として機能して、本発明の教示による処理のために画像を取り扱う。サービスプロバイダ24は、前処理された画像、およびタイプCトークン化ブロック35からの関連のタイプCトークン情報を受信および記憶し
、(CPU12によって実行される)演算子ブロック28に結合され、演算子ブロック28は、選択された制約によって必要とされる画像に関する任意の他の演算子を生成するように構成されている。また、サービスプロバイダ24は、広域特徴抽出(global features extraction)入力29に結合される。広域特徴抽出入力29を使用して、処理される画像に関連する情報をシステムに提供することができ、この情報は例えば、画像が撮影されたときの光源の標示(太陽光、蛍光、白熱光)、日時、場所、ドメイン知識、例えば画像の性質に関連する情報、例えば屋内、屋外、建物、緑色の芝生、紅葉した木など、および画像処理に関連する任意の他のパラメータである。サービスプロバイダ24は、関連の入力画像32と共に広域特徴抽出入力29を記憶する。
【0051】
制約生成器26が、サービスプロバイダ24に結合される。制約生成器26は、(メモリ16内に構成される)制約ジェネレータライブラリを使用し、このライブラリは、上述した様々な制約のための制約ジェネレータソフトウェアモジュールを記憶する。サービスプロバイダ24および制約生成器26は、制約ジェネレータソフトウェアモジュールの選択された1つに応じて、例えば[A][x]=[b]行列式で、前処理された画像に関連する空間スペクトル演算子を構成するように動作する。
【0052】
(CPU12によって実行される)ソルバ30が制約生成器26に結合され、前処理された画像から固有画像を生成するのに使用するために、[A][x]=[b]行列式に関する最適解を求めるための上述したような最適化操作を実施する。また、ソルバ30は、何らかの後処理操作のための(CPU12によって実行される)後処理ブロック36に結合される。後処理操作は、例えば単調性維持を含むことができる。単調性維持では、2つの大きな領域が入力画像32内で線形遷移を示す場合に、その遷移が、出力される固有画像34内でも線形遷移を残すべきである。また、後処理は照明伝播を含むこともでき、これは、ソルバ30、照明マップベースの白バランス、および他のフィルタリング平滑プロセスによって残った穴を埋める働きをする。後処理ブロック36は、固有画像34を出力する。
【0053】
次に
図5を参照すると、本発明の画像分離システムアーキテクチャ機能の例示的実装形態に関連して使用するためのグラフィカルユーザインターフェース(GUI)が示されている。
図5のGUIは、ユーザが所望の画像分離操作を選択するために、サービスプロバイダ24によってコンピュータシステム10のモニタ20に表示される。GUIの左上隅は、「画像を開く」、「画像をトリミングする」、「パラメータを示す」、および「分離する」という選択インジケータを示す。ユーザは、所望のセレクタインジケータ上にカーソルを移動してクリックすることができる。「画像を開く」インジケータは、メモリ16に現在記憶されているすべての画像ファイル18を列挙し、ユーザが処理のために画像を選択できるようにする。選択された画像は、(前処理ブロック33およびタイプCトークン化ブロック35を介して)サービスプロバイダ24への入力32(
図4参照)となり、サービスプロバイダ24は、選択された画像をモニタ20(
図5)の中央上部に表示するように動作する。
【0054】
選択された画像から例示的分離システムの動作によって導出された素材画像が、ソルバ30による画像分離処理の実行後の出力34(
図4参照)であり、モニタ20(
図5)の右下に表示される。導出された照明画像は、モニタ20(
図5)の右下に表示される。
【0055】
本発明の1つの特徴によれば、「画像をトリミングする」セレクタは、ユーザが、選択された画像をトリミングして、画像全体の一部分を処理できるようにする。「パラメータを示す」セレクタは、選択された画像ファイル18に関連するパラメータを表示する。各画像ファイル18に関するパラメータは、対応する画像ファイル18に関連付けられたパラメータデータファイルに記憶することができ、関連の画像ファイル18に示される画像の処理に関連する任意のパラメータ、例えば広域特徴抽出入力29を含む。パラメータは、画像処理に関連する任意のデータを含むことができ、このデータは例えば、空間スペクトル演算子の生成時などCPU12による画像分析のための任意の変数、およびドメイン知識、例えば画像の性質に関連する情報、例えば屋内、屋外、建物、緑色の芝生、紅葉した木などである。
【0056】
選択インジケータの下には、ソルバ30として使用することができる最適化機能それぞれのリストと、制約生成器26の制約ジェネレータライブラリに含まれる制約ジェネレータそれぞれのさらなるリストがある。ユーザは、所望の数学的操作、および選択された画像に課すべき制約の1つまたは複数を選択する。処理すべき画像、課すべき制約、および実行すべき数学的操作の選択後、ユーザは、「分離」インジケータをクリックして、画像分離処理を開始することができる。
【0057】
画像分離処理が開始されると、サービスプロバイダ24は、選択された制約のための制約ジェネレータソフトウェアモジュールを検索して、選択された制約によって利用される空間スペクトル演算子を識別する。分離される画像に関して、サービスプロバイダ24によってまだ記憶されていない任意の空間スペクトル演算子が演算子ブロック28によって生成され、サービスプロバイダ24が結果をキャッシュする。キャッシュされた結果は、同じ関連パラメータセットを用いて、選択された画像に関する任意の後続の操作で再使用することができる。
【0058】
例えば、選択された制約が同一照明制約である場合、サービスプロバイダ24は、選択された画像に関してタイプCトークン、タイプBトークン、およびトークンマップを識別する。タイプCトークンは、タイプCトークン化ブロック35によって生成されている。サービスプロバイダ24は、演算子ブロック28を動作させて、同一照明制約によって指定される残りの演算子を生成する。
【0059】
次に
図6aを参照すると、本発明の1つの特徴に従って
図2aの画像ファイル内にタイプCトークン領域を生成するための流れ図が示されている。
図6aのステップを利用して、タイプCトークン化ブロック35によってタイプCトークンを画像内で容易に識別することができる。次いで、明らかなように、演算子ブロック28は、選択された制約によって指定されるときに、タイプCトークンを分析して処理してタイプBトークンを構成することができる。
【0060】
図6aのルーチンの実行前に、CPU12は、対象画像ファイル18に示される画像をフィルタするように動作することができる。フィルタは、画像テクスチャフィルタを含むことができ、例えば、テクスチャ付き素材によって成される様々な反射度のパターンを均質表現に変換する。均質表現は、画像内のテクスチャ付き領域のスペクトル特性および空間的特性を取り込む。タイプBトークンの識別は、画像テクスチャで困難なことがある。テクスチャ付き画像は、例えば定義付与特性である複数の反射性をもつ素材を含む。例えば、定義付与特性は、テクスチャ内部の色のパターンでよく、テクスチャは、画像のテクスチャ付き領域内の任意の場所から選択された任意のパッチまたは領域内で何らかの色分布を表す。
【0061】
多くの例では、画像の大部分が均質に着色された物体を含むことがあるので、テクスチャフィルタは入力画像の一部でしか必要とされないことがある。したがって、テクスチャフィルタの適用前に、均質な色の領域を識別してマスク除去することが有用である。次いで、テクスチャフィルタは、テクスチャ付き素材であると思われる領域にのみ適用される。テクスチャ付き領域を識別するための例示的アルゴリズムは、以下のようなものである。
1)Nバンド色値(例えばRGB)に対してタイプCトークン化を実行し、トークン結果を領域マップRに記憶し、領域マップ内の各画素が、それが属するトークンのトークンIDを有する(
図5aの図参照)。
2)領域マップRに対して中央値フィルタを実行する(例えば、各画素P_ijが、P_ijの周りの7×7ボックスの中央値トークンIDによって置き換えられる)。R中央値の結果を記憶する。
3)各色バンドに関して、各画素の周りのボックス(例えば7×7)内の画素の標準偏差を計算するフィルタを元の画像に対して実行する。Sの結果を与える。
4)Sの各画素について、各色バンドに関して計算された標準偏差を、推定される雑音モデル値で割る。例示的な雑音モデルは、Sn=A
*maxValue+B
*pixelValueであり、ここでmaxValueは、取り得る最大の色バンド値であり、pixelValueは、特定のバンドの強度であり、AおよびBは、撮像システムに関して経験的に決定される制約である(例えば、A=0.001およびB=0.06が典型的である)。このステップは、各色バンドに関して、標準偏差を正規化された偏差に変換する。Snの結果を記憶する。
5)Snでの各画素について、すべてのN個の色バンドに関して正規化された偏差の二乗を足し合わせ、結果の平方根を取り、バンドの数Nで割って、偏差値D_ijを生成する。得られた偏差値D_ijをしきい値(例えば1.0)と比較し、しきい値よりも高い偏差値を有する任意の画素には1を割り当て、そうでない場合には画素に0を割り当てる。テクスチャマスク画像Tの結果を記憶する。
6)Tでの各画素について、テクスチャマスク値Tij=1であり、中央値領域マップR−median_ijで与えられるidを有するトークン領域のシードサイズがしきい値未満(例えば<4)である場合、テクスチャ付き画素として画素にラベル付けする。そうでない場合、均質画素としてラベル付けする。テクスチャマスクTmaskの結果を記憶する。
【0062】
上のアルゴリズムの出力はマスクTmaskであり、これは、元の画像ファイル18(n,m)のサイズのアレイである。値1を有するアレイ内の対応するTmask位置を有する画素(p(n,m))は、テクスチャ素材に対応する画像領域の一部として処理すべきであり、値0を有する対応するTmaskアレイ位置を有する画素は、均質な色の素材に対応する画像領域の一部として処理すべきである。
【0063】
CPU12は、テクスチャを取り扱う任意のよく知られている方法を実施するソフトウェアモジュールを実行することができ、例えば、Lawsのフィルタバンクやウェーブレット(例えばRanden,T.[Trygve],Huso□,□.□.[□□□□ □akon],Filtering for Texture Classification:A Comparative Study,PAMI(21),No.4,April1999,pp291−310参照)などである。また、「Are Filter Banks Necessary?」Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,June 2003,volume 2,pages 691−698も参照されたい。
【0064】
本発明の1つの例示的実施形態では、画像の各画素に関して(または好ましくは、テクスチャを備えるものとして識別された領域内の画像の画素に関して)強度ヒストグラム図を使用して、タイプCトークンが生成される。次いで、強度ヒストグラムを使用して発生されたタイプCトークンが、タイプBトークンを生成するために使用される。テクスチャフィルタ出力画像での各画素に関する強度ヒストグラム表現は、以下のアルゴリズムを使用して生成することができる。
A)Tmaskアレイ(n,m)内のすべてのメモリアドレス/インデックスを通ってループする。
B)Tmaskアレイの各メモリアドレス/インデックスで、各位置での値が1か0かを決定する。
C)Tmaskのメモリアドレス/インデックスが、テクスチャを示す値1を有する場合、
a.対応する画像ファイル18内の対応するメモリアドレス/インデックスp(n,m)を開き、そのメモリアドレス/インデックスにアクセスする。
b.データを書き込むためのメモリアドレス/インデックスを開く。
c.各色バンドに1つずつ、N個の8ビンヒストグラムをゼロに初期化する。
d.pの近傍(例えば11×11画素アレイ)にある各画素qに関して、
qのN色値Cn(例えば各色値が0〜255の間に設定されるRGB)それぞれに関して、
(i)N色値が0〜31である場合、色Nの8ビンヒストグラムでの最初のビンを増分する。
(ii)N色値が32〜64である場合、色Nの8ビンヒストグラムでの第2のビンを増分する。
(iii)N色値が65〜97である場合、色Nの8ビンヒストグラムでの第3のビンを増分する。
(iv)N色値が98〜130である場合、色Nの8ビンヒストグラムでの第4のビンを増分する。
(v)N色値が131〜163である場合、色Nの8ビンヒストグラムでの第5のビンを増分する。
(vi)N色値が164〜196である場合、色Nの8ビンヒストグラムでの第6のビンを増分する。
(vii)N色値が197〜229である場合、色Nの8ビンヒストグラムでの第7のビンを増分する。
(viii)N色値が230〜255である場合、色Nの8ビンヒストグラムでの第8のビンを増分する。
e.8×N要素ベクトルを備える単一強度ヒストグラムに、N個の8ビンヒストグラム値を連結する。
f.画像ファイルアレイp(n,m)内の対応する画素pに8×N要素ベクトルを割り当てる。
g.現在の、または次のメモリアドレス/インデックスが最後のもの/Tmask(n,m)でない場合、Tmask(n,m)アレイ内の次のメモリアドレス/インデックスに移動し、ステップBを実行する。
h.現在のメモリアドレス/インデックスが最後のもの/Tmask(n,m)である場合、Tmask(n,m)アレイを通るループを打ち切る。
D)メモリアドレス/インデックスが値0を有する場合、
i.現在のアドレス/インデックスが、Tmask(n,m)アレイ内の最後の要素でない場合には、Tmask(n,m)アレイ内の次のメモリアドレス/インデックスに移動し、ステップBを実行する。
ii.現在のメモリアドレス/インデックス位置が、Tmask(n,m)アレイ内の最後の要素である場合には、Tmask(n,m)アレイを通るループを打ち切る。
【0065】
画像のテクスチャ付き領域内の各画素に関して、RGBなど1組の色バンドから、8×N連結など1組のフィルタ出力を備える強度ヒストグラムベクトルに変換した後、タイプCトークンの識別に関して、元の色バンド画像として画像が正確に処理され、8×N要素強度ヒストグラムベクトルがRGB色バンド値の代わりに使用される。
【0066】
図2bは、画像ファイル18の左上隅での11×11画素アレイを示す。
図2bの11×11画素アレイを使用して、上述した例示的アルゴリズムに従って、アレイの中心Zで画素p(6,6)に関する強度ヒストグラム表現を生成する。本明細書の例では、11×11アレイは、画像ファイル18に示される画像中の市松模様パターン内にあると仮定する。市松模様パターンは、図示されるように、交互の赤色、緑色、および青色ボックスのパターンを備える。したがって、本明細書の例の画素p(6,6)は、CPU12によって生成される対応するTmaskで値1を有する。
【0067】
例示的アルゴリズムに従って、対象画素p(6,6)の赤色値、緑色値、および青色値それぞれに1つずつ、3つの8ビンヒストグラムがCPU12によって初期化される(
図2c参照)。次いで、11×11画素アレイを使用して、3つのヒストグラムのビン内部の値を求める。本明細書の例では、11×11アレイの左上区域は、市松模様パターンの赤色ボックスであり、その区域内の各画素(p(1,1)〜p(5,5))は、RGB値(123,0,0)である。右上区域は緑色であり、すなわち、その区域内の画素(p(1,7)〜p(5,11))はそれぞれ、RGB値(0,123,0)である。左下区域は青色ボックスであり、画素p(7,1)〜p(11,5)がそれぞれ、RGB値(0,0,123)である。最後に、繰り返しの赤色、緑色、および青色市松模様パターンにおいて、本明細書の例の右下区域は再び赤区域であり、画素p(7,7)〜p(11,11)はそれぞれ、RGB値(123,0,0)である。
【0068】
図2bに示されるように、赤色象限(p(1,1)〜p(5,5))、緑色象限(p(1,7)〜p(5,11))、青色象限(p(7,1)〜p(11,5))、および赤色象限(p(7,7)〜p(11,11))の間の1画素の厚さの交差境界線、すなわちp(6,1)〜p(6,m)の間の任意の画素、およびp(n,6)〜p(11,6)の間の任意の画素は、RGB値(123,123,123)であることがある。また、中心Zでの画素p(6,6)もRGB値(123,123,123)であることがある。
【0069】
次に、その中心が画素Zである11×11画素ボックス301を使用して、以下に例示的に述べるステップを用いて、画素ZのRGB色バンド値のヒストグラム表現による画素Zの値を求める。
図2bに示されるように、p(1,1)は、RGB色値(123,0,0)であり、これは、赤色があり緑色と青色はないことを示す。p(1,1)の赤色値は123であるので、
図2cに示されるように赤色8ビンヒストグラム内でその数値に関する対応するビンが増分され、すなわち赤色8ビンヒストグラム内の第4のビンが増分される。このプロセスは、画素ボックス301内のp(n,m)に達するまで繰り返される。この時までに、
図2cに示されるように3つの8ビンヒストグラムは様々な値で満たされることがある。次いで、これらの値を、単一の8×3要素ベクトルに連結させ、
図2bの画像ファイル18に示される11×11画素アレイ内の画素Zに割り当てることができる。
【0070】
その結果、上述した例示的アルゴリズム、および
図2bに示される画像18内に示される11×11画素ボックス301内の市松模様パターンによれば、3つの8ビンヒストグラムが、以下のように満たされる。
【0071】
赤色8ビンヒストグラムでは、第4のビンが値71を有する(25画素の2つの赤色象限内での赤色値98〜130の繰返し量と、p(6,1)〜p(6,m)の間の11画素での赤色値98〜130の繰返し量と、p(n,6)〜p(11,6)の間の10画素での赤色値98〜130のの繰返し量の和から、25+25+11+10=71が得られる)。同様の計算で、第1のビンは値50を有し、赤色に関して値0を有する画素すべてを示す。赤色8ビンヒストグラムでのすべての他のビンは、値0を有する。したがって、赤色8ビンヒストグラムは、[50,0,0,71,0,0,0,0]である。
【0072】
緑色8ビンヒストグラムでは、第4のビンが値46を有する(25画素の緑色象限での緑値98〜130の繰返し量と、p(6,1)〜p(6,m)の間の11画素での緑値98〜130の繰返し量と、p(n,6)〜p(11,6)の間の10画素での緑値98〜130の間の和から、25+11+10=46が得られる)。第1のビンは(緑色の値0に関して)値75を有する。緑色8ビンヒストグラム内のすべての他のビンは、値0を有する。したがって、緑色8ビンヒストグラムは、[75,0,0,46,0,0,0,0]である。
【0073】
青色8ビンヒストグラムでは、第4のビンが値46を有する(25画素での青色象限の青値98〜130の繰返し量と、p(6,1)〜p(6,m)の間の11画素での青値98〜130の繰返し量と、p(n,6)〜p(11,6)の間の10画素での青値98〜130の繰返し量の和から、25+11+10=46が得られる)。ここでも、第1のビンが値75を有する。青色8ビンヒストグラムでのすべての他のビンは、値0を有する。したがって、青色8ビンヒストグラムは、[75,0,0,46,0,0,0,0]である。
【0074】
上述したアルゴリズムの結果、本明細書の例では3つの8ビンヒストグラムがそれぞれ、ただ1つの8×3要素ベクトルに連結される。したがって、このベクトルは、[50,0,0,71,0,0,0,0,75,0,0,46,0,0,0,0,75,0,0,46,0,0,0,0]である。
【0075】
次に、上述したベクトルが、11×11アレイの中心Zにあるp(6,6)に割り当てられ、したがって、元々は(123,123,123)であった画素p(6,6)のRGB値の代わりとなり、強度ヒストグラムが[50,0,0,71,0,0,0,0,75,0,0,46,0,0,0,0,75,0,0,46,0,0,0,0]と記述される。
【0076】
1次の均一であり均質なタイプCトークンは、画像の連続する画素間で単一のロバスト色測定値を備える。
図6aの識別ルーチンの開始時、(タイプCトークン化ブロック35として実行する)CPU12が、メモリ内の領域マップをセットアップする。ステップ100で、CPU12は、領域マップをクリアし、領域IDを割り当て、これは始めは1に設定される。画素数に対応するルーチンの反復がi=0で設定され、トークンを決定するためのシードとして使用するためのN×N画素アレイに関する数値が、初期値N=N
startに設定される。N
startは、任意の整数>0でよく、例えば11または15画素に設定することができる。
【0077】
ステップ102で、シードテストが開始される。CPU12は、例えば第1の画素i=(1,1)、すなわち画像ファイル18の第1のN×Nサンプルの左上隅の画素を選択する(
図2a参照)。次いで、この画素が決定ブロック104でテストされて、選択された画素が良好なシードの一部であるか判定される。テストは、選択された画素の色値と、シードとしての、事前選択された数の隣接画素、例えばN×Nアレイの色値との比較を含むことができる。色値比較は、画素の複数の色バンド値(本明細書の例ではRGB)に関するものでよく、または上述したように画像がテクスチャ領域に関してフィルタされた場合には、画素のフィルタ出力強度ヒストグラム表現に関するものでよい。比較が、シード内の画素に関してほぼ等しい値(例えば、RGB値に関して記録デバイスの雑音レベル内)をもたらさない場合、CPU12は、次のN×Nシードサンプルに関してiの値を増分し(例えばi=(1,2))、次いでi=i
maxであるか判定するためにテストする(決定ブロック108)。
【0078】
画素値がi
maxである場合、結果の改良のためにシードサイズを減少させることを決定するためのしきい値として選択される値、すなわちシードサイズNが、例えばN=15からN=12に減少される(ステップ110)。本発明の1つの例示的実施形態では、i
maxは、i=(n,m)に設定することができる。このようにして、
図5aのルーチンは、減少されたN値に関するルーチンを繰り返す前に、最初のN値で画像全体を解析する。
【0079】
シードサイズの減少後、ルーチンはステップ102に戻り、トークンシードに関してテストを続ける。ステップ110で、N
stop値(例えばN=2)もチェックされて、分析が完了したかどうか判定する。Nの値がN
stopである場合、CPU12は、画像画素アレイの調査を完了してルーチンから出る。
【0080】
iの値がi
max未満である場合、NはN
stopよりも大きく、ルーチンは、ステップ102に戻り、トークンシードに関するテストを続ける。
良好なシード(ほぼ等しい画素値を有するN×Nアレイ)が見出されると(ブロック104)、シードからトークンが成長する。ステップ112で、CPU12は、シードからの画素を待ち行列に入れる。待ち行列内のすべての画素が、領域マップ内の現行領域IDでマークされている。次いで、CPU12は、待ち行列が空かどうか問い合わせる(決定ブロック114)。待ち行列が空でない場合、ルーチンはステップ116に進む。
【0081】
ステップ116で、CPU12は、最初の画素を待ち行列から取り出し、ステップ118に進む。ステップ118で、CPU12は、対象画素の周りの「良好な」隣接画素をマークし、これは、現行領域IDを有する、対象画素と色値がほぼ等しい隣接画素である。マークされた良好な隣接画素はすべて領域マップ内に配置され、また待ち行列に入れられる。次いで、CPU12は決定ブロック114に戻る。待ち行列が空になるまでステップ114、116、118のルーチンが繰り返される。そのとき、現行領域内のトークンを形成するすべての画素がタイプCトークンとして識別されて、領域マップ内でマークされる。画素が強度ヒストグラム表現を備える場合、トークンはタイプC
Tとマークすることができる。
【0082】
待ち行列が空であるとき、CPU12はステップ120に進む。ステップ120で、CPU12は、次のトークンの識別で使用するために領域IDを増分する。次いで、CPU12は、ステップ106に戻り、新たな現行トークン領域に関してルーチンを繰り返す。
【0083】
N=N
stopに達する(図
6aの流れ図のステップ110)と、または画像と一致する領域マップが完了すると、ルーチンは、トークン生成タスクを完了する。
図6bは、トークンの識別において一例として使用される元の画像である。画像は、青色領域および陰影のかかった青色領域、ならびに茶色領域および陰影のかかった茶色領域を示す。
図6cは、
図6bの画像に関して、例えば
図6aのルーチンの実行によって識別される領域マップに対応するトークン領域(タイプCトークン)を示す。トークン領域は、
図6bの画像のトークン作成を示すためにカラーコード化され、画像の完全な青色および茶色の領域と着色領域の陰影との間の半影領域を含む。
【0084】
タイプCトークン化ブロック35による
図6aのルーチンの完了後、サービスプロバイダ24は、選択された画像に関するタイプCトークン領域情報を記憶する。識別されたタイプCトークンからタイプBトークンを生成するための任意のプロセスを開始する前に、演算子ブロック28が、各識別されたタイプCトークンをテストして、各タイプCトークンが単一の素材を含むことを確認する。各タイプCトークンが、画像の連続する画素間で単一のロバスト色測定値を有する画像領域を備える一方で、トークンは、素材境界を越えて成長することができる。
【0085】
典型的には、異なる素材が、ネック領域を介して一体につながって1つのタイプCトークンを成し、ネック領域は、陰影境界に位置されるか、または類似の色調であるが強度の異なる別の素材間をまたぐ異なる照明を有する領域内に位置されることが多い。ネック画素は、隣接する画素の特性を検査することによって識別することができる。画素が、対応するトークン内部にない2つの連続する画素を両側に有し、かつ対応するトークン内部にある2つの連続する画素を両側に有するとき、画素はネック画素と定義される。
【0086】
図7は、タイプCトークンに関するネックテストに関する流れ図を示す。ステップ122で、CPU12は、識別されたトークンの各画素を検査して、検査中の画素の任意のものがネックを形成するかどうか判定する。
図6のルーチンは、
図6aのルーチンの実行中に特定のトークンが識別された直後に、サブルーチンとして実行することができる。ネックとして識別されるすべての画素が「成長不可能」とマークされる。決定ブロック124で、CPU12は、任意の画素がマークされたかどうか判定する。
【0087】
マークされていない場合、CPU12は、
図7のルーチンから出て、
図6aのルーチンに戻る(ステップ126)。
【0088】
マークされている場合、CPU12は、ステップ128に進み、
図6aのルーチンに従って、シードサイズおよび領域IDに関するカウントを変えずに、現行のトークンのマークされていない画素の中から選択されたシード位置からトークンを再成長させるように動作する。再成長プロセス中、CPU12は、「成長不可能」と事前にマークされた画素は含まない。トークンが再成長された後、事前にマークされた画素がマークを外され、したがって他のトークンがそこに成長することができる。
【0089】
事前にマークされた画素を用いないトークンの再成長後、CPU12は、ステップ122に戻り、新たに再成長されたトークンをテストする。
【0090】
ネックテストは、素材境界を横切るタイプCトークンを識別し、識別されたトークンを再成長させて、タイプBトークンを作成するために使用するのに適した単一素材タイプCトークンを提供する。
図6dは、本発明の1つの特徴に従って、
図6cのタイプCトークンから生成されたタイプBトークンを示す。本発明は、タイプCトークンからタイプBトークンを構成するための画素特性分析のいくつかの例示的技法を提供する。1つの例示的技法は、任意境界除去に関わる。任意境界除去技法は、タイプCトークンが、画素のN色バンド値(本明細書の例ではRGB)を使用して生成されたか、それとも画像がフィルタされた場合に画素のフィルタ出力表現を使用して生成されたかに関わらず、タイプCトークンに適用することができる。任意の特定のタイプCトークンの実際の境界は、トークンを生成するために使用されるシード位置によって変わり、したがってある程度は任意である。典型的には、各特定のトークンに関して多くの可能なシード位置が存在し、可能なシード位置はそれぞれ、記録機器の雑音範囲内で、様々なシードの画素の色値の相違によりわずかに異なる境界および空間的広がりを有するトークンを生成する。
【0091】
図8は、本発明の1つの特徴に従って任意境界除去技法によってタイプBトークンを構成するための流れ図である。ステップ200で、CPU12は、
図7のルーチンによるネック除去によって、
図6aのルーチンによるシードサイズ(S)で生成されたタイプCトークンの集合(T
c)を設けられる。シードサイズS=S
maxであり、例えばS=4画素である。ステップ202で、各タイプCトークン、すなわち集合T
c内のt
cに関して、CPU12がいくつか(例えば50個)の可能なシードs
1〜s
nを選択する。本明細書の例では、選択されるシードはそれぞれトークン領域内からの4×4画素アレイであり、アレイの画素は(記録デバイスの雑音レベル内で)ほぼ等しい値である。
【0092】
ステップ204で、CPU12は、
図6aおよび
図7のルーチンを利用して、集合T
c内の各トークンt
cの各シード位置s
1〜s
nから新規のタイプCトークンを成長させる。各トークンt
cに関して新たに成長されたトークンは、トークンr
c1〜r
cnとして表される。一般に、各トークンt
cに関して新たに成長されたトークンr
c1〜r
cnは、元のタイプCトークンt
cと重なり合い、また互いにも重なり合う。
【0093】
ステップ206で、CPU12は、それぞれ各トークンt
cの新たに生成されたトークンr
c1〜r
cnをマージするように動作する。その結果、集合T
c内のそれぞれの元のトークンt
cに対応する新たなトークンR
tが得られる。新たなトークンR
tはそれぞれ、対応する元のトークンt
cから生成されたそれぞれの重なり合うトークンr
c1〜r
cnの領域すべてを含む。それぞれのマージされた新たなトークンR
tを備える領域の全体は、それぞれ集合の元のタイプCトークンよりも広いトークンである。得られたマージされた新たなトークンR
tは、画像ファイル18のいくつかの領域を生じ、各領域は、それぞれのトークンR
tの画素間の変化範囲が元のタイプCトークンよりもはるかに広いが、成分画素間の変化範囲はそれでもなお比較的滑らかである。R
tは、制限された形態のタイプBトークン、すなわちタイプB
ab1と定義され、本発明の1つの特徴に従って任意境界除去技法の最初の段階(ステップ200〜206)によって生成されるトークンを示す。
【0094】
ステップ208で、CPU12は、トークンの集合T
cからステップ202〜206で生成される各タイプB
ab1トークンを記憶し、ステップ210に進む。ステップ202〜206の実行によって生成されるタイプB
ab1トークンは、かなり重なり合うことがある。ステップ210で、CPU12は、それぞれのサイズの数パーセントだけ互いに重なり合ったステップ208で記憶されたR
tトークンをマージするように動作する。例えば、一般に、30%の重なりが、異なる素材を含む領域を組み合わせる偽陽性マージを、あったとしてもほとんどなくすのに十分である。マージされたトークンの新たな集合は、重なり合ったトークンを依然として有することがあり、例えば30%未満の重なりを有した、前から重なり合っているトークンを有することがある。すべてのマージが完了した後、CPU12がステップ212に進む。
【0095】
ステップ212で、CPU12は、複数のトークン内(すなわち、2つ以上のトークンの重なり合った部分内)にあるすべての画素を識別する。識別された画素はそれぞれ、画像の最大領域を占有するトークンに割り当てられる。したがって、すべての重なり合ったトークンが、すべての重なりをなくすように修正される。
【0096】
ステップ214で、CPU12(タイプCトークン化ブロック35または演算子ブロック28として)が、マージおよび修正されたトークン(ここではタイプB
ab2トークンと表す)の最終的な集合を記憶し、次いでルーチンから出る。上述したように、タイプB
ab2トークンは、タイプCから生成されたものであり、タイプCトークンが、画素のN色バンド値(本明細書の例ではRGB)を使用して生成されたか、それとも画像がフィルタされた場合に画素のフィルタ出力表現を使用して生成されたかには関わらない。
【0097】
タイプCトークンを使用してタイプBトークンを作成するための本発明による第2の例示的な技法は、隣接平面トークンマージである。隣接平面トークンマージは、画像が、均一な色の区域、すなわちテクスチャなしの画像領域に関する区域を示すときに実施することができる。始めに、トークングラフを使用して、互いに近いトークンを識別する。
図9は、本発明の1つの特徴に従って、トークンマップ情報を含むトークングラフを作成するための流れ図を示す。
図6aおよび
図7のルーチンの実行によって生成されるタイプCトークンの集合T
c内の各トークンt
cが、集合T
cの隣接する一対のトークンt
c、t
nを定義するトークン間の最大距離D
max、隣接する一対のトークンの各トークンにおけるトークン周縁画素の最小数P
min、およびD
max以内である必要がある隣接する一対のトークンの各トークンの周縁画素の最小比率F
minに関して評価される。
【0098】
ステップ300で、CPU12は、タイプCトークンの集合T
c内のタイプCトークンt
cを選択し、トークンの周縁を形成する選択されたトークンt
cの画素を識別する。決定ブロック302で、CPU12は、周縁画素の数がP
min(例えば10画素)未満であるかどうか判定する。
【0099】
そうである場合、CPU12は、決定ブロック304に進み、タイプCトークンの集合T
c内に残りのトークンt
cがあるかどうか決定する。ある場合、CPU12はステップ300に戻り、ない場合、CPU12はルーチン306から出る。
【0100】
ない場合、CPU12は、ステップ308に進む。ステップ308で、CPU12は、マスクとして使用される境界ボックスを生成して、選択されたトークンt
cを取り囲む。境界ボックスは、すべての方向で、選択されたトークンt
cよりも大きく、少なくともD
maxとなるように寸法設定される。既知の距離変換(例えば、P.Felzenszwalb and D.Huttenlocher,Distance Transforms of Sampled Functions,Cornell Computing and Information Science Technical Report TR2004−1963,September 2004に示されるようなもの)が実行されて、選択されたトークンt
cの各周縁画素から、取り囲む境界ボックス内のすべての画素までの距離を見出す。距離変換の出力は、それぞれ境界ボックスとサイズが同じ2つのマップ、すなわち距離マップと最近接画素マップを備える。距離マップは、境界ボックスの各画素から、選択されたトークンt
cの最も近い周縁画素までのユークリッド距離を含む。最近接画素マップは、距離マップ内の各画素に関して、どの周縁画素がその画素に最も近いかを識別する。
【0101】
ステップ310で、CPU12は、ステップ308で生成された距離マップを走査して、(
図6aのルーチンによって生成される領域マップから)境界ボックスの画素に対応するトークンを識別し、境界ボックス内の画素によって表されるすべてのトークンの中から、距離D
max以内の画素の数N
cnを有するトークンを識別し、ここでN
cnは、P
minよりも大きく、かつそれぞれのトークンのF
min*周縁画素よりも大きく、それぞれのトークンとt
cの間の平均距離は、境界ボックス内の画素に対応するトークンの中で最小である。これらの条件が満たされる場合、それぞれのトークンが、可能なトークン対t
c、t
nのt
nと表され、リンクL
cnがアクティブとマークされる。
【0102】
ステップ312で、CPU12は、相互リンクL
cnもアクティブとマークされているかどうか判定するためにチェックし、アクティブとマークされているときには、トークン対t
c、t
nが隣接トークン対であるという標示をマークしてトークングラフに記憶する。相互リンクは、現行評価においてt
nと表されるトークンの評価でのリンクステータスを表す。そのトークンをまだ評価しなければならない場合、この対は、トークンt
nの後続の評価においてリンクL
cnがアクティブと検証されるまで隣接トークン対とは表されない。次いで、CPU12は、集合T
c内にさらなるトークンがあるかどうか判定するために、決定ブロック304に戻る。
【0103】
トークングラフの完成後、CPU12は、
図10のルーチンの実行時にグラフに記憶されたトークン対情報を利用する。
図10は、本発明の1つの特徴に従って、隣接平面トークンマージ技法によってタイプBトークンを構成するための流れ図を示す。隣接平面マージ技法では、トークンの対は、その対のトークンどうしに2次元尺度で滑らかであり一貫性のある色値の変化があるかどうか判定するために検査される。色変化は、例えば本発明の例示的実施形態によれば画素のRGB成分など、色の各チャンネルの平面表現に関して検査される。滑らかな変化は、1組の平面(1つの色成分につき1つの平面)が、2つの隣接するトークンの画素値に対して合致する状態と定義される。要約すると、隣接するトークンは、2次元での色変化がほぼ平面的であるときに、同一素材でありタイプBトークンであると考えられる。
【0104】
ステップ320で、CPU12は、トークングラフからトークン対t
c、t
nを選択する。決定ブロック322で、CPU12は、トークンt
cでの平均色がトークンt
cでの平均色と大きく異なるかどうか判定する。この相違は、既知の統計的測定法であるzスコア(例えば、Abdi,H.(2007),Z-scores,in N.J.Salkind(Ed.),Encyclopedia of Measurement and Statistics,Thousand Oaks,CA:Sage参照)に応じたものでよく、例えばzスコアが3.0よりも大きい。
【0105】
トークン対の平均色が異なる場合、CPU12は、決定ブロック324に進んで、トークングラフ内にさらなるトークン対があるかどうか判定する。ある場合、CPU12はステップ320に戻る。ない場合、CPU12はルーチンから出る(ステップ326)。
【0106】
平均色がzスコアパラメータ内にある場合、CPU12はステップ328に進む。ステップ328で、CPU12は、例えば最小二乗平均回帰などの数学的操作を行い(例えば、Peter J.Rousseeuw,Least Median of Squares Regression,Journal of the American Statistical Association,Vol.79,No.388(Dec,1984),pp.871−880参照)、行nと列m(
図2参照)に相関してトークン対t
c、t
nの画素の各色チャンネル(本明細書の例ではRGB)に平面を適合させ、この平面は、以下の式によって定義される。
R=X
Rn+Y
Rm+Z
R G=X
Gn+Y
Gm+Z
G B=X
Bn+Y
Bm+Z
B
ここで、パラメータ値X、Y、およびCは、CPU12の最小二乗平均回帰操作によって決定される。
【0107】
平面当てはめ操作の完了後、CPU12はステップ330に進む。ステップ330で、CPU12は、トークン対t
c、t
nの各トークンの各画素を検査して、トークンの各画素と、最小二乗平均回帰操作の式によって表現される平面当てはめとの間でzスコアを計算する。少なくとも、対の各トークンの画素のしきい値パーセンテージ(例えば80%)が最大zスコア(例えば0.75)以内であるとき、その隣接トークン対は、画像内で同一素材を示すものとしてトークングラフ内でマークされる。ステップ330の完了後、CPU12は、決定ブロック324に戻る。
【0108】
図10のルーチンを出た後、CPU12は、同一素材を示すすべてのトークン対に関してトークングラフを検査する。CPU12は、例えばユニオンファインド(union find)アルゴリズムなど既知の技法の実施によって検査を実現することができる(例えば、Zvi Galil and Giuseppe F.Italiano.Data Structures and algorithms for disjoint set union problems,ACM Computing Surveys,Volume 23,Issue 3(September 1991),pages 319−344)参照)。単純な例として、1組の7個のタイプCトークンT
1、T
2、T
3、T
4、T
5、T
6、T
7を仮定する。
図9の実行(隣接平面分析の実施)の結果が、トークンT
1とT
2が同一素材としてマークされ、トークンT
1とT
3も同一素材としてマークされることを示すと仮定する。加えて、結果がさらに、トークンT
4とT
5が同一素材としてマークされ、トークンT
5とT
6も同一素材としてマークされることを示す。したがって、ユニオンファインドアルゴリズムの実行の結果は、トークン{T
1,T
2,T
3}が、単一素材からなる画像内の第1のグループを形成し、トークン{T
4,T
5,T
6}が、単一素材からなる画像内の第2のグループを形成し、トークン{T
7}が、単一素材からなる画像内の第3のグループを形成することを示す。グループ{T
1,T
2,T
3}、{T
4,T
5,T
6}、および{T
7}が、3つのタイプBトークンを形成する。
【0109】
タイプCトークンを使用してタイプBトークンを作成するための本発明による第3の例示的技法は、局所トークン分析である。局所トークン手法は、画像ファイル18で示されるシーンの窓分析を使用してタイプCトークンを生成する。そのようなトークンは、タイプC
wトークンと表される。
図11は、本発明の1つの特徴に従って局所トークン分析技法によってタイプC
wトークンを生成するための流れ図である。
【0110】
ステップ400で、CPU12は、画像にわたる事前選択された一連の走査位置の上に、固定サイズの窓、例えば33×33画素アレイマスクを配置する。窓は、正方形以外の形状でもよい。走査位置は、固定量、例えば1/2窓サイズだけ互いからずらされ、全体として画像を完全に覆うように配置される。各走査位置での画素の窓領域は、タイプC
wトークンを生成するが、それぞれの走査位置での窓内のあらゆる画素が、それぞれの走査位置で生成されるタイプC
wトークン内にあるわけではない。
【0111】
各走査位置(ステップ402)で、CPU12は、窓内の画素に応じて、1組の平面それぞれに適合するように動作し、各平面が、窓内の色の開始点I
0と終点I
1によって特徴付けられて、各色チャンネル(例えばRGB)の強度およびRGB空間内のRGB線に対応する。平面当てはめは、窓内の画素強度の空間的表現を与え、線当てはめは、窓内の画素のスペクトル表現を提供する。
【0112】
平面当てはめに関して、平面は、式
R=X
Rn+Y
Rm+Z
R G=X
Gn+Y
Gm+Z
G B=X
Bn+Y
Bm+Z
B
によって定義され、ここで、パラメータ値X、Y、およびCは、数学的操作を実行することによってCPU12によって決定され、例えば上述した最小二乗平均回帰、特異値分解などの最小二乗推量、またはRANSAC(例えば、M.A.Fischler,R.C.Bolles.Random Sample Consensus:A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography.Comm.of the ACM,Vol 24,pp 381−395,1981参照)などのロバスト推定量である。
【0113】
RGB線当てはめに関して、線は、
I(r,g,b)=I
0(r,g,b)+t(I
1(r,g,b)−I
0(r,g,b))
によって定義され、ここで、パラメータtは、0と1の間の値を有し、平面当てはめを見出すために使用される数学的技法の任意のものを利用してCPU12によって決定することができる。
【0114】
各走査位置で、ステップ402の完了後、ステップ404で、CPU12は、それぞれの窓走査位置に対応する平面当てはめ表現およびRGB線表現それぞれに関して窓内の各画素を検査するように動作する。各画素に関して、CPU12は、確立された平面とRGB線それぞれに対する画素に関する誤差係数を決定する。誤差係数は、画素から、平面当てはめまたはRGB線当てはめへの画素の投影までの絶対距離に関係付けられる。誤差係数は、記録機器で生じる雑音の関数でよく、または窓内の最大RGB値のパーセンテージ、例えば1%でよい。空間的平面当てはめまたはスペクトル線当てはめに対する誤差係数以内の任意の画素距離が、それぞれの走査位置で生成されるタイプC
wトークンに関してインライアとラベル付けされる。また、CPU12は、それぞれの走査位置で生成されるタイプC
wトークンに関して、すべてのインライア画素のリストを記録する。
【0115】
各走査位置で、ステップ404の完了後、ステップ406で、CPU12は、窓内の各インライア画素にメンバーシップ値を割り当てるように動作する。メンバーシップ値は、平面当てはめまたはRGB線当てはめからのインライア画素の距離に基づくことがある。本発明の1つの例示的実施形態では、メンバーシップ値は、画素に関するインライアステータスを決定するために使用される距離の逆数である。第2の例示的実施形態では、インライア画素に関するメンバーシップ値を計算するために、標準偏差を有するゼロを中心としたガウス分布が実行される。
【0116】
走査位置ごとに1つずつタイプC
wトークンを生成するためにすべての走査位置が処理された後、CPU12は、トークンデータリストを編纂して記憶するように動作する(ステップ408)。トークンデータリストは、2つのリストを含む。第1のリストは、画像ファイル18内のすべての画素と、各画素に関して、それがインライア画素としてラベル付けされた各タイプC
wトークンの標示と、対応するメンバーシップ値とを列挙する。第2のリストは、すべての生成されたタイプC
wトークンと、各トークンに関して、それぞれのトークンのインライア画素の標示と、対応するメンバーシップ値とを列挙する。トークンデータリストを編纂して記憶した後、CPU12は、ルーチンから出る(ステップ410)。
【0117】
図12は、本発明の1つの特徴に従って局所トークン分析技法によって生成されるタイプC
wトークンからタイプBトークンを構成するための流れ図である。ステップ420で、CPU12は、
図108のルーチンの実行によって生成された隣接するタイプC
wトークンまたは重なり合うタイプC
wトークンの空間的平面寸法およびスペクトルRGB線のパラメータの類似性を計算する。重なり合うタイプC
wトークンおよび隣接するタイプC
wトークンは、重なり合う走査位置または連続する走査位置に対応するトークンとして定義することができる。類似性しきい値は、比較される2つの重なり合うタイプC
wトークンまたは隣接するタイプC
wトークンの空間的平面寸法およびスペクトルRGB線それぞれの間の差のパーセンテージとして設定することができる。パーセンテージは、例えば画像ファイル18のシーンを記録するために使用されるカメラ14の雑音の関数でよい。類似性しきい値以内の計算された類似性を有するすべての重なり合うタイプC
wトークン対または隣接するタイプC
wトークン対がリストに挙げられる。
【0118】
ステップ422で、CPU12は、類似性しきい値以内の計算された類似性を有する重なり合うタイプC
wトークン対または隣接するタイプC
wトークン対のリストを、最も類似性の高い対から最も類似性の低い対への順で並べ替える。ステップ424で、CPU12は、並べ替えの順序で、類似のトークン対をマージし、類似性の度合いに従って対にラベル付けする。マージされたトークン対はそれぞれタイプBトークンと考えられる。ステップ426で、CPU12は、タイプBトークンのリストを記憶して、ルーチンから出る。
【0119】
本発明のさらなる例示的実施形態では、(演算子ブロック28として実行する)CPU12が、任意境界除去、隣接平面トークンマージ、および局所トークン分析技法のそれぞれによって、および/またはそれらの1つまたは複数の組合せによって個別に生成されるタイプBトークンのリストを編纂する。使用される技法の組合せの決定は、一部では、画像のテクスチャ化により画像の特定の領域がフィルタされたかどうかに依存する。説明した技法によって生成される各タイプBトークンは、異なる照明条件下で単一素材を表すので、異なる様々な技法の使用によって生成される十分に重なり合ったタイプBトークンのマージにより、単一素材を備える画像のより広い領域を表してタイプAトークンの広がりに接近するマージされたタイプBトークンが得られる。
【0120】
十分な重なりは、例えば以下のいくつかの画素特性基準を満たすことによって定義することができる。
A)2つのタイプBトークンが、少なくともn個の元のタイプCトークンを共通で有し、例えばn=1である。
B)2つのタイプBトークンが、少なくともn個の画素を共通で有し、例えばn=20である。
C)2つのタイプBトークンが少なくともn%の重なりを有し、すなわち、2つのタイプBトークンのうち第1のトークンでの画素の少なくともn%が、2つのタイプBトークンのうち第2のトークンの中にも見い出され、逆も成り立ち、ここで例えばn%=10%である。
D)2つのタイプBトークンのうち大きい方の中にも見出される、2つのタイプBトークンのうち小さい方での画素のパーセンテージが、事前選択されたしきい値、例えば15%を超える。
E)基準A〜Dの事前選択された組合せ。
【0121】
2つの十分に重なり合ったタイプBトークンのマージは、上述したユニオンファインドアルゴリズムの実行など数学的操作によって達成することができる。上述した基準を満たさない2つの重なり合ったタイプBトークンの場合、2つのトークンの重なり合った画素を、2つのタイプBトークンのうち大きい方に割り当てることができる。
【0122】
本発明の特徴によるトークン生成およびマージ技法の(CPU12による)タイプCトークン化ブロック35および/または演算子ブロック28による実行の結果、画像は、シーンに示される個々の素材を表すトークン(タイプBトークン)と、ロバスト類似色の領域を表すトークン(タイプCトークン)に正確に分離することができ、それにより、トークン表現がかなりの数の成分画素の空間スペクトル情報を取り込むので、計算効率のための基礎となる。サービスプロバイダ24は、例えば隣接平面トークンマージ技法の実行によって決定される関連のトークンマップ情報と共に、上述したトークン生成技法の実行によって生成されるすべてのタイプCおよびタイプBトークンを記憶し、記憶された演算子結果を関連の選択された画像ファイル18と相互参照して、選択された画像の任意の分離処理で使用する。
【0123】
同一照明制約の本明細書での例では、サービスプロバイダ24は、選択された制約によって必要とされる演算子としてタイプCトークンとタイプBトークンを識別する。タイプCトークン化ブロック35がタイプCトークンを生成した。サービスプロバイダ24は、演算子ブロック28を操作して上述した技法を実行し、画像32に関する関連のタイプBトークン、およびトークンマップを生成する。制約生成器26は、ソルバ30への入力のために、例示的な行列式[A][x]=[b]に従って、生成されるトークン演算子を編成する。同一照明制約では、関連する制約ジェネレータソフトウェアモジュールの制約関係は、トークンマップ情報によって示される隣接するタイプCトークンが同じタイプBトークンの一部でない限り同一照明によって照明されるというものである。
【0124】
サービスプロバイダ24によって記憶された各タイプCトークンは、領域IDによって識別され、行および列の数だけ各成分画素のリストを含む。タイプCトークンの各画素は、画像を記録するために使用される機器の雑音レベル内で、同じタイプCトークンのすべての他の成分画素と(例えばRGB値に関して)ほぼ同じ色値を有する。各特定のタイプCトークンの成分画素に関する色値の平均を使用して、それぞれのタイプCトークンに関する色値を表すことができる。各タイプBトークンは、成分タイプCトークンによって識別され、したがって、それぞれの成分タイプCトークンによってその成分画素すべてを識別できるように処理することができる。
【0125】
本発明の1つの特徴によれば、2つの成分、すなわち素材成分と照明成分を備えるという画像の基本概念を、画像形成に関するモデルが反映する。この関係は、I=MLとして表現することができ、Iは、それぞれの画像ファイル18に記録および記憶された画像の色であり、Mは、記録された画像の色の素材成分であり、Lは、記録された画像の色の照明成分である。したがって、各タイプCトークンに関するI値は、トークンの成分画素の記録された色値に関する平均色値である。
【0126】
したがって、log(I)=log(ML)=log(M)+log(L)である。これは、i=m+lと書き換えることができ、ここで、iはlog(I)を表し、mはlog(M)を表し、lはlog(L)を表す。同一照明制約の制約関係において、3つのタイプCトークンa、b、およびc(
図13参照)が隣接している(かつ(すべての成分画素に関する行および列の数の比較から分かるように)同じタイプBトークン内にない)例では、l
a=l
b=l
cである。なぜなら、l
a=i
a−m
a、l
b=i
b−m
b、およびl
c=i
c−m
cであり、これらの数学的関係は、(1)m
a+(−1)m
b+(0)m
c=(i
a−i
b)、(1)m
a+(0)m
b+(−1)m
c=(i
a−i
c)、および(0)m
a+(1)m
b+(−1)m
c=(i
b−i
c)と表現することができるからである。
【0127】
図13は、同一照明制約によって制約された、上述した3つの隣接するタイプCトークンa、b、およびcの例の数学的関係に関する[A][x]=[b]行列式の表現を示す。隣接するタイプCトークンa、b、およびcは同一照明である。
図15の行列式では、[b]行列でのlog(I)に関する様々な値は、分離のために選択された画像からタイプCトークン化ブロック35によって生成された隣接するタイプCトークンa、b、およびcの成分画素に関する記録された平均画素色値から分かっている。0、1、および−1の[A]行列は、上述したように、選択される同一照明制約を表現する方程式群によって定義される。[A]行列内で上から下への行の数は、トークンに課される実際の制約の数、この場合は3に対応し、3つの隣接するタイプCトークン間で同一照明である。[A]行列内で左から右への列の数は、解くべき未知数の数に対応し、この場合、やはり3である。したがって、[x]行列内での各タイプCトークンa、b、およびcの素材成分に関する値は、行列式で解くことができる。実際には、各値が、本明細書の例のRGB色バンドに対応する3つの値のベクトルであることに留意すべきである。
【0128】
したがって、制約生成器26によって構成される
図13の行列式は、制約生成器26によってソルバ30に入力され、選択された画像の隣接するタイプCトークンa、b、およびcの素材成分の値に関する最適解を与える。上述したように、本発明の例示的GUI実施形態では、ユーザは、制約式[A][x]=[b]の系に対する最適解を見出すためのいくつかの数学的技法の1つを選択する。CPU12は、ユーザによって選択された数学的操作に従ってソルバ30を構成する。
【0129】
例えば、標準的な最小二乗ソルバでは、行列式は、\underset{x}{min}(Ax−b)
2と書き換えられる。次いで、ソルバ30が、最小二乗操作を実行して、m
a、m
b、およびm
cそれぞれに関する最適値を求める。次いで、ソルバ30は、最適なm
a、m
b、およびm
c値に基づいて素材画像を生成および表示する。素材画像では、それぞれのトークンの各画素に関して、m
a、m
b、およびm
c値が、元の記録されたRGB値の代わりとなる。また、ソルバ30は、i=m+lによって表現されるモデルを利用して、既知の記録された画像値i
a、i
b、i
c、ならびに決定されたm
a、m
b、およびm
c値から照明画像を生成することもできる。
【0130】
素材画像および照明画像はそれぞれ、例えばGUI(
図5参照)を介してモニタ20に表示され、サービスプロバイダ24によって記憶して、元の画像ファイル18と相互参照することができる。本発明の1つの特徴によれば、説明したように、上述した空間スペクトル演算子/制約/ソルバプロセスの実施によって生成される素材画像と照明画像の一方または両方に修正および/または改変が施される。
【0131】
本発明のさらなる1つの特徴によれば、ソルバ30は、実世界での照明および素材現象の限度を取り込んだ境界を含む因子を導入するように構成することができ、解[x]として最適化手順によって決定される素材/照明値を、物理的に妥当な範囲内に保つ。これは、例えば反復技法において、各反復で、[x]内の限度外の値に対する追加の不等号制約を導入するように実施することができ、規定の限度内の値での解を得るように実行される。したがって、([x]の入力によって表現される)個々の素材推定量に対する下限値および上限値を含むように、上述した最小二乗技法を拡張することができる。さらに、[x]の入力は、素材推定量が素材特性の先験的(a priori)知識と合致するように調整することができる。
【0132】
本発明の例示的実施形態では、選択される制約[A]および[b]を指定するために最小二乗ソルバで使用される行列は、以下の問題によって表現される以下の限度を受ける。
線形最小二乗公式:min
x’:Σ
i(A
iTx’−t
i)
2
ただし、
x’≧α
ml
x’≦ω
ml
x’≧img
j
を前提とする。ここで、lは、すべて1のベクトルを表し、α
mは、取り得る最も暗い素材値(例えば素材は石炭よりも暗くすることができない)であり、ω
mは、取り得る最も明るい素材値である。img
j値は、特定のトークンjでの対数強度値であり、分離された素材の色は元の画像に現れていた色よりも暗くはなり得ないという実世界の観察に基づく制約を与える。なぜなら、照明は、観察される素材の見掛けの色を明るくするだけであるからである。
【0133】
線形最小二乗公式では、x’に関する一意の最小解は、A
TAx’=A
Ttによって表現される線形系で、目標素材差tと推定差A
iTx’との平均二乗差を最小にする素材マップである。例えば、「第iの」制約A
iが、2つのトークンaとbが同一素材であることを示す場合、A
TAx’は、x’でトークンaとbの値の差を取り、目標値t
i=0からの歪を計算する。
【0134】
上述した「前提」限度によって表される不等号は、取り得る最大および最小の素材色値の実世界制約を満たす素材解x’の実現可能な集合を形成する。これは、標準的な既知の最小二乗解とは以下の点で異なる。すなわち、x’は、「前提」限度によるさらなる制約がない場合には、実世界での反射度の観察に反するがmin x’公式に関してより最適な解を実現する値を、所与の画像位置(例えば特定の画素またはトークン)で取ることができる。
【0135】
ソルバ30によって実行される最適化プロセスでは、プロセスの特定の反復において任意のトークンが「前提」不等号に反する素材色値を有するときはいつでも、追加の一時制約が加えられ、これは、違反している素材値を、境界条件を満たす値に固定する。したがって、元の行列[A]および[b]は、(「前提」限度の表現として)新たな境界制約A
boundsおよびb
boundsを指定する新たな行列によって拡張されて、行列式[A;A
bounds][x]=[b,b
bounds]という新たな拡張された系を定義する。拡張された方程式系は、例えば既知の最小二乗処置を使用して、元の系と同様に解くことができる。
【0136】
本発明の上述した限度付きの特徴によれば、色値が実世界現象に反するときにはいつでも、追加の一時的な制約が追加される。必要に応じて、拡張された方程式を再び解くことを繰り返すことができ、各場合に元の系A
TAx’=A
Ttから始めて(すなわち反復間で一時境界制約を引き継ぐ必要はない)、「前提」限度が満たされるまで、拡張された系A’
TA’x’=A’
Tt’を繰り返し解く。
【0137】
本発明のさらに別の特徴によれば、L
1,L
∞目的関数が、少数の素材変化に関する嗜好性を符号化することによって最適解を正則化する。実際上、L
1,L
∞ソルバは、素材マップが性能指数で少数の素材を含むべきであるという先験的な考え方を含んでいる。システムのソルバにおいて、目的関数と、あらゆる可能な解に性能指数を割り当てる公式と、解、すなわち所与の目的関数に従った最適値を見出すために使用されるアルゴリズムとの間で区別がある。本明細書の例示的実施形態での問題は、最小化min
x’:Σ
i(A
iTx’−t
i)
2と表されるので、目的関数が割り当てる値は「コスト」として特徴付けることができる。
【0138】
本明細書の問題では、x’を、いくつかの行のトークンといくつかの列の色バンドの行列とし、ここでx’
cは、第cの色バンドと関連付けられた第cの列を示す。公式での最小二乗目的関数は、以下のように拡張される。
【数1】
ここで、γ|γ>0が、最小二乗項に関連付けられるコストとL
1,L
∞ペナルティと間の兼ね合いを支配する。式
【数2】
は、[A]でのすべての同一素材制約にわたって、チャンネル当たりの最大絶対差を累算する。
【0139】
例えば、トークンaとbの間の同一素材制約を仮定すると、L
1,L
∞関数は、色チャンネルcにわたるx
caとx
cbの最大差を有する色チャンネルに関する項のみを含む。本発明の例示的実施形態では、例えば目的関数
【数3】
によって表現される最適化手順は、短縮技法である。すなわち、最小二乗問題のシーケンスは、各回に、同一素材制約に反すると決定された制約目標が短縮されるように解かれる。このシーケンスの最後に、所与のしきい値未満の値の制約が制約システムから選別され、新たな最小二乗解が計算される。上述した「前提」限度などの限度を、有界L
1,L
∞ソルバを提供するために目的関数に追加することができることに留意すべきである。
【0140】
図14は、サービスプロバイダ24および制約生成器26に関する一般化された機能ブロック図である。上述した制約の例を一般的な方式で要約するために、画像32の選択、および1組の制約ジェネレータ1、2、・・・、Nからのいくつかの制約ジェネレータ(制約ジェネレータソフトウェアモジュール)の選択が、例えばGUIを介してユーザによって行われる。1組の制約ジェネレータ1〜Nは、上述した制約を含み、かつ、画像に関する空間スペクトル情報に応じて生成される任意の追加の制約関係を含む。上述した1組の制約は一例として与える。本発明は、空間スペクトル演算子に基づく任意の制約関係を企図し、この制約関係は、画像の素材状況および照明状況に関する論理的推論を可能にし、したがって行列[A]および[b]を構成するための基礎を成し、最適解が所与の画像固有の照明成分と素材成分を取り込むような1組の式を定義する。
【0141】
同様に、タイプCトークン化ブロック35または演算子ブロック28によって生成される1組の演算子1〜Mは、制約ジェネレータモジュール1〜Nで定義されるすべての演算子を含む。
図14に示されるように、サービスプロバイダ24は、選択された制約ジェネレータ1〜Nによって必要とされるすべての演算子1〜Mを提供し、さらに、選択された制約ジェネレータ1〜Nを論理的スイッチ40を介して制約アセンブリ39に結合させる(どちらも制約生成器26内に構成される)。選択された画像32に関する演算子1〜Mの任意のものがサービスプロバイダ24によってまだ記憶されていない場合、サービスプロバイダ24は、演算子ブロック28を利用して、要求に応じてそのような演算子を上述した様式で計算する。制約アセンブリ39は、選択された制約ジェネレータのそれぞれ1つに関して、演算子と、それぞれの制約ジェネレータ1〜Nで定義される制約関係とに応じて、個別の[A][x]=[b]を構成する。各場合に、[A][x]=[b]行列は、同一照明の例に関して上述したのと同様に構成される。
【0142】
選択される制約ジェネレータi={1,2,・・・,N}それぞれに関する式[A]
i[x]=[b]
iの系の構成の完了後、制約アセンブリ39が、各制約ジェネレータからの制約行列[A]
i、[b]
iを連結する。連結された式それぞれが異なる未知数サブセット[x]を含むことができるので、[x]内の特定の未知数を制約する個々の行列[A]
iの対応する列が整列されるように組み立てられる。次いで、連結された行列[A][x]=[b]がソルバ30に入力され、選択された最適化処置に従って、完全な[x]ベクトルでの未知数の解を導き出して、固有画像34を出力する。連結された行列[A][x]=[b]内の個々の制約は、それぞれの制約、強度、または経験的に決定される信頼性レベルの認識される重要性などの因子に応じて、互いに対して重み付けすることができる。
【0143】
同一照明制約の上述した例は、タイプCトークンおよびタイプBトークン空間スペクトル演算子を利用する。これらのトークン演算子は、単一素材の大きな表面積を含む画像の優れた表現を提供し、そのような画像は、例えば人工物体を含む画像で多く見られる。しかし、多くの自然のシーンでは、砂、草、石、葉など明瞭なテクスチャの付いた領域が大きな面積で存在することが多い。上述したように、タイプCトークンを使用したタイプBトークンの識別は、画像テクスチャ内では難しいことがある。本発明のさらなる特徴によれば、テクストンヒストグラム演算子は、例えば[A][x]=[b]行列式によって表現される制約ベース最適化で有用なように、テクスチャ付き領域の統計的に均一な空間変化を取り込むためのメカニズムを提供する。
【0144】
したがって、本発明のこの特徴によれば、画像のテクスチャ付き領域内でタイプCトークンを生成するのではなく、上述したように、タイプBトークンを識別するのに使用するために、強度ヒストグラムから、制約で使用するためにテクスチャトークンが一種のタイプBトークンとして生成される。テクストンヒストグラム演算子の例示的実施形態では、演算子ブロック28は、画像の各画素(またはテクスチャを備えるものと識別された画像領域の画素)を、例えばRGB色バンド値など、それぞれの画像ファイル18の記録された色バンド表現からの2つのバンド表現に変換し、これら2つのバンドは、テクストンラベルとテクストンヒストグラムラベルを備える。次いで、明らかなように、画素に関する2つのバンド表現が、テクスチャトークンを識別するために使用される。
【0145】
各画素に関するテクストンラベルは、クラスタ化プロセスの実行によって生成される。テクスチャは、テクスチャ基本要素(例えば草のテクスチャ内では草の葉)、および基本要素の空間的分布によって特徴付けることができる。テクストン分析は、例えばクラスタ化アルゴリズムによってテクスチャ基本要素を特徴付けるための分析的方法である。クラスタ化は、データ中の自然なグループまたはクラスタの中心を位置特定するためのプロセスである。本発明の例示的実施形態では、データは、素材成分と照明成分に分離される画像の画素の中から選択される画素パッチを備える。例えば3×3画素パッチは、K個の異なるグループにクラスタ化され、各グループが、表示番号(1、2、3、…、K)を割り当てられる。3×3アレイの各画素に関するテクストンラベルは、クラスタ化プロセス中にそれぞれのパッチが割り当てられたグループのグループ番号である。
【0146】
クラスタ化アルゴリズムの実行を速めるために、3×3パッチのランダムなサンプルを画像全体にわたって、またはテクスチャを備えるものと識別された画像領域全体にわたって選択してクラスタ化アルゴリズムを処理することができる。(演算子ブロック28として動作する)CPU12によるクラスタ化アルゴリズムの実行後、画像の3×3パッチがそれぞれ、選択されたランダムなサンプルに関して実行されるクラスタ化プロセスで識別されたK個のグループ中心のうち最も近い中心のテクストンラベルを割り当てられる。
【0147】
有利には、クラスタ化アルゴリズムの実行前に、画像の画素が画像強度正規化を受ける。強度ベースの距離行列を利用するクラスタ化プロセスでは、画像の暗色領域を単一のグループに入れることができ、これにより、画像のテクスチャ付き領域の陰影領域に関するグループの過少表現(under representation)が得られる。画像の正規化は、異なる照明の下でテクスチャ領域に関してより正確なテクストン表現を提供する。画素に関する正規化された強度は、
i
norm(n,m)=log(i(n,m)/i
b(n,m))
によって与えることができ、ここで、i
norm(n,m)は、画素p(n,m)に関する正規化された強度であり、i(n,m)は、画像ファイル18に記録された画素p(n,m)に関する強度であり、i
b(n,m)は、画素p(n,m)のぼかしたバージョンまたはローパスフィルタされたバージョンである。例えば、10画素のぼかし半径を、任意の標準的なぼかし機能に使用することができる。
【0148】
クラスタ化は、K平均クラスタ化など任意の既知のクラスタ化アルゴリズムに従って実行することができ、K平均クラスタ化では、K個のクラスタまたはグループS
i(i=1、2、・・・、K)が存在し、μ
iが、すべてのデータ点x
j∈S
iの平均点または中心点である。本明細書の例では、各x
jは、選択された3×3画素パッチを備え、これは、パッチ内の9個の画素の9×1ベクトルとして構成される(ベクトルの9個の画素それぞれのRGB値を含む合計27要素)。上述したように、各平均点μ
iは、テクストンラベル1、2、3、・・・、Kを割り当てられ、これらのテクストンラベルは、それぞれの平均点が中心となるグループにクラスタ化された3×3パッチの任意の画素に関するテクストンラベルになる。
【0149】
本発明の例示的実施形態によれば、CPU12は、始めに、画像の3×3画素パッチを表す選択された9×1ベクトルをK個の初期グループS
iに区分化することによってアルゴリズムを実行する。次いで、CPU12は、強度ベースの距離行列を利用して各グループS
iに関して中心点μ
iを計算する。各グループS
iに関して中心点μ
iを決定した後、CPU12は、各9×1ベクトルを最も近い中心点μ
iに関連付け、必要であればグループを変える。次いで、CPU12は中心点μ
iを計算し直す。CPU12は、各9×1ベクトルを最も近い中心点μ
iに関連付けるステップと、中心点μ
iを計算し直すステップとの繰返しを、収束するまで実行する。収束とは、9×1ベクトルの任意のものに関してグループを変える必要がなくなった時である。その点で、CPU12は、それぞれの中心点μ
iに関するグループ番号を、そのグループ内の各ベクトルの画素に関するテクストンラベルとして割り当てる。
【0150】
上述したように、クラスタ化のためのサンプルとして選択されない3×3パッチの画素は、選択されたランダムサンプルに関して実行されたクラスタ化プロセスで識別されたK個のグループ中心μ
iのうち最も近い中心のテクストンラベルを割り当てられる。テクストンラベルマップは、サービスプロバイダ24によって記憶され、
図2の画素アレイと同一の広がりをもつ。テクストンラベルマップには、各画素位置に関してそれぞれのテクストンラベルの標示がある。
【0151】
画像の画素に関するテクストンラベル割当ての完了後、CPU12は、各画素に関してテクストンヒストグラムを生成するように動作して、画像のテクスチャ付き領域内でのテクストン表現の空間的変化の表現を提供する。そのために、CPU12は、テクストンラベルマップにアクセスする。テクストンラベルマップ内の各画素位置で、例えば21×21画素の画素パッチが現行位置の周りに設定される。21×21パッチサイズは、テクスチャの空間的変化を取り込めるように、テクストン表現を生成するために使用される3×3パッチサイズよりもはるかに大きい。次いで、上述した強度ヒストグラムと同様に、テクストンヒストグラムが、21×21パッチの中心での画素位置に関して生成される。しかし、テクストンヒストグラムでは、色バンド値に基づくビンではなく、各テクストンラベル値1、2、3、・・・、Kごとにビンがある。各ビンに関するカウントは、それぞれのビンに関するテクストンラベル値を有する21×21パッチ内の画素の数に対応する。
【0152】
テクストンヒストグラムがテクストンラベルマップの各画素に関して生成されるとき、CPU12は、第2のクラスタ化ステップを実行する。第2のクラスタ化ステップでは、テクストンヒストグラムは、スペクトルクラスタ化を使用してクラスタ化される。スペクトルクラスタ化技法は、対象のデータの類似性行列(本明細書の例ではテクストンヒストグラム)のスペクトルを使用して、より低次元でクラスタ化するように次元を減少させる。所与の1組のデータ点Aに関する類似性行列は、行列Sと定義することができ、ここでS
ijは、点i,j∈A間の類似性の尺度を表す。本明細書の例では、ラプラシアンの固有ベクトルが、平均値シフトを使用してクラスタ化される。距離計量は、ヒストグラムのカイ自乗距離である。
【0153】
テクストンヒストグラムラベル(1、2、・・・)が、クラスタ化処置によって定義される各クラスタグループに割り当てられる。テクストンラベルマップの各画素に関して、それぞれの画素に関するテクストンヒストグラムに最も近いテクストンヒストグラムに対応するクラスタグループに関するテクストンヒストグラムラベルが、その画素に割り当てられる。距離は、カイ自乗ヒストグラム距離として定義される。各画素へのテクストンヒストグラムラベルの割当ての完了後、次に、各画素が、2つのバンド、すなわちテクストンラベル表現とテクストンヒストグラムラベル表現によって表される。
【0154】
本発明の1つの特徴によれば、画像ファイル18の画素に関する2つのバンド、すなわちテクストンラベル表現とテクストンヒストグラムラベル表現は、連結行列[A][x]=[b]内の[A]
i[x]=[b]
i成分の構成に関する制約に利用することができる。例えば、領域内の連続する画素がすべて同じ2つのバンド、すなわちテクストンラベル表現とテクストンヒストグラムラベル表現を有する画像領域は、画像に示されるテクスチャの同一平均素材の領域を備えると仮定することができる。そのような領域は、テクスチャトークンと呼ぶことができ、一種のタイプBトークンである。したがって、同じテクスチャトークン内のすべてのタイプCトークンが同一平均素材であるという制約を課すことができる。この制約では、タイプCトークンは、タイプCトークン化ブロック35によって成分画素の色バンド値から生成されたタイプCトークンである。
【0155】
本発明の上記の例示的実施形態は、GUIを介してユーザが制約ジェネレータおよび数学的操作を選択することと共に説明してきたが、例えば自動的に他の動作モードで画像分離処理を行うことができ、例えば画像パラメータの関数として画像、制約ジェネレータ、および数学的操作が自動的に選択される。
【0156】
図3をもう一度参照すると、素材画像と照明画像を含む固有画像の生成(ステップ1002)後、CPU12はステップ1004に進む。ステップ1004で、CPU12は、改良されたより高い品質の出力画像のために、素材画像と照明画像の一方または両方を修正および/または改変するために任意の数の事前選択された操作を実施する。
【0157】
例えば、CPU12は、強度調節、例えばガンマ補正など業界標準のダイナミックレンジ圧縮で照明画像を修正することができ、より正確に色補正されたバージョンの出力画像を提供する。上述したように、ガンマ補正は陰影を明るくするが、色補正された陰影のない相当物と色があまり類似せず、したがって画像の見た目を歪曲する。画像の照明状況に関してのみ強度を調節することによって、画像への歪曲が最小にされる。全体の結果を改良するための照明画像の他の修正は、照明画像内の画素のRGB値を調節することによる色修正を含むことができる。また、画像内の陰影のパターンまたは特徴を変えるために照明画像に対して陰影改変が行われ、この陰影改変は、例えば陰影除去や、鮮明な陰影を滑らかにして陰影をぼかすことなどである。
【0158】
同様に、CPU12は、素材画像も修正することができる。本発明の1つの特徴によれば、カットアンドペースト操作や素材色変更などいくつかの編集作業が素材画像に対して行われる。例えば、文字記号に強い陰影が落ちるような時間に撮影された、文字記号を含むシーンの画像に関する編集の際、ユーザは、素材画像内の記号を囲んで選択し、その記号を別の素材画像にカットアンドペーストすることができ、新たな素材画像に対応する照明画像とマージされるときに、その記号が挿入されており新たな画像の照明特性を有するシーンの表示を作成することができる。
【0159】
他の修正および/または改変も、素材画像と照明画像の両方に関してCPU12によって行うことができる。例えば、素材画像と照明画像それぞれに対する個別の改変によって、現行の画像ファイル18に示されるシーンの幾何形状の変換を物理的に妥当な様式で実施することができる。幾何学的変換が、元の画像に対してではなく固有画像に対して個別の操作で完了されるとき、結果が改良される。なぜなら、そのような個別の変換操作は、画像幾何形状の表面変化の際に、同じ表面上での素材変化とは異なる様式での表面への入射照明の変化に対してより正確に対応するからである。したがって、画像の素材領域と照明領域それぞれにおける修正および改変を個別に指定することによって、より現実的な正確な結果を実現することができる。さらに、素材画像と照明画像に同時に修正を行うことができ、または事前選択された順序で修正を行うこともでき、一例として、例えば照明画像の変更が、素材画像にも変更を及ぼすような性質のものであるときには、照明画像を最初に修正する。
【0160】
本発明の1つの例示的実施形態では、ユーザが、画像ファイル18で示されるシーン内で既知の幾何形状を有する領域を選択し、さらに、シーンに望ましい改変タイプ用の幾何学的変換機能を選択する。照明画像に対して、ユーザは、照明源に関する方向を選択することができる。次いで、CPU12は、照明源方向によって定義される平面上に照明を投影するように動作する。より正確な陰影表示のために、ユーザは、例えば落ちている陰影内の色を環境光源として利用することによって、直接照明と環境光源の区別を選択することができる。そのために、ユーザは、選択されたシーン領域の陰影の点、および領域の照明されている点をクリックして、直接光源および環境光源の色を指定することができる。
【0161】
その後、上述したように、CPU12は、生成された対応する固有画像にアクセスする。CPU12は、最初に幾何学変換機能に従って照明画像の表面幾何形状を改変し、次いで、修正された表面幾何形状に対して、光源方向に従って照明を投影することによって照明画像を修正するように動作する。また、新たな表面幾何形状によって引き起こされる照明画像の変化を反映するために、陰影項および自己被陰項を組み込むこともできる。陰影項は、例えば、新たな表面の表面垂線と照明源方向とが成す角度の余弦でよい。自己被陰項は、例えば、所与の表面点に直接照明が達するのを新たな表面幾何形状が妨げる領域内では、環境照明色に設定することができる。それとは別に、CPU12は、ユーザによって選択された幾何学変換機能に従って素材画像を歪曲、変形、またはその他の形で改変するように動作して、画像の素材状況の表面幾何形状を変える。
【0162】
上述したように、ステップ1006で、CPU12は、ステップ1004で修正または改変された固有画像を、公式I=MLによって表される関係に従ってマージする。その結果、修正された出力画像が得られる(ステップ1008)。出力画像の品質は、元の画像から生成される個別の固有画像に関する独立した個別の修正操作により改良される。
【0163】
以上の明細書において、本発明を、その特定の例示的実施形態および例を参照して説明した。しかし、添付の特許請求の範囲に記載する本発明のより広範な精神および範囲から逸脱することなく様々な修正および変化を行うことができることは明らかであろう。したがって、明細書および図面は、限定的な意味ではなく例示的なものとみなすべきである。