(57)【特許請求の範囲】
【請求項１】
タッチスクリーンディスプレイと、
前記タッチスクリーンディスプレイ上に手書き入力された複数の文字の手書き文字画像の行構造を検出する行構造検出プログラムを含む各種アプリケーションプログラムを実行するＣＰＵと、を備え、
前記ＣＰＵは、
受け付けた前記手書き文字画像に含まれる複数の罫線を検出し、
前記手書き文字画像に含まれる手書き文字が、前記複数の罫線のうち、基準となる罫線である２本の基準罫線の間に収まっていると判定した場合に、同一の基準罫線間に収まっている前記手書き文字を１つの構造として検出し、
前記手書き文字画像に含まれる前記手書き文字が前記基準罫線間に収まっていないと判定した場合には、前記手書き文字の形状に基づいて、前記手書き文字がどの基準罫線間に収まっているかを特定して、その特定した基準罫線間に収まっている手書き文字を１つの構造として検出する電子機器。
【請求項２】
前記ＣＰＵは、第１罫線と第２罫線の間隔と、その前後の罫線の間隔とが大きく異なっていれば、前記第１罫線と前記第２罫線との間に前記手書き文字に隠された罫線が存在するものとして罫線を検出する請求項１に記載の電子機器。
【請求項３】
前記ＣＰＵは、
検出した複数の罫線毎に、手書きによる線がどの程度密集しているかを示す密集度を算出し、算出された前記密集度に関するヒストグラムを生成し、前記ヒストグラムにおいて密集度の値の低い罫線を前記基準罫線とする請求項１に記載の電子機器。
【請求項４】
前記ＣＰＵは、
前記手書き文字画像中の前記手書き文字を構成する各画素の座標が、検出された前記基準罫線の座標を含んでいるかどうかを判定することで、前記手書き文字が前記基準罫線間に収まっているかどうかを判定する請求項１に記載の電子機器。
【請求項５】
前記ＣＰＵは、
前記基準罫線間に収まっていないと判定された手書き文字を矩形の枠で囲み、当該矩形の枠の重心を算出することで、前記手書き文字の重心を検出する請求項１に記載の電子機器。
【請求項６】
タッチスクリーンディスプレイと、前記タッチスクリーンディスプレイ上に手書き入力された複数の文字の手書き文字画像の行構造を検出する行構造検出プログラムを含む各種アプリケーションプログラムを実行するＣＰＵと、を備える電子機器の方法であって、
受け付けた前記手書き文字画像に含まれる複数の罫線を検出し、
前記手書き文字画像に含まれる手書き文字が、前記複数の罫線のうち、基準となる罫線である２本の基準罫線の間に収まっていると判定した場合に、同一の基準罫線間に収まっている前記手書き文字を１つの構造として検出し、
前記手書き文字画像に含まれる前記手書き文字が前記基準罫線間に収まっていないと判定した場合には、前記複数の手書き文字の形状に基づいて、前記手書き文字がどの基準罫線間に収まっているかを特定して、その特定した基準罫線間に収まっている手書き文字を１つの構造として検出する、
方法。
【請求項７】
タッチスクリーンディスプレイと、前記タッチスクリーンディスプレイ上に手書き入力された複数の文字の手書き文字画像の行構造を検出する行構造検出プログラムを含む各種アプリケーションプログラムを実行するＣＰＵと、を備えるコンピュータにより実行されるプログラムであって、前記プログラムは前記コンピュータを、
受け付けた前記手書き文字画像に含まれる複数の罫線を検出する機能と、
前記手書き文字画像に含まれる手書き文字が、前記複数の罫線のうち、基準となる罫線である２本の基準罫線の間に収まっていると判定した場合に、同一の基準罫線間に収まっている前記手書き文字を１つの構造として検出する機能と、
前記手書き文字画像に含まれる前記手書き文字が前記基準罫線間に収まっていないと判定した場合には、前記手書き文字の形状に基づいて、前記手書き文字がどの基準罫線間に収まっているかを特定して、その特定した基準罫線間に収まっている手書き文字を１つの構造として検出する機能と、
して動作させるためのプログラム。
【請求項８】
第１罫線と第２罫線の間隔と、その前後の罫線の間隔とが大きく異なっていれば、前記第１罫線と前記第２罫線との間に前記手書き文字に隠された罫線が存在するものとして罫線を検出する請求項７に記載のプログラム。
【請求項９】
検出した複数の罫線毎に、手書きによる線がどの程度密集しているかを示す密集度を算出し、算出された前記密集度に関するヒストグラムを生成し、前記ヒストグラムにおいて密集度の値の低い罫線を前記基準罫線とする請求項７に記載のプログラム。
【請求項１０】
前記手書き文字画像中の前記手書き文字を構成する各画素の座標が、検出された前記基準罫線の座標を含んでいるかどうかを判定することで、前記手書き文字が前記基準罫線間に収まっているかどうかを判定する請求項７に記載のプログラム。
【請求項１１】
前記基準罫線間に収まっていないと判定された手書き文字を矩形の枠で囲み、当該矩形の枠の重心を算出することで、前記手書き文字の重心を検出する請求項７に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、電子機器、方法及びプログラムに関する。
【背景技術】
【０００２】
一般的な手法では、手書き文字を含む画像から文字行部分を高精度に切り出すことができないという不都合がある。このため、手書き文字を含む画像から文字行部分を高精度に切り出すことができる新たな技術の実現が望まれている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１３５０４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一形態の目的は、手書き文字を含む画像から文字行部分を高精度に切り出すことができる電子機器、方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態によれば、電子機器は、タッチスクリーンディスプレイと、前記タッチスクリーンディスプレイ上に手書き入力された複数の文字の手書き文字画像の行構造を検出する行構造検出プログラムを含む各種アプリケーションプログラムを実行するＣＰＵと、を備える。前記ＣＰＵは、受け付けた前記手書き文字画像に含まれる複数の罫線を検出し、前記手書き文字画像に含まれる手書き文字が、前記複数の罫線のうち、基準となる罫線である２本の基準罫線の間に収まっていると判定した場合に、同一の基準罫線間に収まっている前記手書き文字を１つの構造として検出し、前記手書き文字画像に含まれる手書き文字が前記基準罫線間に収まっていないと判定した場合には、前記手書き文字の形状に基づいて、前記手書き文字がどの基準罫線間に収まっているかを特定して、その特定した基準罫線間に収まっている手書き文字を１つの構造として検出する。
【図面の簡単な説明】
【０００６】
【図１】一実施形態に係る電子機器の外観を示す斜視図。
【図２】タブレットコンピュータのシステム構成を示す図。
【図３】手書き文字画像から行構造を検出する一般的な処理を説明するための図。
【図４】手書き文字画像から行構造を検出する一般的な処理を説明するための図。
【図５】同実施形態に係る行構造検出アプリケーションプログラムの機能構成例を示すブロック図。
【図６】同実施形態に係る罫線検出部による罫線の検出方法を説明するための図。
【図７】同実施形態に係る罫線検出部による罫線の検出方法を説明するための図。
【図８】同実施形態に係る重心検出部による重心の検出方法を説明するための図。
【図９】同実施形態に係る文字記載位置判定部による基準罫線の決定方法を説明するための図。
【図１０】同実施形態に係る文字記載位置判定部による基準罫線の決定方法を説明するための図。
【図１１】同実施形態に係る行構造検出アプリケーションプログラムによる画像の補正について説明するための図。
【図１２】同実施形態に係る行構造検出アプリケーションプログラムによって実行される処理の手順の一例を示すフローチャート。
【発明を実施するための形態】
【０００７】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレットまたはスレート（Slate）コンピュータとも称される携帯型電子機器であり、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わせるように取り付けられている。タッチスクリーンディスプレイ１７は、例えば、液晶表示装置（ＬＣＤ）であってもよい。
【０００８】
図２は、タブレットコンピュータ１０のシステム構成を示す図である。  
タブレットコンピュータ１０は、図２に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【０００９】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、行構造検出アプリケーションプログラム２０２が含まれている。この行構造検出アプリケーションプログラム２０２は、手書き文字を含む画像のデータから１以上の行構造を検出する機能を有している。具体的には、行構造検出アプリケーションプログラム２０２は、第１間隔の複数の罫線と、複数の罫線に沿って記載された複数の手書き文字とを含む画像のデータ（以下、「手書き文字画像」と表記）から１以上の行構造を検出する機能を有する。
【００１０】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００１１】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバス等を介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００１２】
グラフィクスコントローラ１０４は、本タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。タッチパネル１７Ｂ、ＬＣＤ１７Ａ及びデジタイザ１７Ｃは互いに重ね合わされている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン（デジタイザペン）１００が接触される画面上の接触位置及び接触位置の動き等はデジタイザ１７Ｃによって検出される。
【００１３】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００１４】
ここで、図３及び図４を参照して、手書き文字画像から行構造を検出する一般的な処理について説明する。  
図３及び図４は、手書き文字画像から行構造を検出する一般的な処理を説明するための図である。図３（ａ）に示すように手書き文字画像Ｇ１には行間を示すための罫線等は含まれていない（記載されていない）ものの、手書き文字「ｇｏｏｄ  ｄａｙ」と手書き文字「ｄｏｎｅ，ｍｏｏｎ，ｓｏｎ．」との間には大きな隙間が存在する。このような場合、白色の画素が一定数以上連続してなる擬似的な線を上記した２つの手書き文字を分断する線とみなすことで、図３（ｂ）に示すように、手書き文字「ｇｏｏｄ  ｄａｙ」を含む行構造Ｌ１と、手書き文字「ｄｏｎｅ，ｍｏｏｎ，ｓｏｎ．」を含む行構造Ｌ２とを容易に検出することができる。
【００１５】
しかしながら、図４（ａ）に示すように２つの手書き文字間の隙間が狭い場合、一般的な行構造を検出する処理では、図４（ｂ）に示すように、２つの手書き文字を１つの行構造Ｌ３として検出してしまう（すなわち、１行目と２行目とが繋がって検出されてしまう）等、誤検出が生じる可能性がある。このため、本実施形態に係る行構造検出アプリケーションプログラム２０２は、上記した誤検出が生じる可能性を低減するための機能を有している。以下、図５を参照しながら、行構造検出アプリケーションプログラム２０２の機能構成について説明する。
【００１６】
図５は、行構造検出アプリケーションプログラム２０２の機能構成例を示すブロック図である。行構造検出アプリケーションプログラム２０２は、図５に示すように、画像入力部３０１、罫線検出部３０２、文字記載位置判定部３０３、重心検出部３０４、行構造検出部３０５及び文字認識部３０６等を備えている。
【００１７】
画像入力部３０１は手書き文字画像の入力を受け付ける機能を有する。本実施形態では、手書き文字画像は、上記したように、第１間隔の罫線と、複数の罫線に沿って記載された手書き文字とを含む画像のデータであるとしたが、手書き文字画像には罫線の代わりに、例えばグリッド線や五線譜等が含まれるとしてもよい。手書き文字画像は、本コンピュータ１０のカメラ機能によって撮影された画像であってもよいし、本コンピュータ１０とは別の撮影機器によって撮影された画像であってもよい。入力された手書き文字画像は罫線検出部３０２に送出される。
【００１８】
罫線検出部３０２は、画像入力部３０１から送出された手書き文字画像に含まれる複数の罫線を検出する機能を有する。罫線の検出方法としては、例えばハフ変換を用いた検出方法がある。この検出方法は、手書き文字画像を二値化し、二値化された手書き文字画像にラドン変換を施すことで、手書き文字画像中の罫線（直線）を検出する。また、罫線の別の検出方法としては、例えば、予め罫線の色が判明していれば、この罫線の色の画素数をカウントして、当該罫線の色の画素数が一定数以上連続している場合に、これを罫線として検出する方法がある。この検出方法を用いる場合、図６に示すように、罫線上に手書き文字が記載され、罫線の一部が分断されてしまう場合を考慮して、分断部分の前後に罫線として検出された直線が存在すれば、当該分断部分にも罫線が存在するものとして罫線を検出する必要がある。これにより、図６の直線Ｓ１を１本の罫線として検出することができる。また、罫線の色の画素数をカウントすることで罫線を検出する検出方法を用いる場合、図７に示すように、罫線の大部分に手書き文字が記載されてしまう場合を考慮して、直線Ｓ３と直線Ｓ４の間隔と、他の直線間（Ｓ２−Ｓ３、Ｓ４−Ｓ５）の間隔とが大きく異なっていれば、直線Ｓ３と直線Ｓ４との間に手書き文字に隠された罫線が存在するものとして罫線を検出する必要がある。これにより、図７の直線Ｓ６を罫線として検出することができる。
【００１９】
手書き文字記載位置判定部３０３は、手書き文字画像中の手書き文字が罫線検出部３０２によって検出された複数の罫線のうち、基準となる罫線である２本の基準罫線の間（行間）に収まっているかどうかを判定する機能を有する。具体的には、手書き文字記載位置判定部３０３は、手書き文字画像中の手書き文字を構成する各画素の座標が、検出された基準罫線の座標を含んでいるかどうかを判定することで、手書き文字が基準罫線間に収まっているかどうかを判定する。なお、手書き文字が基準罫線間に収まっていると判定された場合には、後述する行構造検出処理が実行される。一方で、手書き文字が基準罫線間に収まっていないと判定された場合には、後述する重心検出処理が実行される。
【００２０】
重心検出部３０４は、手書き文字記載位置判定部３０３により基準罫線間に収まっていないと判定された手書き文字の形状に基づいて、当該手書き文字がどの基準罫線間に記載されたものかを特定する処理を実行する。具体的には、まず重心検出部３０４は、基準罫線間に収まっていないと判定された手書き文字の重心を検出する重心検出処理を実行する。重心の検出方法としては、例えば図８に示すように、基準罫線間に収まっていないと判定された手書き文字「ｙ」及び「ｄ」（換言すると、重心検出処理対象の手書き文字）を矩形の枠Ｆ１，Ｆ２で囲み、当該矩形の枠Ｆ１，Ｆ２の重心を算出することで、重心検出処理対象の手書き文字の重心を検出する方法がある。また、重心の別の検出方法としては、重心検出処理対象の手書き文字を構成する各画素の平均座標を算出することで、重心検出処理対象の手書き文字の重心を検出する方法がある。重心検出部３０４は、重心検出処理対象の手書き文字の重心を検出すると、当該手書き文字を、当該検出された重心が位置する基準罫線間に収まっている（属している）ものとみなす。
【００２１】
行構造検出部３０５は、手書き文字画像から１以上の行構造を検出する行構造検出処理を実行する。具体的には、行構造検出部３０５は、同一の基準罫線間に収まっている１以上の手書き文字を１つの行構造として検出する。
【００２２】
文字認識部３０６は、行構造検出部３０５によって検出された１以上の行構造に含まれる手書き文字に対して、光学文字認識（OCR: Optical Character Recognition）を行う機能を有する。つまり、文字認識部３０６は、検出された１以上の行構造に含まれる１以上の手書き文字に対する文字認識結果を取得するための処理を実行する。ＯＣＲとは、手書き文字画像をコンピュータ１０で編集できる形式（文字コードの列）に変換することである。
【００２３】
なお、文字認識部３０６による光学文字認識の結果は、記憶媒体４０１に適宜記憶される。記憶媒体４０１には、例えば光学文字認識の結果として、光学文字認識の対象となった行構造を識別するための識別情報と、当該行構造に含まれる手書き文字の文字コードの列とが対応付けて記憶されている。
【００２４】
ここで、図９を参照して、基準罫線の決定方法について説明する。  
基準罫線は文字記載位置判定部３０３によって決定される。具体的には、まず文字記載位置判定部３０３は、罫線検出部３０２によって検出された罫線毎に、手書きによる線がどの程度密集しているかを示す密集度を算出する。密集度を算出すると、文字記載位置判定部３０３は、図９に示すように、算出された密集度に関するヒストグラムを生成する。その後、文字記載位置判定部３０３は、図９のヒストグラムにおいて密集度の値の低い罫線Ｓ７，Ｓ１０，Ｓ１３を基準罫線とする。なお、基準罫線を決定する方法は上記した方法にだけ限定するものではない。
【００２５】
例えば、文字記載位置判定部３０３は、手書き文字画像中の手書き文字の言語にしたがって基準罫線を決定してもよい。例えば図１０に示すように、アルファベットは罫線を文字の中心にすえて記載されることがある。この場合に、上記した基準罫線の決定方法により決定された基準罫線を用いて上記した行構造を検出する処理を実行すると、行構造を正確に検出することができない可能性がある。このため、文字記載位置判定部３０３は、手書き文字画像に含まれる手書き文字がアルファベットである場合、罫線検出部３０２によって検出された複数の罫線のいずれかを基準罫線とするのではなく、図１０に示すように、罫線検出部３０２によって検出された複数の罫線の間に擬似的な罫線Ｓ１７，Ｓ１８を引き、この擬似的な罫線Ｓ１７，Ｓ１８を基準罫線とした上で、上記した行構造を検出する処理を実行してもよい。このように手書き文字画像中の手書き文字の言語に応じた基準罫線に関する調整項目（例えば、上記したようにアルファベットであれば、擬似的な罫線を引き、これを基準罫線とする等）を設けることにより、多種多様な言語に応じた処理を実行することができる。
【００２６】
さらに、行構造検出アプリケーションプログラム２０２は、入力された手書き文字画像を罫線の方向に応じて補正してから上記した行構造を検出する処理を実行してもよい。例えば図１１（ａ）に示すように、入力された手書き文字画像中の手書き文字が斜め方向に傾いてしまっている場合、行構造検出アプリケーションプログラム２０２は、図１１（ｂ）に示すように、入力された手書き文字画像中の手書き文字が横方向に一直線に並ぶよう当該手書き文字画像を補正してから、上記した行構造を検出する処理を実行してもよい。
【００２７】
次に、図１２のフローチャートを参照して、行構造検出アプリケーションプログラム２０２によって実行される処理の手順の一例について説明する。
【００２８】
始めに、画像入力部３０１は手書き文字画像の入力を受け付ける（ブロック１００１）。次に、罫線検出部３０２は、入力された手書き文字画像に含まれる複数の罫線を検出する（ブロック１００２）。
【００２９】
続いて、文字記載位置判定部３０３は、入力された手書き文字画像中の手書き文字が、罫線検出部３０２によって検出された複数の罫線のうちの基準罫線の間に収まっているかどうかを判定する（ブロック１００３）。
【００３０】
手書き文字が基準罫線間に収まっていないと判定された場合（ブロック１００３のＮＯ）、重心検出部３０４は、基準罫線間に収まっていない手書き文字の重心を検出し、当該検出された重心がどの基準罫線間に収まっているか（属しているか）を特定する（ブロック１００４）。ブロック１００４の処理が終了すると、後述するブロック１００５の処理に進む。
【００３１】
手書き文字が基準罫線間に収まっていると判定された場合（ブロック１００３のＹＥＳ）、行構造検出部３０５は、同一の罫線間に収まっている手書き文字を１つの行構造として検出する（ブロック１００５）。
【００３２】
しかる後、文字認識部３０６は、行構造検出部３０５によって検出された行構造に含まれる手書き文字に対して光学文字認識を行い（ブロック１００６）、処理を終了させる。
【００３３】
以上説明した一実施形態によれば、手書き文字画像中の罫線等、背景画像を利用して手書き文字画像から行構造を検出可能な構成を備えているので、手書き文字画像中の文字行部分を高精度に切り出すことができる。これにより、例えば、タブレットコンピュータ１０のユーザが手書き文字画像中の所定の手書き文字をタッチしただけで、当該所定の手書き文字を含む文字行部分を選択することができるようになる等、利便性を大きく向上させることができる。
【００３４】
なお、本実施形態の処理は、コンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００３５】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００３６】
２０２…行構造検出アプリケーションプログラム、３０１…画像入力部、３０２…罫線検出部、３０３…文字記載位置判定部、３０４…重心検出部、３０５…行構造検出部、３０６…文字認識部。
【図１】
0006373664.tif 000002
【図２】
0006373664.tif 000003
【図３】
0006373664.tif 000004
【図４】
0006373664.tif 000005
【図５】
0006373664.tif 000006
【図６】
0006373664.tif 000007
【図７】
0006373664.tif 000008
【図８】
0006373664.tif 000009
【図９】
0006373664.tif 000010
【図１０】
0006373664.tif 000011
【図１１】
0006373664.tif 000012
【図１２】
0006373664.tif 000013