[実施例1]
以下、本発明を実施するための形態について図面を用いて説明する。
図1は、本実施例に係る、複数の拠点間で情報を共有するためのシステム(以下、情報共有システム)の構成の一例を示す図である。情報共有システム100の各拠点には、情報入力システム110/120と情報入力ボード114/124とが存在する。本実施例の情報共有システム100は2つの拠点からなり、情報処理システム110と情報入力ボード114とで構成される拠点を自拠点、情報処理システム120と情報入力ボード124とで構成される拠点を他拠点と呼ぶこととする。なお、合計の拠点数が3以上(つまり、他拠点の数が複数)でも構わないが、ここでは説明を簡単にするため他拠点の数を1箇所としている。
スクリーンやホワイトボードなどに代表される情報入力ボード114及び124は、文字や図形といった情報を様々な態様で記入等することができる。例えば、マーカペン等で直接手書きしたり、糊付の付箋を貼り付けたり、テープや磁石等で文書やカードなどを貼り付けたりすることによって、情報入力ボード114には様々な情報が入力される。本明細書では、情報入力ボードにユーザが入力した情報を「書込み情報」と呼ぶこととする。そして、自拠点の情報入力ボード114における書込み情報を「自拠点情報」と呼び、他拠点の情報入力ボード124における書込み情報を「他拠点情報」と呼ぶこととする。
情報処理システム110/120は、PCなどに代表される情報処理端末111/121、プロジェクタ(投影装置)112/122、カメラ(撮像装置)113/123で構成される。情報処理システム110と120とは、ネットワーク130を介して相互に接続されている。
情報処理システム110/120においては、デジタルカメラ113/123で撮像した撮像画像内にプロジェクタ112/122の投影範囲が収まるような位置関係に配置されているものとする。
PC111は、カメラ113を制御して情報入力ボード114を撮像した撮像画像を取得し、取得した撮像画像から自拠点情報を含む画像領域(以下、自拠点画像)を抽出し、抽出した自拠点画像のデータを他拠点の情報処理システム120に送信する。また、PC111は、他拠点の情報処理システム120にて同様に抽出された他拠点画像のデータを、他拠点のPC121から受信する。
PC111は、共有モードと位置ずれ確認モードの2つの動作モードを有する。詳細は後述するが、共有モードで動作する場合は他拠点画像データがプロジェクタ112によって情報入力ボード114に投影され、位置ずれ確認モードで動作する場合は自拠点画像データがプロジェクタ112によって情報入力ボード114に投影される。
PC121については、PC111と表裏一体の関係にあり、基本的に異なるところはないので説明を省略する。
なお、図1に示す情報処理システムは、PCにプロジェクタとカメラが接続されているが、PC自体がプロジェクタやカメラの機能を有していてもよい。また、各拠点の情報処理システムはネットワークを介して接続される構成であるが、各拠点の情報処理システムがサーバを介して接続し、上述したPCにおける処理内容の一部を当該サーバで処理するような構成としてもよい。
図2は、本実施例における、PC111/121の内部構成の一例を示す図である。
PC111/121は、CPU201、RAM202、ROM203、キーボードI/F 205、ディスプレイI/F 206、外部メモリI/F 207、外部I/F 208、マウスI/F 211、ネットワークI/F 213を有する。これらはシステムバス204で相互に接続されている。
キーボードI/F 205にはキーボード209が接続され、マウスI/F 211にはマウス212が接続される。CPU201は、キーボード209およびマウス212からユーザからの各種操作を受け付ける。また、ディスプレイI/F 206に接続されたプロジェクタ112/122を制御して、情報入力ボード114に自拠点画像若しくは他拠点画像を投影する。また、外部I/F 208に接続されたカメラ113/123で撮像した情報入力ボードの撮像画像のデータをRAM202や外部メモリ210に記憶する。また、ネットワークI/F 213を介して、他拠点の情報処理システムと情報入力ボードの撮像画像データを送受信する。
さらに、CPU201は、PC111/121全体の制御を行い、ROM203やHDD等の外部メモリ210などに記憶されたプログラムを、RAM202に読み込み、各種処理を実行する。すなわち、CPU201は、コンピュータ読み取り可能な記憶媒体に記憶されたコンピュータプログラムを実行することにより、後述するフローチャートの各ステップを実行する処理部(処理手段)として機能する。ROM203は、CPU201を起動するためのプログラムを含む各種データを記憶し、RAM202は、ワークメモリとして用いられる。
図3は、情報入力ボードへの投影に用いる画像(投影画像)を説明する図である。投影画像300には、モード選択領域302、ステータス領域303、共有領域304を含んでいる。
モード選択領域302は、共有モードから位置ずれ確認モードへの移行、若しくは、位置ずれ確認モードから共有モードへの移行を行うための操作指示を入力する領域である。情報入力ボード上に投影画像300が投影され、このモード選択領域302上にポインタ301がある状態でマウス212による操作入力をCPU201が検知すると上述のモード移行が実行される。また、モード選択領域302には、現在のモードが分かるように、例えば「共有モード」や「位置ずれ確認モード」といった現在のモードの状態を表す文字情報等が表示される。
ステータス領域303は、上記各モードにおける位置ずれの有無に関する情報が表示される領域である。
共有領域304は、共有モードにおいては他拠点画像が表示され、位置ずれ確認モードにおいては自拠点画像が表示される領域である。
次に、共有モードにおける情報入力ボードの状態を説明する。説明の便宜上、自拠点側の情報入力ボード114について説明することとするが、他拠点側の情報入力ボード124も同様である。
図4の(a)〜(e)は、プロジェクタ112によって前述の投影画像300が情報入力ボード114に投影され、その投影結果401において位置ずれが発生する様子を説明する図である。投影結果401のモード選択領域302には、現在のモードが共有モードであることが表示されている。そして、情報入力ボード114上の投影結果401における共有領域304が、カメラ113(不図示)による撮像画像から抽出され、所定の画像処理を施した後、自拠点画像データとしてRAM202や外部メモリ210に記憶される。図5の(a)〜(d)は、図4の(a)〜(e)のいずれかの状態において、情報入力ボード114上に表示される自拠点画像或いは他拠点画像を示している。
図4の(a)は、情報入力ボード114上の共有領域304に自拠点情報が無く、他拠点画像も表示されていない状態の図である。自拠点情報が無く、他拠点画像も表示されていないので、当然のことながら両者の間に生じ得る位置ずれも存在しない。そのため、ステータス領域303には、位置ずれが無い状態であること示す文字列「位置ずれ無し」が表示されている。図5の(a)は、この図4の(a)の状態において得られる自拠点画像を示している。
図4の(b)は、情報入力ボード114上の共有領域304の中にユーザがマーカペンで書き込んだ「ABCDEF」の文字列411が自拠点情報として存在し、他拠点画像は表示されていない状態の図である。他拠点画像が表示されておらず、位置ずれは存在しないので、ステータス領域303には位置ずれが無い状態であること示す文字列「位置ずれ無し」が表示されている。図5の(b)は、この図4の(b)の状態において得られる自拠点画像を示しており、自拠点情報である「ABCDE」の文字列が存在している。
図4の(c)は、情報入力ボード114上の共有領域304に自拠点情報は存在しないが、他拠点の情報入力ボード124においてマーカペンで入力された「⇒○×△□」の文字列412を含む他拠点画像(図5の(d)を参照)が表示されている状態の図である。自拠点情報が無く、位置ずれは存在しないので、ステータス領域303には位置ずれが無い状態であること示す文字列「位置ずれ無し」が表示されている。図4の(c)の状態において得られる自拠点画像は、自拠点情報がないので図5の(a)と同じである。
図4の(d)は、情報入力ボード114上の共有領域304に自拠点情報として上述の「ABCDEF」の文字列411が存在し、かつ、「⇒○×△□」の文字列412を含む他拠点画像(図5の(d))が表示されている状態の図である。自拠点情報としての「ABCDEF」の文字列411の下に、他拠点画像に含まれる「⇒○×△□」の文字列412が重なることなく表示されており、両文字列の間に位置ずれが無い状態である。よって、ステータス領域303には位置ずれが無い状態であること示す文字列「位置ずれ無し」が表示されている。図4の(d)において得られる自拠点画像は、図5の(b)と同じである。
図4の(e)は、情報入力ボード114に対するカメラ113やプロジェクタ112の位置関係が変化したケースの一例であり、図4の(d)の状態から情報入力ボード114が移動した状態を示している。この場合、情報入力ボード114上における共有領域304の相対的な位置が変化し、自拠点情報である「ABCDEF」の文字列411と重なるように、他拠点画像に含まれる「⇒○×△□」の文字列412が表示されている。これは、自拠点情報である「ABCDEF」の文字列411が、プロジェクタ112の座標を基準とすると、その位置、形状、大きさが変化するためである。その結果、図4の(e)では、自拠点情報である「ABCDEF」の文字列411と他拠点画像に含まれる「⇒○×△□」の文字列412との間で位置ずれが発生している。よって、ステータス領域303には位置ずれが発生していることを示す文字列「位置ずれ有り」が表示されている。そして、図4の(e)において得られる自拠点画像は、図5の(c)に示すように、図5の(b)と比べると「ABCDEF」の文字列の位置が右斜め下の方向にシフトした自拠点画像となる。これは、他拠点側において、情報入力ボード124に対するカメラ123やプロジェクタ122の位置関係が変化しなくても、情報入力ボード124上の他拠点情報との間で位置ずれが生じ得ることを意味している。
次に、位置ずれ確認モードにおける情報入力ボードの状態を説明する。ここでも、説明の便宜上、自拠点側の情報入力ボード114について説明することとするが、他拠点側の情報入力ボード124も同様である。
図6の(a)〜(c)は、プロジェクタ112によって投影画像300が情報入力ボード114に投影され、その投影結果401において位置ずれが解消していく様子を説明する図である。いま、投影結果401においては、現在のモードが位置ずれ確認モードであることを示す情報がモード選択領域302に表示されている。
図6の(a)は、前述の図4の(e)で示した共有モードの状態から、位置ずれ確認モードに移行した直後の状態を示す図である。情報入力ボード114上の共有領域304には、自拠点情報としての「ABCDEF」の文字列411が存在し、そこに位置ずれ確認モードに移行する以前に記憶しておいた過去の自拠点画像(位置ずれが生じる以前の図5(b)の自拠点画像)が重畳表示されている。601は、この過去の自拠点画像に含まれる「ABCDEF」の文字列を示している。そして、ステータス領域303には、自拠点情報としての「ABCDEF」の文字列411と過去の自拠点画像に含まれる「ABCDEF」の文字列601との間に位置ずれが発生していることを示す文字列「位置ずれ有り」が表示されている。これによりユーザは、位置ずれが生じていなかったときの「ABCDEF」の文字列601に対して、現在の自拠点情報としての「ABCDEF」の文字列411の位置がどの方向にどの程度ずれているのかを容易に認識することができる。
図6の(b)は、図6の(a)の状態を参考にして、位置ずれ量が小さくなるように、ユーザが情報入力ボード114を移動させた状態を示す図である。図6の(a)と比較すると、図 6の(b) においては、過去の自拠点画像における「ABCDEF」の文字列601と自拠点情報としての「ABCDEF」の文字列411との位置ずれ量が小さくなっていることが分かる。なお、看過できない程度の位置ずれが依然として残っており、位置ずれが解消されたわけではないので、ステータス領域303には位置ずれが発生していることを示す文字列「位置ずれ有り」が表示されたままとなっている。
図6の(c)は、図 6の(b)の状態から情報入力ボード114をさらに移動させ、位置ずれ量が所定の許容範囲内に収まった状態(位置ずれが解消された状態)を示す図である。図6の(c)においては、文字列601と文字列411の大部分が重なっており「ABCDEF」の各文字が識別可能な程度の位置ずれ量に収まっているのが分かる。したがって、ステータス領域303には、位置ずれが発生していない(許容範囲に収まっている)ことを示す文字列「位置ずれ無し」が表示されている。
上述のように位置ずれが生じる以前の過去の自拠点画像を重畳表示することで、位置ずれ量をユーザは明確に認識することができ、それを容易に解消させることができる。
続いて、PC111/121のソフトウェア構成について説明する。ここでも、説明の便宜上、自拠点側のPC111について説明することとするが、他拠点側のPC121も同様である。
図7は、本実施例に係る、PC111のソフトウェア構成を示す機能ブロック図である。PC111は、初期化部701、送受信部702、自拠点画像生成部703、モード移行処理部704、表示制御部705、位置ずれ検出部706の各機能部を有する。
初期化部701は、各モード時における初期化処理を行なう。初期化処理の内容については後述する。
送受信部702は、他拠点側の情報処理システム120との間で各種データの送受信を行なう。
自拠点画像生成部703は、前述の自拠点画像の生成に伴う各種処理、例えば、自拠点情報を抽出する処理などを行なう。
モード移行処理部704は、共有モードと位置ずれ確認モードとの間のモード移行に伴う各種処理、例えば、共有モードから位置ずれ確認モードへの移行が可能かどうかを判定する処理などを行なう。
表示制御部705は、プロジェクタ112によって情報入力ボード114上に投影する画像の制御、例えば、前述の他拠点画像を投影するのか或いは自拠点画像を投影するのかなどの制御を行なう。
位置ずれ検出部706は、前述の位置ずれ(例えば過去の自拠点画像と現在の自拠点画像との間での位置ずれなど)を検出する処理を行なう。
なお、PC111は、本発明と直接の関係がない一般的な情報処理装置が有する上記機能以外の諸機能も当然有している。
(共有モード時における処理)
図8は、本実施例に係る、PC111の共有モード時における処理の流れを示すフローチャートである。この一連の処理は、CPU201がROM203、RAM202、外部メモリ210のいずれかに記憶された制御コードを呼び出して実行することで実現される。
ステップ801において、初期化部701は、初期化処理を行う。具体的には、モード選択領域302に共有モードであることを示す情報として「共有モード」の文字列、ステータス領域303に位置ずれが無いことを示す情報として「位置ずれ無し」の文字列がそれぞれ表示されるように表示制御部705に指示する。これを受けて表示制御部705は、指示に従った表示を行う。
ステップ802において、自拠点画像生成部703は、自拠点画像を生成するか否か(生成条件を満たしているかどうか)を判定する。例えば、予め自拠点画像を生成する時間間隔(例えば1分毎)を設定しておき、当該時間に達しているかどうかで判定してもよいし、マウス212やキーボード209からの入力があった場合に生成するように制御してもよい。また、情報入力ボード114上の共有領域304への動体(例えば人間の身体)のフレームインとフレームアウトを検出した場合に生成するようにしてもよい。自拠点画像を生成するタイミングであると判定された場合はステップ803に進む。一方、自拠点画像を生成するタイミングではないと判定された場合はステップ810に進む。
ステップ803において、自拠点画像生成部703は、情報入力ボード114上の共有領域304内になされたユーザによる書込み情報を自拠点情報として抽出し、自拠点画像を生成する。具体的には以下のとおりである。まず、自拠点画像を得る直前に他拠点画像を非投影にして、自拠点画像に他拠点画像内の文字情報等を含まないように制御し、撮像画像を取得する。そして、得られた撮像画像から上述の共有領域304を特定する。この際、例えば投影画像300中の共有領域304に対応する画像領域の四隅若しくは四辺を示す特徴画像を含ませ、撮像画像から該特徴画像を検出するといった手法により共有領域304を得ることができる。他にも、例えば投影結果401とそれ以外の領域の輝度差を利用して、撮像画像から投影結果401の辺やコーナーを検出し、検出した辺の長さやコーナーの位置関係を基準に所定の形状を抽出することによって共有領域304を得ることもできる。もちろん、その他の画像処理によって共有領域304を特定してもよい。そして、特定された共有領域304が矩形になるよう幾何補正した後にトリミングを行う。そして、トリミング後の撮像画像に対して、情報入力ボード114の下地色を除去する処理を行ない、さらに自拠点情報部分の色補正を行うことにより、自拠点画像が生成される。
ステップ804において、送受信部702は、生成された自拠点画像のデータを、他拠点の情報処理システム120に送信する。本実施例では、他拠点は1箇所のみであるので情報処理システム120だけに自拠点画像データが送られることになるが、2箇所以上の他拠点が存在する場合には、全ての他拠点の情報処理システムに送信される。これにより、共有モードで動作中の情報処理システムを利用しているユーザ間では、それぞれの情報入力ボードにおいて書込まれた情報を共有することができる。
ステップ805において、モード移行処理部704は、位置ずれ確認モードに移行可能か否かを判定する。例えば、1以上の自拠点画像のデータがRAM202や外部メモリ210などの記憶領域に格納されている場合に、位置ずれ確認モードに移行可能と判定することが考えられる。或いは、単に自拠点画像データが格納されただけではなく、自拠点情報の存在する自拠点画像データが格納された場合にのみ位置ずれ確認モードに移行可能と判定するようにしてもよい。この際は、例えば自拠点情報の無い画像のデータを予め用意しておき、これと比較して一定量の差分の有無を判定することで自拠点情報を含んでいるかどうかを判定することができる。また、自拠点画像中で情報入力ボード114の下地色と異なる特徴を持つ画素群が一定量連続する領域が有るかどうかによって自拠点情報を含んでいるかどうかを判定するようにしてもよい。1以上の自拠点画像(或いは一定量の差分等が確認され自拠点情報を含むと判定された1以上の自拠点画像)のデータが格納されており、位置ずれ確認モードに移行可能と判定した場合はステップ806に進む。一方、1以上の自拠点画像(或いは一定量の差分等が確認され自拠点情報を含むと判定された1以上の自拠点画像)のデータが格納されておらず、位置ずれ確認モードに移行不可能と判定した場合はステップ810に進む。
ステップ806において、位置ずれ検出部706は、ステップ803で生成した自拠点画像と過去の自拠点画像とを比較して、両者の間の位置ずれを検出する。ここで、「過去の自拠点画像」とは、前回(直近)の処理で生成した自拠点画像でもよいし、過去の一定期間中に生成された自拠点画像群の中からユーザが選択した任意の自拠点画像でもよい。後者の場合、例えば過去の自拠点画像群の中から任意の自拠点画像を選択するためのUI画面(不図示)を用いて、ユーザが選択するようにしてもよい。ここでは、図5の(b)で示した自拠点画像を過去の自拠点画像とし、図5の(c)で示した自拠点画像をステップ803で生成した現在の自拠点画像として、両者の間の位置ずれを検出する場合について具体的に説明する。
まず、双方の自拠点画像内の入力情報としての「A」「B」「C」「D」「E」の各文字は、情報入力ボード114の下地画素とは異なる色の画素が連続した輪郭を形成している。そして、各輪郭は自拠点画像の例えば左上隅を原点する座標で位置を表現することができる。そこで、双方の自拠点画像に含まれる入力情報の各輪郭の対応点を、画像比較により検出する。この対応点検出にはSIFTやSURFといった既存の画像処理技術を適用すればよい。そして、検出された対応点間の幅方向および高さ方向の距離平均が所定の閾値以上であれば位置ずれ有り、所定の閾値未満であれば位置ずれ無しといったように判定する。なお、所定の閾値は、例えばあるサイズの文字が文字として認識可能かどうか等、ユーザにとって許容可能な程度のずれかどうかといった観点から予め設定しておけばよい。
ステップ807において、表示制御部705は、ステップ806での検出結果を表示する。具体的には、一定以上の位置ずれが検出された場合は位置ずれが有ることを示す情報を、一定以上の位置ずれが検出されなかった場合は位置ずれが無いことを示す情報を、ステータス領域303に表示する。
ステップ808において、モード移行処理部704は、位置ずれ確認モードに移行するか否かを判定する。例えば、ステップ806で一定以上の位置ずれが検出された場合に位置ずれ確認モードに移行すると判定することが考えられる。この他、ユーザがマウス212でモード選択領域をクリックするなど位置ずれ確認モードに移行する旨の明示の入力操作の有無によって、位置ずれ確認モードに移行するかどうかを判定するようにしてもよい。位置ずれ確認モードに移行すると判定された場合は、ステップ809に進む。一方、位置ずれ確認モードに移行しないと判定された場合は、ステップ810に進む。
ステップ809において、モード移行処理部704は、共有モードから位置ずれ確認モードにモードを移行する。
ステップ810において、送受信部702が他拠点画像データを他拠点から受信したか否かが判定される。他拠点画像データを受信していた場合は、ステップ811に進む。一方、他拠点画像データを受信していない場合は、ステップ802に戻る。
ステップ811において、表示制御部705は、受信した他拠点画像データを共有領域404に表示する。
以上が、本実施例に係る、共有モード時における処理の流れである。
(位置ずれ確認モード時における処理)
図9は、本実施例に係る、PC111の位置ずれ確認モード時における処理の流れを示すフローチャートである。この一連の処理も、CPU201がROM203、RAM202、外部メモリ210のいずれかに記憶された制御コードを呼び出して実行することで実現される。
ステップ901において、初期化部701は、初期化処理を行う。具体的には、モード選択領域302に位置ずれ確認モードであることを示す情報として「位置ずれ確認モード」の文字列、ステータス領域303に位置ずれが有ることを示す文字列「位置ずれ有り」の文字列がそれぞれ表示されるように表示制御部705に指示する。これを受け表示制御部705は、指示に従った表示を行う。
ステップ902において、表示制御部705は、過去の自拠点画像を共有領域304に表示する。具体的には、位置ずれ確認モードに移行すると判定された直前のステップ806にて使用した「過去の自拠点画像」をRAM202や外部メモリ201から読み出し、これを共有領域304に表示する。すなわち、この段階で他拠点の情報処理システムから他拠点画像データを受信していても、共有領域304には当該他拠点画像は表示されない。
ステップ903において、位置ずれ検出部706は、ステップ902で表示した過去の自拠点画像における自拠点情報と、情報入力ボード114上の現在の自拠点情報との位置ずれを検出する。具体的には以下のとおりである。
まず、情報入力ボード114上の自拠点情報を含む、現在の自拠点画像を生成する。この際、自拠点画像を得る直前にステップ902で表示した過去の自拠点画像を非投影にして、自拠点画像に過去の自拠点画像を含まないように制御し、撮像画像を取得する。そして、得られた撮像画像から上述の共有領域304を特定した後(特定方法については前述のステップ803を参照)、特定された共有領域304が矩形になるよう幾何補正してからトリミングを行なう。そして、トリミング後の撮像画像に対して、情報入力ボード114の下地色を除去する処理を行ない、さらに自拠点情報部分の色補正を行うことにより、自拠点画像が生成される。ここでは、上述のような処理の結果、図5の(c)で示す自拠点画像が生成されたものとし、過去の自拠点画像として図5の(b)で示した自拠点画像が読み込まれているものとする。そして、前述のステップ806で説明した位置ずれ検出の方法を適用して、生成された現在の自拠点画像(図5の(c))と読み込まれた過去の自拠点画像(図5の(b))との間のずれを検出する。
ステップ904において、表示制御部705は、ステップ903での検出結果を表示する。具体的には、一定以上の位置ずれが検出された場合は位置ずれが有ることを示す情報を、一定以上の位置ずれが検出されなかった場合は位置ずれが無いことを示す情報を、ステータス領域303に表示する。
ステップ905において、モード移行処理部704は、共有モードに移行するか否かを判定する。例えば、ステップ903で一定以上の位置ずれが検出されなかった場合に共有モードに移行すると判定することが考えられる。この他、ユーザがマウス212でモード選択領域302をクリックするなど共有モードに移行する旨の明示の入力操作の有無によって、共有モードに移行するかどうかを判定してもよい。共有モードに移行すると判定された場合はステップ906に進む。一方、共有モードに移行しないと判定された場合はステップ903に戻る。ユーザによる情報入力ボード114、カメラ113、プロジェクタ112の位置関係の調整・変更に伴って、ステップ903〜905の処理が繰り返されることになる。すなわち、処理の繰り返しに伴って、図6の(a)の状態から図6の(b)の状態へ、さらには図6の(c)の状態へと変化し、最終的に位置ずれが解消される。
ステップ906において、モード移行処理部704は、位置ずれ確認モードから共有モードにモードを移行する。
以上が、本実施例に係る、位置ずれ確認モード時における処理の流れである。
本実施例によれば、位置ずれが生じていなかった過去の自拠点画像が、現在の情報入力ボードの自拠点情報と重なるように表示される。これにより、情報入力ボード上の各領域におけるずれの方向や程度を、ユーザは一目瞭然に認識することができる。情報入力ボードやプロジェクタはそれぞれ移動・回転が可能であるため、生じ得るずれは本来複雑である。したがって、それぞれの位置や方向をずれが無い状態に復元する操作は本来複雑であるが、本実施例では過去と現在の自拠点情報の表示が情報入力ボード上で重なるように移動させるだけでよく、ユーザは直感的にずれの無い状態を復元することができる。
[実施例2]
実施例1では、共有モード時において生成された自拠点画像のデータはすべての他拠点に送信していた。次に、他拠点における動作中のモードに応じて、自拠点画像データを他拠点に送信するかどうかを制御する態様について、実施例2として説明する。なお、実施例1と共通する部分については説明を省略ないしは簡略化し、以下では差異点を中心に説明するものとする。
図10は、本実施例に係る、PC111(121)のソフトウェア構成を示す機能ブロック図である。本実施例のPC111は、初期化部701、送受信部702、自拠点画像生成部703、モード移行処理部704、表示制御部705、位置ずれ検出部706に加え、他拠点モード判定部1001を有する。
初期化部701、送受信部702、自拠点画像生成部703、モード移行処理部704、表示制御部705、位置ずれ検出部706の各機能部は、実施例1と同じである。ただし、本実施例におけるモード移行処理部703では、共有モードから位置ずれ確認モードへの移行時、及び位置ずれ確認モードから共有モードへの移行時に、移行後のモードを示す移行情報の生成も行なう。移行情報は、例えば、個々の情報処理システムを識別するための装置IDを含むヘッダ情報と、移行後のモードが共有モードの場合「0」移行後のモードが位置ずれ確認モードの場合「1」のように移行後のモードを1か0で表した2値情報とで構成される。
他拠点モード判定部1001は、上述の移行情報に基づき、他拠点における情報処理システムの動作中のモードを判定する。
図11は、本実施例に係る、PC111の共有モード時における処理の流れを示すフローチャートである。
ステップ1101〜ステップ1103は、実施例1に係る図8のフローチャートのステップ801〜ステップ803にそれぞれ対応する。
ステップ1103で自拠点画像データが生成されると、ステップ1104において他拠点モード判定部1001は、他拠点における情報処理システムの現在動作中のモードを判定する。具体的には、位置ずれ確認モードに移行したことを示す上述の移行情報を受信していれば、当該移行情報の送信元である他拠点の情報処理システムは位置ずれ確認モードであると判定し、それ以外は共有モードであると判定する。すなわち、位置ずれ確認モードに移行したことを示す上述の移行情報を受信していない限りは、他拠点の情報処理システムは共有モードで動作しているものと判定する。共有モードで動作中であると判定された場合は、ステップ1105に進む。一方、動作中のモードは位置ずれ確認モードであると判定された場合は、ステップ1106に進む。
ステップ1105において、送受信部702は、ステップ1103で生成した自拠点画像データを、共有モードで動作中であると判定された他拠点の情報処理システムに対し送信する。つまり、動作中のモードが共有モードである場合にのみ自拠点画像データが送信され、動作中のモードが位置ずれ確認モードである他拠点に対しては、自拠点画像データが送信されないことになる。なお、ステップ1104及びステップ1105の各処理は、他拠点が複数個所存在する場合には、すべての他拠点について実行される。
ステップ1106〜ステップ1109は、実施例1に係る図8のフローチャートのステップ805〜ステップ808にそれぞれ対応する。
ステップ1109で共有モードから位置ずれ確認モードに移行すると判定されると、ステップ1110において、モード移行処理部704は、位置ずれ確認モードへの移行を示す移行情報を、送受信部702を介して他拠点の情報処理システムに送信する。
ステップ1111〜ステップ1113は、実施例1に係る図8のフローチャートのステップ809〜ステップ811にそれぞれ対応する。
以上が、本実施例に係る、共有モード時における処理の流れである。
図12は、本実施例に係る、PC111の位置ずれ確認モード時における処理の流れを示すフローチャートである。
ステップ1201〜ステップ1205は、実施例1に係る図9のフローチャートのステップ901〜ステップ905にそれぞれ対応する。
ステップ1205で位置ずれ確認モードから共有モードに移行すると判定されると、ステップ1206において、モード移行処理部704は、共有モードへの移行を示す移行情報を、送受信部702を介して他拠点の情報処理システムに送信する。
ステップ1207は、実施例1に係る図9のフローチャートのステップ906に対応する。
以上が、本実施例に係る、位置ずれ確認モード時における処理の流れである。
本実施例によれば、位置ずれ確認モードで動作中の他拠点の情報処理システムには自拠点画像データの送信を行わないので、ネットワーク通信量を抑えることができる。
[実施例3]
次に、すべての他拠点における動作中のモードが共有モードである場合にのみ、自拠点画像データをすべての他拠点に送信するように制御する態様について、実施例3として説明する。なお、実施例1及び2と共通する部分については説明を省略ないしは簡略化し、以下では差異点を中心に説明するものとする。
本実施例に係るPC111(121)のソフトウェア構成は実施例2と同じである。すなわち、初期化部701、送受信部702、自拠点画像生成部703、モード移行処理部704、表示制御部705、位置ずれ検出部706に加え、他拠点モード判定部1001で構成される。この場合において、本実施例に係る表示制御部705は、いずれかの他拠点における情報処理システムが位置ずれ確認モードで動作中である旨を示す表示の制御も行なう。
図13は、本実施例に係る、PC111の共有モード時における処理の流れを示すフローチャートである。
ステップ1301〜ステップ1303は、実施例2に係る図11のフローチャートのステップ1101〜ステップ1103にそれぞれ対応する。
ステップ1303で自拠点画像データが生成されると、ステップ1304において他拠点モード判定部1001は、すべての他拠点における情報処理システムの現在動作中のモードが共有モードであるか否かを判定する。具体的には、いずれかの他拠点の情報処理システムから、位置ずれ確認モードに移行したことを示す上述の移行情報を受信していないかどうかを判定する。どの他拠点からも、位置ずれ確認モードに移行したことを示す移行情報を受信していなければ、すべての他拠点における情報処理システムが共有モードで動作中であると判定する。すべての他拠点が共有モードで動作中であると判定された場合は、ステップ1305に進む。一方、すべての他拠点が共有モードで動作中ではない(位置ずれ確認モードで動作中の他拠点が存在する)と判定された場合は、ステップ1306に進む。
ステップ1305において、送受信部702は、ステップ1303で生成した自拠点画像データを、すべての他拠点の情報処理システムに対し送信する。
ステップ1306において、表示制御部705は、位置ずれ確認モードで動作中の他拠点が存在する旨のメッセージをステータス領域に表示する。その際、位置ずれ確認モードに移行したことを示す移行情報に含まれるヘッダ情報内の装置IDに基づいて、どの他拠点が位置ずれ確認モードで動作中なのかを合わせて表示するようにしてもよい。このように本実施例では、動作中のモードが位置ずれ確認モードである他拠点が1つでもあると、すべての他拠点に対して自拠点画像データが送信されないことになる。
ステップ1307〜ステップ1314は、実施例2に係る図11のフローチャートのステップ1106〜ステップ1113にそれぞれ対応する。
以上が、本実施例に係る、共有モード時における処理の流れである。上記のような処理により、位置ずれ確認モードで動作中のシステムで位置ずれが解消されるまでの間、共有モードで動作中のシステムにおける情報入力ボード上には古い他拠点画像の表示と共に位置ずれ確認モード中の他拠点の存在が表示されることになる。
本実施例によれば、位置ずれ確認モードで動作中のシステムの存在をすべてのユーザ間で共有できるので、位置ずれ確認モードが解消されるまでの間、他のユーザは情報入力ボードの書込みを停止する等して、より確実に情報をユーザ間で共有することができる。
[実施例4]
次に、位置ずれ確認モード時において、位置ずれを調整する際の参考となるガイド情報を情報入力ボード上に表示する態様について、実施例4として説明する。なお、実施例1〜3と共通する部分については説明を省略ないしは簡略化し、以下では差異点を中心に説明するものとする。
本実施例においては、まず、共有モード時における位置ずれ検出処理の内容が、前述の実施例とは異なることになる。
図14は、共有モードで動作中の情報処理システム110における情報入力ボード114をカメラ113で撮像した撮像画像の一例を示す図である。
図14の(a)は、時刻T1における撮像画像1400を示しており、位置ずれが無い状態の撮像画像である。撮像画像1400には、情報入力ボード114上への投影画像300の投影結果401を含んでいる。撮像画像1400の原点(0,0)を左上隅とした時の情報入力ボード114の領域は、その四隅の位置を表す座標(以下、四隅座標)である(Pa,Qa)、(Pb,Qb)、(Pc,Qc)、(Pd,Qd)で特定される。また、投影結果401内の共有領域304は、四隅座標(Xa,Ya)、(Xb,Yb)、(Xc,Yc)、(Xd,Yd)で特定される。
図14の(b)は、時刻T2における撮像画像1410を示しており、位置ずれが有る状態の撮像画像である。撮像画像1410にも、情報入力ボード114上への投影画像300の投影結果401を含んでいるが、撮像画像1400と比べると右肩部分が下がった歪んだ画像となっているのが分かる。撮像画像1410の原点(0,0)を左上隅とした時の情報入力ボード114の領域は、四隅座標(Pr,Qr)、(Ps,Qs)、(Pt,Qt)、(Pu,Qu)で特定される。また、その投影結果401内の共有領域304は、四隅座標(Xr,Yr)、(Xs,Ys)、(Xt,Yt)、(Xu,Yu)で特定される。そして、撮像画像1400の共有領域304の四隅座標(Xa,Ya)、(Xb,Yb)、(Xc,Yc)、(Xd,Yd)に対応する、撮像画像1410の四隅座標は、(Xa’,Ya’)、(Xb’,Yb’)、(Xc’,Yc’)、(Xd’,Yd’)である。
本実施例では、上述のような座標情報を用いて位置ずれの検出を行なう。
図15は、本実施例に係る、位置ずれ検出処理の詳細を示すフローチャートである。この一連の処理は、CPU201がROM203、RAM202、外部メモリ210のいずれかに記憶された制御コードを呼び出して実行することで実現される。
ステップ1501において、位置ずれ検出部706は、過去の自拠点画像である時刻T1における撮像画像内の、情報入力ボード114の四隅座標(Pa,Qa)、(Pb,Qb)、(Pc,Qc)、(Pd,Qd)を取得する。具体的には、まず、時刻T1における撮像画像に対して二値化処理やエッジ抽出処理、直線近似処理を実行する。次に、所定の大きさや傾き、形状を有する領域を抽出して、情報入力ボード114の四隅座標(Pa,Qa)、(Pb,Qb)、(Pc,Qc)、(Pd,Qd)を特定する。
ステップ1502において、位置ずれ検出部706は、現在の自拠点画像である時刻T2における撮像画像内の、情報入力ボード114の四隅座標(Pr,Qr)、(Ps,Qs)、(Pt,Qt)、(Pu,Qu)を取得する。具体的な処理の内容は、ステップ1501と同様である。
ステップ1503において、位置ずれ検出部706は、過去の自拠点画像に含まれる情報入力ボード上の各画素を現在の自拠点画像に含まれる情報入力ボード上の対応する画素に変換するための変換行列を求める。この際、ステップ1501及び1502でそれぞれ取得した四隅座標のうち対応関係にある座標を用いて変換行列が求められる。すなわち、(Pa,Qa)と(Pr,Qr)、(Pb,Qb)と(Ps,Qs) 、(Pc,Qc)と(Pt,Qt)、(Pd,Qd)と(Pu,Qu)の各対応座標を用いて、上述の変換行列が求められる。
ステップ1504において、位置ずれ検出部706は、過去の自拠点画像である時刻T1における撮像画像内の、共有領域304の四隅座標 (Xa,Ya)、(Xb,Yb)、(Xc,Yc)、(Xd,Yd)を取得する。この共有領域304の四隅座標の特定に関しては、実施例1における図8のフローチャートのステップ803で説明した手法を適用可能である。
ステップ1505において、位置ずれ検出部706は、過去の自拠点画像である時刻T1における撮像画像内の共有領域304に対応する、現在の自拠点画像である時刻T2における撮像画像内の領域(以後、対応共有領域)の四隅座標を取得する。すなわち、ステップ1503で求めた変換行列を用いて、前述の四隅座標(Xa,Ya)、(Xb,Yb)、(Xc,Yc)、(Xd,Yd)に対応する四隅座標(Xa’,Ya’)、(Xb’,Yb’)、(Xc’,Yc’)、(Xd’,Yd’)を取得する。(図14の(b)参照)
ステップ1506において、位置ずれ検出部706は、現在の自拠点画像である時刻T2における撮像画像内の、共有領域304の四隅座標(Xr,Yr)、(Xs,Ys)、(Xt,Yt)、(Xu,Yu)を取得する。ステップ1504と同様、この共有領域304の四隅座標の特定に関しては、実施例1における図8のフローチャートのステップ803で説明した手法を適用可能である。
ステップ1507において、位置ずれ検出部706は、現在の自拠点画像である時刻T2における撮像画像内の共有領域304の四隅座標と、同じ時刻T2における撮像画像内の対応共有領域の四隅座標とのずれ量を導出する。すなわち、前述の四隅座標(Xr,Yr)、(Xs,Ys)、(Xt,Yt)、(Xu,Yu)と、対応共有領域の四隅座標(Xa’,Ya’)、(Xb’,Yb’)、(Xc’,Yc’)、(Xd’,Yd’)との間のずれ量を求める(図14の(b)参照)。図16は、時刻T2における撮像画像内の、共有領域304の四隅座標を点線で繋ぎ、同様に対応共有領域の四隅座標を実線で繋いだ図である。具体的には、四隅座標(Xr,Yr)、(Xs,Ys)、(Xt,Yt)、(Xu,Yu)を点線で繋ぎ、四隅座標(Xa’,Ya’)、(Xb’,Yb’)、(Xc’,Yc’)、(Xd’,Yd’)を実線で繋いだ図である。求めるずれ量は、対応する座標間{(Xr,Yr)と(Xa’,Ya’)、(Xs,Ys)と(Xb’,Yb’)、(Xt,Yt)と(Xc’,Yc’)、(Xu,Yu)と(Xd’,Yd’)}の各距離で定義することができる。そして、例えば、対応座標間の距離の少なくとも1つが所定の閾値以上である場合に位置ずれ有り、対応座標間の距離の全てが所定の閾値未満であれば位置ずれ無し、といった具合に判定がなされる。なお、判定の方法は、対応する座標を元に定義するものであればよく、上述の例に限定されるものではない。
図17は、本実施例に係る、位置ずれ確認モード時における処理の流れを示すフローチャートである。
ステップ1701は初期化処理であり、実施例1に係る図9のフローチャートのステップ901に対応する。
ステップ1702において、位置ずれ検出部706は、上述の図15で示した方法による位置ずれ検出処理を行う。そして、上述した対応共有領域の四隅座標(Xa’,Ya’)、(Xb’,Yb’)、(Xc’,Yc’)、(Xd’,Yd’)と、共有領域の四隅座標(Xr,Yr)、(Xs,Ys)、(Xt,Yt)、(Xu,Yu)との位置ずれ量を求める(図16を参照)。
ステップ1703において、位置ずれ検出部706は、位置ずれ調整情報を生成する。ここで、位置ずれ調整情報とは、検出された位置ずれの程度や方向などの情報(或いはそれを是正するための情報)を視覚的に表現したマーク等であって、位置ずれ解消のためにユーザがどのように調整すればよいのかを示すガイド情報である。この位置ずれ調整情報は、共有領域304の四隅の各座標から対応共有領域の四隅の各座標までの距離と角度を導出することにより生成される。図18は、前述の図16の場合において生成される位置ずれ調整情報の一例を示している。図18では、位置ずれ調整情報として、矢印を円で囲んだマーク1801〜1804が存在し、各矢印の大きさと向きによって、位置ずれの量と方向が示されている。さらに、位置ずれ検出部706は、共有領域の各辺と対応共有領域の各辺の長さを求め、求めた各辺の長さの比に応じて、矢印を囲む円の大きさを決定する。この円の大きさは、情報入力ボード114からカメラ113までの投影距離の調整量を示しており、円が大きいほど投影距離を大きくすべきことを意味している。ここで、マーク1801及び1802における点線の円は、投影距離が適切であり調整の必要がないことを示している。本実施例では投影距離を変える必要がないことを、円を点線にすることで表しているが、例えば円表示自体を消す等で表すようにしてもよい。また、ここでは位置ずれ調整情報がマークの場合について説明したが、検出された位置ずれの程度や方向(或いは是正すべき程度や方向)等を文字や音声で表現してもよい。なお、図18の例のように、投影領域と非投影領域の境界部分に位置ずれ調整情報を表示することは、ユーザが情報入力ボードを手動で移動させる際にユーザの視界に入りやすいという利点がある。生成された位置ずれ調整情報は、表示制御部705によって情報入力ボード114の共有領域304内に表示される。
ステップ1704及びステップ1705は、実施例1に係る図9のフローチャートのステップ905及びステップ906にそれぞれ対応する。
なお、本実施例で説明した内容を、実施例2や実施例3に適用してもよい。
本実施例によれば、位置ずれが検出された場合に位置ずれ調整情報が表示される。これにより、ユーザは、位置ずれの程度や方向を一目瞭然に認識することができ、さらに位置ずれ調整情報を参考にして、すばやく位置ずれが無い状態に戻すことができる。
(その他の実施例)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。