(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-06
(45)【発行日】2024-12-16
(54)【発明の名称】画像処理装置、画像処理方法、およびプログラム
(51)【国際特許分類】
G06T 7/90 20170101AFI20241209BHJP
G06T 7/194 20170101ALI20241209BHJP
G06T 1/00 20060101ALI20241209BHJP
【FI】
G06T7/90 D
G06T7/194
G06T1/00 510
(21)【出願番号】P 2021006596
(22)【出願日】2021-01-19
【審査請求日】2024-01-05
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】武本 和樹
【審査官】高野 美帆子
(56)【参考文献】
【文献】特開2015-230695(JP,A)
【文献】特開2012-014558(JP,A)
【文献】特開2016-218905(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/90
G06T 7/194
G06T 1/00
(57)【特許請求の範囲】
【請求項1】
撮像装置で撮像された第1の画像における被写体と背景の色情報を取得する色情報取得手段と、
前記取得された前記被写体と背景の前記色情報を記憶する記憶手段と、
前記記憶手段に記憶された前記色情報を、3次元色空間上で膨張させる膨張手段と、
を有
し、
前記膨張手段が前記被写体と背景の前記色情報の少なくとも1つを3次元色空間の輝度方向および色味方向に膨張させる場合、前記輝度方向における膨張回数と前記色味方向の膨張回数とが異なることを特徴とする画像処理装置。
【請求項2】
撮像装置で撮像された第1の画像における被写体と背景の色情報を取得する色情報取得手段と、
前記取得された前記被写体と背景の前記色情報を記憶する記憶手段と、
前記記憶手段に記憶された前記色情報を、3次元色空間上で膨張させる膨張手段と、
を有し、
前記膨張手段は、前記被写体の色情報を3次元色空間で膨張させるときに、前記背景の色情報の3次元色空間における位置を参照して重複しないように前記膨張を制御することを特徴とする画像処理装置。
【請求項3】
前記記憶手段に記憶された前記色情報と前記膨張手段で前記膨張された色情報とに基づいて、前記撮像装置で撮像された第2の画像から前記被写体の領域を抽出する抽出手段を有することを特徴とする請求項1
または請求項2に記載の画像処理装置。
【請求項4】
前記抽出手段により前記抽出された被写体の領域を出力する出力手段を有することを特徴とする請求項
3に記載の画像処理装置。
【請求項5】
前記記憶手段は、前記色情報を、輝度情報と色味情報とに分けて保持する色情報テーブルを記憶することを特徴とする請求項1乃至請求項
4のいずれか1項に記載の画像処理装置。
【請求項6】
前記膨張手段は、前記被写体と背景の前記色情報の少なくとも1つを、3次元色空間の輝度方向に膨張させることを特徴とする請求項1乃至請求項
5のいずれか1項に記載の画像処理装置。
【請求項7】
前記膨張手段は、前記被写体と背景の前記色情報の少なくとも1つを、3次元色空間の色味方向に膨張させることを特徴とする請求項1乃至請求項
6のいずれか1項に記載の画像処理装置。
【請求項8】
前記膨張手段は、ユーザが入力した膨張回数、又は、予め設定された膨張回数に基づいて、前記膨張を制御することを特徴とする請求項1乃至請求項7のいずれか1項に記載の画像処理装置。
【請求項9】
前記膨張手段が前記被写体と背景の前記色情報の少なくとも1つを3次元色空間の輝度方向および色味方向に膨張させる場合、前記輝度方向における膨張回数を前記色味方向の膨張回数よりも多くすることを特徴とする請求項
1に記載の画像処理装置。
【請求項10】
前記膨張手段が前記被写体と背景の前記色情報の少なくとも1つを3次元色空間の輝度方向および色味方向に膨張させる場合、前記色味方向における膨張回数を前記輝度方向の膨張回数よりも多くすることを特徴とする請求項
1に記載の画像処理装置。
【請求項11】
前記撮像装置から前記被写体までの距離情報を取得する距離情報取得手段を有し、
前記記憶手段は、前記距離情報が規定の範囲内である場合に前記色情報を記憶することを特徴とする請求項1乃至請求項1
0のいずれか1項に記載の画像処理装置。
【請求項12】
撮像装置で撮像された第1の画像における被写体と背景の色情報を取得する色情報取得工程と、
前記取得された前記被写体と背景の前記色情報を記憶する記憶工程と、
前記記憶工程にて記憶された前記色情報を、3次元色空間上で膨張させる膨張工程と、
を有
し、
前記膨張工程で前記被写体と背景の前記色情報の少なくとも1つを3次元色空間の輝度方向および色味方向に膨張させる場合、前記輝度方向における膨張回数と前記色味方向の膨張回数とが異なることを特徴とする画像処理方法。
【請求項13】
撮像装置で撮像された第1の画像における被写体と背景の色情報を取得する色情報取得工程と、
前記取得された前記被写体と背景の前記色情報を記憶する記憶工程と、
前記記憶工程で記憶された前記色情報を、3次元色空間上で膨張させる膨張工程と、
を有し、
前記膨張工程では、前記被写体の色情報を3次元色空間で膨張させるときに、前記背景の色情報の3次元色空間における位置を参照して重複しないように前記膨張を制御することを特徴とする画像処理方法。
【請求項14】
請求項1
2または請求項13に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像された画像の処理技術に関する。
【背景技術】
【0002】
近年、現実空間に仮想空間の情報をリアルタイムに重ね合せて利用者に提示する複合現実感に関する研究が行われている。複合現実感を実現する情報処理装置は、撮像装置の位置姿勢に応じた仮想空間の画像をコンピュータグラフィクス(CG)により生成し、そのCG画像に、撮像装置で現実空間を撮像した画像の全域又は一部を重畳した合成画像を生成して表示する。複合現実感によって臨場感豊かな体験をユーザに提供する場合、背景となる現実空間の映像上に単純にCG画像を重畳表示するだけではなく、CGで描画された仮想物体をユーザが仮想的に操作するといった、インタラクションが重要である。このようなインタラクションを実現するためには、仮想物体を操作するユーザの手など(以下、被写体と呼ぶ)を、その仮想物体よりも手前側(前景側)に表示する必要がある。なぜなら、仮想物体よりも手前にあるべき被写体が仮想物体によって隠されてしまうと、仮想物体との距離感や現実感が破綻し、臨場感が損なわれてしまうからである。
【0003】
これに対し、特許文献1には、前景とすべき被写体の画像をCG画像によって隠さないようにする技術が開示されている。特許文献1では、カメラ画像において背景から被写体領域を分離して抽出し、被写体領域にはCG画像の描画を禁止することを実現している。被写体の分離には、事前に被写体の色情報を登録しておき、カメラ画像の色に応じて被写体か背景かを判別する処理が用いられている。
また、特許文献2には、より簡便な操作で、被写体領域の登録、および、被写体ではないのに被写体領域として誤って検出される誤検出領域(ノイズ領域と呼ぶ)の削除をサポートするユーザインターフェースが開示されている。
なお、事前に登録した色を抽出することで被写体領域を特定する手法の他に、デプスセンサで得られた奥行き画像に対し、奥行き値の閾値を設定することで、前景となる被写体領域を抽出する手法もある。ただしこの手法の場合、カメラとは別のデプスセンサを配置して同時に撮影する必要があり、デバイスのコスト面やセンサ校正の手間などがデメリットとなっている。
また、特許文献3には、特許文献2の「被写体領域」と「ノイズ(背景)領域」を同時に指定できるユーザインターフェースを提供して、短時間に被写体の領域を抽出する処理が開示されている。
その他、特許文献4には、被写体と背景の色情報を色情報テーブルとして保持し、被写体と背景の色情報が重複する領域を自動で弁別する方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2005-107967号公報
【文献】特開2005-228140号公報
【文献】特開2015-230695号公報
【文献】特開2011-018359号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の手法では、被写体の色と背景の色が近い場合や、背景に白い領域や黒い領域(無彩色に近い領域)が存在する場合に、背景領域であるのに被写体領域として抽出される領域(誤検出領域)が残る場合がある。また、被写体領域であるのに、被写体領域として抽出されない領域(未検出領域)が残る場合がある。この場合、特許文献2に示されているユーザインターフェースを使用すれば、ユーザが誤検出領域と未検出領域を解消することができる。しかし、被写体の未検出領域がなくなるまで色情報を登録すると背景側に誤検出領域が発生することがあり、また背景側の誤検出領域を除外しようとすると、被写体側の未検出領域が増加してしまうことがある。このため、誤検出領域と未検出領域が最小になるように、色情報を試行錯誤しながら繰り返し調整することが必要になり、調整に時間を要することになる。
【0006】
また特許文献3では、被写体と背景の色情報を同時に入力するためのユーザインターフェースを提供することで、より短時間に被写体を抽出できる。ただし、特許文献3の手法は、ユーザの調整操作を介入させないことで高速化することが主目的であるため、ノイズが発生した場合のユーザの調整は許容されていない。
【0007】
そこで本発明は、撮像画像から特定の被写体領域を高い精度で抽出可能となる色情報を、ユーザにかかる負担が少なく、短時間に取得可能にすることを目的とする。
【課題を解決するための手段】
【0008】
本発明の画像処理装置は、撮像装置で撮像された第1の画像における被写体と背景の色情報を取得する色情報取得手段と、前記取得された前記被写体と背景の前記色情報を記憶する記憶手段と、前記記憶手段に記憶された前記色情報を、3次元色空間上で膨張させる膨張手段と、を有し、前記膨張手段が前記被写体と背景の前記色情報の少なくとも1つを3次元色空間の輝度方向および色味方向に膨張させる場合、前記輝度方向における膨張回数と前記色味方向の膨張回数とが異なることを特徴とする。
【発明の効果】
【0009】
本発明によれば、撮像画像から特定の被写体領域を高い精度で抽出可能となる色情報を、ユーザにかかる負担が少なく、短時間に取得可能となる。
【図面の簡単な説明】
【0010】
【
図1】第1の実施形態に係る画像処理装置の構成例を示す図である。
【
図2】未検出領域と誤検出領域の説明に用いる図である。
【
図3】輝度方向への膨張と被写体として抽出される領域とを示す図である。
【
図6】画像処理装置による色情報登録および膨張処理のフローチャートである。
【
図7】背景色を膨張させる処理の説明に用いる図である。
【
図8】膨張処理の詳細を示すフローチャートである。
【
図9】膨張処理時の3次元色空間の説明に用いる図である。
【
図10】3次元色空間における膨張の方向を表す図である。
【
図11】膨張処理における膨張後の属性を決定する条件を示す図である。
【
図12】第2の実施形態に係る画像処理装置の構成例を示す図である。
【
図13】奥行き情報を基にユーザの誤入力を補正する処理の説明図である。
【
図14】画像処理装置が適用されるハードウェア構成例を示す図である。
【発明を実施するための形態】
【0011】
以下、実施形態を、添付の図面に基づいて詳細に説明する。以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。なお同一の構成または処理については、同じ参照符号を付して説明する。
<第1の実施形態>
本実施形態では、現実空間に仮想空間の情報をリアルタイムに重ね合せてユーザに複合現実感を提供する場合を例に挙げて説明する。このため本実施形態に係る画像処理装置は、撮像装置の位置姿勢に応じた仮想空間の画像をCGにより生成し、そのCG画像に、撮像装置で現実空間を撮像した画像の全域又は一部を重畳した合成画像を生成する複合現実感生成処理機能を有しているものとする。また本実施形態の画像処理装置は、背景となる現実空間の映像上にCG画像を重畳表示するだけではなく、CGで描画された仮想物体をユーザが仮想的に操作するといった、インタラクションを実現する機能も備えているとする。なお現実の画像を仮想空間のCG画像に重畳して合成画像を生成する処理技術は既存のものであるため、その構成の図示および詳細な説明は省略する。
【0012】
図1は、本実施形態に係る画像処理装置100の構成例を示すブロック図である。
図1に示すように、画像処理装置100には、撮像部101、入力部150、および表示部270が接続されている。
撮像部101は、カラー画像を撮像可能なビデオカメラであり、被写体等を撮像することにより、被写体を含む画像を取得する。例えばビデオシースルー型のヘッドマウントディスプレイへの適用例を想定した場合、撮像部101は、ユーザの左右両眼の視野に応じたステレオ画像を取得可能なステレオカメラであるとする。なお、ステレオカメラの場合は、処理対象の画像は左右カメラの二つの画像となるが、時分割で1画像ずつ順番に処理するものとする。ただしステレオカメラに限定されるものではなく、単眼のカメラであっても本実施形態は適用可能である。
【0013】
入力部150は、画像処理装置100に対してユーザが指示等の操作を入力する際に用いられる操作装置を含み、本実施形態では操作装置の一例としてマウスが用いられるとする。詳細は後述するが、本実施形態の場合、入力部150は、被写体と背景の色情報をユーザが指定する際や、被写体の抽出処理を調整する際等に操作される。
【0014】
表示部270はユーザが観る映像を表示する表示装置を含み、本実施形態の場合、表示装置は例えば頭部装着型のヘッドマウントディスプレイであるとする。なお、表示部270の表示装置は、据え置き型等の大型のモニターであってもよい。複合現実感を提供する場合、表示部270では、被写体等を抽出した結果を実写画像と合成した結果の合成映像を表示してユーザにフィードバックを行うことで、CGで描画された仮想物体をユーザが仮想的に操作するといったインタラクションが実現される。また詳細は後述するが、表示部270には、撮像部101の撮像画像において被写体の領域や被写体以外の他の背景等の領域上でノイズとなり得る領域を、ユーザが入力部150を介して指定等する際のユーザインターフェース画像が表示される。つまりユーザは、表示部270の表示結果を見ながら、被写体の領域や被写体以外の背景領域等でノイズとなり得る領域を、入力部150を介して指定することができる。
【0015】
ここで、本実施形態に係る画像処理装置100の内部構成の詳細について説明する前に、複合現実感およびインタラクションを実現する際に考慮すべき点について、
図2(a)~
図2(j)および
図3(a)、
図3(b)を参照しながら説明する。ここでは、説明を簡略にするために、撮像部101から入力される撮像画像が静止画である場合を例に挙げる。また以下の説明では、撮像画像において背景から被写体領域を分離して抽出し、その被写体上にはCG画像の描画を禁止する場合を例に挙げる。また以下の説明では、被写体領域を分離する手法としては、事前に被写体の色情報を登録しておき、撮像画像の色に応じて被写体領域か背景かを判別する手法を例に挙げる。
【0016】
図2(a)は、撮像画像に写る被写体の色を登録する場合の一例を示した図であり、画像内の被写体例として手510を挙げ、その手510の色を登録する際の様子を模式的に示した図である。なお撮像画像が表示された映像500には、被写体である手510以外に、手の色に近い色(例えば黄色とする)の箱520も同時に写っているものとする。
被写体の色を登録する場合、ユーザは、ユーザインターフェース画面に提示されている映像500を見ながら、入力装置であるマウスを操作してマウスカーソルを動かす。
図2(a)の例の場合、ユーザは、撮像画像上の手510の領域であることを認識して、マウスカーソルを位置530から位置540にドラッグして動かすことで領域550を指定する。これにより、カーソルの移動により指定された領域550の中に含まれる画像の輝度および色味情報が取得される。輝度および色味情報は、例えばYCbCr空間にマッピングされ、
図2(c)の3次元登録色領域560を形成する。前述した特許文献1および特許文献2に記載されているように、照明条件の相違等による色彩変化の影響を排除するために、3次元登録色領域560をCbCr空間に投影した登録色領域570を使用することで、撮像画像から色が抽出される。
【0017】
図2(b)は、
図2(c)の登録色領域570を用いて撮像画像から被写体の色と推定される領域を抽出した結果を示した図である。
図2(b)の例の場合、抽出した結果を表す映像500には、手510の内部で抽出できていない未検出領域552と、背景領域から誤って抽出された誤検出領域555、557が表示されている。ここで、未検出領域と誤検出領域は、被写体領域を抽出する際のノイズ領域であるため、除外する必要がある。このため、ユーザは、表示されている映像500上でマウスを使ってノイズを除外するための操作を行う。
【0018】
図2(d)は、ノイズの除外を指定している際の様子を模式的に示した図である。ユーザは、まず誤検出領域557の領域(箱520の暗い領域)をノイズとして除外するために、マウスカーソルを位置530から位置540にドラッグして移動させることで領域550を指定する。これにより、指定された領域550内の撮像画像上の輝度と色味が取得され、それらが非登録色の情報として登録される。
【0019】
図2(e)は、非登録色が設定された後の色空間(YCbCr空間)の状態を示した図であり、YCbCr空間の領域565が非登録色領域として設定される。そして、非登録色領域565は、CbCr平面に投影される(領域575)。ここで、予め登録色として設定された登録色領域570と重複する領域については、非登録色領域575が優先されるものとする(重複領域がある場合、ユーザ指示で最も新しい領域が優先される)。このとき、登録色領域570は、非登録色領域575によって浸食され、被写体とみなす登録色が減少する。その結果、
図2(f)に示すように、手510の領域の未検出領域552が、
図2(d)の状態と比べて拡大する結果となる。ただし、誤検出領域557は、期待通り除外される。
【0020】
次にユーザは、黄色い箱520の明るい場所に出たノイズである誤検出領域555を除外するために、マウスカーソルの位置を
図2(f)に示す位置530から位置540までドラッグすることで領域550を指定する。これにより、指定された領域550内の撮像画像上の輝度と色が取得され、それが非登録色の情報として登録される。
【0021】
図2(g)は、非登録色が設定された後の色空間(YCbCr空間)の状態を示した図である。これにより新たに追加された非登録色領域567が設定され、同様に、CbCr空間に投影される(領域577)。このとき、前述同様に登録色領域570と非登録色領域577が重複する領域については、新たに設定された非登録色領域577が優先され、
図2(h)に示すように手510の明るい領域部分553に未検出領域のノイズが発生する。ただし、誤検出領域555は期待通り除外される。
【0022】
次にユーザは、手510の未検出領域552を検出できる状態にするために、未検出となった領域552および553の色を指定して登録させる。
図2(i)は、追加で設定した登録色領域の色空間(YCbCr空間)の状態を示した図である。前の状態である
図2(g)の登録色領域560に比べて、
図2(i)の登録色領域560は大きくなっている。さらに登録色領域560がCbCr空間に投影され、投影後の登録色領域570となる。登録色領域570は、非登録色領域575、577と重複した領域がある場合は、登録色領域570として上書きされるため、
図2(j)に示すように誤検出領域555および誤検出領域557が再び現れる。
【0023】
前述のようにして登録色と非登録色を繰り返し設定しながら、誤検出領域と未検出領域が最小になるように調整し、誤検出領域と未検出領域が所定の閾値ピクセル以下になれば、ノイズ領域として除外され、期待した被写体領域の抽出ができることになる。しかしながら、このような設定と処理の場合、調整に長時間と多くの労力が必要となる。また前述の例では静止画を挙げたが、動画の場合はさらに時間と労力が必要となる。すなわち動画から複数のサンプル画像を取得し、前述の処理を繰り返して、動画のすべてのフレームで、誤検出領域と未検出領域が最小になるように調整する必要があり、さらに時間と労力が必要になる。
【0024】
また前述した特許文献2では、CbCr面(2次元色空間)への投影を行わず、YCbCr(3次元色空間)の情報を使って色を抽出することが行われ、CbCr面への投影を行わないため投影面での重複領域を判断する必要がない。しかしながら、動画のすべてのフレームで誤検出領域と未検出領域を抑制するためには、被写体が画像に映る可能性のあるすべての輝度情報と色味情報(YCbCr値)を事前に登録する必要がある。すなわち、CbCr値のみで色抽出する場合に比べて、より多くの画像の被写体の色情報を取得する必要があり、ユーザ操作に多くの時間を要することになる。
【0025】
例えば撮像画像の1枚に対して、ユーザからの指示を基に、
図2(a)に示したように被写体の一部の領域の色をYCbCr値で登録すると、抽出するための色情報が不足しており、未検出領域が残る場合がある。この現象を、
図3(a)と
図3(b)を用いて説明する。
図3(a)は、
図2(a)に示した領域の色をYCbCr値で登録する場合の3次元色空間上の登録色領域560と正解領域595との差を表す図である。この場合、
図3(a)の登録色領域560と正解領域595との差が未検出領域となり、
図3(b)に示すように、未検出領域552が残る。2次元色空間の色データから検出する場合は、輝度情報を参照せずに色味情報のみで検出がなされるため、明るい領域や暗い領域は、被写体の領域ではないのに、被写体の色であるとして誤検出される可能性がある。3次元色空間で検出を行うと、輝度情報も判別に用いられ、被写体から得られた輝度情報を使って検出することになるため、輝度情報に起因する誤検出が減少するメリットがある。しかし、取得する色の情報に、色味に加えて輝度が加わるため、未検出領域と誤検出領域を最小にするための入力データは、2次元色空間で検出する場合に比べて必要量が増加してしまう。
【0026】
そこで、本実施形態の画像処理装置100では、登録色領域560および非登録色領域565を3次元色空間上で輝度方向、色味方向に膨張させることで、調整に要する時間と手間を削減し、誤検出領域と未検出領域の発生を抑制した被写体抽出処理を実現する。
本実施形態の画像処理装置100は、
図1に示したように、記憶部110、色情報登録部120、抽出部140、膨張部130、および出力部115を有して構成されている。
【0027】
記憶部110は、画像処理装置100で決定した撮像画像上の被写体領域のデータ等を、保存したり別のプログラムに伝達したりするための一時記憶媒体であり、例えばメモリやハードディスクなどからなる。本実施形態の場合、記憶部110は、撮像部101から入力される撮像画像、被写体抽出に用いる色情報テーブル、抽出部140にて抽出された結果を示す抽出領域画像、属性付与条件表、輝度方向の膨張回数、色味方向の膨張回数等の各情報を記憶する。これら情報の詳細は後述する。なお本実施形態において、記憶部110は、これらのデータや情報のみを保持することに限定されるものではなく、処理に必要な他の情報をも保持することができる。
【0028】
図4は、色情報テーブルの例を示した図である。色情報テーブルには、輝度情報(Y)と色味情報(Cb,Cr)とを基準とするデータが格納される。例えば輝度情報(Y)には、0から255の8bitの情報がインデックスとして格納される。同様に、色味情報(Cb,Cr)は、それぞれが0から255の情報がインデックスとして格納される。色情報テーブルでは、YCbCr値が
図4に示すように並べられ、各YCbCr値に対して、属性情報、膨張情報が関連付けられている。属性情報は、例えば、「登録色」、「非登録色」、「なし」の情報となされ、それらが選択可能となされている。また、膨張情報には、例えば、膨張処理していない色の場合には「0」が格納され、膨張処理が行われて登録された色の場合には「1」が格納される。
【0029】
輝度方向の膨張回数と色味方向の膨張回数は、3次元色空間上における輝度方向と色味方向の膨張処理を行う回数を設定する情報である。膨張回数が多いほど、膨張する領域が増加する。本実施形態では、輝度方向の膨張回数、色味方向の膨張回数は、それぞれ1回が設定されているとする。
【0030】
色情報登録部120は、入力部150を介して、ユーザが撮像画像内の被写体や背景の領域を入力するためのモジュールである。本実施形態の場合、ユーザは、入力部150のマウスをドラッグ操作等して、撮像画像内で被写体または背景の領域を指定する。すなわち色情報登録部120は、撮像部101で撮像されて記憶部110に記憶された第1の画像からユーザにより指定された領域の色情報を取得する色情報取得機能と、その色情報を記憶部110の色情報テーブルに登録する色情報登録機能を有する。本実施形態では、色情報としてYCbCr空間の値を用いるとするが、YCbCr空間の表現を用いることに限定されるものではなく、色空間の表現方法(LabやHSVなど)であれば適用可能である。
【0031】
膨張部130は、記憶部110に記憶された被写体と背景の領域の色情報を読み出し、それら被写体と背景の色情報を、3次元色空間上で膨張させる処理を行う。本実施形態の場合、膨張部130は、記憶部110から色情報テーブルを取得し、YCbCr値の属性が「登録色」または「非登録色」になっているデータを参照し、YCbCrの3次元色空間において、注目する色領域を3次元色空間上で膨張させる処理を行う。3次元色空間で色情報を膨張処理することにより、
図3(a)で示したような登録色領域560の内部にある未検出領域610を減少させること、登録色領域560と正解領域595との隙間を減少させることができる。また、非登録色領域についても同様に、膨張部130は、3次元色空間上で膨張処理を行い、まだ取得できていない背景の色を推定して誤検出領域を減少させる。また膨張部130は、膨張処理によって膨張させることを決定したYCbCr値については、記憶部110の
図4の色情報テーブル内における属性の値を「なし」から「登録色」または「非登録色」に変更する。さらに膨張部130は、色情報テーブル内の膨張の値を「0」から「1」に変更して、膨張されて登録された色であることを記録する。これらの膨張処理の詳細については後述する。
【0032】
抽出部140は、第1の画像に含まれる被写体と背景の領域から取得された色情報と、前述の膨張部130で膨張させた色情報とに基づいて、撮像部101で撮影された第2の画像から被写体領域を抽出する。本実施形態の場合、抽出部140は、記憶部110の色情報テーブル内の属性が「登録色」になっているYCbCr値を参照し、記憶部110に記録されている撮像画像の各ピクセルの色が合致するピクセルを検出する。そして抽出部140は、その検出したピクセル領域を、被写体領域を表す「抽出領域画像」として記憶部110に出力する。
【0033】
出力部115は、抽出部140が抽出した被写体領域の画像を、表示部270に出力する。本実施形態の場合、出力部115は、記憶部110に保存された撮像画像の上に、抽出部140で生成した被写体領域に色を付けて合成した表示画像を生成し、表示部270に出力する。これにより、ユーザは、表示部270の表示を介して、被写体領域の抽出時に発生した過検出や未検出の状態を確認することができる。
【0034】
図5は、膨張部130の詳細な構成を示したブロック図である。膨張部130は、膨張制御部210、輝度膨張部220、および色味膨張部230を有する。
膨張制御部210は、記憶部110から取得した色情報テーブルの属性で「登録色」と「非登録色」が設定されているデータのYCbCr値を参照し、メモリ上の3次元色空間へマッピングする。マッピングの結果は、例えば
図3(a)のような3次元色空間の状態になるものとする。
図3(a)は、最初にユーザが入力部150経由で色情報登録部120によって色を登録した状態である。
【0035】
ここで、
図3(a)の状態で抽出部140により色抽出を実行したとすると、
図3(b)に示したように、抽出したい領域である手の全体が抽出されず、一部の領域が未検出領域として残ってしまう。これは、
図3(a)に示した正解領域595に対して、登録色領域560が小さくなっているためである。このため、膨張制御部210は、正解領域595に近づくように、登録色領域560を膨張させるための制御を実行する。
【0036】
まず膨張制御部210は、輝度(Y)方向への膨張を行うように輝度膨張部220を制御し、さらに色味(Cb,Cr)方向への膨張を行うように色味膨張部230を制御する。ただし本実施形態では、輝度方向と色味方向を独立して膨張させることに限定されるものではなく、輝度方向と色味方向を同時に膨張させてもよい。なお、
図3(a)に示す正解領域595は、処理の説明のために設定した領域であり、実際の処理では既知の情報ではない。
【0037】
輝度膨張部220は、膨張制御部210で3次元色空間にマッピングした色情報を参照し、登録色または非登録色を輝度方向に膨張させる。膨張が必要な理由は、例えば
図3(a)に示す未検出領域610の穴を、登録色または非登録色として補間して埋めるためである。この穴を埋めることが、
図3(b)で示すような未検出領域552の面積低減に寄与する。輝度膨張部220は、現在着目している色(YCbCr値)が膨張する条件に合致する場合には、着目している色のYCbCr値に対応する記憶部110の色情報テーブルの「属性」情報と「膨張」情報を更新する。この処理の詳細は後述する。
【0038】
色味膨張部230は、膨張制御部210で3次元色空間にマッピングした色情報を参照し、登録色または非登録色を色味方向に膨張させる。色味膨張部230は、現在着目している色(YCbCr値)が膨張する条件に合致する場合には、輝度膨張部220と同様に、記憶部110の色情報テーブルの「属性」情報と「膨張」情報を更新する。この処理の詳細は後述する。
【0039】
図6は、本実施形態の画像処理装置100における色情報登録および膨張処理の流れを示したフローチャートである。なお、
図6のフローチャートの処理は、撮像部101からの撮像画像が更新されるたびに繰り返し実行されるものとする。また本実施形態において、色情報を登録する処理は、ユーザが複合現実感を体験する前に行われ、ユーザが体験中に色を登録する必要はない。このように事前に被写体の色情報を登録する場合は、
図6のフローチャートのステップS110、ステップS140、ステップS145の処理を含めた処理が行われる。一方、ユーザが複合現実感を体験するときに色抽出のみを実行する場合は、ステップS110、ステップS140、ステップS145の処理をスキップして処理が実行される。
【0040】
ステップS100では、画像処理装置100は撮像部101から撮像画像を取得し、その撮像画像を記憶部110が保存する。なお記憶部110に保存される画像は、撮像部101からの撮像画像に限定されるものではなく、レンダリングされたCG画像が入力されて保存されても良い。
【0041】
次にステップS110では、色情報登録部120が、入力部150を介してユーザから画像選択の入力があるか否かを判定する。色情報登録部120は、ユーザからの入力があった場合にはステップS120に処理を移行し、一方、入力がなかった場合にはステップS100に処理を戻し、次のフレームの撮像画像を処理する。
【0042】
ステップS120に進むと、色情報登録部120は、ステップS110で選択された撮像画像上で、さらにユーザにより指定された領域550に含まれる色情報を取得して、記憶部110の色情報テーブルに登録する。領域550の指定は、例えば、
図2(a)に示したように、ユーザが入力部150のマウスカーソルを操作して、撮像画像上の領域を指定することにより行われる。なお本実施形態では、選択された撮像画像に対して、ユーザが個別に被写体や背景の領域を登録することに限定されるものではなく、撮像画像上で事前に固定された領域の色を、被写体の色として取得する場合でも適用可能である。また、被写体の領域を機械学習で予め学習した判別器により決定して、その領域の色情報を取得しても良い。
【0043】
次にステップS130では、抽出部140が、記憶部110の色情報テーブルに基づき、選択された撮像画像内における被写体の領域を抽出する。抽出処理では、色情報テーブルの「属性」が登録色に設定されているYCbCr値を参照して、被写体の領域を抽出することが行われる。すなわち、登録色は被写体の色情報であるため、登録色に基づいて抽出されるのは被写体の領域となる。
【0044】
次にステップS140では、膨張部130が、色情報テーブル内の属性情報が「登録色」に設定されている色情報に基づいて、登録色として膨張する色情報を決定する。処理の詳細については、後に
図8のフローチャートで説明する。例えば、色情報登録部120で
図3(a)に示す登録色領域560が色空間に登録されている場合、ステップS140の処理によって、
図3(e)に示す領域561のように登録色領域560が輝度方向、色味方向に膨張する。その結果、後に色抽出のみが実行される際のステップS130における色抽出結果は、
図3(b)から
図3(f)のようになり、未検出領域が減少する。
【0045】
次にステップS145では、膨張部130が、色情報テーブル内の属性情報が「非登録色」に設定されている色情報に基づいて、非登録色として膨張する色情報を決定する。処理の詳細については、後に
図8のフローチャートで説明する。ここでは、例えば
図7(a)に示す登録色領域560と膨張した登録色領域561と非登録色領域565とが登録されている場合を想定する。
図7(a)には、非登録色領域565内に穴の領域566があり、この穴の領域566が登録色領域になっている例を示している。この状態では、
図7(b)に示す通り、被写体領域の外側に誤検出領域(領域577)が発生する。このステップS145の処理によって、非登録色領域565を
図7(c)の領域599のように輝度方向・色味方向に膨張する。その結果、穴領域566が非登録色領域として埋められるため、後に色抽出のみが実行される際のステップS130の色抽出では、誤検出領域であった領域557が
図7(d)に示すように消えることになる。
【0046】
次にステップS150では、色情報登録部120が、入力部150からユーザの終了指示があるかどうかを判定し、終了指示がなければステップS100に処理を戻す。一方、終了指示があった場合、画像処理装置100は
図6のフローチャートの処理を終了する。
以上の説明は、主に被写体の色情報を登録する際の処理の流れであるが、ユーザが複合現実感を体験する際の色抽出のみが実行される場合には、前述したようにステップS110、ステップS140、ステップS145の処理がスキップされる。
【0047】
なお本実施形態は、ステップ140とステップS145で登録色と非登録色の膨張処理を分けて個別に処理しているが、これに限定されるものではなく、両方の膨張が同時に実施されてもよい。同時に膨張処理を実施する場合は、後述する輝度膨張部220および色味膨張部230で扱う3次元空間の色情報に登録色、非登録色を同時にマッピングして処理すればよい。
【0048】
図8は、膨張部130の処理の詳細を示すフローチャートである。
図6のステップS140とステップS145の処理が、
図8のフローチャートの処理に該当する。
ステップS300では、膨張制御部210が、記憶部110から読み出した色情報に基づいて、メモリ上の3次元色空間に色情報を登録する。
【0049】
図9は膨張処理を説明するための模式図である。
図9は、説明を簡略化するため、本来3次元であるYCbCr空間においてCb値を固定で切り出したときのYCr空間(2次元色空間)を表現している。また、簡略化のため、特定のY値、Cr値の所定範囲を切り出して表示している。
図9のブロック内の記号は、属性情報と膨張情報の組み合わせで決定される記号である。本実施形態では、各記号を以下のように定義する。
属性情報が「登録色」で膨張情報が「0」の場合は「P」
属性情報が「登録色」で膨張情報が「1」の場合は「Q」
属性情報が「非登録色」で膨張情報が「0」の場合は「N」
属性情報が「非登録色」で膨張情報が「1」の場合は「M」
【0050】
次にステップS310では、輝度膨張部220が、
図4に示した色情報テーブルのYCbCr値がすべて0の値である1番目の項目から、YCbCr値がすべて254となる最後の項目までを、順番に注目色として選択する。輝度膨張部220は、注目色が「登録色」または「非登録色」であった場合には処理をスキップし、次の色情報テーブルの色を注目色とする。また輝度膨張部220は、注目色の属性情報が「なし」の場合には注目色のYCbCr値をメモリ上の3次元色空間にマッピングしたときに、色味が同一で、輝度が±1となる隣接する色の属性情報を参照する。
【0051】
図10は、3次元色空間における膨張の方向を表した図であり、
図10に示す色空間において、例えば注目する色が注目色700の場合、輝度膨張部220は、色710の属性と色720の属性を参照する。輝度膨張部220は、予め記憶部110に登録されている
図11の属性付与条件表に基づいて、注目色700の属性を決定し、記憶部110の色情報テーブルの属性情報に記録する。
【0052】
次に、注目色700は膨張して登録された色であるため、輝度膨張部220は、記憶部110の色情報テーブルの膨張情報を「1」に置き換える。例えば、輝度が1つ高い色710の属性が「登録色」で、輝度が1つ低い色720の属性が「なし」であった場合、注目色700の属性値は、「登録色」となる。
図9(a)および
図9(b)は、最初に登録色の輝度膨張を行う場合の例を示している。最初に3次元色空間に登録されている登録色1110に対して、輝度方向に膨張した結果、
図9(b)のように記号Qで示す領域1130が登録色として登録される。
【0053】
ステップS315は、膨張制御部210が、輝度方向への膨張回数を記憶部110から取得し、規定の回数に達したかどうかを判定する。膨張制御部210は、輝度方向への膨張回数が規定回数に達していた場合にはステップS315に処理を移し、達していない場合にはステップS310に処理を移す。
【0054】
ステップS320では、色味膨張部230が、
図4に示した色情報テーブルのYCbCr値がすべて0の値である1番目の項目から、YCbCr値がすべて254となる最後の項目までを順番に注目色として選択する。色味膨張部230は、注目色が「登録色」又は「非登録色」である場合、注目色の属性情報が「なし」の場合に注目色のYCbCr値をメモリ上の3次元色空間にマッピングした際に輝度が同一で色味Cb及びCr方向±1となる隣接する色の属性情報を参照する。
【0055】
例えば
図10に示す色空間において、注目色が注目色700の場合、色味膨張部230は、色730、色740、色750、および色760の属性を参照する。色味膨張部230は、予め記憶部110に登録されている
図11の属性付与条件表に基づいて、注目色700の属性を決定し、記憶部110の色情報テーブルの属性に記録する。例えば、色730の属性が「登録色」、色740の属性が「なし」、色750の属性が「非登録色」、色760が「なし」であった場合、注目色700の属性値は、「なし」となる。
図9(c)は登録色の色味方向への膨張を行う場合の例を示している。
図9(b)の状態で色味方向に膨張処理を行うと、
図9(c)に示すように記号Qの領域1140が登録色として登録される。
【0056】
ステップS325では、膨張制御部210が、色味方向への膨張回数を記憶部110から取得し、規定の回数に達したかどうかを判定する。膨張制御部210は、色味方向へ膨張回数が規定回数に達していた場合には処理を終了し、一方、達していない場合にはステップS320に処理を移す。
【0057】
図9(d)は、膨張部130が、
図6のステップS145において、非登録色を膨張する場合に、最初に3次元色空間に非登録色1150をマッピングした時の模式図である。この場合は、ステップS310で輝度方向に膨張を行うが、
図11の属性付与条件表に基づいて処理した結果、表示されている領域では膨張が行われず、変更がない。これは、隣接するブロックに属性が登録色と非登録色が存在しているためである。
【0058】
一方で、ステップS320の色味方向への膨張処理では、
図9(e)に示す通り、ブロック1160に非登録色の属性が設定される。またブロック1170には、隣接するブロックに登録色の属性の色があるため膨張されない。
本実施形態では、以上の処理により、登録色と非登録色を独立して膨張させるのではなく、重複が発生するブロックに関しては意図的に膨張させないように制御する。すなわち膨張部130の膨張制御部210は、被写体の色情報を3次元色空間で膨張させるときに、背景の色情報の3次元色空間における位置を参照して重複しないように膨張を制御する。これにより、本実施形態によれば、抽出した被写体領域の誤検出領域557や未検出領域552を偏りなく減少させることができる。
【0059】
<変形例1>
前述したように第1の実施形態では、輝度方向と色味方向への膨張回数は1回のみとしていたが、膨張回数は1回に限定されることに限定されるものではなく、また輝度方向と色味方向への膨張回数は同一の回数に限定されるものではない。膨張回数は、予め設定されていても良いし、ユーザによって任意の回数に設定されてもよい。
【0060】
第1の実施形態の変形例1では、膨張回数を変更した場合について説明する。例えば、色味方向の膨張回数に2回が設定されている場合について説明する。なお、変形例1における画像処理装置100の構成は前述した構成と同様であるため、図示と説明は省略する。また、変形例1を実現する際の処理も、前述したフローチャートと同様である。但し、
図8に示したフローチャートのステップS315とステップS325の処理が前述の説明では1回であったが、変形例1のように膨張回数が2回に設定されている場合にはステップS310とステップS320の処理が2回行われる。
【0061】
変形例1における処理が行われた結果、膨張の状態は、
図9(f)に示すように、登録色1180の領域に示すように登録色の領域が膨張される。しかし、登録色と非登録色に隣接するブロック1190は膨張されない。
なお、輝度方向の膨張回数を色味方向の膨張回数よりも多くした場合は、膨張する幅が輝度方向に長くなる。特に被写体が明るい場所と暗い場所を行き来するようなシーンにおいては、輝度方向の膨張を多くするように調整することで、未検出領域を減少させることができる。
また、照明の色温度が異なる部屋を体験者が移動するようなシーンでは、色味方向の膨張回数を輝度方向に比べて多くするように調整することで、未検出領域を減少させることができる。
【0062】
<変形例2>
前述の例では、事前に膨張回数を記憶部110に格納して処理中は変更していない。膨張回数は処理中に固定された回数であることに限定されるものではなく、変形例2として、現在の撮像画像に対し、ユーザが表示部270で被写体の抽出結果を確認した後で、同じ画像に対して膨張回数を変更するように指示してもよい。
変形例2の処理を実現するためには、記憶部110に格納する膨張回数を、ユーザが入力部150を介して入力し、色情報登録部120経由で変更して同じ処理を実行すればよい。
【0063】
<第2の実施形態>
第1の実施形態では、被写体の色を登録するときに、色情報登録部120が、入力部150経由でユーザからの入力を取得している。ただし、ユーザからの入力が常に正しいとは限らないため、被写体領域ではない色を登録してしまう可能性がある。この場合、例えば背景の色であるのに被写体の色として登録色に登録されてしまい、抽出結果に誤検出領域が増える。さらに前述したような膨張処理を行うと、登録色が膨張されるため、誤検出領域の増大が助長されてしまう虞がある。
そこで、第2の実施形態では、ユーザの入力が誤った入力であったとしても、誤った領域を登録しないように自動的に防ぐ画像処理装置を説明する。
【0064】
図12は、第2の実施形態の画像処理装置100の構成例を示すブロック図である。第
図12の構成は、
図1に示した各構成に対し、さらに奥行き計測部1300と奥行判定部1310とが追加されている。
【0065】
奥行き計測部1300は、撮像部101から被写体等までの距離情報を取得する距離取得部である。本実施形態の場合、奥行き計測部1300は、撮像画像の各ピクセルに対して、撮像部101から被写体等までの距離を奥行き値として計測して割り当てる。第2の実施形態では、例えば、撮像部101がステレオカメラであることを想定して、既知のステレオマッチング処理で撮像画像上の奥行き値を計測するものとする。なおデプスセンサなど、別のデバイスを使用して奥行き情報が取得されても良い。
【0066】
奥行判定部1310は、奥行き計測部1300で得られた撮像画像上の奥行き値を参照し、所定の距離範囲内にある奥行き値のピクセル位置を特定する。奥行判定部1310は、撮像画像上で所定の範囲内にある奥行き値のピクセルには1、それ以外には0の値を登録して、適正距離にある領域の画像を生成する。そして、生成された適正距離の領域画像は、色情報登録部120に入力され、ユーザが誤入力しようとした被写体以外の領域を自動的に排除する。
【0067】
本実施形態の処理を実現するためには、
図6のステップS120において、ユーザが指定した被写体の領域が、奥行判定部1310で生成した適正距離の領域で1の値になっている領域の色情報のみを、記憶部110の色情報テーブルに記録すればよい。
【0068】
例えば、ユーザが誤って被写体と背景を同時に囲んでしまった場合、
図13(a)に示すような3次元色空間上の登録色領域560が生成される。登録色領域560の一部は、正解領域595から逸脱しており、この色情報テーブルを使用して被写体を抽出した場合は、
図13(b)のように誤検出領域555、557がノイズとして検出される。
奥行判定部1310で被写体が存在する確率が高いと判定される、撮像部101からの奥行方向の距離を、所定の距離範囲として入力すれば、
図13(c)のような適正距離の領域画像が得られる。第2の実施形態では、この情報を用いて色情報を登録することにより、
図13(d)に示すような領域に自動的に補正することができる。また第2の実施形態においても、その色情報を膨張することにより、未検出領域と誤検出領域が少ない被写体の抽出画像を得ることができる。
【0069】
図14は、前述した第1、第2の実施形態における画像処理装置100を適用可能な情報処理装置等のハードウェア構成例を示した図である。
図14に示した情報処理装置は、一般的なコンピュータ等により実現可能である。
CPU901は、装置全体を制御する。RAM907は、CPU901が各部を制御しながら処理を行う時に作業領域として用いられる。またCPU901は、表示部270を制御する表示制御部としても動作する。ROM902は、制御プログラム、各種アプリケーションプログラム、データなどを記憶する。CPU901がROM902に記憶する制御プログラムをRAM907に展開して実行することにより、
図1或いは
図12の画像処理装置100が実現される。I/F903は、情報処理装置の外部の装置との通信に用いられる。例えば、I/F903は、撮像部101が撮像した撮像画像の信号を、画像処理装置100で処理可能な形式にして取得する。なおI/F903は、情報処理装置が外部の装置と有線で接続される場合には通信用のケーブルがI/F903に接続される。また情報処理装置が外部の装置と無線通信する機能を有する場合にはI/F903はアンテナを備える。
【0070】
また情報処理装置は、CPUとは異なる1又は複数の専用のハードウェアを有していて、CPUによる処理の少なくとも一部を専用のハードウェアが実行しても良い。専用のハードウェアの例としては、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、およびDSP(デジタルシグナルプロセッサ)などがある。表示部270は、例えば液晶ディスプレイやLEDディスプレイ等で構成され、ユーザが情報処理装置を操作するためのGUI(グラフィカルユーザインタフェース)などを表示する。例えば、前述した被写体上の領域や背景上の領域をユーザが指定したり、膨張回数をユーザが指定したりする際などのGUIを挙げることができる。マウス908やキーボード909は、ユーザが操作する操作デバイスである。操作デバイスには、ジョイスティック、タッチパネル等が含まれてもよい。外部記憶装置906は、情報処理装置に接続された記憶装置である。記憶媒体ドライブ905は、情報処理装置にメモリカード等の記憶媒体が装着された際に記憶媒体を駆動するドライブ装置である。バス910は、情報処理装置の各部をつないで情報を伝達する。なお本実施形態の場合、情報処理装置と接続される外部の装置は、前述したような撮像部101の他、他の情報処理装置等も含まれる。またマウス908やキーボード909等は、情報処理装置の外部に別の装置として存在していても良い。
【0071】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0072】
100:画像処理装置、101:撮像部、110:記憶部、115:出力部、120:色情報登録部、130:膨張部、140:抽出部、210:膨張制御部、220:輝度膨張部、230:色味膨張部