JP2940446B2 - ストロークパターン整合装置 - Google Patents
ストロークパターン整合装置Info
- Publication number
- JP2940446B2 JP2940446B2 JP7231043A JP23104395A JP2940446B2 JP 2940446 B2 JP2940446 B2 JP 2940446B2 JP 7231043 A JP7231043 A JP 7231043A JP 23104395 A JP23104395 A JP 23104395A JP 2940446 B2 JP2940446 B2 JP 2940446B2
- Authority
- JP
- Japan
- Prior art keywords
- stroke
- matching
- line segment
- partial
- storage unit
- 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.)
- Expired - Fee Related
Links
Landscapes
- Character Discrimination (AREA)
- Image Analysis (AREA)
Description
ークパターンの整合装置に関し、特にストロークパター
ンと2次元のビットマップ画像データを整合する装置に
関する。
装置は、オンラインデータとして座標点列のデータの形
式で入力された文字データに対する文字認識のために用
いられている。例えば、「迫江:Rubber String Matc
hing法による手書き文字認識、電子通信学会パターン認
識と学習研究会資料PRL74−20、1974年」に
示されるように、時系列として入力されたストロークパ
ターンと白黒の2値画像として入力されたパターンとの
整合をとることにより、文字認識を実行する方法が記述
されている。
端子101から入力された時系列のストロークパターン
はストローク記憶部102に保存される。この際に、ス
トロークパターンはK個の時系列の線分データから構成
されているとし、各時点での線分データをBkとする。
Bkは、DiK、Djk、Wk、Mk、Nk、Ik1、
Ik2、Jk1、Jk2の9個の要素からなっている。
DiKとDjkは、線分データの方向を示す単位ベクト
ルを表わす。単位は画素数であるが、距離の定義はユー
クリッド距離でも、市街地距離でも、どのような距離で
もよい。8隣接距離を用いた場合の、8方向の方向単位
ベクトルは、(DiK、Djk)の組み合わせは、
(1,0),(1,1),(0,1),(−1,1),
(−1,0),(−1,−1),(0,−1),(1,
−1)の8種類のうちの何れかとなる。必ずしもこのよ
うな方向単位ベクトルである必要はない。Wkは線分の
重要度を表わす係数で、適当に定めることができる。通
常のストロークでは、Wkを1とし、ストロークの終点
と他のストローク始点を結ぶ隠れストロークの上にある
Wkでは0としてもよい。MkとNkは、当該線分の最
短長と最大長を表わし、当該ストロークを伸長した場合
にもNkを越えてはならない。また、当該ストロークを
短縮した際にも、Mkより短くしてはならない。Ik
1、Jk1は当該ストロークの終点が存在する矩形領域
の左上の点の座標を示す。また、Ik2、Jk2は当該
ストロークの終点が存在する矩形領域の右下の点の座標
を示す。K個の線分データから1つのストロークのデー
タは成り立っているが、そのようなストロークパターン
が複数個含まれても同様に扱うことができる。
プ画像データが入力され、画像記憶部307に記憶され
る。当該ビットマップ画像データは、各画素が値を持つ
ものならば、2値でも多値でもどちらでもよい。ただ
し、値が大きいほうが線らしい、つまり黒い線であるこ
とを表わすものとする。そのビットマップ画像データを
A(x,y)として表現する。これは横方向に第x画素
目、縦方向に第y画素目である画素の値を表わす。
記憶部102のストロークパターンと画像記憶部307
のビットマップ画像データを用いて整合を実行する。線
分がある画素を通過した場合の当該画素での整合度を、
当該画素の値とする。第1番目の線分B1から順に、第
k番目の線分Bkの終点が存在する尤度として、当該画
素での整合度Gk(x,y)を求める。最終的に、第K
番目の線分BKの整合度GK(x,y)を求めて、最大
値を与える整合度を持つ画素(X,Y)が、最も当該ス
トロークが2次元ビットマップ画像データに一致した場
合の終点の位置を与える。本整合度は、下記の式(1)
式(2)式(3)によって表現される漸化式の計算を実
行して求められる。初期値であるG0(x,y)の設定
は、式(1)に従った計算を実行して得る。
ズを表わす。次に、式(2)に従った計算の実行により
第k番目の線分Bk単体の整合の程度Hk(Ik,J
k,Lk)を求める。この場合には、第k番目の線分の
終点の座標が(Ik,Jk)であった場合に、当該線分
の長さがLkとした場合の整合として求める。このとき
に当該線分の終点(Ik,Jk)は、先に述べた線分デ
ータBkの要素である終点の範囲に属さねばならない。
つまり、IkはIk1以上でIk2以下でなければなら
ず、JkはJk1以上でJk2以下でなければならな
い。
xをx=1からLkまでの総和を求めることを表わす。
(2)と式(3)をくり返し適用した計算を実行して、
最終的に第K番目の線分の終了点までの整合を実行す
る。
値を求めることに相当する。この際に最大値を与えたL
の値をLkとして記憶しておく。
目から第K番目の線分までの整合度を表わすGK(x,
y)の中から最大値GKを求める。その値と記憶されて
いる各線分の長さLkを用いて整合度のスコアを式
(4)に従って計算して求める。
**2は、xの二乗を表わす。求められたスコアSを端
子109から出力する。
たパターンが最も近いクラスを求めるためには、入力パ
ターンがストロークパターンで、対象のクラス集合が2
次元画像データとして表現されている場合には、入力ス
トロークパターンを端子101から入力して、認識対象
のクラスのデータを順次端子106から入力して、その
整合度のスコアを端子109から得て、その最大値を与
えるパターンのクラスを、認識結果とする。逆に入力パ
ターンが2次元画像データで、対象のクラス集合がスト
ロークパターンとして表現されている場合には、入力2
次元画像データを端子106から入力して、認識対象の
クラスのストロークパターンデータを順次端子101か
ら入力して、その整合度のスコアを端子109から得
て、その最大値を与えるパターンのクラスを、認識結果
とする。スコアの探索の際に、線分の方向(DiK,D
jk)のみに加算をおこなってスコアを計算するだけで
なく式(2)の計算の際に、少し方向を変えた場合のス
コアも計算してより大きいほうを選択することにより、
少々の方向変化を許容した整合を実行することができ
る。
パターン整合装置では、個々のストローク内の線分は、
その終点に既に整合されたスコアが表示されるだけで、
既に整合を終了した線分群がどのように整合されてその
終点に至ったかの情報は得られない。そのために図6に
示すような「2」のストロークパターンを図7のような
「7」の2次元ビットマップ画像データに整合した場合
に、図6の最終線分601は折れ曲がって図8の最終線
分801のようにその前線分と同じ場所を通るように変
形される。このために図6のストロークパターンは、図
7の同一線分を2回分通過してスコアを計算するので、
図7の「7」の2次元ビットマップ画像データに「7」
のストロークパターンを整合した場合よりも高いスコア
を出力し、誤った認識結果を与えてしまう。
るために、本発明のストロークパターン整合装置は、ス
トロークパターンを記憶するストロークパターン記憶手
段と2次元ビットマップ画像データを記憶する画像記憶
手段を有し、ストロークパターンと2次元ビットマップ
画像データとを整合するストローク整合手段とスコア計
算手段によって構成されるストロークパターン整合装置
において、変形されたストロークを記憶する変形ストロ
ーク記憶手段と、変形ストロークに基づいて2次元ビッ
トマップ画像データを修正する差分画像生成手段と、差
分画像生成手段によって生成された差分画像に基づいて
整合度を計算するスコア計算手段とを備えている。
置は、ストロークパターンを記憶するストロークパター
ン記憶手段と2次元ビットマップ画像データを記憶する
画像記憶手段を有し、ストロークパターンと2次元ビッ
トマップ画像データとを整合するストローク整合手段と
スコア計算手段によって構成されるストロークパターン
整合装置において、ストロークパターンから特徴点を抽
出して部分ストローク分割する特徴点検出記憶手段と、
生成された部分ストロークを2次元ビットマップ画像デ
ータと整合する部分ストローク整合手段と、変形された
部分ストロークを記憶する部分変形ストローク記憶手段
と、部分変形ストロークに基づいて2次元ビットマップ
画像データを修正する部分差分画像生成手段と、部分差
分画像生成手段によって生成された差分画像を画像記憶
手段へ転送する部分と、全体的な整合を計算するスコア
計算手段を備えている。
整合装置は、ストロークパターンを記憶するストローク
パターン記憶手段と2次元ビットマップ画像データを記
憶する画像記憶手段を有し、ストロークパターンと2次
元ビットマップ画像データとを整合するストローク整合
手段とスコア計算手段によって構成されるストロークパ
ターン整合装置において、入力された2次元ビットマッ
プ画像データの特徴点を検出する特徴点生成記憶手段
と、変形されたストロークを記憶する変形ストローク記
憶手段と、変形ストロークが通過した特徴点を検出する
通過特徴点検出手段と、通過した特徴点に基づいて整合
度を修正して求めるスコア計算手段を備えている。
整合装置は、ストロークパターンを記憶するストローク
パターン記憶手段と2次元ビットマップ画像データを記
憶する画像記憶手段を有し、ストロークパターンと2次
元ビットマップ画像データとを整合するストローク整合
手段とスコア計算手段によって構成されるストロークパ
ーン整合装置において、ストロークパターンから特徴点
を抽出して部分ストローク分割する特徴点検出記憶手段
と、生成された部分ストロークを2次元ビットマップ画
像データと整合する部分ストローク整合手段と、部分変
形ストロークが通過する特徴点を検出する通過特徴点検
出手段と、変形された部分ストロークを記憶するととも
に、通過特徴点検出手段からの信号に従って部分ストロ
ークの整合度を修正する部分変形ストローク記憶手段
と、全体的な整合を計算するスコア計算手段を備えてい
る。
して説明する。図1は、本発明の一実施例を示すブロッ
ク図である。本発明のストロークパターン整合装置は、
ストローク記憶部102と、画像記憶部107と、スト
ローク整合部103と、変形ストローク記憶部104
と、差分画像生成部108と、スコア計算部105とか
らなる。
ークパターンはストローク記憶部102に保存される。
この際に、ストロークパターンはK個の時系列の線分デ
ータから構成されているとし、各時点での線分データを
Bkとする。Bkは、DiK、Djk、Wk、Mk、N
k、Ik1、Ik2、Jk1、Jk2の9個の要素から
なっている。DiKとDjkは、線分データの方向を示
す単位ベクトルを表わす。単位は画素数であるが、距離
の定義はユークリッド距離でも、市街地距離でも、どの
ような距離でもよい。8隣接距離を用いた場合の、8方
向の方向単位ベクトルは、(DiK,Djk)の組み合
わせは、(1,0),(1,1),(0,1),(−
1,1),(−1,0),(−1,−1),(0,−
1),(1,−1)の8種類のうちの何れかとなる。必
ずしもこのような方向単位ベクトルである必要はない。
Wkは線分の重要度を表わす係数で、適当に定めること
ができる。通常のストロークでは、Wkを1とし、スト
ロークの終点と他のストローク始点を結ぶ隠れストロー
クの上にあるWkでは0としてもよい。MkとNkは、
当該線分の最短長と最大長を表わし、当該ストロークを
伸長した場合にもNkを越えてはならない。また、当該
ストロークを短縮した際にも、Mkより短くしてはなら
ない。Ik1、Jk1は当該ストロークの終点が存在し
うる矩形領域の左上の点の座標を示す。また、Ik2、
Jk2は当該ストロークの終点が存在しうる矩形領域の
右下の点の座標を示す。K個の線分データから1つのス
トロークのデータは成り立っているが、そのようなスト
ロークパターンが複数個含まれても同様に扱うことがで
きる。その場合には、Kの値はストローク毎に異なって
いてもよい。
プ画像データが入力され、画像記憶部107に記憶され
る。当該ビットマップ画像データは、各画素が値を持つ
ものならば、2値でも多値でもどちらでもよい。ただ
し、値が大きいほうが線らしい、つまり黒い線であるこ
とを表わすものとする。そのビットマップ画像データを
A(x,y)として表現する。これは横方向に第x画素
目、縦方向に第y画素目である画素の値を表わす。
記憶部102のストロークパターンと画像記憶部107
のビットマップ画像データを用いて整合を実行する。線
分がある画素を通過した場合に当該画素での整合度を、
当該画素の値とする。第1番目の線分B1から順に第k
番目の線分Bkまでを整合した結果として、第k番目の
線分Bkの終点が存在する尤度として、当該画素での整
合度Gk(x,y)を求める。最終的に、第K番目の線
分BKの整合度GK(x,y)を求めて、最大値を与え
る整合度を持つ画素(X,Y)が、最も当該ストローク
が2次元ビットマップ画像データに一致した場合の終点
の位置を与える。本整合度は、前記従来技術の説明の式
(1)式(2)および後述の式(5)によって表現され
る漸化式の計算を実行して求められる。初期値であるG
0(x,y)の設定は、式(1)に従った計算を実行し
て得る。次に、式(2)に従った計算の実行により第k
番目の線分の整合の程度Hk(Ik,Jk,Lk)を求
める。この場合には、第k番目の線分の終点の座標が
(Ik,Jk)であった場合に、当該線分の長さがLk
とした場合の整合として求める。このときに当該線分の
終点(Ik,Jk)は、先に述べた線分データBkの要
素である終点の範囲に属さねばならない。つまり、Ik
はIk1以上でIk2以下でなければならず、JkはJ
k1以上でJk2以下でなければならない。ストローク
整合部103では、式(2)の計算の実行と同時に、第
k番目の線分の整合の際に、(Ik,Jk)座標を終点
として、線分の長さをLkとする線分の始点の座標をS
Ik(Ik,Jk,Lk)、SJk(Ik,Jk,L
k)として変形ストローク記憶部104へ転送する。
(2)と式(5)をくり返し適用した計算を実行して、
最終的に第K番目の線分の終了点までの整合を実行す
る。
値を求めることに相当する。この際に変形ストローク記
憶部104に最大値を与えたLの値をLkとして転送
し、変形ストローク記憶部104では(SIk(Ik,
Jk,Lk)、SJk(Ik,Jk,Lk))を始点座
標データ(SIk(Ik, Jk))、SJk(Ik,J
k))として記憶する。
終了した段階で、GK(x,y)の中から最大の値を持
つ座標X,Yを求めた後に、差分画像生成部108とス
コア計算部105が起動される。図9を用いてスコア計
算部105と差分画像生成部108の説明をする。
07から2次元ビットマップ画像データを差分画像記憶
部906に読み込む。また、スコア計算部105では、
変形ストローク記憶部104から、最終点である第K番
目の線分の終点である(X,Y)から始点座標データ
(SIK(X,Y),SJK(X,Y))を読みだし
て、線分始点終点記憶部901に記憶する。これらの第
K番目の線分の終点座標と始点座標を、線分生成部90
2に送る。線分生成部902では、当該線分の終点から
始点に向かって線分を引き、当該線分が通過する全ての
画素の値を差分画像記憶部906から読み出して、線分
スコア加算部903で順次スコア値TKに加算する。ま
た、終点と始点の間の距離を求めて、線分長記憶部90
5にPKとして記憶する。本実施例では、終点始点間の
距離をユークリッド距離で求めたが、どのような距離尺
度でも本質的な問題はない。線分生成部903では、始
点座標(x1,y1)と終点座標(x2,y2)を得た
ときに、dx=x2−x1とdy=y2−y1を計算し
て求め、dxの絶対値がdyの絶対値よりも大きいとき
とそれ以外の場合に分けて、線分の生成を行う。dxの
絶対値がdyの絶対値よりも大きい場合には、横方向に
x1からx2まで1画素づつ移動させて、各々のx座標
でのy座標の値をy=dy*(x−x1)/dx+y1
として計算して求める。また、dxの絶対値がdyの絶
対値よりも大きくない場合には、縦方向にy1からy2
まで1画素づつ移動させて、各々のy座標でのx座標の
値をx=dx*(y−y1)/dy+x1として計算し
て求める。これによって得られた(x,y)座標を差分
画像記憶部906に転送して、その座標での値を線分ス
コア計算部903に転送させる。このときに(x,y)
座標は一時的に差分画像記憶部906に保存される。
分画像記憶部906に一時的に記憶された2次元ビット
マップ画像データから、当該線分の周辺の画素の値を抑
制する。抑制の計算では、画素値から一定値を減算して
もよいし、一定係数をかけてもよい。抑制のしかたは本
質的な問題ではない。本実施例では、2次元ビットマッ
プ画像データの各画素の値が、1から−1をとる場合に
ついて説明する。線分生成部902で生成されて、差分
画像計算部907に記憶されている線分上の画素の座標
データを読みだしながら、差分画像の生成を実行する。
読みだされた座標を(x,y)として、当該画素を中心
とする半径aの円の内部に含まれる画素の値を差分画像
記憶部906から読みだし、その値から2を減算し、再
び差分画像記憶906の元の位置に記録する。半径aの
値は、実施例では3画素としたが、これは本質的な問題
ではないので、どのような値でもよい。また、抑制の方
法では、実施例では一定値の減算としたが、どのような
値でもよい。
K−1番目の線分の終点の座標でもあり、上記と同様
に、線分始点終点記憶部901では、第K番目の線分の
始点を第K−1番目の線分の終点として、変形ストロー
ク記憶部104から当該線分BK−1の始点座標を求め
記憶する。当該線分BK−1の始点終点を用いて、線分
生成部902では、線分上の座標値の集合を生成し、線
分スコア計算部903に転送して、スコア値Tk−1を
記憶する。同時に線分長記憶部905では始点終点間の
線分長を求めて、線分長PK−1として記憶する。続い
て差分画像生成部108中の差分画像計算部907を起
動して、当該線分BK−1が通過する画素の値を抑制す
る。
した段階では、第k番目の線分の終点の座標(Xk,Y
k)が得られている。線分始点終点記憶部901では、
変形ストローク記憶部104から、Xk,Ykから当該
線分の始点座標座標(SIk(Xk,Yk)、SJk
(Xk,Yk))を求める。これによって得られた当該
線分Bkの終点座標と始点座標を線分生成部902に転
送して、当該線分Bk上の座標値の集合を生成し、線分
スコア計算部903に転送して、スコア値Tkを計算し
て、結果を記憶する。同時に線分長記憶部905では始
点終点間の線分長を求めて、線分長Pkとして記憶す
る。続いて差分画像生成部108中の差分画像計算部9
07を起動して、当該線分Bkが通過する画素の値を抑
制する。
に、第1番目の線分まで、線分スコアの計算と、差分画
像の計算を繰り返して、第1番目の線分のスコア計算の
処理を終了した段階で、スコア計算部105内の線分ス
コア計算部903には、スコア値Tk(kは1からK)
が記憶され、線分長記憶部905には線分長Pk(kは
1からKまで)が記憶されている。ストロークスコア計
算部904では、最終的なスコアの計算を式(6)に従
って実行する。
**2は、xの二乗を表わす。求められたスコアSを端
子109から出力する。Wkは、ストローク記憶部10
2に記憶されている値を転送して、利用する。また、A
(x,y)は画像記憶部107に記憶されている修正さ
れていない入力パターンの値を用いる。
たパターンが最も近いクラスを求めるためには、入力パ
ターンがストロークパターンで、対象のクラス集合が2
次元画像データとして表現されている場合には、入力ス
トロークパターンを端子101から入力して、認識対象
のクラスのデータを順次端子106から入力して、その
整合度のスコアを端子109から得て、その最大値を与
えるパターンのクラスを、認識結果とする。逆に入力パ
ターンが2次元画像データで、対象のクラス集合がスト
ロークパターンとして表現されている場合には、入力2
次元画像データを端子106から入力して、認識対象の
クラスのストロークパターンデータを順次端子101か
ら入力して、その整合度のスコアを端子109から得
て、その最大値を与えるパターンのクラスを、認識結果
とする。スコアの探索の際に、線分の方向(DiK,D
jk)のみに加算をおこなってスコアを計算するだけで
なく式(2)の計算の際に、少し方向を変えた場合のス
コアも計算してより大きいほうを選択することにより、
少々の方向変化を許容した整合を実行することができ
る。
の際に、スコアGK(x,y)から最大値のみを選択し
て、差分画像の生成とスコアの再計算を実施したが、ス
コアGK(x,y)の極大値を複数選択して、各極大値
毎に差分画像の生成とスコアの再計算を実施し、得られ
たスコアの最大値を最終的な整合のスコアとして端子1
09から出力してもよい。
ク図を用いて説明する。本発明のストロークパターン整
合装置は、ストローク記憶部102と、画像記憶部20
7と、特徴点検出記憶部201と、部分ストローク整合
部203と、部分変形ストローク記憶部204と、部分
差分画像生成部208と、スコア計算部105とからな
る。
像データが入力され、画像記憶部107に記憶される。
当該ビットマップ画像データは、各画素が値を持つもの
ならば、2値でも多値でもどちらでもよい。ただし、値
が大きいほうが線らしい、つまり黒い線であることを表
わすものとする。そのビットマップ画像データをA
(x,y)として表現する。これは横方向に第x画素
目、縦方向に第y画素目である画素の値を表わす。
ークパターンはストローク記憶部102に保存される。
この際に、ストロークパターンはK個の時系列の線分デ
ータから構成されているとし、各時点での線分データを
Bkとする。Bkは、DiK、Djk、Wk、Mk、N
k、Ik1、Ik2、Jk1、Jk2の9個の要素から
なっている。これらは、図1の実施例で説明したものと
同じものとする。K個の線分データから1つのストロー
クのデータは成り立っているが、そのようなストローク
パターンが複数個含まれても同様に扱うことができる。
ロークパターンデータは、特徴点検出記憶部201に転
送される。特徴点検出記憶部201では、あらかじめ定
められた特徴を、ストロークパターンから検出する。本
実施例では、ストロークの屈曲点を、特徴点として選択
した。屈曲点を検出するためには、ストロークデータの
うちの第1番目の線分から第K番目の線分まで、順に方
向変化を累積して、一定しきい値を越える方向変化が検
出された場合に、その接続点を屈曲点として記憶する。
方向変化累積値として、初期的にD=0とする。第1番
目の線分と第2番目の線分の方向変化は、線分データの
うちの方向を示す要素Di1,Dj1とDi2,Dj2
をもちいて、式(7)に従った計算により方向変化を求
め累積する。
もので、単位はラジアンとする。また、Norm(x,
y)は、ベクトル(x,y)のノルムを与える関数とす
る。
算していき、kがrの時にDの絶対値がしきい値を越え
たとすると、第r番目の線分Brと第r+1番目の線分B
(r+1)との接続点を特徴点として検出し、記憶す
る。それと同時にD=0とリセットして、再びr+1か
ら昇順に方向変化量の累積を求めて、特徴点検出を繰り
返す。得られた特徴点は、その直前の線分の番号を記憶
する。例えば、第k1番目と第(k1)+1番目の線分
の間の点と第k2番目と第(k2)+1番目の線分の間の
点が特徴点として検出された場合には、特徴点検出記憶
部201では、r(1)=k1とr(2)=k2を記憶
する。本実施例では、特徴点検出のためのしきい値を、
π/2としたが、この値は本質的なものではない。ま
た、検出対象とする特徴点は、本実施例では屈曲点とし
たが、ストロークを一定長毎に区切る点でもよいし、線
分同士の交点、屈曲点、端点などの幾何的な特徴点を組
み合わせたものでもよいし、これらの幾何的な特徴点
と、一定長ごとの特徴点を組み合わせたもでもよい。特
徴点の検出方法は本質的な問題ではない。
明を行う。このとき検出されたn個の特徴点に接続する
線分の番号はr(1)からr(n)で、特徴点検出記憶
部201に記憶されているものとする。このときn個の
特徴点でストロークデータを区切り、得られたn+1個
の部分ストロークをSt(1)からSt(n+1)とし
て表わす。部分ストローク整合部203では、各部分ス
トロークを図1のストローク整合部103と同様の処理
で画像記憶部内の2次元ビットマップ画像データと整合
する。その整合の結果は、部分変形ストローク記憶部2
04に記憶される。部分変形ストローク記憶部204で
は、極大のスコアを与える点を複数個選択し、それを部
分差分画像生成部208に転送して、選択された複数個
のうちの1つを部分ストロークの最終点とした場合の差
分画像を生成し、画像記憶部207に転送し、記憶す
る。この記憶された差分画像は、次の部分ストロークの
整合に利用される。
合度のマップG0(x,y)を式(1)と同様にして初
期化する。第R番目の部分ストロークを実行する場合に
ついて説明する。既に第0番目から第R−1番目までの
部分ストロークの整合は終了しているものとする。第R
−1番目の部分ストロークのマッチングにおいてQ(R
−1)個の極大点が選択されているとすると、合計Q
(R−1)個の整合度のマップG(R−1)(x,y,
q)と合計Q(R−1)個の差分画像A(R−1)
(x,y,q)が生成されているものとする。ただし、
qは1からQ(R−1)までの自然数で、R−1番目の
部分ストロークを整合した際の極大点の番号を表わす。
整合度マップの集合のうちの1つを初期値として、同一
番号の差分画像を用いて第R番目の部分ストロークの整
合を実行し、その変形ストロークを部分変形ストローク
記憶部204に記憶するとともに、部分ストロークの最
終線分の整合後のスコアマップGK(x,y)から複数
の極大点を求め、第R番目の部分ストローク整合後の通
し番号で第q1番目の極大点を選択して、極大点以外を
抑制したスコアマップを生成してG(R)(x,y,q
1)として記憶するとともに、部分差分画像生成部20
8で極大点を最終点とするストローク部分を抑制した部
分差分画像A(R)(x,y,q1)を生成して画像記
憶部207へ転送記憶する。これと同時に第R番目の部
分ストロークに関して通し番号でq1番目の極大点は、
第R−1番目の部分ストロークに関して通し番号でq番
目の極大点に関して生成されたことを示すデータ(R,
q1,q)を部分変形ストローク記憶部204に記憶す
る。第R−1番目の部分ストロークのマッチングによっ
て生成されたQ(R−1)個の極大点に関する全てのス
コアマップG(R−1)(x,y,q)と部分差分画像
A(R−1)(x,y,q)に対して上記の処理をくり
返し実行する。第n+1番目の部分ストロークの整合を
終了した段階で、Q(n)枚のスコアマップG(n)
(x,y,q)の中で最大値を与える点を選択し、その
点のスコアをスコア計算部205に転送して最終スコア
を計算して端子109から出力する。
例の説明を行う。第R番目の部分ストロークの整合につ
いて説明する。
グにおいてQ(R−1)個の極大点が選択されていると
すると、合計Q(R−1)個の整合度のマップG(R−
1)(x,y,q)と合計Q(R−1)個の差分画像A
(R−1)(x,y,q)が生成されているものとす
る。ただし、qは1からQ(R−1)までの自然数で、
R−1番目の部分ストロークを整合した際の極大点の通
し番号を表わす。これらの整合度マップは部分変形スト
ローク記憶部204中の整合度マップ記憶部1001に
記憶されているものとする。Q(R−1)個の整合度マ
ップのすべてについて第R番目の部分ストロークの整合
を実行するが、ここでは既にq−1個の整合度マップに
ついての処理は終了し、既にQ(R)個の極大点が選択
されているものとする。Q(R)は、R−1番目の部分
ストロークの整合を終了した段階では、0である。
マップ記憶部1001から第q番目の整合度マップG
(R−1)(x,y,q)を読みだし、式(8)に従っ
て整合度の初期設定を実施する。
し、I,Jは入力画像のサイズを表わす。同時に累積線
分長記憶部1006でも、当該線分の直前の部分ストロ
ークの最終線分のデータを用いて、第R番目の部分スト
ローク用の累積線分長マップL(0,x,y)=La
(x,y,R−1,q)として初期化する。
として、部分ストローク整合部203では、ストローク
記憶部102のストロークパターンと画像記憶部207
の差分ビットマップ画像データA(R−1)(x,y,
q)を用いて整合を実行する。ただし、ここではA(R
−1)(x,y,q)を便宜的にA(x,y)として処
理手順を説明する。線分がある画素を通過した場合に当
該画素での整合度を、その画素の値とする。第1番目の
線分B1から順に、第k番目の線分の終点が存在する尤
度として、その画素での整合度Gk(x,y)を求め
る。最終的に、第K番目の線分BKの整合度GK(x,
y)を求める。本整合度は、式(2)式(5)によって
表現される漸化式の計算を実行して求められる。式
(2)に従った計算の実行により第k番目の線分の整合
の程度Hk(Ik,Jk,Lk)を求める。この場合に
は、第k番目の線分の終点の座標が(Ik,Jk)であ
った場合に、当該線分の長さをLkとした場合の整合と
して求める。このときに当該線分の終点(Ik,Jk)
は、先に述べた線分データBkの要素である終点の範囲
に属さねばならない。つまり、IkはIk1以上でIk
2以下でなければならず、JkはJk1以上でJk2以
下でなければならない。部分ストローク整合部203で
は、式(2)の計算の実行と同時に、第k番目の線分の
整合の際に、(Ik,Jk)座標を終点として、線分の
長さをLkとする線分の始点の座標をSIk(Ik,J
k,Lk)、SJk(Ik,Jk,Lk)として記憶す
る。さらに、式(5)の計算を実行する際には、整合度
の最大値を与えたLの値をLmとして、式(2)で得ら
れたSIk(x,y,Lm)、SJk(x,y,Lm)
をSI(k,x,y,R,q)、SJ(k,x,y,
R,q)として、部分変形ストローク記憶部204内の
線分始点終点記憶部1002に転送して記憶する。式
(5)の計算において得られた最大値を与える線分長
は、線分の始点の累積線分長に加算されて累積線分長マ
ップL(k,x,y)を下記の式(9)を用いて修正
し、累積線分長記憶部1006に記憶する。
て、最終的に第R番目の部分ストローク中の最終線分で
ある第K番目の線分の終了点までの整合を実行する。つ
ぎに、GK(x,y)の中から極大点の検出を行い、極
大点の集合の中から複数の極大点を選択する。その時に
選択された極大点の個数をU(q)とする。極大点の検
出は、本実施例では、下の式(10)の条件を満たした
(x,y)としたが、どのような方法でもよい。 GK(x,y) ≧GK(x-1,y) かつ GK(x,y) ≧GK(x+1,y) かつ GK(x,y) ≧GK(x,y-1) かつ GK(x,y) ≧GK(x,y+1) かつ GK(x,y) ≧GK(x-1,y-1) かつ GK(x,y) ≧GK(x-1,y-1) かつ GK(x,y) ≧GK(x+1,y-1) かつ GK(x,y) ≧GK(x+1,y+1) かつ GK(x,y) >GT (10) また、本実施例では、極大点の選択は、Ukを一定値5
とし、検出された極大点の数U(q)がUk以下のとき
は、すべての極大点を選択し記憶する。また、検出され
た極大点の数U(q)が5個以上のときは、GKの値が
大きいものから順に5個を選択し記憶する。記憶したG
Kの極大点座標は、V(R,Q(R)+1)からV
(R,Q(R)+U(q))として、部分ストローク終
点座標記憶部1003に記憶する。さらに、部分ストロ
ークの極大点番号q1と1つ前の部分ストロークの関連
する極大点番号qと部分ストローク番号Rを合わせて、
(R,q,r1)として、極大点番号記憶部1004に
記憶する。また、本実施例では、式(10)でのしきい
値GTを10としたが、どのような値でもよい。
トマップ画像データA(x,y)と累積線分長マップL
(K,x,y)の修正を行う。部分ストローク終点座標
記憶部1003に記憶された極大点V(R,Q(R)+
1)からV(R,Q(R)+U(q))までのU(q)
個の修正データを修正する。hを1からU(q)までの
自然数として、極大点V(R,Q(R)+h)に関して
修正処理の動作の説明をする。
度マップ修正部1005は、整合度マップ記憶部100
1から整合度マップGK(x,y)を読み込み、部分ス
トローク終点座標記憶部1003から第h番目の終点座
標である極大点座標V(R,Q(R)+h)を読み込
む。次に、座標V(R,Q(R)+h)の値を残して、
それ以外の座標の整合度から十分大きな値を減算する。
本実施例では、−10000としたが、これは本質的な
問題ではなく、どのような値でもよい。これによって生
成された整合度マップは、G(R)(x,y,Q(R)
+h)として整合度マップ記憶部1001に記憶する。
部207からビットマップ画像データA(R−1)
(x,y,q)を読み込み、部分ストローク終点座標記
憶部1003から第h番目の終点座標である極大点座標
V(R,Q(R)+h)を読み込む。この極大点座標を
(X,Y)とし、また部分ストローク中の最終線分番号
をKとして、線分始点終点記憶部1002に送信し、
(X,Y)を終点とする線分の始点座標SI(K,X,
Y,R,q)、SJ(K,X,Y,R,q)を読みだす。
この座標を(X′,Y′)とする。ここで、qは、1つ
前の部分ストロークを実行した際の極大点の通し番号
で、極大点番号記憶部1004に当該部分ストロークの
番号と当該極大点の通し番号Q(R)+hを送信して、
(R,q,Q(R)+h)を読みだして得ることができ
る。
点(X,Y)と始点(X′,Y′)として、2次元ビッ
トマップ画像データA(R−1)(x,y,q)の中で
線分の終点から始点に向かって線分を引き、当該線分が
通過する画素の値を抑制する。画素値から一定値を減算
してもよいし、一定係数をかけてもよい。抑制のしかた
は本質的な問題ではない。本実施例では、2次元ビット
マップ画像データの各画素の値が、1から−1をとる場
合には、当該線分が通過するすべての画素に対して、当
該画素を中心とする半径aの円の内部に含まれる画素の
値から2を減算する。半径aの値は、実施例では3画素
としたが、これは本質的な問題ではないので、どのよう
な値でもよい。また、抑制の方法では、実施例では一定
値の減算としたが、どのような値でもよい。
Y′)は、同時に第k−1番目の線分の終点の座標でも
あり、これを(X,Y)とおく。上記と同様に、部分変
形ストローク記憶部204中の線分始点終点記憶部10
02に、終点座標(X,Y)と、線分番号k−1と、部
分ストローク番号Rと直前の部分ストロークでの極大点
番号qを送信して、線分の始点座標、(X,Y)を終点
とする線分の始点座標SI(k−1,X,Y,R,
q)、SJ(k−1,X,Y,R,q)を読みだす。これ
によって得られた当該線分の終点座標と始点座標に基づ
いて、当該線分が通過する画素の値を抑制する。この処
理を当該部分ストロークの最初の線分まで実行する。こ
れによって得られた差分画像をA(R)(x,y,Q
(R)+h)と表わし、画像記憶部207に転送して記
憶する。
番目の部分ストロークに関する第Q(R)+h番目の累
積線分長マップとしてLa(x,y,R,Q(R)+
h)=L(K,x,y)を生成して、再び累積線分長記
憶部1006に記憶する。
大点について整合度マップの修正とビットマップ画像デ
ータの修正と累積線分長マップの修正を実行する。この
時点でQ(R)=Q(R)+U(q)を実行して、Q
(R)の修正を行う。
の整合と整合度極大点の選択と整合度マップの修正と差
分画像の生成を当該部分ストロークの直前の部分ストロ
ークの関連するQ(R−1)個の極大点について実行し
て、Q(R)個の第R番目の極大点とそれらに関する差
分画像と整合度マップと線分の始点終点リストが生成さ
れて、それぞれが部分ストローク終点座標記憶部100
3、極大点番号記憶部1004と画像記憶部207と整
合度マップ記憶部1001と線分始点終点記憶部100
2に記憶される。
た処理を第1番目の部分ストロークから順に第n+1番
目の部分ストロークについて実施して、最終的な整合度
マップをえる。スコア計算部205では、最終である第
n+1番目の部分ストロークを整合した際に、Q(n+
1)個の極大点が選択されたとすると、Q(n+1)枚
の整合度マップG(n+1)(x,y,q)(1≦q≦
Q(n+1))が生成されて整合度マップ記憶部100
1に記憶されており、その中から最大値を与える整合度
を求める。最大整合度の値Gは座標(X,Y)で、第Q
番目の整合度マップから得られたとする。また、最大整
合度与えた累積線分長はLa(X,Y,n+1,Q)で
求められ、この値をLとする。
てスコアSを式(11)に従った計算により求める。
**2は、xの二乗を表わす。ただし、A(x,y)は
端子106から入力されたもとの2次元ビットマップ画
像データを表わす。求められたスコアSを端子109か
ら出力する。
たパターンが最も近いクラスを求めるためには、入力パ
ターンがストロークパターンで、対象のクラス集合が2
次元画像データとして表現されている場合には、入力ス
トロークパターンを端子101から入力して、認識対象
のクラスのデータを順次端子106から入力して、その
整合度のスコアを端子109から得て、その最大値を与
えるパターンのクラスを、認識結果とする。逆に入力パ
ターンが2次元画像データで、対象のクラス集合がスト
ロークパターンとして表現されている場合には、入力2
次元画像データを端子106から入力して、認識対象の
クラスのストロークパターンデータを順次端子101か
ら入力して、その整合度のスコアを端子109から得
て、その最大値を与えるパターンのクラスを、認識結果
とする。スコアの探索の際に、線分の方向(DiK,D
jk)のみに加算をおこなってスコアを計算するだけで
なく式(2)の計算の際に、少し方向を変えた場合のス
コアも計算してより大きいほうを選択することにより、
少々の方向変化を許容した整合を実行することができ
る。
説明する。本発明のストロークパターン整合装置は、ス
トローク記憶部102と、画像記憶部407と、特徴点
生成記憶部417と、ストローク整合部103と、変形
ストローク記憶部104と、通過特徴点検出部408
と、スコア計算部105とからなる。
ークパターンはストローク記憶部102に保存される。
この際に、ストロークパターンはK個の時系列の線分デ
ータから構成されているとし、各時点での線分データを
Bkとする。Bkは、DiK、Djk、Wk、Mk、N
k、Ik1、Ik2、Jk1、Jk2の9個の要素から
なっている。これらは、図1の実施例で説明したものと
同じものとする。K個の線分データから1つのストロー
クのデータは成り立っているが、そのようなストローク
パターンが複数個含まれても同様に扱うことができる。
プ画像データが入力され、画像記憶部407に記憶され
る。当該ビットマップ画像データは、各画素が値を持つ
ものならば、2値でも多値でもどちらでもよい。ただ
し、値が大きいほうが線らしい、つまり黒い線であるこ
とを表わすものとする。そのビットマップ画像データを
A(x,y)として表現する。これは横方向に第x画素
目、縦方向に第y画素目である画素の値を表わす。ま
た、端子416からは、端子106から入力されたビッ
トマップ画像データと同格のデータが入力され特徴点生
成記憶部417で、特徴点が生成されて記憶される。端
子416から入力されるパターンが、2次元ビットマッ
プ画像データを生成するもととなった時系列パターンデ
ータデータの場合には、図2の特徴点検出部201と同
様の特徴点検出処理を実施して特徴点を生成することが
できる。また、端子416から入力されるデータが、端
子106から入力される2次元ビットマップ画像データ
と同一のデータであった場合には、その2次元ビットマ
ップデータを細線化して、各画素の連結数をチェックす
る。連結数が3以上の場合には、その画素を特徴点とし
て選択記憶する。これ以外にも、特徴点の検出方法は多
数あるが、その方法はどのようなものでもよい。
記憶部102のストロークパターンと画像記憶部407
のビットマップ画像データを用いて整合を実行する。線
分がある画素を通過した場合に当該画素での整合度を、
その画素の値とする。第1番目の線分B1から順に、第
k番目の線分の終点が存在する尤度として、その画素で
の整合度Gk(x,y)を求める。最終的に、第K番目
の線分BKの整合度GK(x,y)を求めて、最大値を
与える整合度を持つ画素(X,Y)が、最も当該ストロ
ークが2次元ビットマップ画像データに一致した場合の
終点の位置を与える。本整合度は、式(1)式(2)式
(5)によって表現される漸化式の計算を実行して求め
られる。初期値であるG0(x,y)の設定は、式
(1)に従った計算を実行して得る。次に、式(2)に
従った計算の実行により第k番目の線分の整合の程度H
k(Ik,Jk,Lk)を求める。この場合には、第k
番目の線分の終点の座標が(Ik,Jk)であった場合
に、当該線分の長さがLkとした場合の整合として求め
る。このときに当該線分の終点(Ik,Jk)は、先に
述べた線分データBkの要素である終点の範囲に属さね
ばならない。つまり、IkはIk1以上でIk2以下で
なければならず、JkはJk1以上でJk2以下でなけ
ればならない。ストローク整合部103では、式(2)
の計算の実行と同時に、第k番目の線分の整合の際に、
(Ik,Jk)座標を終点として、線分の長さをLkと
する線分の始点の座標をSIk(Ik,Jk,Lk)、
SJk(Ik,Jk,Lk)として変形ストローク記憶
部104へ転送する。
(2)と式(5)をくり返し適用した計算を実行して、
最終的に第K番目の線分の終了点までの整合を実行す
る。この際に変形ストローク記憶部104に最大値を与
えたLの値をLkとして転送し、変形ストローク記憶部
104では(SIk(Ik,Jk,Lk)、SJk(I
k,Jk,Lk))を始点座標データ(SIk(Ik,
Jk)、SJk(Ik,Jk))として記憶する。
終了した段階で、GK(x,y)の中から最大の値を持
つ座標X,Yを求めた後に、通過特徴点検出部408と
スコア計算部405が起動される。また、その場合の最
大値をGとする。
ーク記憶部104から、最終点である第K番目の線分の
終点である(X,Y)から始点座標データ(SIK
(X,Y)、SJk(X,Y))を読みだして、一つ前
の線分の終点座標XK−1、YK−1とする。これらの
第K番目の線分の終点から始点に向かって線分を引き、
特徴点生成記憶部417に記憶されている特徴点を通過
するかを調べる。この際には、特徴点を中心として半径
aの領域を通過すれば、特徴点を通過したものとする。
本実施例では、半径3画素の円の一部を通過すれば特徴
点を通過したものとみなした。各特徴点では、何回線分
が通過したかを記録する。ただし、連続する線分が単一
の特徴点を通過する場合には、1回の通過と計数する。
同時に始点終点間の線分長を求めて、線分長PKとして
記憶する。
K−1番目の線分の終点の座標でもあり、上記と同様
に、変形ストローク記憶部104から、当該線分の始点
座標を求める。これによって得られた当該線分の終点座
標と始点座標を通過特徴点検出部408に転送して、特
徴点生成記憶部417に記憶されている特徴点を通過す
るかを調べる。通過する特徴点がある場合には、当該特
徴点の通過回数に1を加える。もし、同一特徴点を2回
以上通過する場合を検出した場合には、信号をスコア計
算部405に転送して、スコアGから一定値を減じる。
本実施例では、この減算値を−10としたがこれは本質
的な問題ではなく、どのような値でもよい。この処理と
同時に始点終点間の線分長を求めて、線分長長PK−1
として記憶する。
段階では、第k−1番目の線分の終点の座標(Xk−
1、Yk−1)が得られている。変形ストローク記憶部
104から、Xk−1、Yk−1から当該線分の始点座
標座標(SIk(Xk−1,Yk−1)、SJk(Xk
−1,Yk−1))を求める。これによって得られた当
該線分の終点座標と始点座標を通過特徴点検出部408
に転送して、特徴点生成記憶部417に記憶されている
特徴点を通過するかを調べる。通過する特徴点がある場
合には、当該特徴点の通過回数に1を加える。もし、同
一特徴点を2回以上通過する場合を検出した場合には、
信号をスコア計算部405に転送して、スコアGから一
定値を減じる。本実施例では、この減算値を−10とし
たがこれは本質的な問題ではなく、どのような値でもよ
い。同時に線分長を求めて、線分長Pk−1として記憶
する。
に、第1番目の線分まで、通過特徴点の検出とスコアの
計算を繰り返して、第1番目の線分のスコア計算の処理
を終了した段階で、スコア計算部405では、スコア値
Gと線分長Pk(kは1からKまで)とを用いて、最終
的なスコアの計算を式(12)に従って実行する。S=G/
sqrt(Σk=1,K Pk*Wk**2)*sqrt(Σx=1,I Σy=1,J A
(x,y)**2)) (12)ここで、sqrt(x)はxの平
方根を表わす。またx**2は、xの二乗を表わす。求
められたスコアSを端子109から出力する。
たパターンが最も近いクラスを求めるためには、入力パ
ターンがストロークパターンで、対象のクラス集合が2
次元画像データとして表現されている場合には、入力ス
トロークパターンを端子101から入力して、認識対象
のクラスのデータを順次端子106から入力して、その
整合度のスコアを端子109から得て、その最大値を与
えるパターンのクラスを、認識結果とする。逆に入力パ
ターンが2次元画像データで、対象のクラス集合がスト
ロークパターンとして表現されている場合には、入力2
次元画像データを端子106から入力して、認識対象の
クラスのストロークパターンデータを順次端子101か
ら入力して、その整合度のスコアを端子109から得
て、その最大値を与えるパターンのクラスを、認識結果
とする。スコアの探索の際に、線分の方向(DiK,D
jk)のみに加算をおこなってスコアを計算するだけで
なく式(2)の計算の際に、少し方向を変えた場合のス
コアも計算してより大きいほうを選択することにより、
少々の方向変化を許容した整合を実行することができ
る。
の際に、スコアGK(x,y)から最大値のみを選択し
て、通過特徴点検出とスコアの再計算を実施したが、ス
コアGK(x,y)の極大値を複数選択して、各極大値
毎に通過特徴点検出とスコアの再計算を実施し、得られ
た複数の再計算スコアの最大値を最終的な整合のスコア
として端子109から出力してもよい。
説明する。本発明のストロークパターン整合装置は、ス
トローク記憶部102と、画像記憶部407と、特徴点
生成記憶部417と、特徴点検出記憶部201と、部分
ストローク整合部203と、部分変形ストローク記憶部
204と、通過特徴点検出部408と、スコア計算部2
05とからなる。
ークパターンはストローク記憶部102に保存される。
この際に、ストロークパターンはK個の時系列の線分デ
ータから構成されているとし、各時点での線分データを
Bkとする。Bkは、DiK、Djk、Wk、Mk、N
k、Ik1、Ik2、Jk1、Jk2の9個の要素から
なっている。これらは、図1の実施例で説明したものと
同じものとする。K個の線分データから1つのストロー
クのデータは成り立っているが、そのようなストローク
パターンが複数個含まれても同様に扱うことができる。
プ画像データが入力され、画像記憶部407に記憶され
る。当該ビットマップ画像データは、各画素が値を持つ
ものならば、2値でも多値でもどちらでもよい。ただ
し、値が大きいほうが線らしい、つまり黒い線であるこ
とを表わすものとする。そのビットマップ画像データを
A(x,y)として表現する。これは横方向に第x画素
目、縦方向に第y画素目である画素の値を表わす。ま
た、端子416からは、端子106から入力されたビッ
トマップ画像データと同格のデータが入力され特徴点生
成記憶部417で、特徴点が生成されて記憶される。特
徴点生成記憶部417の説明は、図4の特徴点生成記憶
部417と同様であるので省略する。
ロークパターンデータは、特徴点検出記憶部201に転
送される。特徴点検出記憶部201の動作の説明は、図
2の特徴点検出記憶部201の動作と同様であるので省
略する。
明を行う。このとき検出されたn個の特徴点に接続する
線分の番号はr(1)からr(n)で、特徴点検出記憶
部201に記憶されているものとする。このときn個の
特徴点でストロークデータを区切り、得られたn+1個
の部分ストロークをSt(1)からSt(n+1)とし
て表わす。部分ストローク整合部203では、各部分ス
トロークを図1のストローク整合部103と同様の処理
で画像記憶部内の2次元ビットマップ画像データと整合
する。その整合の結果は、部分変形ストローク記憶部2
04に記憶される。部分変形ストローク記憶部204で
は、極大のスコアを与える点を複数個選択し、それを通
過特徴点検出部408に転送して、選択された複数個の
うちの1つを部分ストロークの最終点とした場合の通過
特徴点を検出し、スコアマップの修正を行う。
合度のマップG0(x,y)を式(1)と同様にして初
期化する。第R番目の部分ストロークを実行する場合に
ついて説明する。既に第0番目から第R−1番目までの
部分ストロークの整合は終了しているものとする。第R
−1番目の部分ストロークのマッチングにおいてQ(R
−1)個の極大点が選択されているとすると、合計Q
(R−1)個の整合度のマップG(R−1)(x,y,
q)と合計Q(R−1)個の差分画像A(R−1)
(x,y,q)が生成されているものとする。ただし、
qは1からQ(R−1)までの自然数で、R−1番目の
部分ストロークを整合した際の極大点の番号を表わす。
整合度マップの集合のうちの1つを初期値として、第R
番目の部分ストロークと画像記憶部407内の2次元ビ
ットマップ画像データとの整合を実行し、その変形スト
ロークを部分変形ストローク記憶部204に記憶すると
ともに、部分ストロークの最終線分の整合後のスコアマ
ップGK(x,y)から複数の極大点を求め、第R番目
の部分ストローク整合後の通し番号で第q1番目の極大
点を選択して、極大点以外を抑制したスコアマップを生
成してG(R)(x,y,q1)として記憶するととも
に、通過特徴点検出部408は、最終点とする部分スト
ロークが通過する特徴点をチェックして、同一特徴点を
2回以上通過する場合には、整合度マップの値を修正す
る。これと同時に第R番目の部分ストロークに関して通
し番号でq1番目の極大点は、第R−1番目の部分スト
ロークに関して通し番号でq番目の極大点に関して生成
されたことを示すデータ(R,q1,q)を部分変形ス
トローク記憶部204に記憶する。第R−1番目の部分
ストロークのマッチングによって生成されたQ(R−
1)個の極大点に関する全てのスコアマップG(R−
1)(x,y,q)に対して上記の処理をくり返し実行
する。第n+1番目の部分ストロークの整合を終了した
段階で、Q(n+1)枚のスコアマップG(n+1)
(x,y,q)の中で最大値を与える点を選択し、その
点のスコアをスコア計算部205に転送して最終スコア
を計算して端子109から出力する。
例の説明を行う。第R番目の部分ストロークの整合につ
いて説明する。
グにおいてQ(R−1)個の極大点が選択されていると
すると、合計Q(R−1)個の整合度のマップG(R−
1)(x,y,q)が生成されているものとする。ただ
し、qは1からQ(R−1)までの自然数で、R−1番
目の部分ストロークを整合した際の極大点の通し番号を
表わす。これらの整合度マップは部分変形ストローク記
憶部204中の整合度マップ記憶部1001に記憶され
ているものとする。Q(R−1)個の整合度マップのす
べてについて第R番目の部分ストロークの整合を実行す
るが、ここでは既にq−1個の整合度マップについての
処理は終了し、既にQ(R)個の極大点が選択されてい
るものとする。Q(R)は、R−1番目の部分ストロー
クの整合を終了した段階では、0である。
マップ記憶部1001から第q番目の整合度マップG
(R−1)(x,y,q)を読みだし、図2の説明の式
(8)に従って整合度の初期設定を実施する。同時に累
積線分長記憶部1006でも、当該線分の直前の部分ス
トロークの最終線分のデータを用いて、第R番目の部分
ストローク用の累積線分長マップL(0,x,y)=L
a(x,y,R−1,q)として初期化する。
として、部分ストローク整合部203では、ストローク
記憶部102のストロークパターンと画像記憶部207
のビットマップ画像データA(x,y)を用いて整合を
実行する。線分がある画素を通過した場合に当該画素で
の整合度を、その画素の値とする。第1番目の線分B1
から順に、第k番目の線分の終点が存在する尤度とし
て、その画素での整合度Gk(x,y)を求める。最終
的に、第K番目の線分BKの整合度GK(x,y)を求
める。本整合度は、式(2)式(5)によって表現され
る漸化式の計算を実行して求められる。式(2)に従っ
た計算の実行により第k番目の線分の整合の程度Hk
(Ik,Jk,Lk)を求める。この場合には、第k番
目の線分の終点の座標が(Ik,Jk)であった場合
に、当該線分の長さをLkとした場合の整合として求め
る。このときに当該線分の終点(Ik,Jk)は、先に
述べた線分データBkの要素である終点の範囲に属さね
ばならない。つまり、IkはIk1以上でIk2以下で
なければならず、JkはJk1以上でJk2以下でなけ
ればならない。部分ストローク整合部203では、式
(2)の計算の実行と同時に、第k番目の線分の整合の
際に、(Ik,Jk)座標を終点として、線分の長さを
Lkとする線分の始点の座標をSIk(Ik,Jk,L
k)、SJk(Ik,Jk,Lk)として記憶する。さ
らに、式(5)の計算を実行する際には、整合度の最大
値を与えたLの値をLmとして、式(2)で得られたS
Ik(x,y,Lm)、SJk(x,y,Lm)をSI
(k,x,y,R,q)、SJ(k,x,y,R,q)
として、部分変形ストローク記憶部204内の線分始点
終点記憶部1002に転送して記憶する。式(5)の計
算において得られた最大値を与える線分長は、線分の始
点の累積線分長に加算されて累積線分長記憶マップL
(k,x,y)を図2の説明の式(9)式を用いて修正
し、累積線分長記憶部1006に記憶する。
算を実行して、最終的に第R番目の部分ストローク中の
最終線分である第K番目の線分の終了点までの整合を実
行する。つぎに、GK(x,y)の中から極大点の検出
を行い、極大点の集合の中から複数の極大点を選択す
る。その時に選択された極大点の個数をU(q)とす
る。極大点の検出は、本実施例では、図2の説明の式
(10)の条件を満たした(x,y)としたが、どのよ
うな方法でもい。
大点の数の上限Ukを一定値5とし、検出された極大点
の数U(q)がUk以下のときは、すべての極大点を選
択し記憶する。また、検出された極大点の数U(q)が
5個以上のときは、GKの値が大きいものから順に5個
を選択し記憶する。記憶したGKの極大点座標は、V
(R,Q(R)+1)からV(R,Q(R)+U
(q))として、部分ストローク終点座標記憶部100
3に記憶する。さらに、部分ストロークの極大点番号q
1と1つ前の部分ストロークの関連する極大点番号qと
部分ストローク番号Rを合わせて、(R,q,q1)と
して、極大点番号記憶部1004に記憶する。また、本
実施例では、式(10)でのしきい値GTを10とした
が、どのような値でもよい。
線分長マップL(K,x,y)と通過特徴点リストの修
正を行う。部分ストローク終点座標記憶部1003に記
憶された極大点V(R,Q(R)+1)からV(R,Q
(R)+U(q))までのU(q)個の修正データを修
正する。hを1からU(q)までの自然数として、極大
点V(R,Q(R)+h)に関して修正処理の動作の説
明をする。通過特徴点検出部508は、当該部分ストロ
ークの直前である第R−1番目の部分ストロークを整合
した結果の第q番目の極大点を選択した場合の通過点リ
ストF(R−1,q)を特徴点生成記憶部417から読
みだす。通過点リストF(R−1,q)は、特徴点生成
記憶部417で生成された特徴点について、それぞれの
特徴点を既に部分ストロークが通過している回数を記憶
したものである。
度マップ修正部1105は、整合度マップ記憶部100
1から整合度マップGK(x,y)を読み込み、部分ス
トローク終点座標記憶部1003から第h番目の終点座
標である極大点座標V(R,Q(R)+h)を読み込
む。次に、座標V(R,Q(R)+h)の値を残して、
それ以外の座標の整合度から十分大きな値を減算する。
本実施例では、−10000としたが、これは本質的な
問題ではなく、どのような値でもよい。これによって生
成された整合度マップは、G(R)(x,y,Q(R)
+h)として整合度マップ記憶部1001に記憶する。
トローク終点座標記憶部1003から第h番目の終点座
標である極大点座標V(R,Q(R)+h)を読み込
む。この極大点座標を(X,Y)とし、また部分ストロ
ーク中の最終線分番号をKとして、線分始点終点記憶部
1002に送信し、(X,Y)を終点とする線分の始点
座標SI(K,x,y,R,q)、SJ(K,x,y,
R,q)を読みだす。この座標を(X′,Y′)とす
る。ここで、qは、1つ前の部分ストロークを実行した
際の極大点の通し番号で、極大点番号記憶部1004に
当該部分ストロークの番号と当該極大点の通し番号Q
(R)+hを送信して、(R,q,Q(R)+h)を読
みだして得ることができる。
点(X,Y)と始点(X′,Y′)として、線分の終点
から始点に向かって線分を引き、通過点リストF(R−
1,q)中の特徴点を通過するかを調べる。この際に
は、特徴点を中心として半径aの領域を通過すれば、特
徴点を通過したものとする。本実施例では、半径3画素
の円の一部を通過すれば特徴点を通過したものとみなし
た。各特徴点では、何回線分が通過したかを記録する。
ただし、連続する線分が単一の特徴点を通過する場合に
は、1回の通過と計数する。同時に始点終点間の線分長
を求めて、線分長長PKとして記憶する。
K−1番目の線分の終点の座標でもあり、上記と同様
に、部分変形ストローク記憶部204中の線分始点終点
記憶部1002に、終点座標(X,Y)と、線分番号K
−1と、部分ストローク番号Rと直前の部分ストローク
での極大点番号qを送信して、線分の始点座標、(X,
Y)を終点とする線分の始点座標SI(K−1,X,
Y,R,q)、SJ(K−1,X,Y,R,q)を読み
だす。これによって得られた当該線分の終点座標と始点
座標を通過特徴点検出部408に転送して、通過点リス
トF(R−1,q)中の特徴点を通過するかを調べる。
通過する特徴点がある場合には、当該特徴点の通過回数
に1を加える。もし、同一特徴点を2回以上通過する場
合を検出した場合には、整合度マップ修正部1105に
信号を転送して、整合度マップG(R)(V(R,Q
(R)+h),Q(R)+h)から一定値を減じる。本
実施例では、この減算値を−10としたがこれは本質的
な問題ではなく、どのような値でもよい。この処理と同
時に始点終点間の線分長を求めて、線分長長PK−1と
して記憶する。
Y′)は、同時に第k−1番目の線分の終点の座標でも
あり、これを(X,Y)とおく。上記と同様に、部分変
形ストローク記憶部204中の線分始点終点記憶部10
02に、終点座標(X,Y)と、線分番号k−1と、部
分ストローク番号Rと直前の部分ストロークでの極大点
番号qを送信して、線分の始点座標、(X,Y)を終点
とする線分の始点座標SI(k−1,X,Y,R,
q)、SJ(k−1,X,Y,R,q)を読みだす。こ
れによって得られた当該線分の終点座標と始点座標を通
過特徴点検出部408に転送して、通過特徴点リストF
(R−1,q)中の特徴点を通過するかを調べる。通過
する特徴点がある場合には、当該特徴点の通過回数に1
を加える。もし、同一特徴点を2回以上通過する場合を
検出した場合には、整合度マップ修正部1105に信号
を転送して、整合度マップG(R)(V(R,Q(R)
+h),Q(R)+h)から一定値を減じる。本実施例
では、この減算値を−10としたがこれは本質的な問題
ではなく、どのような値でもよい。同時に線分長を求め
て、線分長Pk−1として記憶する。
に、第1番目の線分まで、通過特徴点の検出と整合度マ
ップの修正を繰り返して、第1番目の線分の整合度マッ
プの修正の処理を終了した段階で、整合度マップG
(R)(V(R,Q(R)+h),Q(R)+h)を整
合度マップ記憶部1001に記憶する。また、累積線分
長記憶部1006に、第R番目の部分ストロークに関す
る第Q(R)+h番目の累積線分長マップとしてLa
(x,y,R,Q(R)+h)=L(K,x,y)を生
成して、再び累積線分長記憶部1006に記憶する。
大点について整合度マップの修正と累積線分長マップの
修正を実行する。この時点でQ(R)=Q(R)+U
(q)を実行して、Q(R)の修正を行う。
の整合と整合度極大点の選択と整合度マップの修正を当
該部分ストロークの直前の部分ストロークの関連するQ
(R−1)個の極大点について実行して、Q(R)個の
第R番目の極大点とそれらに関する整合度マップと線分
の始点終点リスが生成されて、それぞれが部分ストロー
ク終点座標記憶部1003、極大点番号記憶部1004
と画像記憶部207と整合度マップ記憶部1001と線
分始点終点記憶部1002に記憶される。
た処理を第1番目の部分ストロークから順に第n+1番
目の部分ストロークについて実施して、最終的な整合度
マップをえる。スコア計算部205では、最終である第
n+1番目の部分ストロークを整合した際に、Q(n+
1)個の極大点が選択されたとすると、Q(n+1)枚
の整合度マップG(n+1)(x,y,q)(1≦q≦
Q(n+1))が生成されており、その中から最大値を
与える整合度を求める。最大整合度の値Gは座標(X,
Y)で、第Q番目の整合度マップから得られたとする。
また、最大整合度与えた累積線分長はLa(X,Y,n
+1,Q)で求められ、この値をLとする。
てスコアSを図2の説明の式(11)に従った計算によ
り求め、得られたスコアSを端子109から出力する。
たパターンが最も近いクラスを求めるためには、入力パ
ターンがストロークパターンで、対象のクラス集合が2
次元画像データとして表現されている場合には、入力ス
トロークパターンを端子101から入力して、認識対象
のクラスのデータを順次端子106から入力して、その
整合度のスコアを端子109から得て、その最大値を与
えるパターンのクラスを、認識結果とする。逆に入力パ
ターンが2次元画像データで、対象のクラス集合がスト
ロークパターンとして表現されている場合には、入力2
次元画像データを端子106から入力して、認識対象の
クラスのストロークパターンデータを順次端子101か
ら入力して、その整合度のスコアを端子109から得
て、その最大値を与えるパターンのクラスを、認識結果
とする。スコアの探索の際に、線分の方向(DiK,D
jk)のみに加算をおこなってスコアを計算するだけで
なく式(2)の計算の際に、少し方向を変えた場合のス
コアも計算してより大きいほうを選択することにより、
少々の方向変化を許容した整合を実行することができ
る。
ロークパターン整合装置は、既に整合されたストローク
の形状を用いて、整合対象となる2次元ビットマップ画
像データを修正するように構成したため、2つの異なる
部分ストロークが、1つの部分ストロークに重なって整
合された場合には、整合度の評価値を低減し、誤ったパ
ターンとの整合を防ぐという効果を有する。
用いて、整合対象となる2次元ビットマップ画像データ
上で通過した点を確認するように構成したため、2つの
異なる部分ストロークが、1つの部分ストロークに重な
って整合された場合には、整合度の評価値を低減し、誤
ったパターンとの整合を防ぐという効果を有する。
すブロック図。
の例。
点を示す図。
図。
示す図。
Claims (4)
- 【請求項1】ストロークパターンを記憶するストローク
パターン記憶手段と2次元ビットマップ画像データを記
憶する画像記憶手段を有し、ストロークパターンと2次
元ビットマップ画像データとを整合するストローク整合
手段とスコア計算手段によって構成されるストロークパ
ターン整合装置において、 変形されたストロークを記憶する変形ストローク記憶手
段と、変形ストロークに基づいて2次元ビットマップ画
像データを修正する差分画像生成手段と、差分画像生成
手段によって生成された差分画像に基づいて整合度を計
算するスコア計算手段とを備えたことを特徴とするスト
ロークパターン整合装置。 - 【請求項2】ストロークパターンを記憶するストローク
パターン記憶手段と、2次元ビットマップ画像データを
記憶する画像記憶手段を有し、ストロークパターンと2
次元ビットマップ画像データとを整合するストローク整
合手段とスコア計算手段によって構成されるストローク
パターン整合装置において、 ストロークパターンから特徴点を抽出して部分ストロー
ク分割する特徴点検出記憶手段と、生成された部分スト
ロークを2次元ビットマップ画像データと整合する部分
ストローク整合手段と、少なくとも変形された部分スト
ロークと累積線分長と整合度のマップとを記憶するとと
もに整合度のマップを修正する部分変形ストローク記憶
手段と、部分変形ストロークに基づいて2次元ビットマ
ップ画像データを修正する部分差分画像生成手段と、部
分差分画像生成手段によって生成された差分画像を画像
記憶手段へ転送する部分と、全体的な整合を計算するス
コア計算手段を備えたことを特徴とするストロークパタ
ーン整合装置。 - 【請求項3】ストロークパターンを記憶するストローク
パターン記憶手段と、2次元ビットマップ画像データを
記憶する画像記憶手段を有し、ストロークパターンと2
次元ビットマップ画像データとを整合するストローク整
合手段とスコア計算手段によって構成されるストローク
パターン整合装置において、 入力された2次元ビットマップ画像データの特徴点を検
出する特徴点生成記憶手段と、変形されたストロークを
記憶する変形ストローク記憶手段と、変形ストロークが
通過した特徴点を検出する通過特徴点検出手段と、通過
した特徴点に基づいて整合度を修正して求めるスコア計
算手段を備えたことを特徴とするストロークパターン整
合装置。 - 【請求項4】ストロークパターンを記憶するストローク
パターン記憶手段と2次元ビットマップ画像データを記
憶する画像記憶手段を有し、ストロークパターンと2次
元ビットマップ画像データとを整合するストローク整合
手段とスコア計算手段によって構成されるストロークパ
ターン整合装置において、 ストロークパターンから特徴点を抽出して部分ストロー
ク分割する特徴点検出記憶手段と、生成された部分スト
ロークを2次元ビットマップ画像データと整合する部分
ストローク整合手段と、部分変形ストロークが通過する
特徴点を検出する通過特徴点検出手段と、少なくとも変
形された部分ストロークと累積線分長と整合度のマップ
とを記憶するとともに通過特徴点検出手段からの信号に
従って部分ストロークの整合度を修正する部分変形スト
ローク記憶手段と、全体的な整合を計算するスコア計算
手段を備えたことを特徴とするストロークパターン整合
装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7231043A JP2940446B2 (ja) | 1995-09-08 | 1995-09-08 | ストロークパターン整合装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7231043A JP2940446B2 (ja) | 1995-09-08 | 1995-09-08 | ストロークパターン整合装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0981688A JPH0981688A (ja) | 1997-03-28 |
JP2940446B2 true JP2940446B2 (ja) | 1999-08-25 |
Family
ID=16917390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7231043A Expired - Fee Related JP2940446B2 (ja) | 1995-09-08 | 1995-09-08 | ストロークパターン整合装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2940446B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1305003C (zh) * | 2003-09-29 | 2007-03-14 | 摩托罗拉公司 | 用户界面上的书写标记识别 |
-
1995
- 1995-09-08 JP JP7231043A patent/JP2940446B2/ja not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
「Rubber String Matching法による手書き文字認識」,電子情報通信学会技術研究報告,PRL74−20,p.1−10,昭和49年9月 |
Also Published As
Publication number | Publication date |
---|---|
JPH0981688A (ja) | 1997-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6516087B1 (en) | Method for real time correlation of stereo images | |
US20150294469A1 (en) | Image processing device and image processing method, and program | |
JP7103240B2 (ja) | 物体検出認識装置、方法、及びプログラム | |
JP3238580B2 (ja) | 太め細め文字生成装置 | |
JP2940446B2 (ja) | ストロークパターン整合装置 | |
EP0246898B1 (en) | method of curve approximation | |
JP2626528B2 (ja) | 図形認識装置 | |
CN111666933A (zh) | 一种文本检测的方法、装置、电子设备和存储介质 | |
US6233354B1 (en) | Character recognition device | |
US6166745A (en) | Graphic form shaping apparatus and graphic form shaping method | |
JP2865528B2 (ja) | 指紋照合装置 | |
CN112348069B (zh) | 数据增强方法、装置、计算机可读存储介质及终端设备 | |
JP2003022446A (ja) | 署名照合装置、署名照合方法およびその方法をコンピュータに実行させるプログラム | |
JP2000132692A (ja) | 曲線の特徴点抽出方法及びこの方法を記録した記録媒体 | |
EP0585861A2 (en) | Image verification method | |
JPH08227457A (ja) | 線対称図形整形装置 | |
JPS59161782A (ja) | パタ−ン・マツチング方法 | |
JP3304404B2 (ja) | 傾き検出方法および画像処理装置 | |
JP2865529B2 (ja) | 指紋照合装置 | |
JPH0350692A (ja) | 文字認識装置 | |
CN116958981B (zh) | 一种文字识别方法及装置 | |
JP3052849B2 (ja) | オンライン文字認識装置 | |
JP2882327B2 (ja) | 線図形整合装置 | |
JP2002334332A (ja) | 画像照合装置、画像照合方法、プログラム及び記録媒体 | |
JP2865530B2 (ja) | 指紋照合装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080618 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090618 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120618 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120618 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130618 Year of fee payment: 14 |
|
LAPS | Cancellation because of no payment of annual fees |