(57)【特許請求の範囲】
【請求項１】
入力された動画像データに基づく動画像に含まれる顔画像の位置に従って、矩形状の第１検出領域または操作者が肘を中心として腕を回動させた場合における腕の軌跡に沿って円弧状に湾曲した第２検出領域を前記動画像を構成するフレーム画像に対して設定し、前記第１検出領域から直交座標系で表される動きを検出し、前記第２検出領域から極座標系で表される動きを検出する検出部と、
前記検出部により検出した動きによる操作指示を表す操作データを出力する出力部と、を備え、
前記検出部は、前記フレーム画像に対して前記第２検出領域を設定した場合、前記第２検出領域から検出した極座標系で表される動きから、ユーザの操作にかかる動きの量を定める電子機器。
【請求項２】
前記第１検出領域および前記第２検出領域は、前記顔画像の上下方向に延びる線を軸として線対称に設定される請求項１に記載の電子機器。
【請求項３】
入力された動画像データに基づく動画像に含まれる顔画像の位置に従って、矩形状の第１検出領域または操作者が肘を中心として腕を回動させた場合における腕の軌跡に沿って円弧状に湾曲した第２検出領域を前記動画像を構成するフレーム画像に対して設定し、前記第１検出領域から直交座標系で表される動きを検出し、前記第２検出領域から極座標系で表される動きを検出し、
検出した動きによる操作指示を表す操作データを出力し、
前記フレーム画像に対して前記第２検出領域を設定した場合、前記第２検出領域から検出した極座標系で表される動きから、ユーザの操作にかかる動きの量を定める、
ことを含む方法。
【請求項４】
前記第１検出領域および前記第２検出領域は、前記顔画像の上下方向に延びる線を軸として線対称に設定される請求項３に記載の方法。
【請求項５】
コンピュータを、
入力された動画像データに基づく動画像に含まれる顔画像の位置に従って、矩形状の第１検出領域または操作者が肘を中心として腕を回動させた場合における腕の軌跡に沿って円弧状に湾曲した第２検出領域を前記動画像を構成するフレーム画像に対して設定し、前記第１検出領域から直交座標系で表される動きを検出し、前記第２検出領域から極座標系で表される動きを検出する検出部と、
前記検出部により検出した動きによる操作指示を表す操作データを出力する出力部と、として機能させ、
前記検出部は、前記フレーム画像に対して前記第２検出領域を設定した場合、前記第２検出領域から検出した極座標系で表される動きから、ユーザの操作にかかる動きの量を定めるプログラム。
【請求項６】
前記第１検出領域および前記第２検出領域は、前記顔画像の上下方向に延びる線を軸として線対称に設定される請求項５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、電子機器、方法、およびプログラムに関する。
【背景技術】
【０００２】
撮像装置により撮像された動画像データに基づく動画像から、操作者の操作指示の動きを検出し、検出した動きによる操作指示を表す操作データを操作対象機器に出力する情報処理装置が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２２１７８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術においては、撮像装置により撮像された動画像データに基づく動画像において操作者の操作指示の動きを検出する領域を、操作者が認識することができないため、操作者の操作指示の動き以外の動きも、操作者の操作指示の動きとして検出してしまうことがあり、ジェスチャーによる操作対象機器の操作精度が低い、という課題がある。また、従来技術においては、撮像装置により撮像された動画像データに基づく動画像において操作者の操作指示の動きを検出する領域の形状が、操作者が操作指示を行なう際に手を動かし易い形状になっていないため、ジェスチャーによる操作対象機器の操作性が低い、という課題がある。
【０００５】
本発明は、上記に鑑みてなされたものであって、ジェスチャーによる操作対象機器の操作精度および操作性を向上させる電子機器、方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
実施形態の電子機器は、検出部と、出力部と、を備える。検出部は、入力された動画像データに基づく動画像に含まれる顔画像の位置に従って、矩形状の第１検出領域または操作者が肘を中心として腕を回動させた場合における腕の軌跡に沿って円弧状に湾曲した第２検出領域を動画像を構成するフレーム画像に対して設定し、第１検出領域から直交座標系で表される動きを検出し、第２検出領域から極座標系で表される動きを検出する。出力部は、検出部により検出した動きによる操作指示を表す操作データを出力する。また、検出部は、フレーム画像に対して第２検出領域を設定した場合、第２検出領域から検出した極座標系で表される動きから、ユーザの操作にかかる動きの量を定める。
【図面の簡単な説明】
【０００７】
【図１】図１は、本実施形態にかかるコンピュータの外観を示す図である。
【図２】図２は、本実施形態にかかるコンピュータの構成を概略的に示すブロック図である。
【図３】図３は、本実施形態にかかるコンピュータの機能構成の一部を示すブロック図である。
【図４】図４は、本実施形態にかかるコンピュータにおいて操作データを出力する処理の流れを示すフローチャートである。
【図５】図５は、本実施形態にかかるコンピュータにおいて検出領域を設定する処理を説明するための図である。
【図６】図６は、本実施形態にかかるコンピュータにおいて検出領域を設定する処理を説明するための図である。
【図７】図７は、本実施形態にかかるコンピュータにおいて検出領域を設定する処理を説明するための図である。
【図８】図８は、本実施形態にかかるコンピュータにおいて円弧状に湾曲した検出領域を設定する処理を説明するための図である。
【図９】図９は、本実施形態にかかるコンピュータにおいて円弧状に湾曲した検出領域を設定する処理を説明するための図である。
【図１０】図１０は、本実施形態にかかるコンピュータにおいて円弧状に湾曲した検出領域を設定する処理を説明するための図である。
【図１１】図１１は、本実施形態にかかるコンピュータにおいて操作指示の動きを検出する処理を説明するための図である。
【図１２】図１２は、本実施形態にかかるコンピュータにおいて操作指示の動きを検出する処理を説明するための図である。
【図１３】図１３は、本実施形態にかかるコンピュータにおいて操作指示の動きを検出する処理を説明するための図である。
【図１４】図１４は、本実施形態にかかるコンピュータにおいて操作データを出力する処理を説明するための図である。
【図１５】図１５は、本実施形態にかかるコンピュータにおいて操作データを出力する処理を説明するための図である。
【発明を実施するための形態】
【０００８】
図１は、本実施形態にかかるコンピュータの外観を示す図である。本実施形態では、情報処理装置、情報処理方法、およびプログラムを、ノートブックタイプのパーソナルコンピュータ（以下、コンピュータとする）１０に適用した例について説明するが、これに限定するものではなく、例えば、リモートコントローラ、テレビジョン受像機、ハードディスクレコーダ等にも適用することができる。図１に示すように、本実施形態にかかるコンピュータ１０は、本体１１と、ディスプレイユニット１２と、を有している。ディスプレイユニット１２には、ＬＣＤ（Liquid  Crystal  Display）１７を備える表示装置が搭載されている。ディスプレイユニット１２には、さらに、ＬＣＤ１７の表面を覆うようにタッチパネル１４が搭載されている。ディスプレイユニット１２は、本体１１の上面が露出される開放位置と本体１１の上面を覆う閉塞位置との間を回動自在に本体１１に取り付けられている。ディスプレイユニット１２は、ＬＣＤ１７の上部にカメラモジュール２０を備える。カメラモジュール２０は、ディスプレイユニット１２が本体１１の上面を露出する開放位置にあるときに、コンピュータ１０の操作者等を撮像するために用いられる。
【０００９】
本体１１は、薄い箱形の筐体を有し、その上面に、キーボード１３、入力操作パネル１５、タッチパッド１６、スピーカ１８Ａ，１８Ｂ、コンピュータ１０を電源オンまたは電源オフにするためのパワーボタン１９などが配置されている。入力操作パネル１５上には、各種操作ボタンが設けられている。
【００１０】
また、本体１１の背面には、例えばＨＤＭＩ（High−Definition  Multimedia  Interface）規格に対応した外部ディスプレイ接続端子（図示しない）が設けられている。この外部ディスプレイ接続端子は、デジタル映像信号を外部ディスプレイに出力するために用いられる。
【００１１】
図２は、本実施形態にかかるコンピュータの構成を概略的に示すブロック図である。本実施形態にかかるコンピュータ１０は、ＣＰＵ（Central  Processing  Unit）１１１、主メモリ１１２、ノースブリッジ１１３、グラフィックコントローラ１１４、ディスプレイユニット１２、サウスブリッジ１１６、ＨＤＤ（Hard  Disk  Drive）１１７、副プロセッサ１１８、ＢＩＯＳ（Basic  Input/Output  System）−ＲＯＭ（Read  Only  Memory）１１９、エンベデッドコントローラ／キーボードコントローラ（ＥＣ／ＫＢＣ）１２０、電源回路１２１、バッテリ１２２、ＡＣアダプタ１２３、タッチパッド１６、キーボード（ＫＢ）１３、カメラモジュール２０、およびパワーボタン１９等を備える。
【００１２】
ＣＰＵ１１１は、コンピュータ１０の動作を制御するプロセッサである。ＣＰＵ１１１は、ＨＤＤ１１７から主メモリ１１２にロードされる、オペレーティングシステム（ＯＳ）および各種のアプリケーションプログラムを実行する。また、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１１９に格納されたＢＩＯＳも実行する。ＢＩＯＳは、周辺デバイスを制御するためのプログラムである。ＢＩＯＳは、コンピュータ１０の電源投入時に最初に実行される。
【００１３】
ノースブリッジ１１３は、ＣＰＵ１１１のローカルバスとサウスブリッジ１１６との間を接続するブリッジデバイスである。ノースブリッジ１１３は、ＡＧＰ（Accelerated  Graphics  Port）バスなどを介してグラフィックコントローラ１１４との通信を実行する機能を有している。
【００１４】
グラフィックコントローラ１１４は、コンピュータ１０のディスプレイユニット１２を制御する表示コントローラである。グラフィックコントローラ１１４は、ＯＳまたはアプリケーションプログラムによってＶＲＡＭ（Video  Random  Access  Memory）（図示しない）に書き込まれた表示データから、ディスプレイユニット１２に出力すべき表示信号を生成する。
【００１５】
サウスブリッジ１１６には、ＨＤＤ１１７、副プロセッサ１１８、ＢＩＯＳ−ＲＯＭ１１９、カメラモジュール２０、およびＥＣ／ＫＢＣ１２０が接続されている。また、サウスブリッジ１１６は、ＨＤＤ１１７および副プロセッサ１１８を制御するためのＩＤＥ（Integrated  Drive  Electronics）コントローラも備えている。
【００１６】
ＥＣ／ＫＢＣ１２０は、電力管理のためのエンベデッドコントローラ（ＥＣ）と、タッチパッド１６およびキーボード（ＫＢ）１３を制御するためのキーボードコントローラ（ＫＢＣ）が集積された、１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１２０は、例えば、パワーボタン１９が操作された際に、電源回路１２１と共同してコンピュータ１０の電源をオンにする。コンピュータ１０は、ＡＣアダプタ１２３を介して外部電源が供給される場合、外部電源により駆動される。外部電源が供給されない場合、コンピュータ１０は、バッテリ１２２によって駆動される。
【００１７】
カメラモジュール２０は、例えば、ＵＳＢ（Universal  Serial  Bus）カメラである。カメラモジュール２０のＵＳＢコネクタは、コンピュータ１０の本体１１に設けられたＵＳＢポート（図示しない）に接続される。カメラモジュール２０により撮像された動画像データ（表示データ）は、主メモリ１１２等にフレームデータとして記憶され、ディスプレイユニット１２に表示させることができる。カメラモジュール２０によって撮像される動画像データを構成するフレーム画像のフレームレートは、例えば、１５フレーム／秒である。カメラモジュール２０は、外付けカメラであっても、コンピュータ１０の内蔵カメラであっても良い。
【００１８】
副プロセッサ１１８は、カメラモジュール２０から取得した動画像データの処理等を行う。
【００１９】
図３は、本実施形態にかかるコンピュータの機能構成の一部を示すブロック図である。本実施形態にかかるコンピュータ１０は、ＣＰＵ１１１が主メモリ１１２に格納されたオペレーティングシステムおよびアプリケーションプログラムを実行することにより、画像取得部３０１、検出部３０２、操作判定部３０３、および操作実行部３０４等を実現する。
【００２０】
画像取得部３０１は、カメラモジュール２０により撮像された動画像データを取得してＨＤＤ１１７等に記憶させる。
【００２１】
検出部３０２は、入力された動画像データ（画像取得部３０１により取得された動画像データ）に基づく動画像に含まれる顔画像の位置に従って、動画像を構成するフレーム画像に対して検出領域を設定し、当該検出領域において、コンピュータ１０の操作者の操作指示の動きを検出する。本実施形態では、検出部３０２は、顔検出・追跡部３１１、検出領域設定部３１２、禁止判定部３１３、動き検出部３１４、および履歴取得部３１５等を備えている。
【００２２】
操作判定部３０３は、検出部３０２により検出した動きによる操作指示を表す操作データを出力する出力部として機能する。操作実行部３０４は、操作判定部３０３により出力された操作データに従って操作対象機器（例えば、ディスプレイユニット１２、スピーカ１８Ａ，１８Ｂ、外部ディスプレイなど）を制御する。
【００２３】
次に、図４〜１４を用いて、本実施形態にかかるコンピュータ１０において操作データを出力する処理の流れについて説明する。図４は、本実施形態にかかるコンピュータにおいて操作データを出力する処理の流れを示すフローチャートである。
【００２４】
パワーボタン１９が操作されてコンピュータ１０の電源がオンにされている間、画像取得部３０１は、カメラモジュール２０により撮像された動画像データを取得する（ステップＳ４０１）。本実施形態では、画像取得部３０１は、カメラモジュール２０により所定のフレームレートで撮像されたフレーム画像から、予め設定されたサンプリングレートでフレーム画像をサンプリングすることにより、動画像データを取得する。言い換えると、画像取得部３０１は、フレーム画像を連続的にサンプリングすることにより、動画像データを取得する。なお、取得された動画像データには、コンピュータ１０の操作者の顔の画像（以下、顔画像とする）が含まれることがある。
【００２５】
画像取得部３０１により動画像データが取得されると、顔検出・追跡部３１１は、取得された動画像データに基づく動画像から顔画像を検出するとともに、検出した顔画像を追跡する（ステップＳ４０２）。ここで、追跡とは、取得した動画像データを構成するフレーム画像間において、同一の操作者の顔画像を検出し続けることを意味している。
【００２６】
具体的には、顔検出・追跡部３１１は、図５に示すように、ＳＩＦＴ（Scale-Invariant  Feature  Transform）、ＳＵＲＦ（Speeded  Up  Robust  Features）等を用いて、取得された動画像データに基づく動画像を構成するフレーム画像５０１内における、顔画像５０２および顔以外の画像５０３を判別する。これにより、顔検出・追跡部３１１は、顔画像５０２の検出を行う。
【００２７】
次いで、顔検出・追跡部３１１は、ＫＬＴ（Kanade  Lucas  Tomasi）等の特徴点を追跡するトラッキング手法等を用いたＳＬＡＭ（Simultaneous  Localization  And  Mapping）（ＰＴＡＭ：Parallel  Tracking  And  Mappingの一例）等を用いて、取得された動画像データに基づく動画像を構成するフレーム画像５０１に含まれる顔画像５０２から、複数（例えば、鼻、左眼、および右眼の３つ）の特徴点を検出する。その際、顔検出・追跡部３１１は、フレーム画像５０１に含まれる顔画像５０２の特徴点のうち、当該フレーム画像５０１よりも前に撮像されたフレーム画像に含まれる顔画像５０２の特徴点と同じ特徴点を検出する。これにより、顔検出・追跡部３１１は、検出した顔画像５０２の追跡を行う。
【００２８】
また、顔検出・追跡部３１１は、取得した動画像データに基づく動画像を構成するフレーム画像５０１に含まれる顔画像のうち、カメラモジュール２０に対して正面を向いている顔の顔画像５０２を検出する。本実施形態では、顔検出・追跡部３１１は、取得した動画像データに基づく動画像を構成するフレーム画像５０１に含まれる顔画像のうち、両目が含まれている顔画像や耳が含まれていない顔画像を、正面を向いている顔の顔画像５０２として検出する。つまり、コンピュータ１０を操作する意思のある操作者はディスプレイユニット１２に対して正対していると考えられる。そのため、カメラモジュール２０に対して正面を向いている顔の顔画像５０２を検出することにより、コンピュータ１０を操作する意思のある操作者の顔画像５０２のみを検出することができる。また、操作者がディスプレイユニット１２に正対していることをトリガにして、以後の処理が行われるため、ジェスチャー等により操作指示を行なう際の余分な操作を省くことができる。
【００２９】
図４に戻り、検出領域設定部３１２は、顔検出・追跡部３１１による顔画像の追跡が成功したか否かを判断する（ステップＳ４０３）。検出領域設定部３１２は、顔検出・追跡部３１１による顔画像の追跡が所定時間（本実施形態では、１ｓ以下）継続して行われた場合に、顔画像の追跡が成功したと判断する。顔画像の追跡が成功していない場合（ステップＳ４０３：Ｎｏ）、検出領域設定部３１２は、顔検出・追跡部３１１による顔画像の追跡が成功するまで待つ。
【００３０】
顔画像の追跡に成功した場合（ステップＳ４０３：Ｙｅｓ）、検出領域設定部３１２は、取得された動画像データに基づく動画像に含まれる顔画像の位置を検出する（ステップＳ４０４）。本実施形態では、検出領域設定部３１２は、図５に示すように、動画像データを構成するフレーム画像５０１の左上の角を原点（０，０）とする予め設定された直交座標系（以下、ＸＹ座標系とする）における、顔検出・追跡部３１１により検出した顔画像５０２の中心位置（本実施形態では、鼻の位置）の位置座標（Ｘ１，Ｙ１）を、顔画像５０２の位置として検出する。また、検出領域設定部３１２は、取得された動画像データに基づく動画像に複数の顔画像が含まれる場合、当該複数の顔画像の位置を検出する。なお、顔検出・追跡部３１１により検出した顔画像の位置が所定時間以内に所定距離以上移動した場合、コンピュータ１０は、操作データを出力する処理を中止する。これにより、操作者が立ち上がった場合や操作者が横になった場合など、操作者がコンピュータ１０を操作する意思を無くして、顔画像の位置が急に移動した場合に、操作データを出力する処理を中止することができる。
【００３１】
また、検出領域設定部３１２は、取得された動画像データに基づく動画像に含まれる顔画像の上下方向に延びる軸（以下、顔画像の軸とする）の傾きを検出する。本実施形態では、検出領域設定部３１２は、ＸＹ座標系における、顔画像の軸の傾き（角度θ）を、顔画像の傾きとして検出する。具体的には、検出領域設定部３１２は、顔画像の上下方向に延びかつ顔画像が左右対称となる対称軸を通る軸を顔画像の軸とみなし、ＸＹ座標系における、当該顔画像の軸の傾きを顔画像の傾きとして検出する。または、検出領域設定部３１２は、顔画像の特徴点として検出した鼻、左眼、および右眼を結んだ三角形において、鼻の特徴点から、左眼の特徴点と右眼の特徴点とを結ぶ線分に下ろした垂線を、顔画像の軸とみなし、ＸＹ座標系における、当該顔画像の軸の傾きを顔画像の傾きとして検出しても良い。
【００３２】
図４に戻り、検出領域設定部３１２は、ディスプレイユニット１２に表示している表示データに応じて、ＸＹ座標系を基準にして操作者の操作指示の動きを検出する第一のモード、および顔画像の軸を座標軸とする直交座標系（以下、ｘｙ座標系とする）または直交座標系Ｒ（図１１参照）を基準にして操作者の操作指示の動きを検出する第二のモードのうちいずれか一方のモードに切り換える（ステップＳ４０５）。ここで、ｘｙ座標系は、顔画像５０２の軸をｙ軸とし、当該ｙ軸に予め設定された位置で直交するｘ軸とする座標系である。本実施形態では、ｘｙ座標系は、顔画像５０２の軸をｙ軸とし、顔画像５０２の中心位置（位置座標（Ｘ１，Ｙ１））でｙ軸に直交するｘ軸とからなる座標系である。直交座標系Ｒ（図１１参照）は、操作者の操作指示の動きを検出する検出領域として、円弧状に湾曲した領域が設定された場合に、当該検出領域が有する円弧Ｅ２（図１１参照）をｘＲ軸（図１１参照）とし、かつ円弧Ｅ２の中点においてｘＲ軸と交わる軸をｙＲ軸（図１１参照）とする座標系である。
【００３３】
本実施形態では、検出領域設定部３１２は、スクロール可能なウィンドウなど、ディスプレイユニット１２を基準にした方が操作指示を行いやすい表示データがディスプレイユニット１２に表示されている場合には、第一のモードに切り換える。一方、検出領域設定部３１２は、チャンネル番号の選局やスピーカ１８Ａ，１８Ｂから出力される音の音量に関わる表示画面など、操作者を基準にした方が操作指示を行いやすい表示データがディスプレイユニット１２に表示されている場合には、第二のモードに切り換える。
【００３４】
次いで、検出領域設定部３１２は、検出した顔画像の位置に従って、動画像を構成するフレーム画像に対して検出領域を設定する（ステップＳ４０６）。ここで、検出領域とは、操作者の操作指示（例えば、ウィンドウに表示されたコンテンツ（テキスト、絵、画像など）のスクロール、チャンネル番号の選局、音量の変更など）の動き（操作者の操作指示の手の動き、操作者の操作指示による物の動きを含む）を検出する領域である。また、検出領域設定部３１２は、取得された動画像データに基づく動画像に複数の顔画像が含まれている場合、複数の顔画像の位置に従って複数の検出領域を設定する。
【００３５】
本実施形態では、検出領域設定部３１２は、図５に示すように、顔画像５０２の位置座標（Ｘ１，Ｙ１）および顔画像５０２の軸の傾きに従って、操作者の操作指示の手５０５の動き５０６を検出する検出領域５０４をフレーム画像５０１に対して設定する。具体的には、検出領域設定部３１２は、顔画像５０２の軸の方向において、顔画像５０２の位置座標（Ｘ１，Ｙ１）よりも下方に位置する領域を、操作者の操作指示の手５０５の動き５０６を検出する検出領域５０４に設定する。これにより、操作者の位置を基準にして検出領域５０４が設定されるので、操作者にとって分かりやすい位置を検出領域５０４とすることができる。また、検出領域５０４の位置を報知する処理など、操作者に対して複雑な情報を報知する必要がなく、検出領域５０４の位置の報知に必要なコストや、操作者が検出領域５０４の位置を確認する手間を低減することができる。
【００３６】
より具体的には、検出領域設定部３１２は、図６に示すように、顔画像５０２の位置座標（Ｘ１，Ｙ１）を原点とするｘｙ座標において、顔画像５０２の位置座標（Ｘ１，Ｙ１）を、下方（ｙ軸方向）に移動させた位置座標（ｘ１，ｙ１）を検出領域５０４の中心位置として求める。言い換えると、図６のように操作者の顔画像５０２が傾いていない場合（操作者の上半身が立っている場合）、検出領域設定部３１２は、ＸＹ座標系において、顔画像５０２の位置座標（Ｘ１，Ｙ１）を、予め設定された移動量（ΔＸ＝０，ΔＹ）移動させた座標を検出領域５０４の中心位置として求める。また、検出領域設定部３１２は、顔画像５０２の大きさｒ（例えば、顔画像５０２を円と仮定した場合における半径）を検出する。そして、検出領域設定部３１２は、ｘｙ座標系において、位置座標（ｘ１，ｙ１）からｘ軸方向にｒ・Ｓ１離れかつｙ軸に平行な向かい合う２辺５０４ａと、位置座標（ｘ１，ｙ１）からｙ軸方向にｒ・Ｓ２離れかつｘ軸に平行な向かい合う２辺５０４ｂと、を有する矩形状の領域を、検出領域５０４に設定する。ここで、Ｓ１，Ｓ２は、位置座標（ｘ１，ｙ１）を中心位置とする検出領域５０４が矩形状の領域となるように予め設定された定数である。本実施形態では、Ｓ１，Ｓ２は、コンピュータ１０を操作する操作者によらず所定の値であるものとするが、これに限定するものではなく、コンピュータ１０の操作者毎に異なる値としても良い。
【００３７】
コンピュータ１０の操作者が横になっている場合等、顔画像５０２の軸がＸＹ座標系において角度θ傾いている場合も、検出領域設定部３１２は、同様に検出領域５０４を設定する。検出領域設定部３１２は、図７に示すように、顔画像５０２の位置座標（Ｘ１，Ｙ１）を原点としかつＸＹ座標系に対して角度θ傾いたｘｙ座標系において、顔画像５０２の位置座標（Ｘ１，Ｙ１）を、下方（ｙ軸方向）に移動させた位置座標（ｘ１，ｙ１）を検出領域５０４の中心位置として求める。言い換えると、図７のように操作者の顔画像５０２が角度θ傾いている場合、検出領域設定部３１２は、ＸＹ座標系において、顔画像５０２の位置座標（Ｘ１，Ｙ１）を、角度θ毎に予め設定された移動量（ΔＸ，ΔＹ）移動させた座標を検出領域５０４の中心位置として求める。また、検出領域設定部３１２は、顔画像５０２の大きさｒを検出する。そして、検出領域設定部３１２は、位置座標（ｘ１，ｙ１）からｘ軸方向にｒ・Ｓ１離れかつｙ軸に平行な向かい合う２辺５０４ａと、位置座標（ｘ１，ｙ１）からｙ軸方向にｒ・Ｓ２離れかつｘ軸に平行な向かい合う２辺５０４ｂと、を有する矩形状の領域を、検出領域５０４に設定する。このように、操作者が横になっている場合等、顔画像５０２がＸＹ座標系において角度θ傾いている場合に、ＸＹ座標系に対して角度θ傾いたｘｙ座標系のｙ軸方向において、顔画像５０２よりも下方に位置する所定領域を検出領域５０４に設定することにより、操作者が横になっている場合等にも、操作者の上半身が立っている場合と同様の動きにより操作指示を行うことができる。
【００３８】
また、検出領域設定部３１２は、取得した動画像データに基づく動画像に含まれる顔画像の位置に従って、円弧状に湾曲した検出領域を、当該動画像を構成するフレーム画像に対して設定することも可能である。本実施形態では、検出領域設定部３１２は、図８に示すように、操作者が肘を中心として腕を回動させた場合における、円弧状の腕の軌跡に沿って検出領域５０４を設定する。具体的には、検出領域設定部３１２は、図９に示すように、顔画像５０２の位置座標（Ｘ１，Ｙ１）を原点とするｘｙ座標系において、顔画像５０２の位置座標（Ｘ１，Ｙ１）を下方（ｙ軸方向）に移動させた位置座標（ｘ１，ｙ１）を、操作者が肘を中心として回動させた場合における回動中心として求める。より具体的には、検出領域設定部３１２は、まず、顔画像５０２の大きさｒを求める。次いで、検出領域設定部３１２は、（ｘ１，ｙ１）＝（Ｘ１＋ａ・ｒ・Δｘ，Ｙ１＋ａ・ｒ・Δｙ）により、ｘｙ座標系における回動中心の位置座標（ｘ１，ｙ１）を求める。ここで、ａは、位置座標（ｘ１，ｙ１）を求める際に用いるパラメータである。Δｘは、位置座標（ｘ１，ｙ１）のうちｘ軸方向の座標を求める際に用いるパラメータである。Δｙは、位置座標（ｘ１，ｙ１）のうちｙ軸方向の座標を求める際に用いるパラメータである。以上の処理により、検出領域設定部３１２は、ＸＹ座標系において、顔画像５０２の位置座標（Ｘ１，Ｙ１）を、予め設定された移動量（ΔＸ，ΔＹ）移動させた座標を、回動中心として求める。
【００３９】
回動中心の位置座標（ｘ１，ｙ１）を求めると、検出領域設定部３１２は、位置座標（ｘ１，ｙ１）を中心とする扇型（円弧状に湾曲した領域）の検出領域５０４を設定する。具体的には、検出領域設定部３１２は、図１０に示すように、位置座標（ｘ１，ｙ１）を中心として腕を予め設定された角度θ´（θＲ＋｜θＬ｜）回動させた場合における、腕の長さ（Ａ１＝ｂ・ｒ）を半径とする円弧Ｅ１と、手先までの長さ（Ａ２＝ｃ・ｒ）を半径とする円弧Ｅ２と、の間の領域を、検出領域５０４に設定する。ここで、ｂ，ｃは、円弧Ｅ１，Ｅ２を求める際に用いるパラメータである。なお、パラメータｂ，ｃは、コンピュータ１０の操作者毎に変更可能としても良い。例えば、コンピュータ１０は、当該コンピュータ１０にログインする操作者の操作者ＩＤに対応付けて、パラメータｂ，ｃを記憶しておく。そして、検出領域設定部３１２は、コンピュータ１０に操作者がログインした際に、ログインした操作者の操作者ＩＤと対応付けて記憶されたパラメータｂ，ｃを読み出し、読み出したパラメータｂ，ｃを用いて、円弧Ｅ１，Ｅ２を求める。
【００４０】
本実施形態では、検出領域設定部３１２は、位置座標（ｘ１，ｙ１）を中心として腕を予め設定された角度θ´（θＲ＋｜θＬ｜）回動させた場合における扇型の領域を検出領域５０４として設定しているが、顔画像５０２の上下方向に延びる線を軸（ｙ軸）として線対称に設定された扇型の領域（円弧状に湾曲した領域）を検出領域５０４に設定しても良い。
【００４１】
図４に戻り、動き検出部３１４は、設定した検出領域において動きを検出する（ステップＳ４０７）。また、動き検出部３１４は、検出領域設定部３１２により複数の検出領域が設定された場合、複数の検出領域において動きを検出する。本実施形態では、動き検出部３１４は、図５に示すように、画像取得部３０１により取得された動画像データに基づく動画像を構成するフレーム画像５０１の検出領域５０４における手５０５の動き５０６を検出する。また、動き検出部３１４は、検出領域設定部３１２により切り換えられたモード（第一のモードまたは第二のモード）に従って、検出領域５０４において動き５０６を検出する。
【００４２】
具体的には、動き検出部３１４は、取得された動画像データに基づく動画像を構成するフレーム画像５０１のうち、最後のフレーム画像が撮像された時刻ｔと当該時刻ｔから所定時間（例えば、１０フレーム分の時間）前の時刻ｔ−１との間のフレーム画像５０１を抽出する。
【００４３】
次いで、動き検出部３１４は、抽出したフレーム画像５０１に含まれる検出領域５０４から、手５０５の動き５０６を検出する。図１２に示す例は、時刻ｔ−１から時刻ｔまでの間に、検出領域５０４に含まれる手５０５が、点線で示す位置Ｐ１から実線で示す位置Ｐ２に移動した例である。具体的には、動き検出部３１４は、時刻ｔの検出領域５０４に含まれる手５０５を含む少なくとも１つの部分画像７０１、および時刻ｔ−１の検出領域５０４に含まれる手５０５の少なくとも１つの部分画像７０２を抽出する。そして、動き検出部３１４は、部分画像７０１，７０２に含まれる手５０５を構成する少なくとも１つの画素Ｇの、時刻ｔと時刻ｔ−１間における移動を、手５０５の動き５０６として検出する。その際、動き検出部３１４は、検出領域設定部３１２により第一のモードに切り換えられている場合には、ＸＹ座標系を基準にして、画素Ｇの移動を検出する。一方、動き検出部３１４は、検出領域設定部３１２により第二のモードに切り換えられている場合には、ｘｙ座標系を基準にして、画素Ｇの移動を検出する。
【００４４】
本実施形態では、動き検出部３１４は、図１２に示す例において、手５０５の動き５０６を検出しているが、操作者の操作指示の動きを検出するものであれば、これに限定するものではない。例えば、動き検出部３１４は、操作者の操作指示による物（操作者が手に持つ物など）の動きを検出しても良い。さらに、動き検出部３１４は、検出領域設定部３１２により複数の検出領域が設定された場合、複数の検出領域においてそれぞれ動きを検出するものとする。
【００４５】
また、動き検出部３１４は、図１３に示すように、検出領域５０４内での手５０５の動き５０６に加えて、当該検出領域５０４の近傍の手５０５ｈの動き５０６を検出しても良い。ただし、検出した動き５０６から操作者による操作指示を判定する際には、検出領域５０４において検出された動き５０６のみを用いるものとする。
【００４６】
また、動き検出部３１４は、検出領域５０４における動きのうち、予め設定された速度よりも速い速度で動く動き、操作指示を意図しない動き（本実施形態では、Ｘ軸またはＹ軸に沿って手５０５を移動させる動き、およびｘ軸またはｙ軸に沿って手５０５を移動させる動き以外の動き）を検出せず、確実に検出することができる動き５０６のみを検出しても良い。これにより、より確実に操作指示の動きの検出を行うことができる。
【００４７】
さらに、動き検出部３１４は、検出領域設定部３１２により設定された検出領域が円弧状に湾曲した領域である場合、当該検出領域から極座標系で表される動きを検出するとともに、検出した動きを直交座標系で表される動きに変換する。具体的には、動き検出部３１４は、図１０に示すように、ＸＹ座標系の位置座標（Ｐｘ，Ｐｙ）を、位置座標（ｘ１，ｙ１）を中心とする極座標系における極座標（Ｐｒ，Ｐθ）に変換する。ここで、Ｐｒは、（Ｐｘ−ｘ１）２＋（Ｐｙ−ｙ１）２の平方根である。また、Ｐθは、ａｔａｎ２（ｙ１−Ｐｙ，ｘ１−Ｐｘ）である。そして、動き検出部３１４は、極座標（Ｐｒ，Ｐθ）が、Ａ１＜Ｐｒ＜Ａ２およびθＬ＜Ｐθ＜θＲを満たす場合に、当該極座標（Ｐｒ，Ｐθ）が検出領域５０４内に存在すると判断する。
【００４８】
極座標（Ｐｒ，Ｐθ）が検出領域５０４内に存在すると判断した場合、動き検出部３１４は、フレーム画像５０１間における極座標（Ｐｒ，Ｐθ）の移動速度（ｖｒ，ｖθ）を、直交座標系Ｒで表される移動速度（ｖｘ，ｖｙ）に変換する。具体的には、動き検出部３１４は、極座標（Ｐｒ，Ｐθ）を、円弧Ｅ２をｘＲ軸としかつ円弧Ｅ２の中点（原点（０，０））においてｘＲ軸と交わる軸をｙＲ軸とする直交座標系Ｒにおける位置座標（Ｐｘ´，Ｐｙ´）＝（２・Ａ２・Ｐθ，Ａ２−Ｐｒ）に変換する。次いで、動き検出部３１４は、以下の式１を用いて、極座標（Ｐｒ，Ｐθ）の移動速度（ｖｒ，ｖθ）から、位置座標（Ｐｘ´，Ｐｙ´）の移動速度（ｖｘ´，ｖｙ´）を、検出領域５０４内における動きとして求める。
（ｖｘ´，ｖｙ´）≡（ｄ・ｖθ，ｅｖｒ）・・・（式１）
ここで、ｄ，ｅは、極座標（Ｐｒ，Ｐθ）の移動速度（ｖｒ，ｖθ）から移動速度（ｖｘ´，ｖｙ´）を求める際に用いる予め設定されたパラメータである。
また、
【数１】
0005713959.tif 000002
ここで、ｖｘ，ｖｙは、直交座標系Ｒにおける極座標（Ｐｒ，Ｐθ）の速度ベクトルである。
【００４９】
図４に戻り、履歴取得部３１５は、動き検出部３１４により検出（または変換）された直交座標系で表される動きの履歴を取得する（ステップＳ４０８）。
【００５０】
次いで、禁止判定部３１３は、操作判定部３０３により操作データが最後に出力されてから操作指示を禁止する禁止期間が経過したか否かを判定する（ステップＳ４０９）。ここで、禁止期間とは、操作者による操作指示を禁止する期間であり、コンピュータ１０の操作者が任意に設定できる。禁止判定部３１３は、禁止期間が経過していない場合（ステップＳ４０９：Ｎｏ）、禁止期間が経過するまで待機する。これにより、操作者が操作指示を行なった直後に他の操作者が操作指示を行なうことで、先に操作指示を行なった操作者による操作指示が、他の操作者が行なった操作指示によって相殺されてしまうことを防止できる。また、操作者が同じ動きによる操作指示を連続して行なった場合（例えば、手５０５を上から下へ移動させる動きを連続して行なった場合）、手５０５を上から下へと移動させる動きを行なった後、手５０５を元の位置に戻す際に、手５０５を元の位置に戻す動きが検出されて、当該手５０５を元の位置に戻す動きによって、手５０５を上から下へと移動させる動きが相殺されることを防止できる。
【００５１】
また、禁止判定部３１３は、禁止期間が経過した後、操作指示が可能であることを報知する。本実施形態では、禁止判定部３１３は、操作指示が可能である場合、操作指示が可能であることを示すメッセージをディスプレイユニット１２に表示するなど、ディスプレイユニット１２の表示態様を変えることにより、操作指示が可能であることを報知する。なお、本実施形態では、禁止判定部３１３は、ディスプレイユニット１２の表示態様を変えることにより操作指示が可能であることを報知しているが、これに限定するものではなく、例えば、図示しないＬＥＤインジケータやスピーカ１８Ａ，１８Ｂを用いて、操作指示が可能であることを報知しても良い。
【００５２】
禁止期間が経過したと判定された場合（ステップＳ４０９：Ｙｅｓ）、操作判定部３０３は、履歴取得部３１５により取得された動きの履歴から、検出（変換）された動きによる操作指示を表す操作データを出力する（ステップＳ４１０）。本実施形態では、操作判定部３０３は、履歴取得部３１５により取得された動きが、ＸＹ座標系（またはｘｙ座標系）において、上下または左右に移動する動きである場合に、当該取得された動きによる操作指示を表す操作データを出力する出力部として機能する。
【００５３】
また、本実施形態では、操作判定部３０３は、矩形状の検出領域から動きが検出された場合には、動き検出部３１４により検出された動き（ＸＹ座標系またはｘｙ座標系で表される動き）による操作指示を表す操作データを出力する。一方、操作判定部３０３は、円弧状に湾曲した検出領域から動きが検出された場合には、動き検出部３１４により変換された動き（直交座標系Ｒで表される動き）による操作指示を表す操作データを出力する。これにより、操作判定部３０３は、動き検出部３１４により極座標系で表わされる動きが検出された場合であっても、直交座標系Ｒで表わされる動きに従って操作データを出力することができるので、ＸＹ座標系またはｘｙ座標系で表わされる動きが検出された場合と同様の処理により操作データを出力することができる。
【００５４】
具体的には、検出領域設定部３１２により第一のモードに切り換えられ、履歴取得部３１５により取得された動き５０６が、図１４（ａ）に示すように検出領域５０４を右から左に移動する動き（ＸＹ座標系のＸ軸に対して略平行に、プラス側からマイナス側へと移動する動き）である場合、操作判定部３０３は、ディスプレイユニット１２のウィンドウに表示された画像を右側にスクロールする操作指示を表す操作データを出力する。
【００５５】
また、検出領域設定部３１２により第一のモードに切り換えられ、履歴取得部３１５により取得された動き５０６が、図１４（ｂ）に示すように検出領域５０４を左から右に移動する動き（ＸＹ座標系のＸ軸に対して略平行に、マイナス側からプラス側へと移動する動き）である場合、操作判定部３０３は、ディスプレイユニット１２のウィンドウに表示された画像を左側にスクロールする操作指示を表す操作データを出力する。
【００５６】
また、検出領域設定部３１２により第一のモードに切り換えられ、履歴取得部３１５により取得された動き５０６が、図１４（ｃ）に示すように検出領域５０４を上から下に移動する動き（ＸＹ座標系のＹ軸に対して略平行に、マイナス側からプラス側へと移動する動き）である場合、操作判定部３０３は、ディスプレイユニット１２のウィンドウに表示された画像を下側にスクロールさせる操作指示を表す操作データを出力する。
【００５７】
また、検出領域設定部３１２により第一のモードに切り換えられ、履歴取得部３１５により取得された動き５０６が、図１４（ｄ）に示すように検出領域５０４を下から上に移動する動き（ＸＹ座標系のＹ軸に対して略平行に、プラス側からマイナス側へと移動する動き）である場合、操作判定部３０３は、ディスプレイユニット１２のウィンドウに表示された画像を上側にスクロールさせる操作指示を表す操作データを出力する。
【００５８】
また、検出領域設定部３１２により第二のモードに切り換えられ、履歴取得部３１５により取得された動き５０６が、図１５（ａ）に示すように検出領域５０４を右から左に移動する動き（ｘｙ座標系のｘ軸に対して略平行にプラス側からマイナス側へと移動する動き、または直交座標系ＲのｘＲ軸に対して略平行にプラス側からマイナス側へと移動する動き）である場合、操作判定部３０３は、ディスプレイユニット１２に表示されている放送データのチャンネル番号を増加する操作指示を表す操作データを出力する。
【００５９】
また、検出領域設定部３１２により第二のモードに切り換えられ、履歴取得部３１５により取得された動き５０６が、図１５（ｂ）に示すように検出領域５０４を左から右に移動する動き（ｘｙ座標系のｘ軸に対して略平行にマイナス側からプラス側へと移動する動き、または直交座標系ＲのｘＲ軸に対して略平行にマイナス側からプラス側へと移動する動き）である場合、操作判定部３０３は、ディスプレイユニット１２に表示されている放送データのチャンネル番号を減らす操作指示を表す操作データを出力する。
【００６０】
また、検出領域設定部３１２により第二のモードに切り換えられ、履歴取得部３１５により取得された動き５０６が、図１５（ｃ）に示すように検出領域５０４を上から下に移動する動き（ｘｙ座標系のｙ軸に対して略平行にマイナス側からプラス側へと移動する動き、または直交座標系ＲのｙＲ軸に対して略平行にマイナス側からプラス側へと移動する動き）である場合、操作判定部３０３は、ディスプレイユニット１２に表示されている放送データに関わりかつスピーカ１８Ａ，１８Ｂから出力される音声の音量を下げる操作指示を表す操作データを出力する。
【００６１】
また、検出領域設定部３１２により第二のモードに切り換えられ、履歴取得部３１５により取得された動き５０６が、図１５（ｄ）に示すように検出領域５０４を下から上に移動する動き（ｘｙ座標系のｙ軸に対して略平行にプラス側からマイナス側へと移動する動き、または直交座標系ＲのｙＲ軸に対して略平行にプラス側からマイナス側へと移動する動き）である場合、操作判定部３０３は、ディスプレイユニット１２に表示されている放送データに関わりかつスピーカ１８Ａ，１８Ｂから出力される音声の音量を上げる操作指示を表す操作データを出力する。
【００６２】
また、操作判定部３０３は、動き検出部３１４により複数の検出領域において動きが検出された場合、複数の検出領域において検出した動きによる操作指示に基づく操作データを出力するものとする。例えば、操作判定部３０３は、複数の検出領域において検出された動きを蓄積する。
【００６３】
そして、操作判定部３０３は、蓄積した動きが同一の操作指示に対応する動きである場合には、蓄積した動きによる操作指示を表す操作データを出力する。例えば、ディスプレイユニット１２に表示されている放送データのチャンネル番号を増加する操作指示に対応する動きが略同時に検出された場合、放送データのチャンネル番号を増加する操作指示を表す操作データを出力する。
【００６４】
一方、操作判定部３０３は、蓄積した動きが、互いに打ち消しあう操作指示に対応する動きである場合には、操作データを出力しない。例えば、スピーカ１８Ａ，１８Ｂから出力される音量を上げる操作指示に対応する動きと、スピーカ１８Ａ，１８Ｂから出力される音量を下げる操作指示に対応する動きと、が略同時に検出された場合に、操作データを出力しない。
【００６５】
図４に戻り、操作判定部３０３から操作データが出力されると、操作実行部３０４は、出力された操作データに従って操作対象機器（例えば、ディスプレイユニット１２など）を制御する。
【００６６】
なお、複数のウィンドウをディスプレイユニット１２に表示可能なコンピュータ１０においては、操作者が視聴しているウィンドウ（表示データ）と同時に、入力された動画像データに基づく顔画像を含む動画像に検出領域を重ねた画像が表示されたウィンドウをディスプレイユニット１２に表示しても良い。これにより、コンピュータ１０の操作者は、動画像に含まれる顔画像および検出領域が表示されたウィンドウを見ることにより、どの位置で操作指示の動きを行えば操作指示を行なえるのかを容易に把握することができる。
【００６７】
このように本実施形態にかかるコンピュータ１０によれば、入力された動画像データに基づく動画像に含まれる顔画像の位置に従って、円弧状に湾曲した検出領域を当該動画像を構成するフレーム画像に対して設定し、当該検出領域において、操作者の操作指示の動きを検出し、検出した動きによる操作指示を表す操作データを出力することにより、検出領域の形状を、操作者が操作指示を行う際に手を動かし易い形状とすることができるので、ジェスチャーによる操作対象機器の操作性を向上させることができる。また、操作者の操作指示の動きを検出する領域を操作者が容易に認識できるので、ジェスチャーによるコンピュータ１０の操作精度を向上させることができる。
【００６８】
本実施形態のコンピュータ１０で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供されても良い。
【００６９】
また、本実施形態のコンピュータ１０で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のコンピュータ１０で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００７０】
また、本実施形態のプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００７１】
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７２】
１０  コンピュータ
１１１  ＣＰＵ
１１２  主メモリ
３０２  検出部
３０３  操作判定部
３１１  顔検出・追跡部
３１２  検出領域設定部
３１３  禁止判定部
３１４  動き検出部
３１５  履歴取得部
【図１】
0005713959.tif 000003
【図２】
0005713959.tif 000004
【図３】
0005713959.tif 000005
【図４】
0005713959.tif 000006
【図５】
0005713959.tif 000007
【図６】
0005713959.tif 000008
【図７】
0005713959.tif 000009
【図８】
0005713959.tif 000010
【図９】
0005713959.tif 000011
【図１０】
0005713959.tif 000012
【図１１】
0005713959.tif 000013
【図１２】
0005713959.tif 000014
【図１３】
0005713959.tif 000015
【図１４】
0005713959.tif 000016
【図１５】
0005713959.tif 000017