JP2023047352A - 情報処理装置及び情報処理プログラム - Google Patents
情報処理装置及び情報処理プログラム Download PDFInfo
- Publication number
- JP2023047352A JP2023047352A JP2022203214A JP2022203214A JP2023047352A JP 2023047352 A JP2023047352 A JP 2023047352A JP 2022203214 A JP2022203214 A JP 2022203214A JP 2022203214 A JP2022203214 A JP 2022203214A JP 2023047352 A JP2023047352 A JP 2023047352A
- Authority
- JP
- Japan
- Prior art keywords
- stroke
- adjustment
- information
- learning
- unit
- 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.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 75
- 238000012545 processing Methods 0.000 claims abstract description 112
- 238000000034 method Methods 0.000 claims description 55
- 230000008569 process Effects 0.000 claims description 43
- 230000008859 change Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 36
- 230000006870 function Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 31
- 238000003384 imaging method Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 23
- 238000012549 training Methods 0.000 description 15
- 238000001514 detection method Methods 0.000 description 14
- 239000013598 vector Substances 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 102100031798 Protein eva-1 homolog A Human genes 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 4
- 102100038445 Claudin-2 Human genes 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003825 pressing Methods 0.000 description 3
- 101000882901 Homo sapiens Claudin-2 Proteins 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 101100333868 Homo sapiens EVA1A gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000005674 electromagnetic induction Effects 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing 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/03545—Pens or stylus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Character Discrimination (AREA)
Abstract
【課題】筆記操作を通じて得られる各種情報を自動的かつ適時に修正可能な情報処理装置及び情報処理プログラムを提供する。【解決手段】情報処理装置(12)は、隣り合うオブジェクト同士の空間上の関係性についての学習結果を示す学習情報(46)を取得する情報取得部(66)と、ストロークの集合体を示すストロークデータに対して認識処理を施し、第1オブジェクト及び該第1オブジェクトの後に筆記入力された第2オブジェクトを認識する認識処理部(70)と、取得された学習情報(46)に基づいて、認識された第1オブジェクトを固定した状態にて第2オブジェクトの位置又はサイズを調整するように、ストロークデータに対して調整処理を施すオブジェクト調整部(72)を備える。【選択図】図2
Description
本発明は、情報処理装置及び情報処理プログラムに関する。
従来から、ユーザが文字や絵などのコンテンツを手書きで入力するための情報処理装置が知られている。例えば、特許文献1には、ファイルに一旦格納された手書きデータを、ユーザが表示状態を確認しながら変更する方法が開示されている。
ところが、特許文献1に開示される方法では、データの確認及び変更を行うための作業が必要になり、その分だけユーザの負担が増してしまう。
本発明はこのような問題に鑑みてなされたものであり、その目的は、筆記操作を通じて得られる各種情報を自動的かつ適時に修正可能な情報処理装置及び情報処理プログラムを提供することにある。
第1の本発明における情報処理装置は、隣り合うオブジェクト同士の空間上の関係性についての学習結果を示す学習情報を取得する情報取得部と、ストロークの集合体を示すストロークデータに対して認識処理を施し、第1オブジェクト及び該第1オブジェクトの後に筆記入力された第2オブジェクトを認識する認識処理部と、前記情報取得部により取得された前記学習情報に基づいて、前記認識処理部により認識された前記第1オブジェクトを固定した状態にて前記第2オブジェクトの位置又はサイズを調整するように、前記ストロークデータに対して調整処理を施すオブジェクト調整部と、を備える。
第2の本発明における情報処理プログラムは、隣り合うオブジェクト同士の空間上の関係性についての学習結果を示す学習情報を取得する取得ステップと、ストロークの集合体を示すストロークデータに対して認識処理を施し、第1オブジェクト及び該第1オブジェクトの後に筆記入力された第2オブジェクトを認識する認識ステップと、取得された前記学習情報に基づいて、認識された前記第1オブジェクトを固定した状態にて前記第2オブジェクトの位置又はサイズを調整するように、前記ストロークデータに対して調整処理を施す調整ステップと、を1つ又は複数のコンピュータに実行させる。
第3の本発明における情報処理装置は、オブジェクトを構成するストローク同士の空間上又は意味上の関係性についての学習結果を示す学習情報を取得する情報取得部と、ストロークの集合体を示すストロークデータに対して認識処理を施し、1本以上のストロークからなる第1ストローク群及び該第1ストローク群の後に筆記入力された第2ストロークを認識する認識処理部と、前記情報取得部により取得された前記学習情報に基づいて、前記認識処理部により認識された前記第1ストローク群を固定した状態にて前記第2ストロークを調整するように、前記ストロークデータに対して調整処理を施すストローク調整部と、を備える。
第4の本発明における情報処理プログラムは、オブジェクトを構成するストローク同士空間上又は意味上の関係性についての学習結果を示す学習情報を取得する取得ステップと、ストロークの集合体を示すストロークデータに対して認識処理を施し、1本以上のストロークからなる第1ストローク群及び該第1ストローク群の後に筆記入力された第2ストロークを認識する認識ステップと、取得された前記学習情報に基づいて、認識された前記第1ストローク群を固定した状態にて前記第2ストロークを調整するように、前記ストロークデータに対して調整処理を施す調整ステップと、を1つ又は複数のコンピュータに実行させる。
第5の本発明における情報処理システムは、位置を指示するための指示デバイスと、前記指示デバイスの指示位置を検出する検出デバイスと、前記指示デバイスが用いられる周辺の場所を撮像して撮像信号を取得する撮像デバイスと、前記検出デバイス及び/又は前記撮像デバイスと通信可能に構成される情報処理装置と、を備え、前記情報処理装置は、前記検出デバイス上のセンサ領域に対応する第1座標空間上の位置を前記指示デバイスの指示位置として算出する第1筆記モードと、前記撮像デバイスのカメラ領域に対応する第2座標空間上の位置を前記指示デバイスの指示位置として算出する第2筆記モードと、を切り替えて実行する状態量算出部と、前記状態量算出部により算出された前記第1座標空間上又は前記第2座標空間上の位置の軌跡を示す1本又は複数本のストロークを記述するデジタルインクを生成するデータ生成部と、を備える。
第6の本発明における情報処理プログラムは、位置を指示するための指示デバイスと、前記指示デバイスの指示位置を検出する検出デバイスと、前記指示デバイスが用いられる周辺の場所を撮像して撮像信号を取得する撮像デバイスと、前記検出デバイス及び/又は前記撮像デバイスと通信可能に構成される情報処理装置と、を備える情報処理システムに適用されるプログラムであって、前記情報処理装置に、前記検出デバイス上のセンサ領域に対応する第1座標空間上の位置を前記指示デバイスの指示位置として算出する第1筆記モードと、前記撮像デバイスのカメラ領域に対応する第2座標空間上の位置を前記指示デバイスの指示位置として算出する第2筆記モードと、を切り替えて実行する算出ステップと、算出された前記第1座標空間上又は前記第2座標空間上の位置の軌跡を示す1本又は複数本のストロークを記述するデジタルインクを生成する生成ステップと、を実行させる。
第1~第4の本発明によれば、筆記操作を通じて得られる各種情報を自動的かつ適時に修正することができる。第5及び第6の本発明によれば、ストロークを筆記入力するための2種類の座標空間を使い分けることができる。
以下、添付図面を参照しながら本発明の実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
[第1実施形態]
以下、本発明の第1実施形態について、図1~図8を参照しながら説明する。
以下、本発明の第1実施形態について、図1~図8を参照しながら説明する。
<情報処理システム10の全体構成>
図1は、本発明の第1実施形態における情報処理システム10の全体構成図である。情報処理システム10は、ユーザによる筆記入力を支援するための「入力支援サービス」を提供するために設けられる。この情報処理システム10は、具体的には、1つ又は複数のユーザ装置12(「情報処理装置」に相当)と、1本又は複数本の電子ペン14と、サーバ装置16と、を含んで構成される。ユーザ装置12とサーバ装置16とは、ネットワークNTを介して双方向に通信可能に構成される。
図1は、本発明の第1実施形態における情報処理システム10の全体構成図である。情報処理システム10は、ユーザによる筆記入力を支援するための「入力支援サービス」を提供するために設けられる。この情報処理システム10は、具体的には、1つ又は複数のユーザ装置12(「情報処理装置」に相当)と、1本又は複数本の電子ペン14と、サーバ装置16と、を含んで構成される。ユーザ装置12とサーバ装置16とは、ネットワークNTを介して双方向に通信可能に構成される。
ユーザ装置12は、入力支援サービスを利用するユーザが所有するコンピュータであって、電子ペン14による指示位置を検出する機能を有する。ユーザ装置12は、例えば、タブレット、スマートフォン、パーソナルコンピュータなどから構成される。
電子ペン14は、ペン型のポインティングデバイスであり、ユーザ装置12との間で一方向又は双方向に通信可能に構成される。この電子ペン14は、例えば、アクティブ静電結合方式(AES)又は電磁誘導方式(EMR)のスタイラスである。ユーザは、電子ペン14を把持し、ユーザ装置12が有するタッチ面にペン先を押し当てながら移動させることで、ユーザ装置12に絵や文字を書き込むことができる。
サーバ装置16は、筆記入力の支援に関する統括的な制御を行うコンピュータであり、クラウド型あるいはオンプレミス型のいずれであってもよい。ここで、サーバ装置16を単体のコンピュータとして図示しているが、サーバ装置16は、これに代わって分散システムを構築するコンピュータ群であってもよい。サーバ装置16は、具体的には、サーバ側通信部20と、サーバ側制御部22と、サーバ側記憶部24と、を備える。
サーバ側通信部20は、外部装置に対して電気信号を送受信するインターフェースである。これにより、サーバ装置16は、ユーザ装置12からデジタルインクを取得するとともに、自身が生成した学習パラメータ群をユーザ装置12に供給することができる。
サーバ側制御部22は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)を含むプロセッサによって構成される。サーバ側制御部22は、サーバ側記憶部24に格納されたプログラム及びデータを読み出して実行することで、データ処理部26、学習処理部28、及び出力処理部30として機能する。
データ処理部26は、ユーザ装置12が生成したデジタルインク74(図2)を処理し、後述する学習用データ42を生成する。データ処理部26の動作については、後で詳細に説明する。
学習処理部28は、データ処理部26により生成された学習用データ42を用いて、識別器32及び推定器34に対してそれぞれ学習処理を行う。学習処理部28の動作については、図4のフローチャートを参照しながら、後で詳細に説明する。
出力処理部30は、学習処理部28が行う学習処理によって得られた第1パラメータ群44及び第2パラメータ群46(図2)をユーザ装置12に向けて出力する。これにより、ユーザ装置12は、第1パラメータ群44を通じて識別器32を、第2パラメータ群46を通じて推定器34をそれぞれ利用することができる。
サーバ側記憶部24は、サーバ側制御部22が各構成要素を制御するのに必要なプログラム及びデータを記憶している。サーバ側記憶部24は、非一過性であり、かつ、コンピュータ読み取り可能な記憶媒体で構成されている。ここで、コンピュータ読み取り可能な記憶媒体は、[1]コンピュータシステムに内蔵されるハードディスク(HDD:Hard Disk Drive)、ソリッドステートドライブ(SSD:Solid State Drive)などの記憶装置、[2]光磁気ディスク、ROM、CD-ROM、フラッシュメモリなどの可搬媒体などから構成される。
なお、サーバ側記憶部24には、デジタルインク74に関するデータベース(以下、インクDB40)が構築されるとともに、学習用データ42、第1パラメータ群44、及び第2パラメータ群46(「学習情報」に相当)が格納されている。
学習用データ42は、学習処理部28が行う機械学習に用いられるデータの集合体である。学習用データ42には、[1]識別器32の学習に用いられる第1訓練データと、[2]推定器34の学習に用いられる第2訓練データと、が含まれる。第1訓練データは、ストロークに関する特徴量(例えば、座標値・筆圧値・傾き角など)を含む「ストローク特徴量」と、オブジェクトの「識別ラベル」との間の対応関係を示すデータペアからなる。第2訓練データは、複数のオブジェクトに関する特徴量(例えば、ストローク特徴量や識別ラベルなど)の集合体である「特徴量セット」と、オブジェクトの位置・姿勢を調整するための「調整量」との間の対応関係を示すデータペアからなる。
なお、第1及び第2訓練データには、ストローク特徴量の他に、[1]入力デバイスの識別情報(例えば、ペンID)・種別、ユーザ装置12の種別、筆圧カーブの形状などを含む「デバイスドライバ側の設定条件」、[2]コンテンツの種類、カラーパレットやブラシの色情報、視覚効果の設定を含む「描画アプリ側の設定条件」などの様々な特徴量が含まれてもよい。
第1パラメータ群44は、識別器32の演算規則を特定するための学習パラメータの集合体であり、オブジェクトの識別に関する学習結果を示す学習情報に相当する。第2パラメータ群46は、推定器34の演算規則を特定可能な学習パラメータの集合体であり、隣り合うオブジェクト同士の空間上の関係性(例えば、位置関係や大小関係など)についての学習結果を示す学習情報に相当する。学習パラメータは、例えば、演算ユニットの活性化関数を記述する係数、シナプス結合の強さに相当する重み付け係数、各層を構成する演算ユニットの個数、中間層の層数などを含んでもよい。
第1パラメータ群44又は第2パラメータ群46は、ユーザによらず一律であってもよいし、ユーザ毎にカスタマイズされてもよい。後者の場合、第1パラメータ群44又は第2パラメータ群46が、ユーザを特定可能な識別情報と対応付けて予め記憶されており、デジタルインク74(図2)に含まれる識別情報を用いて適時に読み出されることが望ましい。識別情報として、例えば、入力支援サービスの利用アカウント、あるいは、電子ペン14又はユーザ装置12に関する各種IDが用いられる。
<ユーザ装置12の構成>
図2は、図1におけるユーザ装置12の構成の一例を示すブロック図である。このユーザ装置12は、具体的には、タッチパネルディスプレイ50と、表示駆動IC(Integrated Circuit)54と、タッチIC56と、通信モジュール58と、ホストプロセッサ60(「プロセッサ」に相当)と、メモリ62(「記憶媒体」に相当)と、を含んで構成される。
図2は、図1におけるユーザ装置12の構成の一例を示すブロック図である。このユーザ装置12は、具体的には、タッチパネルディスプレイ50と、表示駆動IC(Integrated Circuit)54と、タッチIC56と、通信モジュール58と、ホストプロセッサ60(「プロセッサ」に相当)と、メモリ62(「記憶媒体」に相当)と、を含んで構成される。
タッチパネルディスプレイ50は、コンテンツを可視的に表示可能な表示パネル51と、平面視にて表示パネル51と重なるように配置される面状のタッチセンサ52と、を含んで構成される。本図の例では、タッチセンサ52は、表示パネル51に外側から取り付ける「外付け型」のセンサであるが、これに代えて表示パネル51と一体的に構成される「内蔵型」のセンサであってもよい。
表示パネル51は、モノクロ画像又はカラー画像を表示可能であり、例えば、液晶パネル、有機EL(Electro-Luminescence)パネル、電子ペーパーから構成される。なお、表示パネル51に可撓性をもたせることで、ユーザは、ユーザ装置12のタッチ面を湾曲又は屈曲させた状態のまま、様々な筆記操作を行うことができる。
タッチセンサ52は、複数のセンサ電極を面状に配置してなる静電容量方式のセンサである。このタッチセンサ52は、例えば、センサ座標系のX軸の位置を検出するための複数本のXライン電極と、Y軸の位置を検出するための複数本のYライン電極と、を含んで構成される。なお、タッチセンサ52は、上記した相互容量方式のセンサに代えて、ブロック状の電極を二次元格子状に配置した自己容量方式のセンサであってもよい。
表示駆動IC54は、表示パネル51と電気的に接続され、かつ表示パネル51の駆動制御を行う集積回路である。表示駆動IC54は、ホストプロセッサ60から供給された表示信号に基づいて表示パネル51を駆動する。これにより、表示パネル51上には、デジタルインク74が示すコンテンツが表示される。
タッチIC56は、タッチセンサ52と電気的に接続され、かつタッチセンサ52の駆動制御を行う集積回路である。タッチIC56は、ホストプロセッサ60から供給された制御信号に基づいてタッチセンサ52を駆動する。これにより、タッチIC56は、電子ペン14の状態を検出する「ペン検出機能」や、ユーザの指などによるタッチを検出する「タッチ検出機能」を実行する。このように、タッチセンサ52による入力機能と、表示パネル51による出力機能を組み合わせることで、グラフィカル・ユーザ・インターフェース(GUI)が構築される。
通信モジュール58は、外部装置との間で有線通信又は無線通信を行う通信機能を有する。これにより、これにより、ユーザ装置12は、デジタルインク74をサーバ装置16に送信するとともに、第1パラメータ群44及び第2パラメータ群46をサーバ装置16から受信することができる。
ホストプロセッサ60は、CPU、GPU、あるいはMPU(Micro-Processing Unit)を含む演算処理装置によって構成される。ホストプロセッサ60は、メモリ62に格納されたプログラム及びデータを読み出して実行することで、操作受付部64、情報取得部66、筆記処理部68、認識処理部70、及びオブジェクト調整部72として機能する。
操作受付部64は、筆記入力に用いられる入力デバイス(例えば、電子ペン14)によるユーザの操作を受け付ける。この操作により、例えば、[1]ストロークの色・太さ・装飾などに関する筆記設定機能、[2]オブジェクトの調整動作に関する調整設定機能などの様々な設定機能が実行される。この「調整設定」には、調整機能のオン・オフ、実行タイミングの選択が含まれる。
情報取得部66は、隣り合うオブジェクト同士の空間上の関係性についての学習結果を示す情報(以下、「学習情報」という)を取得する。情報取得部66は、メモリ62に記憶されている学習情報を読み出して取得してもよいし、サーバ装置16を含む外部装置からのダウンロードを通じて学習情報を取得してもよい。また、情報取得部66は、電子ペン14の識別情報(つまり、ペンID)に対応する学習情報を取得してもよい。
筆記処理部68は、ユーザによる各種操作に応じて、筆記に関する情報処理(以下、筆記処理)を行う。この筆記処理を通じて、例えば、[1]ストロークのデータ化処理、[2]ストロークの表示処理、[3]デジタルインク74の生成処理などの様々な描画機能が実行される。
認識処理部70は、ストロークの集合体を示すストロークデータに対して認識処理を施し、第1オブジェクト及び該第1オブジェクトの後に筆記入力された第2オブジェクトを認識する。ここで、「オブジェクト」には、文字、図形、記号、模様などのオブジェクト要素が含まれ、あるいは、正しく認識されたことを前提として筆記途中のオブジェクト要素も含まれる。文字の種類として、例えば、漢字、平仮名、片仮名、算用数字、アルファベットなどが挙げられる。また、第1オブジェクトは、単体のオブジェクト要素に限られず、並んで配置される2つ以上のオブジェクト要素であってもよい。
また、認識処理部70は、機械学習がなされた学習器(例えば、ニューラルネットワーク)からなる識別器32及び推定器34を含んで構成される。識別器32は、1本又は複数本のストロークが示すオブジェクトを識別するための学習器である。推定器34は、オブジェクト同士の位置関係から、第2オブジェクトのずれ量を推定するための学習器である。この「ずれ量」は、理想的な位置又はサイズに対するずれ量を意味する。
オブジェクト調整部72は、認識処理部70による認識結果を用いて、ストロークデータに対して調整処理を施す。この調整処理は、第1オブジェクトを固定した状態にて第2オブジェクトの位置又はサイズを調整する処理、例えばアフィン変換処理であってもよい。位置の例として、列方向、高さ方向、及び回転方向のうち少なくとも一方向の位置が挙げられる。サイズの例として、列方向又は高さ方向の長さや拡縮率などが挙げられる。
また、オブジェクト調整部72は、実行条件を満たす場合に調整処理を行う一方、実行条件を満たさない場合に調整処理を省略してもよい。この実行条件は、例えば、[条件1]調整機能の設定が「オン」であること、[条件2]第1及び第2オブジェクトが同時に認識できたこと、[条件3]第1オブジェクトに対する第2オブジェクトのずれ量が閾値を超えたこと、[条件4]条件1~3の少なくとも1つを満たすこと、のいずれであってもよい。
また、オブジェクト調整部72は、複数種類の実行タイミングの中から1種類の実行タイミングを選択して調整処理を実行してもよい。実行タイミングの一例として、[1]第2オブジェクトに関する個々のストローク操作が終了した時点、[2]第2オブジェクトの筆記入力が完了する前にオブジェクトの種類が特定された時点、又は[3]第2オブジェクトの筆記入力が完了した時点などが挙げられる。
メモリ62は、サーバ側記憶部24(図1)と同様に、非一過性であり、かつ、コンピュータ読み取り可能な記憶媒体で構成されている。本図の例では、メモリ62には、上記した第1パラメータ群44及び第2パラメータ群46の他に、デジタルインク74が格納されている。
デジタルインク74は、手書きによるコンテンツを表現するためのインクデータである。デジタルインク74のデータ形式、いわゆる「インク記述言語」として、例えば、WILL(Wacom Ink Layer Language)、InkML(Ink Markup Language)、ISF(Ink Serialized Format)が挙げられる。デジタルインク74は、[1]文書メタデータ(document metadata)、[2]意味データ(ink semantics)、[3]装置データ(devices)、[4]ストロークデータ(strokes)、[5]分類データ(groups)、及び[6]文脈データ(contexts)を順次配列してなるデータ構造を有する。
ストロークデータは、コンテンツを構成する個々のストロークを記述するためのデータである。1本のストロークは、<trace>タグ内に順次配列される複数のポイントデータにより記述される。複数のポイントデータは、ストロークの始点、複数の経由点、及び終点をそれぞれ示す。各々のポイントデータは、少なくとも指示位置(X座標、Y座標)からなり、カンマなどのデリミタで区切られる。このポイントデータには、上記した指示位置の他に、筆記の順序、電子ペン14の筆圧、姿勢などが含まれてもよい。
<情報処理システム10の動作>
第1実施形態における情報処理システム10は、以上のように構成される。続いて、情報処理システム10の動作について、主に図3~図8を参照しながら説明する。
第1実施形態における情報処理システム10は、以上のように構成される。続いて、情報処理システム10の動作について、主に図3~図8を参照しながら説明する。
(1.デジタルインク74の生成)
まず、図1のユーザ装置12がデジタルインク74を生成する動作について、図1及び図2を参照しながら説明する。
まず、図1のユーザ装置12がデジタルインク74を生成する動作について、図1及び図2を参照しながら説明する。
ユーザは、自身が所有する電子ペン14を用いて、ユーザ装置12に対して筆記入力を行う。ユーザ装置12の筆記処理部68(図2)が、ユーザによる筆記操作に応じて筆記処理を行うことで、ストロークデータが生成される。そして、操作受付部64(図2)がデータの保存操作を受け付けることで、ホストプロセッサ60は、ストロークデータを含むデジタルインク74を生成し、当該デジタルインク74をメモリ62に格納させる。
その後、ユーザ装置12は、自身が生成したデジタルインク74をサーバ装置16に送信する。そうすると、サーバ側制御部22は、サーバ側通信部20を介して受信したデジタルインク74をサーバ側記憶部24に記憶させる。これにより、インクDB40に新たなデジタルインク74が追加・登録される。
(2.学習用データ42の生成)
続いて、図1のサーバ装置16が学習用データ42を生成する動作について、図1を参照しながら説明する。サーバ装置16のデータ処理部26は、インクDB40を参照し、解析対象であるデジタルインク74(図2)を取得する。そして、データ処理部26は、取得したデジタルインク74に対してデータ処理を施し、機械学習に用いられる第1訓練データ及び第2訓練データを生成する。サーバ側制御部22は、自身が生成した第1訓練データ及び第2訓練データをサーバ側記憶部24に記憶させる。これにより、学習用データ42が利用可能になる。
続いて、図1のサーバ装置16が学習用データ42を生成する動作について、図1を参照しながら説明する。サーバ装置16のデータ処理部26は、インクDB40を参照し、解析対象であるデジタルインク74(図2)を取得する。そして、データ処理部26は、取得したデジタルインク74に対してデータ処理を施し、機械学習に用いられる第1訓練データ及び第2訓練データを生成する。サーバ側制御部22は、自身が生成した第1訓練データ及び第2訓練データをサーバ側記憶部24に記憶させる。これにより、学習用データ42が利用可能になる。
図3は、境界ボックス76毎の特徴量セットの生成方法の一例を示す図である。データ処理部26は、ユーザ装置12が有するタッチ面に対応する二次元座標系(以下、正規化座標系;X’-Y’)を定義する。この正規化座標系の原点O’は、センサ座標系の原点Oに最も近い位置にある、境界ボックス76の頂点に相当する。正規化座標系のX’軸はセンサ座標系のX軸に平行であるとともに、正規化座標系のY’軸はセンサ座標系のY軸に平行である。また、X’軸,Y’軸のスケールは、境界ボックス76をなす4つの頂点の座標が(0,0),(1,0),(0,1),(1,1)となるように正規化されている。
データ処理部26は、少なくとも1本(本図の例では6本)のストロークを示すストロークデータを参照し、センサ座標系におけるストロークの始点Psの座標値(X,Y)及び終点Peの座標値(X,Y)を取得する。そして、データ処理部26は、座標系の線形変換を施すことで、正規化座標系におけるストロークの始点Psの座標値(X’,Y’)及び終点Peの座標値(X’,Y’)をそれぞれ導出する。なお、ストロークの始点Ps又は終点Peが境界ボックス76の外側にある場合、データ処理部26は、境界線上にある経由点を仮想的な始点Ps又は終点Peとみなして軌跡特徴量を生成すればよい。
(3.識別器32又は推定器34の学習)
続いて、図1のサーバ装置16が識別器32及び推定器34に対して学習を行う動作について、図4のフローチャート、図5及び図6を参照しながら説明する。
続いて、図1のサーバ装置16が識別器32及び推定器34に対して学習を行う動作について、図4のフローチャート、図5及び図6を参照しながら説明する。
図4のステップSP10において、サーバ装置16のサーバ側制御部22(図1)は、特定のユーザからの更新要求を受け付けたか否かを確認する。更新要求をまだ受け付けていない場合(ステップSP10:NO)、当該要求を受け付けるまでステップSP10に留まる。一方、更新要求を受け付けた場合(ステップSP10:YES)、次のステップSP12に進む。
ステップSP12において、サーバ装置16の学習処理部28は、既に作成された学習用データ42(より詳しくは、第1訓練データ)を用いて、識別器32に対する学習処理を行う。この学習処理は、機械学習に一般的に適用される様々な手法を用いて実行される。この学習処理を通じて、複数のユーザに共通する第1パラメータ群44、あるいはユーザ毎にカスタマイズされた第1パラメータ群44が算出される。なお、識別器32又は推定器34がユーザ毎にカスタマイズされる場合、学習処理部28は、ユーザを特定する識別情報(例えば、ペンID)に対応する学習用データ42を選択的に取得する。
図5は、識別器32が有するネットワーク構造の一例を示す図である。識別器32は、例えば、階層型ニューラルネットワーク80から構成され、入力層82、中間層84及び出力層86を備える。識別器32の演算規則は、学習パラメータの集合体である第1パラメータ群44(図1)の値によって定められる。
入力層82は、n本のストロークを示す特徴量セット(図3参照)を入力する層であり、複数(例えば、2・n個)の演算ユニットから構成される。
中間層84は、1層又は2層以上で構成され、入力ベクトルの次元数を削減する次元削減機能を有する。つまり、中間層84を構成する演算ユニットの個数は、2・nよりも少ないことが望ましい。
出力層86は、文字のラベル群を出力する層であり、本図の例では平仮名の文字数(例えば、濁点・半濁点を除いた46個)の演算ユニットから構成される。演算ユニットの活性化関数がソフトマックス関数である場合、このラベル群は、文字毎の確率を示す46個の成分からなる出力ベクトルである。
ところで、文字の種類が「漢字」である場合、「平仮名」向けの識別器32とは別の、漢字の識別に適した識別器32が選択されてもよい。あるいは、文字の種類が特定できない場合、複数種類の文字(例えば、平仮名及び片仮名)の識別に適した識別器32が選択されてもよい。
図4のステップSP14において、学習処理部28は、ステップSP10で取得された学習用データ42(より詳しくは、第2訓練データ)を用いて、推定器34に対して学習処理を施す。この学習処理は、機械学習に一般的に適用される様々な手法を用いて実行される。この学習処理を通じて、ユーザ毎にカスタマイズされた第2パラメータ群46が算出される。
図6は、推定器34が有するネットワーク構造の一例を示す図である。推定器34は、例えば、階層型ニューラルネットワーク90から構成され、入力層92、中間層94及び出力層96を備える。推定器34の演算規則は、学習パラメータの集合体である第2パラメータ群46(図1)の値によって定められる。
入力層92は、第1オブジェクト及び第2オブジェクトに関する特徴量セット(M個ずつ)を入力する層であり、複数(例えば、2・M個)の演算ユニットから構成される。
中間層94は、1層又は2層以上で構成され、入力ベクトルの次元数を削減する次元削減機能を有する。つまり、中間層94を構成する演算ユニットの個数は、2・Mよりも少ないことが望ましい。
出力層96は、第2オブジェクトのずれ量を出力する層であり、本図の例では、5個の演算ユニットから構成される。具体的には、[1]X軸方向のシフト量、[2]X軸方向の拡縮倍率、[3]Y軸方向のシフト量、[4]Y軸方向の拡縮倍率、及び[5]θ方向の回転量がそれぞれ出力される。
図4のステップSP16において、サーバ装置16のサーバ側通信部20は、ステップSP12,SP14での学習処理を通じて算出された第1パラメータ群44及び第2パラメータ群46を、更新要求を行ったユーザ装置12に向けて送信する。ユーザ装置12は、受信した第1パラメータ群44をメモリ62に格納することで、識別器32を自身の装置環境で構築可能になる。ユーザ装置12は、受信した第2パラメータ群46をメモリ62に格納することで、推定器34を自身の装置環境で構築可能になる。このようにして、サーバ装置16は、図4に示すフローチャートの処理を終了する。
<4.オブジェクトの自動調整>
続いて、情報処理システム10の一部を構成するユーザ装置12の動作、具体的には、オブジェクトの調整動作について、図7のフローチャート及び図8を参照しながら説明する。
続いて、情報処理システム10の一部を構成するユーザ装置12の動作、具体的には、オブジェクトの調整動作について、図7のフローチャート及び図8を参照しながら説明する。
図7のステップSP20において、情報取得部66は、第1パラメータ群44及び第2パラメータ群46をメモリ62から取得する。これにより、認識処理部70は、識別器32及び推定器34として機能する。
ステップSP22において、筆記処理部68は、ユーザによる各種操作に応じた筆記処理を行う。
ステップSP24において、ホストプロセッサ60は、オブジェクトの調整タイミングが到来したか否かを確認する。ここでは、調整タイミングが「各々のオブジェクトの筆記入力が完了した時点」に設定されたとする。
オブジェクトの調整タイミングがまだ到来していない場合(ステップSP24:NO)、調整タイミングが到来するまでの間、ステップSP22,SP24を順次繰り返す。一方、調整タイミングが到来した場合(ステップSP24:YES)、次のステップSP26に進む。
ステップSP26において、認識処理部70は、ステップSP24の時点で直近に生成されたストロークデータを用いて、1つ又は複数のオブジェクトを認識する。この認識処理は、学習済みの識別器32を通じて行われる。これにより、直近に順次筆記された第1及び第2オブジェクトがそれぞれ認識される。
ステップSP28において、認識処理部70は、ステップSP26にて認識された第1オブジェクトと第2オブジェクトの間の位置関係を推定する。この推定処理は、学習済みの推定器34を通じて行われる。これにより、第1オブジェクトに対する第2オブジェクトのずれ量が求められる。
ステップSP30において、オブジェクト調整部72は、ステップSP28による推定結果を参照して、第2オブジェクトの調整が必要であるか否かを確認する。調整が必要でない場合(ステップSP28:NO)、オブジェクト調整部72は、第2オブジェクトの調整を行うことなく、ステップSP22に戻る。一方、調整が必要である場合(ステップSP28:YES)、次のステップSP30に進む。
ステップSP32において、オブジェクト調整部72は、ステップSP26にて推定された位置関係に基づいて、第1オブジェクトに対する第2オブジェクトの位置又はサイズのずれ量が小さくなるように調整する。
図8は、オブジェクトの調整結果の一例を示す図である。上段の図はオブジェクトの調整処理が実行される前における手書きコンテンツを、下段の図はオブジェクトの調整処理が実行された後における手書きコンテンツをそれぞれ示す。センサ座標系の全体領域100内には、手書きコンテンツを示すストローク群102が配置される。ストローク群102は、漢字及び平仮名から構成される文字列を示している。文字列は、左側から順に、4つの文字L1,L2,L3,L4からなる。
例えば、文字L4が、通常よりも文字L3に近い位置に筆記入力されたとする。この場合、文字L4の筆記入力が完了した時点で、「第1オブジェクト」としての文字L3と、「第2オブジェクト」としての文字L4と間の調整処理が始まる。そうすると、文字L4全体の位置が左上方向に平行移動することで、新たな文字L5が形成される。つまり、センサ座標系の全体領域100内にて、ストローク群102からストローク群104に自動的に更新される。その結果、文字L1~L3が固定した状態のまま、2つの文字L3,L5間の位置関係が適正化される。
その後、図7のステップSP22に戻って、ホストプロセッサ60は、ユーザが筆記操作を行っている間、ステップSP22~SP32を繰り返し、必要に応じてオブジェクトの調整を行う。このようにして、図7に示すフローチャートの処理が逐次実行される。
<情報処理システム10による効果>
以上のように、第1実施形態における情報処理装置としてのユーザ装置12は、隣り合うオブジェクト同士の空間上の関係性についての学習結果を示す学習情報(ここでは、第2パラメータ群46)を取得する情報取得部66と、ストロークの集合体を示すストロークデータに対して認識処理を施し、第1オブジェクト及び該第1オブジェクトの後に筆記入力された第2オブジェクトを認識する認識処理部70と、情報取得部66により取得された第2パラメータ群46に基づいて、認識処理部70により認識された第1オブジェクトを固定した状態にて第2オブジェクトの位置又はサイズを調整するように、ストロークデータに対して調整処理を施すオブジェクト調整部72と、を備える。
以上のように、第1実施形態における情報処理装置としてのユーザ装置12は、隣り合うオブジェクト同士の空間上の関係性についての学習結果を示す学習情報(ここでは、第2パラメータ群46)を取得する情報取得部66と、ストロークの集合体を示すストロークデータに対して認識処理を施し、第1オブジェクト及び該第1オブジェクトの後に筆記入力された第2オブジェクトを認識する認識処理部70と、情報取得部66により取得された第2パラメータ群46に基づいて、認識処理部70により認識された第1オブジェクトを固定した状態にて第2オブジェクトの位置又はサイズを調整するように、ストロークデータに対して調整処理を施すオブジェクト調整部72と、を備える。
第1実施形態における情報処理プログラム及び方法によれば、1つ又は複数のコンピュータ(ここでは、ユーザ装置12)が、隣り合うオブジェクト同士の空間上の関係性についての学習結果を示す第2パラメータ群46を取得する取得ステップ(図7のSP20)と、ストロークの集合体を示すストロークデータに対して認識処理を施し、第1オブジェクト及び該第1オブジェクトの後に筆記入力された第2オブジェクトを認識する認識ステップ(SP26)と、取得された第2パラメータ群46に基づいて、認識された第1オブジェクトを固定した状態にて第2オブジェクトの位置又はサイズを調整するように、ストロークデータに対して調整処理を施す調整ステップ(SP32)と、を実行する。
このように、取得された第2パラメータ群46に基づいて、第1オブジェクトを固定した状態にて第2オブジェクトの位置又はサイズを調整することで、筆記操作を通じて得られる各種情報を自動的かつ適時に修正することができる。
また、オブジェクト調整部72は、複数種類の実行タイミングの中から1種類の実行タイミングを選択して調整処理を実行してもよい。これにより、予め選択された適切なタイミングでオブジェクトの調整がなされる。
また、複数種類の実行タイミングには、第2オブジェクトの筆記入力が完了する前にオブジェクトが特定された時点が含まれてもよい。筆記入力の完了前に調整がなされることで、その後の筆記入力が行いやすくなる。
また、調整処理は、列方向、高さ方向、及び回転方向のうち少なくとも一方向の位置を調整する処理であってもよい。これにより、オブジェクトの位置又は向きのずれを円滑に調整することができる。
[第2実施形態]
続いて、本発明の第2実施形態について、図9~図14を参照しながら説明する。第1実施形態と同様の構成及び機能については、同一の参照符号を付するとともにその説明を省略する場合がある。
続いて、本発明の第2実施形態について、図9~図14を参照しながら説明する。第1実施形態と同様の構成及び機能については、同一の参照符号を付するとともにその説明を省略する場合がある。
<情報処理システム110の全体構成>
図9は、本発明の第2実施形態における情報処理システム110の全体構成図である。情報処理システム110は、第1実施形態(図1の情報処理システム10)と同様に、ユーザによる筆記入力を支援するための「入力支援サービス」を提供するために設けられる。この情報処理システム110は、具体的には、1つ又は複数のユーザ装置112(「情報処理装置」に相当)と、1本又は複数本の電子ペン114と、サーバ装置116と、を含んで構成される。ユーザ装置112とサーバ装置116とは、ネットワークNTを介して双方向に通信可能に構成される。
図9は、本発明の第2実施形態における情報処理システム110の全体構成図である。情報処理システム110は、第1実施形態(図1の情報処理システム10)と同様に、ユーザによる筆記入力を支援するための「入力支援サービス」を提供するために設けられる。この情報処理システム110は、具体的には、1つ又は複数のユーザ装置112(「情報処理装置」に相当)と、1本又は複数本の電子ペン114と、サーバ装置116と、を含んで構成される。ユーザ装置112とサーバ装置116とは、ネットワークNTを介して双方向に通信可能に構成される。
ユーザ装置112は、第1実施形態(図1のユーザ装置12)と同様に、入力支援サービスを利用するユーザが所有するコンピュータであって、電子ペン114による指示位置を検出する機能を有する。電子ペン114は、第1実施形態(図1の電子ペン14)と同様に、ペン型のポインティングデバイスであり、ユーザ装置112との間で一方向又は双方向に通信可能に構成される。
サーバ装置116は、第1実施形態(図1のサーバ装置16)と同様に、サーバ側通信部20と、サーバ側制御部22と、サーバ側記憶部24と、を備える。ただし、サーバ装置116は、図1のサーバ装置16との間で、[1]サーバ側制御部22が有する学習処理部28の機能、及び[2]サーバ側記憶部24に記憶されるデータがそれぞれ異なる。
サーバ側制御部22が有する学習処理部28は、データ処理部26により生成された学習用データ122を用いて、識別器118及び推定器120に対してそれぞれ学習処理を行う。学習処理部28の動作については、後で詳細に説明する。
サーバ側記憶部24には、インクDB40が構築されるとともに、第1実施形態とはデータ定義が異なる学習用データ122、第1パラメータ群124、及び第2パラメータ群126(「学習情報」に相当)が格納されている。
学習用データ122は、学習処理部28が行う機械学習に用いられるデータの集合体である。学習用データ122には、[1]識別器118の学習に用いられる第1訓練データと、[2]推定器120の学習に用いられる第2訓練データと、が含まれる。第1訓練データは、ストロークに関する特徴量(例えば、座標値・筆圧値・傾き角など)を含む「ストローク特徴量」と、オブジェクトの「識別ラベル」との間の対応関係を示すデータペアからなる。第2訓練データは、調整前のストローク群に関する「調整前のストローク特徴量」及びフォントの形状を示す「フォントデータ」と、調整後の第2ストロークに関する「調整後のストローク特徴量」との間の対応関係を示すデータペアからなる。
<ユーザ装置112の構成>
図10は、図9におけるユーザ装置112の構成の一例を示すブロック図である。このユーザ装置112は、第1実施形態(図2のユーザ装置12)と同様に、タッチパネルディスプレイ50と、表示駆動IC54と、タッチIC56と、通信モジュール58と、ホストプロセッサ60と、メモリ62と、を含んで構成される。
図10は、図9におけるユーザ装置112の構成の一例を示すブロック図である。このユーザ装置112は、第1実施形態(図2のユーザ装置12)と同様に、タッチパネルディスプレイ50と、表示駆動IC54と、タッチIC56と、通信モジュール58と、ホストプロセッサ60と、メモリ62と、を含んで構成される。
ホストプロセッサ60は、CPU、GPU、MPUを含む演算処理装置によって構成される。ホストプロセッサ60は、メモリ62に格納されたプログラム及びデータを読み出して実行することで、操作受付部64、情報取得部66、筆記処理部68、認識処理部130、及びストローク調整部132として機能する。
操作受付部64は、筆記入力に用いられる入力デバイス(例えば、電子ペン14)によるユーザの操作を受け付ける。この操作により、例えば、[1]ストロークの色・太さ・装飾などに関する筆記設定機能、[2]ストロークの調整動作に関する調整設定機能などの様々な設定機能が実行される。この「調整設定」には、調整機能のオン・オフ、実行タイミングの選択が含まれる。
情報取得部66は、オブジェクトを構成するストローク同士の空間上又は意味上の関係性についての学習結果を示す情報(以下、「学習情報」という)を取得する。情報取得部66は、メモリ62に記憶されている学習情報を読み出して取得してもよいし、サーバ装置116を含む外部装置からのダウンロードを通じて学習情報を取得してもよい。また、情報取得部66は、ストロークの筆記操作を行うユーザに対応する学習情報を取得してもよい。ユーザと学習情報とは、例えば、入力支援サービスの利用アカウント、あるいは、電子ペン14又はユーザ装置12に関する各種IDを用いて対応付けられる。
筆記処理部68は、ユーザによる各種操作に応じて筆記処理を行う。この筆記処理を通じて、例えば、[1]ストロークのデータ化処理、[2]ストロークの表示処理、[3]デジタルインク74の生成処理などの様々な描画機能が実行される。
認識処理部130は、ストロークの集合体を示すストロークデータに対して認識処理を施し、第1ストローク群及び該第1ストロークの後に筆記入力された第2ストロークを認識する。この「第1ストローク群」は、筆記途中である単体のオブジェクト要素のみを構成してもよいし、さらに、直近に筆記された1つ以上のオブジェクト要素を含んで構成してもよい。
ここでは、認識処理部130は、機械学習がなされた学習器(例えば、ニューラルネットワーク)からなる識別器118及び推定器120を含んで構成される。識別器118は、1本又は複数本のストロークが示すオブジェクトを識別するための学習器である。推定器120は、ストローク同士の位置関係から、第2ストロークの正しい形状を推定するための学習器である。この「正しい形状」には、ストローク全体の形状のみならず、ストロークの部分的な形状も含まれる。
ストローク調整部132は、認識処理部130による認識結果を用いて、ストロークデータに対して調整処理を施す。この調整処理は、1本以上のストロークからなる第1ストローク群を固定した状態にて、該第1ストローク群の後に筆記入力された第2ストロークの位置又は形状を調整する処理である。調整すべき位置の例として、列方向、高さ方向、及び回転方向のうち少なくとも一方向の位置が挙げられる。調整すべき形状の例として、ストロークの始点・終点・経由点の座標値、線分の長さ、曲率、端部の形状(例えば、止め、跳ね、払い)などが挙げられる。
また、ストローク調整部132は、調整機能の設定が「オン」である場合、第2ストロークの筆記入力が終了する度に調整処理の要否を判定してもよい。具体的には、ストローク調整部132は、実行条件を満たす場合に調整処理を行う一方、実行条件を満たさない場合に調整処理を省略してもよい。この実行条件は、例えば、[条件1]第2ストロークを含むオブジェクトの種類が認識できたこと、[条件2]調整前後における第2ストロークの変化量(例えば、位置、形状、サイズ、長さの相違度など)が閾値を超えたこと、[条件3]条件1又は条件2の少なくとも一方を満たすこと、のいずれであってもよい。
メモリ62は、第1実施形態(図1)と同様に、非一過性であり、かつ、コンピュータ読み取り可能な記憶媒体で構成されている。本図の例では、メモリ62には、第1パラメータ群124、第2パラメータ群126、フォントデータ128、及びデジタルインク74が格納されている。
フォントデータ128は、オブジェクトとしての文字の標準的な形状(つまり、フォント)を示すデータである。フォントデータ128は、例えば、[1]フォントを示す画像データ、[2]フォントの特徴点を示す座標情報、[3]文字の特徴量を示す分散表現ベクトルのいずれであってもよい。フォントは、識別器118により識別可能な文字毎に設けられる。フォントの種類は、1種類であってもよいし2種類以上であってもよい。
<情報処理システム110の動作>
第2実施形態における情報処理システム110は、以上のように構成される。続いて、情報処理システム110の動作について、主に図11~図14を参照しながら説明する。
第2実施形態における情報処理システム110は、以上のように構成される。続いて、情報処理システム110の動作について、主に図11~図14を参照しながら説明する。
(1.デジタルインク74の生成)
図9のサーバ装置116がデジタルインク74を生成する動作は、基本的には、第1実施形態の場合と同様であるので、その説明を省略する。
図9のサーバ装置116がデジタルインク74を生成する動作は、基本的には、第1実施形態の場合と同様であるので、その説明を省略する。
(2.学習用データ122の生成)
図9のサーバ装置116が学習用データ122を生成する動作は、基本的には、第1実施形態の場合と同様であるので、その説明を省略する。
図9のサーバ装置116が学習用データ122を生成する動作は、基本的には、第1実施形態の場合と同様であるので、その説明を省略する。
(3.識別器118又は推定器120の学習)
図9のサーバ装置116が識別器118及び推定器120に対して学習を行う動作は、基本的には、第1実施形態(図4のフローチャート)の場合と同様であるので、その説明を省略する。
図9のサーバ装置116が識別器118及び推定器120に対して学習を行う動作は、基本的には、第1実施形態(図4のフローチャート)の場合と同様であるので、その説明を省略する。
図11は、識別器118が有するネットワーク構造の一例を示す図である。識別器118は、例えば、階層型ニューラルネットワーク140から構成され、入力層142、中間層144及び出力層146を備える。識別器118の演算規則は、学習パラメータの集合体である第1パラメータ群124(図9)の値によって定められる。
入力層142は、n本のストロークを示す特徴量セット(図3参照)を入力する層であり、複数(例えば、2・n個)の演算ユニットから構成される。
中間層144は、1層又は2層以上で構成され、入力ベクトルの次元数を削減する次元削減機能を有する。つまり、中間層144を構成する演算ユニットの個数は、2・nよりも少ないことが望ましい。
出力層146は、文字のラベル群を出力する層であり、本図の例では平仮名の文字数(例えば、濁点・半濁点を除いた46個)の演算ユニットから構成される。演算ユニットの活性化関数がソフトマックス関数である場合、このラベル群は、文字毎の確率を示す46個の成分からなる出力ベクトルである。
図12は、推定器120が有するネットワーク構造の一例を示す図である。推定器120は、例えば、階層型ニューラルネットワーク150から構成され、入力層152、中間層154及び出力層156を備える。推定器120の演算規則は、学習パラメータの集合体である第2パラメータ群126(図9)の値によって定められる。
入力層152は、第1ストローク群に関するストローク特徴量(2n個)及びフォントデータ(f個)を連結してなる特徴量セットを入力する層であり、(2n+f)個の演算ユニットから構成される。
中間層154は、1層又は2層以上で構成され、入力ベクトルの次元数を削減する次元削減機能を有する。つまり、中間層154を構成する演算ユニットの個数は、(2n+f)よりも少ないことが望ましい。
出力層156は、第1ストローク群の次に筆記され得る第2ストロークに関するストローク特徴量(2m)を出力する層であり、本図の例では、2m個の演算ユニットから構成される。
<4.ストロークの自動調整>
続いて、情報処理システム110の一部を構成するユーザ装置112の動作、具体的には、ストロークの調整動作について、図13のフローチャート及び図14を参照しながら説明する。
続いて、情報処理システム110の一部を構成するユーザ装置112の動作、具体的には、ストロークの調整動作について、図13のフローチャート及び図14を参照しながら説明する。
図13のステップSP40において、情報取得部66は、第1パラメータ群124及び第2パラメータ群126をメモリ62から取得する。これにより、認識処理部70は、識別器118及び推定器120として機能する。
ステップSP42において、筆記処理部68は、第1実施形態(図4のステップSP22)の場合と同様に、ユーザによる各種操作に応じた筆記処理を行う。
ステップSP44において、ホストプロセッサ60は、ストロークの調整タイミングが到来したか否かを確認する。ここでは、調整タイミングが「各々のストロークの筆記入力が完了した時点」に設定されたとする。
ストロークの調整タイミングがまだ到来していない場合(ステップSP44:NO)、調整タイミングが到来するまでの間、ステップSP42,SP44を順次繰り返す。一方、調整タイミングが到来した場合(ステップSP44:YES)、次のステップSP46に進む。
ステップSP46において、認識処理部130は、ステップSP44の時点で直近に生成されたストロークデータを用いて、1本又は複数本のストロークから構成されるオブジェクトを認識する。この認識処理は、学習済みの識別器118を通じて行われる。これにより、直近に筆記された第1ストローク群及び第2ストロークがそれぞれ認識される。
ステップSP48において、認識処理部130は、ステップSP46にて認識された第1ストローク群と第2ストロークの間の位置関係を推定する。この推定処理は、学習済みの推定器120を通じて行われる。これにより、第1ストローク群に対する第2ストロークの正しい形状が求められる。
ステップSP50において、ストローク調整部132は、ステップSP48による推定結果を参照して、第2ストロークの調整が必要であるか否かを判定する。調整が必要でない場合(ステップSP50:NO)、ストローク調整部132は、第2ストロークの調整を行うことなく、ステップSP42に戻る。一方、調整が必要である場合(ステップSP50:YES)、次のステップSP52に進む。
ステップSP52において、ストローク調整部132は、ステップSP48にて推定された位置関係に基づいて、第1ストローク群との関係において第2ストロークが適切な位置又は形状に近づくように調整処理を行う。
図14は、ストロークの調整結果の一例を示す図である。上段の図はストロークの調整処理が実行される前における手書きコンテンツを、下段の図はストロークの調整処理が実行された後における手書きコンテンツをそれぞれ示す。センサ座標系の全体領域160内には、手書きコンテンツを示すストローク群162が配置される。ストローク群162は、漢字及び平仮名から構成される文字列を示している。文字列は、左側から順に、3つの文字L1,L2,L3からなる。
例えば、文字L3において、第1ストローク群164が筆記入力された後に、第2ストローク166が、所定の止め位置を突き抜けた状態にて筆記入力されたとする。この場合、第2ストローク166の筆記入力が完了した時点で、第1ストローク群164に対する第2ストローク166の調整処理が始まる。そうすると、センサ座標系の全体領域160内にて、ストローク群162からストローク群170に自動的に更新される。
その結果、第1ストローク群164を固定した状態にて、終端側が短くなった新たな第2ストローク172が形成され、文字L3における書き損じ又は誤記が訂正される。ここで、ユーザ毎にカスタマイズされた推定器120(あるいは、第2パラメータ群126)を用いることで、ユーザによる筆記の傾向や癖をより適切に反映させた調整を行うことができる。
その後、図13のステップSP42に戻って、ホストプロセッサ60は、ユーザが筆記操作を行っている間、ステップSP42~SP52を繰り返し、必要に応じてストロークの調整を行う。このようにして、図13に示すフローチャートの処理が逐次実行される。
<情報処理システム110による効果>
以上のように、第2実施形態における情報処理装置としてのユーザ装置112は、オブジェクトを構成するストローク同士の空間上又は意味上の関係性についての学習結果を示す学習情報(ここでは、第2パラメータ群126)を取得する情報取得部66と、ストロークの集合体を示すストロークデータに対して認識処理を施し、1本以上のストロークからなる第1ストローク群164及び該第1ストローク群164の後に筆記入力された第2ストローク166を認識する認識処理部130と、情報取得部66により取得された第2パラメータ群126に基づいて、認識処理部130により認識された第1ストローク群164を固定した状態にて第2ストローク166の位置又は形状を調整するように、ストロークデータに対して調整処理を施すストローク調整部132と、を備える。
以上のように、第2実施形態における情報処理装置としてのユーザ装置112は、オブジェクトを構成するストローク同士の空間上又は意味上の関係性についての学習結果を示す学習情報(ここでは、第2パラメータ群126)を取得する情報取得部66と、ストロークの集合体を示すストロークデータに対して認識処理を施し、1本以上のストロークからなる第1ストローク群164及び該第1ストローク群164の後に筆記入力された第2ストローク166を認識する認識処理部130と、情報取得部66により取得された第2パラメータ群126に基づいて、認識処理部130により認識された第1ストローク群164を固定した状態にて第2ストローク166の位置又は形状を調整するように、ストロークデータに対して調整処理を施すストローク調整部132と、を備える。
第2実施形態における情報処理プログラム及び方法によれば、1つ又は複数のコンピュータ(ここでは、ユーザ装置112)が、オブジェクトを構成するストローク同士の空間上又は意味上の関係性についての学習結果を示す学習情報(ここでは、第2パラメータ群126)を取得する取得ステップ(図13のSP40)と、ストロークの集合体を示すストロークデータに対して認識処理を施し、1本以上のストロークからなる第1ストローク群164及び該第1ストローク群164の後に筆記入力された第2ストローク166を認識する認識ステップ(SP46)と、取得された第2パラメータ群126に基づいて、認識された第1ストローク群164を固定した状態にて第2ストローク166の位置又は形状を調整するように、ストロークデータに対して調整処理を施す調整ステップ(SP52)と、を実行する。
このように、取得された第2パラメータ群126に基づいて、第1ストローク群164を固定した状態にて第2ストローク166の位置又は形状を調整することで、筆記操作を通じて得られる各種情報を自動的かつ適時に修正することができる。
また、ストローク調整部132は、第2ストロークの筆記入力が終了する度に調整処理の要否を判定してもよい。ユーザが次の筆記入力を開始する前にストロークの調整が行われるので、ユーザの支援になる。
また、ストローク調整部132は、調整前後における第2ストロークの変化量が閾値を超えた場合に調整処理を行ってもよい。この場合、第2ストロークの変化量が少ない場合には調整を行われないので、その分だけ演算処理の負荷が低減される。
また、情報取得部66は、ストロークの筆記操作を行うユーザに対応する第2パラメータ群126を取得するとともに、ストローク調整部132は、ユーザに応じた調整処理を行ってもよい。ユーザ毎にカスタマイズされた学習情報を通じて、ユーザによる筆記の傾向や癖をより適切に反映させた調整を行うことができる。
[第3実施形態]
続いて、本発明の第3実施形態について、図15~図19を参照しながら説明する。第1又は第2実施形態と同様の構成及び機能については、同一の参照符号を付するとともにその説明を省略する場合がある。
続いて、本発明の第3実施形態について、図15~図19を参照しながら説明する。第1又は第2実施形態と同様の構成及び機能については、同一の参照符号を付するとともにその説明を省略する場合がある。
<情報処理システム200の全体構成>
図15は、本発明の第3実施形態における情報処理システム200の全体構成図である。情報処理システム200は、ユーザによる筆記入力を通じてデジタルインクを生成する「筆記入力サービス」を提供するために設けられる。
図15は、本発明の第3実施形態における情報処理システム200の全体構成図である。情報処理システム200は、ユーザによる筆記入力を通じてデジタルインクを生成する「筆記入力サービス」を提供するために設けられる。
この情報処理システム200は、具体的には、1つ又は複数のユーザ装置202(「検出デバイス」に相当)と、1本又は複数本の電子ペン204(「指示デバイス」に相当)と、1つ又は複数のカメラ206(「撮像デバイス」に相当)と、サーバ装置208(「情報処理装置」に相当)と、を含んで構成される。ユーザ装置202とサーバ装置208とは、中継装置210及びネットワークNTを介して、双方向に通信可能に構成される。また、電子ペン204は、ユーザ装置202を介して間接的に、あるいはユーザ装置202を介さずに直接的に、サーバ装置208との間で通信可能に構成される。
ユーザ装置202は、第1及び第2実施形態(ユーザ装置12,112)の場合と同様に、入力支援サービスを利用するユーザが所有するコンピュータであって、電子ペン204による指示位置を検出する機能を有する。ユーザ装置202は、例えば、タブレット、スマートフォン、パーソナルコンピュータなどから構成される。
電子ペン204は、ユーザ装置202との間で一方向又は双方向に通信可能に構成される入力デバイスである。電子ペン204は、具体的には、筆圧センサ211と、慣性計測ユニット(Inertial Measurement Unit;以下、IMU212)と、マイクロコントロールユニット(Micro Control Unit;以下、MCU213)と、通信チップ214と、サイドスイッチ215(「操作子」に相当)と、を含んで構成される。ここで、IMU212は、任意に選択可能な構成であり、必要に応じて省略されてもよい。
筆圧センサ211は、例えば、ペン先への押圧により発生する静電容量の変化を捉える、可変容量コンデンサを用いた圧力センサである。この筆圧センサ211により、筆圧の検出機能を発揮するとともに、電子ペン204のペンダウン又はペンアップを含むペンイベントを検出することができる。
IMU212は、例えば、3軸のジャイロセンサと3方向の加速度センサを組み合わせてなる計測ユニットである。これにより、IMU212は、自装置の状態又は状態の時間変化を示す状態量を測定可能に構成される。この状態量には、位置・姿勢の特定に用いられる様々な物理量、例えば、位置、速度、加速度、ジャーク、角度、角速度などが含まれる。
MCU213は、電子ペン204の動作を制御可能なプロセッサを含む制御ユニットである。例えば、MCU213は、電子ペン204による指示位置の計算に関する様々な演算の他に、当該演算の結果を含むデータの送受信制御などを行う。
通信チップ214は、BlueTooth(登録商標)を含む様々な無線通信規格に従って、外部装置との間で無線通信を行うための集積回路である。これにより、電子ペン204は、通信チップ214を介して、外部装置との間で様々なデータのやり取りが可能である。
サイドスイッチ215は、筆記時の設定を変更するための操作子であり、例えば、電子ペン204が有する筐体の側部に設けられる。
カメラ206は、電子ペン204が用いられる周辺の場所を撮像して撮像信号を取得及び出力する。そして、カメラ206は、自装置が備える通信機能を通じて、当該撮像信号を含む撮像データを、中継装置210及びネットワークNTを介してサーバ装置208に送信する。
サーバ装置208は、筆記入力に関する統括的な制御を行うコンピュータであり、クラウド型あるいはオンプレミス型のいずれであってもよい。ここで、サーバ装置208を単体のコンピュータとして図示しているが、サーバ装置208は、これに代わって分散システムを構築するコンピュータ群であってもよい。
<サーバ装置208の構成>
図16は、図15におけるサーバ装置208の構成の一例を示すブロック図である。このサーバ装置208は、具体的には、通信部220と、制御部222と、記憶部224と、を備える。
図16は、図15におけるサーバ装置208の構成の一例を示すブロック図である。このサーバ装置208は、具体的には、通信部220と、制御部222と、記憶部224と、を備える。
通信部220は、外部装置に対して電気信号を送受信するインターフェースである。これにより、サーバ装置208は、デジタルインクを含む様々なデータをユーザ装置202との間でやり取りすることができる。
制御部222は、CPUやGPUを含むプロセッサによって構成される。制御部222は、記憶部224に格納されたプログラム及びデータを読み出して実行することで、情報取得部226、モード選択部228、状態量算出部230、及びデータ生成部232として機能する。
情報取得部226は、電子ペン204の状態量の算出に必要な各種情報を取得する。この情報の一例として、[1]カメラ206からの撮像データ236、[2]電子ペン204に関するペン情報238、[3]ユーザ装置202からのストロークデータなどが挙げられる。
モード選択部228は、予め定められた複数種類の筆記モードの中から1種類の筆記モードを選択する。筆記モードの種類は、例えば、電子ペン204による指示位置の定義に応じて区分される。複数種類の筆記モードには、[1]ユーザ装置202上のセンサ領域に対応するセンサ座標空間(第1座標空間)上の位置を電子ペン204の指示位置として算出する「第1筆記モード」と、[2]カメラ206のカメラ領域に対応するカメラ座標空間(第2座標空間)上の位置を電子ペン204の指示位置として算出する「第2筆記モード」と、が含まれる。
筆記モードの選択は、手動又は自動により行われてもよい。手動の一例として、ユーザ装置202の操作画面上に表示されるユーザコントロールの操作、電子ペン204に設けられるサイドスイッチ215の押下操作などが挙げられる。自動の一例として、カメラ206がオン状態である場合、ユーザ装置202と電子ペン204との間で通信可能状態/通信不可状態に切り替わった場合、電子ペン204に筆圧が作用していない場合などが挙げられる。例えば、モード選択部228は、電子ペン204に筆圧が作用していない旨の検出がされている間、ユーザ装置202又は電子ペン204との通信を介して受け付けたサイドスイッチ215の操作に応じて、第1筆記モードと第2筆記モードとを順次切り替えて実行してもよい。
状態量算出部230は、情報取得部226により取得された様々な情報を用いて、電子ペン204の状態を示す状態量を算出する。この状態量には、電子ペン204の位置・姿勢に関する物理量(例えば、指示位置、傾き、方位又はこれらの時間変化量など)や、電子ペン204に作用する物理量(例えば、筆圧など)が含まれる。
状態量算出部230は、例えば、筆記モードの種類に応じて異なる演算方法で状態量を算出してもよい。第1筆記モードの場合、状態量算出部230は、センサ座標空間250(図18)上の座標値を電子ペン204の指示位置として算出するとともに、筆圧センサ211による測定値を電子ペン204にかかる筆圧として算出する。指示位置又は筆圧の算出方法は、基本的には、ユーザ装置202に組み込まれたタッチIC(不図示)が実行する算出方法と同様である。
一方、第2筆記モードの場合、状態量算出部230は、カメラ座標空間260(図18)上の座標値を電子ペン204の指示位置として算出するとともに、電子ペン204の移動状態に基づき求めた算出値を電子ペン204にかかる筆圧として算出する。例えば、状態量算出部230は、撮像データ236が示す画像領域内に含まれるペン先の位置をそれぞれ検出し、複数のカメラ206間における既知の幾何学的関係に基づいて三角測量法により電子ペン204の指示位置を算出する。例えば、状態量算出部230は、電子ペン204の移動速度が高くなるにつれて筆圧が低くなるように、電子ペン204にかかる筆圧を算出する。なお、状態量算出部230は、撮像データ236を用いて電子ペン204の存在又は位置を検出できなかった場合、電子ペン204に搭載されるIMU212の計測値を用いて、電子ペン204の状態量(例えば、指示位置や筆圧)を算出してもよい。
データ生成部232は、状態量算出部230により算出された状態量を用いて、ストロークデータを含むデジタルインクを生成する。ストロークデータにより記述されるストローク群の空間座標は、第1筆記モードと第2筆記モードとの間で異なっている。
記憶部224は、制御部222が各構成要素を制御するのに必要なプログラム及びデータを記憶している。記憶部224は、非一過性であり、かつ、コンピュータ読み取り可能な記憶媒体で構成されている。記憶部224には、デジタルインクに関するデータベース(つまり、インクDB234)が構築されるとともに、撮像データ236及びペン情報238が格納されている。
撮像データ236には、複数のカメラ206からそれぞれ出力された撮像信号と、複数のカメラ206間の相対的な配置関係を特定するための幾何学情報と、が含まれる。撮像データ236は、電子ペン204又は該電子ペン204のユーザと対応付けた状態にて記憶される。
ペン情報238には、電子ペン204が保持・生成する情報が含まれてもよいし、ユーザ装置202による電子ペン204の検出を通じて得られた情報が含まれてもよい。前者の例として、電子ペン204の識別情報(つまり、ペンID)、電子ペン204の種別、サイドスイッチ215を含む操作子の状態などが挙げられる。後者の例として、センサ座標空間250上にて検出された電子ペン204の位置・傾き・方位などが挙げられる。
<情報処理システム200の動作>
第3実施形態における情報処理システム200は、以上のように構成される。続いて、この情報処理システム200の動作について、図17のフローチャート、図18及び図19を参照しながら説明する。
第3実施形態における情報処理システム200は、以上のように構成される。続いて、この情報処理システム200の動作について、図17のフローチャート、図18及び図19を参照しながら説明する。
図17のステップSP70において、サーバ装置208の制御部(より詳しくは、情報取得部226)は、電子ペン204の状態量の算出に必要な各種情報を外部装置から取得する。ここで、外部装置は、ユーザ装置202、カメラ206及び電子ペン204のうちの少なくとも1つの装置である。
ステップSP72において、モード選択部228は、ステップSP70で取得された各種情報を参照し、第1筆記モード及び第2筆記モードのうちいずれか一方を選択する。
ステップSP74において、状態量算出部230は、ステップSP72にて選択された筆記モードの種類を確認する。第1筆記モードが選択されている場合(ステップSP74:第1筆記モード)、次のステップSP76に進む。
ステップSP76において、状態量算出部230は、センサ座標空間250上の座標値を電子ペン204の指示位置として算出する。つまり、状態量算出部230は、ペン情報238に含まれる電子ペン204の指示位置をそのまま用いる。
図18は、センサ座標空間250とカメラ座標空間260の間の対応関係を示す図である。図面上側のセンサ座標空間250は、Xs軸、Ys軸、Zs軸からなる3次元直交座標系であり、ユーザ装置202によって独自に定義される。破線で示す四角形状の領域は、ユーザ装置202のタッチ面がなすセンサ領域252に相当する。
図17のステップSP78において、状態量算出部230は、筆圧センサ211による測定値を電子ペン204にかかる筆圧として算出する。つまり、状態量算出部230は、ペン情報238に含まれる電子ペン204の筆圧値をそのまま用いる。
ステップSP80において、データ生成部232は、ステップSP76,SP78でそれぞれ算出された状態値を用いて、第1筆記モードに対応するデジタルインクを生成する。このようにして、サーバ装置208は、図17のフローチャートに示す動作を終了する。
一方、図17のステップSP74に戻って、状態量算出部230は、第2筆記モードが選択されている場合(ステップSP74:第2筆記モード)、ステップSP76とは別のステップSP82に進む。
ステップSP82において、状態量算出部230は、カメラ座標空間260上の座標値を電子ペン204の指示位置として算出する。具体的には、状態量算出部230は、撮像データ236が示す画像毎にペン先の位置を特定した後、三角測量法などの公知の手法を用いてカメラ座標空間260上の位置に変換する。
図18の下側に示すカメラ座標空間260は、Xc軸、Yc軸、Zc軸からなる3次元直交座標系であり、サーバ装置208によって独自に定義される。なお、センサ座標空間250とカメラ座標空間260とは独立して定義されているが、相互に位置合わせが行われてもよい。
図17のステップSP84において、状態量算出部230は、電子ペン204の移動状態に応じた値を電子ペン204にかかる筆圧として算出する。筆圧値の具体的な算出方法について、図19を参照しながら説明する。
図19は、第2筆記モードにおける筆圧値の算出方法の一例を示す図である。グラフの横軸は電子ペン204の移動速度V(単位:mm/s)を示すとともに、グラフの縦軸は筆圧値P(単位:なし)を示している。移動速度がV1以下(0≦V≦V1)である場合には、筆圧値を一定(P=P1)とみなす。そして、移動速度がV1を上回る場合(V1<V≦V2)には、移動速度が増加するにつれて筆圧値が徐々に減少する。そして、移動速度がV2を上回る場合(V>V2)である場合には、筆圧値を一定(P=P2)とみなす。このような特性曲線に従って筆圧値を求めることで、電子ペン204がホバー状態であっても、コンタクト状態における筆圧の挙動を疑似的に再現することができる。
図17のステップSP80において、データ生成部232は、ステップSP82,SP84でそれぞれ算出された状態値を用いて、第2筆記モードに対応するデジタルインクを生成する。このようにして、サーバ装置208は、図17のフローチャートに示す動作を終了する。
<情報処理システム200による効果>
以上のように、第3実施形態における情報処理システム200は、位置を指示するための指示デバイス(ここでは、電子ペン204)と、電子ペン204の指示位置を検出する検出デバイス(ここでは、ユーザ装置202)と、電子ペン204が用いられる周辺の場所を撮像して撮像信号を取得する撮像デバイス(ここでは、カメラ206)と、ユーザ装置202又はカメラ206と通信可能に構成される情報処理装置(ここでは、サーバ装置208)と、を備える。
以上のように、第3実施形態における情報処理システム200は、位置を指示するための指示デバイス(ここでは、電子ペン204)と、電子ペン204の指示位置を検出する検出デバイス(ここでは、ユーザ装置202)と、電子ペン204が用いられる周辺の場所を撮像して撮像信号を取得する撮像デバイス(ここでは、カメラ206)と、ユーザ装置202又はカメラ206と通信可能に構成される情報処理装置(ここでは、サーバ装置208)と、を備える。
サーバ装置208は、ユーザ装置202上のセンサ領域252に対応する第1座標空間(ここでは、センサ座標空間250)上の位置を電子ペン204の指示位置として算出する第1筆記モードと、カメラ206の撮像領域262に対応する第2座標空間(ここでは、カメラ座標空間260)上の位置を電子ペン204の指示位置として算出する第2筆記モードと、を切り替えて実行する状態量算出部230と、状態量算出部230により算出されたセンサ座標空間250上又はカメラ座標空間260上の位置の軌跡を示す1本又は複数本のストロークを記述するデジタルインクを生成するデータ生成部232と、を備える。
第3実施形態における情報処理プログラム及び方法によれば、サーバ装置208が、ユーザ装置202上のセンサ領域252に対応するセンサ座標空間250上の位置を電子ペン204の指示位置として算出する第1筆記モードと、カメラ206の撮像領域262に対応するカメラ座標空間260上の位置を電子ペン204の指示位置として算出する第2筆記モードと、を切り替えて実行する算出ステップ(図17のSP76,SP82)と、算出されたセンサ座標空間250上又はカメラ座標空間260上の位置の軌跡を示す1本又は複数本のストロークを記述するデジタルインクを生成する生成ステップ(SP80)と、を実行する。
このように、センサ座標空間250上の位置を電子ペン204の指示位置として算出する第1筆記モードと、カメラ206の撮像領域262に対応するカメラ座標空間260上の位置を電子ペン204の指示位置として算出する第2筆記モードと、を切り替えて実行することで、ストロークを筆記入力するための2種類の座標空間を使い分けることができる。
また、指示デバイスが筆圧の検出機能を有する電子ペン204である場合、状態量算出部230は、少なくとも、電子ペン204に筆圧が作用していない旨の検出がされている間に第2筆記モードを実行してもよい。
また、電子ペン204が操作子(ここでは、サイドスイッチ215)をさらに備える場合、状態量算出部230は、ユーザ装置202又は電子ペン204との通信を介して受け付けたサイドスイッチ215の操作に応じて、第1筆記モード及び第2筆記モードを切り替えて実行してもよい。
また、データ生成部232は、状態量算出部230が第2筆記モードを実行している間に、電子ペン204に作用する筆圧に代えて、電子ペン204の移動状態に応じた値を筆圧として算出してもよい。
[変形例]
なお、本発明は、上記した各実施形態に限定されるものではなく、この発明の主旨を逸脱しない範囲で自由に変更できることは勿論である。あるいは、技術的に矛盾が生じない範囲で各々の構成を任意に組み合わせてもよい。
なお、本発明は、上記した各実施形態に限定されるものではなく、この発明の主旨を逸脱しない範囲で自由に変更できることは勿論である。あるいは、技術的に矛盾が生じない範囲で各々の構成を任意に組み合わせてもよい。
10,110,200…情報処理システム、12,112…ユーザ装置(情報処理装置)、14,114…電子ペン、16,116…サーバ装置、32,118…識別器、34,120…推定器、44,124…第1パラメータ群、46,126…第2パラメータ群(学習情報)、66…情報取得部、70,130…認識処理部、72…オブジェクト調整部、132…ストローク調整部、202…ユーザ装置(検出デバイス)、204…電子ペン(指示デバイス)、208…サーバ装置(情報処理装置)、226…情報取得部、228…画像解析部、230…状態量算出部、232…データ生成部、250…センサ座標空間(第1座標空間)、260…カメラ座標空間(第2座標空間)
Claims (10)
- 隣り合うオブジェクト同士の空間上の関係性についての学習結果を示す学習情報を取得する情報取得部と、
ストロークの集合体を示すストロークデータに対して認識処理を施し、第1オブジェクト及び該第1オブジェクトの後に筆記入力された第2オブジェクトを認識する認識処理部と、
前記情報取得部により取得された前記学習情報に基づいて、前記認識処理部により認識された前記第1オブジェクトを固定した状態にて前記第2オブジェクトの位置又はサイズを調整するように、前記ストロークデータに対して調整処理を施すオブジェクト調整部と、
を備える、情報処理装置。 - 前記オブジェクト調整部は、複数種類の実行タイミングの中から1種類の実行タイミングを選択して前記調整処理を実行する、
請求項1に記載の情報処理装置。 - 前記複数種類の実行タイミングには、前記第2オブジェクトの筆記入力が完了する前にオブジェクトが特定された時点が完了した時点が含まれる、
請求項2に記載の情報処理装置。 - 前記調整処理は、列方向、高さ方向、及び回転方向のうち少なくとも一方向の位置を調整する処理である、
請求項1~3のいずれか1項に記載の情報処理装置。 - 隣り合うオブジェクト同士の空間上の関係性についての学習結果を示す学習情報を取得する取得ステップと、
ストロークの集合体を示すストロークデータに対して認識処理を施し、第1オブジェクト及び該第1オブジェクトの後に筆記入力された第2オブジェクトを認識する認識ステップと、
取得された前記学習情報に基づいて、認識された前記第1オブジェクトを固定した状態にて前記第2オブジェクトの位置又はサイズを調整するように、前記ストロークデータに対して調整処理を施す調整ステップと、
を1つ又は複数のコンピュータに実行させる、情報処理プログラム。 - オブジェクトを構成するストローク同士の空間上又は意味上の関係性についての学習結果を示す学習情報を取得する情報取得部と、
ストロークの集合体を示すストロークデータに対して認識処理を施し、1本以上のストロークからなる第1ストローク群及び該第1ストローク群の後に筆記入力された第2ストロークを認識する認識処理部と、
前記情報取得部により取得された前記学習情報に基づいて、前記認識処理部により認識された前記第1ストローク群を固定した状態にて前記第2ストロークの位置又は形状を調整するように、前記ストロークデータに対して調整処理を施すストローク調整部と、
を備える、情報処理装置。 - 前記ストローク調整部は、前記第2ストロークの筆記入力が終了する度に前記調整処理の要否を判定する、
請求項6に記載の情報処理装置。 - 前記ストローク調整部は、調整前後における前記第2ストロークの変化量が閾値を超えた場合に前記調整処理を行う、
請求項7に記載の情報処理装置。 - 前記情報取得部は、ストロークの筆記操作を行うユーザに対応する前記学習情報を取得し、
前記ストローク調整部は、前記ユーザに応じた前記調整処理を行う、
請求項6~8のいずれか1項に記載の情報処理装置。 - オブジェクトを構成するストローク同士の空間上又は意味上の関係性についての学習結果を示す学習情報を取得する取得ステップと、
ストロークの集合体を示すストロークデータに対して認識処理を施し、1本以上のストロークからなる第1ストローク群及び該第1ストローク群の後に筆記入力された第2ストロークを認識する認識ステップと、
取得された前記学習情報に基づいて、認識された前記第1ストローク群を固定した状態にて前記第2ストロークを調整するように、前記ストロークデータに対して調整処理を施す調整ステップと、
を1つ又は複数のコンピュータに実行させる、情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022203214A JP2023047352A (ja) | 2021-09-24 | 2022-12-20 | 情報処理装置及び情報処理プログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/034979 WO2023047512A1 (ja) | 2021-09-24 | 2021-09-24 | 情報処理装置、プログラム及びシステム |
JP2022550245A JP7199607B1 (ja) | 2021-09-24 | 2021-09-24 | 情報処理システム及び情報処理プログラム |
JP2022203214A JP2023047352A (ja) | 2021-09-24 | 2022-12-20 | 情報処理装置及び情報処理プログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022550245A Division JP7199607B1 (ja) | 2021-09-24 | 2021-09-24 | 情報処理システム及び情報処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023047352A true JP2023047352A (ja) | 2023-04-05 |
Family
ID=84784201
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022550245A Active JP7199607B1 (ja) | 2021-09-24 | 2021-09-24 | 情報処理システム及び情報処理プログラム |
JP2022203214A Pending JP2023047352A (ja) | 2021-09-24 | 2022-12-20 | 情報処理装置及び情報処理プログラム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022550245A Active JP7199607B1 (ja) | 2021-09-24 | 2021-09-24 | 情報処理システム及び情報処理プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230394721A1 (ja) |
JP (2) | JP7199607B1 (ja) |
WO (1) | WO2023047512A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240094896A1 (en) * | 2022-09-19 | 2024-03-21 | Microsoft Technology Licensing, Llc | Locally generating preliminary inking imagery |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09244799A (ja) * | 1996-03-05 | 1997-09-19 | Ricoh Co Ltd | ペン型入力装置 |
US7227993B2 (en) * | 2003-01-27 | 2007-06-05 | Microsoft Corporation | Learning-based system and process for synthesizing cursive handwriting |
US11435856B2 (en) * | 2018-11-01 | 2022-09-06 | Sony Group Corporation | Information processing device, information processing method, and program |
-
2021
- 2021-09-24 WO PCT/JP2021/034979 patent/WO2023047512A1/ja active Application Filing
- 2021-09-24 JP JP2022550245A patent/JP7199607B1/ja active Active
-
2022
- 2022-12-20 JP JP2022203214A patent/JP2023047352A/ja active Pending
-
2023
- 2023-08-16 US US18/451,034 patent/US20230394721A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230394721A1 (en) | 2023-12-07 |
WO2023047512A1 (ja) | 2023-03-30 |
JP7199607B1 (ja) | 2023-01-05 |
JPWO2023047512A1 (ja) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108139833B (zh) | 电子设备及其用于处理手势的方法 | |
US8269720B2 (en) | Input device having the function of recognizing hybrid coordinates and operating method of the same | |
CN103975292B (zh) | 磁触控笔 | |
CN107391016B (zh) | 手写输入笔迹校准方法及*** | |
US20110157236A1 (en) | Head-mounted display | |
CN105593787A (zh) | 用于与数字设备交互的直接指向检测的***和方法 | |
EP2304527A1 (en) | Gesture-based control system for vehicle interfaces | |
CN110362226A (zh) | 使用触摸屏设备确定用户利手和定向 | |
CN105210027A (zh) | 使用可旋转支撑线识别手写输入 | |
CN103793080A (zh) | 电子设备和绘制方法 | |
JP6877446B2 (ja) | 多重オブジェクト構造を認識するためのシステムおよび方法 | |
JP2023047352A (ja) | 情報処理装置及び情報処理プログラム | |
CN110663017B (zh) | 多笔画智能墨水手势语言 | |
KR101360980B1 (ko) | 필기구형 전자 입력장치 | |
JP5861818B2 (ja) | 電子筆記装置 | |
CN108351739B (zh) | 基于多输入命令来呈现控制界面 | |
US20150309597A1 (en) | Electronic apparatus, correction method, and storage medium | |
CN107479728A (zh) | 主动式电容触控笔校准方法 | |
JP6171676B2 (ja) | 入力装置 | |
JP7472262B2 (ja) | 入出力モデルを設定可能なペン状態検出回路 | |
JP3126816B2 (ja) | 手書文字入力方法及びそれを使用したペン入力コンピュータ | |
WO2023281954A1 (ja) | 情報処理装置、方法、プログラム及びシステム | |
TW201248456A (en) | Identifying contacts and contact attributes in touch sensor data using spatial and temporal features | |
US20240053835A1 (en) | Pen state detection circuit and method, and input system | |
JP2020173494A (ja) | 手書き文字認識装置および手書き文字認識方法 |