〔概略〕
本発明の筆記情報処理システムの概略を説明する。なお、筆記情報処理システムの構成図は図1と同様である。すなわち、帳票作成用PC101と、印刷装置102と、帳票処理用PC103と、スキャナ105と、デジタルPAD(以下、D−PADと記す)104と撮影装置99と、データサーバ106とがネットワーク107を介して接続される。
本発明の筆記情報処理システムでは、紙文書に手書きされた筆記情報と紙文書に付与されている紙ID情報を取得する異なるスキャナ105等の筆記情報取得手段を複数利用することができる。
以下では、D−PAD104により取得される筆記情報はペンの座標点であるストロークデータであり、スキャナ105または撮影装置99から取得される筆記情報は画像データとしてのスキャンイメージであるが、特に区別する必要がなければいずれも筆記情報と称す。
本実施の形態の筆記情報処理システムは、それぞれの装置から得られた筆記情報を比較する情報比較装置、それぞれの筆記情報を合成する情報合成装置を備える。ここで、情報比較装置、情報合成装置は、それぞれ単独の装置として構成することも可能であるし、コンピュータ上のプログラムとして構成することも可能である。本発明においては、帳票作成用PC、帳票処理用PCがすでに存在する場合が多いと考えられるので情報比較装置、情報合成装置はプログラムとして存在することが効率的である。
まず同じ紙IDを付与された帳票から、D−PAD104とスキャナ105が筆記情報を取得する。次にそれぞれの装置から得られた筆記情報を比較し、一致した場合、それぞれの筆記情報を合成する。
筆記情報を比較する際には、それぞれに含まれる筆記情報として紙ID情報または筆記情報を用いる。紙ID情報を用いて比較する場合には、紙IDが一致するか否かを比較する。筆記情報を用いて比較する場合には、それぞれの筆記情報の筆記位置、形状を比較し、一致すると判断できる程度か否かを判定する。合成する情報は、それぞれの筆記情報に含まれる紙ID情報、筆記情報及びそれ以外の紙ID取得時刻、筆記時刻または位置情報などの付帯情報である。
〔ハードウェア構成〕
続いて、帳票作成用PC101、帳票処理用PC103及びデータサーバ106(以下、単にPCと総称する)のハードウェア構成について図2を用いて説明する。図2のハードウェア構成図は、それぞれバスBで相互に接続されている入力装置31と、表示装置32と、ドライブ装置33と、記録媒体34と、補助記憶装置35と、メモリ装置36と、CPU37と、インタフェース装置38とを含むように構成される。
入力装置31は、PCのユーザが操作するキーボード及びマウスなどで構成され、PCに各種操作信号を入力するために用いられる。表示装置32は、PCを操作するのに必要な各種ウィンドウやデータ等を表示する。インタフェース装置38は、PCをネットワークに接続する為のインタフェースであり、例えばNIC(Network Interface Card)やモデム等で構成される。
そして、PCを動作させるためのプログラムは、CD−ROM、DVD−ROM、メモリーカード等の記録媒体34によって提供されるか、ネットワークを通じてダウンロードされる。また、記録媒体34はドライブ装置33にセットされ、データやプログラムが記録媒体34からドライブ装置33を介して補助記憶装置35にインストールされる。
ストレージである補助記憶装置35は、データやプログラムを格納すると共に、必要なファイル等を格納する。メモリ装置36は、PCの起動時に補助記憶装置35からプログラムを読み出して格納する。CPU37は、メモリ装置36に読み出され格納されたプログラムに従って処理を実行する。
補助記憶装置35には、CPU37を本実施の形態の筆記情報処理システムとして機能させる各手段がプログラムとして格納されている。例えば、帳票作成装置108のPCをID付与手段121、ID管理手段122及びIDエンコード手段126として機能させるプログラムが補助記憶装置35にインストールされている。また、帳票処理用PC109を、IDデコード手段126、筆記情報処理手段130、文書ID取得手段131、比較手段132、筆記情報合成手段133として機能させるプログラムが補助記憶装置35にインストールされている。また、記憶装置100のPCをレイアウト管理手段129として機能させるプログラムが補助記憶装置35にインストールされている。
〔筆記情報処理システムを実現する各手段や紙文書、紙IDの関係〕
図3は、PCがプログラムを実行して実現する筆記情報処理システムの各手段や紙文書、紙IDの関係を示す図である。また、図3にはユーザ、後述する外部処理プログラム111及びストレージ134との関係が示されている。
ユーザは筆記情報入力システムを使用する。また、外部処理プログラム111は、筆記内容に基づき所定の動作をするプログラムであり、このプログラムは予め用意されている。ストレージ112は筆記情報等を保存する記憶装置であり、例えば上記ハードディスク、MOドライブ、半導体ディスクなどが含まれる。
次に、各手段について説明する。ID付与手段121は、用紙に紙ID127を付与・印刷し、紙IDに文書ID及び処理IDを関連付けるものである。
紙IDとは、それぞれの用紙に一意的に割り当てられるものであり、全ての紙のIDは、原則的に異なったIDとなっている。または、同一の文書の同一ページを複数枚印刷する場合、複数の用紙の紙IDを同一にしてもよい。
ID管理手段122は紙IDを管理する。紙文書123は、紙IDが付与され印刷された用紙であり、この紙文書123にユーザが筆記する。情報取得手段124は、紙から筆記情報及び紙IDを取得するものである。情報取得手段124は少なくともひとつ以上存在する。IDエンコード手段126は、紙IDをエンコードするものである。IDエンコード手段125は、紙IDをデコードするものである。処理ID管理手段128は、処理IDと外部処理プログラム111を関連付け、処理IDを管理するものである。
処理IDとは、筆記情報処理システムで入力される筆記情報に対する処理に割り当てられるIDである。文書IDとは、電子的な文書に対して割り当てられるIDであり、原文書IDと表現することもある。
レイアウト管理手段129は、フォームのレイアウト情報および処理方法を編集・管理するものである。筆記情報処理手段130は、筆記情報をフォームのレイアウト情報および処理方法から、筆記情報に分解・保存するものである。文書ID取得手段131は、紙IDから文書ID及び処理方法に変換するものである。
比較手段132は、複数存在する情報取得手段124から得られる情報を比較する比較装置である。筆記情報合成手段133は、情報比較結果に従い情報を合成する情報合成装置である。
これらの構成を図1の全体構成図に適合させると、ID付与手段121、ID管理手段122、IDエンコード手段125が帳票作成装置108に搭載され、レイアウト管理手段129が記憶装置100に搭載され、情報取得手段124はD-PAD104、スキャナ105、撮影装置99、IDデコード手段126、筆記情報処理手段130、文書ID取得手段131、比較手段132、筆記情報合成手段133が帳票処理用PC109に搭載されている。なお、以上説明した筆記情報処理システムの全体構成は一例であって、図3で説明する各手段が含まれていればよいので、各手段がどのPCで実行されるかは設計事項である。
上述したように図3の各手段は、ソフトウェア又はハードウェアのいずれで実現してもよいが、汎用のコンピュータで実行可能であり、また、バージョンアップ等が容易であるためソフトウェアで構成することが好適となる。
〔筆記情報処理システムの詳細〕
続いて、筆記情報処理システムの処理について詳細に説明する。まず、外部処理プログラム111と筆記情報処理システムについて説明する。外部処理プログラム111と筆記情報処理システムとのインタフェースはあらかじめ定められているので、それに応じた外部処理プログラム111を作成する。
このようにして作成される外部処理プログラム111は2つの種類に分類することができ、1つは筆記情報そのものを処理する非定型処理を行う外部処理プログラム111であり、もう1つは筆記情報を紙のフォームに従ってデータに分解し、そのデータに対する定型処理を行う外部処理プログラム111である。
ここで、定型処理とは、いわゆる帳票処理とよばれているもので、紙文書にあらかじめ記入する欄が設けられており、どこに記入されたかに応じて、その筆記情報に対する処理が定まるものをいう。例えば、住所欄に記入されたものは住所として扱われる。すなわち筆記場所によって処理が定まるもののことをさす。
また、ここで非定型処理とは、前述の定型処理以外のものをいう。
本実施の形態において、非定型処理ではストレージ134の所定のフォルダに筆記情報がデータファイルとして保存される。非定型処理を行う外部処理プログラム111は、このフォルダやデータベースを定期的に監視し、新しいファイルができていればそれを取得して、新しいファイルを処理するようなプログラムである。
または、フォルダやデータベースに新たなファイルが保存されるとイベントが発生するようなOS(Operating System)を用いて、このイベントをキャッチして処理を行うプログラムでもよい。
このような非定型処理を行う外部処理プログラム111の例としては、筆記された紙文書に対応する元の電子文書に筆記情報を重畳させ、それをあらかじめ定められた人に添付ファイルとしてメールを行う、というものがあげられる。
次に、定型処理であるが、本実施例では所定のデータベースに筆記情報などのデータが保存されるため、定型処理をする外部処理プログラムは、データベースを定期的に監視し、新しいデータができていればそれを取得して処理するようなプログラムとして作成される。
あるいは外部処理プログラムは、データベースに新たなデータが登録されるとイベントが発生するようなデータベースを用いて、このイベントをキャッチして処理を行うプログラムとして作成されてもよい。このような定型処理の外部処理プログラムとしてはアンケート処理といったものをあげることができる。
なお、非定型処理を行う外部処理プログラム111と定型処理を行う外部処理プログラム111の両方が必ずしも必要ではなく、何らかの処理をするために少なくとも一つあればよい。
また、以下の説明で、非定型処理を行う外部処理プログラム111を非定型処理プログラムと表し、定型処理を行う外部処理プログラム111を定型処理プログラムと称す。
以上説明した外部処理プログラムは、筆記情報処理システムと関連付けるため筆記情報処理システムに登録される。
まず、非定型処理プログラムを登録するためのモジュールの詳細は処理ID管理手段128に記述されている。このモジュールを用いて処理情報が登録される。
なお、処理情報とは筆記情報入力システムと非定型処理プログラム111とのインタフェースの方法を表すものであり、例えばデータが保存されるフォルダ名である。このときのデータのフォーマットはあらかじめ定められている。
また、後述するように印刷時にはどの外部処理プログラム111を起動するかを選択しなければならないので、そのために必要な説明文なども登録する。登録することにより、処理ID管理手段128では処理IDが自動的に振られ、処理IDは後述するように再利用される。
次に、定型処理について説明する。定型処理を行うためにはまず帳票のフォームを設計しなければならない。そのためのモジュールの詳細はレイアウト管理手段129に記述されている。これはフォームの入力欄のレイアウト情報と処理情報を編集し、登録するものである。なお、本実施の形態では定型処理は処理IDが0としてあらかじめ登録されている。
また、ここでのレイアウト情報は、例えば紙での入力欄の位置、データ型などを表し、処理情報はどの入力欄の内容をどのデータベースに登録するか、および文字認識を行うか、行うとすれば文字種は何であるかなどを表す。
筆記情報入力システムを利用するユーザは、まず紙文書を印刷する。そのためには、まず印刷したい電子文書を、ID付与手段121を使って印刷する。この文書はファイルとして保存されており、そのファイル名には、ファイルがどんな性質のファイルなのかを判断するために通常用いられる拡張子が含まれる。
定型処理用の文書はある特定の拡張子を持っているので、印刷しようとする電子文書の拡張子によって、定型処理か非定型処理かが定まる。
非定型処理の場合、上記モジュールに対して印刷を指示すると、このモジュールは処理ID管理手段128に登録済みの外部処理プログラム111に関する情報をユーザに提示し、筆記後に行われる処理の選択を求める。ユーザがどの処理を行うか選択することにより、処理IDが定まる。
処理IDが定まるとモジュールは、電子文書のIDと処理IDをID管理手段122に登録し、紙IDを取得する。その後、用紙にこの紙IDを付与し印刷を行い、紙IDが付与された用紙、すなわち紙文書が得られる。
また、定型処理の場合、モジュールに対して印刷を指示すると、非定型処理の場合とは異なり、処理IDは0と定められているので、操作者に処理の選択を求めることはなく、ID管理手段122に電子文書の文書IDと処理IDを登録し、紙IDを取得する。その後は先ほどと同様、印刷が行われ紙文書が得られる。
以上の処理によって、紙文書、対応する電子文書及び筆記情報に行うべき処理の関連付けが行われたことになる。つまり用紙には紙IDが付けられ、これに文書IDと処理IDが関連付けられ、紙文書に筆記した場合にどの用紙に筆記したか及び筆記した後、どのような処理を行うかが筆記情報処理システムに登録されたことになる。
次に、紙文書に筆記した後の動作について説明する。ユーザは、作成された紙文書に筆記し、紙文書をスキャナ装置105や例えばMFP(Multi Function Printer)のスキャナ部を用いてスキャンデータとして入力する。これにより、スキャナ装置105のIDエンコード手段125により紙IDが取得される。これらの紙IDとスキャンデータは文書ID取得手段131に送られる。
あるいは、ユーザは紙文書をD-PAD104に設置し筆記を行う。するとD-PAD104により筆記情報及びD-PAD104が有するIDエンコード手段125で紙IDが取得される。これらの紙IDと筆記情報は文書ID取得手段131に送られる。
情報取得手段124として、スキャナ105または撮影装置99と、D-PAD104を共に利用する場合について説明する。まず上記と同様に、紙IDを付与された紙文書である帳票等を、D-PAD104に設置し筆記を行う。するとD-PAD104は筆記情報を座標データとして取得し、D-PAD104のIDエンコード手段125により紙IDが取得される。これらの紙IDと筆記情報は比較手段132に送られる。
ついで、同じ紙IDを付与された紙文書である帳票等をスキャナ105や、例えばMFP(Multi Function Printer)のスキャナ部を用いて画像データとして入力させる。これにより、スキャナ105のIDデコード手段により紙IDが取得される。これらの紙IDとスキャンイメージは比較手段132に送られる。
ついで、比較手段132はD-PAD104とスキャナ105のそれぞれから得られた紙IDを比較し、一致した場合、それぞれの紙IDと筆記情報を筆記情報合成手段133に送る。筆記情報合成手段133は送られた紙ID及び筆記情報とを合成する。合成された紙IDと筆記情報は文書ID取得手段131に送られる。
紙IDまたは筆記情報を比較する場合、それぞれの情報に含まれる情報として紙ID情報、筆記情報を用いる。紙ID情報を用いて比較する場合には、紙IDが一致するか否かを判断する。筆記情報を用いて比較する場合には、それぞれの筆記情報の筆記位置、形状を比較し一致するか否かを判断する。
合成する情報は、それぞれの情報に含まれる紙ID情報、筆記情報及びそれ以外の情報である。
文書ID取得手段131は取得された紙IDに基づきID管理手段122に問い合わせることにより文書IDと処理IDが特定される。このように特定することが可能なのは、ID管理手段122で電子文書IDと処理IDを登録し、紙IDを取得しているためである。
ついで、文書ID取得手段131は、処理ID管理手段128に問い合わせることによって処理IDから筆記情報をどこのフォルダに保存するかが得られるので、そこに文書IDとスキャンイメージがあわせて保存される。
ついで、処理IDが0の場合について説明する。処理IDが0の場合は定型処理が行われる。まず、文書IDとスキャンイメージが筆記情報処理手段130に渡される。筆記情報処理手段130ではレイアウト管理手段129に問い合わせて、文書IDからフォームのレイアウト情報と処理情報を得る。ここで処理する情報は、データの保存先や筆記情報の文字認識・マーク認識等である。
そこで、まずレイアウト情報を元に、スキャンイメージをフィールドである入力欄毎に分解し、スキャナ装置105を用いた場合は、電子文書をラスタライズした画像データと筆記された紙文書のスキャンイメージとを比較して筆記情報のみの画像データを得る。
また、D-PAD104を用いた場合は、筆記された座標列(ストロークデータ)がそのまま得られているので、処理情報に従って文字認識やマーク認識等を行い、その結果をデータベースに保存する。
以上が一連の筆記情報処理の詳細な説明である。次に、図3の各手段の詳細について説明していく。
・ID付与手段121
まず、ID付与手段121から説明する。ID付与手段121の説明では5つの実施例を説明する。最初に図4を用いて第1の実施例を説明する。
図4に示されるフローチャートは、ネットワークを介さずスタンドアロンのPC上で文書を独自に印刷する場合の処理を示している。
まずステップS101で、レイアウトエディタを起動し作成済み電子文書を表示する。このレイアウトエディタは、処理IDの閲覧/選択と、紙IDの取得、電子文書の表示/編集/印刷が行える。具体的にはID管理手段122、IDエンコード手段125、処理ID管理手段128や、定型文書の場合はレイアウト管理手段129が有する「帳票作成プログラム」が、非定型文書の場合はワープロソフトなどが連携し上記の機能を実現する。ステップS102では必要に応じて電子文書の編集を行う。
次のステップS103ではユーザが印刷要求を行った際に、上述のとおり電子文書の拡張子により定型文書/非定型文書の判別を行い、非定型処理の場合、処理ID管理手段128に登録済みの外部処理プログラムに関する情報をユーザに提示し、筆記後に行われる処理の処理IDの決定を行う。また、定型処理の場合、印刷の指示が行われると、非定型処理の場合とは異なり、処理IDは0と定められているので、ユーザに処理の選択を求めることはない。
次のステップS104で、紙IDが取得される。ステップS105で、紙IDが2次元コードにエンコードされ、ステップS106で、2次元コードが電子文書中の所定の位置に貼り付けられる。ステップS107で電子文書が印刷される。
この処理での紙IDの取得には、ID管理手段122が用いられ、紙IDと電子文書の各ページ、そして処理IDとの関連付けを行うとともに、それらを管理データベースが利用される。また、紙IDを取得したのちに紙IDから2次元コードを作成するのは、IDエンコード手段125により行なわれる。
作成された2次元コードは、重畳位置の指定があった場合は電子文書内の指定位置に、重畳位置の指定がなかった場合は予め定められている電子文書内の所定の位置に重畳される。このID取得から文書に2次元コードを挿入するまでの一連の流れは、ユーザがワープロソフトで印刷を実行したときに自動的に行われる。あるいはメニューに用意してユーザが明示的に任意の時点で実行させる。
その為には、ワープロソフトにマクロ機能が備わっている場合、そのマクロ機能を用いれば実現することができる。この場合ではID管理手段122と紙IDがソフトウエアモジュールであり、Windows(登録商標)のCOMという形式であれば、マクロ機能からこれらのモジュールを呼び出すことができ、さらにWordObjectLibraryというモジュールのAddPictureメソッドを用いれば画像を電子文書の任意の位置に挿入することができる。このようにして紙文書が印刷される。
なお、ステップS104は、紙ID管理ステップ、処理紙ID管理ステップ、文書紙ID関連ステップ、紙ID付与ステップに対応する。このステップS104において紙IDを取得する際、まず、ID管理手段122が用いられる。このときID管理手段122により、紙IDの管理も行われる。さらに、処理IDと紙ID、文書IDと紙IDの関連付けも行われる。ステップS105は、エンコードステップに対応する。ステップS107は、印刷ステップに対応する。
次に、図5を用いて第2の実施例を説明する。図5は、文書を作成・編集した後に印刷サービスによって印刷する場合の処理を示すフローチャートである。まず、ステップS201でユーザは電子文書を作成する。この電子文書内には各構成要素(オブジェクト)とその特性が記述されている。
ステップS202で、ユーザは、必要に応じてレイアウトエディタを起動/表示/修正を行う。次のステップS203で、レイアウトエディタの機能を利用して処理IDの選択/紙IDの取得が行われる。この処理において、処理IDの選択には処理ID管理手段128が、紙IDの取得にはID管理手段122が用いられ、紙IDと電子文書の各ページ、そして処理IDとの関連付けを行うとともに、それらを管理するデータベースが利用される。なお処理IDの選択が行われるのは非定型文書の場合のみで、定型処理の場合には、処理IDは0と定められているので、ユーザに処理の選択を求めることはない。
ステップS204で、IDエンコード手段125により、紙IDから2次元コードが作成される。ステップS205で、作成された2次元コードは、重畳位置の指定があった場合は電子文書内の指定位置に、重畳位置の指定がなかった場合は予め定められている電子文書内の所定の位置に重畳される。
次のステップS206で、作成された2次元コード重畳済みの電子文書または電子文書の保存場所をSOAP(Simple Object Access Protocol)を使用して印刷サービスに送信する。なお、電子文書の保存場所を送信する場合は、2次元コード重畳済みの電子文書を印刷サービスからアクセス可能な場所に保存する。
ステップS207では、送信されたのが電子文書か電子文書の保存場所かで、処理が分岐する。電子文書の場合は、レイアウトエディタまたはビューワの機能によりステップS209で電子文書が印刷される。
電子文書の保存場所を送信した場合は、ステップS208で印刷サービス内部において受信した保存場所から電子文書が取得され、ステップS209で電子文書が印刷される。
以上説明した第2の実施例は、レイアウトの編集を行うPCにプリンタドライバ等の印刷環境が導入されていない場合でも印刷を可能とする。
なお、印刷サービスは、所定のPCで動作しており、そのPCに導入されている印刷環境はサービスとして他のPCに公開されているので、印刷サービスにアクセスできるPCであれば、その機能を使用して電子文書を印刷することができる。つまり、印刷環境がないPCでも電子文書の印刷命令を発行することができる。また、印刷サービス内部では編集する必要がないので、印刷コマンドを持ったビューワが、印刷サービスが動作するPCに導入されていればよい。
次に、図6を用いて第3の実施例の説明をする。図6は、電子文書の編集を行わず印刷サービスを使用して印刷する処理を示すフローチャートである。
ステップS301で、ユーザが電子文書を作成した後、ステップS302で、その電子文書または電子文書の保存場所、それに加え処理IDがSOAPを使用して印刷サービスに送信される。このとき、電子文書の保存場所を送信する場合は、印刷したい電子文書を印刷サービスからアクセス可能な場所に保存する。
送信される処理IDの決定は、電子文書が非定型文書の場合、処理ID管理手段128により処理IDの一覧を取得しユーザに処理IDの選択を促すことで行われ、電子文書が定型文書の場合、処理IDは0が用いられる。
ステップS303では、送信されたのが電子文書か電子文書の保存場所かで、処理が分岐する。電子文書が送信された場合には、ステップS303からステップS305へ処理は進む。電子文書の保存場所が送信された場合には、ステップS303からステップS304へ処理は進み、印刷サービス内部において受信した保存場所から電子文書が取得される。
電子文書を取得または受信すると、ステップS305で、印刷サービスが稼動するPCが紙IDの取得を行う。この処理での紙IDの取得には、ID管理手段122が用いられ、紙IDと電子文書の各ページ、そして処理IDとの関連付けを行うとともに、それらを管理するデータベースが利用される。
次のステップS306で、IDエンコード手段125により、紙IDから2次元コードが作成される。ステップS307で、作成された2次元コードは、重畳位置の指定があった場合は電子文書内の指定位置に、重畳位置の指定がなかった場合は予め定められている電子文書内の所定の位置に重畳される。
そして、ステップS308で、2次元コードが重畳された電子文書の印刷用イメージファイルが紙に印刷される。このうち、紙ID取得、2次元コード作成、2次元コード貼り付け、印刷には、印刷サービスが稼動するPCに導入済みのレイアウトエディタの機能が使用される。
以上説明した第3の実施例は、レイアウトエディタをインストールしていないPCで電子文書作成を行っても印刷することを可能とする。印刷サービスは、所定のPCで動作しておりそのPCにのみレイアウトエディタをインストールしていれば、その機能を使用して電子文書を印刷することができる。つまり、レイアウトエディタがないPCでも電子文書の印刷命令を発行することができる。
次に、図7を用いて第4の実施例について説明する。図7は、電子文書の編集を行わず印刷サービスを使用して印刷する処理を示すフローチャートである。
ステップS401で、ユーザが電子文書を作成した後、ステップS402で、その電子文書または電子文書の保存場所、それに加え処理IDがSOAPを使用して印刷サービスに送信される。このとき、電子文書の保存場所を送信する場合は、印刷したい電子文書を印刷サービスからアクセス可能な場所に保存する。また送信される処理IDの決定は、電子文書が非定型文書の場合は、処理ID管理手段128により処理IDの一覧を取得しユーザに処理IDの選択を促すことで決定し、電子文書が定型文書の場合、処理IDは0が用いられる。
ステップS403では、送信されたのが電子文書か電子文書の保存場所かで、処理が分岐する。電子文書が送信された場合には、ステップS403からステップS405へ処理は進む。電子文書の保存場所が送信された場合は、ステップS404で、印刷サービス内部において受信した保存場所から電子文書が取得される。
取得または受信された電子文書は、ステップS405で、印刷サービス内部において、レイアウトエディタまたはビューワの機能により、印刷用イメージファイルに変換される。次のステップS406で、印刷サービスが稼動するPCが紙IDの取得を行う。この処理での紙IDの取得には、ID管理手段122が用いられ、紙IDと電子文書の各ページ、そして処理IDとの関連付けを行うとともに、それらを管理するデータベースが利用される。
次のステップS407で、IDエンコード手段125により、紙IDから2次元コードが作成される。ステップS408で、作成された2次元コードは、電子文書と同様に、印刷用イメージファイルに変換され、重畳位置の指定があった場合は電子文書内の指定位置に、重畳位置の指定がなかった場合は予め定められている電子文書内の所定の位置に重畳される。ステップS409で、2次元コードが重畳された電子文書の印刷用イメージファイルが紙に印刷される。
以上説明した第4の実施例は、レイアウトエディタをインストールしていないPCで電子文書作成を行っても印刷することを可能とする。印刷サービスは、所定のPCで動作しておりそのPCにのみレイアウトエディタをインストールしていれば、その機能を使用して電子文書を印刷することができる。
つまり、レイアウトエディタがないPCでもレイアウトファイルの印刷命令を発行することができる。また、印刷サービス内部では電子文書そのものに編集されるわけではなく、印刷用イメージファイルに対して画像重畳操作を行うので、印刷コマンドによるファイル出力等の機能を持ったビューワが、印刷サービスが動作するPCに導入されていればよい。
さらに印刷サービス内部での2次元コード重畳操作は印刷用イメージファイルに変換した後に変換後のファイルに対して行われるので、元の電子文書がどのような形式であろうと、統一的な操作で2次元コードデータの重畳と紙への出力を行える事も第4の実施例のメリットである。
次に、図8を用いて第5の実施例について説明する。図8は、印刷サービスを使用して印刷する処理を示すフローチャートである。ステップS501でユーザがレイアウトエディタを使用し電子文書を作成・編集した後、ステップS502で、その文書からプラットフォームに依存しない印刷イメージ又はページ記述言語等(以下、ページ記述言語等も含め印刷イメージと記す)を作成する。また既存の電子文書を編集せずにそのまま用いる場合は、レイアウトビューワなどの印刷命令を使用し、電子文書から印刷イメージを作成する。なお、印刷イメージとは、実際に紙に印刷された紙文書のイメージを表す。
このようにして作成された電子文書の印刷イメージが、ステップS503で、SOAPを使用して印刷サービスに送信される。この際、ユーザが選択した処理IDと電子文書の保存先を示す文書IDが一緒に印刷サービスに対して送信される。印刷サービスが稼動するPCでは印刷イメージと文書ID及び処理IDを受信した後に、ステップS504で紙IDの取得が行われる。この処理での紙IDの取得には、ID管理手段122が用いられ、紙IDと電子文書との関連付けを行うとともに、それらを管理するデータベースが利用される。
次のステップS505で、IDエンコード手段125により、紙IDから2次元コードが作成される。ステップS506で、作成された2次元コードは、先に受信した電子文書の印刷イメージの形式にあわせて変換され、重畳位置の指定があった場合は電子文書内の指定位置に、重畳位置の指定がなかった場合は予め定められている電子文書内の所定の位置に重畳される。
そして、ステップS507で、2次元コードが重畳された電子文書の印刷用イメージファイルが紙に印刷される。
以上説明した第5の実施例は、元の電子文書の保存先が、印刷サービスからのアクセスが不可能な場所にある場合でも2次元コード付き印刷を可能とする。また印刷サービスは、電子文書の印刷イメージを受信した後に2次元コードと電子文書の重畳を行うが、この重畳処理にはレイアウトエディタを用いないので、レイアウトエディタがPCにインストールされている必要はない。
さらに編集する必要の無い既存の電子文書を印刷する場合には、電子文書を作成するPCは印刷イメージを作成するために必要なレイアウトファイルの印刷命令さえ発行できればよく、そのPCに編集機能を有するレイアウトエディタがインストールされている必要は無い。
つまり、やり取りする2つのPCともにレイアウトエディタを使用せずに電子文書に2次元コードを重畳することが可能となる。例えばPDFファイルの場合は、電子文書を作成するPCとなるコンピュータにアドビ社のAcrobat(登録商標)のような編集アプリケーションがインストールされている必要は無く、Acrobat(登録商標) Readerのような印刷命令が発行可能なアプリケーションのみがインストールされていれば良い。
・ID管理手段122
次に、紙IDを管理するID管理手段122について説明する。図9、図10は、紙IDと文書とを関連づけ、それを管理するID管理手段122において用いられる管理テーブルの各例を示している。
ID管理手段122は、紙出力に対して紙IDの登録要求をされたとき、少なくとも電子文書を一意に指定できる情報を受けとり、それに対して管理テーブル内で唯一である紙IDを割り当て、文書情報を管理テーブルに格納する。
この管理テーブルの説明をする。図9、図10において、行145に示すようなまとまりである各行が、登録された紙IDに対応する文書情報の一単位であり、各列が紙IDの登録要素となっている。
列141には割り当てた紙IDが格納される。列142には電子文書を一意に指定する情報(文書ID)が格納されている。図9では電子文書を一意に指定する文書IDの一例としてパス名が指定されているが、異なるPCに格納されている電子文書までを扱う場合は、図10に示されるように、ネットワークパス名であったり、URI(Uniform Resource Identifiers)であったりしてもよい。複数ページの電子文書を扱う場合、各ページ毎に文書情報が存在し、列142にはページ数に関する情報も含まれる。また、図10に示されるように、列142にページ数に関する情報を格納しない場合、別の列146に格納する。その場合、列142と列146により電子文書が一意に指定される。
また、電子文書の格納先が文書管理システムである場合はその管理IDであってもよい。さらには図10のように電子文書の格納先システムが異なっているものでも格納された電子文書を識別可能であれば格納先システムが複数あってもかまわない。また、登録要求を受け付ける際に、電子文書そのものを受け取り、それを他のものと区別可能なファイル名にして保存した上で紙IDを割り当てて登録する形態であってもかまわない。
管理テーブルではさらに、その紙文書や紙文書上の筆記に対してどのような処理プログラムが処理するかを示した処理IDが割り当てられている列143をもっている。処理IDについての詳細な説明は処理ID管理手段128で行う。
また、文書情報は、電子文書がどのようなアプリケーションから作成されたものかを示す列144をもつ。このような電子文書、または紙文書に関する属性情報を列144以下にいくつ持っていてもかまわない。
また、紙IDを指定され、管理情報の要求である参照要求をされたとき、ID管理手段122では図9における列141の紙IDから該当する紙IDを検索し、検索された紙IDに対応し、列142に示される電子文書を一意に指定する情報を要求元に渡す。ID管理手段122は、同時に列143以降の属性情報も渡してもかまわないが、少なくとも列142の情報を渡す。図10の場合は少なくとも列142および列146の情報を渡す。
また、図9、図10などの管理テーブルの内容は、ID管理手段122がプログラムである場合、そのプログラムが動作するメモリ内で保持していても良いし、あるタイミングでファイルシステムのファイルとして保存していても良い。また、管理テーブルの内容をデータベースに電子的情報として格納する形態もある。この場合、紙IDとその属性情報を1レコードとして格納し、紙IDをキーとして文書などの情報を保存したり、取出したりすることにより紙IDと電子文書とを関連づけ、それを管理するものでもよい。
このように、ID管理手段122が管理している管理テーブルを、プログラム動作を行っているメモリ上のみではなく、ハードディスクのファイルなどの不揮発性ストレージなどへ保存することで、ID管理手段122が一度停止してもそれまで管理していた関連づけ情報を利用することが可能な文書処理システムとなる。
また、管理している紙IDと電子文書との関連づけ情報を不揮発性ストレージ装置にネットワークアクセス可能なデータベースとして保存することで、システム上にそのデータベースへ関連づけ情報を参照するID管理手段122を複数存在させることが可能な文書処理システムとなる。このような不揮発性ストレージ装置は、不揮発性記憶手段に対応する。
さらに、ID管理手段122は他の手段(装置)とは独立した装置に存在し、他の装置からアクセス可能なネットワークで接続された形態であってもかまわない。このとき特にID管理手段122はRPC(Remote Procedure Call)やWebサービスなどの形態で存在し、ネットワーク経由で他の手段からの登録要求や参照要求を受けつけることになる。
このように、ID管理手段122が他の手段とネットワークで接続されており、ID管理手段122がシステムで唯一に紙文書に対して識別子を発行するものであることを保障すると、さらにネットワーク的に離散した他の装置から登録要求、管理情報の参照要求を受けることが可能なシステムとなる。
さらに、電子文書の情報を受信したときに、ネットワーク上に同一の電子文書名が存在していても、その名称をネットワークパス名などの格納されるPC名を含めることで区別して管理することが可能なシステムとなる。また、登録する電子文書を受信して保存し、その保存した電子文書名を割り当てた紙IDと関連づけて管理することで、同じ電子文書名も登録毎に区別して管理することが可能なシステムとなる。
・紙文書123
次に、紙IDが付与された紙文書の説明をする。まず、紙文書の例を図11にて説明する。図11はサークル等の脱会・入会登録用紙40としての紙文書の例であり、この紙文書は、コンピュータ上で管理されている電子文書がプリンタによって印刷されることで生成される。なお、この脱会・入会登録用紙40は、普通紙である。
脱会・入会登録用紙40には、電子文書で定義されたコンテンツ46と機械読み取り可能な2次元コード45、並びに4つのタイミングマーク41、42、43、44が印刷されている。タイミングマーク41、42、43、44は筆記情報を読み取る際に位置合わせのために利用されるが、形・数・大きさ・色などは限定されない。また、タイミングマークが存在しない場合もありうる。
ちなみに、脱会・入会登録用紙40には、脱会・入会登録用紙47に示されるように、適切な筆記具にて記入される。
また、図12に示される紙文書のように、コンテンツの中にコードデータを埋め込むような紙文書もありうる。図12には、紙文書例59と、4つのタイミングマーク48、49、50、51と、コンテンツの一部52を拡大したコンテンツの一部の拡大図53と、識別子54と、コード枠兼アライメントドット55と、データドット56とが示されている。このように、紙文書例59には、コンテンツの中にデータが埋め込まれている。
なお、本実施例において、紙文書を表現しているが、紙文書は筆記具にて筆記可能ものであればよく、紙やシート状のプラスチックフィルムなどを用いることができる。
次に、紙文書から筆記情報を取得する情報取得手段124について説明する。
・情報取得手段124(撮影装置99)
情報取得手段124としてデジタルカメラ等のエリアCCDを撮像デバイスとして用いた撮影装置99について説明する。
この撮影装置99の場合、例えばA4サイズの紙文書を300万画素クラスのエリアCCD(画素数2048×1536(pixels))で一度に取り込むとすると、換算実効解像度は約170(dpi)程度となる。2次元コード等の情報量の多い画像を取り込み、それをデコードする為には相応の高い解像力が必要になり、170(dpi)では不十分な場合がある。この場合、エリアCCDの集積度を上げて解像度の向上を図ることも考えられるが、半導体製造技術のプロセス上の限界がある。
そこで、本実施例では、エリアCCDを撮像デバイスとし、撮像倍率が可変なズームレンズを有する撮像手段を有し、その撮像手段を移動させる駆動手段により被写体の部分領域をズームアップして分割領域として取り込み、画像合成することで高解像度化を実現し、2次元コード等の読取を可能とした撮影装置99について説明する。
この撮影装置99の構成例を図13に示す。図13に示される撮影装置99は、撮像部201と、駆動部202と、支柱203と、制御手段と接合手段と2次元コード検出手段に対応する制御部205と、インタフェース204と、支持台206と、2つの操作スイッチ207で構成される。
駆動部202は、撮像部201を点線で示されるように回転駆動させる。支柱203は、撮像部201と駆動部202を支持する。制御部205は、撮影装置99の制御を行うとともに、支持台206とともに支柱203を支える構造となっている。操作スイッチ207は、撮影装置99の操作をするためのものである。紙文書208のA〜Iの点線で示された部分領域は、撮影装置99が撮影する各部分領域を表している。
次に、上述した撮像部201、駆動部202、制御部205のさらに詳細な構成を図14に示す。
制御部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より構成される小型のボードコンピュータユニットである。
制御部205は、撮像部201の動作制御、撮像装置201から転送された画像の画像処理や編集、記録等を行い、外部機器へインタフェース204(図13参照)を介して接続され、外部機器との通信を行なう。
インタフェース204としては、PC用の汎用インタフェース、例えば、RS−232C、USB、IEEE1394、ネットワークアダプタ、IrDA(Infrared Data Association)を用いる。本実施例では、制御部205を用いる構成を示しているが、制御部205により行う処理や記録を、撮像部201内のMPU236で代用するような構成としても構わない。
次に、駆動部202の説明をする。駆動部202は、ステッピングモータX255、ステッピングモータY256及び回転量検出用のロータリエンコーダX244、ロータリエンコーダY257と、検出回路258と、駆動回路243で構成される。
なお、所定の回転位置で静止するような基準位置を設けてステッピングモータの回転位置をキャリブレーションすれば、各ロータリエンコーダと検出回路は設けなくてもよい。
次に撮像部201を説明する。この撮像部201の説明は、撮像部201とともにレンズも図示されている図15を用いて説明する。
図15には、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は、図14で説明したシリアル238とUSB239とを、まとめて表現したものである。
被写体の像は、固定レンズ267、268、ズームレンズ266、絞り機構265、フォーカスレンズ263を通して、シャッタ264により露光時間が制御され、撮像素子262上に形成される。撮像素子262からの画像信号はCDS241でサンプリングされた後、A/D変換器242でデジタル信号化される。この時のタイミングはTG280で生成される。画像信号はその後、IPP281でアパーチャ補正などの画像処理、圧縮などが行われ、メモリ240に保存される。
各ユニットの動作は、MPU236にて制御される。また、I/Oコントローラ237はI/Oデバイス261を介して、外部の機器と接続され、画像の入出力、撮影制御信号の通信等に用いられる。
次に、一枚の被写体を分割して撮影する場合の制御部205の動きについて、再び図14を用いて説明する。
(1)制御部205は、I/O入出力デバイス215より駆動部202の駆動回路243にパルス電圧を印加し、所定の角度になるように検出回路258の回転検出値をフィードバックする。
(2)制御部205は、USB219より撮像部201のUSB239へ撮影コントロール信号を送信する。
(3)必要に応じて(1)、(2)が繰り返される。画像転送が指示されるとUSB239を介して撮像装置201から画像が制御部205に転送され、その画像を制御部205は、LANインタフェース235を介してネットワークに送信する。
(4)紙文書208(図13参照)は、図16に示されるように、後述する2次元コード127等のデータ識別情報が印字されているものとする。この2次元コードである2次元コードは、IDデコード手段126によりデコードされ、デコードが成功し、紙IDが取得できたなら、デバイスタイプ、紙ID、画像等の情報は、XML形式のデータとして文書ID取得手段131へ送信される。
次に、紙文書上の画像の撮影から、撮影により得られた画像へ2次元コードをデコードした結果を対応づけるまでの撮影装置99の処理を、図17のフローチャートを用いて説明する。
ステップS1401で、撮影装置99は、ズームレンズを調整し、被写体と撮像面がほぼ正対した位置関係において、被写体となる紙文書の全体が写るように全体画像撮影を行う。ステップS1402で、撮影装置99は、撮影した画像より2次元コード等のコードの存在するコード領域を検出する。次に、撮影装置99は、ステップS1403で、コード領域の領域座標と重心位置を算出する。この場合、予めコードの存在する領域を規定しておくことで、ステップS1403の高速化を図るようにしても良い。あるいは、領域はコード領域の外接矩形領域とし、外接矩形領域の重心位置を算出するようにしても良い。
ステップS1403で得られた領域座標とその重心位置の座標から、撮影装置99はステップS1404で、データを識別する情報をより大きい撮像画像として取得する為のズーム倍率と駆動部202の駆動量を線形演算により算出する。この駆動量は、光軸をロール軸としたパン(左右)、チルト(上下)の2方向から算出する。
算出された結果に基づき、撮影装置99は、ステップS1405で、駆動部202を駆動する。次のステップS1406で、撮影装置99は、駆動させた位置で撮影する。ステップS1407で、撮影装置99は、読み込んだコードをIDエンコード手段125によりエンコードする。そして、ステップS1408で、撮影装置99は、全体撮影画像に対してデコード結果を対応付ける。
これによりコード領域のみを高解像で取得し、高速に取り込んだ全体画像に対して、信頼性の高い紙IDを付与できるようになる。
次に、実際の撮影について説明する。上述したように、撮影装置99は、撮像部を駆動することで、紙文書を分割撮影し、分割撮影した各画像を1つの画像に合成するようになっている。
そこでまず分割撮影について説明する。既に説明した図13に示されるように、撮像部201が、点線で示された左右方向へ駆動をすることで、領域A、B、Cを撮影することができる。
さらに、撮像部201が、図18に示されるように、上下方向へ駆動することでA〜Iまでの全ての領域を撮影領域にすることができる。なお、図18は、撮像部201が紙文書208を撮影する様子を示すものであり、撮像部201は、紙文書208の2つの領域301、302を撮影している。
上述したように、被写体を高解像に撮影する場合は、撮像系の画角をできるだけ狭くし、複数の位置で撮影する。この場合、被写体のすべての部分が分割画像のいずれかに撮影されるように撮影を行う。
このようにして撮影された分割画像と、分割画像を接合することで合成した合成画像を図19と図20を用いて説明する。分割画像は、図19に示されるように、アルファベットが描かれた画像が6分割されたものである。この図19に示されるように、図の下方向の文字ほど、小さくなっていることが分かる。これら6つの分割画像を、接合した画像が図20に示される画像である。
このような方法で画像を接合する場合に限らず、分割せずに1枚で被写体を撮影する場合でも、図20のような台形上の歪(あおり歪)が生じる。従って、図21に示されるような、正対した画像にする必要がある。図21に示される画像は、図20の画像に、あおり歪の補正、ノイズ除去を行った画像である。
このようなあおり歪の補正は、被写体に正対した位置での正対画像を基準とし、正対画像と他の画像との間の射影変換行列を予め求め、それを用いて画像を再配置することにより得られる。
この撮影の説明を簡単にするため、図18に示した2つの領域301、302を分割撮影する場合について説明する。まず、領域301上の点と領域302上の点をそれぞれ、数1が示す2点とする。
このとき、被写体が平面の場合、両者には、次に示す数2、数3の関係が成り立つ。
数2、数3の各hは、以下の行列で定まるものである。
数4に示される行列は、射影変換行列であり、画像が撮影される2つの位置が同じ場合、この関係は一定である。従って、予め既知の組(u1,v1)、(u2,v2)からh1〜h8を算出すれば良い。
数1、数2、数3を用いることにより、領域302上の各点が領域301上の位置で撮影された場合の位置を算出することができるため、領域301上を基準とし、領域301上に領域302上の画素をマッピングすることができる。分割画像が3枚以上の場合も、例えば1つの領域と他の領域との射影変換行列を予め算出しておく。そうすることで、正対された分割画像が得られ、順次接合していくことで、図21に示した正対された画像を得ることができる。
以上が撮影装置99の構成や処理内容である。次に、この撮影装置99の6つの変形例について説明する。なお、以下の説明において、図13で説明した符号など、既に説明した符号についての説明は省略する。
第1の変形例である図22に示される撮影装置99は、図13に示した撮影装置99に、2次元コード等のコード127(紙ID)を読み取る為の撮像部310を紙文書を取り込む為の撮像装置201とは別に設けたものである。
この図22に示した撮影装置99は、コードの存在する小領域を高解像で取り込む目的で設けた為、撮像部201よりも小型で安価な撮影装置で構成すれば良い。また、この場合の撮影装置99は、撮像部201により取り込んだ画像に対応させて、撮像部310により取り込んだ画像上のコード127のデコード結果を記録するものとする。
次の図23に示される第2の変形例は、撮像部310の代わりに紙ID情報読み取り部312を設けたものである。この紙ID情報読み取り部312は、汎用のバーコードリーダ等で使用されている撮像ユニットを用いることを想定している。
次に、図24を用いて、第3の変形例について説明する。図24に示される撮影装置99は、入力する紙文書208の下敷き313上にコード127を設けた装置構成であり、支柱203は、支持台315に支持される。これによりコードの付与されていない紙に対してコードを付与できるようにできるとともに、プリンタなどと組み合わせ、再度、紙に出力することで、コードを付与することも可能である。
次の図25に示される第4の変形例は、支持台315に収納可能な平面部材上にコード127を設けた装置構成となっている。この平面部材は、2次元コード表示手段に対応する。
また、図26に示される第5の変形例は、撮像部201上に投影部316を設けることで、点線で示された投影領域317にコード316を投影できる装置構成とする。そして、ユーザが自由に投影するコードを電子データとして編集可能なものとする。この投影部316は、光学投影手段に対応する。
この投影部316は、図26において撮像部201上に設けられているが、別な部位に固定するものであっても構わない。また、投影部316は光源、集光レンズ、ミラー、液晶パネル、投射レンズから構成される代表的な液晶プロジェクタと同様の構成のものやDMD(Digital Mirror Device)を用いたDLP(Digital Light Processing)による構成等いずれの構成のものでも良いが、小型なものとしたほうがよい。
図27に示される第6の変形例は、点線で示された撮像範囲に液晶ディスプレイ等の表示デバイスを有する携帯情報端末318を設け、この表示デバイス上にコードを表示させることで、取り込む紙文書208に対応させたコードを付与できるようにする。この携帯情報端末318は、表示手段に対応する。
以上が6つの変形例であるが、図24〜図27において駆動部を図示していないのは、駆動部を有する構成に限定されないことを示している。
・情報取得手段(D−PAD)
次に、情報取得手段の他の実施例であるD-PAD104の機能ブロック図を図28に示す。D-PAD104は、紙への筆記情報を取得するデジタイザなどの座標入力装置74と、紙に印刷されている情報と電子的な情報とを対応付け識別するための紙ID情報読取装置75と、取得した情報を保持する記憶装置71と、取得・保持された情報をPCに送信する通信装置72と、これらの装置を制御する制御装置73とを有する。
座標入力装置74は、手書き座標を連続的に取得するデジタイザなどを用いることができる。デジタイザを用いた場合、その方式には公知のものとして電磁誘導方式、超音波距離計の原理を用いた三角測量方式などのものがあるが、いずれもセンサと専用入力ペンによって紙に行われた筆記動作を検出し、筆記情報、この場合は筆記された軌跡の座標である筆記座標を計測する装置である。このようにして計測された筆記座標の集合が筆記情報となる。
専用入力ペンのペン先には実際に紙に筆記することの可能なペン先が備わり、電子的に筆記座標を検出すると同時に紙に筆記軌跡を記入できるように構成することが望ましい。
紙ID情報読取装置75は例えばプリンタによって紙に印刷された2次元コードを読み取り、解読する装置であり、公知のものとして2次元コードリーダ、1次元バーコードリーダなどを用いる。ここで、紙ID情報読取装置に2次元コードリーダを用い、たとえばコード化に公知のQRコード(登録商標)を用いた場合には、英数字で最大4296文字の情報を識別することが可能であり、一般に利用者が印刷した書類を識別するためには十分な容量を得ることができる。
記憶装置71はハードディスクや、不揮発性メモリであり、コンパクトフラッシュ(登録商標)ディスクなどの取り外し可能なメモリなどを用いることもでき、上記紙ID情報読取装置75によって取得された筆記座標、印刷条件情報、電子文書情報を保存する。このとき、PCとのデータのやり取りは、メモリを直接に接続することで可能となり、通信装置72を省くこともできる。
通信装置72は、蓄えられた情報を送信する装置であり、イーサネット(登録商標)、無線LANなどのネットワーク技術や、USBやブルートゥース、シリアル接続技術などが用いられる。
制御装置73は、例えばマイクロコンピュータによって構成され、上記の装置を後述する動作にしたがって動作制御する。
これらの装置は一体に構成することも可能であるし、個々の装置に分かれて構成することも可能である。また、一体型に構成した場合、バッテリ駆動とすることで、さまざまな場所に移動して利用することが可能になる。印刷した紙への筆記作業は、オフィスのデスクの上だけとは限らないため、筆記情報入力装置を一体かつ可搬型に構成することが望ましい。
一体型に成形したD-PAD104の外観例を図29に示す。図示した例では、紙ID情報読取装置75(図28参照)を2次元コードリーダ62として実現しており、また設置された紙文書には印刷された文書本文65と、紙ID127が、あらかじめ印刷されている。座標取得装置61は超音波式のデジタイザによって実現しており、専用入力ペン66によって実際に筆記情報64を加えると共に、座標データを取得することが可能になっている。
次に、可搬型のデジタイザ型の筆記情報入力装置を用いた場合の処理について図30を用いて説明する。まず、筆記情報入力装置内の座標入力装置は、ステップS601で、専用入力ペンによって筆記が開始されると同時にペン先の紙文書への接触(ペンダウン)を検出し、ステップS602で筆記座標を検出する。
次のステップS603で、筆記情報入力装置は、2次元コードリーダにより、専用入力ペンが筆記座標を読み取っている間、あるいは専用入力ペンが筆記面に接したときなど適宜、2次元コードを読み取る。
次のステップS604で、筆記情報入力装置は、読み取った2次元コードをデコードし、紙IDなどを読み取る。
こうして読み取られた筆記座標、紙IDからなるデータは、一旦、ステップS605で、記憶装置に保存され、次のステップS606で、適宜、通信装置によってPCへ送信される。
ここで、保存され、送信されるデータは、例えば図31に示すような形式で構成される。図31には、「装置識別番号」と、「紙ID番号」と、「筆記X座標」と、「筆記Y座標」と、「ペンU/D」の項目を有する表が示されている。
「装置識別番号」は、筆記情報入力装置を識別するための番号である。「紙ID番号」は、筆記情報入力装置が読み取った紙の紙IDである。「筆記X座標」と「筆記Y座標」は、筆記座標情報のX座標とY座標である。「ペンU/D」は、専用入力ペンのアップ/ダウンを示すものである。このような形式のデータにより、筆記座標、紙IDを送信している。
・情報取得手段(スキャナ105)
次に、情報取得手段124の他の実施例であるスキャナ105について説明する。
この実施例は、記入が終わった紙文書から、スキャナ105等を用いて紙文書のスキャンイメージを取得し、IDエンコード手段125へデータを渡す実施例である。
最初に、図32を用いてスキャナ105について説明する。スキャナ105は、スキャナの各装置を制御するための制御装置82と、プログラムや画像を記憶するための記憶装置83と、外部接続されたスキャナ80やMFP86と通信してそれらを制御するためのスキャナ制御装置81と、画像を処理するための画像処理装置84と、外部ネットワークとの通信を制御するネットワーク制御装置85とを有する。
このスキャナ105ではなくネットワーク87を介し通信可能なMFP86を利用して画像を入力することができる。
このスキャナ105の処理を、図33のフローチャートを用いて説明する。図33に示されるフローチャートは、スキャナ105を使って座標を取得し、文書ID取得手段131へデータを渡す処理を示している。
ステップS701は、画像の読み取りである。これは、ユーザが記入を終えた文書をスキャナ105またはMFP86を用いて画像の読み取りを行う処理である。この場合の読み取り条件は、例えば600dpi、白黒2値画像である。画像の2値化は通常のスキャナが有している2値化機能を使用する。
読み取られた紙文書の画像は、ステップS702で、記憶装置83の所定のフォルダに画像ファイルとして蓄えられ、次処理へのキューに入る。この読み取った画像を所定のフォルダに画像ファイルとして蓄えるように制御するのはスキャナ制御装置81の役割であり、スキャナ105やMFP86のボタンが押され、画像がそれらから転送されることを検知し、転送された画像を記憶装置83の所定のフォルダに格納する。
画像処理装置84は、スキャナ105やMFP86から入力される画像が保存される記憶装置83のフォルダを監視し、キューの先頭にある画像から順番に、ステップS703で画像正立処理を行い、ステップS704で領域抽出処理を行い、ステップS705でデコード処理を行う。ステップS706で、デコードができたかどうか判断し、デコードできた場合は、紙IDの取得を行い、処理を終了する。また、デコードできなかった場合も処理を終了する。
この図33に示したフローチャートは、情報取得ステップの処理を示すものである。また、このようにして取得された紙IDは、後述する管理テーブルにより、文書ID及び処理IDに変換することができる。この処理は、文書ID取得ステップでの処理に対応する。
なお、ステップS702の処理で、キュー方式を使用するのは、ADF(Auto Document Feeder)等を使用して多数の画像が入力されたとき、同時に複数の画像が処理されると画像処理装置84の負荷が非常に高くなり動作が不安定になりかねないことと、処理の速度が遅くなることが理由として挙げられる。
また、ステップS703の画像正立処理は、次のステップ704の領域抽出処理が正立された画像から領域を抽出するようになっているため、スキャナから読み取られた方向の分らない画像を正立する処理である。
この画像正立処理の詳細について図34のフローチャートを用いて説明する。まず、ステップS801では、読み取った画像についてOCR処理が行われ、その結果が保存される。次のステップS802、ステップS803、ステップS801のループでは、画像を90度ずつ回転させてOCR処理が行われ、それらの結果も保存される。
90度ずつ回転させた4方向でOCR処理がなされると、ステップS804で、OCR処理結果の尺度のひとつである確信度を用いて画像の方向が判定される。この確信度とは認識した文字の確からしさであり、この画像方向判定に使用する確信度は、各文字の確信度の平均である。この平均の確信度がもっとも大きい値を持つ方向での画像が正立であると判定する。
このようにして画像正立処理を終えると、図33のステップS704の処理である紙IDを有する2次元コードの検出・デコードするための領域抽出処理が行われる。領域抽出処理は、画像中の白画素で囲まれた黒画素を含む領域を検出する。この領域抽出の詳細を図35のフローチャートを用いて説明する。
まず、ステップS901の連結黒画素のラベル付け処理では、画像を左上の原点から走査する。そして、左上、上、左の画素が白画素であり、現在着目している画素が黒画素である場合に、その黒画素に新たなラベルをつける。それ以外の画素の場合は左上、上、左のいずれかにある黒画素のラベルを画素につける。
具体的に、図36を用いて説明する。まず、図36に示される数字が書かれた四角形は、全て黒画素であるとする。これを踏まえ、上記処理を図36の画素90、91、92、93を用いて説明する。このとき走査される順番は、画素90、91、92、93の順である。
まず、画素90について着目すると、画素90の左上、上、左の画素が白画素であり、現在着目している画素90が黒画素であるため、ラベル「1」が画素90につけられる。
次に走査される画素91について着目すると、左上、上の画素は白画素であるが、左が白画素ではないため、左上、上、左のいずれかにある黒画素のラベルが画素91につけられる。従って、画素91には画素90と同じラベル「1」がつけられる。
次に、画素92について着目すると、画素92の左上、上、左の画素が白画素であり、現在着目している画素92が黒画素であるため、新たなラベル「2」が画素92につけられる。
次に走査される画素93について着目すると、左上、上の画素は白画素であるが、左が白画素ではないため、左上、上、左のいずれかにある黒画素のラベルが、現在着目している画素93につけられる。従って、画素93には画素92と同じラベル「2」がつけられる。
このようにして、以下の画素についても、同様の処理が行われる。
次のステップS902で行なわれる連結黒画素の外接矩形座標検出処理では、同一のラベルを有する黒画素群を囲む外接矩形座標を検出する。そのことを示す図が、図37である。図37に示されるように、ラベル「1」の黒画素群の外接矩形94と、ラベル「2」の黒画素群の外接矩形95が検出される。
次のステップS903は、重なり、接触のある外接矩形を統合する処理で、各外接矩形に重なりあるいは接触がある外接矩形同士を統合し、新たな外接矩形が形成される処理である。それが図38の外接矩形96である。
そして、ステップS904で、2次元コードの大きさとしてありえない大きさの外接矩形を排除するため、所定の範囲の大きさの外接矩形が抽出される。以上により、白に囲まれた黒画素を含む領域が検出されたので、検出された矩形領域全てに対して画像処理装置84でデコードを行うことができる。
予め、2次元コードの位置がわかっているならば所定の位置にある矩形領域のみにデコードを行えばよいが、紙文書のレイアウトによってどこに2次元コードが存在するかわからない場合は、検出した矩形領域すべてに対してデコードを行い、デコードできたものを紙IDとして検出するようにする。なお、デコードの詳細は、次のIDデコード手段126の説明で行う。
デコードが成功し、紙IDの取得ができたなら、デバイスタイプ、紙ID、筆記情報が文書ID取得手段131へ送信される。この場合、上記情報は、XML(eXtensible Markup Language)形式のデータとして文書ID取得手段131へ送信される。
また、ここで使用したスキャナはフラットベッドスキャナ以外にも、デジタルカメラ、書画カメラ等の画像撮像装置も使用できる。
・IDデコード手段126
次に、紙IDをデコードするIDデコード手段126について説明する。まず、IDデコード手段126の説明として、2次元コードを読み取るバーコード読取装置について説明する。バーコード読取装置は、図39に示されるように、頂点候補検出部11と、コード枠検出部12と、射影変換係数算出部13と、データサンプリング部14と、誤り訂正部15と、フォーマット変換部16とを有する。また、バーコード読取装置は、上述した図29の2次元コードリーダ62に示されるように、斜め上から2次元コードを読み取るようになっている。
頂点候補検出部11は、2次元コードの頂点候補を検出する。コード枠検出部12は、頂点候補に基づき、後述するコード枠を検出する。コード枠が検出されることで、頂点候補は真の頂点と確定される。
射影変換係数算出部13は、コード枠検出部12で検出されたコード枠の各頂点の座標と、2次元コードを作成した時のコード枠の各頂点の規定座標とから、作成した2次元コードの各セルの規定中心座標と読み取った2次元コードの各セルの中心とをマッピングする係数である射影変換係数を求める。
データサンプリング部14は、射影変換係数算出部13で求めた射影変換係数を用いて、2次元コードのデータのサンプリングを行う。誤り訂正部15は、データサンプリング部14が読み取ったデータが誤りかどうか判定し、誤りがないか、あるいは誤り訂正が可能ならば、誤り訂正符号以外の整数型56ビットのデータをフォーマット変換部16へ出力する。フォーマット変換部16ではデータを数字文字列に変換して出力する。
次に、頂点候補検出部11の処理の詳細について説明する。図40は、入力画像の頂点候補を検出する処理を示す図である。図40に示されるように、頂点の検出は、矢印に示される方向に入力画像を走査することで検出するようになっている。具体的には、入力画像の四隅から斜め走査を行い、黒画素を検出し、検出された黒画素をA、B、C、Dとする処理が行われる。
次に、図41を用いてA、B、C、Dが頂点候補かどうかを検出する処理について説明する。図41は、2次元コードを拡大した図である。この2次元コードに対し、頂点候補検出部11は、A、B、C、Dから矢印の方向、例えばAなら右下45度、Bなら左下45度というように、セルの一辺の画素数の1/√2の画素数だけ画素を追跡してそれらがすべて黒画素かどうかを判定する。それらがすべて黒画素であれば、頂点候補検出部11は、A、B、C、Dを頂点候補として検出し、コード枠検出部12に処理を移す。
次に、コード枠検出部12について説明する。コード枠検出部12では、図42のように、頂点候補A、B、C、Dから1/√2の画素数だけ追跡した終端どうしを結ぶ黒枠判定ライン76、77、78、79を通過する画素の黒画素の割合が全ての直線において直線毎に8割以上存在すればそれをコード枠であると判定し、頂点候補A、B、C、Dを2次元コードの頂点A、B、C、Dとして確定する。このとき、同時に頂点A、B、C、Dの座標も検出される。
次に、射影変換係数算出部13について説明する。射影変換係数算出部13では、コード枠検出部12で検出されたコード枠の各頂点の座標と、2次元コードを作成した時のコード枠の各頂点の規定座標とから、作成した2次元コードの各セルの規定中心座標と読み取った2次元コードの各セルの中心とをマッピングする係数である射影変換係数を求める。この射影変換係数の求め方は後に説明する。
次に、データサンプリング部14について説明する。データサンプリング部14には、2次元コード、2次元コードを作成した時点の各セルの規定中心座標、射影変換係数が入力される。データサンプリング部14は、射影変換係数算出部13で求めた射影変換係数を用いて、作成した2次元コードの各セルの規定中心座標を射影変換することにより、読み取った2次元コードの各セルの中心座標を求める。
データサンプリング部14は、求めた中心座標を画像のサンプリング中心座標とし、その座標を中心とする3x3画素の黒画素数が白画素数を上回れば ‘1’、そうでなければ‘0’としてデータを読み出す。読み出された72ビットのデータは誤り訂正部15に入力、配列され、誤り訂正の判定が行われる。誤りがないか、あるいは誤り訂正が可能ならば、誤り訂正部15は、誤り訂正符号以外の整数型56ビットのデータをフォーマット変換部16へ出力する。フォーマット変換部16ではデータを数字文字列に変換して出力することで、数字文字列が復元される。
上述した2次元コードの読取もソフトウェアでおこなってもよく、図43にその処理のフローチャートを示す。ステップS1001で斜め上から2次元コードを撮像した2次元コードが入力される。ステップS1002では、2次元コードの頂点候補が検出される。
このステップS1002では、図40に示すように画像の四隅から斜め走査が行われ、黒画素が検出される。検出された黒画素をA、B、C、Dとする。さらにステップS1002では、図41に示されるように、A、B、C、Dから矢印の方向、例えばAなら右下45度、Bなら左下45度というように、セルの一辺の画素数の1/√2の画素数だけ画素が追跡され、それらすべて黒画素かどうかが判定される。それらがすべて黒画素であればA、B、C、Dが頂点候補として検出され、ステップS1003に処理が移る。
ステップS1003では、図42に示されるように、頂点候補A、B、C、Dから追跡した終端どうしを結ぶ黒枠判定ライン52、53、54、55を通過する画素の黒画素の割合が、全ての直線において直線毎に8割以上存在すればそれをコード枠であると判定される。そして、頂点候補A、B、C、Dが2次元コードの頂点A、B、C、Dとして確定される。このとき、同時に頂点A、B、C、Dの座標も検出される。
このステップS1003で、コード枠が検出できなければ、ステップS1004の分岐処理でエンドに分岐し、読み取りは終了する。コード枠が検出された場合は、次のステップS1005へ処理は進む。
ステップS1005では、ステップS1003で検出されたコード枠の各頂点の座標と、2次元コードを作成した時のコード枠の各頂点の規定座標とから、作成した2次元コードの各セルの規定中心座標と読み取った2次元コードの各セルの中心とをマッピングする係数である射影変換係数が算出される。
次のステップS1006では、データサンプリングが行われる。具体的には、2次元コード、射影変換係数、作成した2次元コードの各セルの規定中心座標が入力され、ステップS1005で求まった射影変換係数を用いて、作成した2次元コードの各セルの規定中心座標を射影変換することにより、読み取った2次元コードの各セルの中心座標を求める。
そして、求めた中心座標を画像のサンプリング中心座標とし、その座標を中心とする3x3画素の黒画素数が白画素数を上回れば‘1’、そうでなければ ‘0’としてデータが読み出される。読み出された72ビットのデータは、ステップS1007で、誤り訂正の判定が行われる。誤りがないか、あるいは誤り訂正が可能ならば、誤り訂正符号以外の整数型56ビットのデータは、ステップS1008で、データを数字文字列にフォーマット変換され、ステップS1009で、数字文字列が出力される。
次に、射影変換係数の求め方について説明する。射影変換とは3次元空間内の図形・物体を2次元平面・スクリーンへと表示したときの変換である。3次元空間内の物体の座標を2次元平面上の座標へと変換するものであり、3次元画像処理の手法として広く知られたものである。
このような射影変換を正確に行うためには、撮像系の位置、光学的特性などが明らかになる必要がある。しかし、さまざまな装置へ対応することを考えると、さまざまな装置すべての撮像系の位置などを特定し、正確に定めることは困難である。
その一方で、斜めから撮像する光学系で読み取りやすくなるという効果を発揮するためには、必ずしも正確な射影変換を施す必要はない。例えば、従来の矩形、一様密度のセルで表現される2次元コードではなく、台形や多様な密度のコードであれば、斜めからの光学系で読取が容易になるという効果を発揮することができる。
こうした台形コードや多様なセルサイズを実現する簡単な例を図44で説明する。図44に示すような光学系において、読み取った画像は、射影変換によって、もともと長方形であった図形が台形に変形する。
このとき、台形の長辺と短辺との比率(X1/X3)は撮像素子からコードのそれぞれの領域への距離の比率の逆数(L3/L1)と等しくなる。本実施例においては、通常は矩形で各セルの大きさが均一である2次元コードの代わりに、上記の射影変換をキャンセルできるようなセルの形状や大きさを持つ2次元コードを作成する。
セルの大きさの決定は、2次元コードの1行ごとに一定の倍率で行う.この変形の倍率は2次元コードの1行の間においても、撮像面からの距離が異なっているが、たとえば1行の中間の位置における倍率で、1行の上部から下部まで等しい倍率で変換する。この操作によって、図45あるいは図46に示されるような階段状のセル境界を持つ形状の2次元コードが得られる。あるいは、厳密に射影変換演算を行って図47のような2次元コードを作成してもよい。なお、図45、図46、図47については、紙IDの説明で詳細な説明をする。
次に、上記射影変換について、図48を用いて説明する。図48には、読み取られた2次元コードを模式的に示した2次元コード67と、電子的に生成された2次元コードを模式的に示した2次元コード68とが示されている。また、2次元コード67のAs、Bs、Cs、Dsと、2次元コード68のAr、Br、Cr、Drは各頂点であり、括弧内のxs1やyr2は、座標を表している。また、PskとPrkは、セルの中心座標を表す。
2次元コード67のAs、Bs、Cs、Dsと、2次元コード68のAr、Br、Cr、Drの頂点は、図49に示される数式を満たす。これらの数式(1)、(2)は、2次元コード68など2次元コードの座標を定めるための座標から、2次元コード67など2次元コードの座標を定める座標への変換式を表しており、Ar、Br、Cr、DrからAs、Bs、Cs、Dsへの座標変換を規定する。
式(1)は、頂点のX座標に関する数式であり、式(2)は、頂点のY座標に関する数式であり、式(1)(2)の添え字iは、1から4まで動く。これらの数式で、b1〜b8は変換パラメータで、未知数である。これら変換パラメータは、Ar〜Dr、As〜Dsの各座標値を式に代入することで得られる八元一次連立方程式を解くことにより求められる。b1〜b8が求められると、電子的に生成された2次元コードの各セルの中心座標Prkを変換して2次元コードのサンプリング中心座標Pskを求めることができる。
・IDエンコード手段125
次に、紙IDをエンコードするIDエンコード手段125について説明する。紙IDに対応する2次元コードを作成するとともにIDエンコード手段125に対応する2次元コード作成装置について図50を用いて説明する。
2次元コード作成装置は、フォーマット変換部20と、誤り訂正部21と、2次元コード作成部23とを有する。
フォーマット変換部20は、入力された数字文字列をコンピュータ内で通常扱われる整数型56ビットデータに変換する。
誤り訂正部21は、整数型56ビットデータに変換されたデータに、誤り訂正符号16ビットを付加する。
この誤り訂正符号として、リードソロモン符号が用いられる。このリードソロモン符号は、バイト単位の誤りを訂正できる強力な誤り訂正方式であり、誤り訂正符号長の半分以下の誤りを訂正することができる。なお、リードソロモン誤り訂正符号の詳細については、昭晃堂「符号理論(コンピュータ基礎講座18)」宮川、岩垂、今井共著など、多数の書籍に記されている。
本実施例の場合には、誤り訂正符号長が2バイトなので1バイトの誤り訂正が可能である。
2次元コード作成部23は、データおよび誤り訂正符号データを図51に示されるように2次元コードの各セルに割り当てて、2次元コードを作成する。図51の各セルに示される番号は、配置位置を割り振られた番号である。
データおよび誤り訂正符号データのセルへの割り当ては、整数型56ビットデータが1〜56までのセルに、誤り訂正符号のデータ16ビットが57〜72のセルとなっている。なお、2次元コード作成時には、規定された頂点座標、セル中心座標が用いられる。この規定座標は2次元コード読み取り時にも使用される。
2次元コードの作成はソフトウェアで行ってもよく、図52にその処理を示すフローチャートを示す。
まず、ステップS1101で、数字文字列が入力される。ステップS1102では、数字文字列がコンピュータ内で通常扱われる整数型56ビットデータにフォーマット変換される。ステップS1103で、誤り訂正符号16ビットが作成され、整数型データに変換されたデータに付加される。この誤り訂正符号は、先ほどと同様にリードソロモン符号が用いられる。このようにして作成された整数型データおよび誤り訂正符号データは、ステップS1104で、図51や図53に示すように2次元コードの各セルに割り当てられ、2次元コードが作成される。なお、図51と図53については、紙IDの説明で詳細な説明をする。
データのセルへの割り当ては、先ほどと同様に整数型56ビットデータが1〜56までのセルに、誤り訂正符号のデータ16ビットが57〜72のセルとなっている。また、2次元コード作成時には、規定された頂点座標、セル中心座標が用いられる.この規定座標は2次元コード読み取り時にも使用される。
次に、紙IDについて説明する。まず、図45で示した2次元コードについて説明する。2次元コードは、図45に示されるように、周囲が黒枠で囲まれ、内部に白または黒で1ビットの情報をあらわす最小単位であり情報領域であるセルが、図51に示したように72個配置されている。従って、この2次元コードは、72ビットの情報を表現することができる。
この2次元コードを斜め上から読み取ると、バーコード読取装置が得る2次元コードはセルが大きい下側の部分が縮小されて、台形の形状となる。2次元コードはこのようにしてゆがむが、バーコード読取装置で撮影された2次元コード内の各セルは撮像素子の複数画素を占め、その面積はセルの位置に関係なく概略等しくなる。
このように上側のセルの大きさは小さく、下側のセルの大きさが大きい2次元コードにより、斜め上から2次元コードを読み取るように設けられたバーコード読取装置の撮像素子は、セルの白黒情報の安定した撮影が可能になる。
また、2次元コードの他の例として、図46に示した台形コード(平面図)がある。この台形コードは、バーコード読取装置が斜め上から読み取る場合、撮像素子と各セルの距離に応じてセルの大きさが大きくなるようにした2次元コードである。
この台形コードの場合、セルは各行に12個配置され、6行あるので、セルの総数は72個ある。このセルの総数は図45の2次元コードのセルの総数と等しいので、この台形コードで表現できるビット数は図45の2次元コードで表現できるビット数と等しい。ちなみに、72ビットのデータは、データの配置を表した図53に示したように配置される。
また、2次元コードの他の例として、図47に示したような矩形の2次元コード57を射影変換し、台形の2次元コード58に変形した2次元コードを使用することもできる.この場合に、斜め上から撮影した場合に得られる2次元コードの画像は、2次元コード57に近いものが得られる。なお、2次元コード58が表現できる情報量は、72ビットである。
上述した3つの2次元コードにおいて共通していることの1つは、それらが横長となっていることである。その理由は、縦長にすると、セルの縦方向の長さが大きくなり、2次元コード全体のサイズが非常に大きくなり、小さい大きさで大容量のデータを表現できるという2次元コードのメリットがなくなるためである。
また、バーコード読取装置からみた場合、2次元コードとの距離は縦方向の変化に比べ横方向の変化の方が大きくなるため、バーコード読取装置から遠いところにあるセルは縦横比が大きい長方形にするのが適当である。したがって、図46、図47の例ではセルの横の長さの変化より縦の長さの変化のほうを大きくすることにより、バーコード読取装置で撮影した2次元コードは正方形に近い形状となる。
・処理ID管理手段128
次に、処理IDと外部処理プログラムを関連付け、処理IDを管理する処理ID管理手段128について説明する。図54は処理ID管理手段128において用いる管理テーブルの一例である。この管理テーブルは、プログラム処理ID関連付け情報に対応する。
処理IDと外部処理プログラムとを関連づけ、それを管理する処理ID管理手段128は、他の手段から外部処理プログラムに対して処理IDを要求してきたとき(登録要求)、少なくとも処理ID管理手段128が搭載されたPCで外部処理プログラムを一意に規定できる情報を受けとり、それに対してこの管理テーブル内で唯一であるIDを割り当て、外部処理プログラム情報を管理テーブルに保存する。
図54において、行155に示すようなまとまりである各行が処理IDに対応する外部処理プログラム情報の一単位であり、列151、152、153、154が登録要素となっている。
このうち、列151には割り当てた処理IDが格納される。また、列152には処理を行う外部処理プログラムを一意に指定する情報が格納されている。列152の一段目では外部処理プログラムのファイルパスが示されている。これにより、処理するプログラムが一意的に定まる。また、列152の二段目では、ジョブが格納されるフォルダ名を示すパス名が指定されている。ここでは、外部処理プログラムは一つのジョブフォルダにあるファイルを処理するものとし、その対応を一対一に規定することで、列151の処理IDと外部処理プログラムを関連づけている。
図54の第2行の例では、処理ID0001が*.docである電子文書を印刷した紙文書からの筆記情報を、c:\JobFolder\WordPrintのフォルダにジョブとして受け取る定型文書の処理を行うプログラムが登録されているということになる。また、列152の三段目では他のコンピュータ上のプログラムがWebサービスのURLとして指定されて、それが処理IDと関連付けられている。
その他、図54ではその外部処理プログラムがどのような電子文書の印刷からの筆記情報を扱えるかを示す属性情報である列153をもつ。また、列154は外部処理プログラムの説明が文字で記述されている。このような、列153、154のような外部処理プログラムに関する属性情報を列153、154以外にいくつ持っていてもかまわない。
また、処理IDが指定され、外部処理プログラムについての管理情報を要求されたとき(参照要求)、処理ID管理手段128では図54における列151のIDから該当するIDを検索し、少なくとも対応するID登録の要素である列152のフォルダパス名を一意に指定する情報を要求元に渡す。このとき、同時に列153以降の属性情報も渡してもかまわない。
また、図54の管理テーブルの内容は、処理ID管理手段128がプログラムである場合、そのプログラムが動作するメモリ内で保持していても良いし、あるタイミングでファイルシステムのファイルとして保存していても良い。また、データベースシステムに電子的情報として格納するものもある。または、処理IDとそれに関する属性情報を1レコードとして格納し、処理IDをキーとして外部処理プログラム情報を保存したり、取出したりすることにより処理IDと電子プログラムとを関連づけ、それを管理するものでもよい。
このように、管理している処理IDと外部処理プログラムとの関連づけ情報を、プログラム動作を行っているメモリ上のみではなく、ハードディスクのファイルなどの不揮発性ストレージ装置などへ保存することで、処理ID管理手段128装置が一度停止してもそれまで管理していた関連づけ情報を利用することが可能なシステムとなる。
また、処理ID管理手段128において、処理IDとそれに対応する処理プログラムが処理するディレクトリ名が保存され管理されているので、処理プログラム名や処理するプログラム自体が変更されてもそれまでの処理ID管理手段128における管理情報を変更せずに対応可能なシステムとなる。
また、処理ID管理手段128は他の装置とは独立した装置に存在し、他の装置とはネットワークで接続された形態であってもかまわない。このとき、特に処理ID管理手段128は、RPC(Remote Procedure Call)やWebサービスなどの形態で存在し、ネットワーク経由で他の装置からの登録要求や参照要求を受けつける。
この場合、管理している処理IDと外部処理プログラムとの関連づけ情報を不揮発性ストレージ装置として、ネットワークアクセス可能なデータベースへ保存することで、システムで統一的に関連づけ情報を登録および参照することができる処理ID管理手段128を複数存在させることが可能なシステムとなる。
さらにネットワーク上の別の装置における外部処理プログラムを指定することが可能であるので、登録する外部処理プログラムをそのプログラムの動作条件にあうホスト装置にそれぞれ実装することが可能なシステムとなる。
また、システム上で唯一の処理ID管理手段128の装置が他の装置とネットワークで接続されており、他の装置からネットワークを経由して処理IDと外部処理プログラムとの関連づけをおこない、管理することで、ネットワーク的に離散した他の手段の装置からシステムで統一的に関連づけ情報を登録および参照することが可能なシステムとなる。
・レイアウト管理手段129
次に、フォームのレイアウト情報及び処理方法を編集・管理するレイアウト管理手段129について説明する。レイアウト管理手段129は、紙文書を読み取り、紙文書で定義されたレイアウトや処理情報を元に、後述する情報テーブルに、認識された筆記情報を情報変換して保存するシステムである。
具体的に、図55、図56 を用いて説明する。図55は、図11で説明した脱会・入会申込書に筆記されたものを示している。図55に示されるように、脱会・入会申込書には、記入部として、記入部A170、記入部B171、記入部C172、記入部D173、記入部E174がある。また、脱会・入会申込書には、ラベルとして氏名ラベル175や、その他会員No、依頼項目、コメントが記されている。
また、図56には情報テーブルが示されている。情報テーブルは、登録情報と処理情報からなるテーブルである。登録情報は、IDと氏名と会員番号があり、処理情報は、氏名と会員番号と処理とコメントがある。
このように情報テーブルは、脱会・入会申込書に筆記された情報が記録されるものである。
脱会・入会申込書の記入部A170、記入部B171、記入部E174に筆記された筆記情報は、それぞれ、図56に示される情報テーブル内の氏名、会員番号、コメントに記録され、記入部C172、記入部D173に書き込まれた筆記情報は、チェックされた記入部に従い、「削除」あるいは「登録」が処理に記録される。
次に帳票作成プログラムについて説明するが、以下の説明においては、フォームのレイアウト情報及び処理方法を定義したファイルを帳票定義体と呼び、これを編集するソフトウェアを帳票作成プログラムと呼ぶことにする。
具体的な装置例を、再び図1に基づき説明する。帳票作成用PC101上では帳票作成プログラムが実行される。データサーバ106ではデータベースプログラムが動作する。このデータベースプログラムでは帳票作成プログラムで生成される帳票定義体の入出力管理や帳票処理で使われる情報テーブルの入出力を行っている。
帳票作成プログラムは、図55に示したような帳票のレイアウトや帳票の処理方法を図57のような帳票構造体として定義され、その中身を作成・編集するプログラムである。図57に示される帳票構造体は、記入部A170を、プロパティ群を意味単位ごとにセクション化し、帳票のレイアウト情報を要素ラベル<Layout>で、認識情報を要素ラベル<Input>で、保存先情報を要素ラベル<Registration>で管理し、それらの中身をXMLのプロパティとして記述したものである。
帳票作成プログラムは、図58に示されるようなGUIを持つ。このGUIは、レイアウトエリア155と、ツールボックス156からなる。ツールボックス156には、ラベルツール151、テキストボックス152、チェックボックス153、バーコード154を有する。
帳票作成者は、レイアウトエリア155に、ツールボックス156を用いてラベルやテキストボックスを配置することで帳票の作成を行うことができる。
なお、ラベルツール151は、レイアウトエリア155にラベルを作成するものである。テキストボックス152は、レイアウトエリア155にテキストボックスを作成するものである。チェックボックス153は、レイアウトエリア155にチェックボックスを作成するものである。バーコード154は、レイアウトエリア155にバーコードを作成するものである。
このようにツールボックス156から配置する内容に応じた要素をレイアウトエリア155に配置し、その属性(プロパティ)を画面上で設定する。ここでいう要素とは、ラベルツール151、テキストボックス152、チェックボックス153、バーコード154など配置する目的用途に応じたものである。
例えば、図59に示されるように、氏名を書く欄をテキストボックス152を利用して作成する。
各要素は図60に示すようなプロパティ群を持っており、これらプロパティは実際に帳票が表示している内容やその処理方法などを定義している。このプロパティ群について説明する。図60に示されるプロパティ群は、図55の氏名ラベル175と記入部A170に対応したプロパティ群の例である。プロパティ群は、レイアウト情報(コンテナ開始〜ボーダー)176・認識情報(入力〜認識結果)177・保存先情報(登録サーバ〜登録レコード)178に大別される。
レイアウト情報176は、要素の位置や大きさ、そこに表示する文字や枠線の状態を管理する。認識情報177は、帳票処理時の要素に手書きされた内容の情報変換作法を管理する。ここでは文字認識に用いる諸情報が管理されている。保存先情報178は、帳票処理時に用いる認識情報177で変換された結果の保存先を管理している。
なお、図60に示されるIDが0001の要素は「種類」が「Label」となっていることから、氏名ラベル要素である。この氏名ラベル要素は、「氏名」と言う文字が、「ボーダー」が「なし」となっていることからボーダーなしで表示され、「入力」が「不可」となっていることから、この氏名ラベルに筆記される場合の特別な処理はなく、また、「変換」が「なし」となっていることから入力された文字に対する変換はない。また、保存先情報178が空欄であることからデータの保存もされない。
IDが0002の記入部A170の「種類」が「Textbox」となっていることから、テキストボックスであり、表示する文字は、「文字」が空欄となっていることから無く、「ボーダー」が「囲み」となっていることから、囲み(枠線)を持って表示されている。そして手書きされた場合には、「入力」が「可能」となっていることから、何らかの処理が存在し、「認識知識」1〜3で表現される文字認識「日本語」、「手書き」、「姓名」の情報変換として行う。そして、得られた認識結果は、保存先情報178に記述されている場所に保存されることを意味している。
以上説明したように、帳票構造体にこのようなプロパティ群を持たせ、管理することによりフォームのレイアウトや処理方法を定義している。
・筆記情報処理手段130
次に、フォームのレイアウト情報及び処理方法から、筆記情報をデータに分解し保存する筆記情報処理手段130の説明をする。情報取得手段としてスキャナ105を用いた場合、図61に示される脱会・入会申込書を用いて説明すると、筆記情報処理手段130は、読み取った記入帳票イメージ180と筆記されていない未記入帳票イメージ181との差分をとり、筆記イメージ182を得て、氏名や会員番号など、それぞれの要素に分解し、保存する。
情報取得手段としてD-PAD104を用いた場合は、筆記された座標列すなわち筆記情報がそのまま得られるので、氏名や会員番号など、それぞれの要素に分解し、保存する。なお、非定型処理の場合は帳票の概念がないので各要素には分解しないで、全体を1つとして保存する。
情報取得手段としてスキャナ105を用いた場合は前述のように未記入の紙文書のイメージと記入済みの紙文書のイメージとの差分を取って、加筆分のみを取り出す。
情報取得手段としてD-PAD104を用いた場合は、筆記されたデータがそのまま得られる。
この処理を、図62のフローチャートを用いて説明する。なお、このフローチャートは、上述した差分をとる処理を行う手書き処理プログラムの処理を示している。
ステップS1201は、帳票認識である。ステップS1202は、未記入帳票のイメージの生成である。この処理は、ステップS1201で呼び出された帳票定義体から、未記入帳票イメージを生成する処理である。
ステップS1203は、未記入帳票イメージと記入帳票イメージの位置合わせである。この処理は、タイミングマークを用いて未記入帳票のイメージに記入帳票のイメージをあわせる処理である。なお、タイミングマークの位置・形状情報は帳票定義体から取得される。また、タイミングマークが存在しない場合はこのステップは行われない。
ステップS1204は、筆記イメージの生成である。この処理は、未記入帳票イメージと記入帳票イメージの差分をとる処理である。
次のステップS1205からステップS1208までの処理は、帳票定義体に示される要素単位に行われる。まず、ステップS1205は、各要素に対応する部分画像の生成である。この処理は、要素のプロパティ(レイアウト情報)に従って行なわれ、例えば、図61の「山田太郎」、「56-381」などの部分画像を生成する処理である。
ステップS1206は、部分画像の文字認識である。この処理は、要素のプロパティ(認識情報)に従って行なわれる。ステップS1207は、文字認識することにより部分画像から文字へ情報が変換された結果を保存する処理である。
次のステップS1208で、全ての要素に対して処理をしたかどうかの判断がされ、まだ処理されていない要素があれば、ステップS1205へ処理が進み、全ての要素に対して処理をした場合は、終了する。
・比較手段132及び筆記情報合成手段133
次に、複数存在する情報取得手段124から得られる情報を比較し、それぞれの情報の一致/不一致を算出する比較手段132について説明する。まず、D-PAD104から得られる筆記情報の例を図63に示す。すでに図31で述べた装置識別番号、紙識別番号(紙ID)、X,Y座標情報が得られる。
次に情報取得手段としてMFPから得られる筆記情報の例を図64に示す。MFPからは、筆記された紙文書である帳票をスキャンし、処理した結果、紙ID情報とスキャンイメージが得られる。スキャンイメージはいわゆるバイナリーデータである。なお、MFPでなく撮影装置99の撮影した画像データを用いてもよい。
比較手段132は、D-PAD104とMFPから得られた紙ID情報を比較し、一致した場合、それぞれから得られる情報を筆記情報合成手段133に送る。図63の筆記情報によれば、紙IDとして000525、000201、008064、000111が得られている。また、図64の紙IDには、スキャンイメージのデータAとして000525、データBとして000111、データCとして000201が得られている。したがって、比較手段132は、D−PAD104とMFPの筆記情報のうち、紙IDが一致する000525、000201、000111について筆記情報が一致したと判定する。
筆記情報合成手段133は、紙IDが000525の筆記情報をデータAとして、紙IDが000201の筆記情報をデータCとして、紙IDが000111の筆記情報をデータBとして合成する。図65は合成後の筆記情報の例を示す。図65に示すように、筆記情報の合成により、ストロークデータとスキャンイメージが合成された。
また、合成する際に、合成の可否を問い合わせることも可能である。図66は合成の可否を問い合わせ、合成するか否かの入力を要求する画面の一例を示す。また、図66では不図示であるが、それぞれの筆記情報の取得日やスキャンイメージ及びストロークデータを画像化したものを表示してもよい。
コンピュータに図66のような画面が表示されることでユーザが確認できるので、何らかの要因によって誤って合成されることがないよう適切に取り扱うことができる。
また、比較手段132は、複数の情報入力手段から得られた座標情報を比較して、双方の情報が一致しているか否かを判断することができる。筆記情報の比較の方法としては、筆記情報の筆記位置の比較、筆記形状の比較を行う。筆記形状の比較においては、広く知られているパターンマッチングの手法を用いることが可能である。ここで、情報入力装置がD-PAD104とスキャナ105である場合、それぞれの筆記情報は座標列とスキャンイメージであり、比較が困難である。そこで、この場合、D-PAD104から得られた座標列をイメージ化し、スキャナ105から得られたイメージ情報と比較する。
図67はD-PAD104の筆記情報を、図68はスキャナ105の筆記情報をそれぞれ示す。図67によれば、000525、000201、000111、の3つの紙に筆記された筆記情報が取得されている。したがって、紙ID毎に座標列をイメージ化すれば、スキャンイメージと比較可能となる。図67では座標列をイメージ化したものを生成筆記画像データとしている。また、わかりやすくするため、それぞれの生成画像データをデータAA、データCC,データBBとした。
図69は生成画像データとスキャンしたスキャンイメージの一例を示す。すなわち、紙IDの同じストローク毎に座標データから画像データを作成したものである。図69の左が生成画像データを図70の右がスキャンイメージを示す。例えば、生成画像データの最小外接矩形を設定し、スキャンイメージの相当する座標をテンプレートマッチングすることで、比較手段132は複数の情報入力手段から得られた双方の筆記情報が等しいか否かを判断できる。なお、筆記座標から画像を生成する処理は、単純に座標列を結ぶ直線で生成してもよいし、ベジエ曲線などの近似曲線を用いてもよい。
図70は合成後の筆記情報の一例を示す。図70の生成画像データAA等は、筆記座標情報から生成した画像データである。比較手段132による比較の結果に基づき、筆記情報合成手段133は生成画像AAとスキャンイメージのデータAを合成し、生成画像CCとスキャンイメージのデータCを合成し、生成画像BBとスキャンイメージのデータBを合成した。図67及び図68をみれば、生成画像AAとスキャンイメージのデータA、生成画像CCとスキャンイメージのデータC、生成画像BBとスキャンイメージのデータBは紙IDが一致していることから、比較手段132はD-PAD104から得られた座標列をイメージ化し、スキャナ105から得られたイメージ情報と比較してそれらが等しいが否か判定できることがわかる。
続いて、筆記情報合成手段133が、紙IDまたは筆記された画像に基づき、紙IDや筆記情報以外の付加情報を合成する場合について説明する。
上述したように、D-PAD104から得られる情報として、すでに述べた装置識別番号、紙識別番号(紙ID)、座標情報に加え、付加的情報が存在する。付加的情報の一例は例えば紙ID検出時刻である。D-PAD104を構成する際、図28に示されるように、その動作を制御するために制御装置73を備えるが、一般的に制御装置73にはマイコンを使うことが効率的であり、したがって制御装置73は何らかのクロックを備えている。このとき、紙IDを検出した時点毎にクロックが示す時刻を検出し、保存することは容易である。
図71はD-PAD104により取得された合成前の筆記情報を、図72はスキャナ105により取得された合成前の筆記情報をそれぞれ示す。D-PAD104及びスキャナ105により取得された筆記情報は紙IDを有するので、紙IDの同じ筆記情報を合成する。また、D-PAD104の筆記情報を画像データに変換してパターンマッチングにより同じ紙文書であると判定されたスキャンイメージにD-PAD104の筆記情報を合成してもよい。
図73は合成した筆記情報を示す。図73に示すように合成することで、座標情報及びスキャンイメージに加え紙IDを検出した紙ID検出時刻が筆記情報として得られた。
また、付加情報として計測された筆記時刻を合成してもよい。上記のように座標入力装置は一般的にクロックを備えており、筆記座標ごとに時刻を計測・保存することは容易に可能である。図74はD-PAD104により取得された合成前の筆記情報を、図75はスキャナ105により取得された合成前の筆記情報をそれぞれ示す。
図74によれば、D−PAD104のデジタイザが取得する筆記座標と共に筆記時刻が取得されている。紙IDまたは生成画像データに基づき同じ筆記情報を合成すると、筆記情報合成手段133が合成した図76に示す画像データが得られる。図76に示すように複数の情報取得手段の筆記情報を合成することで、紙ID、座標情報及びスキャンイメージに加え筆記座標毎の筆記時刻が得られた。
また、付加情報として紙IDの検出位置を合成してもよい。広く知られるようにGPS(GlobalPositioningSystem)は軽量小型の装置に搭載可能でありながら、地球上での位置を正確に計測することが可能である。したがって、GPSの受信装置がD−PAD104に装備されていれば、例えば紙IDを検出した時刻にGPSが示す位置を検出し、保存することは容易である。図77は、D−PAD104により取得されたGPSによる位置情報を有する筆記情報の一例を示す。図77に示すように、取得した紙ID情報が新しく検出されるとそれぞれの紙ID毎にGPSのより検出された位置情報が保存される。なお、位置情報はMFPが取得してもよい。
筆記情報合成手段133は、例えば紙IDの同じ筆記情報を合成する。図77の筆記情報を図75のようなMFPによる筆記情報に合成すると図78に示すように筆記情報が合成される。
このように筆記情報を合成することで、D−PAT104にしか得られない筆記情報とスキャナ(MFP)にしか得られない筆記情報とが相互に補完することができる。また、筆記情報に加え、紙IDの検出時刻、筆記時刻または位置情報を合成することができ、取得した筆記情報をより詳細に活用可能となる。
・文書ID取得手段131
次に、紙IDから文書ID及び処理方法に変換する文書ID取得手段131について説明する。紙IDから文書IDおよび処理IDに変換する文書ID取得手段131の処理手順の概要図を図79に示す。図79では、文書ID取得手段131を中心として、矩形図形は各手段(装置)を、吹き出し部はデータやリクエストの内容を、矢印はそのデータやリクエストの方向を、矢印上のステップはその順番を示している。
まず、ステップS1301で、文書ID取得手段131は、D−PADから紙IDと筆記情報を取得する。あるいは、文書ID取得手段131は、スキャナまたはMFPのスキャナ部で筆記した紙文書を読み込み、紙IDとスキャンイメージを取得する。
次のステップS1302で、文書ID取得手段131は、ID管理手段122に対してその紙IDを送り、その紙文書に関する管理情報を要求する。その結果、ステップS1303で、文書ID取得手段131は、紙文書に対応するID登録の対象である電子文書を一意に指定する情報や、処理IDなどを取得する。
次に、文書ID取得手段131は、ステップS1304で処理ID管理手段128に対してその処理IDを送り、その紙文書に関する処理プログラムの管理情報を要求する。その結果、ステップS1305で、文書ID取得手段131は、処理ID管理手段128より対応する識別子で登録されているフォルダパス名を一意に指定する情報などを取得する。
そして、文書ID取得手段131は、ステップS1306で、D−PAD104あるいはスキャナ105やMFPのような画像読みおり装置、ID管理手段122、処理ID管理手段128を介して取得したすべての情報をファイルに格納し、上記処理で得たフォルダパス名にファイルとして保存する。
これにより、文書ID取得手段131は、ステップS1307で、次段階の処理である、筆記情報をフォームのレイアウト表示および処理方法から、データに分解・保存する筆記情報処理手段130もしくは非定型処理プログラムへジョブを受け渡す。
以上のように本実施の形態の筆記情報処理システムによれば、複数の筆記情報を適切に合成する手段を提供することで、異なる情報入力装置からの筆記情報を用いて、互いの情報を補完することを可能とし、筆記情報処理システム全体としてより効果的な文書管理を可能とする。