IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ヘミボーラの特許一覧

<>
  • 特許-クロマキー処理における画像合成方法 図1
  • 特許-クロマキー処理における画像合成方法 図2
  • 特許-クロマキー処理における画像合成方法 図3
  • 特許-クロマキー処理における画像合成方法 図4
  • 特許-クロマキー処理における画像合成方法 図5
  • 特許-クロマキー処理における画像合成方法 図6
  • 特許-クロマキー処理における画像合成方法 図7
  • 特許-クロマキー処理における画像合成方法 図8
  • 特許-クロマキー処理における画像合成方法 図9
  • 特許-クロマキー処理における画像合成方法 図10
  • 特許-クロマキー処理における画像合成方法 図11
  • 特許-クロマキー処理における画像合成方法 図12
  • 特許-クロマキー処理における画像合成方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-07-07
(45)【発行日】2023-07-18
(54)【発明の名称】クロマキー処理における画像合成方法
(51)【国際特許分類】
   H04N 9/75 20060101AFI20230710BHJP
   H04N 5/272 20060101ALI20230710BHJP
【FI】
H04N9/75
H04N5/272
【請求項の数】 2
(21)【出願番号】P 2023016688
(22)【出願日】2023-02-07
【審査請求日】2023-02-14
【早期審査対象出願】
(73)【特許権者】
【識別番号】723001634
【氏名又は名称】株式会社ヘミボーラ
(72)【発明者】
【氏名】三島也守志
【審査官】鈴木 肇
(56)【参考文献】
【文献】特開2000-224410(JP,A)
【文献】特開2015-186224(JP,A)
【文献】特開2007-142726(JP,A)
【文献】特開2002-271812(JP,A)
【文献】特開平08-065705(JP,A)
【文献】特開2010-121945(JP,A)
【文献】特開2008-059224(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 9/75
H04N 5/272
(57)【特許請求の範囲】
【請求項1】
グリーンまたはブルーのスクリーンの手前に前景被写体をおいて撮影した処理対象画像と、最終的に背景にしたい背景画像とを合成するようにしたクロマキー処理における画像合成方法であって、
処理対象画像の各画素の色をベクトルスコープ座標系に変換し、色相の角度範囲を階級とする色相ヒストグラムを作成し、
色相ヒストグラムの度数最大階級に該当する色相の画素の平均画素色をコアバックカラーとし、
ベクトルスコープ座標系でコアバックカラーに近い画素を白色とし、それ以外を黒色とする初期マスク画像を作成し、
前記初期マスク画像を縮退させてバックスクリーンマスク画像を作成し、
バックスクリーンマスク画像と処理対象画像を乗算して、処理対象画像の中でバックスクリーンのみが見えていてバックスクリーンではない部分が黒となる画像をバックスクリーンシード画像とし、
前記初期マスク画像を膨張させた画像を白黒反転させて被写体マスク画像を作成し、
被写体マスク画像と処理対象画像を乗算し、処理対象画像の中で前景被写体のみが見えていて前景被写体ではない部分が黒の画像を前景被写体シード画像とし、
前記バックスクリーンシード画像の黒画素部分をインペイント処理によって埋めたバック滲み出し画像を作成してバックスクリーン色仮定画像とし、
前記前景被写体シード画像の黒画素部分をインペイント処理によって埋めた前景滲み出し画像を作成して前景被写体色仮定画像とした上で、
元の処理対象画像と、バックスクリーンマスク画像と被写体マスク画像とバックスクリーン色仮定画像と前景被写体色仮定画像とを用いて合成画像を作成することを特徴とするクロマキー処理における画像合成方法。
【請求項2】
請求項1に記載のクロマキー処理における画像合成方法において、
前記バックスクリーン色仮定画像の各画素と前記前景被写体色仮定画像の各画素について、
バックスクリーン色仮定画像の該当画素の画素色と前景被写体色仮定画像の該当画素の画素色をベクトルスコープ座標系に変換し、ベクトルスコープ座標系の原点から前記バックスクリーン色仮定画像の該当画素のベクトルスコープ座標系変換後の点に引いた直線と、ベクトルスコープ座標系の原点から前記前景被写体色仮定画像の該当画素のベクトルスコープ座標系変換後の点に引いた直線との角度の余接=コタンジェントを求め、余接=コタンジェントを-1.0から2.0の範囲でクリッピングした値を計算して、これを該当画素の境界色補正用パラメータとし、
処理対象画像と同じ解像度の単チャンネル画像用のメモリを用意し、各画素について計算した前記境界色補正用パラメータを格納して境界色補正用単チャンネル画像とし、
処理対象画像の各画素について、
ベクトルスコープ座標系の原点から前記バックスクリーン色仮定画像の該当画素のベクトルスコープ座標系変換後の点に引いた直線に、処理対象画像の該当画素のベクトルスコープ座標系変換後の点から降ろした垂線の足と、ベクトルスコープ座標系の原点の距離を求めてこれを該当画素の前景色距離とし、
ベクトルスコープ座標系の原点から前記バックスクリーン色仮定画像の該当画素のベクトルスコープ座標系変換後の点に引いた直線に、処理対象画像の該当画素のベクトルスコープ座標系変換後の点から降ろした垂線の距離を求め、この垂線の距離と前記境界色補正用単チャンネル画像の該当画素との積を求めてこれを該当画素の境界色補正距離とし、
該当画素の前記前景色距離から該当画素の前記境界色補正距離を減算してこれを該当画素の補正済み前景色距離とし、
ベクトルスコープ座標系の原点と前記バックスクリーン色仮定画像の該当画素のベクトルスコープ座標系変換後の点との距離を求めて該当画素のバックスクリーン色距離とし、
該当画素の前記補正済み前景色距離を該当画素の前記バックスクリーン色距離で除算した結果を求めて0.0から1.0の範囲でクリッピングした値を該当画素の前景透明度とし、
該当画素の前景透明度が100%の箇所の出力画像の画素は背景画像の該当画素を出力し、
該当画素の前景透明度が0%の箇所の出力画素は処理対象画像の該当画素を出力し、
該当画素の前景透明度が100%より小さく0%より大きい箇所の該当画素の出力画素は、背景画像の該当画素色のRGB各成分から前記バックスクリーン色仮定画像の該当画素色のRGB各成分を減算して該当画素の三次元の置き換えベクトルとし、
この該当画素の三次元の置き換えベクトルの各成分に該当画素の前記前景透明度を乗算したものを該当画素のスケーリング済み置き換えベクトルとし、
処理対象画像の該当画素の画素色の各成分に該当画素のスケーリング済み置き換えベクトルの各成分を加算した画素色を該当画素の出力画素として出力することを特徴とするクロマキー処理における画像合成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クロマキー処理における、被写体境界部分が自然な画像合成方法に関するものである。
【背景技術】
【0002】
インターネット動画番組制作やテレビ番組制作などで用いられている、グリーンスクリーンやブルースクリーンを利用した画像合成装置=クロマキー装置においては、以下に述べるような方式で対象画像を処理することが多い。先ず、単一色のスクリーンを背景にして、合成したい前景被写体を手前に配置し撮影を行なった画像素材を「処理対象画像」とする。これとは別に合成後の背景となる画像素材を「背景画像」として用意しておく。これらの画像素材を装置に入力したうえで、次の処理を逐次実行する。
【0003】
(1)背景としたい色又はそれを代表する色を一色決定する(バックスクリーン色)。
(2)RGB色空間にあらかじめ2つの識別境界を設定する。この識別境界は色空間を「完全背景領域」、「完全前景領域」及びこれら2領域に挟まれる「境界領域」の3種類の領域に分ける。「完全背景領域」にはバックスクリーン色が含まれなければならない。尚、YIQなど、別の色空間の処理対象画像が装置に入力される場合は、事前にRGB色空間に変換した上で識別境界設定を行う。
(3)処理対象画像を構成する各画素の、色空間における位置を調べる。
(4)画素が、「完全背景領域」に含まれる場合は透明度100%とし、「完全前景領域」に含まれる場合は透明度0%とする。又、「境界領域」に含まれる場合は、2つの識別境界と画素位置との距離を調べて、完全領域への近さの度合から透明度を決定する。この透明度は0%より大きく100%より小さい。
(5)処理対象色の各色成分からバックスクリーン色の各色成分を減算し、その結果に(4)で求めた透明度の補数の逆数(100/(100ー[透明度]))を乗算する。これにバックスクリーン色を加算して前景被写体の本来の色を求める。
(6)本来の色に透明度の補数(100ー[透明度])を乗算したものと、合成背景に透明度を乗算したものとを加算する。
以上の手順によって合成結果を得ることができる。
【0004】
従来の方法ではバックスクリーン色と識別境界をユーザの操作によって設定し、その設定に応じて画像内の画素全てについて同一の色変換演算を適用している。しかしながら、前景の前景被写体がたとえば人物モデルの場合には頭髪や皮膚や衣服などが含まれ、これらは多様な色となっている可能性が高い。
処理対象画像内で前景被写体とバックスクリーンの境界部分の画素色成分を見ると、前景被写体の色とバックスクリーンの色が混じり合っており、位置によって多様な色とバックスクリーンの色の混合が見られる。これを同一の色変換演算で処理すると、境界部分の本来の色変換が行われず、結果として合成出力に不自然さを引き起こすことがある。
【0005】
たとえば前景被写体が赤い帽子と黄色い衣服を着用しており、グリーンスクリーンの手前に立って撮影する場合を考える。この時、赤い帽子とグリーンスクリーンの境界部分を拡大して見ると、シャープな画像であればグリーンと赤の混じった境界部分は狭隘だが、それでも場所によって必ず様々なグリーンと赤の混合度合いとなる境界が存在する。そこでは外側から内側に行くに従ってグリーンから少しずつ赤みが増していき、黄色い色を経由して最終的に赤い帽子の色になる境界部分が観察される。一方黄色の衣服とグリーンスクリーンの境界部分を拡大して見ると、そこでは外側から内側に行くに従ってグリーンから徐々に黄色みが増していき、最終的に黄色になる境界部分が観察される。
【0006】
ここで従来の方法で赤い帽子に注目して赤い帽子とグリーンスクリーンの境界が適切に処理されるように識別境界を配置すると、境界で経由する色となる黄色はグリーンと赤の混じり合った半透明の色として処理される。しかしながら、これと同一の色処理を画像全体に適用すると、黄色い服の色が半透明になってしまい、正しい合成結果とはならない。また同じく従来の方法で黄色い衣服に注目して黄色い衣服とグリーンスクリーンの境界が適切に処理されるように識別境界を配置すると、黄色は不透明の色として処理される。しかしながら、これと同一の色処理を画像全体に適用すると、今度は赤い帽子とグリーンスクリーンの境界に見られる黄色い成分が不透明になってしまい、赤い帽子の縁に黄色い輪郭を発生させることになり不自然な結果となる。
【0007】
このように、画像内の全ての画素について同一の色変換演算を適用する従来の方法で処理した場合、前景被写体の色の組み合わせによっては適切な合成結果が得られないことがあるという課題があった。それに加えて、仮にバックスクリーンの色が均一で特定できる条件であっても、バックスクリーンの色と前景被写体の色が混じり合って構成される境界部分の画素色からは前景被写体の色が完全には特定できないため、最適な境界部分処理をするにはマニュアル操作によって識別境界を設定する必要があり、オートマチックに適切な合成結果を得ることは困難であった。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2002ー271812号公報
【文献】特開平08ー065705号公報
【文献】特開2007ー142726号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明が解決しようとする問題点は、前景被写体の多様な色の部分とバックスクリーンとの境界部分を単一の色変換演算で処理することにより違和感を生じてしまうということである。
【課題を解決するための手段】
【0010】
本発明は、グリーンまたはブルーのスクリーンの手前に前景被写体をおいて撮影した処理対象画像と、最終的に背景にしたい背景画像とを合成するようにしたクロマキー処理における画像合成方法であって、処理対象画像の各画素の色をベクトルスコープ座標系に変換し、色相の角度範囲を階級とする色相ヒストグラムを作成し、色相ヒストグラムの度数最大階級に該当する色相の画素の平均画素色をコアバックカラーとし、ベクトルスコープ座標系でコアバックカラーに近い画素を白色それ以外を黒色とする初期マスク画像を作成し、初期マスク画像を縮退させてバックスクリーンマスク画像を作成し、バックスクリーンマスク画像と処理対象画像を乗算して、処理対象画像の中でバックスクリーンのみが見えていてバックスクリーンではない部分が黒となる画像をバックスクリーンシード画像とし、初期マスク画像を膨張させた画像を白黒反転させて被写体マスク画像を作成し、被写体マスク画像と処理対象画像を乗算して、処理対象画像の中で前景被写体のみが見えていて前景被写体ではない部分が黒の画像を前景被写体シード画像とし、バックスクリーンシード画像の黒画素部分をインペイント処理によって埋めたバック滲み出し画像を作成してバックスクリーン色仮定画像とし、前景被写体シード画像の黒画素部分をインペイント処理によって埋めた前景滲み出し画像を作成して前景被写体色仮定画像とした上で、バックスクリーンマスク画像と被写体マスク画像とバックスクリーン色仮定画像と前景被写体色仮定画像とを用いて合成画像を作成することを特徴とするクロマキー処理における画像合成方法にかかるものである。
【0011】
前記クロマキー処理における画像合成方法においては、処理対象画像と同じ解像度の境界色補正用のパラメータを格納するための単チャンネル画像のメモリを用意し、境界色補正用単チャンネル画像の全ての画素について、バックスクリーン色仮定画像の該当画素の画素色と前景被写体色仮定画像の該当画素の画素色をベクトルスコープ座標系に変換し、ベクトルスコープ座標系の原点からバックスクリーン色仮定画像のベクトルスコープ座標系変換後の点に引いた直線と、ベクトルスコープ座標系の原点から前景被写体色仮定画像のベクトルスコープ座標系変換後の点に引いた直線との角度の余接=コタンジェントを求め、余接=コタンジェントを-1.0から2.0の範囲でクリッピングした値を計算して境界色補正用単チャンネル画像のメモリに格納し、これを前景被写体とバックスクリーンの色計算に用いて合成画像を作成する。
【0012】
前記クロマキー処理における画像合成方法においては、バックスクリーン色仮定画像の該当画素の画素色と処理対象画像の画素色をベクトルスコープ座標系に変換し、ベクトルスコープ座標系の原点からバックスクリーン色仮定画像のベクトルスコープ座標系変換後の点に引いた直線に、処理対象画像のベクトルスコープ座標系変換後の点から降ろした垂線の足と、ベクトルスコープ座標系の原点の距離を求めて前景色距離とし、ベクトルスコープ座標系の原点からバックスクリーン色仮定画像のベクトルスコープ座標系変換後の点に引いた直線に、処理対象画像のベクトルスコープ座標系変換後の点から降ろした垂線の距離を求め、この垂線の距離と境界色補正用単チャンネル画像の該当画素との積を求めて境界色補正距離とし、前景色距離から境界色補正距離を減算して補正済み前景色距離とし、ベクトルスコープ座標系の原点とバックスクリーン色仮定画像のベクトルスコープ座標系変換後の点との距離を求めてバックスクリーン色距離とし、補正済み前景色距離をバックスクリーン色距離で除算した結果を求めて0.0から1.0の範囲でクリッピングした値を前景透明度として、この前景透明度を前景被写体とバックスクリーンの色計算に用いて合成画像を作成する。
【0013】
前記クロマキー処理における画像合成方法においては、前景透明度画像の該当画素値が100%の箇所の出力画像の画素は背景画像の画素を出力し、前景透明度画像の該当画素値が0%の箇所の出力画素は処理対象画像の画素を出力し、前景透明度画像の該当画素値が100%より小さく0%より大きい箇所の出力画素は、背景画像の該当画素色のRGB各成分からバックスクリーン色仮定画像の該当画素色のRGB各成分を減算して三次元の置き換えベクトルとし、この置き換えベクトルの各成分に前景透明度を乗算したものをスケーリング済み置き換えベクトルとし、処理対象画像の該当画素の画素色の各成分にスケーリング済み置き換えベクトルの各成分を加算した画素色を出力画素として出力する。
【発明の効果】
【0014】
上記手段によれば、以下のような効果が得られる。クロマキー処理の対象となる処理対象画像内における前景被写体とバックスクリーンの境界部分の画素を、クロマキー合成のために色処理する目的において、画像内全ての画素について同一の色変換演算を適用するのではなく、近傍の対象被写体画素を用いたインペイント処理による滲み出し画像により算出された対象被写体の色と仮定される画素色と、近傍のバックスクリーン画素を用いたインペイント処理による滲み出し画像により算出されたバックスクリーンの色と仮定される画素色とを用いて、画面内の場所によって異なる色変換演算を適用することにより、単一の色情報からだけでは得られない境界部分画素の色の成り立ちの仮定、すなわちどんなバックスクリーン色とどんな前景被写体の色を混合したものかという仮定を用いて、それぞれの場所の前景透明度を計算することができ、この前景透明度を用いた半透明色処理を適用することで自然なクロマキー合成結果を得るという効果を得ることができる。
【図面の簡単な説明】
【0015】
図1】本発明の全体のブロック図である。
図2】初期マスク発生ブロックの内部ブロック図である。
図3】RGBからベクトルスコープ座標系へ変換を行う回転行列を示す図である。
図4】ベクトルスコープ座標系のデータ分布と色相ヒストグラムの例を示す図である。
図5】ベクトルスコープ回転行列の算出を示す図である。
図6】ベクトルスコープ回転行列による画像データの回転を示す図である。
図7】バックスクリーン色識別の方法を示す図である。
図8】各処理段階の結果画像の例を示す図である。
図9】インペイント処理器の処理の例を示す図である。
図10】境界色補正画像の画素単位の計算の内容を示す図である。
図11】前景透明度の計算の内容を示す図である。
図12】前景透明度の意味を示す図である。
図13】合成画像発生器の処理内容を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態を図示例と共に説明する。本発明を実施する装置に入力される画像信号は、
(a)グリーンまたはブルーのバックスクリーンの手前に前景被写体を配置して撮影した画像素材である「処理対象画像」と、
(b)最終的に合成後の背景にしたい「背景画像」とである。
直接処理対象とするのは各画素ごとにRGBのデジタルデータを持つ画像信号である。RGB以外の色空間でエンコードされている画像については事前にRGB色空間のデジタルデータに変換してから本発明の装置に入力する。入力された「処理対象画像」と「背景画像」は図1に示すブロック図の流れに沿って順次処理される。
【0017】
まず、処理対象画像のデータが初期マスク発生ブロック1に送られ、白黒の初期マスク画像を発生する。初期マスク発生ブロック1の内部動作は後述する。図8(a)は処理対象画像の例である。図8(b)は初期マスク画像の例である。
【0018】
次に白黒の初期マスクが一つはマスク縮退処理器3に送られ、白い部分が縮退し面積が小さくなって確実にバックスクリーン領域だけを含むマスクを発生する。このマスクの画像をバックスクリーンマスク画像と呼ぶ。白い部分が100%で黒い部分が0%の二値画像である。マスク縮退処理器3の内部動作は後述する。図8(c)はバックスクリーンマスク画像の例である。
【0019】
白黒の初期マスクはもう一つはマスク膨張処理器2に送られ、白い部分が膨張し面積が大きくなって黒い部分が確実に前景被写体だけを含むマスクを発生する。これを白黒反転器4で白黒反転させて、白い部分が確実に前景被写体だけを含むマスクにする。このマスクの画像を被写体マスク画像と呼ぶ。白い部分が100%で黒い部分が0%の二値画像である。図8(d)は被写体マスク画像の例である。
【0020】
バックスクリーンマスク画像と処理対象画像が画像乗算器5に入力され、各画素の積が計算され、マスク画像の白い部分に該当する画素が処理対象画像の画素となり、マスク画像の黒い部分に該当する画素が黒色の画素となる。バックスクリーンマスク画像は確実にバックスクリーン領域だけを含むマスクなので、この乗算の結果の画像は処理対象画像の中でバックスクリーンのみが見えていてバックスクリーンではない部分が黒となる画像となる。この画像をバックスクリーンシード画像と呼ぶ。画像乗算器5の内部動作は後述する。図8(e)はバックスクリーンシード画像の例である。
【0021】
一方、被写体マスク画像と処理対象画像も画像乗算器5に入力され、各画素の積が計算され、マスク画像の白い部分に該当する画素が処理対象画像の画素となり、マスク画像の黒い部分に該当する画素が黒色の画素となる。被写体マスク画像は確実に前景被写体だけを含むマスクなので、この乗算の結果の画像は処理対象画像の中で前景被写体のみが見えていて前景被写体ではない部分が黒の画像となる。この画像を前景被写体シード画像と呼ぶ。図8(f)は前景被写体シード画像の例である。
【0022】
次にバックスクリーンシード画像がインペイント処理器6に入力され、バックスクリーンの色が黒部分に滲み出した画像を作成する。この画像をバックスクリーン色仮定画像と呼ぶ。インペイント処理器6の内部動作は後述する。図8(g)はバックスクリーン色仮定画像の例である。
【0023】
同様に前景被写体シード画像もインペイント処理器6に入力され、前景被写体の色が黒部分に滲み出した画像を作成する。この画像を前景被写体色仮定画像と呼ぶ。インペイント処理器6の内部動作は後述する。図8(h)は前景被写体色仮定画像の例である。
【0024】
ここまでの処理で生成された四種類の画像がさらに後段に送られる。
(1)バックスクリーンマスク画像
(2)被写体マスク画像
(3)バックスクリーン色仮定画像
(4)前景被写体色仮定画像
以上の四種類の画像である。
【0025】
バックスクリーン色仮定画像と前景被写体色仮定画像が境界色補正画像発生器7に入力される。境界色補正画像は、処理対象画像内で完全なバックスクリーン部分でもなく完全な前景被写体部分でもない前景被写体とバックスクリーンの境界部分に対し、適切な色補正処理と合成処理を行うためのパラメータを保存する画像である。境界色補正画像は処理対象画像と同じ解像度を持つ単チャンネル画像で、一つの画素について一つのスカラー値を格納する。この境界色補正画像の各画素の値は、バックスクリーン色仮定画像と前景被写体色仮定画像の該当する画素の画素色から計算される。対象の画素が不透明だと仮定した場合の前景被写体の色が、ベクトルスコープ座標系で、バックスクリーンに対して色相角度としてどの程度離れているかを傾きの形で表している。境界色補正画像発生器7はこの境界色補正画像を作成する処理ブロックである。境界色補正画像発生器7の内部動作は後述する。図8(i)は境界色補正画像の例である。
【0026】
次に前記の境界色補正画像と、処理対象画像とバックスクリーン色仮定画像とバックスクリーンマスクと被写体マスクが前景透明度計算器に入力される。前景透明度画像は前景画像の各画素がどの程度バックスクリーン色に似ているかの割合を表す画像で、完全なバックスクリーンの部分では100%に、完全な前景被写体の部分では0%になる。また完全なバックスクリーン部分でもなく完全な前景被写体部分でもない前景被写体とバックスクリーンの境界部分では100%より小さく0%よりも大きい中間の割合となる。前景透明度計算器は入力画像からこの前景透明度画像を計算して作成する処理ブロックである。前景透明度計算器の内部動作は後述する。図8(j)は前景透明度画像の例である。
【0027】
前景透明度画像が得られたら、最後にこの前景透明度画像と処理対象画像とバックスクリーン色仮定画像と最終的に背景にしたい背景画像を合成画像発生器9に入力する。前景透明度が100%である完全なバックスクリーンの部分の画素は背景画像の該当画素を出力し、前景透明度が0%である完全な前景被写体の部分の画素は処理対象画像の該当画素を出力し、前景透明度が100%より小さく0%よりも大きい中間の割合の画素は、処理対象画像の該当画素の画素色とバックスクリーン色仮定画像の該当画素の画素色と背景画像の該当画素の画素色とを用いた三次元ベクトル演算により算出し、合成画像として出力する。合成画像発生器9はこの合成画像を得るための演算を行う処理ブロックである。合成画像発生器9の内部動作は後述する。図8(k)は背景画像の例である。図8(l)は合成画像の例である。
【0028】
初期マスク発生ブロック1の内部動作は以下の通りである。図2は初期マスク発生ブロック1の内部のブロック図である。入力される処理対象画像はベクトルスコープ座標系変換10のブロックに入力され、各画素のRGB画素色をベクトルスコープ座標系のXYに変換する。この変換は、8ビット画像を例にとると、(0、0、0)から(255、255、255)に伸びる直線が、Z軸の正方向に重なるように、原点(0、0、0)を固定して回転し、続いて(255、0、0)がXZ平面上にくるようにZ軸を中心に回転し、Z成分を無視してXY成分だけを取り出すことで実行できる。ただし、通常のベクトルスコープとは位相のオフセットが異なる。回転行列は図3で表される。グリーンスクリーンの処理対象画像をベクトルスコープ座標系に変換した結果をプロットした例を図4(左)に示す。
【0029】
次に変換されたベクトルスコープ座標系のXYデータは色相ヒストグラム作成11のブロックに入力される。このブロックでは、色相ヒストグラムを作成するため、各階級の度数を格納するヒストグラム表を用意する。色相角度3度ずつの120階級の配列を用意し、全要素をゼロリセットする。ベクトルスコープ座標系XYに変換された全画素について、逆正接を計算することで色相を表す角度を計算し、これを360度で表して120の階級を求め、画素ごとにヒストグラムの配列をカウントアップしていく。ヒストグラムをグラフ化した例を図4(右)に示す。
【0030】
色相ヒストグラムの全階級の度数データは最大度数階級検出12のブロックに入力される。各階級の度数を0から119まで順次調べ、そのうち最大の階級を取り出し、階級の番号を「色相ヒストグラム最大度数階級」として出力する。
【0031】
色相ヒストグラム最大度数階級のデータはコアバックカラー算出13のブロックに入力される。このブロックにはベクトルスコープ座標系変換後の処理対象画像のデータも入力される。処理対象画像の全画素の階級を一つずつ調べ、その階級が最大階級番号と等しい画素全てについてXY各要素の平均値を求める。この平均値をバックカラーと呼ぶ。これはベクトルスコープ座標系のデータである。
【0032】
バックカラーデータ(XY)はベクトルスコープ回転行列算出14のブロックに入力される。このブロックではベクトルスコープ座標系で求められたバックカラーが、マイナスX軸に乗るような二次元の回転行列を求める。バックカラーのベクトルスコープ座標系での座標が(Cx、Cy)だとすると、CxとCyから角度A(ーπからπ)を算出し、角度Aをπから減算することで必要な回転角度Bが得られる。なお角度AはCy/CxのアークタンジェントとCxの正負情報から計算することができる。図5(左図)のX印で示された箇所にバックカラー(Cx、Cy)が存在している様子を示している。回転角度Bによる二次元の回転行列Mを図5の右に示す。ベクトルスコープ回転行列算出14のブロックはこの回転行列Mを出力して、後段のベクトルスコープ回転変換15のブロックに入力される。さらにバックカラーデータ(XY)にこの回転行列を乗算して得られる回転後のバックカラーデータ(X’VY’V)も出力され、後段のマスク作成16ブロックに入力される。なお、回転後のバックカラーデータのY座標は0になる。
【0033】
回転行列を入力されたベクトルスコープ回転変換15のブロックには、ベクトルスコープ座標系の処理対象画像も入力される。処理対象画像(XY)の各画素がベクトルスコープ回転行列Mの乗算を通して(X’VY’V)に回転変換される。画像データが回転された様子を図6に示す。この回転変換の結果がベクトルスコープ座標系の処理対象画像(ベクトルスコープX’VY’V)として出力される。
【0034】
前記のバックカラーデータ(X’VY’V)と処理対象画像(ベクトルスコープX’VY’V)がマスク作成16ブロックに入力される。マスク作成の予備段階として、回転後のベクトルスコープ座標系(X’VY’V)において、バックスクリーン色であるかどうかを区別する境界直線を設定する。この境界直線はY座標の正と負で異なる傾きが45度およびー45度の直線である。ベクトルスコープ座標系原点と回転後のバックカラーデータを結ぶ線分の中点をノード点とする。二つの境界直線はいずれもノード点を通る。Y座標がゼロまたは正の領域では境界直線よりも下に存在する画素色がバックスクリーン色であるとみなされ、Y座標が負の領域では境界直線よりも上に存在する画素色がバックスクリーン色であるとみなされる。回転後のバックカラーデータの座標を(Cx’V、0)とすると、ノード点の座標は(Cx’V/2、0)である。二つの境界直線は、Y=ーX+Cx’V/2およびY=XーCx’V/2となる。ここでCx’Vは負の値である。上記のバックスクリーン色の識別の様子を図7に示す。
【0035】
処理対象画像と同じ解像度の初期マスク画像を格納するための単チャンネル画像のメモリを用意し、回転変換済みのベクトルスコープ座標系の処理対象画像(X’VY’V)の各画素について、Y座標が0以上なおかつY<ーX+Cx’V/2を満足する画素と、Y座標が負なおかつY>XーCx’V/2を満足する画素については、初期マスク画像該当画素を100%白色にセットし、それ以外の画素については、初期マスク画像該当画素を0%黒にセットすることで初期マスク画像が得られる。図8(b)が初期マスク画像の例である。
【0036】
マスク縮退処理器3の内部動作は以下の通りである。マスク縮退処理器3には白黒二値画像の初期マスク画像が入力される。初期マスク画像と同じ解像度の縮退済みマスク画像を格納するための単チャンネル画像のメモリを用意し、初期マスク画像の各画素について、注目画素を中心とする近傍9x9画素の初期マスク画像を調べ、全てが100%白色の画素の場合には縮退済みマスク画像の該当画素を100%白色に、それ以外の場合すなわち一つでも0%黒色の画像があったら縮退済みマスク画像の該当画素を0%黒色にセットする。上記の動作により得られた縮退済みマスク画像をバックスクリーンマスクと呼び、後段の画像乗算器5に出力する。図8(c)がバックスクリーンマスク画像の例である。
【0037】
マスク膨張処理器2の内部動作は以下の通りである。マスク膨張処理器2には白黒二値画像の初期マスク画像が入力される。初期マスク画像と同じ解像度の膨張済みマスク画像を格納するための単チャンネル画像のメモリを用意し、初期マスク画像の各画素について、注目画素を中心とする近傍9x9画素の初期マスク画像を調べ、全てが0%黒色の画素の場合には膨張済みマスク画像の該当画素を0%黒色に、それ以外の場合すなわち一つでも100%白色の画像があったら膨張済みマスク画像の該当画素を100%白色にセットする。上記の動作により得られた膨張済みマスク画像を白黒反転器4で白黒反転させる。すなわち0%黒色の画素を100%白色に、100%白色の画素を0%黒色にする。この膨張済みマスク画像を白黒反転させた結果の画像を被写体マスクと呼び、後段の画像乗算器5に出力する。図8(d)が被写体マスク画像の例である。
【0038】
画像乗算器5の内部動作は以下の通りである。画像乗算器5には処理対象画像と白黒二値画像のマスクが入力される。処理対象画像と同じ解像度の、バックスクリーンシード画像および前景被写体シード画像を格納するための3チャンネルカラー画像の出力画像メモリを用意し、処理対象画像の各画素について、マスク画像の該当画素が100%白色の場合は、出力画像の該当画素に処理対象画像の画素をセットし、マスク画像の該当画素が0%黒色の場合は、出力画像の該当画素に3チャンネルとも0%の黒色をセットする。バックスクリーンシード画像を出力する画像乗算器5の場合はバックスクリーンマスクがぞうと処理対象画像で前記の処理を行い、前景被写体シード画像を出力する画像乗算器5の場合は被写体マスク画像と処理対象画像で前記の処理を行なう。これらの出力画像が後段のインペイント処理器6に出力される。図8(e)はバックスクリーンシード画像の例である。図8(f)は前景被写体シード画像の例である。
【0039】
インペイント処理器6の内部動作は以下の通りである。インペイント処理器6は二系統独立で処理を行う。一系統はバックスクリーンシード画像を入力し、バックスクリーン色仮定画像を出力する。もう一系統は前景被写体シード画像を入力し、前景被写体仮定画像を出力する。いずれの入力画像も、一部は処理対象画像の画素で残りは0%黒色になっている。インペイント処理器6では0%黒色の部分を後述のような規則で埋めていく処理を行う。処理対象画像の画素と0%黒色の境界の部分から一画素ずつ埋めていく操作を繰り返して実施する。図9(a)は境界処理の繰り返しの様子を示している。
【0040】
まず入力画像と同じ解像度の、処理状態フラグを格納するための単一チャンネル画像のメモリを用意し、入力画像の各画素について、その画素が処理対象画像の画素であれば処理状態フラグを既知画素を示す0をセットし、その画素が0%黒色の画素であれば処理状態フラグを未処理画素を示す2をセットする。
【0041】
次に以下のような手順で1画素幅境界をマークする。処理状態フラグ画像の各画素について、処理状態フラグ画像の該当箇所の画素が既知画素の0の場合何もしない。処理状態フラグ画像の該当箇所の画素が未処理画素の2の場合は、処理状態フラグ画像の該当画素の3x3近傍の画素を調べて既知画像がない場合何もせず、一つでも既知画素の0がある時は、処理状態フラグの該当画素に境界画素を示す1をセットする。
【0042】
次に、処理状態フラグが境界画素(1)にセットされている画素について以下の処理を行う。注目画素の3x3近傍の画素を調べて、処理状態フラグが既知(0)にセットされている画素についてのシード画像の該当画素の加重平均を計算する。加重平均の係数は、上下左右の画素については0.6、斜め4画素については0.4である。図9(b)は加重平均の係数の配置を示している。3x3近傍画素のうち注目画素を除く8画素について、処理状態フラグが既知(0)の画素に関して、シード画像の該当画素の画素色のRGB各成分の輝度と、該当箇所の加重平均係数を乗算し、加算する。これを乗算合計として保存する。一方、平均結果を正規化するため、3x3近傍画素のうち注目画素を除く8画素について、処理状態フラグが既知(0)の画素に関して、該当箇所の加重平均係数を加算する。これを係数合計として保存する。RGB各成分の乗算合計それぞれを係数合計で除算したものをシード画像の該当画素部分に代入する。図9(c)は加重平均計算の例を示している。
【0043】
上記のようなインペイント処理により、バックスクリーンシード画像からはバックスクリーンの色が黒部分に滲み出したバックスクリーン色仮定画像が作成され、前景被写体シード画像からは前景被写体の色が黒部分に滲み出した前景被写体色仮定画像が作成される。図8(g)はバックスクリーン色仮定画像の例である。図8(h)は前景被写体色仮定画像の例である。
【0044】
境界色補正画像発生器7の内部動作は以下の通りである。境界色補正画像発生器7には前景被写体色仮定画像とバックスクリーン色仮定画像とが入力される。入力画像と同じ解像度の、境界色補正画像を格納するための単一チャンネル画像のメモリを用意する。前景被写体色仮定画像の各画素のデータと、その位置に該当するバックスクリーン色仮定画像の画素のデータを、それぞれベクトルスコープ座標系に変換する。この二つの画素色データに、ベクトルスコープ座標系の原点から引いた二つの直線の角度のコタンジェントを求める。コタンジェントの求め方は以下の通りである。図10は計算の内容を図示したものである。
【0045】
ある1画素を処理している時、ベクトルスコープ座標系に変換後の前景被写体色仮定画像のデータを(Sx、Sy)とし、ベクトルスコープ座標系に変換後のバックスクリーン色仮定画像のデータを(Tx、Ty)とすると、原点を始点とし各データを終点とするベクトルも(Sx、Sy)と(Tx、Ty)である。この二つのベクトルの内積をとってそれぞれのベクトルの長さの積で除算すると、二つのベクトルの角度φのコサインが求められる。ベクトル(Sx、Sy)の長さを計算し、これに二つのベクトルの角度のコサインを乗算し結果をqとする。また、ベクトル(Sx、Sy)の長さの2乗からqの2乗を引いた結果の平方根をrとする。q/rを計算することでコタンジェントが得られる。コタンジェントの値は-1から2の範囲でクリッピングされる。この計算結果を境界色補正画像のメモリの該当画素に格納する。図10はこの計算の内容を図示したものである。コタンジェントを求める数式も示す。境界色補正画像の値は-1から2の範囲である。メモリに保存する際にこの値に2を加算し、4で除算して0-1の範囲に写像し、これを8ビット処理の場合0-255に、16ビット処理の場合0-65535にスケーリングして保持する。全ての画素を処理して境界色補正画像のメモリにセットした結果が境界色補正画像で、後段の前景透明度計算機に出力される。図8(i)は境界色補正画像の例である。
【0046】
前景透明度計算器の内部動作は以下の通りである。前景透明度計算器にはバックスクリーン色仮定画像と処理対象画像と境界色補正画像とが入力される。入力画像と同じ解像度の、前景透明度画像を格納するための単一チャンネル画像のメモリを用意する。
【0047】
まずバックスクリーン色仮定画像の該当画素の画素色と処理対象画像の画素色をベクトルスコープ座標系に変換し、ベクトルスコープ座標系の原点からバックスクリーン色仮定画像のベクトルスコープ座標系変換後の点に引いた直線に、処理対象画像のベクトルスコープ座標系変換後の点から降ろした垂線の足と、ベクトルスコープ座標系の原点の距離を求めて前景色距離を求め、さらに、ベクトルスコープ座標系の原点からバックスクリーン色仮定画像のベクトルスコープ座標系変換後の点に引いた直線に、処理対象画像のベクトルスコープ座標系変換後の点から降ろした垂線の距離を求める。垂線の距離に、境界色補正画像の該当画素の値を乗算して境界色補正距離を求め、前景色距離からこの境界色補正距離を減算して補正済み前景色距離を求める。一方、ベクトルスコープ座標系の原点とバックスクリーン色仮定画像のベクトルスコープ座標系変換後の点との距離を求めてバックスクリーン色距離とし、補正済み前景色距離をバックスクリーン色距離で除算することで前景透明度を求める。上記の各距離の求め方と透明度の計算方法は以下の通りである。図11はこの計算の内容を図示したものである。
【0048】
ある1画素を処理している時、ベクトルスコープ座標系に変換後の処理対象画像のデータを(Ux、Uy)とし、ベクトルスコープ座標系に変換後のバックスクリーン色仮定画像のデータを(Tx、Ty)とすると、原点を始点とし各データを終点とするベクトルも(Ux、Uy)と(Tx、Ty)である。この二つのベクトルの内積をとってそれぞれのベクトルの長さの積で除算すると、二つのベクトルの角度γのコサインが求められる。ベクトル(Ux、Uy)の長さを計算し、これに二つのベクトルの角度γのコサインを乗算し結果をuとする。これが求めようとしている前景色距離である。また、ベクトル(Ux、Uy)の長さの2乗からuの2乗を引いた結果の平方根vが、求めようとしている垂線の距離である。
【0049】
次に求められた垂線の距離vに境界色補正画像の該当画素の値pを乗算する。この結果は境界色補正距離と呼ばれる。距離をvとし、境界色補正画像の該当画素の値をpとし、境界色補正距離をwとすると、w=vpである。この式は、前記の境界色補正発生器で用いた角度φを用いて表すとw=v cot(φ)と等価の式である。
【0050】
次に、前景色距離uから境界色補正距離wを減算することで補正済み前景色距離kを求める。また、バックスクリーン色仮定画像のベクトル(Tx、Ty)の長さを求めバックスクリーン色距離mとする。前景色距離kをバックスクリーン距離mで除算したものが前景透明度aとなる。前景色距離がmより大きくなる場合はaが100%より大きくなる。このような場合はaを100%にクリッピングする。また前景色距離kが負の場合はaが0%より小さくなる。このような場合はaを0%にクリッピングする。
【0051】
前景透明度a=k/mは、前景被写体仮定色とバックスクリーン仮定色とベクトルスコープ座標系原点の三点からなる三角形に当てはめると、前景被写体仮定色とバックスクリーン仮定色を結ぶ線分を、処理対象前景の画素色がどのような割合で内分しているかを表している。すなわち処理対象前景が、バックスクリーン仮定色にどの程度近いか(100%の時バックスクリーン色に一致)、あるいは前景被写体仮定色からどの程度遠いか(0%の時前景被写体仮定色に一致)を表している。図12はk/mがどのように前景透明度として計算されているかを示している。前景透明度画像は合成画像発生器9に出力される。図8(j)は前景透明度画像の例である。像が入力される。入力画像と同じ解像度の、出力の合成結果画像を格納するための3チャンネルカラー画像の出力画像メモリを用意する。
【0052】
合成画像発生器9の内部動作は以下の通りである。合成画像発生器9にはバックスクリーン色仮定画像と処理対象画像と背景画像と前景透明度画像が入力される。入力画像と同じ解像度の、出力の合成結果画像を格納するための3チャンネルカラー画像の出力画像メモリを用意する。
【0053】
前景透明度画像の各画素について、前景透明度画像の画素値が0%の場合は処理対象画像の該当画素の画素色をそのまま合成結果画像の該当画素に出力する。前景透明度画像の画素値が100%の場合は背景画像の該当画素の画素色をそのまま合成結果画像の該当画素に出力する。前景透明度画像の画素値が0%より大きく100%より小さい場合は、以下のような処理を行う。
【0054】
合成結果画像の計算はRGB空間で行う。まず背景画像の該当画素の画素色をT=(Br、Bg、Bb)とし、バックスクリーン色仮定画像の該当画素の画素色をT=(Tr、Tg、Tb)とすると、始点をT、終点をBとするベクトルR=(Rr、Rg、Rb)=(Br-Tr、Bg-Tg、Bb-Tb)を求める。この三次元ベクトルRは、処理しようとしている処理対象画像の画素がバックスクリーンと同一の色の場合に、それを背景画像に変換するための置き換えベクトルであり、処理対象画像の画素色のRGB各成分にこのベクトルを加算することで、背景画像への置き換えの操作が行えるものである。
【0055】
置き換えベクトルRが求められたら、このベクトルのRGB各成分に前景透明度画像の該当画素の画素値を乗算する。透明度を表す前景透明度画像の該当画素の画素値をaとすると、乗算の結果得られるベクトルはaR=(aRr、aRg、aRb)であり、スケーリング済み置き換えベクトルと呼ぶ。
【0056】
次に、処理対象画像の該当画素の画素色Uの各成分(Ur、Ug、Ub)に、スケーリング済み置き換えベクトルaR(aRr、aRg、aRb)の各成分を加算した画素色が出力画素の画素色Fとなる。F=(Fr、Fg、Fb)=(Ur+aRr、Ug+aRg、Ub+aRb)である。
【0057】
図13は合成結果画像の計算の様子を図示したものである。図13(1)には前景透明度が50%の時の出力画素の計算方法を図示している。図13(2)には前景透明度が30%の時の出力画素の計算方法を図示している。図13(3)には、前景透明度が100%から徐々に0%近づいていく時の計算結果の変化を図示している。ただし、図13(3)は被写体の色と背景の色がそれぞれ一定である場合の図である。実際の映像では、画面上の位置が違えば被写体の色はたとえば肌と衣服の部分では異なり、また背景に写っている物体の違いにより背景の色も異なるので、UやBは変動する。図13(3)は、たとえば画面内の局所領域で背景も前景もほぼ均一色と見なされる場合の例である。
【符号の説明】
【0058】
1 初期マスク発生ブロック
2 マスク膨張処理器
3 マスク縮退処理器
4 白黒反転器
5 画像乗算器
6 インペイント処理器
7 境界色補正画像発生器
8 前景透明度計算器
9 合成画像発生器
10 ベクトルスコープ座標系変換
11 色相ヒストグラム作成
12 最大度数階級検出
13 コアバックカラー算出
14 ベクトルスコープ回転行列算出
15 ベクトルスコープ回転変換
16 マスク作成
【要約】
【課題】クロマキー処理を行う際、グリーンまたはブルーのバックスクリーン色の手前に前景被写体を配置して撮影した処理対象画像中で、前景被写体の頭髪や皮膚や衣服など多様な色の部分とバックスクリーンとの境界部分の違和感がない合成画像を自動的に生成する画像変換方法を提供する。
【解決手段】処理対象画像中で前景被写体の色とバックスクリーンの色が混じり合う被写体エッジの境界部分において、該当箇所の近傍の画素成分を用いてバックスクリーン色と前景被写体色を仮定し、その仮定した色と、該当箇所の処理対象画像の画素色とを用いて境界部分の画素の成分混合度合いを計算し、その成分混合度合いを用いて、境界部分の画素色のバックスクリーン色の成分を、合成すべき背景画像の色の成分に置き換える演算を行うことで、違和感がない境界部分を作成する。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13