特許第6249734号(P6249734)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ キヤノン株式会社の特許一覧

特許6249734画像処理装置、画像処理方法及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6249734
(24)【登録日】2017年12月1日
(45)【発行日】2017年12月20日
(54)【発明の名称】画像処理装置、画像処理方法及びプログラム
(51)【国際特許分類】
   G06T 11/80 20060101AFI20171211BHJP
   G06T 7/90 20170101ALI20171211BHJP
   G06T 19/00 20110101ALI20171211BHJP
【FI】
   G06T11/80 A
   G06T7/90 C
   G06T19/00 600
【請求項の数】14
【全頁数】20
(21)【出願番号】特願2013-240222(P2013-240222)
(22)【出願日】2013年11月20日
(65)【公開番号】特開2015-99562(P2015-99562A)
(43)【公開日】2015年5月28日
【審査請求日】2016年11月21日
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】山口 弘市
【審査官】 千葉 久博
(56)【参考文献】
【文献】 特開2013−219668(JP,A)
【文献】 特開2006−252108(JP,A)
【文献】 特開平10−98719(JP,A)
【文献】 特開平5−242143(JP,A)
【文献】 特表2002−520746(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 11/80
G06T 7/00−7/90
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
物体を含む画像を取得する取得手段と、
前記取得手段によって取得された画像を構成する複数のブロックから、前記物体の境界を含む境界ブロックを検出する検出手段と、
前記複数のブロックに対して、所定の色に変更する色の範囲をそれぞれ決定する決定手段と、
前記決定手段によって決定された色の範囲に属する画素を前記所定の色に変更する変更手段とを有し、
前記決定手段は、前記検出手段によって検出された境界ブロックに対して、それ以外のブロックよりも前記色の範囲を広くすることを特徴とする画像処理装置。
【請求項2】
前記検出手段は、クロマキー色とは異なる色の画素を含み、さらに周囲のブロックのうち少なくとも1つのブロックにおいてすべての画素がクロマキー色であるブロックを、境界ブロックとして検出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記検出手段は、検出した境界ブロックと隣接するブロックが境界ブロックであるか否かを判定しながら境界ブロックを検出することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記検出手段は、前記隣接するブロックが物体側のブロックであり、該隣接するブロックに隣接する少なくとも1つの画素がクロマキー色であるブロックを、境界ブロックと判定することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記取得手段は、非可逆圧縮方式で圧縮された画像を復号した画像を取得することを特徴とする請求項1〜4の何れか1項に記載の画像処理装置。
【請求項6】
前記複数のブロックは、圧縮処理を行うサイズの単位であることを特徴とする請求項1〜5の何れか1項に記載の画像処理装置。
【請求項7】
前記決定手段は、前記色の範囲をR、G、Bで同じ割合に決定することを特徴とする請求項1〜6の何れか1項に記載の画像処理装置。
【請求項8】
前記決定手段は、前記色の範囲をR、G、Bでそれぞれ異なる割合に決定することを特徴とする請求項1〜6の何れか1項に記載の画像処理装置。
【請求項9】
前記所定の色は、クロマキー色であることを特徴とする請求項1〜8の何れか1項に記載の画像処理装置。
【請求項10】
前記決定手段は、前記境界ブロックに欠陥を補間した画素が含まれている場合に、前記色の範囲を広く決定することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項11】
前記変更手段によって画素の色が変更された画像と、撮像画像とを合成する合成手段をさらに有することを特徴とする請求項1〜10の何れか1項に記載の画像処理装置。
【請求項12】
前記所定の色は、黒色であることを特徴とする請求項1〜8の何れか1項に記載の画像処理装置。
【請求項13】
物体を含む画像を取得する取得工程と、
前記取得工程において取得された画像を構成する複数のブロックから、前記物体の境界を含む境界ブロックを検出する検出工程と、
前記複数のブロックに対して、所定の色に変更する色の範囲をそれぞれ決定する決定工程と、
前記決定工程において決定された色の範囲に属する画素を前記所定の色に変更する変更工程とを有し、
前記決定工程においては、前記検出工程において検出された境界ブロックに対して、それ以外のブロックよりも前記色の範囲を広くすることを特徴とする画像処理方法。
【請求項14】
物体を含む画像を取得する取得工程と、
前記取得工程において取得された画像を構成する複数のブロックから、前記物体の境界を含む境界ブロックを検出する検出工程と、
前記複数のブロックに対して、所定の色に変更する色の範囲をそれぞれ決定する決定工程と、
前記決定工程において決定された色の範囲に属する画素を前記所定の色に変更する変更工程とをコンピュータに実行させ、
前記決定工程においては、前記検出工程において検出された境界ブロックに対して、それ以外のブロックよりも前記色の範囲を広くすることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、CG画像においてクロマキー色の範囲を設定するために用いて好適な画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、現実世界と仮想世界とをリアルタイムにシームレスに融合させる技術として複合現実感、いわゆるMR(Mixed Reality)技術が知られている。MR技術の1つに、ビデオシースルーHMD(Head Mounted Display)を利用した技術が知られている。この技術によれば、HMD使用者の瞳位置から観察される被写体と略一致する被写体をビデオカメラなどで撮像し、その撮像画像にCG(Computer Graphics)を重畳表示した画像をHMD使用者が観察することができる。
【0003】
図23は、HMD使用者がHMD2301を装着している時の様子を示す図であり、HMD使用者はHMD2301を用いてMR空間を体験することが可能となる。HMD2301は、カメラで撮影した映像からHMD2301の位置姿勢を計算し、この位置姿勢データをパーソナルコンピュータ(PC)などの外部装置に送信する。そして、外部装置からCG画像を受信し、受信したCG画像とカメラで撮影した映像とを重畳した映像を表示する。
【0004】
HMD2301を使用して自由に動きながらMR空間を体験するには、HMD2301とPCなどの外部装置との間は無線伝送で通信した方がよい。しかしながら、一般的に有線での通信と比べて無線での通信は伝送帯域が狭いため、無線伝送を行うためには通信データ量を削減する必要がある。PCなどの外部装置から受信するCG画像のデータ量は大きいため、無線伝送では圧縮率の高い非可逆圧縮で画像を圧縮(例えばJPEGで圧縮)して送受信を行う。
【0005】
しかしながら、非可逆圧縮で画像を圧縮すると、元画像に対して何らかの情報が失われた画像になってしまう。例えばJPEGで圧縮された画像は高周波成分が失われてしまうため、PCなどの外部装置から受信するCG画像のCGの個所と、クロマキー色の個所との境界部分の情報は失われてしまう。そのため、クロマキー色の1色のみを撮像画像に置き換える通常の方法では、きれいにクロマキー合成できない。
【0006】
図24は、CGの境界部分を説明するための図である。図24(a)には、CG2402が描かれており、一つの四角はJPEGの圧縮処理単位であるブロックを示している。また、図24(b)には、CG部とクロマキー部との境界を示しており。図24(b)のブロック2401はCG部とクロマキー部との境界となっており、JPEGで圧縮すると、高周波成分が失われる。このため、1色のみでクロマキー合成を行うと、このブロック2401では、きれいに撮影画像とCG画像とをクロマキー合成できず、重畳後の画像にはCGの外側に境界部分を中心としてクロマキー色に近い色が現れてしまう。このように物体領域を正確に区分けできないという問題点がある。
【0007】
この問題点を解決する方法として、例えば、クロマキー色が青色255の場合、青を200〜255でクロマキー合成し、クロマキー合成時にクロマキー色の範囲を広げることによって上記問題を解決することができる。ところが、CG画像一様にクロマキー範囲を広げてクロマキー合成を行うと、CGの内部にクロマキー色に近い色がある場合に誤ってクロマキー合成を行ってしまうことがある。そのため、本来はCGであるところを撮像画像に置き換えてしまう可能性がある。そこで、特許文献1には、画像データの画素単位に、この画素が透明か不透明かを識別する付加データとしてのマスクパターンを画像データと関連付け、画像データとは別データとして送信し、クロマキー合成を行う手法が開示されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平10−98719号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献1に記載の手法では、画像データとは別データを作成して送受信する必要があるため、このマスクパターンのデータが無線伝送で通信エラーになった場合に、再送を行う必要がある。MRシステムではリアルタイムで撮影画像とCG画像とを合成した画像を表示する必要があるため、なるべく低遅延で画像を表示することが望まれている。そのため、MRシステムでは不向きである。
【0010】
本発明は前述の問題点に鑑み、劣化した画像の情報から、物体領域を正確に区分けした画像を得ることができるようにすることを目的としている。
【課題を解決するための手段】
【0011】
本発明に係る画像処理装置は、物体を含む画像を取得する取得手段と、前記取得手段によって取得された画像を構成する複数のブロックから、前記物体の境界を含む境界ブロックを検出する検出手段と、前記複数のブロックに対して、所定の色に変更する色の範囲をそれぞれ決定する決定手段と、前記決定手段によって決定された色の範囲に属する画素を前記所定の色に変更する変更手段とを有し、前記決定手段は、前記検出手段によって検出された境界ブロックに対して、それ以外のブロックよりも前記色の範囲を広くすることを特徴とする。
【発明の効果】
【0012】
本発明によれば、劣化した画像の情報から、物体領域を正確に区分けした画像を得ることができる。これにより、クロマキー合成を行う場合には、きれいにかつ正確にクロマキー合成を行うことができる。
【図面の簡単な説明】
【0013】
図1】本発明の実施形態に係るMRシステムの構成例を示す図である。
図2】本発明の第1の実施形態に係るMRシステムの機能構成例を示すブロック図である。
図3】本発明の第1の実施形態に係る画像合成ユニットの詳細な構成例を示すブロック図である。
図4】境界ブロックを検出する単位及びブロックを構成する画素の一例を示す図である。
図5】境界ブロックの検出結果の一例を示す図である。
図6】クロマキー色決定部で決定するクロマキー色の範囲の一例を示す図である。
図7】本発明の第1の実施形態において、クロマキー合成する処理手順の一例を示すフローチャートである。
図8】より複雑な形状のCGを描いたCG画像の一例を示す図である。
図9】本発明の第2の実施形態に係る画像合成ユニットの詳細な構成例を示すブロック図である。
図10】画素単位で拡大した境界ブロックを示す図である。
図11】本発明の第2の実施形態において、クロマキー合成する処理手順の一例を示すフローチャートである。
図12図10のS1101において、CGの範囲外をクロマキー色に置き換える詳細な処理手順の一例を示すフローチャートである。
図13図10のS1102において、境界ブロックの隣接ブロックを判定する詳細な処理手順の一例を示すフローチャートである。
図14図10のS1103において、2次境界ブロックを検出する詳細な処理手順の一例を示すフローチャートである。
図15図13のS1304及び図14のS1404において、クロマキー色に置き換える詳細な処理手順の一例を示すフローチャートである。
図16】上下左右方向のブロックでクロマキー色に置き換える画素の位置を説明するための図である。
図17】本発明の第3の実施形態に係るMRシステムの機能構成例を示すブロック図である。
図18】補間画素の位置を説明するための図である。
図19】本発明の第3の実施形態において、クロマキー合成する処理手順の一例を示すフローチャートである。
図20】本発明の第4の実施形態に係る光学シースルーシステムの機能構成例を示すブロック図である。
図21】本発明の第4の実施形態に係る画像処理ユニットの詳細な構成例を示すブロック図である。
図22】本発明の第4の実施形態において、クロマキー色の画素を黒色に置き換える処理手順の一例を示すフローチャートである。
図23】HMD使用者がHMDを装着している時の様子を説明する図である。
図24】CGの境界部分を説明するための図である。
【発明を実施するための形態】
【0014】
(第1の実施形態)
以下、本発明の第1の実施形態について、図面を参照しながら説明する。
図1は、本実施形態に係るMRシステム100の構成例を示す図である。
図1において、MRシステム100は、ビデオシースルー型の頭部搭載型の表示装置(以下、HMD)101、コントローラ102、表示部103を有する画像処理装置104とから構成されている。なお、HMD101はビデオシースルー型に限らず、光学シースルー型であってもよい。
【0015】
HMD101は、使用者の頭部に装着され、詳細は後述するが、撮像部と、画像表示部と、それらを制御する制御部とを含んでいる。撮像部はビデオカメラ等で構成され、使用者の視点の位置姿勢とほぼ同じになる位置姿勢で取付けられており、使用者の観察している現実空間の画像を取得する。画像表示部は、現実空間画像に画像処理装置104で生成したCG画像を重畳した合成画像、撮影した現実空間を示す撮像画像、コントローラ102を介して供給される画像処理装置104からの出力画像などを表示する。また、HMD101は撮像部で撮影された撮像画像とCG画像とを合成する機能も有する。画像表示部は、使用者のそれぞれの眼の前に光学系を含む構成で取付けられている。
【0016】
HMD101は、WLAN(Wireless Local Area Network)やWPAN(Wireless Personal Area Network)のような、小規模ネットワークを構成する無線接続されたコントローラ102と通信する。なお、HMD101とコントローラ102と間の通信は、無線方式に限らず、有線通信方式を利用してもよい。
【0017】
コントローラ102及び有線接続された画像処理装置104は、CG画像の描画を行う画像処理部を有する。画像処理装置104はコントローラ102を介してHMD101と通信を行う。また、画像処理装置104は、キーボードなどを備え、データや、命令等を入力し、入力されたデータの表示や、命令の結果等は、表示部103に表示される。
【0018】
なお、図1に示す例では、画像処理装置104とコントローラ102とを別々のハードウェア構成としている。一方、コントローラ102の持つ機能をすべて画像処理装置104内に実装して一体化してもよく、画像処理装置104とコントローラ102とがそれぞれ有する機能を集めた専用の画像処理装置を構成してもよい。
【0019】
図2は、本実施形態に係るMRシステム100を実現するために必要な機能構成例を示すブロック図である。
図2において、HMD201は、表示部に表示するための現実空間画像を撮影する撮像部202、撮像画像とCG画像との合成画像を表示する表示部203、及び画像や制御信号を送受信する無線I/Fユニット208を備えている。さらに、HMD201を制御する制御部207、撮像画像からHMD201の位置姿勢を求める位置姿勢算出部204、及びコントローラ210から受信した圧縮されたCG画像をデコードするデコード部206を備えている。さらに、CG画像と撮像画像を重畳する画像合成ユニット205や、その他不図示の機能部を備えている。なお、MRシステムが3D映像に対応できるように、撮像部202及び表示部203は、左眼用、右眼用と別々に存在してもよい。
【0020】
コントローラ210は、HMD201と画像や制御信号を送受信する無線I/Fユニット211、及び画像処理装置220と画像や制御信号を送受信する画像処理装置I/F通信ユニット212を備えている。さらに、画像処理装置220から受信した画像を圧縮処理するエンコード部213や、その他不図示の機能部を備えている。
【0021】
画像処理装置220は、画像や制御信号等を送受信するHMD I/F通信ユニット221、及びCG画像等のコンテンツが格納されているコンテンツDB223を備えている。さらに、受信した位置姿勢情報からCGを描画するCG描画部222や、その他不図示の機能部を備えている。
【0022】
上述の構成において、HMD201の撮像部202が撮影した撮像画像からHMD201の位置姿勢を位置姿勢算出部204で算出し、この位置姿勢データを、コントローラ210を介して画像処理装置220に送信する。画像処理装置220は、受信した位置姿勢データを元にCG描画部で物体などのCGを描画し、このCG画像を、コントローラ210を介してHMD201へ送信する。
【0023】
HMD201は、コントローラ210から受信したCG画像と撮像部202で撮影した撮像画像とを画像合成ユニット205で合成して、表示部203で表示する。このような手順により、使用者はリアルタイムに撮影した撮像画像にCG画像を重畳した合成画像を見ることが可能となる。以上の構成により、ビデオシースルーHMDを装着することにより、現実世界と仮想世界とがリアルタイムにシームレスに融合した複合現実世界を体験できる。
【0024】
なお、図2に示す例では、位置姿勢算出部204をHMD201が備える構成にしているが、位置姿勢算出部204をコントローラ210や画像処理装置220が備える構成にしてもよい。この場合、HMD201からコントローラ210には位置姿勢を算出するために必要なデータのみ(例えば撮像画像を2値化した画像)を送信する。さらに、本実施形態では、HMD201の位置姿勢を撮像画像から求めるようにしているが、撮像画像と外部のセンサーとを組み合わせて位置姿勢を求めるようにしても、外部センサーからのみ位置姿勢を求めるようにしてもよい。また、本実施形態では、符号化方式としてJPEG方式を用いる例について説明するが、JPEG方式以外の非可逆圧縮方式の符号化方式を用いてもよい。
【0025】
図3は、図2の画像合成ユニット205の詳細な構成例を示すブロック図である。
図3において、境界ブロック検出部303は、デコード部206においてデコード(復号)されたCG画像からブロック単位にCG部とクロマキー部との境界を含む境界ブロックを検出する。CG画像用メモリ302は、受信したCG画像を保存する。クロマキー色決定部304は、クロマキー色の範囲を決定する。撮像画像用メモリ305は、撮像部202で撮影した撮像画像を保存する。合成部301は、撮像画像とCG画像とを合成する。
【0026】
まず、境界ブロック検出部303でCG部とクロマキー部との境界を含む境界ブロックを検出する。以下、この境界ブロックの検出方法について説明する。ここで境界ブロックとはCGとクロマキー色とから構成されているブロックのことである。図4(a)は、境界ブロックを検出する単位を示した図であり、1つの四角は1ブロックを表している。一方、図4(b)は、1ブロックの中の画素を表した図であり、本実施形態ではJPEGの処理単位である1ブロックのサイズを8×8としている。1ブロックを構成する画素数は必ずしも8×8である必要はなく、エンコード/デコードする画素単位に依存してもよいし依存していなくてもよい。
【0027】
図4(a)に示すブロック402は、境界ブロックであるか否かを検出する対象ブロックである。この対象ブロックの少なくとも1画素がクロマキー色以外の色から構成されている場合は、ブロック402の周囲8ブロックをCG画像用メモリ302から取得する。そして、取得した周囲8ブロックの少なくとも1ブロックのブロック内がクロマキー色のみで構成されている場合は、対象ブロックは、CG部とクロマキー部との境界ブロックであると想定できる。逆に、対象ブロックがクロマキー色のみで構成されておらず、かつ、周囲8ブロックに1つもブロック内がクロマキー色のみで構成されているブロックがない場合は、物体側であるため対象ブロックをCGブロックとする。また、対象ブロックがクロマキー色のみである場合は、クロマキーブロックとする。このクロマキー色のみか否かの判定は、1色でもよいし、エンコード/デコード処理に伴う処理による関係で僅かに幅を持たせてもよい。
【0028】
図5に、上記手順による境界ブロックの検出結果の一例を示す。図5(a)は、画像501にドーナツ型のCG502を描いた例を示す図である。図5(a)に示すドーナツ形状の内側及び外側はクロマキー色であり、撮像画像に置き換わる部分である。また、一つの四角はブロックを示している。図5(b)は、このCG画像から上記説明した方法で境界ブロックを検出した結果を示す図である。異なる色のブロック503が境界ブロック検出部303で検出された境界ブロックを示している。このように上記説明した方法を行うと、CG部とクロマキー部との境界となる複数のブロックを検出することができる。
【0029】
次に、境界ブロック検出部303の検出結果に基づいて、クロマキー色決定部304はクロマキー色の範囲を決定する。図6は、クロマキー色決定部304で決定するクロマキー色の範囲の一例を示す図である。図6(a)に示すテーブル601はクロマキー色の範囲が狭いテーブルであり、境界ブロック検出部303の検出結果がCGブロックまたはクロマキーブロックの時に採用されるテーブルである。一方、テーブル602は、検出結果が境界ブロックの時に採用されるクロマキー色の範囲が広いテーブルである。このクロマキー色の範囲を示すテーブルとして、図6(b)に示すようなより狭い範囲のテーブルを用いてもよいし、図6(c)に示すようにRed、Green、Blueで範囲の割合が異なるテーブルを用いてもよい。
【0030】
次に、クロマキー色決定部304がブロック単位で決定したクロマキー色の範囲を元に、合成部301で撮像画像とCG画像とを合成する。
【0031】
図7は、境界ブロックを検出してから画像を合成するまでの処理手順の一例を示すフローチャートである。なお、図7に示す処理では、1つのブロックを処理する例を示しているが、画像を構成するすべてのブロックについて行われるものとする。
まず、S701において、境界ブロック検出部303は、対象ブロックの画素全てがクロマキー色であるか否かを判定する。この判定の結果、全てクロマキー色の画素から構成されている場合は、S705において、境界ブロック検出部303は対象ブロックをクロマキーブロックであると判定し、この結果をクロマキー色決定部304に送る。そして、クロマキー色決定部304は、この結果に基づいて狭い範囲でのクロマキー色の範囲を決定する。
【0032】
一方、S701の判定の結果、対象ブロックの少なくとも1つの画素がクロマキー色でない場合は、S702においてCG画像用メモリ302から周囲8ブロックを取得する。例えば画像の一番左上ブロックの場合、対象ブロックの周囲ブロックは右、下、右下の3ブロックしかないが、この場合はこれら3ブロックを用いて以下の処理を行う。
【0033】
次に、S703において、ステップS702で取得した周囲のブロックのうち、少なくとも1つのブロックにクロマキー色のみから構成されているブロックがあるか否かを判定する。この判定の結果、周囲のブロックにクロマキー色のみのブロックが1つも存在しない場合は、S705において、対象ブロックはCGブロックであると判定し、この結果をクロマキー色決定部304に送る。そして、クロマキー色決定部304は、この結果に基づいて狭い範囲でのクロマキー色の範囲を決定する。
【0034】
一方、S703の判定の結果、周囲のブロックに1つでもクロマキー色のみのブロックが存在する場合は、S704において、対象ブロックは境界ブロックであると判定し、この結果をクロマキー色決定部304に送る。そして、クロマキー色決定部304は、この結果に基づいて広い範囲でのクロマキー色の範囲を決定する。なお、上述した狭い範囲のクロマキー色の範囲は、例えば図6(a)のテーブル601に示すような範囲であり、広い範囲とは、テーブル602に示すような範囲である。
【0035】
次に、S706において、合成部301は、決定されたクロマキー色の範囲をクロマキー色決定部304から取得し、このブロックに対応する撮像画像を撮像画像用メモリ305から取得する。そして、境界ブロック検出部303から送られたブロックと、取得した撮像画像とをクロマキー合成する。これらのS701からS706までの処理を、1画像を構成する全てのブロックに対して順次行い、1枚の画像のクロマキー合成が完了する。また、受信するCG画像はJPEGプログレッシブ形式でもよく、この場合、受信した順番にこの処理を行ってもよい。
【0036】
以上のように本実施形態によれば、簡易な方法でCG部とクロマキー部との境界を含む境界ブロックを検出し、この境界ブロックのみに対してクロマキー色の範囲を広げてクロマキー合成を行うようにした。これにより、マスクパターンとしての別データの送受信を不要にして、きれいにクロマキー合成することができる。また、境界ブロックのみクロマキー色の範囲を広げてクロマキー合成しているため、CGの内部にクロマキー色に近い画素があった場合でも誤って撮像画像へ置き換えることを防止できる。
【0037】
(第2の実施形態)
第1の実施形態では、簡易な方法でCG部とクロマキー部との境界ブロックを検出し、ブロックに応じてクロマキー色の範囲を変更する方法について説明した。本実施形態では、CGが複雑な形状の場合でもきれいにクロマキー合成できる方法について説明する。
【0038】
まず、本実施形態での構成を説明する前に、図8を用いて本実施形態の処理概要に関して説明する。図8(a)は、より複雑な形状のCG803を描いたCG画像の一例を示す図である。なお、一つの四角はブロックを表している。図8(a)に示すブロック802は、第1の実施形態の処理によってクロマキー色の範囲を広くする境界ブロックと判定されるため、ブロック802に関してはきれいにクロマキー合成することができる。ところが、CG部とクロマキー部との境界となるブロック801に対しては、第1の実施形態の処理ではCGブロックと判定される。そのためクロマキー色は狭い範囲でクロマキー合成を行うことになり、このブロックのみきれいにクロマキー合成できない。また、図8(b)に示す例の場合は、ブロック804〜807に関してはきれいにクロマキー合成できない。本実施形態では、このようなCGに対してきれいにクロマキー合成を行う例について説明する。
【0039】
本実施形態に係るMRシステムの内部構成は、基本的には第1の実施形態の図2と同様であるため、説明を省略する。
図9は、本実施形態における画像合成ユニット205の内部構成例を示すブロック図である。図3に示した構成と比べて、クロマキー色置き換え部902、一時メモリ901、及び隣接ブロック画素値判定部903が追加されている。
【0040】
クロマキー色置き換え部902は、クロマキー色の範囲に該当した画素をクロマキー色に置き換える。一時メモリ901は、クロマキー色置き換え部902でクロマキー色に置き換えたブロックを一時的に保存するためのメモリである。また、隣接ブロック画素値判定部903は、隣接ブロックとの関係からさらに境界ブロックであるか否かを判定する処理を行う。後述するように本実施形態に係る画像合成ユニット205は、図8に示すような複雑な形状をしているCGに対してもきれいにクロマキー合成できるような構成となっている。
【0041】
次に、処理の概要に関して図10を用いて説明する。図10は、図8(a)に示したブロック801、802の拡大図である。なお、本実施形態では、1ブロックの画素数は第1の実施形態と同様に8×8画素として説明するが、これの限りではない。
【0042】
図10において、ブロック801の画素群1001、1002はクロマキー色に近い画素を表している。画素群1001は本来、クロマキー色であったが、エンコード/デコード処理によりクロマキー色と近い色になった画素であり、画素群1002は元画像の色であるがクロマキー色に近い画素である。この場合、本実施形態では画素群1001を撮像画像の画素に置き換え、画素群1002を撮像画像の画素に置き換えないようにする処理を行う。
【0043】
次に、この判定方法に関して説明する。ブロック802は第1の実施形態と同様の手順によって、クロマキー色を示している画素と、CGを示している画素とに分離できる。次に、ブロック802の最も左端の縦の列に注目すると、上側の3画素はCGの画素であり、次の3画素はクロマキー色の画素であり、下側の2画素はCGの画素となっている。第1の実施形態の方法では、ブロック801はCGブロックと判定されているが、ブロック802の左端にはクロマキー色の画素が存在する。そこで、ブロック801が境界ブロックではあるか否かを判定することとなる。
【0044】
次に、ブロック801の最も右端の縦の列に注目すると、上から4画素目にクロマキー色に近い画素が存在する。このため、この画素はブロック802から続いているクロマキー色の画素であると判定できる。この処理をブロック801の右端の列から順番に左へ行う。ブロック801の右から4画素目まではクロマキー色に近い画素が繋がっているため、この画素に関しては撮像画像の画素に置き換える。また、ブロック801の右から5画素目にクロマキー色に近い画素がなくなるため、これらの処理を終了する。これにより、画素群1002はクロマキー色に近くても、ブロック802の関係性がないと判断され、そのまま撮像画像の画素に置き換えないようにする。
【0045】
図11は、本実施形態における画像を合成するまでの処理手順の一例を示すフローチャートである。
まず、S1101において、第1の実施形態と同様の手順で境界ブロックを検出し、検出した境界ブロックについてクロマキー色に近い画素をクロマキー色に置き換える。
【0046】
次に、S1102において、S1101で検出した境界ブロックの周囲の画素情報から、この境界ブロックの隣接しているブロックにクロマキー部の画素とCG部の画素とが混在するか否かを判定する。そして、混在している場合は、クロマキー色に近い画素をクロマキー色に置き換える。本実施形態では、S1102においてクロマキー色に置き換えた隣接ブロックを2次境界ブロックと呼ぶ。
【0047】
次に、S1103において、S1102で検出した2次境界ブロックを元に、2次境界ブロックの周囲の画素情報から、この2次境界ブロックの隣接ブロックにクロマキー部の画素とCG部の画素とが混在するか否か判定する。この判断の結果、混在している場合はクロマキー色に近い画素をクロマキー色に置き換える。そして、S1104において、合成部301は撮像画像用メモリ305に格納された撮像画像と、上記の手順で処理されたCG画像とをクロマキー合成する。
【0048】
図12は、図11のS1101の詳細な処理手順の一例を示すフローチャートであり、図13は、図11のS1102の詳細な処理手順の一例を示すフローチャートであり、図14は、図11のS1103の詳細な処理手順の一例を示すフローチャートである。次に、図12図14のそれぞれの詳細な処理に関して説明する。
【0049】
まず、図11のS1101の詳細な手順について説明する。図12において、図7と同じ処理に関しては説明を省略する。S1201においては、クロマキー色置き換え部902は、S704またはS705で決定したクロマキー色の範囲に従って、この色の範囲にあるブロック内の画素の色をクロマキー色に置き換える。そして、ブロックの情報(CGブロック、クロマキーブロック、及び境界ブロック)をブロックとともに一時メモリ901へ格納する。そして、S1202において、1画像の全てのブロックが終了したか否か判定し、終了していない場合はS701へ戻り、終了するまで繰り返す。
【0050】
次に、図11のS1102の詳細な手順について説明する。まず、図13のS1301において、隣接ブロック画素値判定部903は一時メモリ901から境界ブロックを取得する。次に、S1302において、隣接ブロック画素値判定部903は、取得した境界ブロックの上下左右のブロックを一時メモリ901から取得する。そして、境界ブロックの最上1行の画素にクロマキー色があり、かつ境界ブロックの上の隣接しているブロックがCGブロックであるか否かを判定する。なお、同様の判定を境界ブロックの右、左、下に関しても行う。例えば、境界ブロックの右の場合は、境界ブロックの最右1列のどこかにクロマキー色があり、境界ブロックの右のブロックがCGブロックであるか否かを判定する。この判定の結果、上下左右でこの条件に合致しない場合は、S1305に進む。
【0051】
一方、S1302の判定の結果、少なくとも上下左右の何れかでこの条件に合致する場合は、S1303において、境界ブロックに隣接するブロックを2次境界ブロックにする。そして、S1304において、この2次境界ブロックについてクロマキー色に近い画素をクロマキー色に置き換える処理を行い、この結果を一時メモリ901へ格納する。なお、S1304の詳細の詳細については後述する。そして、S1305において、1画像の全ての境界ブロックについて前述した処理が終了したか否かを判定し、まだ処理していない境界ブロックがある場合はS1301へ戻り、終了するまで繰り返す。
【0052】
次に、図11のS1103の詳細な手順について説明する。まず、S1401において、隣接ブロック画素値判定部903は、一時メモリ901から2次境界ブロックとして格納されているブロックを取得する。次に、S1402において、隣接ブロック画素値判定部903は、取得した2次境界ブロックの上下左右のブロックを一時メモリ901から取得する。そして、2次境界ブロックの最上の画素にクロマキー色があり、かつ境界ブロックの上のブロックがCGブロックであるか否か判定する。なお、同様の処理を境界ブロックの右、左、下に関しても行う。この判定の結果、上下左右でこの条件に合致しない場合は、S1406に進む。
【0053】
一方、S1402の判定の結果、少なくとも上下左右の何れかでこの条件に合致する場合は、S1403において2次境界ブロックの隣接のブロックを2次境界ブロックにする。そして、S1404において、この2次境界ブロックについてクロマキー色に近い画素をクロマキー色に置き換える処理を行い、結果をブロックの情報とともに一時メモリ901へ格納する。S1404の詳細な手順については後述する。
【0054】
次に、S1405においてS1401で取得したブロックを処理終了ブロックとして、一時メモリ901に格納する。そして、S1406において、隣接ブロック画素値判定部903は、一時メモリ901に格納されている全ての2次境界ブロックについて処理を行ったか否かを判定する。この判定の結果、まだ処理していない2次境界ブロックがある場合はS1401へ戻り、終了するまで処理を繰り返す。
【0055】
図15は、図13のS1304及び図14のS1404の詳細な処理手順の一例を示すフローチャートである。
まず、S1501において、隣接ブロック画素値判定部903は、対象となる隣接ブロックに対し、広い範囲でのクロマキー色の範囲を決定する。そして、S1502において、隣接ブロック画素値判定部903は、S1402(またはS1302)で判定した隣接ブロックと、境界ブロック(2次境界ブロック)との境界画素を1ライン分取得する。図10に示す例では、ブロック801の最右の縦一列の画素を取得する。
【0056】
次に、S1503において、S1502で取得した画素の中にS1501で取得したクロマキー色の範囲内の画素があり、かつ、この画素の隣の近傍にクロマキー色の画素があるか否かを判定する。図10に示す例では、ブロック801の最右の上から4、5、6画素目の右隣、すなわちブロック802の最左の上から4、5、6画素目付近が、クロマキー色であるか否かを判定する。この判定の結果、該当する画素がない場合はS1506に進む。
【0057】
一方、S1503の判定の結果、該当する画素がある場合はS1504において、S1501で取得したクロマキー色の範囲内の色であり、かつ隣の画素がクロマキー色付近のみの画素である条件を満たす画素に関して、この画素値をクロマキー色に置き換える。そして、S1505において、ブロック内の全てのライン(縦、または横)について処理が終了したか否かを判定し、終了していない場合はS1502に戻り、終了するまで、S1502からS1505の処理を繰り返す。続いて、S1506において、処理結果を一時メモリ901にブロックの情報とともに格納する。
【0058】
図16は、図15の処理結果を示す図である。図16(a)に示す例では、ブロック1601が境界ブロックで、ブロック1602が2次境界ブロックであり、ブロック1601の左側に2次境界ブロックがある時の例を示している。この場合、ブロック1602の右から4つめまでのクロマキー色に近い色をクロマキー色に置き換える。同様に、図16(b)は境界ブロックの右側に2次境界ブロックがある時の例を示し、図16(c)は境界ブロックの上側に2次境界ブロックがある時の例を示し、図16(d)は境界ブロックの下側に2次境界ブロックがある時の例を示している。
【0059】
以上のように本実施形態によれば、検出した境界ブロックの周囲の画素の色を判定し、この境界ブロックの隣接しているブロックの画素まで判定するようにした。これにより、より複雑な形状のCGについてもきれいにCG画像を合成することができ、さらにCG内部におけるクロマキー判定誤差をより低減することが可能になる。
【0060】
(第3の実施形態)
第1及び第2の実施形態では、エンコード/デコードで発生した劣化画像に対してCG部とクロマキー部との境界を含む境界ブロックを検出し、ブロックに応じてクロマキー色の範囲を変更する方法について説明した。本実施形態では、無線通信の通信エラーによって画像補間を行ったために発生した劣化画像に対して、きれいにクロマキー合成できる方法について説明する。なお、本実施形態では説明を分かりやすくするために、無線伝送では画像を圧縮せずに伝送する方法について説明するが、無線伝送部では圧縮した画像で通信を行ってもよい。
【0061】
図17は、本実施形態に係るMRシステム1700の機能構成例を示すブロック図である。図2に示した構成と比べると、エンコード部213及びデコード部206の代わりに、補間部1701を備えている。本実施形態に係るMRシステムでは、リアルタイムで画像を表示する必要があるため、コントローラ210とHMD201との間で画像の伝送に通信エラーがあっても、再送しないで表示するシステム構成であることが望ましい。そのため、補間部1701は、コントローラ210とHMD201との間で通信エラーが発生して画像を取得できなかった場合に画像の補間を行う。補間部1701で補間した画像は画像合成ユニット205へ送られる。このように本実施形態では、CG画像のエンコード及びデコードが行われないため、CG画像は、境界部分で高周波成分が失われていない。
【0062】
図18は、コントローラ210とHMD201との間で通信エラーが発生した際の画像の一部を表した図である。図18において、1つの四角は1画素を表しており、画素1801はエラーが発生したため補間が必要な欠陥画素を表し、画素1802はCGの画素を表し、画素1803はクロマキー色の画素を表している。この場合、補間部1701は、画素1801を周囲の画素から計算して補間する。補間方法は、どのような方法でもよく周囲8画素に一定の重みをつけて求めてもよいし、上下左右4画素に重みをつけて求めてもよい。また、MRシステムが3D映像に対応している場合は、もう片方の画像(例えば、図18が左眼用の画像の場合は、右眼用の画像のほぼ同じ場所)から補間を行ってもよい。
【0063】
本実施形態では、補間方法として周囲8画素に重みをつけて求める方法について説明する。図18に示す例の場合、画素1801は、周囲8画素のうちの7画素がクロマキー色のため、補間処理を行うとクロマキー色ではないがクロマキー色に近い色となる。従って、クロマキー色のみを撮像画像に置き換えると、画素1801は撮像画像には置き換わらず、クロマキー色に近い画素で表示される。そのため、この部分はノイズのように表示されてしまう。本実施形態ではこのような劣化した画像に対してもきれいにクロマキー合成できる方法について説明する。
【0064】
補間部1701で補間処理が終了すると、このブロックは補間部1701で処理を行ったブロックであることと、補間処理を実施したこととを画像合成ユニット205へ通知する。なお、本実施形態では、図18に示すように6×6画素で補間を行っているが、8×8画素でも、4×4画素でもよい。また、画像合成ユニット205で処理するブロックは、この補間の単位で説明するが補間の単位でなくてもよい。
【0065】
ここで、画像合成ユニット205の詳細な構成は、図3と同様のため説明を省略する。図19は、本実施形態におけるクロマキー合成処理手順の一例を示すフローチャートである。本実施形態では、図7の処理と異なる個所についてのみ説明する。また、図19に示す処理は、1つのブロックを処理する例を示しており、補間部1701で行った補間処理の単位で行い、1つの画像全て終わるまで実施する。
【0066】
まず、S1901において、対象ブロックの中に補間画素があるか否かを判定する。この判定の結果、補間画素がある場合はS701に進み、補間画素がない場合はS705に進み、狭い範囲でクロマキー色の範囲を決定する。前述したように本実施形態では、CG画像はエンコード及びデコードが行われていないため、境界ブロックにおいては高周波成分が失われていない。そのため、補間画素がない場合は、境界ブロックにおいても狭い範囲でクロマキー色を決定する。なお、以降の処理は、図3と同じであるため説明を省略する。また、説明を省略するが、画像合成ユニット205を第2の実施形態のような構成とすることも可能である。
【0067】
以上のように本実施形態によれば、通信エラーに伴って補間した劣化画像に対してもきれいにクロマキー合成することができ、さらにCG内部におけるクロマキー判定誤差を低減できる。
【0068】
(第4の実施形態)
第1〜第3の実施形態では、ビデオシースルーHMDのシステム構成について説明した。本実施形態では光学シースルーの時の構成について説明する。
【0069】
図20は本実施形態に係る光学シースルーシステム2000の機能構成例を示すブロック図である。本実施形態では、光学シースルーシステムのため、図2に示した構成と比べると、画像合成ユニット205の代わりに画像処理ユニット2001を備えている。また、撮像画像とCG画像とを重畳する処理は必要ないため、撮像部202で撮影した画像を表示部に送らないような構成になっている。また、表示部203にはハーフミラーがあり、HMD使用者は表示部203を見ることにより光学シースルーでのMR空間を体験することができる。
【0070】
また、本実施形態ではHMD201に撮像部202を備え、この撮像部202で撮影した撮像画像からHMD201の位置姿勢を求めるようにしているが、HMD201の位置姿勢を求められるものであれば、別の構成でもよい。さらに、表示部203に表示するCG画像がHMD201の位置姿勢に関係ない場合には、HMD201の位置姿勢を求める構成は不要となる。
【0071】
図21は、画像処理ユニット2001の詳細な構成例を示すブロック図である。図3の画像合成ユニット205の構成と比べると撮像画像と合成する必要はないため、撮像画像用メモリ305、及び合成部301の代わりに画像処理部2101を備えている。画像処理部2101は、境界ブロック検出部303から出力されるブロックと、それに伴ってクロマキー色決定部304から出力されるクロマキー色の範囲とを元に、クロマキー色を所定の色(黒色)に置き換える。本実施形態ではクロマキー色を黒以外の色で説明するが、クロマキー色は黒色であってもよい。
【0072】
図22は、クロマキー色を黒色に置き換える処理手順の一例を示すフローチャートである。なお、図22に示す処理では、1つのブロックを処理する例を示しており、1つのCG画像全て終わるまで実施する。また、図7と同じ個所の説明は省略する。
【0073】
S2201においては、画像処理部2101は、対象ブロックの中にS704またはS705で決定したクロマキー色の範囲の画素があるか否かを検索し、クロマキー色の範囲の画素があった場合は、この画素を黒色に置き換える。これにより、光学シースルーのシステムの場合、CGとクロマキーとの境界に関してもきれいにCG画像を表示することができる。また、説明を省略するが、第2及び第3の実施形態と組み合わせることも可能である。
【0074】
以上のように本実施形態によれば、光学シースルーHMDを用いたシステムにおいても劣化画像に対してきれいにCG画像を表示することができる。
【0075】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0076】
302 CG画像用メモリ
303 境界ブロック検出部
304 クロマキー色決定部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24