(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】入力装置、入力方法、及びプログラム
(51)【国際特許分類】
G06F 3/04845 20220101AFI20231219BHJP
G06F 3/0481 20220101ALI20231219BHJP
G06V 30/19 20220101ALI20231219BHJP
【FI】
G06F3/04845
G06F3/0481
G06V30/19
(21)【出願番号】P 2020050627
(22)【出願日】2020-03-23
【審査請求日】2023-01-16
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】森 弘樹
(72)【発明者】
【氏名】中野 知佳
【審査官】▲高▼瀬 健太郎
(56)【参考文献】
【文献】特開2015-061157(JP,A)
【文献】特開平09-097311(JP,A)
【文献】特開2011-103092(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/04845
G06F 3/0481
G06V 30/19
(57)【特許請求の範囲】
【請求項1】
手書き入力を受け付ける手書き入力手段と、
前記手書き入力に基づいて文字認識された文字列を、傾きを調整した文字列として表示するか否かの設定情報の設定をユーザから受け付ける設定受付手段と、
前記設定情報に基づき、傾きを調整した文字列又は傾きを調整していない文字列として表示画面に表示させる表示制御手段と、
を有
し、
前記表示制御手段は、前記設定情報が、前記文字列の傾きを調整して前記表示画面に表示させる設定の場合、調整前の前記文字列の傾きから調整後の前記文字列の傾きまでの前記文字列の傾きの変化を、前記文字列として文字認識される前の手書き文字列で視覚的に前記表示画面に表示させた後で、前記文字認識された文字列に変換すること
を特徴とする入力装置。
【請求項2】
前記傾きを調整とは、文字列の傾きを水平になるように回転すること、又は、文字列の傾きを垂直になるように回転すること、を示すこと
を特徴とする請求項1記載の入力装置。
【請求項3】
前記設定受付手段は、前記入力装置の設定が可能な設定画面から、前記文字列の傾きを調整して前記表示画面に表示させるか、前記文字列の傾きを調整せずに前記表示画面に表示させるか、の前記設定情報の設定を受け付けること
を特徴とする請求項1又は2記載の入力装置。
【請求項4】
前記表示制御手段は、前記文字列の傾きを視覚的に前記表示画面に表示させること
を特徴とする請求項1乃至
3の何れか一項記載の入力装置。
【請求項5】
前記設定受付手段は、前記文字列の文字種と対応付けて、前記設定情報の設定をユーザから受け付け、
前記表示制御手段は、前記文字列の文字種に応じて、傾きを調整した文字列又は傾きを調整していない文字列を表示画面に表示させること
を特徴とする請求項1乃至
4の何れか一項に記載の入力装置。
【請求項6】
前記表示制御手段は、前記文字認識された文字列の傾きを、水平方向に調整した文字列として表示するか否かの設定情報に基づき、傾きを水平方向に調整した文字列又は前記文字認識された傾きの文字列として表示画面に表示させること
を特徴とする請求項1乃至
5の何れか一項に記載の入力装置。
【請求項7】
手書き入力手段が、手書き入力を受け付ける手書き入力ステップと、
前記手書き入力に基づいて文字認識された文字列を、傾きを調整した文字列として表示するか否かの設定情報の設定をユーザから受け付ける設定受付ステップと、
表示制御手段が、前記設定情報に基づき、傾きを調整した文字列又は傾きを調整していない文字列として表示画面に表示させる表示制御ステップと、
を有
し、
前記表示制御ステップは、前記設定情報が、前記文字列の傾きを調整して前記表示画面に表示させる設定の場合、調整前の前記文字列の傾きから調整後の前記文字列の傾きまでの前記文字列の傾きの変化を、前記文字列として文字認識される前の手書き文字列で視覚的に前記表示画面に表示させた後で、前記文字認識された文字列に変換すること
を特徴とする入力方法。
【請求項8】
入力装置に実行させるプログラムであって、
手書き入力に基づいて文字認識された文字列を、傾きを調整した文字列として表示するか否かの設定情報の設定をユーザから受け付ける設定受付ステップと、
表示制御手段が、前記設定情報に基づき、傾きを調整した文字列又は傾きを調整していない文字列として表示画面に表示させる表示制御ステップと、
を備え
、
前記表示制御ステップは、前記設定情報が、前記文字列の傾きを調整して前記表示画面に表示させる設定の場合、調整前の前記文字列の傾きから調整後の前記文字列の傾きまでの前記文字列の傾きの変化を、前記文字列として文字認識される前の手書き文字列で視覚的に前記表示画面に表示させた後で、前記文字認識された文字列に変換すること
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力装置、入力方法、及びプログラムに関する。
【背景技術】
【0002】
例えばユーザから手書き入力を受け付ける電子黒板又はアプリケーション(以下、入力装置という)では、手書き入力した直線や曲線(以下、ストロークという)により手書き文字、又は複数の手書き文字からなる手書き文字列の入力を受け付ける。一般的な入力装置では事前に持っている文字の標本情報と入力されたストロークの類似度によって、手書き文字又は手書き文字列を、文字又は文字列として認識する。ユーザは文字として認識させたい文字又は文字列を、右肩上がりなど、傾けて入力することも可能である。
【0003】
例えば、キーボードを使用せず、記入枠(筆記枠)を設けることなく、自由な方向(例えば、縦、横及び斜め方向)で手書き入力された文字(文字列)を認識することのできる技術は従来から知られている(例えば特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の入力装置では、手書き文字列から文字認識された文字列の表示の自由度が高くないという問題があった。例えば、従来の入力装置では手書き文字列から文字認識した文字列を表示する際に、表示される文字列の傾きが固定である。なお、特許文献1は、このような問題について記載されているものではない。
【0005】
本発明の実施の形態は、手書き入力に基づいて文字認識された文字列の表示の自由度を向上することを目的とする。
【課題を解決するための手段】
【0006】
上記した課題を達成するために本願請求項1は、手書き入力を受け付ける手書き入力手段と、前記手書き入力に基づいて文字認識された文字列を、傾きを調整した文字列として表示するか否かの設定情報の設定をユーザから受け付ける設定受付手段と、前記設定情報に基づき、傾きを調整した文字列又は傾きを調整していない文字列として表示画面に表示させる表示制御手段と、を有し、前記表示制御手段は、前記設定情報が、前記文字列の傾きを調整して前記表示画面に表示させる設定の場合、調整前の前記文字列の傾きから調整後の前記文字列の傾きまでの前記文字列の傾きの変化を、前記文字列として文字認識される前の手書き文字列で視覚的に前記表示画面に表示させた後で、前記文字認識された文字列に変換することを特徴とする入力装置を提供する。
【発明の効果】
【0007】
本発明の実施形態によれば、手書き入力に基づいて文字認識された文字列の表示の自由度を向上できる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る電子黒板の一例の全体構成図である。
【
図2】本実施形態に係るタッチパネルの一例のハードウェア構成図である。
【
図3】本実施形態に係る制御部の一例のハードウェア構成図である。
【
図4】本実施形態に係る電子黒板の一例の機能ブロック図である。
【
図5】本実施形態に係る設定画面の一例のイメージ図である。
【
図7】本実施形態に係る電子黒板の処理の一例のシーケンス図である。
【
図8】文字毎又は文字列毎のストロークにグルーピングする処理の一例の説明図である。
【
図9】文字毎又は文字列毎にグルーピングされたストローク例である。
【
図10】本実施形態に係る電子黒板の処理の一例のイメージ図である。
【
図11】文字認識された文字列の一例の表示イメージ図である。
【
図12】文字認識された文字列の一例の表示イメージ図である。
【
図13】文字認識された文字列の一例の表示イメージ図である。
【
図14】文字認識された文字列の一例の表示イメージ図である。
【
図15】文字認識された文字列の一例の表示イメージ図である。
【
図17】文字認識された文字列の表示の方向を判断する処理の一例のフローチャートである。
【
図18】文字認識された文字列の一例の表示イメージ図である。
【
図19】文字列の回転角度の指定をユーザから受け付けるサブメニューの一例の表示イメージ図である。
【
図20】縦書きで手書き入力された手書き文字列の一例のイメージ図である。
【
図25】本実施形態に係る設定画面の一例のイメージ図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面を参照しながら説明する。なお、以下ではユーザから手書き入力を受け付ける入力装置の一例である電子黒板1について説明するが、電子黒板1に限定するものではない。
【0010】
[第1の実施形態]
<電子黒板のハードウェア構成>
図1を用いて、本発明の実施形態に係る電子黒板1の全体構成を説明する。
図1は本実施形態に係る電子黒板の一例の全体構成図である。電子黒板1は表示部10、タッチパネル11、及び制御部12を有する構成である。表示部10はディスプレイであり、例えばLCD(liquid crystal display)が使用される。なお、ディスプレイは表示画面を表示する装置の一例であって、例えば表示画面を表示(投影)可能なプロジェクタなどを利用してもよい。
【0011】
タッチパネル11は、赤外線発光のLED(light emitting diode)とフォトトランジスタとを対向配置して、フォトトランジスタが光を検知できない部分、すなわち光が遮断された部分をタッチされた位置として位置情報を検出する。タッチパネル11は例えば
図2に示すようなハードウェア構成である。
【0012】
図2は本実施形態に係るタッチパネルの一例のハードウェア構成図である。タッチパネル11は、1列中のLEDとフォトトランジスタとが等間隔で、また、各LEDとフォトトランジスタとが対向して配置されている。なお、
図2では、LEDとフォトトランジスタとが横方向にそれぞれ20個ずつ、縦方向にそれぞれ15個ずつ、配置されたタッチパネル11の例を示した。例えば40インチ以上の大きさのタッチパネル11の場合、実際にはもっと多くのLEDとフォトトランジスタとが必要となる。
【0013】
なお、タッチパネル11は、光学式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネル、対向する2つの抵抗膜の電圧変化により接触位置を特定する抵抗膜方式のタッチパネル、接触物体が表示部に接触することにより生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネルなどの種々の検出手段を用いてもよい。タッチパネル11は、ペン先のタッチの有無を検知するのに電子ペンが必要ある方式でも必要ない方式であってよい。この場合はタッチ操作をするのに指先やペン型の棒を使用できる。
【0014】
制御部12は例えば
図3に示すようなハードウェア構成である。
図3は本実施形態に係る制御部の一例のハードウェア構成図である。制御部12は、CPU20、メインメモリ21、クロック22、バスコントローラ23、ROM(Read Only Memory)24、PCI(Peripheral Component Interconnect)ブリッジ25、キャッシュメモリ26、ハードディスク27、HD(Hard Disk)コントローラ28、表示コントローラ29、LANコントローラ30、LAN I/F(Interface)31、タッチパネルI/F32、RTC(Real Time Clock)33、CPUバス34、PCIバス35、Xバス36(内部バス)から構成されている。
【0015】
CPU20は、ROM24に記憶された制御処理プログラム、ハードディスク27からメインメモリ21に読み出されたOS(Operating System)や各種のアプリケーションプログラムを実行、処理する。メインメモリ21は、DRAM(Dynamic Random Access Memory)より構成されており、CPU20のワークエリア等で使用される。クロック22は、水晶発振子と分周回路から構成されており、CPU20やバスコントローラ23の動作タイミングを制御するためのクロックを生成している。バスコントローラ23は、CPUバス34とXバス36でのデータ転送を制御する。
【0016】
ROM24は、電源オン時のシステム立ち上げや各種デバイスの制御を行うためのプログラムが予め書き込まれている。PCIブリッジ25は、キャッシュメモリ26を使用して、PCIバス35とCPU20との間のデータ転送を行う。キャッシュメモリ26はDRAMより構成されており、PCIブリッジ25により使用される。
【0017】
ハードディスク27は、システムソフトウェア、各種のアプリケーションプログラム、ユーザが保存するデータ等を記憶する。HDコントローラ28は、ハードディスク27とのインタフェースとして例えばIDE(Integrated Device Electronics)インタフェースを持ち、ハードディスク27と高速データ転送を行う。
【0018】
表示コントローラ29は文字データやグラフィックデータ等をD/A(Digital/Analog)変換するとともに、これらのデータを表示部10に表示するための制御を行う。LANコントローラ30は、例えばIEEE(Institute of Electrical and Electronics Engineers)802.3規格に準拠した通信プロトコルを実行して、LAN I/F31を介してLANに接続された他の機器との通信を制御する。
【0019】
タッチパネルI/F32は、タッチパネル11用のポートを持ち、タッチパネルドライバ(制御プログラム)によって制御される。RTC33は日付時計であり、バッテリーによりバックアップされている。
【0020】
なお、本実施形態では特に明記しない限り、CPU20がメインメモリ21をワークエリアとして使用して、プログラムに従った処理を実行する。
【0021】
<用語について>
入力手段とはタッチパネル11に座標を指定して手書きが可能な手段であればよい。例えば、ペン、人の指や手、棒状部材などがある。また、視線入力が可能でもよい。手書きデータとは、タッチパネル11上でユーザが入力手段を連続的に移動させた座標点列を軌跡として表示したデータである。また、ユーザがタッチパネル11に入力手段を押しつけてから連続的に移動させた後、タッチパネル11から離すという一連の操作をストロークという。ストロークにより手書きされたデータはストロークデータという。手書きデータは1つ以上のストロークデータを有する。手書き入力とは、ユーザによって、手書きデータが入力されることを示している。
【0022】
<電子黒板の機能構成>
次に、
図4を用いて、電子黒板1が有する機能について説明する。
図4は、本実施形態に係る電子黒板の一例の機能ブロック図である。
図4に示す電子黒板1は、手書き入力部40、ストローク分割部41、データ保存部42、文字重心計算部43、文字列傾斜計算部44、文字認識・変換部45、表示制御部46、ネットワーク通信部47、及び設定受付部48を有する構成である。
【0023】
電子黒板1が有する各機能は、
図1~
図3に示されている各構成要素の何れかが、メインメモリ21上に展開されたプログラムに従ったCPU20からの命令によって動作することで実現される機能又は手段である。
【0024】
手書き入力部40は
図3に示されているCPU20からの命令、及び
図3に示されているタッチパネル11、及びタッチパネルI/F32等により実現されており、ユーザの手等(ペンやユーザの手は入力手段となる)によってタッチパネル11に接触した部分の座標データを求め、ユーザによる手書き入力を受け付ける。手書き入力部40は接触位置検出部として機能する。手書き入力部40はユーザによる手書き入力により座標データ列を求める。なお、手書き入力部40は座標データ列を離散値として求めてもよい。離散値間の座標データは補完計算される。手書き入力部40は、ユーザが筆記した時に求めた座標データ列によりストロークの入力を受け付ける。
【0025】
ストローク分割部41は、
図3に示されているCPU20がメインメモリ21をワークエリアとして使用して、プログラムに従った処理を実行することによって実現され、入力を受け付けたストロークを、文字毎のストローク及び文字列毎のストロークに分割(グルーピング)する。なお、ストロークを文字毎及び文字列毎にグルーピングする方法は後述する。
【0026】
データ保存部42は、
図3に示されているCPU20からの命令、
図3に示されているハードディスク27、及びHDコントローラ28等により実現され、電子黒板1が利用する各種データを保存する。
図4のデータ保存部42は、ストローク保存部51、文字列保存部52、及び設定情報保存部53を有する構成である。ストローク保存部51は
図3に示されているCPU20からの命令、
図3に示されているハードディスク27、及びHDコントローラ28等により実現され、手書き入力部40が入力を受け付けたストロークのデータを保存する。文字列保存部52は
図3に示されているCPU20からの命令、
図3に示されているハードディスク27、及びHDコントローラ28等により実現され、ユーザが一つ以上のストロークにより入力した文字列(以下、手書き文字列という)から文字認識した文字列のデータを保存する。文字認識とは、コンピュータで処理可能なテキストデータ(何らかの文字コードで構成されるデータ)に変換することを示している。文字コードとは、コンピュータ上で文字を利用する目的で各文字に割り当てられるバイト表現を示している。
【0027】
設定情報保存部53は
図3に示されているCPU20からの命令、
図3に示されているハードディスク27、及びHDコントローラ28等により実現され、電子黒板1の各種設定情報を保存する。設定情報保存部53が保存する設定情報には、後述の「文字列の傾き調整機能」の設定情報も含まれる。
【0028】
文字重心計算部43は
図3に示されているCPU20がメインメモリ21をワークエリアとして使用して、プログラムに従った処理を実行することによって実現され、グルーピングされた文字毎のストロークから、後述のように文字毎の重心座標を計算する。文字列傾斜計算部44は
図3に示されているCPU20がメインメモリ21をワークエリアとして使用して、プログラムに従った処理を実行することによって実現され、文字毎の重心座標から、後述のように文字列の傾き(傾斜)を計算する。文字認識・変換部45は
図3に示されているCPU20がメインメモリ21をワークエリアとして使用して、プログラムに従った処理を実行することによって実現され、グルーピングされた文字毎及び文字列毎のストロークを、手書き認識辞書などの辞書データと照合することで文字認識し、テキストデータ等のフォントとして表示可能な文字情報で表現された文字列に変換する。なお、手書き文字列の文字認識の方法については、様々なアルゴリズムが考案されているが、公知の技術を利用できるため、詳細を割愛する。
【0029】
表示制御部46は
図3に示されているCPU20からの命令、及び
図3に示されている表示コントローラ29等により実現され、ストローク、変換された文字列等をディスプレイ(表示部10)に表示するための制御を行う。ネットワーク通信部47は
図3に示されているCPU20からの命令、
図3に示されているLANコントローラ30、及びLAN I/F31等により実現され、LAN等のネットワークに接続してデータ送受信を行う。設定受付部48は、
図3に示されているCPU20からの命令、及び
図3に示されているタッチパネル11、及びタッチパネルI/F32等により実現されており、電子黒板1の各種設定をユーザから受け付ける
図5の設定画面1000に関する制御を行い、設定画面から受け付けた各種設定の設定情報を設定情報保存部53に保存する。
【0030】
図5は、本実施形態に係る設定画面の一例のイメージ図である。
図5の設定画面1000は電子黒板1の各種設定情報の設定をユーザから受け付ける。例えばユーザは「斜めに手書きした文字を横方向に表示する」という説明文が付与されているチェックボックス1002へチェックを入れることで、後述の文字列の傾き調整機能を有効にでき、チェックを外すことで、文字列の傾き調整機能を無効にできる。なお、
図5の設定画面1000におけるチェックボックスは一例である。例えばラジオボタンのように、小さな丸いボタン状の入力要素から、「はい」「いいえ」などで選択させることで、傾き調整機能を有効(「はい」)又は傾き調整機能を無効(「いいえ」)にすることで実現することもできる。
【0031】
図5の設定画面1000から受け付けた「文字列の傾き調整機能」の設定の「有効」又は「無効」は、例えば
図6の設定情報のように設定情報保存部53に保存される。
図6は設定情報の一例の構成図である。
図6は「文字列の傾き調整機能」の設定の「有効」又は「無効」を「ON」又は「OFF」で表している。
【0032】
<処理>
図7は本実施形態に係る電子黒板の処理の一例のシーケンス図である。
図7は斜めに入力された手書き文字列を文字認識し、フォントとして表示可能な文字列に変換する処理を記載している。
【0033】
ステップS10において、電子黒板1の手書き入力部40はタッチパネル11に接触した部分の座標データから、ユーザによるストロークの入力を受け付ける。手書き入力部40は入力を受け付けたストロークの情報をデータ保存部42のストローク保存部51に保存する。また、ステップS12に進み、手書き入力部40は入力を受け付けたストロークの情報をストローク分割部41に通知する。
【0034】
ストローク分割部41は手書き入力部40から通知されたストロークの表示を表示制御部46に要求し、表示部10にストロークを表示させる。なお、ステップS10~S14の処理はユーザからストロークの入力がある度に繰り返される。
【0035】
ストローク分割部41はステップS12で入力されるストロークを、例えば
図8を用いて説明する方法で、文字毎のストロークにグルーピングする。
図8は文字毎又は文字列毎のストロークにグルーピングする処理の一例の説明図である。
図8はストロークの間隔による文字毎又は文字列毎のストロークのグルーピング方法を一例として示している。
【0036】
図8は「ストローク入力有り」の状態と「ストローク入力無し」の状態とを時系列で表している。ストローク分割部41は、ストロークが入力されていない時間Δtが文字判別閾値以上又は超過の場合に、その直前までのストロークを一つの文字のストロークグループとしてグルーピングする。また、ストローク分割部41は、ストロークが入力されていない時間Δtが文字列判別閾値以上又は超過の場合に、その直前までの文字のストロークグループを一つの文字列のストロークグループとしてグルーピングする。
【0037】
例えば
図8の例では「ストローク4」と「ストローク5」との間の時間Δtが文字判別閾値以上又は超過であるため、その直前までの「ストローク1」から「ストローク4」までを一つの文字のストロークグループとしてグルーピングする。
【0038】
また、
図8の例では「ストローク7」と「ストローク8」との間の時間Δtが文字判別閾値以上又は超過であるため、その直前までの「ストローク5」から「ストローク7」までを一つの文字のストロークグループとしてグルーピングする。
【0039】
さらに、
図8の例では「ストローク7」と「ストローク8」との間の時間Δtが文字列判別閾値以上又は超過であるため、その直前までの「ストローク1」から「ストローク4」までの文字のストロークグループ、及び「ストローク5」から「ストローク7」までの文字のストロークグループを一つの文字列のストロークグループとしてグルーピングする。
【0040】
図8の例では
図9に示すようにストロークが文字のストロークグループ及び文字列のストロークグループにグルーピングされる。
図9は文字毎又は文字列毎にグルーピングされたストローク例である。
【0041】
図7に戻り、ストローク分割部41はストロークが入力されていない時間Δtが文字識別閾値以上又は超過となればステップS16に進み、
図8を用いて説明したように、その直前までのストロークを一つの文字のストロークグループとしてストローク保存部51に保存させるように通知する。
【0042】
ステップS18に進み、文字重心計算部43は一つの文字のストロークグループとしてグルーピングされたストロークから、文字毎の重心座標を計算する。文字重心計算部43は例えば一つの文字を構成する全てのストロークの点の重心を文字の重心座標としてもよいし、一つの文字のストロークグループとしてグルーピングされたストロークごとの重心座標から求めた重心を文字の重心座標としてもよい。
【0043】
ステップS10~S18の処理は、ストローク分割部41はストロークが入力されていない時間Δtが文字列識別閾値以上又は超過になるまで繰り返される。ストロークが入力されていない時間Δtが文字列識別閾値以上又は超過となればステップS20に進み、ストローク分割部41は
図8を用いて説明したように、その直前までの文字のストロークグループを、一つの文字列のストロークグループとしてストローク保存部51に保存させるように通知する。
【0044】
ステップS22において、文字認識・変換部45は一つの文字列のストロークグループがストローク保存部51に保存されたことを検知し、その文字列のストロークグループに含まれるストロークを文字認識して文字列に変換する以下の処理を開始する。
【0045】
ステップS24に進み、文字列傾斜計算部44は手書き文字列の回転角度(手書き文字列の傾き)の計算を例えば
図10(a)に示すように行う。
図10は本実施形態に係る電子黒板の処理の一例のイメージ図である。文字列傾斜計算部44は、ステップS18で計算した手書き文字毎の重心座標100に対して、手書き文字列の中心線102の推定を行う。手書き文字列の中心線102は、手書き文字毎の重心座標100に対して、例えば最小二乗法で求めることができる。文字列傾斜計算部44は、手書き文字列の中心線102と、表示部10に対して横向きの線104からなる鋭角α°(角度106)を、手書き文字列の回転角度(調整前の文字列の傾き)として計算する。
【0046】
ステップS26に進み、文字認識・変換部45は手書き文字列108の傾きを横向きの線104の方向に(水平方向)調整するため、例えば
図10(b)に示すようにステップS24で計算した鋭角α°だけ、手書き文字列毎(もしくは文字毎)にアフィン変換を行う。ここで、手書き文字列108の傾きを横向きの線104の方向に(水平方向)調整するとは、例えば
図10(b)の場合、手書き文字列108の傾きを、基準とする横向きの線104に合わせて回転させる(整える)処理をいう。この処理により、手書き文字列108に含まれる手書き文字の傾きは水平方向に調整される(手書き文字の傾きは、基準とする水平方向に合わせて回転され、整えられる)。
【0047】
ステップS28に進み、文字認識・変換部45は水平方向に調整された手書き文字列108に対して文字認識を実行し、テキストデータ等の文字列110に変換する。ステップS30に進み、文字認識・変換部45は手書き文字列108の表示の更新を表示制御部46に要求する。
【0048】
ステップS32に進み、表示制御部46はデータ保存部42に保存されている例えば
図6の設定情報を参照して、「文字列の傾き調整機能」の設定の「有効」又は「無効」を確認する。文字列の傾き調整機能が「無効」であれば、表示制御部46はステップS28で変換された文字列110に含まれる文字を、ステップS18で計算した手書き文字の重心座標が中心に来るように再配置する。その後、表示制御部46は再配置した文字列112を例えば
図10(d)に示すように鋭角-α°だけ、文字列(もしくは文字)毎にアフィン変換を行う。この処理により、文字列112の傾きは手書き文字列108の傾きと同じ方向に調整される。ここで、文字列112の傾きを手書き文字列108の傾きと同じ方向に調整するとは、例えば
図10(d)の場合、文字列112の傾きを、基準とする手書き文字列の中心線102に合わせて回転させる(整える)処理をいう。文字列112に含まれる文字の傾きは、中心線102の方向に調整される(文字列の傾きは、基準とする中心線に合わせて回転され、整えられる)。
【0049】
したがって、文字列の傾き調整機能が「無効」である場合、ステップS36において表示制御部46は、文字認識された文字列112を、
図11(a)に示すように、ユーザが入力した手書き文字列108と同じ傾きで表示できる。
図11は文字認識された文字列の一例の表示イメージ図である。
【0050】
なお、文字列の傾き調整機能が「有効」であれば、表示制御部46はステップS28で変換された文字列110に含まれる文字を、ステップS18で計算した手書き文字の重心座標が中心に来るように再配置する。ただし、表示制御部46は再配置した文字列112に対するステップS34のアフィン変換を行わない。
【0051】
したがって、文字列の傾き調整機能が「有効」である場合、ステップS36において表示制御部46は、文字認識された文字列112を、
図11(b)に示すように、ユーザが入力した手書き文字列108の傾きと異なる水平方向に調整して表示できる。
【0052】
図11の表示イメージは一例であって、表示制御部46は例えば
図12~
図15に示すような表示イメージであってもよい。
図12~
図15は文字認識された文字列の一例の表示イメージ図である。
【0053】
図12の表示イメージは、斜め方向に入力された
図12(a)の手書き文字列を文字認識して、
図12(f)のように水平方向の文字列を表示する例である。表示制御部46は例えば文字認識により変換された文字列の傾きが、
図12(a)の手書き文字列の傾きから
図12(f)の文字列の傾きまで調整される過程(傾きの変化)を、アニメーションなどで表示してもよい。
図12では一例として、手書き文字列の傾きから文字認識された文字列の傾きまでの変化を、文字列を点滅させながら段階的に表示させた例である。
【0054】
また、
図13の表示イメージは、斜め方向に入力された
図13(a)の手書き文字列に対して
図10(a)に示した中心線102を表示するようにしてもよい。例えば表示制御部46は一定数以上の手書き文字(例えば3文字)を含む手書き文字列の入力時、その手書き文字列が斜めであれば、
図13(b)~
図13(f)に示すように中心線102を表示することで、手書き文字列が斜めであったことをユーザへ視覚的に通知してもよい。
図13(g)のように文字列の傾きの調整が終了した後、表示制御部46は中心線102を消去する。
【0055】
図13の表示イメージは、
図13(d)~
図13(f)のように、文字認識によりテキストデータ等の文字列に変換した後で、文字列の傾きを調整していたが、例えば
図14の表示イメージのように、手書き文字列のままで傾きを調整し、傾きの調整が終了したあとで
図14(f)のように、テキストデータ等の文字列の表示に切り替えてもよい。
【0056】
さらに、
図15の表示イメージのように、中心線102だけでなく、横向きの線104及び角度106を表示することで、手書き文字列が斜めであったことをユーザへ視覚的に通知してもよい。
【0057】
このように、第1の実施形態によれば、自由な方向に手書き入力された手書き文字列から文字認識された文字列の表示を、手書き文字列の方向のまま表示するか、水平方向に調整して表示するか、を設定により切り替え可能である。したがって、第1の実施形態によれば、手書き文字列から文字認識された文字列の表示の自由度を向上できる。
【0058】
[第2の実施形態]
複数人が電子黒板1に手書き文字列を入力する場合は、ユーザの文化的なバックグラウンド(=入力する文字種)によって、ユーザから求められる手書き文字列から文字認識された文字列の表示の方向が異なる場合がある。文字種とは、ひらがな、カタカナ、漢字、アルファベット、及び数字などを、文字の種類として定義しているが、これに限定されるものではない。例えばアルファベットの手書き文字列を入力したユーザは、斜め方向に入力した手書き文字列から文字認識した文字列を、手書き文字列の方向と同じ斜め方向にそのまま表示したい場合がある。また、例えば平仮名の手書き文字列を入力したユーザは、斜め方向に入力した手書き文字列から文字認識した文字列を、水平方向に調整して表示したい場合がある。
【0059】
そこで、第2の実施形態では、文字種ごとに「文字列の傾き調整機能」の設定ができるようにしている。第2の実施形態では、文字種ごとの「文字列の傾き調整機能」の設定が例えば
図16の設定情報のように設定情報保存部53に保存される。
図16は設定情報の一例の構成図である。
図16は「文字列の傾き調整機能」の設定値が文字種ごとに対応付けて設定されている。
【0060】
例えば
図16の設定情報は、アルファベットのみの文字列であれば「文字列の傾き調整機能」が無効となり、文字認識された文字列の表示の方向が、手書き文字列の表示の方向と同一となる。また、
図16の設定情報は、平仮名のみの文字列であれば「文字列の傾き調整機能」が有効となり、文字認識された文字列の表示の方向が、水平方向となる。さらに、
図16の設定情報は、アルファベット+他の文字種の文字列であれば「文字列の傾き調整機能」が有効となり、文字認識された文字列の表示の方向が、水平方向となる。
【0061】
図17は、文字認識された文字列の表示の方向を判断する処理の一例のフローチャートである。ステップS50において、表示制御部46は、例えばアルファベットのみ、平仮名のみ、又はアルファベット+他の文字種など、文字認識された文字列の文字種を認識する。ステップS52に進み、表示制御部46は手書き文字列の表示の方向が斜めであるか否かを判定する。
【0062】
手書き文字列の表示の方向が斜めでなければ、言い換えれば手書き文字列の表示の方向が水平であれば、手書き文字列の表示の方向が調整後の文字列の方向と同一である水平方向となるため、表示制御部46はステップS56に進み、手書き文字列と同じ水平方向で文字列を表示する。
【0063】
また、手書き文字列の表示の方向が斜めであれば、手書き文字列の表示の方向が調整後の文字列の方向(水平方向)と異なるため、表示制御部46はステップS54に進み、ステップS50で認識した文字種が「アルファベットのみ」であるか否かを判定する。
【0064】
ステップS50で認識した文字種が「アルファベットのみ」であれば、表示制御部46はステップS56に進み、手書き文字列の表示の方向と同じ方向に、文字認識された文字列を表示する。また、ステップS50で認識した文字種が「アルファベットのみ」でなければ、表示制御部46はステップS58に進み、文字認識された文字列の表示の方向を水平方向に調整して表示する。
【0065】
図17のフローチャートの処理により、表示制御部46は
図18(a)の文字種が「アルファベットのみ」であって、斜め方向に手入力された手書き文字列120から文字列124を文字認識した場合、
図18(b)のように、手書き文字列120と同じ方向(同じ傾き)で文字列124を表示できる。
【0066】
また、
図17のフローチャートの処理により、表示制御部46は
図18(a)の文字種が「平仮名のみ」であって、斜め方向に手入力された手書き文字列122から文字列126を文字認識した場合、
図18(b)のように、手書き文字列120と異なる水平方向に調整された文字列126を表示できる。
【0067】
このように、第2の実施形態によれば、自由な方向に手書き入力された手書き文字列から文字認識された文字列の表示を、手書き文字列の方向のまま表示するか、水平方向に調整して表示するか、を文字種ごとに設定可能である。したがって、第2の実施形態によれば、手書き文字列から文字認識された文字列の表示の自由度を向上できる。
【0068】
[他の実施形態]
なお、第1又は第2の実施形態のように手書き文字列の傾きのまま、又は水平方向に調整された表示された文字認識後の文字列132は、例えば
図19に示すように、文字列132の長押しなどの操作により、文字列132の回転角度の指定をユーザから受け付けるサブメニュー130を表示するようにしてもよい。ユーザはサブメニュー130から文字列132の回転角度を指定することにより、文字認識後の文字列132の傾きを調整する操作を行うことができる。表示制御部46はユーザから受け付けた文字認識後の文字列132の傾きを調整する操作に従って、文字認識後の文字列の傾きを調整して表示する。
【0069】
また、本実施形態では手書き文字列の傾きを水平方向に調整したあとで文字認識を行うことで文字認識の精度を向上させていたが、例えば
図20(a)のように縦書きに記載された文字列の場合、文字認識の精度を向上させることができない場合がある。
図20は縦書きで手書き入力された手書き文字列の一例のイメージ図である。
【0070】
そこで、
図20(b)のように、文字列の中心線102と、表示部10に対して縦向きの線114からなる鋭角(角度116)を、手書き文字列の回転角度とする。文字認識・変換部45は
図20(a)の角度106を回転角度とした場合と、
図20(b)の角度116を回転角度とした場合とで、文字認識の判定率を比較することで、文字列が縦書きか横書きかを判断するようにして、文字認識された文字列の傾きを調整する方向を切り替えるようにしてもよい。
【0071】
また、
図20(a)のように縦書きに記載された文字列の場合、設定画面1000は
図25に示すように、例えば「斜めに手書きした文字を縦方向に表示する」という説明文が付与されているチェックボックス1002へチェックを入れることで、文字列の傾き調整機能を有効にでき、チェックを外すことで、文字列の傾き調整機能を無効にできる。
図25の設定画面1000の場合の文字列の傾き調整機能は、有効であれば、
図20(b)のように手書きで斜め方向に縦書きされた文字列の文字認識後の文字列の傾きを縦方向に調整する。
【0072】
<入力装置の構成の別の例1>
本実施形態の入力装置は大型のタッチパネルを有するものとして説明されているが、入力装置はタッチパネルを有するものに限られない。
【0073】
図21は、入力装置の他の構成例を示す図である。
図21では、通常のホワイトボード413の上辺にプロジェクタ411が設置されている。このプロジェクタ411が入力装置に相当する。通常のホワイトボード413とは、タッチパネルと一体のフラットパネルディスプレイではなく、ユーザがマーカで直接、手書きするホワイトボードである。なお、ホワイトボードは黒板でもよく、映像を投影するだけの広さの平面であればよい。
【0074】
プロジェクタ411は超短焦点の光学系を有しており、10cm程度から歪みの少ない映像をホワイトボード413に投影できる。この映像は、無線又は有線で接続されたPCから送信されてもよいし、プロジェクタ411が記憶していてもよい。
【0075】
ユーザは専用の電子ペン2501を使ってホワイトボード413に手書きする。電子ペン2501は、ユーザが手書きのためにホワイトボード413に押しつけるとスイッチがONになり発光する発光部を例えば先端部に有している。光の波長は近赤外や赤外なのでユーザの目には見えない。プロジェクタ411はカメラを有しており、発光部を撮像して画像を解析し電子ペン2501の方向を特定する。
【0076】
また、電子ペン2501は発光と共に音波を発信しており、プロジェクタ411は音波の到達時間により距離を算出する。方向と距離により電子ペン2501の位置を特定できる。電子ペン2501の位置にはストロークが描画(投影)される。
【0077】
プロジェクタ411はメニュー430を投影するので、ユーザが電子ペン2501でボタンを押下すると、プロジェクタ411が電子ペン2501の位置とスイッチのON信号により押下されたボタンを特定する。例えば、保存ボタン431が押下されると、ユーザが手書きしたストローク(座標の集合)がプロジェクタ411で保存される。
【0078】
プロジェクタ411は、予め定められたサーバー412又はUSBメモリー2600等に手書き情報を保存する。手書き情報はページごとに保存されている。画像データではなく座標のまま保存されるので、ユーザが再編集することができる。ただし、本実施形態では操作コマンドを手書きで呼び出せるのでメニュー430は表示されなくてもよい。
【0079】
<入力装置の構成の別の例2>
図22は、入力装置の他の構成例を示す図である。
図22の例では入力装置として、端末装置600、画像投影装置700A、及び、ペン動作検出装置810を有する。
【0080】
端末装置600は、画像投影装置700A及びペン動作検出装置810と有線で接続されている。画像投影装置700Aは、端末装置600により入力された画像データをスクリーン800に投影させる。
【0081】
ペン動作検出装置810は、電子ペン820と通信を行っており、スクリーン800の近傍における電子ペン820の動作を検出する。具体的に、電子ペン820はスクリーン800上において、電子ペン820が示している点を示す座標情報を検出し、端末装置600へ送信する。
【0082】
端末装置600は、ペン動作検出装置810から受信した座標情報に基づき、電子ペン820によって入力されるストローク画像の画像データを生成し、画像投影装置700Aによってストローク画像をスクリーン800に描画させる。
【0083】
また、端末装置600は、画像投影装置700Aに投影させている背景画像と、電子ペン820によって入力されたストローク画像とを合成した重畳画像を示す重畳画像データを生成する。
【0084】
<入力装置の構成の別の例3>
図23は、入力装置の構成例を示す図である。
図23の例では、入力装置として、端末装置600とディスプレイ800Aと、ペン動作検出装置810とを有する。
【0085】
ペン動作検出装置810は、ディスプレイ800Aの近傍に配置され、ディスプレイ800A上に、電子ペン820Aが示している点を示す座標情報を検出し、端末装置600へ送信する。なお、
図34の例では、電子ペン820Aは、端末装置600によってUSBコネクタを介して充電されても良い。
【0086】
端末装置600は、ペン動作検出装置810から受信した座標情報に基づき、電子ペン820Aによって入力されるストローク画像の画像データを生成し、ディスプレイ800Aに表示させる。
【0087】
<入力装置の構成の別の例4>
図24は、入力装置の構成例を示す図である。
図24の例では、入力装置として、端末装置600と、画像投影装置700Aとを有する。
【0088】
端末装置600は、電子ペン820Bと無線通信(Bluetooth(登録商標)等)を行って、スクリーン800上において電子ペン820Bが示す点の座標情報を受信する。端末装置600は、受信した座標情報に基づき、電子ペン820Bにより入力されるストローク画像の画像データを生成し、画像投影装置700Aにストローク画像を投影させる。
【0089】
また、端末装置600は、画像投影装置700Aに投影させている背景画像と、電子ペン820によって入力されたストローク画像とを合成した重畳画像を示す重畳画像データを生成する。
【0090】
以上のように、上記した各実施形態は、様々なシステム構成において適用することができる。
【0091】
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【0092】
例えば、本実施形態では電子黒板を一例として説明したが、タッチパネルを有する情報処理装置であれば好適に適用できる。また、電子黒板と同様の機能を有する装置を、電子ホワイトボード、電子情報ボード、インタラクティブボードなどともいう。タッチパネルを搭載した情報処理装置としては、例えば、PJ(Projector:プロジェクタ)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPC又はデスクトップPC等であってもよい。
【0093】
また、本実施形態ではペン先の座標をタッチパネルで検知する方法でペンの座標を検出したが、ペン先の座標を超音波により検出してもよい。また、ペンは発光と共に超音波を発信しており、入力装置は超音波の到達時間により距離を算出する。入力装置は方向と距離によりペンの位置を特定できる。この場合、ペンの軌跡をストロークとしてプロジェクタが描画(投影)する。
【0094】
また、
図1~
図4などの構成例は電子黒板1による処理の理解を容易にするため、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。電子黒板1の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
【0095】
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0096】
なお、手書き入力部40は特許請求の範囲の手書き入力手段の一例である。表示制御部46は表示制御手段の一例である。設定受付部48は設定受付手段の一例である。
【符号の説明】
【0097】
1 電子黒板
10 表示部
11 タッチパネル
12 制御部
40 手書き入力部
41 ストローク分割部
42 データ保存部
43 文字重心計算部
44 文字列傾斜計算部
45 文字認識・変換部
46 表示制御部
47 ネットワーク通信部
48 設定受付部
51 ストローク保存部
52 文字列保存部
53 設定情報保存部
100 重心座標
102 中心線
104 横向きの線
106 角度
108 手書き文字列
110、112 文字列
1000 設定画面
【先行技術文献】
【特許文献】
【0098】