JP6290003B2 - 電子機器及び方法 - Google Patents

電子機器及び方法 Download PDF

Info

Publication number
JP6290003B2
JP6290003B2 JP2014110328A JP2014110328A JP6290003B2 JP 6290003 B2 JP6290003 B2 JP 6290003B2 JP 2014110328 A JP2014110328 A JP 2014110328A JP 2014110328 A JP2014110328 A JP 2014110328A JP 6290003 B2 JP6290003 B2 JP 6290003B2
Authority
JP
Japan
Prior art keywords
stroke
character
line
handwritten
strokes
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.)
Active
Application number
JP2014110328A
Other languages
English (en)
Other versions
JP2015225526A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2014110328A priority Critical patent/JP6290003B2/ja
Priority to US14/585,650 priority patent/US20150346995A1/en
Publication of JP2015225526A publication Critical patent/JP2015225526A/ja
Application granted granted Critical
Publication of JP6290003B2 publication Critical patent/JP6290003B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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/0488Interaction 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/04883Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/146Aligning or centring of the image pick-up or image-field
    • G06V30/1475Inclination or skew detection or correction of characters or of image to be recognised
    • G06V30/1478Inclination or skew detection or correction of characters or of image to be recognised of characters or characters lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/36Matching; Classification
    • G06V30/373Matching; Classification using a special pattern or subpattern alphabet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Character Discrimination (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明の実施形態は、文字を手書き入力する技術に関する。
近年、タブレット、PDA、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備え、手書きするための機能を有するものもある。そのためユーザは、この電子機器を用いて、テキストや画像だけでなく、手書きの文字や図形も含む文書を作成することができる。
手書きの文字は、例えば別のアプリケーションプログラムで利用するために、各種の文字認識処理によってテキスト(文字コード)に変換されることがある。
特開平11−66238号公報
しかし、タッチスクリーンディスプレイの画面上で手書き入力される文字は、単一の方向だけでなく、様々な方向に手書きされることがある。このように様々な方向に手書きされた文字では、文字認識の精度が低下する可能性がある。
本発明の一形態は、手書き入力された文字を精度よく認識できる電子機器及び方法を提供することを目的とする。
実施形態によれば、電子機器は、表示処理手段を具備する。表示処理手段は、ディスプレイの画面上で手書きにより入力される1以上のストロークであって、手書き文書上の複数の文字を含む1つの行に対応する1以上のストロークを表示する。前記表示処理手段は、前記1つの行が手書きされる方向である行の第1方向と、ストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向とを用いて定められる文字が記載された第3方向に基づいて、前記1以上のストロークの認識結果に対応する文字を表示する。
実施形態に係る電子機器の外観を示す例示的な斜視図。 同実施形態の電子機器のタッチスクリーンディスプレイ上に手書きされるストロークの例を示す図。 同実施形態の電子機器によって記憶媒体に保存される、図2の手書きストロークに対応する時系列情報(ストロークデータ)を説明するための例示的な図。 同実施形態の電子機器のシステム構成を示す例示的なブロック図。 同実施形態の電子機器によって実行されるデジタルノートブックアプリケーションプログラムの機能構成を示す例示的なブロック図。 同実施形態の電子機器のタッチスクリーンディスプレイ上に手書きされる行が正規化される例を説明するための図。 同実施形態の電子機器のタッチスクリーンディスプレイ上に手書きされる行が正規化される別の例を説明するための図。 同実施形態の電子機器によって正規化された行の例を示す図。 図8の行に含まれるストロークの始点から終点へのベクトルの例を示す図。 同実施形態の電子機器によって正規化された行の別の例を示す図。 図10の行に含まれるストロークの始点から終点へのベクトルの例を示す図。 同実施形態の電子機器によって実行される手書き入力処理の手順を例示的に示すフローチャート。 同実施形態の電子機器によって実行される手書き文字認識処理の手順を例示的に示すフローチャート。 同実施形態の電子機器によって実行される手書き文字認識処理の別の手順を例示的に示すフローチャート。
以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン又は指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレット又はスレートコンピュータとも称される携帯型電子機器であり、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わせるように取り付けられている。
本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペン又は指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルである2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれている場合を想定する。
デジタイザ及びタッチパネルの各々は、フラットパネルディスプレイの画面を覆うように設けられる。このタッチスクリーンディスプレイ17は、指を使用した画面に対するタッチ操作のみならず、ペン100を使用した画面に対するタッチ操作も検出することができる。ペン100は例えば電磁誘導ペンである。
ユーザは、外部オブジェクト(ペン100又は指)を使用してタッチスクリーンディスプレイ17上で、手書きによりストロークを入力する手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト(ペン100又は指)の動きの軌跡、つまり手書き入力操作によって手書きされるストロークの軌跡(筆跡)がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1ストロークに相当する。多数のストロークの集合、つまり多数の軌跡(筆跡)の集合が、手書きの文字や図形などを構成する。
本実施形態では、このような手書きストローク(手書きの文字及び図形)は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図3を参照して後述するが、この時系列情報は、概して、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、手書きにより入力可能なある一つのストロークを表現可能なデータであればどのようなものであってもよく、例えば、このストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)を含む。これらストロークデータの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
タブレットコンピュータ10は、記憶媒体から既存の任意の文書データを読み出し、この文書データに対応する文書、つまり、時系列情報によって示される複数のストロークそれぞれに対応する軌跡が描画された手書き文書を、画面上に表示することができる。
次いで、図2及び図3を参照して、ユーザによって手書きされたストローク(手書きの文字、マーク、図形、表など)と時系列情報との関係について説明する。図2は、ペン100などを使用してタッチスクリーンディスプレイ17上に手書きされる文書の例を示している。
この文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図2においては、「ABC」の手書き文字列が「A」、「B」、「C」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「A」のすぐ近くに手書きされた場合が想定されている。
手書き文字「A」は、ペン100などを使用して手書きされる2つのストローク(「∧」形状のストローク、「−」形状のストローク)によって、つまり2つの軌跡によって表現される。最初に手書きされる「∧」形状のペン100の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標SD11、SD12、…SD1nが得られる。同様に、次に手書きされる「−」形状のペン100の軌跡もサンプリングされ、これによって「−」形状のストロークの時系列座標SD21、SD22、…SD2nが得られる。
手書き文字「B」は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。手書き文字「C」は、ペン100などを使用して手書きされた1つのストローク、つまり1つの軌跡によって表現される。手書きの矢印は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。
図3は、図2の文書に対応する時系列情報200を示している。時系列情報200は、複数のストロークデータSD1、SD2、…、SD7を含む。時系列情報200内においては、これらストロークデータSD1、SD2、…、SD7は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
時系列情報200において、先頭の2つのストロークデータSD1、SD2は、手書き文字「A」の2つのストロークをそれぞれ示している。3番目と4番目のストロークデータSD3、SD4は、手書き文字「B」を構成する2つのストロークをそれぞれ示している。5番目のストロークデータSD5は、手書き文字「C」を構成する1つのストロークを示している。6番目と7番目のストロークデータSD6、SD7は、手書き矢印を構成する2つのストロークをそれぞれ示している。
各ストロークデータは、一つのストロークに対応する座標データ系列(時系列座標)、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいて、複数の座標は、ストロークが書かれた順に時系列に並べられている。例えば、手書き文字「A」に関しては、ストロークデータSD1は、手書き文字「A」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)、つまりn個の座標データSD11、SD12、…SD1nを含む。ストロークデータSD2は、手書き文字「A」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりn個の座標データSD21、SD22、…SD2nを含む。なお、座標データの数nはストロークデータ毎に異なっていてもよい。
各座標データは、対応する軌跡内のある1点に対応するX座標及びY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)及びY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)及びY座標(Y1n)を示す。
また、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)と、ある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Tとして付加してもよい。各座標データにタイムスタンプ情報Tが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
さらに、各座標データは、その座標に対応する点が手書きされた時点の、外部オブジェクト(例えば、ペン100)が画面に接触されたことによる圧力Pを含んでいてもよい。
本実施形態では、上述したように、手書きされるストロークは、イメージや文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報200として記憶されるので、言語に依存せずに手書きの文字や図形を扱うことができる。よって、本実施形態の時系列情報200の構造は、使用言語が異なる世界中の様々な国で共通に使用できる。
図4は、タブレットコンピュータ10のシステム構成を示す図である。
タブレットコンピュータ10は、図4に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ104、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108、等を備える。
CPU101は、タブレットコンピュータ10内の各種コンポーネントの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム(OS)201、及び各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、デジタルノートブックアプリケーションプログラム202が含まれている。このデジタルノートブックアプリケーションプログラム202は、手書き入力された1以上のストロークに対応する文字を認識する文字認識機能を有する。
また、CPU101は、BIOS−ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ104との通信を実行する機能も有している。
グラフィクスコントローラ104は、本タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。このグラフィクスコントローラ104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17A上にはタッチパネル17B及びデジタイザ17Cが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び接触位置の動き等はタッチパネル17Bによって検出される。デジタイザ17CはLCD17Aの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン100が接触される画面上の接触位置、接触位置の動き、接触圧力、等はデジタイザ17Cによって検出される。
無線通信デバイス107は、無線LAN又は3G移動通信などの無線通信を実行するように構成されたデバイスである。EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ10を電源オン又は電源オフする機能を有している。
上述したように、ユーザは、タッチスクリーンディスプレイ17の画面に表示された手書き文書に、文字を構成するストロークを手書き入力する。入力されたストロークに対応するストロークデータには、デジタルノートブックアプリケーションプログラム202によって文字認識処理が施され、これによりストロークデータが文字に変換される。
ところで、ユーザは、ストロークを含む行を、手書き文書上の任意の方向に手書きすることができる。また、行内のストロークで構成される文字は、縦書きと横書きのいずれかの向きに手書きされている。つまり、手書き文書上では、任意方向の行内にストロークが手書きされ、且つ縦書きの文字を含む行と横書きの文字を含む行とが混在し得る。文字認識処理では、手書き文書上のストロークが例えば行単位で文字認識されるが、所定の行構造(例えば、一定の行の方向に、一定の文字の向きで手書きされること)を前提として、行内のストロークに文字認識処理が施された場合、文字を適切に認識することができない可能性がある。
そのため本実施形態では、手書き文書上に手書きされた1以上のストロークを含む任意の方向の行が、縦書きと横書きのいずれであるかを決定し、その決定に応じた文字認識を行う。本実施形態では、例えば、手書き文書上の1つの行が手書きされる方向(第1方向)と、ストロークの始点から終点への1以上のベクトルに対応する、1以上のストロークの第2方向とを用いて定められる文字が記載された第3方向(すなわち、縦書き又は横書き)に基づいて、それら1以上のストロークに対応する文字を認識(表示)する。行が手書きされる方向とストロークの始点から終点へのベクトルとを用いることによって、行が縦書きと横書きのいずれであるかを高精度に決定することができる。これにより、手書き入力された文字を適切に認識することができる。
図5は、本タブレットコンピュータ10によって実行されるデジタルノートブックアプリケーションプログラム202の機能構成の例を示す。デジタルノートブックアプリケーションプログラム202は、タッチスクリーンディスプレイ17を用いた操作によって入力される時系列情報(ストロークデータ)から文字を認識する。
デジタルノートブックアプリケーションプログラム202は、例えば、軌跡表示処理部301、時系列情報生成部302、行検出部303、手書き方向検出部304、文字認識部305、文書保存処理部306、文書取得処理部307、及び文書表示処理部308を備える。
タッチスクリーンディスプレイ17は、「タッチ」、「移動(スライド)」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動(スライド)」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
軌跡表示処理部301及び時系列情報生成部302は、タッチスクリーンディスプレイ17によって発生される「タッチ」、「移動(スライド)」又は「リリース」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントには、移動先の接触位置の座標が含まれている。「リリース」イベントには、接触位置が画面から離された位置の座標が含まれている。したがって、軌跡表示処理部301及び時系列情報生成部302は、タッチスクリーンディスプレイ17から、接触位置の動きの軌跡に対応する座標列を受信することができる。
軌跡表示処理部301は、タッチスクリーンディスプレイ17の画面上で手書きにより入力される1以上のストロークを表示する。軌跡表示処理部301は、タッチスクリーンディスプレイ17から座標列を受信し、この座標列に基づいて、ペン100等を使用した手書き入力操作によって手書きされる各ストロークの軌跡をタッチスクリーンディスプレイ17内のLCD17Aの画面上に表示する。この軌跡表示処理部301により、画面にペン100が接触している間のペン100の軌跡、つまりストロークがLCD17Aの画面上に描画される。
時系列情報生成部302は、タッチスクリーンディスプレイ17から出力される上述の座標列を受信し、この座標列に基づいて、図3で詳述したような構造を有する時系列情報(ストロークデータ)を生成する。この場合、時系列情報、つまりストロークの各点に対応する座標及びタイムスタンプ情報は作業メモリ401に一時保存されてもよい。また、時系列情報生成部302は、生成された時系列情報(ストロークデータ)を行検出部303に出力する。なお、行検出部303は、表示中の手書き文書の文字認識が要求されたことに応じて、その手書き文書に対応する時系列情報を作業メモリ401や記憶媒体402から読み出すようにしてもよい。
なお、軌跡表示処理部301及び時系列情報生成部302は、マウス、ペン型マウス、タッチパッド等の各種のポインティングデバイスから、ディスプレイの画面上の位置、その位置の動きの軌跡に対応する座標列を受信してもよい。その場合、軌跡表示処理部301は、このようなポインティングデバイスを用いて、画面上で手書きにより入力される1以上のストロークを表示する。また、時系列情報生成部302は、ポインティングデバイスから出力される座標列を受信し、この座標列に基づいて、図3で詳述したような構造を有する時系列情報(ストロークデータ)を生成する。
ディスプレイ17の画面上で手書きにより入力されるストロークは、手書き文書上の行を構成する。ユーザは、例えば、タッチスクリーンディスプレイ17の画面上で、手書き文書上の任意の方向に、ストロークを含む行を手書きすることができる。軌跡表示処理部301は、ディスプレイ17の画面上で手書きにより入力される1以上のストロークであって、手書き文書上の複数の文字を含む1つの行に対応する1以上のストロークを表示する。
行検出部303、手書き方向検出部304、文字認識部305、及び文書表示処理部308は、手書き文書上の1つの行が手書きされる方向である行の第1方向と、ストロークの始点から終点へのベクトルに対応する1以上のストローク第2方向とを用いて定められる文字が記載された第3方向に基づいて、1以上のストロークの認識結果に対応する文字を画面に表示する。行検出部303と手書き方向検出部304とは、手書き文字認識処理の前処理として、手書きされた文字を含む任意方向の行が、縦書きと横書きのいずれであるかを決定する。
より具体的には、まず、行検出部303は、手書き入力されたストロークに対応するストロークデータを用いて、手書き文書内の行を検出する。行検出部303は、例えば、時系列順に隣り合うストロークがしきい値以内の範囲にある場合に、それらストロークが1つの行に含まれると判断する。
そして、手書き方向検出部304は、検出された行に含まれるストロークに基づいて、その行を正規化する。この正規化は、行(行内の文字)が手書き文書上で手書きされた方向が、規定された方向になるように、行(行内のストローク)を回転させることを示す。手書き方向検出部304は、行内の時系列順のストロークの各々に対応する座標データ列を用いて、その行が手書き文書上で手書きされた方向が、正規化として予め規定された方向になるようにストロークを回転させる。以下では、説明を簡単にするために、左から右へ手書きされた行が、正規化された行であると規定されている場合を想定する。
例えば、行(行内の文字)が左から右へ手書きされている場合、その行内のストロークは既に正規化されている状態にあると云え、手書き方向検出部304はストロークを回転させない。また、例えば、行(行内の文字)が上から下へ手書きされている場合、手書き方向検出部304は、その行内のストロークを反時計回りに90度回転させることによって、当該行を正規化する。
図6及び図7を参照して、様々な向きに手書きされた行が正規化される例を説明する。
図6に示す手書き文書上には、正規化されている行51と、正規化されていない行51A,51B,51Cとが手書きされている。正規化されている行51は、ストローク511、ストローク512、ストローク513、……、ストローク522の順に手書きされているので、正規化として予め規定された方向(ここでは、左から右)に手書きされた行である。よって、手書き方向検出部304は、行51に正規化のための処理を施さない。
一方、正規化されていない行51A,51B,51Cは、手書き方向検出部304によって正規化される。
より具体的には、行51Aは、ストローク511A、ストローク512A、ストローク513A、……、ストローク522Aの順に手書きされているので、手書き文書上の右から左へ手書きされた行である。そのため、手書き方向検出部304は、行51Aを反時計回りに180度回転することによって行51Aを正規化する。
行51Bは、ストローク511B、ストローク512B、ストローク513B、……、ストローク522Bの順に手書きされているので、手書き文書上の上から下へ手書きされた行である。そのため、手書き方向検出部304は、行51Bを反時計回りに90度回転することによって行51Bを正規化する。
行51Cは、ストローク511C、ストローク512C、ストローク513C、……、ストローク522Cの順に手書きされているので、手書き文書上の下から上へ手書きされた行である。そのため、手書き方向検出部304は、行51Cを反時計回りに270度回転することによって行51Cを正規化する。
また、図7に示す例には、正規化されている行61と、正規化されていない行61A,61B,61Cとが手書きされている。正規化されている行61は、ストローク611、ストローク612、ストローク613、……、ストローク620の順に手書きされているので、正規化として予め規定された方向(ここでは、左から右)に手書きされた行である。よって、手書き方向検出部304は、行61に正規化のための処理を施さない。
一方、正規化されていない行61A,61B,61Cは、手書き方向検出部304によって正規化される。
より具体的には、行61Aは、ストローク611A、ストローク612A、ストローク613A、……、ストローク620Aの順に手書きされているので、手書き文書上の右から左へ手書きされた行である。そのため、手書き方向検出部304は、行61Aを反時計回りに180度回転することによって行61Aを正規化する。
行61Bは、ストローク611B、ストローク612B、ストローク613B、……、ストローク620Bの順に手書きされているので、手書き文書上の上から下へ手書きされた行である。そのため、手書き方向検出部304は、行61Bを反時計回りに90度回転することによって行61Bを正規化する。
また、行61Cは、ストローク611C、ストローク612C、ストローク613C、……、ストローク620Cの順に手書きされているので、手書き文書上の下から上へ手書きされた行である。そのため、手書き方向検出部304は、行61Cを反時計回りに270度回転することによって行61Cを正規化する。
なお、図6及び図7では、手書きされる方向が90度刻みで異なる行の例を示したが、手書き方向検出部304は、任意の角度に手書きされた行を同様にして正規化することができる。
次いで、手書き方向検出部304は、正規化された行内の各ストロークの始点から終点へのベクトル(ストロークの方向成分)を算出する。つまり、手書き方向検出部304は、行に含まれるストロークに対応するストロークデータを用いて、始点の座標から終点の座標へのベクトルを算出する。
図8及び図9を参照して、ストロークの始点から終点へのベクトルが算出される例を説明する。図8及び図9に示すストロークは、アルファベットの文字を構成するストロークである。
図8に示す例では、手書き文書上に、ストローク511〜522を含む行51と、ストローク611〜620を含む行61とが手書きされている。行51は、ストローク511、ストローク512、ストローク513、……、ストローク522の順に手書きされているので、この行51は左から右へ手書きされている。また、行61は、ストローク611、ストローク612、ストローク613、……、ストローク620の順に手書きされているので、この行61も左から右へ手書きされている。したがって、行51と行61とは、いずれも左から右へ手書きされているので(すなわち、正規化として規定された方向に手書きされているので)、正規化された行であると云える。
図9に示すように、手書き方向検出部304は、正規化された行51に含まれるストローク511〜522に対応する、ストロークの始点から終点へのベクトル531〜542を算出する。また、手書き方向検出部304は、正規化された行61に含まれるストローク611〜620に対応する、ストロークの始点から終点へのベクトル631〜640を算出する。手書き方向検出部304は、例えば、ストローク511の始点511Sから終点511Eへのベクトル531を算出する。また、手書き方向検出部304は、例えば、ストローク611の始点611Sから終点611Eへのベクトル631を算出する。同様にして、手書き方向検出部304は、正規化された行内の各ストロークに対応するベクトルを算出する。
また、図10及び図11は、ストロークの始点から終点へのベクトルが算出される別の例を示す。図10及び図11に示すストロークは、日本語の文字を構成するストロークである。
図10に示す例では、手書き文書上に、ストローク711〜723を含む行71と、ストローク811〜824を含む行81とが手書きされている。行71は、ストローク711、ストローク712、ストローク713、……、ストローク723の順に手書きされているので、この行71は左から右へ手書きされている。また、行81は、ストローク811、ストローク812、ストローク813、……、ストローク824の順に手書きされているので、この行81も左から右へ手書きされている。したがって、行71と行81とは、いずれも左から右へ手書きされているので、正規化された行であると云える。
図11に示すように、手書き方向検出部304は、正規化された行71に含まれるストローク711〜723に対応する、ストロークの始点から終点へのベクトル731〜743を算出する。また、手書き方向検出部304は、正規化された行81に含まれるストローク811〜824に対応する、ストロークの始点から終点へのベクトル831〜844を算出する。
このように、手書き方向検出部304は、手書き入力されたストロークに対応するストロークデータ(時系列情報)を用いることにより、ストロークで構成される文字の種類に関わらず、正規化された行に含まれるストロークに対応する、ストロークの始点から終点へのベクトルを算出することができる。
次いで、手書き方向検出部304は、算出されたベクトルを用いて、行内の文字が縦書きと横書きのいずれであるかを決定する。つまり、手書き方向検出部304は、行の第1方向が正規化された場合の、ストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向を用いて定められる文字が記載された第3方向を決定する。以下では、行内の文字が縦書きと横書きのいずれであるかを決定するいくつかの構成の例を説明する。
第1の例として、手書き方向検出部304は、行内のストロークに対応するベクトルを合成することによって、合成ベクトルを算出する。手書き方向検出部304は、算出された合成ベクトルの向きに基づいて、行内の文字が縦書きと横書きのいずれであるかを決定する。手書き方向検出部304は、合成ベクトルが、手書き文書上で下方向へのベクトルである場合、その行を横書きに決定する。また、手書き方向検出部304は、合成ベクトルが、手書き文書上で下方向へのベクトルでない場合、すなわち、上方向へのベクトルである場合、その行を縦書きに決定する。換言すると、手書き方向検出部304は、行の第1方向が左から右への方向であり、且つストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向が下方向である場合、文字が記載された第3方向が横書きであることを決定する。また、手書き方向検出部304は、行の第1方向が左から右への方向であり、且つストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向が上方向である場合、文字が記載された第3方向が縦書きであることを決定する。
より具体的には、手書き方向検出部304は、算出された合成ベクトルの垂直方向成分の正負に基づいて、行内の文字が縦書きと横書きのいずれであるかを決定する。手書き方向検出部304は、合成ベクトルの垂直方向成分が負である場合、その行を横書きに決定する。また、手書き方向検出部304は、合成ベクトルの垂直方向成分が正である場合、その行を縦書きに決定する。
なお、手書き方向検出部304は、合成ベクトルが、手書き文書上で右下方向へのベクトル又は左下方向へのベクトルである場合に、その行を横書きに決定してもよい。また、手書き方向検出部304は、合成ベクトルが、手書き文書上で右上方向へのベクトル又は左上方向へのベクトルである場合に、その行を縦書きに決定してもよい。換言すると、手書き方向検出部304は、行の第1方向が左から右への方向であり、且つストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向が右下方向又は左下方向である場合、文字が記載された第3方向が横書きであることを決定してもよい。また、手書き方向検出部304は、行の第1方向が左から右への方向であり、且つストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向が右上方向又は左上方向である場合、文字が記載された第3方向が縦書きであることを決定してもよい。
また、手書き方向検出部304は、合成ベクトルを算出する際に、ベクトルに対応するストロークの長さや形状の特徴に基づく重みで、ベクトルを重み付けして合成してもよい。例えば、ストロークが長いほど、重みに大きな値が設定される。また、ストロークの形状が複雑である(例えば、ストロークの向きの変化が大きい)ほど重みに小さな値が設定され、複雑でないほど重みに大きな値が設定される。
さらに、合成ベクトルの向きが水平方向に近く、縦書きと横書きのいずれに判定するべきかがあいまいである場合(例えば、合成ベクトルの垂直方向成分が0を含む所定の範囲内である場合)、手書き方向検出部304は、その行が縦書きと横書きのいずれであるかの決定を保留してもよい。手書き方向検出部304は、手書き文書内の他の行が縦書きと横書きのいずれであるかの判定結果が確定された後に、その判定結果を用いて、決定が保留された行が縦書きと横書きのいずれであるかを決定する。手書き方向検出部304は、決定が保留された行の判定結果として、例えば、手書き文書内の他の行の判定結果で支配的な方を採用する。また、他の行の判定結果で、縦書きと横書きのいずれも支配的でない場合は、合成ベクトルに基づく判定を採用してもよい。これにより、合成ベクトルがほぼ水平の向きを有する場合に、行内の文字が縦書きと横書きのいずれであるかの誤判定を低減することができる。
さらに、縦書きと横書きのいずれに判定するかあいまいである場合には、手書き方向検出部304は、縦書きと横書きの内、予め規定された方(デフォルト値)に決定されるようにしてもよい。ユーザは、例えば、設定画面を用いて、縦書きと横書きのいずれに判定するかあいまいである場合に、縦書きと横書きのどちらに決定されるかを選択しておくことができる。
次いで、第2の例として、手書き方向検出部304は、行内の複数のストロークに対応する複数のベクトルの内の、手書き文書上で下方向へのベクトル(すなわち、垂直方向成分が負であるベクトル)の数を算出し、行内の全ベクトル数に対する下方向へのベクトルの数の割合に基づいて、その行内の文字が縦書きと横書きのいずれであるかを決定してもよい。手書き方向検出部304は、全ベクトル数に対する下方向へのベクトルの数の割合がしきい値より大きい場合、その行を横書きに決定する。手書き方向検出部304は、全ベクトル数に対する下方向へのベクトルの数の割合がしきい値以下である場合、その行を縦書きに決定する。換言すると、手書き方向検出部304は、行の第1方向が左から右への方向であり、且つ1以上のストロークに対応する、ストロークの始点から終点への1以上のベクトルの内の下方向へのベクトルの割合がしきい値より大きい場合、文字が記載された第3方向が横書きであることを決定する。また、手書き方向検出部304は、行の第1方向が左から右への方向であり、且つ前記1以上のベクトルの内の下方向へのベクトルの割合がしきい値以下である場合、文字が記載された第3方向が縦書きであることを決定する。しきい値は、例えば、0.5に設定され、その場合、行内の複数のストロークに対応する複数のベクトルに、下方向へのベクトルと上方向へのベクトルのいずれが多く含まれているかが判定される。なお、しきい値は、判定精度が高くなるように事前に調整することもできる。
なお、手書き方向検出部304は、行内の複数のストロークに対応する複数のベクトルの内の、手書き文書上で右下方向へのベクトルの数を算出し、行内の全ベクトル数に対する右下方向へのベクトルの数の割合に基づいて、その行内の文字が縦書きと横書きのいずれであるかを決定してもよい。
また、全ベクトル数に対する下方向へのベクトルの数の割合がしきい値を含む所定の範囲内(例えば、しきい値を中心とする+0.1から−0.1の範囲内)である場合には、手書き方向検出部304は、手書き文書内の他の行が縦書きであるか横書きであるかを考慮して、その行が縦書きと横書きのいずれであるかを決定してもよい。これにより、例えば、下方向へのベクトルの数と上方向へのベクトルの数とがほぼ等しい場合に、行内の文字が縦書きと横書きのいずれであるかの誤判定を低減することができる。
第3の例として、手書き方向検出部304は、行内の1以上のストロークに対応する、ストロークの始点から終点への1以上のベクトルに加えて、それら1以上のストロークの内の第1ストロークの終点から、当該第1ストロークに後続する第2ストロークの始点へのベクトル(以下、ストローク間ベクトルとも称する)も用いて、行内の文字が縦書きと横書きのいずれであるかを決定する。つまり、手書き方向検出部304は、行の第1方向と、ストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向と、1以上のストロークの内の第1ストロークの終点から、当該第1ストロークに後続する第2ストロークの始点へのベクトルに対応する第4方向とを用いて定められる文字が記載された第3方向を決定する。
より具体的には、まず、手書き方向検出部304は、行内の各ストロークの始点から終点へのベクトルを算出する。そして、手書き方向検出部304は、行内の隣り合うストロークを用いて、先行する第1ストロークの終点から、当該第1ストロークに後続する第2ストロークの始点へのストローク間ベクトルを算出する。手書き方向検出部304は、算出されたストローク間ベクトルが上下(垂直方向)に反転されたベクトルを算出する。
手書き方向検出部304は、算出された行内の各ストロークに対応するベクトルと、上下に反転されたストローク間ベクトルとを合成することによって、合成ベクトルを算出する。手書き方向検出部304は、合成ベクトルを算出する際に、行内の各ストロークに対応するベクトルを、対応するストロークの長さや形状の特徴に基づく重みで重み付けし、ストローク間ベクトルを、当該ベクトルの大きさに基づく重みで重み付けして、ベクトルを合成してもよい。手書き方向検出部304は、第1の例と同様にして、算出された合成ベクトルの向きに基づいて、行内の文字が縦書きと横書きのいずれであるかを決定する。
ストローク間ベクトルは、1つのストロークの手書き入力が完了した位置から、次のストロークを書き出す位置へのベクトルである。そして、例えば左から右に手書きされた横書きの行は、1つのストロークの手書き入力が行の下方で完了した後、次のストロークが行の上方の位置で書き出されることが多く、また左から右に手書きされた縦書きの行は、1つのストロークの手書き入力が行の上方で完了した後、次のストロークが行の下方の位置で書き出されることが多いという性質を有する。そのため、ストローク間ベクトルが上下に反転されたベクトルをさらに用いて合成ベクトルを算出することによって、行内の文字が縦書きと横書きのいずれであるかの誤判定を低減することができる。
また、ストローク間ベクトルの大きさが大きい場合(しきい値以上である場合)、そのストローク間ベクトルの終点から始まるストロークは、文字の先頭のストロークである可能性が高い。そのため、手書き方向検出部304は、ストローク間ベクトルの大きさがしきい値以上であることに基づいて、文字の先頭のストロークを検出し、文字の先頭のストロークの始点に基づいて、行内の文字が縦書きと横書きのいずれであるかを決定してもよい。手書き方向検出部304は、例えば、文字の先頭のストロークの始点が行の上部に多い場合に、その行を横書きに決定し、始点が行の下部に多い場合に、その行を縦書きに決定する。
ところで、行内の文字が縦書きと横書きのいずれであるかを判定する方法として、行内のストロークを包含する矩形の幅と高さとの比を用いる方法がある。この方法では、矩形の幅が高さよりも大きい場合に、行内の文字が横書きであると判定され、矩形の幅が高さよりも小さい場合に、行内の文字が縦書きであると判定される。しかし、この方法では、例えば図7に示した行61内のストロークを包含する矩形の幅が高さよりも大きいので、行61内の文字が横書きであると誤って判定される。
本実施形態では、上述した手書き方向検出部304の構成によって、このような誤判定を回避し、例えば、行61内の文字が縦書きであることを正しく判定することができる。なお、手書き方向検出部304は、行を正規化するための処理を行うことなく、行が手書きされる方向(第1方向)と、当該行に含まれる1以上のストロークに対応する、ストロークの始点から終点への1以上のベクトル(第2方向)との関係に基づいて、行が縦書きと横書きのいずれであるかを決定するように構成されてもよい。
次いで、文字認識部305は、行内の文字が縦書きと横書きのいずれであるかに基づいて、その行内の文字を認識する。文字認識部305は、例えば、記憶媒体402に格納された手書き文字辞書データ402Aを用いて、行内の文字を認識する。
より具体的には、まず、文字認識部305は、手書き入力されたストロークに対応するストロークデータを用いて、ストロークに対応する特徴量(第1特徴量)を算出する。文字認識部305は、例えば、行内の文字が縦書きと横書きのいずれであるかと、ストロークの形状、順序等に基づいて特徴量を算出する。
そして、文字認識部305は、算出された第1特徴量と、手書き文字辞書データ402A内の文字に対応する第2特徴量とを用いて、手書き入力されたストロークで構成される文字と手書き文字辞書データ402A内の文字の各々との類似度を算出する。この手書き文字辞書データ402Aは、手書きされる様々な文字の特徴量のデータを含み、例えば、手書きされたストロークに対応するストロークデータや、手書き文書データ402Bを解析することによって生成される。手書き文字辞書データ402Aは、例えばユーザ毎に生成されるので、各ユーザによって手書きされた文字の特徴を反映することができる。
文字認識部305は、例えば、手書き入力されたストロークに対応する第1特徴量と、手書き文字辞書データ402Aに示される複数の手書き文字に対応する複数の第2特徴量の各々との類似度を算出する。そして、文字認識部305は、手書き文字辞書データ402A内の複数の文字から、最も類似度が高い文字を検出し、その文字を手書き入力されたストロークに対応する文字に決定する。
文書表示処理部308は、行内のストロークを認識された文字に置き換えることによって、文字を画面に表示する。文書表示処理部308は、例えば、認識された文字が利用されるアプリケーションプログラム(例えば、ワードプロセッシングソフトウェア、プレゼンテーションソフトウェア、メーラ、等)に応じたフォーマットで、文字を表示することができる。
文書保存処理部306は、認識された文字を含む整形文書データを、所定のフォーマットで記憶媒体402に保存してもよい。記憶媒体402は、例えば、タブレットコンピュータ10内のストレージデバイスである。保存された整形文書データは、上述したアプリケーションプログラム等で利用することができる。
また、文書保存処理部306は、生成されたストロークデータ(作業メモリ401に一時保存されたストロークデータ)を、手書き文書データ402Bとして記憶媒体402に保存する。
文書取得処理部307は、記憶媒体402から既に格納されている任意の手書き文書データ402Bを読み出す。読み出された手書き文書データ402Bは文書表示処理部308に送られる。文書表示処理部308は、手書き文書データ402Bを解析し、この解析結果に基づいて、ストロークデータ(時系列情報)によって示される各ストロークの軌跡を含む文書(ページ)を画面上に表示する。
次いで、図12のフローチャートを参照して、デジタルノートブックアプリケーションプログラム202によって実行される手書き入力処理の手順の例について説明する。
軌跡表示処理部301は、手書き入力操作によるペン100等の動きの軌跡(ストローク)を文書上に表示する(ブロックB11)。また、時系列情報生成部302は、手書き入力操作による軌跡に対応する座標列に基づいて上述の時系列情報(時系列順に並べられたストロークデータ)を生成し、その時系列情報を作業メモリ401に一時保存する(ブロックB12)。
図13のフローチャートは、タブレットコンピュータ10によって実行される手書き文字認識処理の手順の例を示す。以下では、表示中の手書き文書内の文字が認識されることを想定する。
まず、行検出部303は、手書き入力されたストロークに対応するストロークデータを用いて、手書き文書内の行を検出する(ブロックB201)。行検出部303は、例えば、時系列順に隣り合うストロークがしきい値以内の範囲にある場合に、それらストロークが1つの行に含まれると判断する。
そして、手書き方向検出部304は、検出された行に含まれるストロークに基づいて、その行を正規化する(ブロックB202)。手書き方向検出部304は、行内の時系列順の複数のストロークの各々に対応する座標データ列を用いて、その行(行内の文字)が手書き文書上で手書きされた方向が所定の方向(例えば、左から右に進む方向)になるようにストロークを回転させる。例えば、行(行内の文字)が左から右へ手書きされている場合、その行内の複数のストロークは既に正規化されている状態にあると云え、手書き方向検出部304はストロークを回転させない。また、例えば、行(行内の文字)が上から下へ手書きされている場合、手書き方向検出部304は、その行内の複数のストロークを反時計回りに90度回転させることによって、当該行を正規化する。
次いで、手書き方向検出部304は、行内のストロークの始点から終点へのベクトルを算出する(ブロックB203)。そして、手書き方向検出部304は、行内に後続するストロークがあるか否かを判定する(ブロックB204)。行内に後続するストロークがある場合(ブロックB204のYES)、ブロックB203に戻り、その後続するストロークの始点から終点へのべクトルを算出する。一方、行内に後続するストロークがない場合(ブロックB204のNO)、手書き方向検出部304は、行内の複数のストロークに対応する複数のベクトルを合成することによって、合成ベクトルを算出する(ブロックB205)。
手書き方向検出部304は、算出された合成ベクトルが、手書き文書上で下方向へのベクトルであるか否かを判定する(ブロックB206)。合成ベクトルが下方向へのベクトルである場合(ブロックB206のYES)、手書き方向検出部304は、その行内の文字の手書き方向を横書きに決定する(ブロックB207)。また、合成ベクトルが下方向へのベクトルでない場合(ブロックB206のNO)、すなわち、上方向へのベクトルである場合、手書き方向検出部304は、その行内の文字の手書き方向を縦書きに決定する(ブロックB208)。
次いで、文字認識部305は、決定された行内の文字の手書き方向に基づいて、その行内の文字を認識する(ブロックB209)。文字認識部305は、例えば、記憶媒体402に格納された手書き文字辞書データ402Aを用いて、行内の文字を認識する。文書表示処理部308は、行内のストロークを認識された文字(文字コードに対応するフォント)に置き換えることによって、文字を手書き文書上に表示する(ブロックB210)。
そして、手書き方向検出部304は、手書き文書内に後続する行があるか否かを判定する(ブロックB211)。後続する行がある場合(ブロックB211のYES)、ブロックB202に戻り、その後続する行内の文字を認識するための処理を実行する。後続する行がない場合(ブロックB211のNO)、処理を終了する。
また、図14のフローチャートは、タブレットコンピュータ10によって実行される手書き文字認識処理の手順の別の例を示す。以下では、表示中の手書き文書内の文字が認識されることを想定する。
まず、行検出部303は、手書き入力されたストロークに対応するストロークデータを用いて、手書き文書内の行を検出する(ブロックB301)。そして、手書き方向検出部304は、検出された行に含まれるストロークに基づいて、その行を正規化する(ブロックB302)。
次いで、手書き方向検出部304は、行内のストロークの始点から終点へのベクトルを算出する(ブロックB303)。そして、手書き方向検出部304は、行内に後続するストロークがあるか否かを判定する(ブロックB304)。行内に後続するストロークがある場合(ブロックB304のYES)、ブロックB303に戻り、その後続するストロークの始点から終点へのべクトルを算出する。一方、行内に後続するストロークがない場合(ブロックB304のNO)、手書き方向検出部304は、行内の複数のストロークに対応する複数のベクトルの内の、手書き文書上で下方向へのベクトルの数を算出する(ブロックB305)。
手書き方向検出部304は、全ベクトル数に対する下方向へのベクトルの数の割合がしきい値より大きいか否かを判定する(ブロックB306)。全ベクトル数に対する下方向へのベクトルの数の割合がしきい値より大きい場合(ブロックB306のYES)、手書き方向検出部304は、行内の文字の手書き方向を横書きに決定する(ブロックB307)。一方、全ベクトル数に対する下方向へのベクトルの数の割合がしきい値以下である場合(ブロックB306のNO)、手書き方向検出部304は、行内の文字の手書き方向を縦書きに決定する(ブロックB308)。
次いで、文字認識部305は、決定された行内の文字の手書き方向に基づいて、その行内の文字を認識する(ブロックB309)。文書表示処理部308は、行内のストロークを認識された文字に置き換えることによって、文字を手書き文書上に表示する(ブロックB310)。
そして、手書き方向検出部304は、手書き文書内に後続する行があるか否かを判定する(ブロックB311)。後続する行がある場合(ブロックB311のYES)、ブロックB302に戻り、その後続する行内の文字を認識するための処理を実行する。後続する行がない場合(ブロックB311のNO)、処理を終了する。
以上説明したように、本実施形態によれば、手書き入力された文字を精度よく認識することができる。軌跡表示処理部301は、ディスプレイ17の画面上で手書きにより入力される1以上のストロークであって、手書き文書上の複数の文字を含む1つの行に対応する1以上のストロークを表示する。行検出部303、手書き方向検出部304、文字認識部305、及び文書表示処理部308は、1つの行が手書きされる方向である行の第1方向と、ストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向とを用いて定められる文字が記載された第3方向に基づいて、1以上のストロークの認識結果に対応する文字を表示する。
これにより、手書き文書上で任意の角度の行にストロークが手書きされ、且つ縦書きの文字を含む行と横書きの文字を含む行とが混在している場合にも、行内のストロークから文字を正しく表示することができる。
なお、図12から図14のフローチャートで説明した本実施形態の処理手順は全てソフトウェアによって実行することができる。このため、この処理手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
17A…LCD、202…デジタルノートブックアプリケーション、301…軌跡表示処理部、302…時系列情報生成部、303…行検出部、304…手書き方向検出部、305…文字認識部、306…文書保存処理部、307…文書取得処理部、308…文書表示処理部、401…作業メモリ、402…記憶媒体、402A…手書き文字辞書データ、402B…手書き文書データ

Claims (15)

  1. ディスプレイの画面上で手書きにより入力される1以上のストロークであって、手書き文書上の複数の文字を含む1つの行に対応する1以上のストロークを表示する表示処理手段を具備し、
    前記表示処理手段は、前記1つの行が手書きされる方向である行の第1方向と、ストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向とを用いて定められる文字が記載された第3方向に基づいて、前記1以上のストロークの認識結果に対応する文字を表示する電子機器。
  2. 前記表示処理手段は、前記第1方向が正規化された場合の、ストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向を用いて定められる文字が記載された第3方向に基づいて、前記文字を表示する請求項1記載の電子機器。
  3. 前記表示処理手段は、
    前記第1方向が左から右への方向であり、且つ前記第2方向が下方向である場合、前記第3方向が横書きであることに基づいて、前記文字を表示し、
    前記第1方向が左から右への方向であり、且つ前記第2方向が上方向である場合、前記第3方向が縦書きであることに基づいて、前記文字を表示する請求項1記載の電子機器。
  4. 前記表示処理手段は、
    前記第1方向が左から右への方向であり、且つ前記第2方向が右下方向である場合、前記第3方向が横書きであることに基づいて、前記文字を表示し、
    前記第1方向が左から右への方向であり、且つ前記第2方向が右上方向である場合、前記第3方向が縦書きであることに基づいて、前記文字を表示する請求項3記載の電子機器。
  5. 前記表示処理手段は、
    前記第1方向が左から右への方向であり、且つ前記第2方向が右下方向又は左下方向である場合、前記第3方向が横書きであることに基づいて、前記文字を表示し、
    前記第1方向が左から右への方向であり、且つ前記第2方向が右上方向又は左上方向である場合、前記第3方向が縦書きであることに基づいて、前記文字を表示する請求項3記載の電子機器。
  6. 前記表示処理手段は、
    前記第1方向が左から右への方向であり、且つ前記1以上のストロークに対応する、ストロークの始点から終点への1以上のベクトルの内の下方向へのベクトルの割合がしきい値より大きい場合、前記第3方向が横書きであることに基づいて、前記文字を表示し、
    前記第1方向が左から右への方向であり、且つ前記1以上のベクトルの内の下方向へのベクトルの割合が前記しきい値以下である場合、前記第3方向が縦書きであることに基づいて、前記文字を表示する請求項1記載の電子機器。
  7. 前記表示処理手段は、さらに、前記第1方向と、前記第2方向と、前記1以上のストロークの内の第1ストロークの終点から、当該第1ストロークに後続する第2ストロークの始点へのベクトルに対応する第4方向とを用いて定められる文字が記載された第3方向に基づいて、前記文字を表示する請求項1記載の電子機器。
  8. ディスプレイの画面上で手書きにより入力される1以上のストロークであって、手書き文書上の複数の文字を含む1つの行に対応する1以上のストロークを表示し、
    前記1つの行が手書きされる方向である行の第1方向と、ストロークの始点から終点へのベクトルに対応する1以上のストロークに第2方向とを用いて定められる文字が記載された第3方向に基づいて、前記1以上のストロークの認識結果に対応する文字を表示する方法。
  9. 前記文字を表示することは、前記第1方向が正規化された場合の、ストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向を用いて定められる文字が記載された第3方向に基づいて、前記文字を表示する請求項8記載の方法。
  10. 前記文字を表示することは、
    前記第1方向が左から右への方向であり、且つ前記第2方向が下方向である場合、前記第3方向が横書きであることに基づいて、前記文字を表示し、
    前記第1方向が左から右への方向であり、且つ前記第2方向が上方向である場合、前記第3方向が縦書きであることに基づいて、前記文字を表示する請求項8記載の方法。
  11. 前記文字を表示することは、さらに、前記第1方向と、前記第2方向と、前記1以上のストロークの内の第1ストロークの終点から、当該第1ストロークに後続する第2ストロークの始点へのベクトルに対応する第4方向とを用いて定められる文字が記載された第3方向に基づいて、前記文字を表示する請求項8記載の方法。
  12. コンピュータにより実行されるプログラムであって、前記プログラムは、
    ディスプレイの画面上で手書きにより入力される1以上のストロークであって、手書き文書上の複数の文字を含む1つの行に対応する1以上のストロークを表示する手順と、
    前記1つの行が手書きされる方向である行の第1方向と、ストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向とを用いて定められる文字が記載された第3方向に基づいて、前記1以上のストロークの認識結果に対応する文字を表示する手順とを前記コンピュータに実行させるプログラム。
  13. 前記文字を表示する手順は、前記第1方向が正規化された場合の、ストロークの始点から終点へのベクトルに対応する1以上のストロークの第2方向を用いて定められる文字が記載された第3方向に基づいて、前記文字を表示する請求項12記載のプログラム。
  14. 前記文字を表示する手順は、
    前記第1方向が左から右への方向であり、且つ前記第2方向が下方向である場合、前記第3方向が横書きであることに基づいて、前記文字を表示し、
    前記第1方向が左から右への方向であり、且つ前記第2方向が上方向である場合、前記第3方向が縦書きであることに基づいて、前記文字を表示する請求項12記載のプログラム。
  15. 前記文字を表示する手順は、さらに、前記第1方向と、前記第2方向と、前記1以上のストロークの内の第1ストロークの終点から、当該第1ストロークに後続する第2ストロークの始点へのベクトルに対応する第4方向とを用いて定められる文字が記載された第3方向に基づいて、前記文字を表示する請求項12記載のプログラム。
JP2014110328A 2014-05-28 2014-05-28 電子機器及び方法 Active JP6290003B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014110328A JP6290003B2 (ja) 2014-05-28 2014-05-28 電子機器及び方法
US14/585,650 US20150346995A1 (en) 2014-05-28 2014-12-30 Electronic apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014110328A JP6290003B2 (ja) 2014-05-28 2014-05-28 電子機器及び方法

Publications (2)

Publication Number Publication Date
JP2015225526A JP2015225526A (ja) 2015-12-14
JP6290003B2 true JP6290003B2 (ja) 2018-03-07

Family

ID=54701751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014110328A Active JP6290003B2 (ja) 2014-05-28 2014-05-28 電子機器及び方法

Country Status (2)

Country Link
US (1) US20150346995A1 (ja)
JP (1) JP6290003B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725650B2 (en) * 2014-03-17 2020-07-28 Kabushiki Kaisha Kawai Gakki Seisakusho Handwritten music sign recognition device and program
US10157311B2 (en) * 2016-08-31 2018-12-18 Konica Minolta Laboratory U.S.A., Inc. Detecting arrows within images
CN108664975B (zh) * 2018-04-24 2022-03-25 新疆大学 一种维吾尔文手写字母识别方法、系统及电子设备
CN111381754B (zh) * 2020-04-30 2021-10-22 京东方科技集团股份有限公司 笔迹处理方法、设备及介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1097372A (ja) * 1996-09-20 1998-04-14 Canon Inc 文字入力装置及びその方法
JPH1097591A (ja) * 1996-09-20 1998-04-14 Toshiba Corp 枠なしオンライン文字認識装置
JP3216800B2 (ja) * 1997-08-22 2001-10-09 日立ソフトウエアエンジニアリング株式会社 手書き文字認識方法
AUPP557898A0 (en) * 1998-08-28 1998-09-24 Canon Kabushiki Kaisha Method and apparatus for orientating a character stroke
CN1183436C (zh) * 2002-04-03 2005-01-05 摩托罗拉公司 用于手写字符的方向确定及其识别
JP4571039B2 (ja) * 2005-07-28 2010-10-27 株式会社リコー 情報処理装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP2015225526A (ja) 2015-12-14
US20150346995A1 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
JP5458161B1 (ja) 電子機器および方法
JP6189451B2 (ja) 手書き文書情報を処理するための電子機器および方法
JP6270565B2 (ja) 電子機器および方法
US9378427B2 (en) Displaying handwritten strokes on a device according to a determined stroke direction matching the present direction of inclination of the device
JP2015114976A (ja) 電子機器及び方法
US20150242114A1 (en) Electronic device, method and computer program product
US9606981B2 (en) Electronic apparatus and method
JP5389241B1 (ja) 電子機器および手書き文書処理方法
JP6301736B2 (ja) 電子機器及び方法
JP5342052B1 (ja) 電子機器および方法
JP5395927B2 (ja) 電子機器および手書き文書検索方法
US9182908B2 (en) Method and electronic device for processing handwritten object
JP6290003B2 (ja) 電子機器及び方法
US9940536B2 (en) Electronic apparatus and method
JP5377743B1 (ja) 電子機器および手書き文書処理方法
JP5284523B1 (ja) 情報処理システム、プログラムおよび情報処理システムの処理方法
WO2015107692A1 (ja) 手書きのための電子機器および方法
JP6373664B2 (ja) 電子機器、方法及びプログラム
WO2016031016A1 (ja) 電子機器、方法及びプログラム
JP6039066B2 (ja) 電子機器、手書き文書検索方法およびプログラム
JP2015170150A (ja) 電子機器及び方法
JP5355770B1 (ja) 電子機器および手書き文書処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171226

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: 20180109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180207

R151 Written notification of patent or utility model registration

Ref document number: 6290003

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313121

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350