図1は、電子装置の一例を示す図である。
電子装置は、例えばパーソナルコンピュータ、換言すれば、PCである。パーソナルコンピュータは、PC本体1と、表示装置2と、カメラ3と、キーボード4と、スピーカ5と、リモコン受光部6と、リモートコントローラ7とを含む。
PC本体1は、PCの本体を収容する筐体である。表示装置2は、PC本体1とは別に設けられ、PC本体1と接続される。カメラ3は、入力装置の一例であり、例えば、表示装置2において、表示画面21の上部の中央に設けられる。キーボード4は、入力装置の一例であり、PC本体1と接続される。スピーカ5は、出力装置の一例であり、例えば、表示装置2において、表示画面21の下部の左端に設けられる。リモコン受光部6は、入力装置の一例であり、例えば、表示装置2において、表示画面21の下部の右端に設けられる。
リモートコントローラ7は、ユーザーによって押されたボタンに対応するコードを、予め定められた信号、例えば光信号に変換して、入力信号として出力する。リモコン受光部6は、リモートコントローラ7から送出された入力信号を受信する。
なお、電子装置は、図1に示すデスクトップ型のパーソナルコンピュータ以外にも、ノート型のパーソナルコンピュータ、タブレット型のパーソナルコンピュータ、携帯電話機能及び通信機能を備えるスマートフォンのような情報処理端末、テレビ等、種々の電子装置であってもよい。
図2は、電子装置の一例を示す図である。
パーソナルコンピュータは、信号検出部11と、リモコンテーブル12と、制御信号テーブル13と、リモコン受信制御部14と、スピーカ制御部15と、動き情報生成部16とを含む。動き情報生成部16は画像処理部17を含む。信号検出部11は、リモコンテーブル格納領域に格納されたリモコンテーブル12と、制御信号テーブル格納領域に格納された制御信号テーブル13とを保持する。リモコン受信制御部14は、例えばリモコン受光部6を含む。スピーカ制御部15は、例えばスピーカ5を含む。カメラ3が出力する画像は、例えば動き情報生成部16に入力される。
リモートコントローラ7、換言すれば、リモコン7は、複数のボタンを含む。ユーザーは、パーソナルコンピュータのリモコン受光部6に向けて、所望の機能のボタンを選択して押すことにより、選択した機能のボタンに対応した入力信号を、パーソナルコンピュータに入力する。リモートコントローラ7は、ユーザーにより押されたボタンに対応するコードを、予め定められた信号に変換して、制御信号として出力する。
図2の例では、予め定められた信号として、例えば可視光領域の光信号が用いられる。
リモートコントローラ7は、例えば、光源を予め定められたパターンで点滅することにより、入力信号を送信する。なお、予め定められた信号として、赤外線を用いてもよく、他の周波数の電波を用いるようにしてもよい。
例えば、ユーザーがリモートコントローラ7の同期ボタンを押すと、リモートコントローラ7は、同期信号を送信する。また、ユーザーがリモートコントローラ7の例えば音量アップボタンを押すと、リモートコントローラ7は、音量アップの入力信号を送信する。音量アップの入力信号は、スピーカ5が出力する音量のアップを指示し実行させる入力信号である。
リモコン受信制御部14は、リモコン受光部6で、例えば、リモートコントローラ7から送出された光信号を受信し、受信した光信号を電気信号に変換し、信号検出部11に送る。
具体的には、リモコン受信制御部14は、リモートコントローラ7から同期信号を受信すると、受信した同期信号に基づいて、同期制御信号を生成する。リモコン受信制御部14は、生成した同期制御信号を、信号検出部11に送信する。信号検出部11は、同期制御信号を受信すると、受信した同期制御信号を動き情報生成部16に送信する。
同期信号及び同期制御信号は、パーソナルコンピュータにカメラ3の画像に含まれるリモートコントローラ7を認識させるための信号であり、制御信号の入力に先立って入力される。換言すれば、同期信号及び同期制御信号は、リモートコントローラ7からのパーソナルコンピュータに対する認識要求信号である。
動き情報生成部16は、リモートコントローラ7の動きを表す動き情報を生成して、生成した動き情報を信号検出部11に送信する。動き情報生成部16は、前述したように、画像処理部17を含む。画像処理部17は、カメラ3が撮影した画像に基づいて、リモートコントローラの動きを表す動き情報を生成して、生成した動き情報を信号検出部11に送信する。換言すれば、画像処理部17は、動き情報生成部16の一例である。
動き情報生成部16は、リモコン受信制御部14からの同期制御信号を受信した場合に、画像処理部17においてカメラ3が撮影した画像を解析することにより、カメラ3が撮影した画像に含まれるリモートコントローラ7を検出する。例えば、動き情報生成部16は、画像処理部17において、カメラ3が撮影した動画像をキャプチャすることにより静止画を取得し、取得した静止画を強調処理することによりエッジ画像を取得する。そして、動き情報生成部16は、画像処理部17において、取得したエッジ画像とリモートコントローラ7の形状とを比較することにより、エッジ画像の中から、リモートコントローラ7の形状と一致する部分画像を、リモートコントローラ7として検出する。画像処理部17は、リモートコントローラ7を種々の角度から見た画像を予め保持する。エッジ画像の部分画像は、例えば、リモートコントローラ7の形状と一致する割合が予め定められた閾値以上である場合に、リモートコントローラ7として検出される。
そして、動き情報生成部16は、画像処理部17において、検出したリモートコントローラ7を検出対象として認識して、カメラ3が撮影した画像から、予め定められた時間間隔で、リモートコントローラ7を検出する。例えば、動き情報生成部16は、画像処理部17において、カメラ3が撮影した動画像を、予め定められた時間間隔で、キャプチャすることにより静止画を取得する。そして、動き情報生成部16は、画像処理部17において、取得した静止画の中のリモートコントローラ7の位置を検出する。これにより、カメラ3が撮影した画像の中におけるリモートコントローラ7の位置を把握することができる。
また、リモコン受信制御部14は、リモートコントローラ7から入力信号を受信すると、受信した入力信号に基づいて、制御信号を生成する。リモコン受信制御部14は、生成した制御信号を、信号検出部11に送信する。信号検出部11は、制御信号を受信すると、受信した制御信号を動き情報生成部16に送信する。
入力信号及び制御信号は、リモートコントローラ7がパーソナルコンピュータの被制御部を制御するための信号であり、同期信号の入力の後で入力される。換言すれば、入力信号及び制御信号は、リモートコントローラ7からパーソナルコンピュータへ入力される信号である。
被制御部は、リモートコントローラ7からの入力信号により制御される回路であり、入力信号、換言すれば、制御信号により制御される。被制御部は、例えば、スピーカ5を含むスピーカ制御部15であり、入力信号は、例えば、音量アップ信号、音量ダウン信号である。又は、被制御部は、例えば、後述するDVDドライブ装置であり、入力信号は、例えば、映像早送り信号、映像逆回し信号等である。入力信号はこれらに限られず、リモートコントローラ7からの他の種々の入力信号に適用することができる。また、被制御部もこれらに限られず、リモートコントローラ7からの他の種々の入力信号により制御される回路に適用することができる。
動き情報生成部16は、リモコン受信制御部14からの制御信号を受信した場合に、画像処理部17において、カメラ3が撮影した画像を解析することにより、カメラ3が撮影した画像に基づいて、リモートコントローラ7の動きを表す動き情報を生成する。動き情報は、リモートコントローラ7の動きを表す情報である。動き情報を生成するための解析処理の対象は、同期制御信号の受信に応じて先に検出したリモートコントローラ7である。従って、動き情報生成部16は、画像処理部17において、同期制御信号を受信してリモートコントローラ7を検出した後において、リモートコントローラ7の動きを表す動き情報を生成する。動き情報生成部16は、生成した動き情報を、信号検出部11に送信する。
例えば、動き情報生成部16は、制御信号を受信すると、画像処理部17において、カメラ3が撮影した動画像を、予め定められた時間間隔で、連続的にキャプチャすることにより、連続する複数の静止画を取得する。そして、動き情報生成部16は、画像処理部17において、取得した複数の静止画の各々から、リモートコントローラ7の位置を、時系列的に検出する。これにより、動き情報生成部16は、画像処理部17において、カメラ3が撮影した画像の中におけるリモートコントローラ7の動き情報を生成する。動き情報は、リモートコントローラ7の位置の時系列的な変化を、リモートコントローラ7の動きとして、検出した情報である。
なお、画像処理部17がカメラ3が撮影した画像についての画像処理のみを実行して、動き情報生成部16がリモートコントローラ7の動き情報を生成するようにしてもよい。例えば、画像処理部17が連続する複数の静止画を取得し、動き情報生成部16が、取得した複数の静止画の各々からリモートコントローラ7の位置を時系列的に検出し、リモートコントローラ7の動き情報を生成するようにしてもよい。また、前述したように、図2の例では、リモートコントローラ7は、光源を点滅させることにより、入力信号を出力する。そこで、動き情報生成部16が、カメラ3が撮影した画像に含まれるリモートコントローラ7の光源を検出することにより、動き情報を生成するようにしてもよい。また、動き情報生成部16とは別に画像処理部17が設けられるようにしてもよい。また、動き情報生成部16が、カメラ3が撮影した画像以外の情報に基づいて、リモートコントローラ7の動き情報を生成するようにしてもよい。
信号検出部11は、同期制御信号が受信されたか否かを判定する。そして、信号検出部11は、受信した同期制御信号に含まれる識別情報に基づいて、同期信号を送信したリモートコントローラ7を判定する。例えば、信号検出部11は、受信した同期制御信号に含まれる識別情報を用いて、リモコンテーブル12を参照する。リモコンテーブル12は、パーソナルコンピュータを操作可能なリモートコントローラ7の識別情報を格納する。これにより、同期信号を送信したリモートコントローラ7を判定することができる。
また、信号検出部11は、制御信号が受信されたか否かを判定する。そして、信号検出部11は、受信した制御信号に含まれる識別情報に基づいて、リモコンテーブル12を用いて、制御信号を送信したリモートコントローラ7を判定する。
そして、信号検出部11は、同期制御信号を受信した後において、被制御部を制御する信号を、制御信号に基づいて生成し、制御信号に基づいて生成できない場合には、動き情報生成部16からの動き情報に基づいて生成する。換言すれば、同期制御信号を受信してリモートコントローラ7を検出した後において、被制御部を制御する信号は、優先的に制御信号に基づいて生成され、制御信号に基づいて生成できない場合に、予備的に動き情報生成部16からの動き情報に基づいて生成される。
具体的には、信号検出部11は、制御信号が受信された場合に、換言すれば、リモートコントローラ7からの入力信号が受信された場合に、制御信号に基づいて被制御部を制御する信号を生成する。これにより、リモートコントローラ7に設けられたボタンであって、入力信号に対応するボタンに応じて、被制御部を制御する信号が生成される。
また、信号検出部11は、制御信号が受信されない場合に、換言すれば、リモートコントローラ7からの入力信号が受信されない場合に、動き情報生成部16からの動き情報に基づいて、被制御部を制御する信号を生成する。動き情報生成部16からの動き情報は、先に同期制御信号の受信に応じて検出したリモートコントローラ7の動き情報である。これにより、リモートコントローラ7に設けられたボタンであって、入力信号に対応するボタンに応じて、動き情報に基づいて、被制御部を制御する信号が生成される。
この後、信号検出部11は、生成した被制御部を制御する信号を、予め保持したデータ、換言すれば、制御信号テーブル13と比較する。例えば、信号検出部11は、生成した被制御部を制御する信号を用いて、制御信号テーブル13を参照する。制御信号テーブル13は、パーソナルコンピュータの被制御部を制御する信号を格納する。これにより、生成した被制御部を制御する信号が、予め登録された信号であるか否かを判定することができる。信号検出部11は、生成した被制御部を制御する信号が予め保持したデータと一致する場合に、換言すれば、生成した被制御部を制御する信号が制御信号テーブル13に存在する場合に、生成した被制御部を制御する信号に基づいて、被制御部を制御する。
スピーカ制御部15は、被制御部の一例であり、スピーカ5を制御する。例えば、信号検出部11は、リモートコントローラ7の音量アップボタンに対応する音量アップの制御信号に基づいて生成した信号により、被制御部であるスピーカ制御部15を制御することにより、スピーカ5の音量をアップする。
図3は、電子装置の一例を示す図である。
リモートコントローラ7は、ボタン群71と、制御部72と、発信部73とを含む。ボタン群71は、複数のボタンを含む。各々のボタンには、各々の機能が記載されている。ユーザーは、例えばリモートコントローラ7の発信部73をパーソナルコンピュータに向けた状態で、所望の機能のボタンを選択して押す。
制御部72は、ユーザーにより選択された1個のボタンが押されると、選択された、換言すれば、押されたボタンを検出して、ユーザーが選択した機能のボタンに対応するコードを、予め定められた信号、例えば光信号に変換することにより、発信する信号を形成する。そして、制御部72は、発信部73を駆動することにより、形成した信号を発信部73に発信出力させる。これにより、ユーザーは、選択した機能に対応した入力信号を、パーソナルコンピュータに入力することができる。
発信部73は、例えばLED(Light Emitting Diode)を含む。LEDは、リモートコントローラ7が送信する光信号の光源である。発信部73は、制御部72による制御に従って、ユーザーが選択した機能のボタンに対応する光信号を、制御信号として出力する。
図4は、電子装置のハードウェアの構成の一例を示す図である。
CPU(Central Processing Unit)101は、システムコントローラ102を介して、メモリ103と接続される。CPU101は、システムコントローラ102を介して、メモリ103上に常駐する制御プログラムであるOS(Operating System)を実行し、パーソナルコンピュータを制御する。CPU101は、システムコントローラ102を介して、メモリ103上の種々のアプリケーションプログラムを実行する。これにより、例えば、信号検出部11、スピーカ制御部15、動き情報生成部16、画像処理部17が実現される。アプリケーションプログラムは、例えば、DVD等の記録媒体に格納され、記録媒体からDVDドライブ装置107を介してハードディスク装置108に入力され、ハードディスク装置108からメモリ103にロードされる。
システムコントローラ102には、バス111が接続される。バス111には、表示装置104、出力装置105、リモコン受信制御部106、DVDドライブ装置107、ハードディスク装置108、入力装置109、カメラ110が接続される。換言すれば、CPU101は、システムコントローラ102及びバス111を介して、表示装置104、出力装置105、リモコン受信制御部106、DVDドライブ装置107、ハードディスク装置108、入力装置109、カメラ110に接続される。
表示装置104は、例えば表示装置2である。出力装置105は、例えばスピーカ5、プリンタ等の出力装置を含む。ハードディスク装置108には、例えば、リモコンテーブル12、制御信号テーブル13が設けられる。データは、必要に応じてハードディスク装置108からメモリ103にロードされ、処理される。入力装置109は、例えばキーボード4、マウス等を含む。カメラ110は、例えばカメラ3である。
リモコン受信制御部106は、例えば、CPU101とは独立に設けられたマイクロコンピュータであり、リモートコントローラ7からの信号を受信して処理し、システムコントローラ102を介して、CPU101へ送る。
DVDドライブ装置107は、例えばOS等の制御の下で、DVD等の記録媒体から、アプリケーションプログラムを読み出してハードディスク装置108に入力し、また、映像データを読み出して表示装置104へ出力する。
次に、ユーザーがパーソナルコンピュータの音量を大きくする場合の操作について、図5〜図8を参照して説明する。この場合、被制御部はスピーカ5を含むスピーカ制御部15であり、入力信号は音量アップ信号である。
ユーザーがパーソナルコンピュータを使用している状態で、常駐プログラムである信号検出部11及び画像処理部17を含む動き情報生成部16が動作している。カメラ3は画像を撮影している。この時点で、カメラ3の画像は、例えば図5(A)のようになるが、リモートコントローラ7がカメラ3の画像に含まれている必要はない。信号検出部11は、入力があると処理を開始する。独立したマイクロコンピュータであるリモコン受信制御部14は、リモコン受光部6でのリモートコントローラ7からの信号の受信待ちの状態となっている。
ユーザーは、図5(A)に示すように、音量を大きくする操作における第1の操作として、パーソナルコンピュータに向けて、リモートコントローラ7の同期ボタン71Aを押す。
リモートコントローラ7は、同期ボタン71Aの押下げに応じて、同期信号を出力する。具体的には、リモートコントローラ7は、発信部73であるLEDを予め定められたパターンで点滅させることにより、同期信号を出力する。同期信号は、例えば、図5(B)に示すように、信号部分#Aと信号部分#Bとを含む。信号部分#Aは、LEDが予め定められた期間だけ連続して発光している期間であって、信号の出力を開始することをパーソナルコンピュータに通知する信号部分である。信号部分#Bは、同期信号の本体であって、パーソナルコンピュータにカメラ3の画像に含まれるリモートコントローラ7を認識することを要求する信号部分であり、LEDが予め定められたユニークな発光パターンで間歇的に発光を繰り返す信号部分である。信号部分#Bは、例えば、リモートコントローラ7の識別情報と、認識の要求とを含む。
この時点で、ユーザーが同期信号を送信するために、リモートコントローラ7がパーソナルコンピュータに向けられている。従って、カメラ3の撮影範囲、換言すれば、カメラ3の画像は、図5(A)に示すように、リモートコントローラ7を含む。
リモコン受信制御部14は、リモコン受光部6でリモートコントローラ7からの同期信号を受信すると、受信した同期信号を電気信号に変換することにより同期制御信号を生成して、生成した同期制御信号を信号検出部11に送信する。信号検出部11は、同期制御信号を受信すると、受信した同期制御信号を動き情報生成部16に通知する。動き情報生成部16は、同期信号を受信すると、換言すれば、リモコン受信制御部14からの同期制御信号を受信すると、画像処理部17によりカメラ3が撮影した画像を解析することにより、カメラ3が撮影した画像に含まれるリモートコントローラ7を検出する。
そして、動き情報生成部16は、検出したリモートコントローラ7を検出対象として認識して、カメラ3が撮影した画像から、予め定められた時間間隔で、リモートコントローラ7を検出する。例えば、動き情報生成部16は、カメラ3が撮影した動画像を、予め定められた時間間隔で、キャプチャすることにより静止画を取得する。そして、動き情報生成部16は、取得した静止画の中のリモートコントローラ7の位置を検出する。これにより、カメラ3が撮影した画像の中におけるリモートコントローラ7の位置を把握することができる。
なお、動き情報生成部16が、カメラ3が撮影した画像から、リモートコントローラ7として、リモートコントローラ7の発信部73であるLEDが作る輝度の高い点、換言すれば、輝点を検出するようにしてもよい。輝点としては、最も輝度の高い物体又は部分の像を検出すればよい。これにより、リモートコントローラ7の動作を確実に検出することができる。
この後、図6(A)に示すように、ユーザーは、音量を大きくする操作における第2の操作として、パーソナルコンピュータに向けて、リモートコントローラ7の音量アップボタン71Bを押し、かつ、リモートコントローラ7を下から上へ振るように移動させる。
リモートコントローラ7は、音量アップボタン71Bの押下げに応じて、パーソナルコンピュータへの入力信号として、音量アップ信号を出力する。具体的には、リモートコントローラ7は、発信部73であるLEDを予め定められたパターンで点滅させることにより、図6(B)に示すような音量アップ信号を出力する。音量アップ信号は、例えば、図6(B)に示すように、信号部分#Aと信号部分#Cとを含む。信号部分#Cは、音量アップ信号の本体であって、パーソナルコンピュータにスピーカ5の音量をアップすることを要求する信号部分であり、LEDが予め定められたユニークな発光パターンで間歇的に発光を繰り返す信号部分である。信号部分#Cは、例えば、リモートコントローラ7の識別情報と、音量アップの要求とを含む。
この時点で、ユーザーが音量アップ信号を送信するために、リモートコントローラ7がパーソナルコンピュータに向けられている。従って、カメラ3の画像は、図6(A)に示すように、リモートコントローラ7を含む。また、カメラ3の画像は、ユーザーがリモートコントローラ7を下から上へ振るように移動させた状態を、映像として含む。
ユーザーが同期ボタン71Aを使用する場合には、ユーザーの動き情報が、予め定められた操作又は処理に対応付けられる。例えば、リモートコントローラ7を下から上へ振る動き情報は音量アップの入力信号又は制御信号に対応付けられ、リモートコントローラ7を上から下へ振る動き情報は音量ダウンの入力信号又は制御信号に対応付けられる。これにより、音量アップボタン71Bの押下げの際に、リモートコントローラ7が正常に発光しなくても、リモートコントローラ7を下から上へ振る動き情報は、音量アップの指示であることを知ることができる。
なお、ユーザーが、同期ボタン71Aとして、音量アップボタン71Bを使用するようにしてもよい。この場合、ユーザーは、同期ボタン71Aを意識することなく、例えば音量アップボタン71Bという同一のボタンを2回押すと共に、2回目の音量アップボタン71Bの押下げの際にリモートコントローラ7を予め定められた方向、例えば下から上へ振るだけでよい。また、この場合、2回目の音量アップボタン71Bの押下げの際に、リモートコントローラ7が正常に発光しなくても、1回目の音量アップボタン71Bの押下げにより同期信号を受信しているので、動き情報は、音量アップの指示であることを知ることができる。
リモコン受信制御部14は、リモコン受光部6でリモートコントローラ7からの音量アップ信号を受信すると、受信した音量アップ信号を電気信号に変換することにより音量アップの制御信号を生成して、生成した音量アップの制御信号を信号検出部11に送信する。信号検出部11は、音量アップの制御信号を受信すると、受信した音量アップの制御信号を動き情報生成部16に通知する。
動き情報生成部16は、音量アップの制御信号を受信すると、換言すれば、リモコン受信制御部14からの音量アップの制御信号を受信すると、動き情報を生成する。動き情報は、カメラ3が撮影した画像を解析することにより、カメラ3が撮影した画像から生成され、検出したリモートコントローラ7の動きを示す情報として生成される。生成された動き情報は、例えば、図7に示すように、カメラ3が撮影した動画像を予め定められた時間間隔でキャプチャすることにより取得した連続する複数の静止画である。
図7(A)〜図7(D)は、リモートコントローラ7の発信部73であるLEDが作る輝点32A〜32Dを検出する例である。輝点32A〜32Dは、例えば、図7(A)に示すように、静止画31の1つの頂点を原点OとするX座標及びY座標により表される。図7(A)〜図7(D)に示す複数の静止画31は、この順に、予め定められた時間が経過している。図7(A)〜図7(D)に示す複数の静止画31において、リモートコントローラ7の輝点32A〜32Dは、静止画31の下から上へ向かって移動していることが判る。なお、リモートコントローラ7の形状を検出する場合でも、同様に、複数の静止画31により、リモートコントローラ7が含まれる静止画31において下から上へ向かって移動していることを検出することができる。
この後、信号検出部11は、図6(B)に示すリモートコントローラ7からの音量アップの入力信号が受信された場合に、対応する音量アップの制御信号に基づいて、スピーカ制御部15を制御する音量アップの信号を生成する。そして、信号検出部11は、生成した音量アップの信号をスピーカ制御部15に送信することによりスピーカ制御部15を制御して、スピーカ5の音量をアップする。この場合、動き情報生成部16から取得されたリモートコントローラ7の動き情報は、音量アップの信号の生成には使用されない。
一方、何らかの原因により、図6(B)に示すリモートコントローラ7からの音量アップの入力信号が受信されない場合がある。この場合、信号検出部11は、動き情報生成部16からのリモートコントローラ7の動き情報に基づいて、スピーカ制御部15を制御する音量アップの信号を生成する。そして、信号検出部11は、生成した音量アップの信号をスピーカ制御部15に送信することによりスピーカ制御部15を制御して、スピーカ5の音量をアップする。この場合、リモートコントローラ7からの音量アップの入力信号が存在しなくても、スピーカ5の音量をアップすることができる。
例えば、信号検出部11は、スピーカ5の音量をアップした場合、図8に示すように、表示装置2の表示画面21上に、音量のボリューム22を表示し、その値を例えば「4」から「5」に変化させる。これにより、ユーザーは、自分の操作によりスピーカ5の音量がアップされたことを確認することができる。なお、図2の例では、スピーカ5の音量は、音量アップの単位量ずつアップされる。
以上は、被制御部がスピーカ5を含むスピーカ制御部15であり、入力信号が音量アップ信号である場合の例であるが、被制御部がDVDドライブ装置107であってもよい。この場合、入力信号は、映像の再生に関連する信号である。例えば、リモートコントローラ7を左から右へ振る動きは、映像の早送りの入力信号又は制御信号に対応付けられるようにしてもよい。また、リモートコントローラ7を右から左へ振る動きは、映像の逆再生の入力信号又は制御信号に対応付けられるようにしてもよい。また、例えば、映像をスロー再生している場合において、リモートコントローラ7を左から右へ振る動きは、映像のコマ送りの入力信号又は制御信号に、リモートコントローラ7を右から左へ振る動きは、映像の逆方向のコマ送りの入力信号又は制御信号に対応付けられるようにしてもよい。
図9は、入力制御処理フローであり、リモコン受信制御部における処理を示す。
パーソナルコンピュータが動作し、リモコン受信制御部14が、待機状態にある(ステップS11)。この状態で、ユーザーがリモートコントローラ7の同期ボタン71Aを押すと、リモートコントローラ7が、同期信号を発信する(ステップS12)。更に、ユーザーが、リモートコントローラ7の選択したボタンを押しながら、任意の動作をする(ステップS13)。これに応じて、リモートコントローラ7が、押されたボタンに対応する入力信号を発信する(ステップS14)。例えば、ユーザーは、音量アップボタン71Bを押しながら、リモートコントローラ7を下から上へ振る。
リモコン受信制御部14は、リモコン受光部6で、リモートコントローラ7からの入力信号を正常に受信したか否か、換言すれば、ユーザーが正常に情報を発信したか否かを判断する(ステップS15)。ユーザーが正常に情報を発信しない場合には(ステップS15、NO)、リモコン受信制御部14が押されたボタンに対応する制御を実行しないので、ユーザーは、ステップS13を繰り返す。ユーザーが正常に情報を発信した場合には(ステップS15、YES)、リモコン受信制御部14は、受信したリモートコントローラ7からの入力信号に基づいて制御信号を生成し、生成した制御信号を信号検出部11に送信した後に、ステップS11を繰り返す。
図10は、入力制御処理フローである。
パーソナルコンピュータが動作し、カメラ3が、ユーザーの情報の取得を開始する(ステップS21)。換言すれば、動き情報生成部16の指示に従って、カメラ3が、撮影を開始する。カメラ3の画像は、動き情報生成部16に送られ、動き情報生成部16は、カメラ3が撮影した画像についての画像処理を行い、リモートコントローラ7の動き情報を生成する。
信号検出部11が、何らかの信号が読み取れたか否かを判断する(ステップS22)。換言すれば、信号検出部11が、リモコン受信制御部14からの同期制御信号又は制御信号の入力、又は、動き情報生成部16からのリモートコントローラ7の動き情報の入力があったか否かを判断する。
信号が読み取れない場合、信号検出部11は、NG処理を実行した後(ステップS29)、ステップS21を繰り返す。NG処理は、例えば、リモコン受信制御部14及び動き情報生成部16に、信号が読み取れなかったことを通知する処理である。これにより、リモコン受信制御部14はリモートコントローラ7からの信号の待ち状態となり、動き情報生成部16はカメラ3が撮影した画像についての画像処理及びリモートコントローラ7の動き情報の生成を繰り返す。
信号が読み取れた場合、信号検出部11は、リモートコントローラ7からの信号を用いた処理を実行するか、又は、ユーザーの動き情報を用いた処理を実行するかを判断する(ステップS23)。リモコン受信制御部14からの同期制御信号が存在しない場合には、信号検出部11は、NG処理を実行した後(ステップS29)、ステップS21を繰り返す。リモコン受信制御部14からの同期制御信号又は制御信号が存在する場合には、これらの信号が優先されるので、信号検出部11は、リモートコントローラ7からの信号を用いた処理を実行すると判断する。リモコン受信制御部14からの制御信号が存在しない場合には、信号検出部11は、ユーザーの動き情報を用いた処理を実行すると判断する。
リモートコントローラ7からの信号を用いた処理を実行する場合、信号検出部11は、図5(B)又は図6(B)に示すような、リモートコントローラ7の発光源であるLEDから得た電気信号のパターンを、波形整形により補正する(ステップS24)。なお、ステップS24は省略してもよい。
ユーザーの動き情報を用いた処理を実行する場合、信号検出部11は、受信した制御信号を動き情報生成部16に送信し、制御信号を受信した動き情報生成部16は、ユーザーの動き情報を補正する(ステップS25)。換言すれば、動き情報生成部16は、ユーザーの動き情報としての、カメラ3が撮影した動画像から取得した連続する複数の静止画を補正し、補正後の連続する複数の静止画を新たなユーザーの動き情報とする。なお、ステップS25は省略してもよい。
この後、信号検出部11は、リモコン受信制御部14からの同期制御信号又は制御信号、又は、動き情報生成部16からのリモートコントローラ7の動き情報に基づいて、被制御部を制御する信号を生成する処理を実行し、被制御部を制御する信号を生成することができたか否かを判断する(ステップS26)。被制御部を制御する信号を生成することができない場合には、信号検出部11は、NG処理を実行した後(ステップS29)、ステップS21を繰り返す。
被制御部を制御する信号を生成することができた場合には、信号検出部11は、生成した被制御部を制御する信号を用いて制御信号テーブル13を解析して(ステップS27)、生成した被制御部を制御する信号が正しいものであることをチェックした後、被制御部を制御する信号を用いて、被制御部を制御する処理を開始する(ステップS28)。これにより、ユーザーの入力に従って、正確に被制御部を制御することができる。
なお、リモートコントローラ7が1個のみである場合には、図10の処理に代えて、図11に示す処理を行うようにしても良い。
図11は、他の入力制御処理フローである。
パーソナルコンピュータが動作し、カメラ3が、ユーザーの情報の取得を開始する(ステップS31)。換言すれば、動き情報生成部16の指示に従って、カメラ3が、撮影を開始する。カメラ3の画像は、動き情報生成部16に送られ、動き情報生成部16は、カメラ3が撮影した画像についての画像処理を行い、リモートコントローラ7の動き情報を生成する。
信号検出部11が、何らかの信号を受信したか否かを判別する(ステップS32)。換言すれば、信号検出部11が、リモコン受信制御部14からの同期制御信号又は制御信号を受信したか、又は、動き情報生成部16からのリモートコントローラ7の動き情報を受信したか否かを判断する。
信号を受信したか否かを判別できない場合、信号検出部11は、NG処理を実行した後(ステップS312)、ステップS31を繰り返す。NG処理は、例えば、リモコン受信制御部14及び動き情報生成部16に、信号を受信したか否かを判別できなかったことを通知する処理である。
リモコン受信制御部14からの同期制御信号又は制御信号を受信したことを判別できた場合、信号検出部11は、リモートコントローラ7からの信号を用いた処理を実行すると判断する(ステップS33)。リモコン受信制御部14からの制御信号が存在しない場合には、信号検出部11は、ユーザーの動き情報を用いた処理を実行すると判断する(ステップS34)。
この後、信号検出部11は、信号の補正を行い、信号の補正を行うことができたか否かを判断する(ステップS35)。例えば、リモートコントローラ7からの信号を用いた処理を実行する場合、信号検出部11は、図5(B)又は図6(B)に示すような、リモートコントローラ7の発光源であるLEDから得た電気信号のパターンを波形整形により補正する。ユーザーの動き情報を用いた処理を実行する場合、信号検出部11は、受信した制御信号を動き情報生成部16に送信し、制御信号を受信した動き情報生成部16は、ユーザーの動き情報を補正する。
信号の補正を行うことができない場合には、信号検出部11は、NG処理を実行した後(ステップS312)、ステップS31を繰り返す。ここで、信号検出部11は、例えば2回に限って、ステップS31を繰り返す。ステップS35を2回実行しても信号の補正を行うことができない場合には、信号検出部11は、例えば、ユーザーに再度の入力を求める表示を行った後、処理を終了する。
信号の補正を行うことができた場合には、信号検出部11は、補正されたリモートコントローラ7からの信号を取得し、補正されたユーザーの動き情報を取得する(ステップS36)。そして、信号検出部11は、ステップS33及びS34における判断に従って、リモートコントローラ7からの信号を用いた処理を実行するか、又は、ユーザーの動き情報を用いた処理を実行するかを確認する(ステップS37)。
リモートコントローラ7からの信号を用いた処理を実行する場合、信号検出部11は、リモコン受信制御部14からの同期制御信号又は制御信号に基づいて、被制御部を制御する信号を生成する(ステップS38)。また、ユーザーの動き情報を用いた処理を実行する場合、信号検出部11は、動き情報生成部16からのリモートコントローラ7の動き情報に基づいて、被制御部を制御する信号を生成する(ステップS39)。
この後、信号検出部11は、生成した被制御部を制御する信号を用いて制御信号テーブル13を解析して(ステップS310)、生成した被制御部を制御する信号が正しいものであることをチェックした後、被制御部を制御する信号を用いて、被制御部を制御する処理を開始する(ステップS311)。これにより、ユーザーの入力に従って、正確に被制御部を制御することができる。