(58)【調査した分野】(Int.Cl.,DB名)
前記受付手段によって受け付けられたストローク群から、前記第4の判定手段によって判定された追記元・追記先指定記号と追記文字列範囲指定記号と、該追記文字列範囲指定記号によって指定された領域内の文字列を除去する除去手段と、
前記除去手段による除去後のストローク群を文字認識する第2の認識手段と、
前記追記元・追記先指定記号に基づいて、追記先の位置を判定する第5の判定手段と、
前記第5の判定手段によって判定された追記先の位置に基づいて、前記第2の認識手段による認識結果である文字列に、前記第1の認識手段による認識結果である文字列を挿入する挿入手段
をさらに具備することを特徴とする請求項1に記載の情報処理装置。
前記第3の判定手段は、さらに、前記追記文字列範囲指定記号候補によって指定された領域内にストローク群が存在する場合に、該追記文字列範囲指定記号候補を追記文字列範囲指定記号であると判定する
ことを特徴とする請求項1又は2に記載の情報処理装置。
前記第3の判定手段は、さらに、前記追記文字列範囲指定記号候補によって指定された領域内の文字列の認識確度が予め定められた閾値よりも高い又は以上である場合に、該追記文字列範囲指定記号候補を追記文字列範囲指定記号であると判定する
ことを特徴とする請求項3に記載の情報処理装置。
前記第1の判定手段は、対象としているストロークが追記元・追記先指定記号候補であるか否かを判定する場合に、該ストローク内にループが存在しているか否かの判定を用いる
ことを特徴とする請求項1から4のいずれか一項に記載の情報処理装置。
前記第1の判定手段は、さらに、前記ループが前記ストローク内の予め定められた範囲に存在しているか否かの判定を用いる、又は、前記ループの大きさが予め定められた範囲内にあるか否かの判定を用いる
ことを特徴とする請求項5に記載の情報処理装置。
前記第2の判定手段は、対象としているストロークが追記文字列範囲指定記号候補であるか否かを判定する場合に、該ストローク形状が楕円形状であるか否かの判定を用いる
ことを特徴とする請求項1から6のいずれか一項に記載の情報処理装置。
【発明を実施するための形態】
【0024】
まず、本実施の形態を説明する前に、その前提となる技術について
図12〜14を用いて説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
電子ペンを用いて文字認識をする装置において、一旦記入された文字に追記を行いたい場合がある。例えば、文字列「ABC」と記載した後で、実は、「ABDEC」と修正を行いたいと考える場合がある。「B」と「C」の間に空間があれば、無理やり「DE」
を書き加える方法があるが、空間が無い場合に挿入を行う方法が必要となる。
ワードプロセッサ等のようにコンピュータ上の電子情報を用いる場合は、「B」と「C」の間を空けて(「B」と「C」の間にカーソルを移動させて)、「DE」を入れることができる。
しかしながら、電子ペンを用いる場合は、既にインクで紙上に「ABC」と記載されているため(その文字列の位置が既にストローク情報として取り込まれているため)、その位置を変更することは不可能である。
【0025】
以下の例では、電子ペンを用いたオンライン文字認識において、文字列「ABC」を文字列「ABDEC」に修正する例(文字列「ABC」の「B」と「C」の間に、文字列「DE」を挿入する例)を示している。
図12は、特許文献1に記載の技術において、文字列の修正例を示す説明図である。
図12の例に示されるように、横棒等の取消線1210を用いて、文字列を取り消す(削除する)。さらに、その取消線1210に接続される矢印1220を用いて、修正後の文字列を指定する。
図13は、特許文献2に記載の技術において、文字列の追加例を示す説明図である。
図13の例に示されるように、谷状の形状(
図13(a)の例に示す追記記号(谷状記号)1310)や矢印(
図13(b)の例に示す追記記号(矢印)1320)等の追記記号を用いて、挿入文字と挿入位置を指定する。
【0026】
特許文献1に記載の技術では、追記を行う場合、一旦削除してから、訂正を行う必要がある。
図13の例に示したように、「DE」だけを追記すればよい場合でも、文字列「ABDEC」全体を記入する必要がある。
特許文献2に記載の技術では、追記記号を認識するときに、谷型「V」(追記記号(谷状記号)1310)や、矢印「→」(追記記号(矢印)1320)のような記号は、文字として誤認識されやすい。例えば、谷型記号は、ローマ字のVと誤認識されやすい。そのため、従来技術では、まず文字行認識を行って、文字行の位置を用いて追記記号を分離する。
図13(a)の例では、まず「ABC」の認識を行う。その後で、「ABC」の行位置から外れており、かつ、追記記号として妥当な記号を抽出する。このようにして、追記記号と文字を分離する。この場合、文字行を正確に抽出することが必要となる。ところが、そもそも「谷型」(追記記号(谷状記号)1310)と、「V」の文字との形の区別が付き難いため、
図14の例に示すように、「ABC」の文字列の高さと追記記号(谷状記号)1310を含めた文字行(高さ)1430と認識される可能性が高い。その場合、認識結果が「ABVC」となってしまう場合がある。つまり、文字行を正確に抽出することが困難であり、その結果、追記記号を抽出することも困難となる。
さらに、文字行間が狭い場合には、隣接する文字行との間に、追記文字を記載する必要があるため、谷型を用いた追記が困難である。
【0027】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という意味を有する記載は、「Aであるか否かを判定し、Aであると判定した場合はBをする」の意味で用いる。ただし、Aであるか否かの判定が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
【0028】
本実施の形態である情報処理装置は、追記元・追記先指定記号と追記文字列範囲指定記号が含まれている可能性のあるストローク情報105を用いた文字認識装置であって、
図1の例に示すように、追記記号認識モジュール110、追記記号と追記文字列除去モジュール120、追記文字列文字認識モジュール130、除去後文字列文字認識モジュール140、文字列挿入モジュール150を有している。
【0029】
各モジュールの機能、処理を説明する前に、本実施の形態における概要を説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
本実施の形態における追記記号は、以下の3つを実現するためのものである(本発明の効果として把握すべきものではない)。
(1)文字行を認識しなくても追記記号を認識できる。
(2)追記記号の記入負荷を小さくするための記号とする。
(3)文字行間が狭くても追記が可能である。
つまり、文字行に関係なく認識するため、ストローク情報の段階で追記記号を認識する。そして、ストローク情報だけで追記文字であることを確定できるようにする。
これらを実現するためには、複雑な形状を持った追記記号を設計すればよい。しかしながら、複雑な形状を持たせると、追記記号を記入するユーザ(操作者)の負荷が増大してしまう。
追記記号に必要な機能は、下記の4つである。
(1)追記位置(追記先、挿入位置)の指定
(2)追記文字列(追記元)の指定
(3)追記文字列範囲の指定
(4)追記先と追記元のリンクの指定
このうち、(1)追記位置の指定と(2)追記文字列の指定と(4)追記先と追記元のリンクの指定は、2つの座標位置をつなぐ曲線(ここでは、直線を含む)で実現する。
この曲線は、ユーザによって長さを自由に変えられるものとする。これによって、文字行が密接している場合でも、追記文字列を余白のある部分に持っていくことができる。どちらが追記位置でどちらが追記文字列であるかは、追記文字列範囲が指定されているほうを追記文字列であると判定することにより、決定できる。
追記元・追記先指定記号は、追記元と追記先を指定し、それがつながっていることを示す記号であって、その長さはユーザの指定による曲線である。そして、追記文字列範囲指定記号は、追記文字列の領域を指定する記号である。追記記号は、この2つの記号によって構成される。
ここで、追記記号の一例(典型例)を
図5に示す。追記元・追記先指定記号として記号1:510があり、追記文字列範囲指定記号として記号2:520がある。ここでは、記号1:510は、追記元(文字列「DE」)と追記先(「B」と「C」の間)を示し、それがつながっていることを示す曲線であり、記号2:520は、追記元(文字列「DE」)の領域を示している。つまり、修正前文字列500の文字列「ABC」の「B」と「C」の間に、追記文字列590である文字列「DE」を挿入することを示している。
さらに、記号1:510と記号2:520が隣接していることを条件として、追記記号を構成していると認識することによって、文字と誤認識する危険性を低減させる。また、典型的には、この記号1:510と記号2:520は、それぞれ一筆(1ストロークで書かれるものとする)である。
なお、文字列という場合は1文字以上の文字の連なりをいう。したがって、1文字も文字列に含まれる。
【0030】
追記記号認識モジュール110は、追記記号と追記文字列除去モジュール120と接続されている。追記記号認識モジュール110は、ストローク情報105を受け付ける。追記記号認識モジュール110によって受け付けられるストローク情報105(群)には、文字列を表すストロークの他に、追記元・追記先指定記号を示すストローク、追記文字列範囲指定記号を示すストロークが含まれている可能性がある。また、文字列を表すストロークは、追記する文字列を表すストローク(追記文字列範囲指定記号によって指定された領域内のストローク)と、追記される文字列(修正前の文字列)を表すストロークがある。追記元・追記先指定記号、追記文字列範囲指定記号は、予め定められた規則に基づいて記載されたストロークである。具体的には、
図5の例を用いて説明したものである。
ストローク情報105として、例えば、ストローク情報400がある。
図4は、ストローク情報400のデータ構造例を示す説明図である。ストローク情報400は、時刻欄410、座標位置欄420、ペンアップ/ダウン欄430を有している。時刻欄410は、時刻を記憶している。ここでの時刻は、時系列を示す情報(座標位置が発生した順序を示す情報)であればよい。座標位置欄420は、座標位置を記憶している。座標位置は、電子ペンの紙上での位置(例えば、XY座標)を示している。ペンアップ/ダウン欄430は、ペンアップとペンダウンを示す情報を記憶している。ペンアップは、紙から電子ペンを離したことを示しており、ペンダウンは、紙に電子ペンを押し当てたこと(押し当てていること)を示している。
例えば、1秒に70回〜100回程度の頻度で得られた電子ペンの座標位置と、電子ペンのアップダウン情報を用いて、ストローク情報400が生成される。
電子ペンがダウンしている状態は、紙に文字が書かれている状態としてみなすことができる。すなわち、電子ペンがダウンしてからアップするまでを一つのストローク(一筆で書かれる文字の線)としてみなせる。
このストローク情報105を用いて、紙上に記載された文字を認識することができる。ストローク情報105を用いて文字を認識する手法は種々存在している。
【0031】
図6の例は、追記記号認識モジュール110が受け付けたストローク情報105を分かりやすいようにラスターに変換して表示したものである。
追記記号認識モジュール110では、1ストローク毎に、記号1:510(追記元・追記先指定記号)の候補であるか否かを判定する。また、記号2:520(追記文字列範囲指定記号)の候補であるか否かを判定する。記号1:510と記号2:520が1ストロークで記載される場合もあるので、1ストローク毎に、そのストロークが、記号1:510の候補であるか、記号2:520の候補であるか、その両方か、又はその両方ではないかを判定する。なお、記号1:510の候補、記号2:520の候補と表記しているが、追記記号を構成する記号1:510、記号2:520であるか否かは、記号1:510と記号2:520との位置関係(後述)によるので、単体の記号1:510、記号2:520を認識することは、記号1:510の候補、記号2:520の候補を認識することである。ただし、以下の説明において、記号1:510の候補、記号2:520の候補を、単に記号1:510(又は追記元・追記先指定記号)、記号2:520(又は追記文字列範囲指定記号)と表記する場合もある。
【0032】
その後、記号1:510の候補と記号2:520の候補が隣接するか否かを判定する。記号1:510の候補と記号2:520の候補が隣接する場合、記号1:510の候補を記号1:510とし、記号2:520の候補を記号2:520として、記号1:510と記号2:520によって構成される追記記号であると判定する。記号1:510の2つの端点のうち、記号2:520に近いほうの端点を追記元とし、記号2:520から遠いほうを追記先とする。記号1:510と記号2:520が隣接する場合については後述する。もちろんのことながら、記号1:510と記号2:520が1ストロークで記載された場合は、隣接していると判定する。
そして、記号1:510に基づいて、追記先の位置を判定する。具体的には、記号1:510の2つの端点のうち、記号2:520から遠いほうの端点の位置を、追記先の位置とする。位置としては、座標であってもよいし、ストローク情報105から文字毎の位置が判明している場合は、追記される文字列(修正前の文字列)内の文字間の位置(例えば、第A番目の文字と第A+1番目の文字の間)の指定であってもよい。
さらに、記号2:520で指定された範囲内(
図6の例では、記号2:520によって囲まれた領域)の文字列を、追記文字列590として抽出する。
【0033】
追記記号と追記文字列除去モジュール120は、追記記号認識モジュール110、追記文字列文字認識モジュール130、除去後文字列文字認識モジュール140と接続されている。追記記号と追記文字列除去モジュール120は、追記記号認識モジュール110によって受け付けられたストローク情報105から、追記記号認識モジュール110によって判定された記号1:510(追記元・追記先指定記号)と記号2:520(追記文字列範囲指定記号)のストロークと、その記号2:520によって指定された領域内の文字列(追記文字列)のストロークを除去する。したがって、除去処理後のストロークは、追記される文字列(修正前の文字列)のストロークである。
図6(a)の例では、
図6(b)の例に示す修正前文字列500である。この除去処理後のストロークを除去後文字列文字認識モジュール140へ渡す。また、記号2:520によって指定された領域内の文字列のストロークは、追記文字列文字認識モジュール130へ渡す。
図6(a)の例では、
図6(c)の例に示す追記文字列590である。
【0034】
追記文字列文字認識モジュール130は、追記記号と追記文字列除去モジュール120、文字列挿入モジュール150と接続されている。追記文字列文字認識モジュール130は、追記記号認識モジュール110によって判定された記号2:520によって指定された領域内のストローク群の文字列を認識する。
図6(a)の例では、
図6(c)の例に示す追記文字列590を認識し、文字列「DE」を認識結果とする。
除去後文字列文字認識モジュール140は、追記記号と追記文字列除去モジュール120、文字列挿入モジュール150と接続されている。除去後文字列文字認識モジュール140は、追記記号と追記文字列除去モジュール120による除去後のストローク群を文字認識する。
図6(a)の例では、
図6(b)の例に示す修正前文字列500を認識し、文字列「ABC」を認識結果とする。
【0035】
文字列挿入モジュール150は、追記文字列文字認識モジュール130、除去後文字列文字認識モジュール140と接続されている。文字列挿入モジュール150は、追記記号認識モジュール110によって判定された追記先の位置に基づいて、除去後文字列文字認識モジュール140による認識結果である文字列に、追記文字列文字認識モジュール130による認識結果である文字列を挿入して、最終的な認識結果155を生成する。文字列を挿入することによって、追記後の文字列(修正後の文字列)を生成することになる。
図6(a)の例では、文字列「ABDEC」となる。また、文字列挿入モジュール150は、追記先位置が座標である場合は、認識結果の各文字の座標から「B」と「C」の間であることを判定して、「ABC」に「DE」を挿入して、認識結果「ABDEC」を出力する。また、追記先位置が文字間の位置である場合は、その文字間に追記文字列「DE」を挿入すればよい。
【0036】
図2は、本実施の形態による処理例を示すフローチャートである。
ステップS202では、追記記号認識モジュール110が、ストローク情報105を受け付ける。
ステップS204では、追記記号認識モジュール110が、ストローク情報105から記号1:510と記号2:520によって構成されている追記記号を認識する。詳細な処理については、
図3の例を用いて後述する。
ステップS206では、追記記号と追記文字列除去モジュール120が、ストローク情報105から追記記号と追記文字列を除去して、修正前の文字列のストローク情報を抽出する。
ステップS208では、追記文字列文字認識モジュール130が、追記文字列のストローク情報を文字認識する。
ステップS210では、除去後文字列文字認識モジュール140が、修正前の文字列のストローク情報を文字認識する。
ステップS212では、文字列挿入モジュール150が、追記記号の認識結果(追記先の位置)を用いて、修正前の文字列に追記文字列を追記する。
ステップS214では、文字列挿入モジュール150が、修正後の文字列である認識結果155を出力する。
なお、ステップS208、ステップS210の処理は、いずれを先に行ってもよいし、並列的に処理を行ってもよい。
【0037】
図3は、本実施の形態による処理例を示すフローチャートである。
ステップS302では、ストローク情報105から記号1:510を認識する。記号1:510の判定に関しては、記号1:510の仕様に依存する。記号1:510の仕様について、
図7の例を用いて説明する。
図7(a)に示す例の場合、追記元・追記先指定記号は、ループが1回あることを条件としている。追記記号認識モジュール110が、対象としているストロークが追記元・追記先指定記号候補であるか否かを判定する場合に、そのストローク内にループが存在しているか否かの判定を用いる。
図7(a)に示す例の場合、ループが1回あれば追記元・追記先指定記号候補と判定する。ここで対象としているストロークは、1ストロークである。ストロークは、各時刻の点位置で表すことができる。
図8に示す例は、時刻tnのときに存在するペン先位置を示す。ストロークをラスタライズする場合は、時刻t
nとt
n+1の点位置を線分でつなげばよい。ループがあるか否かを判定するには、一つのストローク(すなわち、ペンがダウンしてからアップするまで)で、時刻t
nとt
n+1をつないだ全線分を生成し、各線分が(線分の端点を含めて)クロスするか否かを判定すればよい。
図8に示す例では、t
1−t
2を結んだ線分と、t
5−t
6を結んだ線分がクロスするため、ループが発生していると判定する。
このようにしてループの回数を数えて、
図7(b)に示す例のようにループが無い曲線を記号1:510の条件としてもよいし、
図7(c)に示す例のようにループが2回(以上)存在することを記号1:510の条件としてもよい。
【0038】
ステップS304では、ストローク情報105から記号2:520を認識する。記号2:520の判定に関しては、記号2:520の仕様に依存する。記号2:520の仕様について、
図9の例を用いて説明する。
記号2:520の仕様として、
図9(a)に示す例のような、追記文字列を囲う楕円形状(円を含む)、
図9(b)に示す例のような、追記文字列の先端と終端に曲がった直線がある下線、
図9(c)に示す例のような、単なる下線等のように、文字列の範囲が確定できる記号であればよい。したがって、対象としているストロークが追記文字列範囲指定記号候補であるか否かを判定する場合に、
図9(a)の例の仕様であると、そのストローク形状が楕円形状であるか否かの判定を用いる。
図9(b)の例の仕様であると、そのストローク形状が3本直線で構成されているか否かの判定を用いる。
図9(c)の例の仕様であると、そのストローク形状が直線であるか否かの判定を用いる。
図9(a)に示す例を判定するためには、例えば、次のような判定手法がある。
(1)通常のストローク認識で、楕円形状か否かを判定すればよい。
(2)一旦ラスタライズして、ラスタライズ後の画像を文字認識して、楕円形状か否かを判定する。
(3)前述したようにループが1回か否かを判定し、ループ外の曲線長が予め定められた閾値よりも短いことを判定する。
また、楕円形状の判定には、例えば、次のような判定手法がある。
(1)ストローク長Lと外接矩形の縦横長Wとする。LとWの比が予め定められた閾値範囲内であることを判定する。
(2)点列と最も合致する(最小2乗法で最もマッチする)楕円の式を求める。そのときの点と楕円との距離の2乗和の平方根を点数で割ったものが、予め定められた閾値以下であれば、楕円形状であると判定する。
図9(b)に示す例を判定するためには、通常のストローク認識で、3本の直線によって構成されているか否かを判定すればよい。
図9(c)に示す例を判定するためには、通常のストローク認識で、1本の直線によって構成されているか否かを判定すればよい。特に、この場合、次に示す条件を付加してもよい。次に示す条件は、
図9(a)、
図9(b)に示す例の場合に付加してもよい。
【0039】
追記記号認識モジュール110は、さらに、追記文字列範囲指定記号候補によって指定された領域内にストローク群が存在する場合に、その追記文字列範囲指定記号候補を追記文字列範囲指定記号であると判定するようにしてもよい。つまり、追記文字列のストロークがあるからこそ、追記文字列範囲指定記号であると判定するものである。
追記記号認識モジュール110は、さらに、追記文字列範囲指定記号候補によって指定された領域内の文字列に対して追記文字列文字認識モジュール130による認識結果の認識確度が予め定められた閾値よりも高い場合に、その追記文字列範囲指定記号候補を追記文字列範囲指定記号であると判定するようにしてもよい。つまり、単にストロークがあるだけでなく、認識可能な文字を示すストロークであるからこそ、追記文字列範囲指定記号であると判定するものである。また、追記記号認識モジュール110は、この判定処理に先立ち、追記文字列範囲指定記号候補によって指定された領域内の文字列を、追記文字列文字認識モジュール130に認識させる。そして、その認識結果の認識確度を用いて、追記文字列範囲指定記号候補が追記文字列範囲指定記号であるか否かを判定する。ここで認識確度とは、その認識結果が正しいことを示す値であって、例えば、特徴空間における対象のストローク群と辞書内の文字パターンとの距離の逆数等を用いればよい。
【0040】
ステップS306では、追記位置を抽出する。前述したように、追記元・追記先指定記号の端点と追記文字列範囲指定記号との位置関係によって、追記位置を抽出すればよい。
ステップS308では、追記文字列を抽出する。
図9(a)に示す例では、楕円形状に囲まれたストローク群を対象とすればよい。
図9(b)に示す例では、先端と終端にある直線に囲まれたストローク群を対象とすればよい。
図9(c)に示す例では、追記文字列範囲指定記号の直線と予め定められた距離以内にあるストローク群を対象とすればよい。例えば、ストロークの一部分でも含まれていれば、そのストロークを対象に含めてもよい。
なお、ステップS302、ステップS304の処理の組み合わせ、又はステップS306、ステップS308の処理の組み合わせにおいては、いずれの処理を先に行ってもよい。ユーザの筆順に合わせてもよいし、並列的に処理を行ってもよい。
【0041】
追記記号認識モジュール110は、対象としているストロークが追記元・追記先指定記号候補であるか否かを判定する場合に、そのストローク内にループが存在しているか否かの判定を用いるだけでなく、さらに、そのループがそのストローク内の予め定められた範囲に存在しているか否かの判定を用いるようにしてもよい。
図10は、記号1:510の例を示す説明図である。
ループが一つ存在している場合(
図7(a)の例)の判定について説明する。
このとき、ループの位置がストロークの中央に近いことを条件として、追記元・追記先指定記号であると判定する。ここで「中央に近い」とは、例えば、ストロークの全長において、50%を含むように予め定められた範囲にあること(例えば、40%から60%)をいう。
これによって、追記元・追記先指定記号であると誤判定する可能性を小さくすることができる。
図10(a)に示す例は、追記元・追記先指定記号であると判定する。ループが端にある
図10(b)に示す例は、追記元・追記先指定記号ではないと判定する。なお、これは、ユーザに対して、できるだけループを真ん中に書くように指示することによって、このような判定が意味を持つことになる。
ループの位置は、前述した方法で得ることができる。このとき、ループを構成する点の位置を得ることができる。
図8に示す例であれば、t
2〜t
5がループを構成するとみなす。
ループより前(t
2より前)に描かれた点の数をP
0とする。
ループとして(t
2〜t
5の間に)描かれた点の数をP
1とする。
ループより後(t
5より後)に描かれた点の数をP
2とする。
ループがおおよそ中央に描かれていることを判定する。例えば、P
0/P
2の値が、予め定められた閾値T
1〜T
2の間に入っていることを判定する。T
1とT
2は、1に近い値であればよい。例えば、T
1=0.7、T
2=1.5等の数値としてもよい。
前述では、P
0、P
1、P
2を点の数として計算したが、点の数ではなく、実際に描画に要した時間を用いてもよい。
また、ループが2つ以上についても、その2つ以上のループの位置が予め定められた範囲内にあることを条件として、追記元・追記先指定記号であると判定してもよい。
【0042】
追記記号認識モジュール110は、対象としているストロークが追記元・追記先指定記号候補であるか否かを判定する場合に、そのストローク内にループが存在しているか否かの判定を用いるだけでなく、さらに、そのループの大きさが予め定められた範囲内にあるか否かの判定を用いるようにしてもよい。
ループが一つ存在している場合(
図7(a)の例)の判定について説明する。このとき、ループの大きさが、予め定められた大きさ以上である場合に、追記元・追記先指定記号であると判断するようにしてもよい。これによって、追記元・追記先指定記号であると誤判定する可能性を小さくすることができる。
図8に示す例であれば、t2〜t5がループを構成するとみなす。P
0、P
1、P
2を、前述の通りとする。本例では、ループの大きさを用いる。例えば、P
1/(P
0+P
1+P
2)が、閾値T
3〜T
4の間に入っていることを判定する。T
3とT
4は、ループの大きさとして妥当な値であればよい。例えば、T
3=0.1、T
4=0.5等がある。
また、ループが2つ以上についても、その2つ以上のループの大きさの合計値が予め定められた範囲内にあることを条件として、追記元・追記先指定記号であると判定してもよい。
また、ループの位置、ループの大きさの組み合わせを条件としてもよい。
【0043】
追記記号認識モジュール110が行う、追記元・追記先指定記号の候補と追記文字列範囲指定記号の候補が隣接するか否かの判定処理について説明する。
(1)追記元・追記先指定記号の候補内の点と、追記文字列範囲指定記号の候補内の点のうち、最も距離が近い点を探索する。
追記元・追記先指定記号の候補内の点は、
図4の例に示されているようなストローク情報400(座標位置欄420)の座標値として表わすことができる。この点の数をMとする。
追記文字列範囲指定記号の候補内の点も同様に、
図4の例に示されているようなストローク情報400(座標位置欄420)の座標値として表わすことができる。この点の数をNとする。
前記の条件で、M×N通りの点と点の距離を算出し、その算出した距離の中で最も近い距離を抽出する。この抽出した距離が、予め定められた値未満であれば隣接していると判定し、予め定められた値以上であれば隣接していないと判定する。
(2)追記元・追記先指定記号の候補と、追記文字列範囲指定記号の候補のそれぞれの外接矩形を抽出する。外接矩形間の距離(例えば、各外接矩形の中心間の距離)を算出する。この算出した距離が、予め定められた値未満であれば隣接していると判定し、予め定められた値以上であれば隣接していないと判定する。
(3)追記元・追記先指定記号の候補の端点と追記文字列範囲指定記号の候補の各線との距離を算出し、その算出した距離の中で最も近い距離を抽出する。この抽出した距離が、予め定められた値未満であれば隣接していると判定し、予め定められた値以上であれば隣接していないと判定する。
【0044】
図15は、本実施の形態を実現化する場合のシステム例を示す説明図である。
電子ペン用紙印刷システム1520、筆記情報処理システム1530は、通信回線1599(有線、無線、その混合を問わない回線)を介して接続されている。電子ペン用紙印刷システム1520には印刷装置1525が接続されており、筆記情報処理システム1530には電子ペン1535が接続されている。なお、
図1に例示したモジュール構成は、主に、筆記情報処理システム1530に構築されている。
電子ペン用紙印刷システム1520は、紙IDを用いて情報画像(以下、ドットコード画像ともいう)を重ね合わせた文書を用紙に印刷装置1525を用いて印刷するシステムである。筆記情報処理システム1530は、電子ペン用紙印刷システム1520によって情報画像が印刷された用紙に対して、電子ペン1535を用いて筆記が行われた場合に、その筆記情報を電子文書に重ね合わせるシステムである。そして、ユーザによって電子ペン1535を用いて記載された追記記号を検出した場合は、その追記記号にしたがって、文字列を修正し、その修正した文字列を文書に重ね合わせる。
【0045】
図16は、電子ペン用紙印刷システム1520によって、情報画像が印刷された電子ペン用紙1610の例を示す説明図である。電子ペン用紙1610は、電子ペン用紙印刷システム1520が印刷装置1525を用いて印刷するものである。電子ペン用紙1610には、ドットコード画像が印刷されている。例えば、電子ペン用紙1610内の領域1620には、領域1620内を拡大して示している
図16(b)のようなドットコード画像が印刷されている。ドットコード画像によって、電子ペン用紙1610一枚一枚に割り当てられた紙IDと用紙上の位置情報(X,Y座標値)が表現されている。
例えば、紙IDは、32bitの空間内の数値である。文字列表記の場合は、16進文字列により表記する。よって、紙IDの範囲は「00000000」から「FFFFFFFF」である。
【0046】
図17は、電子ペン1535内の構成例を示す説明図である。
概要を説明する。電子ペン用紙1799上に電子ペン1535で筆記する際、圧力センサがON(前述のペンダウン)になると、電子ペン用紙1799上のドットコード画像を撮像し、デコードして、電子ペン用紙1799の紙IDと電子ペン用紙1799上の位置情報(X,Y座標値)を取り出し、メモリに格納する。そして、メモリに格納された情報を、通信回路を経由して筆記情報処理システム1530に送信する。なお、
図4の例に示したストローク情報400のように、圧力センサがONになった情報として前述の筆圧ON情報(前述のペンダウン)、圧力センサがOFFになった情報として前述の筆圧OFF情報(前述のペンアップ)をもメモリに格納してもよい。また、それぞれの情報が発生した時刻に関する情報(年、月、日、秒、秒以下、又はこれらの組み合わせであってもよい)を含ませるようにしてもよい。
【0047】
次に詳細に説明する。図示するように、電子ペン1535は、ペン全体の動作を制御する制御回路1701を備える。また、制御回路1701は、入力画像から検出したドットコード画像を処理する画像処理部1701aと、そこでの処理結果から紙ID及び位置情報を抽出するデータ処理部1701bとを含む。
そして、制御回路1701には、電子ペン1535による筆記動作をペンチップ1709に加わる圧力によって検出する圧力センサ1702が接続されている。また、用紙上に赤外光を照射する赤外LED1703と、画像を入力する赤外CMOS1704も接続されている。さらに、紙ID及び位置情報等を記憶するための情報メモリ1705と、外部装置と通信するための通信回路1706と、電子ペン1535を駆動するためのバッテリ1707と、電子ペン1535の識別情報(ペンID)を記憶するペンIDメモリ1708も接続されている。
【0048】
ここで、この電子ペン1535の動作の概略を説明する。
電子ペン1535による筆記が行われると、ペンチップ1709に接続された圧力センサ1702が、筆記動作を検出する。これにより、赤外LED1703が点灯し、赤外CMOS1704がCMOSセンサによって用紙上の画像を撮像する。
なお、赤外LED1703は、消費電力を抑制するために、CMOSセンサのシャッタタイミングに同期させてパルス点灯する。
また、赤外CMOS1704は、撮像した画像を同時に転送できるグローバルシャッタ方式のCMOSセンサを使用する。そして、赤外領域に感度があるCMOSセンサを使用する。また、外乱の影響を低減するために、CMOSセンサ全面に可視光カットフィルタを配置している。CMOSセンサは、70fps〜100fps(frame per second)程度の周期で、画像を撮像する。なお、撮像素子はCMOSセンサに限定するものではなく、CCD等、他の撮像素子を使用してもよい。
【0049】
このように撮像した画像が制御回路1701に入力されると、制御回路1701は、撮像した画像からドットコード画像を取得する。そして、それを復号し、ドットコード画像に埋め込まれている紙ID及び位置情報を取得する。
以下、このときの制御回路1701の動作について説明する。
図18は、電子ペン1535(制御回路1701)による処理例を示すフローチャートである。
ステップS1801では、画像処理部1701aは、画像を入力する。
ステップS1802では、画像に含まれるノイズを除去するための処理を行う。ここで、ノイズとしては、CMOS感度のばらつきや電子回路により発生するノイズ等がある。ノイズを除去するために如何なる処理を行うかは、電子ペン1535の撮像系の特性に応じて決定すべきである。例えば、ぼかし処理やアンシャープマスキング等の先鋭化処理を適用することができる。
ステップS1803では、画像処理部1701aは、画像からドットパターン(ドット画像の位置)を検出する。例えば、2値化処理によりドットパターン部と背景部とを切り分け、2値化された個々の画像位置からドットパターンを検出することができる。2値化画像にノイズ成分が多数含まれる場合は、例えば、2値化画像の面積や形状によりドットパターンの判定を行うフィルタ処理を組み合わせる必要がある。
【0050】
また、ステップS1804では、画像処理部1701aは、検出したドットパターンを2次元配列上のデジタルデータに変換する。例えば、2次元配列上で、ドットがある位置を「1」、ドットがない位置を「0」というように変換する。そして、この2次元配列上のデジタルデータは、画像処理部1701aからデータ処理部1701bへと受け渡される。
次いで、ステップS1805では、データ処理部1701bは、受け渡されたデジタルデータから、
図19(a)に示した2つのドットの組み合わせからなるビットパターンを検出する。例えば、ビットパターンに対応するブロックの境界位置を2次元配列上で動かし、ブロック内に含まれるドットの数が2つになるような境界位置を検出することにより、ビットパターンを検出することができる。
このようにしてビットパターンが検出されると、ステップS1806では、データ処理部1701bは、ビットパターンの種類を参照することにより、同期符号を検出する。
そして、ステップS1807では、同期符号からの位置関係に基づいて、識別符号及び位置符号を検出する。
その後、ステップS1808では、データ処理部1701bは、識別符号を復号して紙IDを取得し、位置符号を復号して位置情報を取得する。識別符号については、RS復号処理を施すことで紙IDを得る。一方、位置符号については、読み出した部分系列の位置を、画像生成時に使用したM系列と比較することで、位置情報を得る。
【0051】
次に、筆記情報格納用電子文書について説明する。以降、単に電子文書と表記した場合、筆記情報格納用電子文書を指す。
筆記情報格納用電子文書は、電子ペン1535によって電子ペン用紙1799に筆記された内容を、フィールド定義とともにまとめたデータである。以下から構成される。
(1)紙ID:その筆記情報格納用電子文書に対応付けられた電子ペン用紙に割り当てられている紙ID
(2)フィールド定義:その筆記情報格納用電子文書への筆記を処理するために使用するフィールド定義
そして、以下を含めてもよい。
(3)帳票イメージ:その筆記情報格納用電子文書に印刷されている帳票イメージ
【0052】
次に、電子ペン用紙印刷システム1520で生成されるドットコード画像の元となるコードパターンについて説明する。
図19は、電子ペン用紙印刷システム1520で取り扱う情報画像(コードパターン画像)の例を示す説明図である。
まず、コードパターンを構成するビットパターンについて説明する。
図19(a)に、ビットパターンの配置の一例を示す。
ビットパターンとは、情報埋め込みの最小単位である。ここでは、
図19(a)に示すように、9箇所の中から選択した2箇所にビットを配置する。図では、黒の四角が、ビットが配置された位置を示し、斜線の四角が、ビットが配置されていない位置を示している。9箇所の中から2箇所を選択する組み合わせは、36(=9C2)通りある。したがって、このような配置方法により、36通り(約5.2ビット)の情報を表現することができる。
ただし、紙ID及び位置情報は、この36通りのうち32通り(5ビット)を使用して表現するものとする。
ところで、
図19(a)に示した最小の四角は、600dpiにおける2ドット×2ドットの大きさを有している。600dpiにおける1ドットの大きさは0.0423mmなので、この最小の四角の一辺は、84.6μm(=0.0423mm×2)である。コードパターンを構成するドットは、大きくなればなるほど目に付きやすくなるため、できるだけ小さいほうが好ましい。ところが、あまり小さくすると、プリンタで印刷できなくなってしまう。そこで、ドットの大きさとして、50μmより大きく100μmより小さい前記の値を採用している。これにより、プリンタで印刷可能な最適な大きさのドットを形成することができる。つまり、84.6μm×84.6μmが、プリンタで安定的に形成可能な最小の大きさである。
なお、ドットをこのような大きさにすることで、1つのビットパターンの一辺は、約0.5(=0.0423×2×6)mmとなる。
また、このようなビットパターンから構成されるコードパターンについて説明する。
図19(b)に、コードパターンの配置の一例を示す。
ここで、
図19(b)に示した最小の四角が、
図19(a)に示したビットパターンに相当する。すなわち、紙IDを符号化した識別符号は、16(=4×4)個のビットパターンを使用して埋め込まれる。また、X方向の位置情報を符号化したX位置符号と、Y方向の位置情報を符号化したY位置符号とは、それぞれ、4個のビットパターンを使用して埋め込まれる。さらに、左上角部に、コードパターンの位置と回転を検出するための同期符号が、1つのビットパターンを使用して埋め込まれる。
なお、1つのコードパターンの大きさは、ビットパターンの5個分の幅に等しいため、約2.5mmとなる。電子ペン用紙印刷システム1520では、このように生成したコードパターンを画像化したコードパターン画像を、用紙全面に配置する。
【0053】
図20は、電子ペン用紙印刷システム1520における情報の符号化処理例及び情報画像(ドットコード画像)の生成処理例を示す説明図である。
まず、紙IDの符号化について説明する。
紙IDの符号化には、ブロック符号化方式のRS(リードソロモン)符号が使用される。
図19の例で説明した通り、電子ペン用紙印刷システム1520では、5ビットの情報を表現できるビットパターンを用いて情報を埋め込む。したがって、情報の誤りも5ビット単位で発生するため、ブロック符号化方式で符号化効率がよいRS符号を使用している。ただし、符号化方式はRS符号に限定するものでなく、その他の符号化方式、例えば、BCH符号等を使用することもできる。
前述したように、電子ペン用紙印刷システム1520では、5ビットの情報量をもつビットパターンを用いて情報を埋め込む。したがって、RS符号のブロック長を5ビットとする必要がある。そのため、紙IDを5ビットずつに区切り、ブロック化する。
図20では、紙ID「0011101101001…」から、第1のブロック「00111」と、第2のブロック「01101」とが切り出されている。
そして、ブロック化された紙IDに対し、RS符号化処理を行う。
図20では、「blk1」、「blk2」、「blk3」、「blk4」、…というようにブロック化した後、RS符号化が行われる。
ところで、電子ペン用紙印刷システム1520において、紙IDは、16(=4×4)個のブロックに分けられる。そこで、RS符号における符号ブロック数を16とすることができる。
また、情報ブロック数は、誤りの発生状況に応じて設計することができる。例えば、情報ブロック数を8とすれば、RS(16,8)符号となる。この符号は、符号化された情報に4ブロック(=(16−8)÷2)の誤りが発生しても、それを補正することができる。また、誤りの位置を特定できれば、訂正能力をさらに向上することができる。なお、この場合、情報ブロックに格納される情報量は、40ビット(=5ビット×8ブロック)であるが、このうち32ビットを用いる。
【0054】
次に、位置情報の符号化について説明する。
位置情報の符号化には、擬似乱数系列の一種であるM系列符号が使用される。ここで、M系列とは、K段の線形シフトレジスタで発生できる最大周期の系列であり、2K−1の系列長をもつ。このM系列から取り出した任意の連続したKビットは、同じM系列中の他の位置に現れない性質をもつ。そこで、この性質を利用することにより、位置情報を符号化することができる。
ところで、電子ペン用紙印刷システム1520では、符号化すべき位置情報の長さから、必要なM系列の次数を求め、M系列を生成している。しかしながら、符号化する位置情報の長さが予め分かっている場合は、M系列を毎回生成する必要はない。すなわち、固定のM系列を予め生成しておき、それをメモリ等に格納しておけばよい。
例えば、系列長8191のM系列(K=13)を使用したとする。
この場合、位置情報も5ビット単位で埋め込むため、系列長8191のM系列から5ビットずつ取り出してブロック化する。
図20では、M系列「11010011011010…」が、5ビットずつブロック化されている。
【0055】
このように、電子ペン用紙印刷システム1520では、位置情報と紙IDとで、異なる符号化方式を用いている。これは、紙IDの検出能力を、位置情報の検出能力よりも高くなるように設定する必要があるからである。つまり、位置情報は、紙面の位置を取得するための情報なので、ノイズ等によって復号できない部分があっても、その部分が欠損するだけで他の部分には影響しない。これに対し、紙IDは、復号に失敗すると、筆記情報を反映する対象を検出できなくなるからである。さらに、このような構成とすることによって、位置情報と紙IDを復号する際の画像読取範囲を最小化できる。すなわち、位置情報にRS符号等の境界を有する符号化方式を使用すると、それを復号する際には境界間の符号を読み取る必要があるため、画像を読み取る範囲は
図19(b)に示した領域の2倍の領域とする必要がある。しかし、M系列を使用することで、
図19(b)に示した領域と同じ大きさの領域を読み取ればよい構成にできる。これは、M系列の性質上、M系列の任意の部分系列から位置情報を復号できるからである。すなわち、紙IDと位置情報を復号する際には、
図19(b)に示した大きさの領域を読み取る必要があるが、その読み取る位置は、
図19(b)に示した境界と一致させる必要はない。位置情報は、M系列の任意位置の部分系列から復号できる。紙IDは、同じ情報が用紙全面に配置されるため、
図19(b)に図示した境界から読取位置がずれても、読み取られた情報の断片を再配置することで元の情報を復元することができる。
【0056】
以上のように、紙IDがブロック分割された後、RS符号により符号化され、また、位置情報がM系列により符号化された後、ブロック分割されると、図示するように、ブロックが合成される。すなわち、これらのブロックは、図示するようなフォーマットで2次元平面に展開される。
図20に示したフォーマットは、
図19(b)に示したフォーマットに対応している。すなわち、黒の四角が同期符号を意味している。
また、横方向に配置された「1」、「2」、「3」、「4」、…がX位置符号を、縦方向に配置された「1」、「2」、「3」、「4」、…がY位置符号を、それぞれ意味している。位置符号は、用紙の位置が異なれば異なる情報が配置されるので、座標位置に対応する数字で示しているのである。一方、斜線部分の四角が識別符号を意味している。識別符号は、用紙の位置が異なっても同じ情報が配置されるので、全て同じマークで示しているのである。
ところで、図からも分かる通り、2つの同期符号の間には、4個のビットパターンがある。したがって、20(=5×4)ビットのM系列の部分系列を配置することができる。20ビットの部分系列から13ビットの部分系列を取り出せば、その13ビットが全体(8191)の中のどの部分の部分系列なのかを特定することができる。このように、20ビットのうち13ビットを位置の特定に使用した場合、取り出した13ビットの誤りの検出又は訂正を、残りの7ビットを使用して行うことができる。すなわち、M系列を生成したときと同じ生成多項式を使用して、20ビットの整合性を確認することで、誤りの検出と訂正が可能となるのである。
その後、各ブロックにおけるビットパターンが、ドット画像を参照することにより画像化される。そして、
図20の最右に示すようなドットで情報を表す出力画像が生成される。
【0057】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、
図11に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバとなり得るコンピュータ等である。つまり、具体例として、処理部(演算部)としてCPU1101を用い、記憶装置としてRAM1102、ROM1103、HD1104を用いている。HD1104として、例えばハードディスクを用いてもよい。追記記号認識モジュール110、追記記号と追記文字列除去モジュール120、追記文字列文字認識モジュール130、除去後文字列文字認識モジュール140、文字列挿入モジュール150等のプログラムを実行するCPU1101と、そのプログラムやデータを記憶するRAM1102と、本コンピュータを起動するためのプログラム等が格納されているROM1103と、補助記憶装置(フラッシュメモリ等であってもよい)であるHD1104と、キーボード、マウス、タッチパネル等に対する利用者の操作に基づいてデータを受け付ける受付装置1106と、CRT、液晶ディスプレイ等の出力装置1105と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース1107、そして、それらをつないでデータのやりとりをするためのバス1108により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【0058】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、
図11に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、
図11に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えばASIC等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに
図11に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、情報家電、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
【0059】
また、前述の実施の形態の説明において、予め定められた値との比較において、「以上」、「以下」、「より大きい」、「より小さい(未満)」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい(未満)」、「以上」、「以下」としてもよい。
【0060】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。