説明

輪郭抽出装置、輪郭抽出方法、及び、コンピュータプログラム

【課題】 被写体が比較的遠距離に位置する場合であっても、被写体の輪郭を簡易に抽出できる輪郭抽出装置を提供する。
【解決手段】 ステップS51にて、CPU3は、現在画像と前回画像との間の差分画像の各画素について、画素値の絶対値が一定値以上の画素のスコアに、一定ポイントを加算して、スコアを更新する。ステップS53にて、CPU3は、差分画像の各画素のスコアを、新たな画素値(頻度画素値)として、平滑化及び減衰処理を実行する。ステップS55にて、CPU3は、平滑化及び減衰処理後の頻度画素値が1ポイント以上の(0でない)範囲を有効領域VAに設定する。有効領域VAは、動いた部分及びその周辺部分であり、動いた部分を漠然と抽出し、これに基づき、輪郭を抽出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、被写体が写り込んだ画像を処理して、被写体の像の輪郭を抽出する輪郭抽出装置及びその関連技術に関する。
【背景技術】
【0002】
本件出願人による特許文献1には、被写体が写り込んだ画像を処理して、処理結果を出力する画像処理モジュールが開示されている。この画像処理モジュールでは、被写体が近距離に位置しているときは、輪郭検出モードに入り、被写体が遠距離に位置しているときは、動体検出モードに入る。
【0003】
輪郭検出モードでは、被写体に間欠的に赤外光を照射し、赤外光照射時画像と赤外光非照射時画像との差分画像を得ることにより、比較的簡易に、被写体の像を抽出し、輪郭を抽出することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】実用新案登録第3159906号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、動体検出モードでは、動体の輪郭を抽出できない。なぜなら、遠距離ゆえに、赤外光が届かず、輪郭を簡易に抽出することができないのである。もちろん、複雑なアルゴリズムを利用すれば、遠距離でも、輪郭の抽出は可能である。
【0006】
そこで、本発明は、被写体が比較的遠距離に位置する場合であっても、被写体の輪郭を簡易に抽出できる輪郭抽出装置及びその関連技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の観点によれば、輪郭抽出装置は、被写体が写り込んだ第1画像と、前記第1画像より過去の画像である、前記被写体が写り込んだ第2画像と、の間の差分画像を算出する差分手段と、前記差分画像の各画素について、画素値の変化を検出する検出手段と、前記差分画像の前記各画素について、前記画素値の変化の頻度を求める頻度算出手段と、前記差分画像の前記各画素について、前記画素値の変化の頻度を新たな画素値(以下、「頻度画素値」と呼ぶ。)として、その頻度画素値に対して、平滑化及び減衰処理を実行する平滑化及び減衰手段と、前記平滑化及び減衰処理が施された前記頻度画素値に基づいて、前記被写体の像の輪郭を抽出する輪郭抽出手段と、を備える。
【0008】
この構成によれば、平滑化及び減衰処理を行なうことで、動いたと判断した部分(変化したと判断した画素)だけを実際に動いた部分(変化した画素)として抽出するのではなく、動いたと判断した部分をぼかして、動いた部分として、大雑把に、つまり、広めに(漠然と)抽出することで、後段での処理における情報の欠如(必要な情報の欠落)を防止できる。なお、動いた部分だけを抽出したつもりが、本来動いた部分の情報の抽出漏れがあると、後段での処理結果の精度が落ちてしまい、正確な輪郭抽出ができなくなる場合もある。
【0009】
また、差分手段が算出した差分画像においても、輪郭が検出できる。この場合、手が動いた方向の差分値は手の輪郭を示すが、手が動いた方向と逆方向の差分値は手の輪郭ではなく、手の輪郭に接する背景を示す。従って、差分画像中の輪郭は、全てが手の輪郭ではない。このため、平滑化及び減衰処理を行なうことで、動いた部分を漠然と抽出することで、本来抽出したい手の輪郭抽出の精度の向上を図ることができる。
【0010】
この輪郭抽出装置は、前記第1画像から、肌色領域を抽出する肌色抽出手段と、前記平滑化及び減衰処理が施された前記頻度画素値に基づいて、動いた部分及びその周辺部分としての有効領域を規定し、前記有効領域との関連で、前記肌色領域によって、動いていない部分を補間する補間手段と、をさらに備え、前記輪郭抽出手段は、前記補間後の画像に基づいて、前記被写体の像の輪郭を抽出する。
【0011】
この構成によれば、第1画像(元画像)の肌色によって、対象物体(例えば、手)の内部の静止している部分が補間されて、抽出したい対象物体が塗り潰される。従って、手の平の中心付近など、手の小さな動きでは、その動きがなく、抽出したい手の一部であるにもかかわらず、有効領域に設定されない部分を有効なものとして設定できる。このため、面積に応じた除去処理において本来除去すべきでない領域が除去されるのを防止できる。仮に補間を行なわず、手の中心部分が有効なものとして扱われない場合、面積が小さくなって、除去され、手を検出できなくなる。
【0012】
この輪郭抽出装置は、前記補間後の画像に基づいて粗く抽出された輪郭画像と、前記第1画像と、に基づいて、新たに肌色の範囲を設定する再設定手段をさらに備え、前記輪郭抽出手段は、新たに設定された前記肌色の範囲に基づいて、前記被写体の像の輪郭を抽出する。
【0013】
この構成によれば、対象物体(手など)及びその周囲環境(照明や背景等)に最適化した肌色の範囲を規定できる。そして、このような肌色の範囲を利用することにより、肌色により輪郭を抽出する際の精度を向上できる。
【0014】
本発明の第2の観点によれば、輪郭抽出方法は、コンピュータが、被写体が写り込んだ第1画像と、前記第1画像より過去の画像である、前記被写体が写り込んだ第2画像と、の間の差分画像を算出するステップと、前記コンピュータが、前記差分画像の各画素について、画素値の変化を検出するステップと、前記コンピュータが、前記差分画像の前記各画素について、前記画素値の変化の頻度を求めるステップと、前記コンピュータが、前記差分画像の前記各画素について、前記画素値の変化の頻度を新たな画素値(以下、「頻度画素値」と呼ぶ。)として、その頻度画素値に対して、平滑化及び減衰処理を実行するステップと、前記コンピュータが、前記平滑化及び減衰処理が施された前記頻度画素値に基づいて、前記被写体の像の輪郭を抽出するステップと、を含む。
【0015】
この構成によれば、上記第1の観点による輪郭抽出装置と同様の効果を奏する。
【0016】
本発明の第3の観点によれば、コンピュータプログラムは、コンピュータに、被写体が写り込んだ第1画像と、前記第1画像より過去の画像である、前記被写体が写り込んだ第2画像と、の間の差分画像を算出するステップと、前記差分画像の各画素について、画素値の変化を検出するステップと、前記差分画像の前記各画素について、前記画素値の変化の頻度を求めるステップと、前記差分画像の前記各画素について、前記画素値の変化の頻度を新たな画素値(以下、「頻度画素値」と呼ぶ。)として、その頻度画素値に対して、平滑化及び減衰処理を実行するステップと、前記平滑化及び減衰処理が施された前記頻度画素値に基づいて、前記被写体の像の輪郭を抽出するステップと、を実行させる。
【0017】
この構成によれば、上記第1の観点による輪郭抽出装置と同様の効果を奏する。
【図面の簡単な説明】
【0018】
【図1】本発明の実施の形態による輪郭抽出装置を実現するパーソナルコンピュータの電気的構成を示す図である。
【図2】図1のCPU3による輪郭抽出処理の全体流れの一例を示すフローチャートである。
【図3】図2のステップS7の処理の流れの一例を示すフローチャートである。
【図4】図2のステップS9の処理の流れの一例を示すフローチャートである。
【図5】図2のステップS11の処理の流れの一例を示すフローチャートである。
【図6】図2のステップS17の処理の流れの一例を示すフローチャートである。
【図7】図2のステップS19の処理の流れの一例を示すフローチャートである。
【図8】図2のステップS21の処理の流れの一例を示すフローチャートである。
【図9】図2のステップS27の処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
【0020】
図1は、本発明の実施の形態による輪郭抽出装置を実現するパーソナルコンピュータの電気的構成を示す図である。図1を参照して、このパーソナルコンピュータ1は、CPU(中央演算処理装置)3、メインメモリ5、チップセット7、GPU(グラフィックスプロセシングユニット)9、SPU(サウンドプロセシングユニット)11、HDD(ハードディスクドライブ)13、ドライブ15、及び通信部17を含む。
【0021】
CPU3は、HDD13に格納されたコンピュータプログラム(輪郭抽出プログラム)を実行して、後述するフローチャート(図2等)で示す輪郭抽出処理を行う。メインメモリ5は、CPU3から直接読み書きが行われる高速のメモリである。GPU9は、グラフィックス処理を実行し、モニタ23に映像信号を与える。SPU11は、サウンド処理を実行し、スピーカ21に音声信号を与える。HDD13は、OSやアプリケーションソフトウェア(輪郭抽出プログラム)等のコンピュータプログラム並びにこれらが用いるデータを書き込むために用いる補助記憶装置である。ドライブ15は、リムーバル記録媒体からデータを読み込んだり、書き込んだりする装置である。リムーバブル記録媒体に、輪郭抽出プログラムを格納して、パーソナルコンピュータ1にインストールできる。
【0022】
リムーバブル記録媒体は、例えば、CD(CD−ROM、Video−CDを含む)やDVD(DVD−Video、DVD−ROM、DVD−RAMを含む)などの光ディスク、ROMカートリッジ、バッテリバックアップ付きのRAMメモリカートリッジ、フラッシュメモリカートリッジ、及び不揮発性RAMカートリッジなどの半導体メモリ、光磁気ディスク、フレキシブルディスク、磁気テープ、及び、ハードディスクなどを含む。もちろん、ネットワークを介して、輪郭抽出プログラムを配布することもできる。
【0023】
通信部17は、ネットワークへの接続を司るLANカードやUSBコントローラなどを含み(図示せず)、通信を制御する。カメラ19は、例えば、USB対応のCCDカメラ等である。カメラ19は、被写体(人間の手等)を撮影し、撮影画像を、通信部17及びチップセット7を介して、CPU3に与える。CPU3は、この撮影画像を処理して、手の輪郭を抽出する。
【0024】
CPU3、GPU9、SPU11、HDD13、ドライブ15、通信部17、キーボード25、及びマウス27といった機能ユニットは、チップセット7に接続される。チップセット7は、これに接続される機能ユニット間のデータの受け渡しを管理する。
【0025】
図2は、図1のCPU3による輪郭抽出処理の全体流れの一例を示すフローチャートである。図2を参照して、ステップS1にて、CPU3は、現在の撮影画像(以下、「元画像」と呼ぶこともある。)と前回の撮影画像との間の差分画像を算出する。カメラ19は、人間の手の動きを撮影し、所定のフレームレートで、撮影画像をCPU3に与える。現在の撮影画像は、カメラ19が出力した最新の撮影画像である。前回の撮影画像は、最新の撮影画像の1つ前にカメラ19が出力した撮影画像である。なお、前回の撮影画像は、過去の撮影画像ということができる。
【0026】
ステップS3にて、CPU3は、現在の撮影画像から、固定肌色レンジ内の領域(肌色の領域)を抽出する。固定肌色レンジは、HSV色空間(色相、彩度、明度)により、定義された固定された範囲である。本実施の形態では、固定肌色レンジとして、固定肌色レンジRH及び固定肌色レンジRBを定義する。固定肌色レンジRHは、色相により定義され、人間の肌の色がカバーできる広い範囲が定義される。例えば、固定肌色レンジRHは、14度を中心に、±24度の範囲である。固定肌色レンジRBは、明度により定義される。
【0027】
具体的には、CPU3は、現在の撮影画像から、固定肌色レンジRB内の明度を有する画素を抽出する。そして、CPU3は、固定肌色レンジRB内の明度を有する画素から、さらに、固定肌色レンジRH内の色相を有する画素を抽出する。このようにして、CPU3は、肌色の領域を抽出する。
【0028】
本実施の形態では、固定肌色レンジRBを絞ることにより、比較的広い範囲をとっている固定肌色レンジRHを実質的に制限し、人間の肌以外の物体の色相が固定肌色レンジRH内に入っている場合であっても、その物体の色が人の肌色として抽出されることを極力防止している。
【0029】
ステップS5にて、CPU3は、ソーベル(Sobel)フィルタにより、現在の撮影画像から、エッジを検出する。そして、CPU3は、検出したエッジのうち、固定肌色レンジRH内の色相を持つ画素をエッジから除外する。人の肌以外の物体の色相及び明度が固定肌色レンジRH及びRB内に入っている場合であって、その物体の像が、固定肌色レンジRH内の色相を持つエッジと接触している場合に、その接触を分離するためである。
【0030】
ステップS7にて、CPU3は、差分画像に基づく平滑化及び減衰処理を実行する。
【0031】
図3は、図2のステップS7の処理の流れの一例を示すフローチャートである。図3を参照して、ステップS51にて、CPU3は、差分画像の各画素について、画素値の絶対値が一定値Cd以上の画素のスコアに、一定ポイントPを加算して、スコアを更新する。差分画像の画素のうち、画素値の絶対値が一定値Cd以上の画素は、前回の撮影画像からの変化が大きい画素である。従って、変化の大きい画素に一定ポイントPが加算される。このため、差分画像の各画素のスコア(一定ポイントPの加算結果)は、画素値の変化の頻度を表す。なお、一定値Cd及び一定ポイントPは、経験的実験的に定められる。
【0032】
ステップS53にて、CPU3は、差分画像の各画素のスコアを、新たな画素値(以下、「頻度画素値」と呼ぶ。)として、平滑化及び減衰処理を実行する。例えば、本実施の形態では、CPU3は、平滑化フィルタとして、変形したガウシアンフィルタを用い、頻度画素値を平滑化する(ぼかす)。変形したガウシアンフィルタは、中心の注目画素の重みを、通常のガウシアンフィルタより大きくして、周囲画素からの影響を小さくし、通常のガウシアンフィルタよりも、平滑化(ぼかし)の程度を小さくしている。
【0033】
さらに、CPU3は、平滑化した(ぼかした)頻度画素値に、小数を乗じて、減衰処理を実行する。CPU3は、減衰処理の結果、結果値が1より小さくなった場合、その結果値を0にする。
【0034】
ガウシアンフィルタ(通常、変形)による平滑化のみでは、重み付け平均値が求まるだけであり、減衰しないため、過去の画素の変化(過去の動き)なのか、現在の画素の変化(現在の動き)なのかを、区別できないので、このような減衰処理を実行する。仮に減衰処理を実行しないと、ある画素が、過去には変化したが、現在は変化していない場合でも、平滑化後の値が大きなものとして残ってしまい、現在の変化と区別できない。
【0035】
以上のように、平滑化及び減衰処理を行なうことで、動いたと判断した部分(変化したと判断した画素)だけを実際に動いた部分(変化した画素)として抽出するのではなく、動いたと判断した部分をぼかして、動いた部分として、大雑把に、つまり、広めに(漠然と)抽出することで、後段での処理における情報の欠如(必要な情報の欠落)を防止できる。なお、動いた部分だけを抽出したつもりが、本来動いた部分の情報の抽出漏れがあると、後段での処理結果の精度が落ちてしまい、正確な輪郭抽出ができなくなる場合もある。
【0036】
また、ステップS1の差分画像においても、輪郭が検出できる。この場合、手が動いた方向の差分値は手の輪郭を示すが、手が動いた方向と逆方向の差分値は手の輪郭ではなく、手の輪郭に接する背景を示す。従って、差分画像中の輪郭は、全てが手の輪郭ではない。このため、平滑化及び減衰処理を行なうことで、動いた部分を漠然と抽出することで、本来抽出したい手の輪郭抽出の精度の向上を図ることができる。
【0037】
なお、上記例では、CPU3は、平滑化後に減衰処理を行なったが、それらを同時に行うこともできる。
【0038】
さて、ステップS55にて、CPU3は、平滑化及び減衰処理後の頻度画素値が1ポイント以上の(0でない)範囲を有効領域VAに設定する。
【0039】
図2に戻って、ステップS9にて、CPU3は、ステップS3,S5及びS7の結果を合成する。
【0040】
図4は、図2のステップS9の処理の流れの一例を示すフローチャートである。図4を参照して、ステップS73にて、CPU3は、ステップS55の有効領域VAにおいて、ステップS5で検出したエッジを白色で塗り潰す。ステップS75にて、CPU3は、ステップS5で検出したエッジを除き、有効領域VAを、ステップS3で抽出した肌色で塗り潰す。
【0041】
図2に戻って、ステップS11にて、CPU3は、ステップS9の結果画像の塗り潰し処理を実行する。
【0042】
図5は、図2のステップS11の処理の流れの一例を示すフローチャートである。図5を参照して、ステップS91にて、CPU3は、ステップS9の結果画像から、肌色を検出する。ステップS93にて、CPU3は、ステップS91で検出した肌色の画素を起点として、ステップS3の結果画像を参照しながら、上下左右で肌色が連続している間、第1条件及び第2条件の一方又は双方が満たされるまで、ステップS9の結果画像を肌色で塗り潰す。第1条件は、ステップS3の結果画像にて肌色以外の色が現われることである。第2条件は、ステップS9の結果画像にて白色(ステップS5で検出したエッジ)が現れることである。ステップS95にて、CPU3は、ステップS93の結果画像を2値化、つまり、肌色部分を1、肌色以外の部分を0とする。
【0043】
以上のような塗り潰し処理により、元画像の肌色によって手の内部の静止している部分が補間されて、抽出したい手等の閉じた領域が塗り潰される。従って、手の平の中心付近など、手の小さな動きでは、その動きがなく、抽出したい手の一部であるにもかかわらず、有効領域VA(ステップS55)に設定されない部分を有効なものとして設定できる。このような塗り潰し処理によって、後述するステップS15の処理にて、本来除去すべきでない領域が除去されるのを防止できる。仮に塗り潰し処理を行なわず、手の中心部分が有効なものとして扱われない場合、面積が小さくなって、ステップS15で除去され、手を検出できなくなる。
【0044】
図2に戻って、ステップS13にて、CPU3は、現在の撮影画像とステップS11の結果画像(つまり、ステップS95の2値化画像)との論理積を計算する。ステップS15にて、CPU3は、ステップS13の結果画像中、一定面積以下の閉じた領域をノイズとして除去する。この場合、CPU3は、ステップS13の結果画像を2値化して(肌色を1、それ以外の色を0)、閉じた領域の面積を算出する。なお、ステップS13の処理は、面積が小さい閉じた領域が、人の肌でないにもかかわらず、肌色の成分を有する場合に、後述するステップS17の処理に影響を与えるのを防止する。
【0045】
ここで、ステップS15の結果画像において、閉じた領域の画素のうち、画素値が0の画素と接している画素が輪郭である。このようにして抽出された輪郭は、まだ精度が低いので、後段の処理で、さらに精度よく輪郭を抽出して行く。
【0046】
ステップS17にて、CPU3は、ステップS15の結果画像に基づいて、新たに肌色を抽出する。
【0047】
図6は、図2のステップS17の処理の流れの一例を示すフローチャートである。図6を参照して、ステップS111にて、CPU3は、ステップS15の結果画像に含まれる閉じた領域の肌色の範囲を、新たな肌色レンジ(以下、「動的肌色レンジ」と呼ぶこともある。)として設定する。動的肌色レンジは、HSV色空間(色相、彩度、明度)により定義された動的な範囲である。本実施の形態では、動的肌色レンジは、色相により定義され、ステップS15の結果画像に含まれる閉じた領域の肌色の色相の範囲として定義される。
【0048】
ステップS113にて、CPU3は、元画像(現在の撮影画像)から、動的肌色レンジ内の色相を有する画素を抽出する。このようにして、CPU3は、元画像から、肌色の領域を再抽出する。
【0049】
固定肌色レンジRHは固定された一定値であり、広く人の肌の色をカバーしているが、動的肌色レンジは、対象物体(手など)及びその周囲環境(照明や背景等)に最適化した肌色の範囲を規定する。そして、このような動的肌色レンジを利用することにより、肌色により輪郭を抽出する際の精度を向上できる。
【0050】
図2に戻って、ステップS19にて、CPU3は、ステップS5,S7及びS17の結果を合成する。
【0051】
図7は、図2のステップS19の処理の流れの一例を示すフローチャートである。図7を参照して、ステップS141にて、CPU3は、ステップS7の有効領域VAにおいて、ステップS5で検出したエッジを白色で塗り潰す。ステップS143にて、CPU3は、ステップS5で検出したエッジを除き、有効領域VAを、ステップS17で抽出した肌色で塗り潰す。
【0052】
図2に戻って、ステップS21にて、CPU3は、ステップS19の結果画像の塗り潰し処理を実行する。
【0053】
図8は、図2のステップS21の処理の流れの一例を示すフローチャートである。図8を参照して、ステップS161にて、CPU3は、ステップS19の結果画像から、肌色を検出する。ステップS163にて、CPU3は、ステップS161で検出した肌色の画素を起点として、ステップS113の結果画像を参照しながら、上下左右で肌色が連続している間、第3条件及び第4条件の一方又は双方が満たされるまで、ステップS19の結果画像を肌色で塗り潰す。第3条件は、ステップS113の結果画像にて肌色以外の色が現われることである。第4条件は、ステップS19の結果画像にて白色(ステップS5で検出したエッジ)が現れることである。ステップS165にて、CPU3は、ステップS163の結果画像を2値化、つまり、肌色部分を1、肌色以外の部分を0とし、1の画素を白色に、0の画素を黒色に塗り潰す。
【0054】
以上のような塗り潰し処理により、元画像の肌色によって手の内部の静止している部分が補間されて、抽出したい手等の閉じた領域が塗り潰される。従って、手の平の中心付近など、手の小さな動きでは、その動きがなく、抽出したい手の一部であるにもかかわらず、有効領域VA(ステップS55)に設定されない部分を有効なものとして設定できる。このような塗り潰し処理によって、後述するステップS25の処理にて、本来除去すべきでない領域が除去されるのを防止できる。仮に塗り潰し処理を行なわず、手の中心部分が有効なものとして扱われない場合、面積が小さくなって、ステップS25で除去され、手を検出できなくなる。また、後述するステップS29で手の形状を認識するためのアルゴリズムによっては、手の中心部分が有効なものとして扱われない場合、正確に、手の形状を認識できない場合も発生する。
【0055】
図2に戻って、ステップS23にて、CPU3は、ステップS21の結果画像(つまり、ステップS165の白黒画像)の平滑化とHVノイズの除去を実行する。具体的には、CPU3は、ステップS165の白黒画像中の孤立した黒点(例えば、ごま塩雑音)をメディアンフィルタにより除去する(平滑化の一種)。また、CPU3は、ステップS165の白黒画像において、周囲に3画素以上白画素がない白画素を黒画素にして、角を滑らかにする(円滑化の一種)。さらに、CPU3は、HVノイズ、つまり、水平方向に延びるライン状のノイズ及び垂直方向に延びるライン状のノイズを除去する。
【0056】
ステップS25にて、CPU3は、ステップS23の結果画像に対してラベリング処理を施す。具体的には、CPU3は、ステップS23の結果画像中の連結成分(つまり孤立した白色領域)に番号を割り当てる。この際、CPU3は、孤立した白色領域の面積を算出し、その面積が一定値以下である場合、その孤立した白色領域をノイズとして除去し、番号の割り当ては行わない。
【0057】
ここで、ステップS25の結果画像において、連結成分の白画素のうち、黒色の画素と接している画素が輪郭である。このようにして抽出された輪郭は、精度の良い輪郭である。
【0058】
ステップS27にて、CPU3は、ステップS25の結果画像から手を抽出する。例えば、ステップS25の結果画像中の連結成分が腕から手までの領域であった場合、その連結成分から手だけを抜き出す。
【0059】
図9は、図2のステップS27の処理の流れの一例を示すフローチャートである。図9を参照して、ステップS181にて、CPU3は、ステップS25の結果画像中の連結成分(孤立した白色領域)ごとに、各画素(白画素)の密度を算出する。具体的には、CPU3は、白画素の密度を算出する際、その白画素を起点とした水平方向(左右方向)の白画素数と、その白画素を起点とした垂直方向(上下方向)の白画素数と、を計数し、それらの合計値を、当該白画素の密度とする。
【0060】
ステップS183にて、CPU3は、連結成分から、一定値C以上の密度の白画素を除去し、残った白画素から重心を計算する。この場合、例えば、CPU3は、該当する連結成分の全白画素の密度の平均値を一定値Cとして使用する。
【0061】
連結成分が腕から手までの領域である場合であって、手が「パー」の形状をしている場合、腕部分の白画素の密度は大きく、指部分の白画素の密度は小さくなる。従って、ステップS183の処理では、腕の部分の白画素の多くが除去される。このため、残った白画素で計算された重心は、「パー」の形状をした手の重心に近くなる。
【0062】
それ故、ステップS185にて、CPU3は、ステップS183で求めた重心を中心とした一定範囲に包含される、連結成分の領域を手と認識する。この場合、手と認識された、連結成分の当該領域の白画素のうち、黒色の画素と接している画素が手の輪郭である。
【0063】
図2に戻って、ステップS29にて、CPU3は、ステップS27で抽出した手の形状(パー)を所定のアルゴリズムにより認識する。この際、例えば、CPU3は、アフィン変換により、手の像を縮小し、縮小後の手の像に対して、その形状を認識するためのアルゴリズムを適用する。そして、CPU3は、手の形状を認識した後、逆変換により、手の像を元の大きさに戻す。
【0064】
さらに、本実施の形態では、第1閾値THH(図6のステップS153参照)を設けているので、画素値の変化の頻度が高い動き、例えば、テレビジョンのちらつき等、周期的な比較的周波数の高い動きをノイズとして除去できる。また、第2閾値THL(図6のステップS153参照)を設けているので、画素値の変化の頻度が低い動き、例えば、撮影環境(撮影空間やイメージセンサ5の状態)の変化から発生した画像上のノイズを除去できる。
【0065】
さて、以上のように、本実施の形態によれば、平滑化及び減衰処理を行なうことで(ステップS7)、動いたと判断した部分(変化したと判断した画素)だけを実際に動いた部分(変化した画素)として抽出するのではなく、動いたと判断した部分をぼかして、動いた部分として、大雑把に、つまり、広めに(漠然と)抽出することで、後段での処理における情報の欠如(必要な情報の欠落)を防止できる。なお、動いた部分だけを抽出したつもりが、本来動いた部分の情報の抽出漏れがあると、後段での処理結果の精度が落ちてしまい、正確な輪郭抽出ができなくなる場合もある。
【0066】
また、ステップS1の差分画像においても、輪郭が検出できる。この場合、手が動いた方向の差分値は手の輪郭を示すが、手が動いた方向と逆方向の差分値は手の輪郭ではなく、手の輪郭に接する背景を示す。従って、差分画像中の輪郭は、全てが手の輪郭ではない。このため、平滑化及び減衰処理を行なうことで、動いた部分を漠然と抽出することで、本来抽出したい手の輪郭抽出の精度の向上を図ることができる。
【0067】
また、本実施の形態によれば、元画像の肌色によって、対象物体(例えば、手)の内部の静止している部分が補間されて、抽出したい対象物体が塗り潰される(ステップS11、S21)。従って、手の平の中心付近など、手の小さな動きでは、その動きがなく、抽出したい手の一部であるにもかかわらず、有効領域に設定されない部分を有効なものとして設定できる。このため、面積に応じた除去処理において本来除去すべきでない領域が除去されるのを防止できる。仮に補間を行なわず、手の中心部分が有効なものとして扱われない場合、面積が小さくなって、除去され、手を検出できなくなる。
【0068】
さらに、本実施の形態によれば、動的肌色レンジを利用するので(ステップS17)、対象物体(手など)及びその周囲環境(照明や背景等)に最適化した肌色の範囲を規定できる。そして、このような肌色の範囲を利用することにより、肌色により輪郭を抽出する際の精度を向上できる。
【0069】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
【0070】
(1)CPU3に各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、また、並列的あるいは個別に実行される処理も含むものである。
【0071】
(2)本明細書及び特許請求の範囲において、手段とは必ずしも物理的手段を意味するものではなく、各手段の機能がソフトウェアによって実現される場合も含む。さらに、1つの手段の機能が2つ以上の物理的手段により実現されても、もしくは2つ以上の手段の機能が1つの物理的手段により実現されてもよい。
【符号の説明】
【0072】
1…パーソナルコンピュータ、3…CPU、5…メインメモリ、7…チップセット、9…GPU、11…SPU、13…HDD、15…ドライブ、17…通信部、19…カメラ、21…スピーカ、23…モニタ、25…キーボード、27…マウス。

【特許請求の範囲】
【請求項1】
被写体が写り込んだ第1画像と、前記第1画像より過去の画像である、前記被写体が写り込んだ第2画像と、の間の差分画像を算出する差分手段と、
前記差分画像の各画素について、画素値の変化を検出する検出手段と、
前記差分画像の前記各画素について、前記画素値の変化の頻度を求める頻度算出手段と、
前記差分画像の前記各画素について、前記画素値の変化の頻度を新たな画素値(以下、「頻度画素値」と呼ぶ。)として、その頻度画素値に対して、平滑化及び減衰処理を実行する平滑化及び減衰手段と、
前記平滑化及び減衰処理が施された前記頻度画素値に基づいて、前記被写体の像の輪郭を抽出する輪郭抽出手段と、を備える輪郭抽出装置。
【請求項2】
前記第1画像から、肌色領域を抽出する肌色抽出手段と、
前記平滑化及び減衰処理が施された前記頻度画素値に基づいて、動いた部分及びその周辺部分としての有効領域を規定し、前記有効領域との関連で、前記肌色領域によって、動いていない部分を補間する補間手段と、をさらに備え、
前記輪郭抽出手段は、前記補間後の画像に基づいて、前記被写体の像の輪郭を抽出する、請求項1記載の輪郭抽出装置。
【請求項3】
前記補間後の画像に基づいて粗く抽出された輪郭画像と、前記第1画像と、に基づいて、新たに肌色の範囲を設定する再設定手段をさらに備え、
前記輪郭抽出手段は、新たに設定された前記肌色の範囲に基づいて、前記被写体の像の輪郭を抽出する、請求項2記載の輪郭抽出装置。
【請求項4】
コンピュータが、被写体が写り込んだ第1画像と、前記第1画像より過去の画像である、前記被写体が写り込んだ第2画像と、の間の差分画像を算出するステップと、
前記コンピュータが、前記差分画像の各画素について、画素値の変化を検出するステップと、
前記コンピュータが、前記差分画像の前記各画素について、前記画素値の変化の頻度を求めるステップと、
前記コンピュータが、前記差分画像の前記各画素について、前記画素値の変化の頻度を新たな画素値(以下、「頻度画素値」と呼ぶ。)として、その頻度画素値に対して、平滑化及び減衰処理を実行するステップと、
前記コンピュータが、前記平滑化及び減衰処理が施された前記頻度画素値に基づいて、前記被写体の像の輪郭を抽出するステップと、を含む輪郭抽出方法。
【請求項5】
コンピュータに、
被写体が写り込んだ第1画像と、前記第1画像より過去の画像である、前記被写体が写り込んだ第2画像と、の間の差分画像を算出するステップと、
前記差分画像の各画素について、画素値の変化を検出するステップと、
前記差分画像の前記各画素について、前記画素値の変化の頻度を求めるステップと、
前記差分画像の前記各画素について、前記画素値の変化の頻度を新たな画素値(以下、「頻度画素値」と呼ぶ。)として、その頻度画素値に対して、平滑化及び減衰処理を実行するステップと、
前記平滑化及び減衰処理が施された前記頻度画素値に基づいて、前記被写体の像の輪郭を抽出するステップと、を実行させるためのコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate