以下、本件を実施するための形態について図面を参照して説明する。
(第1実施形態)
図1は情報処理システムSの一例を説明するための図である。図2は第1実施形態に係る電子ペン300の構成を説明する図である。情報処理システムSはプロジェクタ100と撮像装置としてのカメラ200と光学装置としての電子ペン300と処理装置としてのサーバ装置400とを備えている。プロジェクタ100とカメラ200とサーバ装置400は有線又は無線により互いに接続されている。また、サーバ装置400は通信ネットワークNWを介して情報処理システムSの設置場所と異なる場所(例えば遠隔地など)に設置された別の情報処理システム(不図示)と接続されている。尚、通信ネットワークNWとしては例えばLocal Area Network(LAN)やインターネットなどがある。
プロジェクタ100はテーブル10上に置かれた磁気シート11上に画像を投影する。例えば、プロジェクタ100は電子ペン300の一方の先端(例えば描画側の先端)の軌跡に応じた画像を磁気シート11上に投影する。尚、磁気シート11は磁気を帯びた所定の領域の一例であって、例えば磁気マットなどであってもよいし、テーブル10自体が磁気を帯びていてもよい。
カメラ200は磁気シート11を静止画像として定期的に撮像する。言い換えれば、カメラ200は磁気シート11を動画像として撮像する。磁気シート11上に電子ペン300が存在すると、カメラ200は電子ペン300と磁気シート11を撮像する。尚、プロジェクタ100とカメラ200は互いの画角を合わせて配置されている。
電子ペン300は、図2に示すように、発光体としてのLight Emitting Diode(LED)310と、磁気センサとしての第1磁気スイッチ321及び第2磁気スイッチ322と、制御回路330と、押下スイッチ340とを備えている。また、電子ペン300は、LED310及び制御回路330に電力を供給する電池などの電源(不図示)を備えている。LED310は電子ペン300の一方の先端に設けられている。第1磁気スイッチ321及び第2磁気スイッチ322はそれぞれ磁気を検出する。制御回路330は第1磁気スイッチ321及び第2磁気スイッチ322による磁気シート11からの磁気の検出状況に応じて、LED310の発光状態を制御する。例えば、第1磁気スイッチ321が磁気を検出すると、制御回路330は押下スイッチ340のオンとオフを切り替えてLED310の発光状態を点滅状態に制御する。又は、第1磁気スイッチ321が磁気を検出すると、制御回路330は直接LED310の発光状態を点滅状態に制御する。例えば、LED310が磁気シート11に接触すると、押下スイッチ340がオフからオンに切り替わり、LED310は電力の供給を受けて点灯する。例えば、第1磁気スイッチ321と第2磁気スイッチ322の両方が磁気を検出すると、制御回路330はLED310の発光状態を消灯状態に制御する。尚、制御回路330による制御の詳細については後述する。
図1に戻り、サーバ装置400はカメラ200による撮像画像内に電子ペン300のLED310による特定の発光状態(例えば点滅状態)を認識した場合、電子ペン300がホバリングの状態(以下、ホバリング状態という)であると判定する。尚、ホバリング状態とは、LED310が磁気シートから所定閾値以内で離れた状態をいう。一方、サーバ装置400はカメラ200による撮像画像内に電子ペン300のLED310による別の特定の発光状態(例えば点灯状態)を認識した場合、電子ペン300が接触状態であると判定する。例えば、サーバ装置400は電子ペン300が接触状態であると判定すると、別の特定の発光状態にあるLED310の軌跡に応じた画像をプロジェクタ100に投影させる。これにより、プロジェクタ100はLED310の軌跡に応じた画像を投影する。
次に、図3を参照して、サーバ装置400のハードウェア構成について説明する。
図3はサーバ装置400のハードウェア構成の一例である。図3に示すように、サーバ装置400は、少なくともCentral Processing Unit(CPU)400A、Random Access Memory(RAM)400B、Read Only Memory(ROM)400C及びネットワークI/F(インタフェース)400Dを含んでいる。サーバ装置400は、必要に応じて、Hard Disk Drive(HDD)400E、入力I/F400F、出力I/F400G、入出力I/F400H、ドライブ装置400Iの少なくとも1つを含んでいてもよい。CPU400Aからドライブ装置400Iまでは、内部バス400Jによって互いに接続されている。少なくともCPU400AとRAM400Bとが協働することによってコンピュータが実現される。
入力I/F400Fには、カメラ200が接続される。カメラ200としては、例えばビデオカメラなどがある。
出力I/F400Gには、プロジェクタ100が接続される。
入出力I/F400Hには、半導体メモリ730が接続される。半導体メモリ730としては、例えばUniversal Serial Bus(USB)メモリやフラッシュメモリなどがある。入出力I/F400Hは、半導体メモリ730に記憶されたプログラムやデータを読み取る。
入力I/F400F、出力I/F400G、及び入出力I/F400Hは、例えばUSBポートを備えている。
ドライブ装置400Iには、可搬型記録媒体740が挿入される。可搬型記録媒体740としては、例えばCompact Disc(CD)−ROM、Digital Versatile Disc(DVD)といったリムーバブルディスクがある。ドライブ装置400Iは、可搬型記録媒体740に記録されたプログラムやデータを読み込む。
ネットワークI/F400Dは、例えばポートとPhysical Layer Chip(PHYチップ)とを備えている。サーバ装置400は、ネットワークI/F400Dを介して通信ネットワークNWと接続される。
上述したRAM400Bには、ROM400CやHDD400Eに記憶されたプログラムがCPU400Aによって格納される。RAM400Bには、可搬型記録媒体740に記録されたプログラムがCPU400Aによって格納される。格納されたプログラムをCPU400Aが実行することにより、サーバ装置400は後述する各種の機能を実現し、また、後述する各種の処理を実行する。尚、プログラムは後述するフローチャートに応じたものとすればよい。
次に、図4及び図5を参照して、サーバ装置400が実行又は実現する各機能について説明する。
図4はサーバ装置400の機能ブロック図の一例である。図5は管理テーブルの一例である。サーバ装置400は、管理テーブル記憶部410、画像読込部420、表示制御部430、送受信部440、及び情報処理部450を含んでいる。
管理テーブル記憶部410は管理テーブルを記憶する。管理テーブルはLED310の発光状態を管理するテーブルである。具体的には、図5に示すように、管理テーブルは、ハイライトID、処理時刻、及び、処理時刻毎のLED310の状態を含むハイライト情報を管理対象として含んでいる。特に、LED310の状態はLED310の位置座標と発光状態を構成要素として含んでいる。例えば、カメラ200による撮像画像内にLED310による1つの発光状態(例えば点滅又は点灯)が含まれている場合、管理テーブルによって1つのハイライト情報(例えばハイライトID「A001」)が管理される。例えば、カメラ200による撮像画像内にLED310による複数の発光状態が含まれている場合、管理テーブルによって複数のハイライト情報(例えばハイライトID「A001」及び「A002」)が管理される。例えば、管理テーブルによって複数のハイライト情報が管理されている状態でいずれかのハイライト情報が一定期間更新されていないと、更新されていないハイライト情報は管理対象から除外される。尚、ハイライト情報に含まれる処理時刻は、発光状態を特定する部分を撮像画像から抽出した時刻を表している。
画像読込部420はカメラ200が撮像した状態を表す静止画像を撮像画像としてカメラ200から定期的に読み込む。画像読込部420は撮像画像を読み込むと、撮像画像を時系列に保持する。
表示制御部430はプロジェクタ100の動作を制御する。例えば、情報処理部450がLED310の軌跡に応じた画像を生成した場合、表示制御部430は当該画像をプロジェクタ100に投影させる。
送受信部440は情報処理部450から出力された各種の情報を受信して通信ネットワークNWに送信したり、通信ネットワークNWから送信された各種の情報を受信して情報処理部450に送信したりする。例えば、送受信部440はホバリング状態を表す情報を情報処理システムSと異なる別の情報処理システムに送信する。
情報処理部450は画像読込部420が保持する撮像画像を取得する。情報処理部450は撮像画像を取得し、撮像画像内にLED310による特定の発光状態(例えば点滅状態)を認識した場合、電子ペン300がホバリング状態であると判定する。また、情報処理部450は撮像画像内にLED310による別の特定の発光状態(例えば点灯状態)を認識した場合、電子ペン300が接触状態であると判定する。さらに、情報処理部450は電子ペン300が接触状態であると判定すると、点灯したLED310の軌跡に応じた画像を生成し、当該画像を表示制御部430に出力する。これにより、表示制御部430は情報処理部450から出力された画像をプロジェクタ100に投影させることができる。
続いて、上述したサーバ装置400の動作を説明する。
図6は第1実施形態に係るサーバ装置400の動作(その1)の一例を示すフローチャートである。図7は第1実施形態に係るサーバ装置400の動作(その2)の一例を示すフローチャートである。図8は第1実施形態に係るサーバ装置400の動作(その3)の一例を示すフローチャートである。
まず、図6に示すように、画像読込部420はカメラ200から撮像画像を読み込む(ステップS101)。画像読込部420は読み込んだ撮像画像を時系列に保持する。
ステップS101の処理が完了すると、次いで、情報処理部450はハイライトスポットを抽出する(ステップS102)。第1実施形態に係るハイライトスポットはLED310が点灯又は点滅した部分である。より詳しく説明すると、情報処理部450は時系列に保持された撮像画像の中から複数(例えば数フレーム分)の撮像画像を画像読込部420から順に取得する。情報処理部450は取得した複数の撮像画像をそれぞれ所定閾値に基づいて二値化する。具体的には、情報処理部450は画素値(例えば8ビット)が所定閾値未満の画素を0(即ち黒色)に変換し、所定閾値以上の画素を255(即ち白色)に変換する。後述する第2実施形態及び第3実施形態も同じである。したがって、LED310が点灯していれば、点灯した部分が白色で全ての撮像画像内にハイライトスポットして出現する。また、LED310が点滅していれば、点灯した部分が白色でいずれかの撮像画像内にハイライトスポットして出現する。例えば、情報処理部450は複数の撮像画像を時系列に参照し、同じ部分において白色と黒色が交互に出現していれば、LED310が点滅していると判定することができる。
ステップS102の処理が完了すると、次いで、情報処理部450はハイライトスポットがあったか否かを判定する(ステップS103)。例えば、図9(a)に示すように、電子ペン300の第1磁気スイッチ321が磁気シート11と磁気シート11からの磁気が届く空間と届かない空間の境を表す磁気境界12との間に含まれていなければ、第1磁気スイッチ321は磁気を検出しないため、LED310は点滅しない。また、LED310は磁気シート11にも接触していないため、LED310は点灯しない。このような場合、図10(a)に示すように、LED310の発光状態が消灯状態であるため、撮像画像内にはハイライトスポットが出現しない。したがって、図6に示すように、情報処理部450はハイライトスポットがないと判定し(ステップS103:NO)、情報処理部450は再びステップS101の処理を実行する。
一方、例えば、図9(b)に示すように、電子ペン300の第1磁気スイッチ321の一部又は全部が磁気シート11と磁気境界12との間に含まれていれば、第1磁気スイッチ321は磁気を検出するため、LED310は点滅する。しかしながら、LED310は磁気シート11に接触していないため、LED310は点灯しない。このような場合、図10(b)に示すように、LED310の発光状態が点滅状態であるため、撮像画像内にはハイライトスポットが出現する。したがって、図6に示すように、情報処理部450はハイライトスポットがあると判定し(ステップS103:YES)、ハイライトスポットの総数Nを計数するとともに、ハイライトスポットの数を計数するためのカウント変数iに0を設定する(ステップS104)。尚、情報処理部450はハイライトスポットがあると判定した場合、適宜、ハイライトスポットを拡大したり縮小したりした後、ノイズを除去する処理を実行することが望ましい。後述する第2実施形態及び第3実施形態でも同様である。
ステップS104の処理が完了すると、次いで、情報処理部450はハイライトスポットが新規管理対象であるか否かを判定する(ステップS105)。例えば、情報処理部450は管理テーブル記憶部410を参照し、抽出したハイライトスポットと同じであると判断できるハイライトスポットが管理テーブルによって管理されていない場合、新規管理対象であると判定する(ステップS106:YES)。この場合、情報処理部450は抽出したハイライトスポットをハイライト情報として管理テーブルに登録する(ステップS107)。例えば、まず、情報処理部450は、図11(a)に示すように、ハイライトスポットを識別するハイライトID「A001」を生成する。そして、情報処理部450は生成したハイライトID、ハイライトスポットを抽出した時刻「t1」、撮像画像内におけるハイライトスポットの位置座標「Z1」、LED310の発光状態「点滅」を特定する。そして、情報処理部450は特定したこれらの内容を含むハイライト情報を管理テーブルに登録する。ステップS107の処理が完了すると、情報処理部450は再びステップS101の処理を実行する。
一方、例えば、情報処理部450は管理テーブル記憶部410を参照し、抽出したハイライトスポットと同じであると判断できるハイライトスポットが管理テーブルによって管理されている場合、新規管理対象でないと判定する(ステップS106:NO)。例えば、図9(b)に示す点滅状態が継続している場合、撮像画像内には点滅を表すハイライトスポットが既に登録されたハイライトスポットの座標位置と同じ座標位置又はその近くの座標位置に出現する。したがって、情報処理部450は抽出したハイライトスポットが新規管理対象でないと判定した場合、図7に示すように、管理テーブルを更新する(ステップS108)。具体的には、図11(b)に示すように、情報処理部450はハイライトID「A001」によって識別されるハイライト情報に、時刻「t2」、位置座標「Z1」、発光状態「点滅」を追加する。
ステップS108の処理が完了すると、次いで、情報処理部450は発光状態を判定する(ステップS109)。より詳しくは、情報処理部450は管理テーブル記憶部410を参照し、直近の発光状態が点滅又は点灯のどちらであるかを判定する。ここで、直近の発光状態が点滅である場合(ステップS110:YES)、情報処理部450はホバリングイベントを出力する(ステップS111)。すなわち、情報処理部450はLED310が点滅状態であると認識した場合、電子ペン300がホバリング状態であると判定し、送受信部440にホバリング状態を表す情報としてホバリングイベントを出力する。そして、送受信部440はホバリングイベントを別の情報処理システムに送信する。これにより、情報処理システムSを利用する利用者と別の情報処理システムを利用する利用者は、電子ペン300で書込みを行おうとしている状態を互いに確認できる。したがって、情報処理システムSと別の情報処理システムのそれぞれの設置場所で投影された共有の画像に対して同時に書込みを行うこと(いわゆる書込み衝突)が回避される。
ステップS111の処理が完了すると、情報処理部450はカウント変数iをインクリメントし(ステップS112)、カウント変数iが総数N未満であるか否かを判定する(ステップS113)。カウント変数iが総数N未満である場合(ステップS113:YES)、情報処理部450はステップS105の処理を実行する。すなわち、撮像画像内に複数のハイライトスポットが出現する場合、情報処理部450は次のハイライトスポットを特定し、ステップS105からステップS112までの処理を繰り返す。これにより、情報処理部450は、図11(c)に示すように、新たなハイライトスポットを表すハイライト情報(例えばハイライトID「A002」)を管理テーブルに登録したり、既に管理テーブルに登録されたハイライト情報(例えばハイライトID「A001」)を更新したりする。
一方で、上述したステップS110の処理において、直近の発光状態が点灯である場合(ステップS110:NO)、情報処理部450はタッチイベントを出力する(ステップS114)。すなわち、図9(c)に示すように、電子ペン300のLED310が磁気シート11に接触して押下スイッチ340がオフからオンに切り替わり、LED310が点灯すると、図10(c)に示すように、LED310の発光状態は点滅状態から点灯状態に移行する。情報処理部450はLED310が点灯状態であると認識した場合、電子ペン300が接触状態であると判定し、送受信部440に接触状態を表す情報としてタッチイベントを出力する。そして、送受信部440はタッチイベントを別の情報処理システムに送信する。ステップS114の処理が完了すると、情報処理部450はステップS112の処理を実行する。したがって、情報処理部450は管理テーブル記憶部410を参照して、図11(c)に示すように、直近の処理時刻に発光状態「点灯」を含むハイライト情報を確認した場合、タッチイベントを出力する。
ステップS113の処理において、カウント変数iが総数N未満でない場合(ステップS113:NO)、図8に示すように、情報処理部450は管理テーブルを参照する(ステップS115)。すなわち、撮像画像内に出現した全てのハイライトスポットに対して上述した各種の処理を終えると、情報処理部450は管理テーブルを参照する。ステップS115の処理が完了すると、次いで、情報処理部450は管理対象未更新がある否かを判定する(ステップS116)。
例えば、利用者が電子ペン300による書込みを終えて、図9(d)に示すように、電子ペン300を磁気シート11上に倒すと、LED310は磁気シート11に接触しないため押下スイッチ340は押下されない。したがって、LED310は点灯しない。また、電子ペン300を磁気シート11上に倒すと、第1磁気スイッチ321と第2磁気スイッチ322の両方が磁気シート11の磁気を検出する。第1磁気スイッチ321と第2磁気スイッチ322の両方が磁気を検出すると、制御回路330はLED310を消灯状態に制御する。例えば、制御回路330は押下スイッチ340をオフにすることによりLED310を消灯状態に制御する。尚、制御回路330は直接LED310を消灯状態に制御してもよい。これにより、図10(d)に示すように、消灯状態が継続し、撮像画像内にはハイライトスポットが出現しない。これにより、図12に示すように、管理対象であるハイライト情報の一部(例えばハイライトID「A001」)に未更新が残存する。
図8に戻り、管理対象未更新がない場合(ステップS116:NO)、画像読込部420は、図6に示すステップS101の処理を実行する。一方、管理対象未更新がある場合(ステップS116:YES)、情報処理部450は管理対象未更新の数を計数するためのカウント変数jに0を設定する(ステップS117)。ステップS117の処理が完了すると、次いで、情報処理部450は管理テーブル記憶部410を参照し、管理対象が更新されていないハイライト情報の直前の発光状態を確認する(ステップS118)。ステップS118の処理が完了すると、次いで、情報処理部450は、発光状態が点灯であるか否かを判定する(ステップS119)。
発光状態が点灯でない場合(ステップS119:NO)、j番目の管理対象を削除する(ステップS120)。すなわち、電子ペン300により書込みを終えた後、ホバリング状態に移行し、電子ペン300を磁気シート11上に倒して一定の時間が経過すると、LED310は消灯する。したがって、ハイライト情報は更新されない。このような場合、情報処理部450は管理テーブルから管理対象を削除する。これにより、情報処理部450によるハイライト情報の管理負担が低減する。
一方、発光状態が点灯である場合(ステップS119:YES)、j番目の管理対象の状態を更新する(ステップS121)。すなわち、利用者は電子ペン300を利用して書込みを行うと想定されるため、情報処理部450は更新されてない管理対象の状態を更新する。例えば、情報処理部450は更新されてない管理対象の発光状態を点灯として更新する。情報処理部450はステップS120又はステップS121の処理が完了すると、カウント変数jをインクリメントする(ステップS122)。ステップS122の処理が完了すると、次いで、情報処理部450はカウント変数jが管理対象未更新の総数M未満であるか否かを判定する(ステップS123)。カウント変数jが管理対象未更新の総数M未満である場合(ステップS123:YES)、情報処理部450は次の管理対象未更新を特定し、ステップS118からS122の処理を繰り返す。一方、カウント変数jが管理対象未更新の総数M未満でない場合(ステップS123:NO)、情報処理部450はステップS101の処理を実行する。
以上、第1実施形態によれば、情報処理システムSはカメラ200と電子ペン300とサーバ装置400とを備えている。カメラ200は磁気シート11を撮像する。電子ペン300はLED310と、第1磁気スイッチ321及び第2磁気スイッチ322と、制御回路330を含んでいる。ここで、第1磁気スイッチ321及び第2磁気スイッチ322はそれぞれ磁気を検出し、制御回路330は第1磁気スイッチ321及び第2磁気スイッチ322による磁気シート11からの磁気の検出状況に応じて、LED310の発光状態を制御する。サーバ装置400は、カメラ200による撮像画像内にLED310による特定の発光状態(例えば点滅)を認識した場合、電子ペン300がホバリング状態であると判定する。これにより、ホバリングの検出精度を向上することができる。
特に、図13(a)に示すように、電子ペン300が磁気シート11上に倒れている場合、既に説明したように、LED310は消灯するため、情報処理部450はホバリング状態でないと判定する。また、図13(b)に示すように、例えば、LED310が設けられた先端と逆側の先端が磁気シート11に接触又は非接触の状態である場合、第1磁気スイッチ321が磁気を検出できなければ、LED310は点滅せずに消灯する。したがって、情報処理部450はホバリング状態でないと判定する。さらに、図13(c)に示すように、磁気シート11上に電子ペン300が存在しなければ、第1磁気スイッチ321は磁気を検出できず、LED310は消灯する。したがって、情報処理部450はホバリング状態でないと判定する。すなわち、第1磁気スイッチ321が磁気を検出してLED310が点滅した状態を情報処理部450が確認できた場合に、電子ペン300がホバリング状態であると特定することができる。
(第2実施形態)
次に、本件の第2実施形態について説明する。
図14は第2実施形態に係る電子ペン300の構成を説明する図である。尚、図2に示す電子ペン300の各部と同様の構成には同一符号を付し、その説明を省略する。
第2実施形態に係る電子ペン300はLED311をさらに備える点で第1実施形態に係る電子ペン300と相違する。LED311は電子ペン300の他方の先端(例えば非描画側の先端)に設けられている。言い換えれば、LED311はLED310と異なる先端に設けられている。以下、第2実施形態では、LED310を第1LED310と呼び、LED311を第2LED311と呼ぶ。第2LED311の発光状態は制御回路330によって制御される。例えば、第1磁気スイッチ321が磁気を検出すると、制御回路330は第2LED311の発光状態を点滅状態に制御する。
図15は第2実施形態に係るサーバ装置400の動作(その1)の一例である。図16(a)は第2実施形態に係るサーバ装置400の動作(その2)の一例である。図16(b)は第2実施形態に係るサーバ装置400の動作(その3)の一例である。
まず、図15に示すように、画像読込部420はカメラ200から撮像画像を読み込む(ステップS201)。画像読込部420は読み込んだ撮像画像を時系列に保持する。
ステップS201の処理が完了すると、次いで、情報処理部450はハイライトスポットを抽出する(ステップS202)。第2実施形態に係るハイライトスポットは第2LED311が点滅した部分又は第1LED310が点灯した部分である。より詳しく説明すると、情報処理部450は時系列に保持された撮像画像の中から複数(例えば数フレーム分)の撮像画像を画像読込部420から順に取得する。情報処理部450は取得した複数の撮像画像をそれぞれ所定閾値に基づいて二値化する。したがって、第2LED311が点滅していれば、点灯した部分が白色でいずれかの撮像画像内にハイライトスポットして出現する。例えば、情報処理部450は複数の撮像画像を時系列に参照し、同じ部分において白色と黒色が交互に出現していれば、第2LED311が点滅したと判定する。
ステップS202の処理が完了すると、次いで、情報処理部450はハイライトスポットがあったか否かを判定する(ステップS203)。例えば、図17(a)に示すように、電子ペン300の第1磁気スイッチ321が磁気シート11と磁気境界12との間に含まれていなければ、第1磁気スイッチ321は磁気を検出しないため、第2LED311は点滅しない。また、第1LED310は磁気シート11にも接触していないため、第1LED310は点灯しない。このような場合、図18(a)及び図19(a)に示すように、第2LED311の発光状態も第1LED310の発光状態も消灯状態であるため、撮像画像内にはハイライトスポットが出現しない。したがって、図15に示すように、情報処理部450はハイライトスポットがないと判定し(ステップS203:NO)、情報処理部450は再びステップS201の処理を実行する。
一方、例えば、図17(b)に示すように、電子ペン300の第1磁気スイッチ321の一部又は全部が磁気シート11と磁気境界12との間に含まれていれば、第1磁気スイッチ321は磁気を検出するため、第2LED311は点滅する。しかしながら、第1LED310は磁気シート11に接触していないため、第1LED310は点灯しない。このような場合、図18(b)に示すように、第2LED311の発光状態が点滅状態であるため、撮像画像内には第2LED311の点滅状態を表すハイライトスポットが出現する。一方、図19(b)に示すように、第1LED310の発光状態が消灯状態であるため、撮像画像内には第1LED310のハイライトスポットは出現しない。このような場合、情報処理部450はハイライトスポットがあると判定し(ステップS203:YES)、ハイライトスポットの総数Nを計数するとともに、ハイライトスポットの数を計数するためのカウント変数iに0を設定する(ステップS204)。
ステップS204の処理が完了すると、次いで、情報処理部450はi番目のハイライトスポットを後続の処理対象に設定する(ステップS205)。ステップS205の処理が完了すると、次いで、情報処理部450は処理対象に設定したハイライトスポットが点滅に基づくハイライトスポットであるか否かを判定する(ステップS206)。
点滅に基づくハイライトスポットである場合(ステップS206:YES)、情報処理部450は管理テーブルを検索する(ステップS207)。ステップS207の処理が完了すると、次いで、情報処理部450はその点滅に基づくハイライトスポットが管理テーブルに既に登録されているか否かを判定する(ステップS208)。点滅に基づくハイライトスポットが登録されていない場合(ステップS208:NO)、図16(a)に示すように、情報処理部450は処理対象に設定したハイライトスポットを表すハイライト情報を管理テーブルに登録する(ステップS209)。特に、情報処理部450は、図20に示すように、第2LED311が点滅しており、第1LEDが消灯していることを表す第1発光状態と処理対象に設定したハイライトスポットの位置座標を管理テーブルに登録する。第1発光状態により電子ペン300がホバリング状態であることが特定される。したがって、ハイライトスポットの位置座標によりホバリング状態にある電子ペン300の位置座標が特定される。
尚、図15に示すステップS208の処理において、点滅に基づくハイライトスポットが登録されている場合(ステップS208:YES)、情報処理部450は、図16(a)に示すステップS209の処理をスキップする。すなわち、図20に示すように、第1発光状態が維持されるため、電子ペン300がホバリング中であると特定できる。
ステップS209の処理が完了した場合、又は、ステップS209の処理がスキップされた場合、情報処理部450はカウント変数iをインクリメントし(ステップS210)、カウント変数iが総数N未満であるか否かを判定する(ステップS211)。カウント変数iが総数N未満である場合(ステップS211:YES)、情報処理部450はステップS205の処理を実行する。すなわち、撮像画像内に複数のハイライトスポットが出現する場合、情報処理部450は次のハイライトスポットを特定し、ステップS205からステップS210までの処理を繰り返す。カウント変数iが総数N未満でない場合(ステップS211:NO)、情報処理部450はステップS201の処理を実行する。
一方、図15に示すステップS206の処理において、点滅に基づくハイライトスポットでない場合(ステップS206:NO)、図16(b)に示すように、情報処理部450は管理テーブルを検索する(ステップS212)。言い換えれば、点灯に基づくハイライトスポットである場合、情報処理部450は管理テーブルを検索する。ステップS212の処理が完了すると、次いで、情報処理部450は近辺に点滅があるか否かを判定する(ステップS213)。より詳しくは、情報処理部450は点灯に基づくハイライトスポットの近辺に点滅に基づくハイライトスポットが存在するか否かを判定する。
例えば、図17(c)に示すように、電子ペン300の第1LED310が磁気シート11に接触して押下スイッチ340がオフからオンに切り替わり、第1LED310が点灯すると、図19(c)に示すように、第1LED310の発光状態は消灯状態から点灯状態に移行する。一方、図17(c)に示すように、第2LED311は第1LED310が磁気シート11に接触したか否かに関わらず第1磁気スイッチ321が磁気を検出すれば点滅するため、図18(c)に示すように、第2LED311は点滅状態を維持する。
したがって、撮像画像内では第1LED310の点灯に基づくハイライトスポットと第2LED311の点滅に基づくハイライトスポットが出現する。特に、電子ペン300により書込みが行われている場合、電子ペン300の姿勢は磁気シート11に対して垂直方向側に傾いている。このため、2つのハイライトスポットは撮像画像内で近接又は一部が重畳する。情報処理部450は管理テーブルを検索して、2つのハイライトスポットが撮像画像内で近接又は一部が重畳すると特定できる2つの位置座標を検出した場合、近辺に点滅があると判断する(ステップS213:YES)。尚、近接しているか否かは所定の閾値を利用して判定すればよい。
情報処理部450は、近辺に点滅があると判断した場合、処理対象に設定したハイライトスポットを接触状態に更新する(ステップS214)。すなわち、情報処理部450は、図20に示すように、第1発光状態を、第2LED311が点滅しており、第1LEDが点灯していることを表す第2発光状態に更新する。したがって、第2発光状態により電子ペン300が接触状態であることを特定することができる。尚、図20に示すように、第2発光状態が維持されていれば、電子ペン300が磁気シート11に接触中であると特定できる。一方、電子ペン300が磁気シート11から離れて非接触になると、第1発光状態に移行し、電子ペン300がホバリング中であると特定できる。ステップS214の処理が完了すると、情報処理部450は、図16(a)に示すステップS210の処理を実行する。
一方、情報処理部450は、近辺に点滅がないと判断した場合(ステップS213:NO)、処理対象に設定したハイライトスポットを接触状態で登録する(ステップS215)。より詳しくは、情報処理部450は、処理対象に設定したハイライトスポットを表すハイライト情報を管理テーブルに登録して、第2発光状態に設定する。併せて、情報処理部450は、電子ペン300が接触した位置座標を更新するとともに、ホバリングの位置座標を新たに登録する。情報処理部450は、ステップS215の処理を終えると、図16(a)に示すステップS210の処理を実行する。
尚、利用者が電子ペン300による書込みを終えて、図17(d)に示すように、電子ペン300を磁気シート11上に倒すと、第1LED310は磁気シート11に接触しないため押下スイッチ340は押下されない。したがって、第1LED310は点灯しない。また、電子ペン300を磁気シート11上に倒すと、第1磁気スイッチ321と第2磁気スイッチ322の両方が磁気シート11の磁気を検出する。第1磁気スイッチ321と第2磁気スイッチ322の両方が磁気を検出すると、制御回路330はLED310を消灯状態に制御する。これにより、図18(d)及び図19(d)に示すように、第1LED310及び第2LED311の消灯状態が継続し、撮像画像内にはハイライトスポットが出現しない。
以上、第2実施形態によれば、第2LED311の点滅に基づくハイライトスポットの近辺に第1LED310の点灯に基づくハイライトスポットが出現すれば、電子ペン300の第1LED310が磁気シート11に接触したと判定することができる。すなわち、2つのハイライトスポットが出現した時点で第1LED310が磁気シート11に接触したと判定することができる。
一方、第1実施形態では第1LED310が点滅から点灯に移行すれば、電子ペン300の第1LED310が磁気シート11に接触したと判定することができる。すなわち、点滅に基づくハイライトスポットが出現し、その後、そのハイライトスポットが点灯に切り替わった時点で第1LED310が磁気シート11に接触したと判定することができる。このように、第2実施形態によれば、ホバリングの検出精度を向上できるだけでなく、第1実施形態に比べて、第1LED310の磁気シート11への接触を速やかに判定することができる。
(第3実施形態)
次に、本件の第3実施形態について説明する。
図21は第3実施形態に係る電子ペン300の構成を説明する図である。尚、図2に示す電子ペン300の各部と同様の構成には同一符号を付し、その説明を省略する。
第3実施形態に係る電子ペン300は押下スイッチ340を備えていな点で第1実施形態に係る電子ペン300と相違する。したがって、LED310の発光状態は制御回路330によって直接制御される。例えば、第1磁気スイッチ321が磁気を検出すると、制御回路330はLED310の発光状態を点灯状態に制御する。
図22は第3実施形態に係るサーバ装置400の動作の一例である。まず、図22に示すように、画像読込部420はカメラ200から撮像画像を読み込む(ステップS301)。画像読込部420は読み込んだ撮像画像を時系列に保持する。
ステップS301の処理が完了すると、次いで、情報処理部450はハイライトスポットを抽出する(ステップS302)。第3実施形態に係るハイライトスポットはLED310が点灯した部分である。より詳しく説明すると、情報処理部450は時系列に保持された撮像画像の中から撮像画像を1つずつ画像読込部420から取得する。情報処理部450は取得した1つの撮像画像を所定閾値に基づいて二値化する。したがって、LED310が点灯していれば、点灯した部分が白色で撮像画像内にハイライトスポットして出現する。
ステップS302の処理が完了すると、次いで、情報処理部450はハイライトスポットがあったか否かを判定する(ステップS303)。例えば、図23(a)に示すように、電子ペン300の第1磁気スイッチ321が磁気シート11と磁気境界12との間に含まれていなければ、第1磁気スイッチ321は磁気を検出しないため、LED310は点灯しない。また、第3実施形態に係る電子ペン300は押下スイッチ340を備えていないため、LED310が磁気シート11に接触しても、LED310は点灯しない。したがって、図24(a)に示すように、LED310の発光状態が消灯状態であるため、撮像画像内にはハイライトスポットが出現しない。したがって、情報処理部450はハイライトスポットがないと判定し(ステップS303:NO)、情報処理部450は再びステップS301の処理を実行する。
一方、例えば、図23(b)及び図23(c)に示すように、電子ペン300の第1磁気スイッチ321の一部又は全部が磁気シート11と磁気境界12との間に含まれていれば、第1磁気スイッチ321は磁気を検出するため、LED310は点灯する。このような場合、図24(b)及び図24(c)に示すように、LED310の発光状態が点灯状態であるため、撮像画像内にはLED310の点灯状態を表すハイライトスポットが出現する。したがって、情報処理部450はハイライトスポットがあると判定し(ステップS303:YES)、ハイライトスポットの総数Nを計数するとともに、ハイライトスポットの数を計数するためのカウント変数iに0を設定する(ステップS304)。
ステップS304の処理が完了すると、次いで、情報処理部450はi番目のハイライトスポットを後続の処理対象に設定する(ステップS305)。ステップS305の処理が完了すると、次いで、情報処理部450は処理対象に設定したハイライトスポットの照射範囲が所定の閾値より大きいか否かを判定する(ステップS306)。
例えば、図23(b)に示すように、LED310が磁気シート11に接触していない場合、LED310の点灯に基づく磁気シート11の照射範囲は、図23(c)に示すように、LED310が磁気シート11に接触している場合に比べて、大きくなる。したがって、情報処理部450はハイライトスポットの照射範囲が所定の閾値より大きければ、電子ペン300がホバリング状態であると特定することができる。一方、情報処理部450はハイライトスポットの照射範囲が所定の閾値以下であれば、電子ペン300が接触状態であると特定することができる。尚、所定の閾値としては、例えばLED310が磁気シート11に接触している場合における、LED310の点灯に基づく磁気シート11の照射範囲を採用することができる。
処理対象に設定したハイライトスポットの照射範囲が所定の閾値より大きい場合(ステップS306:YES)、情報処理部450はホバリングイベントを出力する(ステップS307)。すなわち、情報処理部450は送受信部440にホバリング状態を表す情報としてホバリングイベントを出力する。一方、処理対象に設定したハイライトスポットの照射範囲が所定の閾値以下である場合(ステップS306:NO)、情報処理部450はタッチイベントを出力する(ステップS308)。すなわち、情報処理部450は送受信部440に接触状態を表す情報としてタッチイベントを出力する。
ステップS307又はステップS308の処理が完了した場合、情報処理部450はカウント変数iをインクリメントし(ステップS309)、カウント変数iが総数N未満であるか否かを判定する(ステップS310)。カウント変数iが総数N未満である場合(ステップS310:YES)、情報処理部450はステップS305の処理を実行する。すなわち、撮像画像内に複数のハイライトスポットが出現する場合、情報処理部450は次のハイライトスポットを特定し、ステップS305からステップS309までの処理を繰り返す。カウント変数iが総数N未満でない場合(ステップS310:NO)、情報処理部450は再びステップS301の処理を実行する。
尚、利用者が電子ペン300による書込みを終えて、図23(d)に示すように、電子ペン300を磁気シート11上に倒すと、第1磁気スイッチ321と第2磁気スイッチ322の両方が磁気シート11の磁気を検出する。第1磁気スイッチ321と第2磁気スイッチ322の両方が磁気を検出すると、制御回路330はLED310を消灯状態に制御する。これにより、図24(d)に示すように、消灯状態が継続し、撮像画像内にはハイライトスポットが出現しない。
以上、第3実施形態によれば、ホバリングの検出精度を向上できるだけでなく、押下スイッチ340を利用していないため、電子ペン300の構成を簡素化することができる。
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1)磁気を帯びた所定の領域を撮像する撮像装置と、第1の発光体、それぞれ磁気を検出する第1及び第2のセンサ、及び、前記第1及び第2のセンサによる前記領域からの磁気の検出状況に応じて、前記第1の発光体の発光状態を制御する制御回路を含む光学装置と、前記撮像装置と接続されたコンピュータと、を利用する情報処理方法であって、前記コンピュータは、前記撮像装置による撮像画像内における前記第1の発光体の発光状態に応じて、前記光学装置がホバリング状態であるか否か判定する、処理を実行する情報処理方法。
(付記2)前記処理は、前記第1の発光体が第1の発光状態であると認識した場合、前記光学装置がホバリング状態であると判定する、ことを特徴とする付記1に記載の情報処理方法。
(付記3)前記光学装置は第2の発光体を含み、前記制御回路は前記第2の発光体の発光状態を制御し、前記処理は、前記撮像画像内の所定範囲内に前記第1の発光体による第1の発光状態と前記第2の発光体による第2の発光状態の両方を認識した場合、前記光学装置が前記領域に接触した状態であると判定する、ことを特徴とする付記1又は2に記載の情報処理方法。
(付記4)前記処理は、前記撮像装置による撮像画像内に前記第1の発光体による第2の発光状態を認識した場合、認識した前記第2の発光状態の大きさを確認し、確認した大きさが所定の大きさより大きい場合、前記光学装置がホバリング状態であると判定する、ことを特徴とする付記1又は2に記載の情報処理方法。
(付記5)前記処理は、前記撮像装置による撮像画像内に前記第1の発光体による第2の発光状態を認識した場合、認識した前記第2の発光状態の大きさを確認し、確認した大きさが所定の大きさ以下である場合、前記光学装置が前記領域に接触した状態であると判定する、ことを特徴とする付記1、2又は4に記載の情報処理方法。
(付記6)前記制御回路は、前記第1及び第2のセンサの両方が前記領域からの磁気を検出した場合、前記第1の発光体を消灯する、ことを特徴とする付記1から5のいずれか1項に記載の情報処理方法。
(付記7)磁気を帯びた所定の領域を撮像する撮像装置と、第1の発光体、それぞれ磁気を検出する第1及び第2のセンサ、及び、前記第1及び第2のセンサによる前記領域からの磁気の検出状況に応じて、前記第1の発光体の発光状態を制御する制御回路を含む光学装置と、前記撮像装置による撮像画像内に前記第1の発光体による特定の発光状態を認識した場合、前記光学装置がホバリング状態であると判定する処理装置と、を有する情報処理システム。
(付記8)前記処理装置は、前記第1の発光体が第1の発光状態であると認識した場合、前記光学装置がホバリング状態であると判定する、ことを特徴とする付記7に記載の情報処理システム。
(付記9)前記光学装置は第2の発光体を含み、前記制御回路は前記第2の発光体の発光状態を制御し、前記処理装置は、前記撮像画像内の所定範囲内に前記第1の発光体による第1の発光状態と前記第2の発光体による第2の発光状態の両方を認識した場合、前記光学装置が前記領域に接触した状態であると判定する、ことを特徴とする付記7又は8に記載の情報処理システム。
(付記10)前記処理装置は、前記撮像装置による撮像画像内に前記第1の発光体による第2の発光状態を認識した場合、認識した前記第2の発光状態の大きさを確認し、確認した大きさが所定の大きさ以上である場合、前記光学装置がホバリング状態であると判定する、ことを特徴とする付記7又は8に記載の情報処理システム。
(付記11)前記処理装置は、前記撮像装置による撮像画像内に前記第1の発光体による第2の発光状態を認識した場合、認識した前記第2の発光状態の大きさを確認し、確認した大きさが所定の大きさ未満である場合、前記光学装置が前記領域に接触した状態であると判定する、ことを特徴とする付記7、8又は10に記載の情報処理システム。
(付記12)前記制御回路は、前記第1及び第2のセンサの両方が前記領域からの磁気を検出した場合、前記第1の発光体を消灯する、ことを特徴とする付記7から11のいずれか1項に記載の情報処理システム。
(付記13)発光体と、それぞれ磁気を検出する第1及び第2のセンサと、前記第1及び第2のセンサによる磁気を帯びた所定の領域からの磁気の検出状況に応じて、前記発光体の発光状態を制御する制御回路と、を備える光学装置。