以下に添付図面を参照して本願に係る筆記選択プログラム、筆記選択方法および情報処理装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
図1は、実施例1に係る情報処理装置の機能的構成の一例を示すブロック図である。図1に示す情報処理装置10は、机やボード、壁といった部屋全体にディスプレイやタッチパネルの機能を持たせることで空間全体をデジタル化する空間UIを提供するものである。なお、ここでは、ユースケースのあくまで一例として、空間UIを提供する例を説明するが、電子白板やタッチパネルなどの他のユーザインタフェースであってかまわない。
このような空間UIの機能の一環として、情報処理装置10は、手書き入力が行われた筆記全体のうち一部の筆記を選択する操作、以下「筆記選択操作」を最小限の範囲の指定を受け付けることにより実現する筆記選択機能を提供する。
情報処理装置10は、上記の空間UIの機能を提供するコンピュータである。
一実施形態として、情報処理装置10は、パッケージソフトウェア又はオンラインソフトウェアとして、上記の空間UIに対応する機能を実現する空間UIプログラムを任意のコンピュータにインストールさせることによって実装できる。例えば、情報処理装置10は、上記の空間UIの機能を提供するコンピュータとしてオンプレミスに実装することとしてもよいし、上記の空間UIの機能をアウトソーシングによって提供するクラウドとして実装することとしてもかまわない。
図1に示すように、情報処理装置10には、出力装置1aおよび環境センサ1bが接続される。これら出力装置1aおよび環境センサ1bと、情報処理装置10との間の接続形態は、有線または無線を問わない。例えば、任意のネットワークを介して接続されることとしてもよいし、ケーブル等を介して接続されることとしてもかまわない。
出力装置1aは、各種の出力を行う装置である。
あくまで一例として、出力装置1aは、机やボード、壁といった平面に映像を出力するプロジェクタとして実装することができる。例えば、出力装置1aは、机やボード、壁といった平面のうち、手書き入力やジェスチャを受け付ける領域に作業用画面を投影することができる。
環境センサ1aは、空間UIを提供する環境に設置されるセンサである。
あくまで一例として、環境センサ1aは、出力装置1aにより平面に投影された作業用画面を撮像するカメラとして実装することができる。このように作業用画面が撮像された画像から手書き入力やジェスチャを検出することができる。例えば、赤外光付きの電子ペンが用いられる場合、カメラにより撮像された画像から赤外光の軌跡をトラッキングすることにより、手書き入力やジェスチャを検出することができる。
ここで挙げる空間UIの機能は、あくまで一面に過ぎず、これ以外の既知の空間UIの機能が情報処理装置10により提供されることを妨げない。例えば、情報処理装置10は、上記の作業用画面の他にも、デジタル付箋を空間に表示させたり、図示しないユーザ端末の他、任意のコンピュータに保存された画像や動画などのメディアコンテンツ、あるいは文書を空間に表示させたり、デジタル付箋やメディアコンテンツ、文書に対する操作を受け付けたりすることができる。
なお、ここでは、あくまで一例として、1組の出力装置1aおよび環境センサ1bが用いられる例を説明したが、2組以上の出力装置1aおよび環境センサ1bが用いられることしてもかまわない。この他、出力装置1aおよび環境センサ1bが、プロジェクタおよびカメラ以外のハードウェアによって提供されることとしてもかまわない。例えば、机やボード、壁といった平面にタッチパネルを設置することにより出力装置1aおよび環境センサ1bに対応する機能を実現することもできる。
図1に示すように、情報処理装置10は、通信I/F(InterFace)部11と、記憶部13と、制御部15とを有する。図1には、データの授受の関係を表す実線が示されているが、説明の便宜上、最小限の部分について示されているに過ぎない。すなわち、各処理部に関するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、並びに、処理部及び外部装置の間のデータの入出力が行われることとしてもかまわない。
通信I/F部11は、他の装置、例えば出力装置1aや環境センサ1bなどとの間で通信制御を行うインタフェースである。
一実施形態として、通信I/F部11には、LAN(Local Area Network)カードなどのネットワークインタフェースカード等が対応する。例えば、通信I/F部11は、環境センサ1bから作業用画面が撮像された画像を受け付けたり、作業用画面および作業用画面上に手書き入力が行われた筆記などの表示データを出力装置1aへ出力したりする。
記憶部13は、制御部15で実行されるOS(Operating System)を始め、アプリケーションプログラム、例えば上記の空間UIプログラム、あるいは空間UIプログラムがライブラリとして参照する筆記選択プログラムなどの各種プログラムに用いられるデータを記憶する機能部である。
一実施形態として、記憶部13は、情報処理装置10における補助記憶装置として実装することができる。例えば、記憶部13には、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などを採用できる。なお、記憶部13は、必ずしも補助記憶装置として実装されずともよく、情報処理装置10における主記憶装置として実装することもできる。この場合、記憶部13には、各種の半導体メモリ素子、例えばRAM(Random Access Memory)やフラッシュメモリを採用できる。
記憶部13は、制御部15で実行されるプログラムに用いられるデータの一例として、作業用画面に手書き入力が行われた筆記が記録された筆記データ13aを記憶する。この筆記データ13a以外にも、記憶部13には、他の電子データ、例えば作業用画面に表示させるデジタル付箋、メディアコンテンツ、文書などが記憶されることとしてもかまわない。
制御部15は、情報処理装置10の全体制御を行う処理部である。
一実施形態として、制御部15は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより実装することができる。ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサ、例えばGPU(Graphics Processing Unit)やDSP(Digital Signal Processor)の他、GPGPU(General-Purpose computing on Graphics Processing Units)により実装することができる。この他、制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
ここで、以下では、上記の空間UIの機能については既存の技術であるので、上記の筆記選択機能について詳細な説明を行う。
例えば、制御部15は、図示しない主記憶装置として実装されるRAMのワークエリア上に、上記の空間UIプログラムにライブラリとして参照される筆記選択プログラム、あるいは上記の空間UIプログラムにアドオンされる筆記選択プログラムを展開することにより、下記の処理部を仮想的に実現する。
図1に示すように、制御部15は、受付部15aと、設定部15bと、第1判定部15cと、第1再設定部15dと、第2判定部15eと、第2再設定部15fと、筆記選択部15gとを有する。
受付部15aは、筆記領域の探索の基準となる基準領域を受け付ける処理部である。
一実施形態として、受付部15aは、一文字分に対応する筆記の外接矩形を指定する操作を受け付ける。このようにして指定された外接矩形を「基準領域B」として受け付ける。例えば、「基準領域B」は、電子ペン等で矩形の四辺を記述させることにより受け付けることとしてもよいし、矩形の開始点および終了点を指定させることにより受け付けることとしてもよい。この他、電子ペンで何らかのジェスチャを行い、その外接矩形を基準領域Bとして算出してもよい。また、利用者が指定した矩形そのものでなく、所定の範囲の遊び領域を付加して拡大した領域を基準領域Bとしても良い。
このように基準領域Bを受け付けた後、基準領域Bが探索済領域Dおよび確定済領域Fの初期値として設定される。ここで言う「探索済領域D」とは、その内部の筆記の探索が終了済みである領域のことを指す。また、「確定済領域F」とは、その内部に含まれる筆記が選択されることが確定済みである領域のことを指す。
ここで、あくまで一例として、作業用画面に手書き入力が行われる文字列の方向、いわゆる書字方向が横書きである場合、探索済領域Dの左方向および右方向が筆記や空白を探索する探索方向となる。以下では、1つ側面として、探索済領域Dの左方向を探索方向とする場合を例に挙げて具体例を説明する。なお、探索方向が右方向である場合、各処理における左右を反転させて処理を実行することにより、探索方向が左方向である場合と同様に筆記を選択できるので、その説明は省略する。
図2は、初期設定の一例を示す図である。図2には、作業用画面に手書き入力が行われた筆記の一例として、「ななな」の筆記が示されている。さらに、図2には、3つの「な」に対応する筆記のうち一番右の「な」の筆記を囲む矩形を基準領域Bとして受け付けた例が示されている。この場合、基準領域Bが探索済領域Dおよび確定済領域Fの初期値として設定される。
設定部15bは、筆記探索領域Sおよび空白探索領域Eを設定する処理部である。
一実施形態として、設定部15bは、探索済領域Dの探索方向に隣接する矩形の領域を筆記探索領域Sとして設定すると共に、当該筆記探索領域Sの部分領域を空白探索領域Eとして設定する。
図3は、筆記探索領域Sおよび空白探索領域Eの設定例を示す図である。図3には、図2に示す基準領域B、探索済領域Dおよび確定済領域Fが初期設定された状況の下で筆記探索領域Sおよび空白探索領域Eが設定される例が示されている。図3に一点鎖線で示すように、設定部15bは、探索済領域Dの左辺と筆記探索領域Sの右辺とが一致する状態で基準領域Bの幅および高さと同一の幅および高さを持つ筆記探索領域Sを設定する。さらに、図3に破線で示すように、設定部15bは、探索済領域Dの左辺に空白探索領域Eの右辺が含まれる状態で筆記探索領域Sと同一の幅を持ち、かつ筆記探索領域Sの高さよりも短い高さを持つ空白探索領域Eを設定する。
より詳細には、探索済領域Dの矩形の左上の頂点の座標を(x1,y1)とし、右下の頂点の座標を(x2,y2)とし、幅をwとし、高さをhとし、x1およびx2の大小関係が「x2>x1」であり、y1およびy2の大小関係が「y2>y1」であるとする。このとき、筆記探索領域Sには、左上の頂点の座標(x1-w,y1)および右下の頂点の座標(x2-w,y2)を持つ矩形が設定される。さらに、空白探索領域Eには、左上の頂点の座標(x1-w,y1+0.2*h)および右下の頂点の座標(x2-w,y2-0.2*h)を持つ矩形が設定される。
第1判定部15cは、筆記探索領域S内の筆記の有無を判定する処理部である。
一実施形態として、第1判定部15cは、記憶部13に記憶された筆記データ13aから筆記探索領域Sに一部または全部が含まれる筆記を検索する。その上で、第1判定部15cは、筆記データ13aの検索結果として得られた筆記ごとに、当該筆記の外接矩形の中点が筆記探索領域Sに含まれるか否かを判定する。このとき、筆記の外接矩形の中点が筆記探索領域S内に含まれる場合、当該筆記が筆記探索領域S内に存在すると識別される。そして、第1判定部15cは、筆記データ13aの検索結果として得られた筆記の外接矩形の中点のいずれかが筆記探索領域Sに含まれる場合、筆記探索領域Sに筆記が存在すると判定する。
なお、ここでは、筆記の外接矩形の中点が筆記探索領域S内に含まれるか否かにより当該筆記が筆記探索領域Sに存在すると識別する例を挙げたが、他の方法により筆記の有無を判定することができる。例えば、筆記の右端のドットが筆記探索領域Sに含まれるか否かにより筆記の有無を判定することもできる。
第1再設定部15dは、筆記探索領域Sを再設定する処理部である。
一実施形態として、第1再設定部15dは、筆記探索領域Sに筆記が存在する場合、筆記探索領域S内の筆記集合が含まれるように探索済領域Dを拡張する。その上で、第1再設定部15dは、探索済領域Dに隣接する筆記探索領域Sを再設定する。
図4は、筆記探索領域Sの再設定の一例を示す図である。図4には、作業用画面に手書き入力が行われた筆記の一例として、「ののるな」の筆記が示されている。これらのうち左から1番目の「の」および左から2番目の「の」は、他の筆記「る」および「な」に比べて、サイズが小さく、さらに、位置も上側よりに存在する。このような筆記「ののるな」のうち、図4には、右から1番目の筆記「な」が探索済領域Dの初期値として設定されていると共に、その左辺に隣接する位置に筆記探索領域Sが設定されている状況下で筆記探索領域Sを再設定する例が示されている。
図4に示すように、筆記探索領域Sには、左から2番目の筆記「の」や右から2番目の筆記「る」などが含まれる。このように筆記探索領域Sに筆記が存在する場合、第1再設定部15dは、探索済領域Dの左端を筆記探索領域S内に存在する筆記集合のうち左端のドットが存在する位置、すなわち左から2番目の筆記「の」の左端の位置に置き換えることにより、探索済領域Dを拡張する。さらに、第1再設定部15dは、筆記探索領域Sの右辺が探索済領域Dの左辺と重なる位置に筆記探索領域Sを左方向へシフトすることにより、新たな筆記探索領域Sを再設定する。
第2判定部15eは、空白探索領域E内の筆記の有無を判定する処理部である。
一実施形態として、第2判定部15eは、筆記探索領域Sに筆記が存在する場合、記憶部13に記憶された筆記データ13aから空白探索領域Eに一部または全部が含まれる筆記を検索する。その上で、第2判定部15eは、筆記データ13aの検索結果として得られた筆記ごとに、当該筆記の外接矩形の中点が空白探索領域Eに含まれるか否かを判定する。このとき、筆記の外接矩形の中点が空白探索領域E内に含まれる場合、当該筆記が空白探索領域Eに存在すると識別される。そして、第2判定部15eは、筆記データ13aの検索結果として得られた筆記の外接矩形の中点のいずれかが空白探索領域Eに含まれる場合、空白探索領域Eに筆記が存在すると判定する。
第2再設定部15fは、空白探索領域Eを再設定する処理部である。
一実施形態として、第2再設定部15fは、空白探索領域Eに筆記が存在する場合、空白探索領域E内の筆記集合が含まれるように確定済領域Fを拡張する。図5は、確定済領域Fの拡張の一例を示す図である。図5には、図4と同様、作業用画面に手書き入力が行われた筆記の一例として、「ののるな」の筆記が示されると共に、図4に示す筆記探索領域Sが再設定された時点の空白探索領域Eおよび確定済領域Fの初期値が示されている。図5に示すように、空白探索領域Eには、右から2番目の筆記「る」などが含まれる。このように空白探索領域Eに筆記が存在する場合、第2再設定部15fは、確定済領域Fの左端を空白探索領域E内に存在する筆記集合のうち左端のドットが存在する位置、すなわち右から2番目の筆記「る」の左端の位置に置き換えることにより、確定済領域Fを拡張する。
このように確定済領域Fが拡張された後、第2再設定部15fは、探索済領域Dと確定済領域Fの差分が所定の閾値Th1以上であるか否かを判定する。
図6A及び図6Bは、探索済領域Dと確定済領域Fの差分の一例を示す図である。図6Aには、図4に示す探索済領域Dの拡張が行われると共に、図5に示す確定済領域Fの拡張が行われた状況下における探索済領域Dの左端の座標と確定済領域Fの左端の座標との差分が示されている。さらに、図6Bには、図5に示す確定済領域Fの拡張が行われた後に更なる探索済領域Dの拡張が行われた状況下における探索済領域Dの左端の座標と確定済領域Fの左端の座標との差分が示されている。
ここでは、あくまで一例として、閾値Th1が基準領域Bの幅w×1.25であることとして、探索済領域Dの左端の座標と確定済領域Fの左端の座標との差分と比較する例を説明する。図6Aに示すように、図5に示す確定済領域Fの拡張が行われた直後の段階では、探索済領域Dの左端の座標と確定済領域Fの左端の座標との差分は、閾値Th1(=w×1.25)以下となる。その一方で、図6Bに示すように、図5に示す確定済領域Fの拡張が行われた後に更なる探索済領域Dの拡張が行われた段階では、探索済領域Dの左端の座標と確定済領域Fの左端の座標との差分は、閾値Th1(=w×1.25)を超える。
ここで、探索済領域Dの左端の座標と確定済領域Fの左端の座標との差分が閾値Th1以下である場合、第2再設定部15fは、空白探索領域Eの上下端の座標はそのままとし、空白探索領域Eの右端の座標を確定済領域Fの左端の座標に置換すると共に空白探索領域Eの左端の座標を筆記探索領域Sの左端の座標に置き換えることにより、空白探索領域Eを再設定する。
図7は、空白探索領域Eの再設定の一例を示す図である。図7には、図6Aに示す差分が閾値Th1以下であると判定された時点における筆記探索領域S、空白探索領域Eおよび確定済領域Fが示されている。図7に示すように、第2再設定部15fは、空白探索領域Eのうち確定済領域Fと重複する部分、図7に右肩下がりのハッチングで示された領域を特定する。続いて、第2再設定部15fは、空白探索領域Eから確定済領域Fと重複する部分が除外された領域Qと、筆記探索領域Sから図3に示す空白探索領域Eと同様の計算により得られる部分領域Pとを特定する。その上で、第2再設定部15fは、先に特定した領域Qおよび部分領域Pを包含する外接矩形を新たな空白探索領域E´として再設定する。
このように空白探索領域E´が再設定された場合、第1判定部15cの処理が改めて実行される。その後、第1判定部15cにより筆記探索領域Sに筆記がないと判定されるか、あるいは第2再設定部15fにより探索済領域Dの左端の座標と確定済領域Fの左端の座標との差分が閾値を超えると判定されるまで、第1判定部15c、第1再設定部15d、第2判定部15e、第2再設定部15fの処理が繰り返して実行される。
筆記選択部15gは、筆記を選択する処理部である。
1つの側面として、筆記選択部15gは、第1判定部15cにより筆記探索領域Sに筆記がないと判定された場合、探索済領域D内に存在する筆記を選択する。図8は、筆記選択の一例を示す図である。図8には、図2に示す筆記「ななな」において筆記探索領域Sの再設定が限界まで実行された時点における探索済領域Dが示されている。すなわち、図8に示すように、筆記探索領域に筆記が含まれない場合、筆記選択部15gは、探索済領域Dに含まれる筆記「ななな」を選択する。
他の側面として、筆記選択部15gは、第2再設定部15fにより探索済領域Dの左端の座標と確定済領域Fの左端の座標との差分が閾値Th1を超えると判定された場合、確定済領域F内に存在する筆記を選択する。すなわち、図6Bに示された例のように、探索済領域Dの左端の座標と確定済領域Fの左端の座標との差分が閾値Th1を超える場合、筆記選択部15gは、確定済領域Fに含まれる筆記「るな」を選択する。
このように選択された筆記、以下「選択状態の筆記」は、一例として、未選択の筆記の表示形態と異なる表示形態で表示させることができる。例えば、筆記選択部15gは、選択状態の筆記もしくは選択状態の筆記を含む外接矩形を反転表示したり、蛍光マーカー等で表示したりすることができる。この他、筆記選択部15gは、作業画面上で選択状態の筆記もしくは選択状態の筆記を含む外接矩形の近傍に選択状態の筆記をコピーするアイコン、選択状態の筆記に文字認識を実行するアイコン、選択状態の筆記に文字認識が行われたテキストを用いてWeb検索を行うアイコンなどを表示することもできる。
[処理の流れ]
図9は、実施例1に係る筆記選択処理の手順を示すフローチャートである。この処理は、一例として、基準領域Bを受け付けた場合に実行される。図9に示すように、受付部15aは、基準領域Bを受け付けると、基準領域Bを探索済領域Dおよび確定済領域Fの初期値として設定する(ステップS101)。
続いて、設定部15bは、ステップS101で初期設定された探索済領域Dの探索方向に隣接する矩形の領域を筆記探索領域Sとして設定すると共に、当該筆記探索領域Sの部分領域を空白探索領域Eとして設定する(ステップS102)。
そして、第1判定部15cは、筆記探索領域Sに筆記が存在するか否かを判定する(ステップS103)。このとき、筆記探索領域Sに筆記が存在する場合(ステップS103Yes)、第1再設定部15dは、筆記探索領域S内の筆記集合が含まれるように探索済領域Dを拡張する(ステップS104)。その上で、第1再設定部15dは、探索済領域Dに隣接する筆記探索領域Sを再設定する(ステップS105)。
その後、第2判定部15eは、空白探索領域Eに筆記が存在するか否かを判定する(ステップS106)。このとき、空白探索領域Eに筆記が存在する場合(ステップS106Yes)、第2再設定部15fは、空白探索領域E内の筆記集合が含まれるように確定済領域Fを拡張する(ステップS107)。なお、空白探索領域Eに筆記が存在しない場合(ステップS106No)、ステップS107をスキップしてステップS108の処理へ移行する。
そして、第2再設定部15fは、探索済領域Dと確定済領域Fの差分が所定の閾値Th1以上であるか否かを判定する(ステップS108)。このとき、差分が閾値Th1以下である場合(ステップS108Yes)、第2再設定部15fは、空白探索領域Eから確定済領域Fと重複する部分が除外された領域Qと、筆記探索領域Sの部分領域Pとに基づいて、空白探索領域Eを再設定する(ステップS109)。
その後、筆記探索領域Sに筆記が存在し、差分が閾値Th1以下である限り(ステップS103YesかつステップS108Yes)、上記のステップS103~上記のステップS109の処理が繰り返し実行される。
ここで、筆記探索領域Sに筆記がない場合(ステップS103No)、筆記選択部15gは、探索済領域D内に存在する筆記を選択し(ステップS110)、処理を終了する。また、探索済領域Dの左端の座標と確定済領域Fの左端の座標との差分が閾値Th1を超える場合(ステップS108No)、筆記選択部15gは、確定済領域F内に存在する筆記を選択し(ステップS111)、処理を終了する。
なお、図9に示す筆記選択処理は、作業用画面の書字方向が横書きである場合、左方向および右方向の2つの探索方向ごとに上記のステップS101~上記のステップS111の処理が実行される。そして、探索方向ごとに得られた筆記の和集合が選択される。
[効果の一側面]
以上のように、図9に示した筆記選択処理によれば、作業用画面上に表示された筆記のうち一文字分相当のサイズを基準領域として指定することで筆記を選択できるので、大画面のユーザインタフェースが提供される場合でも、筆記選択操作を最小限の範囲の指定を受け付けることにより実現できる。したがって、筆記の選択を容易に行うことが可能である。
このように大画面のユーザインタフェースにおける筆記選択操作の利便性を向上させることができる他、図9に示した筆記選択処理によれば、複数人の利用者により筆記が入力されるマルチユーザの環境にロバストな筆記選択を実現できる。
[マルチユーザ環境における課題の一側面]
すなわち、上記のマルチユーザの環境では、大小様々なサイズの筆記が混在したり、異なる利用者により手書き入力が行われた筆記の位置が互いに近接したり、複数行にわたる筆記が手書き入力されたり、筆記の書字方向が縦横のみならず、斜め方向にばらついたりなどといったように自由な筆記が行われる。このように自由に筆記ができる環境が空間UIにより提供される一方で、異なる利用者の筆記が混じらない状態で筆記を選択するのは困難である一面がある。
図10A~図10Dは、作業用画面の一例を示す図である。図10Aには、利用者Aにより手書き入力が行われた筆記「チャット」が示されている。図10Aに示す作業用画面から利用者Aの筆記を選択する場合、促音拗音に対応する筆記「ャ」や「ッ」も漏らさずに選択したい。また、図10Bには、利用者Bにより手書き入力が行われた筆記『「東京都」』が示されている。図10Bに示す作業用画面から利用者Bの筆記を選択する場合、カギ括弧に対応する筆記『「』や『」』も漏らさずに選択したい。このように、促音拗音あるいはカギ括弧などの一部の記号は、漢字、母音や子音に対応するひらがなやカタカナよりもサイズが小さい。このように文字のサイズがばらつく場合でも、同一の利用者により手書き入力が行われた筆記を漏らさずに選択することが好ましい。
また、図10Cには、利用者Cにより筆記「川崎市中原区」が手書き入力されると共に、筆記「川崎市中原区」の右端の上部から開始して筆記「川崎市中原区」よりも小さなサイズで利用者Dにより筆記「そのまま」が手書き入力されている。また、図10Dには、利用者Eにより筆記「この場合」が手書き入力されると共に、筆記「この場合」の右端の下部から開始して筆記「この場合」よりも大きなサイズで利用者Fにより筆記「ななななな」が手書き入力されている。
例えば、図10Cに示す作業用画面から、利用者Cの筆記「川崎市中原区」を選択することを意図する場合、利用者Dの筆記「そのまま」を無視したい。また、図10Dに示す作業用画面から、利用者Fの筆記「ななななな」を選択することを意図する場合、利用者Eの筆記「この場合」を無視したい。
ここで、同一の利用者により手書き入力が行われた筆記として、図10A及び図10Bに示す促音拗音あるいはカギ括弧などの一部の記号に対応する筆記を選択しながらも、他の利用者の筆記が混在する場合、基準領域として一文字分に対応する範囲の指定を受け付けた利用者の筆記を図10C及び図10Dに示す他の利用者の筆記、例えば「そのまま」や「この場合」と分離して筆記を選択するのは、困難である側面がある。
すなわち、既存の技術においても、OCRやナンバプレートの認識などの他分野まで拡張すれば、文字の連続性を判定する処理を行うものも存在する。しかしながら、既存の技術における文字の連続性の判定は、いずれも横並びまたは縦並びの同一サイズの文字列を抽出することが限界である。例えば、文字の連続性の判定により、図10A及び図10Bに示す促音拗音あるいはカギ括弧などの一部の記号に対応する筆記も一連の筆記と認識する場合、図10Cに示す筆記「そのまま」や図10Dに示す筆記「この場合」も一連の筆記として認識されることは避け得ない。
このように、既存の技術では実現が困難であるマルチユーザ対応の筆記選択機能を、図9に示す筆記選択処理により実現できる。この点を図11A、図11B、図12A、図12Bを用いて下記に説明する。
(1)動作例1
図11A及び図11Bは、筆記選択の動作例1を示す図である。図11A及び図11Bには、筆記「なった」のうち「た」の部分を基準領域Bとして受け付け、基準領域Bにしたがって筆記選択を行う例が示されている。
図11Aに示すように、t1の時点では、基準領域Bが探索済領域Dおよび確定済領域Fの初期値として設定される(ステップS101_ループ1)。このt1に続くt2の時点では、図中の一点鎖線で示すように、探索済領域Dの左辺と筆記探索領域Sの右辺とが一致する状態で基準領域Bの幅および高さと同一の幅および高さを持つ筆記探索領域Sが設定される。さらに、図中の破線で示すように、探索済領域Dの左辺に空白探索領域Eの右辺が含まれる状態で筆記探索領域Sと同一の幅を持ち、かつ筆記探索領域Sの高さよりも短い高さを持つ空白探索領域Eが設定される(ステップS102_ループ1)。
ここで、筆記探索領域Sに筆記が含まれるか否かが判定される(ステップS103_ループ1)。ここでは、筆記探索領域Sに筆記「っ」が含まれるので、ステップS103の分岐はYesに進む。そして、t3の時点では、筆記探索領域S内の筆記「っ」が含まれるように探索済領域Dが拡張される(ステップS104_ループ1)。次に、t4の時点では、探索済領域Dに隣接する筆記探索領域Sが再設定される(ステップS105_ループ1)。
その後、空白探索領域Eに筆記が含まれるか否かが判定される(ステップS106_ループ1)。ここでは、空白探索領域Eには、筆記が含まれないので、ステップS106の分岐はNoに進む。この場合、ステップS107の確定済領域Fの拡張はスキップされる。そして、t5の時点では、探索済領域Dの左端DLEFTの座標と確定済領域Fの左端FLEFTの座標との差分が閾値Th1以下であるか否かが判定される(ステップS108_ループ1)。
ここでは、探索済領域Dの左端DLEFTの座標と確定済領域Fの左端FLEFTの座標との差分は閾値Th1以下であるので、ステップS108の分岐はYesに進む。続いて、t6の時点では、空白探索領域Eから確定済領域Fと重複する部分が除外された領域Qと、筆記探索領域Sの部分領域Pとを包含する外接矩形が空白探索領域Eとして再設定される(ステップS109_ループ1)。
このようにステップS109_ループ1が実行された後、2回目のループに移行する。そして、ステップS105_ループ1で再設定された筆記探索領域Sに筆記が含まれるか否かが判定される(ステップS103_ループ2)。ここでは、ステップS105_ループ1で再設定された筆記探索領域Sに筆記「な」が含まれるので、ステップS103_ループ2の分岐はYesに進む。そして、図11Bに示すように、t7の時点では、筆記探索領域S内の筆記「な」が含まれるように探索済領域Dが拡張される(ステップS104_ループ2)。次に、t8の時点では、探索済領域Dに隣接する筆記探索領域Sが再設定される(ステップS105_ループ2)。
その後、ステップS109_ループ1で再設定された空白探索領域Eに筆記が含まれるか否かが判定される(ステップS106_ループ2)。ここでは、空白探索領域Eには、筆記「な」が含まれるので、ステップS106_ループ2の分岐はYesに進む。続いて、t9の時点では、空白探索領域E内の筆記集合「な」が含まれるように確定済領域Fが拡張される(ステップS107_ループ2)。
そして、探索済領域Dの左端DLEFTの座標と確定済領域Fの左端FLEFTの座標との差分が閾値Th1以下であるか否かが判定される(ステップS108_ループ2)。ここでは、探索済領域Dの左端DLEFTの座標と確定済領域Fの左端FLEFTの座標が一致するので、ステップS108の分岐はYesに進む。続いて、t10の時点では、空白探索領域Eから確定済領域Fと重複する部分が除外された領域Qと、筆記探索領域Sの部分領域Pとを包含する外接矩形が空白探索領域Eとして再設定される(ステップS109_ループ2)。
このようにステップS109_ループ2が実行された後、3回目のループに移行する。そして、ステップS105_ループ2で再設定された筆記探索領域Sに筆記が含まれるか否かが判定される(ステップS103_ループ3)。ここでは、ステップS105_ループ1で再設定された筆記探索領域Sに筆記「な」が含まれるので、ステップS103_ループ2の分岐はNoに進む。次に、t11の時点では、探索済領域D、図中の右肩下がりのハッチング部分に含まれる筆記「なった」が選択される(ステップS110)。
以上のように、図9に示す筆記選択処理を実行することで、同一の利用者により手書き入力が行われた筆記「なった」の選択時に促音拗音に対応する筆記「っ」を漏らさずに選択することができる。
(2)動作例2
図12A及び図12Bは、筆記選択の動作例2を示す図である。図12A及び図12Bには、ある利用者により手入力が行われた筆記「その他」と共に、当該筆記「その他」の右端の上部から開始して筆記「その他」よりも大きなサイズで別の利用者により手入力が行われた筆記「た」が作業用画面に含まれる例が示されている。このような作業用画面に含まれる筆記のうち「た」の部分を基準領域Bとして受け付け、基準領域Bにしたがって筆記選択を行う例が示されている。
図12Aに示すように、t1の時点では、基準領域Bが探索済領域Dおよび確定済領域Fの初期値として設定される(ステップS101_ループ1)。このt1に続くt2の時点では、図中の一点鎖線で示すように、探索済領域Dの左辺と筆記探索領域Sの右辺とが一致する状態で基準領域Bの幅および高さと同一の幅および高さを持つ筆記探索領域Sが設定される。さらに、図中の破線で示すように、探索済領域Dの左辺に空白探索領域Eの右辺が含まれる状態で筆記探索領域Sと同一の幅を持ち、かつ筆記探索領域Sの高さよりも短い高さを持つ空白探索領域Eが設定される(ステップS102_ループ1)。
ここで、筆記探索領域Sに筆記が含まれるか否かが判定される(ステップS103_ループ1)。ここでは、筆記探索領域Sに筆記「の」や「他」が含まれるので、ステップS103の分岐はYesに進む。そして、t3の時点では、筆記探索領域S内の筆記「の」および筆記「他」が含まれるように探索済領域Dが拡張される(ステップS104_ループ1)。次に、t4の時点では、探索済領域Dに隣接する筆記探索領域Sが再設定される(ステップS105_ループ1)。
その後、空白探索領域Eに筆記が含まれるか否かが判定される(ステップS106_ループ1)。ここでは、空白探索領域Eには、筆記が含まれないので、ステップS106_ループ1の分岐はNoに進む。この場合、ステップS107の確定済領域Fの拡張はスキップされる。そして、t5の時点では、探索済領域Dの左端DLEFTの座標と確定済領域Fの左端FLEFTの座標との差分が閾値Th1以下であるか否かが判定される(ステップS108_ループ1)。
ここでは、探索済領域Dの左端DLEFTの座標と確定済領域Fの左端FLEFTの座標との差分は閾値Th1以下であるので、ステップS108の分岐はYesに進む。続いて、t6の時点では、空白探索領域Eから確定済領域Fと重複する部分が除外された領域Qと、筆記探索領域Sの部分領域Pとを包含する外接矩形が空白探索領域Eとして再設定される(ステップS109_ループ1)。
このようにステップS109_ループ1が実行された後、2回目のループに移行する。そして、ステップS105_ループ1で再設定された筆記探索領域Sに筆記が含まれるか否かが判定される(ステップS103_ループ2)。ここでは、ステップS105_ループ1で再設定された筆記探索領域Sに筆記「そ」が含まれるので、ステップS103_ループ2の分岐はYesに進む。そして、図12Bに示すように、t7の時点では、筆記探索領域S内の筆記「そ」が含まれるように探索済領域Dが拡張される(ステップS104_ループ2)。次に、t8の時点では、探索済領域Dに隣接する筆記探索領域Sが再設定される(ステップS105_ループ2)。
その後、ステップS109_ループ1で再設定された空白探索領域Eに筆記が含まれるか否かが判定される(ステップS106_ループ2)。ここでも、空白探索領域Eには、筆記が含まれないので、ステップS106_ループ2の分岐はNoに進む。この場合、ステップS107の確定済領域Fの拡張はスキップされる。
そして、t9の時点では、探索済領域Dの左端DLEFTの座標と確定済領域Fの左端FLEFTの座標との差分が閾値Th1以下であるか否かが判定される(ステップS108_ループ2)。ここでは、探索済領域Dの左端DLEFTの座標と確定済領域Fの左端FLEFTの座標が閾値Th1を超えるので、ステップS108_ループ2の分岐はNoに進む。続いて、t10の時点では、確定済領域F、図中の右肩下がりのハッチング部分に含まれる筆記「た」が選択される(ステップS111)。
以上のように、図9に示す筆記選択処理を実行することで、基準領域として一文字分に対応する範囲の指定を受け付けた利用者の筆記「た」を他の利用者の筆記「その他」と分離して筆記を選択できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[基準領域]
上記の実施例1では、一文字分に対応する範囲が基準領域として指定されることと見なして図9に示す筆記選択処理を実行する場合を例示したが、例えば、情報処理装置10は、基準領域Bに包含される筆記が一文字であるか否か判定することもできる。一例として、情報処理装置10は、基準領域の縦横比を用いて、基準領域に含まれる筆記が一文字または複数文字のいずれであるかを判定することができる。例えば、基準領域の縦横比から求まる割合が正方形に対応する「1」から所定の範囲内である場合、一文字と判定する一方で、基準領域の縦横比から求まる割合が正方形に対応する「1」から所定の範囲外である場合、複数文字と判定する。このとき、基準領域Bに包含される筆記が一文字である場合、情報処理装置10は、図9に示す筆記選択処理を実行し、基準領域Bに包含される筆記が複数文字である場合、基準領域に含まれる筆記集合をそのまま選択することもできる。これによって、同一の利用者の筆記全体の選択と、その一部の筆記の選択とを切り替えて実行できる。
[複数の空白探索領域の使用]
上記の実施例1では、1種類の空白探索領域Eを用いる例を説明したが、複数の空白探索領域を用いて筆記選択処理を行うこともできる。例えば、情報処理装置10は、空白探索領域として、中央空白探索領域、上方空白探索領域、下方空白探索領域の3つ、および対応する確定済領域として、中央確定済領域、上方確定済領域、下方確定済領域の3つを用い、差分の判定を、探索済領域と、中央確定済領域、上方確定済領域および下方確定済領域とについてそれぞれ実行し、全ての差分が所定の閾値以内の場合、探索を繰り返すように実装することができる。
図13は、実施例2に係る筆記選択処理の手順を示すフローチャートである。この処理は、図9と同様、基準領域Bを受け付けた場合に実行される。図13に示すように、受付部15aは、基準領域Bを受け付けると、基準領域Bを探索済領域Dおよび確定済領域Fの初期値として設定する(ステップS201)。
続いて、設定部15bは、ステップS201で初期設定された探索済領域Dの探索方向に隣接する矩形の領域を筆記探索領域Sとして設定すると共に、当該筆記探索領域Sの3つの部分領域を中央空白探索領域EC、上方空白探索領域EUおよび下方空白探索領域EDとして設定する(ステップS202)。
例えば、中央空白探索領域EC、上方空白探索領域EUおよび下方空白探索領域EDは、次のようにして設定することができる。例えば、探索方向を左方向とし、探索済領域Dの矩形の左上の頂点の座標を(x1,y1)とし、右下の頂点の座標を(x2,y2)とし、幅をwとし、高さをhとし、x1およびx2の大小関係が「x2>x1」であり、y1およびy2の大小関係が「y2>y1」であるとする。このとき、中央空白探索領域ECには、一例として、左上の頂点の座標(x1-w,y1+0.15*h)および右下の頂点の座標(x2-w,y2-0.15*h)を持つ矩形が設定される。また、上方空白探索領域EUには、一例として、左上の頂点の座標(x1-w,y1)および右下の頂点の座標(x2-w,y2-0.4*h)を持つ矩形が設定される。さらに、下方空白探索領域EDには、左上の頂点の座標(x1-w,y1+0.4*h)および右下の頂点の座標(x2-w,y2)を持つ矩形が設定される。
これら中央空白探索領域EC、上方空白探索領域EUおよび下方空白探索領域EDは、模式的に示すと図14A~図14Cとなる。図14Aは、中央空白探索領域ECの一例を示す図である。図14Bは、上方空白探索領域EUの一例を示す図である。図14Cは、下方空白探索領域EDの一例を示す図である。図14Aに示すように、中央空白探索領域ECの上辺は、探索済領域Dの上辺よりも0.15*h低い。また、中央空白探索領域ECの下辺は、探索済領域Dの下辺よりも0.15*h高い。このような中央空白探索領域ECの高さは、0.7*hとなる。また、図14Bに示すように、上方空白探索領域EUの上辺は、探索済領域Dの上辺と同じ高さである。一方、上方空白探索領域EUの下辺は、探索済領域Dの下辺よりも0.4*h高い。このような上方空白探索領域EUの高さは、0.6*hとなる。また、図14Cに示すように、下方空白探索領域EDの上辺は、探索済領域Dの上辺よりも0.4*h低い。また、下方空白探索領域EDの下辺は、探索済領域Dの下辺と同じ高さである。このような下方空白探索領域EDの高さは、0.6*hとなる。
続いて、第1判定部15cは、筆記探索領域Sに筆記が存在するか否かを判定する(ステップS203)。このとき、筆記探索領域Sに筆記が存在する場合(ステップS203Yes)、第1再設定部15dは、筆記探索領域S内の筆記集合が含まれるように探索済領域Dを拡張する(ステップS204)。その上で、第1再設定部15dは、探索済領域Dに隣接する筆記探索領域Sを再設定する(ステップS205)。
その後、第2判定部15eは、中央空白探索領域ECに筆記が存在するか否かを判定する(ステップS206)。このとき、中央空白探索領域ECに筆記が存在する場合(ステップS206Yes)、第2再設定部15fは、中央空白探索領域EC内の筆記集合が含まれるように中央確定済領域FCを拡張する(ステップS207)。なお、中央空白探索領域ECに筆記が存在しない場合(ステップS206No)、ステップS207をスキップしてステップS208の処理へ移行する。
そして、第2再設定部15fは、探索済領域Dと中央確定済領域FCの差分が所定の閾値Th2以上であるか否かを判定する(ステップS208)。ここで用いる閾値Th2には、上記の実施例1で例に挙げた閾値Th1よりも短い値を用いる。図15Aは、閾値Th2の一例を示す図である。図15Aに示すように、探索済領域Dと中央確定済領域FCの差分と比較する閾値Th2には、基準領域Bの幅w*1.0を用いることができる。このように上記の実施例1で例に挙げた閾値Th1よりも短い値を用いるのは、筆記探索領域Sの上端部付近または下端部付近に筆記があったとしても、その筆記が選択されづらくするためである。
このとき、探索済領域Dと中央確定済領域FCの差分が閾値Th2以下である場合(ステップS208Yes)、次のステップS209へ移行する。すなわち、第2判定部15eは、上方空白探索領域EUに筆記が存在するか否かを判定する(ステップS209)。このとき、上方空白探索領域EUに筆記が存在する場合(ステップS209Yes)、第2再設定部15fは、上方空白探索領域EU内の筆記集合が含まれるように上方確定済領域FUを拡張する(ステップS210)。なお、上方空白探索領域EUに筆記が存在しない場合(ステップS209No)、ステップS210をスキップしてステップS211の処理へ移行する。
そして、第2再設定部15fは、探索済領域Dと上方確定済領域FUの差分が所定の閾値Th3以上であるか否かを判定する(ステップS211)。ここで用いる閾値Th3には、閾値Th1および閾値Th2よりも長い値を用いる。図15Bは、閾値Th3の一例を示す図である。図15Bに示すように、探索済領域Dと上方確定済領域FUの差分と比較する閾値Th3には、基準領域Bの幅w*1.5を用いることができる。このように閾値Th1や閾値Th2よりも長い値を用いるのは、筆記探索領域Sの上寄りには語の一部に対応する筆記である可能性があるので、その筆記が選択されやすくするためである。
このとき、探索済領域Dと上方確定済領域FUの差分が閾値Th3以下である場合(ステップS211Yes)、次のステップS212へ移行する。すなわち、第2判定部15eは、下方空白探索領域EDに筆記が存在するか否かを判定する(ステップS212)。このとき、下方空白探索領域EDに筆記が存在する場合(ステップS212Yes)、第2再設定部15fは、下方空白探索領域ED内の筆記集合が含まれるように下方確定済領域FDを拡張する(ステップS213)。なお、下方空白探索領域EDに筆記が存在しない場合(ステップS212No)、ステップS213をスキップしてステップS214の処理へ移行する。
そして、第2再設定部15fは、探索済領域Dと下方確定済領域FDの差分が所定の閾値Th4以上であるか否かを判定する(ステップS214)。ここで用いる閾値Th4にも、閾値Th1および閾値Th2よりも長い値を用いる。図15Cは、閾値Th4の一例を示す図である。図15Cに示すように、探索済領域Dと下方確定済領域FDの差分と比較する閾値Th4には、基準領域Bの幅w*1.5を用いることができる。このように閾値Th1や閾値Th2よりも長い値を用いるのは、筆記探索領域Sの下寄りには語の一部に対応する筆記である可能性があるので、その筆記が選択されやすくするためである。
ここで、探索済領域Dと下方確定済領域FDの差分が閾値Th4以下である場合(ステップS214Yes)、中央空白探索領域EC、上方空白探索領域EUおよび下方空白探索領域EDの3つの空白領域を再設定し(ステップS215)、ステップS203の処理へ移行する。3つの空白領域の再設定は、中央空白探索領域EC、上方空白探索領域EUおよび下方空白探索領域EDのいずれから各々に対応する中央確定済領域FC、上方確定済領域FUまたは下方確定済領域FDと重複する部分が除外された領域QC、QUまたはQDと、筆記探索領域Sにおける図14A、図14Bまたは図14Cの高さに位置する部分領域PC、PUまたはPDとに基づいて再設定される。
その後、筆記探索領域Sに筆記が存在し、3つの差分が閾値Th2、閾値Th3および閾値Th4以下である限り(ステップS203Yes、ステップS208Yes、ステップS211YesかつステップS214Yes)、上記のステップS203~上記のステップS215の処理が繰り返し実行される。
ここで、筆記探索領域Sに筆記がない場合(ステップS203No)、筆記選択部15gは、探索済領域D内に存在する筆記を選択し(ステップS216)、処理を終了する。また、探索済領域Dの左端の座標と中央確定済領域FCの左端の座標との差分が閾値Th2を超える場合(ステップS208No)、筆記選択部15gは、中央確定済領域FC内に存在する筆記を選択し(ステップS217)、処理を終了する。また、探索済領域Dの左端の座標と上方確定済領域FUの左端の座標との差分が閾値Th3を超える場合(ステップS211No)、筆記選択部15gは、上方確定済領域FU内に存在する筆記を選択し(ステップS218)、処理を終了する。また、探索済領域Dの左端の座標と下方確定済領域FDの左端の座標との差分が閾値Th4を超える場合(ステップS214No)、筆記選択部15gは、下方確定済領域FD内に存在する筆記を選択し(ステップS219)、処理を終了する。
以上のように、図13に示す筆記選択処理を実行することで、上方に偏った筆記や下方に偏った筆記を探索から除外することができる。
日本語では、濁点、半濁点、句読点、拗音発音など、水平に筆記した場合、上方、下方に偏って記載される場合がある。しかし、これらの小さな文字の連続は通常二文字以内なので、上方、下方の空白を検出する探索範囲の横幅を小文字2文字分より大きく設定することで、連続した筆記と、無関係の筆記を切り分けられる。上記実施例で中央空白探索領域チェック字の閾値はw*1.0とし、上方空白探索領域のチェックおよび、下方空白探索領域のチェック時の閾値は、w*1.5と大きくしてるのは、小文字二文字連続相当分を除外せずに選択するためである。また、アルファベットに関しても、アポストロフィやダブルクォートなど上限に偏って筆記される文字はあるが、通常二文字以内である。
この他、筆記探索領域S、中央空白探索領域EC、上方空白探索領域EU、下方空白探索領域EDのうち、どの領域で停止条件が成立したかを、矩形で明示的に示してもよい。また、基準領域や、最終的な確定済領域、または最終的な選択済み領域を明示的に示してもよい。
[複数行探索]
例えば、情報処理装置10は、基準領域Bとして受け付けた矩形領域の縦横比を算出し、当該縦横比が所定の度合い上で縦長である場合、複数行の探索を行うこともできる。これにより、一文字囲ったときは一行選択、縦長に囲ったときは、複数行選択という使い分けもできる。
また、このような複数行選択を実現するために、筆記の書字方向が横書きである場合、情報処理装置10は、筆記選択の探索方向に対応する左右方向でなく、筆記選択の探索方向と直交する上下方向に行を探索し、選択された筆記集合を包含する領域から、所定の行探索のアルゴリズムにしたがって一文字ごとの矩形領域を抽出し、一文字ごとに抽出された各矩形を基準領域とし、各基準領域に対して、左右方向の探索を行うことで、行ごとに分割された筆記集合を選択する。
図16は、複数行探索の動作例を示す図である。図16には、1行目に筆記「大久保」、2行目に筆記「西新橋」、3行目に筆記「木更津」が含まれる作業用画面の例が示されている。図16に示すように、情報処理装置10は、ステップS1で1行目の筆記「大久保」のうち筆記「大」を基準領域として受け付け、ステップS2で筆記「大」の上下方向の探索により、筆記「大」、「西」および「木」の筆記集合を選択する。そして、ステップS3で、筆記集合から一文字ごとの矩形領域「大」、矩形領域「西」および矩形領域「木」を抽出し、各矩形領域に対して、左右方向に探索を行うことで行ごとに筆記集合「大久保」、「西新橋」および「木更津」を選択する。
このように行ごとに選択された筆記集合に対して、予め定められた処理ないし利用者が指定した処理を適用することもできる。例えば、選択された各筆記集合「大久保」、「西新橋」および「木更津」ごとに、文字列認識を行い、認識結果テキストで、画像検索を行い表示するコマンドに対応するアイコンを表示することもできる。
ここで、図16に示すステップS2の処理について具体的に説明する。図17は、フレームの分割方法の一例を示す図である。図17には、筆記「大」、「西」および「木」の上下方向の筆記集合から各行の文字に対応する基準領域を抽出する例が示されている。図17に示すように、情報処理装置10は、文字ごとの矩形領域を基準領域として抽出する計算ステップの最初に、基準領域Bの矩形の高さを定められた定数N、例えば「10」で分割することにより1フレームあたりの高さを求め、選択された筆記集合を包含する領域を、該1フレームあたりの高さを持つ複数のフレームで上下方向に分割する。例えば、図17の例で言えば、基準領域Bより下方の領域が30フレームに分割されている。なお、図17の例では、最初の1文字目はすでにユーザから与えられた基準領域で特定されているため、基準領域より下方の筆記のみ分割の対象としている。
次に、情報処理装置10は、分割された各フレームに対して、フレーム内に存在する筆記数を算出する。各フレームについて、上方向に隣接する空白フレーム数、下方向に隣接する空白フレーム数を算出する。図17に示すように、上記算出された情報はフレーム数×3の情報となる。以降、筆記数が1以上のフレームを「筆記フレーム」、筆記数が0のフレームを「空白フレーム」、筆記フレームと空白フレームの並びを「フレーム配列」と記載する場合がある。
手書きの筆記の場合、文字の大きさは均一ではなく、行間の大きさにもばらつきがある、また、漢数字の「一」「二」のように元々筆記の上下に空白の多い文字も存在する。このような手書き筆記から文字枠を抽出するために、本実施例では、フレーム配列を順次探索し、抽出ルール、確定ルール、準抽出ルール1、準抽出ルール2の4つのルールを用いて一文字と推定される領域を抽出する。
図18は、実施例2に係る抽出処理の手順を示すフローチャートである。図19に示す抽出処理は、フレーム配列のインデックスiがNになるまでループする。図19に示すように、情報処理装置10は、連続筆記フレームが存在するか否かを判定する(ステップS301)。ここで言う「連続筆記フレーム」とは、筆記フレームで始まる1以上の連続したフレームで、下記4つのルールの適用可否の判定対象となるデータである。
このとき、連続筆記フレームがまだ存在しない場合(ステップS301No)、情報処理装置10は、フレーム配列のインデックスiに対応するフレームが筆記フレームであるか否かを判定する(ステップS302)。
そして、フレーム配列のインデックスiに対応するフレームが筆記フレームである場合(ステップS302Yes)、情報処理装置10は、フレーム配列のインデックスiに対応するフレームを第一要素とする連続筆記フレームを定義する(ステップS303)。その後、情報処理装置10は、フレーム配列のインデックスiを1つインクリメントし、ステップS301の処理へ移行する。なお、フレーム配列のインデックスiに対応するフレームが筆記フレームでない場合(ステップS302No)、ステップS303をスキップし、ステップS301の処理へ移行する。
一方、連続筆記フレームが存在する場合(ステップS301Yes)、情報処理装置10は、フレーム配列のインデックスiに対応するフレームを連続筆記フレームに追加する(ステップS304)。
その後、情報処理装置10は、連続筆記フレームに抽出ルールが適用可能であるか否かを判定する(ステップS305)。このとき、抽出ルールが適用可能である場合(ステップS305Yes)、情報処理装置10は、連続筆記フレームに抽出ルールを適用する(ステップS306)。
ここで、上記の「抽出ルール」は、一例として、予め定義されたN以下の数Mに対し、連続筆記フレーム数がM以上であり、かつ、連続筆記フレームと左右両端の空白数フレーム数を足した合計がN以上であることが条件とされる。この抽出ルールを満たす場合、情報処理装置10は、連続筆記フレームを中心にNフレーム分の領域を文字枠として抽出する。
図19A~図19Cは、文字枠の抽出の一例を示す図である。図19A~図19Cには、抽出ルールが適用された場合における文字枠の抽出例が示されている。図19A~図19Cには、空白フレームが白色のブロックで示される一方で、筆記フレームが灰色のブロックで示されている。図19A~図19Cの例では、N=10であり、M=7である場合の例が示されている。図19Aに示す例では、連続筆記フレームの数が8≧7、左右の空白数のうち小さいものが2であり、8+2+2≧10となり、条件に合致する。また、図19Bに示す例では、連続筆記フレームが7と奇数であれば、左右の空白フレーム1.5分を合わせて10フレーム分が文字枠として抽出される。文字には、筆記と筆記の間に空白が必要な場合があるので、図18のフローチャートで、連続筆記フレームにフレームを追記するときは、筆記フレームであるか空白フレームであるかのチェックは行っていない。また、図19Cに示すように、連続筆記フレーム中に空白フレームが入る場合もある。
また、抽出ルールが適用可能でない場合(ステップS305No)、情報処理装置10は、連続筆記フレームに確定ルールが適用可能であるか否かを判定する(ステップS307)。このとき、確定ルールが適用可能である場合(ステップS307Yes)、情報処理装置10は、連続筆記フレームに確定ルールを適用する(ステップS308)。
ここで、上記の「確定ルール」は、連続筆記フレーム数がNになり、かつ、文字枠候補が存在することが条件とされる。この確定ルールを満たす場合、該当文字枠候補を文字枠として抽出し、文字枠候補をクリアし、ループのインデクスを該当文字枠候補の最終端に設定する。文字枠候補が存在しない場合は、N個の連続筆記フレームをそのまま文字枠として抽出する。また、連続筆記フレームがフレーム配列の終端まで到達し、文字枠候補が存在する場合、該当文字枠候補を文字枠として抽出し、文字枠候補をクリアし、ループのインデクスを該当文字枠候補の最終端に設定する。文字枠候補が存在しない場合、現時点の連続筆記フレームを文字枠として抽出する。
また、確定ルールが適用可能でない場合(ステップS307No)、情報処理装置10は、連続筆記フレームに準抽出ルール1が適用可能であるか否かを判定する(ステップS309)。このとき、準抽出ルール1が適用可能である場合(ステップS309Yes)、情報処理装置10は、連続筆記フレームに準抽出ルール1を適用する(ステップS310)。
ここで、上記の「準抽出ルール1」は、「一」のような上下の空白が多い文字に対応するためのルールであり、予め定義されたN以下の数Mに対し、連続筆記フレーム数がM未満であり、かつ、連続筆記フレームと左右両端の空白数フレーム数を足した合計がN以上であることが条件とされる。この準抽出ルール1を満たす場合、情報処理装置10は、連続筆記フレームを中心にNフレーム分の領域を文字枠候補としてマークする。
図20A及び図20Bは、文字枠の候補のマークの一例を示す図である。図20A及び図20Bには、準抽出ルール1が適用された場合に文字枠の候補をマークする例が示されている。図20A及び図20Bの例にも、N=10であり、M=7である場合の例が示されている。図20Aに示す例では、4フレームの連続筆記フレームに対して、左右にそれぞれ3以上の空白があり、条件を満たす。準抽出ルール1は、あくまで候補の抽出であり、更に探索進めていくことで、図20Bに示す例のように、抽出ルールにマッチするより適切なパターンが現れる可能性がある。また探索を進めていくことで、再度準抽出ルール1にマッチする場合は、文字枠候補は置き換えられる。
また、準抽出ルール1が適用可能でない場合(ステップS309No)、情報処理装置10は、連続筆記フレームに準抽出ルール2が適用可能であるか否かを判定する(ステップS311)。このとき、準抽出ルール2が適用可能である場合(ステップS311Yes)、情報処理装置10は、連続筆記フレームに準抽出ルール2を適用する(ステップS312)。
ここで、上記の「準抽出ルール2」は、利用者が与えた基準領域よりも狭く、狭い行間で筆記された文字を抽出するためのルールである。例えば、予め定義されたN以下M以上の数N’に対し、連続筆記フレームと左右の空白フレーム数を足した合計がN’以上であることが条件とされる。この準抽出ルール2を満たす場合、情報処理装置10は、連続筆記フレームを中心にN’フレーム分の領域を文字枠候補としてマークする。
図21A及び図21Bは、文字枠の候補のマークの一例を示す図である。図21A及び図21Bには、準抽出ルール2が適用された場合に文字枠の候補をマークする例が示されている。図21A及び図21Bの例にも、N=10であり、M=7であり、N’=8である場合の例が示されている。図21Aに示す例では、連続筆記フレーム数が5、左右に2ずつの空白があるので、5+2×2=9≧8となり条件にマッチする。準抽出ルール2は、あくまで候補の抽出であり、更に探索進めていくことで、図21Bに示すように、抽出ルールにマッチするより適切なパターンが現れる可能性がある。また探索を進めていくことで、再度準抽出ルール1ないし2にマッチする場合は、文字枠候補は置き換えられる。
その後、抽出ルールまたは確定ルールのいずれかが適用された場合、情報処理装置10は、連続筆記フレームをクリアし(ステップS313)、フレーム配列のインデックスiを1つインクリメントし、ステップS301の処理へ移行する。
また、準抽出ルール1、準抽出ルール2またはいずれのルールも適用可能でない場合、フレーム配列のインデックスiを1つインクリメントし、ステップS301の処理へ移行する。
以上のように、図18に示す抽出処理を実行することで、漢字「一」、漢字「二」、小さい文字、あるいは行間がばらつく場合でも各行に対応する基準領域を抽出することができる。
[ユーザ指定]
上下方向の探索で選択された筆記集合から、一文字ごとの矩形領域を抽出し、一文字ごとに抽出された各矩形を基準領域とし、各基準領域に対して、左右方向の探索を行うことで、行ごとに分割された筆記集合を選択する場合、上下方向の探索で余分な行も抽出してしまう場合がある。その一例を図22に示す。図22は、上下方向の矩形の指定の一例を示す図である。図22に示すように、複数行の筆記を行う場合、同一の筆記者が、同様の文字サイズで選択したい情報と異なる情報を筆記する場合がある。図22の例では、3か所の地名3行分のすぐ下の行に、地名ではないコメントが記述されている。地名3行分を選択するつもりで、基準領域を指定して、上下方向の探索を行うと、選択する必要のない行まで選択してしまう可能性がある。
このような行の過剰選択を避ける側面から、情報処理装置10は、上下方向の筆記集合の選択に際しては探索を行わず、ユーザに選択すべき領域を指定させることもできる。例えば、一文字分の基準領域をユーザに指定させ(ステップS1)、ユーザから下方向にドラッグ操作を受け付け(ステップS2)、矩形領域を選択する(ステップS3)ことで、「大」、「西」および「木」の筆記集合を特定している。筆記集合を特定した後、筆記集合から、一文字ごとの矩形領域を抽出し、一文字ごとに抽出された各矩形を基準領域とし、各基準領域に対して、左右方向の探索を行うことで、ユーザの意図に即して複数行の筆記を選択することができる。
[書字方向]
なお、上記の実施例1では、書字方向が横書きである例を挙げたが、当然のことながら書字方向が縦書き、あるいは斜め書きである場合にも図9、図13、図18などの処理を実行できる。例えば、上記の実施例1で挙げた左方向への探索を所定の探索方向、例えば上方向、下方向、斜め方向へ回転してあてはめれば同様の処理を実現できる。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、受付部15a、設定部15b、第1判定部15c、第1再設定部15d、第2判定部15e、第2再設定部15fまたは筆記選択部15gを情報処理装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、受付部15a、設定部15b、第1判定部15c、第1再設定部15d、第2判定部15e、第2再設定部15fまたは筆記選択部15gを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の情報処理装置10の機能を実現するようにしてもよい。
[筆記選択プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図23を用いて、上記の実施例と同様の機能を有する筆記選択プログラムを実行するコンピュータの一例について説明する。
図23は、実施例1~実施例3に係る筆記選択プログラムを実行するコンピュータのハードウェア構成例を示す図である。図23に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110~180の各部はバス140を介して接続される。
HDD170には、図23に示すように、上記の実施例1で示した受付部15a、設定部15b、第1判定部15c、第1再設定部15d、第2判定部15e、第2再設定部15f及び筆記選択部15gと同様の機能を発揮する筆記選択プログラム170aが記憶される。この筆記選択プログラム170aは、図1に示した受付部15a、設定部15b、第1判定部15c、第1再設定部15d、第2判定部15e、第2再設定部15f及び筆記選択部15gの各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から筆記選択プログラム170aを読み出した上でRAM180へ展開する。この結果、筆記選択プログラム170aは、図23に示すように、筆記選択プロセス180aとして機能する。この筆記選択プロセス180aは、RAM180が有する記憶領域のうち筆記選択プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、筆記選択プロセス180aが実行する処理の一例として、図9や図13に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の筆記選択プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に筆記選択プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から筆記選択プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに筆記選択プログラム170aを記憶させておき、コンピュータ100がこれらから筆記選択プログラム170aを取得して実行するようにしてもよい。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)手書き入力が行われた筆記が表示される画面上で筆記探索の基準とする基準領域の指定を受け付け、
前記基準領域のうち前記筆記探索が行われる探索方向に隣接する第1の探索領域を設定すると共に、前記基準領域の前記探索方向に隣接し、かつ前記第1の探索領域に包含される第2の探索領域を設定し、
前記第1の探索領域に筆記が含まれる場合、当該筆記の前記探索方向側に隣接させて前記第1の探索領域を再設定し、
前記第1の探索領域に含まれる筆記の前記探索方向側の端部と、前記第2の探索領域に含まれる筆記の前記探索方向側の端部との差分が所定の閾値以内である場合、前記第2の探索領域の前記探索方向側の端部を前記第1の探索領域の前記探索方向側の端部と同じ位置に再設定し、
設定または再設定が行われた第1の探索領域に筆記が含まれない場合、前記筆記が探索済みである第1の探索領域に含まれる筆記を選択し、前記差分が前記所定の閾値を超える場合、前記筆記が探索済みである第2の探索領域に含まれる筆記を選択する、
処理をコンピュータに実行させる筆記選択プログラム。
(付記2)前記設定する処理は、前記基準領域に含まれる筆記が一文字に対応する場合、前記第1の探索領域および前記第2の探索領域を設定することを特徴とする付記1に記載の筆記選択プログラム。
(付記3)前記受け付ける処理は、前記基準領域の矩形に対応する四辺の指定を受け付けることを特徴とする付記1に記載の筆記選択プログラム。
(付記4)前記設定する処理は、互いが一致しない複数の第2の探索領域を設定し、
前記再設定する処理は、複数の第2の探索領域ごとに前記第2の探索領域の前記探索方向側の端部を再設定し、
前記選択する処理は、前記複数の第2の探索領域ごとに前記第1の探索領域に含まれる筆記の前記探索方向側の端部との間で得られる差分のうちいずれか1つが前記所定の閾値を超える場合、前記差分が前記所定の閾値を超える第2の探索領域に含まれる筆記を選択することを特徴とする付記1に記載の筆記選択プログラム。
(付記5)前記設定する処理は、前記基準領域の前記探索方向のサイズと、前記基準領域の前記探索方向に直交する方向のサイズとの比が所定の条件を満たす場合、前記基準領域から一文字ごとに抽出された矩形領域を前記基準領域とし、前記基準領域ごとに前記第1の探索領域および前記第2の探索領域を設定することを特徴とする付記1に記載の筆記選択プログラム。
(付記6)手書き入力が行われた筆記が表示される画面上で筆記探索の基準とする基準領域の指定を受け付け、
前記基準領域のうち前記筆記探索が行われる探索方向に隣接する第1の探索領域を設定すると共に、前記基準領域の前記探索方向に隣接し、かつ前記第1の探索領域に包含される第2の探索領域を設定し、
前記第1の探索領域に筆記が含まれる場合、当該筆記の前記探索方向側に隣接させて前記第1の探索領域を再設定し、
前記第1の探索領域に含まれる筆記の前記探索方向側の端部と、前記第2の探索領域に含まれる筆記の前記探索方向側の端部との差分が所定の閾値以内である場合、前記第2の探索領域の前記探索方向側の端部を前記第1の探索領域の前記探索方向側の端部と同じ位置に再設定し、
設定または再設定が行われた第1の探索領域に筆記が含まれない場合、前記筆記が探索済みである第1の探索領域に含まれる筆記を選択し、前記差分が前記所定の閾値を超える場合、前記筆記が探索済みである第2の探索領域に含まれる筆記を選択する、
処理をコンピュータが実行する筆記選択方法。
(付記7)前記設定する処理は、前記基準領域に含まれる筆記が一文字に対応する場合、前記第1の探索領域および前記第2の探索領域を設定することを特徴とする付記6に記載の筆記選択方法。
(付記8)前記受け付ける処理は、前記基準領域の矩形に対応する四辺の指定を受け付けることを特徴とする付記6に記載の筆記選択方法。
(付記9)前記設定する処理は、互いが一致しない複数の第2の探索領域を設定し、
前記再設定する処理は、複数の第2の探索領域ごとに前記第2の探索領域の前記探索方向側の端部を再設定し、
前記選択する処理は、前記複数の第2の探索領域ごとに前記第1の探索領域に含まれる筆記の前記探索方向側の端部との間で得られる差分のうちいずれか1つが前記所定の閾値を超える場合、前記差分が前記所定の閾値を超える第2の探索領域に含まれる筆記を選択することを特徴とする付記6に記載の筆記選択方法。
(付記10)前記設定する処理は、前記基準領域の前記探索方向のサイズと、前記基準領域の前記探索方向に直交する方向のサイズとの比が所定の条件を満たす場合、前記基準領域から一文字ごとに抽出された矩形領域を前記基準領域とし、前記基準領域ごとに前記第1の探索領域および前記第2の探索領域を設定することを特徴とする付記6に記載の筆記選択方法。
(付記11)手書き入力が行われた筆記が表示される画面上で筆記探索の基準とする基準領域の指定を受け付ける受付部と、
前記基準領域のうち前記筆記探索が行われる探索方向に隣接する第1の探索領域を設定すると共に、前記基準領域の前記探索方向に隣接し、かつ前記第1の探索領域に包含される第2の探索領域を設定する設定部と、
前記第1の探索領域に筆記が含まれる場合、当該筆記の前記探索方向側に隣接させて前記第1の探索領域を再設定する第1再設定部と、
前記第1の探索領域に含まれる筆記の前記探索方向側の端部と、前記第2の探索領域に含まれる筆記の前記探索方向側の端部との差分が所定の閾値以内である場合、前記第2の探索領域の前記探索方向側の端部を前記第1の探索領域の前記探索方向側の端部と同じ位置に再設定する第2再設定部と、
設定または再設定が行われた第1の探索領域に筆記が含まれない場合、前記筆記が探索済みである第1の探索領域に含まれる筆記を選択し、前記差分が前記所定の閾値を超える場合、前記筆記が探索済みである第2の探索領域に含まれる筆記を選択する筆記選択部と、
を有することを特徴とする情報処理装置。
(付記12)前記設定部は、前記基準領域に含まれる筆記が一文字に対応する場合、前記第1の探索領域および前記第2の探索領域を設定することを特徴とする付記11に記載の情報処理装置。
(付記13)前記受付部は、前記基準領域の矩形に対応する四辺の指定を受け付けることを特徴とする付記11に記載の情報処理装置。
(付記14)前記設定部は、互いが一致しない複数の第2の探索領域を設定し、
前記第2再設定部は、複数の第2の探索領域ごとに前記第2の探索領域の前記探索方向側の端部を再設定し、
前記筆記選択部は、前記複数の第2の探索領域ごとに前記第1の探索領域に含まれる筆記の前記探索方向側の端部との間で得られる差分のうちいずれか1つが前記所定の閾値を超える場合、前記差分が前記所定の閾値を超える第2の探索領域に含まれる筆記を選択することを特徴とする付記11に記載の情報処理装置。
(付記15)前記設定部は、前記基準領域の前記探索方向のサイズと、前記基準領域の前記探索方向に直交する方向のサイズとの比が所定の条件を満たす場合、前記基準領域から一文字ごとに抽出された矩形領域を前記基準領域とし、前記基準領域ごとに前記第1の探索領域および前記第2の探索領域を設定することを特徴とする付記11に記載の情報処理装置。