(57)【要約】【課題】劣化した画像の情報から、物体領域を正確に区分けした画像を得ることができるようにする。【解決手段】復号されたＣＧ画像を取得し、クロマキー色とは異なる色の画素を含み、さらに周囲のブロックのうち少なくとも１つのブロックにおいてすべての画素がクロマキー色である場合に、そのブロックを境界ブロックとして検出し、クロマキー色に変更する色の範囲を、ＣＧブロック及びクロマキーブロックに比べて広く設定するようにして、境界部分以外でクロマキー色に近い画素がある場合でも、誤ってクロマキー色に変更してしまうことを防止できるようにする。【選択図】図３
2015099562.tif 000002
【特許請求の範囲】
【請求項１】
物体を含む画像を取得する取得手段と、
前記取得手段によって取得された画像を構成する複数のブロックから、前記物体の境界を含む境界ブロックを検出する検出手段と、
前記複数のブロックに対して、所定の色に変更する色の範囲をそれぞれ決定する決定手段と、
前記決定手段によって決定された色の範囲に属する画素を前記所定の色に変更する変更手段とを有し、
前記決定手段は、前記検出手段によって検出された境界ブロックに対して、それ以外のブロックよりも前記色の範囲を広くすることを特徴とする画像処理装置。
【請求項２】
前記検出手段は、クロマキー色とは異なる色の画素を含み、さらに周囲のブロックのうち少なくとも１つのブロックにおいてすべての画素がクロマキー色であるブロックを、境界ブロックとして検出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出手段は、検出した境界ブロックと隣接するブロックが境界ブロックであるか否かを判定しながら境界ブロックを検出することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記検出手段は、前記隣接するブロックが物体側のブロックであり、該隣接するブロックに隣接する少なくとも１つの画素がクロマキー色であるブロックを、境界ブロックと判定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記取得手段は、非可逆圧縮方式で圧縮された画像を復号した画像を取得することを特徴とする請求項１〜４の何れか１項に記載の画像処理装置。
【請求項６】
前記複数のブロックは、圧縮処理を行うサイズの単位であることを特徴とする請求項１〜５の何れか１項に記載の画像処理装置。
【請求項７】
前記決定手段は、前記色の範囲をＲ、Ｇ、Ｂで同じ割合に決定することを特徴とする請求項１〜６の何れか１項に記載の画像処理装置。
【請求項８】
前記決定手段は、前記色の範囲をＲ、Ｇ、Ｂでそれぞれ異なる割合に決定することを特徴とする請求項１〜６の何れか１項に記載の画像処理装置。
【請求項９】
前記所定の色は、クロマキー色であることを特徴とする請求項１〜８の何れか１項に記載の画像処理装置。
【請求項１０】
前記決定手段は、前記境界ブロックに欠陥を補間した画素が含まれている場合に、前記色の範囲を広く決定することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項１１】
前記変更手段によって画素の色が変更された画像と、撮像画像とを合成する合成手段をさらに有することを特徴とする請求項１〜１０の何れか１項に記載の画像処理装置。
【請求項１２】
前記所定の色は、黒色であることを特徴とする請求項１〜８の何れか１項に記載の画像処理装置。
【請求項１３】
物体を含む画像を取得する取得工程と、
前記取得工程において取得された画像を構成する複数のブロックから、前記物体の境界を含む境界ブロックを検出する検出工程と、
前記複数のブロックに対して、所定の色に変更する色の範囲をそれぞれ決定する決定工程と、
前記決定工程において決定された色の範囲に属する画素を前記所定の色に変更する変更工程とを有し、
前記決定工程においては、前記検出工程において検出された境界ブロックに対して、それ以外のブロックよりも前記色の範囲を広くすることを特徴とする画像処理方法。
【請求項１４】
物体を含む画像を取得する取得工程と、
前記取得工程において取得された画像を構成する複数のブロックから、前記物体の境界を含む境界ブロックを検出する検出工程と、
前記複数のブロックに対して、所定の色に変更する色の範囲をそれぞれ決定する決定工程と、
前記決定工程において決定された色の範囲に属する画素を前記所定の色に変更する変更工程とをコンピュータに実行させ、
前記決定工程においては、前記検出工程において検出された境界ブロックに対して、それ以外のブロックよりも前記色の範囲を広くすることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ＣＧ画像においてクロマキー色の範囲を設定するために用いて好適な画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、現実世界と仮想世界とをリアルタイムにシームレスに融合させる技術として複合現実感、いわゆるＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）技術が知られている。ＭＲ技術の１つに、ビデオシースルーＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）を利用した技術が知られている。この技術によれば、ＨＭＤ使用者の瞳位置から観察される被写体と略一致する被写体をビデオカメラなどで撮像し、その撮像画像にＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）を重畳表示した画像をＨＭＤ使用者が観察することができる。
【０００３】
図２３は、ＨＭＤ使用者がＨＭＤ２３０１を装着している時の様子を示す図であり、ＨＭＤ使用者はＨＭＤ２３０１を用いてＭＲ空間を体験することが可能となる。ＨＭＤ２３０１は、カメラで撮影した映像からＨＭＤ２３０１の位置姿勢を計算し、この位置姿勢データをパーソナルコンピュータ（ＰＣ）などの外部装置に送信する。そして、外部装置からＣＧ画像を受信し、受信したＣＧ画像とカメラで撮影した映像とを重畳した映像を表示する。
【０００４】
ＨＭＤ２３０１を使用して自由に動きながらＭＲ空間を体験するには、ＨＭＤ２３０１とＰＣなどの外部装置との間は無線伝送で通信した方がよい。しかしながら、一般的に有線での通信と比べて無線での通信は伝送帯域が狭いため、無線伝送を行うためには通信データ量を削減する必要がある。ＰＣなどの外部装置から受信するＣＧ画像のデータ量は大きいため、無線伝送では圧縮率の高い非可逆圧縮で画像を圧縮（例えばＪＰＥＧで圧縮）して送受信を行う。
【０００５】
しかしながら、非可逆圧縮で画像を圧縮すると、元画像に対して何らかの情報が失われた画像になってしまう。例えばＪＰＥＧで圧縮された画像は高周波成分が失われてしまうため、ＰＣなどの外部装置から受信するＣＧ画像のＣＧの個所と、クロマキー色の個所との境界部分の情報は失われてしまう。そのため、クロマキー色の１色のみを撮像画像に置き換える通常の方法では、きれいにクロマキー合成できない。
【０００６】
図２４は、ＣＧの境界部分を説明するための図である。図２４（ａ）には、ＣＧ２４０２が描かれており、一つの四角はＪＰＥＧの圧縮処理単位であるブロックを示している。また、図２４（ｂ）には、ＣＧ部とクロマキー部との境界を示しており。図２４（ｂ）のブロック２４０１はＣＧ部とクロマキー部との境界となっており、ＪＰＥＧで圧縮すると、高周波成分が失われる。このため、１色のみでクロマキー合成を行うと、このブロック２４０１では、きれいに撮影画像とＣＧ画像とをクロマキー合成できず、重畳後の画像にはＣＧの外側に境界部分を中心としてクロマキー色に近い色が現れてしまう。このように物体領域を正確に区分けできないという問題点がある。
【０００７】
この問題点を解決する方法として、例えば、クロマキー色が青色２５５の場合、青を２００〜２５５でクロマキー合成し、クロマキー合成時にクロマキー色の範囲を広げることによって上記問題を解決することができる。ところが、ＣＧ画像一様にクロマキー範囲を広げてクロマキー合成を行うと、ＣＧの内部にクロマキー色に近い色がある場合に誤ってクロマキー合成を行ってしまうことがある。そのため、本来はＣＧであるところを撮像画像に置き換えてしまう可能性がある。そこで、特許文献１には、画像データの画素単位に、この画素が透明か不透明かを識別する付加データとしてのマスクパターンを画像データと関連付け、画像データとは別データとして送信し、クロマキー合成を行う手法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１０−９８７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載の手法では、画像データとは別データを作成して送受信する必要があるため、このマスクパターンのデータが無線伝送で通信エラーになった場合に、再送を行う必要がある。ＭＲシステムではリアルタイムで撮影画像とＣＧ画像とを合成した画像を表示する必要があるため、なるべく低遅延で画像を表示することが望まれている。そのため、ＭＲシステムでは不向きである。
【００１０】
本発明は前述の問題点に鑑み、劣化した画像の情報から、物体領域を正確に区分けした画像を得ることができるようにすることを目的としている。
【課題を解決するための手段】
【００１１】
本発明に係る画像処理装置は、物体を含む画像を取得する取得手段と、前記取得手段によって取得された画像を構成する複数のブロックから、前記物体の境界を含む境界ブロックを検出する検出手段と、前記複数のブロックに対して、所定の色に変更する色の範囲をそれぞれ決定する決定手段と、前記決定手段によって決定された色の範囲に属する画素を前記所定の色に変更する変更手段とを有し、前記決定手段は、前記検出手段によって検出された境界ブロックに対して、それ以外のブロックよりも前記色の範囲を広くすることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、劣化した画像の情報から、物体領域を正確に区分けした画像を得ることができる。これにより、クロマキー合成を行う場合には、きれいにかつ正確にクロマキー合成を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るＭＲシステムの構成例を示す図である。
【図２】本発明の第１の実施形態に係るＭＲシステムの機能構成例を示すブロック図である。
【図３】本発明の第１の実施形態に係る画像合成ユニットの詳細な構成例を示すブロック図である。
【図４】境界ブロックを検出する単位及びブロックを構成する画素の一例を示す図である。
【図５】境界ブロックの検出結果の一例を示す図である。
【図６】クロマキー色決定部で決定するクロマキー色の範囲の一例を示す図である。
【図７】本発明の第１の実施形態において、クロマキー合成する処理手順の一例を示すフローチャートである。
【図８】より複雑な形状のＣＧを描いたＣＧ画像の一例を示す図である。
【図９】本発明の第２の実施形態に係る画像合成ユニットの詳細な構成例を示すブロック図である。
【図１０】画素単位で拡大した境界ブロックを示す図である。
【図１１】本発明の第２の実施形態において、クロマキー合成する処理手順の一例を示すフローチャートである。
【図１２】図１０のＳ１１０１において、ＣＧの範囲外をクロマキー色に置き換える詳細な処理手順の一例を示すフローチャートである。
【図１３】図１０のＳ１１０２において、境界ブロックの隣接ブロックを判定する詳細な処理手順の一例を示すフローチャートである。
【図１４】図１０のＳ１１０３において、２次境界ブロックを検出する詳細な処理手順の一例を示すフローチャートである。
【図１５】図１３のＳ１３０４及び図１４のＳ１４０４において、クロマキー色に置き換える詳細な処理手順の一例を示すフローチャートである。
【図１６】上下左右方向のブロックでクロマキー色に置き換える画素の位置を説明するための図である。
【図１７】本発明の第３の実施形態に係るＭＲシステムの機能構成例を示すブロック図である。
【図１８】補間画素の位置を説明するための図である。
【図１９】本発明の第３の実施形態において、クロマキー合成する処理手順の一例を示すフローチャートである。
【図２０】本発明の第４の実施形態に係る光学シースルーシステムの機能構成例を示すブロック図である。
【図２１】本発明の第４の実施形態に係る画像処理ユニットの詳細な構成例を示すブロック図である。
【図２２】本発明の第４の実施形態において、クロマキー色の画素を黒色に置き換える処理手順の一例を示すフローチャートである。
【図２３】ＨＭＤ使用者がＨＭＤを装着している時の様子を説明する図である。
【図２４】ＣＧの境界部分を説明するための図である。
【発明を実施するための形態】
【００１４】
（第１の実施形態）
以下、本発明の第１の実施形態について、図面を参照しながら説明する。
図１は、本実施形態に係るＭＲシステム１００の構成例を示す図である。
図１において、ＭＲシステム１００は、ビデオシースルー型の頭部搭載型の表示装置（以下、ＨＭＤ）１０１、コントローラ１０２、表示部１０３を有する画像処理装置１０４とから構成されている。なお、ＨＭＤ１０１はビデオシースルー型に限らず、光学シースルー型であってもよい。
【００１５】
ＨＭＤ１０１は、使用者の頭部に装着され、詳細は後述するが、撮像部と、画像表示部と、それらを制御する制御部とを含んでいる。撮像部はビデオカメラ等で構成され、使用者の視点の位置姿勢とほぼ同じになる位置姿勢で取付けられており、使用者の観察している現実空間の画像を取得する。画像表示部は、現実空間画像に画像処理装置１０４で生成したＣＧ画像を重畳した合成画像、撮影した現実空間を示す撮像画像、コントローラ１０２を介して供給される画像処理装置１０４からの出力画像などを表示する。また、ＨＭＤ１０１は撮像部で撮影された撮像画像とＣＧ画像とを合成する機能も有する。画像表示部は、使用者のそれぞれの眼の前に光学系を含む構成で取付けられている。
【００１６】
ＨＭＤ１０１は、ＷＬＡＮ（Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＷＰＡＮ（Ｗｉｒｅｌｅｓｓ  Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）のような、小規模ネットワークを構成する無線接続されたコントローラ１０２と通信する。なお、ＨＭＤ１０１とコントローラ１０２と間の通信は、無線方式に限らず、有線通信方式を利用してもよい。
【００１７】
コントローラ１０２及び有線接続された画像処理装置１０４は、ＣＧ画像の描画を行う画像処理部を有する。画像処理装置１０４はコントローラ１０２を介してＨＭＤ１０１と通信を行う。また、画像処理装置１０４は、キーボードなどを備え、データや、命令等を入力し、入力されたデータの表示や、命令の結果等は、表示部１０３に表示される。
【００１８】
なお、図１に示す例では、画像処理装置１０４とコントローラ１０２とを別々のハードウェア構成としている。一方、コントローラ１０２の持つ機能をすべて画像処理装置１０４内に実装して一体化してもよく、画像処理装置１０４とコントローラ１０２とがそれぞれ有する機能を集めた専用の画像処理装置を構成してもよい。
【００１９】
図２は、本実施形態に係るＭＲシステム１００を実現するために必要な機能構成例を示すブロック図である。
図２において、ＨＭＤ２０１は、表示部に表示するための現実空間画像を撮影する撮像部２０２、撮像画像とＣＧ画像との合成画像を表示する表示部２０３、及び画像や制御信号を送受信する無線Ｉ／Ｆユニット２０８を備えている。さらに、ＨＭＤ２０１を制御する制御部２０７、撮像画像からＨＭＤ２０１の位置姿勢を求める位置姿勢算出部２０４、及びコントローラ２１０から受信した圧縮されたＣＧ画像をデコードするデコード部２０６を備えている。さらに、ＣＧ画像と撮像画像を重畳する画像合成ユニット２０５や、その他不図示の機能部を備えている。なお、ＭＲシステムが３Ｄ映像に対応できるように、撮像部２０２及び表示部２０３は、左眼用、右眼用と別々に存在してもよい。
【００２０】
コントローラ２１０は、ＨＭＤ２０１と画像や制御信号を送受信する無線Ｉ／Ｆユニット２１１、及び画像処理装置２２０と画像や制御信号を送受信する画像処理装置Ｉ／Ｆ通信ユニット２１２を備えている。さらに、画像処理装置２２０から受信した画像を圧縮処理するエンコード部２１３や、その他不図示の機能部を備えている。
【００２１】
画像処理装置２２０は、画像や制御信号等を送受信するＨＭＤ  Ｉ／Ｆ通信ユニット２２１、及びＣＧ画像等のコンテンツが格納されているコンテンツＤＢ２２３を備えている。さらに、受信した位置姿勢情報からＣＧを描画するＣＧ描画部２２２や、その他不図示の機能部を備えている。
【００２２】
上述の構成において、ＨＭＤ２０１の撮像部２０２が撮影した撮像画像からＨＭＤ２０１の位置姿勢を位置姿勢算出部２０４で算出し、この位置姿勢データを、コントローラ２１０を介して画像処理装置２２０に送信する。画像処理装置２２０は、受信した位置姿勢データを元にＣＧ描画部で物体などのＣＧを描画し、このＣＧ画像を、コントローラ２１０を介してＨＭＤ２０１へ送信する。
【００２３】
ＨＭＤ２０１は、コントローラ２１０から受信したＣＧ画像と撮像部２０２で撮影した撮像画像とを画像合成ユニット２０５で合成して、表示部２０３で表示する。このような手順により、使用者はリアルタイムに撮影した撮像画像にＣＧ画像を重畳した合成画像を見ることが可能となる。以上の構成により、ビデオシースルーＨＭＤを装着することにより、現実世界と仮想世界とがリアルタイムにシームレスに融合した複合現実世界を体験できる。
【００２４】
なお、図２に示す例では、位置姿勢算出部２０４をＨＭＤ２０１が備える構成にしているが、位置姿勢算出部２０４をコントローラ２１０や画像処理装置２２０が備える構成にしてもよい。この場合、ＨＭＤ２０１からコントローラ２１０には位置姿勢を算出するために必要なデータのみ（例えば撮像画像を２値化した画像）を送信する。さらに、本実施形態では、ＨＭＤ２０１の位置姿勢を撮像画像から求めるようにしているが、撮像画像と外部のセンサーとを組み合わせて位置姿勢を求めるようにしても、外部センサーからのみ位置姿勢を求めるようにしてもよい。また、本実施形態では、符号化方式としてＪＰＥＧ方式を用いる例について説明するが、ＪＰＥＧ方式以外の非可逆圧縮方式の符号化方式を用いてもよい。
【００２５】
図３は、図２の画像合成ユニット２０５の詳細な構成例を示すブロック図である。
図３において、境界ブロック検出部３０３は、デコード部２０６においてデコード（復号）されたＣＧ画像からブロック単位にＣＧ部とクロマキー部との境界を含む境界ブロックを検出する。ＣＧ画像用メモリ３０２は、受信したＣＧ画像を保存する。クロマキー色決定部３０４は、クロマキー色の範囲を決定する。撮像画像用メモリ３０５は、撮像部２０２で撮影した撮像画像を保存する。合成部３０１は、撮像画像とＣＧ画像とを合成する。
【００２６】
まず、境界ブロック検出部３０３でＣＧ部とクロマキー部との境界を含む境界ブロックを検出する。以下、この境界ブロックの検出方法について説明する。ここで境界ブロックとはＣＧとクロマキー色とから構成されているブロックのことである。図４（ａ）は、境界ブロックを検出する単位を示した図であり、１つの四角は１ブロックを表している。一方、図４（ｂ）は、１ブロックの中の画素を表した図であり、本実施形態ではＪＰＥＧの処理単位である１ブロックのサイズを８×８としている。１ブロックを構成する画素数は必ずしも８×８である必要はなく、エンコード／デコードする画素単位に依存してもよいし依存していなくてもよい。
【００２７】
図４（ａ）に示すブロック４０２は、境界ブロックであるか否かを検出する対象ブロックである。この対象ブロックの少なくとも１画素がクロマキー色以外の色から構成されている場合は、ブロック４０２の周囲８ブロックをＣＧ画像用メモリ３０２から取得する。そして、取得した周囲８ブロックの少なくとも１ブロックのブロック内がクロマキー色のみで構成されている場合は、対象ブロックは、ＣＧ部とクロマキー部との境界ブロックであると想定できる。逆に、対象ブロックがクロマキー色のみで構成されておらず、かつ、周囲８ブロックに１つもブロック内がクロマキー色のみで構成されているブロックがない場合は、物体側であるため対象ブロックをＣＧブロックとする。また、対象ブロックがクロマキー色のみである場合は、クロマキーブロックとする。このクロマキー色のみか否かの判定は、１色でもよいし、エンコード／デコード処理に伴う処理による関係で僅かに幅を持たせてもよい。
【００２８】
図５に、上記手順による境界ブロックの検出結果の一例を示す。図５（ａ）は、画像５０１にドーナツ型のＣＧ５０２を描いた例を示す図である。図５（ａ）に示すドーナツ形状の内側及び外側はクロマキー色であり、撮像画像に置き換わる部分である。また、一つの四角はブロックを示している。図５（ｂ）は、このＣＧ画像から上記説明した方法で境界ブロックを検出した結果を示す図である。異なる色のブロック５０３が境界ブロック検出部３０３で検出された境界ブロックを示している。このように上記説明した方法を行うと、ＣＧ部とクロマキー部との境界となる複数のブロックを検出することができる。
【００２９】
次に、境界ブロック検出部３０３の検出結果に基づいて、クロマキー色決定部３０４はクロマキー色の範囲を決定する。図６は、クロマキー色決定部３０４で決定するクロマキー色の範囲の一例を示す図である。図６（ａ）に示すテーブル６０１はクロマキー色の範囲が狭いテーブルであり、境界ブロック検出部３０３の検出結果がＣＧブロックまたはクロマキーブロックの時に採用されるテーブルである。一方、テーブル６０２は、検出結果が境界ブロックの時に採用されるクロマキー色の範囲が広いテーブルである。このクロマキー色の範囲を示すテーブルとして、図６（ｂ）に示すようなより狭い範囲のテーブルを用いてもよいし、図６（ｃ）に示すようにＲｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅで範囲の割合が異なるテーブルを用いてもよい。
【００３０】
次に、クロマキー色決定部３０４がブロック単位で決定したクロマキー色の範囲を元に、合成部３０１で撮像画像とＣＧ画像とを合成する。
【００３１】
図７は、境界ブロックを検出してから画像を合成するまでの処理手順の一例を示すフローチャートである。なお、図７に示す処理では、１つのブロックを処理する例を示しているが、画像を構成するすべてのブロックについて行われるものとする。
まず、Ｓ７０１において、境界ブロック検出部３０３は、対象ブロックの画素全てがクロマキー色であるか否かを判定する。この判定の結果、全てクロマキー色の画素から構成されている場合は、Ｓ７０５において、境界ブロック検出部３０３は対象ブロックをクロマキーブロックであると判定し、この結果をクロマキー色決定部３０４に送る。そして、クロマキー色決定部３０４は、この結果に基づいて狭い範囲でのクロマキー色の範囲を決定する。
【００３２】
一方、Ｓ７０１の判定の結果、対象ブロックの少なくとも１つの画素がクロマキー色でない場合は、Ｓ７０２においてＣＧ画像用メモリ３０２から周囲８ブロックを取得する。例えば画像の一番左上ブロックの場合、対象ブロックの周囲ブロックは右、下、右下の３ブロックしかないが、この場合はこれら３ブロックを用いて以下の処理を行う。
【００３３】
次に、Ｓ７０３において、ステップＳ７０２で取得した周囲のブロックのうち、少なくとも１つのブロックにクロマキー色のみから構成されているブロックがあるか否かを判定する。この判定の結果、周囲のブロックにクロマキー色のみのブロックが１つも存在しない場合は、Ｓ７０５において、対象ブロックはＣＧブロックであると判定し、この結果をクロマキー色決定部３０４に送る。そして、クロマキー色決定部３０４は、この結果に基づいて狭い範囲でのクロマキー色の範囲を決定する。
【００３４】
一方、Ｓ７０３の判定の結果、周囲のブロックに１つでもクロマキー色のみのブロックが存在する場合は、Ｓ７０４において、対象ブロックは境界ブロックであると判定し、この結果をクロマキー色決定部３０４に送る。そして、クロマキー色決定部３０４は、この結果に基づいて広い範囲でのクロマキー色の範囲を決定する。なお、上述した狭い範囲のクロマキー色の範囲は、例えば図６（ａ）のテーブル６０１に示すような範囲であり、広い範囲とは、テーブル６０２に示すような範囲である。
【００３５】
次に、Ｓ７０６において、合成部３０１は、決定されたクロマキー色の範囲をクロマキー色決定部３０４から取得し、このブロックに対応する撮像画像を撮像画像用メモリ３０５から取得する。そして、境界ブロック検出部３０３から送られたブロックと、取得した撮像画像とをクロマキー合成する。これらのＳ７０１からＳ７０６までの処理を、１画像を構成する全てのブロックに対して順次行い、１枚の画像のクロマキー合成が完了する。また、受信するＣＧ画像はＪＰＥＧプログレッシブ形式でもよく、この場合、受信した順番にこの処理を行ってもよい。
【００３６】
以上のように本実施形態によれば、簡易な方法でＣＧ部とクロマキー部との境界を含む境界ブロックを検出し、この境界ブロックのみに対してクロマキー色の範囲を広げてクロマキー合成を行うようにした。これにより、マスクパターンとしての別データの送受信を不要にして、きれいにクロマキー合成することができる。また、境界ブロックのみクロマキー色の範囲を広げてクロマキー合成しているため、ＣＧの内部にクロマキー色に近い画素があった場合でも誤って撮像画像へ置き換えることを防止できる。
【００３７】
（第２の実施形態）
第１の実施形態では、簡易な方法でＣＧ部とクロマキー部との境界ブロックを検出し、ブロックに応じてクロマキー色の範囲を変更する方法について説明した。本実施形態では、ＣＧが複雑な形状の場合でもきれいにクロマキー合成できる方法について説明する。
【００３８】
まず、本実施形態での構成を説明する前に、図８を用いて本実施形態の処理概要に関して説明する。図８（ａ）は、より複雑な形状のＣＧ８０３を描いたＣＧ画像の一例を示す図である。なお、一つの四角はブロックを表している。図８（ａ）に示すブロック８０２は、第１の実施形態の処理によってクロマキー色の範囲を広くする境界ブロックと判定されるため、ブロック８０２に関してはきれいにクロマキー合成することができる。ところが、ＣＧ部とクロマキー部との境界となるブロック８０１に対しては、第１の実施形態の処理ではＣＧブロックと判定される。そのためクロマキー色は狭い範囲でクロマキー合成を行うことになり、このブロックのみきれいにクロマキー合成できない。また、図８（ｂ）に示す例の場合は、ブロック８０４〜８０７に関してはきれいにクロマキー合成できない。本実施形態では、このようなＣＧに対してきれいにクロマキー合成を行う例について説明する。
【００３９】
本実施形態に係るＭＲシステムの内部構成は、基本的には第１の実施形態の図２と同様であるため、説明を省略する。
図９は、本実施形態における画像合成ユニット２０５の内部構成例を示すブロック図である。図３に示した構成と比べて、クロマキー色置き換え部９０２、一時メモリ９０１、及び隣接ブロック画素値判定部９０３が追加されている。
【００４０】
クロマキー色置き換え部９０２は、クロマキー色の範囲に該当した画素をクロマキー色に置き換える。一時メモリ９０１は、クロマキー色置き換え部９０２でクロマキー色に置き換えたブロックを一時的に保存するためのメモリである。また、隣接ブロック画素値判定部９０３は、隣接ブロックとの関係からさらに境界ブロックであるか否かを判定する処理を行う。後述するように本実施形態に係る画像合成ユニット２０５は、図８に示すような複雑な形状をしているＣＧに対してもきれいにクロマキー合成できるような構成となっている。
【００４１】
次に、処理の概要に関して図１０を用いて説明する。図１０は、図８（ａ）に示したブロック８０１、８０２の拡大図である。なお、本実施形態では、１ブロックの画素数は第１の実施形態と同様に８×８画素として説明するが、これの限りではない。
【００４２】
図１０において、ブロック８０１の画素群１００１、１００２はクロマキー色に近い画素を表している。画素群１００１は本来、クロマキー色であったが、エンコード／デコード処理によりクロマキー色と近い色になった画素であり、画素群１００２は元画像の色であるがクロマキー色に近い画素である。この場合、本実施形態では画素群１００１を撮像画像の画素に置き換え、画素群１００２を撮像画像の画素に置き換えないようにする処理を行う。
【００４３】
次に、この判定方法に関して説明する。ブロック８０２は第１の実施形態と同様の手順によって、クロマキー色を示している画素と、ＣＧを示している画素とに分離できる。次に、ブロック８０２の最も左端の縦の列に注目すると、上側の３画素はＣＧの画素であり、次の３画素はクロマキー色の画素であり、下側の２画素はＣＧの画素となっている。第１の実施形態の方法では、ブロック８０１はＣＧブロックと判定されているが、ブロック８０２の左端にはクロマキー色の画素が存在する。そこで、ブロック８０１が境界ブロックではあるか否かを判定することとなる。
【００４４】
次に、ブロック８０１の最も右端の縦の列に注目すると、上から４画素目にクロマキー色に近い画素が存在する。このため、この画素はブロック８０２から続いているクロマキー色の画素であると判定できる。この処理をブロック８０１の右端の列から順番に左へ行う。ブロック８０１の右から４画素目まではクロマキー色に近い画素が繋がっているため、この画素に関しては撮像画像の画素に置き換える。また、ブロック８０１の右から５画素目にクロマキー色に近い画素がなくなるため、これらの処理を終了する。これにより、画素群１００２はクロマキー色に近くても、ブロック８０２の関係性がないと判断され、そのまま撮像画像の画素に置き換えないようにする。
【００４５】
図１１は、本実施形態における画像を合成するまでの処理手順の一例を示すフローチャートである。
まず、Ｓ１１０１において、第１の実施形態と同様の手順で境界ブロックを検出し、検出した境界ブロックについてクロマキー色に近い画素をクロマキー色に置き換える。
【００４６】
次に、Ｓ１１０２において、Ｓ１１０１で検出した境界ブロックの周囲の画素情報から、この境界ブロックの隣接しているブロックにクロマキー部の画素とＣＧ部の画素とが混在するか否かを判定する。そして、混在している場合は、クロマキー色に近い画素をクロマキー色に置き換える。本実施形態では、Ｓ１１０２においてクロマキー色に置き換えた隣接ブロックを２次境界ブロックと呼ぶ。
【００４７】
次に、Ｓ１１０３において、Ｓ１１０２で検出した２次境界ブロックを元に、２次境界ブロックの周囲の画素情報から、この２次境界ブロックの隣接ブロックにクロマキー部の画素とＣＧ部の画素とが混在するか否か判定する。この判断の結果、混在している場合はクロマキー色に近い画素をクロマキー色に置き換える。そして、Ｓ１１０４において、合成部３０１は撮像画像用メモリ３０５に格納された撮像画像と、上記の手順で処理されたＣＧ画像とをクロマキー合成する。
【００４８】
図１２は、図１１のＳ１１０１の詳細な処理手順の一例を示すフローチャートであり、図１３は、図１１のＳ１１０２の詳細な処理手順の一例を示すフローチャートであり、図１４は、図１１のＳ１１０３の詳細な処理手順の一例を示すフローチャートである。次に、図１２〜図１４のそれぞれの詳細な処理に関して説明する。
【００４９】
まず、図１１のＳ１１０１の詳細な手順について説明する。図１２において、図７と同じ処理に関しては説明を省略する。Ｓ１２０１においては、クロマキー色置き換え部９０２は、Ｓ７０４またはＳ７０５で決定したクロマキー色の範囲に従って、この色の範囲にあるブロック内の画素の色をクロマキー色に置き換える。そして、ブロックの情報（ＣＧブロック、クロマキーブロック、及び境界ブロック）をブロックとともに一時メモリ９０１へ格納する。そして、Ｓ１２０２において、１画像の全てのブロックが終了したか否か判定し、終了していない場合はＳ７０１へ戻り、終了するまで繰り返す。
【００５０】
次に、図１１のＳ１１０２の詳細な手順について説明する。まず、図１３のＳ１３０１において、隣接ブロック画素値判定部９０３は一時メモリ９０１から境界ブロックを取得する。次に、Ｓ１３０２において、隣接ブロック画素値判定部９０３は、取得した境界ブロックの上下左右のブロックを一時メモリ９０１から取得する。そして、境界ブロックの最上１行の画素にクロマキー色があり、かつ境界ブロックの上の隣接しているブロックがＣＧブロックであるか否かを判定する。なお、同様の判定を境界ブロックの右、左、下に関しても行う。例えば、境界ブロックの右の場合は、境界ブロックの最右１列のどこかにクロマキー色があり、境界ブロックの右のブロックがＣＧブロックであるか否かを判定する。この判定の結果、上下左右でこの条件に合致しない場合は、Ｓ１３０５に進む。
【００５１】
一方、Ｓ１３０２の判定の結果、少なくとも上下左右の何れかでこの条件に合致する場合は、Ｓ１３０３において、境界ブロックに隣接するブロックを２次境界ブロックにする。そして、Ｓ１３０４において、この２次境界ブロックについてクロマキー色に近い画素をクロマキー色に置き換える処理を行い、この結果を一時メモリ９０１へ格納する。なお、Ｓ１３０４の詳細の詳細については後述する。そして、Ｓ１３０５において、１画像の全ての境界ブロックについて前述した処理が終了したか否かを判定し、まだ処理していない境界ブロックがある場合はＳ１３０１へ戻り、終了するまで繰り返す。
【００５２】
次に、図１１のＳ１１０３の詳細な手順について説明する。まず、Ｓ１４０１において、隣接ブロック画素値判定部９０３は、一時メモリ９０１から２次境界ブロックとして格納されているブロックを取得する。次に、Ｓ１４０２において、隣接ブロック画素値判定部９０３は、取得した２次境界ブロックの上下左右のブロックを一時メモリ９０１から取得する。そして、２次境界ブロックの最上の画素にクロマキー色があり、かつ境界ブロックの上のブロックがＣＧブロックであるか否か判定する。なお、同様の処理を境界ブロックの右、左、下に関しても行う。この判定の結果、上下左右でこの条件に合致しない場合は、Ｓ１４０６に進む。
【００５３】
一方、Ｓ１４０２の判定の結果、少なくとも上下左右の何れかでこの条件に合致する場合は、Ｓ１４０３において２次境界ブロックの隣接のブロックを２次境界ブロックにする。そして、Ｓ１４０４において、この２次境界ブロックについてクロマキー色に近い画素をクロマキー色に置き換える処理を行い、結果をブロックの情報とともに一時メモリ９０１へ格納する。Ｓ１４０４の詳細な手順については後述する。
【００５４】
次に、Ｓ１４０５においてＳ１４０１で取得したブロックを処理終了ブロックとして、一時メモリ９０１に格納する。そして、Ｓ１４０６において、隣接ブロック画素値判定部９０３は、一時メモリ９０１に格納されている全ての２次境界ブロックについて処理を行ったか否かを判定する。この判定の結果、まだ処理していない２次境界ブロックがある場合はＳ１４０１へ戻り、終了するまで処理を繰り返す。
【００５５】
図１５は、図１３のＳ１３０４及び図１４のＳ１４０４の詳細な処理手順の一例を示すフローチャートである。
まず、Ｓ１５０１において、隣接ブロック画素値判定部９０３は、対象となる隣接ブロックに対し、広い範囲でのクロマキー色の範囲を決定する。そして、Ｓ１５０２において、隣接ブロック画素値判定部９０３は、Ｓ１４０２（またはＳ１３０２）で判定した隣接ブロックと、境界ブロック（２次境界ブロック）との境界画素を１ライン分取得する。図１０に示す例では、ブロック８０１の最右の縦一列の画素を取得する。
【００５６】
次に、Ｓ１５０３において、Ｓ１５０２で取得した画素の中にＳ１５０１で取得したクロマキー色の範囲内の画素があり、かつ、この画素の隣の近傍にクロマキー色の画素があるか否かを判定する。図１０に示す例では、ブロック８０１の最右の上から４、５、６画素目の右隣、すなわちブロック８０２の最左の上から４、５、６画素目付近が、クロマキー色であるか否かを判定する。この判定の結果、該当する画素がない場合はＳ１５０６に進む。
【００５７】
一方、Ｓ１５０３の判定の結果、該当する画素がある場合はＳ１５０４において、Ｓ１５０１で取得したクロマキー色の範囲内の色であり、かつ隣の画素がクロマキー色付近のみの画素である条件を満たす画素に関して、この画素値をクロマキー色に置き換える。そして、Ｓ１５０５において、ブロック内の全てのライン（縦、または横）について処理が終了したか否かを判定し、終了していない場合はＳ１５０２に戻り、終了するまで、Ｓ１５０２からＳ１５０５の処理を繰り返す。続いて、Ｓ１５０６において、処理結果を一時メモリ９０１にブロックの情報とともに格納する。
【００５８】
図１６は、図１５の処理結果を示す図である。図１６（ａ）に示す例では、ブロック１６０１が境界ブロックで、ブロック１６０２が２次境界ブロックであり、ブロック１６０１の左側に２次境界ブロックがある時の例を示している。この場合、ブロック１６０２の右から４つめまでのクロマキー色に近い色をクロマキー色に置き換える。同様に、図１６（ｂ）は境界ブロックの右側に２次境界ブロックがある時の例を示し、図１６（ｃ）は境界ブロックの上側に２次境界ブロックがある時の例を示し、図１６（ｄ）は境界ブロックの下側に２次境界ブロックがある時の例を示している。
【００５９】
以上のように本実施形態によれば、検出した境界ブロックの周囲の画素の色を判定し、この境界ブロックの隣接しているブロックの画素まで判定するようにした。これにより、より複雑な形状のＣＧについてもきれいにＣＧ画像を合成することができ、さらにＣＧ内部におけるクロマキー判定誤差をより低減することが可能になる。
【００６０】
（第３の実施形態）
第１及び第２の実施形態では、エンコード／デコードで発生した劣化画像に対してＣＧ部とクロマキー部との境界を含む境界ブロックを検出し、ブロックに応じてクロマキー色の範囲を変更する方法について説明した。本実施形態では、無線通信の通信エラーによって画像補間を行ったために発生した劣化画像に対して、きれいにクロマキー合成できる方法について説明する。なお、本実施形態では説明を分かりやすくするために、無線伝送では画像を圧縮せずに伝送する方法について説明するが、無線伝送部では圧縮した画像で通信を行ってもよい。
【００６１】
図１７は、本実施形態に係るＭＲシステム１７００の機能構成例を示すブロック図である。図２に示した構成と比べると、エンコード部２１３及びデコード部２０６の代わりに、補間部１７０１を備えている。本実施形態に係るＭＲシステムでは、リアルタイムで画像を表示する必要があるため、コントローラ２１０とＨＭＤ２０１との間で画像の伝送に通信エラーがあっても、再送しないで表示するシステム構成であることが望ましい。そのため、補間部１７０１は、コントローラ２１０とＨＭＤ２０１との間で通信エラーが発生して画像を取得できなかった場合に画像の補間を行う。補間部１７０１で補間した画像は画像合成ユニット２０５へ送られる。このように本実施形態では、ＣＧ画像のエンコード及びデコードが行われないため、ＣＧ画像は、境界部分で高周波成分が失われていない。
【００６２】
図１８は、コントローラ２１０とＨＭＤ２０１との間で通信エラーが発生した際の画像の一部を表した図である。図１８において、１つの四角は１画素を表しており、画素１８０１はエラーが発生したため補間が必要な欠陥画素を表し、画素１８０２はＣＧの画素を表し、画素１８０３はクロマキー色の画素を表している。この場合、補間部１７０１は、画素１８０１を周囲の画素から計算して補間する。補間方法は、どのような方法でもよく周囲８画素に一定の重みをつけて求めてもよいし、上下左右４画素に重みをつけて求めてもよい。また、ＭＲシステムが３Ｄ映像に対応している場合は、もう片方の画像（例えば、図１８が左眼用の画像の場合は、右眼用の画像のほぼ同じ場所）から補間を行ってもよい。
【００６３】
本実施形態では、補間方法として周囲８画素に重みをつけて求める方法について説明する。図１８に示す例の場合、画素１８０１は、周囲８画素のうちの７画素がクロマキー色のため、補間処理を行うとクロマキー色ではないがクロマキー色に近い色となる。従って、クロマキー色のみを撮像画像に置き換えると、画素１８０１は撮像画像には置き換わらず、クロマキー色に近い画素で表示される。そのため、この部分はノイズのように表示されてしまう。本実施形態ではこのような劣化した画像に対してもきれいにクロマキー合成できる方法について説明する。
【００６４】
補間部１７０１で補間処理が終了すると、このブロックは補間部１７０１で処理を行ったブロックであることと、補間処理を実施したこととを画像合成ユニット２０５へ通知する。なお、本実施形態では、図１８に示すように６×６画素で補間を行っているが、８×８画素でも、４×４画素でもよい。また、画像合成ユニット２０５で処理するブロックは、この補間の単位で説明するが補間の単位でなくてもよい。
【００６５】
ここで、画像合成ユニット２０５の詳細な構成は、図３と同様のため説明を省略する。図１９は、本実施形態におけるクロマキー合成処理手順の一例を示すフローチャートである。本実施形態では、図７の処理と異なる個所についてのみ説明する。また、図１９に示す処理は、１つのブロックを処理する例を示しており、補間部１７０１で行った補間処理の単位で行い、１つの画像全て終わるまで実施する。
【００６６】
まず、Ｓ１９０１において、対象ブロックの中に補間画素があるか否かを判定する。この判定の結果、補間画素がある場合はＳ７０１に進み、補間画素がない場合はＳ７０５に進み、狭い範囲でクロマキー色の範囲を決定する。前述したように本実施形態では、ＣＧ画像はエンコード及びデコードが行われていないため、境界ブロックにおいては高周波成分が失われていない。そのため、補間画素がない場合は、境界ブロックにおいても狭い範囲でクロマキー色を決定する。なお、以降の処理は、図３と同じであるため説明を省略する。また、説明を省略するが、画像合成ユニット２０５を第２の実施形態のような構成とすることも可能である。
【００６７】
以上のように本実施形態によれば、通信エラーに伴って補間した劣化画像に対してもきれいにクロマキー合成することができ、さらにＣＧ内部におけるクロマキー判定誤差を低減できる。
【００６８】
（第４の実施形態）
第１〜第３の実施形態では、ビデオシースルーＨＭＤのシステム構成について説明した。本実施形態では光学シースルーの時の構成について説明する。
【００６９】
図２０は本実施形態に係る光学シースルーシステム２０００の機能構成例を示すブロック図である。本実施形態では、光学シースルーシステムのため、図２に示した構成と比べると、画像合成ユニット２０５の代わりに画像処理ユニット２００１を備えている。また、撮像画像とＣＧ画像とを重畳する処理は必要ないため、撮像部２０２で撮影した画像を表示部に送らないような構成になっている。また、表示部２０３にはハーフミラーがあり、ＨＭＤ使用者は表示部２０３を見ることにより光学シースルーでのＭＲ空間を体験することができる。
【００７０】
また、本実施形態ではＨＭＤ２０１に撮像部２０２を備え、この撮像部２０２で撮影した撮像画像からＨＭＤ２０１の位置姿勢を求めるようにしているが、ＨＭＤ２０１の位置姿勢を求められるものであれば、別の構成でもよい。さらに、表示部２０３に表示するＣＧ画像がＨＭＤ２０１の位置姿勢に関係ない場合には、ＨＭＤ２０１の位置姿勢を求める構成は不要となる。
【００７１】
図２１は、画像処理ユニット２００１の詳細な構成例を示すブロック図である。図３の画像合成ユニット２０５の構成と比べると撮像画像と合成する必要はないため、撮像画像用メモリ３０５、及び合成部３０１の代わりに画像処理部２１０１を備えている。画像処理部２１０１は、境界ブロック検出部３０３から出力されるブロックと、それに伴ってクロマキー色決定部３０４から出力されるクロマキー色の範囲とを元に、クロマキー色を所定の色（黒色）に置き換える。本実施形態ではクロマキー色を黒以外の色で説明するが、クロマキー色は黒色であってもよい。
【００７２】
図２２は、クロマキー色を黒色に置き換える処理手順の一例を示すフローチャートである。なお、図２２に示す処理では、１つのブロックを処理する例を示しており、１つのＣＧ画像全て終わるまで実施する。また、図７と同じ個所の説明は省略する。
【００７３】
Ｓ２２０１においては、画像処理部２１０１は、対象ブロックの中にＳ７０４またはＳ７０５で決定したクロマキー色の範囲の画素があるか否かを検索し、クロマキー色の範囲の画素があった場合は、この画素を黒色に置き換える。これにより、光学シースルーのシステムの場合、ＣＧとクロマキーとの境界に関してもきれいにＣＧ画像を表示することができる。また、説明を省略するが、第２及び第３の実施形態と組み合わせることも可能である。
【００７４】
以上のように本実施形態によれば、光学シースルーＨＭＤを用いたシステムにおいても劣化画像に対してきれいにＣＧ画像を表示することができる。
【００７５】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００７６】
３０２  ＣＧ画像用メモリ
３０３  境界ブロック検出部
３０４  クロマキー色決定部
【図１】
2015099562.tif 000003
【図２】
2015099562.tif 000004
【図３】
2015099562.tif 000005
【図４】
2015099562.tif 000006
【図５】
2015099562.tif 000007
【図６】
2015099562.tif 000008
【図７】
2015099562.tif 000009
【図８】
2015099562.tif 000010
【図９】
2015099562.tif 000011
【図１０】
2015099562.tif 000012
【図１１】
2015099562.tif 000013
【図１２】
2015099562.tif 000014
【図１３】
2015099562.tif 000015
【図１４】
2015099562.tif 000016
【図１５】
2015099562.tif 000017
【図１６】
2015099562.tif 000018
【図１７】
2015099562.tif 000019
【図１８】
2015099562.tif 000020
【図１９】
2015099562.tif 000021
【図２０】
2015099562.tif 000022
【図２１】
2015099562.tif 000023
【図２２】
2015099562.tif 000024
【図２３】
2015099562.tif 000025
【図２４】
2015099562.tif 000026