(57)【要約】【課題】  人体の部位の形状を正確に認識し、人が意図する動作の方向とコンピュータが認識する方向を一致させることが可能な画像処理装置及び画像処理方法を提供する。【解決手段】  手領域抽出処理Ｓ１０では、撮像手段が取得した画像情報から人体部位（手）の領域が抽出される。手首座標算出処理Ｓ２０及び掌座標算出処理Ｓ３０では、抽出された人体部位の領域のうち、第１部位（手首）の座標と第２部位（掌）の座標が算出される。手差込角度算出処理Ｓ４０では、該第１部位座標と該第２部位座標と結んだ直線に基づいて、撮像領域に差込まれた人体部位（手）の角度が算出される。画像回転補正処理Ｓ５０では、差込角度に基づいて該画像情報が回転補正される。これにより、人体部位の動作を認識するのに必要な画像情報が得られる。【選択図】  図２
2014182442.tif 000002
【特許請求の範囲】
【請求項１】
撮像領域にある人体部位を撮像して画像情報として取得する撮像手段を用いて、該撮像手段が取得した画像情報に基づき該人体部位の動作を認識する画像処理装置であって、
前記画像情報から人体部位の領域を抽出する人体部位領域抽出手段と、
前記人体部位領域抽出手段が抽出した人体部位のうち、第１部位の座標である第１部位座標と第２部位の座標である第２部位座標とを算出する部位座標算出手段と、
前記部位座標算出手段が算出した第１部位座標と第２部位座標とを結ぶ直線の傾きから、人体部位の撮像領域への差込角度を算出する差込角度算出手段と、
前記差込角度算出手段が算出した差込角度に基づいて、前記画像情報を回転補正する画像回転補正手段とを備えることを特徴する画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記部位座標算出手段は、前記画像情報の周囲の画素を検出して、撮像領域にある人体部位の位置を判定することを特徴とする画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置において、
前記第１部位が手首、前記第２部位が掌又は手の甲であり、
前記部位座標算出手段は、前記手首の中央部が第１部位座標、前記掌又は手の甲の重心が第２部位座標となるように各座標を算出することを特徴とする画像処理装置。
【請求項４】
撮像領域にある人体部位を撮像して画像情報として取得し、該画像情報に基づいて該人体部位の動作を認識する画像処理方法であって、
前記画像情報から人体部位の領域を抽出する人体部位領域抽出工程と、
前記人体部位領域抽出工程で抽出された人体部位のうち、第１部位の座標である第１部位座標と第２部位の座標である第２部位座標とを算出する部位座標算出工程と、
前記部位座標算出工程で算出された第１部位座標と第２部位座標とを結ぶ直線の傾きから、人体部位の撮像領域への差込角度を算出する差込角度算出工程と、
前記差込角度算出工程で算出された差込角度に基づいて、前記画像情報を回転補正する画像回転補正工程とを備えることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器や表示装置の画面等を操作するために人体の動きを認識する画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
従来、人間の行う動作（ジェスチャ）を認識し、その認識結果に基づいてロボット等の機器を操作するために用いられる画像処理技術が知られている。
【０００３】
下記の非特許文献１に記載されている画像処理装置は、固定カメラで撮影された画像から手領域の重心と指先位置の情報を得て、手形状認識を行う。さらに、左手の形状と右手の指の間隔により、２つの車輪によって移動するロボットの行動及びその車輪の回転速度を調整し、ロボットの遠隔操縦を可能にしている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】丸谷誠慶  他著「２次元画像からの指先位置検出に基づく実時間手形状認識と移動ロボット遠隔操作タスクへの応用」情報処理学会研究報告［コンピュータビジョンとイメージメディア（２００２．５．９）］Ｐ１４５−１５２
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の装置では、カメラの撮像領域に対して手を斜め方向から入れた場合には、手の形状が正確に認識されない可能性があり、その場合には、ロボットが人の意図しない方向に移動してしまう。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、カメラの撮像領域に対して人の手或いは人体の他の部位がどの方向から移動してきても、人体の部位の形状を正確に認識し、人が意図する動作の方向とコンピュータが認識する方向を一致させることが可能な画像処理装置及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の画像処理装置は、撮像領域にある人体部位を撮像して画像情報として取得する撮像手段を用いて、該撮像手段が取得した画像情報に基づき該人体部位の動作を認識する画像処理装置であって、前記画像情報から人体部位の領域を抽出する人体部位領域抽出手段と、前記人体部位領域抽出手段が抽出した人体部位のうち、第１部位の座標である第１部位座標と第２部位の座標である第２部位座標とを算出する部位座標算出手段と、前記部位座標算出手段が算出した第１部位座標と第２部位座標とを結ぶ直線の傾きから、人体部位の撮像領域への差込角度を算出する差込角度算出手段と、前記差込角度算出手段が算出した差込角度に基づいて、前記画像情報を回転補正する画像回転補正手段とを備えることを特徴する。
【０００８】
本発明の画像処理装置によれば、手や足等の人体部位が撮像領域に差込まれたとき、撮像手段がこれを画像情報として取得する。人体部位領域抽出手段が、該画像情報から人体部位の領域を抽出し、部位座標算出手段が、該抽出された人体部位のうち第１部位の座標と第２部位の座標とを算出するので、画像情報中の人体部位の形状や位置が認識される。
【０００９】
また、差込角度算出手段が、該第１部位座標と該第２部位座標とを結ぶ直線の座標軸に対する傾きから、撮像領域に差込まれた人体部位の角度（差込角度）を算出する。そして、画像回転補正手段が該画像情報を差込角度に基づいて回転補正する。これにより、人体部位が、撮像領域に対して斜め方向から差込まれた場合でも、一定方向に補正することができる。従って、手や足等の人体部位が動作した場合、上記の一連の処理によって画像情報が一定方向に補正されるので、人が意図する動作の方向とコンピュータが認識する方向を一致させることができる。
【００１０】
本発明の画像処理装置において、前記部位座標算出手段は、前記画像情報の周囲の画素を検出して、撮像領域にある人体部位の位置を判定することが好ましい。
【００１１】
本発明では、部位座標算出手段は、画像情報の周囲（例えば、４辺）の画素を検出し、例えば、画素に人体部位が記録されているか否かを調べて、該人体部位の位置を判定する。これにより、人体部位が撮像領域のどの方向から差込まれたかが正確に認識される。
【００１２】
本発明の画像処理装置において、前記第１部位が手首、前記第２部位が掌又は手の甲であり、前記部位座標算出手段は、前記手首の中央部が第１部位座標、前記掌又は手の甲の重心が第２部位座標となるように各座標を算出することが好ましい。
【００１３】
本発明によれば、第１部位を手首、第２部位を掌又は手の甲とすることで、人の手の形状が認識される。このとき、部位座標算出手段は、手首の中央部が第１部位座標、掌又は手の甲の重心が第２部位座標となるように座標を算出するので、撮像領域に差込まれた手の角度が正確に認識される。
【００１４】
本発明の画像処理方法は、撮像領域にある人体部位を撮像して画像情報として取得し、該画像情報に基づいて該人体部位の動作を認識する画像処理方法であって、前記画像情報から人体部位の領域を抽出する人体部位領域抽出工程と、前記人体部位領域抽出工程で抽出された人体部位のうち、第１部位の座標である第１部位座標と第２部位の座標である第２部位座標とを算出する部位座標算出工程と、前記部位座標算出工程で算出された第１部位座標と第２部位座標とを結ぶ直線の傾きから、人体部位の撮像領域への差込角度を算出する差込角度算出工程と、前記差込角度算出工程で算出された差込角度に基づいて、前記画像情報を回転補正する画像回転補正工程とを備えることを特徴とする。
【００１５】
本発明の画像処理方法によれば、手や足等の人体部位が撮像領域に差込まれたとき、まず、画像情報として取得される。人体部位領域抽出工程では、該画像情報から人体部位の領域が抽出され、部位座標算出工程では、該抽出された人体部位のうち、第１部位の座標と第２部位の座標とが算出されるので、画像情報中の人体部位の形状や位置が認識される。
【００１６】
また、差込角度算出工程では、該第１部位座標と該第２部位座標とを結ぶ直線の座標軸に対する傾きから、撮像領域に差込まれた人体部位の角度（差込角度）が算出される。そして、画像回転補正工程では、該画像情報が差込角度に基づいて回転補正される。これにより、人体部位が、撮像領域に対して斜め方向から差込まれた場合でも、一定方向に補正することができる。従って、手や足等の人体部位が動作した場合、上記一連の処理工程によって画像情報が一定方向に補正されるので、人が意図する動作の方向とコンピュータが認識する方向を一致させることができる。
【００１７】
以上のように、人体の部位の形状を正確に認識し、人が意図する動作の方向とコンピュータが認識する方向を一致させることができる。
【図面の簡単な説明】
【００１８】
【図１】人とカメラの位置関係を説明する図。
【図２】画像処理（全体）のフローチャート。
【図３】手領域抽出を説明する図。
【図４】手首座標算出を説明する図。
【図５】手首座標算出処理のフローチャート。
【図６】手首座標算出用テーブルの図表。
【図７】掌座標算出を説明する図。
【図８】手差込角度算出を説明する図。
【図９】画像回転補正を説明する図。
【図１０】手の動きとコンピュータが認識する方向を説明する図。
【発明を実施するための形態】
【００１９】
初めに図１を参照して、人とカメラの位置関係について説明する。
【００２０】
図１（ａ）に示すように、人１の前方下、又は前方上に、本発明の「撮像手段」に相当するカメラ２が配置されている。カメラ２がどちらの位置にあっても、カメラ２からの距離に比例して撮像可能な範囲が拡大し、その範囲内の物体を撮像することができる。
【００２１】
また、カメラ２は、ケーブルによりコンピュータ３に接続されている。カメラ２で撮像された画像情報は、コンピュータ３に送信されるので、例えば、コンピュータ３のモニター（図示省略）上で画像情報を確認することができる。また、コンピュータ３は、画像情報を解析することで、例えば、人１の手の動きにより、モニター中のポインタ（カーソル）を動かすことができる。コンピュータ３は、内部に画像処理部（本発明の「画像処理装置」）を有する。
【００２２】
次に、図１（ｂ）は、図１（ａ）の状態を上方から見たときの図である。領域Ｓは、カメラ２が人１の手等を撮像可能な領域（以下、撮像領域又は単に領域という）であり、領域Ｓ内で、例えば、人１が手を右方向（ｘ軸正方向）に動かすと、コンピュータ３が画像を解析して、手が右方向に動いたと認識する。これにより、上記の例では、モニター上でポインタが右方向に動く。
【００２３】
同様に、人１が手を手前方向（ｙ軸正方向）に動かすと、コンピュータ３は、手がその方向に動いたと認識し、モニター上でポインタが下方向に動く。この技術により、機器のスイッチを操作したり、ロボットをコントロールすることが可能になる。
【００２４】
また、人１は、カメラ２に対して常に同じ方向にいるわけではなく、時々動いて立ち位置を変える。従って、人１の手は、領域Ｓの横方向や斜め方向から差込まれることがある。
【００２５】
例えば、人１が手を撮像領域Ｓの左横方向から差込み、ポインタを右方向に動かそうとして、手を右方向に動かすことがある。この方向は、ｙ軸正方向であるので、ポインタは下方向に動くと考えられるが、本発明では、手の差込まれた方向を検出して画像情報を補正し、上記の場合でもポインタが人１の意図する右方向に動くように変換する。以下では、これを実現するためにコンピュータ３で行われる画像処理について説明する。
【００２６】
図２は、実施形態の画像処理（全体）のフローチャートである。以下では、撮像領域Ｓに人の手が差込まれたときを例に、各処理の詳細を説明する。この画像処理は、コンピュータ３のＣＰＵ等で構成される画像処理部で実行される。画像処理部は、本発明の「人体部位領域抽出手段」、「部位座標算出手段」、「差込角度算出手段」、「画像回転補正手段」に相当する。
【００２７】
まず、手領域抽出処理が行われる（ステップＳ１０）。これは、カメラ２で撮像された画像から手の領域を抽出する処理である。本実施形態では、距離画像カメラを使用して手を撮像する。距離画像カメラを使用する場合、予め撮像領域Ｓに差込まれる手と距離画像カメラとの距離を所定範囲に設定しておくことで、手領域を容易に抽出することができる。以下、図３を参照して、手領域の抽出について説明する。
【００２８】
図３は、手領域抽出処理により手領域４が抽出されたときの画像である。図示のように、画像領域Ｒの左下部分に手首があり、中央部分に掌がある。なお、画像領域Ｒの画像は、本発明の「画像情報」に相当する。
【００２９】
手領域を抽出方法は、上記の方法以外にも幾つか存在する。例えば、普通のカメラを使用する場合、ＲＧＢ情報のうち肌色に該当する情報を抽出することで、手領域を抽出することができる。また、カメラに手以外の物体が写り込む可能性がない場合には、背景差分法により、手領域を容易に抽出することができる。また、２つのレンズを視差が生じるように配置することで、物体までの距離を算出可能なステレオカメラを使用してもよい。
【００３０】
図２に戻り、手領域抽出処理の終了後には、手首座標算出処理に進む（ステップＳ２０）。手首座標の算出には、距離画像カメラによる画像（画像領域Ｒ）の外周ピクセル値の情報を使用する。
【００３１】
図４は、手首座標の算出に必要な領域を説明する図である。まず、手領域抽出処理（ステップＳ１０）で抽出された手領域４を含む画像領域Ｒの周囲に、ピクセル値を取得するためのピクセル値取得領域Ｐ（図中の斜線部分。以下、領域Ｐという）をとる。
【００３２】
次に、領域Ｐの左辺部分を左領域（Ａ）、右辺部分を右領域（Ｂ）、上辺部分を上領域（Ｃ）、下辺部分を下領域（Ｄ）として、領域Ｐを４分割する。そして、この４つの領域（Ａ）〜（Ｄ）について、画素の値であるピクセル値を検出する。
【００３３】
ここでは、各領域に手等の物体が存在している場合には、所定のピクセル値（輝度値）が検出されるが、存在しない場合には、ピクセル値「０」が検出されることを利用する。また、ある程度の大きさのある物体の場合には、輝度値のある画素が連続して存在するので、これも考慮して、各領域を調べていく。
【００３４】
次に、図５を参照して、手首座標算出処理について説明する。実施形態の画像処理部は、以下の順番で上記の領域（Ａ）〜（Ｄ）のピクセル値を調べ、手首座標を算出する。
【００３５】
まず、左領域（Ａ）にピクセル値≠０の画素が任意の数、連続しているか否かを判定する（ステップＳ２０１）。ピクセル値≠０（輝度値あり）の部分が任意の数、連続して存在している場合には、左領域（Ａ）に手があることを意味する。このとき、ステップＳ２０２に進む。一方、ピクセル値≠０の部分が任意の数、連続して存在していない場合には、この領域には手がないことを意味する。このとき、ステップＳ２０３に進む。
【００３６】
ステップＳ２０１で「ＹＥＳ」と判定された場合、フラグF_leftに「１」をセットする（ステップＳ２０２）。一方、ステップＳ２０１で「ＮＯ」と判定された場合、フラグF_leftに「０」をセットする（ステップＳ２０３）。詳細は後述するが、フラグF_leftは、手首座標のうちｙ座標を算出するのに用いられる。
【００３７】
次に、右領域（Ｂ）にピクセル値≠０の画素が任意の数、連続しているか否かを判定する（ステップＳ２０４）。これは、右領域（Ｂ）に手があるか否かの判定となる。ピクセル値≠０の部分が任意の数、連続して存在している場合には、ステップＳ２０５に進む。一方、ピクセル値≠０の部分が任意の数、連続して存在していない場合には、ステップＳ２０６に進む。
【００３８】
ステップＳ２０４で「ＹＥＳ」と判定された場合、フラグF_rightに「１」をセットする（ステップＳ２０５）。一方、ステップＳ２０４で「ＮＯ」と判定された場合、フラグF_rightに「０」をセットする（ステップＳ２０６）。フラグF_rightも、手首座標のうちｙ座標を算出するのに用いられる。
【００３９】
次に、上領域（Ｃ）にピクセル値≠０の画素が任意の数、連続しているか否かを判定する（ステップＳ２０７）。これは、上領域（Ｃ）に手があるか否かの判定となる。ピクセル値≠０の部分が任意の数、連続して存在している場合には、ステップＳ２０８に進む。一方、ピクセル値≠０の部分が任意の数、連続して存在していない場合には、ステップＳ２０９に進む。
【００４０】
ステップＳ２０７で「ＹＥＳ」と判定された場合、フラグF_topに「１」をセットする（ステップＳ２０８）。一方、ステップＳ２０７で「ＮＯ」と判定された場合、フラグF_topに「０」をセットする（ステップＳ２０９）。詳細は後述するが、フラグF_topは、手首座標のうちｘ座標を算出するのに用いられる。
【００４１】
次に、下領域（Ｄ）にピクセル値≠０の画素が任意の数、連続しているか否かを判定する（ステップＳ２１０）。これは、下領域（Ｄ）に手があるか否かの判定となる。ピクセル値≠０の部分が任意の数、連続して存在している場合には、ステップＳ２１１に進む。一方、ピクセル値≠０の部分が任意の数、連続して存在していない場合には、ステップＳ２１２に進む。
【００４２】
ステップＳ２１０で「ＹＥＳ」と判定された場合、フラグF_bottomに「１」をセットする（ステップＳ２１１）。一方、ステップＳ２１０で「ＮＯ」と判定された場合、フラグF_bottomに「０」をセットする（ステップＳ２１２）。フラグF_bottomも、手首座標のうちｘ座標を算出するのに用いられる。
【００４３】
最後に、各フラグの設定から手首座標を算出する（ステップＳ２１３）。手首座標の算出には、上記で設定した各フラグの成立を確認する必要がある。以下、図６を参照して、手首座標の算出方法について説明する。なお、画像領域Ｒについても、撮像領域Ｓと同じ方向にｘ軸、ｙ軸をとり、原点は、画像領域Ｒの左上である。
【００４４】
まず、画像上下のフラグ（F_top，F_bottom）を用いて、手首座標のｘ座標を決定する（図６（ａ）参照）。
【００４５】
（i）F_top＝１、F_bottom＝１の場合、手が画像領域Ｒの上辺及び下辺に跨った状態で存在しているので、手領域を抽出できる状態ではないと判断する。この場合、ｘ座標の算出を行わない。
【００４６】
（ii）F_top＝１、F_bottom＝０の場合、手が画像領域Ｒの上辺にある状態である。従って、上領域（Ｃ）の画素（ピクセル値≠０）の平均ｘ座標を「手首のｘ座標」とする。また、ｘ座標最終判断フラグX_Flagを「０」にセットする。ｘ座標最終判断フラグによる最終判断の詳細は後述する。
【００４７】
（iii）F_top＝０、F_bottom＝１の場合、手が画像領域Ｒの下辺にある状態である。従って、下領域（Ｄ）の画素（ピクセル値≠０）の平均ｘ座標を「手首のｘ座標」とする。ここでも、ｘ座標最終判断フラグX_Flagを「０」にセットする。
【００４８】
（iv）F_top＝０、F_bottom＝０の場合、手が画像領域Ｒの上辺及び下辺にはないが、画像領域Ｒの左辺又は右辺に存在する可能性がある。ここでは、「手首のｘ座標」が決定しないが、ｘ座標最終判断フラグX_Flagを「１」にセットし、後述する最終判断にて「手首のｘ座標」を決定する。
【００４９】
次に、画像左右のフラグ（F_left，F_right）により手首座標のｙ座標を決定する（図６（ｂ）参照）。
【００５０】
（i）F_left＝１、F_right＝１の場合、手が画像領域Ｒの左辺及び右辺に跨った状態で存在しているので、手領域を抽出できる状態ではないと判断する。この場合、ｙ座標の算出を行わない。
【００５１】
（ii）F_left＝１、F_right＝０の場合、手が画像領域Ｒの左辺にある状態である。従って、左領域（Ａ）の画素（ピクセル値≠０）の平均ｙ座標を「手首のｙ座標」とする。また、ｙ座標最終判断フラグY_Flagを「０」にセットする。ｙ座標最終判断フラグによる最終判断の詳細は後述する。
【００５２】
（iii）F_left＝０、F_right＝１の場合、手が画像領域Ｒの右辺にある状態である。従って、右領域（Ｂ）の画素（ピクセル値≠０）の平均ｙ座標を「手首のｙ座標」とする。ここでも、ｙ座標最終判断フラグY_Flagを「０」にセットする。
【００５３】
（iv）F_left＝０、F_right＝０の場合、手が画像領域Ｒの左辺及び右辺にはないが、画像領域Ｒの上辺又は下辺に存在する可能性がある。ここでは、「手首のｙ座標」が決定しないが、ｙ座標最終判断フラグY_Flagを「１」にセットし、後述する最終判断にて「手首のｙ座標」を決定する。
【００５４】
最後に、上記の結果と最終判断フラグ（X_Flag，Y_Flag）により最終的な「手首のｘ座標」、「手首のｙ座標」を決定する（図６（ｃ）参照）。なお、以下でも「画素」とは、ピクセル値≠０の画素を意味する。
【００５５】
（i）X_Flag＝１、Y_Flag＝１の場合、画像領域Ｒの周囲のどの辺にも手がないことを意味する。この場合、手領域を抽出できる状態ではないので、ｘ座標及びｙ座標の算出を行わない。
【００５６】
（ii）X_Flag＝１、Y_Flag＝０の場合、手が画像領域Ｒの左辺又は右辺に存在し、上辺及び下辺を跨いでいないことを意味する。ここでは、以下の算出方法αに従って、手首座標を算出する。
【００５７】
（α−１）F_left＝１のとき、
手首座標（ｘ，ｙ）＝（０，左領域（Ａ）の画素の平均ｙ座標）
（α−２）F_right＝１のとき、
手首座標（ｘ，ｙ）＝（画像領域Ｒの右端，右領域（Ｂ）の画素の平均ｙ座標）
これにより、この場合の手首座標が決定する。
【００５８】
（iii）X_Flag＝０、Y_Flag＝１の場合、手は、画像領域Ｒの上辺又は下辺に存在し、左辺及び右辺を跨いでいないことを意味する。ここでは、以下の算出方法βに従って、手首座標を算出する。
【００５９】
（β−１）F_top＝１のとき、
手首座標（ｘ，ｙ）＝（上領域（Ｃ）の画素の平均ｘ座標，０）
（β−２）F_bottom＝１のとき、
手首座標（ｘ，ｙ）＝（下領域（Ｄ）の画素の平均ｘ座標，画像領域Ｒの下端）
これにより、この場合の手首座標が決定する。
【００６０】
（iv）X_Flag＝０、Y_Flag＝０の場合、手は、画像領域Ｒの上辺又は下辺と、左辺又は右辺（何れかの組合せ）を跨ぐ状態で存在していることを意味する。ここでは、以下の算出方法γに従って、手首座標を算出する。
【００６１】
（γ−１）F_left＝１、F_top＝１のとき（画像領域Ｒの左上隅）、
手首座標（ｘ，ｙ）＝（上領域（Ｃ）の画素の平均ｘ座標，左領域（Ａ）の画素の平均ｙ座標）
（γ−２）F_left＝１、F_bottom＝１のとき（画像領域Ｒの左下隅）、
手首座標（ｘ，ｙ）＝（下領域（Ｄ）の画素の平均ｘ座標，左領域（Ａ）の画素の平均ｙ座標）
（γ−３）F_right＝１、F_top＝１のとき（画像領域Ｒの右上隅）、
手首座標（ｘ，ｙ）＝（上領域（Ｃ）の画素の平均ｘ座標，右領域（Ｂ）の画素の平均ｙ座標）
（γ−４）F_right＝１、F_bottom＝１のとき（画像領域Ｒの右下隅）、
手首座標（ｘ，ｙ）＝（下領域（Ｄ）の画素の平均ｘ座標，右領域（Ｂ）の画素の平均ｙ座標）
これにより、手が撮像領域Ｓに対して、角（四隅の何れか）から斜めに差込まれた場合の手首座標が決定する。以上により、手がどの方向から撮像領域Ｓに差込まれても、手首座標を算出することができる。
【００６２】
再び図２に戻り、手首座標算出処理の終了後には、掌座標算出処理に進む（ステップＳ３０）。これは、上述の手領域抽出処理（ステップＳ１０）で抽出された手領域の画像から掌座標を算出する処理である。以下、図７を参照して、掌座標の算出方法について説明する。
【００６３】
図７（ａ）は、手領域抽出処理で抽出された手領域４の画像である。この画像から掌領域を切り出す方法は幾つか考えられるが、実施形態では、Opening処理による方法を用いる。
【００６４】
Opening処理とは、画像に対して同じ数だけ、Erosion処理（収縮処理）とDilation処理（膨張処理）を繰り返し行うことにより、細かいパターン及び小さいパターンを除去する処理である。図７（ａ）の画像領域Ｒに対してOpening処理を行うと、手領域４のうち、指や手首のパターンが除去されて、掌領域５だけが残る（図７（ｂ）参照）。
【００６５】
さらに、掌領域５の重心を算出して、これを掌座標とする。抽出された手領域４が手の甲の側である場合には、掌座標の代わりに手の甲座標を算出する。
【００６６】
手領域４の画像から掌領域を切り出す他の方法としては、掌の形状マスクを手領域の画像にマッチングさせ、適合率の高い領域を掌と認定する方法がある。この方法は、該形状マスクを、距離に応じて変化する手領域の面積に対応させる、或いは手の差込角度にあわせて回転させる必要があるが、Opening処理の代わりに用いることもできる。
【００６７】
再び、図２に戻り、掌座標算出処理の終了後には、手差込角度算出処理に進む（ステップＳ４０）。これは、手首座標算出処理（ステップＳ２０）で算出した手首座標（座標Ａとする）と、掌座標算出処理（ステップＳ３０）で算出した掌座標（座標Ｂとする）により、撮像領域Ｓに対する手の差込角度（角度φとする）を算出する処理である。以下、図８を参照して、手差込角度の算出方法について説明する。
【００６８】
図８では、図示する通りｘ軸、ｙ軸をとり、手領域４内の手首座標Ａ（ｘ１，ｙ１）、掌座標Ｂ（ｘ２，ｙ２）が示され、この２点が直線で結ばれている。このとき、この直線とｘ軸のなす角が差込角度φとなる。なお、角度φは以下の式（１）で与えられる。
【００６９】
【数１】
2014182442.tif 000003
【００７０】
後述する画像回転補正処理では、本処理で算出した差込角度φにより、画像を回転変換し、新たな画像を得る。
【００７１】
再び、図２に戻り、手差込角度算出処理の終了後には、画像回転補正処理に進む（ステップＳ５０）。これは、手差込角度算出処理（ステップＳ４０）で算出した差込角度φを用いて、中心座標（座標Ｃとする）を軸に、角度φだけ画像領域Ｒを回転させ（反時計回り）、新たな画像を作成する処理である。以下、図９を参照して、画像回転補正について説明する。
【００７２】
まず、図９（ａ）は、補正前の画像（画像領域Ｒ）を示している。掌座標を点Ｂ（ｘ，ｙ）、中心座標を点Ｃ（ｃｘ，ｃｙ）としたとき、点Ｃから点Ｂへ進むベクトルｖは、ベクトルｖ＝（ｘ-ｃｘ，ｙ-ｃｙ）となる。
【００７３】
また、手首座標を点Ａとしたとき、手の差込角度はφであるので、ベクトルｖを、座標Ｃを軸として角度φだけ回転変換することで、手の撮像領域Ｓへの差込みは常に一定方向に補正される。このとき、ベクトルｖの角度φの回転変換には、以下の式（２）で表される行列Ｔを用いる。
【００７４】
【数２】
2014182442.tif 000004
【００７５】
図９（ｂ）は、上記の回転変換を行った補正後の画像（画像領域Ｒ’）を示している。上記回転変換により、座標Ｂは座標Ｂ’（ｘ’，ｙ’）に移動する。もちろん、座標Ｃを除く全ての画素が同様に移動するので、手領域４は手領域４’となる。
【００７６】
このとき、座標Ｃから座標Ｂ’へ進むベクトルｖ’は、ベクトルｖ’＝（ｘ’-ｃｘ，ｙ’-ｃｙ）となるので、回転変換後の座標Ｂ’（ｘ’，ｙ’）は、以下の式（３）で与えられる。
【００７７】
【数３】
2014182442.tif 000005
【００７８】
この回転変換は、カメラ２で撮像された各画像（毎フレーム）に対して行われる。
【００７９】
このように、手が撮像領域Ｓのどの方向から差込まれても、上記回転変換を逐次行う。従って、手領域４が常に一定方向を向くことになり、人が手を動かして、例えば、モニター上のポインタを動かそうとするとき、人が意図する動作の方向とポインタの移動方向は常に一致する。
【００８０】
最後に、図１０を参照して、人が実際に撮像領域Ｓ内で手を動かしたときの各種処理について説明する。以下は、撮像領域Ｓに左手が差込まれ、人がポインタを右方向に動かす動作をした場合の例である。
【００８１】
まず、撮像領域Ｓの左側から右斜め上向きに左手が差込まれると、画像領域Ｒ内で手領域６が抽出され、手首座標Ａ（ｘ１，ｙ１）及び手の甲座標Ｂ（ｘ２，ｙ２）が算出される（図１０（ａ）参照）。また、画像領域Ｒの水平方向をｘ軸として、差込角度φ１も算出される。
【００８２】
手領域６は、差込角度φ１に基づいて回転補正されるので、座標Ａ（ｘ１，ｙ１）、座標Ｂ（ｘ２，ｙ２）が、それぞれ座標Ａ’（ｘ１’，ｙ２’）、座標Ｂ’（ｘ２’，ｙ２’）に移動し、手領域６は手領域６’となる（図１０（ｂ）参照）。
【００８３】
次に、撮像領域Ｓ内で人が左手を動かしたとき、画像領域Ｒで手領域７が抽出される（図１０（ａ）参照）。実際には、手領域６、７は異なるフレームにあるが、説明のため１つの画像領域Ｒ内に示している。
【００８４】
手領域７の手首座標Ａ（ｘ３，ｙ３）及び手の甲座標Ｂ（ｘ４，ｙ４）が算出されると、座標Ａ（ｘ１，ｙ１）から座標Ａ（ｘ３，ｙ３）に向かうベクトルｍ及び座標Ｂ（ｘ２，ｙ２）から座標Ｂ（ｘ４，ｙ４）に向かうベクトルｎが決定するので、画像処理部により左手が動いたことが認識される。
【００８５】
また、座標Ａ（ｘ３，ｙ３）及び座標Ｂ（ｘ４，ｙ４）から差込角度φ２が算出されるので、差込角度φ２に基づいて回転補正され、座標Ａ（ｘ３，ｙ３）、座標Ｂ（ｘ４，ｙ４）が、それぞれ座標Ａ’（ｘ３’，ｙ３’）、座標Ｂ’（ｘ４’，ｙ４’）に移動する。その結果、手領域７は手領域７’となる（図１０（ｂ）参照）。
【００８６】
これにより、補正後の画像（画像領域Ｒ’）では、座標Ａ’（ｘ１’，ｙ２’）から座標Ａ’（ｘ３’，ｙ３’）に向かうベクトルｍ’及び座標Ｂ’（ｘ２’，ｙ２’）から座標Ｂ’（ｘ４’，ｙ４’）に向かうベクトルｎ’が決定する。
【００８７】
画像処理部は、ベクトルｍ’及びベクトルｎ’によって、人が意図する動作の方向を認識する。ここでは、ベクトルｍ’、ｎ’の大きさ及び方向が殆ど同じであるので、ベクトルｍ’、ｎ’に従いｘ軸正方向が認識方向とされ、ポインタが右方向に移動する。
【００８８】
実際には、手を数センチ動かす間に３枚以上の画像が作成されるので、画像処理部が画像の数のベクトルを繋げていくことで軌跡が得られ、手で曲線を描いたような場合にも、正確に方向が認識される。
【００８９】
画像処理部は、手の形状が変化した場合にも、複数の画像からその形状の変化を認識することができる。従って、本発明は、ジェスチャによって機器を操作する場合にも利用することができ、その場合にも上記一連の処理により、手が撮像領域Ｓのどの方向から差込まれても正確に手の形状を認識することができる。
【符号の説明】
【００９０】
１  人
２  カメラ（撮像手段）
３  コンピュータ（画像処理装置）
４，４’，６，６’，７，７’  手領域
５  掌領域
Ｐ  ピクセル値取得領域
Ｒ  画像領域
Ｓ  撮像領域
【図１】
2014182442.tif 000006
【図２】
2014182442.tif 000007
【図３】
2014182442.tif 000008
【図４】
2014182442.tif 000009
【図５】
2014182442.tif 000010
【図６】
2014182442.tif 000011
【図７】
2014182442.tif 000012
【図８】
2014182442.tif 000013
【図９】
2014182442.tif 000014
【図１０】
2014182442.tif 000015