JPWO2006088222A1 - 手書き文字認識方法、手書き文字認識システム、手書き文字認識プログラム及び記録媒体 - Google Patents

手書き文字認識方法、手書き文字認識システム、手書き文字認識プログラム及び記録媒体 Download PDF

Info

Publication number
JPWO2006088222A1
JPWO2006088222A1 JP2006525406A JP2006525406A JPWO2006088222A1 JP WO2006088222 A1 JPWO2006088222 A1 JP WO2006088222A1 JP 2006525406 A JP2006525406 A JP 2006525406A JP 2006525406 A JP2006525406 A JP 2006525406A JP WO2006088222 A1 JPWO2006088222 A1 JP WO2006088222A1
Authority
JP
Japan
Prior art keywords
series
angle
length
character recognition
winding angle
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.)
Granted
Application number
JP2006525406A
Other languages
English (en)
Other versions
JP4092371B2 (ja
Inventor
森 俊二
俊二 森
朋永 松下
朋永 松下
Original Assignee
有限会社Kiteイメージ・テクノロジーズ
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 有限会社Kiteイメージ・テクノロジーズ filed Critical 有限会社Kiteイメージ・テクノロジーズ
Application granted granted Critical
Publication of JP4092371B2 publication Critical patent/JP4092371B2/ja
Publication of JPWO2006088222A1 publication Critical patent/JPWO2006088222A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Character Discrimination (AREA)
  • Character Input (AREA)

Abstract

オンライン手書き文字認識などの手書き文字認識を行う場合に、著しい変形や回転などの変換に対処し、また楷書などの一筆書きした入力に対しても簡単でかつ高性能な文字認識が行えるようにする。このために本発明は、入力された手書き文字を、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行い、その折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と各折れ線とのなす角度を折れ線角系列として求め、得られた折れ線の角頂点の外角系列を求め、外角系列のプラス又はマイナスの同じ符号が連続する同符号の外角の和を巻き角系列とし、その求められた各系列による大局的な特徴と、巻き角系列に応じて分割された各曲線部分における局所的特徴、準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と、予め用意された認識対象文字のテンプレイトとの比較で、文字認識を行うようにした。

Description

本発明は、オンライン手書き文字認識を行う手書き文字認識方法及び手書き文字認識システム、並びにその認識方法を実現する手書き文字認識プログラム、さらにそのプログラムを格納した記憶媒体に関する。
今までに多数の文字認識システムが提案され、実用化さているが、その基本原理には二つの立場があり、一つは構造解析の立場、もう一つはパターンマッチングの立場であり、前者は一般にはその認識システムは軽く、したがって、入力制限の強い場合、即ち、画数、筆順一定、または、どちらかを一定にした対象に適応され、他方後者は両者、画数、筆順を自由にした場合かそれに近い場合に適用されてきた。
構造解析の立場としては、電子通信学会論文誌,56−D,5,pp.312−319,“手書き数字・片仮名文字のオンライン実時間認識”や日本国特許庁発行の特開昭59−131972号公報にあるように、基本ストローク方式と呼ばれているものがあり、ストロークを単純ストローク(4種)、複合ストローク(7種)に分類し、識別オートマトンにより認識するものであり、簡単ではあるが、辞書の作成、続け字や、略字に対処するのに問題があり、その発展性に問題があるとされてきた。
パターンマッチング法は大きく分けて2種類の方法がある。一つは、電子情報通信学会論文誌,J63−D,2,pp.153−160,“ストロークの点近似による手書き文字のオンライン認識”にあるように、ストロークを少数の点で近似しそれらを特徴点として、また端点での筆の運動方向を推定し、それらも特焦点とし、特徴ベクトルを構成する。辞書はストロークに分解され、それらが同様に特徴ベクトルをもち、入力ベクトルと各カテゴリー毎に用意された特徴ベクトルとの対応をとり、対応がとれた辞書について距離が計算され、最小の距離を与える辞書名が認識された文字名であり、基本的に筆順,画数に対し自由である。
もう一つのパターンマッチング法があり、特徴点の対応方式の原論文として、電子通信学会研究会論文PRL74−20)に記載された“Rubber String Matching法による手書き文字認識”があり、また日本国特許庁発行の特開昭57−45679号公報及び特開平8−24942号公報に在る如く、入力文字と辞書の特徴点ベクトルをDP(Dynamic Programming)方式により対応をとるものであり、これが手書き文字のオンライン認識の主流をなしている。
なお、最近はオフラインの文字認識技術をオンラインに適用されるようになってきた。
それは、今まで蓄積されてきたOCR技術があり、これはオンライン文字認識にも使える。
この立場から、OCR技術を見ると、主流は方向特徴マッチングである。これについては膨大な文献があるが、基本的考え手法は、例えば原論文として、[電子情報通信学会論文誌,J62−D,3,pp.217−224,“文字認識のための相関法の一改良”]にある。この方法と構造解析の方法と根本的に異なる点は、特徴は一般にn×mの格子平面に割り付けられ、この平面上の特徴分布が最終の入力文字の表現とし、n×mを例えば左隅から右に走査し、n×m次元のベクトルとする。識別は標準方向特徴ベクトルと入力文字方向特徴ベクトルとの内積(類似度)を計算し、その値の最も高い標準方向特徴ベクトルのカテゴリ名を答えとするものである。この際、特に変形の著しい手書き文字では、高度な非線形正規化の前処理が行われる。これが必要なのは、この方法がn×mの格子平面を基本的枠組みにしているからである。この手法の利点は一般にはベクトル空間、特に内積の定義されているヒルベルト空間論が適用されうるので、高度な識別理論が援用されることである。また実用的に言えばノイズに強い。しかし、せっかくのオンラインの最大の利点、セグメンテーションの容易さを殺している。オンラインでは、例えば同じ場所に何個も文字を書いても機械は認識できるようにすることが可能である。また、本当に著しい変形に対しては高度な非線形正規化といえども不十分であるし、例えば回転変形には、相当に高度で、かなりの計算量の正規化が必要である。[S.Mori,H.Nishida,H.Yamada,Optical Character Recognition,Wiley]の第3章に詳しい記述がある。
さて上の特徴として、例えば曲率をとることも可能である。この観点から、[電子情報通信学会論文誌,J62−D,3,pp.217−224,“文字認識のための相関法の一改良”]では特に筆記体の「g」、「y」、それにアラビア数字「9」が手書き文字では間違い易いということから、回転特徴と名づけて、湾曲部の接線角度差を求め、適当な量子化を行い、文字を従来の方向特徴ベクトルと局所的な回転特徴ベクトルで表現し、それらをまとめた全特徴ベクトルを求め、ぼかし処理を行う(これは実際には格子平面上で行う)。それぞれのカテゴリにつきぼかし全特徴標準ベクトルを求め、類似度計算を行い、答えを出す方法が提案されている。ところで、構造解析の立場では、筆記体の「g」、「y」と、アラビア数字「9」とはかなり異なる。それは上部の構造を陽に見ているからである。しかし、特徴マッチングでは、内積の過程で混ぜ合わされて一個のスカラー量にしてしまうので、上部構造は陰に見ることになり、三文字とも強度の直線構造があることから、この直線に埋没されてしまう。それでわざわざ、局所特徴面を用意したのである。しかし、後で述べるように、われわれの方法では、上で回転特徴と言われるものが、局所的ではなく、大域的に求められ、一貫した形で、自然に容易に表現される。したがって、上の3種の文字は非常に簡単に認識可能である。
図形,物流システムに置かれた物体,軍事では飛行機など、回転に不変な認識システムは広範囲の対象に対し要求されている。
したがって、昔から研究は行われ、多くの論文が現在もなお発表されている。1990年までの研究については、森 俊二,坂倉 栂子共著の画像認識の基礎(II))に詳しく述べられており、また1999年までの研究は、S.Mori,H.Nishida,H.Yamada著Optical Character Recognitionに詳しい記述があり、この研究の主流はモーメント法であり、高次のモーメントを位相角が相殺するように組み合わせるものであり、またフーリエ記述子なる名前で呼ばれているフーリエ変換法の応用があり、これは最近のPCが非常に高速になったことを反映して、研究自体は盛んになっているものの、実用としてはいまだ市場に現れていないが、一方この流れとは別に、情報処理学会論文誌第27巻第5号:1986年5月,“画数,筆順,回転,区切りによらないオンライン手書き図形認識方式”にあるように対象を直線線分,弧の系列で近似し、それらの相対的角度変化で表現し、辞書の同様な表現との対象(入力図形)対応をとり、それぞれの角度変化の差の絶対値の和でお互いの距離を測って回転不変な方式としているが、鋭角の検出に弱いという欠点が論文自体の中で述べられている。
いわゆるマッチング方式は文字の置かれた、二次元平面上の特徴(例えばストロークの方向)マッチングである。またオンライン手書き文字認識ではいわゆるDP(Dynamic Programming)マッチング、別名弾性ストリングマッチングである。前者においては、二次元上の特徴の分布を、ベクトル表現し、文字間の距離をこれらベクトルの内積として定義し、内積の定義された、ベクトル空間上の識別問題として、統計的手法で文字認識を行う。後者では、単純な重ね合わせのマッチングを拡張し、入力文字が標準文字に対し適応的、柔軟に、マッチングさせることにより文字認識を行うものである。
このような手法に対し、一般には構造解析的手法と呼ばれる文字認識法が研究されてきた。これは一般図形に対しても適用可能で、良い方法であるが、対象の、具体的には文字ストロークの記号化を必要とし、シンボルによるマッチングがなされてきた。しかし、このシンボル化するところに問題があり、シンボル化で柔軟性を失い、また設計が機械的に行かず、研究,開発が行き詰まっている。例えば上述した[電子通信学会論文誌,56−D,5,pp.312−319,“手書き数字・片仮名文字のオンライン実時間認識”]が発表されたのは古く1973年である。この段階で、オンライン文字の右回り左回りが特徴として使用されているが、これらの系列は全てシンボル化されている。これらは入力パターンのX−座標値の増減で検出され、11個のシンボルで、表現されている。このようなシンボル表現は柔軟性にかけ、実際特別な場合として部分的にしか使用されていない。その後構造解析的手法は1981年に電子通信学会論文誌J64−D,8,p705−712,“形の代数的構造表現”で統一的な観点を与える代数的な考えが導入され,1992年にIEEE Trans.on Pattern Analysis and Machine Intelligence Vol.14,No.5,pp.1029−1058,“Algebraic Description of Curve Structure”で実用的な代数的システムが構築されたが、依然としてシンボル表現であった。この様に構造解析的手法はシンボル表現水準に留まってきた。この壁を突破するには、シンボルでなく、アナログにしなければならないと言うこと自体は学会で、よく言われてきたのであるが、いままで、このアナログ化の具体的な方法が見付からなかった。
ところが、上記の従来技術では,下記のような基本問題がある。
構造解析は簡単であるが、柔軟性がなく、基本パターンの境が問題で、離散的で、ぎこちなく、辞書の作成に手間がかかる。
パターンマッチング法、特にDP方式は処理が重たい。
パターンマッチング法はオフライン認識も含め、ただ読むだけ、すなわち入力文字を強引に辞書に当てはめることが主たる目的であり、原因結果の対応が見えず、時として理解に苦しむ誤読をきたし、その原因が設計者にもわからないことが珍しくない。
本発明は、基本的には上に述べた構造解析的手法に属し、しかし、今までの問題点を克服し、柔軟な構造解析的手法の基礎を与えるものであり、それ故、シンボル化の問題を回避し、アナログ的に構造を表現し、標準との柔軟かつ単純なマッチングを行うことを目的とする。
上記目的を達成するため、第1の発明は、オンラインの手書き文字を認識する手書き文字認識方法において、入力された手書き文字を、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行い、前記折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求め、得られた折れ線の角頂点の外角系列を求め、前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外角の和を、巻き角系列とし、前記求められた各系列による大局的な特徴と、巻き角系列の各項の巻き角領域内における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と予め用意されたテンプレイトとの比較で、文字認識を行うことを特徴とするものである。
また第2の発明は、第1の発明の文字認識方法において、
前記巻き角系列で構成される曲線のループの前後で各項を前回転角、後回転角に分割して、認識処理を行うことを特徴とするものである。
また第3の発明は、第1の発明の文字認識方法において、
前記認識対象文字のテンプレイトは、学習データから、各系列要素、各特徴の上限、下限の範囲を決めたデータであることを特徴とするものである。
また第4の発明は、第1の発明の文字認識方法において、
前記折れ線近似表現として、折れ線の長さを要素とする系列と、その全長で正規化した系列と、始点,頂点,終点を要素とする座標系列を用い、端長比,中間長,中間最大長,長さの要素の分布,始点終点間距離の特徴を求めることを特徴とするものである。
また第5の発明は、第1の発明の文字認識方法において、
ある定められた区間内の折れ線の加重平均角、外角系列の特徴又は境界項の値、極点の検出、始点終点間距離、始点・終点・極点間の距離から、文字の枠組み構造を定量的に設定することを特徴とするものである。
また第6の発明は、第1の発明の文字認識方法において、
各学習データから、巻き角系列の各項の巻き角領域内、巻き角領域間の特徴から構成される部分的多次元の特徴空間上で、識別平面を構成し、文字間の識別を行うことを特徴とするものである。
また第7の発明は、第1の発明の文字認識方法において、
巻き角系列の各要素の外角系列と、それに相当する長さ系列から、長さ系列を一方の軸に取り、他方の軸に外角系列の累積角をとり、線形補間を行うことによりグラフを構成し、その要素の始点からの距離の関数として、巻き角を、またその逆として、巻き角の関数として、距離を連続的に求める累積角特徴関数を構成して、大局的な曲がり具合の特徴を求めることを特徴とするものである。
また第8の発明は、第1の発明の文字認識方法において、
複数個の画間の位置関係を、各画の代表折れ線または折れ線集合の延長線も含めた直線群同志の交点を求めることにより、定量的に求めることを特徴とするものである。
また第9の発明は、第4の発明の文字認識方法において、
前記正規化した系列の内で、所定長以下の折線は無視することを特徴とするものである。
また第10の発明は、第1の発明又は第7の発明の文字認識方法において、
巻き角系列の各項の巻き角領域内で、前記折れ線角系列の、隣り合う折れ線角の変化のパターンまたは累積角特徴関数を利用し、対象文字を複数の区分に分解して、その区分または境界点の特徴を認識対象文字との比較に利用することを特徴とするものである。
また第11の発明は、第1の発明の文字認識方法において、
前記巻き角系列の各項で構成される曲線の巻き角の半分に対応する曲線上の点を中点として求め、その前後で各項内の曲線を分割し、各分割折れ線群から抽出される微妙な曲線の特徴を求め、認識精度を上げることを特徴とするものである。
また第12の発明は、オンラインの手書き文字を認識する手書き文字認識システムにおいて、
手書き文字がオンラインで入力される入力手段と、
前記入力手段で入力されたデータを、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行う折線近似手段と、
前記折線近似手段で折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求め、前記折れ線の角頂点の外角系列を求め、前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外角の和を、巻き角系列とする処理手段と、
前記処理手段で求められた各系列による大局的な特徴と、巻き角系列の各項の巻き角領域内における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と予め用意された認識対象文字のテンプレイトとを比較して文字認識を行う認識手段とを備えたことを特徴とするものである。
第13の発明は、オンラインの手書き文字を認識する手書き文字認識プログラムにおいて、
入力された手書き文字を、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行うステップと、
前記折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求めるステップと、
得られた折れ線の角頂点の外角系列を求めるステップと、
前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外角の和を、巻き角系列とするステップと、
前記求められた各系列による大局的な特徴と、巻き角系列の各項の巻き角領域内における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と、予め用意された認識対象文字のテンプレイトとを比較して、文字認識を行うステップとを備えたことを特徴とするものである。
第14の発明は、記憶されたプログラムを所定の演算処理装置に実装させることで、オンラインの手書き文字認識が可能な記憶媒体において、
記憶媒体に記憶されたプログラムとして、
入力された手書き文字を、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行うステップと、
前記折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求めるステップと、
得られた折れ線の角頂点の外角系列を求めるステップと、
前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外角の和を、巻き角系列とするステップと、
前記求められた各系列による大局的な特徴と、巻き角系列の各項の巻き角領域内における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と、予め用意された認識対象文字のテンプレイトとを比較して、文字認識を行うステップとを備えたことを特徴とするものである。
これら本発明によると、シンボル化の問題を回避し、アナログ的に構造を表現し、標準との柔軟かつ単純なマッチングを行うことができる。また構造解析を行うので、必然的に対象を適格に記述することが出来て、原因結果の対応が人間の視覚からみて明確である。したがって、文字などの対象の形の評価が出来て、正しい拒否範囲を設定でき、より人間に近い能力をもつ認識システムを提供することができる。
図1は、本発明の一実施の形態によるシステム例を示す構成図である。
図2は、本発明の一実施の形態による文字認識全体の処理例を示すフローチャートである。
図3は、本発明の一実施の形態による特徴点検出処理例を示すフローチャートである。
図4は、本発明の一実施の形態による識別処理例を示すフローチャートである。
図5は、本発明の一実施の形態による各画と折れ線近似の例を示す説明図である。
図6は、本発明の一実施の形態による折れ線角を示す説明図である。
図7は、本発明の一実施の形態による折れ線角と外角を示す説明図である。
図8A及び図8Bは、本発明の一実施の形態による巻き角を示す説明図である。
図9A及び図9Bは、本発明の一実施の形態による同一巻き角内の分割を示す説明図である。
図10は、本発明の一実施の形態による長さ系列を示す説明図である。
図11A及び図11Bは、本発明の一実施の形態による巻き角の例を示す説明図である。
図12A〜図12Cは、本発明の一実施の形態による巻き角のプラス・マイナス分解の例(2の例)を示す説明図である。
図13A〜図13Cは、本発明の一実施の形態による巻き角のプラス・マイナス分解の例(7の例)を示す説明図である。
図14は、本発明の一実施の形態による巻き角内での始端、終端、中間を示す説明図である。
図15は、本発明の一実施の形態による両端角差を示す説明図である。
図16A〜図16Cは、本発明の一実施の形態によるフィルターを示す説明図である。
図17は、本発明の一実施の形態による累積角特徴関数の例(Uの例)を示す説明図である。
図18は、本発明の一実施の形態による累積角特徴関数の例(Jの例)を示す説明図である。
図19A〜図19Dは、本発明の一実施の形態による先端部分の曲率の例を示す説明図である。
図20は、本発明の一実施の形態による抽象図形地図の例を示す説明図である。
図21は、本発明の一実施の形態による巻角系列の例を示す説明図である。
図22は、本発明の一実施の形態による準虚交差点の例を示す説明図である。
図23は、本発明の一実施の形態による虚の交差点の例を示す説明図である。
図24は、本発明の一実施の形態による実交差点の例を示す説明図である。
図25は、本発明の一実施の形態による交差する折れ線の例を示す説明図である。
図26は、本発明の一実施の形態による準虚交差点の例を示す説明図である。
図27は、本発明の一実施の形態による加重平均角の算出例を示す説明図である。
図28A及び図28Bは、本発明の一実施の形態による中点検出例を示す説明図である。
図29A及び図29Bは、本発明の一実施の形態による中点検出例を示す説明図である。
図30は、本発明の一実施の形態による距離と頻度の例を示す説明図である。
図31は、本発明の一実施の形態による2次元距離分布の例を示す説明図である。
図32は、手書き文字Zの例を示す説明図である。
図33,図33A,図33Bは、本発明の一実施の形態による分割・極点の説明に供する説明図である。
図34は、本発明の一実施の形態による枠組み構造の説明に供する説明図である。
図35A及び図35Bは、本発明の一実施の形態による枠組み構造の説明に供する説明図である。
図36A,図36B,図36C,図36Dは、本発明の一実施の形態による枠組み構造の説明に供する説明図である。
符号の説明
1・・・紙
1a・・・運筆
2・・・ペン
3・・・入力処理部
4・・・折れ線近似部
5・・・前処理部
6・・・特徴抽出部
7・・・識別部
8・・・識別結果出力部
以下、添付図面を参照しながら本発明の実施の形態の例を説明する。
本例においては、オンライン手書き文字認識を行うシステムに適用してあり、図1には、各処理部をハードウェア構成とした場合の構成例を示してある。なお、図1に示すように各処理部を個別の処理部とすることも可能であるが、各処理部を共通の演算処理部で実行する構成としてもよく、或いはパーソナルコンピュータ装置などの汎用の演算処理装置に、本例の手書き文字認識をプログラム化したものを実装させて、同様の手書き文字認識が行われるようにしてもよい。
また、以下の説明においては、本例での手書き文字認識に必要なそれぞれの概念を、次の表1に示す用語で定義している。
図1に示した構成について説明すると、紙1の上で、ペン2で文字を書くことで、その紙1の上の運筆(筆跡)1aをペン2側で検出する。その運筆1aの検出は、例えばペン2に内蔵されたカメラにより行う。或いは、加速度センサなどからペン2自体の動きを検出するようにしてもよい。さらに、ペン側で検出するのではなく、紙1の側を何らかのパネルで構成して、電気的に筆跡を検出できる構成としてもよい。いずれにしても、本例の場合にはオンライン手書き文字認識であるので、時間の経過による筆跡の変化を判断できる構成としてある。
これらの処理で検出された筆跡のデータは、入力処理部3に送られ、文字情報を検出するための入力処理が行われる。入力されたデータは、以下、折れ線近似部4、前処理部5、特徴抽出部6、識別部7、識別結果出力部8に送られて、それぞれの処理部で対応した処理が行われて、最終的に、識別結果出力部8で、識別された文字の表示や、識別された文字コードの出力などの出力処理が行われる。
図2のフローチャートは、本例の文字認識の全体の処理例を示したものである。以下、図2に従って説明すると、入力処理部3から入力された文字/図形パターンは(ステップS11)、折れ線近似部4で折れ線近似される(ステップS12)。この近似から、入力パターンは、各折れ線をベクトルと見た時の、長さ、方向角、隣接する折れ線の方向角の差を要素とするベクトルとして表現される(ステップS13)。また、方向角の差のベクトル表現から、同符号の角の差の和を求め、符号を含め一つの要素として、ここで巻き角と名づけたベクトル表現が求められる。この結果から、前処理部5で、非常に短い点状のパターン、非常に短い折れ線、それと非常に価の低い方向角の差の成分は修正される(ステップS14)。次に、特徴抽出部6で折れ線近似表現から、状況に応じて、特徴が抽出され(ステップS15)、その特徴の抽出結果に基づいて、文字認識が行われ(ステップS16)、文字認識結果が出力される(ステップS17)。
ここで、ステップS15での文字認識処理の詳細の例を、図3のフローチャートを参照して説明する。まず、ストローク数がチェックされる(ステップS21)。ここでは、ストローク数が1の場合と、複数の場合に分類される。ストローク数が複数のときには、一般交差点検出が行われる(ステップS22)。そして、巻き角表現で、要素数が1の場合と複数の場合に分類される(ステップS23)。巻き角表現で、要素数が複数のときには、巻き角のプラス(+)マイナス(−)の分解が行われる(ステップS24)。
更に、交差があるかどうかチェックされる(ステップS25)。交差がある場合、一つの巻き角要素は、巻き角前後分解処理として、交差点を境に3個の部分に分解される(ステップS26)。具体的には、交差により形成されたループの部分と、始端から交差点までと、交差点から終端までの3つである。
そして更に、文字/図形のパターンに応じ、より簡潔にかつ効率よく特徴を求めるために、前処理2として、よりコンパクトな折れ線近似表現を得る処理が行われる(ステップS27)。また、長さ−△偏差検出として、長さ系列ベクトル、△系列ベクトルの要素の一様性がチェックされて(ステップS28)、これが識別に利用される。
次に各巻き角領域内の局所的特長を抽出し(ステップ29)、更に準局所的特徴を抽出し(ステップ30)、文字全体の枠組み構造を設定して、階層的、かつ分割的な処理が行われる(ステップ31)。
一方、以上の特徴抽出が行われると、図2のステップS16の識別処理により、木構造に基づく決定木を使い簡潔かつ高速に識別が行われる。即ち、図4に示すように、木構造の識別が抽象図形地図を使用して行われ(ステップS32)、接近した形の場合、特徴空間上の関数/ベクトル空間に基づく小次元空間上の識別法が使用されて、識別が行われる(ステップS33)。
次に、それぞれの段階での具体的な処理の詳細について、図5以降を参照して説明する。ここでは、本発明の原理を説明する上で、原理が最も判り易い例として、主として0,1,2,……9のアラビア数字を文字認識する例を説明する。
まず、巻き角の検出について説明する。
本例での対象文字曲線の表現については、まず観測装置より得られた、文字のストロークの折れ線近似を行う。折れ線近似そのものについては、既に多くの研究がある。その中で、適当な手法を用いるとする。此処では例えば、1972年に発表されたU.E.Ramerの手法を想定する。この手法は単純明快な手法で、最も知られた方法であると言って良いであらう。そこで、折れ線近似された画/ストロークから説明を始める。
まず、図5に示すように、第一に、折れ線近似された画/ストロークは書き始めの始点から始まり、その最初の折れ線の終端は方向表示として矢印で示されているベクトル表示となっている。図5の左側が、ペンで書かれたストロークそのものであり、図5の右側が、折れ線近似されたものである。最初の折れ線のベクトル表示に繋がる折れ線も同じくベクトル表示され、順にベクトル表示され、最後に画/ストロークの終端で終わる。
ここで、各折れ線の角は、図6で示されているように、各折れ線の始点から、x軸(水平軸)の正の方向に引かれた水平線から反時計方向に測られる。従って原点から上向きの折れ線の角は+90度である。下向きの折れ線は−90度である。原点からx軸の負の方向に向いた折れ線は、180度か−180度である。ここで両者は一致する。従って、角θの範囲は−180度から+180度である。なお、以下の説明では、角度を示す場合に、単位の[度]は省略して数字だけを示す場合がある。
次にこの折れ線角から、頂点の折れ線外角を求める。具体的には、例えば図7に示すように、x軸と最初のベクトルとの成す角度を折れ線角θ1とし、以下順にx軸と各ベクトルとの折れ線角θ2,θ3,……とすると、最初の外角△1は、△1=θ1−θ2となり、前後の折れ線角の差で求められる。次の外角△2は、△2=θ2−θ3となる。以下同様にして、図7に示すように、折れ線の角頂点の外角系列として、((θ1−θ2),(θ2−θ3),..(θn−1−θn))を求め、これを簡単に(△1,△2,..△m)と表示する。これら外角は曲線の書き方が右回りであるか、左回りであるかにより+か−の量になるがそれら連続する同符号の外角の和を、巻き角系列として、(Θ1,Θ2,..Θp)と表示する。ここでの計算で注意しなければならないのは、角の主値は180から−180であり、実際は±180は同一角を示していることである。したがって、差を求めその絶対値が180を超えたとき、
Δが正のときその値をΔ−360とする。
Δが負のときその値を360−|Δ|とする。
なお、ここで、折れ線の角頂点の外角系列として、((θ2−θ1),(θ3−θ2),..(θn−θn−1))を求め、これを簡単に(△1,△2,..△m)と表示するようにしても良い。このように表示する方が符号系としては、統一性があるが、ここでは、右巻きの符号を+にするということにこだわった例としてある。
この巻き角の意味が図8A,図8Bに示されている。この「S」字型の文字は最初左周りで左に開いた⊂を形成し、次に右回りとなり、右に開いた⊃を形成する。かくして「S」はシンボル表現では⊂/⊃または(⊂+⊃)なる構造をもつ。今まではこれが準位相的特徴と言われてきた。ここではそれが連続量として表現されることになる。なお⊂の終端部のベクトルと⊃の始端部のベクトルは、重なっている。
巻き角系列の計算法が図7に示されている。
図7で太線は左回りの左に凸(右に凹)部分を表示している。かくして「3」は単純にその巻き角角系列(+142,−140,+149)と表現される。
また、先にお互いの識別が困難とされている、筆記体の「g」と「y」、そして数字の「9」の認識について、巻き角系列を利用した識別の容易さを示す。三文字とも巻き角系列の項数は2である。それを(Θ1、Θ2)で表現する。そこで各文字は以下のような巻き角範囲を持っている。
筆記体「g」
条件 1:−320< Θ1 ≦−190
条件 2:300 < Θ2 <400
筆記体「y」
条件 1:−170< Θ1 ≦−70
条件 2:300 < Θ2 <400
「9」
条件 1:−500< Θ1 <−150
条件 2:100 < Θ2 <250
そこで、条件 1& 条件 2なる論理式を構成することによりこれら三文字は容易に分離認識することができる。なおこれらは回転不変なので、実際にはこれを正す方向特徴が必要であるが、いかに簡単であるかが分かるであろう。
これから、具体的な例として、主に手書き文字で最も重要なアラビア数字についての認識処理を説明していく。まず、この「3」は大まかな構造として、右回り、左回り、最後に右回り、記号的には(+,−,+)なる構造を持っていて、3つの巻き角Θ1,Θ2,Θ3で構成される巻き角系列(Θ1,Θ2,Θ3)が形成される。数字の場合、基本的には他にこの構造をもつ数字はない。したがって例えば「3」のテンプレイトとして、
90<Θ1<300 & −150<Θ2<−30 & 90<Θ3<300
とすれば、この型のかなりの変形を吸収し、対象を正しく認識することが出来る。
なお、折れ線近似した結果は、このような巻き角系列だけでなく、長さ系列のデータも得るようにしてある。図10は、長さ系列について説明した図である。ここでは、折れ線全体を長さ1.0として、各折れ線(ベクトル)の長さを正規化した値を得るようにしてある。具体的には、図10に示すように、ベクトルv0〜v5と折れ線近似されているとすると、図10の下側に示すように、全体を長さ1.0として、各ベクトルv0〜v5の長さを正規化し、それぞれの値の集まりを長さ系列とする。図10の例では、
長さ系列:0.12,0,13,0.13,0.10,0.30,0.22
として小数点以下2桁の数値で示してある。各長さの合計は、1となり、正規化された値であることが判る。
次に、巻き角を使用して文字認識を行う原理について説明する。巻き角を使用することで、ラフであるが変形に強い認識系が構成できるのであるが、具体的には、これに種種の拘束条件を入れていかなければならない。ここでは、巻き角系列の要素が1個の最も単純な場合が良い。これは記号的には(+)又は(−)で表現される。
(+):「1」,[2],「3」,「7」,「9」
(−):「0」,「1」,「4」,「6」
がそれぞれ含まれる。ここで、ループを持った[2],「3」,「4」
は手書きの標準形ではないがこの程度の変形文字は認識されなければならない。ループについては後述する。また、「1」はノイズを考慮して安全のため両方に入れた。まず、(+)に属する、数字を考える。
まず一番単純には、巻き角だけで、これらを区別することである。ここでは、「7」を単純化して、鉤の無い欧米式「7」を認識するものとする。またこれと関連し「1」は標準形「|」とする。
「1」:+0< |Θ| <+30
「2」:+280<Θ<+600
「3」:+400<Θ <+700
「7」:+90 <Θ<+180
「9」:+280<Θ <+400
これらから、巻き角角だけで、「1」,「7」は識別できる。また、「3」も識別可である。
しかし、「2」の極端な変形である「α」の如き形状(このαのような形で、始点からループの交差点にいたる線分で、凹みがない)は、上述した条件では除外している。このような変形に対処するために、ループ部分について、次に説明するような解析を行う。
具体的には、極端な変形を考慮する必要のある認識対象文字「2」,[3],「9」であるが、これらの字の解析の方針を説明すると、例えば「1」,「7」の巻き角はそれぞれ30度、180度を超えない、即ちそれらはそれぞれ緩やかなL型、U型であることを意味している。反対に他の文字は、大まかに言ってLの半分+Uの、即ち45+180=225を超えることを示している。このように直観的に数値による設計ができる。しかし厳密にはループは巻き角が180+αで起こり得るが、現実には殆どこのような面積が0に近い異常なループは起きない。
そこで、巻き角の交差分解を行うようにしてある。
巻き角の交差分解として、ここでは、認識対象文字「2」,「3」,「9」の分離を考える。まず「2」では図9Aに示す如く、「2」のループの上部で、巻き角が大きくなりすぎて、「2」全体としては巻き角が、600度程度にもなってしまうことである。そこで、このような問題を解決するために、同一符号の巻き角の分割を考える。それはループの交差点で、上部と下部の巻き角とループの巻き角を分けることである。即ち、図9の例では、図9Aに示すように、始めの折れ線のベクトルv0からループに入る交差する折れ線v4までの巻き角(前巻き角/preΘ)と、図9Bに示すように、ループから出る交差する折れ線のベクトルv7から終端の折れ線のベクトルv8までの巻き角角(後巻き角/postΘ)である。なお、ベクトルv4〜v7で形成されるループの巻き角は、ここではあまり意味が余り無いので、ここではこれを除外し、文字認識には使用しない。ベクトルv0〜v4の前巻き角が大きくなっても、ベクトルv7〜v8の巻き角が小さければ、例えば90以下としておけば全体としての巻き角が「2」と「3」で重なることがあっても、両者を区別することが出来る。
このようにして、ループ形成個所で交差分解を行って、例えば「2」と「3」の場合に、以下の如く巻き角の許容範囲を決める。
「2」:+280<Θ<+450−−> +300<Θ<+700 & 0≦postΘ<90 & CROSS
「3」:+400<Θ <+700−−> +400<Θ<+700 & 100≦postΘ & CROSS
ここで、postΘとは後巻き角を意味する。また当然、ここで、「2」,[3]とも交差点(CROSS)を持つことを想定している。前巻き角はpreΘと表す。なおここで「2」と「3」の間に拒否領域を取っている。なおここで用いた交差特徴については次に述べる。
次に認識対象文字「2」,「3」と「9」の間の分離であるが、巻き角だけ見ると明らかに、「9」は「2」,「3」と重なる。しかし、上で述べたように、「2」,「3」は必ず交差があり、「9」には無いとする簡易な解決法がある。しかし、自由手書き文字の変形を考えるとそうはいかない。その例が図11に示されている。図11Aは「2」の例であり、図11Bは「9」の例である。いずれの場合も交差が発生しているが、次に示す条件により識別することができる。即ち「9」は前巻き角、preΘが小さいのである。この場合は0である。先に「2」の極端な変形「α」を除外したのはこのためでもある。この場合、前巻き角は0となる。
「2」:+280<Θ<+700 & 0≦postΘ<90 & 30≦postΘ & CROSS
「3」:+400<Θ<+700 & 100≦postΘ & 30≦postΘ & CROSS
「9」:+300<Θ <+400 & {NO_CROSS | 0≦preΘ<10}
次に、巻き角の+−分解について説明する。
上述した例では、一つの巻き角内での分割であったが、巻き角系列に対応して、それぞれの部分長さ系列、部分Δ系列に分割して、次に述べる幾何的特徴を、各部分において行うと効果的である。そこで、その部分に分割する処理についてのべる。これは反りのある「7」の字の例である。長さ系列、Δ系列、巻き角系列は以下の如くである。これが図13で、元図形(図13A)と折れ線近似された図形のΔ系列、巻き角系列(図13B,図13C)とを示してある。なお、図12(元図形:図12A,Δ系列:図12B,巻き角系列:図12C)は、比較のために「2」の字の例を示してあり、図12、図13の比較は後述する。
図13に示した「7」の字の各系列は次のとおりである。
長さ系列:0.38 0.17 0.14 0.32
Δ系列:+121.29 −19.17 −19.72
巻き角系列:+121.29 −38.89
図から、巻き角系列の第1項Θ1は最初の長さ系列0.38 0.17から形成され、第2項Θ2は、長さ系列0.17 0.14 0.32から構成されていることが分かる。ここで、長さ0.17を持った第2の折れ線、は両方に属している。この折れ線部がΔ系列の符号の分岐線である。すなわちこれは境界線で、重なり(共通)部分である。このように長さ系列、Δ系列を巻き角系列の+−に応じて分離させ、それぞれで、構造を解析すると良い。比較のために反りのある「7」と間違いやすい、なだらかな曲線形状の「2」の例を図12に示す。図12に示した「2」の字の各系列は次のとおりである。
長さ系列:0.14 0.09 0.36 0.21 0.08 0.12
角度系列:−2.05 −35.54 −113.31 −94.29 −47.49 −12.80
Δ系列:+33.49 +77.77 −19.02 −46.80 −34.69
巻き角系列:+111.26 −100.51
この場合は、長さ系列:0.14 0.09 0.36が巻き角系列の第1項Θ1を形成し、後半の0.36 0.21 0.08 0.12が、巻き角系列の第2項Θ2を形成する。かくして、この両者、「7」と「2」の差は第二のマイナス部分の長さ系列を見れば歴然としている。これを並べると、「7」の第2の(−)部分の長さ系列;0.17 0.14 0.32「2」の第2の(−)部分の長さ系列;0.36 0.21 0.08 0.12であり、あとで述べる端長比(始端長/終端長)で、「7」対「2」は0.53対3.00となり、この特徴が両者を分離する鍵であることが分かる。これは、「7」の下部がほぼ直線的に下に下がっているにたいし、「2」では、下部は曲がっている、視覚的な特性を数値として表現している。
なお、ここで巻き角での始端、終端、中間についての本例での定義を、図14に示しておく。1つの巻き角が図14に示すように複数の折れ線で構成されているとすると、その複数の折れ線の始端折れ線の正規化した長さを始端長とし、始端長:l startと表す。また、終端折れ線の正規化した長さを終端長とし、終端長:l endと表す。始端Δ値及び終端Δ値は、図14に示すように、巻き角を構成する隣接する折れ線との外角である。中間折れ線は、始端折れ線と終端折れ線との間にある各々の折れ線のことである。
次に、幾何的特徴抽出について説明する。
文字の種種の変形を考えると、これらのテンプレイトだけでは不十分でこれらを補強していかなければならない。そのための一般的な指針を述べる。いままでは、反りのある「7」と「2」の区別以外、角だけで、形を規定した。これは、専門用語では準位相的特徴と言われる。しかし現実には、これに加え、幾何的特徴が不可欠である。これら両者の微妙な結合体が文字の形である。特にアラビア数字は、この点において、実に洗練された形の体系をもつ。
そのため、まず、
折れ線頂点座標系列:(xs,ys),(x1,y1),(x2,y2),..(xe,ye)
折れ線長系列:(l1,l2,l3,..,ln)
を求めておく。通常これらの要素は全体の長さで正規化する。
例えば、認識対象文字「1」の場合は、実際上、折れ線長系列は、系列:(l1)か、系列:(l1,l2)の何れかである。傾きについては、例えば始点の角θが±25度に入ると言う制限が必要となる。
この様に、正規化された、以下の特徴が有効である。
1.長さ系列端長の比(端長比);lstart/lend.
2.長さ系列端の最大長;Max{lstart,lend}
3.長さ系列端間の中間長の和;Σn=2 n=end−1l n.
4.中間最大長(長さ系列端の中間長の中での最大長).
一方、角の、または角張っていると言った特徴はΔ系列の最大値、MaxΔで表示するがこの価でかなり角の状況が分かる。角のバランスを見るには、端のΔ値の比、Δ端比と表示するが、この価でかなり分かる。「U」と「V」の区別は正しく書かれたならば、このわずか2個の情報でどちらであるか推測がつく。例えば、もし長さ系列端の最大長が≦0.6であり、かつ、長さ系列端間の中間長の和の価が<0.2で、かつ、端長比が>0.8で、かつ、Δ端比が>0.7であれば、明確な「V」であるといえる。
しかし、これは今問題にしている対象の巻き角が、90≦|Θ|<150であることを、前提にしている。この巻き角による階層化は非常に重要なスキームで、これについては別に述べる。また上に述べた判断は、特に折れ線数が3に等しい時、特に有効である。なおまた、次の階層である、150≦|Θ|<180では、「U」と「V」とが共存する。この場合には、より明確な特徴が必要で、これは、UまたはVの両端の折れ線を取り上げ、これらを仮想的に繋げ、両者の△値を求めれば、これが対象文字の開きの角度と見なし得る。これは両端角差と名づける。両端角差は、例えば図15に示すように、巻き角の始端の折れ線と、終端の折れ線との成す角度である。図15では、説明のために、終端の折れ線を平行移動して、両端角差を示してある。
例えば、上述の様に、端長比とΔ端比の特徴を使い、対象をUかVに追い込んで、それからもし両端角差の絶対値の価を見て、その価が155度を越えていれば「U」、155度以下であれば「V」である。しかし「U」、「V」問題は、そう簡単ではない。より微妙な場合には、やや高度な手法が必要である。これについては、後で述べる。
以上角特徴をまとめると、
1.MaxΔ,
2.Δ端比,
3.両端角差
である。
次に、前処理の例について説明する。ここでは前処理は、前処理1と前処理2があり、前処理1は例えば図2のフローチャートのステップS14での処理に相当し、前処理2は例えば図3のフローチャートのステップS27での処理に相当する。
上述の特徴を抽出するに、適当な前処理を、長さ系列、△系列に行うと、非常に効率が良い。そこで、ノイズ処理も含め以下に述べる。
前処理1.
まずノイズ処理であるが、ひとつは、非常に小さな点を除去する処理である。これは正規化された長さではなく、元の物理的長さに適当な閾値を設け、点状ノイズを除去する。次に、特にオンライン文字で、起こりやすいのであるが、線の終端で、小さな鉤状の極端な曲がりが出来てしまうことがある。これは、先に述べた、巻き角に大いに影響するのでこれを除き、ノイズとして発生した、△値を主の巻き角から差し引く。この時に使用する閾値は、画の複雑さに依存する。このノイズ処理は、曲線の両端のみで行う。
前処理2.
長さ系列の始端長、l(s)から始め、l(s),l(s+1)間の△(s)が<20なら、l(s)=l(s)+l(s+1)とする。同様にl(1),l(2)に対応する|△(s)|が<20なら、l(2)=l(2)+l(3)とする。|△(i)|<20の条件が満足されなければ、何もしないで1ステップ先に進む。これをl(e)まで続ける。結果として新しい長さ系列、が得られる。ここでの最大の問題は、閾値の価である。経験上、閾値を10に取れば、いわゆる副作用は殆どない。20のときは状況による。使い方を選ばなければならない。なおこの問題を回避する、より一般的な特徴抽出法については後で述べる。
△系列においては、始端、終端のみに行うのが良い。即ち、長さ系列の始端、終端において、l(s)=l(s)+l(s+1)またはl(e)=l(e)+l(e−1)が実行された時、△(s)=△(s)+△(s+1)または△(e)=△(e)+△(e−1)とし、それ以後はこの処理を続行しない。この他に、例えば「7」で、右の長い曲線部が微妙に反ることがある。これは△値で、10程度の価である。しかし巻き角系列の項数が1個増大し、影響は大きい。それで、この様な△系列も修正して、処理効率を上げることが考えられる。
なお、これに関して、実はRamerの方法は、直線と曲線との誤差を両者の最大誤差長で見ているので、これを調節することにより、曲線全体のノイズ処理を行うことができる。
次に、本例で行われるフィルター処理について説明する。
これは本格的な認識に入る前に、簡単に分かる入力の特性を見て、そのようなパターンを先に取り出してしまうと言う処理である。近似折れ線表現は一見複雑である。そのようなパターンを取り出しておけば後の処理が簡単になる。そのような処理を、ここではフィルター処理と称した。具体的には「円」を判定する処理がある。具体例を挙げて説明する。ここでは、閉じていない曲線が書かれた場合に、その曲線の状態から、円が書かれたとみなす処理を行う例である。
図16Aは、元の図形であり、この折れ線近似が図16Bに示されている。図16Bには、正規化された長さ系列の値を入れてある。図16Cは、同じ折れ線にΔ値を入れた図面である。図が円に近い場合には、長さ、Δ値とも同じような価を持つ。
それで、この場合の長さ系列、Δ系列は以下のようになる。
長さ系列:0.08 0.05 0.11 0.10 0.05 0.12 0.13 0.12 0.07 0.06 0.12
Δ系列:+26.65 +28.10 +31.43 +29.36 +34.08 +35.84 +44.61 +34.14 +23.78 +35.17
ここでの長さ系列、Δ系列は、ノイズ処理した後か、低い閾値で例えば10、前処理後のものである。フィルターの処理では原始的データの方がむしろ良い。ここで気が付くことは、長さ系列、Δ系列の要素の価に変動が少ないと言うことである。これが「円」の特徴である。この要素の一様性を簡単に見るには、長さ系列、Δ系列の最大値を見れば良い。
長さ系列では、最大値は0.13、Δ系列では44.61である。巻き角:+323.16の14%である
。ちなみに長さ系列、Δ系列の標準偏差値はそれぞれ、σ(Len)=0.0292、σ(Δ)=5.5714である。また縦横比は(幅/高さ)=1.05である。
一方、一見円に見えるサンプル例として、
長さ系列:0.10 0.11 0.14 0.05 0.08 0.06 0.09 0.13 0.10 0.09 0.06
Δ系列:−28.25 −28.07 −25.85 −33.17 −33.19 −30.04 −35.81 −21.80 −23.20 −49.40
巻き角系列:−308.78
であり、長さ系列、Δ系列の標準偏差値はそれぞれ、
σ(Len)=0.0272
σ(Δ)=7.4841
縦横比(幅/高さ)=0.71
である。
これから、長さ系列、Δ系列の標準偏差値、縦横比は特徴量として使用可に見える。しかし、この例のように標準偏差値は実は期待ほどには良くはない。実際、長さ系列のσ(Len)は0.0272で最初の「円」サンプルに比し小さく、σ(Δ)=7.4841でかなり大であり、2種の標準偏差値がバランスを欠いている。また計算量も大である。縦横比は丸みがあると判断された後にしか使用できない。この丸みの条件が成立後は簡単で、良い特徴であり、ここでもそれを使う。例えば、巻き角で階層に分け以下のような条件が作られる。
[1;(最大長≦0.15)&(最大△値≦46)&(先端部の巻き角≦125)&(270≦|巻き角|<300)&0.80≦縦横比(幅/高さ)≦1.20]]→「弱円1」
[2;(最大長≦0.15)&(最大△値≦48)&(先端部の巻き角≦130)&(300≦|巻き角
|<320)&0.80≦縦横比(幅/高さ)≦1.20]]→「弱円2」
[3;(最大長≦0.15)&(最大△値≦50)&(先端部の巻き角≦135)&(320≦|巻き角
|<360)&0.80≦縦横比(幅/高さ)≦1.20」]→「弱円3」
ここで、単に「円」としないで「弱円」としたのは、実際手書きでは正確な円を書くことはむずかしくこれを考慮して、上の条件を設定して、円に近い状態であることを示す「弱円1」,「弱円2」,「弱円3」を定義した。これで、ほぼ円であると推定されるものは、この条件を満足する。図16の入力に対する結果は、[6−弱−○−3]である。一方、上述の例は縦横比で、最終的に「円」と判断されない。
次に、累積角特徴関数について説明する。
上に述べた、特徴は閾値の影響を受けやすい。例えば、
長さ系列:0.23 0.28 0.09 0.14 0.12 0.14
Δ系列:+11.54 +73.01 +42.89 +7.37 +20.12
では、閾値20で前処理すると、先頭部分はΔ値が11.54で、20以下なので、前処理され、始端長は0.51となる。しかし、終端ではΔ値が20.12で、わずかに閾値より大なので、前処理されず、端長比が0.14/0.51=0.27となる。このため、端長比&MaxΔが(<0.5)&(>45)、ならば「L」という条件に合致してしまう。実はこの入力文字は明白なVである。
この問題を解決するために、長さ系列とΔ系列から、Δの長さに対する累積角関数を考える。この長さ系列、Δ系列の折線近似に対する累積角関数が図17に示されている。しかし、これは、階段関数で(点線のグラフ)、閾値問題を持っている。そこで、簡単な線形補間関数を作る。これも、図17に示されている。これは単に各階段の角を線で繋げたものである。この簡単な補間で階段関数は連続関数になる。しかも単調増加関数である。この補間関数は、順方向と逆方向と2種類作る必要がある。それぞれに使用した長さ系列、△系列が二つの表で示されている。こうしたのは、この簡単な補間法では、図9の関数グラフを注意深く見れば、最後の階段では、補間の直線は水平になっている。すなわち、ここでは厳密には、一意的に逆関数を求めることが出来ない。確かに、このようなことがない様に、例えば階段のステップの半分を取ってこれを直線補間するなど考えられるが、性能については、順方向、逆方向の2個の関数を用いた方がより厳密である。正確には、長さでいえば少なくとも半分、[0,0.5]では殆ど確実に使える。実際の応用では、このように引数の値域の半分までしか使用しない。この「U」の例では、略対称なので、これら2個の順方向と、逆方向の関数は一致する。これを使えば、例えば特に問題になる、UとVを区別する問題などでは、この逆関数、即ち、巻き角度90を入れ、それだけ巻いた長さを求める。これがこのグラフでy軸上の90度を与えるX軸の長さが求められる。これはこの累積角特徴関数を逆に使用している例となっている。このx軸上の価は図の90度の水平線が関数のグラフ(実線)にぶつかった所から垂線をX軸上に降ろしそのX軸上の点の価0.448、で与えられる。一方逆方向関数が点線で示され、この場合も全く90度に対応する長さはやはり0.448であり、全く一致する。この例はできる限り対称になるように書かれた「U」の例であり、この結果はこの方法の精度の良さを示している。
これは、この図形が対称であることを示していると同時に、Uの典型的な形を持っていることを示している。たとえば、「V」の場合、90始端長では中心点を超えてしまい、90終端長と重なりが生じる。これらの比はMin{90始端長,90終端長}割るMax{90始端長,90終端長}で、「U」の場合は1.0となる。この比は90度長比と名づける。なお上の例は実際の例である。この例が示すように簡単な補間で、かなり正確な計算ができる。この様な計算は任意のα度で求めることができる。そこで、一般にはα度長(巻き角)で表示する。ここでの引数は全体の巻き角を越えてはならない。大域的な対称性をみるなら引数として、全体の巻き角/2を取る。
一方、この順関数、すなわち長さを与え、巻き角を求めることも出来る。実際これが先程説明した累積角特徴関数の素直な使い方である。例えば、「6」で、ループが開いて、微妙に曲がっているような時には、非常に有効に使用できるが、ここでは極端な例として入力文字「J」を、図18を参照して具体的に考える。なお、この文字の形は、上に水平方向のバーがないJの字である。ここでは例として引数としての長さは0.3を想定する。
この図18の例の場合は、順方向関数(実線)と逆方向関数(点線)は大きく異なる。これはまさに文字「J」の形を反映している。この場合順方向、即ち始点から、0.3進んだ点での巻き角、それと反対に逆方向関数から、終点から、同じく0.3だけ進んだ点での巻き角を求めることが同様に出来て、それぞれ、10.00度、112.88度で、両者の比、λ長度比(0.30)=0.09で、両端での曲がりが極端に異なることが定量的に示されている。
なおこの計算で注意しなければならないのは、例えば以下に示す2個の折れ線の例で、
長さ系列:0.38 0.62
Δ系列:+31.08
であると、λ長度の関数の引数が0.38を超えると、対応するΔ系列の項が無い。この場合以下のような結果になる。
λ長度比(0.25)=0.61(20.45)(12.53)
λ長度比(0.30)=0.61(24.54)(15.04)
λ長度比(0.35)=0.61(28.63)(17.55)
λ長度比(0.45)=計算エラー
である。実際には、折れ線数が2又は3の場合には、これらの累積角特徴関数は使用しなくとも良いのであるが、折れ線数が少ない場合には注意が必要である。実際にはこのλ長度関数の引数は0.5を超えて使用することはない。またこの計算エラーの起こる場合は容易にチェックできる。経験上引数0.30程度が一番有効である。
なお、図17、図18に示したのは直線補間の一例であり、他に色々考えられる。この例では始端からの場合の例で、この補間関数を終端から見ると言う場合には使えない、この場合は同じ手続きで終端から始め補間関数を新たに求めている。それで、これらの中間を取れば補間関数は強い単調増大関数(ここで「強い」とは必ず増大する意)となり、両方に使用できる。しかしここではこれを採用していない。
次に「U」と「V」のような類似した文字を区別するには、その先端の曲がり具合を如何に表現するかが、幾何的特徴抽出を行う上で、非常に重要となる。この課題を解決する為の方策として、本例においては、巻き角を利用した(1)中点検出によるバランス、角特性の抽出、(2)先端部曲率の2つの方法が適用可能である。この2つの方法について以下述べる。
まず、中点検出によるバランス、角特性の抽出から説明する。これは、中点を分岐点として対象となる巻き角を前後の2つに分割し、それぞれの分割された部分で特徴を求め、それらを全体的に評価し、判断を下すという手法である。
ここでいう「中点」とは、対象文字の凸点、乃至は凹点を含む巻き角において、対象巻き角の2分の1をαとしたα度長である(始端側と終端側の双方から求める)。これは上述の累積角特徴関数より求めることが出来る。
具体的には、始点から測って(巻き角/2)巻いた点 ″α度(巻き角/2)始点”、終点から、逆に測って(巻き角/2)巻いた点 ″α度(巻き角/2)終点”を求め以下のアナログなα度(巻き角/2)の中心点を求める。即ち、
中点=((1−(α度(巻き角/2)終点))−(α度(巻き角/2)始点))/2+(α度(巻き角/2)始点)
(これは始点からの折れ線に沿っての正規化された、長さである)。
上記計算にて求められた中点はアナログ値であるので、便宜上、中点に一番近い折れ線の頂点を分岐点とし、その前後の折れ線群に分ける方法を取る。これらの折れ線群を前折れ線群、後折れ線群と名づける。これらの部分長の総長を求める、それらを前総長、後総長と名づける。
まず、対象文字の角特性を抽出するため、前折れ線群、後折れ線群それぞれについての加重平均角を求める。折れ線群内の折れ線系列を l(1),l(2),..l(n)とし、角系列をθ(1),θ(2),..θ(n)とし、前後の総長N=l(1)+l(2)+..+l(n)とすれば、加重平均角は以下の通り、求められる。
加重平均角=《l(1)×θ(1)+l(2)×θ(2)+..l(n)×θ(n)》÷N前後の加重平均角のなす角を両端平均狭角差(=θsp)として、
以下の如く与えられる。
θsp=(θ(pre)+180)−θ(pro)
(θ(pre)は前折れ線群の加重平均角、θ(pro)は後折れ線群の加重平均角)
また、前折れ線群、後折れ線群の直線性を見る具体的手法として、角の分散値を見る。即ち、
前折れ線群の角分散
=《(θ(1)−θ(pre))×l(1)+(θ2−θ(pre))×l(2)..+(θn−θ(pre))×l(n)》÷N
(後折れ線群の角分散値も同様)
分散値は大きな数になるので、これを100で割る。こうしても、比較が目的なので問題ない。
なお加重平均角の際、注意しなければならないことがある。
折れ線の方向角の値域は−180≦θ≦180で、−180は180と同一角を示す。この約束は、それぞれの折れ線の2次元平面上での方位を表すには良いが、それらの平均を求める、このような演算を導入するとき、問題になる場合がある。即ち、図27のように角折れ線群の始端の折れ線角がマイナスで始まった場合でも、終端の符号がプラスになるケースがあり、その場合、適切な加重平均値が求められないからである。従って、ここでは折れ線角を求める際の原則を調整し、始端の符号と同一方向で折れ線角を測定することとする。なおこれは、数学的には角度をリーマン平面上で測ることである。この平面は−∞から原点までの直線に鋏で切れ目をいれ、第3象限の面を3次元空間で下に延長させ、第2象限の面を上に延長させ、らせん状にした面である。
次に、中点より分岐した折れ線群の長さのバランスは以下の如く定義される。
バランスの定義:Min(前総長,後総長)/Max(前総長,後総長)以上の幾何特徴の具体例を以下に示す。まず、図28Aにある対象文字「U」を、図28Bに示すように折れ線近似する場合について説明する。この表現は以下のように与えられる。
3:長さ系列:0.29 0.19 0.08 0.15 0.29(192.81)
3:角系列:−35.68 −82.65 −140.71 −177.71 154.49
3:Δ系列:46.97 58.06 37.00 27.80
3:巻き角系列:169.84
3:頂点リスト:0:(836,47)1:(875,75)2:(879,106)3:(868,115)4:(843,116)5:(799,95)
中点=((1−0.47)−0.41)/2+0.41=0.47
(長さ系列から頂点(1)と頂点(2)の間にある点と分る)
頂点(2)までの距離:0.48−0.47=0.01(長さ系列を利用)
頂点(1)までの距離:0.47−0.29=0.18(同上)
したがって、最も中点に近い頂点:2:(879,106)を分岐点として選ぶ。
前加重平均角:−54.27
後加重平均角:−187.3
前加重平均角の直線と、後加重平均角の直線の狭角、θspは
θsp=(θ(pre)+180)−θ(pro)=(−54.27+180)−(−187.3)=313.0となるが、これは方位角の値域から外れているので、これを変換するため360から差し引くと47度となり、かなり開いていることが分かる。
前折れ線群、後折れ線群の直線性は、それぞれ前角分散、後角分散で見ることができる。それらは以下の如く与えられる。
前角分散:253.25/0.48/100=5.27
後角分散:280.4/0.52/100=5.39
前折れ線群、後折れ線群の長さのバランスは
バランス:Min(前総長,後総長)/Max(前総長,後総長)=0.48/0.52=0.92
で与えられる。
これに対し、「V」の例を、図29A及び図29Bに示す。
長さ系列:0.34 0.14 0.13 0.39(205.98)
角系列: −56.06 −79.11 170.13 152.02
Δ系列: 23.06 110.75 18.11
巻き角: 151.92
頂点リスト:0:(660,41)1:(695,93)2:(700,119)3:(677,115)4:(613,81)
中点:0.47
頂点:2
前加重平均角:−62.78
後加重平均角:156.54
前角分散:1.09
後角分散:0.61
θsp=39.32
バランス:0.92
上記「U」と「V」の中点検出による角特性、バランスを比較すると、θsp:47度対39度、前角分散+後角分散:10.66対1.70、バランス:0.92対0.92である。特に分散でU,Vに明らかな差が出ていることが分かる。この分散による違いを見ることにより、数少ないマスクで、相当な変形に対応できる。一方、バランスには差がない。これは両者とも、対称であるからである。この値は変動し、バランスが、例えば0.5程度になると「j」の1画になる。
なお、この中点を求め、曲線を分割する方法は、孤立した、1個の巻き角図形に限られない。一般には、巻き角系列の各項の曲線の範囲内において同じような処理が可能である。例えば「2」と「Z」の違いは、「2」=(「∩」+「⊃」)+「⊂」、「Z」=「⊃」+「⊂」と見なし、また一筆書きされた、「w」と「ω」の違いは、「w」=「∨」+「∨」、「ω」=「∪」+「∪」と見なすことが出来るので、各巻き角領域において、中点を求め、上述の処理を行うことが出来る。
また、中点は、正しく書かれた文字の場合、微分での極点と同じになる。それで、これを使用できる。しかし、上の中点がより一般的である。また、簡単に両端から正規化された距離0.5の点として、中点を求めることも出来るが、これは対称図形にのみ有効である。
次に、先端部の曲率について説明する。
これは、例えば、UとVの先端での曲がりを見て両者を区別するための特徴であり、巻き角と前処理による簡単な方法である。これを図19で示した例を使い説明する。図19Aは、Uの元の図形であり、図19Cに折れ線近似した例を、長さ系列とともに示してある。図19Bは、Vの元の図形であり、図19Dに折れ線近似した例を、長さ系列とともに示してある。
まず先端部の巻き角を求める。以下に示す「V」の例であるが、λ長度比(0.30)=0.59(11.63)(6.90)から、両端からの0.3の長さでの巻き角が出ているので、即ち11.63が始端から0.3までの巻き角、6.90が終端から、0.3までの巻き角である。そこで、この和11.63+6.90=18.53を、この文字の全体の巻き角から引く。即ち、124.98−18.53=106.45となる。
これは先端部の巻き角である。これを下の例を参照し先端部の長さ、0.03で割ると、この先端の曲がり具合(曲率みたいなもの)がでる。便宜上長さを100倍してから割る。したがって、106.45/3=35.48となる。
これが高いとVと判定され、低いとUと判定される。なお、長さは前処理後の長さ系列(閾値20)を使う。ここで、長さは補間した累積角特徴関数では1.00−2x0.30=0.4なのであるが、前処理で先端部の長さが明確に出る時はこれを使用すると良い。しかし一般的には、0.4なのでこの価はサンプルに共通である。それで、先端部の巻き角だけで、先端の曲がりを評価できるが、中間長の和を取り、上述の如く曲率を求めた方が効果的である。Uの場合の例、同様な計算を行う。この場合先端部の長さは前処理後の長さ系列(閾値20)から、0.09+0.12+0.11+0.09=0.41となる。Vの先端部の曲率;35.48,角;(106.45)とUのそれらの価、曲率:2.16、角;(88.68)を比較して,先端部のとんがりが明確に数値として表現されている。
例:Vの場合.先端部の曲率(角);35.48,(106.45)
長さ系列:0.41 0.10 0.03 0.10 0.37
巻き角系列:+124.98
前処理後の長さ系列(閾値20):0.51 0.03 0.47
パラメータ:
λ長度比(0.30)=0.59(11.63)(6.90)
先端部の曲率(0.30)=35.48(先端部の巻き角=106.45)
例;Uの場合.先端部の曲率(角);2.16(88.68)
長さ系列:0.27 0.09 0.12 0.11 0.09 0.32
巻き角系列:−172.23
前処理後の長さ系列(閾値20):0.27 0.09 0.12 0.11 0.09 0.32パラメータ:
λ長度比(0.30)=0.84(45.49)(38.06)
先端部の曲率(0.30)=2.16(先端部の巻き角=88.68)
一般的には、この累積角特徴関数は、単調関数であり、その意味では他の関数と比較し非常に簡単である。2次元図形の一部が、具体的には巻き角系列での項数が1個である場合、階層化されているものの、単なる単調関数として表現されると言うことは非常に興味深い。この単調関数が線形であれば、形は巻き角に応じて、「弧」、「半円」、「円」と連続的に巻き角360度の「円」に近づく。ユニット関数に近く、立ち上がりの点が中心近くなら、また巻き角に応じて開いた「V」から、180度で楔形となる。また中心からずれるに従い、チェック型になっていく。また中心付近でその立ち上がりがゆるくなるに従い、V型からU型になる。中心からずれると、J型になる。このように図形モデルを数学的に構成するのもよい。また、線形補間を、多項式近似すると、たとえば、3次のスプライン関数で、近似すれば、2次までの微分可能となり、累積角特徴関数をさらに解析することが可能である。例えば鈍角を持った三角形は、2個の2次微分のピークを持つ。曲率も計算できて正確で微妙な特性の計算も可能となる。このような考えは抽象図形地図の形成にも役に立つ。巻き角系列での項数が2個の場合、累積角特徴関数の空間は、2個の累積角特徴関数の積区間となる。以下同様である。かくして、複雑な図形が、この単調関数の組み合わせで、簡潔に表現される。
次に巻き角系列の各項の巻き角領域内で、折れ線角系列の、隣り合う折れ線角の変化のパターンまたは累積角特徴関数を利用し、対象文字を複数の区分に分解して、その区分または境界点を認識対象文字との比較に利用する手法について説明する。
まず具体的事例として、「1」→「L」→「U」→「0」→「6」の変化を考える。巻き角で定量的に表現すれば、「1=0」→「L=90」→「U=180」→「0=270」→「6=360」である。しかし、これでは内部構造は反映されない。一方、これらの内部構造はシンボルにより「1=|」→「L=L」→「U=∪」→「0=⊂+∪+⊃」→「6=⊂+∪+⊃+∩」と表現することが可能である。
図33の「6」を例に取る。まず隣り合う折れ線の角変化により、境界点(凹極点または凸極点)を検出する(点3、点6、点8が該当)。始点、終点、そしてこれら境界点により、図33の「6」は以下の区分に分割される。
始点1から点6に至る部分: 「⊂型」部分
点3から点8に至る部分: 「∪型」部分
点6から点10に至る部分: 「⊃型」部分
点8から終点12に至る部分: 「∩型」部分
このように対象文字を分割し、各々の区分をシンボル表現と対応させることによって、「1」、「L」、「U」、「0」、「6」の識別が可能となる。
なお、上記例における境界点は、通常のX−Y座標系での所謂微分凹凸極点と一致しているが、より一般的には、回転を考慮する必要がある。例えば図33Aのように、通常のX−Y座標系では点1は微分凹極点であるが、これを回転させた図33Bの形状とすると、同じ点1が凹極点ではなくなる。このような回転に対処するためには、累積角特徴関数を使い、一般的に境界点を求める必要がある。例えばL型ならばα度長(90)に近い頂点、U型ならα度長(180)に近い頂点を境界点として検出し、分割を行う。この事情は中点を一般的に求めることと対応している。
次に各画の曲線を巻き角系列に応じて、分割し、分割された各曲線部分において局所的特徴、準局所的特徴をもとめ、対象を階層的かつ分割表現する手法について説明する。
具体的な事例として、まず「m」を考える。図34における「m」の巻き角数は6個になる。これをシンボル的に表現すると∩+∨+∩+∨+∩+Lである。巻き角系列の各巻き角領域に左から項番号を付与し、各巻き角領域における極点特徴(凹極点または凸極点)を求め、それらに凸1(最初の巻き角に属する凸極点)や凹2(2番目の巻き角に属する凹極点)のように番号を付与する。これら凹凸極点、始点、終点間の位置関係を「頂点配置」と呼ぶこととする。この頂点配置により、対象文字の骨格とも言える「枠組み構造」が規定される。
例えば、この「m」の事例においては、始点、凸1、凸3、凸5の各点の高さがほぼ一列に並んでおり、また凹2、凹4、凹6、終点の各点が、底辺の高さにほぼ揃っている。このような頂点配置の特徴により、「m」の枠組み構造が規定される。この枠組み構造の特徴の違いは、図35Aの「h」と図35Bの「n」の比較を見れば一目瞭然であろう。あるいは、対象文字の高さだけではなく、横幅にも注目し、各凸点間、各凹点間の位置関係を規定したり、縦横の比を規定したりする方法もある。
また、例えば、図36Aのような「6」と図36Bのような「0」、即ち、両方とも同じ⊂+∪+⊃+∩構造である場合にも、枠組み構造を利用して効率的に両者を識別できる。この両者は境界点(点1と点2)間の距離(d1、d2)を見ることによって「6」と「0」を識別が可能となる。このような場合でも累積角特徴関数を用いた一般的な境界点(極点)の検出方法を用いることによって、図36Cのような「6」と図36Dのような「0」、ように任意に回転された対象にも適用できる。
また、分割された各曲線部分における局所的特徴求め、対象を階層的かつ分割的に表現する例として、上記「m」の巻き角領域2と巻き角領域4における最小△値を挙げる。これは「m」の∩∩の間に存在する鋭い楔形の尖鋭さを定量的に示す。最小△(巻き角領域2)値、最小△(巻き角領域4)値が鉤になる特徴である。なお「m」のX軸での鏡映が「w」であり、枠組み構造は同様であるが、最小△(巻き角領域2)値、最小△(巻き角領域4)値は解消し、もはや鍵になる特徴ではなくなり、巻き角領域3の最大△値が鍵になる特徴となる。
このように若干複雑な形も巻き角系列で分割され、それらの局所的、準局所的な特徴により対象は階層的かつ分割表現される。また、先に述べた如く、m:∩∨∩∨∩Lの様ないわゆる準位相的シンボル表現が、連続的に表現され、w:∪∧∪∧∪Γのような「w」の1変形に連続的に変化する表現を持つことができる。
次に、回転の問題について説明する。本来本方式は回転不変であるが、正規に書かれた文字は、回転に不変ではない。それ故、文字の軸になる仮想的線分の角を規定する必要がある。今までに述べてきた、例えば加重平均角は、この役割を演じている。この角範囲を広く取ることにより、±45度程度の回転の変動に対して対象の認識を可能に出来る。
次に、図4のフローチャートで示した図形要素地図について説明する。
これは対象を特定の文字集合、例えば、アラビア数字、英大文字、だけを想定するのではなく、文字、図形一般を全体として捕らえ、誤読の無い、読み取りシステムを構築するために考えられたものである。具体的には図形一般のパターンを巻き角により階層化し、各階層で上に述べた特徴により、分割する。かくして各階層で隙間無くあらゆる意味のある、または特徴のある形を網羅して列挙する。隙間がないので、異常な形も含まれる。ここでの図形は回転、大きさ、に無関係である。したがって文字からすれば、メタ的な要素図形となる。
この図形要素地図の全体の構造は図20に示されているような典型的な階層構造である木構造となる。この様にできるのは、上に述べたように特徴が非常に単純であるからである。最初はルート レベル−0.で、次にレベル−1において、巻き角系列項数で分類されるが、ここでは基礎図形として、一番大きく、基礎となる巻き角系列項数が1の場合を詳しく述べる。レベル2では、巻き角範囲で、角ノードを構成している。
ノード1,|Θ|<20,
ノード2,20≦|Θ|<50,
ノード3,50≦|Θ|<90,
ノード4,90≦|Θ|<180,
ノード5,180≦|Θ|<270,
ノード6,270≦|Θ|<360,
ノード7,360≦|Θ|,
この部分木で最も単純なのはノード1、|Θ|<20であり,これに入る図形は「直線」である。文字,記号としては,「1」,「−」,「/」,「\」がある。ここでは回転不変なので,これらは区別されず,「直線」と名づけられたメタ要素図形に代表される。この階層は0階層とする。「0−直線」と表示する。
次の階層はノード2,20≦|Θ|<50である。以下この分類については図20に詳しく説明されている。 この様にこの階層 1 では、「1−弱L1”」,「1−弱L2’」,「1−弱<1”」,「1−弱<2’」,「1−弱弧1」,「1−弱弧2’」,「1−弱弧3’」の7個の要素図形が含まれる。そして、それ以外の図形はない。これで、全てである。
この階層では実際の文字、記号に相当するものが少ないが、例えば、「1−弱L1”」は打ちこみのある「一」である。また、これらは、先にのべた、「1」,「一」,「/」,「\」の代わりに実際上頻々に現れる。
以上のようにして、各階層を作成して行くのであるが、それらの結果としての図形が図21に示されている。図21は、階層0、階層1、階層2、階層3、階層4の例を示してある。各階層の図形は、この例に限定されるものではない。
次に、複数画の位置関係について説明する。
今までは1画の文字のみ取り扱って来たが、こでは、複数画からなる文字を考察する。
ここで、抽象図形の概念を利用すると、以下の例にある如く、複数画の文字が、非常に簡単に対象図形を介して認識できる。しかも、完全回転不変である。抽象図形は例えば700度以下の、巻き角で、殆ど全ての変形に対し答えを出すように構成される。特に”弧”が有効である。弱い弧は、直線として、扱うことができる。一方巻き角が大きくなると、これは独立性が高いので、関係はより簡単になる。例えば、2画からなる対象図形が”直線”と”3”として、それぞれ認識されれば、この結合は一意的に「B」である。勿論、「D」、「P」の様に、細かい位置関係が必要になる場合があるから、それは求められなければならない。それについては下でのべる。此処では、上に述べたことを、例を使い説明する。
以下の例は、図22に示すように、垂直線を曲げて書いた、「H」で、弧、直線、弧と認識されている。これだけから既に「H」であることが、推定できる。位置関係は、この認識結果に基づいて行うと非常に効率が良い。
1:Result:[弱弧3]
2:Result:[直線]
3:Result:[強弧3]
これで、画の運筆情報から、例えば普通の書き方で1画、3画は上から下に略垂直に書かれ、2画は右から左に書かれたことが分かる。そこで、これらの各画それぞれの独立した情報だけで書かれた文字は「H」であることが容易に推定できる。そこで、次の段階は、定量的なこれら3画の位置関係を知ることである。
そこで、考えられたのが、一般交差点の概念と、その導出法である。
まず、その考え方について、説明する。図22で、文字「H」が示されているが、この水平線は、この場合この水平線の両側にある、垂直線と交差/接触していない。しかし、この3画は明らかに、文字「H」を構成する。それは、この水平線の延長上に、しかも近い距離で垂直線が存在するからである。このような場合、端点と垂直線との距離は良く知られた解析幾何の公式で求めることができる。しかし、煩雑である。これは水平線の延長として交点として求めるのがスマートで、統一性がある。同様に、図23では、「ロ」の一部に相当する形状が示されているが、右側の垂直線と水平線とのそれぞれを延長しない限り、交差/接触しない。参考までに示した図24では、直交する2画が示されており、これから、人間は仮の隅の角の点をイメージする。ここでは、この図24のように実際に交差した点を、実交差点と称する。
図22や図23の例でも仮想的な交差点が考えられ、これらを此処では一般交差点と呼ぶ。一般交差点の内で、実線上にない図23のような交差点を虚の交差点と呼び、図22の如く1画の実線上にある場合を、準虚交差点とよぶ。つぎにこれらの一般交差点を求める具体的方法を述べる。
図22を参照し説明する。線分1−2と、線分3−4の準虚交差点を求める。そこで、点1、点2の位置ベクトルをP1,P2とし、点3,点4の位置ベクトルをP3,P4とする。線分P1,P2と線分P3,P4 0〜1の値をとるパラメータをλ,λ’とすると、それぞれ、(1−λ)P1+λP2と、(1−λ’)P3+λ’P4と表せる。この両式を連立させる。すなわち(1−λ)P1+λP22=(1−λ’)P3+λ’P4である。
0〜1の値をとるパラメータをλ,λ’が求まれば、交差点が求まることになる。これを実際に解くには、例えばP1を(x1,y1)((x1,y1)は(x1,y1)の転置)と表現し、x軸,y軸ごとに式を立てれば、λ,λ’を未知数とする、連立方程式が立てられ、λ,λ’を求めることができる。
具体的には
−λ(x1−x2)+λ’(x3−x4)=x3−x1
−λ(y1−y2)+λ’(y3−y4)=y3−y1
である。線分1−2のP1を(x1,y1),P2を(x2,y2)
とすると、具体的には
(x1,y1)=(0,4),(x2,y2)=(4,4),線分3−4のP3を
(x3,y3)=(2,3)P4を(x4,y4)=(2,0)である。
x1=0,x2=4,x3=2,x4=2,y1=4,y2=4,y3=3,y4=0
これらを、上の式に代入することで、λ=0.5,λ’=−0.33,が得られる。
ここで、λ’は負である。これは、線分3−4の方向と逆方向、4−>3の方向に線分の約33%が、延長した所で、両線分は交差することを意味している。
例えば、
「H」(準虚交差点の例:図22)
位置関係
1−2;0.50,−0.11
1−3;−3.26,−3.28
2−3;1.34,0.49
この第1行はストローク1がストローク2と準虚交差点で、交差していてこの点は、ストローク1の丁度中間点,0.50にあり、ストローク2の始端から、0.11はなれている、ことを示している。なおここで、長さの数値は、それぞれのストローク長で、正規化されている。第2行はストローク1がストローク3が略並行でこの交差点は虚の交差点であり、文字の上部のかなり離れた所にあることを示している。第3行はストローク2がストローク3と準虚交差点で、交差していてこの点はストローク2の終端から0.34、右にありストローク3の略中間点、0.49にあることを示している。
「口」(虚交差点の例:図23)
位置関係
1−2;−0.19,−0.27
これはストローク1がストローク2と虚の交差点で、交差していることを示している。
ストローク1とストローク2はそれらの始点上を線に沿って延長すると、それぞれ,0.19,0.27離れた点で交差する。即ち、これは、仮想的コーナー点と見なせる。
「T」(実交差点の例:図24)
1−2;0.50,0.14
ストローク2は、良くあることであるが、ストローク1上丁度中心を、0.14分だけ突き出していることを示している。これが図27に示されている。このように複数画の位置関係が、上記の一般交差点を求めることにより、コンパクトに、定量的に得られる。したがって、先に述べた、複数画の文字が容易に認識できる。
なお図25に示す如く、交差すると想定される折れ線2個を簡単には選べない場合がある。このような時は、「H」の例えば画(ストローク)1の折れ線集合、画3の折れ線集合とで、機械的に連立方程式を構成し解けば、この図の場合、7次になるが、実の交差点を与える折れ線の対が機械的に求まる。もっとも効率を考え、例えば画1の両端の折れ線が短ければ、ひとまずそれらを除外して、また画3の終端の折れ線を除外しても良い。こうすれば、4次の連立方程式となり、簡単化される。なお準虚交差点の場合でも、λ値から一番近い折れ線を求めることができる。図26には、交差点が多数並んでいる場合を示した。このように、画の位置関係が定量的にもとまり、画数が大になる漢字などには、非常に有効である。
次に各学習データに基づき、巻き角系の各部分の各特徴から構成される部分的小次元の特徴空間上で、識別平面を構成し、特に形の近い文字間の識別を行う手法について説明する。
具体的な事例として、「U」−「V」問題と同じく微妙な問題と知られている、「2」−「Z」問題がある。実はこの問題は、例えば3次のスプライン関数などを使う高度な方法が知られているが本手法を用いることにより、非常に簡単に解決することが可能である。
第一に「2」、「Z」とも巻き角数が3であるが、重要なのは第1の巻き角の部分である。それ故、第1の巻き角だけでかなり両者は分離される。これを実際に収集したサンプルデータで見ると以下の統計量が得られる。
特徴量 平均 分散 標準偏差 サンプル数
Θ(s):2 209.406 1227.281 35.033 100
Θ(s):Z 126.961 74.530 8.633 111
注:「Θ(s)」は最初の巻き角。
それで,以下の単純な距離を定義する。
d(Θ(s),[2])=| Θ(s)−Θ(s)[2]の平均|
d(Θ(s),[Z])=| Θ(s)−Θ(s)[Z]の平均|
この定義による各データの分布を示したのが図30である。d(Θ(s),[Z])の軸で見ると、距離20で「Z」の全てのデータはこの距離以下であるが、「2」のデータが3個「Z」に入る。全体的に見て、距離の閾値35程度が、両者の分布からみて妥当のように見える。しかし、このように設定するとなお7個の「2」のデータが入ってくる。
そこで、巻き角領域1の範囲で、他の特徴を見る。例えば、ある折れ線角度範囲に入る折れ線の長さの平均を見てみる。なお平均線長[−60,60]は角範囲−60度から60度の範囲に入る折れ線の平均長である(サンプル、サンプル数とも上記と同じものを利用)。
それで,以下の単純な距離を定義する。
d(AveLeng1,[2])=|平均線長[−60,60]−平均線長[−60,60]の[2の平均]|
d(AveLeng2,[2])=|平均線長(−60,−145]−平均線長[−60,60]の[2の平均]|
この定義による2次元距離分布を見ると、図31のごとくなり、
「2」の全てのデータは左下の原点(0,0)、(0.1,0)、(0.0.15)、(0.1,0.15)の矩形内(太線の表示内)に存在し、一つの「Z」のデータも含まない。しかも全体的には「2」と「Z」の集団はお互いに離れている。
このように、各学習データから小次元(2とZのケースでは2次元)の特徴空間で、微妙な形の区別ができる。部分的小次元を構成する各特徴は、上記平均線長に限られたことではなく、比較する文字・図形等の特徴に応じて、様々特徴が採用されうる。
ここで、2−Zの識別と関連して、評価の問題について説明する。「z」はしばしば、図32のように鉤つきで、書かれる。このようなデータは、実は一気に巻き角が増大し、上のスキームで両者は区別できなくなる。しかし、たとえば先端の鉤は、独特の表現として、すなわち、先端部の大きな△値、短い先端長として特定できる。これを、先に述べた如く、ノイズとして前処理してしまうことは容易であるが、それよりも、一般にこのような飾りがあることを認める方式をとる。そして、その表現を同定した後は、その飾り部分を除き、先に述べたような識別を行うことができる。これはまさに形の評価と認識が一体になっていることの好例である。
これが出来るのは、構造解析の利点であり、またこの表現法の強みでもある。
なお、本発明の手書き文字認識は、実施の形態の説明の最初でも説明したように、図1に示した処理構成に限定されるものではなく、実質的に同様の手書き文字認識が行われる構成であれば、種々の装置やシステムの構成で、認識処理を行うことが可能である。例えば、本発明の手書き文字認識をプログラム(ソフトウェア)化して、汎用のパーソナルコンピュータ装置に実装させるようにしてもよい。手書き文字認識プログラムは、各種記憶媒体に記憶させて、配付することが可能である。
また、図1の例では、ペン側で筆跡の検出を行う例としたが、ペンで文字を書くパネル側で、筆跡の検出を行って、その検出に基づいて文字認識を行うようにしてもよい。
ここではオンラインの文字を対象としたが、適当な細線化か、輪郭追跡などで、オフラインの文字に対しても、文字認識を行うようにしてもよい。
さらに、上述した実施の形態では、主として数字やアルファベットの認識を行う場合を例としたが、本発明の手書き文字認識は、基本的にどのような言語の文字の認識にも適用可能である。
【書類名】 明細書
【発明の名称】 手書き文字認識方法、手書き文字認識システム、手書き文字認識プログラム及び記録媒体
【技術分野】
【0001】
本発明は、オンライン手書き文字認識を行う手書き文字認識方法及び手書き文字認識システム、並びにその認識方法を実現する手書き文字認識プログラム、さらにそのプログラムを格納した記録媒体に関する。
【背景技術】
【0002】
今までに多数の文字認識システムが提案され、実用化さているが、その基本原理には二つの立場があり、一つは構造解析の立場、もう一つはパターンマッチングの立場であり、前者は一般にはその認識システムは軽く、したがって、入力制限の強い場合、即ち、画数、筆順一定、または、どちらかを一定にした対象に適応され、他方後者は両者、画数、筆順を自由にした場合かそれに近い場合に適用されてきた。
【0003】
構造解析の立場としては、電子通信学会論文誌,56−D,5,pp.312−319,“手書き数字・片仮名文字のオンライン実時間認識”や日本国特許庁発行の特開昭59−131972号公報にあるように、基本ストローク方式と呼ばれているものがあり、ストロークを単純ストローク(4種)、複合ストローク(7種)に分類し、識別オートマトンにより認識するものであり、簡単ではあるが、辞書の作成、続け字や、略字に対処するのに問題があり、その発展性に問題があるとされてきた。
【0004】
パターンマッチング法は大きく分けて2種類の方法がある。一つは、電子情報通信学会論文誌,J63−D,2,pp.153−160,“ストロークの点近似による手書き文字のオンライン認識”にあるように、ストロークを少数の点で近似しそれらを特徴点として、また端点での筆の運動方向を推定し、それらも特焦点とし、特徴ベクトルを構成する。辞書はストロークに分解され、それらが同様に特徴ベクトルをもち、入力ベクトルと各カテゴリー毎に用意された特徴ベクトルとの対応をとり、対応がとれた辞書について距離が計算され、最小の距離を与える辞書名が認識された文字名であり、基本的に筆順,画数に対し自由である。
【0005】
もう一つのパターンマッチング法があり、特徴点の対応方式の原論文として、電子通信学会研究会論文PRL74−20)に記載された“Rubber String Matching法による手書き文字認識”があり、また日本国特許庁発行の特開昭57−45679号公報及び特開平8−24942号公報に在る如く、入力文字と辞書の特徴点ベクトルをDP(Dynamic Programming)方式により対応をとるものであり、これが手書き文字のオンライン認識の主流をなしている。
【0006】
なお、最近はオフラインの文字認識技術をオンラインに適用されるようになってきた。
それは、今まで蓄積されてきたOCR技術があり、これはオンライン文字認識にも使える。
この立場から、OCR技術を見ると、主流は方向特徴マッチングである。これについては膨大な文献があるが、基本的考え手法は、例えば原論文として、[電子情報通信学会論文誌,J62−D,3,pp.217−224,“文字認識のための相関法の一改良”]にある。この方法と構造解析の方法と根本的に異なる点は、特徴は一般にn×mの格子平面に割り付けられ、この平面上の特徴分布が最終の入力文字の表現とし、n×mを例えば左隅から右に走査し、n×m次元のベクトルとする。識別は標準方向特徴ベクトルと入力文字方向特徴ベクトルとの内積(類似度)を計算し、その値の最も高い標準方向特徴ベクトルのカテゴリ名を答えとするものである。この際、特に変形の著しい手書き文字では、高度な非線形正規化の前処理が行われる。これが必要なのは、この方法がn×mの格子平面を基本的枠組みにしているからである。この手法の利点は一般にはベクトル空間、特に内積の定義されているヒルベルト空間論が適用されうるので、高度な識別理論が援用されることである。また実用的に言えばノイズに強い。しかし、せっかくのオンラインの最大の利点、セグメンテーションの容易さを殺している。オンラインでは、例えば同じ場所に何個も文字を書いても機械は認識できるようにすることが可能である。また、本当に著しい変形に対しては高度な非線形正規化といえども不十分であるし、例えば回転変形には、相当に高度で、かなりの計算量の正規化が必要である。[S.Mori,H. Nishida,H.Yamada,Optical Character Recognition,Wiley]の第3章に詳しい記述がある。
さて上の特徴として、例えば曲率をとることも可能である。この観点から、[電子情報通信学会論文誌,J62−D,3,pp.217−224,“文字認識のための相関法の一改良”]では特に筆記体の「g」、「y」、それにアラビア数字「9」が手書き文字では間違い易いということから、回転特徴と名づけて、湾曲部の接線角度差を求め、適当な量子化を行い、文字を従来の方向特徴ベクトルと局所的な回転特徴ベクトルで表現し、それらをまとめた全特徴ベクトルを求め、ぼかし処理を行う(これは実際には格子平面上で行う)。それぞれのカテゴリにつきぼかし全特徴標準ベクトルを求め、類似度計算を行い、答えを出す方法が提案されている。ところで、構造解析の立場では、筆記体の「g」、「y」と、アラビア数字「9」とはかなり異なる。それは上部の構造を陽に見ているからである。しかし、特徴マッチングでは、内積の過程で混ぜ合わされて一個のスカラー量にしてしまうので、上部構造は陰に見ることになり、三文字とも強度の直線構造があることから、この直線に埋没されてしまう。それでわざわざ、局所特徴面を用意したのである。しかし、後で述べるように、われわれの方法では、上で回転特徴と言われるものが、局所的ではなく、
大域的に求められ、一貫した形で、自然に容易に表現される。したがって、上の3種の文字は非常に簡単に認識可能である。
【0007】
図形,物流システムに置かれた物体,軍事では飛行機など、回転に不変な認識システムは広範囲の対象に対し要求されている。
したがって、昔から研究は行われ、多くの論文が現在もなお発表されている。1990年までの研究については、森 俊二,坂倉 栂子共著の画像認識の基礎(II))に詳しく述べられており、また1999年までの研究は、S.Mori,H.Nishida,H.Yamada著Optical Character Recognitionに詳しい記述があり、この研究の主流はモーメント法であり、高次のモーメントを位相角が相殺するように組み合わせるものであり、またフーリエ記述子なる名前で呼ばれているフーリエ変換法の応用があり、これは最近のPCが非常に高速になったことを反映して、研究自体は盛んになっているものの、実用としてはいまだ市場に現れていないが、一方この流れとは別に、情報処理学会論文誌第27巻第5号:1986年5月,“画数,筆順,回転,区切りによらないオンライン手書き図形認識方式”にあるように対象を直線線分,弧の系列で近似し、それらの相対的角度変化で表現し、辞書の同様な表現との対象(入力図形)対応をとり、それぞれの角度変化の差の絶対値の和でお互いの距離を測って回転不変な方式としているが、鋭角の検出に弱いという欠点が論文自体の中で述べられている。
【0008】
いわゆるマッチング方式は文字の置かれた、二次元平面上の特徴(例えばストロークの方向)マッチングである。またオンライン手書き文字認識ではいわゆるDP(Dynamic Programming)マッチング、別名弾性ストリングマッチングである。前者においては、二次元上の特徴の分布を、ベクトル表現し、文字間の距離をこれらベクトルの内積として定義し、内積の定義された、ベクトル空間上の識別問題として、統計的手法で文字認識を行う。後者では、単純な重ね合わせのマッチングを拡張し、入力文字が標準文字に対し適応的、柔軟に、マッチングさせることにより文字認識を行うものである。
【0009】
このような手法に対し、一般には構造解析的手法と呼ばれる文字認識法が研究されてきた。これは一般図形に対しても適用可能で、良い方法であるが、対象の、具体的には文字ストロークの記号化を必要とし、シンボルによるマッチングがなされてきた。しかし、このシンボル化するところに問題があり、シンボル化で柔軟性を失い、また設計が機械的に行かず、研究,開発が行き詰まっている。例えば上述した[電子通信学会論文誌,56−D,5,pp.312−319,“手書き数字・片仮名文字のオンライン実時間認識”]が発表されたのは古く1973年である。この段階で、オンライン文字の右回り左回りが特徴として使用されているが、これらの系列は全てシンボル化されている。これらは入力パターンのX-座標値の増減で検出され、11個のシンボルで、表現されている。このようなシンボル表現は柔軟性にかけ、実際特別な場合として部分的にしか使用されていない。その後構造解析的手法は1981年に電子通信学会論文誌 J64−D,8,p705−712,“形の代数的構造表現”で統一的な観点を与える代数的な考えが導入され,1992年にIEEE Trans. on Pattern Analysis and Machine Intelligence Vol. 14,No.5,pp. 1029-1058,“Algebraic Description of Curve Structure”で実用的な代数的システムが構築されたが、依然としてシンボル表現であった。この様に構造解析的手法はシンボル表現水準に留まってきた。この壁を突破するには、シンボルでなく、アナログにしなければならないと言うこと自体は学会で、よく言われてきたのであるが、いままで、このアナログ化の具体的な方法が見付からなかった。
【発明の開示】
【発明が解決しようとする課題】
【0010】
ところが、上記の従来技術では,下記のような基本問題がある。
構造解析は簡単であるが、柔軟性がなく、基本パターンの境が問題で、離散的で、ぎこ
ちなく、辞書の作成に手間がかかる。
パターンマッチング法、特にDP方式は処理が重たい。
パターンマッチング法はオフライン認識も含め、ただ読むだけ、すなわち入力文字を強引に辞書に当てはめることが主たる目的であり、原因結果の対応が見えず、時として理解に苦しむ誤読をきたし、その原因が設計者にもわからないことが珍しくない。
【0011】
本発明は、基本的には上に述べた構造解析的手法に属し、しかし、今までの問題点を克服し、柔軟な構造解析的手法の基礎を与えるものであり、それ故、シンボル化の問題を回避し、アナログ的に構造を表現し、標準との柔軟かつ単純なマッチングを行うことを目的とする。
【課題を解決するための手段】
【0012】
上記目的を達成するため、第1の発明は、手書き文字を認識する手書き文字認識システムにおいて、
手書き文字が入力される入力手段と、
前記入力手段で入力されたデータを、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行う折線近似手段と、
前記折線近似手段で折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求め、前記折れ線の角頂点の外角系列を求め、前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外角の和を、巻き角系列とする処理手段と、
前記処理手段で求められた各系列による大局的な特徴と、巻き角系列の各項の巻き角領域内における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と予め用意された認識対象文字のテンプレイトとを比較して文字認識を行う認識手段とを備えたことを特徴とするものである。
【0013】
また第2の発明は、第1の発明の文字認識システムにおいて、
前記巻き角系列で構成される曲線のループの前後で各項を前巻き角、後巻き角に分割して、認識処理を行うことを特徴とするものである。
【0014】
また第3の発明は、第1の発明の文字認識システムにおいて、
前記認識対象文字のテンプレイトは、学習データから、各系列要素、各特徴の上限、下限の範囲を決めたデータであることを特徴とするものである。
【0015】
また第4の発明は、第1の発明の文字認識システムにおいて、
前記折れ線近似表現として、折れ線の長さを要素とする系列と、その全長で正規化した系列と、始点,頂点,終点を要素とする座標系列を用い、端長比,中間長,中間最大長,長さの要素の分布,始点終点間距離の特徴を求めることを特徴とするものである。
【0016】
また第5の発明は、第1の発明の文字認識システムにおいて、
ある定められた区間内の折れ線の加重平均角、外角系列の特徴又は境界項の値、極点の検出、始点終点間距離、始点・終点・極点間の距離から、文字の枠組み構造を定量的に設定することを特徴とするものである。
【0017】
また第6の発明は、第1の発明の文字認識システムにおいて、
各学習データから、巻き角系列の各項の巻き角領域内、巻き角領域間の特徴から構成される部分的多次元の特徴空間上で、識別平面を構成し、文字間の識別を行うことを特徴とするものである。
【0018】
また第7の発明は、第1の発明の文字認識システムにおいて、
巻き角系列の各要素の外角系列と、それに相当する長さ系列から、長さ系列を一方の軸に取り、他方の軸に外角系列の累積角をとり、線形補間を行うことによりグラフを構成し、その要素の始点からの距離の関数として、巻き角を、またその逆として、巻き角の関数として、距離を連続的に求める累積角特徴関数を構成して、大局的な曲がり具合の特徴を求めることを特徴とするものである。
【0019】
また第8の発明は、第1の発明の文字認識システムにおいて、
複数個の画間の位置関係を、各画の代表折れ線または折れ線集合の延長線も含めた直線群同志の交点を求めることにより、定量的に求めることを特徴とするものである。
【0020】
また第9の発明は、第4の発明の文字認識システムにおいて、
前記正規化した系列の内で、所定長以下の折線は無視することを特徴とするものである。
【0021】
また第10の発明は、第1の発明又は第7の発明の文字認識システムにおいて、
巻き角系列の各項の巻き角領域内で、前記折れ線角系列の、隣り合う折れ線角の変化のパターンまたは累積角特徴関数を利用し、対象文字を複数の区分に分解して、その区分または境界点の特徴を認識対象文字との比較に利用することを特徴とするものである。
【0022】
また第11の発明は、第1の発明の文字認識システムにおいて、
前記巻き角系列の各項で構成される曲線の巻き角の半分に対応する曲線上の点を中点として求め、その前後で各項内の曲線を分割し、各分割折れ線群から抽出される微妙な曲線の特徴を求め、認識精度を上げることを特徴とするものである。
【0023】
また第12の発明は、入力手段で入力された手書き文字を認識する手書き文字認識方法において、
前記入力手段で入力された手書き文字を、演算手段での演算により、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行い、前記折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求め、得られた折れ線の角頂点の外角系列を求め、前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外接角の和を、巻き角系列とし、
前記演算手段での演算により求められた各系列による大局的な特徴と、巻き角系列に応じて分割された各曲線部分における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と、予め記憶手段に記憶されて用意された認識対象文字のテンプレイトとの比較を行った結果を、文字認識結果として出力手段から出力させることを特徴とするものである。
【0024】
第13の発明は、コンピュータに実装して、入力手段で入力された手書き文字を認識する手書き文字認識プログラムにおいて、
コンピュータに、
前記入力手段で入力された手書き文字を、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行う第1の手順と、
前記折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求める第2の手順と、
得られた折れ線の角頂点の外角系列を求める第3の手順と、
前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外接角の和を、巻き角系列とする第4の手順と、
前記第1,第2,第3及び第4の手順を実行することにより求められた各系列による大局的な特徴と、巻き角系列の各項の巻き角領域内における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と、予め記憶手段に記憶されて用意された認
識対象文字のテンプレイトとの比較を行った結果を、文字認識結果として出力手段から出力させる第4の手順とを実行させることを特徴とするものである。
【0025】
第14の発明は、第13の発明に記載された文字認識プログラムを記録した記録媒体とするものである。
【発明の効果】
【0026】
これら本発明によると、シンボル化の問題を回避し、アナログ的に構造を表現し、標準との柔軟かつ単純なマッチングを行うことができる。また構造解析を行うので、必然的に対象を適格に記述することが出来て、原因結果の対応が人間の視覚からみて明確である。したがって、文字などの対象の形の評価が出来て、正しい拒否範囲を設定でき、より人間に近い能力をもつ認識システムを提供することができる。
【発明を実施するための最良の形態】
【0027】
以下、添付図面を参照しながら本発明の実施の形態の例を説明する。
本例においては、オンライン手書き文字認識を行うシステムに適用してあり、図1には、各処理部をハードウェア構成とした場合の構成例を示してある。なお、図1に示すように各処理部を個別の処理部とすることも可能であるが、各処理部を共通の演算処理部で実行する構成としてもよく、或いはパーソナルコンピュータ装置などの汎用の演算処理装置に、本例の手書き文字認識をプログラム化したものを実装させて、同様の手書き文字認識が行われるようにしてもよい。
また、以下の説明においては、本例での手書き文字認識に必要なそれぞれの概念を、次の表1に示す用語で定義している。
【0028】
【表1】
【0029】
図1に示した構成について説明すると、紙1の上で、ペン2で文字を書くことで、その紙1の上の運筆(筆跡)1aをペン2側で検出する。その運筆1aの検出は、例えばペン2に内蔵されたカメラにより行う。或いは、加速度センサなどからペン2自体の動きを検出するようにしてもよい。さらに、ペン側で検出するのではなく、紙1の側を何らかのパネルで構成して、電気的に筆跡を検出できる構成としてもよい。いずれにしても、本例の場合にはオンライン手書き文字認識であるので、時間の経過による筆跡の変化を判断できる構成としてある。
【0030】
これらの処理で検出された筆跡のデータは、入力処理部3に送られ、文字情報を検出するための入力処理が行われる。入力されたデータは、以下、折れ線近似部4、前処理部5、特徴抽出部6、識別部7、識別結果出力部8に送られて、それぞれの処理部で対応した処理が行われて、最終的に、識別結果出力部8で、識別された文字の表示や、識別された文字コードの出力などの出力処理が行われる。
【0031】
図2のフローチャートは、本例の文字認識の全体の処理例を示したものである。以下、図2に従って説明すると、入力処理部3から入力された文字/図形パターンは(ステップS11)、折れ線近似部4で折れ線近似される(ステップS12)。この近似から、入力パターンは、各折れ線をベクトルと見た時の、長さ、方向角、隣接する折れ線の方向角の差を要素とするベクトルとして表現される(ステップS13)。また、方向角の差のベクトル表現から、同符号の角の差の和を求め、符号を含め一つの要素として、ここで巻き角と名づけたベクトル表現が求められる。この結果から、前処理部5で、非常に短い点状のパターン、非常に短い折れ線、それと非常に価の低い方向角の差の成分は修正される(ステップS14)。次に、特徴抽出部6で折れ線近似表現から、状況に応じて、特徴が抽出され(ステップS15)、その特徴の抽出結果に基づいて、文字認識が行われ(ステップS16)、文字認識結果が出力される(ステップS17)。
【0032】
ここで、ステップS15での文字認識処理の詳細の例を、図3のフローチャートを参照して説明する。まず、ストローク数がチェックされる(ステップS21)。ここでは、ストローク数が1の場合と、複数の場合に分類される。ストローク数が複数のときには、一般交差点検出が行われる(ステップS22)。そして、巻き角表現で、要素数が1の場合と複数の場合に分類される(ステップS23)。巻き角表現で、要素数が複数のときには、巻き角のプラス(+)マイナス(−)の分解が行われる(ステップS24)。
更に、交差があるかどうかチェックされる(ステップS25)。交差がある場合、一つの巻き角要素は、巻き角前後分解処理として、交差点を境に3個の部分に分解される(ステップS26)。具体的には、交差により形成されたループの部分と、始端から交差点までと、交差点から終端までの3つである。
【0033】
そして更に、文字/図形のパターンに応じ、より簡潔にかつ効率よく特徴を求めるために、前処理2として、よりコンパクトな折れ線近似表現を得る処理が行われる(ステップS27)。また、長さ-△偏差検出として、長さ系列ベクトル、△系列ベクトルの要素の一様性がチェックされて(ステップS28)、これが識別に利用される。
【0034】
次に各巻き角領域内の局所的特長を抽出し(ステップ29)、更に準局所的特徴を抽出し(ステップ30)、文字全体の枠組み構造を設定して、階層的、かつ分割的な処理が行われる(ステップ31)。
一方、以上の特徴抽出が行われると、図2のステップS16の識別処理により、木構造に基づく決定木を使い簡潔かつ高速に識別が行われる。即ち、図4に示すように、木構造の識別が抽象図形地図を使用して行われ(ステップS32)、接近した形の場合、特徴空間上の関数/ベクトル空間に基づく小次元空間上の識別法が使用されて、識別が行われる(ステップS33)。
【0035】
次に、それぞれの段階での具体的な処理の詳細について、図5以降を参照して説明する。ここでは、本発明の原理を説明する上で、原理が最も判り易い例として、主として0,1,2,……9のアラビア数字を文字認識する例を説明する。
まず、巻き角の検出について説明する。
本例での対象文字曲線の表現については、まず観測装置より得られた、文字のストロークの折れ線近似を行う。折れ線近似そのものについては、既に多くの研究がある。その中で、適当な手法を用いるとする。此処では例えば、1972年に発表されたU.E.Ramerの手法
を想定する。この手法は単純明快な手法で、最も知られた方法であると言って良いであらう。そこで、折れ線近似された画/ストロークから説明を始める。
【0036】
まず、図5に示すように、第一に、折れ線近似された画/ストロークは書き始めの始点から始まり、その最初の折れ線の終端は方向表示として矢印で示されているベクトル表示となっている。図5の左側が、ペンで書かれたストロークそのものであり、図5の右側が、折れ線近似されたものである。最初の折れ線のベクトル表示に繋がる折れ線も同じくベクトル表示され、順にベクトル表示され、最後に画/ストロークの終端で終わる。
ここで、各折れ線の角は、図6で示されているように、各折れ線の始点から、x軸(水平軸)の正の方向に引かれた水平線から反時計方向に測られる。従って原点から上向きの折れ線の角は+90度である。下向きの折れ線は−90度である。原点からx軸の負の方向に向いた折れ線は、180度か−180度である。ここで両者は一致する。従って、角θの範囲は−180度から+180度である。なお、以下の説明では、角度を示す場合に、単位の[度]は省略して数字だけを示す場合がある。
【0037】
次にこの折れ線角から、頂点の折れ線外角を求める。具体的には、例えば図7に示すように、x軸と最初のベクトルとの成す角度を折れ線角θ1とし、以下順にx軸と各ベクトルとの折れ線角θ2,θ3,……とすると、最初の外角△1は、△1=θ1―θ2となり、前後の折れ線角の差で求められる。次の外角△2は、△2=θ2―θ3となる。以下同様にして、図7に示すように、折れ線の角頂点の外角系列として、((θ1−θ2),(θ2−θ3),..(θn-1−θn))を求め、これを簡単に(△1, △2,..△m)と表示する。これら外角は曲線の書き方が右回りであるか、左回りであるかにより+か−の量になるがそれら連続する同符号の外角の和を、巻き角系列として、(Θ1 , Θ2 ,..Θp)と表示する。ここでの計算で注意しなければならないのは、角の主値は180から−180であり、実際は±180は同一角を示していることである。したがって、差を求めその絶対値が180を超えたとき、
Δが正のときその値をΔ−360とする。
Δが負のときその値を360−|Δ|とする。
なお、ここで、折れ線の角頂点の外角系列として、((θ2−θ1),(θ3−θ2),..(θn−θn-1))を求め、これを簡単に(△1, △2,..△m)と表示するようにしても良い。このように表示する方が符号系としては、統一性があるが、ここでは、右巻きの符号を+にするということにこだわった例としてある。
【0038】
この巻き角の意味が図8A,図8Bに示されている。この「S」字型の文字は最初左周りで左に開いた⊂を形成し、次に右回りとなり、右に開いた⊃を形成する。かくして「S」はシンボル表現では⊂/⊃または(⊂+⊃)なる構造をもつ。今まではこれが準位相的特徴と言われてきた。ここではそれが連続量として表現されることになる。なお⊂の終端部のベクトルと⊃の始端部のベクトルは、重なっている。
巻き角系列の計算法が図7に示されている。
図7で太線は左回りの左に凸(右に凹)部分を表示している。かくして「3」は単純にその巻き角角系列(+142,−140,+149)と表現される。
【0039】
また、先にお互いの識別が困難とされている、筆記体の「g」と「y」、そして数字の「9」の認識について、巻き角系列を利用した識別の容易さを示す。三文字とも巻き角系列の項数は2である。それを(Θ1、Θ2)で表現する。そこで各文字は以下のような巻き角範囲を持っている。
筆記体「g」
条件 1: -320 < Θ1 ≦-190
条件 2: 300 < Θ2 <400
筆記体「y」
条件 1: -170 < Θ1 ≦-70
条件 2: 300 < Θ2 <400
「9」
条件 1: -500 < Θ1 < -150
条件 2: 100 < Θ2 < 250
【0040】
そこで、条件 1& 条件 2なる論理式を構成することによりこれら三文字は容易に分離認識することができる。なおこれらは回転不変なので、実際にはこれを正す方向特徴が必要であるが、いかに簡単であるかが分かるであろう。
【0041】
これから、具体的な例として、主に手書き文字で最も重要なアラビア数字についての認識処理を説明していく。まず、この「3」は大まかな構造として、右回り、左回り、最後に右回り、記号的には(+,−,+)なる構造を持っていて、3つの巻き角Θ1,Θ2,Θ3で構成される巻き角系列(Θ1,Θ2,Θ3)が形成される。数字の場合、基本的には他にこの構造をもつ数字はない。したがって例えば「3」のテンプレイトとして、
90<Θ1<300 & −150<Θ2<−30 & 90<Θ3<300
とすれば、この型のかなりの変形を吸収し、対象を正しく認識することが出来る。
【0042】
なお、折れ線近似した結果は、このような巻き角系列だけでなく、長さ系列のデータも得るようにしてある。図10は、長さ系列について説明した図である。ここでは、折れ線全体を長さ1.0として、各折れ線(ベクトル)の長さを正規化した値を得るようにしてある。具体的には、図10に示すように、ベクトルv0〜v5と折れ線近似されているとすると、図10の下側に示すように、全体を長さ1.0として、各ベクトルv0〜v5の長さを正規化し、それぞれの値の集まりを長さ系列とする。図10の例では、
長さ系列:0.12,0,13,0.13,0.10,0.30,0.22
として小数点以下2桁の数値で示してある。各長さの合計は、1となり、正規化された値であることが判る。
【0043】
次に、巻き角を使用して文字認識を行う原理について説明する。巻き角を使用することで、ラフであるが変形に強い認識系が構成できるのであるが、具体的には、これに種種の拘束条件を入れていかなければならない。ここでは、巻き角系列の要素が1個の最も単純な場合が良い。これは記号的には(+)又は(−)で表現される。
(+):「1」,[2],「3」,「7」,「9」
(−):「0」,「1」,「4」,「6」
がそれぞれ含まれる。ここで、ループを持った[2],「3」,「4」は手書きの標準形ではないがこの程度の変形文字は認識されなければならない。ループについては後述する。また、「1」はノイズを考慮して安全のため両方に入れた。まず、(+)に属する、数字を考える。
【0044】
まず一番単純には、巻き角だけで、これらを区別することである。ここでは、「7」を単純化して、鉤の無い欧米式「7」を認識するものとする。またこれと関連し「1」は標準形「|」とする。
「1」:+0< |Θ| <+30
「2」:+280<Θ<+600
「3」:+400<Θ <+700
「7」:+90 <Θ<+180
「9」:+280<Θ <+400
これらから、巻き角角だけで、「1」,「7」は識別できる。また、「3」も識別可である。
【0045】
しかし、「2」の極端な変形である「α」の如き形状(このαのような形で、始点からループの交差点にいたる線分で、凹みがない)は、上述した条件では除外している。このような変形に対処するために、ループ部分について、次に説明するような解析を行う。
具体的には、極端な変形を考慮する必要のある認識対象文字「2」,[3],「9」であるが、これらの字の解析の方針を説明すると、例えば「1」,「7」の巻き角はそれぞれ30度、180度を超えない、即ちそれらはそれぞれ緩やかなL型、U型であることを意味している。反対に他の文字は、大まかに言ってLの半分+Uの、即ち45+180=225を超えることを示している。このように直観的に数値による設計ができる。しかし厳密にはループは巻き角が180+αで起こり得るが、現実には殆どこのような面積が0に近い異常なループは起きない。
【0046】
そこで、巻き角の交差分解を行うようにしてある。
巻き角の交差分解として、ここでは、認識対象文字「2」,「3」,「9」の分離を考える。まず「2」では図9Aに示す如く、「2」のループの上部で、巻き角が大きくなりすぎて、「2」全体としては巻き角が、600度程度にもなってしまうことである。そこで、このような問題を解決するために、同一符号の巻き角の分割を考える。それはループの交差点で、上部と下部の巻き角とループの巻き角を分けることである。即ち、図9の例では、図9Aに示すように、始めの折れ線のベクトルv0からループに入る交差する折れ線v4までの巻き角(前巻き角/preΘ)と、図9Bに示すように、ループから出る交差する折れ線のベクトルv7から終端の折れ線のベクトルv8までの巻き角角(後巻き角/postΘ)である。なお、ベクトルv4〜v7で形成されるループの巻き角は、ここではあまり意味が余り無いので、ここではこれを除外し、文字認識には使用しない。ベクトルv0〜v4の前巻き角が大きくなっても、ベクトルv7〜v8の巻き角が小さければ、例えば90以下としておけば全体としての巻き角が「2」と「3」で重なることがあっても、両者を区別することが出来る。
【0047】
このようにして、ループ形成個所で交差分解を行って、例えば「2」と「3」の場合に、以下の如く巻き角の許容範囲を決める。
「2」:+280<Θ<+450 ――> +300<Θ<+700 & 0≦postΘ<90 & CROSS
「3」:+400<Θ <+700――> +400<Θ<+700 & 100≦postΘ & CROSS
ここで、postΘとは後巻き角を意味する。また当然、ここで、「2」,[3]とも交差点(CROSS)を持つことを想定している。前巻き角はpreΘと表す。なおここで「2」と「3」の間に拒否領域を取っている。なおここで用いた交差特徴については次に述べる。
【0048】
次に認識対象文字「2」,「3」と「9」の間の分離であるが、巻き角だけ見ると明らかに、「9」は「2」,「3」と重なる。しかし、上で述べたように、「2」,「3」は必ず交差があり、「9」には無いとする簡易な解決法がある。しかし、自由手書き文字の変形を考えるとそうはいかない。その例が図11に示されている。図11Aは「2」の例であり、図11Bは「9」の例である。いずれの場合も交差が発生しているが、次に示す条件により識別することができる。即ち「9」は前巻き角、preΘが小さいのである。この場合は0である。先に「2」の極端な変形「α」を除外したのはこのためでもある。この場合、前巻き角は0となる。
「2」:+280<Θ<+700 & 0≦postΘ<90 & 30≦postΘ & CROSS
「3」:+400<Θ<+700 & 100≦postΘ & 30≦postΘ & CROSS
「9」:+300<Θ <+400 & {NO_CROSS | 0≦preΘ<10}
【0049】
次に、巻き角の+−分解について説明する。
上述した例では、一つの巻き角内での分割であったが、巻き角系列に対応して、それぞれの部分長さ系列、部分Δ系列に分割して、次に述べる幾何的特徴を、各部分において行うと効果的である。そこで、その部分に分割する処理についてのべる。これは反りのある
「7」の字の例である。長さ系列、Δ系列、巻き角系列は以下の如くである。これが図13で、元図形(図13A)と折れ線近似された図形のΔ系列、巻き角系列(図13B,図13C)とを示してある。なお、図12(元図形:図12A,Δ系列:図12B,巻き角系列:図12C)は、比較のために「2」の字の例を示してあり、図12、図13の比較は後述する。
【0050】
図13に示した「7」の字の各系列は次のとおりである。
長さ系列:0.38 0.17 0.14 0.32
Δ系列:+121.29 -19.17 -19.72
巻き角系列:+121.29 -38.89
図から、巻き角系列の第1項Θ1 は最初の長さ系列0.38 0.17から形成され、第2項Θ2は、長さ系列 0.17 0.14 0.32から構成されていることが分かる。ここで、長さ0.17を持った第2の折れ線、は両方に属している。この折れ線部がΔ系列の符号の分岐線である。すなわちこれは境界線で、重なり(共通)部分である。このように長さ系列、Δ系列を巻き角系列の+−に応じて分離させ、それぞれで、構造を解析すると良い。比較のために反りのある「7」と間違いやすい、なだらかな曲線形状の「2」の例を図12に示す。図12に示した「2」の字の各系列は次のとおりである。
長さ系列:0.14 0.09 0.36 0.21 0.08 0.12
角度系列:-2.05 -35.54 -113.31 -94.29 -47.49 -12.80
Δ系列:+33.49 +77.77 -19.02 -46.80 -34.69
巻き角系列:+111.26 -100.51
【0051】
この場合は、長さ系列:0.14 0.09 0.36が巻き角系列の第1項Θ1を形成し、後半の 0.36 0.21 0.08 0.12が、巻き角系列の第2項Θ2を形成する。かくして、この両者、「7」と「2」の差は第二のマイナス部分の長さ系列を見れば歴然としている。これを並べると、「7」の第2の(−)部分の長さ系列;0.17 0.14 0.32
「2」の第2の(−)部分の長さ系列;0.36 0.21 0.08 0.12
であり、あとで述べる端長比(始端長/終端長)で、「7」対「2」は0.53 対3.00となり、この特徴が両者を分離する鍵であることが分かる。これは、「7」の下部がほぼ直線的に下に下がっているにたいし、「2」では、下部は曲がっている、視覚的な特性を数値として表現している。
【0052】
なお、ここで巻き角での始端、終端、中間についての本例での定義を、図14に示しておく。1つの巻き角が図14に示すように複数の折れ線で構成されているとすると、その複数の折れ線の始端折れ線の正規化した長さを始端長とし、始端長:l startと表す。また、終端折れ線の正規化した長さを終端長とし、終端長:l endと表す。始端Δ値及び終端Δ値は、図14に示すように、巻き角を構成する隣接する折れ線との外角である。中間折れ線は、始端折れ線と終端折れ線との間にある各々の折れ線のことである。
【0053】
次に、幾何的特徴抽出について説明する。
文字の種種の変形を考えると、これらのテンプレイトだけでは不十分でこれらを補強していかなければならない。そのための一般的な指針を述べる。いままでは、反りのある「7」と「2」の区別以外、角だけで、形を規定した。これは、専門用語では準位相的特徴と言われる。しかし現実には、これに加え、幾何的特徴が不可欠である。これら両者の微妙な結合体が文字の形である。特にアラビア数字は、この点において、実に洗練された形の体系をもつ。
そのため、まず、
折れ線頂点座標系列:(xs,ys),(x1,y1),(x2,y2), . .(xe,ye)
折れ線長系列:(l1,l2,l3, . . ,ln)
を求めておく。通常これらの要素は全体の長さで正規化する。
【0054】
例えば、認識対象文字「1」の場合は、実際上、折れ線長系列は、系列:(l1)か、系列:(l1,l2)の何れかである。傾きについては、例えば始点の角θが±25度に入ると言う制限が必要となる。
この様に、正規化された、以下の特徴が有効である。
1. 長さ系列端長の比(端長比);lstart/lend.
2.長さ系列端の最大長;Max{lstart,lend }
3. 長さ系列端間の中間長の和;Σn=2 n=end-1ln.
4.中間最大長(長さ系列端の中間長の中での最大長).
【0055】
一方、角の、または角張っていると言った特徴はΔ系列の最大値、MaxΔで表示するがこの価でかなり角の状況が分かる。角のバランスを見るには、端のΔ値の比、Δ端比と表示するが、この価でかなり分かる。「U」と「V」の区別は正しく書かれたならば、このわずか2個の情報でどちらであるか推測がつく。例えば、もし長さ系列端の最大長が ≦0.6 であり、かつ、長さ系列端間の中間長の和の価が <0.2で、かつ、端長比が>0.8で、かつ、Δ端比が>0.7であれば、明確な「V」であるといえる。
【0056】
しかし、これは今問題にしている対象の巻き角が、90≦|Θ|<150であることを、前提にしている。この巻き角による階層化は非常に重要なスキームで、これについては別に述べる。また上に述べた判断は、特に折れ線数が3に等しい時、特に有効である。なおまた、次の階層である、150≦|Θ|<180では、「U」と「V」とが共存する。この場合には、より明確な特徴が必要で、これは、UまたはVの両端の折れ線を取り上げ、これらを仮想的に繋げ、両者の△値を求めれば、これが対象文字の開きの角度と見なし得る。これは両端角差と名づける。両端角差は、例えば図15に示すように、巻き角の始端の折れ線と、終端の折れ線との成す角度である。図15では、説明のために、終端の折れ線を平行移動して、両端角差を示してある。
【0057】
例えば、上述の様に、端長比とΔ端比の特徴を使い、対象をUかVに追い込んで、それからもし両端角差の絶対値の価を見て、その価が155度を越えていれば「U」、155度以下であれば「V」である。しかし「U」、「V」問題は、そう簡単ではない。より微妙な場合には、やや高度な手法が必要である。これについては、後で述べる。
以上角特徴をまとめると、
1.MaxΔ,
2.Δ端比,
3.両端角差
である。
【0058】
次に、前処理の例について説明する。ここでは前処理は、前処理1と前処理2があり、前処理1は例えば図2のフローチャートのステップS14での処理に相当し、前処理2は例えば図3のフローチャートのステップS27での処理に相当する。
上述の特徴を抽出するに、適当な前処理を、長さ系列、△系列に行うと、非常に効率が良い。そこで、ノイズ処理も含め以下に述べる。
【0059】
前処理1.
まずノイズ処理であるが、ひとつは、非常に小さな点を除去する処理である。これは正規化された長さではなく、元の物理的長さに適当な閾値を設け、点状ノイズを除去する。次に、特にオンライン文字で、起こりやすいのであるが、線の終端で、小さな鉤状の極端な曲がりが出来てしまうことがある。これは、先に述べた、巻き角に大いに影響するのでこれを除き、ノイズとして発生した、△値を主の巻き角から差し引く。この時に使用する
閾値は、画の複雑さに依存する。このノイズ処理は、曲線の両端のみで行う。
【0060】
前処理2.
長さ系列の始端長、l(s)から始め、l(s),l(s+1)間の△(s)が<20なら、l(s)=l(s)+l(s+1) とする。同様にl(1),l(2)に対応する|△(s)| が<20なら、l(2)=l(2)+l(3) とする。|△(i) |<20の 条件が満足されなければ、何もしないで1ステップ先に進む。これをl(e)まで続ける。結果として新しい長さ系列、が得られる。ここでの最大の問題は、閾値の価である。経験上、閾値を10に取れば、いわゆる副作用は殆どない。20のときは状況による。使い方を選ばなければならない。なおこの問題を回避する、より一般的な特徴抽出法については後で述べる。
【0061】
△系列においては、始端、終端のみに行うのが良い。即ち、長さ系列の始端、終端において、l(s)=l(s)+l(s+1) またはl(e)=l(e)+l(e-1)が実行された時、△(s)= △(s)+ △(s+1)または △(e)= △(e)+ △(e-1)とし、それ以後はこの処理を続行しない。この他に、例えば「7」で、右の長い曲線部が微妙に反ることがある。これは△値で、10程度の価である。しかし巻き角系列の項数が1個増大し、影響は大きい。それで、この様な△系列も修正して、処理効率を上げることが考えられる。
なお、これに関して、実はRamerの方法は、直線と曲線との誤差を両者の最大誤差長で見ているので、これを調節することにより、曲線全体のノイズ処理を行うことができる。
【0062】
次に、本例で行われるフィルター処理について説明する。
これは本格的な認識に入る前に、簡単に分かる入力の特性を見て、そのようなパターンを先に取り出してしまうと言う処理である。近似折れ線表現は一見複雑である。そのようなパターンを取り出しておけば後の処理が簡単になる。そのような処理を、ここではフィルター処理と称した。具体的には「円」を判定する処理がある。具体例を挙げて説明する。ここでは、閉じていない曲線が書かれた場合に、その曲線の状態から、円が書かれたとみなす処理を行う例である。
【0063】
図16Aは、元の図形であり、この折れ線近似が図16Bに示されている。図16Bには、正規化された長さ系列の値を入れてある。図16Cは、同じ折れ線にΔ値を入れた図面である。図が円に近い場合には、長さ、Δ値とも同じような価を持つ。
それで、この場合の長さ系列、Δ系列は以下のようになる。
長さ系列:0.08 0.05 0.11 0.10 0.05 0.12 0.13 0.12 0.07 0.06 0.12
Δ系列:+26.65 +28.10 +31.43 +29.36 +34.08 +35.84 +44.61 +34.14 +23.78 +35.17
ここでの長さ系列、Δ系列は、ノイズ処理した後か、低い閾値で例えば10、前処理後のものである。フィルターの処理では原始的データの方がむしろ良い。ここで気が付くことは、長さ系列、Δ系列の要素の価に変動が少ないと言うことである。これが「円」の特徴である。この要素の一様性を簡単に見るには、長さ系列、Δ系列の最大値を見れば良い。
長さ系列では、最大値は0.13、Δ系列では44.61である。巻き角:+323.16の14%である。ちなみに長さ系列、Δ系列の標準偏差値はそれぞれ、σ(Len)=0.0292、σ(Δ)=5.5714である。また縦横比は(幅/高さ)=1.05である。
【0064】
一方、一見円に見えるサンプル例として、
長さ系列:0.10 0.11 0.14 0.05 0.08 0.06 0.09 0. 13 0.10 0.09 0.06
Δ系列:-28.25 -28.07 -25.85 -33.17 -33.19 -30.04 -35.81 -21.80 -23.20 -49.40
巻き角系列:-308.78
であり、長さ系列、Δ系列の標準偏差値はそれぞれ、
σ(Len)=0.0272
σ(Δ)=7.4841
縦横比(幅/高さ)=0.71
である。
【0065】
これから、長さ系列、Δ系列の標準偏差値、縦横比は特徴量として使用可に見える。しかし、この例のように標準偏差値は実は期待ほどには良くはない。実際、長さ系列のσ(Len)は0.0272で最初の「円」サンプルに比し小さく、σ(Δ)=7.4841でかなり大であり、2種の標準偏差値がバランスを欠いている。また計算量も大である。縦横比は丸みがあると判断された後にしか使用できない。この丸みの条件が成立後は簡単で、良い特徴であり、ここでもそれを使う。例えば、巻き角で階層に分け以下のような条件が作られる。
[1;(最大長≦0.15)&(最大△値≦46)&(先端部の巻き角≦125)&(270≦|巻き角|<300)&0.80≦縦横比(幅/高さ)≦1.20]]→「弱円1」
[2;(最大長≦0.15)&(最大△値≦48)&(先端部の巻き角≦130)&(300≦|巻き角|<320)&0.80≦縦横比(幅/高さ)≦1.20]]→「弱円2」
[3;(最大長≦0.15)&(最大△値≦50)&(先端部の巻き角≦135)&(320≦|巻き角|<360)&0.80≦縦横比(幅/高さ)≦1.20」]→「弱円3」
ここで、単に「円」としないで「弱円」としたのは、実際手書きでは正確な円を書くことはむずかしくこれを考慮して、上の条件を設定して、円に近い状態であることを示す「弱円1」,「弱円2」,「弱円3」を定義した。これで、ほぼ円であると推定されるものは、この条件を満足する。図16の入力に対する結果は、[6-弱-○-3]である。一方、上述の例は縦横比で、最終的に「円」と判断されない。
【0066】
次に、累積角特徴関数について説明する。
上に述べた、特徴は閾値の影響を受けやすい。例えば、
長さ系列:0.23 0.28 0.09 0.14 0.12 0.14
Δ系列:+11.54 +73.01 +42.89 +7.37 +20.12
では、閾値20で前処理すると、先頭部分はΔ値が11.54で、20以下なので、前処理され、始端長は0.51となる。しかし、終端ではΔ値が20.12で、わずかに閾値より大なので、前処理されず、端長比が0.14/0.51=0.27となる。このため、端長比&MaxΔが(<0.5)&(>45)、ならば「L」という条件に合致してしまう。実はこの入力文字は明白なVである。
【0067】
この問題を解決するために、長さ系列とΔ系列から、Δの長さに対する累積角関数を考える。この長さ系列、Δ系列の折線近似に対する累積角関数が図17に示されている。しかし、これは、階段関数で(点線のグラフ)、閾値問題を持っている。そこで、簡単な線形補間関数を作る。これも、図17に示されている。これは単に各階段の角を線で繋げたものである。この簡単な補間で階段関数は連続関数になる。しかも単調増加関数である。この補間関数は、順方向と逆方向と2種類作る必要がある。それぞれに使用した長さ系列、△系列が二つの表で示されている。こうしたのは、この簡単な補間法では、図9の関数グラフを注意深く見れば、最後の階段では、補間の直線は水平になっている。すなわち、ここでは厳密には、一意的に逆関数を求めることが出来ない。確かに、このようなことがない様に、例えば階段のステップの半分を取ってこれを直線補間するなど考えられるが、性能については、順方向、逆方向の2個の関数を用いた方がより厳密である。正確には、長さでいえば少なくとも半分、[0,0.5]では殆ど確実に使える。実際の応用では、このように引数の値域の半分までしか使用しない。この「U」の例では、略対称なので、これら2個の順方向と、逆方向の関数は一致する。これを使えば、例えば特に問題になる、UとVを区別する問題などでは、この逆関数、即ち、巻き角度90を入れ、それだけ巻いた長さを求める。これがこのグラフでy軸上の90度を与えるX軸の長さが求められる。これはこの累積角特徴関数を逆に使用している例となっている。このx軸上の価は図の90度の水平線が関数のグラフ(実線)にぶつかった所から垂線をX軸上に降ろしそのX軸上の点の価0.448、で与えられる。一方逆方向関数が点線で示され、この場合も全く90度に対応する長さはやはり0.448であり、全く一致する。この例はできる限り対称になるように書かれた
「U」の例であり、この結果はこの方法の精度の良さを示している。
【0068】
これは、この図形が対称であることを示していると同時に、∪の典型的な形を持っていることを示している。たとえば、「V」の場合、90始端長では中心点を超えてしまい、90終端長と重なりが生じる。これらの比はMin{90始端長,90終端長}割る Max{90始端長,90終端長}で、「U」の場合は1.0となる。この比は90度長比と名づける。なお上の例は実際の例である。この例が示すように簡単な補間で、かなり正確な計算ができる。この様な計算は任意のα度で求めることができる。そこで、一般にはα度長(巻き角)で表示する。ここでの引数は全体の巻き角を越えてはならない。大域的な対称性をみるなら引数として、全体の巻き角/2を取る。
【0069】
一方、この順関数、すなわち長さを与え、巻き角を求めることも出来る。実際これが先程説明した累積角特徴関数の素直な使い方である。例えば、「6」で、ループが開いて、微妙に曲がっているような時には、非常に有効に使用できるが、ここでは極端な例として入力文字「J」を、図18を参照して具体的に考える。なお、この文字の形は、上に水平方向のバーがないJの字である。ここでは例として引数としての長さは0.3を想定する。
この図18の例の場合は、順方向関数(実線)と逆方向関数(点線)は大きく異なる。これはまさに文字「J」の形を反映している。この場合順方向、即ち始点から、0.3進んだ点での巻き角、それと反対に逆方向関数から、終点から、同じく0.3だけ進んだ点での巻き角を求めることが同様に出来て、それぞれ、10.00度、112.88度で、両者の比、λ長度比(0.30)=0.09で、両端での曲がりが極端に異なることが定量的に示されている。
【0070】
なおこの計算で注意しなければならないのは、例えば以下に示す2個の折れ線の例で、
長さ系列:0.38 0.62
Δ系列:+31.08
であると、λ長度の関数の引数が0.38を超えると、対応するΔ系列の項が無い。この場合以下のような結果になる。
λ長度比(0.25)=0.61 (20.45)(12.53)
λ長度比(0.30)=0.61 (24.54)(15.04)
λ長度比(0.35)=0.61 (28.63)(17.55)
λ長度比(0.45)=計算エラー
である。実際には、折れ線数が2又は3の場合には、これらの累積角特徴関数は使用しなくとも良いのであるが、折れ線数が少ない場合には注意が必要である。実際にはこのλ長度関数の引数は0.5を超えて使用することはない。またこの計算エラーの起こる場合は容易にチェックできる。経験上 引数 0.30程度が一番有効である。
【0071】
なお、図17、図18に示したのは直線補間の一例であり、他に色々考えられる。この例では始端からの場合の例で、この補間関数を終端から見ると言う場合には使えない、この場合は同じ手続きで終端から始め補間関数を新たに求めている。それで、これらの中間を取れば補間関数は強い単調増大関数(ここで「強い」とは必ず増大する意)となり、両方に使用できる。しかしここではこれを採用していない。
【0072】
次に「U」と「V」のような類似した文字を区別するには、その先端の曲がり具合を如何に表現するかが、幾何的特徴抽出を行う上で、非常に重要となる。この課題を解決する為の方策として、本例においては、巻き角を利用した(1)中点検出によるバランス、角特性の抽出、(2)先端部曲率の2つの方法が適用可能である。この2つの方法について以下述べる。
【0073】
まず、中点検出によるバランス、角特性の抽出から説明する。これは、中点を分岐点として対象となる巻き角を前後の2つに分割し、それぞれの分割された部分で特徴を求め、
それらを全体的に評価し、判断を下すという手法である。
ここでいう「中点」とは、対象文字の凸点、乃至は凹点を含む巻き角において、対象巻き角の2分の1をαとしたα度長である(始端側と終端側の双方から求める)。これは上述の累積角特徴関数より求めることが出来る。
【0074】
具体的には、始点から測って(巻き角/2)巻いた点 "α度(巻き角/2) 始点”、終点から、逆に測って(巻き角/2)巻いた点 "α度(巻き角/2) 終点”を求め以下のアナログなα度(巻き角/2)の中心点を求める。即ち、
中点=((1-(α度(巻き角/2) 終点))-(α度(巻き角/2) 始点))/2+(α度(巻き角/2) 始点)
(これは始点からの折れ線に沿っての正規化された、長さである)。
上記計算にて求められた中点はアナログ値であるので、便宜上、中点に一番近い折れ線の頂点を分岐点とし、その前後の折れ線群に分ける方法を取る。これらの折れ線群を前折れ線群、後折れ線群と名づける。これらの部分長の総長を求める、それらを前総長、後総長と名づける。
【0075】
まず、対象文字の角特性を抽出するため、前折れ線群、後折れ線群それぞれについての加重平均角を求める。折れ線群内の折れ線系列を l(1),l(2),..l(n) とし、角系列をθ(1),θ(2),..θ(n)とし、前後の総長N= l(1)+ l(2)+..+ l(n)とすれば、加重平均角は以下の通り、求められる。
加重平均角=《l(1)×θ(1)+ l(2)×θ(2)+..l(n)×θ(n)》÷N
前後の加重平均角のなす角を両端平均狭角差(=θsp)として、以下の如く与えられる。θsp =(θ(pre)+180)-θ(pro)
(θ(pre)は前折れ線群の加重平均角、θ(pro)は後折れ線群の加重平均角)
また、前折れ線群、後折れ線群の直線性を見る具体的手法として、角の分散値を見る。即ち、
前折れ線群の角分散
=《(θ(1)−θ(pre))2×l(1)+(θ2−θ(pre))2×l(2)..+(θn−θ(pre))2×l(n)》÷N(後折れ線群の角分散値も同様)
分散値は大きな数になるので、これを100で割る。こうしても、比較が目的なので問題ない。
【0076】
なお加重平均角の際、注意しなければならないことがある。
折れ線の方向角の値域は−180≦θ≦180で、−180は180と同一角を示す。この約束は、それぞれの折れ線の2次元平面上での方位を表すには良いが、それらの平均を求める、このような演算を導入するとき、問題になる場合がある。即ち、図27のように角折れ線群の始端の折れ線角がマイナスで始まった場合でも、終端の符号がプラスになるケースがあり、その場合、適切な加重平均値が求められないからである。従って、ここでは折れ線角を求める際の原則を調整し、始端の符号と同一方向で折れ線角を測定することとする。なおこれは、数学的には角度をリーマン平面上で測ることである。この平面は−∞から原点までの直線に鋏で切れ目をいれ、第3象限の面を3次元空間で下に延長させ、第2象限の面を上に延長させ、らせん状にした面である。
【0077】
次に、中点より分岐した折れ線群の長さのバランスは以下の如く定義される。
バランスの定義:Min(前総長,後総長)/Max(前総長,後総長)
以上の幾何特徴の具体例を以下に示す。まず、図28Aにある対象文字「U」を、図28Bに示すように折れ線近似する場合について説明する。この表現は以下のように与えられる。
3: 長さ系列: 0.29 0.19 0.08 0.15 0.29 (192.81)
3: 角系列: -35.68 -82.65 -140.71 -177.71 154.49
3: Δ系列: 46.97 58.06 37.00 27.80
3: 巻き角系列: 169.84
3: 頂点リスト: 0:( 836, 47 ) 1:( 875, 75 ) 2:( 879, 106 ) 3:( 868, 115 ) 4:( 843, 116 ) 5:( 799, 95 )
中点= ( ( 1 - 0.47 ) - 0.41 ) / 2 + 0.41 = 0.47
(長さ系列から頂点(1)と頂点(2)の間にある点と分る)
頂点(2)までの距離: 0.48 - 0.47 = 0.01 (長さ系列を利用)
頂点(1)までの距離: 0.47 - 0.29 = 0.18(同上)
したがって、最も中点に近い頂点: 2:( 879, 106 )を分岐点として選ぶ。
前加重平均角:-54.27
後加重平均角: -187.3
前加重平均角の直線と、後加重平均角の直線の狭角、θspは
θsp =(θ(pre)+180)-θ(pro) = (-54.27+180)-(-187.3)=313.0
となるが、これは方位角の値域から外れているので、これを変換するため360から差し引くと47度となり、かなり開いていることが分かる。
【0078】
前折れ線群、後折れ線群の直線性は、それぞれ前角分散、後角分散で見ることができる。それらは以下の如く与えられる。
前角分散: 253.25/0.48/100 = 5.27
後角分散: 280.4/0.52/100 = 5.39
前折れ線群、後折れ線群の長さのバランスは
バランス: Min(前総長,後総長)/Max( 前総長,後総長 ) = 0.48/0.52 = 0.92
で与えられる。
【0079】
これに対し、「V」の例を、図29A及び図29Bに示す。
長さ系列: 0.34 0.14 0.13 0.39 (205.98)
角系列: -56.06 -79.11 170.13 152.02
Δ系列: 23.06 110.75 18.11
巻き角: 151.92
頂点リスト: 0:( 660, 41 ) 1:( 695, 93 ) 2:( 700, 119 ) 3:( 677, 115 ) 4:( 613, 81 )
中点: 0.47
頂点: 2
前加重平均角: -62.78
後加重平均角: 156.54
前角分散:1.09
後角分散:0.61
θsp = 39.32
バランス: 0.92
【0080】
上記「U」と「V」の中点検出による角特性、バランスを比較すると、θsp:47度対39度、前角分散+後角分散:10.66対1.70、バランス:0.92対0.92である。特に分散でU,Vに明らかな差が出ていることが分かる。この分散による違いを見ることにより、数少ないマスクで、相当な変形に対応できる。一方、バランスには差がない。これは両者とも、対称であるからである。この値は変動し、バランスが、例えば0.5程度になると「j」の1画になる。
【0081】
なお、この中点を求め、曲線を分割する方法は、孤立した、1個の巻き角図形に限られない。一般には、巻き角系列の各項の曲線の範囲内において同じような処理が可能である。例えば「2」と「Z」の違いは、「2」=(「∩」+「⊃」)+「⊂」、「Z」=「⊃」+「⊂」と見なし、また一筆書きされた、「w」と「ω」の違いは、「w」=「∨」+「
∨」、「ω」=「∪」+「∪」と見なすことが出来るので、各巻き角領域において、中点を求め、上述の処理を行うことが出来る。
また、中点は、正しく書かれた文字の場合、微分での極点と同じになる。それで、これを使用できる。しかし、上の中点がより一般的である。また、簡単に両端から正規化された距離0.5の点として、中点を求めることも出来るが、これは対称図形にのみ有効である。
【0082】
次に、先端部の曲率について説明する。
これは、例えば、UとVの先端での曲がりを見て両者を区別するための特徴であり、巻き角と前処理による簡単な方法である。これを図19で示した例を使い説明する。図19Aは、Uの元の図形であり、図19Cに折れ線近似した例を、長さ系列とともに示してある。図19Bは、Vの元の図形であり、図19Dに折れ線近似した例を、長さ系列とともに示してある。
まず先端部の巻き角を求める。以下に示す「V」の例であるが、λ長度比(0.30)=0.59(11.63)(6.90)から、両端からの0.3の長さでの巻き角が出ているので、即ち11.63が始端から0.3までの巻き角、6.90が終端から、0.3までの巻き角である。そこで、この和 11.63+6.90=18.53を、この文字の全体の巻き角から引く。即ち、124.98−18.53=106.45となる。
これは先端部の巻き角である。これを下の例を参照し先端部の長さ、0.03 で割ると、この先端の曲がり具合(曲率みたいなもの)がでる。便宜上長さを100倍してから割る。したがって、106.45/3=35.48となる。
これが高いとVと判定され、低いとUと判定される。なお、長さは前処理後の長さ系列(閾値20)を使う。ここで、長さは補間した累積角特徴関数では1.00−2x0.30=0.4なのであるが、前処理で先端部の長さが明確に出る時はこれを使用すると良い。しかし一般的には、0.4なのでこの価はサンプルに共通である。それで、先端部の巻き角だけで、先端の曲がりを評価できるが、中間長の和を取り、上述の如く曲率を求めた方が効果的である。Uの場合の例、同様な計算を行う。この場合先端部の長さは前処理後の長さ系列(閾値20)から、0.09 +0.12 +0.11+ 0.09 =0.41となる。Vの先端部の曲率;35.48,角;(106.45)とUのそれらの価、曲率:2.16、角;(88.68)を比較して,先端部のとんがりが明確に数値として表現されている。
【0083】
例:Vの場合.先端部の曲率(角);35.48,(106.45)
長さ系列:0.41 0.10 0.03 0.10 0.37
巻き角系列:+124.98
前処理後の長さ系列(閾値20):0.51 0.03 0.47
パラメータ:
λ長度比(0.30)=0.59 (11.63)(6.90)
先端部の曲率(0.30)=35.48 (先端部の巻き角=106.45)
例;Uの場合.先端部の曲率(角);2.16(88.68)
長さ系列:0.27 0.09 0.12 0.11 0.09 0.32
巻き角系列:-172.23
前処理後の長さ系列(閾値20):0.27 0.09 0.12 0.11 0.09 0.32
パラメータ:
λ長度比(0.30)=0.84 (45.49)(38.06)
先端部の曲率(0.30)=2.16 (先端部の巻き角=88.68)
【0084】
一般的には、この累積角特徴関数は、単調関数であり、その意味では他の関数と比較し非常に簡単である。2次元図形の一部が、具体的には巻き角系列での項数が1個である場合、階層化されているものの、単なる単調関数として表現されると言うことは非常に興味深い。この単調関数が線形であれば、形は巻き角に応じて、「弧」、「半円」、「円」と
連続的に巻き角360度の「円」に近づく。ユニット関数に近く、立ち上がりの点が中心近くなら、また巻き角に応じて開いた「V」から、180度で楔形となる。また中心からずれるに従い、チェック型になっていく。また中心付近でその立ち上がりがゆるくなるに従い、V型からU型になる。中心からずれると、J型になる。このように図形モデルを数学的に構成するのもよい。また、線形補間を、多項式近似すると、たとえば、3次のスプライン関数で、近似すれば、2次までの微分可能となり、累積角特徴関数をさらに解析することが可能である。例えば鈍角を持った三角形は、2個の2次微分のピークを持つ。曲率も計算できて正確で微妙な特性の計算も可能となる。このような考えは抽象図形地図の形成にも役に立つ。巻き角系列での項数が2個の場合、累積角特徴関数の空間は、2個の累積角特徴関数の積区間となる。以下同様である。かくして、複雑な図形が、この単調関数の組み合わせで、簡潔に表現される。
【0085】
次に巻き角系列の各項の巻き角領域内で、折れ線角系列の、隣り合う折れ線角の変化のパターンまたは累積角特徴関数を利用し、対象文字を複数の区分に分解して、その区分または境界点を認識対象文字との比較に利用する手法について説明する。
まず具体的事例として、「1」→「L」→「U」→「0」→「6」の変化を考える。巻き角で定量的に表現すれば、「1=0」→「L=90」→「U=180」→「0=270」→「6=360」である。しかし、これでは内部構造は反映されない。一方、これらの内部構造はシンボルにより「1=|」→「L=L」→「U=∪」→「0=⊂+∪+⊃」→「6=⊂+∪+⊃+∩」と表現することが可能である。
【0086】
図33の「6」を例に取る。まず隣り合う折れ線の角変化により、境界点(凹極点または凸極点)を検出する(点3、点6、点8が該当)。始点、終点、そしてこれら境界点により、図33の「6」は以下の区分に分割される。
始点1から点6に至る部分: 「⊂型」部分
点3から点8に至る部分: 「∪型」部分
点6から点10に至る部分: 「⊃型」部分
点8から終点12に至る部分: 「∩型」部分
このように対象文字を分割し、各々の区分をシンボル表現と対応させることによって、「1」、「L」、「U」、「0」、「6」の識別が可能となる。
【0087】
なお、上記例における境界点は、通常のX-Y座標系での所謂微分凹凸極点と一致しているが、より一般的には、回転を考慮する必要がある。例えば図34Aのように、通常のX-Y座標系では点1は微分凹極点であるが、これを回転させた図34Bの形状とすると、同じ点1が凹極点ではなくなる。このような回転に対処するためには、累積角特徴関数を使い、一般的に境界点を求める必要がある。例えばL型ならばα度長(90)に近い頂点、∪型ならα度長(180)に近い頂点を境界点として検出し、分割を行う。この事情は中点を一般的に求めることと対応している。
【0088】
次に各画の曲線を巻き角系列に応じて、分割し、分割された各曲線部分において局所的特徴、準局所的特徴をもとめ、対象を階層的かつ分割表現する手法について説明する。
具体的な事例として、まず「m」を考える。図35における「m」の巻き角数は6個になる。これをシンボル的に表現すると∩+∨+∩+∨+∩+Lである。巻き角系列の各巻き角領域に左から項番号を付与し、各巻き角領域における極点特徴(凹極点または凸極点)を求め、それらに凸1(最初の巻き角に属する凸極点)や凹2(2番目の巻き角に属する凹極点)のように番号を付与する。これら凹凸極点、始点、終点間の位置関係を「頂点配置」と呼ぶこととする。この頂点配置により、対象文字の骨格とも言える「枠組み構造」が規定される。
【0089】
このような頂点配置の特徴により、「m」の枠組み構造が規定される。この枠組み構造
の特徴の違いは、図36Aの「h」と図36Bの「n」の比較を見れば一目瞭然であろう。あるいは、対象文字の高さだけではなく、横幅にも注目し、各凸点間、各凹点間の位置関係を規定したり、縦横の比を規定したりする方法もある。
【0090】
また、例えば、図37Aのような「6」と図37Bのような「0」、即ち、両方とも同じ⊂+∪+⊃+∩構造である場合にも、枠組み構造を利用して効率的に両者を識別できる。この両者は境界点(点1と点2)間の距離(d1、d2)を見ることによって「6」と「0」を識別が可能となる。このような場合でも累積角特徴関数を用いた一般的な境界点(極点)の検出方法を用いることによって、図37Cのような「6」と図37Dのような「0」、ように任意に回転された対象にも適用できる。
【0091】
また、分割された各曲線部分における局所的特徴求め、対象を階層的かつ分割的に表現する例として、上記「m」の巻き角領域2と巻き角領域4における最小△値を挙げる。これは「m」の∩∩の間に存在する鋭い楔形の尖鋭さを定量的に示す。最小△(巻き角領域2)値、最小△(巻き角領域4)値が鉤になる特徴である。なお「m」のX軸での鏡映が「w」であり、枠組み構造は同様であるが、最小△(巻き角領域2)値、最小△(巻き角領域4)値は解消し、もはや鍵になる特徴ではなくなり、巻き角領域3の最大△値が鍵になる特徴となる。
【0092】
このように若干複雑な形も巻き角系列で分割され、それらの局所的、準局所的な特徴により対象は階層的かつ分割表現される。また、先に述べた如く、m:∩∨∩∨∩Lの様ないわゆる準位相的シンボル表現が、連続的に表現され、w:∪∧∪∧∪Гのような「w」の1変形に連続的に変化する表現を持つことができる。
【0093】
次に、回転の問題について説明する。本来本方式は回転不変であるが、正規に書かれた文字は、回転に不変ではない。それ故、文字の軸になる仮想的線分の角を規定する必要がある。今までに述べてきた、例えば加重平均角は、この役割を演じている。この角範囲を広く取ることにより、±45度程度の回転の変動に対して対象の認識を可能に出来る。
【0094】
次に、図20で示した抽象図形地図について説明する。
これは対象を特定の文字集合、例えば、アラビア数字、英大文字、だけを想定するのではなく、文字、図形一般を全体として捕らえ、誤読の無い、読み取りシステムを構築するために考えられたものである。具体的には図形一般のパターンを巻き角により階層化し、各階層で上に述べた特徴により、分割する。かくして各階層で隙間無くあらゆる意味のある、または特徴のある形を網羅して列挙する。隙間がないので、異常な形も含まれる。ここでの図形は回転、大きさ、に無関係である。したがって文字からすれば、メタ的な要素図形となる。
【0095】
この図形要素地図の全体の構造は図20に示されているような典型的な階層構造である木構造となる。この様にできるのは、上に述べたように特徴が非常に単純であるからである。最初はルート レベル-0.で、次にレベル-1において、巻き角系列項数で分類されるが、ここでは基礎図形として、一番大きく、基礎となる巻き角系列項数が1の場合を詳しく述べる。レベル2では、巻き角範囲で、角ノードを構成している。
ノード1,|Θ|<20,
ノード2,20≦|Θ|<50,
ノード3,50≦|Θ|<90,
ノード4,90≦|Θ|<180,
ノード5,180≦|Θ|<270,
ノード6,270≦|Θ|<360,
ノード7,360≦|Θ|,
この部分木で最も単純なのはノード1、|Θ|<20であり,これに入る図形は「直線」である。文字,記号としては,「1」,「一」,「/」,「\」がある。ここでは回転不変なので,これらは区別されず,「直線」と名づけられた メタ要素図形に代表される。この階層は0階層とする。「0−直線」と表示する。
次の階層はノード2,20≦|Θ|<50 である。以下この分類については図20に詳しく説明されている。この様にこの階層 1 では、「1-弱L1”」,「1-弱L2’」,「1-弱<1”」,「1-弱<2’」,「1-弱弧1」,「1-弱弧2’」,「1-弱弧3’」の7個の要素図形が含まれる。そして、それ以外の図形はない。これで、全てである。
この階層では実際の文字、記号に相当するものが少ないが、例えば、「1-弱L1”」は打ちこみのある「一」である。また、これらは、先にのべた、「1」,「一」,「/」,「\」の代わりに実際上頻々に現れる。
【0096】
以上のようにして、各階層を作成して行くのであるが、それらの結果としての図形が図21に示されている。図21は、階層0、階層1、階層2、階層3、階層4の例を示してある。各階層の図形は、この例に限定されるものではない。
【0097】
次に、複数画の位置関係について説明する。
今までは1画の文字のみ取り扱って来たが、こでは、複数画からなる文字を考察する。
ここで、抽象図形の概念を利用すると、以下の例にある如く、複数画の文字が、非常に簡単に対象図形を介して認識できる。しかも、完全回転不変である。抽象図形は例えば700度以下の、巻き角で、殆ど全ての変形に対し答えを出すように構成される。特に”弧”が有効である。弱い弧は、直線として、扱うことができる。一方巻き角が大きくなると、これは独立性が高いので、関係はより簡単になる。例えば、2画からなる対象図形が”直線”と”3”として、それぞれ認識されれば、この結合は一意的に「B」である。勿論、「D」、「P」の様に、細かい位置関係が必要になる場合があるから、それは求められなければならない。それについては下でのべる。此処では、上に述べたことを、例を使い説明する。
以下の例は、図22に示すように、垂直線を曲げて書いた、「H」で、弧、直線、弧と認識されている。これだけから既に「H」であることが、推定できる。位置関係は、この認識結果に基づいて行うと非常に効率が良い。
1: Result: [弱弧3]
2: Result: [直線]
3: Result: [強弧3]
これで、画の運筆情報から、例えば普通の書き方で1画、3画は上から下に略垂直に書かれ、2画は右から左に書かれたことが分かる。そこで、これらの各画それぞれの独立した情報だけで書かれた文字は「H」であることが容易に推定できる。そこで、次の段階は、定量的なこれら3画の位置関係を知ることである。
【0098】
そこで、考えられたのが、一般交差点の概念と、その導出法である。
まず、その考え方について、説明する。図22で、文字「H」が示されているが、この水平線は、この場合この水平線の両側にある、垂直線と交差/接触していない。しかし、この3画は明らかに、文字「H」を構成する。それは、この水平線の延長上に、しかも近い距離で垂直線が存在するからである。このような場合、端点と垂直線との距離は良く知られた解析幾何の公式で求めることができる。しかし、煩雑である。これは水平線の延長として交点として求めるのがスマートで、統一性がある。同様に、図23では、「ロ」の一部に相当する形状が示されているが、右側の垂直線と水平線とのそれぞれを延長しない限り、交差/接触しない。参考までに示した図24では、直交する2画が示されており、これから、人間は仮の隅の角の点をイメージする。ここでは、この図24のように実際に交差した点を、実交差点と称する。
【0099】
図22や図23の例でも仮想的な交差点が考えられ、これらを此処では一般交差点と呼ぶ。一般交差点の内で、実線上にない図23のような交差点を虚の交差点と呼び、図22の如く1画の実線上にある場合を、準虚交差点とよぶ。つぎにこれらの一般交差点を求める具体的方法を述べる。
図22を参照し説明する。線分1−2と、線分3−4の準虚交差点を求める。そこで、点1、点2の位置ベクトルをP1,P2とし、点3,点4の位置ベクトルをP3,P4とする。線分P1,P2と線分P3,P4 0〜1の値をとるパラメータをλ,λ’とすると、それぞれ、(1−λ)P1+λP2と、(1−λ’)P3 +λ’P4と表せる。この両式を連立させる。すなわち(1−λ)P1+λP22=(1−λ’)P3 +λ’P4である。
0〜1の値をとるパラメータをλ,λ’が求まれば、交差点が求まることになる。これを実際に解くには、例えばP1を(x1,y1)T ((x1,y1)Tは(x1,y1)の転置)と表現し、x軸,y軸ごとに式を立てれば、λ,λ’を未知数とする、連立方程式が立てられ、λ,λ’を求めることができる。
【0100】
具体的には
−λ(x1−x2)+λ’(x3−x4)= x3−x1
−λ(y1−y2)+λ’(y3−y4)= y3−y1
である。線分1−2のP1を(x1,y1)T,P2を(x2,y2)Tとすると、具体的には
(x1,y1)T=(0,4)T,(x2,y2)T=(4,4)T,線分3−4 のP3を
(x3,y3)T=(2,3)T P4を(x4,y4)T=(2,0)Tである。
x1=0,x2=4,x3=2,x4=2,y1=4,y2=4,y3=3,y4=0
これらを、上の式に代入することで、λ=0.5,λ’=−0.33,が得られる。
ここで、λ’は負である。これは、線分3−4の方向と逆方向、4−>3の方向に線分の約33%が、延長した所で、両線分は交差することを意味している。
【0101】
例えば、
「H」(準虚交差点の例:図22)
位置関係
1-2;0.50,-0.11
1-3;-3.26,-3.28
2-3;1.34,0.49
この第1行はストローク1がストローク2と準虚交差点で、交差していてこの点は、ストローク1の丁度中間点,0.50にあり、ストローク2の始端から、0.11はなれている、ことを示している。なおここで、長さの数値は、それぞれのストローク長で、正規化されている。第2行はストローク1がストローク3が略並行でこの交差点は虚の交差点であり、文字の上部のかなり離れた所にあることを示している。第3行はストローク2がストローク3と準虚交差点で、交差していてこの点はストローク2の終端から0.34、右にありストローク3の略中間点、0.49にあることを示している。
【0102】
「口」(虚交差点の例:図23)
位置関係
1-2;-0.19,-0.27
これはストローク1がストローク2と虚の交差点で、交差していることを示している。
ストローク1とストローク2はそれらの始点上を線に沿って延長すると、それぞれ,0.19,0.27離れた点で交差する。即ち、これは、仮想的コーナー点と見なせる。
【0103】
「T」(実交差点の例:図24)
1-2; 0.50, 0.14
ストローク2は、良くあることであるが、ストローク1上丁度中心を、0.14分だけ突き出していることを示している。これが図27に示されている。このように複数画の位置関係
が、上記の一般交差点を求めることにより、コンパクトに、定量的に得られる。したがって、先に述べた、複数画の文字が容易に認識できる。
【0104】
なお図25に示す如く、交差すると想定される折れ線2個を簡単には選べない場合がある。このような時は、「H」の例えば画(ストローク)1の折れ線集合、画3の折れ線集合とで、機械的に連立方程式を構成し解けば、この図の場合、7次になるが、実の交差点を与える折れ線の対が機械的に求まる。もっとも効率を考え、例えば画1の両端の折れ線が短ければ、ひとまずそれらを除外して、また画3の終端の折れ線を除外しても良い。こうすれば、4次の連立方程式となり、簡単化される。なお準虚交差点の場合でも、λ値から一番近い折れ線を求めることができる。図26には、交差点が多数並んでいる場合を示した。このように、画の位置関係が定量的にもとまり、画数が大になる漢字などには、非常に有効である。
【0105】
次に各学習データに基づき、巻き角系の各部分の各特徴から構成される部分的小次元の特徴空間上で、識別平面を構成し、特に形の近い文字間の識別を行う手法について説明する。
具体的な事例として、「U」−「V」問題と同じく微妙な問題と知られている、「2」−「Z」問題がある。実はこの問題は、例えば3次のスプライン関数などを使う高度な方法が知られているが、本手法を用いることにより、非常に簡単に解決することが可能である。
第一に「2」、「Z」とも巻き角数が3であるが、重要なのは第1の巻き角の部分である。それ故、第1の巻き角だけでかなり両者は分離される。これを実際に収集したサンプルデータで見ると以下の統計量が得られる。
特徴量 平均 分散 標準偏差 サンプル数
Θ(s): 2 209.406 1227.281 35.033 100
Θ(s):Z 126.961 74.530 8.633 111
注:「Θ(s)」は最初の巻き角。
それで,以下の単純な距離を定義する。
d( Θ(s),[2])=| Θ(s)− Θ(s)[2]の平均|
d( Θ(s),[Z])=| Θ(s)− Θ(s)[Z]の平均|
この定義による各データの分布を示したのが図30である。d( Θ(s),[Z])の軸で見ると、距離20で「Z」の全てのデータはこの距離以下であるが、「2」のデータが3個「Z」に入る。全体的に見て、距離の閾値35程度が、両者の分布からみて妥当のように見える。しかし、このように設定するとなお7個の「2」のデータが入ってくる。
【0106】
そこで、巻き角領域1の範囲で、他の特徴を見る。例えば、ある折れ線角度範囲に入る折れ線の長さの平均を見てみる。なお平均線長[-60,60]は角範囲−60度から60度の範囲に入る折れ線の平均長である(サンプル、サンプル数とも上記と同じものを利用)。
特徴量 平均 分散 標準偏差
「2」の平均線長[-60,60] 0.112 0.001 0.029
「2」の平均線長[-60,-145] 0.197 0.002 0.043
「z」の平均線長[-60,60] 0.255 0.002 0.040
「z」の平均線長[-60,-145] 0.415 0.009 0.092
それで,以下の単純な距離を定義する。
d(AveLeng1,[2])=|平均線長[-60,60]-平均線長[-60,60]の[2の平均]|
d(AveLeng2,[2])=|平均線長(-60,-145]-平均線長[-60,60]の[2の平均]|
この定義による2次元距離分布を見ると、図31のごとくなり、「2」の全てのデータは左下の原点(0,0)、(0.1,0)、(0.0.15)、(0.1,0.15)の矩形内(太線の表示内)に存在し、一つの「Z」のデータも含まない。しかも全体的には「2」と「Z」の集団はお互いに離れている。
このように、各学習データから小次元(2とZのケースでは2次元)の特徴空間で、微妙な形の区別ができる。部分的小次元を構成する各特徴は、上記平均線長に限られたことではなく、比較する文字・図形等の特徴に応じて、様々特徴が採用されうる。
【0107】
ここで、2−Zの識別と関連して、評価の問題について説明する。「z」はしばしば、図32のように鉤つきで、書かれる。このようなデータは、実は一気に巻き角が増大し、上のスキームで両者は区別できなくなる。しかし、たとえば先端の鉤は、独特の表現として、すなわち、先端部の大きな△値、短い先端長として特定できる。これを、先に述べた如く、ノイズとして前処理してしまうことは容易であるが、それよりも、一般にこのような飾りがあることを認める方式をとる。そして、その表現を同定した後は、その飾り部分を除き、先に述べたような識別を行うことができる。これはまさに形の評価と認識が一体になっていることの好例である。
これが出来るのは、構造解析の利点であり、またこの表現法の強みでもある。
【0108】
なお、本発明の手書き文字認識は、実施の形態の説明の最初でも説明したように、図1に示した処理構成に限定されるものではなく、実質的に同様の手書き文字認識が行われる構成であれば、種々の装置やシステムの構成で、認識処理を行うことが可能である。例えば、本発明の手書き文字認識をプログラム(ソフトウェア)化して、汎用のパーソナルコンピュータ装置に実装させるようにしてもよい。手書き文字認識プログラムは、各種記憶媒体に記憶させて、配付することが可能である。
【0109】
また、図1の例では、ペン側で筆跡の検出を行う例としたが、ペンで文字を書くパネル側で、筆跡の検出を行って、その検出に基づいて文字認識を行うようにしてもよい。
ここではオンラインの文字を対象としたが、適当な細線化か、輪郭追跡などで、オフラインの文字に対しても、文字認識を行うようにしてもよい。
さらに、上述した実施の形態では、主として数字やアルファベットの認識を行う場合を例としたが、本発明の手書き文字認識は、基本的にどのような言語の文字の認識にも適用可能である。
【図面の簡単な説明】
【0110】
【図面の簡単な説明】
【図1】 図1は、本発明の一実施の形態によるシステム例を示す構成図である。
【図2】 本発明の一実施の形態による文字認識全体の処理例を示すフローチャートである。
【図3】 本発明の一実施の形態による特徴点検出処理例を示すフローチャートである。
【図4】 本発明の一実施の形態による識別処理例を示すフローチャートである。
【図5】 本発明の一実施の形態による各画と折れ線近似の例を示す説明図である。
【図6】 本発明の一実施の形態による折れ線角を示す説明図である。
【図7】 本発明の一実施の形態による折れ線角と外角を示す説明図である。
【図8】 本発明の一実施の形態による巻き角を示す説明図である。
【図9】 本発明の一実施の形態による同一巻き角内の分割を示す説明図である。
【図10】 本発明の一実施の形態による長さ系列を示す説明図である。
【図11】 本発明の一実施の形態による巻き角の例を示す説明図である。
【図12】 本発明の一実施の形態による巻き角のプラス・マイナス分解の例(2の例)を示す説明図である。
【図13】 本発明の一実施の形態による巻き角のプラス・マイナス分解の例(7の例)を示す説明図である。
【図14】 本発明の一実施の形態による巻き角内での始端、終端、中間を示す説明図である。
【図15】 本発明の一実施の形態による両端角差を示す説明図である。
【図16】 本発明の一実施の形態によるフィルターを示す説明図である。
【図17】 本発明の一実施の形態による累積角特徴関数の例(Uの例)を示す説明図である。
【図18】 本発明の一実施の形態による累積角特徴関数の例(Jの例)を示す説明図である。
【図19】 本発明の一実施の形態による先端部分の曲率の例を示す説明図である。
【図20】 本発明の一実施の形態による抽象図形地図の例を示す説明図である。
【図21】 本発明の一実施の形態による巻角系列の例を示す説明図である。
【図22】 本発明の一実施の形態による準虚交差点の例を示す説明図である。
【図23】 本発明の一実施の形態による虚の交差点の例を示す説明図である。
【図24】 本発明の一実施の形態による実交差点の例を示す説明図である。
【図25】 本発明の一実施の形態による交差する折れ線の例を示す説明図である。
【図26】 本発明の一実施の形態による準虚交差点の例を示す説明図である。
【図27】 本発明の一実施の形態による加重平均角の算出例を示す説明図である。
【図28】 本発明の一実施の形態による中点検出例を示す説明図である。
【図29】 本発明の一実施の形態による中点検出例を示す説明図である。
【図30】 本発明の一実施の形態による距離と頻度の例を示す説明図である。
【図31】 本発明の一実施の形態による2次元距離分布の例を示す説明図である。
【図32】 手書き文字Zの例を示す説明図である。
【図33】 本発明の一実施の形態による分割・極点の説明に供する説明図である。
【図34】 本発明の一実施の形態による境界点の説明に供する説明図である。
【図35】 本発明の一実施の形態による枠組み構造の説明に供する説明図である。
【図36】 本発明の一実施の形態による枠組み構造の説明に供する説明図である。
【図37】 本発明の一実施の形態による枠組み構造の説明に供する説明図である。
【符号の説明】
【0111】
1・・・紙
1a・・・運筆
2・・・ペン
3・・・入力処理部
4・・・折れ線近似部
5・・・前処理部
6・・・特徴抽出部
7・・・識別部
8・・・識別結果出力部
【書類名】 明細書
【発明の名称】 手書き文字認識方法、手書き文字認識システム、手書き文字認識プログラム及び記録媒体
【技術分野】
【0001】
本発明は、オンライン手書き文字認識を行う手書き文字認識方法及び手書き文字認識システム、並びにその認識方法を実現する手書き文字認識プログラム、さらにそのプログラムを格納した記録媒体に関する。
【背景技術】
【0002】
今までに多数の文字認識システムが提案され、実用化さているが、その基本原理には二つの立場があり、一つは構造解析の立場、もう一つはパターンマッチングの立場であり、前者は一般にはその認識システムは軽く、したがって、入力制限の強い場合、即ち、画数、筆順一定、または、どちらかを一定にした対象に適応され、他方後者は両者、画数、筆順を自由にした場合かそれに近い場合に適用されてきた。
【0003】
構造解析の立場としては、電子通信学会論文誌,56−D,5,pp.312−319,“手書き数字・片仮名文字のオンライン実時間認識”や日本国特許庁発行の特開昭59−131972号公報にあるように、基本ストローク方式と呼ばれているものがあり、ストロークを単純ストローク(4種)、複合ストローク(7種)に分類し、識別オートマトンにより認識するものであり、簡単ではあるが、辞書の作成、続け字や、略字に対処するのに問題があり、その発展性に問題があるとされてきた。
【0004】
パターンマッチング法は大きく分けて2種類の方法がある。一つは、電子情報通信学会論文誌,J63−D,2,pp.153−160,“ストロークの点近似による手書き文字のオンライン認識”にあるように、ストロークを少数の点で近似しそれらを特徴点として、また端点での筆の運動方向を推定し、それらも特焦点とし、特徴ベクトルを構成する。辞書はストロークに分解され、それらが同様に特徴ベクトルをもち、入力ベクトルと各カテゴリー毎に用意された特徴ベクトルとの対応をとり、対応がとれた辞書について距離が計算され、最小の距離を与える辞書名が認識された文字名であり、基本的に筆順,画数に対し自由である。
【0005】
もう一つのパターンマッチング法があり、特徴点の対応方式の原論文として、電子通信学会研究会論文PRL74−20)に記載された“Rubber String Matching法による手書き文字認識”があり、また日本国特許庁発行の特開昭57−45679号公報及び特開平8−24942号公報に在る如く、入力文字と辞書の特徴点ベクトルをDP(Dynamic Programming)方式により対応をとるものであり、これが手書き文字のオンライン認識の主流をなしている。
【0006】
なお、最近はオフラインの文字認識技術をオンラインに適用されるようになってきた。
それは、今まで蓄積されてきたOCR技術があり、これはオンライン文字認識にも使える。
この立場から、OCR技術を見ると、主流は方向特徴マッチングである。これについては膨大な文献があるが、基本的考え手法は、例えば原論文として、[電子情報通信学会論文誌,J62−D,3,pp.217−224,“文字認識のための相関法の一改良”]にある。この方法と構造解析の方法と根本的に異なる点は、特徴は一般にn×mの格子平面に割り付けられ、この平面上の特徴分布が最終の入力文字の表現とし、n×mを例えば左隅から右に走査し、n×m次元のベクトルとする。識別は標準方向特徴ベクトルと入力文字方向特徴ベクトルとの内積(類似度)を計算し、その値の最も高い標準方向特徴ベクトルのカテゴリ名を答えとするものである。この際、特に変形の著しい手書き文字では、高度な非線形正規化の前処理が行われる。これが必要なのは、この方法がn×mの格子平面を基本的枠組みにしているからである。この手法の利点は一般にはベクトル空間、特に内積の定義されているヒルベルト空間論が適用されうるので、高度な識別理論が援用されることである。また実用的に言えばノイズに強い。しかし、せっかくのオンラインの最大の利点、セグメンテーションの容易さを殺している。オンラインでは、例えば同じ場所に何個も文字を書いても機械は認識できるようにすることが可能である。また、本当に著しい変形に対しては高度な非線形正規化といえども不十分であるし、例えば回転変形には、相当に高度で、かなりの計算量の正規化が必要である。[S.Mori,H. Nishida,H.Yamada,Optical Character Recognition,Wiley]の第3章に詳しい記述がある。
さて上の特徴として、例えば曲率をとることも可能である。この観点から、[電子情報通信学会論文誌,J62−D,3,pp.217−224,“文字認識のための相関法の一改良”]で
は特に筆記体の「g」、「y」、それにアラビア数字「9」が手書き文字では間違い易いということから、回転特徴と名づけて、湾曲部の接線角度差を求め、適当な量子化を行い、文字を従来の方向特徴ベクトルと局所的な回転特徴ベクトルで表現し、それらをまとめた全特徴ベクトルを求め、ぼかし処理を行う(これは実際には格子平面上で行う)。それぞれのカテゴリにつきぼかし全特徴標準ベクトルを求め、類似度計算を行い、答えを出す方法が提案されている。ところで、構造解析の立場では、筆記体の「g」、「y」と、アラビア数字「9」とはかなり異なる。それは上部の構造を陽に見ているからである。しかし、特徴マッチングでは、内積の過程で混ぜ合わされて一個のスカラー量にしてしまうので、上部構造は陰に見ることになり、三文字とも強度の直線構造があることから、この直線に埋没されてしまう。それでわざわざ、局所特徴面を用意したのである。しかし、後で述べるように、われわれの方法では、上で回転特徴と言われるものが、局所的ではなく、大域的に求められ、一貫した形で、自然に容易に表現される。したがって、上の種の文字は非常に簡単に認識可能である。
【0007】
図形,物流システムに置かれた物体,軍事では飛行機など、回転に不変な認識システムは広範囲の対象に対し要求されている。
したがって、昔から研究は行われ、多くの論文が現在もなお発表されている。1990年までの研究については、森 俊二,坂倉 栂子共著の画像認識の基礎(II))に詳しく述べられており、また1999年までの研究は、S.Mori,H.Nishida,H.YamadaOptical Character Recognitionに詳しい記述があり、この研究の主流はモーメント法であり、高次のモーメントを位相角が相殺するように組み合わせるものであり、またフーリエ記述子なる名前で呼ばれているフーリエ変換法の応用があり、これは最近のPCが非常に高速になったことを反映して、研究自体は盛んになっているものの、実用としてはいまだ市場に現れていないが、一方この流れとは別に、情報処理学会論文誌第27巻第号:1986年月,“画数,筆順,回転,区切りによらないオンライン手書き図形認識方式”にあるように対象を直線線分,弧の系列で近似し、それらの相対的角度変化で表現し、辞書の同様な表現との対象(入力図形)対応をとり、それぞれの角度変化の差の絶対値の和でお互いの距離を測って回転不変な方式としているが、鋭角の検出に弱いという欠点が論文自体の中で述べられている。
【0008】
いわゆるマッチング方式は文字の置かれた、二次元平面上の特徴(例えばストロークの方向)マッチングである。またオンライン手書き文字認識ではいわゆるDP(Dynamic Programming)マッチング、別名弾性ストリングマッチングである。前者においては、二次元上の特徴の分布を、ベクトル表現し、文字間の距離をこれらベクトルの内積として定義し、内積の定義された、ベクトル空間上の識別問題として、統計的手法で文字認識を行う。後者では、単純な重ね合わせのマッチングを拡張し、入力文字が標準文字に対し適応的、柔軟に、マッチングさせることにより文字認識を行うものである。
【0009】
このような手法に対し、一般には構造解析的手法と呼ばれる文字認識法が研究されてきた。これは一般図形に対しても適用可能で、良い方法であるが、対象の、具体的には文字ストロークの記号化を必要とし、シンボルによるマッチングがなされてきた。しかし、このシンボル化するところに問題があり、シンボル化で柔軟性を失い、また設計が機械的に行かず、研究,開発が行き詰まっている。例えば上述した[電子通信学会論文誌,56−D,5,pp.312−319,“手書き数字・片仮名文字のオンライン実時間認識”]が発表されたのは古く1973年である。この段階で、オンライン文字の右回り左回りが特徴として使用されているが、これらの系列は全てシンボル化されている。これらは入力パターンのX-座標値の増減で検出され、11個のシンボルで、表現されている。このようなシンボル表現は柔軟性にかけ、実際特別な場合として部分的にしか使用されていない。その後構造解析的手法は1981年に電子通信学会論文誌J64−D,8,p705−712,“形の代数的構造表現”で統一的な観点を与える代数的な考えが導入され,1992年にIEEE Trans. on Pattern Analysis and Machine Intelligence Vol. 14,ナンバー5,pp. 1029−1058,“Algebraic Description of Curve Structure”で実用的な代数的システムが構築されたが、依然としてシンボル表現であった。この様に構造解析的手法はシンボル表現水準に留まってきた。この壁を突破するには、シンボルでなく、アナログにしなければならないと言うこと自体は学会で、よく言われてきたのであるが、いままで、このアナログ化の具体的な方法が見付からなかった。
【発明の開示】
【発明が解決しようとする課題】
【0010】
ところが、上記の従来技術では,下記のような基本問題がある。
構造解析は簡単であるが、柔軟性がなく、基本パターンの境が問題で、離散的で、ぎこちなく、辞書の作成に手間がかかる。
パターンマッチング法、特にDP方式は処理が重たい。
パターンマッチング法はオフライン認識も含め、ただ読むだけ、すなわち入力文字を強引に辞書に当てはめることが主たる目的であり、原因結果の対応が見えず、時として理解に苦しむ誤読をきたし、その原因が設計者にもわからないことが珍しくない。
【0011】
本発明は、基本的には上に述べた構造解析的手法に属し、しかし、今までの問題点を克服し、柔軟な構造解析的手法の基礎を与えるものであり、それ故、シンボル化の問題を回避し、アナログ的に構造を表現し、標準との柔軟かつ単純なマッチングを行うことを目的とする。
【課題を解決するための手段】
【0012】
上記目的を達成するため、第1の発明は、オンラインの手書き文字を認識する手書き文字認識システムにおいて、
手書き文字が入力される入力手段と、
前記入力手段で入力されたデータを、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行う折線近似手段と、
前記折線近似手段で折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求め、前記折れ線の角頂点の外角系列を求め、前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外角の和を、巻き角系列とする処理手段と、
前記処理手段で求められた各系列による大局的な特徴と、巻き角系列の各項の巻き角領域内における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と予め用意された認識対象文字のテンプレイトとを比較して文字認識を行う認識手段とを備えたことを特徴とするものである。
【0013】
また第2の発明は、第1の発明の文字認識システムにおいて、
前記巻き角系列で構成される曲線のループの前後で各項を前巻き角と後巻き角に分割して、認識処理を行うことを特徴とするものである。
【0014】
また第3の発明は、第1の発明の文字認識システムにおいて、
前記認識対象文字のテンプレイトは、学習データから、各系列要素、各特徴の上限、下限の範囲を決めたデータであることを特徴とするものである。
【0015】
また第4の発明は、第1の発明の文字認識システムにおいて、
前記折れ線近似表現として、折れ線の長さを要素とすると、その全長で正規化した系列と、始点,頂点,終点を要素とする系列を用い、端長比,中間長,中間最大長,長さの要素の分布,始点終点間距離の特徴を求めることを特徴とするものである。
【0016】
また第5の発明は、第1の発明の文字認識システムにおいて、
ある定められた区間内の折れ線の加重平均角、外角系列の特徴又は境界項の値、極点の検出、始点終点間距離、始点・終点・極点間の距離から、文字の枠組み構造を定量的に設定することを特徴とするものである。
【0017】
また第6の発明は、第1の発明の文字認識システムにおいて、
各学習データから、巻き角系列の各項の巻き角領域内、巻き角領域間の特徴から構成される部分的多次元の特徴空間上で、識別平面を構成し、文字間の識別を行うことを特徴とするものである。
【0018】
また第7の発明は、第1の発明の文字認識システムにおいて、
巻き角系列の各要素の外角系列と、それに相当する長さ系列から、長さ系列を一方の軸に取り、他方の軸に外角系列の累積角をとり、線形補間を行うことによりグラフを構成し、その要素の始点からの距離の関数として、巻き角を、またその逆として、巻き角の関数として、距離を連続的に求める累積角特徴関数を構成して、大局的な曲がり具合の特徴を求めることを特徴とするものである。
【0019】
また第8の発明は、第1の発明の文字認識システムにおいて、
複数個の画間の位置関係を、各画の代表折れ線または折れ線集合の延長線も含めた直線群同志の交点を求めることにより、定量的に求めることを特徴とするものである。
【0020】
また第9の発明は、第4の発明の文字認識システムにおいて、
前記正規化した系列の内で、所定長以下の折線は無視することを特徴とするものである。
【0021】
また第10の発明は、第1の発明又は第7の発明の文字認識システムにおいて、
巻き角系列の各項の巻き角領域内で、前記折れ線角系列の、隣り合う折れ線角の変化のパターンまたは累積角特徴関数を利用し、対象文字を複数の区分に分解して、その区分または境界点の特徴を認識対象文字との比較に利用することを特徴とするものである。
【0022】
また第11の発明は、第1の発明の文字認識システムにおいて、
前記巻き角系列の各項で構成される曲線の巻き角の半分に対応する曲線上の点を中点として求め、その前後で各項内の曲線を分割し、各分割折れ線群から抽出される微妙な曲線の特徴を求め、認識精度を上げることを特徴とするものである。
【0023】
また第12の発明は、入力手段で入力されたオンラインの手書き文字を認識する手書き文字認識方法において、
前記入力手段で入力された手書き文字を、演算手段での演算により、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行い、前記折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求め、得られた折れ線の角頂点の外角系列を求め、前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外接角の和を、巻き角系列とし、
前記演算手段での演算により求められた各角による大局的な特徴と、巻き角系列に応じて分割された各曲線部分における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と、予め記憶手段に記憶されて用意された認識対象文字のテンプレイトとの比較を行った結果を、文字認識結果として出力手段から出力させることを特徴とするものである。
【0024】
第13の発明は、コンピュータに実装して、入力手段で入力されたオンラインの手書き文字を認識する手書き文字認識プログラムにおいて、
コンピュータに、
前記入力手段で入力された手書き文字を、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行う第1の手順と、
前記折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求める第2の手順と、
得られた折れ線の角頂点の外角系列を求める第3の手順と、
前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外接角の和を、巻き角系列とする第4の手順と、
前記第1,第2,第3及び第4の手順を実行することにより求められた各系列による大局的な特徴と、巻き角系列の各項の巻き角領域内における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と、予め記憶手段に記憶されて用意された認識対象文字のテンプレイトとの比較を行った結果を、文字認識結果として出力手段から出力させる第の手順とを実行させることを特徴とするものである。
【0025】
第14の発明は、第13の発明に記載された文字認識プログラムを記録した記録媒体とするものである。
【発明の効果】
【0026】
これら本発明によると、シンボル化の問題を回避し、アナログ的に構造を表現し、標準との柔軟かつ単純なマッチングを行うことができる。また構造解析を行うので、必然的に対象を適格に記述することが出来て、原因結果の対応が人間の視覚からみて明確である。したがって、文字などの対象の形の評価が出来て、正しい拒否範囲を設定でき、より人間に近い能力をもつ認識システムを提供することができる。
【発明を実施するための最良の形態】
【0027】
以下、添付図面を参照しながら本発明の実施の形態の例を説明する。
本例においては、オンライン手書き文字認識を行うシステムに適用してあり、図1には、各処理部をハードウェア構成とした場合の構成例を示してある。なお、図1に示すように各処理部を個別の処理部とすることも可能であるが、各処理部を共通の演算処理部で実行する構成としてもよく、或いはパーソナルコンピュータ装置などの汎用の演算処理装置に、本例の手書き文字認識をプログラム化したものを実装させて、同様の手書き文字認識が行われるようにしてもよい。
また、以下の説明においては、本例での手書き文字認識に必要なそれぞれの概念を、次の表1に示す用語で定義している。
【0028】
【表1】
【0029】
図1に示した構成について説明すると、紙1の上で、ペン2で文字を書くことで、その紙1の上の運筆(筆跡)1aをペン2側で検出する。その運筆1aの検出は、例えばペン2に内蔵されたカメラにより行う。或いは、加速度センサなどからペン2自体の動きを検出するようにしてもよい。さらに、ペン側で検出するのではなく、紙1の側を何らかのパネルで構成して、電気的に筆跡を検出できる構成としてもよい。いずれにしても、本例の場合にはオンライン手書き文字認識であるので、時間の経過による筆跡の変化を判断できる構成としてある。
【0030】
これらの処理で検出された筆跡のデータは、入力処理部3に送られ、文字情報を検出するための入力処理が行われる。入力されたデータは、以下、折れ線近似部4、前処理部5、特徴抽出部6、識別部7、識別結果出力部8に送られて、それぞれの処理部で対応した処理が行われて、最終的に、識別結果出力部8で、識別された文字の表示や、識別された文字コードの出力などの出力処理が行われる。
【0031】
図2のフローチャートは、本例の文字認識の全体の処理例を示したものである。以下、図2に従って説明すると、入力処理部3から入力された文字/図形パターンは(ステップS11)、折れ線近似部4で折れ線近似される(ステップS12)。この近似から、入力パターンは、各折れ線をベクトルと見た時の、長さ、方向角、隣接する折れ線の方向角の差を要素とするベクトルとして表現される(ステップS13)。また、方向角の差のベクトル表現から、同符号の角の差の和を求め、符号を含め一つの要素として、ここで巻き角と名づけたベクトル表現が求められる。この結果から、前処理部5で、非常に短い点状のパターン、非常に短い折れ線、それと非常に価の低い方向角の差の成分は修正される(ステップS14)。次に、特徴抽出部6で折れ線近似表現から、状況に応じて、特徴が抽出され(ステップS15)、その特徴の抽出結果に基づいて、文字認識が行われ(ステップS16)、文字認識結果が出力される(ステップS17)。
【0032】
ここで、ステップS15での文字認識処理の詳細の例を、図3のフローチャートを参照して説明する。まず、ストローク数がチェックされる(ステップS21)。ここでは、ストローク数が1の場合と、複数の場合に分類される。ストローク数が複数のときには、一般交差点検出が行われる(ステップS22)。そして、巻き角表現で、要素数が1の場合と複数の場合に分類される(ステップS23)。巻き角表現で、要素数が複数のときには、巻き角のプラス(+)マイナス(−)の分解が行われる(ステップS24)。
更に、交差があるかどうかチェックされる(ステップS25)。交差がある場合、一つの巻き角要素は、巻き角前後分解処理として、交差点を境に3個の部分に分解される(ステップS26)。具体的には、交差により形成されたループの部分と、始端から交差点までと、交差点から終端までの3つである。
【0033】
そして更に、文字/図形のパターンに応じ、より簡潔にかつ効率よく特徴を求めるために、前処理2として、よりコンパクトな折れ線近似表現を得る処理が行われる(ステップS27)。また、長さ△偏差検出として、長さ系列ベクトル、△系列ベクトルの要素の
一様性がチェックされて(ステップS28)、これが識別に利用される。
【0034】
次に各巻き角領域内の局所的特長を抽出し(ステップ29)、更に準局所的特徴を抽出し(ステップ30)、文字全体の枠組み構造を設定して、階層的、かつ分割的な処理が行われる(ステップ31)。
一方、以上の特徴抽出が行われると、図2のステップS16の識別処理により、木構造に基づく決定木を使い簡潔かつ高速に識別が行われる。即ち、図4に示すように、木構造の識別が抽象図形地図を使用して行われ(ステップS32)、接近した形の場合、特徴空間上の関数/ベクトル空間に基づく小次元空間上の識別法が使用されて、識別が行われる
(ステップS33)。
【0035】
次に、それぞれの段階での具体的な処理の詳細について、図5以降を参照して説明する。ここでは、本発明の原理を説明する上で、原理が最も判り易い例として、主として0,1,2,……9のアラビア数字を文字認識する例を説明する。
まず、巻き角の検出について説明する。
本例での対象文字曲線の表現については、まず観測装置より得られた、文字のストロークの折れ線近似を行う。折れ線近似そのものについては、既に多くの研究がある。その中で、適当な手法を用いるとする。此処では例えば、1972年に発表されたU.E.Ramerの手法を想定する。この手法は単純明快な手法で、最も知られた方法であると言って良いであらう。そこで、折れ線近似された画/ストロークから説明を始める。
【0036】
まず、図5に示すように、第一に、折れ線近似された画/ストロークは書き始めの始点から始まり、その最初の折れ線の終端は方向表示として矢印で示されているベクトル表示となっている。図5の左側が、ペンで書かれたストロークそのものであり、図5の右側が、折れ線近似されたものである。最初の折れ線のベクトル表示に繋がる折れ線も同じくベクトル表示され、順にベクトル表示され、最後に画/ストロークの終端で終わる。
ここで、各折れ線の角は、図6で示されているように、各折れ線の始点から、軸(水平軸)の正の方向に引かれた水平線から反時計方向に測られる。従って原点から上向きの折れ線の角は+90度である。下向きの折れ線は−90度である。原点から軸の負の方向に向いた折れ線は、180度か−180度である。ここで両者は一致する。従って、角θの範囲は−180度から+180度である。なお、以下の説明では、角度を示す場合に、単位の[度]は省略して数字だけを示す場合がある。
【0037】
次にこの折れ線角から、頂点の折れ線外角を求める。具体的には、例えば図7に示すように、x軸と最初のベクトルとの成す角度を折れ線角θ1とし、以下順にx軸と各ベクトルとの折れ線角θ2,θ3,……とすると、最初の外角△1は、△1=θ1―θ2となり、前後の折れ線角の差で求められる。次の外角△2は、△2=θ2―θ3となる。以下同様にして、図7に示すように、折れ線の角頂点の外角系列として、((θ−θ),(θ−θ),..(θn−1−θ))を求め、これを簡単に(△1,△2,..△m)と表示する。これら外角は曲線の書き方が右回りであるか、左回りであるかにより+か−の量になるがそれら連続する同符号の外角の和を、巻き角系列として、(Θ,Θ,..Θ)と表示する。ここでの計算で注意しなければならないのは、角の主値は180から−180であり、実際は±180は同一角を示していることである。したがって、差を求めその絶対値が180を超えたとき、Δが正のときその値をΔ−360とする。
Δが負のときその値を360−|Δ|とする。
なお、ここで、折れ線の角頂点の外角系列として、((θ−θ),(θ−θ),..(θ−θ(n−1)))を求め、これを簡単に(△1,△2,..△m)と表示するようにしても良い。このように表示する方が符号系としては、統一性があるが、ここでは、右巻きの符号を+にするということにこだわった例としてある。
【0038】
この巻き角の意味が図8A,図8Bに示されている。この「」字型の文字は最初左周りで左に開いた⊂を形成し、次に右回りとなり、右に開いた⊃を形成する。かくして「」はシンボル表現では⊂/⊃または(⊂+⊃)なる構造をもつ。今まではこれが準位相的特徴と言われてきた。ここではそれが連続量として表現されることになる。なお⊂の終端部のベクトルと⊃の始端部のベクトルは、重なっている。
巻き角系列の計算法が図7に示されている。
図7で太線は左回りの左に凸(右に凹)部分を表示している。かくして「3」は単純にその巻き角角系列(+142,−140,+149)と表現される。
【0039】
また、先にお互いの識別が困難とされている、筆記体の「g」と「y」、そして数字の「9」の認識について、巻き角系列を利用した識別の容易さを示す。三文字とも巻き角系列の項数は2である。それを(Θ1、Θ2)で表現する。そこで各文字は以下のような巻き角範囲を持っている。
筆記体「g」
条件1:−320<Θ1≦−190
条件2:300<Θ2<400
筆記体「y」
条件1:−170<Θ1≦−70
条件 2:300<Θ2<400
「9」
条件1:−500<Θ1<−150
条件2:100<Θ2<250
【0040】
そこで、条件& 条件なる論理式を構成することによりこれら三文字は容易に分離認識することができる。なおこれらは回転不変なので、実際にはこれを正す方向特徴が必要であるが、いかに簡単であるかが分かるであろう。
【0041】
これから、具体的な例として、主に手書き文字で最も重要なアラビア数字についての認識処理を説明していく。まず、この「3」は大まかな構造として、右回り、左回り、最後に右回り、記号的には(+,−,+)なる構造を持っていて、3つの巻き角Θ1,Θ2,Θ3で構成される巻き角系列(Θ1,Θ2,Θ3)が形成される。数字の場合、基本的には他にこの構造をもつ数字はない。したがって例えば「3」のテンプレイトとして、
90<Θ1<300&−150<Θ2<−3090<Θ3<300
とすれば、この型のかなりの変形を吸収し、対象を正しく認識することが出来る。
【0042】
なお、折れ線近似した結果は、このような巻き角系列だけでなく、長さ系列のデータも得るようにしてある。図10は、長さ系列について説明した図である。ここでは、折れ線全体を長さ1.0として、各折れ線(ベクトル)の長さを正規化した値を得るようにしてある。具体的には、図10に示すように、ベクトルv0〜v5と折れ線近似されているとすると、図10の下側に示すように、全体を長さ1.0として、各ベクトルv0〜v5の長さを正規化し、それぞれの値の集まりを長さ系列とする。図10の例では、
長さ系列:0.12,0,13,0.13,0.10,0.30,0.22
として小数点以下2桁の数値で示してある。各長さの合計は、1となり、正規化された値であることが判る。
【0043】
次に、巻き角を使用して文字認識を行う原理について説明する。巻き角を使用することで、ラフであるが変形に強い認識系が構成できるのであるが、具体的には、これに種種の拘束条件を入れていかなければならない。ここでは、巻き角系列の要素が1個の最も単純な場合が良い。これは記号的には(+)又は(−)で表現される。
(+):「1」,[2],「3」,「7」,「9」
(−):「0」,「1」,「4」,「6」
がそれぞれ含まれる。ここで、ループを持った[2],「3」,「4」は手書きの標準形ではないがこの程度の変形文字は認識されなければならない。ループについては後述する。また、「1」はノイズを考慮して安全のため両方に入れた。まず、(+)に属する、数字を考える。
【0044】
まず一番単純には、巻き角だけで、これらを区別することである。ここでは、「7」を単純化して、鉤の無い欧米式「7」を認識するものとする。またこれと関連し「1」は標準形「|」とする。
「1」:+<|Θ|<+30
「2」:+280<Θ<+600
「3」:+400<Θ<+700
「7」:+90<Θ<+180
「9」:+280<Θ<+400
これらから、巻き角角だけで、「1」,「7」は識別できる。また、「3」も識別可である。
【0045】
しかし、「2」の極端な変形である「α」の如き形状(このαのような形で、始点からループの交差点にいたる線分で、凹みがない)は、上述した条件では除外している。このような変形に対処するために、ループ部分について、次に説明するような解析を行う。
具体的には、極端な変形を考慮する必要のある認識対象文字「2」,[3],「9」であるが、これらの字の解析の方針を説明すると、例えば「1」,「7」の巻き角はそれぞれ30度、180度を超えない、即ちそれらはそれぞれ緩やかな型、型であることを意味している。反対に他の文字は、大まかに言っての半分+の、即ち45+180=225を超えることを示している。このように直観的に数値による設計ができる。しかし厳密にはループは巻き角が180+αで起こり得るが、現実には殆どこのような面積が0に近い異常なループ
は起きない。
【0046】
そこで、巻き角の交差分解を行うようにしてある。
巻き角の交差分解として、ここでは、認識対象文字「2」,「3」,「9」の分離を考える。まず「2」では図9Aに示す如く、「2」のループの上部で、巻き角が大きくなりすぎて、「2」全体としては巻き角が、600度程度にもなってしまうことである。そこで、このような問題を解決するために、同一符号の巻き角の分割を考える。それはループの交差点で、上部と下部の巻き角とループの巻き角を分けることである。即ち、図9の例では、図9Aに示すように、始めの折れ線のベクトルv0からループに入る交差する折れ線v4までの巻き角(前巻き角/PreΘ)と、図9Bに示すように、ループから出る交差する折れ線のベクトルv7から終端の折れ線のベクトルv8までの巻き角角(後巻き角/PostΘ)である。なお、ベクトルv4〜v7で形成されるループの巻き角は、ここではあまり意味が余り無いので、ここではこれを除外し、文字認識には使用しない。ベクトルv0〜v4の前巻き角が大きくなっても、ベクトルv7〜v8の巻き角が小さければ、例えば90以下としておけば全体としての巻き角が「2」と「3」で重なることがあっても、両者を区別することが出来る。
【0047】
このようにして、ループ形成個所で交差分解を行って、例えば「2」と「3」の場合に、以下の如く巻き角の許容範囲を決める。
「2」:+280<Θ<+450――>+300<Θ<+700postΘ<90CROSS
「3」:+400<Θ<+700――>+400<Θ<+700100postΘ&CROSS
ここで、postΘとは後巻き角を意味する。また当然、ここで、「2」,[3]とも交差点(CROSS)を持つことを想定している。前巻き角はpreΘと表す。なおここで「2」と「3」の間に拒否領域を取っている。なおここで用いた交差特徴については次に述べる。
【0048】
次に認識対象文字「2」,「3」と「9」の間の分離であるが、巻き角だけ見ると明らかに、「9」は「2」,「3」と重なる。しかし、上で述べたように、「2」,「3」は必ず交差があり、「9」には無いとする簡易な解決法がある。しかし、自由手書き文字の変形を考えるとそうはいかない。その例が図11に示されている。図11Aは「2」の例であり、図11Bは「9」の例である。いずれの場合も交差が発生しているが、次に示す条件により識別することができる。即ち「9」は前巻き角、preΘが小さいのである。この場合は0である。先に「2」の極端な変形「α」を除外したのはこのためでもある。この場合、前巻き角は0となる。
「2」:+280<Θ<+700postΘ<9030postΘ&CROSS
「3」:+400<Θ<+700100postΘ&30postΘ&CROSS
「9」:+300<Θ <+400&{NO_CROSSpreΘ<10
【0049】
次に、巻き角の+−分解について説明する。
上述した例では、一つの巻き角内での分割であったが、巻き角系列に対応して、それぞれの部分長さ系列、部分Δ系列に分割して、次に述べる幾何的特徴を、各部分において行うと効果的である。そこで、その部分に分割する処理についてのべる。これは反りのある「7」の字の例である。長さ系列、Δ系列、巻き角系列は以下の如くである。これが図13で、元図形(図13A)と折れ線近似された図形のΔ系列、巻き角系列(図13B,図13C)とを示してある。なお、図12(元図形:図12A,Δ系列:図12B,巻き角系列:図12C)は、比較のために「2」の字の例を示してあり、図12、図13の比較は後述する。
【0050】
図13に示した「7」の字の各系列は次のとおりである。
長さ系列:0.38 0.17 0.14 0.32
Δ系列:+121.29 −19.17 −19.72
巻き角系列:+121.29 −38.89
図から、巻き角系列の第項Θは最初の長さ系列0.38 0.17から形成され、第項Θは、長さ系列0.17 0.14 0.32から構成されていることが分かる。ここで、長さ0.17を持った第2の折れ線、は両方に属している。この折れ線部がΔ系列の符号の分岐線である。すなわちこれは境界線で、重なり(共通)部分である。このように長さ系列、Δ系列を巻き角系列の+−に応じて分離させ、それぞれで、構造を解析すると良い。比較のために反りのある「7」と間違いやすい、なだらかな曲線形状の「2」の例を図12に示す。図12に示した「2」の字の各系列は次のとおりである。
長さ系列:0.14 0.09 0.36 0.21 0.08 0.12
角度系列:-2.05 −35.54 −113.31 −94.29 −47.49 −12.80
Δ系列:+33.49 +77.77 −19.02 −46.80 −34.69
巻き角系列:+111.26 −100.51
【0051】
この場合は、長さ系列:0.14 0.09 0.36が巻き角系列の第項Θを形成し、後半の0.36 0.21 0.08 0.12が、巻き角系列の第項Θを形成する。かくして、この両者、「7」と「2」の差は第二のマイナス部分の長さ系列を見れば歴然としている。これを並べると、「7」の第2の(−)部分の長さ系列;0.17 0.14 0.32
「2」の第2の(−)部分の長さ系列;0.36 0.21 0.08 0.12
であり、あとで述べる端長比(始端長/終端長)で、「7」対「2」は0.533.00となり、この特徴が両者を分離する鍵であることが分かる。これは、「7」の下部がほぼ直線的に下に下がっているにたいし、「2」では、下部は曲がっている、視覚的な特性を数値として表現している。
【0052】
なお、ここで巻き角での始端、終端、中間についての本例での定義を、図14に示しておく。1つの巻き角が図14に示すように複数の折れ線で構成されているとすると、その複数の折れ線の始端折れ線の正規化した長さを始端長とし、始端長:lstartと表す。また、終端折れ線の正規化した長さを終端長とし、終端長:lendと表す。始端Δ値及び終端Δ値は、図14に示すように、巻き角を構成する隣接する折れ線との外角である。中間折れ線は、始端折れ線と終端折れ線との間にある各々の折れ線のことである。
【0053】
次に、幾何的特徴抽出について説明する。
文字の種種の変形を考えると、これらのテンプレイトだけでは不十分でこれらを補強していかなければならない。そのための一般的な指針を述べる。いままでは、反りのある「7」と「2」の区別以外、角だけで、形を規定した。これは、専門用語では準位相的特徴と言われる。しかし現実には、これに加え、幾何的特徴が不可欠である。これら両者の微妙な結合体が文字の形である。特にアラビア数字は、この点において、実に洗練された形の体系をもつ。
そのため、まず、
折れ線頂点座標系列:(x,y),(x1,y1),(x2,y2), . .(x,y
折れ線長系列:(l1,l2,l3, . . ,l
を求めておく。通常これらの要素は全体の長さで正規化する。
【0054】
例えば、認識対象文字「1」の場合は、実際上、折れ線長系列は、系列:(l1)か、系列:(l1,l2)の何れかである。傾きについては、例えば始点の角θが±25度に入ると言う制限が必要となる。
この様に、正規化された、以下の特徴が有効である。
1.長さ系列端長の比(端長比);lstart/lend
2.長さ系列端の最大長;Max{lstart,lend
3.長さ系列端間の中間長の和;Σn=2 n=end−1ln.
4.中間最大長(長さ系列端の中間長の中での最大長).
【0055】
一方、角の、または角張っていると言った特徴はΔ系列の最大値、MaxΔで表示するがこの価でかなり角の状況が分かる。角のバランスを見るには、端のΔ値の比、Δ端比と表示するが、この価でかなり分かる。「U」と「V」の区別は正しく書かれたならば、このわずか2個の情報でどちらであるか推測がつく。例えば、もし長さ系列端の最大長が≦0.6であり、かつ、長さ系列端間の中間長の和の価が<0.2で、かつ、端長比が>0.8で、かつ、Δ端比が>0.7であれば、明確な「V」であるといえる。
【0056】
しかし、これは今問題にしている対象の巻き角が、90≦|Θ|<150であることを、前提にしている。この巻き角による階層化は非常に重要なスキームで、これについては別に述べる。また上に述べた判断は、特に折れ線数が3に等しい時、特に有効である。なおまた、次の階層である、150≦|Θ|<180では、「U」と「V」とが共存する。この場合には、より明確な特徴が必要で、これは、UまたはVの両端の折れ線を取り上げ、これらを仮想的に繋げ、両者の△値を求めれば、これが対象文字の開きの角度と見なし得る。これは両端角差と名づける。両端角差は、例えば図15に示すように、巻き角の始端の折れ線と、終端の折れ線との成す角度である。図15では、説明のために、終端の折れ線を平行移動して、両端角差を示してある。
【0057】
例えば、上述の様に、端長比とΔ端比の特徴を使い、対象をUかVに追い込んで、それからもし両端角差の絶対値の価を見て、その価が155度を越えていれば「U」、155度以下であれば「V」である。しかし「U」、「V」問題は、そう簡単ではない。より微妙な場合には、やや高度な手法が必要である。これについては、後で述べる。
以上角特徴をまとめると、
1.MaxΔ,
2.Δ端比,
3.両端角差
である。
【0058】
次に、前処理の例について説明する。ここでは前処理は、前処理1と前処理2があり、前処理1は例えば図2のフローチャートのステップS14での処理に相当し、前処理2は例えば図3のフローチャートのステップS27での処理に相当する。
上述の特徴を抽出するに、適当な前処理を、長さ系列、△系列に行うと、非常に効率が良い。そこで、ノイズ処理も含め以下に述べる。
【0059】
前処理1.
まずノイズ処理であるが、ひとつは、非常に小さな点を除去する処理である。これは正規化された長さではなく、元の物理的長さに適当な閾値を設け、点状ノイズを除去する。次に、特にオンライン文字で、起こりやすいのであるが、線の終端で、小さな鉤状の極端な曲がりが出来てしまうことがある。これは、先に述べた、巻き角に大いに影響するのでこれを除き、ノイズとして発生した、△値を主の巻き角から差し引く。この時に使用する
閾値は、画の複雑さに依存する。このノイズ処理は、曲線の両端のみで行う。
【0060】
前処理2.
長さ系列の始端長、l(s)から始め、l(s),l(s+1)間の△(s)が<20なら、l(s)=l(s)+l(s+1)とする。同様にl(1),l(2)に対応する|△(s)|が<20なら、l(2)=l(2)+l(3)とする。|△(i)|<20の条件が満足されなければ、何もしないで1ステップ先に進む。これをl(e)まで続ける。結果として新しい長さ系列、が得られる。ここでの最大の問題は、閾値の価である。経験上、閾値を10に取れば、いわゆる副作用は殆どない。20のときは状況による。使い方を選ばなければならない。なおこの問題を回避する、より一般的な特徴抽出法については後で述べる。
【0061】
△系列においては、始端、終端のみに行うのが良い。即ち、長さ系列の始端、終端において、l(s)=l(s)+l(s+1)又はl(e)=l(e)+l(e−1)が実行された時、△(s)=△(s)+△(s+1)または△(e)=△(e)+△(e−1)とし、それ以後はこの処理を続行しない。この他に、例えば「7」で、右の長い曲線部が微妙に反ることがある。これは△値で、10程度の価である。しかし巻き角系列の項数が1個増大し、影響は大きい。それで、この様な△系列も修正して、処理効率を上げることが考えられる。
なお、これに関して、実はRemerの方法は、直線と曲線との誤差を両者の最大誤差長で見ているので、これを調節することにより、曲線全体のノイズ処理を行うことができる。
【0062】
次に、本例で行われるフィルター処理について説明する。
これは本格的な認識に入る前に、簡単に分かる入力の特性を見て、そのようなパターンを先に取り出してしまうと言う処理である。近似折れ線表現は一見複雑である。そのようなパターンを取り出しておけば後の処理が簡単になる。そのような処理を、ここではフィルター処理と称した。具体的には「円」を判定する処理がある。具体例を挙げて説明する。ここでは、閉じていない曲線が書かれた場合に、その曲線の状態から、円が書かれたとみなす処理を行う例である。
【0063】
図16Aは、元の図形であり、この折れ線近似が図16Bに示されている。図16Bには、正規化された長さ系列の値を入れてある。図16Cは、同じ折れ線にΔ値を入れた図面である。図が円に近い場合には、長さ、Δ値とも同じような価を持つ。
それで、この場合の長さ系列、Δ系列は以下のようになる。
長さ系列:0.08 0.05 0.11 0.10 0.05 0.12 0.13 0.12 0.07 0.06 0.12
Δ系列:+26.65 +28.10 +31.43 +29.36 +34.08 +35.84 +44.61 +34.14 +23.78 +35.17
ここでの長さ系列、Δ系列は、ノイズ処理した後か、低い閾値で例えば10、前処理後のものである。フィルターの処理では原始的データの方がむしろ良い。ここで気が付くことは、長さ系列、Δ系列の要素の価に変動が少ないと言うことである。これが「円」の特徴である。この要素の一様性を簡単に見るには、長さ系列、Δ系列の最大値を見れば良い。
長さ系列では、最大値は0.13、Δ系列では44.61である。巻き角:+323.1614%である。ちなみに長さ系列、Δ系列の標準偏差値はそれぞれ、σ(Len)=0.0292、σ(Δ)=5.5714である。また縦横比は(幅/高さ)=1.05である。
【0064】
一方、一見円に見えるサンプル例として、
長さ系列:0.10 0.11 0.14 0.05 0.08 0.06 0.09 0. 13 0.10 0.09 0.06
Δ系列:−28.25 −28.07 −25.85 −33.17 −33.19 −30.04 −35.81 −21.80 −23.20 −49.40
巻き角系列:−308.78
であり、長さ系列、Δ系列の標準偏差値はそれぞれ、
σ(Len)=0.0272
σ(Δ)=7.4841
縦横比(幅/高さ)=0.71
である。
【0065】
これから、長さ系列、Δ系列の標準偏差値、縦横比は特徴量として使用可に見える。しかし、この例のように標準偏差値は実は期待ほどには良くはない。実際、長さ系列のσ(Len)0.0272で最初の「円」サンプルに比し小さく、σ(Δ)=7.4841でかなり大であり、2種の標準偏差値がバランスを欠いている。また計算量も大である。縦横比は丸みがあると判断された後にしか使用できない。この丸みの条件が成立後は簡単で、良い特徴であり、ここでもそれを使う。例えば、巻き角で階層に分け以下のような条件が作られる。
[;(最大長≦0.15)&(最大△値≦46)&(先端部の巻き角≦125)&(270≦|巻き角|<300)&0.80≦縦横比(幅/高さ)≦1.20]→「弱円1」
[;(最大長≦0.15)&(最大△値≦48)&(先端部の巻き角≦130)&(300≦|巻き角|<320)&0.80≦縦横比(幅/高さ)≦1.20]→「弱円2」
[3;(最大長≦0.15)&(最大△値≦50)&(先端部の巻き角≦135)&(320≦|巻き角|<360)&0.80≦縦横比(幅/高さ)≦1.20]→「弱円3」
ここで、単に「円」としないで「弱円」としたのは、実際手書きでは正確な円を書くことはむずかしくこれを考慮して、上の条件を設定して、円に近い状態であることを示す「弱円1」,「弱円2」,「弱円3」を定義した。これで、ほぼ円であると推定されるものは、この条件を満足する。図16の入力に対する結果は、[-弱-○-]である。一方、上述の例は縦横比で、最終的に「円」と判断されない。
【0066】
次に、累積角特徴関数について説明する。
上に述べた、特徴は閾値の影響を受けやすい。例えば、
長さ系列:0.23 0.28 0.09 0.14 0.12 0.14
Δ系列:+11.54 +73.01 +42.89 +7.37 +20.12
では、閾値20で前処理すると、先頭部分はΔ値が11.54で、20以下なので、前処理され、始端長は0.51となる。しかし、終端ではΔ値が20.12で、わずかに閾値より大なので、前処理されず、端長比が0.14/0.510.27となる。このため、端長比&MaxΔが(<0.5)&(>45)、ならば「L」という条件に合致してしまう。実はこの入力文字は明白なVである。
【0067】
この問題を解決するために、長さ系列とΔ系列から、Δの長さに対する累積角関数を考える。この長さ系列、Δ系列の折線近似に対する累積角関数が図17に示されている。しかし、これは、階段関数で(点線のグラフ)、閾値問題を持っている。そこで、簡単な線形補間関数を作る。これも、図17に示されている。これは単に各階段の角を線で繋げたものである。この簡単な補間で階段関数は連続関数になる。しかも単調増加関数である。この補間関数は、順方向と逆方向と2種類作る必要がある。それぞれに使用した長さ系列、△系列が二つの表で示されている。こうしたのは、この簡単な補間法では、図9の関数グラフを注意深く見れば、最後の階段では、補間の直線は水平になっている。すなわち、ここでは厳密には、一意的に逆関数を求めることが出来ない。確かに、このようなことがない様に、例えば階段のステップの半分を取ってこれを直線補間するなど考えられるが、性能については、順方向、逆方向の2個の関数を用いた方がより厳密である。正確には、長さでいえば少なくとも半分、[0,0.5]では殆ど確実に使える。実際の応用では、このように引数の値域の半分までしか使用しない。この「U」の例では、略対称なので、これら2個の順方向と、逆方向の関数は一致する。これを使えば、例えば特に問題になる、UとVを区別する問題などでは、この逆関数、即ち、巻き角度90を入れ、それだけ巻いた長さを求める。これがこのグラフでy軸上の90度を与える軸の長さが求められる。これはこの累積角特徴関数を逆に使用している例となっている。このx軸上の価は図の90度の水平線が関数のグラフ(実線)にぶつかった所から垂線を軸上に降ろしその軸上の点の価0.448、で与えられる。一方逆方向関数が点線で示され、この場合も全く90度に対応する長さはやはり0.448であり、全く一致する。この例はできる限り対称になるように書かれた「U」の例であり、この結果はこの方法の精度の良さを示している。
【0068】
これは、この図形が対称であることを示していると同時に、∪の典型的な形を持っていることを示している。たとえば、「」の場合、90始端長では中心点を超えてしまい、90終端長と重なりが生じる。これらの比はMin{90始端長,90終端長}割るMax90始端長,90終端長}で、「U」の場合は1.0となる。この比は90度長比と名づける。なお上の例は実際の例である。この例が示すように簡単な補間で、かなり正確な計算ができる。この様な計算は任意のα度で求めることができる。そこで、一般にはα度長(巻き角)で表示する。ここでの引数は全体の巻き角を越えてはならない。大域的な対称性をみるなら引数として、全体の巻き角/を取る。
【0069】
一方、この順関数、すなわち長さを与え、巻き角を求めることも出来る。実際これが先程説明した累積角特徴関数の素直な使い方である。例えば、「6」で、ループが開いて、微妙に曲がっているような時には、非常に有効に使用できるが、ここでは極端な例として入力文字「J」を、図18を参照して具体的に考える。なお、この文字の形は、上に水平方向のバーがないJの字である。ここでは例として引数としての長さは0.3を想定する。
この図18の例の場合は、順方向関数(実線)と逆方向関数(点線)は大きく異なる。これはまさに文字「J」の形を反映している。この場合順方向、即ち始点から、0.3進んだ点での巻き角、それと反対に逆方向関数から、終点から、同じく0.3だけ進んだ点での巻き角を求めることが同様に出来て、それぞれ、10.00度、112.88度で、両者の比、λ長度比(0.30)=0.09で、両端での曲がりが極端に異なることが定量的に示されている。
【0070】
なおこの計算で注意しなければならないのは、例えば以下に示す個の折れ線の例で、
長さ系列:0.38 0.62
Δ系列:+31.08
であると、λ長度の関数の引数が0.38を超えると、対応するΔ系列の項が無い。この場合以下のような結果になる。
λ長度比(0.25)=0.61 (20.45)(12.53)
λ長度比(0.30)=0.61 (24.54)(15.04)
λ長度比(0.35)=0.61 (28.63)(17.55)
λ長度比(0.45)=計算エラー
である。実際には、折れ線数が2又は3の場合には、これらの累積角特徴関数は使用しなくとも良いのであるが、折れ線数が少ない場合には注意が必要である。実際にはこのλ長度関数の引数は0.5を超えて使用することはない。またこの計算エラーの起こる場合は容易にチェックできる。経験上引数0.30程度が一番有効である。
【0071】
なお、図17、図18に示したのは直線補間の一例であり、他に色々考えられる。この例では始端からの場合の例で、この補間関数を終端から見ると言う場合には使えない、この場合は同じ手続きで終端から始め補間関数を新たに求めている。それで、これらの中間を取れば補間関数は強い単調増大関数(ここで「強い」とは必ず増大する意)となり、両方に使用できる。しかしここではこれを採用していない。
【0072】
次に「U」と「V」のような類似した文字を区別するには、その先端の曲がり具合を如何に表現するかが、幾何的特徴抽出を行う上で、非常に重要となる。この課題を解決する為の方策として、本例においては、巻き角を利用した(1)中点検出によるバランス、角特性の抽出、(2)先端部曲率の2つの方法が適用可能である。この2つの方法について以下述べる。
【0073】
まず、中点検出によるバランス、角特性の抽出から説明する。これは、中点を分岐点として対象となる巻き角を前後の2つに分割し、それぞれの分割された部分で特徴を求め、
それらを全体的に評価し、判断を下すという手法である。
ここでいう「中点」とは、対象文字の凸点、乃至は凹点を含む巻き角において、対象巻き角の2分の1をαとしたα度長である(始端側と終端側の双方から求める)。これは上述の累積角特徴関数より求めることが出来る。
【0074】
具体的には、始点から測って(巻き角/2)巻いた点 "α度(巻き角/2) 始点”、終点から、逆に測って(巻き角/2)巻いた点 "α度(巻き角/2)終点”を求め以下のアナログなα度(巻き角/2)の中心点を求める。即ち、
中点=((1−(α度(巻き角/2)終点))-(α度(巻き角/2)始点))/2+(α度(巻き角/2)始点)
(これは始点からの折れ線に沿っての正規化された、長さである)。
上記計算にて求められた中点はアナログ値であるので、便宜上、中点に一番近い折れ線の頂点を分岐点とし、その前後の折れ線群に分ける方法を取る。これらの折れ線群を前折れ線群、後折れ線群と名づける。これらの部分長の総長を求める、それらを前総長、後総長と名づける。
【0075】
まず、対象文字の角特性を抽出するため、前折れ線群、後折れ線群それぞれについての加重平均角を求める。折れ線群内の折れ線系列を l(1),(2),..l(n)とし、角系列をθ(1),θ(2),..θ()とし、前後の総長N= l(1)+l()+..+l(n)とすれば、加重平均角は以下の通り、求められる。
加重平均角=《1(1)×θ(1)+1(2)×θ(2)+..l(n)×θ(n)》÷N前後の加重平均角のなす角を両端平均狭角差(=θsp)として、以下の如く与えられる。θsp=(θ(pre)+180)θ(pro)
(θ(pre)は前折れ線群の加重平均角、θ(pro)は後折れ線群の加重平均角)
また、前折れ線群、後折れ線群の直線性を見る具体的手法として、角の分散値を見る。即ち、
前折れ線群の角分散
=《(θ(1)−θ(pre))2×l(1)+(θ−θ(pre))×l(2)..+(θn−θ(pre))2×1()》÷(後折れ線群の角分散値も同様)
分散値は大きな数になるので、これを100で割る。こうしても、比較が目的なので問題ない。
【0076】
なお加重平均角の際、注意しなければならないことがある。
折れ線の方向角の値域は−180≦θ≦180で、−180180と同一角を示す。この約束は、それぞれの折れ線の2次元平面上での方位を表すには良いが、それらの平均を求める、このような演算を導入するとき、問題になる場合がある。即ち、図27のように角折れ線群の始端の折れ線角がマイナスで始まった場合でも、終端の符号がプラスになるケースがあり、その場合、適切な加重平均値が求められないからである。従って、ここでは折れ線角を求める際の原則を調整し、始端の符号と同一方向で折れ線角を測定することとする。なおこれは、数学的には角度をリーマン平面上で測ることである。この平面は−∞から原点までの直線に鋏で切れ目をいれ、第3象限の面を3次元空間で下に延長させ、第2象限の面を上に延長させ、らせん状にした面である。
【0077】
次に、中点より分岐した折れ線群の長さのバランスは以下の如く定義される。
バランスの定義:Min(前総長,後総長)/Max(前総長,後総長)
以上の幾何特徴の具体例を以下に示す。まず、図28Aにある対象文字「U」を、図28Bに示すように折れ線近似する場合について説明する。この表現は以下のように与えられる。
:長さ系列:0.29 0.19 0.08 0.15 0.29 (192.81)
:角系列:―35.68 ―82.65 ―140.71 ―177.71 154.49
:Δ系列:46.97 58.06 37.00 27.80
:巻き角系列:169.84
:頂点リスト:0:(836,47)1:(875,75)2:(879,106)3:(868,115)4:(843,116)5:(799,95)
中点=((1―0.47)―0.41)/2+0.41=0.47
(長さ系列から頂点(1)と頂点(2)の間にある点と分る)
頂点()までの距離:0.48―0.47=0.01(長さ系列を利用)
頂点()までの距離:0.47−0.29=0.18(同上)
したがって、最も中点に近い頂点:2:(879,106)を分岐点として選ぶ。
前加重平均角:−54.27
後加重平均角:−187.3
前加重平均角の直線と、後加重平均角の直線の狭角、θspは
θsp=(θ(pre)+180)−θ(pro)=(-54.27+180)−(−187.3)=313.0
となるが、これは方位角の値域から外れているので、これを変換するため360から差し引くと47度となり、かなり開いていることが分かる。
【0078】
前折れ線群、後折れ線群の直線性は、それぞれ前角分散、後角分散で見ることができる。それらは以下の如く与えられる。
前角分散:253.25/0.48/100=5.27
後角分散:280.4/0.52/100=5.39
前折れ線群、後折れ線群の長さのバランスは
バランス:Min(前総長,後総長)/Max(前総長,後総長)=0.48/0.52=0.92
で与えられる。
【0079】
これに対し、「V」の例を、図29A及び図29Bに示す。
長さ系列:0.34 0.14 0.13 0.39 (205.98)
角系列:−56.06 −79.11 170.13 152.02
Δ系列:23.06 110.75 18.11
巻き角:151.92
頂点リスト:0:(660,41)1:(695,93)2:(700,119)3:(677,115)4:(613,81)
中点:0.47
頂点:
前加重平均角:−62.78
後加重平均角:156.54
前角分散:1.09
後角分散:0.61
θsp=39.32
バランス:0.92
【0080】
上記「U」と「V」の中点検出による角特性、バランスを比較すると、θsp:47度対39度、前角分散+後角分散:10.661.70、バランス:0.920.92である。特に分散でU,Vに明らかな差が出ていることが分かる。この分散による違いを見ることにより、数少ないマスクで、相当な変形に対応できる。一方、バランスには差がない。これは両者とも、対称であるからである。この値は変動し、バランスが、例えば0.5程度になると「j」の1画になる。
【0081】
なお、この中点を求め、曲線を分割する方法は、孤立した、個の巻き角図形に限られない。一般には、巻き角系列の各項の曲線の範囲内において同じような処理が可能である。例えば「2」と「」の違いは、「2」=(「∩」+「⊃」)+「⊂」、「Z」=「⊃」+「⊂」と見なし、また一筆書きされた、「w」と「ω」の違いは、「w」=「∨」+「∨」、「ω」=「∪」+「∪」と見なすことが出来るので、各巻き角領域において、中点を求め、上述の処理を行うことが出来る。
また、中点は、正しく書かれた文字の場合、微分での極点と同じになる。それで、これを使用できる。しかし、上の中点がより一般的である。また、簡単に両端から正規化された距離0.5の点として、中点を求めることも出来るが、これは対称図形にのみ有効である。
【0082】
次に、先端部の曲率について説明する。
これは、例えば、UとVの先端での曲がりを見て両者を区別するための特徴であり、巻き角と前処理による簡単な方法である。これを図19で示した例を使い説明する。図19Aは、Uの元の図形であり、図19Cに折れ線近似した例を、長さ系列とともに示してある。図19Bは、Vの元の図形であり、図19Dに折れ線近似した例を、長さ系列とともに示してある。
まず先端部の巻き角を求める。以下に示す「V」の例であるが、λ長度比(0.30)0.59(11.63)(6.90)から、両端からの0.3の長さでの巻き角が出ているので、即ち11.63が始端から0.3までの巻き角、6.90が終端から、0.3までの巻き角である。そこで、この和11.63+6.90=18.53を、この文字の全体の巻き角から引く。即ち、124.98−18.53=106.45となる。
これは先端部の巻き角である。これを下の例を参照し先端部の長さ、0.03で割ると、この先端の曲がり具合(曲率みたいなもの)がでる。便宜上長さを100倍してから割る。したがって、106.45/3=35.48となる。
これが高いとVと判定され、低いとUと判定される。なお、長さは前処理後の長さ系列(閾値20)を使う。ここで、長さは補間した累積角特徴関数では1.00−2x0.30=0.4なのであるが、前処理で先端部の長さが明確に出る時はこれを使用すると良い。しかし一般的には、0.4なのでこの価はサンプルに共通である。それで、先端部の巻き角だけで、先端の曲がりを評価できるが、中間長の和を取り、上述の如く曲率を求めた方が効果的である。Uの場合の例、同様な計算を行う。この場合先端部の長さは前処理後の長さ系列(閾値20)から、0.09+0.12+0.11+0.09=0.41となる。Vの先端部の曲率;35.48,角;(106.45)とUのそれらの価、曲率:2.16、角;(88.68)を比較して,先端部のとんがりが明確に数値として表現されている。
【0083】
例:Vの場合.先端部の曲率(角);35.48,(106.45)
長さ系列:0.41 0.10 0.03 0.10 0.37
巻き角系列:+124.98
前処理後の長さ系列(閾値20):0.51 0.03 0.47
パラメータ:λ長度比(0.30)=0.59 (11.63)(6.90)
先端部の曲率(0.30)=35.48(先端部の巻き角=106.45)
例;Uの場合.先端部の曲率(角);2.1688.68)
長さ系列:0.27 0.09 0.12 0.11 0.09 0.32
巻き角系列:−172.23
前処理後の長さ系列(閾値20):0.27 0.09 0.12 0.11 0.09 0.32
パラメータ:λ長度比(0.30)=0.84 (45.49)(38.06)
先端部の曲率(0.30)=2.16(先端部の巻き角=88.68)
【0084】
一般的には、この累積角特徴関数は、単調関数であり、その意味では他の関数と比較し非常に簡単である。2次元図形の一部が、具体的には巻き角系列での項数が1個である場合、階層化されているものの、単なる単調関数として表現されると言うことは非常に興味深い。この単調関数が線形であれば、形は巻き角に応じて、「弧」、「半円」、「円」と連続的に巻き角360度の「円」に近づく。ユニット関数に近く、立ち上がりの点が中心近くなら、また巻き角に応じて開いた「V」から、180度で楔形となる。また中心からずれるに従い、チェック型になっていく。また中心付近でその立ち上がりがゆるくなるに従い、V型からU型になる。中心からずれると、J型になる。このように図形モデルを数学的に構成するのもよい。また、線形補間を、多項式近似すると、たとえば、3次のスプライン関数で、近似すれば、2次までの微分可能となり、累積角特徴関数をさらに解析することが可能である。例えば鈍角を持った三角形は、2個の2次微分のピークを持つ。曲率も計算できて正確で微妙な特性の計算も可能となる。このような考えは抽象図形地図の形成にも役に立つ。巻き角系列での項数が2個の場合、累積角特徴関数の空間は、2個の累積角特徴関数の積区間となる。以下同様である。かくして、複雑な図形が、この単調関数の組み合わせで、簡潔に表現される。
【0085】
次に巻き角系列の各項の巻き角領域内で、折れ線角系列の、隣り合う折れ線角の変化のパターンまたは累積角特徴関数を利用し、対象文字を複数の区分に分解して、その区分または境界点を認識対象文字との比較に利用する手法について説明する。
まず具体的事例として、「1」→「」→「」→「0」→「6」の変化を考える。巻き角で定量的に表現すれば、「1=0」→「L=90」→「U=180」→「0=270」→「6=360」である。しかし、これでは内部構造は反映されない。一方、これらの内部構造はシンボルにより「1=|」→「L=」→「U=∪」→「0=⊂+∪+⊃」→「6=⊂+∪+⊃+∩」と表現することが可能である。
【0086】
図33の「6」を例に取る。まず隣り合う折れ線の角変化により、境界点(凹極点または凸極点)を検出する(点3、点6、点8が該当)。始点、終点、そしてこれら境界点により、図33の「6」は以下の区分に分割される。
始点1から点6に至る部分: 「⊂型」部分
点3から点8に至る部分: 「∪型」部分
点6から点10に至る部分: 「⊃型」部分
点8から終点12に至る部分: 「∩型」部分
このように対象文字を分割し、各々の区分をシンボル表現と対応させることによって、「1」、「」、「」、「0」、「6」の識別が可能となる。
【0087】
なお、上記例における境界点は、通常のX−Y座標系での所謂微分凹凸極点と一致しているが、より一般的には、回転を考慮する必要がある。例えば図34Aのように、通常のX−Y座標系では点1は微分凹極点であるが、これを回転させた図34Bの形状とすると、同じ点1が凹極点ではなくなる。このような回転に対処するためには、累積角特徴関数を使い、一般的に境界点を求める必要がある。例えば型ならばα度長(90)に近い頂点、∪型ならα度長(180)に近い頂点を境界点として検出し、分割を行う。この事情は中点を一般的に求めることと対応している。
【0088】
次に各画の曲線を巻き角系列に応じて、分割し、分割された各曲線部分において局所的特徴、準局所的特徴をもとめ、対象を階層的かつ分割表現する手法について説明する。
具体的な事例として、まず「m」を考える。図35における「m」の巻き角数は6個になる。これをシンボル的に表現すると∩+∨+∩+∨+∩+Lである。巻き角系列の各巻き角領域に左から項番号を付与し、各巻き角領域における極点特徴(凹極点または凸極点)を求め、それらに凸1(最初の巻き角に属する凸極点)や凹2(2番目の巻き角に属する凹極点)のように番号を付与する。これら凹凸極点、始点、終点間の位置関係を「頂点配置」と呼ぶこととする。この頂点配置により、対象文字の骨格とも言える「枠組み構造」が規定される。
【0089】
このような頂点配置の特徴により、「m」の枠組み構造が規定される。この枠組み構造の特徴の違いは、図36Aの「h」と図36Bの「」の比較を見れば一目瞭然であろう。あるいは、対象文字の高さだけではなく、横幅にも注目し、各凸点間、各凹点間の位置関係を規定したり、縦横の比を規定したりする方法もある。
【0090】
また、例えば、図37Aのような「6」と図37Bのような「0」、即ち、両方とも同じ⊂+∪+⊃+∩構造である場合にも、枠組み構造を利用して効率的に両者を識別できる。この両者は境界点(点1と点2)間の距離(d1、d2)を見ることによって「6」と「0」を識別が可能となる。このような場合でも累積角特徴関数を用いた一般的な境界点(極点)の検出方法を用いることによって、図37Cのような「6」と図37Dのような「0」、ように任意に回転された対象にも適用できる。
【0091】
また、分割された各曲線部分における局所的特徴求め、対象を階層的かつ分割的に表現する例として、上記「m」の巻き角領域2と巻き角領域4における最小△値を挙げる。これは「m」の∩∩の間に存在する鋭い楔形の尖鋭さを定量的に示す。最小△(巻き角領域2)値、最小△(巻き角領域4)値が鉤になる特徴である。なお「m」の軸での鏡映が「w」であり、枠組み構造は同様であるが、最小△(巻き角領域2)値、最小△(巻き角領域4)値は解消し、もはや鍵になる特徴ではなくなり、巻き角領域3の最大△値が鍵になる特徴となる。
【0092】
このように若干複雑な形も巻き角系列で分割され、それらの局所的、準局所的な特徴により対象は階層的かつ分割表現される。また、先に述べた如く、m:∩∨∩∨∩Lの様ないわゆる準位相的シンボル表現が、連続的に表現され、w:∪∧∪∧∪Гのような「w」の1変形に連続的に変化する表現を持つことができる。
【0093】
次に、回転の問題について説明する。本来本方式は回転不変であるが、正規に書かれた文字は、回転に不変ではない。それ故、文字の軸になる仮想的線分の角を規定する必要がある。今までに述べてきた、例えば加重平均角は、この役割を演じている。この角範囲を広く取ることにより、±45度程度の回転の変動に対して対象の認識を可能に出来る。
【0094】
次に、図20で示した抽象図形地図について説明する。
これは対象を特定の文字集合、例えば、アラビア数字、英大文字、だけを想定するのではなく、文字、図形一般を全体として捕らえ、誤読の無い、読み取りシステムを構築するために考えられたものである。具体的には図形一般のパターンを巻き角により階層化し、各階層で上に述べた特徴により、分割する。かくして各階層で隙間無くあらゆる意味のある、または特徴のある形を網羅して列挙する。隙間がないので、異常な形も含まれる。ここでの図形は回転、大きさ、に無関係である。したがって文字からすれば、メタ的な要素図形となる。
【0095】
この抽象図形地図の全体の構造は図20に示されているような典型的な階層構造である木構造となる。この様にできるのは、上に述べたように特徴が非常に単純であるからである。最初はルート レベル−0.で、次にレベル−1において、巻き角系列項数で分類されるが、ここでは基礎図形として、一番大きく、基礎となる巻き角系列項数が1の場合を詳しく述べる。レベル2では、巻き角範囲で、角ノードを構成している。
ノード,|Θ|<20
ノード20≦|Θ|<50
ノード50≦|Θ|<90
ノード90≦|Θ|<180
ノード180≦|Θ|<270
ノード270≦|Θ|<360
ノード360≦|Θ|,
この部分木で最も単純なのはノード1、|Θ|<20でありこれに入る図形は「直線」である。文字,記号としては,「1」,「一」,「/」,「\」がある。ここでは回転不変なのでこれらは区別されず,「直線」と名づけられた メタ要素図形に代表される。この階層は0階層とする。「−直線」と表示する。
次の階層はノード2,20≦|Θ|<50である。以下この分類については図20に詳しく
説明されている。この様にこの階層1では、「1−弱L”」,「1−弱L’」,「1−弱<”」,「1−弱<’」,「1−弱弧」,「1−弱弧’」,「1−弱弧’」の個の要素図形が含まれる。そして、それ以外の図形はない。これで、全てである。
この階層では実際の文字、記号に相当するものが少ないが、例えば、「1−弱L”」は
打ちこみのある「一」である。また、これらは、先にのべた、「1」,「一」,「/」,「\」の代わりに実際上頻々に現れる。
【0096】
以上のようにして、各階層を作成して行くのであるが、それらの結果としての図形が図21に示されている。図21は、階層0、階層1、階層2、階層3、階層4の例を示してある。各階層の図形は、この例に限定されるものではない。
【0097】
次に、複数画の位置関係について説明する。
今までは画の文字のみ取り扱って来たが、こでは、複数画からなる文字を考察する。
ここで、抽象図形の概念を利用すると、以下の例にある如く、複数画の文字が、非常に簡単に対象図形を介して認識できる。しかも、完全回転不変である。抽象図形は例えば700度以下の、巻き角で、殆ど全ての変形に対し答えを出すように構成される。特に”弧”が有効である。弱い弧は、直線として、扱うことができる。一方巻き角が大きくなると、これは独立性が高いので、関係はより簡単になる。例えば、2画からなる対象図形が”直線”と”3”として、それぞれ認識されれば、この結合は一意的に「B」である。勿論、「D」、「P」の様に、細かい位置関係が必要になる場合があるから、それは求められなければならない。それについては下でのべる。此処では、上に述べたことを、例を使い説明する。
以下の例は、図22に示すように、垂直線を曲げて書いた、「H」で、弧、直線、弧と認識されている。これだけから既に「H」であることが、推定できる。位置関係は、この認識結果に基づいて行うと非常に効率が良い。
1:Result:[弱弧]
2:Result:[直線]
3:Result:[強弧]
これで、画の運筆情報から、例えば普通の書き方で1画、3画は上から下に略垂直に書かれ、2画は右から左に書かれたことが分かる。そこで、これらの各画それぞれの独立した情報だけで書かれた文字は「H」であることが容易に推定できる。そこで、次の段階は、定量的なこれら3画の位置関係を知ることである。
【0098】
そこで、考えられたのが、一般交差点の概念と、その導出法である。
まず、その考え方について、説明する。図22で、文字「H」が示されているが、この水平線は、この場合この水平線の両側にある、垂直線と交差/接触していない。しかし、この3画は明らかに、文字「H」を構成する。それは、この水平線の延長上に、しかも近い距離で垂直線が存在するからである。このような場合、端点と垂直線との距離は良く知られた解析幾何の公式で求めることができる。しかし、煩雑である。これは水平線の延長として交点として求めるのがスマートで、統一性がある。同様に、図23では、「ロ」の一部に相当する形状が示されているが、右側の垂直線と水平線とのそれぞれを延長しない限り、交差/接触しない。参考までに示した図24では、直交する2画が示されており、これから、人間は仮の隅の角の点をイメージする。ここでは、この図24のように実際に交差した点を、実交差点と称する。
【0099】
図22や図23の例でも仮想的な交差点が考えられ、これらを此処では一般交差点と呼ぶ。一般交差点の内で、実線上にない図23のような交差点を虚の交差点と呼び、図22の如く1画の実線上にある場合を、準虚交差点とよぶ。つぎにこれらの一般交差点を求める具体的方法を述べる。
図22を参照し説明する。線分1−2と、線分3−4の準虚交差点を求める。そこで、点1、点2の位置ベクトルを1,2とし、点3,点4の位置ベクトルを3,4とする。線分1,2と線分3, 0〜1の値をとるパラメータをλ,λ’とすると、それぞれ、(1−λ)1+λ2と、(1−λ’)3+λ’4と表せる。この両式を連立させる。すなわち(1−λ)1+λ2=(1−λ’)3+λ’4である。
0〜1の値をとるパラメータをλ,λ’が求まれば、交差点が求まることになる。これを実際に解くには、例えば1を(x1,y)T((x1,y)Tは(x1,y)の転置)と表現し、軸,軸ごとに式を立てれば、λ,λ’を未知数とする、連立方程式が立てられ、λ,λ’を求めることができる。
【0100】
具体的には
−λ(x−x)+λ’(x−x)=x−x
−λ(y−y)+λ’(y−y)=y−y
である。線分P1を(x,y)TP2を(x,y)Tとすると、具体的には
(x,y)T=(0,4)T,(x,y)T=(4,4)T,線分3−4P3
(x,y)T=(2,3)T P4を(x,y)T=(2,0)Tである。
x1=,x2=,x3=,xy1y2y3y4
これらを、上の式に代入することで、λ=0.5,λ’=−0.33,が得られる。
ここで、λ’は負である。これは、線分3−4の方向と逆方向、4−>3の方向に線分の約33が、延長した所で、両線分は交差することを意味している。
【0101】
例えば、
「H」(準虚交差点の例:図22)
位置関係
1−2;0.50,−0.11
1−3;−3.26,−3.28
2−3;1.34,0.49
この第行はストローク1がストローク2と準虚交差点で、交差していてこの点は、ストロークの丁度中間点,0.50にあり、ストローク2の始端から、0.11はなれている、ことを示している。なおここで、長さの数値は、それぞれのストローク長で、正規化されている。第2行はストローク1ストローク3が略並行でこの交差点は虚の交差点であり、文字の上部のかなり離れた所にあることを示している。第3行はストローク2がストローク3と準虚交差点で、交差していてこの点はストローク2の終端から0.34、右にありストローク3の略中間点、0.49にあることを示している。
【0102】
「口」(虚交差点の例:図23)
位置関係
1−2;−0.19,−0.27
これはストロークがストロークと虚の交差点で、交差していることを示している。
ストロークとストロークはそれらの始点上を線に沿って延長すると、それぞれ0.19,0.27離れた点で交差する。即ち、これは、仮想的コーナー点と見なせる。
【0103】
「T」(実交差点の例:図24)
1−2; 0.50, 0.14
ストローク2は、良くあることであるが、ストローク1上丁度中心を、0.14分だけ突き出していることを示している。これが図27に示されている。このように複数画の位置関係が、上記の一般交差点を求めることにより、コンパクトに、定量的に得られる。したがって、先に述べた、複数画の文字が容易に認識できる。
【0104】
なお図25に示す如く、交差すると想定される折れ線2個を簡単には選べない場合がある。このような時は、「H」の例えば画(ストローク)1の折れ線集合、画3の折れ線集合とで、機械的に連立方程式を構成し解けば、この図の場合、7次になるが、実の交差点を与える折れ線の対が機械的に求まる。もっとも効率を考え、例えば画1の両端の折れ線が短ければ、ひとまずそれらを除外して、また画3の終端の折れ線を除外しても良い。こうすれば、次の連立方程式となり、簡単化される。なお準虚交差点の場合でも、λ値から一番近い折れ線を求めることができる。図26には、交差点が多数並んでいる場合を示した。このように、画の位置関係が定量的にもとまり、画数が大になる漢字などには、非常に有効である。
【0105】
次に各学習データに基づき、巻き角系の各部分の各特徴から構成される部分的小次元の特徴空間上で、識別平面を構成し、特に形の近い文字間の識別を行う手法について説明する。
具体的な事例として、「」−「」問題と同じく微妙な問題と知られている、「2」−「Z」問題がある。実はこの問題は、例えば3次のスプライン関数などを使う高度な方法が知られているが、本手法を用いることにより、非常に簡単に解決することが可能である。
第一に「2」、「」とも巻き角数が3であるが、重要なのは第1の巻き角の部分である。それ故、第1の巻き角だけでかなり両者は分離される。これを実際に収集したサンプルデータで見ると以下の統計量が得られる。
特徴量 平均 分散 標準偏差 サンプル数
Θ():2 209.406 1227.281 35.033 100
Θ():Z 126.961 74.530 8.633 111
注:「Θ()」は最初の巻き角。
それで,以下の単純な距離を定義する。
d(Θ(),[2])=|Θ()−Θ()[2]の平均|
d(Θ(),[])=|Θ()−Θ()[]の平均|
この定義による各データの分布を示したのが図30である。d(Θ(),[])の軸で見ると、距離20で「Z」の全てのデータはこの距離以下であるが、「2」のデータが3個「」に入る。全体的に見て、距離の閾値35程度が、両者の分布からみて妥当のように見える。しかし、このように設定するとなお個の「2」のデータが入ってくる。
【0106】
そこで、巻き角領域1の範囲で、他の特徴を見る。例えば、ある折れ線角度範囲に入る折れ線の長さの平均を見てみる。なお平均線長[−60,60]は角範囲−60度から60度の範囲に入る折れ線の平均長である(サンプル、サンプル数とも上記と同じものを利用)。
特徴量 平均 分散 標準偏差
「2」の平均線長[−60,60] 0.112 0.001 0.029
「2」の平均線長[−60,−145] 0.197 0.002 0.043
「z」の平均線長[−60,60] 0.255 0.002 0.040
「z」の平均線長[−60,−145] 0.415 0.009 0.092
それで,以下の単純な距離を定義する。
D(AveLeng1,[2])=|平均線長[−60,60]−平均線長[−60,60]の[の平均]|
D(AveLeng2,[2])=|平均線長[−60,−145]−平均線長[−60,60]の[の平均]|
この定義による次元距離分布を見ると、図31のごとくなり、「2」の全てのデータは左下の原点(0,0)、(0.1,0)、(0.0.15)、(0.1,0.15)の矩形内(太線の表示内)に存在し、一つの「」のデータも含まない。しかも全体的には「2」と「Z」の集団はお互いに離れている。
このように、各学習データから小次元(2とZのケースでは2次元)の特徴空間で、微妙な形の区別ができる。部分的小次元を構成する各特徴は、上記平均線長に限られたことではなく、比較する文字・図形等の特徴に応じて、様々特徴が採用されうる。
【0107】
ここで、2−Zの識別と関連して、評価の問題について説明する。「z」はしばしば、図32のように鉤つきで、書かれる。このようなデータは、実は一気に巻き角が増大し、上のスキームで両者は区別できなくなる。しかし、たとえば先端の鉤は、独特の表現として、すなわち、先端部の大きな△値、短い先端長として特定できる。これを、先に述べた如く、ノイズとして前処理してしまうことは容易であるが、それよりも、一般にこのような飾りがあることを認める方式をとる。そして、その表現を同定した後は、その飾り部分を除き、先に述べたような識別を行うことができる。これはまさに形の評価と認識が一体になっていることの好例である。
これが出来るのは、構造解析の利点であり、またこの表現法の強みでもある。
【0108】
なお、本発明の手書き文字認識は、実施の形態の説明の最初でも説明したように、図1に示した処理構成に限定されるものではなく、実質的に同様の手書き文字認識が行われる構成であれば、種々の装置やシステムの構成で、認識処理を行うことが可能である。例えば、本発明の手書き文字認識をプログラム(ソフトウェア)化して、汎用のパーソナルコンピュータ装置に実装させるようにしてもよい。手書き文字認識プログラムは、各種記憶媒体に記憶させて、配付することが可能である。
【0109】
また、図1の例では、ペン側で筆跡の検出を行う例としたが、ペンで文字を書くパネル側で、筆跡の検出を行って、その検出に基づいて文字認識を行うようにしてもよい。
ここではオンラインの文字を対象としたが、適当な細線化か、輪郭追跡などで、オフラインの文字に対しても、文字認識を行うようにしてもよい。
さらに、上述した実施の形態では、主として数字やアルファベットの認識を行う場合を例としたが、本発明の手書き文字認識は、基本的にどのような言語の文字の認識にも適用可能である。
【図面の簡単な説明】
【0110】
【図面の簡単な説明】
【図1】 図1は、本発明の一実施の形態によるシステム例を示す構成図である。
【図2】 本発明の一実施の形態による文字認識全体の処理例を示すフローチャートである。
【図3】 本発明の一実施の形態による特徴点検出処理例を示すフローチャートである。
【図4】 本発明の一実施の形態による識別処理例を示すフローチャートである。
【図5】 本発明の一実施の形態による各画と折れ線近似の例を示す説明図である。
【図6】 本発明の一実施の形態による折れ線角を示す説明図である。
【図7】 本発明の一実施の形態による折れ線角と外角を示す説明図である。
【図8】 本発明の一実施の形態による巻き角を示す説明図である。
【図9】 本発明の一実施の形態による同一巻き角内の分割を示す説明図である。
【図10】 本発明の一実施の形態による長さ系列を示す説明図である。
【図11】 本発明の一実施の形態による巻き角の例を示す説明図である。
【図12】 本発明の一実施の形態による巻き角のプラス・マイナス分解の例(2の例)を示す説明図である。
【図13】 本発明の一実施の形態による巻き角のプラス・マイナス分解の例(7の例)を示す説明図である。
【図14】 本発明の一実施の形態による巻き角内での始端、終端、中間を示す説明図である。
【図15】 本発明の一実施の形態による両端角差を示す説明図である。
【図16】 本発明の一実施の形態によるフィルターを示す説明図である。
【図17】 本発明の一実施の形態による累積角特徴関数の例(Uの例)を示す説明図である。
【図18】 本発明の一実施の形態による累積角特徴関数の例(Jの例)を示す説明図である。
【図19】 本発明の一実施の形態による先端部分の曲率の例を示す説明図である。
【図20】 本発明の一実施の形態による抽象図形地図の例を示す説明図である。
【図21】 本発明の一実施の形態による巻角系列の例を示す説明図である。
【図22】 本発明の一実施の形態による準虚交差点の例を示す説明図である。
【図23】 本発明の一実施の形態による虚の交差点の例を示す説明図である。
【図24】 本発明の一実施の形態による実交差点の例を示す説明図である。
【図25】 本発明の一実施の形態による交差する折れ線の例を示す説明図である。
【図26】 本発明の一実施の形態による準虚交差点の例を示す説明図である。
【図27】 本発明の一実施の形態による加重平均角の算出例を示す説明図である。
【図28】 本発明の一実施の形態による中点検出例を示す説明図である。
【図29】 本発明の一実施の形態による中点検出例を示す説明図である。
【図30】 本発明の一実施の形態による距離と頻度の例を示す説明図である。
【図31】 本発明の一実施の形態による2次元距離分布の例を示す説明図である。
【図32】 手書き文字Zの例を示す説明図である。
【図33】 本発明の一実施の形態による分割・極点の説明に供する説明図である。
【図34】 本発明の一実施の形態による境界点の説明に供する説明図である。
【図35】 本発明の一実施の形態による枠組み構造の説明に供する説明図である。
【図36】 本発明の一実施の形態による枠組み構造の説明に供する説明図である。
【図37】 本発明の一実施の形態による枠組み構造の説明に供する説明図である。
【符号の説明】
【0111】
1・・・紙
1a・・・運筆
2・・・ペン
3・・・入力処理部
4・・・折れ線近似部
5・・・前処理部
6・・・特徴抽出部
7・・・識別部
8・・・識別結果出力部

Claims (14)

  1. オンラインの手書き文字を認識する手書き文字認識方法において、
    入力された手書き文字を、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行い、
    前記折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求め、
    得られた折れ線の角頂点の外角系列を求め、
    前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外角の和を、巻き角系列とし、
    前記求められた各系列による大局的な特徴と、巻き角系列に応じて分割された各曲線部分における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と、予め用意された認識対象文字のテンプレイトとの比較で、文字認識を行うことを特徴とする
    文字認識方法。
  2. 請求の範囲第1項記載の文字認識方法において、
    前記巻き角系列で構成される曲線のループの前後で各項を前回転角、後回転角に分割して、認識処理を行うことを特徴とする
    文字認識方法。
  3. 請求の範囲第1項記載の文字認識方法において、
    前記認識対象文字のテンプレイトは、学習データから、各系列要素、各特徴の上限、下限の範囲を決めたデータであることを特徴とする
    文字認識方法。
  4. 請求の範囲第1項記載の文字認識方法において、
    前記折れ線近似表現として、折れ線の長さを要素とする系列と、その全長で正規化した系列と、始点,頂点,終点を要素とする座標系列を用い、端長比,中間長,中間最大長,長さの要素の分布,始点終点間距離の特徴を求めることを特徴とする
    文字認識方法。
  5. 請求の範囲第1項記載の文字認識方法において、
    ある定められた区間内の折れ線の加重平均角、外角系列の特徴又は境界項の値、始点終点間距離、始点・終点・特徴又は境界点間の距離の特徴を求めることを特徴とする
    文字認識方法。
  6. 請求の範囲第1項記載の文字認識方法において、
    各学習データから、巻き角系列の各項の巻き角領域内、巻き角領域間の特徴から構成される部分的多次元の特徴空間上で、識別平面を構成し、文字間の識別を行うことを特徴とする
    文字認識方法。
  7. 請求の範囲第1項記載の文字認識方法において、
    巻き角系列の各要素の外角系列と、それに相当する長さ系列から、長さ系列を一方の軸に取り、
    他方の軸に外角系列の累積角をとり、線形補間を行うことによりグラフを構成し、その要素の始点からの距離の関数として、巻き角を、またその逆として、巻き角の関数として、距離を連続的に求める累積角特徴関数を構成して、大局的な曲がり具合の特徴を求めることを特徴とする
    文字認識方法。
  8. 請求の範囲第1項記載の文字認識方法において、
    複数個の画間の位置関係を、各画の代表折れ線または折れ線集合の延長線も含めた直線群同志の交点を求めることにより、定量的に求めることを特徴とする
    文字認識方法。
  9. 請求の範囲第4項記載の文字認識方法において、
    前記正規化した系列の内で、所定長以下の折線は無視することを特徴とする
    文字認識方法。
  10. 請求の範囲第1項又は第7項記載の文字認識方法において、
    巻き角系列の各項の巻き角領域内で、前記折れ線角系列の、隣り合う折れ線角の変化のパターンまたは累積角特徴関数を利用し、対象文字を複数の区分に分解して、その区分または境界点の特徴を認識対象文字との比較に利用することを特徴とする
    文字認識方法。
  11. 請求の範囲第1項記載の文字認識方法において、
    前記巻き角系列の各項で構成される曲線の巻き角の半分に対応する曲線上の点を中点として求め、その前後で各項内の曲線を分割し、各分割折れ線群から抽出される微妙な曲線の特徴を求め、認識精度を上げることを特徴とする文字認識方法。
  12. オンラインの手書き文字を認識する手書き文字認識システムにおいて、
    手書き文字がオンラインで入力される入力手段と、
    前記入力手段で入力されたデータを、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行う折線近似手段と、
    前記折線近似手段で折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求め、前記折れ線の角頂点の外角系列を求め、前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外角の和を、巻き角系列とする処理手段と、
    前記処理手段で求められた各系列による大局的な特徴と、巻き角系列の各項の巻き角領域内における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と、予め用意された認識対象文字のテンプレイトとを比較して文字認識を行う認識手段とを備えたことを特徴とする
    文字認識システム。
  13. オンラインの手書き文字を認識する手書き文字認識プログラムにおいて、
    入力された手書き文字を、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行うステップと、
    前記折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求めるステップと、
    得られた折れ線の角頂点の外角系列を求めるステップと、
    前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外角の和を、巻き角系列とするステップと、
    前記求められた各系列による大局的な特徴と、巻き角系列の各項の巻き角領域内における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と、予め用意された認識対象文字のテンプレイトとを比較して、文字認識を行うステップとを備えたことを特徴とする
    文字認識プログラム。
  14. 記憶されたプログラムを所定の演算処理装置に実装させることで、オンラインの手書き文字認識が可能な記憶媒体において、
    記憶媒体に記憶されたプログラムとして、
    入力された手書き文字を、各画毎にパラメータ表現でとらえ、各画毎に折線近似を行うステップと、
    前記折線近似された各折れ線を、始点から終点にいたるベクトルとして、基準となる軸と前記各折れ線とのなす角度を折れ線角系列として求めるステップと、
    得られた折れ線の角頂点の外角系列を求めるステップと、
    前記外角系列のプラス又はマイナスの同じ符号が連続する同符号の外角の和を、巻き角系列とするステップと、
    前記求められた各系列による大局的な特徴と、巻き角系列の各項の巻き角領域内における局所的特徴又は準局所的特徴を、階層的かつ分割的に抽出し、この抽出結果と、予め用意された認識対象文字のテンプレイトとを比較して、文字認識を行うステップとを備えたことを特徴とする
    記憶媒体。
JP2006525406A 2005-02-15 2006-02-15 手書き文字認識方法、手書き文字認識システム、手書き文字認識プログラム及び記録媒体 Expired - Fee Related JP4092371B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005038224 2005-02-15
JP2005038224 2005-02-15
PCT/JP2006/303104 WO2006088222A1 (ja) 2005-02-15 2006-02-15 手書き文字認識方法、手書き文字認識システム、手書き文字認識プログラム及び記憶媒体

Publications (2)

Publication Number Publication Date
JP4092371B2 JP4092371B2 (ja) 2008-05-28
JPWO2006088222A1 true JPWO2006088222A1 (ja) 2008-07-10

Family

ID=36916617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006525406A Expired - Fee Related JP4092371B2 (ja) 2005-02-15 2006-02-15 手書き文字認識方法、手書き文字認識システム、手書き文字認識プログラム及び記録媒体

Country Status (6)

Country Link
US (1) US8290274B2 (ja)
EP (1) EP1852806A1 (ja)
JP (1) JP4092371B2 (ja)
KR (1) KR20070112454A (ja)
CN (1) CN101160592B (ja)
WO (1) WO2006088222A1 (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8050500B1 (en) * 2006-07-06 2011-11-01 Senapps, LLC Recognition method and system
JP5352757B2 (ja) * 2006-08-14 2013-11-27 有限会社Kiteイメージ・テクノロジーズ 手書き文字認識方法、手書き文字認識システム、手書き文字認識プログラム及び記憶媒体
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
KR20100124426A (ko) * 2009-05-19 2010-11-29 삼성전자주식회사 아날로그 입력 가능한 컴퓨팅 기기에서 손 글씨 저장 장치 및 방법
JP5233839B2 (ja) * 2009-05-20 2013-07-10 株式会社リコー 情報抽出装置、情報抽出方法、情報抽出プログラム、及び記憶媒体
US9448706B2 (en) * 2009-07-29 2016-09-20 Synopsys, Inc. Loop removal in electronic design automation
WO2011030581A1 (ja) 2009-09-09 2011-03-17 シャープ株式会社 ジェスチャー判定装置およびその方法
KR101085699B1 (ko) * 2010-02-17 2011-11-23 고려대학교 산학협력단 문자 획 너비 계산을 이용한 문자 영역 추출 장치 및 방법
TWI581131B (zh) * 2010-06-15 2017-05-01 陞達科技股份有限公司 分析二維軌跡以產生至少一非線性指標之方法以及使用該方法之觸控模組
US8363947B2 (en) 2010-07-31 2013-01-29 International Business Machines Corporation Handwritten character recognition based on frequency variations in characters
CN102385707A (zh) * 2010-08-30 2012-03-21 阿里巴巴集团控股有限公司 一种数字图像识别的方法、装置及爬虫服务器
US8723819B2 (en) * 2010-09-27 2014-05-13 Sentelic Corporation Method for analyzing two-dimensional track to generate at least one non-linear index and touch control module using the same
US9014477B2 (en) * 2011-10-27 2015-04-21 King Abdulaziz City for Science and Technology (KACST) Method and apparatus for automatically identifying character segments for character recognition
KR101191702B1 (ko) 2011-12-30 2012-10-16 주식회사 한글과컴퓨터 자유선 인식 기반 도형 입력 장치 및 방법
KR101251465B1 (ko) * 2012-01-10 2013-04-05 주식회사 한글과컴퓨터 자유선 입력 보정 장치 및 방법
WO2013139032A1 (en) * 2012-03-23 2013-09-26 Microsoft Corporation Rotation-free recognition of handwritten characters
BR112015018905B1 (pt) 2013-02-07 2022-02-22 Apple Inc Método de operação de recurso de ativação por voz, mídia de armazenamento legível por computador e dispositivo eletrônico
CN105579319B (zh) * 2013-03-12 2018-02-16 罗伯特·博世有限公司 用于识别车载信息系统中的手写手势的系统和方法
JP6125333B2 (ja) * 2013-05-31 2017-05-10 株式会社東芝 検索装置、方法及びプログラム
US9851880B2 (en) * 2014-03-14 2017-12-26 Adobe Systems Incorporated Image rotation based on touch gestures
WO2015141260A1 (ja) * 2014-03-17 2015-09-24 株式会社河合楽器製作所 手書き音楽記号認識装置およびプログラム
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US20160110599A1 (en) * 2014-10-20 2016-04-21 Lexmark International Technology, SA Document Classification with Prominent Objects
US9430704B2 (en) * 2015-01-16 2016-08-30 Sony Corporation Image processing system with layout analysis and method of operation thereof
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
WO2016168591A1 (en) * 2015-04-16 2016-10-20 Robert Bosch Gmbh System and method for automated sign language recognition
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10318128B2 (en) * 2015-09-30 2019-06-11 Adobe Inc. Image manipulation based on touch gestures
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
CN105809160B (zh) * 2016-03-03 2019-04-05 成都康赛信息技术有限公司 一种基于交点数判定手写数字的方法
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10095938B2 (en) 2016-12-30 2018-10-09 MorphoTrak, LLC Multi-stage tattoo matching techniques
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US10671844B2 (en) * 2017-06-02 2020-06-02 Apple Inc. Handwritten text recognition
US10679092B2 (en) * 2017-07-06 2020-06-09 MorphoTrak, LLC Fast curve matching for tattoo recognition and identification
JP6542407B1 (ja) * 2018-02-16 2019-07-10 株式会社東芝 読取システム、読取方法、プログラム、及び記憶媒体
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
CN109101973B (zh) * 2018-08-06 2019-12-10 掌阅科技股份有限公司 文字识别方法、电子设备、存储介质
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
CN109978903B (zh) * 2019-03-13 2021-04-16 浙江大华技术股份有限公司 一种标识点识别方法、装置、电子设备及存储介质
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
CN110516655B (zh) * 2019-09-04 2023-04-18 中国地质调查局西安地质调查中心 一种汉字图像笔画处理方法及系统
KR102149105B1 (ko) * 2019-09-18 2020-08-27 세종대학교산학협력단 혼합현실 기반 3차원 스케치 장치 및 방법
US11270104B2 (en) * 2020-01-13 2022-03-08 Apple Inc. Spatial and temporal sequence-to-sequence modeling for handwriting recognition
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11372518B2 (en) * 2020-06-03 2022-06-28 Capital One Services, Llc Systems and methods for augmented or mixed reality writing
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55138172A (en) 1979-04-17 1980-10-28 Fujitsu Ltd Online character feature extractor
JPS60221887A (ja) 1984-04-18 1985-11-06 Oki Electric Ind Co Ltd オンライン文字認識処理装置
JPS6282486A (ja) * 1985-10-08 1987-04-15 Hitachi Ltd オンライン手書き図形認識装置
JP3192468B2 (ja) * 1992-04-16 2001-07-30 パイオニア株式会社 オンライン手書き文字認識装置及び認識方法
JP2000163514A (ja) 1998-09-25 2000-06-16 Sanyo Electric Co Ltd 文字認識方法、文字認識装置および記憶媒体
DE10337831A1 (de) * 2003-08-18 2005-03-24 Sick Ag Verfahren zur optischen Erkennung von alphanumerischen Zeichen

Also Published As

Publication number Publication date
US20090136136A1 (en) 2009-05-28
JP4092371B2 (ja) 2008-05-28
CN101160592A (zh) 2008-04-09
EP1852806A1 (en) 2007-11-07
WO2006088222A1 (ja) 2006-08-24
US8290274B2 (en) 2012-10-16
CN101160592B (zh) 2010-05-19
KR20070112454A (ko) 2007-11-26

Similar Documents

Publication Publication Date Title
JP4092371B2 (ja) 手書き文字認識方法、手書き文字認識システム、手書き文字認識プログラム及び記録媒体
Doermann et al. Applying algebraic and differential invariants for logo recognition
Connell et al. Template-based online character recognition
US8391613B2 (en) Statistical online character recognition
EP1229488A2 (en) Information processing method and apparatus
Nel et al. Estimating the pen trajectories of static signatures using hidden Markov models
US20100104194A1 (en) Image processing apparatus, electronic medium, and image processing method
Dinh et al. Recovery of drawing order from multi-stroke English handwritten images based on graph models and ambiguous zone analysis
Reddy et al. Assamese online handwritten digit recognition system using hidden Markov models
CN110147785B (zh) 图像识别方法、相关装置和设备
Viard-Gaudin et al. Recognition-directed recovering of temporal information from handwriting images
JP5352757B2 (ja) 手書き文字認識方法、手書き文字認識システム、手書き文字認識プログラム及び記憶媒体
CN110737364B (zh) 一种安卓系统下触摸书写加速的控制方法
Teja et al. A ballistic stroke representation of online handwriting for recognition
JPH08180135A (ja) 図形認識装置及び方法
JP3977477B2 (ja) 手書き文字認識のための筆順処理方法及び手書き文字認識装置
JP3977473B2 (ja) 手書き文字認識方法及び手書き文字認識装置
JPH0729002A (ja) 手書き図形認識装置
JP4525526B2 (ja) パターンマッチング方法及び装置
JPH05225396A (ja) 手書き文字認識装置
Bulugu et al. Scale Invariant static hand-postures detection using Extended Higher-order Local Autocorrelation features
EP0377129A2 (en) Fast spatial segmenter for handwritten characters
Lavy et al. Virtual Shape Recognition using Leap Motion
JP3221488B2 (ja) 検証機能付きオンライン文字認識装置
JP2633523B2 (ja) 手書き画入力装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071016

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4092371

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120314

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120314

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130314

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140314

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060926

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070109

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20070110

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees