説明

文書処理システム

【課題】 定型または非定型の紙文書に対して所定の処理を実行させるための文書処理システムが得られる。また、紙文書に印刷されたドットの位置をより正確に検出する文書処理システムを提供する。
【解決手段】 紙文書を識別するための紙IDをエンコードした符号化紙IDを含む符号化情報が印刷された領域を複数有し、符号化情報には領域の紙文書における位置を示す座標情報をエンコードした符号化座標情報が含まれた紙文書に対して処理を行う文書処理システムであって、符号化紙IDと符号化座標情報と矩形である領域の枠とをドットを用いて紙文書に印刷する印刷手段と、ドットのぼけの程度を検出するぼけドット検出手段と、ぼけドット検出手段が検出した4隅のドットのぼけの程度のうち、ぼけの程度が最も大きいドットであるぼけドットの近傍のドットで、ぼけの程度が小さいドットの座標と、ぼけドット除くコーナー検出手段で検出されたドットとの座標から、紙文書での筆記位置を検出するためのパラメータを検出するパラメータ検出手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、紙文書に対して処理を行う文書処理システムに関する。
【背景技術】
【0002】
業務の電子化が進展しており、電子文書の流通が増大している一方、CRT、LCDなどのディスプレイの文書表示品質はいまだ紙への印刷品質に劣る点も多いために、電子文書を紙文書として紙に印刷する機会が増大している。
【0003】
そのため、例えば特許文献1には、文書作成・編集にあたり、複数の著者、編集者が電子文書の印刷された形態である紙文書から、オリジナルの電子文書に容易にアクセスし、その電子文書を編集することのできる文書処理装置が開示されている。また、特許文献1には、紙文書からオリジナルの電子文書を得て電子文書と紙文書との間で情報を相互にやりとりすることが開示されている。
【0004】
特許文献2では、電子文書と、それを印刷した紙文書との間で関連付けを行い、紙文書の元となる電子文書を同定する手段を提供し、同定された電子文書に対し加筆を挿入することが可能になり、紙文書に加えられた加筆作業を電子文書に反映させ、相互の文書の差異をなくすことのできる装置、方法が開示されている。
特許文献3では、文書ID等の識別子を付与し、フォーム(紙)を作成する手段が、「バーコード変換手段」および「第一の印刷手段」で開示されている。紙文書上の識別子と電子文書との関連は、「管理テーブル」で開示されている。紙ID、筆記情報を取得する手段は「印刷シート」の説明により示されている。更に、ストローク系の入力手段も「光学的な読取装置」で説明されている。紙IDを画像から取得する手段は、「バーコード解読手段」で示され、バーコード等の識別子は、「バーコード」として示されている。加筆された原稿を記録した画像からレイアウトを解釈し、各領域に応じた処理を行う処理手段は、「加筆読取処理手段」で説明されている。
【0005】
特許文献4では、文書ID等の識別子を付与しフォーム(紙)を作成する手段が開示され、詳細に説明されている。また、紙文書上の識別子と電子文書との関連については、15図の“文書IDよりフォーマットファイルデータベースを検索”に示され、段落「0056」「0057」で詳細に説明されている。紙ID、筆記情報を取得する手段については、スキャナ、ペンタイプ、パッドタイプが図26、図2、図17に示され、紙IDの取得に関しても開示され、ストローク系の入力手段もこれらの図により説明されている。
【0006】
更に、紙IDを画像から取得する手段も図19のコードリーダ15で説明されている。バーコード等の識別子についても段落「0034」〜「0036」で示されている。加筆された原稿を記録した画像からレイアウトを解釈し、各領域に応じた処理を行う処理手段は、第15図の“フォーマット情報に従い、筆記座標をクラスタリングする”、“クラスタ化した座標群をフォーマット情報の処理記述にしたがって処理する(OCR, Image処理等)”、“OCR処理されたデータは看護記録データベースへ登録”、“Image処理されたデータベースは座標データ系列として.shc, .tkiファイルに保存”の一連の処理にて明示されている。紙ID、文書IDや処理情報を取得する手段は、段落「0077」「0078」で説明されている。
【0007】
特許文献5は、動作識別情報や対象識別情報を含むバーコードを利用し、該バーコードを光学的読み取り装置付き通信機にて読み取りを実施し、バーコードの情報に対応した顧客サービス技術に関するものである。
【0008】
特許文献6は、商品の選択や処理方法の選択を指示するためのチェックボックスと、文字記入領域と、印刷物ID及びチェックボックスの配置及び文字記入領域の位置情報を符号化したバーコードによる顧客サービス技術に関するものである。ユーザが馴染みやすい印刷物とコピーFAX複合機を利用することで、ユーザの希望するサービスを提供することが開示されている。
【0009】
特許文献7は、顧客サービス技術に関するものであり、その内容は、通信先情報と用紙上の座標を示す座標情報と用紙の種別の情報を含むコードを付加した用紙を顧客に配布し、顧客は手に持って筆記動作を行うことができるというものである。特許文献7に開示された情報入力装置は、コードを読み取り、そのコードに含まれる通信先情報に含まれる通信先に発信する通信機能付きである。この情報入力装置は、読み取った情報をサーバに送信し、サーバはコードに含まれる座標情報やメディア識別情報を受信し、受信した情報に対応した所定の処理を実施する。
【0010】
上記特許文献6において、顧客は筆記作業によって加筆を加えた印刷物をコピーFAX複合機で読み取る作業を必要としたが、特許文献7では、筆記具等の情報入力装置で各種情報を含むコードを読み取り且つ発信する機能を持たせたことを特徴としている。
【0011】
特許文献8は、複数の電子文書を記憶したデータベースを、文書情報を記録した文書情報部および文書情報の内容に相当する電子情報をバーコード情報に変換し記録したバーコード情報部を有する媒体用紙と、媒体用紙上から所望の単語を選択して選択マークを付与するためのマーキング手段により、選択マークおよびバーコード情報に基づいてデータベースから文書ファイルを検索および出力する文書情報管理システムに関するものである。
【特許文献1】特許第3219251号公報
【特許文献2】特開平10−63820号公報
【特許文献3】特開2002−222075号公報
【特許文献4】特開2002−312478号公報
【特許文献5】特開2002−281179号公報
【特許文献6】特開2002−183520号公報
【特許文献7】特開2002−215768号公報
【特許文献8】特開平11−96166号公報
【発明の開示】
【発明が解決しようとする課題】
【0012】
特許文献1では、内容の編集はあくまで紙文書上で行われるため、紙文書で渡された文書から、コンピュータを用いて電子文書を呼び出して、電子文書上で文書内容の校正・編集を行わなければならない。通常のオフィスで作業をするならこの形態でも特に問題はないが、外出先、交通機関での移動中等の空いた時間に文書内容の校正・編集を行おうとした場合、電子上で文書を効率的に編集するため道具が手にはいらないことが多い。つまり、外出先ではノートPC等では大きくて重い等の可搬性の悪さやバッテリの持続時間の問題など、実用的な作業をすることが難しいし、小型PDAでも表示装置の小ささ、入力デバイスの貧弱さなど同様である。
【0013】
また、特許文献2は、紙文書に加えられた加筆情報を単純に電子文書に挿入するものである。このように、加筆画像を電子文書に挿入するだけでは、紙文書と電子文書との差異をなくし同一の外観を持つ電子文書を作成するだけであり、特許文献2における電子文書は単純な紙文書の置き換えにしか過ぎない。そのため、特許文献2によって作成された電子文書は単にその内容を読み取る業務に利用することしか実用的ではない。
また、例えば作成されたアンケートへの回答の記入した内容の外観を読めるだけでは、従来の紙文書と同様に、あらためて人間が集計する必要があるが、その作業は煩雑であり、自動的に集計する手段が求められている。そうした加筆情報の自動的な処理として、集計に限らず、さまざまな処理・活用が求められているが、特許文献2では実現不可能である。
また、特許文献3は、元の電子文書と加筆情報の対応付けに関する処理、処理ID等の処理情報を登録する際の処理やフォームそのものを編集する処理、更には、紙ID、文書IDや処理情報を取得する手段に関しての構成を有するものではない。
【0014】
また、特許文献4では元の電子文書と加筆情報の対応付けに関する処理は言及されておらず、患者情報との対応付けが行われていれば良いと記述されており、元の電子文書と加筆情報の対応付けに関する処理を必要とするものではない。また、処理ID等の処理情報を登録する際の処理やフォームそのものを編集する処理を含むものではない。
【0015】
特許文献5では、あらかじめ用意されたバーコードの情報に対応するサービスのみ処理を実施するものであり、ユーザ選択の範囲が限定されてしまっている。
【0016】
特許文献6は、あらかじめ設定した定型的な処理にのみ限定した発明であり、非定型処理については対応していない。
【0017】
特許文献7もあらかじめ設定した定型的な処理にのみ限定した発明であり、非定型処理については対応していない。
【0018】
特許文献8は、ハイパーテキスト化されていない紙文書からでもデジタルの世界に直接アクセスできるようにした発明であるが、この発明においても、あらかじめ設定した定型的な処理にのみ限定した発明であり、それ以外の処理については対応していない。また、特許文献8はデータベースの文書ファイル検索にのみ特化した特許であり、他の応用した処理には対応していない。
【0019】
また、紙文書の識別や、筆記位置を検出するために、紙文書に予め座標や紙文書を識別するものを表す小さなドットが印刷され、その紙文書をペン型の装置を用いて処理を行う文書処理システムがある。この場合、ドットの中心位置をより正確に検出することが重要である。
【0020】
本発明は、このような問題点に鑑み、定型または非定型の紙文書に対して所定の処理を実行させる文書処理システムを提供することを目的とする。
【0021】
また、紙文書に印刷されたドットの位置をより正確に検出する文書処理システムを提供することを目的とする。
【課題を解決するための手段】
【0022】
上記課題を解決するために、本発明は、紙文書を識別するための紙IDをエンコードした符号化紙IDを含む符号化情報が印刷された領域を複数有し、前記符号化情報には前記領域の前記紙文書における位置を示す座標情報をエンコードした符号化座標情報が含まれた紙文書に対して処理を行う文書処理システムであって、前記符号化紙IDと前記符号化座標情報とを作成するエンコード手段と、前記紙文書に対応する電子文書に対して割り当てられる文書IDと前記紙IDとを関連付ける文書紙ID関連手段と、前記紙IDを取得し、前記エンコード手段により作成された前記符号化紙IDと前記符号化座標情報と矩形である前記領域の枠とをドットを用いて前記紙文書に印刷する印刷手段と、前記紙IDを管理する紙ID管理手段と、前記紙文書を撮像することで、前記紙文書の画像を入力する画像入力手段と、前記画像入力手段により入力された入力画像における前記領域の4隅のドットを検出するコード枠検出手段と、前記コード枠検出手段により検出された枠に基づき前記符号化された情報を取得する符号化情報取得手段と、前記画像符号化情報取得手段で取得された前記符号化紙IDと前記符号化座標情報をデコードするデコード手段と、前記デコード手段でデコードされた前記符号化座標情報から筆記位置を検出する筆記位置検出手段と、前記情報取得手段により取得された筆記情報に対して行われる処理を示す処理IDと前記紙IDとを関連付ける処理紙ID関連手段とを有し、前記筆記位置検出手段は、前記ドットのぼけの程度を検出するぼけドット検出手段と、前記ぼけドット検出手段が検出した前記4隅のドットのぼけの程度のうち、ぼけの程度が最も大きいドットであるぼけドットの近傍のドットで、ぼけの程度が小さいドットの座標と、前記ぼけドット除く前記コーナー検出手段で検出されたドットとの座標から、前記紙文書での筆記位置を検出するためのパラメータを検出するパラメータ検出手段と、前記パラメータを用いて前記紙文書における筆記位置の座標を検出する座標系変換手段とを有することを特徴とする。
【0023】
また、上記課題を解決するために、本発明は、前記紙IDから前記文書ID及び処理IDに変換する紙文書処理ID変換手段と、前記処理IDを管理する処理ID管理手段とをさらに有し、前記処理ID管理手段は、前記筆記情報に対して行われる処理を実行する処理プログラムと、前記処理IDとを関連付けたプログラム処理ID関連付け情報を管理することを特徴とする。
【0024】
また、上記課題を解決するために、本発明は、前記情報取得手段により取得された筆記情報を、前記フォームのレイアウト情報及び処理IDに基づき、データに分解し、保存する筆記情報分解保存手段をさらに有することを特徴とする。
【0025】
また、上記課題を解決するために、本発明は、前記コーナー枠検出手段は、前記ドットの中心の座標を検出することを特徴とする。
【0026】
また、上記課題を解決するために、本発明は、前記紙文書に光を照射する照明手段をさらに有し、前記画像入力手段は、前記照明手段により照射された前記紙文書を撮像することを特徴とする。
【0027】
また、上記課題を解決するために、本発明は、筆記状態であるか否かを検出する筆記状態検出手段をさらに有し、前記照明手段と、前記画像入力手段と、前記デコード手段は、前記筆記状態検出手段が筆記中であると検出している場合に動作することを特徴とする。
【0028】
また、上記課題を解決するために、本発明は、前記印刷手段は、前記符号化紙IDにのみ赤外領域を吸収する色材を使用して印刷することを特徴とする。
【発明の効果】
【0029】
以上説明したように、本発明によれば、定型または非定型の紙文書に対して所定の処理を実行させるための文書処理システムが得られる。また、紙文書に印刷されたドットの位置をより正確に検出する文書処理システムが得られる。
【発明を実施するための最良の形態】
【0030】
以下、本発明の実施例を、図面に基づいて説明する。
【実施例】
【0031】
まず最初に本実施例の概要について説明し、その後、全体構成図の説明をする。
【0032】
本実施例における文書処理システムは、紙の世界と電子の世界を結びつけるものである。例えばWeb画面上でフォーム開き、それにキーボードで入力し、最後にSubmitボタンを押すことにより、入力データがサーバ上に送られて、その後の処理(例えばショッピング等)が行われているシステムがある。
【0033】
これと同様に、文書処理システムは、紙文書のフォームにペンで筆記することにより、ペンで筆記された筆記情報がサーバに送られて、全く同じようにその後の処理が行われるシステムを実現するためのものである。すなわち、文書処理システムは、電子の世界では画面とキーボードで行っていた作業を、紙文書とペンとで作業を行うことにより等価的に実現するものである。
【0034】
このような処理を行う文書処理システムの全体構成図を、図1を用いて説明する。図1には、帳票作成用PC101と、印刷装置102と、帳票処理用PC103と、スキャナ105と、デジタルPAD(以下、D−PADと記す)104と、画像取得装置500と、データサーバ106と、ネットワーク107とが示されている。
【0035】
帳票作成用PC101は、筆記される紙文書のフォームを作成するものである。印刷装置102は、紙文書である帳票を印刷するものである。帳票処理用PC103は、筆記された紙文書から、帳票のフォームに従って、筆記されたデータに関する処理を行うものである。スキャナ105は、筆記された帳票を読み込むものである。D−PAD104は、連続的に手書き座標を取得するものであり、結果的に帳票に筆記された筆記情報を取得する。データサーバ106は、帳票処理用のデータベースである。画像取得装置500は、エリアCCDを撮像デバイスとして用いて画像を取得する。
【0036】
以下の説明において、スキャナ105で読み込んだ帳票すなわちスキャンイメージと、D−Pad104で取得した手書き座標すなわちストロークデータを総称したものを筆記情報と表現する。
【0037】
また、以下の説明において帳票作成用PC101と印刷装置102をまとめて帳票作成装置108、帳票処理用PC103とスキャナ105とD−PAD104と画像取得装置500をまとめて帳票処理装置109、データサーバ106を記憶装置100と表現することがある。
【0038】
次に、図1に示される各PCのハードウェア構成を、図2を用いて説明する。図2に示されるハードウェア構成は、それぞれバスBで相互に接続されている入力装置31と、表示装置32と、ドライブ装置33と、記録媒体34と、補助記憶装置35と、メモリ装置36と、演算処理装置37と、インタフェース装置38とを含むように構成される。
【0039】
入力装置31は、PCのユーザが操作するキーボード及びマウスなどで構成され、PCに各種操作信号を入力するために用いられる。表示装置32は、PCを操作するのに必要な各種ウィンドウやデータ等を表示する。インタフェース装置38は、PCをネットワークに接続する為のインタフェースであり、例えばNIC(Network Interface Card)やモデム等で構成される。
【0040】
そして、PCを動作させるためのプログラムは、CD−ROM等の記録媒体34によって提供されるか、ネットワークを通じてダウンロードされる。また、記録媒体34は、ドライブ装置33にセットされ、データやプログラムが記録媒体34からドライブ装置33を介して補助記憶装置35にインストールされる。
【0041】
ストレージである補助記憶装置35は、データやプログラムを格納すると共に、必要なファイル等を格納する。メモリ装置36は、PCの起動時に補助記憶装置35からプログラムを読み出して格納する。演算処理装置37は、メモリ装置36に読み出され格納されたプログラムに従って処理を実行する。
【0042】
以上説明した図1に示される全体構成は一例であって、文書処理システムは、図3で説明する要素が含まれると良いので、他の構成もあり得る。
【0043】
図3は、文書処理システムを構成する要素A〜Kとそれらの関係、並びにユーザと後述する外部処理プログラムとストレージとの関係を示す図である。
【0044】
図3に示されるユーザ110は、文書処理システムを使用するユーザである。また、外部処理プログラムは、筆記内容から所定の動作をするプログラムであり、このプログラムは予め用意しておく必要がある。ストレージ112は、情報を保存する記憶装置であり、例えば上記ハードディスク、MOドライブ、半導体ディスクなどが含まれる。
【0045】
次に、各要素について説明する。要素A121は、紙に紙IDを付与・印刷し、紙IDと文書IDおよび処理IDを関連付けるものである。これら各IDについては後に説明する。要素B122は、紙IDを管理し、フォームが定まっている電子文書に対して割り当てられる文書IDと紙IDとを関連付けるものである。
【0046】
要素C123は、紙IDの付与された紙文書であり、この紙文書にユーザ110は筆記する。要素D124は、紙文書からデータ並びに紙IDを取得するものである。要素E125は、紙IDをデコードするものである。要素F126は、紙IDをエンコードするものである。要素G127は、紙IDである。要素H128は、処理IDと外部処理プログラム111を関連付け、処理IDを管理するものである。要素I129は、フォームのレイアウト情報および処理方法を編集・管理するものである。要素J130は、筆記情報をフォームのレイアウト情報および処理方法から、筆記情報に分解・保存するものである。要素K131は、紙IDから文書ID及び処理方法に変換するものである。
【0047】
これらの要素は、図1の場合、要素A、B、Eが帳票作成装置108に搭載され、要素Iが記憶装置100に搭載され、要素D、F、J、Kが帳票処理用PC109に搭載されている。
【0048】
なお、印刷手段と処理紙ID関連手段と文書紙ID関連手段は要素Aに対応する。紙ID管理手段は、要素Bに対応する。デコード手段は、要素Eに対応する。エンコード手段は、要素Fに対応する。処理ID管理手段は、要素Hに対応する。筆記情報分解保存手段は、要素Jに対応する。紙文書処理ID変換手段は、要素Kに対応する。また、符号化紙IDは、紙IDを要素Fでエンコードしたものに対応する。
【0049】
なお、2次元コードやコード、あるいは符号化紙IDであることが図面などから明らかな場合、符号化紙IDを単に紙IDと表現することもある。
【0050】
以上説明した要素は、ソフトウェアやハードウェアとして実現することが可能である。そのため、以下の説明では、それらを構成するものを説明する際にモジュールという表現を用いることがある。また、各IDであるが、紙IDとは、それぞれの紙に一意的に割り当てられるものであり、全ての紙のIDは、異なったIDとなっている。あるいは、同一の文書ID、同一ページのものを複数枚印刷する際は、これらは同一の紙IDとしてもよい。
【0051】
処理IDとは、文書管理システムで行われる筆記情報に対する処理に割り当てられるIDである。文書IDとは、電子文書に対して割り当てられるIDであり、原文書IDと表現することもある。
【0052】
次に、上述した要素と関連して、一連の文書処理の詳細な説明をする。
【0053】
まず、外部処理プログラムと文書処理システムについて説明する。外部処理プログラムと文書処理システムとのインタフェースはあらかじめ定められているので、それに応じた外部処理プログラムを作成する。
【0054】
このようにして作成される外部処理プログラムは、2種類に分類することができ、1つは筆記情報そのものを処理する非定型処理を行う外部処理プログラムであり、もう1つは筆記情報を紙文書のフォームに従ってデータに分解し、そのデータに対する定型処理を行う外部処理プログラムである。
【0055】
ここで、定型処理とは、いわゆる帳票処理とよばれているもので、あらかじめ記入する欄、すなわちフォームが設けられており、どこに記入されたかで、あとの処理が定まるもののことを言う。たとえば、住所欄に記入されたものは住所として扱われる。すなわち筆記場所によって処理が定まるもののことをさす。また、ここで非定型処理とは、前述の定型処理以外のものをさす。
【0056】
本実施例において、非定型処理では所定のフォルダに筆記情報が記述されたデータファイルが保存される。非定型処理を行う外部処理プログラムは、このフォルダやデータベースを定期的に監視し、新しいファイルができていればそれを取得して、新しいファイルを処理するようなプログラムである。
【0057】
あるいはフォルダやデータベースに新たなファイルが保存されるとイベントが発生するようなOS(Operating System)を用いて、このイベントをキャッチして処理を行うプログラムである。
【0058】
このような非定型処理を行う外部処理プログラムの例としては、電子文書に筆記情報を重畳させ、それをあらかじめ定められた人に添付ファイルとしてメールを行う、というものがあげられる。
【0059】
次に、定型処理であるが、本実施例では所定のデータベースに筆記情報などのデータが保存されるため、定型処理をする外部処理プログラムは、データベースを定期的に監視し、新しいデータができていればそれを取得して処理するようなプログラムとして作成される。
【0060】
あるいはデータベースに新たなデータが登録されるとイベントが発生するようなデータベースを用いて、このイベントをキャッチして処理を行うプログラムとして定型処理の外部処理プログラムは作成される。このような定型処理の外部処理プログラムとしてはアンケート処理といったものをあげることができる。
【0061】
なお、非定型処理を行う外部処理プログラムと定型処理を行う外部処理プログラムの両方は必ずしも必要ではないが、何らかの処理をするために少なくとも一つは必要である。また、以下の説明で、非定型処理を行う外部処理プログラムを非定型処理プログラムと表現し、定型処理を行う外部処理プログラムを定型処理プログラムと表現する。
【0062】
以上説明した外部処理プログラムは、文書処理システムと関連付けるために、文書処理システムに登録される。
【0063】
まず、非定型処理プログラムを登録するためのモジュールの詳細は要素Hに記述されている。このモジュールを用いて、処理情報は登録される。
【0064】
この処理情報とは本システムと非定型処理プログラムとのインタフェースの方法を表すものであり、例えばデータが保存されるフォルダ名がある。このとき、データのフォーマットはあらかじめ定められている。また、後述するように印刷時にはどの外部処理プログラムを起動するかを選択しなければならないので、そのために必要な説明文なども登録する。登録することにより、要素H内では処理IDが自動的に振られ、それは後述するように再利用される。
【0065】
次に、定型処理について説明する。定型処理を行うためにはまずフォームを設計しなければならない。そのためのモジュールの詳細は要素Iに記述されている。これはフォームの各要素のレイアウト情報と処理情報を編集し、登録するものである。なお、この実施例では定型処理は処理IDが0としてあらかじめ登録されている。また、ここでのレイアウト情報は、例えば紙での入力欄の位置などを表し、処理情報は、どの要素をどのデータベースに登録するか、および文字認識を行うか、行うとすれば文字種は何であるかなどを表す。
【0066】
文書処理システムを利用するユーザは、まず紙文書を印刷する。そのためには、まず印刷したい電子文書を、要素Aを使って印刷する。この電子文書はファイルとして保存されており、そのファイル名には、ファイルがどんな性質のファイルなのかを判断するために通常用いられる拡張子が含まれる。
【0067】
定型処理用の電子文書は、ある特定の拡張子を持っているので、印刷しようとする電子文書の拡張子によって、定型処理か非定型処理かが定まる。
【0068】
非定型処理の場合、上記モジュールに対して印刷を指示すると、このモジュールは要素Hに登録済みの外部処理プログラムに関する情報をユーザに提示し、筆記後に行われる処理の選択を求める。ユーザがどの処理を行うか選択することにより、処理IDが定まる。
【0069】
処理IDが定まると、モジュールは、電子文書のIDと処理IDを要素Bに登録し、紙IDを取得する。その後、紙文書にこのIDを付与し印刷を行い、紙IDが付与された紙文書、すなわち要素Cが得られる。
【0070】
また、定型処理の場合、モジュールに対して印刷を指示すると、非定型処理の場合とは異なり、処理IDは0と定められているので、ユーザに処理の選択を求めることはなく、要素Bに電子文書のIDと処理IDを登録し、紙IDを取得する。その後は先ほどと同様、印刷が行われ、要素Cが得られる。
【0071】
以上の処理によって、紙文書とその電子文書および筆記に行うべき処理の関連付けが行われたことになる。つまり紙文書には紙IDが付けられ、これに文書IDと処理IDが関連付けられ、この紙に筆記したときに、どの紙に筆記したか、および筆記した後、どのような処理を行うかが、文書処理システムに登録されたことになる。なお、上記原文書とは、筆記情報がまだ記述されていない文書を表す。
【0072】
次に、紙に筆記後の動作について説明する。ユーザは、作成された要素Cである紙文書に筆記し、この紙文書を要素Dに対応するスキャナや、例えばMFP(Multi Function Printer)のスキャナ部を用いて画像として入力させる。これにより、要素D内の要素Eで紙IDが取得される。これらの紙IDと画像は要素Kに送られる。
【0073】
あるいは、ユーザは、作成された要素Cである紙文書を要素Dに対応する座標入力装置上に設置し、筆記を行う。すると要素Dで筆記情報が、要素D内の要素Eで紙IDが取得される。これらの紙IDと筆記情報は要素Kに送られる。
【0074】
要素Kでは取得された紙IDから要素Bに問い合わせることにより文書IDと処理IDが特定される。このように特定することが可能なことは、要素Bで文書IDと処理IDを登録し、紙IDを取得しているためである。
【0075】
次に、要素Hに問い合わせることによって処理IDから筆記情報をどこのフォルダに保存するかが得られるので、そこに文書IDと画像があわせて保存される。
【0076】
次に、処理IDが0の場合について説明する。処理IDが0の場合は定型処理が行われる。まず、文書IDと画像が要素Jに渡される。要素Jでは要素Iに問い合わせて、文書IDからフォームのレイアウト情報と処理情報を得る。ここでの処理情報は、データの保存先や筆記情報の文字認識・マーク認識等である。
【0077】
そこで、まずレイアウト情報を元に、画像をフィールドである記入欄毎に分解し、要素Dとしてスキャナを用いた場合は、電子文書の画像と筆記された紙文書の画像とを比較して筆記情報のみの画像を得る。あるいは、要素Dとして座標入力装置を用いた場合は、筆記された座標列がそのまま得られている。その後、処理情報に従って文字認識やマーク認識等が行われ、その結果がデータベースに保存される。
【0078】
以上が一連の文書処理の詳細な説明である。次に、各要素の詳細について説明していく。
【0079】
まず、要素Aから説明する。この要素Aの説明では5つの実施例を説明する。最初に図4を用いて第1の実施例を説明する。
【0080】
図4に示されるフローチャートは、ネットワークを介さずスタンドアロンのPC上で文書を独自に印刷する場合の処理を示している。
【0081】
まずステップS101で、レイアウトエディタを起動し作成済み電子文書を表示する。このレイアウトエディタは、処理IDの閲覧/選択と、紙IDの取得、電子文書の表示/編集/印刷が行える。具体的には要素B・F・Hや、定型文書の場合は要素I「帳票作成プログラム」が、非定型文書の場合はワープロソフトなどが連携し上記の機能を実現する。ステップS102では必要に応じて電子文書の編集を行う。
【0082】
次のステップS103ではユーザが印刷要求を行った際に、上述のとおり電子文書の拡張子により定型文書/非定型文書の判別を行い、非定型処理の場合、要素Hに登録済みの外部処理プログラムに関する情報をユーザに提示し、筆記後に行われる処理の処理IDの決定を行う。また、定型処理の場合、印刷の指示が行われると、非定型処理の場合とは異なり、処理IDは0と定められているので、ユーザに処理の選択を求めることはない。
【0083】
次のステップS104で、紙IDが取得される。ステップS105で、紙IDが2次元コードにエンコードされ、ステップS106で、2次元コードが電子文書中の所定の位置に貼り付けられる。ステップS107で電子文書が印刷される。
【0084】
この処理での紙IDの取得には、要素Bが用いられ、紙IDと電子文書の各ページ、そして処理IDとの関連付けを行うとともに、それらを管理データベースが利用される。また、紙IDを取得したのちに紙IDから2次元コードを作成するのは、要素Fにより行なわれる。
【0085】
作成された2次元コードは、重畳位置の指定があった場合は電子文書内の指定位置に、重畳位置の指定がなかった場合は予め定められている電子文書内の所定の位置に重畳される。このID取得から文書に2次元コードを挿入するまでの一連の流れは、ユーザがワープロソフトで印刷を実行したときに自動的に行われる。あるいはメニューに用意してユーザが明示的に任意の時点で実行させる。
【0086】
その為には、ワープロソフトにマクロ機能が備わっている場合、そのマクロ機能を用いれば実現することができる。この場合では要素Bと要素Gがソフトウエアモジュールであり、Windows(登録商標)のCOMという形式であれば、マクロ機能からこれらのモジュールを呼び出すことができ、さらにWordObjectLibraryというモジュールのAddPictureメソッドを用いれば画像を電子文書の任意の位置に挿入することができる。このようにして要素Cである紙文書が印刷される。
【0087】
このステップS104において紙IDを取得する際、まず、要素Bが用いられる。このとき要素Bにより、紙IDの管理も行われる。さらに、処理IDと紙ID、文書IDと紙IDの関連付けも行われる。
【0088】
次に、図5を用いて第2の実施例を説明する。図5は、文書を作成・編集した後に印刷サービスによって印刷する場合の処理を示すフローチャートである。まず、ステップS201でユーザは電子文書を作成する。この電子文書内には各構成要素(オブジェクト)とその特性が記述されている。
【0089】
ステップS202で、ユーザは、必要に応じてレイアウトエディタを起動/表示/修正を行う。次のステップS203で、レイアウトエディタの機能を利用して処理IDの選択/紙IDの取得が行われる。この処理において、処理IDの選択には要素Hが、紙IDの取得には要素Bが用いられ、紙IDと電子文書の各ページ、そして処理IDとの関連付けを行うとともに、それらを管理するデータベースが利用される。なお処理IDの選択が行われるのは非定型文書の場合のみで、定型処理の場合には、処理IDは0と定められているので、ユーザに処理の選択を求めることはない。
【0090】
ステップS204で、要素Fにより、紙IDから2次元コードが作成される。ステップS205で、作成された2次元コードは、重畳位置の指定があった場合は電子文書内の指定位置に、重畳位置の指定がなかった場合は予め定められている電子文書内の所定の位置に重畳される。
【0091】
次のステップS206で、作成された2次元コード重畳済みの電子文書または電子文書の保存場所をSOAP(Simple Object Access Protocol)を使用して印刷サービスに送信する。なお、電子文書の保存場所を送信する場合は、2次元コード重畳済みの電子文書を印刷サービスからアクセス可能な場所に保存する。
【0092】
ステップS207では、送信されたのが電子文書か電子文書の保存場所かで、処理が分岐する。電子文書の場合は、レイアウトエディタまたはビューワの機能によりステップS209で電子文書が印刷される。
【0093】
電子文書の保存場所を送信した場合は、ステップS208で印刷サービス内部において受信した保存場所から電子文書が取得され、ステップS209で電子文書が印刷される。
【0094】
以上説明した第2の実施例は、レイアウトの編集を行うPCにプリンタドライバ等の印刷環境が導入されていない場合でも印刷を可能とする。
【0095】
なお、印刷サービスは、所定のPCで動作しており、そのPCに導入されている印刷環境はサービスとして他のPCに公開されているので、印刷サービスにアクセスできるPCであれば、その機能を使用して電子文書を印刷することができる。つまり、印刷環境がないPCでも電子文書の印刷命令を発行することができる。また、印刷サービス内部では編集する必要がないので、印刷コマンドを持ったビューワが、印刷サービスが動作するPCに導入されていればよい。
【0096】
次に、図6を用いて第3の実施例の説明をする。図6は、電子文書の編集を行わず印刷サービスを使用して印刷する処理を示すフローチャートである。
【0097】
ステップS301で、ユーザが電子文書を作成した後、ステップS302で、その電子文書または電子文書の保存場所、それに加え処理IDがSOAPを使用して印刷サービスに送信される。このとき、電子文書の保存場所を送信する場合は、印刷したい電子文書を印刷サービスからアクセス可能な場所に保存する。
【0098】
送信される処理IDの決定は、電子文書が非定型文書の場合、要素Hにより処理IDの一覧を取得しユーザに処理IDの選択を促すことで行われ、電子文書が定型文書の場合、処理IDは0が用いられる。
【0099】
ステップS303では、送信されたのが電子文書か電子文書の保存場所かで、処理が分岐する。電子文書が送信された場合には、ステップS303からステップS305へ処理は進む。電子文書の保存場所が送信された場合には、ステップS303からステップS304へ処理は進み、印刷サービス内部において受信した保存場所から電子文書が取得される。
【0100】
電子文書を取得または受信すると、ステップS305で、印刷サービスが稼動するPCが紙IDの取得を行う。この処理での紙IDの取得には、要素Bが用いられ、紙IDと電子文書の各ページ、そして処理IDとの関連付けを行うとともに、それらを管理するデータベースが利用される。
【0101】
次のステップS306で、要素Fにより、紙IDから2次元コードが作成される。ステップS307で、作成された2次元コードは、重畳位置の指定があった場合は電子文書内の指定位置に、重畳位置の指定がなかった場合は予め定められている電子文書内の所定の位置に重畳される。
【0102】
そして、ステップS308で、2次元コードが重畳された電子文書の印刷用イメージファイルが紙に印刷される。このうち、紙ID取得、2次元コード作成、2次元コード貼り付け、印刷には、印刷サービスが稼動するPCに導入済みのレイアウトエディタの機能が使用される。
【0103】
以上説明した第3の実施例は、レイアウトエディタをインストールしていないPCで電子文書作成を行っても印刷することを可能とする。印刷サービスは、所定のPCで動作しておりそのPCにのみレイアウトエディタをインストールしていれば、その機能を使用して電子文書を印刷することができる。つまり、レイアウトエディタがないPCでも電子文書の印刷命令を発行することができる。
【0104】
次に、図7を用いて第4の実施例について説明する。図7は、電子文書の編集を行わず印刷サービスを使用して印刷する処理を示すフローチャートである。
【0105】
ステップS401で、ユーザが電子文書を作成した後、ステップS402で、その電子文書または電子文書の保存場所、それに加え処理IDがSOAPを使用して印刷サービスに送信される。このとき、電子文書の保存場所を送信する場合は、印刷したい電子文書を印刷サービスからアクセス可能な場所に保存する。また送信される処理IDの決定は、電子文書が非定型文書の場合は、要素Hにより処理IDの一覧を取得しユーザに処理IDの選択を促すことで決定し、電子文書が定型文書の場合、処理IDは0が用いられる。
【0106】
ステップS403では、送信されたのが電子文書か電子文書の保存場所かで、処理が分岐する。電子文書が送信された場合には、ステップS403からステップS405へ処理は進む。電子文書の保存場所が送信された場合は、ステップS404で、印刷サービス内部において受信した保存場所から電子文書が取得される。
【0107】
取得または受信された電子文書は、ステップS405で、印刷サービス内部において、レイアウトエディタまたはビューワの機能により、印刷用イメージファイルに変換される。次のステップS406で、印刷サービスが稼動するPCが紙IDの取得を行う。この処理での紙IDの取得には、要素Bが用いられ、紙IDと電子文書の各ページ、そして処理IDとの関連付けを行うとともに、それらを管理するデータベースが利用される。
【0108】
次のステップS407で、要素Fにより、紙IDから2次元コードが作成される。ステップS408で、作成された2次元コードは、電子文書と同様に、印刷用イメージファイルに変換され、重畳位置の指定があった場合は電子文書内の指定位置に、重畳位置の指定がなかった場合は予め定められている電子文書内の所定の位置に重畳される。ステップS409で、2次元コードが重畳された電子文書の印刷用イメージファイルが紙に印刷される。
【0109】
以上説明した第4の実施例は、レイアウトエディタをインストールしていないPCで電子文書作成を行っても印刷することを可能とする。印刷サービスは、所定のPCで動作しておりそのPCにのみレイアウトエディタをインストールしていれば、その機能を使用して電子文書を印刷することができる。
【0110】
つまり、レイアウトエディタがないPCでもレイアウトファイルの印刷命令を発行することができる。また、印刷サービス内部では電子文書そのものに編集されるわけではなく、印刷用イメージファイルに対して画像重畳操作を行うので、印刷コマンドによるファイル出力等の機能を持ったビューワが、印刷サービスが動作するPCに導入されていればよい。
【0111】
さらに印刷サービス内部での2次元コード重畳操作は印刷用イメージファイルに変換した後に変換後のファイルに対して行われるので、元の電子文書がどのような形式であろうと、統一的な操作で2次元コードデータの重畳と紙への出力を行える事も第4の実施例のメリットである。
【0112】
次に、図8を用いて第5の実施例について説明する。図8は、印刷サービスを使用して印刷する処理を示すフローチャートである。ステップS501でユーザがレイアウトエディタを使用し電子文書を作成・編集した後、ステップS502で、その文書からプラットフォームに依存しない印刷イメージ又はページ記述言語等(以下、ページ記述言語等も含め印刷イメージと記す)を作成する。また既存の電子文書を編集せずにそのまま用いる場合は、レイアウトビューワなどの印刷命令を使用し、電子文書から印刷イメージを作成する。なお、印刷イメージとは、実際に紙に印刷された紙文書のイメージを表す。
【0113】
このようにして作成された電子文書の印刷イメージが、ステップS503で、SOAPを使用して印刷サービスに送信される。この際、ユーザが選択した処理IDと電子文書の保存先を示す文書IDが一緒に印刷サービスに対して送信される。印刷サービスが稼動するPCでは印刷イメージと文書ID及び処理IDを受信した後に、ステップS504で紙IDの取得が行われる。この処理での紙IDの取得には、要素Bが用いられ、紙IDと電子文書との関連付けを行うとともに、それらを管理するデータベースが利用される。
【0114】
次のステップS505で、要素Fにより、紙IDから2次元コードが作成される。ステップS506で、作成された2次元コードは、先に受信した電子文書の印刷イメージの形式にあわせて変換され、重畳位置の指定があった場合は電子文書内の指定位置に、重畳位置の指定がなかった場合は予め定められている電子文書内の所定の位置に重畳される。
【0115】
そして、ステップS507で、2次元コードが重畳された電子文書の印刷用イメージファイルが紙に印刷される。
【0116】
以上説明した第5の実施例は、元の電子文書の保存先が、印刷サービスからのアクセスが不可能な場所にある場合でも2次元コード付き印刷を可能とする。また印刷サービスは、電子文書の印刷イメージを受信した後に2次元コードと電子文書の重畳を行うが、この重畳処理にはレイアウトエディタを用いないので、レイアウトエディタがPCにインストールされている必要はない。
【0117】
さらに編集する必要の無い既存の電子文書を印刷する場合には、電子文書を作成するPCは印刷イメージを作成するために必要なレイアウトファイルの印刷命令さえ発行できればよく、そのPCに編集機能を有するレイアウトエディタがインストールされている必要は無い。
【0118】
つまり、やり取りする2つのPCともにレイアウトエディタを使用せずに電子文書に2次元コードを重畳することが可能となる。例えばPDFファイルの場合は、電子文書を作成するPCとなるコンピュータにアドビ社のAcrobat(登録商標)のような編集アプリケーションがインストールされている必要は無く、Acrobat(登録商標) Readerのような印刷命令が発行可能なアプリケーションのみがインストールされていれば良い。
【0119】
次に、紙IDを管理する要素Bについて説明する。図9、図10は、紙IDと文書とを関連づけ、それを管理する要素Bにおいて用いられる管理テーブルの各例を示している。
【0120】
要素Bは、他の要素から紙出力に対して、紙IDの登録要求をされたとき、少なくとも電子文書を一意に指定できる情報を受けとり、それに対して管理テーブル内で唯一である紙IDを割り当て、文書情報を管理テーブルに格納する。
【0121】
この管理テーブルの説明をする。図9、図10において、行145に示すようなまとまりである各行が、登録された紙IDに対応する文書情報の一単位であり、各列が紙IDの登録要素となっている。
【0122】
列141には割り当てた紙IDが格納される。列142には電子文書を一意に指定する情報が格納されている。図9では電子文書を一意に指定する情報としてパス名が指定されているが、異なるPCに格納されている電子文書までを扱う場合は、図10に示されるように、ネットワークパス名であったり、URI(Uniform Resource Identifiers)であったりしてもよい。複数ページの電子文書を扱う場合、各ページ毎に文書情報が存在し、列142にはページ数に関する情報も含まれる。また、図10に示されるように、列142にページ数に関する情報を格納しない場合、別の列146に格納する。その場合、列142と列146により電子文書が一意に指定される。
【0123】
また、電子文書の格納先が文書管理システムである場合はその管理IDであってもよい。さらには図10のように電子文書の格納先システムが異なっているものでも格納された電子文書を識別可能であれば格納先システムが複数あってもかまわない。また、登録要求を受け付ける際に、電子文書そのものを受け取り、それを他のものと区別可能なファイル名にして保存した上で紙IDを割り当てて登録する形態であってもかまわない。
【0124】
管理テーブルではさらに、その紙文書や紙文書上の筆記に対してどのような処理プログラムが処理するかを示した処理IDが割り当てられている列143をもっている。処理IDについての詳細な説明は要素Hで行う。
【0125】
また、文書情報は、電子文書がどのようなアプリケーションから作成されたものかを示す列144をもつ。このような電子文書、または紙文書に関する属性情報を列144以下にいくつ持っていてもかまわない。
【0126】
また、紙IDを指定され、管理情報の要求である参照要求をされたとき、要素Bでは図9における列141の紙IDから該当する紙IDを検索し、検索された紙IDに対応し、列142に示される電子文書を一意に指定する情報を要求元に渡す。要素Bは、同時に列143以降の属性情報も渡してもかまわないが、少なくとも列142の情報を渡す。図10の場合は少なくとも列142および列146の情報を渡す。
【0127】
また、図9、図10などの管理テーブルの内容は、要素Bがプログラムである場合、そのプログラムが動作するメモリ内で保持していても良いし、あるタイミングでファイルシステムのファイルとして保存していても良い。また、管理テーブルの内容をデータベースに電子的情報として格納する形態もある。この場合、紙IDとその属性情報を1レコードとして格納し、紙IDをキーとして文書などの情報を保存したり、取出したりすることにより紙IDと電子文書とを関連づけ、それを管理するものでもよい。
【0128】
このように、要素Bが管理している管理テーブルを、プログラム動作を行っているメモリ上のみではなく、ハードディスクのファイルなどの不揮発性ストレージなどへ保存することで、要素Bが一度停止してもそれまで管理していた関連づけ情報を利用することが可能な文書処理システムとなる。
【0129】
また、管理している紙IDと電子文書との関連づけ情報を不揮発性ストレージ装置にネットワークアクセス可能なデータベースとして保存することで、システム上にそのデータベースへ関連づけ情報を参照する要素Bを複数存在させることが可能な文書処理システムとなる。
【0130】
さらに、要素Bは他の要素とは独立した装置に存在し、他の要素の装置からアクセス可能なネットワークで接続された形態であってもかまわない。このとき特に要素BはRPC(Remote Procedure Call)やWebサービスなどの形態で存在し、ネットワーク経由で他の手段からの登録要求や参照要求を受けつけることになる。
【0131】
このように、要素Bが他の要素とネットワークで接続されており、要素Bがシステムで唯一に紙文書に対して識別子を発行するものであることを保障すると、さらにネットワーク的に離散した他の要素装置から登録要求、管理情報の参照要求を受けることが可能なシステムとなる。
【0132】
さらに、電子文書の情報を受信したときに、ネットワーク上に同一の電子文書名が存在していても、その名称をネットワークパス名などの格納されるPC名を含めることで区別して管理することが可能なシステムとなる。また、登録する電子文書を受信して保存し、その保存した電子文書名を割り当てた紙IDと関連づけて管理することで、同じ電子文書名も登録毎に区別して管理することが可能なシステムとなる。
【0133】
次に、紙IDが付与された紙文書である要素Cの説明をする。まず、紙文書の例を図11にて説明する。図11はサークル等の脱会・入会登録用紙40としての紙文書の例であり、この紙文書は、コンピュータ上で管理されている電子文書がプリンタによって印刷されることで生成される。なお、この脱会・入会登録用紙40は、普通紙である。
【0134】
脱会・入会登録用紙40には、電子文書で定義されたコンテンツ46と機械読み取り可能な2次元コード45、並びに4つのタイミングマーク41、42、43、44が印刷されている。タイミングマーク41、42、43、44は筆記情報を読み取る際に位置合わせのために利用されるが、形・数・大きさ・色などは限定されない。また、タイミングマークが存在しない場合もありうる。
【0135】
ちなみに、脱会・入会登録用紙40には、脱会・入会登録用紙47に示されるように、適切な筆記具にて記入される。
【0136】
また、図12に示される紙文書のように、コンテンツの中にデータを埋め込むような紙文書もありうる。図12には、紙文書例59と、4つのタイミングマーク48、49、50、51と、コンテンツの一部52を拡大したコンテンツの一部の拡大図53と、識別子54と、コード枠兼アライメントドット55と、データドット56とが示されている。このように、紙文書例59には、コンテンツの中にデータが埋め込まれている。また、コード枠兼アライメントドット55と、データドット56は、要素Fにより作成された符号化情報が要素Aにより印刷されたものである。
【0137】
なお、本実施例において、要素Cを紙文書と表現しているが、要素Cは筆記具にて筆記可能ものであればよく、紙やシート状のプラスチックフィルムなどを用いることができる。
【0138】
次に、紙文書から筆記情報を取得する要素Dについて説明する。
【0139】
要素Dの一例であるデジタルカメラ等のエリアCCDを撮像デバイスとして用いた画像取得装置について説明する。
【0140】
この画像取得装置の場合、例えばA4サイズの紙文書を300万画素クラスのエリアCCD(画素数2048×1536(pixels))で一度に取り込むとすると、換算実効解像度は約170(dpi)程度となる。2次元コード等の情報量の多い画像を取り込み、それをデコードする為には相応の高い解像力が必要になり、170(dpi)では不十分な場合がある。この場合、エリアCCDの集積度を上げて解像度の向上を図ることも考えられるが、半導体製造技術のプロセス上の限界がある。
【0141】
そこで、本実施例では、エリアCCDを撮像デバイスとし、撮像倍率が可変なズームレンズを有する撮像手段を有し、その撮像手段を移動させる駆動手段により被写体の部分領域をズームアップして分割領域として取り込み、画像合成することで高解像度化を実現し、2次元コード等の読取を可能とした画像取得装置について説明する。
【0142】
この画像取得装置の構成例を図49に示す。図49に示される画像取得装置は、撮像部201と、駆動部202と、支柱203と、制御部205と、インタフェース204と、支持台206と、2つの操作スイッチ207で構成される。
【0143】
駆動部202は、撮像部201を点線で示されるように回転駆動させる。支柱203は、撮像部201と駆動部202を支持する。制御部205は、画像取得装置の制御を行うとともに、支持台206とともに支柱203を支える構造となっている。操作スイッチ207は、画像取得装置の操作をするためのものである。紙文書208のA〜Iの点線で示された部分領域は、画像取得装置が撮影する各部分領域を表している。
【0144】
次に、上述した撮像部201、駆動部202、制御部205のさらに詳細な構成を図50に示す。
【0145】
制御部205は、システムコントローラ211と、CPU(Central Processing Unit)210と、SDRAM(Synchronous Dynamic Random Access Memory)212と、PCI(Peripheral Component Interconnect)バス213と、PCMCIA(Personal Computer Memory Card International Association)214と、I/O(Input/Output)入出力デバイス215と、IDE217と、PCI/ISA(Industry Standard Architecture)ブリッジIDE(Integrated Drive Electronics)USB(Universal Serial Bus)変換インタフェース218と、USB219と、ハードディスク216と、ISAバス220と、I/Oコントローラ221と、シリアル222と、パラレル234と、LAN(Local Area Network)インタフェース235より構成される小型のボードコンピュータユニットである。
【0146】
制御部205は、撮像部201の動作制御、撮像装置201から転送された画像の画像処理や編集、記録等を行い、外部機器へインタフェース204(図49参照)を介して接続され、外部機器との通信を行なう。
【0147】
インタフェース204としては、PC用の汎用インタフェース、例えば、RS−232C、USB、IEEE1394、ネットワークアダプタ、IrDA(Infrared Data Association)を用いる。本実施例では、制御部205を用いる構成を示しているが、制御部205により行う処理や記録を、撮像部201内のMPU236で代用するような構成としても構わない。
【0148】
次に、駆動部202の説明をする。駆動部202は、ステッピングモータX255、ステッピングモータY256及び回転量検出用のロータリエンコーダX244、ロータリエンコーダY257と、検出回路258と、駆動回路243で構成される。
【0149】
なお、所定の回転位置で静止するような基準位置を設けてステッピングモータの回転位置をキャリブレーションすれば、各ロータリエンコーダと検出回路は設けなくてもよい。
【0150】
次に撮像部201を説明する。この撮像部201の説明は、撮像部201とともにレンズも図示されている図51を用いて説明する。
【0151】
図51には、CDS(Correlated Double Sampling:相関二重サンプリング)241と、A/D変換器242と、IPP(Image Pre-Processor)281と、メモリ240と、TG(Timing Generator)280と、MPU236と、I/Oコントローラ237と、I/Oデバイス261と、固定レンズ267、268と、ズームレンズ266と、絞り機構265と、シャッタ264と、フォーカスレンズ263と、撮像素子262で構成される。なお、I/Oデバイス261は、図50で説明したシリアル238とUSB239とを、まとめて表現したものである。
【0152】
被写体の像は、固定レンズ267、268、ズームレンズ266、絞り機構265、フォーカスレンズ263を通して、シャッタ264により露光時間が制御され、撮像素子262上に形成される。撮像素子262からの画像信号はCDS241でサンプリングされた後、A/D変換器242でデジタル信号化される。この時のタイミングはTG280で生成される。画像信号はその後、IPP281でアパーチャ補正などの画像処理、圧縮などが行われ、メモリ240に保存される。
【0153】
各ユニットの動作は、MPU236にて制御される。また、I/Oコントローラ237はI/Oデバイス261を介して、外部の機器と接続され、画像の入出力、撮影制御信号の通信等に用いられる。
【0154】
次に、一枚の被写体を分割して撮影する場合の制御部205の動きについて、再び図50を用いて説明する。
(1)制御部205は、I/O入出力デバイス215より駆動部202の駆動回路243にパルス電圧を印加し、所定の角度になるように検出回路258の回転検出値をフィードバックする。
(2)制御部205は、USB219より撮像部201のUSB239へ撮影コントロール信号を送信する。
(3)必要に応じて(1)、(2)が繰り返される。画像転送が指示されるとUSB239を介して撮像装置201から画像が制御部205に転送され、その画像を制御部205は、LANインタフェース235を介してネットワークに送信する。
(4)紙文書208(図49参照)は、図52に示されるように、後述する2次元コード290等のデータ識別情報が印字されているものとする。この符号化紙IDである2次元コードは、要素Eによりデコードされ、デコードが成功し、紙IDが取得できたなら、デバイスタイプ、紙ID、画像等の情報は、XML(eXtensible Markup Language)形式のデータとして要素Kへ送信される。
【0155】
次に、紙文書上の画像の撮影から、撮影により得られた画像へ2次元コードをデコードした結果を対応づけるまでの画像取得装置の処理を、図53のフローチャートを用いて説明する。
【0156】
ステップS1401で、画像取得装置は、ズームレンズを調整し、被写体と撮像面がほぼ正対した位置関係において、被写体となる紙文書の全体が写るように全体画像撮影を行う。ステップS1402で、画像取得装置は、撮影した画像より2次元コード等のコードの存在するコード領域を検出する。次に、画像取得装置は、ステップS1403で、コード領域の領域座標と重心位置を算出する。この場合、予めコードの存在する領域を規定しておくことで、ステップS1403の高速化を図るようにしても良い。あるいは、領域はコード領域の外接矩形領域とし、外接矩形領域の重心位置を算出するようにしても良い。
【0157】
ステップS1403で得られた領域座標とその重心位置の座標から、画像取得装置はステップS1404で、データを識別する情報をより大きい撮像画像として取得する為のズーム倍率と駆動部202の駆動量を線形演算により算出する。この駆動量は、光軸をロール軸としたパン(左右)、チルト(上下)の2方向から算出する。
【0158】
算出された結果に基づき、画像取得装置は、ステップS1405で、駆動部202を駆動する。次のステップS1406で、画像取得装置は、駆動させた位置で撮影する。ステップS1407で、画像取得装置は、読み込んだコードを要素Eによりデコードする。そして、ステップS1408で、画像取得装置は、全体撮影画像に対してデコード結果を対応付ける。
【0159】
これによりコード領域のみを高解像で取得し、高速に取り込んだ全体画像に対して、信頼性の高い紙IDを付与できるようになる。
【0160】
次に、実際の撮影について説明する。上述したように、画像取得装置は、撮像部を駆動することで、紙文書を分割撮影し、分割撮影した各画像を1つの画像に合成するようになっている。
【0161】
そこでまず分割撮影について説明する。既に説明した図49に示されるように、撮像部201が、点線で示された左右方向へ駆動をすることで、領域A、B、Cを撮影することができる。
【0162】
さらに、撮像部201が、図54に示されるように、上下方向へ駆動することでA〜Iまでの全ての領域を撮影領域にすることができる。なお、図54は、撮像部201が紙文書208を撮影する様子を示すものであり、撮像部201は、紙文書208の2つの領域301、302を撮影している。
【0163】
上述したように、被写体を高解像に撮影する場合は、撮像系の画角をできるだけ狭くし、複数の位置で撮影する。この場合、被写体のすべての部分が分割画像のいずれかに撮影されるように撮影を行う。
【0164】
このようにして撮影された分割画像と、分割画像を接合することで合成した合成画像を図55と図56を用いて説明する。分割画像は、図55に示されるように、アルファベットが描かれた画像が6分割されたものである。この図55に示されるように、図の下方向の文字ほど、小さくなっていることが分かる。これら6つの分割画像を、接合した画像が、図56に示される画像である。
【0165】
このような方法で画像を接合する場合に限らず、分割せずに1枚で被写体を撮影する場合でも、図56のような台形上の歪(あおり歪)が生じる。従って、図57に示されるような、正対した画像にする必要がある。図57に示される画像は、図56の画像に、あおり歪の補正、ノイズ除去を行った画像である。
【0166】
このようなあおり歪の補正は、被写体に正対した位置での正対画像を基準とし、正対画像と他の画像との間の射影変換行列を予め求め、それを用いて画像を再配置することにより得られる。
【0167】
この撮影の説明を簡単にするため、図54に示した2つの領域301、302を分割撮影する場合について説明する。まず、領域301上の点と領域302上の点をそれぞれ、数1が示す2点とする。
【0168】
【数1】

このとき、被写体が平面の場合、両者には、次に示す数2、数3の関係が成り立つ。
【0169】
【数2】

【0170】
【数3】

数2、数3の各hは、以下の行列で定まるものである。
【0171】
【数4】

数4に示される行列は、射影変換行列であり、画像が撮影される2つの位置が同じ場合、この関係は一定である。従って、予め既知の組(u1,v1)、(u2,v2)からh1〜h8を算出すれば良い。
【0172】
数1、数2、数3を用いることにより、領域302上の各点が領域301上の位置で撮影された場合の位置を算出することができるため、領域301上を基準とし、領域301上に領域302上の画素をマッピングすることができる。分割画像が3枚以上の場合も、例えば1つの領域と他の領域との射影変換行列を予め算出しておく。そうすることで、正対された分割画像が得られ、順次接合していくことで、図57に示した正対された画像を得ることができる。
【0173】
以上が画像取得装置の構成や処理内容である。次に、この画像取得装置の6つの変形例について説明する。なお、以下の説明において、図49で説明した符号など、既に説明した符号についての説明は省略する。
【0174】
第1の変形例である図58に示される画像取得装置は、図49に示した画像取得装置に、2次元コード等のコードを読み取る為の撮像部310を紙文書を取り込む為の撮像装置201とは別に設けたものである。
【0175】
この図58に示した画像取得装置は、コードの存在する小領域を高解像で取り込む目的で設けた為、撮像部201よりも小型で安価な画像入力装置で構成すれば良い。また、この場合の画像取得装置は、撮像部201により取り込んだ画像に対応させて、撮像部310により取り込んだ画像上のコード311のデコード結果を記録するものとする。
【0176】
次の図59に示される第2の変形例は、撮像部310の代わりに紙ID情報読み取り部312を設けたものである。この紙ID情報読み取り部312は、汎用のバーコードリーダ等で使用されている撮像ユニットを用いることを想定している。
【0177】
次に、図60を用いて、第3の変形例について説明する。図60に示される画像取得装置は、入力する紙文書208の下敷き313上にコード311を設けた装置構成であり、支柱203は、支持台315に支持される。これによりコードの付与されていない紙に対してコードを付与できるようにできるとともに、プリンタなどと組み合わせ、再度、紙に出力することで、コードを付与することも可能である。
【0178】
次の図61に示される第4の変形例は、支持台315に収納可能な平面部材上にコード314を設けた装置構成となっている。
【0179】
また、図62に示される第5の変形例は、撮像部201上に投影部316を設けることで、点線で示された投影領域317にコード316を投影できる装置構成とする。そして、ユーザが自由に投影するコードを電子データとして編集可能なものとする。
【0180】
この投影部316は、図62において撮像部201上に設けられているが、別な部位に固定するものであっても構わない。また、投影部316は光源、集光レンズ、ミラー、液晶パネル、投射レンズから構成される代表的な液晶プロジェクタと同様の構成のものやDMD(Digital Mirror Device)を用いたDLP(Digital Light Processing)による構成等いずれの構成のものでも良いが、小型なものとしたほうがよい。
【0181】
図63に示される第6の変形例は、点線で示された撮像範囲に液晶ディスプレイ等の表示デバイスを有する携帯情報端末318を設け、この表示デバイス上にコードを表示させることで、取り込む紙文書208に対応させたコードを付与できるようにする。
【0182】
以上が6つの変形例であるが、図60〜図63において駆動部を図示していないのは、駆動部を有する構成に限定されないことを示している。
【0183】
次に、要素Dの他の実施例である筆記情報入力装置60を図13に示す。筆記情報入力装置60は、紙への筆記情報を取得するデジタイザなどの座標入力装置74と、紙に印刷されている情報と電子的な情報とを対応付け識別するための紙ID情報読取装置75と、取得した情報を保持する記憶装置71と、取得・保持された情報をPCに送信する通信装置72と、これらの装置を制御する制御装置73とを有する。
【0184】
座標入力装置74は、手書き座標を連続的に取得するデジタイザなどを用いることができる。デジタイザを用いた場合、その方式には公知のものとして電磁誘導方式、超音波距離計の原理を用いた三角測量方式などのものがあるが、いずれもセンサと専用入力ペンによって紙に行われた筆記動作を検出し、筆記情報、この場合は筆記された軌跡の座標である筆記座標を計測する装置である。このようにして計測された筆記座標の集合が筆記情報となる。
【0185】
専用入力ペンのペン先には実際に紙に筆記することの可能なペン先が備わり、電子的に筆記座標を検出すると同時に紙に筆記軌跡を記入できるように構成することが望ましい。
【0186】
紙ID情報読取装置75は例えばプリンタによって紙に印刷された符号化紙IDを読み取り、解読する装置であり、公知のものとして2次元コードリーダ、1次元バーコードリーダなどを用いる。ここで、紙ID情報読取装置に2次元コードリーダを用いた場合には、たとえばコード化に公知のQRコード(登録商標)を用いた場合には、英数字で最大4296文字の情報を識別することが可能であり、一般に利用者が印刷した書類を識別するためには十分な容量を得ることができる。
【0187】
記憶装置71はハードディスクや、不揮発性メモリであり、コンパクトフラッシュ(登録商標)ディスクなどの取り外し可能なメモリなどを用いることもでき、上記紙ID情報読取装置75によって取得された筆記座標、印刷条件情報、電子文書情報を保存する。このとき、PCとのデータのやり取りは、メモリを直接に接続することで可能となり、通信装置72を省くこともできる。
通信装置72は、蓄えられた情報を送信する装置であり、イーサネット(登録商標)、無線LANなどのネットワーク技術や、USBやブルートゥース、シリアル接続技術などが用いられる。
【0188】
制御装置73は、例えばマイクロコンピュータによって構成され、上記の装置を後述する動作にしたがって動作制御する。
【0189】
これらの装置は一体に構成することも可能であるし、個々の装置に分かれて構成することも可能である。また、一体型に構成した場合、バッテリ駆動とすることで、さまざまな場所に移動して利用することが可能になる。印刷した紙への筆記作業は、オフィスのデスクの上だけとは限らないため、筆記情報入力装置を一体かつ可搬型に構成することが望ましい。
【0190】
一体型に成形した筆記情報入力装置60の外観例を図14に示す。図示した例では、紙ID情報読取装置75(図13参照)を2次元コードリーダ62として実現しており、また設置された紙文書には印刷された文書本文65と、紙ID63が、あらかじめ印刷されている。座標取得装置61は超音波式のデジタイザによって実現しており、専用入力ペン66によって実際に筆記情報64を加えると共に、座標データを取得することが可能になっている。
【0191】
次に、可搬型のデジタイザ型の筆記情報入力装置を用いた場合の処理について図15を用いて説明する。まず、筆記情報入力装置内の座標入力装置は、ステップS601で、専用入力ペンによって筆記が開始されると同時にペン先の紙文書への接触(ペンダウン)を検出し、ステップS602で筆記座標を検出する。
【0192】
次のステップS603で、筆記情報入力装置は、2次元コードリーダにより、専用入力ペンが筆記座標を読み取っている間、あるいは専用入力ペンが筆記面に接したときなど適宜、2次元コードを読み取る。
【0193】
次のステップS604で、筆記情報入力装置は、読み取った2次元コードをデコードし、紙IDなどを読み取る。
【0194】
こうして読み取られた筆記座標、紙IDからなるデータは、一旦、ステップS605で、記憶装置に保存され、次のステップS606で、適宜、通信装置によってPCへ送信される。
【0195】
ここで、保存され、送信されるデータは、例えば図16に示すような形式で構成される。図16には、「装置識別番号」と、「紙ID番号」と、「筆記X座標」と、「筆記Y座標」と、「ペンU/D」の項目を有する表が示されている。
【0196】
「装置識別番号」は、筆記情報入力装置を識別するための番号である。「紙ID番号」は、筆記情報入力装置が読み取った紙の紙IDである。「筆記X座標」と「筆記Y座標」は、筆記座標情報のX座標とY座標である。「ペンU/D」は、専用入力ペンのアップ/ダウンを示すものである。このような形式のデータにより、筆記座標、紙IDを送信している。
【0197】
次に、要素Dの他の実施例について説明する。この実施例は、記入が終わった紙文書から、スキャナなどを用いて紙文書の電子画像を取得し、要素Eへデータを渡す実施例である。
【0198】
最初に、図17を用いて画像入力装置について説明する。画像入力装置88は、画像入力装置88内の各装置を制御するための制御装置82と、プログラムや画像を記憶するための記憶装置83と、外部接続されたスキャナ80やMFP86と通信してそれらを制御するためのスキャナ制御装置81と、画像を処理するための画像処理装置84と、外部ネットワークとの通信を制御するネットワーク制御装置85とを有する。
【0199】
この画像入力装置88には、直接接続されたスキャナ80や、ネットワーク87を介して通信可能なMFP86を利用して画像を入力することができる。
【0200】
この画像入力装置の処理を、図18のフローチャートを用いて説明する。図18に示されるフローチャートは、画像入力装置を使って座標を取得し、要素Kへデータを渡す処理を示している。
【0201】
ステップS701は、画像の読み取りである。これは、ユーザが記入を終えた文書をスキャナ80またはMFP86を用いて画像の読み取りを行う処理である。この場合の読み取り条件は、例えば600dpi、白黒2値画像である。画像の2値化は通常のスキャナが有している2値化機能を使用する。
【0202】
読み取られた紙文書の画像は、ステップS702で、記憶装置83の所定のフォルダに画像ファイルとして蓄えられ、次処理へのキューに入る。この読み取った画像を所定のフォルダに画像ファイルとして蓄えるように制御するのはスキャナ制御装置81の役割であり、スキャナ80やMFP86のボタンが押され、画像がそれらから転送されることを検知し、転送された画像を記憶装置83の所定のフォルダに格納する。
【0203】
画像処理装置84は、スキャナ80やMFP86から入力される画像が保存される記憶装置83のフォルダを監視し、キューの先頭にある画像から順番に、ステップS703で画像正立処理を行い、ステップS704で領域抽出処理を行い、ステップS705でデコード処理を行う。ステップS706で、デコードができたかどうか判断し、デコードできた場合は、紙IDの取得を行い、処理を終了する。また、デコードできなかった場合も処理を終了する。
【0204】
この図18に示したフローチャートは、情報取得段階の処理を示すものである。また、このようにして取得された紙IDは、後述する管理テーブルにより、文書ID及び処理IDに変換することができる。
【0205】
なお、ステップS702の処理で、キュー方式を使用するのは、ADF(Auto Document Feeder)等を使用して多数の画像が入力されたとき、同時に複数の画像が処理されると画像処理装置84の負荷が非常に高くなり動作が不安定になりかねないことと、処理の速度が遅くなることが理由として挙げられる。
【0206】
また、ステップS703の画像正立処理は、次のステップ704の領域抽出処理が正立された画像から領域を抽出するようになっているため、スキャナから読み取られた方向の分らない画像を正立する処理である。
【0207】
この画像正立処理の詳細について図19のフローチャートを用いて説明する。まず、ステップS801では、読み取った画像についてOCR処理が行われ、その結果が保存される。次のステップS802、ステップS803、ステップS801のループでは、画像を90度ずつ回転させてOCR処理が行われ、それらの結果も保存される。
【0208】
90度ずつ回転させた4方向でOCR処理がなされると、ステップS804で、OCR処理結果の尺度のひとつである確信度を用いて画像の方向が判定される。この確信度とは認識した文字の確からしさであり、この画像方向判定に使用する確信度は、各文字の確信度の平均である。この平均の確信度がもっとも大きい値を持つ方向での画像が正立であると判定する。
【0209】
このようにして画像正立処理を終えると、図18のステップS704の処理である紙IDを有する2次元コードの検出・デコードするための領域抽出処理が行われる。領域抽出処理は、画像中の白画素で囲まれた黒画素を含む領域を検出する。この領域抽出の詳細を図20のフローチャートを用いて説明する。
【0210】
まず、ステップS901の連結黒画素のラベル付け処理では、画像を左上の原点から走査する。そして、左上、上、左の画素が白画素であり、現在着目している画素が黒画素である場合に、その黒画素に新たなラベルをつける。それ以外の画素の場合は左上、上、左のいずれかにある黒画素のラベルを画素につける。
【0211】
具体的に、図21を用いて説明する。まず、図21に示される数字が書かれた四角形は、全て黒画素であるとする。これを踏まえ、上記処理を図21の画素90、91、92、93を用いて説明する。このとき走査される順番は、画素90、91、92、93の順である。
【0212】
まず、画素90について着目すると、画素90の左上、上、左の画素が白画素であり、現在着目している画素90が黒画素であるため、ラベル「1」が画素90につけられる。
【0213】
次に走査される画素91について着目すると、左上、上の画素は白画素であるが、左が白画素ではないため、左上、上、左のいずれかにある黒画素のラベルが画素91につけられる。従って、画素91には画素90と同じラベル「1」がつけられる。
【0214】
次に、画素92について着目すると、画素92の左上、上、左の画素が白画素であり、現在着目している画素92が黒画素であるため、新たなラベル「2」が画素92につけられる。
【0215】
次に走査される画素93について着目すると、左上、上の画素は白画素であるが、左が白画素ではないため、左上、上、左のいずれかにある黒画素のラベルが、現在着目している画素93につけられる。従って、画素93には画素92と同じラベル「2」がつけられる。
【0216】
このようにして、以下の画素についても、同様の処理が行われる。
【0217】
次のステップS902で行なわれる連結黒画素の外接矩形座標検出処理では、同一のラベルを有する黒画素群を囲む外接矩形座標を検出する。そのことを示す図が、図22である。図22に示されるように、ラベル「1」の黒画素群の外接矩形94と、ラベル「2」の黒画素群の外接矩形95が検出される。
【0218】
次のステップS903は、重なり、接触のある外接矩形を統合する処理で、各外接矩形に重なりあるいは接触がある外接矩形同士を統合し、新たな外接矩形が形成される処理である。それが図23の外接矩形96である。
【0219】
そして、ステップS904で、2次元コードの大きさとしてありえない大きさの外接矩形を排除するため、所定の範囲の大きさの外接矩形が抽出される。以上により、白に囲まれた黒画素を含む領域が検出されたので、検出された矩形領域全てに対して画像処理装置84でデコードを行うことができる。
【0220】
予め、2次元コードの位置がわかっているならば所定の位置にある矩形領域のみにデコードを行えばよいが、紙文書のレイアウトによってどこに2次元コードが存在するかわからない場合は、検出した矩形領域すべてに対してデコードを行い、デコードできたものを紙IDとして検出するようにする。なお、デコードの詳細は、次の要素Eの説明で行う。
【0221】
デコードが成功し、紙IDの取得ができたなら、デバイスタイプ、紙ID、筆記情報が要素Kへ送信される。この場合、上記情報は、XML形式のデータとして要素Kへ送信される。
【0222】
また、ここで使用したスキャナはフラットベッドスキャナ以外にも、デジタルカメラ、書画カメラ等の画像撮像装置も使用できる。
【0223】
次に、紙IDをデコードする要素Eについて説明する。まず、要素Eの説明として、2次元コードを読み取るバーコード読取装置について説明する。バーコード読取装置は、図24に示されるように、頂点候補検出部11と、コード枠検出部12と、射影変換係数算出部13と、データサンプリング部14と、誤り訂正部15と、フォーマット変換部16とを有する。また、バーコード読取装置は、上述した図14の2次元コードリーダ62に示されるように、斜め上から2次元コードを読み取るようになっている。
【0224】
頂点候補検出部11は、2次元コードの頂点候補を検出する。コード枠検出部12は、頂点候補に基づき、後述するコード枠を検出する。コード枠が検出されることで、頂点候補は真の頂点と確定される。
【0225】
射影変換係数算出部13は、コード枠検出部12で検出されたコード枠の各頂点の座標と、2次元コードを作成した時のコード枠の各頂点の規定座標とから、作成した2次元コードの各セルの規定中心座標と読み取った2次元コードの各セルの中心とをマッピングする係数である射影変換係数を求める。
【0226】
データサンプリング部14は、射影変換係数算出部13で求めた射影変換係数を用いて、2次元コードのデータのサンプリングを行う。誤り訂正部15は、データサンプリング部14が読み取ったデータが誤りかどうか判定し、誤りがないか、あるいは誤り訂正が可能ならば、誤り訂正符号以外の整数型56ビットのデータをフォーマット変換部16へ出力する。フォーマット変換部16ではデータを数字文字列に変換して出力する。
【0227】
次に、頂点候補検出部11の処理の詳細について説明する。図25は、入力画像の頂点候補を検出する処理を示す図である。図25に示されるように、頂点の検出は、矢印に示される方向に入力画像を走査することで検出するようになっている。具体的には、入力画像の四隅から斜め走査を行い、黒画素を検出し、検出された黒画素をA、B、C、Dとする処理が行われる。
【0228】
次に、図26を用いてA、B、C、Dが頂点候補かどうかを検出する処理について説明する。図26は、2次元コードを拡大した図である。この2次元コードに対し、頂点候補検出部11は、A、B、C、Dから矢印の方向、例えばAなら右下45度、Bなら左下45度というように、セルの一辺の画素数の1/√2の画素数だけ画素を追跡してそれらがすべて黒画素かどうかを判定する。それらがすべて黒画素であれば、頂点候補検出部11は、A、B、C、Dを頂点候補として検出し、コード枠検出部12に処理を移す。
【0229】
次に、コード枠検出部12について説明する。コード枠検出部12では、図27のように、頂点候補A、B、C、Dから1/√2の画素数だけ追跡した終端どうしを結ぶ黒枠判定ライン76、77、78、79を通過する画素の黒画素の割合が全ての直線において直線毎に8割以上存在すればそれをコード枠であると判定し、頂点候補A、B、C、Dを2次元コードの頂点A、B、C、Dとして確定する。このとき、同時に頂点A、B、C、Dの座標も検出される。
【0230】
次に、射影変換係数算出部13について説明する。射影変換係数算出部13では、コード枠検出部12で検出されたコード枠の各頂点の座標と、2次元コードを作成した時のコード枠の各頂点の規定座標とから、作成した2次元コードの各セルの規定中心座標と読み取った2次元コードの各セルの中心とをマッピングする係数である射影変換係数を求める。この射影変換係数の求め方は後に説明する。
【0231】
次に、データサンプリング部14について説明する。データサンプリング部14には、2次元コード、2次元コードを作成した時点の各セルの規定中心座標、射影変換係数が入力される。データサンプリング部14は、射影変換係数算出部13で求めた射影変換係数を用いて、作成した2次元コードの各セルの規定中心座標を射影変換することにより、読み取った2次元コードの各セルの中心座標を求める。
【0232】
データサンプリング部14は、求めた中心座標を画像のサンプリング中心座標とし、その座標を中心とする3x3画素の黒画素数が白画素数を上回れば ‘1’、そうでなければ‘0’としてデータを読み出す。読み出された72ビットのデータは誤り訂正部15に入力、配列され、誤り訂正の判定が行われる。誤りがないか、あるいは誤り訂正が可能ならば、誤り訂正部15は、誤り訂正符号以外の整数型56ビットのデータをフォーマット変換部16へ出力する。フォーマット変換部16ではデータを数字文字列に変換して出力することで、数字文字列が復元される。
【0233】
上述した2次元コードの読取もソフトウェアでおこなってもよく、図28にその処理のフローチャートを示す。ステップS1001で斜め上から2次元コードを撮像した2次元コードが入力される。ステップS1002では、2次元コードの頂点候補が検出される。
【0234】
このステップS1002では、図25に示すように画像の四隅から斜め走査が行われ、黒画素が検出される。検出された黒画素をA、B、C、Dとする。さらにステップS1002では、図26に示されるように、A、B、C、Dから矢印の方向、例えばAなら右下45度、Bなら左下45度というように、セルの一辺の画素数の1/√2の画素数だけ画素が追跡され、それらすべて黒画素かどうかが判定される。それらがすべて黒画素であればA、B、C、Dが頂点候補として検出され、ステップS1003に処理が移る。
【0235】
ステップS1003では、図27に示されるように、頂点候補A、B、C、Dから追跡した終端どうしを結ぶ黒枠判定ライン52、53、54、55を通過する画素の黒画素の割合が、全ての直線において直線毎に8割以上存在すればそれをコード枠であると判定される。そして、頂点候補A、B、C、Dが2次元コードの頂点A、B、C、Dとして確定される。このとき、同時に頂点A、B、C、Dの座標も検出される。
【0236】
このステップS1003で、コード枠が検出できなければ、ステップS1004の分岐処理でエンドに分岐し、読み取りは終了する。コード枠が検出された場合は、次のステップS1005へ処理は進む。
【0237】
ステップS1005では、ステップS1003で検出されたコード枠の各頂点の座標と、2次元コードを作成した時のコード枠の各頂点の規定座標とから、作成した2次元コードの各セルの規定中心座標と読み取った2次元コードの各セルの中心とをマッピングする係数である射影変換係数が算出される。
【0238】
次のステップS1006では、データサンプリングが行われる。具体的には、2次元コード、射影変換係数、作成した2次元コードの各セルの規定中心座標が入力され、ステップS1005で求まった射影変換係数を用いて、作成した2次元コードの各セルの規定中心座標を射影変換することにより、読み取った2次元コードの各セルの中心座標を求める。
【0239】
そして、求めた中心座標を画像のサンプリング中心座標とし、その座標を中心とする3x3画素の黒画素数が白画素数を上回れば‘1’、そうでなければ ‘0’としてデータが読み出される。読み出された72ビットのデータは、ステップS1007で、誤り訂正の判定が行われる。誤りがないか、あるいは誤り訂正が可能ならば、誤り訂正符号以外の整数型56ビットのデータは、ステップS1008で、データを数字文字列にフォーマット変換され、ステップS1009で、数字文字列が出力される。
【0240】
次に、射影変換係数の求め方について説明する。射影変換とは3次元空間内の図形・物体を2次元平面・スクリーンへと表示したときの変換である。3次元空間内の物体の座標を2次元平面上の座標へと変換するものであり、3次元画像処理の手法として広く知られたものである。
【0241】
このような射影変換を正確に行うためには、撮像系の位置、光学的特性などが明らかになる必要がある。しかし、さまざまな装置へ対応することを考えると、さまざまな装置すべての撮像系の位置などを特定し、正確に定めることは困難である。
【0242】
その一方で、斜めから撮像する光学系で読み取りやすくなるという効果を発揮するためには、必ずしも正確な射影変換を施す必要はない。例えば、従来の矩形、一様密度のセルで表現される2次元コードではなく、台形や多様な密度のコードであれば、斜めからの光学系で読取が容易になるという効果を発揮することができる。
【0243】
こうした台形コードや多様なセルサイズを実現する簡単な例を図29で説明する。図29に示すような光学系において、読み取った画像は、射影変換によって、もともと長方形であった図形が台形に変形する。
【0244】
このとき、台形の長辺と短辺との比率(X1/X3)は撮像素子からコードのそれぞれの領域への距離の比率の逆数(L3/L1)と等しくなる。本実施例においては、通常は矩形で各セルの大きさが均一である2次元コードの代わりに、上記の射影変換をキャンセルできるようなセルの形状や大きさを持つ2次元コードを作成する。
【0245】
セルの大きさの決定は、2次元コードの1行ごとに一定の倍率で行う.この変形の倍率は2次元コードの1行の間においても、撮像面からの距離が異なっているが、たとえば1行の中間の位置における倍率で、1行の上部から下部まで等しい倍率で変換する。この操作によって、図30あるいは図31に示されるような階段状のセル境界を持つ形状の2次元コードが得られる。あるいは、厳密に射影変換演算を行って図32のような2次元コードを作成してもよい。なお、図30、図31、図32については、要素Gの説明で詳細な説明をする。
【0246】
次に、上記射影変換について、図33を用いて説明する。図33には、読み取られた2次元コードを模式的に示した2次元コード67と、電子的に生成された2次元コードを模式的に示した2次元コード68とが示されている。また、2次元コード67のAs、Bs、Cs、Dsと、2次元コード68のAr、Br、Cr、Drは各頂点であり、括弧内のxs1やyr2は、座標を表している。また、PskとPrkは、セルの中心座標を表す。
【0247】
2次元コード67のAs、Bs、Cs、Dsと、2次元コード68のAr、Br、Cr、Drの頂点は、図34に示される数式を満たす。これらの数式(1)、(2)は、2次元コード68など2次元コードの座標を定めるための座標から、2次元コード67など2次元コードの座標を定める座標への変換式を表しており、Ar、Br、Cr、DrからAs、Bs、Cs、Dsへの座標変換を規定する。
【0248】
式(1)は、頂点のX座標に関する数式であり、式(2)は、頂点のY座標に関する数式であり、式(1)(2)の添え字iは、1から4まで動く。これらの数式で、b1〜b8は変換パラメータで、未知数である。これら変換パラメータは、Ar〜Dr、As〜Dsの各座標値を式に代入することで得られる八元一次連立方程式を解くことにより求められる。b1〜b8が求められると、電子的に生成された2次元コードの各セルの中心座標Prkを変換して2次元コードのサンプリング中心座標Pskを求めることができる。
【0249】
次に、紙IDをエンコードする要素Fについて説明する。要素Gに対応する2次元コードを作成するとともに要素Fに対応する2次元コード作成装置について図35を用いて説明する。
【0250】
2次元コード作成装置は、フォーマット変換部20と、誤り訂正部21と、2次元コード作成部23とを有する。
【0251】
フォーマット変換部20は、入力された数字文字列をコンピュータ内で通常扱われる整数型56ビットデータに変換する。
【0252】
誤り訂正部21は、整数型56ビットデータに変換されたデータに、誤り訂正符号16ビットを付加する。
【0253】
この誤り訂正符号として、リードソロモン符号が用いられる。このリードソロモン符号は、バイト単位の誤りを訂正できる強力な誤り訂正方式であり、誤り訂正符号長の半分以下の誤りを訂正することができる。なお、リードソロモン誤り訂正符号の詳細については、昭晃堂「符号理論(コンピュータ基礎講座18)」宮川、岩垂、今井共著など、多数の書籍に記されている。
【0254】
本実施例の場合には、誤り訂正符号長が2バイトなので1バイトの誤り訂正が可能である。
【0255】
2次元コード作成部23は、データおよび誤り訂正符号データを図36に示されるように2次元コードの各セルに割り当てて、2次元コードを作成する。図36の各セルに示される番号は、配置位置を割り振られた番号である。
【0256】
データおよび誤り訂正符号データのセルへの割り当ては、整数型56ビットデータが1〜56までのセルに、誤り訂正符号のデータ16ビットが57〜72のセルとなっている。なお、2次元コード作成時には、規定された頂点座標、セル中心座標が用いられる。この規定座標は2次元コード読み取り時にも使用される。
【0257】
2次元コードの作成はソフトウェアで行ってもよく、図37にその処理を示すフローチャートを示す。
【0258】
まず、ステップS1101で、数字文字列が入力される。ステップS1102では、数字文字列がコンピュータ内で通常扱われる整数型56ビットデータにフォーマット変換される。ステップS1103で、誤り訂正符号16ビットが作成され、整数型データに変換されたデータに付加される。この誤り訂正符号は、先ほどと同様にリードソロモン符号が用いられる。このようにして作成された整数型データおよび誤り訂正符号データは、ステップS1104で、図36や図38に示すように2次元コードの各セルに割り当てられ、2次元コードが作成される。なお、図36と図38については、要素Gの説明で詳細な説明をする。
【0259】
データのセルへの割り当ては、先ほどと同様に整数型56ビットデータが1〜56までのセルに、誤り訂正符号のデータ16ビットが57〜72のセルとなっている。また、2次元コード作成時には、規定された頂点座標、セル中心座標が用いられる.この規定座標は2次元コード読み取り時にも使用される。
【0260】
次に、紙IDである要素Gについて説明する。まず、図30で示した2次元コードについて説明する。2次元コードは、図30に示されるように、周囲が黒枠で囲まれ、内部に白または黒で1ビットの情報をあらわす最小単位であり情報領域であるセルが、図36に示したように72個配置されている。従って、この2次元コードは、72ビットの情報を表現することができる。
【0261】
この2次元コードを斜め上から読み取ると、バーコード読取装置が得る2次元コードはセルが大きい下側の部分が縮小されて、台形の形状となる。2次元コードはこのようにしてゆがむが、バーコード読取装置で撮影された2次元コード内の各セルは撮像素子の複数画素を占め、その面積はセルの位置に関係なく概略等しくなる。
【0262】
このように上側のセルの大きさは小さく、下側のセルの大きさが大きい2次元コードにより、斜め上から2次元コードを読み取るように設けられたバーコード読取装置の撮像素子は、セルの白黒情報の安定した撮影が可能になる。
【0263】
また、2次元コードの他の例として、図31に示した台形コード(平面図)がある。この台形コードは、バーコード読取装置が斜め上から読み取る場合、撮像素子と各セルの距離に応じてセルの大きさが大きくなるようにした2次元コードである。
【0264】
この台形コードの場合、セルは各行に12個配置され、6行あるので、セルの総数は72個ある。このセルの総数は図30の2次元コードのセルの総数と等しいので、この台形コードで表現できるビット数は図30の2次元コードで表現できるビット数と等しい。ちなみに、72ビットのデータは、データの配置を表した図38に示したように配置される。
【0265】
また、2次元コードの他の例として、図32に示したような矩形の2次元コード57を射影変換し、台形の2次元コード58に変形した2次元コードを使用することもできる.この場合に、斜め上から撮影した場合に得られる2次元コードの画像は、2次元コード57に近いものが得られる。なお、2次元コード58が表現できる情報量は、72ビットである。
【0266】
上述した3つの2次元コードにおいて共通していることの1つは、それらが横長となっていることである。その理由は、縦長にすると、セルの縦方向の長さが大きくなり、2次元コード全体のサイズが非常に大きくなり、小さい大きさで大容量のデータを表現できるという2次元コードのメリットがなくなるためである。
【0267】
また、バーコード読取装置からみた場合、2次元コードとの距離は縦方向の変化に比べ横方向の変化の方が大きくなるため、バーコード読取装置から遠いところにあるセルは縦横比が大きい長方形にするのが適当である。したがって、図31、図32の例ではセルの横の長さの変化より縦の長さの変化のほうを大きくすることにより、バーコード読取装置で撮影した2次元コードは正方形に近い形状となる。
【0268】
次に、処理IDと外部処理プログラムを関連付け、処理IDを管理する要素Hについて説明する。図39は要素Hにおいて用いる管理テーブルの一例である。この管理テーブルは、プログラム処理ID関連付け情報に対応する。
【0269】
処理IDと外部処理プログラムとを関連づけ、それを管理する要素Hは、他の要素手段からある外部処理プログラムに対して処理IDを要求してきたとき(登録要求)、少なくとも要素Hが搭載されたPCで外部処理プログラムを一意に規定できる情報を受けとり、それに対してこの管理テーブル内で唯一であるIDを割り当て、外部処理プログラム情報を管理テーブルに保存する。
【0270】
図39において、行155に示すようなまとまりである各行が処理IDに対応する外部処理プログラム情報の一単位であり、列151、152、153、154が登録要素となっている。
【0271】
このうち、列151には割り当てた処理IDが格納される。また、列152には処理を行う外部処理プログラムを一意に指定する情報が格納されている。列152の一段目では外部処理プログラムのファイルパスが示されている。これにより、処理するプログラムが一意的に定まる。また、列152の二段目では、ジョブが格納されるフォルダ名を示すパス名が指定されている。ここでは、外部処理プログラムは一つのジョブフォルダにあるファイルを処理するものとし、その対応を一対一に規定することで、列151の処理IDと外部処理プログラムを関連づけている。
【0272】
図39の第2行の例では、処理ID0001が*.docである電子文書を印刷した紙文書からの筆記情報を、c:\JobFolder\WordPrintのフォルダにジョブとして受け取る定型文書の処理を行うプログラムが登録されているということになる。また、列152の三段目では他のコンピュータ上のプログラムがWebサービスのURLとして指定されて、それが処理IDと関連付けられている。
【0273】
その他、図39ではその外部処理プログラムがどのような電子文書の印刷からの筆記情報を扱えるかを示す属性情報である列153をもつ。また、列154は外部処理プログラムの説明が文字で記述されている。このような、列153、154のような外部処理プログラムに関する属性情報を列153、154以外にいくつ持っていてもかまわない。
【0274】
また、処理IDが指定され、外部処理プログラムについての管理情報を要求されたとき(参照要求)、要素Hでは図39における列151のIDから該当するIDを検索し、少なくとも対応するID登録の要素である列152のフォルダパス名を一意に指定する情報を要求元に渡す。このとき、同時に列153以降の属性情報も渡してもかまわない。
【0275】
また、図39の管理テーブルの内容は、要素Hがプログラムである場合、そのプログラムが動作するメモリ内で保持していても良いし、あるタイミングでファイルシステムのファイルとして保存していても良い。また、データベースシステムに電子的情報として格納するものもある。または、処理IDとそれに関する属性情報を1レコードとして格納し、処理IDをキーとして外部処理プログラム情報を保存したり、取出したりすることにより処理IDと電子プログラムとを関連づけ、それを管理するものでもよい。
【0276】
このように、管理している処理IDと外部処理プログラムとの関連づけ情報を、プログラム動作を行っているメモリ上のみではなく、ハードディスクのファイルなどの不揮発性ストレージ装置などへ保存することで、要素H装置が一度停止してもそれまで管理していた関連づけ情報を利用することが可能なシステムとなる。
【0277】
また、要素Hにおいて、処理IDとそれに対応する処理プログラムが処理するディレクトリ名が保存され管理されているので、処理プログラム名や処理するプログラム自体が変更されてもそれまでの要素Hにおける管理情報を変更せずに対応可能なシステムとなる。
【0278】
また、要素Hは他の要素の装置とは独立した装置に存在し、他の要素の装置とはネットワークで接続された形態であってもかまわない。このとき、特に要素Hは、RPC(Remote Procedure Call)やWebサービスなどの形態で存在し、ネットワーク経由で他の要素からの登録要求や参照要求を受けつける。
【0279】
この場合、管理している処理IDと外部処理プログラムとの関連づけ情報を不揮発性ストレージ装置として、ネットワークアクセス可能なデータベースへ保存することで、システムで統一的に関連づけ情報を登録および参照することができる要素Hを複数存在させることが可能なシステムとなる。
さらにネットワーク上の別の装置における外部処理プログラムを指定することが可能であるので、登録する外部処理プログラムをそのプログラムの動作条件にあうホスト装置にそれぞれ実装することが可能なシステムとなる。
【0280】
また、システム上で唯一の要素Hの装置が他の要素の装置とネットワークで接続されており、他の要素の装置からネットワークを経由して処理IDと外部処理プログラムとの関連づけをおこない、管理することで、ネットワーク的に離散した他の要素の装置からシステムで統一的に関連づけ情報を登録および参照することが可能なシステムとなる。
【0281】
次に、フォームのレイアウト情報及び処理方法を編集・管理する要素Iについて説明する。要素Iは、紙文書を読み取り、紙文書で定義されたレイアウトや処理情報を元に、後述する情報テーブルに、認識された筆記情報を情報変換して保存するシステムである。
【0282】
具体的に、図40、図41を用いて説明する。図40は、図11で説明した脱会・入会申込書に筆記されたものを示している。図40に示されるように、脱会・入会申込書には、記入部として、記入部A170、記入部B171、記入部C172、記入部D173、記入部E174がある。また、脱会・入会申込書には、ラベルとして氏名ラベル175や、その他会員No、依頼項目、コメントが記されている。
【0283】
また、図41には情報テーブルが示されている。情報テーブルは、登録情報と処理情報からなるテーブルである。登録情報は、IDと氏名と会員番号があり、処理情報は、氏名と会員番号と処理とコメントがある。
【0284】
このように情報テーブルは、脱会・入会申込書に筆記された情報が記録されるものである。
【0285】
脱会・入会申込書の記入部A170、記入部B171、記入部E174に筆記された筆記情報は、それぞれ、図41に示される情報テーブル内の氏名、会員番号、コメントに記録され、記入部C172、記入部D173に書き込まれた筆記情報は、チェックされた記入部に従い、「削除」あるいは「登録」が処理に記録される。
【0286】
次に帳票作成プログラムについて説明するが、以下の説明においては、フォームのレイアウト情報及び処理方法を定義したファイルを帳票定義体と呼び、これを編集するソフトウェアを帳票作成プログラムと呼ぶことにする。
【0287】
具体的な装置例を、再び図1に基づき説明する。帳票作成用PC101上では帳票作成プログラムが実行される。データサーバ106ではデータベースプログラムが動作する。このデータベースプログラムでは帳票作成プログラムで生成される帳票定義体の入出力管理や帳票処理で使われる情報テーブルの入出力を行っている。
【0288】
帳票作成プログラムは、図40に示したような帳票のレイアウトや帳票の処理方法を図42のような帳票構造体として定義され、その中身を作成・編集するプログラムである。図42に示される帳票構造体は、記入部A170を、プロパティ群を意味単位ごとにセクション化し、帳票のレイアウト情報を要素ラベル<Layout>で、認識情報を要素ラベル<Input>で、保存先情報を要素ラベル<Registration>で管理し、それらの中身をXMLのプロパティとして記述したものである。
【0289】
帳票作成プログラムは、図43に示されるようなGUIを持つ。このGUIは、レイアウトエリア155と、ツールボックス156からなる。ツールボックス156には、ラベルツール151、テキストボックス152、チェックボックス153、バーコード154を有する。
【0290】
帳票作成者は、レイアウトエリア155に、ツールボックス156を用いてラベルやテキストボックスを配置することで帳票の作成を行うことができる。
【0291】
なお、ラベルツール151は、レイアウトエリア155にラベルを作成するものである。テキストボックス152は、レイアウトエリア155にテキストボックスを作成するものである。チェックボックス153は、レイアウトエリア155にチェックボックスを作成するものである。バーコード154は、レイアウトエリア155にバーコードを作成するものである。
【0292】
このようにツールボックス156から配置する内容に応じた要素をレイアウトエリア155に配置し、その属性(プロパティ)を画面上で設定する。ここでいう要素とは、ラベルツール151、テキストボックス152、チェックボックス153、バーコード154など配置する目的用途に応じたものである。
【0293】
例えば、図44に示されるように、氏名を書く欄をテキストボックス152を利用して作成する。
【0294】
各要素は図45に示すようなプロパティ群を持っており、これらプロパティは実際に帳票が表示している内容やその処理方法などを定義している。このプロパティ群について説明する。図45に示されるプロパティ群は、図40の氏名ラベル175と記入部A170に対応したプロパティ群の例である。プロパティ群は、レイアウト情報(コンテナ開始〜ボーダー)176・認識情報(入力〜認識結果)177・保存先情報(登録サーバ〜登録レコード)178に大別される。
【0295】
レイアウト情報176は、要素の位置や大きさ、そこに表示する文字や枠線の状態を管理する。認識情報177は、帳票処理時の要素に手書きされた内容の情報変換作法を管理する。ここでは文字認識に用いる諸情報が管理されている。保存先情報178は、帳票処理時に用いる認識情報177で変換された結果の保存先を管理している。
【0296】
なお、図45に示されるIDが0001の要素は「種類」が「Label」となっていることから、氏名ラベル要素である。この氏名ラベル要素は、「氏名」と言う文字が、「ボーダー」が「なし」となっていることからボーダーなしで表示され、「入力」が「不可」となっていることから、この氏名ラベルに筆記される場合の特別な処理はなく、また、「変換」が「なし」となっていることから入力された文字に対する変換はない。また、保存先情報178が空欄であることからデータの保存もされない。
【0297】
IDが0002の記入部A170の「種類」が「Textbox」となっていることから、テキストボックスであり、表示する文字は、「文字」が空欄となっていることから無く、「ボーダー」が「囲み」となっていることから、囲み(枠線)を持って表示されている。そして手書きされた場合には、「入力」が「可能」となっていることから、何らかの処理が存在し、「認識知識」1〜3で表現される文字認識「日本語」、「手書き」、「姓名」の情報変換として行う。そして、得られた認識結果は、保存先情報178に記述されている場所に保存されることを意味している。
【0298】
以上説明したように、帳票構造体にこのようなプロパティ群を持たせ、管理することによりフォームのレイアウトや処理方法を定義している。
【0299】
次に、フォームのレイアウト情報及び処理方法から、筆記情報をデータに分解し保存する要素Jの説明をする。要素Dとしてスキャナを用いた場合、図46に示される脱会・入会申込書を用いて説明すると、要素Jは、読み取った記入帳票イメージ180と筆記されていない未記入帳票イメージ181との差分をとり、筆記イメージ182を得て、氏名や会員番号など、それぞれの要素に分解し、保存する。
【0300】
要素Dとして座標入力装置を用いた場合は、筆記された座標列すなわち筆記情報がそのまま得られるので、氏名や会員番号など、それぞれの要素に分解し、保存する。なお、非定型処理の場合は帳票の概念がないので各要素には分解しないで、全体を1つとして保存する。
【0301】
要素Dとしてスキャナを用いた場合は前述のように未記入の紙文書のイメージと記入済みの紙文書のイメージとの差分を取って、加筆分のみを取り出す。
【0302】
要素Dとして座標入力装置を用いた場合は、筆記されたデータがそのまま得られる。
【0303】
この処理を、図47のフローチャートを用いて説明する。なお、このフローチャートは、上述した差分をとる処理を行う手書き処理プログラムの処理を示している。
【0304】
ステップS1201は、帳票認識である。ステップS1202は、未記入帳票のイメージの生成である。この処理は、ステップS1201で呼び出された帳票定義体から、未記入帳票イメージを生成する処理である。
【0305】
ステップS1203は、未記入帳票イメージと記入帳票イメージの位置合わせである。この処理は、タイミングマークを用いて未記入帳票のイメージに記入帳票のイメージをあわせる処理である。なお、タイミングマークの位置・形状情報は帳票定義体から取得される。また、タイミングマークが存在しない場合はこのステップは行われない。
【0306】
ステップS1204は、筆記イメージの生成である。この処理は、未記入帳票イメージと記入帳票イメージの差分をとる処理である。
【0307】
次のステップS1205からステップS1208までの処理は、帳票定義体に示される要素単位に行われる。まず、ステップS1205は、各要素に対応する部分画像の生成である。この処理は、要素のプロパティ(レイアウト情報)に従って行なわれ、例えば、図46の「山田太郎」、「56-381」などの部分画像を生成する処理である。
【0308】
ステップS1206は、部分画像の文字認識である。この処理は、要素のプロパティ(認識情報)に従って行なわれる。ステップS1207は、文字認識することにより部分画像から文字へ情報が変換された結果を保存する処理である。
【0309】
次のステップS1208で、全ての要素に対して処理をしたかどうかの判断がされ、まだ処理されていない要素があれば、ステップS1205へ処理が進み、全ての要素に対して処理をした場合は、終了する。
【0310】
次に、紙IDから文書ID及び処理方法に変換する要素Kについて説明する。紙IDから文書IDおよび処理IDに変換する要素Kの処理手順の概要図を図48に示す。図48では、要素Kを中心として、矩形図形は各要素を、吹き出し部はデータやリクエストの内容を、矢印はそのデータやリクエストの方向を、矢印上のステップはその順番を示している。
【0311】
まず、ステップS1301で、要素Kは、D−PADから紙IDと筆記情報を取得する。あるいは、要素Kは、スキャナまたはMFPのスキャナ部で筆記した紙文書を読み込み、紙IDと画像を取得する。
【0312】
次のステップS1302で、要素Kは、要素Bに対してその紙IDを送り、その紙文書に関する管理情報を要求する。その結果、ステップS1303で、要素Kは、紙文書に対応するID登録の要素である電子文書を一意に指定する情報や、処理IDなどを取得する。
【0313】
次に、要素Kは、ステップS1304で要素Hに対してその処理IDを送り、その紙文書に関する処理プログラムの管理情報を要求する。その結果、ステップS1305で、要素Kは、要素Hより対応する識別子で登録されているフォルダパス名を一意に指定する情報などを取得する。
【0314】
そして、要素Kは、ステップS1306で、D−PADあるいはスキャナやMFPのような画像入力装置、要素B、要素Hを介して取得したすべての情報をファイルに格納し、上記処理で得たフォルダパス名にファイルとして保存する。
【0315】
これにより、要素Kは、ステップS1307で、次段階の処理である、筆記情報をフォームのレイアウト表示および処理方法から、データに分解・保存する要素Jもしくは非定型処理プログラムへジョブを受け渡す。
【0316】
次に、図12で示した紙文書における実施例について説明する。まず、この紙文書について詳細な説明をする。以下の説明では、図12におけるこのコード枠兼アライメントドット55とデータドット56を、2次元コードと表現する。また、以下に説明する図では、データドットも黒で表現し、コード枠兼アライメントドット55で構成される枠をコード枠と表現することもある。またコード枠兼アライメントドット55やデータドット56を単にドットと表現することもある。
【0317】
図64は、図12における拡大図53で示したドットの大きさとドット間隔を示す図である。
【0318】
コード枠兼アライメントドット55とデータドット56を構成するドット411は、プリンタの最小ドット412の2×2単位で印字される。1200dpiのプリンタならば、プリンタの最小ドット径は21μmであるので、ドットの直径は理想的には42μmとなる。実際にはドットゲインがあるため直径はもう少し大きくなる。
【0319】
ドット直径の6倍の間隔を置いて水平・垂直方向にドットを配置する位置を決定する。この場合、ドット配置位置にすべてのドットが存在する場合でもドットの占める面積率は理想的には2.8%であり、50%程度のドットゲインを見込んでも5%に満たない。この数字は人の目には明るい灰色に見えるのでドットに邪魔されて文書が見えにくいとか、加筆した文字が見えにくいなどという問題は起こらない。
【0320】
以上のようにドットの配置を決定すると2次元コードは水平2mm、垂直3mm角の大きさを有する。この2次元コードは、A4用紙と相似であるので、水平・垂直座標情報を格納するデータ長を有効に使うことが可能になる。
【0321】
A4用紙は水平210mm、垂直297mmの大きさがある。従って、A4用紙は、2次元コードを、水平方向に105個、垂直方向には99個含むことができる。この個数を用いて2次元コードの位置を特定することができる。例えば、水平方向に95個目ということは、2次元コードの左上の角が紙面の左上を原点として水平方向に190mmの位置にあるということである。同様に垂直方向に10個目は、2次元コードの左上の角が紙面の左上を原点として垂直方向に30mmの位置にあるということである。
【0322】
以下、水平方向にn個目を水平座標nと表現し、垂直方向にm個目を垂直座標mと表現する。
【0323】
ちなみに、A3用紙の場合は、水平297mm、垂直420mmの大きさであるので、水平方向に148個、垂直方向に120個の2次元コードを含むことができる。さらに、A2用紙の場合は、水平420mm、垂直594mmの大きさであるので、水平方向に210個、垂直方向に198個の2次元コードを含むことができる。
【0324】
次に、2次元コードにおけるデータの配置領域を、図65を用いて説明する。2次元コード420はコード枠を構成するドットに囲まれた、7×11のセルを有する。このセルとはドットを打つことのできる単位をいい、2次元コードは最大77個のドットを含む。また、1つのセルは、1ビットを表現することができる。
【0325】
このいくつかのセルで構成される領域をデータ領域とし、2次元コードは、図65に示されるように、データ領域401、402、403、404、405、406、407、408、409を有する。
【0326】
データ領域401は、水平座標を表すデータを配置する領域であり、4×2のセルを有する。従って、データ領域401は、1バイトの容量を有する。
【0327】
データ領域402は、垂直座標を表すデータを配置する場所である。水平座標と同様に1バイトの容量を有する。
【0328】
上述したA型用紙で一番大きい座標の値は、A2用紙の水平座標である210であるので、A4用紙からA2用紙の座標は1バイトのデータ容量に収まる。このように紙の縦横の長さの違いに応じて2次元コードの縦横の長さを決定すると水平・垂直座標を表すデータ長を同一の一定サイズに固定しても幅広いサイズの用紙に対応できることがわかる。
【0329】
データ領域403は、紙IDを表すデータを配置する領域であり、4×6の24ビット(=3バイト)の容量を有する。データ領域404、405、406、407は誤り訂正用の符号を配置する領域である。それぞれデータ領域は、1バイトずつの容量を有するので、誤り訂正用符号は合計4バイトで構成される。
【0330】
データ領域408、409は、2次元コードの上下方向を表すためのパターンである。データ領域408は3個の黒ドット、データ領域409は2個のドット無しのパターンとし、2次元コードの上下を判別するのに使用される。
【0331】
上述した各データの配置領域にどのようにドット配列されるかを示す配置規則を示したのが、図66である。データ領域401から407で、1はMSB(Most Significant Bit)を示し、8はLSB(Least Significant Bit)を示す。
【0332】
このような配置規則により、実際にどのようにエンコードされるかを、図67の2次元コードを用いて説明する。2次元コード421は、「水平座標=95、垂直座標=10、紙ID=10」がエンコードされている。2次元コード422は、「水平座標=96、垂直座標=10、紙ID=10」がエンコードされている。2次元コード423は、「水平座標=95、垂直座標=11、紙ID=10」がエンコードされている。2次元コード424は、「水平座標=96、垂直座標=11、紙ID=10」がエンコードされている。
【0333】
次に、このような2次元コードを有する紙文書の印刷について説明する。まず、2次元コードの作成について説明する。上述したようにPC等の情報処理装置内のソフトウェアで実行するか、またはアルゴリズムをハードウェア化した専用の装置を利用して行う。
【0334】
2次元コードの作成を、図68のフローチャートを用いて説明する。ステップS1501は、紙文書のページ毎の紙IDを要素Aから取得する処理である。ステップS1502は、紙IDと紙文書上の座標情報とをあわせてエンコードすべきデータを作成する処理である。例えば、紙IDを123456とし、座標情報をmm単位で(24,123)という具合である。
【0335】
次のステップS1503は、紙IDと座標情報からなるデータをエンコードし、符号化紙IDと符号化座標情報を作成する処理である。このとき、紙IDは6桁の数字を3バイトのバイナリ値に変換される。また、mm単位の座標情報は、2次元コード単位の座標に変換される。例えば水平座標は24/2=12、垂直座標は123/3=41というように変換される。座標情報はこのように2バイトのバイナリ値に変換され、紙IDとあわせて計5バイトのデータとなる。
【0336】
データのエンコード後、ステップS1504で、エンコードデータを元に誤り訂正符号が追加される。エンコードデータおよび誤り訂正符号データは、ステップS1505で、2次元コードの各セルに割り当てられ、2次元コード2がページ全体に配置されたマトリクスの画像ができあがる。
【0337】
ステップS1506は、1ページ分が終了したかどうかの判断である。終了していない場合、再びステップS1502の処理が行われる。終了した場合、ステップS1507で、全ページ分が終了したかどうか判断され、全ページが終了と判断されると、処理が終了する。終了していない場合、再びステップS1501の処理が行われる。
【0338】
ここで、上記ステップS1503のエンコード処理について、図69を用いて説明する。図69は、データのエンコード処理と誤り訂正符号付加を示す図である。図69では、水平座標を24とし、垂直座標を123とし、紙IDを123456とする。これらの値が、エンコード処理され、それぞれ1バイト、1バイト、3バイトとなる。次に、これら合計5バイトのデータに対して4バイトの誤り訂正符号を付加される。この誤り訂正符号には、リードソロモン符号が採用される。
【0339】
以上の処理が終了すると、要素Aにより紙文書が印刷される。この紙文書の印刷例が、既に説明した図12に示される紙文書である。
【0340】
このときの要素Aの処理を示すフローチャートを、図70を用いて説明する。まず、ステップS1601でユーザは電子文書を作成する。ステップS1602で、ユーザは、必要に応じてレイアウトエディタを起動/表示/修正を行う。次のステップS1603で、紙IDの取得が行われる。
【0341】
ステップS1604で、要素Fにより、紙IDから2次元コードが作成される。ステップS1605で、作成された2次元コードは、電子文書内の所定の位置に重畳される。
【0342】
次のステップS1606で、作成された2次元コードが要素DE用の2次元コードかどうか判断される。この要素DEとは、次に説明するペン型座標入力装置が要素Dと要素Eとの機能を有するため、要素Dと要素Eとを組み合わせたものである。
【0343】
要素DE用の2次元コードの場合、ステップS1608で、紙文書は、2次元コードが黒、それ以外がカラーで印刷され、処理は終了する。要素DE用の2次元コードではない場合、ステップS1607で、通常の印刷行われ、処理は終了する。
【0344】
次に、図71を用いてペン型座標入力装置について説明する。このペン型座標入力装置は、筆記を行うとともに紙面の画像を撮像して2次元コードをデコードし、座標情報と紙IDを得るペンである。
【0345】
図71には、ペン型座標入力装置437と、MFP86と、プリンタ431と、スキャナ80と、携帯情報端末438と、情報処理装置434、439と、記憶装置83とが示されている。情報処理装置439と接続されている記憶装置83には、紙文書の元となる電子文書が格納されている。情報処理装置434は、ペン型座標入力装置437とやり取りを行う。
【0346】
ペン型座標入力装置607は、人が手に持って筆記動作を行うことができる装置本体445を備え、筆記具状となっている。
【0347】
ペン型座標入力装置607は、先端部440と、筆記具451と、圧力センサ449と、液晶448と、画像読取装置441と、LED447、450と、ブザー444と、マイコン446とを有する。また、画像読取装置441は、CCDなどの光電変換素子442と、レンズなどからなる光学系443とを有する。LED450は、照明手段に対応し、画像読取装置441は、画像入力手段に対応する。
【0348】
筆記具451は、ボールペン、シャープペンシルなどであり、紙文書に加筆可能となっている。圧力センサ449は、先端部440が筆記面に接触しているかどうかを検出する。LCD448、ブザー444、LED447は、それぞれが有する情報通知手段により、情報処理装置434から受信した情報を外部に情報を通知するものであり、必ずしも、これらのうちの一部あるいは全部を必要としない。これらは、例えば、ペン型座標入力装置437で読み取る対象ではない2次元コードが存在しないような紙文書に加筆するような場合、筆記中にもかかわらずコードを読み取ることが不可能であるので読み取り不能の表示をLCD448またはLED447を用いて行うか、ブザー444によりユーザに通知する。
【0349】
画像読取装置441は、紙文書上の画像を読み取る装置である。画像読取装置441が有する光電変換素子442の読み取り解像度は320×240画素である。
【0350】
LED450は、局所照明である。このLED450による紙面への光の照射によって紙面の照度が高いレベルで安定するため、高速のシャッタースピードによる画像撮像が可能になり高速の筆記にも追従できるようになる。また、絞りも小さくすることが可能になり、被写界深度を大きくなってペンの傾きが変わっても撮像される画像のぼけの程度が小さくなり、安定した画像読み取りが可能となる。
【0351】
なお、使用するLEDは赤外線と白黒CCDが望ましい。この理由として赤外線は目に見えないため、筆記時にわずらわしさがないことや、また、2次元コードを赤外線を吸収する分光特性を有するカーボンブラックのインクで印刷し、紙文書を赤外線を吸収しないカラーのインクで印刷すれば、たとえシアン、マゼンタ、イエローのインクで黒色が表示されていてもカメラでは、黒色が見えず、2次元コードのドットだけが見え、筆記される文字の座標を検出することができる。
【0352】
マイコン446は、画像読取装置441で読み取った画像に基づいた各種処理を行う。マイコン446は装置本体445の外部のPCなどの情報処理装置434とBluetooth等の無線インタフェース、あるいはUSBメモリ等の着脱式メモリ装置等を介してデータの授受が可能であり、マイコン446内に蓄積したデータを情報処理装置434に出力可能である。なお、図71では、画像読取装置441、マイコン446などに電力を供給する電源や、マイコン446と情報処理装置434とのインタフェースなどは図示を省略している。
【0353】
マイコン446の構成を、図72を用いて説明する。マイコン446は、CPU461と、ROM462と、RAM463と、2次元コード読取装置464と、それらを接続するバス460とを有する。また、マイコン446には、LCD448、ブザー444、LED447が接続されている。
【0354】
情報処理装置434などの各種外部装置とはバス460を介して接続されている。ROM462には、ペン型座標入力装置437の動作を制御するプログラムやマイコン446を動作させるプログラムが予め内蔵されている。CPU461は、それらのプログラムを動作させる。RAM463は画像読取装置441から読み取った画像や、2次元コード読み取り中に生成される中間データ、2次元コードをデコードした際に得られる紙IDや座標を一時的に保存する。
【0355】
2次元コード読取装置464は、RAM463に記憶された画像から2次元コードを検出し、読み取って紙IDや座標を検出する作業を行う。
【0356】
2次元コード読取装置464は、図73に示される構成となっており、ドット検出器470と、コード枠検出器471と、データ取得器472と、データ置換器473と、既知情報メモリ474と、誤り訂正器475と、データ復号器476と、ペン先座標算出器477と、連続筆記検出器478と、筆記検出器479とを有する。コード枠検出器471は、コード枠検出手段に対応する。連続筆記検出器478と、筆記検出器479は、筆記状態検出手段に対応する。データ復号器476は、デコード手段に対応する。データ取得器472は、符号化情報取得手段に対応する。ペン先座標算出器477は、筆記位置検出手段に対応する。
【0357】
ドット検出器470は、ドットを検出するものである。コード枠検出器471は、2次元コードのコード枠兼アライメントドット(図12参照)を検出するものである。データ取得器472は、2次元コードから読み取ったデータを取得するものである。データ置換器473は、誤りがあったデータなどを置換するものである。誤り訂正器475は、リードソロモン符号方式に従って誤り訂正を行うものである。データ復号器476は、訂正データや誤り訂正判定情報に基づき、データを復号するものである。ペン座標算出器477は、ペン座標を算出するものである。既知情報メモリ474は、紙IDなど、既知となった情報を記憶するものである。筆記検出器479は、圧力センサ449からの信号により、筆記されているかどうかを検出するものである。連続筆記検出器478は、連続して筆記されているかを検出するものである。
【0358】
次に、マイコン446の具体的な動作について説明する。上述したように装置本体445には、先端部440の部分が筆記面に接触しているかどうかを検出する圧力センサ449が設けられている。すなわち、先端部440が筆記面に接触することにより先端部440に加わる圧力が筆記具451を介して圧力センサ449に伝達される。
【0359】
圧力センサ449はこの圧力を感知し、感知した情報をマイコン446に伝送する。マイコン446は圧力センサ449の情報から筆記中であると判断した場合は、LED450を点灯させた後、画像読取装置441を起動して画像の入力を始め、マイコン446は入力された画像から2次元コードをデコードして紙IDと座標情報を取得する。
【0360】
筆記が終了したと判断した場合、マイコン446はLED450を消灯させ、画像読取装置441を停止させる。このことによりペン型座標入力装置437の消費電力を小さくし、内蔵バッテリの消耗を少なくすることができる。
【0361】
次に、2次元コード読取装置464による2次元コードの読取動作について、図74を用いて説明する。
【0362】
ステップS1701で、画像読取装置441で読み取られた紙文書の画像(8ビット)が入力され、ドット検出器470が2次元コードのドットを検出する。
【0363】
検出されたドットから、ステップS1702で、コード枠検出器471は画像内にある複数の2次元コードから一つの2次元コードの枠とその位置を検出する。このとき読み取った画像の例を図75に示す。
【0364】
2次元コードの位置が検出できたならば、ステップS1703で、データ取得器472は、2次元コードの各白黒セルに応じて0または1のデータを取得し、2次元コードのデータ配置規則(図66参照)に従ってデータの並べ替えを行う。
【0365】
ステップS1704では、誤り訂正処理が行われる。この処理については、次の図76で詳細な説明をする。
【0366】
ステップS1705で、データ復号器476は、誤り訂正の判定情報が誤り訂正成功であれば動作する。誤り訂正失敗であればデータ復号器476は動作せず、処理が終了する。誤り訂正が成功すると、ステップS1706で、座標と紙IDが復元される。ステップS1707で、ペン先座標算出器477は、筆記検出器479の出力が筆記中であれば、ペン先座標を算出して出力するが、筆記中でないならば現実にはありえない座標値((−1、−1)等)を出力し、処理は終了する。
【0367】
次に、誤り訂正処理について図76のフローチャートを用いて説明する。ステップS1801で、データ置換器473は、連続筆記検出器478から出力される連続筆記中であるか否かの信号により、連続筆記中かどうか判断する。連続筆記中ではない場合、ステップS1803へ処理が進む。
【0368】
連続筆記中の場合、データ置換器473は、ステップS1802で、取得したデータに対して、既知情報メモリ474から既知の紙IDを読み出し、2次元コードから取得したデータの紙IDに相当する部分を既知の紙IDで置き換える。
【0369】
なお、連続筆記検出器478は、加筆時にペン先に感じる圧力を検出する圧力センサ449の出力信号を入力して筆記中か否かを判定する筆記検出器479の出力が入力され、筆記の状態が所定時間以上続くと連続筆記中であると判断し、それ以外の場合を連続筆記中ではないと判断して、その信号を出力する。
【0370】
データ置換器473の出力に対し、誤り訂正器475は、ステップS1803で誤り訂正を行う。誤り訂正器475からは、誤り訂正が成功したか否かの判定情報と誤り訂正後のデータが出力される。
【0371】
この誤り訂正されたデータは紙IDと座標情報である。出力された誤り訂正の判定情報はデータ復号器476、ペン先座標算出器477、既知情報メモリ474へ入力され、それぞれの機器の制御に使用される。
【0372】
ステップS1804で、誤り訂正成功かどうか判断され、成功しなかった場合、処理は終了する。また、誤り訂正が成功である場合、既知情報メモリ474は、ステップS1805で、誤り訂正された情報の紙IDに相当する部分を新たに保存し、処理を終了する。
【0373】
データ置換器473によるデータ置換の具体例を、図77を用いて説明する。図77に示される表は、誤り訂正による置換例を示すものである。この表の横方向には、「水平」、「垂直」、「紙ID」、「誤り訂正」、「誤り訂正可否」という項目を有する。
【0374】
「水平」、「垂直」とは、それぞれ水平座標、垂直座標を示す。「誤り訂正」は、誤り訂正符号を示す。「誤り訂正可否」は、対応するデータの誤りの訂正の可否を示す。なお、「水平」、「垂直」、「紙ID」、「誤り訂正」はバイト数に応じて欄が設けられている。
【0375】
この表の縦方向には、「正しいデータ」、「観測データ」、「ID置き換え」という子目を有する。「正しいデータ」は、エンコードされ、誤り訂正符号を生成したデータである。「観測データ」は画像から2次元コードを抽出してコードのドットからデータを再構成したものである。「ID置き換え」は、観測データの紙IDを置き換えたものである。
【0376】
観測データには、垂直座標と紙IDの1、2バイト目に誤りがある。この場合3つの誤りがあるため、誤り訂正は不可能である。しかしながら、ID置き換えに示されるように、既知情報として紙IDを置換えることにより、紙IDの部分の誤りがなくなり、垂直座標の1バイトだけが誤りとなる。これにより、誤り訂正が可能となって正しい座標情報、ID情報が得られる。
【0377】
誤り訂正に成功したデータはデータ復号器476により、紙面上の座標情報と紙IDに復号される。ちなみに図77の場合は、水平座標=24mm、垂直座標123mm、紙ID=23となる。この座標およびデコードに成功した2次元コードの画像上の座標を用いてペン先座標算出器477はペン先の紙面上での座標を算出する。これによりペン型座標入力装置437の先端部440の位置が確定する。
【0378】
次に2次元コード読取装置の図73とは異なる構成を図78に示す。図73と異なる構成は、第1誤り訂正器520、第2誤り訂正器521と選択器522である。第1誤り訂正器520および第2誤り訂正器521の機能は図73の誤り訂正器475と同一の機能を有する。
【0379】
選択器522の機能を説明する。連続筆記検出器478において連続筆記中であると判断された場合は、常に第2誤り訂正器521の出力を選択し、図73の2次元コード読取器と同一の動作を行う。筆記検出器479の出力が筆記中であり、かつ連続筆記中でない場合、すなわち筆記の開始時には、選択器522は次のような動作を行う。
【0380】
第1誤り訂正器520の誤り訂正判定情報が誤り訂正成功の場合には第1誤り訂正器520の出力が選択される。第1誤り訂正器520の誤り訂正判定情報が誤り訂正失敗の場合には、第2誤り訂正器521の出力が選択される。
【0381】
このような処理を行うと、新しい加筆が行われる際に同一の文書への加筆ならば装置としての誤り訂正率が向上するので図73の装置より有利である。
【0382】
今まで説明してきた2次元コード読取装置464は、ハードウェアでコードの読み取りを行っているが、ソフトウェアで行ってもよく、この場合は2次元コード読み取り方法を実現するプログラムがマイコン446のROM462に格納されており、そのプログラムの命令が順次CPUにロードされて命令の実行が行われ、2次元コードの読取処理がなされる。
【0383】
この2次元コードの読取処理の全体は、図74で示したフローチャートと同じである。このようにソフトウェアで2次元コードの読取処理を実現した場合、ドットの検出、コード枠の検出、データ取得、誤り訂正、座標・紙ID復元、ペン先座標算出の各処理は、図73のドット検出器470、コード枠検出器471、データ取得器472、誤り訂正器475、データ復号器476、ペン先座標算出器477の各機能をソフトウェアで実現したものである。
【0384】
また、誤り訂正処理の他の例を、図79のフローチャートに示す。図76と異なるのは、筆記中であって連続検出中でない場合、すなわち筆記開始時に紙IDを置き換えずに誤り訂正を行い、誤り訂正ができなかった場合に紙ID部分の置き換えを行って誤り訂正を行うところである。同一文書への加筆時には、図79の方法を使用したほうが誤り訂正率が向上する。
【0385】
誤り訂正処理について、図79のフローチャートを用いて説明する。ステップS1901で、取得したデータが連続筆記中であるかどうかが判断される。
【0386】
連続筆記中ならば、ステップS1902において既知情報である紙IDを用いて、読み取られた紙IDの置き換えが行われる。次のステップS1903で誤り訂正が行われる。ステップS1904で、訂正が成功したかどうか判断される。誤り訂正が成功した場合には、ステップS1907で既知情報が保存される。誤り訂正が成功しなかった場合、処理は終了する。
【0387】
ステップS1901の判断処理で、筆記開始時を判断された場合、ステップS1905で、誤り訂正が行われる。次のステップS1906で、誤り訂正が成功したかどうか判断され、訂正が成功した場合には、ステップS1907へ処理が進み、成功しなかった場合には、ステップS1902へ処理が進む。
【0388】
次に、ドット検出器470の動作について説明するが、この説明に先立ち、以降の処理で説明され、各検出器に用いられる領域について、図80を用いて説明する。図80には、4つの領域491、492、493、494が示されている。領域491は、画像領域全体であり、画素数は320×240となっている。領域492の画素数は、280×220画素である。領域493の画素数は、180×120画素である。領域494の画素数は、260×200画素である。これらの領域は、以下で説明する各検出器に応じて使い分けられる。
【0389】
ドット検出器470の説明をする。ドット検出器470がドット検出を行う領域は、図80に示される領域492である。
【0390】
領域492を用いるのは、最外周の領域491では画像品質が良くなく、正しいドット検出を行うことが難しい可能性があることと、リアルタイム処理のためにできるだけ無駄な処理を避けるためであり、ドット検出器470は画像領域全体ではなくそれより小さい領域においてドット検出を行う。
【0391】
次に、図81を用いてドット検出器470について説明する。ドット検出器470は、注目画素Zの周囲の斜線で記された画素(A〜H)に既に検出されたドットが存在せず、かつ、注目画素Zの画素値が周囲画素(I〜X)のどの画素値よりも所定の値(Th)以上に小さい場合に注目画素Zをコードのドットとであるとして検出する。なお、このときの入力画像は8ビットグレースケールで、黒を0、白を255とする。
【0392】
Thの設定であるが、Thが小さければ小さいほどドットを検出しやすくなるが、同時にノイズもドットとして検出してしまい、検出したデータに誤りが起きる可能性がある。逆にThが大きければノイズを検出せずに確実に誤りを減らすことができるがコード枠を検出することが難しくなり座標取得率が小さくなる。
【0393】
Thの大きさに応じた実際の座標取得率を図82に示した。図82には、紙IDを置き換えた場合と置き換えない場合との両方の座標取得率が記載されている。「する」は置き換えた場合であり、「しない」は置き換えない場合を示している。
【0394】
この表では、置き換えをした場合もしない場合も、一時的に座標取得率が増えるが、Thが増えるとともに、座標取得率は減っていくことが示されている。
【0395】
次に、コード枠検出器471について説明する。コード枠検出部471は、入力画像からコード位置を出力するものである。コード枠検出器471は、図83に示されるように、第1コーナー検出器501と、第2コーナー検出器503と、第3コーナー検出器505と、第4コーナー検出器507と、ドット追跡器A502と、ドット追跡器B504と、ドット追跡器C506と、ドット追跡器D508とで構成されている。
【0396】
各コーナー検出器は、コード枠のコーナーを検出し、各ドット追跡器は、隣のドットを追跡するものである。このように追跡された追跡経路S、Tが示された図84を用いて、コーナー検出器とドット追跡器について説明する。
【0397】
第1コーナー検出器501は、ドットを検出した画像から、あるドットXが2次元コードのコーナーであるか否かを判定する。ドット追跡器A502は、第1コーナーからドットで構成されるコード枠の8画素分を4方向に追跡して第2コーナー候補画素(B、D)を検出する。第2コーナー検出器503は、ドット追跡器A502で検出された第2コーナー候補画素が第2コーナーであるか否かを検出する。
【0398】
ドット追跡器B504は、第2コーナーからドットで構成されるコード枠の12画素分をドット追跡器A502でのドット追跡方向の時計回り方向に追跡し第3コーナー候補画素(G、E)を検出する。第3コーナー検出器505は、ドット追跡器B504で検出された第3コーナー候補画素が第3コーナーであるか否かを検出する。ドット追跡器C506は、第3コーナーからコード枠の8画素分を、ドット追跡器B504でのドット追跡方向の時計回り方向に追跡し第4コーナー候補画素(C、A)を検出する。
【0399】
第4コーナー検出器は、ドット追跡器C506で検出された第4コーナー候補画素が第4コーナー画素であるか否かを検出する。ドット追跡器D508は、第1コーナーと第4コーナーの間のコード枠を構成するドットを検出する。
【0400】
このコード枠検出器471により、最大2つの2次元コードのコード枠を検出し、それを構成するドットの画像上の座標を検出できる。
【0401】
まず、第1コーナー検出器501について、図85を用いて説明する。第1コーナー検出器501は、入力画像からコーナー位置を出力するものであり、周囲ドット検出器510と、点対称ペア検出器511で構成される。周囲ドット検出器510は、ドットが存在する注目画素の周囲で4つ以上のドットが存在するか否かを検出するものである。点対称ペア検出器511は、検出された周囲ドットから、注目画素を点対象とするドットのペア2組を検出するものである。
【0402】
具体的に、図86を用いて説明する。図86は、17×17画素を示すものであり、画素A〜画素F、画素Nは説明で用いられる画素である。
【0403】
周囲ドット検出器510は、注目画素Nを中心とする17×17画素の中で注目画素Nの周囲に存在するドットを検出する。図86の場合、画素A〜画素Fの6画素が存在する。これが周囲ドット画素として検出される。それらの画素A〜画素Fのうちで、画素Nとの距離が近い画素のペアで、ペアとなっている画素同士の中間点が画素Nに近いペアを2組検出する。このようなペアを、点対称ペアと表現することとする。
【0404】
図86の場合、(B、D)、(C、F)の2組が点対称ペアである。それ以外の画素Aおよび画素Eは、ノイズであると判断され除去される。
【0405】
このようにして注目画素Nおよび周囲の2組の点対称ペアが検出されると、第1コーナー検出器501は注目画素Nを第1コーナーとして検出する。第1コーナー検出器501が検出対象とする領域は、図80の領域493である。領域493は180×120画素の領域であり、画像領域の縦横それぞれほぼ半分の大きさを有する。
【0406】
画像全体の領域491やドット検出器470の動作領域492より小さい領域493を検出対象とする理由は、ドットパターンが領域492の中に存在する場合、ドットパターンの最も画像の内側に存在するコーナーの存在範囲を領域493としたためである。
【0407】
なお、周囲ドット検出器510がドットを検索する方向は通常のラスター走査ではなく、内側から外側への渦巻き走査となる。
【0408】
図87は、画素を渦巻き走査する様子を示すものである。図87に示される四角は画素を表しており、中心の画素から外側に渦巻き走査している様子が示されている。
【0409】
このように渦巻き走査とする理由は、中央付近の画像の品質が周囲の画像の品質と比較して優れ、ドットの検出が確実に行われる確率が高いため、画像の中央またはその付近からコードパターンを検出するほうが短時間で検出できる可能性が高くなるからである。そのため、この渦巻き走査はリアルタイム処理に非常に適した走査である。
【0410】
次に、ドット追跡器A502の詳細を図88と先ほど説明した図84を用いて説明する。図88は2次元コードのコーナー付近を構成するドットを示したものである。Xはコーナードット、その他のA〜Iはコード枠を構成するドットである。今、XからDEFの方向へドットを追跡することにする。簡単のため、A〜I、Xをそれぞれ座標ベクトルとみなす。
【0411】
まず、Y= 2D − Xを計算する。YはドットEの推定ベクトルである。A〜Dは第1コーナー検出器501で既に検出されているので既知である。Yの周囲5×5画素においてドットEを探索する。
【0412】
Eが存在すれば、Y = 2E − Dを計算する。今度のYはドットFの推定ベクトルである。この追跡を7回繰り返して第2コーナー候補画素を検出する。
【0413】
追跡方向はX→A、X→B、X→C、X→Dの4方向存在し、検出された第2コーナー候補画素すべての情報を第2コーナー検出器503に転送する。
【0414】
第2コーナー検出器503の基本的な動作は第1コーナー検出器501と同一である。ただ、入力する注目画素となるドットが複数(最大4)存在する可能性があることである。その中で検出される第2コーナーは、追跡の回数が7回のため、BとDの最大2である(図84参照)。
【0415】
ドット追跡器B504の基本的な動作はドット追跡器A502と同一である。異なるのは追跡を開始するドットが2つあり、各ドットあたり、一つの方向の追跡を行うのと、各追跡あたりドット追跡操作を11回繰り返すことである。図84の場合、開始するドットは、B、Dであり、方向はそれぞれB→G、D→Eである。このようにして、第3コーナー候補画素が検出される。図84の場合、GとEである。
【0416】
第3コーナー検出器505はドット追跡器B504で追跡できた第3コーナー候補画素が第3コーナーであるか否かを検出する。基本的な動作は前記第1、第2コーナー検出器と同一である。第3コーナー検出器505が図84の場合、GとEを第3コーナーであると検出したとする。
【0417】
このとき、ドット追跡器C506は二つの方向にドット追跡を行う。図84の場合、G→C、E→Aである。追跡回数はドット追跡器A502と同じ7回であり、図84の場合、第4コーナー候補画素としてC、Aが検出される。
【0418】
ドット追跡器D508はドット追跡器B504と同一構成であり、図84の場合、C→X、A→Xの方向に11回追跡してXに至る。Xはすでに第1コーナーであることがわかっているので、追跡経路S、Tによりコード枠が検出されたことになる。
【0419】
このようにして2次元コードのコード枠が検出される。2次元コードのデコードの際にどちらのコードを使うかは、画像上のコード中心の水平座標が大きい方を優先する。このコードがデコードできなかった場合はもう一方のコードを使用してデコードを実行する。
【0420】
上記ドット追跡器A、B、C、Dが追跡する画像領域は図80の領域494(260×200画素)である。ドットを検出した領域492より少しだけ小さいのは、第1、第2、第3、第4コーナー検出器においてコーナー検出に使用するアルゴリズムがコーナードットを中心として17×17画素の領域を使用して、その範囲で点対称ペアドットを検出するためである。
【0421】
以上がコード枠検出器471の説明である。次に、データ取得器472(図73参照)について、図89を用いて説明する。
【0422】
図89では、コード枠のコーナーであるドット4つを除いたドットをa1〜a7、b1〜b11、c1〜c7、d1〜d11、とする。これらドットを結ぶ水平線と垂直線の交点を検出することで、2次元コードのデータを取得できる。
【0423】
データを取得する処理を、図90のフローチャートを用いて説明する。ステップS2001で、データ取得器472は、コード枠を構成するドットを結ぶ水平線、垂直線の交点を検出する。この処理は、例えばa1とc1を結ぶ直線とb2とd2を結ぶ直線の交点の座標を検出するものである。次のステップS2002で、データ取得器472は、この交点の座標を中心にして3×3の領域においてドットの有無を検出し、処理を終了する。
【0424】
図89の場合はドット無しとなり取得されるデータは“0”となる。データ取得器472は、2次元コード全データに対して行ってコードデータを取得し、データ配置規則(図66参照)に従ってデータを再構成する。
【0425】
次に、ペン先座標算出器477(図73参照)について説明する。ペン先座標算出器477は、コーナー画像座標とコーナー紙面座標とグレースケール画像からペン先座標を出力するものであり、図91に示されるように、座標補正器527と、射影パラメータ算出器525とペン先座標変換器526で構成される。なお、コーナー画像座標とは、画像におけるコーナーの座標であり、コーナー紙面座標とは、紙文書上におけるコーナーの座標である。射影パラメータ算出器525は、パラメータ検出手段に対応し、ペン先座標変換器526は、座標系変換手段に対応する。
【0426】
座標補正器527は、後述するように、各コーナーのうち、所定の条件を満たさないコーナー画像座標を別の座標に置換し、コーナー画像座標の置換に応じてコーナー紙面座標の置換も行う。ペン先座標の算出に用いるコーナー画像座標は、検出したコードフレームの4つのコーナードットとそれに対応するコーナー紙面座標が初期値として設定される。
【0427】
このとき、画像読取装置441から入力された画像はすべての位置で焦点があっているわけではなく、これらのコーナードットの存在する位置では画像がぼけていることがある。画像がぼけている場合、後述するドット中心位置が正確に検出できないという不具合が生ずるためペン先座標の算出の精度が低下する問題が発生する。
【0428】
それを防ぐため、座標補正器527が用いられる。図92は、座標補正器527の詳細を示す図である。図92に示されるように、座標補正器527は、最大ぼけドット検出器530と、最小ぼけドット検出器531と、ドット位置置換器532で構成される。最大ぼけドット検出器530と、最小ぼけドット検出器531は、ぼけドット検出手段に対応する。
【0429】
最大ぼけドット検出器530は、最もぼけているコーナードットを検出する。最小ぼけドット検出器531は、最大ぼけドット検出器530で検出されたドット近傍のフレームドットの中から最もぼけの程度の少ないドットを検出する。ドット位置置換器532は、最大ぼけドット検出器530で検出されたドット位置を最小ぼけドット検出器531で検出されたドット位置で置き換えて、それに応じて紙面座標での置換を行う。
【0430】
座標補正器527の動作について説明する。図93はグレースケール画像の5×5近傍を表し、v(i、j)と記されている画像の中心は、コーナー画像座標の一つである。また、vは画素の値である。このvを用いて、数5により、ぼけの程度を示す量blurを計算する。
【0431】
【数5】

blurは画像がぼけている場合は値が小さくなる。この値を4つのコーナー画像座標において計算し、最小の値を持つコーナー画像座標を最大ぼけを有するコーナー画像座標として検出する。
【0432】
次に、最大ぼけを有するコーナー画像座標の近傍にある複数のフレームドットの中から最小ぼけを有するフレームドットを検出する。具体的に、図94を用いて説明する。図94には、コーナーAr、Br、Cr、Drと楕円で囲まれた近傍フレームドット540が示されている。近傍フレームドット540に属するドットは、blurが最小であるコーナーArの近傍にあるドットである。
【0433】
Arを除く近傍フレームドット540から最小ぼけを有するドットを検出する。ぼけの程度の計算は数5を用いる。今回は最小ぼけを検出するのでblurの最大値を算出するドット位置を検出する。それをAr’とする。
【0434】
続いて図95を用いて説明する。図95は、射影パラメータの算出を示す図であり、左側には画像で得られた座標である画像座標が示され、右側には紙文書の紙面上での座標である紙面座標が示されている。Ar〜Drは、画像座標におけるコードのコーナーであり、Prはペン型座標入力装置437の先端部440の座標である。ペン型入力装置607では画像読取装置441と先端部440は固定されているので、Prの座標は常に一定である。
【0435】
なお、先端部440はペン型座標入力装置437の構成により画像読取装置441で撮像される画像内にある場合もあれば画像外である場合もありうる。画像外にある場合は、その座標は負の値あるいは画像の座標の最大値を越えることになる。
【0436】
Ar、Br、Cr、Drに対応するコーナー紙面座標をAs、Bs、Cs、Dsとし、Ar’に対する座標をAs’とする。As’の座標はAr、Ar’、Drの各ドット間の距離の比率に応じてAs、Dsの座標からAs’の座標を算出する。
【0437】
座標補正器527での処理が終わると、射影パラメータ算出器525は、補正された画像上のコードコーナー座標(Ar’、Br、Cr、Dr)と、それに対応する紙面上のコードコーナー座標(As’、Bs、Cs、Ds)が入力され、それらから射影パラメータを算出する。射影パラメータの算出について、再び図95を用いて説明する。
【0438】
2次元コードのデコードによりAsが決定されるのでその隣接コーナーであるBs〜Ds、As’は自動的に決まる。算出したいのはPsの座標である。
【0439】
射影変換式は図34の式であり、図34で説明したときと同様に、b1〜b8のパラメータが算出される。ペン先座標変換器526はこのパラメータを用いてPrをPsに変換して紙面上の先端部440の座標を決定する。
【0440】
なお、上記ペン先座標の算出において、画像における2次元コードのコーナー(Ar’〜Dr)とペン型座標入力装置437の先端部440(Pr)の座標は、画像の各画素の位置を表す整数ではなく、画像におけるドットの中心、ペン先の紙に接する部分の中心の座標である。
【0441】
図96で示すようにドットの中心は必ずしも画素位置の中心に来るとは限らず、位置がずれる。そのため、正確なドットの中心を検出し、ペン先の紙面における座標の推定精度を向上させている。
【0442】
正確なドットの中心を検出するための方法を述べる。図97で示すように、元のグレースケールの入力画像において、ドット検出器470で検出したドットの画素位置を中心とする3×3画素で最小の画素値を有する画素位置を検出する。この画素位置を(i , j)とする。
【0443】
また、画素位置(i , j)を中心とした3×3画素のウィンドウ内の各画素の値を図98で示すようにv(x,y)(ただし、i-1 <= x <= i+1, j-1 <=y <=j+1) とする。下記の数6、数7を用いて、中心座標(ic, jc)を算出する。
【0444】
【数6】

【0445】
【数7】

数6、数7を利用してAr’〜Drの4点を決定する。
【0446】
また、ペン先位置の座標Prは以下のようにして算出する。まず、仮のペン先位置Pr’を画像の中心とする。たとえば、画像の大きさが320×240画素ならばPr’=(160、120)である。
【0447】
そして、ペン先を紙面に接触させ、ペンの姿勢と、ペン先と紙と接触位置を固定させて紙を回転させる。すると、検出される複数の筆記座標は同心円を描くので、その中心座標がペン先の紙の上での座標Psである。Psの座標を(xc,yc)、Psと同心円との距離をr、同心円状の各筆記座標を(xn,yn)とすると、Psの検出は評価関数
【0448】
【数8】

を最小にする(xc,yc,r)を求めることに他ならない。各筆記座標には対応した射影変換係数がすでに求められているので、紙の上の座標Psを逆射影変換を行うと、Prの座標が求められる。Prの座標は複数あるのでその重心位置をとると真のPr座標を求めることができる。このようにすることで、高精度なペン先位置検出を行うことが可能になる。
【図面の簡単な説明】
【0449】
【図1】文書処理システムの全体構成図を示す図である。
【図2】PCのハードウェア構成を示す図である。
【図3】文書処理システムを構成する要素A〜Jを示す図である。
【図4】要素Aの第1の実施例を示すフローチャートである。
【図5】要素Aの第2の実施例を示すフローチャートである。
【図6】要素Aの第3の実施例を示すフローチャートである。
【図7】要素Aの第4の実施例を示すフローチャートである。
【図8】要素Aの第5の実施例を示すフローチャートである。
【図9】紙ID管理テーブルを示す図である。
【図10】紙ID管理テーブルを示す図である。
【図11】紙文書の例を示す図である。
【図12】紙文書の例を示す図である。
【図13】筆記情報入力装置を示す図である。
【図14】筆記情報入力装置の外観例を示す図である。
【図15】筆記情報入力装置の処理を示すフローチャートである。
【図16】筆記情報入力装置から送信されるデータの形式を示す図である。
【図17】画像入力装置を示す図である。
【図18】画像入力装置の処理を示すフローチャートである。
【図19】画像正立処理を示すフローチャートである。
【図20】領域抽出処理を示すフローチャートである。
【図21】画素にラベルをつける様子を示す図である。
【図22】外接矩形座標検出処理を示す図である。
【図23】外接矩形同士を統合した外接矩形を示す図である。
【図24】バーコード読取装置を構成する各部を示す図である。
【図25】頂点画素検出を示す図である。
【図26】頂点候補検出を示す図である。
【図27】コード枠検出を示す図である。
【図28】2次元コード読取処理を示すフローチャートである。
【図29】斜め方向からの読み取る様子を示す図である。
【図30】2次元コードを示す図である。
【図31】2次元コードを示す図である。
【図32】射影変換を示す図である。
【図33】2次元コードと読み取った2次元コードを示す図である。
【図34】変換パラメータを求める数式を示す図である。
【図35】2次元コード作成装置を構成する各部を示す図である。
【図36】データの配置位置を示す図である。
【図37】2次元コード作成処理を示すフローチャートである。
【図38】データの配置位置を示す図である。
【図39】管理テーブルを示す図である。
【図40】帳票を示す図である。
【図41】情報テーブルを示す図である。
【図42】帳票構造体を示す図である。
【図43】帳票作成プログラムのユーザインタフェースを示す図である。
【図44】テキストボックスを作成する様子を示す図である。
【図45】プロパティ群を示す図である。
【図46】筆記情報をデータに分解する様子を示す図である。
【図47】筆記情報をデータに分解し保存する処理を示すフローチャートである。
【図48】要素Kと他の要素との関連を示す図である。
【図49】画像取得装置の構成例を示す図である。
【図50】撮像部、駆動部、制御部の詳細な構成例を示す図である。
【図51】撮像部の構成例を示す図である。
【図52】紙文書の例を示す図である。
【図53】画像取得装置の処理を示すフローチャートである。
【図54】撮像部の上下方向への駆動を示す図である。
【図55】分割画像を示す図である。
【図56】接合した画像を示す図である。
【図57】あおり歪の補正を行った画像を示す図である。
【図58】画像取得装置の構成例を示す図である。
【図59】画像取得装置の構成例を示す図である。
【図60】画像取得装置の構成例を示す図である。
【図61】画像取得装置の構成例を示す図である。
【図62】画像取得装置の構成例を示す図である。
【図63】画像取得装置の構成例を示す図である。
【図64】ドットの大きさとドット間隔を示す図である。
【図65】データの配置領域を示す図である。
【図66】データの配置規則を示す図である。
【図67】2次元コードを示す図である。
【図68】2次元コードの作成処理を示すフローチャートである。
【図69】データのエンコード処理と誤り訂正符号付加を示す図である。
【図70】要素Aの印刷処理を示すフローチャートである。
【図71】ペン型座標入力装置を示す図である。
【図72】マイコンの構成図である。
【図73】2次元コード読取装置の構成図である。
【図74】2次元コードの読取動作を示すフローチャートである。
【図75】2次元コードを読み取った画像を示す図である。
【図76】誤り訂正処理を示すフローチャートである。
【図77】データ置換の具体例を示す図である。
【図78】2次元コード読取装置の構成図である。
【図79】誤り訂正処理を示すフローチャートである。
【図80】各検出器に用いられる領域を示す図である。
【図81】ドット検出器が検出するドットを示す図である。
【図82】座標取得率を示す図である。
【図83】コード枠検出器の構成図である。
【図84】追跡経路を示す図である。
【図85】第1コーナー検出器の構成図である。
【図86】点対称ペアの説明図である。
【図87】画素を渦巻き走査する様子を示す図である。
【図88】2次元コードのコーナー付近を構成するドットを示す図である。
【図89】データ取得器のデータ取得の説明図である。
【図90】データを取得する処理を示すフローチャートである。
【図91】ペン先座標算出器の構成図である。
【図92】座標補正器の詳細を示す図である。
【図93】グレースケール画像の5×5近傍を表す図である。
【図94】近傍フレームドットを示す図である。
【図95】射影パラメータの算出を示す図である。
【図96】ドットの中心の位置と画素を示す図である。
【図97】ドット検出器で検出した画素と最小画素値を有する画素の位置検索を示す図である。
【図98】最小画素値を有する画素を中心とした3×3ウィンドウの定義を示す図である。
【符号の説明】
【0450】
11 頂点候補検出部
12 コード枠検出部
13 射影変換係数算出部
14 データサンプリング部
15 誤り訂正部
16、20 フォーマット変換部
21 誤り訂正部
23 2次元コード作成部
31 入力装置
32 表示装置
33 ドライブ装置
34 記録媒体
35 補助記憶装置
36 メモリ装置
37 演算処理装置
38 インタフェース装置
40、47 脱会・入会登録用紙
41、42、43、44、48、49、50、51 タイミングマーク
45、57、58、67、68、290 2次元コード
46 コンテンツ
52 コンテンツの一部
53 コンテンツの一部の拡大図
54 識別子
55 コード枠兼アライメントドット
56 データドット
59 紙文書例
60 筆記情報入力装置
61 座標入力装置
62 紙ID情報読取装置
63 紙ID
64 筆記情報
65 文書本文
66 専用入力ペン
71 記憶装置
72 通信装置
73 制御装置
74 座標入力装置
76、77、78、79 黒枠判定ライン
75 紙ID情報読取装置
80、105 スキャナ
81 スキャナ制御装置
82 制御装置
83 記憶装置
84 画像処理装置
85 ネットワーク制御装置
86 MFP
87 ネットワーク
88 画像入力装置
90、91、92、93 画素
94、95、96 外接矩形
100 記憶装置
101 帳票作成用PC
102 印刷装置
103 帳票処理用PC
104 D−PAD
106 データサーバ
107 ネットワーク
108 帳票作成装置
109 帳票処理装置
110 ユーザ
111 外部処理プログラム
112 ストレージ
121 要素A
122 要素B
123 要素C
124 要素D
125 要素E
126 要素F
127 要素G
128 要素H
129 要素I
130 要素J
131 要素K
141、142、143、144、146、151、152、153、154 列
145、155 行
170 記入部A
171 記入部B
172 記入部C
173 記入部D
174 記入部E
175 氏名ラベル
176 レイアウト情報
177 認識情報
178 保存先情報
180 記入帳票イメージ
181 未記入帳票イメージ
182 筆記イメージ
201、310 撮像部
202 駆動部
203 支柱
204 インタフェース
205 制御部
206 支持台
207 操作スイッチ
208 紙文書
210、461 CPU
211 システムコントローラ
212 SDRAM
213 PCIバス
214 PCMCIA
215 I/O入出力デバイス
216 ハードディスク
217 IDE
218 PCI/ISAブリッジIDEUSB変換インタフェース
219、239 USB
220 ISAバス
221、237 I/Oコントローラ
222、238 シリアル
234 パラレル
235 LANインタフェース
236 MPU
240 メモリ
241 CDS
242 A/D変換器
243 駆動回路
244 ロータリエンコーダX
255 ステッピングモータX
256 ステッピングモータY
257 ロータリエンコーダY
258 検出回路
261 I/Oデバイス
262 撮像素子
263 フォーカスレンズ
264 シャッタ
265 絞り機構
266 ズームレンズ
267、268 固定レンズ
280 TG
281 IPP
301、302 領域
310 撮像部
311、314 データ識別情報
312 紙ID情報読み取り部
313 下敷き
315 支持台
316 投影部
317 投影領域
318 携帯情報端末
401、402、403、404、405、406、407、408、409 データ領域
411 ドット
412 最小ドット
420、421、422、423、424 2次元コード
431 プリンタ
434、439 情報処理装置
437 ペン型座標入力装置
438 携帯情報端末
440 先端部
441 画像読取装置
442 光電変換素子
443 光学系
444 ブザー
445 装置本体
446 マイコン
447、450 LED
448 LCD
449 圧力センサ
451 筆記具
462 ROM
463 RAM
464 2次元コード読取装置
470 ドット検出器
471 コード枠検出器
472 データ取得部
473 データ置換部
474 既知情報メモリ
475 誤り訂正器
476 データ復号器
477 ペン先座標算出器
478 連続筆記抽出器
479 筆記検出部
491、492、493、494 領域
501 第1コーナー検出器
502 ドット追跡器A
503 第2コーナー検出器
504 ドット追跡器B
505 第3コーナー検出器
506 ドット追跡器C
507 第4コーナー検出器
508 ドット追跡器D
510 周囲ドット検出器
511 点対称ペア検出器
520 第1誤り訂正器
521 第2誤り訂正器
522 選択器
525 射影パラメータ算出器
526 ペン先座標変換器
527 座標補正器
530 最大ぼけドット検出器
531 最小ぼけドット検出器
532 ドット位置置換器
540 近傍フレームドット

【特許請求の範囲】
【請求項1】
紙文書を識別するための紙IDをエンコードした符号化紙IDを含む符号化情報が印刷された領域を複数有し、前記符号化情報には前記領域の前記紙文書における位置を示す座標情報をエンコードした符号化座標情報が含まれた紙文書に対して処理を行う文書処理システムであって、
前記符号化紙IDと前記符号化座標情報とを作成するエンコード手段と、
前記紙文書に対応する電子文書に対して割り当てられる文書IDと前記紙IDとを関連付ける文書紙ID関連手段と、
前記紙IDを取得し、前記エンコード手段により作成された前記符号化紙IDと前記符号化座標情報と矩形である前記領域の枠とをドットを用いて前記紙文書に印刷する印刷手段と、
前記紙IDを管理する紙ID管理手段と、
前記紙文書を撮像することで、前記紙文書の画像を入力する画像入力手段と、
前記画像入力手段により入力された入力画像における前記領域の4隅のドットを検出するコード枠検出手段と、
前記コード枠検出手段により検出された枠に基づき前記符号化された情報を取得する符号化情報取得手段と、
前記画像符号化情報取得手段で取得された前記符号化紙IDと前記符号化座標情報をデコードするデコード手段と、
前記デコード手段でデコードされた前記符号化座標情報から筆記位置を検出する筆記位置検出手段と、
前記情報取得手段により取得された筆記情報に対して行われる処理を示す処理IDと前記紙IDとを関連付ける処理紙ID関連手段とを有し、
前記筆記位置検出手段は、
前記ドットのぼけの程度を検出するぼけドット検出手段と、
前記ぼけドット検出手段が検出した前記4隅のドットのぼけの程度のうち、ぼけの程度が最も大きいドットであるぼけドットの近傍のドットで、ぼけの程度が小さいドットの座標と、前記ぼけドット除く前記コード枠検出手段で検出されたドットとの座標から、前記紙文書での筆記位置を検出するためのパラメータを検出するパラメータ検出手段と、
前記パラメータを用いて前記紙文書における筆記位置の座標を検出する座標系変換手段と
を有することを特徴とする文書処理システム。
【請求項2】
前記紙IDから前記文書ID及び処理IDに変換する紙文書処理ID変換手段と、
前記処理IDを管理する処理ID管理手段とをさらに有し、
前記処理ID管理手段は、前記筆記情報に対して行われる処理を実行する処理プログラムと、前記処理IDとを関連付けたプログラム処理ID関連付け情報を管理することを特徴とする請求項1に記載の文書処理システム。
【請求項3】
前記情報取得手段により取得された筆記情報を、前記フォームのレイアウト情報及び処理IDに基づき、データに分解し、保存する筆記情報分解保存手段をさらに有することを特徴とする請求項1または2に記載の文書処理システム。
【請求項4】
前記コーナー枠検出手段は、
前記ドットの中心の座標を検出することを特徴とする請求項1から3のいずれか1項に記載の文書処理システム。
【請求項5】
前記紙文書に光を照射する照明手段をさらに有し、
前記画像入力手段は、前記照明手段により照射された前記紙文書を撮像することを特徴とする請求項1から4のいずれか1項に記載の文書処理システム。
【請求項6】
筆記状態であるか否かを検出する筆記状態検出手段をさらに有し、
前記照明手段と、前記画像入力手段と、前記デコード手段は、前記筆記状態検出手段が筆記中であると検出している場合に動作することを特徴とする請求項5に記載の文書処理システム。
【請求項7】
前記印刷手段は、前記符号化紙IDにのみ赤外領域を吸収する色材を使用して印刷することを特徴とする請求項1から6のいずれか1項に記載の文書処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate

【図49】
image rotate

【図50】
image rotate

【図51】
image rotate

【図52】
image rotate

【図53】
image rotate

【図54】
image rotate

【図55】
image rotate

【図56】
image rotate

【図57】
image rotate

【図58】
image rotate

【図59】
image rotate

【図60】
image rotate

【図61】
image rotate

【図62】
image rotate

【図63】
image rotate

【図64】
image rotate

【図65】
image rotate

【図66】
image rotate

【図67】
image rotate

【図68】
image rotate

【図69】
image rotate

【図70】
image rotate

【図71】
image rotate

【図72】
image rotate

【図73】
image rotate

【図74】
image rotate

【図75】
image rotate

【図76】
image rotate

【図77】
image rotate

【図78】
image rotate

【図79】
image rotate

【図80】
image rotate

【図81】
image rotate

【図82】
image rotate

【図83】
image rotate

【図84】
image rotate

【図85】
image rotate

【図86】
image rotate

【図87】
image rotate

【図88】
image rotate

【図89】
image rotate

【図90】
image rotate

【図91】
image rotate

【図92】
image rotate

【図93】
image rotate

【図94】
image rotate

【図95】
image rotate

【図96】
image rotate

【図97】
image rotate

【図98】
image rotate


【公開番号】特開2006−20144(P2006−20144A)
【公開日】平成18年1月19日(2006.1.19)
【国際特許分類】
【出願番号】特願2004−196803(P2004−196803)
【出願日】平成16年7月2日(2004.7.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
2.USB
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】