(57)【要約】【課題】座標算出に関する処理を専用のハードウェアで実行する場合であっても、より容易に構成することができる座標算出装置および座標算出システムを提供する。【解決手段】座標算出装置は、複数の撮像部により撮像された複数の画像のそれぞれから注目点の座標を算出する画像処理部と、算出された座標を別体で接続された情報処理装置に、情報処理装置のオペレーティングシステムに標準で搭載されている標準関数を用いて送信する送信部と、送信した座標に基づき情報処理装置が算出し、情報処理装置のオペレーティングシステムに標準で搭載されている標準関数を用いて送信した、撮像部のキャリブレーション情報を受信する受信部と、受信されたキャリブレーション情報を記憶する記憶部と、を備える。【選択図】図４
2017123146.tif 000002
【特許請求の範囲】
【請求項１】
複数の撮像部により撮像された複数の画像のそれぞれから注目点の座標を算出する画像処理部と、
算出された前記座標を別体で接続された情報処理装置に、前記情報処理装置のオペレーティングシステムに標準で搭載されている標準関数を用いて送信する送信部と、
送信した前記座標に基づき前記情報処理装置が算出し、前記情報処理装置のオペレーティングシステムに標準で搭載されている標準関数を用いて送信した、前記撮像部のキャリブレーション情報を受信する受信部と、
受信された前記キャリブレーション情報を記憶する記憶部と、
を備える座標算出装置。
【請求項２】
前記情報処理装置とＵＳＢ（Universal  Serial  Bus）のＨＩＤ（Human  Interface  Device）に準拠したインタフェースで接続され、
前記送信部は、算出された前記座標を含むＨＩＤリポートを前記情報処理装置に送信する、
請求項１に記載の座標算出装置。
【請求項３】
表示部をさらに備え、
前記画像処理部は、前記表示部上で指示された前記注目点を含む画像であって、複数の前記撮像部により撮像された複数の画像のそれぞれから前記注目点の座標を算出する、
請求項１に記載の座標算出装置。
【請求項４】
前記記憶部に記憶された前記キャリブレーション情報と、前記画像処理部により算出された前記座標とから、前記注目点の世界座標を算出する座標算出部をさらに備える、
請求項１に記載の座標算出装置。
【請求項５】
情報処理装置と、座標算出装置と、を備える座標算出システムであって、
前記座標算出装置は、
複数の撮像部により撮像された複数の画像のそれぞれから注目点の座標を算出する画像処理部と、
算出された前記座標を別体で接続された前記情報処理装置に前記情報処理装置のオペレーティングシステムに標準で搭載されている標準関数を用いて送信する第１送信部と、
送信した前記座標に基づき前記情報処理装置が算出し、前記情報処理装置のオペレーティングシステムに標準で搭載されている標準関数を用いて送信した、前記撮像部のキャリブレーション情報を受信する受信部と、
受信された前記キャリブレーション情報を記憶する記憶部と、を備え、
前記情報処理装置は、
前記座標算出装置から前記情報処理装置のオペレーティングシステムに標準で搭載されている標準関数を用いて送信され、前記情報処理装置が受信した前記座標に基づき前記キャリブレーション情報を算出する算出部と、
算出された前記キャリブレーション情報を前記情報処理装置のオペレーティングシステムに標準で搭載されている標準関数を用いて前記座標算出装置に送信する第２送信部と、
を備える、
座標算出システム。
【請求項６】
前記座標算出装置は、前記情報処理装置とＵＳＢ（Universal  Serial  Bus）のＨＩＤ（Human  Interface  Device）に準拠したインタフェースで接続され、
前記第１送信部は、算出された前記座標を含むＨＩＤリポートを前記情報処理装置に送信する、
請求項５に記載の座標算出システム。
【請求項７】
前記座標算出装置は、表示部をさらに備え、
前記画像処理部は、前記表示部上で指示された前記注目点を含む画像であって、複数の前記撮像部により撮像された複数の画像のそれぞれから前記注目点の座標を算出する、
請求項５に記載の座標算出システム。
【請求項８】
前記座標算出装置は、
前記記憶部に記憶された前記キャリブレーション情報と、前記画像処理部により算出された前記座標とから、前記注目点の世界座標を算出する座標算出部をさらに備える、
請求項５に記載の座標算出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、座標算出装置および座標算出システムに関する。
【背景技術】
【０００２】
タッチ操作や手書きなどできるインタアクティブホワイトボード（Interactive  White  board、以下ＩＷＢと呼ぶ）が知られている。例えば、カメラセンサをベースにする光学式ＩＷＢが知られている。
【０００３】
特許文献１は、タッチパネル入力座標変換装置のキャリブレーションについて開示している。特許文献１の技術では、キャリブレーションアプリケーションにより、表示装置にキャリブレーションにおける目印画像が表示され、その目印を指やペンなどで押下した時にタッチパネルにより検出された座標がＰＣ（パーソナルコンピュータ）のＯＳ（オペレーティングシステム）へ送られる。そしてＰＣが、その座標と目印画像の座標を用いてキャリブレーションを行う。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、ＩＷＢはＰＣ内蔵式を前提としており、内蔵ＰＣにより座標計算や計算した座標に基づく描画処理、キャリブレーションをなど含めたすべての計算を行う前提であり、装置の小型化を妨げていた。これを防ぐために、常に必要な座標計算についてはハードウェア（例えば小規模なＤＳＰ（Digital  Signal  Processor）など）で実行し、設置時など限られたときにのみ使用するようなキャリブレーションなどの補正計算については接続された外部ＰＣにより実行するなどの手法がある。しかしこのような手法では、専用のハードウェアを外部接続したＰＣで制御するために、ＰＣ側に専用のドライバを開発し、搭載することが必要となる。
【０００５】
本発明は、上記に鑑みてなされたものであって、座標算出に関する処理を専用のハードウェアで実行する場合であっても、より容易に構成することができる座標算出装置および座標算出システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、複数の撮像部により撮像された複数の画像のそれぞれから注目点の座標を算出する画像処理部と、算出された前記座標を別体で接続された情報処理装置に、前記情報処理装置のオペレーティングシステムに標準で搭載されている標準関数を用いて送信する送信部と、送信した前記座標に基づき前記情報処理装置が算出し、前記情報処理装置のオペレーティングシステムに標準で搭載されている標準関数を用いて送信した、前記撮像部のキャリブレーション情報を受信する受信部と、受信された前記キャリブレーション情報を記憶する記憶部と、を備える。
【発明の効果】
【０００７】
本発明によれば、座標算出に関する処理を専用のハードウェアで実行する場合であっても、より容易に構成することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施形態の座標算出システムによる座標算出方法の概要を説明する図である。
【図２】図２は、本実施形態にかかる座標算出システムのハードウェア構成の一例を示すブロック図である。
【図３】図３は、本実施形態のＰＣのハードウェア構成の一例を示す図である。
【図４】図４は、本実施形態の座標算出装置およびＰＣの構成例を示す機能ブロック図である。
【図５】図５は、本実施形態におけるパラメータ算出処理の一例を示すフローチャートである。
【図６】図６は、本実施形態のパラメータ算出処理の流れを説明するための図である。
【図７】図７は、本実施形態のＨＩＤレポートのデータ構造の一例を示す図である。
【図８】図８は、本実施形態のユーザインタフェースの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、この発明にかかる座標算出装置および座標算出システムの一実施形態を詳細に説明する。
【００１０】
図１は、本実施形態の座標算出システムによる座標算出方法の概要を説明する図である。図１は、光学式ＩＷＢとして座標算出システムを構成した例を示している。図１に示すように、座標算出システムは、ディスプレイ１１０（表示部）と、カメラ１３１、１３２（撮像部）と、ポインタ１２０と、を含む。
【００１１】
ポインタ１２０は、ディスプレイ１１０上の位置などを指示するための、例えば電子ペンなどである。ユーザの指をポインタ１２０としてもよい。ディスプレイ１１０は、情報を表示する表示装置の一例である。ディスプレイ１１０上でユーザが手書き入力した文字等の座標を検出するとともに、座標に対応する位置に情報を表示することにより、手書き入力した文字をディスプレイ１１０に表示された情報に重ねて表示することなどが可能となる。以下では、ディスプレイ１１０の手書き入力する面を手書き平面と呼ぶ場合がある。
【００１２】
ポインタ１２０により手書き平面をタッチする際、カメラ１３１、１３２により手書き平面の画像が撮像される。また、撮像された画像からポインタ１２０の位置（注目点の座標）が検出される。以下では、検出された画像中の座標をイメージ座標と呼び、小文字のｘ、ｙを用いて（ｘ，ｙ）と表す。例えば、カメラ１３１で撮像された画像から検出されたイメージ座標Ｃ１は、（ｘ１，ｙ１）と表すことができる。また、カメラ１３２で撮像された画像から検出されたイメージ座標Ｃ２は、（ｘ２，ｙ２）と表すことができる。イメージ座標Ｃ１は、カメラ１３１で撮像された画像の座標系を含むイメージ平面Ｐ１上の座標である。イメージ座標Ｃ２は、カメラ１３２で撮像された画像の座標系を含むイメージ平面Ｐ２上の座標である。なお、カメラの個数は２に限られず、３以上であってもよい。
【００１３】
このように、座標算出システムでは、少なくとも２つ以上のカメラで撮像された画像に基づくイメージ座標が算出される。そして、複数のイメージ座標の特定の対応関係Ｃ４を用いて、手書き平面に対するポインタ１２０の世界座標Ｃ３が算出される。以下では、世界座標を大文字のＸ、Ｙを用いて（Ｘ，Ｙ）または（Ｘｗｏｒｌｄ，Ｙｗｏｒｌｄ）と表す。算出した世界座標は、手書き入力された軌跡の描画などに利用することができる。
【００１４】
図１に示すように、世界座標の算出には、イメージ座標と世界座標の対応関係Ｃ４が用いられる。初期状態では対応関係Ｃ４が未知であるため、対応関係Ｃ４を算出するためにキャリブレーションが実行される。キャリブレーションにより、対応関係Ｃ４を定める情報（キャリブレーション情報）が求められる。以下では、この情報をキャリブレーションパラメータと呼ぶ。
【００１５】
キャリブレーションの方法は、従来から用いられているどのような方法を適用してもよい。例えば、ディスプレイ１１０上の特定位置の目印をポインタ１２０でタッチさせ、タッチしたときのイメージ座標を用いてキャリブレーションを実行する方法を適用できる。より具体的には、例えば以下のような手順でキャリブレーションが実行される。
（１）ディスプレイ１１０上の特定位置に目印を表示させ、ユーザに目印の位置をポインタ１２０でタッチさせる。
（２）タッチされた位置のイメージ座標を算出する。
（３）予め決められた世界座標位置に表示される複数の目印に対して算出されたイメージ座標を用いてキャリブレーションパラメータを算出する。算出されたキャリブレーションパラメータは保存され、筆記やタッチ操作の際に算出したイメージ座標を世界座標に変換する際に利用される。
【００１６】
なお、従来のようにＩＷＢとＰＣとを内蔵し、内蔵したＰＣによって上記のようなキャリブレーションを実行する場合は、例えば以下のような処理となる。
（１’）ＰＣ上で動作するキャリブレーション専用アプリケーションにより、ＩＷＢに予め決められた世界座標に目印を表示させ、ユーザに目印の位置をポインタ１２０でタッチさせる。
（２’）タッチされた位置のイメージ座標はＩＷＢのドライバ（タッチパネルデバイスドライバなど）へ送られ、ＰＣのＯＳへ送られる。
（３’）内蔵ＰＣで実行されるキャリブレーション専用アプリケーションが、送信されたイメージ座標と目印の世界座標を用いてキャリブレーションパラメータを算出する。
【００１７】
このような構成では、各算出処理が内蔵のＰＣで実行されるため、内蔵のＰＣの性能に依存して高速化が実現できない場合がある。特に座標算出などの処理を内蔵ＰＣで行うため高速化の妨げとなっていた。また近年では、オフィス用および教育用に大型のＩＷＢが求められる、すなわち、手書き平面大型化が求められる場合がある。このような場合にＰＣを内蔵する形式では装置全体が大型化してしまうということがあった。
【００１８】
本実施形態では、座標算出に関する処理を高速化可能とするため、処理の少なくとも一部をプリント基板（ＰＣＢ、Printed  Circuit  Board）などのハードウェア回路で実行する。キャリブレーションは、上記のように目印を表示させる処理、言い換えるとＧＵＩ（Graphical  User  Interface）を利用してユーザの実行を促して、ユーザの実行した結果を基に処理を実行するアプリケーションプログラムである。従って、例えばＧＵＩを利用する処理は操作性がＩＷＢよりも優れているＰＣで動作させることが望ましい。一方、キャリブレーションの結果であるキャリブレーションパラメータは、ＩＷＢが出力する座標値を補正するためのデータであるので、ＰＣＢに格納することが望ましい。本実施形態は、これらの点も考慮して、プリント基板を用いた座標算出システムでのキャリブレーション方法を実現する。
【００１９】
本実施形態は例えば以下のような機能を有する。
（Ｆ１）どのようなＰＣが接続された場合にも、このＰＣが座標データを受け取れるように、標準規格に準拠し、かつ、イメージ座標を埋め込んだ座標データをＰＣＢ（ＩＷＢ）から接続されたＰＣに出力する。これにより、キャリブレーション用のアプリケーションを動作させるＰＣがイメージ座標を受け取ることができる。
（Ｆ２）ＰＣＢは、ＰＣが出力するキャリブレーションパラメータを入力する。
（Ｆ３）ＰＣＢは、キャリブレーションパラメータを記憶および更新する。
【００２０】
標準規格は、例えばＵＳＢ（Universal  Serial  Bus）のＨＩＤ（Human  Interface  Device）などを用いることができる。この場合、ＰＣＢとＰＣとは、例えばＵＳＢにより接続される。イメージ座標は、例えばＨＩＤレポートの中に埋め込んで送信される。
【００２１】
図２は、本実施形態にかかる座標算出システムのハードウェア構成の一例を示すブロック図である。図２に示すように、座標算出システムは、ＩＷＢ１００と、ＩＷＢ１００とは別体の装置としてＩＷＢ１００に接続されたＰＣ２００とを備えている。ＩＷＢ１００は、ディスプレイ１１０と、カメラ１３１、１３２と、制御回路としてのＰＣＢ１４０と、を備えている。ＰＣＢ１４０、または、ＰＣＢ１４０を含むＩＷＢ１００を座標算出装置として実現できる。
【００２２】
カメラ１３１、１３２は、ディスプレイ１１０の板面（手書き平面）の全体を撮像できるように、例えばディスプレイ１１０の左上および右上の枠部にそれぞれ設置される。カメラ１３１、１３２は、例えばポインタ１２０が板面に接触する際、ポインタ１２０を含む画像を撮像する。
【００２３】
ＰＣＢ１４０は、例えばディスプレイ１１０と一体化する、または、ディスプレイ１１０に内蔵するように構成することができる。これにより、システム全体の小型化を実現可能となる。ＰＣＢ１４０は、画像処理回路１４１、１４２、座標算出回路１４３、および、メモリ１４４を有する。メモリ１４４は、各種処理に用いる各種情報を記憶する記憶部である。例えばメモリ１４４は、ＰＣ２００から受信したキャリブレーションパラメータを記憶する。
【００２４】
画像処理回路１４１および１４２は、それぞれカメラ１３１および１３２が撮像した画像を入力し、入力した画像に対する画像処理を実行する。画像処理は、画像からポインタ１２０のイメージ座標を算出する処理を含む。イメージ座標の算出処理の詳細は後述する。
【００２５】
座標算出回路１４３は、メモリ１４４に記憶されたキャリブレーションパラメータと、画像処理回路１４１、１４２により算出されたイメージ座標とから、ポインタ１２０の世界座標を算出する。
【００２６】
画像処理回路１４１、１４２、および、座標算出回路１４３は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）およびＦＰＧＡ（Field-Programmable  Gate  Array）などの任意のハードウェア回路により構成できる。このように専用のハードウェアにより座標算出を行うことで、座標算出処理の高速化が実現できる。また汎用処理を行うＰＣを内蔵するのではなく、専用のハードウェアにより実現することで小型化も可能となる。メモリ１４４は、ＲＡＭ（Random  Access  Memory）およびフラッシュメモリなどの任意の記録媒体により構成できる。各回路の一部または全部は、別々の回路により実現してもよいし、共通の回路により実現してもよい。
【００２７】
ＰＣ２００は、例えば汎用のノートＰＣなどにより構成される情報処理装置である。ＰＣ２００は、例えばディスプレイケーブルによりディスプレイ１１０と接続される。またＰＣ２００は、例えばＵＳＢケーブルによりＰＣＢ１４０に接続される。これによりＰＣ２００の表示装置（ディスプレイなど）に表示している情報をディスプレイ１１０に表示することが可能になるとともに、ＰＣ２００のプログラムなどによりＩＷＢ１００（ＰＣＢ１４０）を制御することも可能となる。
【００２８】
図３は、ＰＣ２００のハードウェア構成の一例を示す図である。図３に示すように、ＰＣ２００は、ＣＰＵ（Central  Processing  Unit）１１、ＲＯＭ（Read  Only  Memory）１２、ＲＡＭ１３、キーボード１４、マウス１５、ハードディスク１６、グラフィックスボード１７、ネットワークカード１８、インタフェース（Ｉ／Ｆ）１９、プログラム読取装置２０、および、ディスプレイ２１を含む。
【００２９】
ＣＰＵ１１は、ＰＣ２００の全体を制御する。ＲＯＭ１２は、起動プログラム等を記録する。ＲＡＭ１３は、ＣＰＵ１１のワークエリアとして使用される。キーボード１４は、文字、数値、および、各種指示等の入力を行うための入力装置である。マウス１５は、カーソルの移動や範囲選択等を行うための入力装置である。
【００３０】
ハードディスク１６は、ＯＳ１６ａ、デバイスドライバ１６ｂ、および、各種アプリケーションプログラム１６ｃなどを記憶する。デバイスドライバ１６ｂは、各部を動作させるためのプログラムである。各種アプリケーションプログラム１６ｃはどのようなプログラムであってもよい。例えば各種アプリケーションプログラム１６ｃは、描画ソフト、ワードプロセッサソフト、表計算ソフト、プレゼンテーションソフト、および、キャリブレーションソフトなどを含む。
【００３１】
グラフィックスボード１７は、ディスプレイ２１に接続されており、ディスプレイ２１に対する画像の表示を制御する。ネットワークカード１８は、ネットワークに接続するために用いられる。Ｉ／Ｆ１９は、例えばプリンタなどの外部装置と接続するために用いられる。
【００３２】
プログラム読取装置２０は、記録媒体３０に記録されているプログラムコードを読み取る装置であり、光ディスクドライブ装置などにより構成される。記録媒体３０は、例えば、ＯＳ１６ａ、デバイスドライバ１６ｂ、および、各種アプリケーションプログラム１６ｃ等の各種のプログラムコード（制御プログラム）を記録してもよい。記録媒体３０は、ハードディスク、光ディスク（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−Ｒ／Ｗ，ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭなど）、および、メモリカードなどの任意の媒体を適用できる。
【００３３】
次に、ＩＷＢ１００（主にＰＣＢ１４０）およびＰＣ２００の機能構成例について説明する。図４は、ＩＷＢ１００およびＰＣ２００の構成例を示す機能ブロック図である。図４に示すように、ＰＣＢ１４０は、撮像制御部１０１、通信制御部１０２、画像処理部１０３、座標算出部１０４、および、記憶部１０５を備えている。
【００３４】
記憶部１０５は、各種処理に用いる各種情報を記憶する。記憶部１０５は、例えば図２のメモリ１４４により実現できる。記憶部１０５は、例えばＰＣ２００から受信したキャリブレーションパラメータを記憶する。撮像制御部１０１は、カメラ１３１、１３２による画像の撮像を制御する。
【００３５】
通信制御部１０２は、ＰＣ２００などの外部装置との間の通信を制御する。例えば通信制御部１０２は、ＵＳＢなどの規格に従い、接続された外部装置との間で情報を送受信する。通信制御部１０２は、後述する画像処理部１０３により算出されたイメージ座標を、ＰＣ２００のＯＳに標準で搭載されている標準関数を用いてＰＣ２００に送信する送信部として機能する。また通信制御部１０２は、送信したイメージ座標に基づきＰＣ２００が算出してＰＣ２００のＯＳに標準で搭載されている標準関数を用いて送信したキャリブレーションパラメータを受信する受信部として機能する。
【００３６】
画像処理部１０３は、カメラ１３１および１３２により撮像された画像に対する画像処理を実行する。画像処理部１０３は、例えば図２の画像処理回路１４１、１４２により構成できる。画像処理部１０３は、例えば、複数のカメラ１３１、１３２により撮像された複数の画像のそれぞれから注目点の座標（イメージ座標）を算出する。注目点は、例えば、ポインタ１２０の先端が示す位置である。
【００３７】
イメージ座標の算出処理は、例えば以下のように実行される。画像処理部１０３は、撮像された画像から背景を切り取り、ポインタ１２０の特徴（形、色、輝度など）からポインタ１２０を切り出す。画像処理部１０３は、ポインタ１２０に対応するブロブ（Blob：Binary  Large  Object）から中心点や重心点などを計算し、イメージ座標として出力する。
【００３８】
座標算出部１０４は、キャリブレーションパラメータと、画像処理部１０３により算出されたイメージ座標とから、ポインタ１２０の世界座標を算出する。座標算出部１０４は、例えば図２の座標算出回路１４３により実現できる。
【００３９】
図４に示すように、ＰＣ２００は、通信制御部２０１と、表示制御部２０２と、パラメータ算出部２０３と、を備えている。
【００４０】
通信制御部２０１は、ＩＷＢ１００などの外部装置との間の通信を制御する。通信制御部２０１は、例えば、パラメータ算出部２０３により算出されたキャリブレーションパラメータをＩＷＢ１００に送信する送信部として機能する。表示制御部２０２は、ディスプレイ２１、および、ＩＷＢ１００のディスプレイ１１０などに対する各種情報の表示を制御する。パラメータ算出部２０３は、ＩＷＢ１００から受信したイメージ座標に基づきキャリブレーションパラメータを算出する。
【００４１】
通信制御部２０１、表示制御部２０２、および、パラメータ算出部２０３は、例えば、ＣＰＵ１１などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
【００４２】
次に、このように構成された本実施形態にかかる座標算出システムによるパラメータ算出処理について図５〜図７を用いて説明する。図５は、本実施形態におけるパラメータ算出処理の一例を示すフローチャートである。図６は、パラメータ算出処理の流れを説明するための図である。
【００４３】
パラメータ算出処理は、例えばＰＣ２００上でアプリケーションプログラム１６ｃの１つであるキャリブレーションアプリ１６ｄが実行されることにより開始される。キャリブレーションアプリ１６ｄは、例えば上述の通信制御部２０１、表示制御部２０２、および、パラメータ算出部２０３の機能を含み、キャリブレーションパラメータを算出する処理を実行するためのアプリケーション（ソフトウェア）である。キャリブレーションアプリ１６ｄは、上述の各種アプリケーションプログラム１６ｃに含まれるアプリケーションであってもよい。キャリブレーションアプリ１６ｄは、ＯＳ１６ａ上で動作するアプリケーションであってもよい。
【００４４】
以下では、キャリブレーションアプリ１６ｄがパラメータ算出処理を実行する場合を例に説明する。上記のように、パラメータ算出処理の一部または全部をハードウェアにより実現してもよい。
【００４５】
まずキャリブレーションアプリ１６ｄ（表示制御部２０２）は、ＩＷＢ１００のディスプレイ１１０に目印の画像を表示させる（ステップＳ１０１、図６（１））。キャリブレーションアプリ１６ｄは、例えばディスプレイケーブルを介してディスプレイ１１０に対して目印の画像の表示を指示する。図６ではディスプレイ１１０の４隅の「＋」記号が目印の画像に相当する。目印の形状はどのような形状であってもよい。
【００４６】
ユーザは、表示された目印をポインタ１２０によりタッチ（指示）する。なお目印の表示順序や表示数は任意である。例えばすべての目印を表示し、ユーザが表示された各目印を順次タッチしてもよい。また、目印を１つずつ順次表示し、ユーザが表示された目印を順次タッチしてもよい。
【００４７】
キャリブレーションアプリ１６ｄは、例えば撮像制御部１０１を介してカメラ１３１、１３２によりポインタ１２０を含む画像を撮像する（ステップＳ１０２、図６（２））。撮像制御部１０１を介さず、キャリブレーションアプリ１６ｄが直接カメラ１３１、１３２による撮像を制御するように構成してもよい。また、外部からの制御によらず、カメラ１３１、１３２が常時、または、適当なタイミングで画像を撮像し、画像処理部１０３に画像を入力するように構成してもよい。
【００４８】
画像処理部１０３（画像処理回路１４１、１４２）は、撮像された画像を受信し、受信した画像からイメージ座標を算出する（ステップＳ１０３、図６（３））。画像処理部１０３は、算出されたイメージ座標をＰＣ２００に送信する（ステップＳ１０４、図６（４））。
【００４９】
イメージ座標の送信方法は任意であるが、例えば上述のようにＨＩＤレポートの中にイメージ座標の情報を埋め込み、ＵＳＢ規格に従い（例えばＵＳＢ端子、ＵＳＢケーブルを介して）ＨＩＤレポートを送信する。このように規格（ＨＩＤ）に準拠した方法でイメージ座標を送信すれば、ＰＣ２００の仕様等に依存せずに情報を送信可能となる。つまりＨＩＤレポートに埋め込んでイメージ座標を送信すれば、ＰＣ２００は、Ｗｉｎｄｏｗｓ（登録商標）の標準ドライバのみでイメージ座標を受信するように動作できる。すなわち、専用のドライバなどをインストールすることなく、任意の形式のＰＣ２００によりイメージ座標を受け取ることが可能となる。
【００５０】
ＨＩＤレポートは、情報をまとめる単位である。ＨＩＤレポートは、例えばＷｉｎｄｏｗｓの標準関数「GetRawPointerDeviceData」で定期的に転送することができる。２つのカメラ１３１、１３２を用いる場合は、イメージ座標（ｘ１，ｙ１）およびイメージ座標（ｘ２，ｙ２）がＨＩＤレポートに含められる。
【００５１】
図７は、ＨＩＤレポートのデータ構造の一例を示す図である。ＨＩＤレポートは、データ７０１、７０２、７０３を含む。データ７０１は、イメージ座標（ｘ１，ｙ１）を示すデータである。データ７０２は、イメージ座標（ｘ２，ｙ２）を示すデータである。データ７０３は、その他のデータを示す。各イメージ座標のデータ量は例えば２バイト（１６ビット）とすることができる。
【００５２】
図５および図６に戻り、キャリブレーションアプリ１６ｄは、すべての目印がタッチされたか否かを判断する（ステップＳ１０５）。すべての目印がタッチされていない場合（ステップＳ１０５：Ｎｏ）、ステップＳ１０２に戻り処理が繰り返される。
【００５３】
すべての目印がタッチされた場合（ステップＳ１０５：Ｙｅｓ）、キャリブレーションアプリ１６ｄ（パラメータ算出部２０３）は、ＨＩＤリポートに埋め込まれたイメージ座標を取得し、取得したイメージ座標を利用してキャリブレーションパラメータを算出する（ステップＳ１０６、図６（５））。
【００５４】
キャリブレーションパラメータはどのような形式であってもよい。例えば、４組のイメージ座標と世界座標とを対応付けるホモグラフィ行列（Ｈ行列）をキャリブレーションパラメータとしてもよい。この場合、少なくとも４つの目印をタッチすることにより得られる４組のイメージ座標と世界座標とから、ホモグラフィ行列を算出することができる。他のキャリブレーションパラメータを用いる場合は、そのキャリブレーションパラメータで必要となる個数の目印を用いてイメージ座標を算出し、イメージ座標を世界座標に変換するキャリブレーションパラメータを算出すればよい。
【００５５】
キャリブレーションアプリ１６ｄは、算出したキャリブレーションパラメータをＰＣＢ１４０に送信する（ステップＳ１０７、図６（６））。例えばキャリブレーションアプリ１６ｄは、ＷｉｎｄｏｗｓのＷＭ＿ＰＯＩＮＴＥＲメッセージの形式でキャリブレーションパラメータを送信することができる。ＷＭ＿ＰＯＩＮＴＥＲメッセージもＷｉｎｄｏｗｓに標準のメッセージなので、専用のドライバなどをインストールすることなく、任意の形式のＰＣ２００はＩＷＢ１００にキャリブレーションパラメータを送信することが可能となる。
【００５６】
ＰＣＢ１４０（例えば通信制御部１０２）は、送信されたキャリブレーションパラメータを受信し、受信したキャリブレーションパラメータを記憶部１０５に保存する（ステップＳ１０８、図６（７））。これによりキャリブレーション（パラメータ算出処理）は完了する。
【００５７】
キャリブレーションが完了した後、座標算出部１０４（座標算出回路１４３）による世界座標の算出が可能になる（図６（８））。例えば座標算出部１０４は、ＰＣ２００が接続されているか否かに関わらず、ポインタ１２０を用いて筆記された際に、ポインタ１２０の指示する位置のイメージ座標を算出し、記憶部１０５からキャリブレーションパラメータを読み出して、算出されたイメージ座標およびキャリブレーションパラメータを用いて世界座標を算出する。
【００５８】
図８は、パラメータ算出処理を実行するときのユーザインタフェースの一例を示す図である。
【００５９】
ＰＣ２００においてキャリブレーション（パラメータ算出処理）が開始されると、メイン画面８０１がＰＣ２００のディスプレイ２１およびディスプレイケーブルを介して接続されたＩＷＢ１００のディスプレイ１１０に表示される。メイン画面８０１で終了ボタンが押下された場合、パラメータ算出処理が終了する。メイン画面８０１で開始ボタンが押下された場合、キャリブレーション画面８０２のうち、少なくとも目印画像がＩＷＢ１００のディスプレイ１１０に表示される。キャリブレーション画面８０２は、左上隅に最初の目印画像を含む。ユーザは、表示された目印画像をポインタ１２０によりタッチする。タッチが発生した後、次のキャリブレーション画面８０３が表示される。キャリブレーション画面８０３は、キャリブレーション画面８０２と異なる位置（右上隅）に目印画像を含む。
【００６０】
以下、同様にしてキャリブレーション画面８０４および８０５が表示される。なお、キャリブレーション画面８０２〜８０５で中止ボタンが押下された場合、パラメータ算出処理が終了する。
【００６１】
最後のキャリブレーション画面８０５でタッチが発生すると、終了画面８０６がＰＣ２００のディスプレイ２１およびディスプレイケーブルを介して接続されたＩＷＢ１００のディスプレイ１１０に表示される。終了画面８０６でいいえボタンが押下された場合、キャリブレーション画面８０２に戻り処理が繰り返される。終了画面８０６ではいボタンが押下された場合、パラメータ算出処理が終了する。
【００６２】
なお上記の例では、目印画像は１つ１つ表示する場合を示した。目印画像はすべて同時に表示して、すべての目印画像に対するポインタ１２０によるタッチが行われたかどうかをキャリブレーションのアプリケーションにより判断して、すべての目印画像に対するタッチが行われたと判断したら終了画面８０６を表示してもよい。
【００６３】
このように、本実施形態によれば、ＰＣのみではなく、プリント基板などの小型化可能な座標算出装置により座標算出などの処理を実行できる。このため、座標算出に関する処理をより高速化すること、および、部品の小型化が可能となる。また、ＰＣとの接続およびＰＣとの間の座標値などの情報の送受信を、例えばＨＩＤなどの標準規格に従い実行できる。特にキャリブレーションアプリ１６ｄを起動してキャリブレーション実行時にはＨＩＤに埋め込むデータはポインタ１２０の位置を示す世界座標データではなくキャリブレーションを行うためのキャリブレーションマークの位置座標を示すデータとして送信され、キャリブレーションを実行中でない場合にはポインタ１２０の世界座標を示すデータとしてＨＩＤレポートに埋め込まれて送信される。従って、専用のドライバなどが不要となり、システムを容易に構成すること、および、ユーザの利便性を向上させることが可能となる。
【００６４】
なお、本実施形態の装置で実行されるプログラムは、ＲＯＭ等に予め組み込まれて提供される。
【００６５】
本実施形態の装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータ・プログラム・プロダクトとして提供するように構成してもよい。
【００６６】
さらに、本実施形態の装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００６７】
本実施形態の装置で実行されるプログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記ＲＯＭからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
【符号の説明】
【００６８】
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  キーボード
１５  マウス
１６  ハードディスク
１６ａ  ＯＳ
１６ｂ  デバイスドライバ
１６ｃ  各種アプリケーションプログラム
１６ｄ  キャリブレーションアプリ
１７  グラフィックスボード
１８  ネットワークカード
１９  Ｉ／Ｆ
２０  プログラム読取装置
２１  ディスプレイ
３０  記録媒体
１００  ＩＷＢ
１０１  撮像制御部
１０２  通信制御部
１０３  画像処理部
１０４  座標算出部
１０５  記憶部
１１０  ディスプレイ
１２０  ポインタ
１３１、１３２  カメラ
１４０  ＰＣＢ
１４１、１４２  画像処理回路
１４３  座標算出回路
１４４  メモリ
２００  ＰＣ
２０１  通信制御部
２０２  表示制御部
２０３  パラメータ算出部
【先行技術文献】
【特許文献】
【００６９】
【特許文献１】特開２０００−０８９９１３号公報
【図１】
2017123146.tif 000003
【図２】
2017123146.tif 000004
【図３】
2017123146.tif 000005
【図４】
2017123146.tif 000006
【図５】
2017123146.tif 000007
【図６】
2017123146.tif 000008
【図７】
2017123146.tif 000009
【図８】
2017123146.tif 000010