[go: up one dir, main page]

JP6064211B2 - 手書き入力システム - Google Patents

手書き入力システム Download PDF

Info

Publication number
JP6064211B2
JP6064211B2 JP2013133603A JP2013133603A JP6064211B2 JP 6064211 B2 JP6064211 B2 JP 6064211B2 JP 2013133603 A JP2013133603 A JP 2013133603A JP 2013133603 A JP2013133603 A JP 2013133603A JP 6064211 B2 JP6064211 B2 JP 6064211B2
Authority
JP
Japan
Prior art keywords
dot
dot mark
display surface
dot marks
coordinate system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013133603A
Other languages
English (en)
Other versions
JP2014067398A (ja
Inventor
長岡 英一
英一 長岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2013133603A priority Critical patent/JP6064211B2/ja
Priority to US14/014,779 priority patent/US9176606B2/en
Publication of JP2014067398A publication Critical patent/JP2014067398A/ja
Application granted granted Critical
Publication of JP6064211B2 publication Critical patent/JP6064211B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0317Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface
    • G06F3/0321Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface by optically sensing the absolute position with respect to a regularly patterned surface forming a passive digitiser, e.g. pen optically detecting position indicative tags printed on a paper sheet

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Position Input By Displaying (AREA)

Description

本開示は、電子ペンおよびこれを用いた手書き入力システムに関する。
特許文献1は、位置を符号化した多数のドットマークを、印刷などにより配置した紙の上に文字等を記入する際に、紙に記入した情報を電子ペンを用いて電子化し、その電子化された情報をサーバや端末に送る技術を開示する。また、特許文献2は、位置を符号化した多数のドットマークをデジタルディスプレイなどに配置し、デジタルディスプレイ上に電子ペンを用いて手書き入力を行う手書き入力システムを開示する。
特開2007−226577号公報 特開2012−128563号公報
本開示は、ドットマークのより正確な位置情報を取得することが可能な手書き入力システムを提供する。
本開示の一実施形態による手書き入力システムは、表示面上の多数のドットマークの一部である複数のドットマークを読み取ることにより、表示面上の位置を特定する。複数のドットマークは、複数の仮想点を基準として表示面上に形成され、表示面上の位置は複数のドットマークによって符号化されている。手書き入力システムは、複数のドットマークを撮像する撮像部と、撮像画像中の複数のドットマークの位置を撮像画像の第1座標系における位置として検出するドットマーク位置検出部と、ドットマーク位置検出部により検出された複数のドットマークの位置および複数の仮想点の位置に基づいて相対位置情報を生成する復号部であって、複数の仮想点によって第1座標系とは異なる第2座標系が規定され、相対位置情報は、複数の仮想点を基準とした第2座標系における複数のドットマークの位置関係を示し、第2座標系における複数のドットマークは第1座標系における複数のドットマークに対応する、復号部と、表示面上の位置を相対位置情報に基づいて計算する位置情報計算部とを備える。復号部は、複数の仮想点を基準とした複数のドットマークの相対位置の初期値を設定した後、第1座標系における複数のドットマークの位置と、相対位置を仮想点の位置に加算した位置とに基づいて、射影変換行列を算出する算出処理を実行し、複数のドットマークの位置を第1座標系から第2座標系に射影変換行列を用いて変換する変換処理を実行し、変換後の複数のドットマークの位置と仮想点の位置とに基づいて相対位置情報を生成する生成処理を実行し、相対位置を相対位置情報に従って更新する更新処理を実行し、所定の条件が満たされるまで、算出処理、変換処理、生成処理および更新処理を順次、繰り返し実行するよう構成されている。
本開示によるシステムによれば、ドットマークのより正確な位置情報を取得することが可能な手書き入力システムを提供することができる。
電子ペン10および手書き入力システム100をユーザが使用している状況を示す概略図である。 電子ペン10のハードウェア構成図である。 手書き入力システム100の構成を示すブロック図である。 ドットマーク位置検出部15の動作を示すフローチャートである。 電子ペン10を基準状態に保持した時の撮像素子14の撮影画像の一例を示す図である。 電子ペン10を傾斜および回転させた時の撮像素子14の撮影画像の一例を示す図である。 S101ステップにおける平滑化処理後の画像の一例を示す図である。 S101ステップにおけるハイパスフィルタ処理後の画像の一例を示す図である。 S102ステップにおける1回目のローパスフィルタ処理後の画像の一例を示す図である。 S102ステップにおける5回目のローパスフィルタ処理後の画像の一例を示す図である。 S102ステップにおける7回目ローパスフィルタ処理後後の画像の一例を示す図である。 S104ステップにおける輝度補正処理後の画像の一例を示す図である。 S105ステップの適応的二値化処理後の画像の一例を示す図である。 S106ステップの中心位置検出結果示す図である。 格子位置設定部16の動作を示すフローチャートである。 S201ステップにおける処理対象領域を説明する図である。 S204ステップの回転角度ヒストグラムを示すグラフである。 S205ステップのドットマーク位置回転処理結果を示す図である。 S206ステップのドットマーク選定方法を説明する図である。 S206ステップのドットマーク選定方法を説明する図である。 S206ステップのドットマーク選定方法を説明する図である。 S206ステップのドットマーク選定方法を説明する図である。 S206ステップのドットマーク選定方法を説明する図である。 S206ステップのドットマーク選定方法を説明する図である。 S207ステップの格子点位置の計算結果を示す図である。 ドットマーク復号部17の動作を示すフローチャートである。 S303ステップにおいてドットマークを射影変換した結果を示す図である。 S304ステップにおいてドットマーク復号化処理の結果を示す図である。 S305ステップにおいて相対位置更新処理の結果を示す図である。 位置情報計算部18の動作を示すフローチャートである。 ペン先位置35の撮像素子上における位置36を説明するための電子ペン10の断面図である。 電子ペン10および手書き入力システム100の変形例を示すブロック図である。 ドットマーク復号部17の動作の変形例を示すフローチャートである。 ドットマーク50が形成された表示面21の拡大図である。 ドットマーク50の配置パターンを示す図である。
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
なお、発明者は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
(実施の形態1)
以下、図1〜31を参照しながら、実施の形態1を説明する。
[1.構成]
[1−1.手書き入力システムの構成]
まずは、図1を参照して手書き入力システム100の概略を説明する。
図1は、ユーザが電子ペン10を用いて、表示装置20の表示面21上に文字を入力している場面を示す。なお、ここでは文字を入力する場面を例に挙げているが、表示面21上に入力できるのは文字だけでなく、例えば数字や記号も入力することが可能である。
実施の形態1に係る手書き入力システム100は、電子ペン10と、表示装置20とを備えている。電子ペン10は、手書き入力システム100のデータ入力機器として利用される。ユーザが電子ペン10を用いて表示面21に文字を記入すると、記入された文字が表示面21に表示される。
表示面21には、表示面21上の位置を符号化した多数のドットマークがその位置に応じて異なる情報パターンとして予め形成されている。本願明細書では、図1に示すように個々のドットマークはドットマーク50と表記する。
ここで、図34および35を参照しながら情報パターンを説明する。
図34は、ドットマーク50が形成された表示面21の拡大図である。
ドットマーク50は、例えば四角形(正方形)や円形の形状を有し、赤外線を吸収する主成分を含む。
ドットマーク50は仮想的な格子点(仮想点)の近傍に配置される。仮想的な格子点は第1基準線44と第2基準線45との交点により定義される。第1基準線および第2基準線は表示面21上の仮想的な線であり、実際に存在する線ではない。従って、仮想的な格子点も平面上には存在しない。
複数の第1基準線44と複数の第2基準線45とが格子状のパターンを形成する。図34は、格子状のパターンの一例を示す。3本の第1基準線44と3本の第2基準線45により2×2の格子状のパターンが形成されている。それぞれの仮想的な格子点の近傍には3×3のドットマーク50が配置されている。以降、「仮想的な格子点」を単に「格子点」と称する。
図35は、ドットマーク50の配置パターンを示す図である。ドットマーク50は、格子点を基準として、第1および第2基準線44,45の何れか四方向にオフセットした位置に配置される。具体的には、ドットマーク50の配置は、図35(a)〜(d)の何れかとなる。そして、異なる符号である「0」、「1」、「2」、「3」のいずれかが割り当てられてこの配置関係は数値化される。
図35(a)の配置では、ドットマーク50は、第1基準線44と第2基準線45との交点の位置を基準として上側に配置される。この配置を数値化する際には、この配置は符号「0」と表す。図35(b)の配置では、ドットマーク50は、第1基準線44と第2基準線45との交点の位置を基準として左側に配置される。この配置を数値化する際には、この配置は符号「1」と表す。図35(c)の配置では、ドットマーク50は、第1基準線44と第2基準線45との交点の位置を基準として右側に配置される。この配置を数値化する際には、この配置は符号「2」と表す。図35(d)の配置では、ドットマーク50は、第1基準線44と第2基準線45との交点の位置を基準として下側に配置される。この配置を数値化する際には、この配置は符号「3」と表す。
本実施の形態では、6×6のドットマーク50の組み合わせにより、表示面21上の位置が符号化されている例を説明する。本実施の形態における「情報パターン」とは、表示面21上に存在する全てのドットマーク、つまり、表示面21上の多数のドットマーク50から形成されるパターンを指し、「ドットパターン」とは、多数のドットマークの一部である6×6のドットマーク50から形成されるパターンを指す。
任意の6×6のドットマーク50に着目すると、その6×6のドットマーク50はドットパターンを形成し、表示面21上の任意の位置はそのドットパターンによって符号化されている。ドットパターンは、ドットパターンを復号して表示面21上の位置を特定できるよう、表示面21上の位置に応じて全て異なっている。ドットパターンに含まれる36個の各々のドットマーク50に「0」〜「3」の何れかの符号を割り当てることによって、膨大な数(46×6通り)の表示面21上の位置座標が符号化され得る。
このような情報パターンのパターンニング(コーディング)や位置座標の特定(デコーディング)の方法として、例えば、特開2006−141061号公報に開示されているような公知の方法を用いることができる。
なお、ドットパターンを復号して表示面21上の位置が特定できればよく、格子点を基準とした、ドットパターンに含まれる各ドットマークの配置方法は、既に説明した配置方法に限られない。例えば、第1基準線44と第2基準線45とをそれぞれ45度回転させた方向の何れか4方向にドットマーク50をシフトさせて配置することもできる。
電子ペン10が、情報パターンの一部、すなわち複数のドットマーク50からなるドットパターンをセンサにより読み取ることにより、ユーザが表示面21に記入している文字の位置を特定することができる。このように、電子ペン10は情報パターンの読み取り装置としても機能する。
電子ペン10は、ペンの移動に伴って次々と情報パターンを読み取り、読み取った情報パターンから電子ペン10の軌跡、すなわちユーザが記入した文字の筆跡を検出することができる。このようにして検出された位置情報(文字の軌跡に関する情報)は、表示装置20に送信される。表示装置20は、この位置情報に基づいて、表示面21に文字情報を表示する。したがって、ユーザは、紙の上にペンを用いて文字などを記入するように、表示面21の上に電子ペン10を用いて文字などを記入することができる。
また、ユーザは、電子ペン10を用いて記入した文字を消すこともできる。ユーザは、電子ペン10を消しゴムのように用いることもできる。この場合も、文字を記入するときと同様に、電子ペン10を用いて情報パターンを読み取ることにより、電子ペン10のペン先の位置が特定される。そして、表示装置20は、特定された位置情報に基づいて、表示面21に表示される文字情報を変更する。
[1−2.電子ペンと表示装置の構成]
図2および3を参照して電子ペン10および表示装置20の構成を説明する。
まず、図2を参照しながら電子ペン10のハードウェア構成を説明する。図2は電子ペン10のハードウェア構成図である。
図2に示すように、電子ペン10は、照明部11、対物レンズ13、撮像素子14、送信部19、制御部31、ペン先部32、電源33および筆圧検知部34を有している。
照明部11は、例えばLED素子などの発光素子を含む。LED素子は複数設けてもよい。この場合、複数のLED素子は、対物レンズ13を介して撮像素子14が撮影する表示面21上の被撮影領域を概ね均等に照射するよう配置される。例えば、表示面の21上の被撮影領域が概ね均等に照射されるよう2つのLED素子をペン先部32の近傍に配置し、両者を同時または交互に発光させる。
照明部11は、情報パターンに赤外光を照射する。赤外光の波長は、例えば850nm以上であって、遠赤外線の波長領域にある。照明部11から照射された赤外光は、ドットマーク50により吸収され、ドットマーク50以外の領域で反射される。
対物レンズ13は、表示面21により反射された赤外光を撮像素子14に結像する。
撮像素子14は、例えばCCDやCMOSセンサである。撮像素子14は、対物レンズ13の光軸上に設けられている。撮像素子14は対物レンズ13を介して結像された光学像を検出し、画像を生成する。
対物レンズ13と撮像素子14とを含む構成要素が撮像部12を構成する。撮像部12は、対物レンズ13以外に複数のレンズを含み得る。
撮像部12は、多数のドットマーク50の少なくとも一部を光学的に画像として撮影することができる。撮像部12は、ドットマーク50により吸収され、その他の領域で反射された赤外光を結像する。より具体的には、撮像部12は、撮像素子14の撮像面上に形成された複数のドットマーク像を検出する。このようにして、撮像部12は複数のドットマーク50からなる画像を生成する。撮像部12は生成した画像を制御部31に送信する。
送信部19は送信機により構成され、ペン先部32とは反対側の端部近傍に設けられている。送信部19は、制御部31の演算結果を含む情報を表示装置20に送信する。
制御部31は、CPUやメモリなどから構成されるマイクロコンピュータ(マイコン)である。制御部31はCPUを動作させるためのプログラムも実装している。制御部31は、ハードウェアのみで構成してもよいし、ハードウェアとソフトウェアとを組み合わせることにより実現してもよい。
制御部31は電子ペン10全体を制御する。
ペン先部32の形状は、例えばユーザが表示面21に表示される文字を認識し易い形状にすることができる。ペン先部32の近傍には、対物レンズ13と照明部11とが設けられている。
電源33は、電子ペン10の各構成要素に電力を供給する。
筆圧検知部34は、例えば筆圧センサにより構成される。筆圧センサは、例えば導電ゴムの抵抗値変化や、電極間の静電容量変化を検出する。筆圧検知部34は、ユーザが電子ペン10を用いて表示面21上に文字などを記入する際に、ペン先部32に加わる圧力を検知する。この圧力の検知結果は、制御部31に送られる。制御部31は、筆圧検知部34から送られた圧力の検知結果を送信部19に送信し、送信部19はこれを表示装置20に送信する。
次に、図3を参照しながら、制御部31の構成および表示装置20の構成を説明する。
制御部31は、ドットマーク位置検出部15、格子位置設定部16、ドットマーク復号部17および位置情報計算部18を含む。
本実施の形態においては、ドットマーク位置検出部15と、格子位置設定部16と、ドットマーク復号部17と、位置情報計算部18とがそれぞれ有する機能は、制御部31のプログラムとして実装されている。
なお、ドットマーク位置検出部15、格子位置設定部16、ドットマーク復号部17および位置情報計算部18が有する機能をハードウェアにより実現する場合、例えば、各構成要素は制御部31ではなくイメージシグナルプロセッサに実装され得る。
ドットマーク位置検出部15は、撮像部12が撮影した画像内に含まれるドットマーク50の位置を全て検出し、検出結果を格子位置設定部16に送信する。
格子位置設定部16は、画像内に含まれるドットマーク50の中から、ドットパターンを構成する複数のドットマーク50を選定する。また、格子位置設定部16は、選定したドットマーク50に各々対応する格子点50aの、表示面21における位置を計算する。格子位置設定部16は、ドットマーク50の選定結果と、表示面21における対応する格子点50aの位置の計算結果とをドットマーク復号部17に送信する。
ドットマーク復号部17は、撮影画像中におけるドットマーク50の位置と、表示面21における格子点50aの位置とから、相対位置情報を生成する。相対位置情報は格子点50aを基準としたドットマーク50aの位置関係を示す。相対位置情報の詳細は後述する。
また、ドットマーク復号部17は、撮影画像中におけるドットマーク50の位置から、情報パターンが予め形成された表示面21上におけるドットマーク50の位置への射影変換行列Hを計算する。ドットパターンにおける各ドットマーク50の相対位置情報と射影変換行列Hの計算結果とは、位置情報計算部18に送られる。
位置情報計算部18は、各ドットマーク50の相対位置情報を用いて、ドットマーク50の表示面21上における位置情報を計算する。また、位置情報計算部18は、表示面21上における電子ペン50の先端部の位置を、射影変換行列Hを用いて計算する。これによって、電子ペン10の先端部が表示面21上のどの位置にあるのかを特定することが出来る。ドットマーク50の表示面21上における位置情報と、電子ペン50の先端部の表示面21上における位置情報とは、送信部19に送られる。
図3に示すように、表示装置20は、受信部22と、制御部23と、表示部24とを有している。表示装置20としては、例えば液晶ディスプレイである。表示部24は、液晶ディスプレイの表示パネルの一例である。
受信部22は受信機により構成され、電子ペン10の送信部19から送信された情報を受信する。受信した情報には、電子ペン10の位置情報計算部18の計算結果が含まれている。受信部22は受信した情報を制御部23に送信する。
制御部23は、CPUやメモリなどから構成されたマイコンであり、CPUを動作させるためのプログラムも実装している。制御部23は表示装置20全体を制御する。
制御部23は、受信部22を介して筆圧検知部34が検知した情報を取得する。制御部23は、ユーザが電子ペン10で記入しているか否かなどをその情報に基づいて判断し、表示面21に表示される表示情報を適切に更新する。また、制御部23は、電子ペン10の位置情報計算部18が計算した電子ペン50の先端部の表示面21上における位置に応じて、表示面21に表示する表示情報を更新する。これにより、ユーザが電子ペン10を用いて入力した文字が、表示面21に表示される。
[2.動作]
[2−1.手書き入力システムの動作概要]
まずは、図3を参照しながら手書き入力システム100の動作概要を説明する。手書き入力システム100では、撮像部12が画像を撮影し、ドットマーク位置検出部15に送る。ドットマーク位置検出部15は撮影画像中におけるドットマーク50の位置を検出し、検出結果を格子位置設定部16に送信する。格子位置設定部16はドットパターンを構成する複数のドットマーク50を選定する。格子位置設定部16は、選定したドットマーク50に各々対応する格子点50aの表示面21における位置を計算し、これらの結果をドットマーク復号部17に送信する。ドットマーク復号部17は相対位置情報を生成し、その結果を位置情報計算部18に送信する。位置情報計算部18は、相対位置情報を用いてドットマーク50の位置情報を計算する。最終的に、位置情報計算部18は表示面21上のペン先部32の位置を特定する。
送信部19は、位置情報計算部18が計算した結果を含んだ情報を表示装置20に送信する。表示装置20の制御部23は、電子ペン10の送信部19から送信された情報を受信部22を介して受け取る。制御部23は、位置情報計算部18が計算した結果を含んだ情報に応じて、表示面21に表示する表示情報を更新する。これにより、ユーザが電子ペン10を用いて入力した文字が、表示面21に表示される。このように、手書き入力システム100は、ユーザがペン入力した位置を高精細に検知し、入力文字を表示面21に反映させることができる。
次に、電子ペン10のドットマーク位置検出部15と、格子位置設定部16と、ドットマーク復号部17と、位置情報計算部18の各部の動作を詳細に説明する。
[2−2.ドットマーク位置検出部15の動作]
まず、図4〜14を参照してドットマーク位置検出部15の動作を説明する。図4は、ドットマーク位置検出部15の動作を示すフローチャートである。また、図5に撮像部12の撮像素子14が撮影した画像の一例を示す。図5は電子ペン10を基準状態に保持した場合の撮影画像である。ここで基準状態とは、図2に示すように表示面21と撮像素子14の撮像面とが平行な状態を指す。すなわち、電子ペン10が表示面21の表面に直角である場合である。図5に示す画像P0には、複数のドットマーク50が略正方形の黒領域として存在する。また、画像の水平方向に複数のブラックライン40が存在している。
ここでブラックライン40を説明する。液晶ディスプレイなどの表示装置20は、R、G、Bの各表示画素を区切るブラックマトリクスを有している。ブラックマトリックスは、縦方向のブラックラインと、横方向のブラックラインから構成されている。そして、通常は横方向のブラックラインが太くなる。また、ブラックマトリックスはカーボンブラックを主成分とする材料により形成されている。カーボンブラックは赤外線吸収率が非常に高い材料であるため、ブラックマトリックスは赤外線を吸収する。このため、図5に示す画像P0には、横方向のブラックライン40が存在する。なお、縦方向のブラックラインは、撮像素子14のピクセル解像度以下の大きさであるため、図5に示す画像P0には存在していない。
画像P0は、例えば240×240ピクセルの画素からなる画像である。画像P0では、ドットマーク50は、縦横約6ピクセルのサイズを有している。また、ブラックライン40の太さは約2ピクセルである。すなわち、ドットマーク50の垂直方向のサイズは、ブラックライン太さより3倍程度大きい。また、ブラックライン40の、ライン間の間隔B0は約8ピクセルである。図5に示す画像P0は、電子ペン10を基準状態に保持した場合に得られた画像である。この基準状態において、ドットマーク50およびブラックライン40は、最も大きく撮影される。しかしながら、ユーザが電子ペン10を実際に操作すると、基準状態は必ずしも保持されない。電子ペン10は表示面21に対して任意の角度で傾斜し、電子ペン10のペン先部32の軸回りに任意の角度で回転する。このように電子ペン10が傾斜し回転した状態における撮影画像の一例P1を図6に示す。画像P1を見ると、ブラックライン40は水平方向に対して傾斜し、電子ペン10が軸回りに回転していることがわかる。また、ブラックライン40の間隔B1は、B0に比べて明らかに狭くなっており、ドットマーク50の大きさも小さくなっている。これは、電子ペン10が表示面21に対して傾斜していることに起因する。
以下、図6に示す画像P1を例に、図4のフローチャートに沿ったドットマーク位置検出部15の動作を説明する。
[2−2−1.ハイパスフィルタ処理(S101)]
図6の画像P1を見ると、左右の輝度ムラが顕著である。輝度ムラは低周波数の輝度の変化に起因している。そこで、輝度ムラの影響を軽減するために、ドットマーク位置検出部15はハイパスフィルタ処理を行う。
画像P1の左上から右方向にx番目、下方向にy番目の画素の輝度がP1(x,y)であるとする。平滑化あるいはぼかしと呼ばれるフィルタ処理は入力画像P1の注目画素P1(x,y)に関して、周りの画素の重みつき合計を求めて出力画像P1aとする処理である。例えば、横方向に2×N1+1個、縦方向に2×N1+1個の画素に着目し、数1を用いて注目画素P1に対して出力画像P1aを計算する。
ここで、F(x,y)は重み係数であり、カーネルとも呼ばれる。また、カーネルの大きさはカーネルサイズとも呼ばれる。全ての係数が同一となる移動平均フィルタを用いれば、計算時間が短く、かつ良好な平滑化結果が得られる。例えば、移動平均フィルタのカーネルサイズが3×3である場合、そのフィルタの各係数は1/9となる。なお、注目画素P1(x,y)近傍の重みを大きくした加重平均フィルタ(例えば、ガウシアンフィルタ)を用いても良い。
移動平均フィルタを用いた平滑化処理結果を画像P1aとして図7に示す。ハイパスフィルタ処理は、元の画像P1と平滑化画像P1aとの差分を取る処理である。ハイパスフィルタ処理は数2によって表される。
ハイパスフィルタ処理の結果を画像P2として図8に示す。本実施の形態では、カーネルサイズは、概ね2×N1+1=B0×COS(γ)×3を満たすように設定している。ここで、γは電子ペン10が許容する最大傾斜角度である。電子ペン10が表示面21に対して最も傾いた状態において、ブラックライン40の間隔B1は、B1=B0×COS(γ)となるので、その3倍程度のカーネルサイズを選択するようにしている。例えばγ=45°まで許容される場合には、B0が8ピクセルであるから、N1=7前後が適切な数値となる。このようにカーネルサイズを選択すれば、ブラックライン40の影響を受けずに、輝度ムラの影響を軽減できる。
[2−2−2.ローパスフィルタ処理(S102)]
次に、ハイパス処理を行った画像P2から、ブラックライン40を消去する目的で、ドットマーク位置検出部15はローパスフィルタ処理を行う。ローパスフィルタ処理は先に述べた平滑化処理そのものであり、数3によって表される。
ここで、数式2と同様にF(x,y)は重み係数である。全ての係数が同一となる移動平均フィルタを用いれば、計算時間が短く、かつ良好な平滑化結果が得られる。本実施の形態では、カーネルサイズは、概ね2×N2+1=B0×COS(γ)を満たすように設定している。電子ペン10が表示面21に対して最も傾いた状態において、ブラックライン40の間隔B1は、B1=B0×COS(γ)となるので、それと同程度のカーネルサイズを選択するようにしている。例えばγ=45°まで許容される場合には、B0が8ピクセルであるから、N2=2前後が適切な数値となる。このようにカーネルサイズを選択すれば、ドットマーク50は残したまま、ブラックライン40を概ね消去できる。
[2−2−3.ローパスフィルタ処理の繰り返し(S103)]
図8の画像P2に対して、数式3に示すローパスフィルタ処理を施した結果を画像P3として図9に示す。図9を見ると、ブラックライン40は薄くなっているがまだ残っている。
次にS103において所定の回数まで、ドットマーク位置検出部15は数式3のローパス処理を繰り返し実行する。ドットマーク位置検出部15は所定回数の処理を実施した後、次のS104の処理に進む。
数式3のローパス処理を合計で5回実施した結果を画像P4として図10に示す。ブラックライン40は概ね消去されている。ただし、ドットマーク50は薄くなっているが残っている。
さらに数式3のローパス処理を合計で7回実施した結果を画像P5として図11に示す。P5の画像においてもドットマーク50は残っている。ステップS103において判定に用いる所定回数は、ブラックライン40の消去に最低限度必要な回数(例えば5回)よりも、さらに多い回数(例えば7回)に設定すればよい。これにより、ブラックライン40を確実に消去できる。
また、数式3のカーネルサイズを、2×N2+1=B0×COS(γ)を満たすように設定しているので、ドットマーク50は残っている。なぜなら、ドットマーク50は縦横約6ピクセルのサイズを有しており、ドットマーク50のサイズはブラックライン40の太さ約2ドットに対して3倍程度大きいためである。換言すれば、ドットマーク50の空間周波数が、ブラックラインの空間周波数に比べて、3倍程度低くなるからである。
[2−2−4.輝度補正処理(S104)]
数式3のローパス処理を7回実施した図11の画像P5を見ると、ドットマーク50は未だ確認できる。しかしながら、画像全体としてはコントラストが非常に低くなっている。このため、ドットマーク位置検出部15は各画素の輝度を補正する。具体的には、ドットマーク位置検出部15は画像P5の各画素の輝度P5(x,y)に数式4に従って輝度に関する補正処理を施す。数式4はダイナミックレンジの調整のために用いられる。
ここでP5maxおよびP5minは、画像P5における全画素中の輝度の最大および最小値である。また、各画素の輝度は8bitで表現する。すなわち、0(黒)から255(白)までの数値により輝度が表現される。数式4による輝度に関する補正処理を施した結果を画像P6として図12に示す。輝度の最大値と最初値との差が小さい場合でも、輝度レンジいっぱいにダイナミックレンジが拡大され、図11よりもドットマーク50の形状を鮮明に確認できる。
[2−2−5.適応的二値化処理(S105)]
次にドットマーク50の位置を検出するための前処理として、ドットマーク位置検出部15は適応的二値化処理を実施する。適応的二値化処理とは、閾値を場所に応じて変化させて二値化処理を行うことである。より具体的には数式5を用いて適応的二値化処理がなされる。
数式5に示すT(x,y)は閾値を表す。この閾値とP6(x,y)の輝度値とを比較して二値化処理がなされる。ここで、Tcは予め定めた固定値である。またF(x,y)は重み係数である。例えば、F(x,y)のフィルタとしては、全ての係数が同一となる移動平均フィルタを用いればよい。
本実施の形態では、カーネルサイズに関しては、概ね2×N3+1=B0×COS(γ)×2を満たすように設定している。F(x,y)のカーネルサイズは、S101のハイパスフィルタ処理におけるカーネルサイズ2×N1+1と、S102のローパスフィルタ処理におけるカーネルサイズ2×N2+1との平均値に設定している。S101のハイパスフィルタ後に、S102のローパスフィルタ処理を施しているので、いわばバンドパスフィルタ処理と同様の効果を得ることができる。このバンドパスフィルタの中心周波数に相当するカーネルサイズを選択すれば、適応的二値化処理を最も有効に実施することができる。
電子ペン10が最も傾いた状態において、ブラックライン40の間隔B1は、B1=B0×COS(γ)となるので、その2倍程度のカーネルサイズを選択する。例えばγ=45°まで許容される場合には、B0が8ピクセルであるから、N3=5前後が適切な数値となる。
数式5に示す閾値を用いて、適応的二値化処理を図12の画像P6に施した結果を画像P7として図13に示す。輝度に関する補正処理後の画像P6(図12)においても、画像の左側と右側でドットマーク50のコントラストには違いが見られる。画像の右側のコントラストが左側のコントラストに比べて高い。しかしながら、適応的二値化処理後の図13の画像P7を見ると、画像の左側でも右側でもほぼ同一サイズの黒い円形領域として、ドットマーク50を正しく検出できていることが確認できる。
[2−2−6.中心位置検出処理(S106)]
次に、ドットマーク位置検出部15は、二値化処理後の画像P7における、ドットマーク50の中心位置V1を求める。
初めにドットマーク位置検出部15は適応的二値化処理後の画像P7に、ラベリング処理を行う。次に、ドットマーク位置検出部15は同一ラベルを有する黒の領域に関する面積重心位置を求め、面積重心位置を各ドットマーク50の中心位置V1とする。この一連の処理が異なるラベルを有する黒の領域ごとに繰り返されることにより、画像に含まれる黒領域全てについてドットマーク50の中心位置V1が求まる。
また、ドットマーク位置検出部15は、ドットマーク50の中心位置V1を求めるときに、黒領域の面積も同時に判定する。領域の面積が所定値以下の場合には、ドットマーク位置検出部15は、その黒領域をノイズとして判定する。例えば、ドットマーク位置検出部15は、黒領域の面積が8ピクセル以下の場合には、その黒領域をノイズと判定する。この場合、ドットマーク位置検出部15は黒領域をドットマーク50とは見なさないので、面積重心位置も求めない。
上述した処理により求まるドットマーク50の中心位置V1の位置を画像上に×印で表示した画像P8を図14に示す。図13における黒領域のうち、面積が小さい黒領域41はノイズと判定される。よって、図14においては黒領域41の面積重心位置に対応した位置には、×印は表示されない。
また別の手法として、ドットマーク位置検出部15は、二値化処理後の画像P7の白と黒の境界部を閉じた輪郭として検出してもよい。ドットマーク位置検出部15は閉じた輪郭を囲う円や長方形の中心位置を求めて、それをドットマーク50の中心位置V1とすればよい。あるいは、ドットマーク位置検出部15は閉じた輪郭の画素位置に沿った線積分を行い、その結果を中心位置V1としてもよい。なお、閉じた輪郭を囲う円や長方形のサイズ(直径や辺の長さ)、あるいは輪郭を構成する画素数などが所定値以下の場合には、その領域はノイズと判定すればよい。
本実施の形態では、画像P8の左上を原点とするピクセル座標系(x,y)を定義する。検出したドットマーク50の総数がM個である場合、K番目(0≦K<M)のドットマーク50のピクセル座標系における座標(x,y)を(V1[K]x,V1[K]y)と表記する。
[2−2−7.ドットマーク位置検出部15の効果]
以上のように本実施の形態において、ドットマーク位置検出部15は、ブラックライン40の間隔B0に基づいて、適切なカーネルサイズN1,N2,N3を決定する。これにより、S101のハイパス処理部においては、ブラックライン40の影響を受けずに、輝度ムラの影響を軽減できる。
また、S102のローパスフィルタ処理を、S103において予め定めた回数まで繰り返すことによって、ブラックライン40だけを消去し、ドットマーク50を残すことができる。
また、S105の適応的二値化処理においては、バンドパスフィルタの中心周波数に対応したカーネルサイズが設定されているので、ドットマーク50の黒領域を含む画像を正確に二値化画像に変換できる。この結果、電子ペン10が傾斜し、回転した場合であっても、ブラックライン40の影響を受けることなく、ドットマーク50のピクセル座標系(x,y)における位置V1を正確に検出できる。
[2−3.格子位置設定部16の動作]
次に、図15〜25を参照して格子位置設定部16の動作を説明する。
図15は、格子位置設定部16の動作を示すフローチャートである。
以下、このフローチャートに従って格子位置設定部16の各動作を順に説明する。図14の画像P8に×印で示したように、ドットマーク50の位置V1は既に検出できている。格子位置設定部16は、総数がM個の複数のドットマーク50の中から、ドットパターンを構成する、例えば6×6個の格子状に配置されたドットマーク50を選定する。6×6個の格子の方向は、表示面21の水平・垂直方向と一致している。すなわち、6×6個の格子の方向は図1に示すワールド座標系(X,Y)の方向と一致している。本実施の形態では、図1に示すように表示面21の左上を原点とする座標系(X,Y)を定義する。この座標系をワールド座標系(X,Y)と称する。
電子ペン10が任意の方向に傾斜し、回転した場合には、6×6個の格子の方向は図14に示すピクセル座標系(x,y)の方向と一致しない。このため、ドットマーク50の位置V1の検出結果である図14の画像P8からは、格子位置設定部16は表示面21のワールド座標系(X,Y)の方向を判定できない。
本実施の形態では、格子位置設定部16は、表示面21のワールド座標系におけるX軸方向を判定するために、ブラックライン40の回転角度を以下のS201〜S204の処理により検出する。
[2−3−1.処理対象領域の選択(S201)]
図16は、ハイパス処理後の画像P2を3×3の9領域に分割した図である。本実施の形態では、画像の水平方向に対してブラックライン40は、時計周りを正とする方向にθ≒−29°回転しているとする。
ブラックライン40の回転角度を検出するに際し、格子位置設定部16はS101のハイパス処理後の画像P2を利用する。画像P2では、ブラックライン40のコントラストが最も高くなるからである。格子位置設定部16はこの画像P2の全画素に対して処理を行う必要はないので、初めに処理対象領域を選択する。
格子位置設定部16は、3×3の9個に分割した各領域に含まれる全ての画素の輝度ヒストグラムを求め、その分散値を計算し、コントラストの良否を判定することができる。図16の画像P2においては、右下の領域42のコントラストが最も高い。また、領域42は最も明るい領域でもある。
3×3の9領域に関する、すべての画素の輝度平均値を計算すれば、各領域の明るさは容易に判定できるので、格子位置設定部16は各領域の輝度平均値に従って処理対象領域を選択することができる。
本実施の形態においては、照明部11としてLED素子を電子ペン10の筐体内部における先端の左右に配置しており、左右のLED素子が交互に発光する。
図16の画像P2は、領域42に最も近い右側のLED素子だけを発光させた状態で取得した画像である。このため、領域42が最も明るく、領域42のコントラストが最も高くなっている。
これに対して、左側のLED素子だけを発光させた場合には、左下の領域43が最も明るくなる。この場合には、格子位置設定部16は領域43を処理対象領域として選定すればよい。このように、格子位置設定部16は、照明部11の発光条件(どのLED素子を発光させるのかなど)に応じて、処理対象領域を事前に選定することが可能である。
あるいは、左右のLED素子を同時発光させる場合には、格子位置設定部16は中央下側の領域44を処理対象領域として選定することもできる。
処理対象領域が選定された後、格子位置設定部16は3×3程度のカーネルサイズのフィルタを用いて平滑化処理を行う。S101のハイパスフィルタ処理によって生じた(ごま塩状の)ノイズを除去することが目的である。従って、例えばメディアンフィルタを用いることができる。格子位置設定部16は選定した処理対象領域にのみ平滑化処理を行えばよい。
[2−3−2.x方向輝度勾配計算(S202)]
次に、格子位置設定部16は、処理対象領域(領域42)での各画素に関するピクセル座標系のx方向の輝度勾配を、ソーベルフィルタを用いて計算する。ソーベルフィルタにより、空間内の1次微分係数が求まる。x方向の輝度勾配P2x(x,y)は、数式6を用いて算出される。
数式6においては、重み係数F(x,y)を行列形式で表記し、数式7では、重み係数F(x,y)の各成分を展開して表記している。
[2−3−3.y方向輝度勾配計算(S203)]
次に、格子位置設定部16は処理対象領域(領域42)での各画素に関するピクセル座標系のy方向の輝度勾配を、ソーベルフィルタを用いて計算する。y方向の輝度勾配P2y(x,y)は、数式8を用いて算出される。
[2−3−4.回転角度ヒストグラム作成(S204)]
次に、格子位置設定部16は、数式6および数式8で定めたx方向とy方向の2方向の輝度勾配から、画素P2(x,y)における回転角度S2(x,y)を数式9を用いて計算する。
格子位置設定部16は、処理対象領域(領域42)の各画素に関する回転角度S2(x,y)を計算した後、回転角度のヒストグラムを生成する。ヒストグラムのビン幅は、例えば1°で十分である。
数式9から、x方向およびy方向輝度勾配の絶対値の比率だけを見た場合、x方向およびy方向輝度勾配のそれぞれの絶対値の大きさとは無関係に、回転角度S2(x,y)の計算結果が同じになってしまうことがある。
本実施の形態では、これを回避するために、格子位置設定部16は、重み付けヒストグラムを求める。より具体的には、格子位置設定部16は、回転角度S2(x,y)が含まれるビンに、数式10に示すx方向、y方向輝度勾配のユークリッド距離(S3の値)を累積(投票)する。
上記の重み付けヒストグラムによれば、回転角度S2(x,y)の計算結果の信頼性が低い画素の、対応するビンへの投票値を小さくすることができ、回転角度S2(x,y)の計算結果の信頼性が高い画素の、対応するビンへの投票値を大きくすることができる。この結果、信頼性の高い画素における回転角度S2(x,y)の計算結果がヒストグラムに反映される。
図17は上記の処理により得られた重み付けヒストグラム45を示す。図17においては、横軸は−90°〜90°の範囲に設定した回転角度θを示し、1°単位のビンにより分割されている。縦軸は重み付の頻度(累積結果)を示している。重み付けヒストグラム45での重み付頻度が最大となるビン位置は位置46であり、位置46の回転角度はθ=−35°となる。これに対して、重み付けヒストグラム45の中心値47では、回転角度はθ=−29°となる。この場合、重み付けヒストグラム45の形状から明らかなように、重み付けヒストグラム45の中心値47における回転角度θを、ブラックライン40の回転角度として採用すればよい。
なお、本実施の形態では、数式6、8、9、10の計算は、領域42の各画素についてのみ実施すると説明したが、本開示はこれに限定されない。格子位置設定部16は領域42に含まれる全ての画素について上記計算を行ってもよい。あるいは、格子位置設定部16は領域42に含まれる画素を縦および横方向に1画素毎に計算してもよい。
[2−3−5.ドットマーク位置の回転処理(S205)]
次に、格子位置設定部16は、図14に示した画像P8に示した総数M個のドットマーク50の中心位置V1を−θだけ回転した位置V2を求める。格子位置設定部16は、ブラックライン40の回転角度θに対して、その回転角度を打ち消す方向に画像P8を回転させる。具体的には、格子位置設定部16は数式11の計算を行う。
ここで、Rは回転角度−θと回転中心位置から定まる2×3のアフィン変換行列である。回転後のドットマーク50の中心位置V2の位置を画像上に×印で表示した画像P9を図18に示す。
[2−3−6.ドットマークの選定(S206)]
図18においては、ピクセル座標系のx軸方向(図の水平方向)が、ブラックライン40の方向に一致する。すなわち、ピクセル座標系のx軸方向は表示面21のワールド座標系のX軸方向と一致する。
以下の手順により、格子位置設定部16は、ドットパターンを構成する6×6個の格子状に配置されたドットマーク50を選定する。ワールド座標系のX軸方向にI=0,1,2,3,4,5、Y軸方向にJ=0,1,2,3,4,5となる6×6個の2次元マトリックスを考える。格子位置設定部16は2次元マトリックスの各要素に当てはまるドットマーク50を選定する。
初めに、格子位置設定部16は、図18の画像P9に示したM個のドットマークの中から、画像P1あるいはP8の中央に最も近いドットマーク51を図19のように選定する。なお、以降の説明においては、選定済みのドットマーク50を明示するために、選定済みのドットマーク50の×印を大きな○印で囲んで表示する。
このドットマーク51の位置は、画像P1あるいはP8の中央位置から、若干左下方向にずれているので、ドットマーク51の位置にはI=2、J=3の番号を付与する。そして、このドットマーク51の位置を(V2[I,J]x,V2[I,J]y)あるいは(V2[2,3]x,V2[2,3]y)とI,Jの番号を付して表記する。なお、ドットマーク51の位置が画像P1あるいはP8の中央位置よりも右上であった場合には、ドットマーク51の位置にはI=3,J=2の番号を付与すればよい。
このようにすれば、画像P1あるいはP8の中央部に最も近い6×6個のドットマーク50の組を選定できる。
次に、格子位置設定部16はドットマーク51の右隣のドットマーク52を選定する。より具体的には、格子位置設定部16は以下の方法によりこのドットマーク52の選定を行う。
格子位置設定部16は、ドットマーク51の右側に存在するドットマーク50だけに絞り込み、さらに、ドットマーク51と結ぶ線分とx軸方向とのなす角度の絶対値が所定角度(例えば45°)以下となるドットマーク50に絞り込む。その中から、格子位置設定部16はドットマーク51と結ぶ線分の距離が最小となるドットマーク50をドットマーク52として選定する。
格子位置設定部16はドットマーク52には、I=3の番号を付与する。同様にして、格子位置設定部16はさらに右側にドットマーク53、ドットマーク54を選定し、I=4,5の番号をそれぞれに付与する。
格子位置設定部16はドットマーク51の左隣のドットマーク55、さらに左側のドットマーク56を選定し、それぞれにはI=2,1の番号を順に付与する。垂直方向には移動していないので、全てJ=3が付与される。
次に格子位置設定部16は、図20に示すように、ドットマーク56よりも下側のドットマーク57を選定する。この選定方法は以下のとおりである。格子位置設定部16は、ドットマーク56の下側に存在するドットマーク50だけに絞り込み、さらに、ドットマーク56と結ぶ線分とy軸方向とのなす角度の絶対値が所定角度(例えば45°)以下となるドットマーク50に絞り込む。その中から、格子位置設定部16はドットマーク56と結ぶ線分の距離が最小となるドットマーク50をドットマーク57として選定する。
ドットマーク57には、I=0、J=4の番号が付与される。そして、格子位置設定部16は、ドットマーク57から右側にドットマーク58、ドットマーク59、ドットマーク60、ドットマーク61、ドットマーク62を順に選定する。これらのドットマークには、I=1,2,3,4,5、J=4の番号が付与される。
上述したとおり、図20におけるピクセル座標系のx軸方向(図の水平方向)は、ブラックライン40の方向に一致しているので、表示面21のワールド座標系のX軸方向と一致する。しかしながら、表示面21のワールド座標系Y軸の方向は、ピクセル座標系のy軸方向とは一致していない。
実際、ドットマーク56よりも下側のドットマーク50の候補として、ドットマーク57とドットマーク58の2つが存在する。このため、格子位置設定部16は、隣り合ったJ方向のドットマーク間(J=3とJ=4)の左右ずれのチェックを行う。本実施の形態では、格子位置設定部16は数式12を用いて3つの値Sx1,Sx2,Sx3を計算する。
これら3つの値Sx1,Sx2,Sx3は、J方向のドットマーク間(J=3とJ=4)のピクセル座標系におけるx軸方向座標の差分の総和から求まる。
I方向の番号が同じ4点について、x軸方向座標の差分の総和がSx2である。Sx1とSx3は、それぞれI方向の番号の組み合わせを右または左方向にずらしたドットマーク間の、ピクセル座標系におけるx軸方向座標の差分の総和である。
格子位置設定部16は、3つの値Sx1,Sx2、Sx3を比較して、最小となるのがSx2であった場合には、次の選定作業(図22に示す選定作業)に進む。左右ずれが発生していないためである。
一方、Sx3が最小となった場合には、J=4の6個のドットマーク57,58,59,60,61,62は、左側にずれている。この場合、格子位置設定部16は、図21に示すように、ドットマーク57を選定から除外し、さらにドットマーク62の右側のドットマーク63を新たに選定する。このようにして、格子位置設定部16は、新たに6個のドットマーク58,59,60,61,62,63に対して、I=0,1,2,3,4,5の番号を付与した後、次の選定作業に進む。
Sx1が最小となった場合は、J=4の6個のドットマーク57,58,59,60,61,62は、右側にずれている。この場合、格子位置設定部16は、Sx3が最小となった場合の処理とは逆にドットマーク62を除外し、ドットマーク57の左隣のドットマーク(不図示)を新たに選定する処理を行えばよい。
次に、格子位置設定部16は、図22に示すように、ドットマーク58から見て下側のドットマーク64を選定し、I=0、J=5の番号も付与する。そして、格子位置設定部16は、ドットマーク64から右側にドットマーク65,66,67,68,69を順に選定する。これらのドットマークには、I=1,2,3,4,5、J=5の番号が付与される。格子位置設定部16は、J=4とJ=5のドットマーク間について、数式12に示した3つの値Sx1,Sx2,Sx3を計算し、左右ずれのチェックを行う。その結果、格子位置設定部16は、左または右側にずれていると判定した場合には、J=5のドットマーク6個を再選定する。
次に、格子位置設定部16は、図23に示すように、ドットマーク56よりも上側のドットマーク70を選定し、I=0、J=2の番号を付与する。そして、格子位置設定部16は、ドットマーク70から右側にドットマーク71,72,73,74,75を順に選定する。これらのドットマークには、I=1,2,3,4,5、J=2の番号が付与される。格子位置設定部16は、J=3とJ=2のドットマーク間についても左右ずれのチェックを行い、必要ならばJ=2のドットマーク6個を再選定する。
次に、格子位置設定部16は、ドットマーク70よりも上側のドットマーク76を選定し、I=0、J=1の番号を付与する。そして、格子位置設定部16はドットマーク76から右側にドットマーク77,78,79,80,81を順に選定する。これらのドットマークには、I=1,2,3,4,5、J=1の番号が付与される。格子位置設定部16は、J=2とJ=1のドットマーク間についても左右ずれのチェックを行い、必要ならばJ=1のドットマーク6個を再選定する。
次に、格子位置設定部16は、ドットマーク76よりも上側のドットマーク82を選定し、I=0、J=0の番号を付与する。そして、格子位置設定部16は、ドットマーク82から右側にドットマーク83,84,85,86,87を順に選定する。これらのドットマークには、I=1,2,3,4,5、J=0の番号が付与される。格子位置設定部16は、J=1とJ=0のドットマーク間についても左右ずれのチェックを行い、必要ならばJ=0のドットマーク6個を再選定する。
以上のようにして、格子位置設定部16は、ドットパターンを構成する6×6個の格子状に配置されたドットマーク51,52,53・・・・・87を選定する。これらのドットマークの位置は、画像P9に示した回転後のドットマーク50の中心位置V2を利用して選定される。
ドットマーク50の回転前後の位置関係は、数式11で定義されているので、回転後のドットマーク50の中心位置V2を回転前のドットマーク50の中心位置V1に変換できる。よって、回転前のドットマーク50の座標V1についても6×6個のマトリックスに対応した座標値を選定できたことになる。この結果、図24に示すような関係が得られる。例えば、I=2、J=3の番号が付与されているドットマーク51に関する、回転前の画像P8における位置V1として、(V1[I,J]x,V1[I,J]y)あるいは(V1[2,3]x,V1[2,3]y)とI,Jの番号を付して表記する。
[2−3−7.格子点位置の計算(S207)]
次に、格子位置設定部16は格子点50aの位置を計算する。表示面21のワールド座標系(X,Y)において、個々のドットマーク50に対応して、第1基準線44と第2基準線45(あるいはラスター)との交点を格子点50aと呼ぶ。この格子点50aについてもドットパターンに対応する6×6個のマトリックスを考える。その座標値W1は容易に計算できる。
図25において、第1基準線44および第2基準線45を点線で示し、格子点50aの位置をグレーの○印で示す。6×6個のマトリックス状に配置された格子点51a〜87aの位置W1は、表示面21のワールド座標系(X,Y)で表記する。ワールド座標系(X,Y)の単位には、表示面21上の実寸(例えばμmやmmといった単位)を用いることができる。ただし、格子点51a〜87aの位置W1を特定する、ワールド座標系の原点は、後段の処理を考慮して、左上の格子点82aとする。以降、左上の格子点82aを原点とするワールド座標系を「格子点座標系」と称する場合がある。
第2基準線45のX軸方向の間隔をB2、第1基準線44のY軸方向の間隔をB3とすると、例えば、B2およびB3は300μmといった数値に設定され得る。図25において、左上の格子点82aを原点として(すなわちI=0、J=0として)、X軸方向(右側)にI、Y軸方向(下側)にJとなる格子点W1[I,J]の格子点座標系における座標値(W1[I,J]X,W1[I,J]Y)は、数式13を用いて計算できる。
なお、上記の説明では、格子位置設定部16は数式13を用いて格子点W1[I,J]を計算する例を説明したが、本開示はこれに限定されない。例えば、格子点W1[I,J]を示す情報が予め内部メモリ等に保持されていてもよい。
[2−3−8.格子位置設定部16の効果]
以上のように本実施の形態において、格子位置設定部16は、S201,S202,S203において、数式6および8に示すソーベルフィルタによりx方向とy方向の輝度勾配を求める。そして、格子位置設定部16はS204において両者の比から各画素における回転角度S2を計算し、その結果から重み付けヒストグラム45を求める。このため、ブラックライン40の回転角度θを精度よく計算できる。
次に、格子位置設定部16は、S205において、数式11を用いてドットマーク50の位置を角度−θだけ回転した位置V2を計算する。ピクセル座標系におけるドットマーク50の位置V2のx軸方向は、表示面21のワールド座標系のX軸方向と一致する。この結果、S206において、ドットパターンを構成する6×6個の格子状に配置されたドットマーク50を容易に選定できる。
ワールド座標系のY軸方向は不明であるが、隣り合ったドットマーク間の左右ずれチェックを行っているので、6×6個の格子状に配置されたドットマーク51,52,53,・・・・・,87を正しく選定できる。
[2−4.ドットマーク復号部17の動作]
次に、図26〜29を参照してドットマーク復号部17の動作を説明する。
図26は、ドットマーク復号部17の動作を示すフローチャートである。以下、このフローチャートに従ってドットマーク復号部17の各動作を順に説明する。
[2−4−1.相対位置初期値の設定(S301)]
まず、ドットマーク復号部17はドットマーク50の相対位置W2[I,J]の初期値を設定する。
本実施の形態では、表示面21の格子点座標系(X,Y)において、格子点50aの位置をW1[I,J]と、格子点50aに対するドットマーク50の相対位置をW2[I,J]と表記する。このドットマーク50の相対位置W2[I,J]の初期値は、例えば数式14に従って設定することができる。
[2−4−2.射影変換行列の計算(S302)]
格子点座標系(X,Y)におけるドットマーク50の位置W3[I,J]は、数式15を用いて格子点50aの位置W1[I,J]に相対位置W2[I,J]を加算して求まる。
数式14および15から、S301の段階では、W3[I,J]はW1[I,J]に一致する。
次に、ドットマーク復号部17は、ドットマーク50のピクセル座標系(x,y)における位置V1[I,J]を、上記格子点座標系(X,Y)における位置W3[I,J]に数式16に従って射影変換する。
ここで、Hは射影変換行列であり、数式17に示す3×3の行列となる。
数式16および17では、各行列は同次座標系で表現されている。ここで、左辺のcは移動倍率を表す座標である。
射影変換行列Hは、ピクセル座標系(x,y)と、格子点座標系(X,Y)との関係を記述する変換行列である。数式17に示すように、射影変換行列Hの未知定数は8個である。したがって、数式16からわかるように、4個以上のドットマーク50に対して、ピクセル座標系(x,y)における位置V1[I,J]と、格子点座標系(X,Y)における位置W3[I,J]とが既知であればHの未知定数を求めることができる。
既に、ドットパターンを構成する6×6個の格子状に配置されたドットマーク51,52,53・・・・・87は選定されている。ドットマーク復号部17は、6×6個のドットマーク50から構成されるドットパターン(I=0,1,2,3,4,5とJ=0,1,2,3,4,5)のV1[I,J]とこれに対応するW3[I,J]を用いて、最小二乗法により射影変換行列Hを計算する。
上述のとおり、数式16および17では、各行列は同次座標系で表現されている。また、左辺のcは移動倍率を表す座標である。それゆえ、数式16から射影変換行列Hを求めるには、非線形の最小二乗法が必要になる。最小二乗法では一般的に目的関数が用いられる。本実施の形態では、数式18に示す関数を目的関数とする。
ここでG[I,J]は、ピクセル座標系におけるドットマーク50の位置V1[I,J]を、射影変換行列Hを用いて格子点座標系に射影変換した結果を示す。数式18に示した目的関数は、射影変換結果の残差の二乗和である。
この目的関数の最小化はラグランジェの未定乗数法を用いた固有値を解くことにより行う。また、ニュートン法などにより収束解を求める方法は一般的によく知られている。このようにして、数式18に示す目的関数が最小になるように、すなわち射影変換結果の残差の二乗和が最小になるように、ドットマーク復号部17は射影変換行列Hを計算する。
[2−4−3.ドットマークの射影変換(S303)]
次に、ドットマーク復号部17は、S302において計算した射影変換行列Hを用いて、ピクセル座標系(x,y)におけるドットマーク50の位置V1[I,J]を、格子点座標系(X,Y)上に実際に射影する。射影変換後のドットマーク50の位置を改めて位置W3[I,J]と表記する。W3[I,J]は数式19により求まる。
数式19により計算したドットマーク50の格子点座標系における位置W3[I,J]の一例を、図27に白の○印(51b〜87b)として表示する。また、第1基準線44および第2基準線45の交点上に等間隔に配置された格子点51a〜87aは灰色の○印として表示している。
ドットマーク50の射影変換結果である51b〜87bは、格子点51a〜87aに対していろいろな方向にずれていることがわかる。
[2−4−4.ドットマーク復号化処理(S304)]
次に、ドットマーク復号部17は、数式19により計算した射影変換後のドットマーク50の位置W3[I,J]と、格子点50aの位置W1[I,J]とを比較して、各格子点50aを基準とした各ドットマーク50の位置関係を示す相対位置情報を生成する。各ドットマーク50の相対位置情報の生成方法は、例えば図28(a)のように定義される。
以降の説明では、ドットマーク復号部17の「相対位置情報を生成する処理」を単に「復号処理」と称する。
既に説明したように、表示面21上の各ドットマーク50は、図35(a)〜(d)の何れかの配置となり、これらの配置関係が4進数によって数値化されている。これと同様に、格子点50aを基準としたドットマーク50の位置関係(相対位置関係)がわかれば、各格子点50aを基準とした点各ドットマーク50の位置関係を4進数に数値化できる。
以降、ドットマーク復号部17の動作の説明では、ドットマーク復号部17の「復号する」処理は「異なる符号を割り当てることにより相対位置関係を数値化する」処理を意味する。
ドットマーク復号部17が復号処理を実行するには、ドットマーク50が格子点50aに対して、どの方向にずれているかがわかればよい。
数式19により計算した射影変換後のドットマーク50の位置W3[I,J]と、格子点50aの位置W1[I,J]との差分(DX,DY)を、数式20により定義する。
また、差分(DX,DY)と、各ドットマーク50の相対位置情報Q[I,J]との関係を、数式21により定義する。
再び、図27を参照する。ピクセル座標系のドットマーク82は、左上隅の82bの位置に射影変換される。この場合、ドットマーク82bは格子点82aに対して右側にシフトしているので、Q[0,0]=2に復号される。その下のドットマーク76bは、格子点76aに対して左下方向にシフトしているが、|DX|≦|DY|かつDY≧0であるので、Q[0,1]=3に復号される。
また、ドットマーク75aは、格子点75aに対して右上方向にシフトしているが、|DX|≦|DY|かつDY<0であるので、Q[5,2]=0に復号される。以上のようにして、ドットマーク復号部17は、ドットマーク50の射影変換結果である51b〜87bの位置を、格子点51a〜87aの位置と比較して、復号処理を実行する。
図28(b)は、6×6個のドットマーク50から構成されるドットパターンの復号処理を実行した結果を示す。
[2−4−5.相対位置更新処理(S305)]
次に、ドットマーク復号部17は、数式21の定義に従って復号した各ドットマーク50の相対位置情報Q[I,J]に応じて、格子点座標系における各ドットマーク50の相対位置W2[I,J]を更新する。
ドットマーク50の位置符号化方法は、図28(a)に示すとおりである。復号された0,1,2,3の4つの数字に従って、ドットマーク50を4方向にシフトさせる。X軸方向のシフト量B4と、Y軸方向のシフト量B5は、例えば、B4=B2/6およびB5=B3/6と予め決めておく。ここで、B2とB3とは第2基準線45のX軸方向および第1基準線44のY軸方向のそれぞれの間隔である。例えばB2とB3とを300μmという数値に設定した場合には、B4とB5とは50μmとなる。相対位置情報Q[I,J]と相対位置W2[I,J]の座標値の更新との関係は、数式22により定義される。
ドットマーク復号部17は各ドットマーク50の相対位置W2[I,J]を数式22に従って更新する。図29には、数式15に従ってドットマーク50の位置W3[I,J]を計算した結果を、白の○印として表示している。
ここで、図27と図29とを比較して見る。図27を見ると、ドットマーク50の射影変換結果である51b〜87bは、計算(丸め)誤差や検出誤差などの影響により、第1基準線44または第2基準線45上に必ずしも存在していない。例えばドットマーク55bは、格子点55aに対して右上方向にずれている。
これに対して、図29のドットマーク55cは、X軸方向の第1基準線44上に存在し、Y軸方向にはずれていない。
また、図27においては、ドットマーク51b〜87bと格子点51a〜87aとの距離は一定でない。一方、図29ではドットマーク51c〜87cと格子点51a〜87aとの距離は一定となる。
図27におけるドットマーク50の射影変換結果は、計算(丸め)誤差や検出誤差などの影響を受けている。これに対して、数式21に従って各ドットマーク50を復号し、数式22に従って相対位置W2[I,J]を更新した結果を用いて数式15により求めた51c〜87c(図29)の位置は、ドットマーク50が本来存在すると期待される位置になる。
[2−4−6.処理の繰り返し(S306)]
S305において、ドットマーク50が格子点座標系(X,Y)において本来存在すると期待される位置が明らかになったので、この結果を用いてS305の射影変換行列Hの計算精度をさらに追及する。具体的には、ドットマーク復号部17はS302からS305の処理を繰り返し実行する。
S301では相対位置W2[I,J]の初期値は、全てゼロに設定していた。このため、数式15に従って計算したドットマーク50の位置W3[I,J]の初期値は、格子点50aの位置W1[I,J]と完全に一致する。S302において求めた射影変換行列Hは、図24に示すピクセル座標系(x,y)におけるドットマーク51〜87から、図25に示す格子点座標系(X,Y)における格子点51a〜87aへの射影変換行列となる。
繰り返し処理では、ドットマーク復号部17はS305において相対位置W2[I,J]を更新し、数式15に従って位置W3[I,J]を再計算して、S302において射影変換行列Hを再計算する。これは、図24に示すピクセル座標系(x,y)におけるドットマーク51〜87から、図29に示す格子点座標系(X,Y)におけるドットマーク51c〜87cへの射影変換行列を求めることを意味している。本来ドットマーク50が存在すると期待される位置へ変換するための射影変換行列が計算できる。
以上のように、ドットマーク復号部17がS302からS305の処理を繰り返し実行すれば、より変換精度の高い射影変換行列Hを得ることができる。
ステップS306では所定の条件が満たされたか否かが監視されている。例えば、所定の条件は繰り返し数とすることができる。繰り返し数は、予め定めておけばよく、例えば5回実行したなら終了とすればよい。あるいは、相対位置情報が所定の範囲に収束することを所定の条件としてもよい。例えば繰り返し処理の前後でS304におけるドットマーク50の相対位置情報Q[I,J]が変化していなければ終了とすればよい。このように、所定の条件が満たされるまで繰り返し実行することにより、射影変換行列Hの変換精度はより高くなる。
[2−4−7.ドットマーク復号部17の効果]
以上のように本実施の形態において、ドットマーク復号部17は、各格子点50aを基準とした各ドットマーク50の相対位置W2[I,J]の初期値を設定した後(ステップS301)、ピクセル座標系のドットマーク50の位置V1[I,J]と、相対位置W2[I,J]を各格子点50aの位置W1[I,J]に加算した位置W3[I,J]とに基づいて、射影変換行列Hを算出する算出処理(ステップS302)と、ドットマーク50の位置をピクセル座標系から格子点座標系に射影変換行列Hを用いて変換する変換処理(ステップS303)と、変換後のドットマーク50の位置W3[I,J]と格子点50aの位置W1[I,J]とに基づいて相対位置情報を生成する生成処理(ステップS304)と、相対位置W2[I,J]を相対位置情報に従って更新する更新処理(ステップS305)を、所定の条件が満たされるまで、順次、繰り返し実行する。
その結果、ドットマーク復号部17は相対位置W2[I,J]を更新しつつ、射影変換行列Hを繰り返し計算するので、より変換精度の高い射影変換行列を計算できる。
射影変換行列Hは、ピクセル座標系(x,y)と、格子点座標系(X,Y)との関係を記述する。換言すれば、射影変換行列Hは表示面21と撮像素子14の撮像面との平面間の位置関係を表現している。
撮像素子14は電子ペン10の構成要素である。表示面21に対する電子ペン10の傾き、回転および位置を、射影変換行列Hは表現している。したがって、この射影変換行列Hを精度よく求めることができれば、電子ペン10の傾きや回転の影響を正確に考慮して、電子ペン10の位置情報を精度よく計算できる。なお、電子ペン10の位置情報は後述の位置情報計算部18によって算出される。
[2−5.位置情報計算部18の動作]
最後に、図30および31を参照して位置情報計算部18の動作を説明する。
図30は、位置情報計算部18の動作を示すフローチャートである。以下、このフローチャートに従って位置情報計算部18の各動作を順に説明する。
[2−5−1.ドットマーク位置情報計算(S401)]
ドットマーク復号部17のS304において求めた各ドットマーク50の相対位置情報Q[I,J]は、位置情報計算部18に送られる。6×6個のドットマーク50から構成されるドットパターンの相対位置情報が、図28(b)のようなマトリックス形式で送られる。
既に説明したように、ドットパターンは表示面21上の位置に応じて全て異なっている。ドットパターンを特定することにより、表示面21上におけるその位置を特定できる。
位置情報計算部18は相対位置情報Q[I,J]を利用してドットマーク50の位置情報を求める。例えば、位置情報計算部18は6×6の36桁の4進数に符号化されている位置情報を復号すればよい。情報パターンへの符号化方法や復号化方法として、公知の手法が用いられる。例えば特表2003−511762に開示されている方法を利用すればよい。
このようにして、位置情報計算部18は複数のドットマーク50の相対位置情報Q[I,J]から、ドットマーク50の位置情報を得る。具体的には、位置情報計算部18は図25に示す左上格子点82aのワールド座標系(X,Y)における座標値(Xg,Yg)を得る。
[2−5−2.ペン先位置計算(S402)]
電子ペン10を操作するユーザは、ペン先部32の最先端部を表示面21上に接触させて文字入力などを行う。ユーザからの文字入力などを表示面21に表示させるためには、ペン先部32のペン先位置35が、表示面21のどこにあるのかを把握しておく必要がある。
図31に示すように、位置情報計算部18はペン先位置35の結像相当位置36を求め、ピクセル座標系(x,y)における結像相当位置36の位置(xp,yp)を予め計算しておく。位置情報計算部18は、ペン先位置35が対物レンズ13を介して撮像素子14の撮像面上に結像する位置を結像相当位置36として計算する。結像相当位置36は、対物レンズ13の焦点距離や撮像素子14との位置関係、あるいはペン先33の長さなどから一意に定まる。
なお、結像相当位置36は撮像素子14の撮像範囲に結像する必要はない。実際の計算結果としては、撮像素子14の画素サイズが(240、240)に対して、例えば(xp,yp)=(120、−569)となる。この結像相当位置36は、電子ペンが傾き回転しても、ピクセル座標系(x,y)においては変化しない。
ペン先位置35の格子点座標系の位置(Xp,Yp)は、ドットマーク復号部17において計算済みの射影変換Hを用いて、数式23により計算できる。
ここで、数式23により求まる格子点座標系の位置(Xp,Yp)は、図25に示す左上格子点82aを原点としているので、実際の表示面21上のペン先位置35のワールド座標での絶対的な座標は、(Xp+Xg,Yp+Yg)となる。
[2−5−3.位置情報計算部18の効果]
以上のように本実施の形態において、位置情報計算部18は、ペン先部32のペン先位置35が撮像素子14の撮像面に結像する結像相当位置36と、射影変換行列Hと、格子点82aのワールド座標系(X,Y)における座標値(Xg,Yg)とに基づいて、表示面21上におけるペン先部32のペン先位置35の位置を計算できる。したがって、手書き入力の途中で電子ペンの傾きや回転が変化した場合であっても、位置情報計算部18は、傾きや回転といった電子ペンの状態の変化を反映させた射影変換行列Hを利用して、ペン先位置35の正確な位置を計算できる。
なお、本実施の形態では、ワールド座標系、ピクセル座標系および格子点座標系の各座標系において左上を原点とする例を示したが、本開示はこれに限定さない。ドットマーク50の位置V1[I,J]を、変換行列を用いて撮影画像中から表示面21上に変換できればよく、座標系は任意に設定し得る。上記の各座標系の原点位置は任意に定めることができるし、上記の座標系以外の座標系を定義してもよい。
[3−1.効果等]
以上のように、本実施の形態においては、手書き入力システム100は、表示面21上の多数のドットマークの一部である複数のドットマーク50を読み取ることにより、表示面21上の位置を特定する。複数のドットマーク50は、複数の格子点50aを基準として表示面21上に形成され、表示面21上の位置は複数のドットマーク50によって符号化されている。手書き入力システム100は、複数のドットマーク50を撮像する撮像部12と、撮像画像中の複数のドットマーク50の位置を撮像画像のピクセル座標系における位置として検出するドットマーク位置検出部15と、ドットマーク位置検出部15により検出された複数のドットマークの位置および複数の格子点50aの位置に基づいて相対位置情報を生成するドットマーク復号部17であって、複数の格子点50aによってピクセル座標系とは異なる格子点座標系が規定され、相対位置情報は、複数の格子点50aを基準とした格子点座標系における複数のドットマーク50の位置関係を示し、格子点座標系における複数のドットマーク50はピクセル座標系における複数のドットマーク50に対応する、ドットマーク復号部17と、表示面21上の位置を相対位置情報に基づいて計算する位置情報計算部18とを備える。ドットマーク復号部17は、複数の格子点50aを基準とした複数のドットマーク50の相対位置の初期値を設定した後、ピクセル座標系における複数のドットマーク50の位置と、相対位置を格子点50aの位置に加算した位置とに基づいて、射影変換行列Hを算出する算出処理を実行し、複数のドットマーク50の位置をピクセル座標系から格子点座標系に射影変換行列Hを用いて変換する変換処理を実行し、変換後の複数のドットマーク50の位置と複数の格子点50aの位置とに基づいて相対位置情報を生成する生成処理を実行し、相対位置を相対位置情報に従って更新する更新処理を実行し、所定の条件が満たされるまで、算出処理、変換処理、生成処理および更新処理を順次、繰り返し実行するよう構成されている。
この結果、変換精度の高い射影変換行列Hを得ることができる。手書き入力の途中で電子ペンが傾きおよび/または回転した場合であっても、ドットマークの正確な位置情報を取得することができる。
また、ドットマーク復号部17は、繰り返し回数が例えば5回に到達するまで、算出処理、変換処理、生成処理および更新処理を順次、繰り返し実行する。または、ドットマーク復号部17は、相対位置情報の生成結果が変化しなくなるまで、算出処理、変換処理、生成処理および更新処理を順次、繰り返し実行する。
また、手書き入力システム100は、複数の格子点50aの位置を設定する格子位置設定部16をさらに備える。
また、手書き入力システム100は、表示面21上の位置を指定するペン10をさらに備え、位置情報計算部18は、ピクセル座標系のペン10の位置を射影変換行列Hを用いて変換した、格子点座標系のペン10の位置と、相対位置情報とに基づいて、表示面21上のペン10の位置を計算する。
また、本実施の形態においては、手書き入力システム100は、表示面21上の多数のドットマークの一部である複数のドットマーク50を読み取ることにより、表示面21上の位置を特定する。複数のドットマーク50は、複数の格子点50aを基準として表示面21上に形成され、表示面21上の位置は複数のドットマーク50によって符号化されている。手書き入力システム100は、複数のドットマーク50を撮像する撮像部12と、撮像画像中の複数のドットマーク50の位置を検出するドットマーク位置検出部15と、ドットマーク位置検出部15により検出された複数のドットマーク50の位置および複数の格子点50aの位置に基づいて相対位置情報を生成するドットマーク復号部17であって、相対位置情報は、複数の格子点50aを基準とした表示面21における複数のドットマーク50の位置関係を示し、表示面21における複数のドットマーク50は撮影画像中の複数のドットマーク50に対応する、ドットマーク復号部17と、表示面21上の位置を相対位置情報に基づいて計算する位置情報計算部18とを備える。ドットマーク復号部17は、複数の格子点50aを基準とした複数のドットマーク50の相対位置の初期値を設定した後、撮像画像中の複数のドットマーク50の位置と、相対位置を格子点50aの位置に加算した位置とに基づいて、変換行列を算出する算出処理を実行し、複数のドットマーク50の位置を撮像画像中から表示面21上に変換行列を用いて変換する変換処理を実行し、変換後の複数のドットマーク50の位置と複数の格子点50aの位置とに基づいて相対位置情報を生成する生成処理を実行し、相対位置を相対位置情報に従って更新する更新処理を実行し、所定の条件が満たされるまで、算出処理、変換処理、生成処理および更新処理を順次、繰り返し実行するよう構成されている。
この結果、変換精度の高い変換行列を得ることができる。手書き入力の途中で電子ペンが傾きおよび/または回転した場合であっても、ドットマークの正確な位置情報を取得することができる。
[4.他の実施の形態]
以上のように、本出願において開示する技術の例示として、実施の形態1を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、上記実施の形態1で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。
そこで、以下、他の実施の形態を例示する。
[4−1.手書き入力システム100の変形例]
図32は手書き入力システム100の変形例を示すブロック図である。以下、図2と図32を比較しながら説明する。図2に示した手書き入力システム100では、電子ペン10がドットマーク位置検出部15と、格子位置設定部16と、ドットマーク復号部17と、位置情報計算部18を備えている。しかしながら、本開示はこれに限定されない。これら構成要素の一部または全てが表示装置20側に配置されていても良い。図32に示す変形例では、ドットマーク位置検出部15は電子ペン10側に、格子位置設定部16と、ドットマーク復号部17と、位置情報計算部18は表示装置20側に配置されている。
また、実施の形態1で説明したように、各構成要素が1チップに実装されたイメージシグナルプロセッサが表示装置20側に配置されてもよい。
または、各構成要素の少なくとも1つを含むイメージシグナルプロセッサが電子ペン側あるいは表示装置20側に配置されていてもよい。このように、手書き入力システム100のブロック構成は設計仕様等により適宜決定され得る。
[4−2.S301の変形例]
ドットマーク50の相対位置W2[I,J]の初期値は、S301において数式14に示すように、全てゼロに設定した。一方、電子ペン10および手書き入力システム100の動作は、所定周期(例えば撮像素子14のフレーム時間間隔ごとに)で繰り返し実行される。従って、前回実行時の計算結果を、次回の初期値に用いることができる。S301における相対位置W2[I,J]の初期値を、前回計算時のS304における最終更新結果とすることもできる。
[4−3.S303の変形例]
実施の形態1によるS302においては、射影変換行列Hは非線形の最小二乗法により求めたが、本開示はこれに限定されない。非線形の最小二乗法の代わりに擬似逆行列による線形な最小二乗法を用いて射影変換行列Hを計算してもよい。数式16から同次座標系の移動倍率cを消去すると、数式24が得られる。
数式24の左辺と、右辺の第1項は既知であるので、擬似逆行列計算により射影変換行列Hの各要素hii(右辺の第2項)を計算できる。
非線形の最小二乗法と比べて線形な最小二乗法では以下のメリットがある。
(1)処理時間が短縮できる。(2)演算処理の負荷が軽減され、ハードウェアの回路規模も縮小できる。
また、本開示の技術はさらに、上述のドットマーク50の復号処理を規定するソフトウェア(プログラム)にも適用され得る。そのようなプログラムに規定される動作は、例えば図26や後述の図33に示すとおりである。あるいは、図4、15、26および30に示す各動作を結合させた一連の動作であってもよい。このようなプログラムは、可搬型の記録媒体に記録されて提供され得る他、電気通信回線を通じても提供され得る。コンピュータに内蔵されたプロセッサがこのようなプログラムを実行することにより、上記の実施形態で説明した各種動作を実現することができる。
[4−4.S305の変形例]
図33は、図26のドットマーク復号部17の動作フローチャートの変形例を示す。図33のフローチャートでは、ステップS307およびS308が追加されている。それ以外の処理は図26の処理と同じである。
実施の形態1によるS305の相対位置更新処理においては、6×6個のドットマーク50の相対位置W2[I,J]の座標値を数式22に従って更新した。しかしながら、本開示はこれに限定されない。一部のドットマーク50の相対位置W2[I,J]は別の数値に更新してもよいし、あるいは更新しなくてもよい。換言すれば、ドットマーク復号部17は、繰り返し回数が所定値未満であるとき、S305の相対位置更新処理の後、特定位置(4隅の12点)の相対位置の更新を無効化する無効化処理を実行する。
例えば、ドットマーク復号部17は格子状に配置したドットパターンの4隅の12点を、数式14を適用して更新してもよい。図33のステップ308に示すように、これは、S305ですべてのドットマーク50の相対位置W2[I,J]が更新された後、特定位置(4隅の12点)に関するドットマーク50の相対位置W2[I,J]の更新が無効化される、すなわちリセットされることを意味する。
図33のステップ307に示すように、このような処理は、S302からS305の繰り返し処理が所定回数に達するまでにとどめるのがよい。例えば、繰り返し処理の回数が2回未満の場合にのみドットマーク復号部17はステップ308を実行する。
また、例えば、S305の1回目の処理時には、ドットマーク復号部17は4隅の12点について数式14を適用し、他の24点については数式22を適用する。ここで、4隅の12点とは、ドットマーク58,64,65,68,69,63,76,82,83,81,86,87の12点である。図33のフローチャートによれば、4隅の12点のみステップ308を実行する。
S305の2回目の処理時には、4隅の4点に数式14を適用し、他の32点には数式22を適用する。ここで4隅の4点とは、ドットマーク64,69,82,87の4点である。図33のフローチャートによれば、2回目の処理時に4隅の4点のみステップ308を実行する。そして、3回目以降の処理では36点全てについて数式22を適用する。図33のフローチャートによれば、3回目の処理以降はステップ308を実行しない。
この考え方を拡張して、一部のドットマーク50については、計算そのものを行わない、つまりステップS302からS305をスキップさせてもよい。すなわち、S302からS305の繰り返し処理が1回目の間は、ドットマーク復号部17は4隅の12点を除いた24点を使ってステップS302からS305の全ての計算を行う。2回目の繰り返し計算時には、ドットマーク復号部17は4隅の4点を除いた32点を使って全ての計算を行う。3回目以降の繰り返し計算時には、ドットマーク復号部17は36点全てを使って計算してもよい。
ドットマーク復号部17の処理において、4隅の格子点(例えば4点)の相対位置の更新を誤ると、この誤差が射影変換行列Hの計算に大きく影響を及ぼすことになる。この結果、変換精度の高い射影変換行列Hを得ることができなくなる。
以上のように、実施の形態1におけるS305の変形例によれば、ドットマーク復号部17は、繰り返し回数が例えば2回未満であるとき、更新処理を実行した後に、複数の格子点50aのうちの特定の格子点に関する相対位置の更新処理を無効化する無効化処理をさらに実行する。
また、格子点座標系の複数の格子点50aはm×m個の格子状に配置され、特定の格子点はm×m個の格子の4隅の点である。
この結果、図33に示すフローチャートによれば、繰り返し回数が所定値未満(例えば1回目)のときはS305で更新された4隅の格子点の相対位置はステップ308において無効化される。これにより、所定の繰り返し回数中は4隅の格子点の相対位置は初期値の状態のままとなる。この結果、射影変換行列Hの計算誤差を抑制でき、変換精度の高い射影変換行列Hを得ることができる。
以上のように、本開示における技術の例示として、実施の形態1を説明した。そのために、添付図面および詳細な説明を提供した。
したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
また、上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
本開示は、電子ペンおよびこれを用いた手書き入力システムに適用可能である。具体的には、ノートPCや携帯型タブレットなどの電子機器に適用可能である。また、紙の上にペンで入力した筆跡をデータとして出力する電子ペンにも、本開示は利用可能である。さらに、本開示は液晶ディスプレイを含む電子黒板システムにも適用可能である。
10 電子ペン
11 照明部
12 撮像部
13 対物レンズ
14 撮像素子
15 ドットマーク位置検出部
16 格子位置設定部
17 ドットマーク復号部
18 位置情報計算部
19 送信部
20 表示装置
21 表示面
22 受信部
23 制御部
24 表示部
31 制御部
32 ペン先部
35 ペン先位置
36 結像相当位置
40 ブラックライン
44 第1基準線
45 第2基準線
50 ドットマーク
50a 格子点
100 手書き入力システム

Claims (8)

  1. 表示面上の多数のドットマークの一部である複数のドットマークを読み取ることにより、前記表示面上の位置を特定する手書き入力システムであって、前記複数のドットマークは、複数の仮想点を基準として前記表示面上に形成され、前記表示面上の位置は前記複数のドットマークによって符号化されており、
    前記複数のドットマークを撮像する撮像部と、
    撮像画像中の前記複数のドットマークの位置を前記撮像画像の第1座標系における位置として検出するドットマーク位置検出部と、
    前記ドットマーク位置検出部により検出された前記複数のドットマークの位置および前記複数の仮想点の位置に基づいて相対位置情報を生成する復号部であって、前記複数の仮想点によって前記第1座標系とは異なる第2座標系が規定され、前記相対位置情報は、前記複数の仮想点を基準とした前記第2座標系における複数のドットマークの位置関係を示し、前記第2座標系における前記複数のドットマークは前記第1座標系における前記複数のドットマークに対応する、復号部と、
    前記表示面上の位置を前記相対位置情報に基づいて計算する位置情報計算部と
    を備え、
    前記復号部は、前記複数の仮想点を基準とした前記複数のドットマークの相対位置の初期値を設定した後、
    前記第1座標系における前記複数のドットマークの位置と、前記相対位置を前記仮想点の位置に加算した位置とに基づいて、射影変換行列を算出する算出処理を実行し、
    前記複数のドットマークの位置を前記第1座標系から前記第2座標系に前記射影変換行列を用いて変換する変換処理を実行し、
    変換後の前記複数のドットマークの位置と前記仮想点の位置とに基づいて前記相対位置情報を生成する生成処理を実行し、
    前記相対位置を前記相対位置情報に従って更新する更新処理を実行し、
    所定の条件が満たされるまで、前記算出処理、前記変換処理、前記生成処理および前記更新処理を順次、繰り返し実行するよう構成されている、手書き入力システム。
  2. 前記復号部は、繰り返し回数が所定値未満であるとき、前記更新処理を実行した後に、前記複数の仮想点のうちの特定の仮想点に関する前記相対位置の更新処理を無効化する無効化処理をさらに実行する、請求項1に記載の手書き入力システム。
  3. 前記復号部は、繰り返し回数が所定値に到達するまで、前記算出処理、前記変換処理、前記生成処理および前記更新処理を順次、繰り返し実行する、請求項1または2に記載の手書き入力システム。
  4. 前記復号部は、前記相対位置情報の生成結果が変化しなくなるまで、前記算出処理、前記変換処理、前記生成処理および前記更新処理を順次、繰り返し実行する、請求項1または2に記載の手書き入力システム。
  5. 前記複数の仮想点の位置を設定する格子位置設定部をさらに備えた、請求項1または2に記載の手書き入力システム。
  6. 前記第2座標系の複数の仮想点はm×m個の格子状に配置され、前記特定の仮想点は前記m×m個の格子の4隅の点である、請求項2に記載の手書き入力システム。
  7. 前記表示面上の位置を指定するペンをさらに備え、
    前記位置情報計算部は、前記第1座標系の前記ペンの位置を前記射影変換行列を用いて変換した、前記第2座標系の前記ペンの位置と、前記相対位置情報とに基づいて、前記表示面上の前記ペンの位置を計算する、請求項1から6のいずれかに記載の手書き入力システム。
  8. 表示面上の多数のドットマークの一部である複数のドットマークを読み取ることにより、前記表示面上の位置を特定する手書き入力システムであって、前記複数のドットマークは、複数の仮想点を基準として前記表示面上に形成され、前記表示面上の位置は前記複数のドットマークによって符号化されており、
    前記複数のドットマークを撮像する撮像部と、
    前記撮像画像中の前記複数のドットマークの位置を検出するドットマーク位置検出部と、
    前記ドットマーク位置検出部により検出された前記複数のドットマークの位置および前記複数の仮想点の位置に基づいて相対位置情報を生成する復号部であって、前記相対位置情報は、前記複数の仮想点を基準とした前記表示面における複数のドットマークの位置関係を示し、前記表示面における前記複数のドットマークは前記撮影画像中の前記複数のドットマークに対応する、復号部と、
    前記表示面上の位置を前記相対位置情報に基づいて計算する位置情報計算部と
    を備え、
    前記復号部は、前記複数の仮想点を基準とした前記複数のドットマークの相対位置の初期値を設定した後、
    前記撮像画像中の前記複数のドットマークの位置と、前記相対位置を前記仮想点の位置に加算した位置とに基づいて、変換行列を算出する算出処理を実行し、
    前記複数のドットマークの位置を前記撮像画像中から前記表示面上に前記変換行列を用いて変換する変換処理を実行し、
    変換後の前記複数のドットマークの位置と前記仮想点の位置とに基づいて前記相対位置情報を生成する生成処理を実行し、
    前記相対位置を前記相対位置情報に従って更新する更新処理を実行し、
    所定の条件が満たされるまで、前記算出処理、前記変換処理、前記生成処理および前記更新処理を順次、繰り返し実行するよう構成されている、手書き入力システム。
JP2013133603A 2012-09-04 2013-06-26 手書き入力システム Expired - Fee Related JP6064211B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013133603A JP6064211B2 (ja) 2012-09-04 2013-06-26 手書き入力システム
US14/014,779 US9176606B2 (en) 2012-09-04 2013-08-30 Handwriting input system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012193786 2012-09-04
JP2012193786 2012-09-04
JP2013133603A JP6064211B2 (ja) 2012-09-04 2013-06-26 手書き入力システム

Publications (2)

Publication Number Publication Date
JP2014067398A JP2014067398A (ja) 2014-04-17
JP6064211B2 true JP6064211B2 (ja) 2017-01-25

Family

ID=50186883

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013133603A Expired - Fee Related JP6064211B2 (ja) 2012-09-04 2013-06-26 手書き入力システム

Country Status (2)

Country Link
US (1) US9176606B2 (ja)
JP (1) JP6064211B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129171B2 (en) * 2012-07-31 2015-09-08 Panasonic Intellectual Property Management Co., Ltd. Code reading device and code reading method
JP6271395B2 (ja) 2014-10-31 2018-01-31 富士フイルム株式会社 情報処理装置および情報入力方法
EP3250992B1 (en) * 2015-01-30 2021-08-25 Hewlett-Packard Development Company, L.P. Calibration of an input device to a display using the input device
CN104932759B (zh) * 2015-05-24 2018-08-21 北京奇禄管理咨询有限公司 点阵白板
WO2017014594A1 (ko) * 2015-07-23 2017-01-26 이철호 스마트 입력장치
CN108459736A (zh) * 2018-03-16 2018-08-28 麦片科技(深圳)有限公司 便携式读写笔的控制方法及便携式读写笔
WO2020246626A1 (ko) * 2019-06-03 2020-12-10 엘지전자 주식회사 필기 입력 장치

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330976B1 (en) * 1998-04-01 2001-12-18 Xerox Corporation Marking medium area with encoded identifier for producing action through network
SE517445C2 (sv) 1999-10-01 2002-06-04 Anoto Ab Positionsbestämning på en yta försedd med ett positionskodningsmönster
JP4198456B2 (ja) * 2002-07-10 2008-12-17 株式会社リコー 2次元コードパターン、2次元コードパターンを担持するパターン担持媒体、2次元コードパターンの生成方法、2次元コード読取装置および読取方法
CN102930309B (zh) 2002-09-26 2016-03-09 吉田健治 点图形形成方法
JP2005173672A (ja) * 2003-12-08 2005-06-30 Laboratories Of Image Information Science & Technology 用紙、電子ペンおよびプログラム
US7529410B2 (en) * 2004-01-07 2009-05-05 Microsoft Corporation Local localization using fast image match
US7263224B2 (en) 2004-01-16 2007-08-28 Microsoft Corporation Strokes localization by m-array decoding and fast image matching
US7048198B2 (en) * 2004-04-22 2006-05-23 Microsoft Corporation Coded pattern for an optical device and a prepared surface
JP2007226577A (ja) 2006-02-23 2007-09-06 Dainippon Printing Co Ltd デジタルペンを利用したデータ入力処理システム、端末装置およびコンピュータプログラム
WO2008002239A1 (en) 2006-06-28 2008-01-03 Anoto Ab Operation control and data processing in an electronic pen
JP4894451B2 (ja) 2006-10-24 2012-03-14 富士ゼロックス株式会社 画像処理装置、及びプログラム
WO2008118085A2 (en) * 2007-03-28 2008-10-02 Anoto Ab Optical component for a camera pen
JP4967823B2 (ja) * 2007-05-30 2012-07-04 富士ゼロックス株式会社 位置検出装置及びプログラム
JP2009181341A (ja) 2008-01-30 2009-08-13 Fuji Xerox Co Ltd 位置検出装置及びプログラム
JP2009230438A (ja) 2008-03-21 2009-10-08 Fuji Xerox Co Ltd 読み取り装置、筆記情報処理システム、読み取り装置の制御装置およびプログラム
JP2009245252A (ja) 2008-03-31 2009-10-22 Fuji Xerox Co Ltd 画像処理装置及び電子ペン及びプログラム
JP4385169B1 (ja) * 2008-11-25 2009-12-16 健治 吉田 手書き入出力システム、手書き入力シート、情報入力システム、情報入力補助シート
US9576230B2 (en) * 2010-07-06 2017-02-21 Marcelo Amaral Rezende Dot code pattern for absolute position and other information using an optical pen, process of printing the dot code, process of reading the dot code
JP5521882B2 (ja) * 2010-08-12 2014-06-18 富士ゼロックス株式会社 情報処理装置、撮像装置及びプログラム
JP4816808B1 (ja) 2010-12-14 2011-11-16 大日本印刷株式会社 コンピュータ装置、入力システム、及びプログラム
JP2012155373A (ja) 2011-01-21 2012-08-16 Konica Minolta Business Technologies Inc 情報処理装置及びシート配置認識プログラム
US8884930B2 (en) * 2012-06-01 2014-11-11 Blackberry Limited Graphical display with optical pen input
TW201423497A (zh) * 2012-12-12 2014-06-16 Hon Hai Prec Ind Co Ltd 數位筆及數位書寫模組

Also Published As

Publication number Publication date
US20140062964A1 (en) 2014-03-06
US9176606B2 (en) 2015-11-03
JP2014067398A (ja) 2014-04-17

Similar Documents

Publication Publication Date Title
JP6064211B2 (ja) 手書き入力システム
CN109751973B (zh) 三维测量装置、三维测量方法以及存储介质
KR101575016B1 (ko) 현실 세계에서 표면들의 정보의 투영을 위한 동적 선택
KR101032446B1 (ko) 영상의 정점 검출 장치 및 방법
JP4996245B2 (ja) 位置復号のための方法、装置、コンピュータプログラム及び記憶媒体
CN116250017A (zh) 用于使用结构化光直接恢复场景中的平面表面的系统、方法和介质
EP3048555A1 (en) Image processing device, image processing method, and image processing program
CN112050751A (zh) 一种投影仪标定方法、智能终端及存储介质
WO2021049490A1 (ja) イメージレジストレーション装置、画像生成システム、イメージレジストレーション方法及びイメージレジストレーションプログラム
CN103428511A (zh) 图案处理装置和图案处理方法
JP2015184056A (ja) 計測装置、方法及びプログラム
US20190325593A1 (en) Image processing apparatus, system, method of manufacturing article, image processing method, and non-transitory computer-readable storage medium
JP4783535B2 (ja) 仮想ラスターパターンの特定
JP6486083B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP6107372B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP7741875B2 (ja) 3次元計測装置
JP2011118466A (ja) 差分ノイズ置換装置、差分ノイズ置換方法、差分ノイズ置換プログラム、コンピュータ読み取り可能な記録媒体、および、差分ノイズ置換装置を備えた電子機器
KR20150003573A (ko) 영상 패턴 검출 방법 및 그 장치
JP6011885B2 (ja) 符号読取装置および符号読取方法
JP5445064B2 (ja) 画像処理装置および画像処理プログラム
US8353461B2 (en) Image processing apparatus, identification apparatus, electronic writing instrument, method for determining bit sequence and computer readable medium
CN110928457B (zh) 基于红外相机的平面触摸方法
US8657205B2 (en) Image processing apparatus, identification apparatus, method for determining bit sequence and computer readable medium
KR20190135921A (ko) 필기 입력 장치
US9958958B2 (en) Interactive projector and method of controlling interactive projector

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20141006

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161128

R151 Written notification of patent or utility model registration

Ref document number: 6064211

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees