JPH05290217A - Character recognition method - Google Patents
Character recognition methodInfo
- Publication number
- JPH05290217A JPH05290217A JP4095007A JP9500792A JPH05290217A JP H05290217 A JPH05290217 A JP H05290217A JP 4095007 A JP4095007 A JP 4095007A JP 9500792 A JP9500792 A JP 9500792A JP H05290217 A JPH05290217 A JP H05290217A
- Authority
- JP
- Japan
- Prior art keywords
- code
- character
- node
- characters
- sedin
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Character Discrimination (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、図形の接続状態を表す
コード表現を用いて文字を認識する文字認識方法に関す
る。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a character recognition method for recognizing a character by using a code expression representing a connection state of figures.
【0002】[0002]
【従来の技術】2値化された文字画像を認識する方法に
おいて、本出願人は先に、2値化された画像データから
行毎にランデータを生成し、隣接する行間のランデータ
パターンが異なる一対の行(位相変化ペア)を抽出し、
該一対の行の連なりによって線図形を表現し(縦位相表
現)、該縦位相表現を用いて文字を認識する方法を提案
した(特願平3−253186号)。この縦位相表現に
は、位相的情報である接続状態情報と、若干の量的情報
が含まれる。2. Description of the Related Art In a method for recognizing a binarized character image, the present applicant has previously generated run data for each line from binarized image data, and a run data pattern between adjacent lines can be obtained. Extract different pairs of rows (phase change pairs),
A method has been proposed in which a line figure is expressed by a series of the pair of lines (vertical phase expression) and a character is recognized using the vertical phase expression (Japanese Patent Application No. 3-253186). This vertical phase expression includes connection state information, which is topological information, and some quantitative information.
【0003】すなわち、2値化された画像データ(図4
4)は、位相変化ペア451〜454で構成された縦位
相に表現される(図45の455)。これはまたスタン
プ(白丸と黒丸)によっても表現される(図46)。That is, binarized image data (see FIG.
4) is expressed in the vertical phase composed of the phase change pairs 451 to 454 (455 in FIG. 45). This is also represented by stamps (white and black circles) (Fig. 46).
【0004】縦位相表現の接続状態情報を一つの文字列
で表現したものを、縦位相表現におけるトポロジーコー
ドといい、“モデル”とも呼ばれる。分類は、モデルが
辞書にあるものと同一か否かを判定することにより行
う。図47には、10種類のトポロジーコード(ただ
し、その他のコード*を含む)を示す。例えば、数字
「2」については、d,A,pI,pとなる(図4
8)。先に提案した文字認識方法では、縦位相表現のト
ポロジーコードの組み合わせによって文字を大分類し
た。A representation of the connection state information in the vertical phase representation by one character string is called a topology code in the vertical phase representation and is also called a "model". Classification is done by determining whether the model is the same as in the dictionary. FIG. 47 shows ten types of topology codes (including other codes *). For example, the number "2" is d, A, pI, p (see FIG. 4).
8). In the previously proposed character recognition method, the characters are roughly classified according to the combination of the topology codes of the vertical phase representation.
【0005】しかしながら、図49に示すような文字を
認識する場合、文字“6”,“4”,“0”のいずれも
同一のトポロジーコード(d,Id,IA,VI,V,
p)となるので、縦位相表現のトポロジーコードを用い
るだけでは不十分であった。このように、縦位相表現の
トポロジーコードは、文字の大分類までしか行うことが
できず、したがって更に詳細に分類を行う必要がある。However, when recognizing a character as shown in FIG. 49, all the characters "6", "4" and "0" have the same topology code (d, Id, IA, VI, V,
p), it is not enough to use the topology code of the vertical phase representation. As described above, the topology code of the vertical phase representation can perform only the major classification of characters, and thus the classification needs to be performed in more detail.
【0006】このような点を解決した文字認識方法とし
て、本出願人は、giデータを用いた文字認識方法およ
び方向コードを用いた文字認識方法を既に提案した(特
願平4−52213号)。すなわち、giデータによる
分類は、縦位相表現から容易に得られる量(数値)の情
報を用いて行う分類であり、縦位相表現に含まれている
位相変化ペアの高さ情報と、縦位相表現の示すランの位
置情報を用いる。そして、分類は、閾値による分類を組
み合わせた簡単な論理式によって行われる。As a character recognition method that solves such a point, the present applicant has already proposed a character recognition method using gi data and a character recognition method using a direction code (Japanese Patent Application No. 4-52213). .. That is, the classification based on the gi data is a classification performed using the amount (numerical value) information easily obtained from the vertical phase expression, and the height information of the phase change pair included in the vertical phase expression and the vertical phase expression. The position information of the run indicated by is used. Then, the classification is performed by a simple logical expression in which the classification by the threshold value is combined.
【0007】例えば、図50のトポロジーコード(d,
Id,IA,VI,V,p)を生成する文字は、98文
字であり、その内訳は文字“6”が96例、文字“0”
および文字“4”がそれぞれ1例ずつであった。そし
て、図50のモデル(d,Id,IA,VI,V,p)
において、各位相変化ペアを上から順に、gi0,gi
1,・・・gi5とし、gi5とgi4の高さの差を
a、gi1とgi0の高さの差をb、gi4とgi2の
高さの差をc、gi5とgi0の高さの差をhとしたと
き、上記したモデル(d,Id,IA,VI,V,p)
に属する98文字のデータは、a,b,c,hを用いた
次の条件によって完全に分離することができた。For example, the topology code (d,
The characters that generate Id, IA, VI, V, p) are 98 characters, the breakdown of which is 96 examples of the character "6" and the character "0".
And the letter "4" was one example each. Then, the model of FIG. 50 (d, Id, IA, VI, V, p)
In the above, each phase change pair is gi0, gi in order from the top.
1, ... gi5, the height difference between gi5 and gi4 is a, the height difference between gi1 and gi0 is b, the height difference between gi4 and gi2 is c, and the height difference between gi5 and gi0 is If h, then the above model (d, Id, IA, VI, V, p)
The data of 98 characters belonging to could be completely separated by the following conditions using a, b, c and h.
【0008】文字“6”の条件:a/h<0.15かつ
0.25≦b/h<0.80 文字“0”の条件:a/h<0.15かつb/h<0.
15 文字“4”の条件:0.25≦a/h<0.60。Condition for character "6": a / h <0.15 and 0.25≤b / h <0.80 Condition for character "0": a / h <0.15 and b / h <0.
Condition of 15 characters “4”: 0.25 ≦ a / h <0.60.
【0009】また、方向コードによる分類は、giデー
タを用いた方法では分類できない数字の分類を可能とす
るものであり、この方向コードは、輪郭の一部分に対し
て等間隔でサンプリング点をとり、各点の傾きをコード
化して並べたものである。分類は、文字認識用のオート
マトンを用いて行う。The direction code classification enables classification of numbers that cannot be classified by the method using gi data. This direction code takes sampling points at equal intervals with respect to a part of the contour, The inclination of each point is coded and arranged. Classification is performed using an automaton for character recognition.
【0010】[0010]
【発明が解決しようとする課題】しかしながら、上記提
案した方法では、グループd,pに対してオートマトン
の作成が非常に困難になるという問題が生じた。すなわ
ち、グループd,pは、最も簡単な縦位相表現モデルで
あるとともに、出現頻度の高いモデルの一つでもある
(約13000文字の手書き数字データの内、2463
文字がそのモデルに該当し、第2位であった)。このグ
ループd,pには多くの字種(数字、1,2,3,5,
7)が含まれるばかりでなく、同一の字種であっても異
なる形と分類すべき多くの変形が含まれる。However, the method proposed above has a problem that it is very difficult to create an automaton for the groups d and p. That is, the groups d and p are not only the simplest model for expressing the vertical phase but also one of the models with a high frequency of appearance (of the handwritten numeral data of about 13,000 characters, 2463).
The letters corresponded to the model and were in second place). There are many character types (numbers, 1, 2, 3, 5, 5) in these groups d and p.
Not only 7) is included, but also many variations that should be classified as different shapes even if they are of the same character type are included.
【0011】このような場合、他のモデルでは、giデ
ータによる分類が有効であり、字種、変形の数共に絞る
ことが可能である。しかし、グループd,pでは、一番
上の黒ランの位置と一番下の黒ランの位置しか分からな
いため、giデータによる分類は、ほとんど機能しな
い。In such a case, in other models, classification by gi data is effective, and both the character type and the number of deformations can be narrowed down. However, in the groups d and p, only the positions of the uppermost black run and the lowermost black run are known, so that the classification by gi data hardly functions.
【0012】さらに、他のモデルでは、分類に有効な特
徴を含むよう、狭い範囲で輪郭の一部を選び、その部分
の方向コードに対して着目した特徴を考慮しながらオー
トマトンを作成することができた。これはまた、「まず
輪郭のa部分で大分類し、次にb部分で分類し、・・
・」の如く、段階的な分類が有効に利用可能であること
をも意味していた。Further, in other models, it is possible to select a part of the contour within a narrow range so as to include a feature effective for classification, and to create an automaton while taking into consideration the feature focused on the direction code of that part. did it. It also says, "First, roughly classify in the a part of the contour, then in the b part, ...
It also meant that stepwise classification could be effectively used, such as "."
【0013】ところが、グループd,pでは、輪郭の一
部として右側面または左側面(あるいは両側面)しか選
ぶことができず、このため多くの特徴が一度に方向コー
ドに影響を及ぼすことになり、分類に有効な輪郭の一部
を選ぶことができず、この結果、段階的な分類も不可能
となった。However, in the groups d and p, only the right side surface or the left side surface (or both side surfaces) can be selected as a part of the contour, and therefore many characteristics affect the direction code at one time. , It was not possible to select a part of the contour that is effective for classification, and as a result, stepwise classification was also impossible.
【0014】このように、グループd,pは、多くの字
種と多種類の変形を有するにも係らず、giデータを用
いた分類ができず、さらに輪郭の部分指定も有効に機能
しないため、オートマトンの作成は非常に困難となり、
例えば、数字“1”および“7”(および若干の数字
“2”と“3”)を認識するオートマトンを作成した
が、約700例のデータが認識不能となった。As described above, although the groups d and p have many character types and many kinds of deformation, they cannot be classified using gi data, and the contour portion designation does not function effectively. , Making automata becomes very difficult,
For example, an automaton that recognizes the numbers "1" and "7" (and some numbers "2" and "3") was created, but about 700 cases of data became unrecognizable.
【0015】本発明の目的は、図形の接続状態を表すコ
ードを用いて文字(モデルd,p)を大分類する文字認
識方法を提供することにある。An object of the present invention is to provide a character recognition method for roughly classifying characters (models d and p) using a code representing the connection state of figures.
【0016】[0016]
【課題を解決するための手段】前記目的を達成するため
に、請求項1記載の発明では、2値化された画像データ
から列毎にランデータを生成し、隣接する列間のランデ
ータパターンが異なる位相変化ペアを抽出し、該位相変
化ペアで構成された横位相表現を用いて文字を認識する
方法において、前記横位相表現された図形の接続関係を
生成し、該接続関係に対応したコードを生成し、該コー
ドによって文字を分類することを特徴としている。In order to achieve the above object, in the invention according to claim 1, run data is generated for each column from binarized image data and a run data pattern between adjacent columns is generated. In the method of extracting a phase change pair different from each other, and recognizing a character by using a horizontal phase expression composed of the phase change pair, a connection relation of the horizontal phase represented figures is generated, and a correspondence relation is generated. A feature is that a code is generated and characters are classified by the code.
【0017】請求項2記載の発明では、前記コードは、
少なくとも線の発生を表す第1の文字と、線の消失を表
す第2の文字と、線の合流を表す第3の文字と、線の分
岐を表す第4の文字と、変化のない線を表す第5の文字
とを組み合わせてなることを特徴としている。According to a second aspect of the invention, the code is
At least a first character indicating the occurrence of a line, a second character indicating the disappearance of the line, a third character indicating the joining of the lines, a fourth character indicating the branch of the line, and a line that does not change It is characterized in that it is formed by combining it with the fifth character that represents it.
【0018】請求項3記載の発明では、縦位相表現によ
る文字の分類と、請求項1に記載の文字の分類とを組み
合わせたことを特徴としている。The invention according to claim 3 is characterized in that the character classification according to the vertical phase representation and the character classification according to claim 1 are combined.
【0019】[0019]
【作用】2値化処理部では、画像を読み取って2値化
し、ランレングスデータ生成部においてランデータが生
成され、横位相表現データ生成部では、隣接する列のラ
ンレングスデータから位相変化ペアを抽出して横位相表
現を生成する。依存関係生成部は、横位相表現から依存
関係(グラフは、4種類のノード、白枝、黒枝、スター
ト、エンドからなる)を生成する。sedinコード生
成部は、依存関係から“s”,“e”,“d”,
“i”,“n”とコンマの6文字の組み合わせからなる
コードを出力し、文字認識部では、sedinコードに
よって文字を大分類する。これにより、モデルd,pに
ついての分類が可能になる。In the binarization processing unit, the image is read and binarized, and the run length data generation unit generates run data. In the horizontal phase expression data generation unit, the phase change pair is generated from the run length data of the adjacent columns. Extract to generate a horizontal phase representation. The dependency relationship generation unit generates a dependency relationship (the graph includes four types of nodes, white branches, black branches, start, and end) from the horizontal phase representation. The sedin code generation unit determines "s", "e", "d", from the dependency relationship.
A code consisting of a combination of six characters "i" and "n" and a comma is output, and the character recognition unit roughly classifies the characters by the sedin code. As a result, the models d and p can be classified.
【0020】[0020]
【実施例】以下、本発明の一実施例を図面を用いて具体
的に説明する。図1は、本発明の実施例のブロック構成
図である。図において、1は、画像を読み取って2値化
する2値化処理部、2は、2値化された画像データから
ランレングスデータを生成するランレングスデータ生成
部、3は、隣接する列のランレングスデータから位相変
化ペアを抽出して横位相表現を生成する横位相表現デー
タ生成部、4は、横位相表現から依存関係を生成する依
存関係生成部、5は、依存関係からsedinコードを
生成するsedinコード生成部、6は、文字認識部で
ある。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be specifically described below with reference to the drawings. FIG. 1 is a block diagram of an embodiment of the present invention. In the figure, 1 is a binarization processing unit that reads an image and binarizes it, 2 is a run-length data generation unit that generates run-length data from binarized image data, 3 is an adjacent column A horizontal phase expression data generation unit 4 that generates a horizontal phase expression by extracting a phase change pair from the run length data, a dependency relationship generation unit 4 that generates a dependency relationship from the horizontal phase expression, and a sedin code from the dependency relationship. The generated sedin code generation unit 6 is a character recognition unit.
【0021】ここで、2値化処理部1、ランレングスデ
ータ生成部2は、前掲した出願に記載されたものと同一
の機能、構成を有するものである。また、本実施例で
は、横位相表現(つまり隣合う二列の接続状態の変化に
着目して得た縦位相表現)を用いているが、前掲した出
願に記載された縦位相表現と本質的な違いはない。図2
は、横位相表現の例とそのトポロジーコードを示す。Here, the binarization processing unit 1 and the run length data generation unit 2 have the same functions and configurations as those described in the above-mentioned application. Further, in the present embodiment, the horizontal phase expression (that is, the vertical phase expression obtained by paying attention to the change in the connection state of two adjacent columns) is used, but it is essentially the same as the vertical phase expression described in the above-mentioned application. There is no difference. Figure 2
Shows an example of horizontal phase representation and its topology code.
【0022】ところで、横位相表現で手書き数字を分類
しようとすると、数字の3に対して多量のモデルができ
る(約13000字の手書き数字データに対して240
種類)。この中には、同一のモデルとみなすことができ
るグループが多数出現する。図3は、同一のモデルとみ
なすことができる10種類の異なるトポロジーコードの
例を示す。前述したモデルd,pに限定しても、数字3
のモデルは79種類となり、このモデルをd,pの詳細
分類に用いると記憶すべきモデル数が非常に多くなる。
そこで、本実施例では、図3に示した例に対し、同一の
文字列を出力する、トポロジーコードに代わる接続状態
の表現方法として、以下に詳述するsedinコードを
提案するものである。By the way, when trying to classify handwritten numbers by the horizontal phase expression, a large number of models can be created for the number 3 (240 for handwritten number data of about 13,000 characters).
type). In this, many groups that can be regarded as the same model appear. FIG. 3 shows examples of 10 different topology codes that can be regarded as the same model. Even if limited to the models d and p described above, the number 3
There are 79 types of models, and if this model is used for the detailed classification of d and p, the number of models to be stored becomes very large.
In view of this, the present embodiment proposes the sedin code described below in detail as a method of expressing the same character string as the connection state alternative to the topology code, which is an alternative to the topology code shown in FIG.
【0023】〈sedinコード〉sedinコード
は、図形の接続状態を一つの文字列で表現したもので、
これは幾つかのトポロジーコードを「同じ」とみなして
得た同値類別でもある。sedinコードは、“s”,
“e”,“d”,“i”,“n”およびコンマの6文字
からなり、コンマで区切られた各部分を“スライス”と
呼ぶ。<Sedin code> The sedin code expresses the connection state of figures by one character string.
This is also an equivalence classification obtained by regarding some topology codes as “same”. The sedin code is "s",
Each part composed of 6 characters "e", "d", "i", "n" and a comma, and separated by a comma is called a "slice".
【0024】sedinコードは、図4に示すように、
各スライスが表す接続状態を横につなげて得られた接続
状態を表している。各スライスは、コンマ以外の文字列
からなるが、これらはそれぞれ図5に示す接続状態を示
す。すなわち、sは、線の発生(Start)であり、
eは、線の消失(End)であり、dは、合流(Dec
rease)であり、iは、分岐(Increase)
であり、nは、変化のない線(No change)で
ある。スライスの接続状態は、図6に示すように、各文
字の表すグラフをその順序で上から下に並べたものであ
る。The sedin code is, as shown in FIG.
The connection state obtained by horizontally connecting the connection states represented by the slices is shown. Each slice consists of a character string other than commas, and these indicate the connection state shown in FIG. 5, respectively. That is, s is the generation of a line (Start),
e is the disappearance of the line (End), and d is the confluence (Dec).
i) and i is a branch (Increase)
And n is a line without change (No change). As shown in FIG. 6, the connection state of slices is a graph in which each character is arranged in that order from top to bottom.
【0025】sedinコードは、以下に詳述するよう
にして生成される。まず、横位相表現から依存関係グラ
フが作成され、次いで、この依存関係グラフから文字列
であるsedinコードが生成される。The sedin code is generated as described in detail below. First, a dependency graph is created from the horizontal phase representation, and then a sedin code that is a character string is generated from this dependency graph.
【0026】〈依存関係グラフ〉依存関係グラフの例を
図7に示す。このグラフは、有向グラフであり、図8の
図形、および図2の横位相表現に対応している。図7の
依存関係グラフは、4種類のノード(前述したs,e,
i,d)と2種類の枝(細線で表された白枝と太線で表
された黒枝)とstart、endからなる。枝を0〜
16の番号で表し、ノードをA〜Hの記号で表してい
る。また、枝2,5,8,10,12,13,14は黒
枝で、枝0,1,3,4,6,7,9,11,15,1
6は白枝であり、各枝は、接続状態が変化しない白ラン
または黒ランの連なりに対応する。<Dependency Graph> An example of the dependency graph is shown in FIG. This graph is a directed graph and corresponds to the figure in FIG. 8 and the horizontal phase representation in FIG. The dependency graph of FIG. 7 has four types of nodes (s, e,
i, d), two types of branches (white branches represented by thin lines and black branches represented by thick lines), and start and end. 0 to branches
It is represented by the number 16 and the nodes are represented by symbols A to H. The branches 2, 5, 8, 10, 12, 13, 14 are black branches, and the branches 0, 1, 3, 4, 6, 7, 9, 11, 15, 1 are
6 is a white branch, and each branch corresponds to a series of white runs or black runs whose connection state does not change.
【0027】また、依存関係グラフのノードは、それぞ
れ図9の極値点(輪郭点のy座標が極大値あるいは極小
値となる部分)に対応していて、依存関係グラフのエッ
ジは、それぞれ図10の各領域に対応していて、これら
の横方向の接続関係を表したものが依存関係グラフであ
る。Further, the nodes of the dependency graph correspond to the extreme points (portions where the y-coordinates of the contour points are the maximum value or the minimum value) of FIG. 9, and the edges of the dependency graph are respectively shown in the figure. The dependency relationship graph corresponds to each of the ten areas and represents the connection relationship in the horizontal direction.
【0028】依存関係グラフのノードは、接続状態の変
化するところに対応して作られる。ノードには、一本の
枝を入力とし、三本の枝を出力するものと、三本の枝を
入力とし、一本の枝を出力する、2種類のノードがあ
り、前者のノードを増加ノード、後者のノードを減少ノ
ードと呼ぶ。図11に示すように、一つのノードでは表
現できない接続状態変化点は、基本となる増加ノードと
減少ノードを組み合わせることによって表現する。従っ
て、図12に示す図形は、本来、図13に示すような依
存関係グラフで表すべきであるが、これを基本ノードに
変換して、図14のように表す。The nodes of the dependency graph are created corresponding to the change of the connection state. There are two types of nodes: one that inputs one branch and outputs three branches, and one that inputs three branches and outputs one branch. The node and the latter node are called reduced nodes. As shown in FIG. 11, a connection state change point that cannot be expressed by one node is expressed by combining a basic increasing node and a decreasing node. Therefore, the figure shown in FIG. 12 should originally be represented by a dependency graph as shown in FIG. 13, but this is converted into a basic node and represented as shown in FIG.
【0029】また、依存関係グラフは、次のような形式
でメモリなどに保存される。すなわち、各枝の番号を用
いて全ての増加ノード、減少ノードを図15に示すよう
に記録する。なお、この図には、ノードのタイプが書か
れていないが、実際にはこれらもメモリに格納される。
また、左端の枝の番号は0とする。図15の各行(つま
り、各増加ノード、減少ノードに対応するフィールド)
を依存関係ルールと呼び、枝の順序は重要な情報である
ので、保存される。The dependency graph is stored in a memory or the like in the following format. That is, all increasing nodes and decreasing nodes are recorded as shown in FIG. 15 using the numbers of the branches. Although the node types are not shown in this figure, they are actually stored in the memory.
The number of the leftmost branch is 0. Each row in FIG. 15 (that is, fields corresponding to each increasing node and decreasing node)
Is called a dependency rule, and the order of the branches is important information, so it is preserved.
【0030】〈依存関係生成部〉以下に、依存関係を生
成する方法について説明する。本実施例の生成手法は、
図7に示す依存関係を左右二つに分ける「断面」が、左
から右に移動していくという、モデルによって作成され
る。この断面は、図16に示すように、上から下に枝番
号が連なったものであり、リストの形式で格納され、以
降これを断面リストという。断面リスト上の各ノード
は、依存関係の枝に相当し、枝番号を持ち、以降これを
断面ノードという。<Dependency Relationship Generation Unit> A method of generating a dependency relationship will be described below. The generation method of this embodiment is
The “cross section” that divides the dependency relationship shown in FIG. 7 into two parts, left and right, is created by a model that moves from left to right. As shown in FIG. 16, this cross section is a series of branch numbers from top to bottom and is stored in the form of a list, and this is hereinafter referred to as a cross section list. Each node on the cross-section list corresponds to a branch of the dependency relationship and has a branch number, and this is hereinafter referred to as a cross-section node.
【0031】図17、図18、図19は、依存関係を生
成する処理フローチャートである。本手法では、「原画
像は白地に黒の図形であり、端に触れていない」ことを
前提にしている。断面リストの初期状態は、「id=0
の枝(断面ノード)一つ」である。そして、位相変化ペ
アを越える度に、断面リストが右に移動し、依存関係ル
ールが作られる。終了時の断面リストは、「id=nの
断面ノード(枝)一つ」となる。なお、このnを記録す
ることにより、以後の処理が若干簡単になる。FIG. 17, FIG. 18, and FIG. 19 are processing flow charts for generating a dependency relationship. In this method, it is premised that "the original image is a black figure on a white background and the edges are not touched". The initial state of the cross section list is "id = 0.
One branch (section node) ”. Then, each time the phase change pair is exceeded, the cross-section list moves to the right, and a dependency rule is created. The section list at the end is “one section node (branch) with id = n”. Incidentally, by recording this n, the subsequent processing is slightly simplified.
【0032】枝の番号(つまり断面ノードの番号)は、
処理フローチャート中の「断面ノードの生成」ステップ
で付与される。断面ノード生成時には、前回生成した断
面ノードの番号を記録しておき、それより一つ多い番号
を持つノードを生成する。この処理によって、「枝」の
認識と枝番号の割り付けが行われることになる。The branch number (that is, the section node number) is
It is given in the step of "generation of section node" in the processing flowchart. When a cross-section node is generated, the number of the cross-section node generated last time is recorded, and a node having a number one more than that is generated. By this processing, the "branch" is recognized and the branch number is assigned.
【0033】以下に、図20に示す横位相表現から図1
5に示す依存関係を生成する場合を具体例にして説明す
る。図20の横位相表現において、g0,g1は、始め
の2つの位相変化ペアを表し、図21は、各位相変化ペ
アg0,g1の内部表現であり、101〜112はそれ
ぞれスタンプを示し、各スタンプ間の直線はブランチを
示す。The horizontal phase representation shown in FIG.
A case where the dependency shown in FIG. 5 is generated will be described as a specific example. In the horizontal phase representation of FIG. 20, g0 and g1 represent the first two phase change pairs, FIG. 21 is an internal representation of each phase change pair g0 and g1, and 101 to 112 represent stamps, respectively. The straight line between stamps indicates a branch.
【0034】図17のステップ001において、断面リ
ストが図22(a)のように初期化される。図22にお
いて、201から207で示される数字0から6は、断
面ノード番号であり、最初の断面ノード番号は、id=
0となる。ステップ002では、図20の初めの位相変
化ペアg0(=g)が処理対象となる。ステップ003
では、u=(図21のスタンプ101)、d=(図21
のスタンプ102)とされる。ステップ004では、c
n=(図22(a)の201)とされる。In step 001 of FIG. 17, the section list is initialized as shown in FIG. In FIG. 22, numerals 0 to 6 denoted by 201 to 207 are section node numbers, and the first section node number is id =
It becomes 0. In step 002, the first phase change pair g0 (= g) in FIG. 20 is processed. Step 003
Then, u = (stamp 101 in FIG. 21), d = (FIG. 21
Stamp 102). In step 004, c
n = (201 in FIG. 22A) is set.
【0035】ステップ005では、uもdもnilでな
いので、ステップ006に進む。ステップ006におい
ては、uのnextが存在し、且つuのnextのブラ
ンチ数が0で、且つuのnextのnextの最初のブ
ランチがdであるかがチェックされ、この場合、uのn
extが存在しないので、ステップ008に進む。ステ
ップ008で、d(=スタンプ102)のnextは、
スタンプ103であり存在し、スタンプ103のブラン
チ数は0であり、d(=スタンプ102)のnextの
next(=スタンプ104)の最初のブランチはu
(=101)であるので、ステップ009に進む。図1
9は、ステップ009の処理を示す。At step 005, since neither u nor d is nil, the routine proceeds to step 006. In step 006, it is checked whether u next exists, the number of branches of u next is 0, and the first branch of next of u next is d, and in this case, n of u
Since ext does not exist, the process proceeds to step 008. In step 008, the next of d (= stamp 102) is
The stamp 103 exists, the number of branches of the stamp 103 is 0, and the first branch of the next (= stamp 104) of d (= stamp 102) is u.
Since (= 101), the process proceeds to step 009. Figure 1
9 indicates the processing of step 009.
【0036】図19のステップ015において、まず、
断面ノードが3つ生成される。このノード生成時に、こ
れまで使われていない枝番号を、これら3つのノードに
割り当てる。これまで使われているidは0のみである
ので、ここでは1,2,3が割り当てられる。これらの
idを用いて、図15の最初の行である、 0−>1,2,3 という依存関係ルールが作成され、出力される。In step 015 of FIG. 19, first,
Three cross-section nodes are generated. When this node is generated, branch numbers that have not been used so far are assigned to these three nodes. Since the only id that has been used so far is 0, 1, 2, 3 are assigned here. Using these ids, a dependency rule of 0-> 1,2,3, which is the first line in FIG. 15, is created and output.
【0037】次いで、ステップ016において、断面リ
ストの変形が行われ、図22(a)の断面リストが図2
2(b)になる。ステップ017で、cnを3つの断面
ノードの内、最後のノードとし(cn=204)、d
(=スタンプ102)を、dのnextのnext、つ
まりd=スタンプ104とする。Next, in step 016, the section list is modified so that the section list of FIG.
2 (b). In step 017, cn is set as the last node of the three cross-section nodes (cn = 204), and d
Let (= stamp 102) be the next of d's next, that is, d = stamp 104.
【0038】図17のステップ005に戻り、ステップ
005で、u=101,d=104であるので、ステッ
プ006に進み、uのnextは存在しないので、ステ
ップ008に進み、ステップ008で、dのnextは
存在しないので、ステップ010に進む。Returning to step 005 in FIG. 17, since u = 101 and d = 104 in step 005, the process proceeds to step 006. Since there is no next of u, the process proceeds to step 008, and at step 008, d Since next does not exist, the process proceeds to step 010.
【0039】ステップ010で、uは、uのnextと
され、つまりu=nilとされ、dについてもd=ni
lとされ、cnについてもcn=nil(end)とさ
れる。ステップ005で、uもdもnilであるので、
ステップ011に進み、全ての位相変化ペアについて処
理が終了していないので(この時点では、位相変化ペア
g0のみの処理が終了)、ステップ002に戻る。In step 010, u is next to u, that is, u = nil, and d is also d = ni.
1 and cn is also set to cn = nil (end). Since u and d are both nil in step 005,
The process proceeds to step 011 and the processing is not completed for all the phase change pairs (at this point, the processing for only the phase change pair g0 is completed), and therefore the process returns to step 002.
【0040】ステップ002で、次の位相変化ペアg
を、g=g1とする。ステップ003で、u=スタンプ
105、d=スタンプ108とされる。ステップ004
で、断面リストは、図22(b)に示すものであるの
で、cn=202(最初のノード)となる。ステップ0
05で、u=105≠nil,d=108≠nilであ
るので、ステップ006に進む。ステップ006で、u
のnextは、スタンプ106で存在するが、スタンプ
106のブランチ数は1であるので、ステップ006の
条件を満たさず、ステップ008に進む。In step 002, the next phase change pair g
Is set to g = g1. In step 003, u = stamp 105 and d = stamp 108. Step 004
Since the cross section list is that shown in FIG. 22B, cn = 202 (first node). Step 0
In 05, since u = 105 ≠ nil and d = 108 ≠ nil, the process proceeds to step 006. In step 006, u
Next exists in the stamp 106, but since the number of branches of the stamp 106 is 1, the condition of step 006 is not satisfied and the process proceeds to step 008.
【0041】ステップ008で、dのnextはスタン
プ109で存在し、スタンプ109のブランチ数は0
で、dのnextのnextはスタンプ110であり、
スタンプ110の最初のブランチはスタンプ105であ
り、これはuに等しいので、ステップ008の条件が満
たされ、ステップ009に進む。In step 008, the next of d exists in the stamp 109, and the number of branches of the stamp 109 is 0.
And the next of d's next is the stamp 110,
The first branch of stamp 110 is stamp 105, which is equal to u, so the condition of step 008 is met and step 009 is proceeded to.
【0042】図19のステップ015において、新しく
生成された断面ノードのidをそれぞれ4,5,6とす
る。cn=202(id=1)であるので、図15の第
2行の依存関係ルール 1−>4,5,6 が生成され、出力される。ステップ016で、断面リス
トの変形が行われ、図22(b)から図22(c)にな
る。ステップ017で、cn=207(図22(c))
とされるとともに、d=スタンプ110とされる。In step 015 of FIG. 19, the ids of the newly generated cross section nodes are set to 4, 5, and 6, respectively. Since cn = 202 (id = 1), the dependency rule 1-> 4,5,6 in the second row of FIG. 15 is generated and output. In step 016, the cross-section list is modified so as to be changed from FIG. 22B to FIG. In step 017, cn = 207 (FIG. 22 (c))
And d = stamp 110.
【0043】図17のステップ005に戻り、ステップ
005で、u=105≠nil,d=110≠nilで
あるので、ステップ006に進む。ステップ006で、
uのnextは、スタンプ106で存在するが、スタン
プ106のブランチ数は1であるので、ステップ006
の条件を満たさず、ステップ008に進む。Returning to step 005 in FIG. 17, since u = 105 ≠ nil and d = 110 ≠ nil in step 005, the process proceeds to step 006. In step 006,
The u next exists in the stamp 106, but since the number of branches of the stamp 106 is 1, step 006.
If the condition is not satisfied, the process proceeds to step 008.
【0044】ステップ008で、dのnextはスタン
プ111で存在するが、スタンプ111のブランチ数は
1であるので、ステップ008の条件を満たさず、ステ
ップ010に進む。ステップ010で、u=106,d
=111,cn=203(図22(c))とされる。In step 008, the next of d exists in the stamp 111, but since the number of branches of the stamp 111 is 1, the condition of step 008 is not satisfied and the process proceeds to step 010. In step 010, u = 106, d
= 111, cn = 203 (FIG. 22 (c)).
【0045】ステップ005ではYesとなり、ステッ
プ006ではNoとなって、ステップ008に進み、ス
テップ008でNoとなって、ステップ010に進み、
ステップ010で、u=スタンプ107、d=スタンプ
112,cn=204(図22(c))とされる。ステ
ップ005に戻り、ステップ005は、Yes、ステッ
プ006は、No、ステップ008は、Noとなり、ス
テップ010で、u=nil,d=nil,cn=ni
l(end)とされる。ステップ005に戻り、u=n
il,d=nilなので、Noとなり、ステップ011
で、まだ、位相変化ペアg0,g1までしか処理が終了
していないので、ステップ002に戻る。以下、同様に
して、全ての位相変化ペアについて処理され、依存関係
が生成される。Step 005 is Yes, Step 006 is No, Step 008 is proceeded to, Step 008 is No, Step 010 is proceeded to,
In step 010, u = stamp 107, d = stamp 112, and cn = 204 (FIG. 22C) are set. Returning to step 005, step 005 is Yes, step 006 is No, step 008 is No, and in step 010, u = nil, d = nil, cn = ni.
It is set to l (end). Return to step 005, u = n
Since il and d = nil, the result is No, and step 011
Since the processing has been completed up to the phase change pair g0 and g1, the process returns to step 002. Hereinafter, in the same manner, all the phase change pairs are processed to generate the dependency relationship.
【0046】〈sedinコードの生成〉前述した依存
関係から文字列であるsedinコードを生成する方法
について以下、説明する。sedinコードは、エネル
ギー伝搬という考え方に基づいて作成される。すなわ
ち、依存関係グラフ上で、各ノードおよび枝に「活性化
している/していない」の二つの状態を定め、初期状態
を「全てのノードおよび枝は非活性状態」とする。図1
5に示す依存関係をグラフで表すと、図23になる(こ
の図は、既に説明した図7と同一の図である)。<Generation of sedin code> A method of generating a sedin code which is a character string from the above-described dependency will be described below. The sedin code is created based on the idea of energy propagation. That is, two states of "activated / not activated" are defined for each node and branch on the dependency graph, and the initial state is set to "all nodes and branches are inactive state". Figure 1
A graphical representation of the dependency shown in FIG. 5 is FIG. 23 (this figure is the same as FIG. 7 already described).
【0047】まず、全てのノード、枝を非活性状態とす
る。図23の全てのノード(AからH)、枝(0から1
6)は非活性状態にある。なお、図24は、ノードと枝
の活性、非活性状態を表した図である。First, all nodes and branches are made inactive. All nodes (A to H), branches (0 to 1) in FIG.
6) is in the inactive state. Note that FIG. 24 is a diagram showing active and inactive states of nodes and branches.
【0048】ステップ1で、まず枝0を活性化させる
(図25)。ステップ2で、活性化しているノードから
出る全ての枝を活性化させる。この時点では活性化して
いるノードはないので、何もしない。ステップ3で、入
力の枝全てが活性化しているノードを全て活性化させ
る。入力の枝全てが活性化しているノードは、Aのみで
あるので、ノードAを活性化させる(図26)。ステッ
プ4で、今新しく活性化したノードのコードを上から順
に出力する。上から順に辿るとき、これらノードにつな
がっていない黒枝があったら、その位置にコード“n”
を出力する。今新しく活性化したノードのコード“s”
を出力する。In step 1, branch 0 is first activated (FIG. 25). In step 2, all branches coming out of the activated node are activated. At this point, no node is active, so do nothing. In step 3, all the nodes whose input branches are activated are activated. Since only A is the node in which all the input branches are activated, node A is activated (FIG. 26). In step 4, the code of the newly activated node is output in order from the top. When tracing from top to bottom, if there is a black branch that is not connected to these nodes, the code is "n" at that position.
Is output. Code "s" of newly activated node
Is output.
【0049】ステップ5で、全てのノードが活性化して
いたら処理を終了する。まだ、活性化していないノード
があるので、処理を続ける。ステップ6で、コンマを出
力する(全出力は、“s,”となる)。ステップ2に戻
り、枝1,2,3が活性化される(図27)。ステップ
3で、ノードBが活性化される(図28)。ステップ4
で、図28を、ノードBを辿るように左右に切ると、こ
の断面は黒枝2を通るので、コード“sn”が出力され
る。ステップ5で処理が続行され、ステップ6でコンマ
を出力する(全出力は、“s,sn”となる)。ステッ
プ2に戻り、枝4,5が活性化される(図29)。以
下、同様に処理され、最終的にはコード“s,sn,n
sn,nin,dd,ne,e”が生成される。In step 5, if all the nodes have been activated, the process ends. Since there is a node that is not activated yet, the processing is continued. In step 6, a comma is output (the total output is "s,"). Returning to step 2, the branches 1, 2, 3 are activated (FIG. 27). In step 3, Node B is activated (FIG. 28). Step 4
Then, when FIG. 28 is cut to the left and right so as to follow the node B, this section passes through the black branch 2, so the code "sn" is output. The process is continued in step 5, and a comma is output in step 6 (all outputs are "s, sn"). Returning to step 2, the branches 4 and 5 are activated (FIG. 29). Thereafter, the same processing is performed, and finally the code “s, sn, n
sn, nin, dd, ne, e ″ are generated.
【0050】本sedinコードは、横位相表現よりも
若干粗く文字を分類することができるが、図3で示した
水準に比べてまだ、詳細に分類しているので、本実施例
では、更に文字を粗く分類するための追加規則(1)、
(2)を用いる。この規則は、上記したステップ3で再
帰的に働く。以後、コードsにあたる増加ノードを、ノ
ードs、コードeにあたる減少ノードを、ノードeと書
く。Although this sedin code can classify characters slightly coarser than the horizontal phase representation, since it classifies characters in detail compared to the level shown in FIG. 3, in the present embodiment, further character classification is performed. An additional rule (1) for roughly classifying
(2) is used. This rule works recursively in step 3 above. Hereinafter, the increasing node corresponding to the code s will be referred to as a node s, and the decreasing node corresponding to the code e will be referred to as a node e.
【0051】(1);ノードsが活性化して、かつそれ
により生じた白枝の活性化により、別のノードsの入力
が活性化されるならば、そのノードも活性化させる。 (2);ノードeが活性化して、かつそれにより生じた
白枝の活性化により、別のノードeの全ての入力が活性
化されるならば、そのノードも活性化させる。(1) If the node s is activated and the white branch generated thereby activates the input of another node s, that node is also activated. (2); If the node e is activated and the activation of the white branch caused thereby activates all the inputs of another node e, that node is also activated.
【0052】この他にも、例えば次のような追加規則も
ある。 (3);ノードeに関する規則であり、図30に示すよ
うに、ノードeの入力枝を上から順にa,b,cとし、
出力枝をdとする。ステップ3において、a,b,c全
てではなく、真中の黒枝bのみが活性化していれば、そ
のノードeを活性化させるが、ステップ2において、枝
dは、a,b,c全てが活性化するまで活性化させな
い。In addition to this, there are the following additional rules, for example. (3); a rule relating to node e. As shown in FIG. 30, the input branches of node e are a, b, and c in order from the top,
Let the output branch be d. In step 3, if only the middle black branch b is activated instead of all a, b, and c, the node e is activated, but in step 2, the branch d has all a, b, and c. Do not activate until activated.
【0053】図31、図32、図33は、依存関係(図
15)から上記した追加規則(1)、(2)を用いて、
sedinコードを生成する処理フローチャートであ
る。本実施例の処理においては、どこまで活性化してい
るかを断面リストを用いて管理している。すなわち、断
面リストの左側は活性化しているノード、右側は活性化
していないノードを意味する。31, 32, and 33 use the above-mentioned additional rules (1) and (2) from the dependency relationship (FIG. 15),
It is a processing flowchart which produces | generates a sedin code. In the processing of the present embodiment, the extent of activation is managed using a cross section list. That is, the left side of the cross-section list means an activated node and the right side means a non-activated node.
【0054】関数make−string(図32、3
3)は、断面リストを変形することでノードの活性化を
管理するとともに、コードs,i,e,dを出力する。
前述した追加規則は、この関数中に組み込まれている。
また、ステップ中に、ルールの左辺、右辺とあるのは、
図15の依存関係ルールにおける矢印を挾んだ左辺と右
辺を指す。また、増加ノードに対応したルールの場合、
左辺は1個、右辺は3個のidからなり、減少ノードに
対応したルールの場合、左辺は3個、右辺は1個のid
からなる。Function make-string (FIGS. 32 and 3)
3) manages the activation of the node by transforming the section list and outputs the codes s, i, e, d.
The additional rules mentioned above are incorporated into this function.
Also, in the step, the left side and right side of the rule are
It refers to the left side and the right side of the dependency rule in FIG. Also, in the case of a rule corresponding to an increasing node,
The left side consists of 1 id, and the right side consists of 3 ids. In the case of a rule corresponding to a decreasing node, the left side has 3 ids and the right side has 1 id.
Consists of.
【0055】また、ステップ中に、「断面ノードcnに
マッチするルールはあるか?」という、記述の「ルー
ル」は、依存関係ルールであり、「マッチする」は、次
のことを意味する。すなわち、ルールの左辺が1項の場
合、断面ノードcnのidが左辺と等しいこと、ルール
の左辺が3項の場合、cn,cnのnext,cnのn
extのnextの3つの断面ノードが存在し、かつそ
れらのidがこの順番でルールの左辺に対応しているこ
とを意味する。In the step, the "rule" in the description "Is there a rule that matches the section node cn?" Is a dependency rule, and "match" means the following. That is, if the left side of the rule is one term, the id of the cross-section node cn is equal to the left side, and if the left side of the rule is three terms, cn, cn next, and n of cn.
It means that there are three cross-section nodes next to ext, and their ids correspond in this order to the left side of the rule.
【0056】以下に、図15の依存関係から追加規則
(1)、(2)を用いて、sedinコード“sss,
nin,dd,ee”を生成する例を挙げて、図31、
図32、図33の処理動作を説明する。Below, using the additional rules (1) and (2) from the dependency relation of FIG. 15, the sedin code “sss,
As an example of generating "nin, dd, ee", FIG.
The processing operation of FIGS. 32 and 33 will be described.
【0057】図31のステップ301において、依存関
係ルールの検索を高速かつ容易に行うために索引を作
る。ステップ302で、図34(a)に示す断面リスト
を作成する。ステップ303で、使用していないルール
がまだ(この時点では全部)残っているので、Noとな
り、ステップ304に進む。In step 301 of FIG. 31, an index is created in order to search the dependency rule quickly and easily. In step 302, a cross section list shown in FIG. 34 (a) is created. In step 303, the unused rules still remain (all at this point), so the result is No and the process proceeds to step 304.
【0058】ステップ304で、cn=401(図34
(a))となる。ステップ305で、枝の白黒を管理す
る変数whiteに1を代入する。ステップ306で、
cn=401≠(end)であるので、Noとなり、ス
テップ307に進み、ステップ307で、cnのidは
0であり、0のみを入力とするルール(0−>1,2,
3)が存在するので、yesとなり、ステップ308に
進む。In step 304, cn = 401 (FIG. 34)
(A)). In step 305, 1 is substituted for the variable white that manages the black and white of the branch. In step 306,
Since cn = 401 ≠ (end), the determination result is No, the process proceeds to step 307, and in step 307, the id of cn is 0, and a rule (0-> 1, 2,
Since 3) exists, the answer is yes, and the process proceeds to step 308.
【0059】ステップ308では、cn=401,wh
ite=1で関数make−stringを呼び出す
(call 1)。呼び出された関数make−str
ing(図32)において、渡された引数をcn=40
1,white=1とし(ステップ314)、ステップ
315で、マッチしたルール(0−>1,2,3)は増
加ノードのものであるので、yesとなり、ステップ3
16になる。ステップ316で、生成した断面ノードc
1,c2,c3にルールの右辺のid(1,2,3)を
割り当て、断面リストを図34(b)のように変形す
る。In step 308, cn = 401, wh
The function make-string is called with ite = 1 (call 1). Called function make-str
In ing (FIG. 32), the passed argument is cn = 40
1, white = 1 (step 314), and in step 315, since the matched rule (0-> 1,2,3) belongs to the increasing node, it becomes yes, and step 3
Become 16. Section node c generated in step 316
IDs (1, 2, 3) on the right side of the rule are assigned to 1, c2, c3, and the cross-section list is transformed as shown in FIG. 34 (b).
【0060】ステップ317で、c3=404なので、
cn=404とする。ステップ318で、white=
1であるので、Yesとなり、ステップ319で、c1
=402なので、cc=402とする。ステップ320
で、ccのidは1であり、1のみを入力とするルール
が存在し(1−>4,5,6)、かつこのルールは増加
ノードのものであるので、Yesとなって、ステップ3
21に進み、cc=402,white=1を引数とし
て関数make−stringを再帰的に呼び出す(c
all 2)。Since c3 = 404 in step 317,
Let cn = 404. In step 318, white =
Since it is 1, it becomes Yes, and in step 319, c1
= 402, so cc = 402. Step 320
Since the id of cc is 1, and there is a rule that inputs only 1 (1-> 4, 5, 6), and this rule is for the increasing node, the answer is Yes, and Step 3
21, the function make-string is recursively called with cc = 402 and white = 1 as arguments (c
all 2).
【0061】ステップ314で、ローカル変数cn=4
02,white=1とする。ステップ315で、ルー
ルは増加ノードのものだったので、Yesとなって、ス
テップ316で、断面ノードc1,c2,c3を生成
し、これらのidをルールの右辺(4,5,6)の値と
する。断面リストは、図34(c)のように変形され
る。ステップ317で、c3=407なので、cn=4
07とする。ステップ318で、white=1なので
Yesとなり、ステップ319で、c1=405なの
で、cc=405とする。ステップ320で、ccのi
dは4であり、4のみを入力とするルールは存在しな
い。また、ccのnext(406),ccのnext
のnext(407)のidはそれぞれ5,6であり、
4,5,6を入力とするルールを探しても存在しないの
で、noとなって、ステップ322に進み、ステップ3
22でコード“s”を出力する。In step 314, the local variable cn = 4
02, white = 1. In step 315, since the rule belongs to the increasing node, it becomes Yes, and in step 316, the cross-section nodes c1, c2, and c3 are generated, and these ids are the values on the right side (4,5, 6) of the rule. And The section list is transformed as shown in FIG. In step 317, c3 = 407, so cn = 4
07. In step 318, since white = 1, the result is Yes, and in step 319, c1 = 405, and therefore cc = 405. In step 320, i in cc
d is 4, and there is no rule that inputs 4 only. Also, cc next (406), cc next
Next (407) has ids 5 and 6, respectively,
Even if a rule with 4, 5, 6 as input is searched for, it does not exist, so the result is no, the process proceeds to step 322, and step 3
At 22, the code "s" is output.
【0062】ステップ323で、c3=407なので、
cc=407とする。ステップ324で、ccのidは
6であり、ccのみを入力とするルールは存在し(6−
>7,8,9)、かつまたそのルールは増加ノードのも
のであるので、Yesとなってステップ325に進む。
ステップ325で、cc=407,white=1を引
数として関数make−stringを再帰的に呼び出
す(call 3)。Since c3 = 407 in step 323,
Let cc = 407. In step 324, the id of cc is 6, and there is a rule that inputs cc only (6-
> 7,8,9) and again the rule is for the increasing node, so Yes and go to step 325.
In step 325, the function make-string is recursively called with cc = 407 and white = 1 as arguments (call 3).
【0063】ステップ314で、ローカル変数cn=4
07,white=1とする。ステップ315で、ルー
ルは増加ノードのものだったので、Yesとなって、ス
テップ316で、断面ノードc1,c2,c3を生成
し、これらのidをルールの右辺(7,8,9)の値と
する。断面リストは、図34(d)のように変形され
る。ステップ317で、c3=410なので、cn=4
10とする。ステップ318で、white=1なので
Yesとなり、ステップ319で、c1=408なの
で、cc=408とする。ステップ320で、ccのi
dは7であり、7のみを入力とするルールは存在しな
い。また、ccのnext(409),ccのnext
のnext(410)のidはそれぞれ8,9であり、
7,8,9を入力とするルールを探しても存在しないの
で、noとなって、ステップ322に進み、ステップ3
22でコード“s”を出力し、ここまでの処理で出力し
たコードは“ss”となる。In step 314, the local variable cn = 4
07 and white = 1. In step 315, since the rule belongs to the increasing node, it becomes Yes, and in step 316, the cross-section nodes c1, c2, and c3 are generated, and these ids are the values on the right side (7, 8, 9) of the rule. And The section list is transformed as shown in FIG. In step 317, c3 = 410, so cn = 4
Set to 10. In step 318, since white = 1, the result is Yes, and in step 319, c1 = 408, so cc = 408. In step 320, i in cc
d is 7, and there is no rule that inputs 7 only. Also, cc next (409), cc next
Next (410) has ids of 8 and 9, respectively.
Even if a rule with 7, 8 and 9 as input is searched for, it does not exist, so the result is no, the process proceeds to step 322, and
The code “s” is output at 22, and the code output in the processing up to this point becomes “ss”.
【0064】ステップ323で、cc=410となる。
ステップ324で、ccのidは9であり、9のみを入
力とするルールは存在しない。また9,2,3を入力と
するルールもないので、Noとなって、ステップ327
に進み、リターンバリューとしてcn=410を返す。At step 323, cc = 410.
In step 324, the id of cc is 9, and there is no rule that inputs 9 alone. Further, since there is no rule for inputting 9, 2 and 3, the result is No and step 327
And returns cn = 410 as the return value.
【0065】call 3に対して制御が戻る(ステッ
プ325)。変数cc,c1,c2,c3,white
はそれぞれ呼び出した時点の値、すなわち、407、4
05、406、407、1に戻る。cnは、呼び出した
関数のリターンバリューすなわち、410となる。ステ
ップ327で、リターンバリューとして410を返す。The control returns to the call 3 (step 325). Variables cc, c1, c2, c3, white
Are the values at the time of calling, that is, 407, 4
Return to 05, 406, 407, and 1. cn is the return value of the called function, that is, 410. In step 327, 410 is returned as the return value.
【0066】call 2に対して制御が戻る(ステッ
プ321)。変数cn,cc,c1,c2,c3,wh
iteはそれぞれ呼び出した時点の値、すなわち、40
4、402、402、403、404、1に戻る。ステ
ップ322で、コード“s”を出力し、これまでの全出
力は、“sss”となる。Control is returned to call 2 (step 321). Variables cn, cc, c1, c2, c3, wh
ite is the value at the time of each call, that is, 40
Return to 4, 402, 402, 403, 404, 1. In step 322, the code "s" is output, and all the outputs so far are "sss".
【0067】ステップ323で、cc=404となる。
ステップ324で、ccのidは3、3のみを入力とす
るルールはない。またccのnextはendなので、
減少ノードに相当するルールもないので、Noとなり、
ステップ327でリターンバリューとして404を返
す。At step 323, cc = 404.
In step 324, there is no rule that only inputs 3 and 3 as the id of cc. Also, because the cc next is end,
Since there is no rule corresponding to the decreasing node, it becomes No,
In step 327, 404 is returned as the return value.
【0068】call 1に制御が戻る(ステップ30
8)。変数whiteは呼び出した時点の値、すなわち
1となる。cnはリターンバリュー404となる。ステ
ップ311で、1−white=0(すなわち黒)、c
n=endとなる。ステップ306で、cn=endで
あるのでYesとなり、ステップ312で、コンマを出
力する。これまでの処理によって全出力は“sss”と
なる。Control returns to call 1 (step 30).
8). The variable white has a value at the time of calling, that is, 1. cn becomes the return value 404. In step 311, 1-white = 0 (that is, black), c
n = end. In step 306, since cn = end, the result is Yes, and in step 312, a comma is output. All the outputs become "sss" by the processing so far.
【0069】以下、同様に処理して、最終的には、図1
5のルールからコード“sss,nin,dd,ee”
が得られる。Thereafter, the same processing is performed, and finally, FIG.
Code "sss, nin, dd, ee" from rule 5
Is obtained.
【0070】上記したようにして生成される、本発明の
sedinコードの特徴について説明すると、例えば、
図35に示す図形を従来からの手法である有向グラフで
表現すると、図36に示すグラフとなる。ところが、図
37、図38、図39に示すような図形に対しては全て
同一の有向グラフになり、各図形の分類が不可能にな
る。この対して、本発明のsedinコードによると、
図37、図38、図39に示す図形の分類が可能にな
る。図40、図41、図42は、それぞれ図37、図3
8、図39に対応した依存関係グラフとsedinコー
ドを示す。The features of the sedin code of the present invention generated as described above will be explained.
When the figure shown in FIG. 35 is represented by a directed graph which is a conventional method, the graph shown in FIG. 36 is obtained. However, for the graphics as shown in FIGS. 37, 38, and 39, all have the same directed graph, making it impossible to classify the graphics. On the other hand, according to the sedin code of the present invention,
The figures shown in FIGS. 37, 38, and 39 can be classified. 40, 41, and 42 are shown in FIGS. 37 and 3, respectively.
8 shows a dependency graph and sedin code corresponding to FIG. 39.
【0071】また、図43に示すように、本発明のse
dinコードの各文字と、スタンプとを対応させること
ができるという特徴もある。従って、スタンプを指定
し、そのスタンプに対応するランの位置が分かるので、
本出願人が既に提案した「giデータによる分類」と同
様の方法で、つまり例えば、選択されたスタンプからL
1,L2を算出し、L1/L2によって文字を分類する
ことができる。Further, as shown in FIG.
Another feature is that each character of the din code can be associated with a stamp. Therefore, you can specify the stamp and know the position of the run corresponding to that stamp.
In the same manner as the “classification by gi data” that the applicant has already proposed, that is, for example, from the selected stamp, L
It is possible to calculate 1, L2 and classify characters by L1 / L2.
【0072】さらに、各スタンプは、グラフ上で接続し
ている相手が分かるので(前掲した出願に記載のnex
t,prev,partner,branchの各情
報)、sedinコード中の文字に対応したスタンプの
next−>partnerに対応したランの位置情報
を利用したり、あるいはあるスタンプのbranch
[0]−>next−>nextに対応したランの位置
情報などを利用して、文字を分類することも可能であ
る。Further, since each stamp can identify the connected party on the graph (see the above-mentioned application
(t, prev, partner, branch information), the position information of the run corresponding to the next-> partner of the stamp corresponding to the character in the sedin code is used, or the branch of a stamp is used.
It is also possible to classify characters by using the position information of the run corresponding to [0]->next-> next.
【0073】本実施例の文字認識部6においては、モデ
ルd,pに関して次のようにして文字の分類を行う。す
なわち、 (1);縦位相表現のトポロジーコードによって文字を
大分類し、さらにgiデータおよび方向コードを用いた
詳細分類によって認識可能な文字については、該手法に
よって認識を行う。 (2);上記した(1)の手法で認識できない文字につ
いては、図形を横位相で表現し、sedinコードによ
り分類する。 (3);さらに、sedinコード中の各文字に対応す
る原図形中のランの位置を用いて「giデータによる分
類」と同様の方法で分類を行う。In the character recognition unit 6 of this embodiment, the characters are classified for the models d and p as follows. That is, (1); the characters are roughly classified according to the topology code of the vertical phase representation, and the characters that can be recognized by the detailed classification using the gi data and the direction code are recognized by the method. (2); For the characters that cannot be recognized by the above method (1), the figure is expressed in the horizontal phase and classified by the sedin code. (3); Further, using the position of the run in the original figure corresponding to each character in the sedin code, classification is performed by the same method as "classification by gi data".
【0074】横位相表現だけで13549字の手書き数
字データを大分類しようとすると、数字“3”のモデル
が多くなる(240種類)が、これを横位相で表現し、
sedinコードにより分類すると、34種類のモデル
で済む。モデルd,pの数字“3”に限定すると、横位
相のみで79種類のモデルが必要となるのに対し、se
dinコードでは8種類のモデルで済む。If the handwritten numeral data of 13549 characters is roughly classified only by the horizontal phase representation, the number of models of the number "3" increases (240 types), but this is expressed by the horizontal phase.
If classified by the sedin code, 34 types of models are sufficient. If models d and p are limited to the number “3”, 79 types of models are required only for the lateral phase, whereas se
With the din code, only 8 models are required.
【0075】また、上記したデータ全体を縦位相表現の
トポロジーコードで分類すると、293種類のモデルが
必要になり、このうちトポロジーコードのみで判別でき
ないものが56種類、12576文字であった。Further, if the above-mentioned whole data is classified by the topology code of the vertical phase representation, 293 kinds of models are required, and of these, 56 kinds and 12576 characters cannot be identified only by the topology code.
【0076】これに対して、横位相表現のsedinコ
ードで文字を大分類した場合、sedinコードは27
8種類、このうちsedinコードのみで判別できない
ものが38種類、9942文字であった。すなわち、本
実施例の横位相表現のsedinコードの方が分解能が
高く、これにより横位相表現のsedinコードを用い
て図形の大分類を行う文字認識方法が実現可能となっ
た。On the other hand, when the characters are roughly classified by the horizontal phase expression sedin code, the sedin code is 27.
Eight types, of which 38 types and 9,942 characters could not be identified only by the sedin code. That is, the horizontal phase expression sedin code of this embodiment has a higher resolution, which makes it possible to realize a character recognition method for classifying figures by using the horizontal phase expression sedin code.
【0077】[0077]
【発明の効果】以上、説明したように、請求項1記載の
発明によれば、横位相表現された図形の接続関係に対応
したコードによって文字を大分類しているので、分類の
精度が高く、またモデル数を少なくすることができる。As described above, according to the invention described in claim 1, since the characters are largely classified by the code corresponding to the connection relation of the figures expressed in the horizontal phase, the classification accuracy is high. Also, the number of models can be reduced.
【0078】請求項2記載の発明によれば、sedin
コードを用いてモデルd,pを分類することが可能とな
り、分類されたデータ量を少なくすることができる。According to the invention of claim 2, sedin
It becomes possible to classify the models d and p using a code, and the amount of classified data can be reduced.
【0079】請求項3記載の発明によれば、縦位相表現
による分類と横位相表現による分類とを組み合わせて文
字を分類しているので、大分類の精度を向上させること
ができる。According to the third aspect of the invention, since the characters are classified by combining the classification by the vertical phase representation and the classification by the horizontal phase representation, the accuracy of the major classification can be improved.
【図1】本発明の実施例のブロック構成図である。FIG. 1 is a block diagram of an embodiment of the present invention.
【図2】横位相表現の例とそのトポロジーコードを示す
図である。FIG. 2 is a diagram showing an example of a horizontal phase expression and its topology code.
【図3】同一のモデルとみなすことができる10種類の
異なるトポロジーコードの例を示す図である。FIG. 3 is a diagram illustrating an example of ten different topology codes that can be regarded as the same model.
【図4】本発明のsedinコードを例示した図であ
る。FIG. 4 is a diagram illustrating a sedin code of the present invention.
【図5】sedinコードを構成する各文字(s,e,
i,d,n)の接続状態を示す図である。[Fig. 5] Each character (s, e,
It is a figure which shows the connection state of i, d, n).
【図6】sedinコードと、sedinコードの表す
接続状態を示す図である。FIG. 6 is a diagram showing a sedin code and a connection state represented by the sedin code.
【図7】依存関係グラフの例を示す図である。FIG. 7 is a diagram showing an example of a dependency graph.
【図8】図7の依存関係グラフに対応する図である。8 is a diagram corresponding to the dependency graph of FIG. 7. FIG.
【図9】依存関係グラフのノードに対応した極値点を示
す図である。FIG. 9 is a diagram showing extreme points corresponding to nodes in the dependency graph.
【図10】依存関係グラフのエッジに対応した図形の各
領域を示す図である。FIG. 10 is a diagram showing each region of a graphic corresponding to an edge of a dependency graph.
【図11】一つのノードでは表現できない接続状態変化
点を示す図である。FIG. 11 is a diagram showing connection state change points that cannot be expressed by one node.
【図12】図形の一例を示す図である。FIG. 12 is a diagram showing an example of a graphic.
【図13】図12の図形を依存関係グラフで表した図で
ある。FIG. 13 is a diagram showing the graphic of FIG. 12 as a dependency graph.
【図14】図13の依存関係グラフを基本ノードに変換
した図である。FIG. 14 is a diagram in which the dependency graph of FIG. 13 is converted into basic nodes.
【図15】依存関係をメモリに格納するときの形式を示
す図である。FIG. 15 is a diagram showing a format in which a dependency relationship is stored in a memory.
【図16】断面リストを示す図である。FIG. 16 is a diagram showing a cross-section list.
【図17】依存関係を生成処理するフローチャートであ
る。FIG. 17 is a flowchart of a dependency relationship generation process.
【図18】図17のフローチャートの一部詳細フローで
ある。FIG. 18 is a partial detailed flow of the flowchart of FIG.
【図19】図17のフローチャートの一部詳細フローで
ある。19 is a partial detailed flow of the flowchart of FIG.
【図20】横位相表現の一例を示す図である。FIG. 20 is a diagram showing an example of horizontal phase representation.
【図21】位相変化ペアの内部表現図である。FIG. 21 is an internal representation diagram of a phase change pair.
【図22】(a),(b),(c)は、断面リストが変
形する過程を示す図である。22 (a), (b), and (c) are diagrams showing a process in which the cross-section list is deformed.
【図23】全てのノード、枝が非活性状態にある依存関
係グラフである。FIG. 23 is a dependency graph in which all nodes and branches are inactive.
【図24】ノードと枝の活性、非活性状態を表した図で
ある。FIG. 24 is a diagram showing active and inactive states of nodes and branches.
【図25】ノード、枝が非活性状態から活性状態に変化
する依存関係グラフである。FIG. 25 is a dependency graph in which nodes and branches change from an inactive state to an active state.
【図26】ノード、枝が非活性状態から活性状態に変化
する依存関係グラフである。FIG. 26 is a dependency graph in which nodes and branches change from an inactive state to an active state.
【図27】ノード、枝が非活性状態から活性状態に変化
する依存関係グラフである。FIG. 27 is a dependency graph in which nodes and branches change from an inactive state to an active state.
【図28】ノード、枝が非活性状態から活性状態に変化
する依存関係グラフである。FIG. 28 is a dependency graph in which nodes and branches change from an inactive state to an active state.
【図29】ノード、枝が非活性状態から活性状態に変化
する依存関係グラフである。FIG. 29 is a dependency graph in which nodes and branches change from an inactive state to an active state.
【図30】ノードeに関する規則を説明する図である。FIG. 30 is a diagram illustrating a rule regarding node e.
【図31】sedinコードを生成する処理フローチャ
ートである。FIG. 31 is a processing flowchart for generating a sedin code.
【図32】関数make−stringの処理フローチ
ャートである。FIG. 32 is a processing flowchart of a function make-string.
【図33】関数make−stringの処理フローチ
ャートの続きである。FIG. 33 is a continuation of the processing flowchart of the function make-string.
【図34】(a),(b),(c),(d)は、断面リ
ストの変形を示す図である。34 (a), (b), (c) and (d) are diagrams showing modifications of the cross-section list.
【図35】図形の一例である。FIG. 35 is an example of a graphic.
【図36】図35の図形を有向グラフで表した図であ
る。36 is a diagram showing the figure of FIG. 35 as a directed graph.
【図37】有向グラフ表現では区別できない図形の例で
ある。FIG. 37 is an example of a figure that cannot be distinguished by the directed graph representation.
【図38】有向グラフ表現では区別できない図形の例で
ある。FIG. 38 is an example of a figure that cannot be distinguished by the directed graph representation.
【図39】有向グラフ表現では区別できない図形の例で
ある。FIG. 39 is an example of a figure that cannot be distinguished by the directed graph representation.
【図40】図37に対応した依存関係グラフとsedi
nコードを示す図である。40 is a dependency graph and sedi corresponding to FIG.
It is a figure which shows an n code.
【図41】図38に対応した依存関係グラフとsedi
nコードを示す図である。41 is a dependency graph and sedi corresponding to FIG.
It is a figure which shows an n code.
【図42】図39に対応した依存関係グラフとsedi
nコードを示す図である。42 is a dependency graph and sedi corresponding to FIG. 39;
It is a figure which shows an n code.
【図43】sedinコードの各文字とスタンプの対応
を説明する図である。FIG. 43 is a diagram for explaining the correspondence between each character of the sedin code and the stamp.
【図44】2値化された画像データである。FIG. 44 is binarized image data.
【図45】図44の縦位相表現図である。45 is a vertical phase representation diagram of FIG. 44.
【図46】図45をスタンプで表した図である。FIG. 46 is a view showing FIG. 45 by a stamp.
【図47】縦位相表現のトポロジーコードを示す図であ
る。FIG. 47 is a diagram showing a topology code for vertical phase expression.
【図48】数字2の縦位相表現とトポロジーコードを示
す図である。FIG. 48 is a diagram showing a vertical phase representation of number 2 and a topology code.
【図49】トポロジーコードのみでは文字を分類できな
い例を示す図である。FIG. 49 is a diagram showing an example in which characters cannot be classified only by the topology code.
【図50】モデル(d,Id,IA,VI,V,p)の
giデータによる分類を説明する図である。FIG. 50 is a diagram illustrating classification of models (d, Id, IA, VI, V, p) by gi data.
1 2値化処理部 2 ランレングスデータ生成部 3 横位相表現データ生成部 4 依存関係生成部 5 sedinコード生成部 6 文字認識部 1 Binarization processing unit 2 Run length data generation unit 3 Horizontal phase expression data generation unit 4 Dependency relation generation unit 5 sedin code generation unit 6 Character recognition unit
Claims (3)
データを生成し、隣接する列間のランデータパターンが
異なる位相変化ペアを抽出し、該位相変化ペアで構成さ
れた横位相表現を用いて文字を認識する方法において、
前記横位相表現された図形の接続関係を生成し、該接続
関係に対応したコードを生成し、該コードによって文字
を分類することを特徴とする文字認識方法。1. A run data is generated for each column from binarized image data, a phase change pair having a different run data pattern between adjacent columns is extracted, and a horizontal phase representation composed of the phase change pair. In the method of recognizing characters using
A character recognition method characterized in that a connection relation of the figures expressed in the horizontal phase is generated, a code corresponding to the connection relation is generated, and characters are classified by the code.
す第1の文字と、線の消失を表す第2の文字と、線の合
流を表す第3の文字と、線の分岐を表す第4の文字と、
変化のない線を表す第5の文字とを組み合わせてなるこ
とを特徴とする請求項1記載の文字認識方法。2. The code includes at least a first character indicating occurrence of a line, a second character indicating disappearance of the line, a third character indicating confluence of the lines, and a fourth character indicating branching of the lines. And the
The character recognition method according to claim 1, wherein the character recognition method is a combination with a fifth character representing a line that does not change.
1に記載の文字の分類とを組み合わせたことを特徴とす
る文字認識方法。3. A character recognition method, characterized in that the character classification according to the vertical phase representation and the character classification according to claim 1 are combined.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4095007A JPH05290217A (en) | 1992-04-15 | 1992-04-15 | Character recognition method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4095007A JPH05290217A (en) | 1992-04-15 | 1992-04-15 | Character recognition method |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05290217A true JPH05290217A (en) | 1993-11-05 |
Family
ID=14125882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4095007A Pending JPH05290217A (en) | 1992-04-15 | 1992-04-15 | Character recognition method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05290217A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738519B1 (en) | 1999-06-11 | 2004-05-18 | Nec Corporation | Character recognition apparatus |
-
1992
- 1992-04-15 JP JP4095007A patent/JPH05290217A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738519B1 (en) | 1999-06-11 | 2004-05-18 | Nec Corporation | Character recognition apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4654873A (en) | System and method for segmentation and recognition of patterns | |
JPH05290217A (en) | Character recognition method | |
JP2915204B2 (en) | How to represent binary figures | |
JPH0458073B2 (en) | ||
JP4313178B2 (en) | Method and apparatus for creating vectorized figures | |
JPH11203406A (en) | Character segmenting method, character recognizing method, character recognition device, and recording medium | |
JPH11191135A (en) | Japanese/english discriminating method for document image, document recognizing method and recording medium | |
JP2963508B2 (en) | Character extraction device | |
JP2991750B2 (en) | Dictionary creation method | |
GB2259798A (en) | Recognizing handwritten characters | |
JP2671533B2 (en) | Character string recognition method and apparatus thereof | |
Ablameyko et al. | Recovering Engineering Drawing Entities from Vector Data | |
JP2763033B2 (en) | Character recognition method | |
JPH05120483A (en) | Character recognizing device | |
Ablameyko et al. | Recognising Cartographic Objects | |
JPH0348379A (en) | Character recognizing system | |
JP2867650B2 (en) | Symbol candidate area detection method | |
JP2727755B2 (en) | Character string recognition method and apparatus | |
Mandal et al. | Detection and segmentation of tables and math-zones from document images | |
JPS59128681A (en) | Character reader | |
KR940012182A (en) | Candidate Character Classification Method using Left and Right Distances in Character Recognition | |
JPS6037954B2 (en) | Feature extraction processing method | |
JPS6326915B2 (en) | ||
JPS5822779B2 (en) | Character pattern classification method | |
JPH0685180B2 (en) | Figure input device |