【解決手段】画像処理装置1は、個別に識別可能でかつ所定数毎のブロック単位を識別可能なパターンで生成された複数のマーカをテクスチャ画像データのテクスチャ座標位置と関連付けて記憶するとともに各ブロック単位について周囲に配置された他のブロック単位と関連付けて識別するブロック識別情報を記憶しておき、被写体の画像データに基づいてマーカ及びその表示位置を検出し、検出されたマーカのパターンに基づいてマーカをブロック単位に区分し、区分されたブロック単位についてブロック識別情報に基づいてブロック単位を識別するとともにブロック単位内のマーカを識別し、マーカの表示位置及びテクスチャ座標位置に基づいてテクスチャ画像データを補正して被写体の画像データに重畳した合成画像データを生成する。
テクスチャ画像データを記憶する画像データ記憶部と、被写体の表面に配列して表示されるとともに個別に識別可能でかつ所定数毎のブロック単位を識別可能なパターンで生成された複数のマーカをテクスチャ画像データのテクスチャ座標位置と関連付けて記憶するとともに各ブロック単位について周囲に配置された他のブロック単位と関連付けて識別するブロック識別情報を記憶する識別データ記憶部と、前記被写体の画像データに基づいて前記マーカ及びその表示位置を検出する検出処理部と、検出された前記マーカの前記パターンに基づいて前記マーカを前記ブロック単位に区分する区分処理部と、区分された前記ブロック単位について前記ブロック識別情報に基づいて前記ブロック単位を識別するとともに識別された前記ブロック単位内の前記マーカを識別する識別処理部と、識別された前記マーカの表示位置及び当該マーカに関連付けられたテクスチャ座標位置に基づいて前記テクスチャ画像データを補正するとともに補正された前記テクスチャ画像データを前記被写体の画像データに重畳した合成画像データを生成する合成処理部とを備えている画像処理装置。
前記マーカは、前記ブロック単位を識別する共通の第一パターン及び前記ブロック単位に含まれる前記マーカを識別する個別の第二パターンを組み合せて生成されており、前記ブロック識別情報は、前記ブロック単位のそれぞれに含まれる前記第一パターンに基づいて生成されている請求項1に記載の画像処理装置。
個別に識別可能でかつ所定数毎のブロック単位を識別可能なパターンで複数のマーカを生成するとともに各ブロック単位について周囲に配置された他のブロック単位と関連付けて識別するブロック識別情報を生成し、記憶されたテクスチャ画像データのテクスチャ座標位置と前記マーカとを関連付けて記憶し、前記マーカを前記ブロック単位で配列して表面に表示した被写体の画像データに基づいて前記マーカ及びその表示位置を検出し、検出された前記マーカの前記パターンに基づいて前記マーカを前記ブロック単位に区分し、区分された前記ブロック単位について前記ブロック識別情報に基づいて前記ブロック単位を識別するとともに識別された前記ブロック単位内の前記マーカを識別し、識別された前記マーカの表示位置及び当該マーカに関連付けられたテクスチャ座標位置に基づいて前記テクスチャ画像データを補正するとともに補正された前記テクスチャ画像データを前記被写体の画像データに重畳した合成画像データを生成する画像処理方法。
前記マーカは、前記ブロック単位を識別する共通の第一パターン及び前記ブロック単位に含まれる前記マーカを識別する個別の第二パターンを組み合せて生成され、前記ブロック識別情報は、前記ブロック単位のそれぞれに含まれる前記第一パターンに基づいて生成される請求項3に記載の画像処理方法。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について図面を用いて説明する。なお、以下に説明する実施形態は、本発明を実施するにあたって好ましい具体例であるから、技術的に種々の限定がなされているが、本発明は、以下の説明において特に本発明を限定する旨明記されていない限り、これらの形態に限定されるものではない。
【0016】
図1は、本発明に係る画像処理装置に関する機能ブロック構成図である。画像処理装置1は、画像入力部2から入力される被写体画像を処理するとともに被写体画像に合わせてテクスチャ画像を補正し、被写体画像に補正されたテクスチャ画像を重ね合せた合成画像を生成して画像出力部3に表示する機能を備えている。
【0017】
画像入力部2は、被写体を実写した画像、被写体を仮想的に表現したコンピュータグラフィックス画像等を入力するようになっており、例えば、カメラ等の撮影装置により変形する物体を撮影した画像や通信ネットワーク等を介して受信された画像が入力される。被写体としては、変形する実在の物体以外に、こうした変形する物体に基づいて画像表現された仮想的な物体も含まれる。
【0018】
画像出力部3は、テレビ、パソコン、スマートフォン等の携帯端末、大型ディスプレイといった種々の表示装置を備えたものを用途に合わせて使用することができ、また画像処理装置1と通信ネットワーク等を介して接続することで、様々な場所に画像出力部3を設置して画像表示を行うことができる。
【0019】
画像処理装置1は、画像処理部10と、テクスチャ画像データ等の画像データを記憶する画像データ記憶部11と、マーカ等の識別に関するデータを記憶する識別データ記憶部12とを備えている。画像処理部10は、画像入力部2から入力される被写体画像データ及びテクスチャ画像データ等の画像データを画像データ記憶部11に記憶する。テクスチャ画像データは、被写体画像データに重ね合せる画像データであり、例えば、被写体が衣服である場合には、衣服に表示する色彩や図柄等の柄模様といった服飾デザインに関する画像データが挙げられる。
【0020】
識別データ記憶部12には、被写体の表面に配列して表示される複数のマーカに関する識別データが記憶されており、これらのマーカは、個別に識別可能で所定数毎のブロック単位を識別可能なパターンで生成されている。ここで、ブロック単位は、所定範囲で設定されることで、ブロック単位内にはその範囲に配置された所定数のマーカが含まれるようになっている。
【0021】
図2は、こうした識別性を有するマーカの一例を示す説明図である。この例では、マーカMは、同心円状の二重円で構成され、円形の内側領域RAには複数種類の色から選択された1つの色が表示されており、外側のリング状領域は上下半分ずつの外側領域RB及びRCに区画されて、外側領域RB及びRCにはそれぞれ選択された1つの色が表示される。
【0022】
内側領域RAに表示される色は、ブロック単位内のマーカでは全て同じ色を表示するように設定されている。そのため、マーカMの内側領域RAが共通の色である範囲を区分してブロック単位の色及び範囲を識別することができる。
【0023】
外側領域RB及びRCの表示色の組合せは、ブロック単位内のマーカMが個別に識別可能となるように設定されている。具体的には、外側領域RB及びRCにN種類の色を使用する場合に、N
2通りの組合せパターンが設定されることから、ブロック単位内のマーカ数に合わせて使用する色の種類数を決めることで、ブロック単位内のマーカMを外側領域RB及びRCの表示色の組合せパターンで個別に識別することができる。
【0024】
そして、ブロック単位内における外側領域RB及びRCの色の組合せパターンの配置を共通となるように設定することで、各ブロック単位では同じ位置のマーカMは外側領域RB及びRCの色の組合せパターンが同一となり、色の組合せパターンによりブロック単位内のマーカMの位置を識別することができる。こうした色の組合せパターンについては、各組合せパターンに対応して予めナンバリングしておくことで、識別処理の際に効率よく処理することができる。
【0025】
各ブロック単位は、その周囲に配置された他のブロック単位と関連付けたブロック識別情報で識別されるようになっている。各ブロック単位の範囲は、内側領域RAの表示色の分布範囲及び外側領域RB及びRCの組合せパターンの範囲で特定することができ、識別された各ブロック単位の内側領域RAの表示色の全体からみた配置関係に基づいて、各ブロック単位の周囲に配置された他のブロック単位の表示色と関連付けたブロック識別情報を生成することができる。例えば、非特許文献1に記載されたマーカの表示色の配列方法を用いることで、ブロック単位の表示色を各ブロック単位が個別に識別可能となるように配列することが可能となり、各ブロック単位を識別可能なブロック識別情報を作成することができる。
【0026】
以上説明したマーカの表示色を用いて識別する場合、被写体の実写画像に表示されたマーカMの表示色が互いに明確に区別して識別できる色を選択することが好ましい。例えば、HSV表色系等の色空間において、なるべく互いに離れた色を用いるとよい。なお、マーカは、表示色以外の識別可能な表示手段を使用してもよく、例えば、赤外線センサ等により検知可能な表示手段を用いてマーカを構成することもできる。
【0027】
上述した例では、色の組合せによるマーカのパターンを説明したが、ブロック単位を識別する共通のパターン及びブロック単位内のマーカを識別する個別のパターンを組み合せて各マーカを階層的なパターンの組み合せで構成すればよい。そのため、マーカのデザインは自由に変更することが可能で、例えば、点と線の組み合せでも構成することができ、色の組み合せに限定されない。また、被写体が本来有する色をマーカの1つのパターンに使用することもでき、こうしたパターンであればマーカの検出処理を簡略化することも可能となる。
【0028】
図3は、複数のマーカMが配列表示された配列パターンHの一例を示す模式図である。また、
図4は、
図3に示す配列パターンHをブロック単位Kに区分した場合を例示した説明図(
図4(a))、区分されたブロック単位Kの表示色(内側領域RAの表示色)を円形のマークで置き換えて例示した説明図(
図4(b))及びブロック単位内のマーカの配列を例示した説明図(
図4(c))である。
【0029】
図3に示すように、マーカMの各領域の表示色の違いを濃淡の違いで模式的に表示している。この例では、マーカMは、縦横に9個ずつ81個が等間隔で配列されており、縦横に3個ずつ区分してブロック単位Kが設定されている。なお、マーカMの配列方法はテクスチャ画像のテクスチャ座標に合わせて適宜設定すればよく、ブロック単位の範囲についても被写体の変形による遮蔽範囲を想定して設定すればよい。
【0030】
各ブロック単位Kの表示色となるマーカMの内側領域RAの表示色は、例えば、赤・緑・青・黒の4色から選択し、非特許文献1に記載された公知の選択手法と同様に選択して配置すればよい。外側領域RB及びRCの表示色に用いる種類の数は、各ブロック単位Kのマーカ数が9個であることから、3色以上であればよく、互いに明確に区別して検出可能な色を選択すればよい。色数が増加するとマーカを誤って検出する可能性が高くなることから、この例では、3色を選択している。例えば、黄、シアン、マゼンタの3色から2色を選択して、ブロック単位K内の外側領域RB及びRCの組合せパターンに合わせて配色する。
【0031】
図4(b)に示すように、この例では、ブロック単位を識別するブロック識別情報は、1つのブロック単位とその周囲に配置された8個のブロック単位について計9個の表示色に対応する識別情報(ID)を時計回りに順次配列して作成することができる。例えば、4つの表示色に対してそれぞれ1から4の数字を当てはめ、表示色の配列に対応した数字列を作成してブロック識別情報とすればよい。また、被写体画像の配列パターンが回転して表示されることが想定される場合には、回転に応じた配列順序で数字列を作成して1つのブロック単位に関して複数のブロック識別情報を作成するようにしてもよい。また、角部のブロック単位では周囲に配置されたブロック単位は3個で、辺部のブロック単位では周囲に配置されたブロック単位は5個となるが、これらについても表示色の時計回りの配列順序でブロック識別情報を作成することができる。
【0032】
こうしてブロック単位をブロック識別情報により識別するとともにブロック単位内のマーカを個別に識別することで、各マーカを階層的に識別することができる。この例では、各マーカを個別に識別するために、
図4(c)に示すように、各マーカの外側領域の組み合せパターンに応じて1〜9の数字を当てはめて識別するようにしている。
【0033】
そして、各マーカをテクスチャ画像のテクスチャ座標と関連付けておくことで、被写体画像に表示されたマーカの表示位置に関連付けてテクスチャ画像を重ね合せることが可能となる。
図5は、マーカとテクスチャ画像のテクスチャ座標を関連付けた場合を例示する説明図である。この例では、柄模様からなるテクスチャ画像Gのテクスチャ座標を配列パターンHを構成する複数のマーカと対応付けている。
【0034】
以上説明したように、識別データ記憶部12には、生成されたマーカのパターン及び所定数のマーカ毎に設定されたブロック単位を識別するためのデータとともに各マーカとテクスチャ座標位置とを対応付けるデータが登録されている。
【0035】
画像処理部10は、検出処理部101、区分処理部102、識別処理部103及び合成処理部104を備えており、検出処理部101は、被写体の画像データに基づいてマーカ及びその表示位置を検出する処理を行う。被写体を実写した撮影画像の場合には、被写体に対する背景画像を分離するマスク処理を行い、マーカの誤検出を減らすための前処理を行うことが好ましい。上述した例のように、マーカを色彩によるパターンで構成している場合には、構成する色を画像から検出する処理を行うことで、マーカのパターン及びその表示位置を検出することができる。
【0036】
具体的には、各色の二値画像を作成してラベリング処理を行い、面積が一定の範囲にあるものをマーカ領域として分類する。二値画像に対しては、メディアンフィルタ及びモルフォロジー演算を行うことで、ノイズを減らして誤検出のリスクを小さくすることができる。
【0037】
得られた二値画像に基づいてパターンの内側領域及び外側領域の色の組み合わせを決定し、内側領域に対応する画像領域の重心位置から外側領域に対応する画像領域の重心位置までの距離を算出し、一定の値以下であれば同一のマーカであると判定してマーカ検出を行うことができる。その際に、外側領域の組合せパターンにより各マーカを特定することができ、例えば、ナンバリングしたデータで特定すればよい。また、マーカの表示位置については、例えば、内側領域の重心座標を表示位置として用いるとよい。こうして、被写体画像に表示されたマーカ及びその表示位置を検出することができる。
【0038】
区分処理部102は、検出処理部101において検出されたマーカのパターンに基づいてマーカをブロック単位に区分する処理を行う。上述した例では、マーカの内側領域の色はブロック単位で同一の色を用いており、外側領域の色の組合せパターンは各ブロック単位で共通とされているため、各マーカの外側領域の組合せを確認していくことで、ブロック単位を識別するとともにその範囲を特定して区分する処理を行うことができる。衣服のように容易に変形する被写体では、
図6に例示するように、被写体に表示した配列パターン(
図6(a)参照)において一部のマーカが遮蔽される(
図6(b)参照)場合があるが、被写体画像においてブロック単位を構成するマーカが
図6(b)に示すように一部表出していれば、表出したマーカの内側領域の色及び外側領域の組合せを確認することで、ブロック単位に区分することができる。
【0039】
識別処理部103は、区分されたブロック単位についてブロック識別情報に基づいてブロック単位を識別するとともに識別されたブロック単位内のマーカを識別する処理を行う。上述した例では、各ブロック単位のマーカの内側領域の表示色に基づいてブロック識別情報を作成しているので、1つのブロック単位とその周囲に配置されたブロック単位について、表示色を時計回りに順次確認してブロック識別情報を一致するか否か判定し、一致する場合には登録されたブロック単位として識別する。
【0040】
図6に示す例においても、ブロック単位の一部のマーカが表出しているので、ブロック単位の表示色を識別することが可能となり、ブロック単位をブロック識別情報に基づいて識別することができる。
【0041】
ブロック単位が識別されることで、ブロック単位内のマーカについても外側領域の色の組合せに基づいて容易に識別することができる。そして、個別に識別されたマーカについて検出された表示位置は、合成処理部104においてそのまま用いられる。
【0042】
合成処理部104は、識別されたマーカの表示位置及びマーカに関連付けられたテクスチャ座標位置に基づいてテクスチャ画像データを補正するとともに補正されたテクスチャ画像データを被写体の画像データに重畳した合成画像データを生成する処理を行う。上述した例では、記憶部12に登録されたマーカの表示位置と予め登録されているマーカに対応するテクスチャ座標位置を読み出して、両方の位置関係に基づいて非特許文献1に記載されているような公知の補間処理を行い、記憶部11に記憶されたテクスチャ画像を被写体画像に合せるように補正して被写体画像に重ね合せた合成画像データを生成する。
【0043】
被写体画像が動画である場合には、動画を構成するフレーム毎の被写体画像について、上述したようにマーカを識別し、識別されたマーカのフレーム間における変動に基づいてテクスチャ画像を補正して連動させることで、動画に追随して合成画像を生成することもできる。
【0044】
また、被写体画像が陰影を有する3次元画像で構成されている場合に、テクスチャ画像には陰影が含まれていないため、重ね合せた合成画像に対して陰影を付加する処理を行うことが必要となる。具体的には、被写体画像を構成する画素の明度に基づいて補間されたテクスチャ画像に反映させるようにすることで陰影処理を行うことができる。ただし、マーカを構成する色により反射率が異なることから、マーカ以外の領域における画素の明度を参照してマーク領域の明度を補間する必要がある。
【0045】
図7は、画像処理に関する処理フローである。まず、被写体が表示された入力画像を取得する(S100)。例えば、
図8に示すように、着用されたTシャツを被写体として撮影した画像が入力画像として取得される。無地のTシャツの正面側には、
図3に示すマーカの配列パターンがカラー印刷されており、
図8に示す画像は、正面側から撮影装置で撮影された画像である。また、
図5で説明したように、予めマーカの配列パターンに対応してテクスチャ画像のテクスチャ座標位置を関連付けて記憶しておく。
【0046】
次に、取得された被写体画像に対してマーカの検出処理を行う(S101)。上述したように、マーカに用いた複数種類の色に関して二値画像を生成して被写体画像中のマーカ及び表示位置を検出する。そして、上述したように、検出されたマーカのパターンに基づいてブロック単位の区分処理を行い(S102)、区分されたブロック単位をブロック識別情報に基づいて識別するとともにブロック単位内のマーカを識別する(S103)。
【0047】
次に、識別されたマーカの表示位置及びテクスチャ座標位置に基づいてテクスチャ画像を補正して(S104)被写体画像に重畳して合成画像を生成し(S105)、生成された合成画像を画像出力部3に出力処理する(S106)。
【0048】
図9は、識別されたマーカの表示位置及びテクスチャ座標位置に基づいてテクスチャ画像を重ね合せる領域全体にメッシュモデルを生成した場合に関する説明図である。識別に成功したマーカの表示位置を基に、Radical Basis Functionを用いた補間処理等の公知の手法によりメッシュモデルを被写体画像の重ね合せる領域に合わせて変形させる。
【0049】
図9に示す四角の黒点は、識別されたマーカの表示位置を示しており、ブロック単位の識別及びマーカの識別を階層的に行うことで、マーカの識別精度を向上させることができる。
図10は、Tシャツに縦皺が寄ってマーカが1列以上隠れた状態におけるマーカの識別結果を示す画像例である。
図10(b)は、
図10(a)に示す入力画像に対して、非特許文献1に示す従来の手法によるマーカの識別処理を行った結果を示しており、
図10(d)は、
図10(c)に示す入力画像に対して、ブロック単位を識別してマーカを識別する階層的な識別処理を行った結果を示している。
【0050】
図10(a)及び
図10(c)に示す入力画像では、縦皺によりマーカが一部隠れた状態となっている。
図10(b)及び
図10(d)では、識別されたマーカを四角の黒点で示している。識別結果をみると、
図10(b)では、縦皺が寄った部分に沿ってマーカを識別できておらず、識別精度が低下している。縦皺が寄った部分ではマーカ一列分が遮蔽された状態となっているため、マーカを周囲に配置された他のマーカに基づいて識別する手法では、遮蔽されたマーカの周囲に配置されたマーカについても識別できなくなる。これに対して、
図10(d)では、遮蔽されたマーカを含むブロック単位を識別することができるため、遮蔽されたマーカ以外のマーカを識別することが可能となる。そのため、マーカの識別精度を向上させることができ、以後のテクスチャ画像の補正を精度よく行うことが可能となる。
【0051】
図11は、補正されたテクスチャ画像が被写体画像に合成された画像例を示している。
図11に示す合成画像例では、被写体画像で表示されていたTシャツの皺による陰影が表示されなくなるため、元の陰影を付加する処理を行うことで、被写体画像にテクスチャ画像を違和感なく重畳した合成画像を生成することができる。
【0052】
図12は、陰影を付加する処理過程を示す説明図である。
図12(a)は、
図8に示す被写体画像の明度画像を示しており、皺による陰影以外にマーカの色による明度が表出するようになっている。そのため、マーカ以外の領域の明度を参照して明度画像の補間処理を行い、
図12(b)に示すような補間後の画像を生成する。
【0053】
図13は、別の画像処理の処理過程を示す説明図である。上側の画像列及び下側の画像列は、それぞれ左側から入力画像、入力画像で識別されたマーカ(白抜きの四角形)に基づくメッシュモデル画像、メッシュモデルによる合成画像、修正画像、エラーマップ画像を示している。修正画像は、メッシュモデル画像において識別できなかったマーカの表示位置をテクスチャ座標位置と対応付ける補足処理を行って修正した画像である。エラーマップ画像は、合成画像と修正画像との間の色ずれの大きさを画素毎に色別表示した画像である。この例では、入力画像の解像度が1080pixel×1080pixelで、色ずれの最大値を30pixelとして5段階で表示している。
【0054】
上側の画像列は、非特許文献1に記載された従来の手法を用いて画像処理を行った結果を示している。入力画像においてマーカが縦皺で部分的に遮蔽された状態となっており、遮蔽部分からマーカの識別ができなかった領域が拡がっている。そのため、マーカを識別できなかった領域にエラーが生じており、遮蔽部分に近い領域ほど色ずれが大きくなっている。これに対して、下側の画像列は、本発明に係る画像処理を用いて処理した結果を示している。入力画像においてマーカが縦皺でほぼ遮蔽された状態となっているが、表出しているマーカをほぼ識別できているため遮蔽部分においてもエラー領域が小さくなっている。そのため、合成画像は修正画像とほぼ一致するようになり、被写体の変形に対して正確に追随していることが確認できる。
【0055】
以上説明したように、所定数のマーカごとにブロック単位を設定し、ブロック単位を識別するとともにブロック単位内のマーカを個別に識別するようにしているので、ブロック単位内の一部のマーカが遮蔽された場合でも他の遮蔽されていないマーカを識別することが可能となる。そのため、布帛等のように容易に変形する被写体の場合に被写体に表示されたマーカが変形により一部遮蔽されたとしても、大域的に周辺のマーカを参照することで遮蔽部分付近のマーカを識別することが可能となり、マーカの識別精度を向上させることができる。マーカをテクスチャ画像のテクスチャ座標位置と対応させておくことで、被写体画像において識別されたマーカの表示位置に基づいてテクスチャ画像を補正して被写体画像に重ね合せて合成画像を生成することができ、変形する被写体に追随して違和感なく画像処理を行うことが可能となる。