JPH02219189A - Method for making lines constituting picture image finer and said image more sharply outlined - Google Patents

Method for making lines constituting picture image finer and said image more sharply outlined

Info

Publication number
JPH02219189A
JPH02219189A JP1324186A JP32418689A JPH02219189A JP H02219189 A JPH02219189 A JP H02219189A JP 1324186 A JP1324186 A JP 1324186A JP 32418689 A JP32418689 A JP 32418689A JP H02219189 A JPH02219189 A JP H02219189A
Authority
JP
Japan
Prior art keywords
image
thinning
pixels
template
templates
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP1324186A
Other languages
Japanese (ja)
Inventor
John S Denker
ジョン スチュアート デンカー
Hans P Graf
ハンス ピーター グラフ
Donnie Henderson
ドニー ヘンダーソン
Richard E Howard
リチャード イー.ハワード
Wayne E Hubbard
ウェイン イー.ハバード
Lawrence D Jackel
ローレンス ディー.ジャッカル
Lawrence O'gorman
ローレンス オゴーマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
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 American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
Publication of JPH02219189A publication Critical patent/JPH02219189A/en
Pending legal-status Critical Current

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/16Image preprocessing
    • G06V30/168Smoothing or thinning of the pattern; Skeletonisation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Character Input (AREA)
  • Character Discrimination (AREA)

Abstract

PURPOSE: To increase the processing speed and to improve the precision by causing plural templates to pass on a picture in parallel and determining whether a selected part of the picture can be deleted from the picture or not without conditions based on comparison between each template and the picture. CONSTITUTION: This method consists of the step, where plural templates larger than a window of 3×3 picture elements are caused to pass on the picture in parallel and the step where it is determined without conditions whether a selected part of the picture can be deleted from the picture or not based on each of templates 120 to 350 and the picture. A set of used templates includes different templates 120 to 350, and each template has a specific arrangement between dark picture elements and light picture elements. Thus, the processing speed is increased and the precision is improved.

Description

【発明の詳細な説明】[Detailed description of the invention]

[産業上の利用分野] 本発明は、パターン分析及びパターン認識に関し、さら
に詳細には、一般的に分類過程で使用可能な画像化され
た記号、文字または2値化画像のストローク(stro
ke)を細線化(thlnnlng)又は骨格化(sk
eletonlzing)するシステムに関する。 本発明は、本明細書と同日に提出された「画像分類方法
、画像白文字の分類方法並びに識別装置、及び画像細線
化方法」という名称の特許出願に関連する。 [従来技術] 所定画像の文字パターンを機械が自動的に認識し、分析
しかつ分類することが望ましいような極めて多種類の適
用例が存在する。コンピュータをベースにした情報の収
集、処理、取扱、記憶及び伝送システムの爆発的な発展
は、これらの要望の実現を可能にする技術を提供してい
る。パターン認識を実施するために汎用コンピュータに
対して精巧なプログラムが作成されてきたが、それらの
成功レベルには限界が見られた。それらの成功は標準印
刷フォントを認識する領域においてはほとんど達成され
ている。 過去に遡る1980年代初期の頃の文字認識技術は認識
されるべき文字の曲線を追跡する方法を用いていた。そ
れは直観的にアピールするものであったが、残念ながら
、文字が歪んでいたり余計なストローク(筆跡)を含ん
だりするときは失敗する例が多かった。 バキス(Bakis)他(IBM)は「手書き数字の機
械認識の実験的研究(An Experimental
 5tudyof’ Machine Recognl
tlon of Hand Pr1nted Nuae
rals)J、IEEEトランザクションズ オン シ
ステムズ サイエンス アンド サイバネティクス(I
EEE Transactlons on 5yste
ss 5cience andCybernetics
)第5SC−48,第2号、1968年7月号、という
題名の論文に手書き数字の認識方法について報告してい
る。記載のシステムにおいて数字は25X32の2値化
マトリツクスに変換される。800ビツトベクトル(2
5X32)の次元数を約100に減少するために特徴(
f’eature)が抽出され、100ビツトベクトル
はいくつかの類別器(categ。 rlzer)に送られる。文字のある柾の「正規化(n
。 rmallzatlon)J もまた行われる。著者ら
は使用した手書きサンプルに応じて8Bないし99.7
%の認識率を報告していく。商業用に適用するための希
望レベルに比較して認識率が低いので、著者らは、「追
跡するコースは、曲線追跡型?#1定を・・・自動特徴
選択及び平行決定論理と組合せるべきであるように思わ
れる。」と結論づけている。 フォローアツプ作業と思われる研究の中で、アールφジ
ー・キャセイ(R,G、Ca5ey)はバキス他の「正
規化」を、対象とする文字の傾斜修正(deskevl
ng)の方法へ拡張した実験を記載している。 「手書き文字のモーメント正規化(Moment No
rmallzation of’ l1andpr1n
t Charactors) J、18Mジャーナル 
オン リサーチ ディベロブメント(IBM  Jou
rnal  or  Re5earch  Devel
opment)、 1970年9月号、548−557
頁参照。キャセイは、バキス他によって示唆されたよう
な曲線追跡と、及びテンプレート(型板)マツチング、
クラスタリング、自己相関、重み付き、相互相関及び領
域分割n個要素を含む決定方法体系と、を組合せた特徴
認識法を使用した。 下記の論文の中で、ネイラー(NaFfor)(同じく
IBM)は、コンピュータ、対話形式グラフィクコンソ
ール及び傾斜正規化を使用したOCR(光学文字認識)
システムに関して報告している。 「文字認識システムの対話形式設計におけるいくつかの
研究(Sose 5tudIes in the In
teractlveDesign or Charac
ter Recognition Systems)J
 IEEE  )ランザクションズ オン コンピュー
ターズ(IEEE Transactlons on 
Camputers) 、1971年9月号、1075
−1080頁。彼のシステムの目的は、抽出されるべき
特徴を識別するための適切な論理を開発することであっ
た。 1981年3月31日付で発行された米国特許明細書筒
4.259.681号には、トッド(Todd)によっ
て他の抽出特徴アプローチ法が記載されている。トッド
の方法によれば、文字の輪郭によって形成される矩形領
域があらかじめ定義されたサイズに正規化され、次に部
分領域に分割される。部分領域の各々内の画像の「黒度
(darkness) Jが評価され、黒度評価の集合
から「特徴ベクトル」が形成される。特徴ベクトルは記
憶さ、れているところの文字を表わす特徴ベクトルのセ
ットと比較され、最もよくマツチしたものが認識された
文字として選択される。 rsPTA:2値化パターンを細線化するための提唱ア
ルゴリズム(SPtA : A Proposed A
1goritb+e for Thlnnlng Bi
nary Patterns)J、I EEEトランザ
クション オン システムズ マン アンド サイバネ
ティクス(IEEE Transactlon onS
ystems、Mans、and Cyberneti
cs) 、第SMC−14巻、第3号、1984年5/
6月号、409−418頁、という題名の論文において
、ナカッシェ(Naccache)他はOCRの問題に
対する他の方法を発表している。この方法は、パターン
は幅の広いストロークで構成されることが多いことと、
及びパターンを骨格化(skoletonlzlng)
することが有利であることと、を提示している。ナカッ
シュ他によって説明されているように、「骨格化はパタ
ーンが細線化(thinning)されて線画が形成さ
れるまでパターンのエツジに沿って黒点を反復削除する
ことによって(すなわち黒点を白点に変えること)から
なる。」初期パターンがその中実軸に細線化されれば理
想的である。この論文は14の異なる既知の骨格化アル
ゴリズムを簡単に説明し、次にそれ自身のアルゴリズム
(SPTA)を提案している。5PTAを含む説明され
ている全ての骨格化アルゴリズムは、画像上に3行×3
列の四角窓(通常3X3窓という)を通過させるという
考え方に基づいている。四角な3×3窓が画像上を通過
するときに、アルゴリズムは、センター画素を包囲する
8つの近傍画素を評価し、その評価に基づいて黒い中心
点を白に変換したりまたはそれを変更することなく黒の
まま残したりする。 パターン分類は、関連分野において最近進歩を示した他
の方面からも大きな支援を受けている。 特に、1987年4月21日付けで発行された米国特許
明細書箱4,060.18ti号に開示されているホッ
プフィールド(Hopr1el’d)による研究によっ
て、高度化並列計算回路網(「神経回路網」)が脚光を
浴びてきた。特にガリクセン(Gulllchsen)
他によって、[神経回路網によるパターン分類:記号認
識のための実質的システム(Pattern C1as
slf’1cat1on by Neural Net
works:An ExperiIIental Sy
stam [’or Icon Recognltlo
n)J、I EEE第1回神経回路国際会議の論文集(
カルディル(Cardil)他線) 、IV−725−
732頁、に報告された研究は、文字分類化法に主題を
集中させている。彼等が説明しているシステムは、ある
種の画像処理は用いいるが特徴抽出は用いていない。そ
の代わりに彼等は、神経回路網が「逆伝搬(back 
propagatton)」訓練法(training
 process)を介して獲得する本来の分類知能に
完全に頼っている。報告されているシステムは一見うま
く働きそうであるが、著者らによって示唆されているよ
うに、研究しなければならない多くの問題が残されてい
る。システムの性能は許容限度を下回っている。 その他多くの文字分類の技法、アプローチ(研究方法)
及びアルゴリズムが存在する。しかしながら、本開示の
目的のために上記の参考文献は最も関係の深い従来技術
の合理的な説明を提供している。文字認識(すなわち分
類)問題を解決するために注がれた全ての努力にもかか
わらず、既存のシステムは、手書き記号を認識するため
の成功する商業用システムのために必要と思われる精度
及び速度を提供しないということを言うだけにとどめて
おこう。 [発明の概要] 本発明は手書き文字または他の可変線幅画像の改良され
た細線化及び骨格化を提供し、これによってより高い精
度を有する認識を可能にする。さらに、処理速度の本来
的な増大と共に精度の増大が達成される。 上記のナカッシニ他と同様に、我々の発明も細線化され
るべき画像上を走査するためにテンプレートを使用する
。しかしながら、従来技術によるシステムが3×3テン
プレートを使用するのに対して我々の発明は3×3より
大きいテンプレートを使用する。さらに、我々のテンプ
レートは、各テンプレートが画像画素を削除する際にこ
のような削除の他のテンプレートの挙動への影響を考慮
することなく画像画素を無条件に削除可能であるように
選択される。従って、テンプレートは相互に独立してい
る。 我々の発明の一態様によれば、使用されるテンプレート
のセットは異なるテンプレートまたはマスクを含み、各
々暗画素及び明画素間特定の配置を有する。これらのテ
ンプレートの少な(とも1つは、行当たり3つより多い
画素かまたは3つより多い画素の行かのいずれをも含む
。5つというような奇数がよい選択である。 線の細線化は画像上に各テンプレートをステップ状に通
過させることにより達成される。ステップ数はテンプレ
ートの選択サイズと画像サイズとに依存する。各テンプ
レートの各ステップにおいて、画像から1個以上の画素
を削除すべきか否かの決定がなされる。削除すべきであ
るとの決断は他のテンプレートに関してなされた決定と
は独立に実行される。テンプレートの独立性の理由から
、我々の骨格化のためのシステムは全てのテンプレート
を同時に作動させる。これは処理速度を実質的に増大さ
せ、これにより有効なOCRシステムを稼動可能にする
。 我々の発明の他の態様によれば、画像上に複数のテンプ
レートを通過させる代わりに1枚のテンプレートが通過
されるが、各ステップにおいてテンプレートは、サイズ
がkXk (ここでkは3余より大きい数)のテンプレ
ートから出発して各部分ステップ毎にテンプレートのサ
イズを1つずつ減少するようにサイズが変更される。各
部分ステップ毎にサイズ(k−2)X (k−2)の中
心コアを削除すると不連続を形成させるか否かのテスト
がなされる。もし不連続が形成されないという判定が成
されたときは、コアは削除される。 [実施例] 第1図は文字または記号の分類のための我々の方法の流
れ図を示す。ブロックlOにおいて、文字画像が捕獲さ
れ、かつ半導体記憶装置のようなフレームバッファ内に
記憶されるのが有利である。 画像は遠隔地から電子伝送を介して取得されてもよいし
、またはそれは「局所的に」走査カメラを用いて取得さ
れてもよい。通常の実施例によるいずれの画像取得源に
かかわらず、画像は画素の順序づけ集合(配列)によっ
て表わされる。各画素の値は画像の特定の小領域から放
射する光(明るさ、色など)に対応する。画素値は記憶
装置内に記憶される。 スマツジ(汚れ)及び異質のストロークが文字の付近に
見出されることが多く、これらの存在は認識過程をより
難しくさせざるを得ない。我々の発明によれば、ブロッ
ク20がブロック10に続き、その機能は画像を清浄化
することである。これは画像から無意味な変化性を除去
するための我々の努力の第1のステップである。 通常、数字のような記号または文字の画像は、(隣接す
る)画素の1つの大きな群及びゼロの場合もある小数の
小さな群を含む。我々の清浄化アルゴリズムは基本的に
はこのような群の全てを識別し、最も大きな群以外は全
て削除する。もし削除された群の合計が初期画像のある
パーセントより大きい割合を構成するのであればそれは
画像が変則(異状)であることを示すので、この事実が
後に使用されるように注記される。この説明の文脈内で
、画像記号は明背景上の暗ストロークで構成されている
と推定される。「反転」画像ももちろん同様な装置で処
理することが可能である。上記の清浄化アルゴリズムは
また、画像内に期待される記号セットが非結合ストロー
クを要求するような記号を含まないことを前提とする。 数字0−9及びラテン語アルファベット(小文字i及び
jは除く)はこのようなセットを形成するが、大抵の他
のアルファベット(ヘブライ語、中国語、日本二i1ハ
ングル語、アラビア語など)は多(の非結合ストローク
を含む。このような他のセットに対しては、領域の全集
合ではなくて各非結合領域だけを見るようなやや異なる
清浄化アルゴリズムが適用されなければならないであろ
う。 これらの異質領域を検出し、かつ識別するために適用可
能な多くの方法がある。我々が使用する方法はブラシフ
ァイア(brush flre)に類似する。 我々の方法によれば、「黒い」画素群を見出すために画
像は頂部から底部までラスター走査される。このような
群が見出されたとき(すなわち以前に考慮されなかった
黒画素に出会ったとき)、走査が中断され、「ブラシフ
ァイア」が点火される。すなわち、出会った画素に対し
て識別子でマーキングされ、マーキングは拡散過程(s
preadlngprocess)を開始させる。拡散
過程において、8つの直接近傍画素の各々が考慮される
。黒であるこれらの近傍画素も同様に識別子でマーキン
グされ、各マーキングはそれ自身の拡散過程を開始させ
る。このように、最初に出会った「黒」の群の画素は、
全ての群を選択された識別子によって迅速に識別させる
。過程内のこの点において画像の走査が再開され、これ
により他の群を発見し、かつ(異なる識別子)で識別す
ることが可能である。 走査が完了して全ての「黒領域」が識別されたときに、
領域計算が実施可能である。上に示したように、最大群
を除く全ての群が画像から削除される(すなわち暗から
明に反転されるかまたはオフにされる)。 この時点で、文字認識技術においては判定を下すのを拒
否するよりは文字を不正確に識別するミスをしないこと
の方がより重要であることが判るであろう。この理由か
ら、不連続ストロークを有しない数字あるいは他の文字
セットを識別するように設計されたシステムにおいては
、領域除去しきい値はかなり低いレベルに設定されるざ
きである。 通常は、(前記の0−9文字セット及びラテン語アルフ
ァベットにおいては)画像の有意部分を含む画素は厳密
な意味で隣接しているであろうことが期待される。他方
で、おそらくは領域が極めて僅かだけ分離されたときは
これは例外とすべきであって、(例えばインクの出にく
いペンで書いたりまたは目の粗い紙面上に書いたりした
ときのように)文字ストロークが偶然に破断される可能
性があると、外部情報が人に信じさせるようにする。こ
のような偶発性に備えるために、「発火(ファイア; 
rlre) Jを拡散(spreading)するため
の方法は、8つの直接近傍画素(8つの画素とは大きな
窓の隅と大きな窓の辺の中心画素である)から少し離れ
た8つの追加の画素を含むように近傍画素を定義するた
めのオプションを含む。結局、我々は「ファイア(発火
)」が「ファイアブレーク(fire break ;
発火破断線)」を飛び越すことを可能にする。 ブロック25における画像を所定サイズにサイズ31!
 (スケーリング; 5eal lng)をする過程が
清浄化過程に続く。サイズ調整はもちろん画像の無意味
な変化性も除去する。サイズ調整の前に行われる清浄化
の過程は、スマツジを含んだまま画像をサイズ調整した
くないという要望から行われるものである。スケーリン
グ過程は多数の異なるアルゴリズムのいずれを使用して
もよい。例えば、1つのアルゴリズムによれば、画像は
、画像の一方の次元(ディメンション)サイズが所定サ
イズに到達するまで両次元方向に等倍率でサイズ調整が
可能である。他のアルゴリズムは、両次元方向17)サ
イズ調整倍率の間の最大差にある程度の制限を設けた上
で両次元方向に独立にサイズ調整を行う。 両方のアプローチの方法はうまく行われるので、アルゴ
リズムの選択及びそれの実行は読者に任せる。我々は文
字画像の各々を最初に記載のアルゴリズムを用いて例え
ば18X30の画素配列のような適切な数の画素にサイ
ズ調整する。 人々は一般に文字を斜めに書く。その傾斜は人によって
異なる。文字の傾斜すなわちスキュー(skev)は情
報をもたないところの手書き文字の他の無意味な変化性
であり、従って我々はそれを除去する。 第1図に戻って、ブロック25のに続くブロック30は
画像の傾斜修正(デスキューイング; deskeνI
ng)を行う。言い換えるとブロック30の機能は、全
ての文字をより均等に直立化することである。 ブロック30は、画像の傾斜修正を行うために多くの通
常の手順のいずれかを使用可能である。このような手順
の1つは、画像に対して次の形の変換を行う。 二二でX及びyは画像の初期座標であり、Xo及びy。 、は原点を定義し、U及び■は変換された画像の座標で
あり、及びm xy及び”yyは次式%式%) によって計算された画像モーメントである。上記におい
て、B (x、y)は、位置x、yにおける画素が「黒
」であるときに1の値をとり、そうでないときには0の
値をとる。この機能の効果は、xyモーメントを本質的
に0に減少させることである。 サイズ調整(ブロック25)及び傾斜修正(ブロック3
0)は両方とも線形変換である。清浄化された画像に複
合変換を行って直接傾斜修正された画像を形成すること
は有利であろう。この複合操作を行えば、サイズ調整さ
れた画像を画素の配列として陽形式表示をしなくてもす
むようなことが可能になる。これは(計算)ノイズ源を
排除することになる。 第1図においてブロック30の後に続くブロック40は
画像を細線化(thinning)する。画像の細線化
もまた画像の無意味な変化性を除去する。上記のように
、従来技術による骨格化(skeletonizati
on)の方法は画像上に通過される3x3窓を使用する
。383窓の中心点は、もしある条件が満たされればオ
フにされる;そしてこれらの条件は、大抵の方法の場合
、種々の事前定義悪条件を用いた反復テストを含む。例
えば、ペンΦラン(Ben−Lan)及びモントト(M
ontoto)アルゴリズムは、暗中心は、もしそれが
次の条件;すなわちl)その画素が4近傍のうち少なく
とも1つの明近傍を有すること;及び、 2)その近傍が8つの事前定義3×3窓のいずれともマ
ツチしないこと; を満足するならば、削除される(すなわちオフとされる
かまたは明とぎれる)。 4近傍とは、考慮対象画素の東、北、西、または南にあ
る画素である。 最近までプロセッサはいずれにしても一時に1つの業務
のみは処理可能であるので、上記に類似のアルゴリズム
はソフトウェア実行上全く使用可能である。しかしなが
ら、これらのアルゴリズムはそれらの手順の性質上どう
しても処理が遅くなる。さらに、従来技術によるこれら
のテストの各々は、パターンのある特徴は目標とするが
他の特徴は目標としない。異なる文字(例えば垂直な線
と水平な線)のストロークを細線化するためには、異な
るテストが用いられなければならない。さらに、従来技
術によるテストを用いるとき、特定の画素が確実に検出
される前にはこれらのテストの少なくともあるものが順
次に実行されることが必要であり;そしてこれらのテス
トが実行されない限り画素はオフにすることができない
。第2図の実施例はこの問題を示す。 第2図において、テンプレート100及び11Gは2つ
の3×3画素窓である。テンプレート100内の3つの
頂部画素はオン(ON)画素を探すことを指示するため
に丸陰影がつけられている。中心画素及び底部の行の中
心内の画素はオフ(OFF)画素を探すことを指示する
ために斜線陰影が付けられている。残りの画素は「ドン
ト ケア(don’tcare) J状態を指示するた
めに空白である。テンプレート100は暗区画(画素1
04及び105)の上部の明区画(画素101 、10
2及び103)のエツジ状態を探すと、暗区画が少なく
とも2つの画素の厚さがあるに相違ないと予告を出す。 このような状態に遭遇すると、中心画素(104)はオ
ンからオフに(暗から明に)変えられる。従って、テン
プレート100は、頂部から始めてきてたった1つのオ
ン行が残されるまでオン領域をかじりとる機構を提供す
る。 テンプレート110も同様な働きをするが、但しこちら
は、第1及び第2行の中心画素がオン画素を求めながら
オフ画素を求める底部の行を有することが異なる。テン
プレート110は底部からオン(暗)領域をかじりとる
。 水平な線を細線化し垂直な線を細線化しないところの上
記テンプレートは画像上に多数の異なるテンプレートを
通過させることが好ましいことを示し、この場合具なる
テンプレートは画像の異なる特徴を感知する。(速度の
点から)種々のテンプレートを同時に通過させることも
また好ましい。 しかしながら、第2図の画像セグメント10Gにおいて
もしテンブレー) 100及び110が適用されると、
描写されている2画素幅の水平な線は完全に除去されて
しまうので、この場合は適用できない。 頂部の行はテンプレート100によって除去され、底部
の行はテンブレー) 110によって除去されるであろ
う。 もし細線化を効率的に実施すべきであるならば、異なる
テンプレート間の相互依存性は打破られなければならな
い。 予期しなかったことであるが、この相互依存性は3×3
より大きい窓を使用することによって打破ることが可能
であることが判った。従って、我々は3×3より大きい
テンプレートを少なくとも幾つか含むテンプレートセッ
トを使用する。あるものは3X3であり、あるものは3
×4であり、あるものは4X3であり、またあるものは
5×5である。集合の特徴は、テンプレートが画像上を
同時に通過可能であることである。この可能性は、他の
テンプレートが画像を独立して変更できる能力に有害な
影響を与えることなく1つのテンプレートに応答して画
像を変更させることが可能なテンプレートの特殊選択に
よって実現される。かなりユニークなこのテンプレート
のセットを第3図に示す。 第3図に示したテンプレートのセットは十分なセットで
あることを我々は発見した。他のセットも可能であるこ
とは当然であるが、我々の発明によればこのようなセッ
トは3×3より大きいテンプレートを少なくとも1つ含
むことが特徴である。 図示のテンプレートの作動を説明するために、まずテン
プレート12G及び140から始める。これらのテンプ
レートは第2図のテンプレート100及び11Gに対応
する。テンプレート120は5×5配列として示される
でいるが、外側の列及び行は「ドント ケア」状態であ
るので本質的にはこれは3X3窓を形成する。テンプレ
ート12G内の画素121及び122はオン画素か否か
をテストし、方テンプレート100内のそれに対応する
位置の画素は「ドント ケア」にセットされているとい
う点で、テンプレート120はテンプレート100とは
異なる。すなわち、テンプレート120は確実に、かじ
とられた(明にされた)画素が両方向に伸長する線の上
方にあるようにする。一方テンプレート140は、それ
が実際上3X4テンプレートである点でテンプレート1
10と異なる。それは3×3テンプレート110に類似
の3×3部分を含み(画素141及び142を除く)か
つそれはまた第1行の中心に画素143を含む。画素が
(底部から)かじり取られることが許される前に、画素
143は結局水平な線が3画素幅であることを要求する
。 テンプレートI30及び15Gはテンプレート対120
及び140類似のテンプレート対を形成する。°テンプ
レート130及び15Gは垂直な線を細線化する。 テンプレート180.170.18G及び190はそれ
ぞれ右、左、上及び下を向く。「膝(k−ne6s) 
Jを細線化し;テンプレート20G 、210.220
及び230は傾斜する線を上部から及び下部から細線化
する;などである。テンブレー)11i0−230は全
て5X5テンプレートであることがわかるであろう。 骨格化のための他のアプローチによれば、サイズkXk
、ここでkは3より大きい、のテンプレートがkのいか
なる値に対しても特定のアルゴリズムを追跡可能である
ことを我々は発見した。このアルゴリズムは、反復的に
または平行的に実行可能である。kXkテンプレートの
作用は、ある基準(タライテリヤ)が満たされたときは
いつでもテンプレートの(k−2)X (k−2)の中
心コアを消去することである。予期されるように、kの
値が大きくなればなるほど細線化は粗くなるがそれだけ
必要な計算回数は少なくなる。 細線化基準は以下のように述べることができる。 kXkテンプレートに対しては、もしそのコアRCxs
 ySk)がオン(暗)であるならば、このときはコア
はオフとされる(削除されるかまたは明とされる):但
し次の条件が満たされる場合とする。 1、χ (η)−1, 2、φ1 (η)>k−2、及び 3、φ0 (η)>k−2、 ここで、φ0 (η)はコアを包囲する画素の4(k−
1)輪郭内の4連結オフ画素のチェーンの(画素内)最
大長さである。これは近傍ηである。 また、φ1 (η)は近傍内の8連結オン画素のチェー
ンの最大長さであり、かつχ(η)は近傍内の8連結オ
ン画素のチェーンの数である。χ(η)の値は次式によ
って計算可能である。 上式において、η(i)は近傍η内で近傍の左上隅から
時計回りに移動しながらカウントして第1番目の画素に
対応し;またη(i)の値は、対応の画素がオンのとき
に1であり、及び対応の画素がオフのときにOである。 8連結性は以下に定義される。2つの画素のうちの一方
が他方に対しそれの8近傍のいずれかにおいて隣接して
いるとき1;2つの画素は同一8連結チエーン内にある
。 方4連結チェーンは水平方向とまたは垂直方向内とのみ
で隣接近傍を含み二対角方向にはそれを含まない。 基準(1)はストラフチャの連結性が変えられないよう
にするのに必要である。もしχ(η)−1ならば、この
ときは近傍は8連結オン画素の単一チェーンを含み、コ
アを消去してもコアと近傍内のいずれかのオンチェーン
との間の連結性を破壊しない。もしχ〉1ならば、この
ときは近傍内に2つ以上の8連結オン画素が存在し、従
ってコアを消去するとチェーンを分離して連結性を破壊
するであろう。もしχ−0ならば、このときはコアはオ
ンである近傍画素と分離されてもいないし、それはオン
画素によって完全に包囲されている。 このような場合には消去は好ましくない。 基準(2)は線端を維持する(線端(エンドライン)は
線の端部である)。レベルkにおいて、線端は、コア側
部長さに−2より小さいかまたはそれに等しい幅を有す
るものとして定義される。 k−2画素以下の8連結オンチエーンを有するコアに対
しては、そのコアはレベルkにおける線端として定義さ
れかつ維持される。χ(η)−1のときはφ1 (η)
は近傍内のオン画素の数に等しい。 基準(3)は基準(2)の逆条件とみなすことができる
。基準(2)が線端の侵食を防止する場合、基準(3)
はオフ領域のオン領域内への内方侵食を防止する。 順次処理多値化kXkm線化アルゴリズムのステップを
以下にリストする。 1、x、yの昇順に各位置(x、y)に対して=a)k
’ 1にとセットする; b)核R(XSyx k’ )に対して、ある消去され
た近傍の値をオンとみなし、かつ細線化基準をテストす
る; C)もしb)において細線化基準が満たされたならば、
このときは各側辺及びそれの隣接隅に対して、ある消去
された値をオフにセットしく但しオンにセットされてい
るNW(北西)隅のERASE D Aアンカー値に対
しては除く)かつ他の消去された値を全てオンにセット
する;細線化基準に関して連結性をテストし、もしそれ
らが満たされたならばコアをERASEDにセットする
かまたはもしそれがアンカーコアであるならばERAS
EDAにセットし;もしそうでなければに’−に−1を
セットし、かつもしに′≧3ならばb)に戻る; 2゜もし画素がERASEDまたはERASEDAにさ
れなかったときは停止し;そうでないとはは全てのER
ASED及びER,ASEDAの値をオフにセットして
、(1)を繰返す。 上記において、アンカーは、走査の方向に向けられた対
角線の開始の線端に配置されたコアである。 それが消去されるときその画素に値ERASEDAがマ
ーキングされ、このマーキングは線端がさらに侵食され
るのを防止するのに走査順序に対しては、アンカーはN
W線端であり;すなわちその北側側辺及び2つの隅部並
びにその西側側辺がオフ値のみを含むところの核である
。 平行アルゴリズムにおいては、経路上の細線化結果はそ
の経路上の細線化作業に影響を与えないので、画像の全
ての画素は同時に作用を受けることが可能である。この
独立性を達成するために、各繰返しく全ての画像を通し
て窓に基準を適用することは)4つの分離した部分サイ
クルに分割され、細線化は4つの部分サイクルのそれぞ
れの上でN、S、EおよびW上にある核にのみ適用され
る。 コンパス(拡がり)方向を核に割り付けるのに使用され
る規則は以下の通りである: もし北側の側辺がオフ値のみを含むならば、核は北側輪
郭核であり(「側辺」とは隅画素を含む行または列内の
輪郭画素をいう); もし南側の側辺がオフ値のみを含みかつ核が北側輪郭核
でないならば、核は南側輪郭核であり;もし東側の側辺
がオフ値のみを含みかつ核が北側または南側輪郭核でな
いならば、核は東側輪郭核であり;及び、 もし西側の側辺がオフ値のみを含みかつ核が北側、南側
または西側輪郭核でないならば、核は西側輪郭核である
。 アルゴリズムの一層フローチャートを第5図に示す。順
次処理が要望されるかまたは平行処理が要望される化に
応じて、以下に説明するようにアルゴリズムはそれらの
明細を異にする。 平行処理2値化kXk細線化アルゴリズムのステップを
以下にリストする。このアルゴリズムに対しては消去さ
れた値を保持する必要はなく消去されたあとはオフにな
ることに注意されたい。 1、順次(オーダー)(NSSSESW)繰返し円形シ
ーケンスにおいて、全ての輪郭核に対して以下のことを
実行する: a)k″−にとセットする; b)核R(x、ySk)に対して細線化基準をテストし
、もしそれらが満たされたならば、コアを消去してオフ
とし; そうでなければに−−に−1をセットし、かつもしに′
≧3ならばb)を繰返し;C)もし最後の4つの連続す
る部分サイクル上で画素が消去されなければ停止し;そ
うでなければシーケンス内で次の輪郭方向に対してa)
を繰返す。 これで細線化過程の説明を終了する。 第1図に戻ると、骨格化ブロック40の後に特徴抽出フ
ロック50が続く。操作は類似しているが、骨格化は機
械的な点から特徴抽出とは異なる。骨格化においては、
不要な画素が識別されてそれらが暗から明に変えられる
。特徴抽出においては、文字の分類を助ける比較的巨視
的な特徴が識別される。識別された巨視的な特徴は文字
のサイズまたは厚さに依存しないような特徴の種類であ
るが、文字にその特定の「サイン(signature
 ) Jを与えるものである。従って、ブロック50が
識別すべく探求するものがこれらの特徴である。 特徴抽出は、操作的には画像上に一層の窓を通過させる
ことにより達成される。我々のシステムにおける6窓は
7X7テンプレートであり、各テンプレートは、端点、
対角線、水平線、垂直線二などのような特定の特徴の存
在を検出する。検出は、49画水素7X7)の大部分が
テンプレートにフィツトするとき特徴が存在すると結論
づけられるという意味の主要規則によって行われる。我
々のシステムにおいては、第4図に示すような49FJ
類の異なる7X7テンプレートを使用する。各テンプレ
ートに対しては、我々は、テンプレートのパターンが画
像にマツチするところの画像配列内の座標を基本的に指
示する「特徴マツプ」を形成する。 第4図の498類のテンプレートに対応する49tI類
の特徴マツプを開発した後、ブロックBOにおいて我々
は特徴マツプの論理組合せ(AND及びOR)である多
数の上位(超)特徴マツプを形成する。このようにして
、我々はセットを49マツプから(18X30画素配列
の> 18マツプに減少する。減少数は発見的に決定さ
れた。 我々は(我々が配列を記憶する記憶装置内で)配列を構
成しかつ我々はその検出特徴を配列内の適切な位置内に
置くので、この検出された特徴を「マツプ」と呼んでい
る。このように我々は特徴の存在及びその位置を記録す
る。「ヒツト(命中)」位置の指示を記録するために他
の機構を使用可能であるが、概念的にマツプ形式で考え
るのがより簡単である。 18X30配列は分類の目的のためにはあまりにも詳細
過ぎることが解った。細部は実際に文字をマスクするこ
とが可能であるが、(「木を見ては森を見ることが出来
ない」という諺のように)分類作業を一層困難にする。 従って、ブロック70は粗いブロック化(blocki
ng)を行って18X30の特徴マツプを僅か3X5の
特徴マツプに減少する。この結果18個の3X5のマツ
プに対応する270ビツトからなる最終マツプまたはベ
クトルが得られる。 最後に、ブロック80は分類アルゴリズムを実行して、
与えられた270 ビットから最も確からしい候補を決
定する。識別されるべき文字に対してどのテンプレート
が最も確からしく対応するかがわかると、最低ハミング
(Haa+m lng)距離を決定するような簡単なア
ルゴリズムで十分であろう。重要な点は勿論これらのテ
ンプレートを決定することにあり;そしてその態様は、
その技術が現在取扱っているところの(逆伝搬というよ
うな)学習方法論を要求する。 [ハードウェア実施態様] 第1図は我々のOCRシステムの過程を示すが、それは
またハードウェアの実態化もよく表わしている。信号の
流れの実際の詳細は特定の設計と共に変わるであろうが
、それは完全に通常の回路設計技術の範囲内に入るもの
である。以下の説明のつ各電子回路ブロックはどの画素
が考慮の対象とされるかに関する必要な識別と共に必要
な信号及び制御を以下の回路ブロックに与えるものと仮
定しよう。 前にも示唆したように、ブロック10は分類されるべき
画像の特定の供給源に付随の通常の装置を含む。それは
単に、市販の「フレームグラバ−(1’raa+e g
rabber)J及び記憶装置に結合されたビデオカメ
ラであってもよい。分類過程が開始されるときに記憶装
置がアクセスされて中心画素と24の近傍画素とを検索
し、検索された信号の集合がブロック20に供給される
。 ブロック20及び30はこの場合、付録に示した簡単な
プログラムを用いてSUNワークステーション上で実行
される。画像信号と必要に応じて一時的な計算結果とを
記憶するために、ローカルメモリがマイクロプロセッサ
に含まれている。実際にはいずれのマイクロプロセッサ
でも同様に使用可能であるが、もしマイクロプロセッサ
で得られる′速度よりも速い速度が必要であるならば、
必要な計算を実行するために通常のように特殊なハード
ウェアを設計可能である。実際に、必要な演算は一キテ
クチャが容易に設計可能である。 ブロック30の出力は一連の信号セットであり、各々は
それに付属の中心画素とその近傍画素とを有する。ブロ
ック40は第6図の神経回路網を用いて実行され、神経
回路網は、直列結合のスイッチ400とテンプレートマ
ツチ回路網410としきい値回路網420とを含む。あ
る瞬間に5×5の窓によって覆われる画像の25個の画
素の値に対応する入力信号が410の入力端にあるスイ
ッチ400に供給される。スイッチ400は、これらの
値が回路網に同時に供給されることを確実に行わせる。 回路網410は25個の入力リード線と記憶されるテン
プレートの数に等しい多数の出力リード線とを含む。 回路網410内において、全ての入力リード線は1列の
プリセット結合ノード(節)を介して各出力リード線に
結合されている。このような結合ノードの各列(例えば
ノード411−414を含む列)は、記憶されている1
つのテンプレートに対応する。 従って、各出力リードの信号は、入力信号がいずれのテ
ンプレートのものであるかという所属関係を示す。さら
に詳細には、結合ノードは、励起状態(E)、阻止状態
(1)及び「ドント ケア」状態(D)を知るために3
種類の「多様性」を有する。マツチ(整合)またはミス
マツチ(不整合)に対する応答は、以下の真理値表に従
って各多様性毎に異なる。 入 力  シナプス  出 力 OE      0 1     E      1 1    I    −2 0D      0 1     D      O この真理値表を実行するノード411はゲート付増幅器
を用いて容易に実現可能である。 ノードがEノードか、1ノードか、またはDノードかに
関する情報は、(多様性が要望されたとき)各ノードに
付属された2個のフリップフロップセット内に記憶可能
である。代替態様として、その情報はノードの配列に付
属のリンクの配列に「接続させる(hardvlred
)Jことが可能である。 テンプレートのプログラミング(すなわち結合)は適切
なリンクのバーンスルー(burn−throgh)に
よって達成可能である。もしテンプレートが完全に不変
であるならば、当然に、テンプレート情報を直接ノード
の配列の集積回路マスク内に設計することが可能である
。 出力線の電流はインピーダンスに流れ、その流れは、回
路網410の各出力線の電圧を、入力信号のセット内の
1と励起ノードとの間のマツチングの程度に比例したレ
ベルまで上昇させる。電圧はまた、入力信号のセット内
の1と阻止ノードとの間のマツチングの程度によって減
少されることも当然である。 回路網41Gの出力線はしきい値回路420に供給され
るが、そこにはそのインピーダンスをオプションで配置
可能である。回路網420は1セツトのしきい値を回路
網410の出力信号に供給する。特に回路網420は、
回路網420の人力リード線に応答する1つの入力と増
幅器421−424の第2の入力に接続される多数のソ
ース(例えば425−427 )を何する1セツトの2
人力増幅器(例えば421−424)を含む。ソースの
各々は異なる電流を供給し、それに応じて各増幅器42
1−424は、そのリード線がソース425−427に
対して有する特定結合に関連したその第2のリード線上
に電圧を発生する。このようにして、回路網420内に
おける異なる増幅器に異なるしきい値を供給可能である
。 回路網420の出力リード線は増幅器421−424の
出力であり、それらは増幅器の人力信号がしきい値を超
えているかまたは超えていないかに応じて論理値lまた
はOをとる。 ブロック50は第6図に示したような神経回路網で構成
される。しかしながら、ブロック50はブロック40の
5X5テンプレートとは異なり7x7テンブレートを取
扱うので、データをバッファ記憶するために2つの神経
回路網の間に記憶装置55が挿入される。 ブロックBOは18個の特徴マツプを発生する。それは
単にブロック50の出力を受入れて、中心画素の一致性
を特徴づける信号と共に適切な情報を記憶装置内に記憶
する。その結果は18メモリセグメントであり、各セグ
メントは画像内に見出された特徴に関する情報を含む。 従って、このような各セグメントは我々の特徴マツプの
1つである。 ブロック70の粗いブロック化(coarse blo
cking)は、恐らくは同一の物理的記憶装置内にあ
・る18個の追加の小メモリセグメントを用いることに
よって達成される。ブロック70は、これらの小メモリ
セグメント内に、大メモリセグメントの適切に選択され
た部分内に見出された特徴に関する情報を記憶する。初
期画像のサイズが18画素×30画素であるとき、モジ
ュラス5で動作するカウンタを用いればその選択は容易
に達成可能であり、ここでカウンタの全値(full 
value)は大セグメントをアクセスするのに使用さ
れ、一方モジュラス5で除した後の全数(whole 
number)は18個の小メモリセグメント内のセル
を識別するのに使用される。 小メモリセグメントの270個の記憶位置はブロック7
0の出力を形成し、結果的に画像内に含まれた文字を表
わすベクトルを形成する。 実行される必要がある最後の機能は、与えられた特徴ベ
クトルに対する最も確からしい候補文字を選定するとこ
ろのある回路網にこのベクトルを供給することである。 これがブロック80の機能である。 ブロック80は多数の方法で実行される。例えば、前記
の米国特許第4,880,188号におけるホップフィ
ールドの内容照合方式の教示を使用するのが有利であろ
う。この教示に従って、彼の回路のフィードバック回路
網に、主題セット内の文字に関する情報を入力可能であ
る。記憶されたこのような情報を用いて、内容照合形(
連想)記憶装置は、供給された特徴ベクトルに最も近い
文字の特徴べクトルを識別する。ホップフィールドの回
路網は極めてロバスト(robus t ;適応作動性
が強い)であるので、たとえ入力がかなり歪んで入るよ
うに見えるときでさえも「正確な」選別を行う。しかし
ながら、ホップフィールド回路に対してフィードバック
をすると、記憶されたベクトルが全てフィードバック回
路網内に分配されて相互に混合されるので、ホップフィ
ールド回路に対するフィードバック回路網の設計はやや
難しい。この困難さは、我々が例えば「4」という文字
をいかに認識するかと、または「4」と認識することが
可能なときと確信がなくて決定することを拒否するとき
との限界と、を我々は正確には解らないという事実によ
って複合化される。それにもかかわらず、我々は1目見
ただけで「4」という文字を判ってしまう! 本研究は、正しい決定に到達するために、試行錯誤によ
り分類回路に「学習」を行なわせることによってこの問
題を解決することを試みる。このような「学習」のため
の可能性を有する1つの構成が第7図に示されている。 現行技術においては、コノ技法は一般に「逆伝搬法(b
ack propagation)」と呼ばれている。 これは、例えば「認識の微細構造内の探索(Explo
ratlons in tlle MIcrosLru
cLure ol’ Cognitlon)J 、M 
I T出版、1988年の第8章「平行分布処理(Pa
rallel Distributed Proces
sing)J 、デー・イー・ラメルハルト(D、E。 1?ua+elhart)、ジェー・エルφマック・フ
レランド(」几、Mc C1elland)編、の中の
「誤り伝搬による学習内部を表示(Learning 
Internal Rcpresentatlons 
by Error Propagation) J内で
デー舎イー・ラメルハルトによって説明されている。 第7図は直列結合された相互結合回路網81及び82を
含む。入力信号セットが回路網81の入力端に供給され
、出力信号セットが回路網82の出力端に現われる。各
回路網は複数本の入力及び出力リード線を有し、各入力
リード線は出力リード線の全てに接続されている。さら
に詳細には、各入力リード線iは結合ウェイト(重み)
W、を介して各出力リード線jに接続されている。我々
の適用例においては、回路網81は270本の入力リー
ド線と40本の入力リード線とを有する。回路網82は
40本の入力リード線と10本の出力リード線とを有す
る。 回路網81の入力リード線の本数は特徴ベクトルの長さ
によって決定される。回路網82の出力本数は分類セッ
ト内の文字の数によって決定される。中間リード線の本
数(この場合は40本)は発見的に決定される。 第7図の回路の訓練(training)は、既知の文
字の開発された特徴ベクトルを供給しかつ供給された既
知の文字の対応する回路網82の指定の出力リード線に
おける出力信号を最大化するために両方の回路網81及
び82内のウェイトを調節することによって実行可能で
ある。分類されるべきセット内が全ての文字の利用可能
なサンプルがこのようにして回路網に供給され、その度
ごとに適切な出力リード線における信号を最大化するた
めに相互結合回路網内のウェイトが調節される。このよ
うにして、両方の回路網に対して1セツトのウェイトW
[jが形成される。 結合ウェイWljは本質的にアナログ量でありかつ回路
はアナログ式で作動すると明言することが適切であろう
。すなわち、回路網81の任意の出力リード線における
電圧は、その出力リード線に結合された「発火した(r
lred up) Jウェイトの寄与分の和である。各
ウェイトは、そのウェイトが結合されている入力リード
線上の2値化信号によって「点火」される。従って、リ
ード線jにおける出力は、 に等しく、ここでB、は1番目の人力リード線の値(0
または1)である。 このような学習回路網の概念はかなりよく理解されてい
るが、この様なアナログ回路を効率的かつコンパクトに
実現するという課題が残っている。 このような回路に対する要求は単純なものではない。例
えば、もし回路網の最適化が達成されるべきであるなら
ば、最小ウェイト変化または修正はかなり小さくなけれ
ばならない。上記の繰返し改善方法はよりよいウェイト
が良好なものの近傍に発見されるかも知れないという発
見的仮定に基づいているが、その発見的仮定は細分化が
十分に細かくないときは失敗する。小さな回路網81に
対しては、少なくとも8ビツトのアナログ深度が必要で
ある。回路網が大きくなるほどより細かい細分化が必要
となるであろう。ウェイトもまた正と負との両方の値を
表わさなければならず、変化は容易に可逆可能でなけれ
ばならない。学習及び訓練セクションの間に、ウェイト
に対する変更回数は十分に大きいものであってよい。従
って、実際的な回路はウェイトの迅速修正を可能にする
ものでなければならない。 これらの種々の要求を考慮した上で、MO3VLSI技
法を用いて効率的なアナログ結合ウェイト回路、または
強度回路を製作した。 第7図における各結合ウェイトは単なる黒丸で示されて
いるが、第8図はこれらの丸を実行するための回路を示
す。さらに詳細には、第8図は、入力線83と出力線8
4とにその結合を有する1つの結合ウェイトと、いくつ
かの通常の回路とを示す。 まず、第8図の相互結合ウェイト部分は、コンデンサ8
01及び8G2と、小MOSスイッチ803及び804
と、やや大MOSトランジスタ805と、差動増幅器8
0Bと掛算器(マルチプライヤ)807を含む。第2番
目に、第8図の回路は、電荷結合スイッチ808と検知
スイッチ809と種々の制御リード線とを含む。 回路は以下のように作動する。コンデンサ801及び8
02が異なる電圧レベルに充電され、その電圧レベル差
が差動増幅器806の出力電圧に反映される。増幅器8
0Bはコンデンサ801及び802に接続されたそれの
2つの入力を有する。結合ウェイトを表わす増幅器80
Bの出力は掛算器807に接続される。掛算器807は
通常の相互コンダクタンス増幅器であればいかなるもの
でもよい。掛算器807にはまた相互結合回路網の入力
線83も接続されている。変換器807の出力は相互結
合回路網の出力リード線に接続される。このように、マ
ルチプライヤ807は、入力リード線における信号と結
合ウェイトの値との積である電流を出力リード線に送る
。結合ウェトは、コンデンサ801及び802の間の電
圧差に応答して増幅器80Bによって形成された差電圧
によって表わされる。 コンデンサ801及び802上の電圧の差は(OCRシ
ステム内に含まれる動作に比較して)長時間維持され、
かつ回路が適度に低い温度に保持されているときはりフ
レッシングは必要ないことが解った。例えば、77°K
においては、時間と共に検出可能な損失は見られなかっ
た。我々の回路の1つの有利性は、ウェイトはvC80
1−vC802に比例し、従ってたとえ電荷損失があっ
ても、それが両方のコンデンサにおいて同じであるとき
は結果的にウェイトに変化はないことがわかるであろう
。 それにもかかわらず、コンデンサ881及び8G2上へ
情報をリフレッシュするための経路は明確に設けられな
ければならない。さらに、コンデンサ801及び802
上に電圧(電荷)値を設定しかつ上記の「学習」手順を
可能にするようにその設定値を修正するための経路が設
けられなければならない。この場所に残りのスイッチ及
び制御部が入ってくるのである。 結合ウェイトを希望レベルにもたらすためにはスイッチ
808を僅かの間開じて固定電圧レベルを電圧Rgte
からコンデンサ801に付加させる。電圧は固定電荷に
対応する。その後スイッチ80Bはオフにされる。この
点において、コンデンサ801は増幅器80Bの非反転
入力に接続されて正電圧を与え、一方コンデンサ802
は増幅器80Bの反転入力に接続されているので、結合
ウェイトは最大の正レベルとなる。結合ウェイトの変更
は以下のように行われる。 まず、トランジスタ803及び804がオンにされる。 トランジスタ803はトランジスタ805に比較して極
めて小さく、従って現象を理解しやすくするために、ト
ランジスタ8◎3は単なるスイッチと考えてよい。比較
すると、トランジスタ805は長くてかつ狭く、従って
それがオンにされたとき、それはコンデンサと考えてよ
い。スイッチ803が閉じられかつトランジスタ805
(それがnチャネルデバイスであると仮定して)がオン
にされたとき、コンデンサ801の電荷はコンデンサ8
01とオンにされたトランジスタ805上の反転電荷と
の間に分配される。次にトランジスタ803がオフにさ
れ、これによりトランジスタ805内に電荷を捕獲する
。次にトランジスタ804がオンにされ、ここでもしト
ランジスタ805がゆっくりとオフにされるならば、そ
のチャネル内の可動電荷はスイッチ804を通過してコ
ンデンサ802内に拡散するであろう。 従って、上記のステップは電荷量をコンデンサ801か
らコンデンサ802へ移動させる。これは、コンデンサ
の電圧変化及び相互結合ウェイトの変化に対応する。 上記のシーケンス(手順)は、結合ウェイトを希望レベ
ルにもたらすのに必要な回数だけ繰返すことが可能であ
る。このようにして、訓練期間の間結合ウェイトの最適
化が進められ、この結果回路網81及び82内の各結合
ウェイトは正しいレベルに設定される。 上記の説明は回路の訓練態様に関するものである。学習
過程が一旦終了したら、l)ウェイトの値を決定するた
めの手段と、及び2)時間経過に伴う損失をリフレッシ
ュするための手段と、などが提供されるべきである。こ
れは、検知スイッチ809と、A/D変換器と、D/A
変換器と不揮発記憶装置と利用して達成される。 相互結合回路網内のウェイト値を決定するために、入力
リード線は全て一時に1つずつオンにされる。リードが
オンにされる毎に、その入力リード線に結合されている
ウェイトの検知スイッチ809が順次にオンにされて各
増幅器の電圧を検知バス810上に出現させる。その電
圧がA/D変換器811に供給され、その結果として得
られたディジタル情報が記憶装置812内に記憶される
。このようにして、全てのウェイトがディジタル形式に
変換されて記憶装置1112内に記憶される。リフレッ
シュ動作の間に、各結合ウェイトは上記のように分離さ
れるが、このときに検知バス810上の電圧出力は、記
憶装置812のディジタル出力がそれに供給されるD/
A変換器813のアナログ電圧と、増幅器814内で比
較される。記憶装置812はリフレッシュされた結合ウ
ェイトに対応するディジタル出力を放出するようにさせ
られることは当然である。比較結果に基づき、スイッチ
要素803.804及び805のシーケンスが増幅き8
14の出力信号によって制御されて、コンデンサ801
の電圧をコンデンサ802に対して増加させたりまたは
減少させたりする。バス81Gの出力をA/D変換器t
illに供給するかまたは比較増幅器814に供給する
かの制御はスイッチ815によって行われる。両方のコ
ンデンサ801及び802を完全に放電させる事が必要
な場合には、電圧源81Bの電圧をゼロに減少させてス
イッチ803.804及び805をオンにすればよい。 なお、第1表〜第15表は、「ファイア(rlre) 
Jのソースプログラムを表示する。 第1表〜第3表において、破断画像のチエツクを行ない
、完全な空白ならば−1を、連結されていれば0を、微
少部分を除いて連結されていれば1を、劣悪な状態で連
結されていなければ2を、それぞれリターンする。黒画
素がポジティブであると仮定されている。 第4(1)表及び第4(2)表において、マジカル再帰
的バーニングルーチンが示される。 第5表において、黒画素がポジティブであると仮定され
ない場合の上記処理が示される。 第6表〜第15表において、線形変換プログラムのため
の処理のほとんどが行われる。 第1表 第2表 //flre、c  9/7/88  LDJ〃 77 check for broken image
s// returns −1if complete
ly blank// returns Oif co
nnected// returns l if co
nnected except for samll 
flyspecks// returns 2 if 
badly disconnected// uses
 recursive brushflre a1go
rithm// Diagnostic output
: prirus number of segmen
ts。 // and 1ocation and code 
of the largest// 5ide eff
ec
[Industrial Field of Application] The present invention relates to pattern analysis and pattern recognition, and more particularly to the field of pattern analysis and recognition, and more particularly to the field of stroke analysis of imaged symbols, characters, or binary images that can be used in classification processes in general.
ke) to thinning (thlnnlng) or skeletonization (sk
eletonlzing) system. The present invention relates to a patent application entitled "Image classification method, image white character classification method and identification device, and image thinning method" filed on the same day as this specification. PRIOR ART There are a wide variety of applications in which it is desirable for a machine to automatically recognize, analyze, and classify character patterns in a given image. The explosive development of computer-based information collection, processing, handling, storage, and transmission systems is providing the technology that enables the realization of these desires. Although sophisticated programs have been written for general purpose computers to perform pattern recognition, their level of success has been limited. Their success has mostly been achieved in the area of recognizing standard printing fonts. Character recognition technology dating back to the early 1980's used a method of tracing the curve of the character to be recognized. This was intuitively appealing, but unfortunately it often failed when the letters were distorted or contained unnecessary strokes. Bakis et al. (IBM) published ``An Experimental Study on Machine Recognition of Handwritten Numbers''.
5tudyof' Machine Recognl
tron of Hand Pr1nted Nuae
rals) J, IEEE Transactions on Systems Science and Cybernetics (I
EEE Transactlons on 5yste
ss 5science and Cybernetics
) No. 5SC-48, No. 2, July 1968, reports on a method for recognizing handwritten digits. In the system described, the numbers are converted into a 25.times.32 binary matrix. 800 bit vector (2
5X32) to about 100 to about 100.
f'eature) is extracted and the 100-bit vector is sent to several classifiers (categ. rlzer). Normalization (n
. rmallzatlon) J is also performed. The authors ranged from 8B to 99.7B depending on the handwriting samples used.
% recognition rate will be reported. Since the recognition rate is low compared to the desired level for commercial applications, the authors recommend that the "tracking course combines a curve-tracking type ?#1 constant... with automatic feature selection and parallel decision logic. It seems that it should.'' In what appears to be a follow-up work, R.G. Cathey (R, G., Ca5ey) applied Bakis et al.'s "normalization" to target character slant correction (deskevl).
An experiment extended to the method of ng) is described. “Moment normalization of handwritten characters (Moment No.
rmallzation of'l1andpr1n
t Characters) J, 18M Journal
On Research Development (IBM Jou)
rnal or Re5earch Devel
opment), September 1970 issue, 548-557
See page. Cathay uses curve tracking and template matching as suggested by Bakis et al.
A feature recognition method was used that combined a decision method system including clustering, autocorrelation, weighting, cross-correlation, and region segmentation with n elements. In the paper below, NaFfor (also from IBM) describes OCR (Optical Character Recognition) using a computer, an interactive graphics console, and gradient normalization.
Reporting on the system. ``Several studies in the interactive design of character recognition systems''
teractlveDesign or Charac
ter Recognition Systems)J
IEEE Transactons on Computers
Computers), September 1971 issue, 1075
-1080 pages. The purpose of his system was to develop appropriate logic to identify the features to be extracted. Another extraction feature approach is described by Todd in US Patent No. 4.259.681, issued March 31, 1981. According to Todd's method, the rectangular area formed by the outline of the character is normalized to a predefined size and then divided into sub-areas. The "darkness" J of the image within each of the sub-regions is evaluated and a "feature vector" is formed from the set of darkness estimates. The feature vector is stored and compared to a set of feature vectors representing the character being displayed, and the best match is selected as the recognized character. rsPTA: Proposed algorithm for thinning a binarization pattern (SPtA: A Proposed A
1goritb+e for Thlnnlng Bi
Nary Patterns) J, IEEE Transactions on Systems Man and Cybernetics (IEEE Transactlon onS)
systems, mans, and cyberneti
cs), Volume SMC-14, No. 3, May 1984/
In a paper entitled June issue, pages 409-418, Naccache et al. present another approach to the OCR problem. This method is based on the fact that patterns often consist of wide strokes, and
and skeletonize the pattern
It is presented that it is advantageous to do so. As explained by Nakash et al., "Skeletonization is performed by iteratively removing black points along the edges of the pattern (i.e., turning black points into white points) until the pattern is thinned to form a line drawing. It is ideal if the initial pattern is thinned to its solid axis. This paper briefly describes 14 different known skeletonization algorithms and then proposes its own algorithm (SPTA). All described skeletonization algorithms, including 5PTA, use 3 rows x 3
It is based on the idea of passing through a row of square windows (usually called 3x3 windows). As the square 3x3 window passes over the image, the algorithm evaluates the eight neighboring pixels surrounding the center pixel and converts or modifies the black center point to white based on its evaluation. or leave it as black. Pattern classification has also received significant support from other quarters that have shown recent progress in related fields. In particular, research by Hopr1el'd, disclosed in U.S. Patent Specification Box 4,060.18ti, issued April 21, 1987, led to the development of advanced parallel computing circuits ("neural circuits"). ``Net'') has been in the spotlight. Especially Gullchsen.
[Pattern Classification by Neural Networks: A Practical System for Symbol Recognition] by et al.
slf'1cat1on by Neural Net
works: An ExperiIIIental Sy
stam ['or Icon Recognltlo
n) J, IEEE Proceedings of the 1st International Conference on Neural Networks (
Cardil (other lines), IV-725-
The work reported on page 732 focuses on character classification methods. The system they describe uses some kind of image processing but no feature extraction. Instead, they found that neural networks are capable of “back propagation.
training method
It relies completely on the original classification intelligence acquired through the ``process''. Although the reported system appears to work well, many issues remain to be explored, as suggested by the authors. System performance is below acceptable limits. Many other character classification techniques and approaches (research methods)
and algorithms exist. However, for purposes of this disclosure, the above references provide a reasonable description of the most pertinent prior art. Despite all the efforts put into solving the character recognition (i.e., classification) problem, existing systems lack the accuracy and accuracy that would be necessary for a successful commercial system for recognizing handwritten symbols. Suffice it to say, it doesn't offer speed. SUMMARY OF THE INVENTION The present invention provides improved thinning and skeletonization of handwritten characters or other variable line width images, thereby enabling recognition with higher accuracy. Furthermore, an increase in accuracy is achieved with an inherent increase in processing speed. Similar to Nacassini et al. above, our invention also uses a template to scan over the image to be thinned. However, whereas prior art systems use 3x3 templates, our invention uses templates that are larger than 3x3. Furthermore, our templates are chosen such that each template is able to remove image pixels unconditionally without considering the impact of such deletion on the behavior of other templates when removing an image pixel. . Therefore, templates are independent of each other. According to one aspect of our invention, the set of templates used includes different templates or masks, each having a specific arrangement between dark and bright pixels. A small number of these templates (one containing either more than three pixels per row or rows of more than three pixels; an odd number, such as five, is a good choice). This is accomplished by stepping each template over the image. The number of steps depends on the selected size of the template and the image size. At each step of each template, should one or more pixels be removed from the image? A decision is made whether or not to delete. The decision to delete is performed independently of decisions made regarding other templates. Because of template independence, our system for skeletonization of the templates at the same time, which substantially increases the processing speed and thereby enables the operation of an effective OCR system.According to another aspect of our invention, passing multiple templates over the image Instead, one template is passed through, but at each step the template starts from a template of size kXk (where k is a number greater than 3) and increases the template size by one for each substep. The size is changed to decrease. At each substep, a test is made to see if removing the central core of size (k-2) The core is deleted when a determination is made that the The image may be acquired via electronic transmission from a remote location, or it may be acquired 'locally' using a scanning camera. Regardless of the source of image acquisition according to typical implementations, an image is represented by an ordered set (array) of pixels.The value of each pixel is determined by the amount of light emitted from a particular subregion of the image ( (brightness, color, etc.). The pixel values are stored in the memory. Smudges and extraneous strokes are often found near the characters, and their presence makes the recognition process more difficult. According to our invention, block 20 follows block 10, the function of which is to clean the image. The first step: Images of symbols or characters, such as numbers, usually contain one large group of (adjacent) pixels and a small group of decimals, which may be zero. Our cleaning algorithm essentially identifies all such groups and removes all but the largest group. If the sum of the deleted groups constitutes more than a certain percentage of the initial image, it indicates that the image is anomaly, and this fact is noted for later use. Within the context of this description, it is assumed that image symbols are composed of dark strokes on a light background. "Inverted" images can of course also be processed with similar equipment. The cleaning algorithm described above also assumes that the expected symbol set in the image does not contain symbols that require uncombined strokes. The digits 0-9 and the Latin alphabet (excluding lowercase i and j) form such a set, but most other alphabets (Hebrew, Chinese, Japanese Hangul, Arabic, etc.) For such other sets, a somewhat different cleaning algorithm would have to be applied, looking only at each disjoint region rather than the entire set of regions. There are many methods that can be applied to detect and identify foreign regions of To find out, the image is raster scanned from top to bottom. When such a cluster is found (i.e. a black pixel not previously considered), the scanning is interrupted and a "brush fire" is started. ignited, i.e., the encountered pixels are marked with an identifier, and the marking is caused by a diffusion process (s
preadlngprocess). In the diffusion process, each of the eight immediate neighboring pixels is considered. These neighboring pixels that are black are similarly marked with an identifier, each marking starting its own diffusion process. In this way, the first "black" group of pixels encountered is
All groups are quickly identified by the selected identifier. At this point in the process, scanning of the image is resumed so that other groups can be found and identified (with different identifiers). When the scan is complete and all "black areas" have been identified,
Area calculations can be performed. As shown above, all groups except the largest group are removed from the image (ie, inverted from dark to light or turned off). At this point, it can be seen that in character recognition technology it is more important not to make the mistake of incorrectly identifying a character than to refuse to make a decision. For this reason, in systems designed to identify numbers or other character sets that do not have discontinuous strokes, the region removal threshold should be set to a fairly low level. Normally it would be expected (in the 0-9 character set and the Latin alphabet mentioned above) that the pixels comprising a significant portion of the image would be strictly contiguous. On the other hand, perhaps this should be an exception when the areas are only very slightly separated, and the letters (e.g. when written with a pen that does not produce ink well or on a coarse paper surface) External information leads one to believe that a stroke can be broken accidentally. In order to prepare for such contingencies, "Fire;
rlre) The method for spreading J is to add 8 additional pixels a little further away from the 8 immediate neighbors (the 8 pixels are the corner of the large window and the center pixel of the side of the large window). Contains options for defining neighboring pixels to include. After all, we understand that "fire" is "fire break;
This makes it possible to jump over the ignition break line). Size 31 of the image in block 25 to a predetermined size!
A process of scaling (scaling; 5eal lng) follows the cleaning process. It not only adjusts the size but also removes meaningless variations in the image. The cleaning process performed before resizing is done because it is desired not to resize the image while it still contains smudges. The scaling process may use any of a number of different algorithms. For example, according to one algorithm, an image can be resized by the same factor in both dimensions until one dimension of the image reaches a predetermined size. Other algorithms perform size adjustment independently in both dimensions with some limit placed on the maximum difference between the 17) size adjustment magnifications in both dimensions. Both approaches work well, so we leave the choice of algorithm and its implementation to the reader. We first size each character image to the appropriate number of pixels, such as an 18x30 pixel array, using the algorithm described. People generally write letters diagonally. The slope differs from person to person. Character slant or skew is another meaningless variability of handwriting that carries no information, so we remove it. Returning to FIG. 1, block 30 following block 25 performs image deskewing.
ng). In other words, the function of block 30 is to make all the characters more evenly upright. Block 30 can use any of a number of conventional procedures to perform skew correction of the image. One such procedure performs a transformation of the following form on the image. In 22, X and y are the initial coordinates of the image, and Xo and y. , defines the origin, U and ■ are the coordinates of the transformed image, and m xy and yy are the image moments calculated by ) takes a value of 1 when the pixel at position x, y is "black", and takes a value of 0 otherwise. The effect of this function is to reduce the xy moments to essentially zero. Size adjustment (block 25) and tilt correction (block 3)
0) are both linear transformations. It would be advantageous to perform a composite transform on the cleaned image to directly form a tilt corrected image. By performing this compound operation, it is possible to avoid the need to display the resized image in explicit form as an array of pixels. This will eliminate sources of (computational) noise. Block 40, which follows block 30 in FIG. 1, thins the image. Image thinning also removes meaningless variability in the image. As mentioned above, skeletonization according to the prior art
The method on) uses a 3x3 window that is passed over the image. The center point of the H.383 window is turned off if certain conditions are met; and in most methods these conditions involve iterative testing with various predefined ill-conditions. For example, Ben-Lan and M.
onto) algorithm, a dark center is defined if it has the following conditions: l) its pixel has at least one bright neighbor out of four; and 2) its neighborhood has eight predefined 3x3 windows. does not match any of the following; if it satisfies, it is deleted (i.e., turned off or obscured). A four-neighborhood is a pixel to the east, north, west, or south of the considered pixel. Until recently, processors could only handle one task at a time anyway, so algorithms similar to the above were perfectly usable in software implementations. However, these algorithms are inevitably slow due to the nature of their procedures. Moreover, each of these prior art tests targets certain features of the pattern but not others. Different tests must be used to thin the strokes of different characters (e.g. vertical and horizontal lines). Furthermore, when using prior art tests, it is necessary that at least some of these tests be performed sequentially before a particular pixel can be reliably detected; and unless these tests are performed, the pixel cannot be turned off. The embodiment of FIG. 2 illustrates this problem. In FIG. 2, templates 100 and 11G are two 3x3 pixel windows. The three top pixels in template 100 are circle-shaded to indicate looking for ON pixels. The center pixel and the pixels within the center of the bottom row are shaded to indicate looking for OFF pixels. The remaining pixels are blank to indicate a "don't care" condition.
04 and 105) upper bright section (pixels 101, 10
Looking for edge conditions 2 and 103) predicts that the dark region must be at least two pixels thick. When such a condition is encountered, the center pixel (104) is turned from on to off (dark to bright). Thus, template 100 provides a mechanism for starting from the top and nibbling away the on area until only one on row is left. Template 110 works similarly, except that it has a bottom row that searches for off pixels while the center pixels of the first and second rows search for on pixels. Template 110 scrapes the on (dark) area from the bottom. The above template, where horizontal lines are thinned and vertical lines are not thinned, indicates that it is preferable to pass a number of different templates over the image, where each template is sensitive to different features of the image. It is also preferable (from a speed point of view) to pass the various templates simultaneously. However, if Tenbray) 100 and 110 are applied in image segment 10G of FIG.
It is not applicable in this case because the two-pixel wide horizontal line being drawn would be completely removed. The top row will be removed by template 100 and the bottom row by template 110. If thinning is to be performed efficiently, interdependencies between different templates must be broken. Unexpectedly, this interdependence is 3x3
It has been found that it is possible to defeat this by using a larger window. Therefore, we use a template set that includes at least some templates larger than 3x3. Some things are 3X3 and some things are 3
×4, some are 4×3, and some are 5×5. A feature of the set is that the templates can be passed over the image simultaneously. This possibility is realized by the special selection of templates that allow images to be modified in response to one template without detrimentally affecting the ability of other templates to modify images independently. This rather unique set of templates is shown in Figure 3. We have found that the set of templates shown in Figure 3 is a sufficient set. According to our invention, such a set is characterized in that it contains at least one template larger than 3x3, although other sets are of course possible. To explain the operation of the illustrated templates, we begin with templates 12G and 140. These templates correspond to templates 100 and 11G in FIG. Template 120 is shown as a 5x5 array, but the outer columns and rows are "don't care" so essentially this forms a 3x3 window. Template 120 differs from template 100 in that pixels 121 and 122 in template 12G test whether they are on pixels, and the corresponding pixels in template 100 are set to "don't care." different. That is, template 120 ensures that steered (lightened) pixels are above lines that extend in both directions. Template 140, on the other hand, is similar to template 1 in that it is effectively a 3X4 template.
Different from 10. It includes a 3×3 section similar to 3×3 template 110 (except for pixels 141 and 142) and it also includes pixel 143 in the center of the first row. Pixel 143 eventually requires the horizontal line to be three pixels wide before the pixel is allowed to be scraped (from the bottom). Templates I30 and 15G are template pair 120
and 140 similar template pairs are formed. ° Templates 130 and 15G thin vertical lines. Templates 180.170.18G and 190 face right, left, top and bottom, respectively. “Knee (k-ne6s)
Thin J; template 20G, 210.220
and 230 thins the inclined line from the top and from the bottom; and so on. 11i0-230 are all 5X5 templates. According to other approaches for skeletonization, size kXk
, where k is greater than 3, we have found that the template can track a particular algorithm for any value of k. This algorithm can be executed iteratively or in parallel. The effect of the kXk template is to erase the (k-2)X (k-2) central core of the template whenever a certain criterion (Talaiteriya) is met. As expected, the larger the value of k, the coarser the thinning, but the fewer calculations are required. The thinning criteria can be stated as follows. For kXk template, if its core RCxs
ySk) is on (dark), then the core is turned off (removed or brightened) if the following conditions are met: 1, χ (η)−1, 2, φ1 (η) > k−2, and 3, φ0 (η) > k−2, where φ0 (η) is the 4(k−
1) is the maximum length (within a pixel) of a chain of 4 connected off pixels within the contour. This is the neighborhood η. Also, φ1 (η) is the maximum length of a chain of 8 connected on pixels in the neighborhood, and χ(η) is the number of chains of 8 connected on pixels in the neighborhood. The value of χ(η) can be calculated using the following formula. In the above equation, η(i) corresponds to the first pixel within the neighborhood η, counting clockwise from the upper left corner of the neighborhood; It is 1 when , and O when the corresponding pixel is off. 8 Connectivity is defined below. 1 if one of the two pixels is adjacent to the other in any of its 8 neighbors; the two pixels are in the same 8-connected chain. The four-way chain includes adjacent neighbors only in the horizontal and vertical directions, but not in the diagonal directions. Criterion (1) is necessary to ensure that the connectivity of the straftures remains unchanged. If χ(η) −1, then the neighborhood contains a single chain of 8 connected on-pixels, and erasing the core destroys the connectivity between the core and any on-chain in the neighborhood. do not. If χ>1, then there are two or more 8-connected on pixels in the neighborhood, so erasing the core will separate the chains and destroy connectivity. If χ-0, then the core is not even isolated from neighboring pixels that are on, and it is completely surrounded by on pixels. In such cases, erasing is not preferred. Reference (2) maintains the line end (the line end (end line) is the end of the line). At level k, the line end is defined as having a width less than or equal to -2 in the core side length. For cores with 8 connected chains of k-2 pixels or less, the core is defined and maintained as the line end at level k. When χ(η)-1, φ1 (η)
is equal to the number of on pixels in the neighborhood. Criterion (3) can be considered as the inverse condition of criterion (2). If criterion (2) prevents line end erosion, criterion (3)
prevents inward erosion of the off region into the on region. The steps of the sequential processing multilevel kXkm lineization algorithm are listed below. 1, for each position (x, y) in ascending order of x, y = a) k
' set to 1; b) For the kernel R(XSyx k' ), consider a certain canceled neighborhood value as on and test the thinning criterion; C) if the thinning criterion in b) If it is satisfied,
In this case, for each side and its adjacent corner, set a certain erased value to OFF (except for the ERASE D A anchor value in the NW (northwest) corner, which is set to ON), and Set all other erased values on; test connectivity with respect to thinning criteria and set the core to ERASED if they are met or ERASED if it is an anchor core.
Set to EDA; if not, set '- to -1, and if '≧3, return to b); 2. Stop if pixel was not made ERASED or ERASEDA; Otherwise, all ER
Set the values of ASED, ER, and ASEDA to OFF and repeat (1). In the above, the anchor is a core placed at the starting line end of a diagonal line oriented in the direction of scanning. The anchor is N
It is the W line end; ie, the nucleus whose north side and two corners and its west side contain only off values. In the parallel algorithm, the thinning results on a path do not affect the thinning operation on that path, so all pixels of the image can be affected at the same time. To achieve this independence, applying the criterion to the window through all images in each iteration) is divided into four separate subcycles, and the thinning is applied to N,S on each of the four subcycles. , E and W only. The rules used to assign compass (spread) directions to nuclei are as follows: If the north flank contains only off values, then the nucleus is a north contour kernel (a "flank" is a contour pixel in the row or column containing the corner pixel); if the south edge contains only off values and the kernel is not the north contour kernel, then the kernel is the south contour kernel; if the east edge If the nucleus contains only off values and the nucleus is not a north or south contour nucleus, then the nucleus is an east contour nucleus; and if the west side contains only off values and the nucleus is not a north, south or west contour nucleus. In this case, the nucleus is the western contour nucleus. A further flowchart of the algorithm is shown in FIG. Depending on whether sequential or parallel processing is desired, the algorithms differ in their specifications, as explained below. The steps of the parallel processing binarization kXk thinning algorithm are listed below. Note that for this algorithm there is no need to retain the cleared value and it is turned off after it is cleared. 1. In a sequential (NSSSESW) iterative circular sequence, do the following for all contour nuclei: a) set k″-; b) for nucleus R(x,ySk) Test the thinning criteria and if they are met, erase the core and turn it off; otherwise set - to -1, and if '
If ≧3, repeat b); C) stop if no pixel is erased on the last 4 consecutive sub-cycles; otherwise a) for the next contour direction in the sequence.
Repeat. This concludes the explanation of the thinning process. Returning to FIG. 1, the skeletonization block 40 is followed by a feature extraction block 50. Although the operations are similar, skeletonization differs from feature extraction in mechanical terms. In skeletonization,
Unwanted pixels are identified and they are changed from dark to bright. In feature extraction, relatively macroscopic features are identified that aid in character classification. The macroscopic features identified are those types of features that do not depend on the size or thickness of the letter, but that give the letter its particular "signature."
) gives J. It is therefore these characteristics that block 50 seeks to identify. Feature extraction is operationally accomplished by passing a layer of windows over the image. The 6 windows in our system are 7X7 templates, and each template has endpoints,
Detect the presence of certain features like diagonal lines, horizontal lines, vertical lines etc. Detection is carried out by a main rule meaning that a feature is concluded to be present when a large proportion of 49 hydrogens (7×7) fits into the template. In our system, 49FJ as shown in Figure 4
Use different types of 7X7 templates. For each template, we form a "feature map" that essentially indicates the coordinates within the image array where the template's pattern matches the image. After developing feature maps of class 49tI corresponding to templates of class 498 of FIG. 4, in block BO we form a number of super-feature maps that are logical combinations (AND and OR) of the feature maps. In this way, we reduce the set from 49 maps to >18 maps (of an 18x30 pixel array). The reduction number was determined heuristically. We reduce the array (in the storage where we store the array) to We call this detected feature a "map" because we construct it and we place the detected feature within the appropriate position in the array. Thus we record the presence of the feature and its location. Other mechanisms can be used to record indications of "hit" positions, but it is conceptually easier to think of them in map form. An 18X30 array is too detailed for classification purposes. It turns out that the details can actually mask the text, but make the classification task more difficult (as the saying goes, "You can't see the forest for the trees"). Therefore, block 70 is coarsely blocked (blocki
ng) to reduce the 18×30 feature map to only a 3×5 feature map. This results in a final map or vector of 270 bits corresponding to 18 3.times.5 maps. Finally, block 80 executes a classification algorithm to
Determine the most likely candidate given 270 bits. Once it is known which template most likely corresponds to the character to be identified, a simple algorithm such as determining the lowest Hamming (Haa+mlng) distance may be sufficient. The important point is, of course, in determining these templates; and the manner in which they are
It requires learning methodologies (such as backpropagation) that the technology currently deals with. Hardware Implementation FIG. 1 shows the process of our OCR system, but it also closely represents the hardware implementation. The actual details of signal flow will vary with the particular design, but are entirely within the scope of normal circuit design techniques. Let us assume that each electronic circuit block described below provides the necessary signals and control to the following circuit blocks, along with the necessary identification as to which pixels are to be considered. As previously indicated, block 10 includes the usual equipment associated with the particular source of images to be classified. It is simply a commercially available frame grabber (1'raa + e g
camera) and a video camera coupled to a storage device. When the classification process is initiated, storage is accessed to retrieve the center pixel and 24 neighboring pixels, and the retrieved signal set is provided to block 20. Blocks 20 and 30 are in this case executed on a SUN workstation using the simple program shown in the appendix. Local memory is included in the microprocessor for storing image signals and, if necessary, temporary calculation results. In fact, any microprocessor can be used equally well, but if you need faster speeds than what is available with a microprocessor,
Specialized hardware can typically be designed to perform the required calculations. In fact, the necessary operations can be easily designed into one architecture. The output of block 30 is a series of signal sets, each having a center pixel and its neighboring pixels associated with it. Block 40 is implemented using the neural network of FIG. 6, which includes a series-coupled switch 400, a template match network 410, and a threshold network 420. An input signal corresponding to the values of the 25 pixels of the image covered by the 5×5 window at a given moment is applied to switch 400 at the input of 410 . Switch 400 ensures that these values are provided to the network simultaneously. Network 410 includes 25 input leads and a number of output leads equal to the number of templates stored. Within network 410, all input leads are coupled to each output lead through a column of preset coupling nodes. Each such column of combined nodes (e.g., the column containing nodes 411-414) has a stored one
Compatible with two templates. Therefore, the signal of each output lead indicates which template the input signal belongs to. More specifically, the coupling node uses 3
It has "diversity" of types. The response to a match or mismatch is different for each variety according to the truth table below. Input Synapse Output OE 0 1 E 1 1 I −2 0D 0 1 D O The node 411 that executes this truth table can be easily realized using a gated amplifier. Information regarding whether a node is an E, 1, or D node can be stored in two flip-flop sets attached to each node (when diversity is desired). Alternatively, the information is "connected" to an array of links attached to the array of nodes.
) J is possible. Programming (or combining) of templates can be accomplished by burn-through of appropriate links. If the template were completely immutable, it would naturally be possible to design the template information directly into the integrated circuit mask of the array of nodes. Current in the output line flows through the impedance, and that flow raises the voltage on each output line of network 410 to a level proportional to the degree of matching between one in the set of input signals and the excitation node. It will be appreciated that the voltage will also be reduced by the degree of matching between one in the set of input signals and the blocking node. The output line of network 41G is fed to a threshold circuit 420, where its impedance can optionally be placed. Network 420 provides a set of thresholds to the output signal of network 410. In particular, the circuit network 420 is
A set of two inputs, one input responsive to the human power lead of network 420, and a number of sources (eg 425-427) connected to the second inputs of amplifiers 421-424.
Includes human power amplifiers (e.g. 421-424). Each of the sources supplies a different current and each amplifier 42 accordingly
1-424 develops a voltage on its second lead related to the particular coupling that lead has to sources 425-427. In this manner, different amplifiers within circuitry 420 can be provided with different thresholds. The output leads of network 420 are the outputs of amplifiers 421-424, and they assume a logic value of 1 or 0 depending on whether the amplifier input signal exceeds or does not exceed a threshold. The block 50 is composed of a neural network as shown in FIG. However, since block 50 handles 7x7 templates as opposed to the 5x5 templates of block 40, storage 55 is inserted between the two neural networks to buffer the data. Block BO generates 18 feature maps. It simply accepts the output of block 50 and stores the appropriate information in memory along with a signal characterizing the consistency of the center pixel. The result is 18 memory segments, each segment containing information about features found within the image. Each such segment is therefore one of our feature maps. Coarse blo block 70
cking) is accomplished by using 18 additional small memory segments, possibly within the same physical storage device. Block 70 stores information within these small memory segments regarding features found within appropriately selected portions of the large memory segments. When the size of the initial image is 18 pixels by 30 pixels, this selection is easily achieved using a counter operating with modulus 5, where the full value of the counter (full
value) is used to access the large segment, while the whole number after dividing by modulus 5
number) is used to identify cells within the 18 small memory segments. The 270 storage locations of the small memory segment are block 7
produces an output of 0, resulting in a vector representing the characters contained within the image. The last function that needs to be performed is to feed this vector to some circuitry that will select the most likely candidate character for the given feature vector. This is the function of block 80. Block 80 may be performed in a number of ways. For example, it may be advantageous to use the teachings of Hopfield's content matching scheme in the aforementioned US Pat. No. 4,880,188. Following this teaching, the feedback circuitry of his circuit can be inputted with information about the characters in the subject set. Using this memorized information, content matching form (
The associative (associative) storage identifies the character feature vector that is closest to the supplied feature vector. Hopfield's network is extremely robust (strongly adaptive) so that it makes "accurate" selections even when the input appears highly distorted. However, the design of the feedback network for the Hopfield circuit is somewhat difficult because feedback to the Hopfield circuit causes all stored vectors to be distributed within the feedback network and mixed with each other. This difficulty limits how we recognize the letter ``4'', for example, and the limits of when it is possible to recognize ``4'' and when we are unsure and refuse to decide. is compounded by the fact that it is not known exactly. Despite this, we can recognize the letter "4" just by looking at it! This research attempts to solve this problem by having the classification circuit perform "learning" through trial and error in order to arrive at the correct decision. One configuration with the possibility for such "learning" is shown in FIG. In the current state of the art, the Kono technique is generally referred to as “backpropagation
ack propagation). This is, for example, ``Exploration within the fine structure of recognition (Exploration)''.
ratlons in tlle MIcrosLru
cLure ol' Cognitlon) J, M
IT Publishing, 1988, Chapter 8 “Parallel distribution processing (Pa
rall Distributed Processes
``Learning by Error Propagation'' in eds.
Internal Rcpresentatlons
by Error Propagation) as explained by E. Rammelhardt in J. FIG. 7 includes interconnect networks 81 and 82 coupled in series. An input signal set is applied to the input of network 81 and an output signal set appears at the output of network 82. Each network has multiple input and output leads, with each input lead connected to all of the output leads. More specifically, each input lead i has a connection weight
W, is connected to each output lead wire j. In our application, network 81 has 270 input leads and 40 input leads. Network 82 has 40 input leads and 10 output leads. The number of input leads of network 81 is determined by the length of the feature vector. The number of outputs of network 82 is determined by the number of characters in the classification set. The number of intermediate lead wires (40 in this case) is determined heuristically. The training of the circuit of FIG. 7 provides the developed feature vectors of the known characters and maximizes the output signal at a designated output lead of the circuitry 82 corresponding to the provided known characters. This can be done by adjusting the weights in both networks 81 and 82. The available samples of all the characters in the set to be sorted are thus fed into the network, each time using weights in the interconnection network to maximize the signal on the appropriate output lead. is adjusted. In this way, one set of weights W for both networks
[j is formed. It may be appropriate to state that the coupling way Wlj is essentially an analog quantity and that the circuit operates in an analog manner. That is, the voltage on any output lead of network 81 will be the voltage at any output lead coupled to that output lead.
lred up) is the sum of the contributions of J weights. Each weight is "fired" by a binary signal on the input lead to which it is coupled. Therefore, the output at lead j is equal to where B is the value of the first human lead (0
Or 1). Although the concept of such learning networks is fairly well understood, the challenge remains of implementing such analog circuits efficiently and compactly. The requirements for such circuits are not simple. For example, if optimization of the network is to be achieved, the minimum weight change or modification must be fairly small. The iterative improvement method described above is based on the heuristic assumption that better weights may be found in the vicinity of good ones, but that heuristic assumption fails when the subdivision is not fine enough. For small networks 81, an analog depth of at least 8 bits is required. Larger networks will require finer subdivision. The weights must also represent both positive and negative values, and changes must be easily reversible. During the learning and training sections, the number of changes to the weights may be sufficiently large. Therefore, a practical circuit must allow for quick modification of weights. After considering these various requirements, an efficient analog coupling weight circuit or strength circuit was fabricated using MO3VLSI technology. While each connection weight in FIG. 7 is simply shown as a black circle, FIG. 8 shows the circuitry for implementing these circles. More specifically, FIG. 8 shows input line 83 and output line 8.
Figure 4 shows one coupling weight with its coupling to 4 and some conventional circuits. First, the mutual coupling weight part in FIG.
01 and 8G2 and small MOS switches 803 and 804
, a somewhat large MOS transistor 805, and a differential amplifier 8
0B and a multiplier 807. Second, the circuit of FIG. 8 includes a charge coupled switch 808, a sense switch 809, and various control leads. The circuit operates as follows. Capacitors 801 and 8
02 are charged to different voltage levels, and the voltage level difference is reflected in the output voltage of the differential amplifier 806. amplifier 8
0B has its two inputs connected to capacitors 801 and 802. Amplifier 80 representing the coupling weights
The output of B is connected to multiplier 807. Multiplier 807 may be any conventional transconductance amplifier. Multiplier 807 is also connected to input line 83 of the cross-coupling network. The output of converter 807 is connected to the output lead of the interconnect network. Thus, multiplier 807 sends a current to the output lead that is the product of the signal on the input lead and the value of the combination weight. The coupling weight is represented by the differential voltage created by amplifier 80B in response to the voltage difference between capacitors 801 and 802. The voltage difference on capacitors 801 and 802 is maintained for a long time (compared to the operations involved within the OCR system);
It has also been found that freshening is not necessary when the circuit is maintained at a moderately low temperature. For example, 77°K
There was no detectable loss over time. One advantage of our circuit is that the weight is vC80
It will be seen that it is proportional to 1-vC802, so even if there is a charge loss, there is no change in the weight as a result when it is the same on both capacitors. Nevertheless, a clear path must be provided to refresh the information onto capacitors 881 and 8G2. Furthermore, capacitors 801 and 802
A path must be provided for setting the voltage (charge) value on the top and modifying that setting to enable the "learning" procedure described above. This is where the rest of the switches and controls come in. To bring the coupling weights to the desired level, switch 808 is briefly opened to bring the fixed voltage level to voltage Rgte.
to the capacitor 801. Voltage corresponds to a fixed charge. Switch 80B is then turned off. At this point, capacitor 801 is connected to the non-inverting input of amplifier 80B to provide a positive voltage, while capacitor 802
is connected to the inverting input of amplifier 80B, so the coupling weight is at the maximum positive level. Connection weights are changed as follows. First, transistors 803 and 804 are turned on. The transistor 803 is extremely small compared to the transistor 805, and therefore, to make the phenomenon easier to understand, the transistor 8◎3 can be considered to be a simple switch. By comparison, transistor 805 is long and narrow, so when it is turned on, it can be thought of as a capacitor. Switch 803 is closed and transistor 805
When turned on (assuming it is an n-channel device), the charge on capacitor 801 is
01 and the inverted charge on transistor 805, which is turned on. Transistor 803 is then turned off, thereby trapping charge within transistor 805. Transistor 804 is then turned on, and if transistor 805 is then turned off slowly, the mobile charge in its channel will diffuse through switch 804 and into capacitor 802. Therefore, the above steps transfer an amount of charge from capacitor 801 to capacitor 802. This corresponds to capacitor voltage changes and mutual coupling weight changes. The above sequence can be repeated as many times as necessary to bring the combination weights to the desired level. In this way, optimization of the connection weights proceeds during the training period, so that each connection weight in networks 81 and 82 is set to the correct level. The above description relates to the training aspect of the circuit. Once the learning process is finished, a means should be provided: l) for determining the values of the weights, and 2) for refreshing losses over time, etc. This includes a detection switch 809, an A/D converter, and a D/A
This is achieved using a converter and non-volatile storage. To determine the weight values within the interconnect network, all input leads are turned on one at a time. Each time a lead is turned on, the sense switches 809 of the weights coupled to its input leads are turned on in sequence to cause each amplifier's voltage to appear on the sense bus 810 . The voltage is supplied to A/D converter 811 and the resulting digital information is stored in storage device 812. In this manner, all weights are converted to digital form and stored in storage 1112. During a refresh operation, each combined weight is isolated as described above, but at this time the voltage output on sense bus 810 is connected to the D/D output to which the digital output of storage device 812 is applied.
It is compared with the analog voltage of A converter 813 in amplifier 814 . Of course, storage device 812 is caused to emit a digital output corresponding to the refreshed combination weights. Based on the comparison results, the sequence of switch elements 803, 804 and 805 is amplified.
14, the capacitor 801
The voltage across capacitor 802 is increased or decreased. The output of bus 81G is converted to A/D converter t.
A switch 815 controls whether to supply the signal to ill or to the comparator amplifier 814. If it is necessary to completely discharge both capacitors 801 and 802, the voltage on voltage source 81B can be reduced to zero and switches 803, 804 and 805 can be turned on. In addition, Tables 1 to 15 refer to “Fire (rlre)
Display the J source program. In Tables 1 to 3, check the broken image, and if it is completely blank, give -1, if it is connected, give 0, if it is connected except for a minute part, give 1, and if it is in poor condition, give -1. If they are not connected, return 2 for each. It is assumed that black pixels are positive. In Tables 4(1) and 4(2), magical recursive burning routines are shown. In Table 5, the above process is shown when black pixels are not assumed to be positive. In Tables 6-15, most of the processing for the linear transformation program is performed. Table 1 Table 2 //flre, c 9/7/88 LDJ〃 77 check for broken image
s// returns -1if complete
ly blank // returns Oif co
connected // returns l if co
connected except for samll
flyspecs // returns 2 if
badly disconnected // uses
recursive brushflre a1go
rithm//Diagnostic output
: prirus number of segmen
ts. // and 1 location and code
of the largest // 5ide eff
ec

【:5ets up Lseg (in rec2
com)// IMPORTANT ASSUMFrT
ON: firel assumes img、pix
 black pixels are PO5mVE/
/ and white pixels are ze
ro =// Tf you can’t guara
ntee that、 call fire□ ins
+ead of &eQ// negative pi
xels will cause rouble// 
Th1s routine modifies img
、pix l +#1nclude″err1.h” 岨nclude ”fire、h” 1nline int 1m1n(int4 int 
b)(return(iくb? a : b);1in
line int imax(int a、 int 
b)[remrn(a>b? a : b); )st
ユロc int xdl; //copy ofimg
、xstaoc +ntydl;  //arid i
mg、ystatic char” pixl;// 
and img、pixstatic Pa1r” p
i; 5tatic Pa1r” p2; 5tatic int ust 5ize = −1;
5tatic Seg myseg;// segem
ent being processedSCg Ls
eg;   // longest segment 
there 1sstatic int nseg; 5tatic int totpix;// tota
l pixels in imageint&elσm
age img)( // make 5ure we have allc
ated enough room to keep 
our pair−1ists:int 1siz x
 img、x傘img、y;// max possi
ble 5ize of Li5t req命edif
 (lsiz > 1ist−size) 1if(p
I)( delete pi; delete p2; pi m new Pa1r[1sizl;p2 s+
 new Pa1r[1sizl;1ist 5ize
 x 1siz; Lseg、1ist ! O; // no long
est segment yetLseg、5ize 
wn OH// &st seg will beat
 this for surenseg m O; toψix冨0; 第3表 // find first black pixel
、 so we can 1nitiate the 
bum there:int xx; int yy; for (’/’l ” o; yy < img、y
; yy++)(for(xxsaO;xx<img、
x; xx+十)(if (img、pix[yyl[
xxl > O) (/l/ fprintf(std
err、 ”&stx !%dfirstym翫10.
 xx、 yy);// a lot of thes
e things might logically 
be arguments to burnQ。 // but 5tatic vaiables ue
 faster & simplernseg++; 
// count this segmentmyse
g、ashes m −nseg;myseg、1is
t m (Lseg、1ist !+m pi) ? 
pi : p2;myseg、sizemo; xdl wm img、x; ydl vm img、
y; pixl wa img、pix;burn(x
x、 ’IY)J/ burn、 baby、 bum
!if (myseg、5ize > Lseg、5i
ze) Lseg g myseg;#1fdef″r
EsT fprintf(stderr、 ”Saw%d se
gments’、 nseg);if (nseg) 
fprintf(stderr、 ”Longest 
(code%d) 5tarts at ’Fod%d
o。 Lseg、uhes、 Lscg、1st[O]、x、
 Lseg、1ist(O]、y);#endif if (nseg w 0)re+urn −1;if
 (nseg m 1) return O:floa
t frac m float(Lseg、5ize)
 / floatαotpix);const flo
at m1nfrac m 、9;if (fTac>
m m1nfrac) return 1;rentr
n 2; 第4(1)表 // the magical recursive 
burning routine// turns t
o ashes all points that a
re 8−connected to the 1ni
tial pointvoid burn( int xcent。 int ycent   77 center of 
3 x 3 region or 1nterest/
/1fthiipointisoff−settle:
  ・’1f(xcent(OycentcOxcen
c>mxdl  ycenowydl)return;
//No″r1:: this is 1ndeed 
h check for > O。 // not just nonzero、 so t
hings don’t burn twice。 1f(pixl[ycentl[xcentl > 0
)(int top m myseg、5ize++;
// keep track of leng由of 
segmenttorpix++;  // cour
u total pixelspixl[ycentl
[xcentl mmyseg、as市eS’、II 
turn L)tis point 10 ashes
burn(xcent+1. ycent+1);//
 1gn1te ncigborsburn(xccn
t+l、 ycent );burn(xcent+l
、 ycent−1);burn(xcent 、 y
cent+1);burn(xcent 、ycent
−1);burn(xcent−1,ycent+1)
;burn(xcenc1. ycent );bur
n(xcenc1. yeent−1);#dcfln
e jumpbreaks YES#ifdefjum
pbreaks 第4 (2)表 int jump = imax(xdl、 ydl)
;jump = jump / 20; if (jump < 3) jump = 3;if
 (jump > 1) ( burn(xcent+jump、ycent−jum
p);burn(xcent 、 ycent+jum
p);burn(xcent  、ycent−jum
p);burn(xcent−jump、 ycent
−jump);#endif 第6表 // do most of the work fo
r 1inear transformamn pro
gram// see 1in、plan for e
xtended discussion// if y
ou don’t care about grayl
evels。 // Ca1ler allocates the a
rray; we fill it。 #1nclude 1ldo lin、h”1nlin
e int imax(int a、 int b)(
return(a>b? a : b); )第5表 int fire(Image img) (retu
rn (fwl(fng) );第7表 void do−1in( const Image raw、// 1nput 
image−// Om> all paramete
rs take default v耐ucscons
t char” sname// filename、
 for informational messag
es// prowide″” if you can
’t do betterP社−bl; inE pp* qQ; for (q(1” o; qq < rag、)’;
 qq4+) [bl[1b11.y −qQ; ibl++; 第8表 第9表 voiddo 1inl( const int pdimJI 5ize of 
1nput arrayconst int qdim
)1.。 const Pa1r” blJl 1nput : 
1ist of black pixelsconst
 int nbl、 // 5ize of 5aid
 1istconst int known fit、
// 1 =) char already fill
s box pdim by qdim。 Image des、  // result : a
rray of small integersFIL
E” paxxm−fpJI parameter f
ile filepointer// O=x) al
l parameters take default
 values// provide 曲if you
 can’t do betterFget(kern
el、2);// convolution kern
el (units ofPQ rows/cots)
Iget(mingray、3);// this o
r larger: return grayleve
l、else recurn zer。 float pkem m kernel;float
 qkern m kernel;const int
 XO諺0; const int yOx O; const float xmid x (des、x
 −xO) / 2.0;const float y
mid x (des、y −yO) / 2.0;/
/ find raw bounding boxin
t po、 qO,p2. q2;int ibl; int PP、 (Iq; if (known−fit) ( po冨0; qOg O; p2−p市m; q2 w q市m: ) else ( pO= bl[0]、x; qO−bl[o]、y;p
2 x po; q2雪qO; for (ibl x 1; ibl < nbl; 
ibl++)(pp −bl[1b11.x; qq 
−bl[1b11.y;pQ = 1m1n(po、 
PP);p2 x imax(p2. pp);qo 
x 1m1n(qO,qq); q2 x 1rnax(q2. qq);p2++; 
q2++; 第10表 // calculate some moments
:float” xyflt m new float
(des、y、 des、x);// note th
at we are treaig the pixe
ls as BOXES of ink、 not p
oints// so the (0,0) pixe
l extends from (0,0) to (
1−cps、1−eps)// and has it
s center at (,5,,5)float 
pmid m (po + p2) / 2.0;fl
oat qmid 諺(QO+ q2) / 2.0;
// but if we 5hift the m1
ddle half a bit。 77 we can pretend the (0,
0) pixel is centered at (
0,0)float pmx x pmid −,5;
float qmx m qmid −,5;floa
t mpq x O,;// PQ rnomentf
loat mqq ! O,;// QQ momen
tfor (ibl m O; ibl < nbl;
 1bl−+) [pp −bl[1b11.x; q
q −bl[1b11.y;mpq +m (qq −
qmx)”(pP −pmx);mqq十郡(qq−q
mX)”(qq−q江■);】 float theta sr mpq / mqq;
// Note: 5ince pixels are
 numbered from UPPER1eft。 // positive theta corresp
onds to ”// neganve theta
 corresponds to ”r// (pL 
qt) is the coordinate whe
re (p、q) will go when the
 char is deskewed。 // Th1s is not quite the 
same as (x、y) 5ince the 1
atter// has 5ize changes 
as well。 jFIL1表 // Ca1culate min and mix 
horiz coordinates。 float P(O諺pryu%bl[0]、x、 b
l[o]、y) ;// Iefunost blac
k pixelpt2 m fmax(pt2. XX
II);float dsw wa pt2− pto
 J/ deskewed widthRout kf
 wm dsw / (p2−PO);// krun
ch factorauao+c、pA−pLl、qj
−qLI、IIteJdew、kf、nfat);第1
2表 第13表 // c31culate the coeffici
ents of the 1inear transf
ormation:float doo、 dol、 
d02. dlo、 di 1. di2;if (i
nflate) (// old ”1nflatio
nary” schemefloat fif = n
fat > fcorn ?d 11 = (des、
y−yO) / conhgt;// make ou
tput char fill its box ve
rticallydoo−dll”fif; dot = −dil ” fif ” theta;
else (// never 1nflate sc
hemefloat ygrow = (des、y−
yO)/ conhgt;float xgrow m
 (des、x−xo) / conwid;/l m
ake the output 5pace all 
white而xx、面y; for CYY = yo; y’J < des、y
; yy++) (for (xx w xo; xx
 < des、x; xx→)(xyflt[yyl[
xxl x O,;// and 5tan bequ
ea出ing blacknessint 5pip 
m imax(1,1nt(10°di 1))Jsp
ip =x= 5cans per 1nput pi
xelfloat 5tep = pkern / 5
pip;float offset = 5tep /
 2.;int ii; fioat f)l、 fq; int iy; float fxo、 ii2; int ixo、 ii2; float rxo、 ii2; d 11 = dogrow;// 5hrink y
第14表 #define oops(X)(fpriruf(s
tderr、”oops (X)%$%f%nコ、sn
ame、fxαfx2); continue;)fo
r (ibl s O; ibl < nbl; ib
l++)(// 1oop over black 1
nput pixelspp −bl[1b11.x;
 qq −bl[1b11.y;fxos+doO”p
p +d01”qq+d02;//5urtofsca
nline(inxspace)ii2 露doO”(
pkcm+pp)+dO1”qq+d02;//end
orscanline(、、)ixo s+ 1nt(
fxo);// integer pansix2 s
 1nt(ii2); rxo m fxo −ixo;// remILin
dersnc2 wa ii2− ii2; if (ixo < 0) oops(1) ;// 
error checks & defenceif 
(ixo >m des、x) oops(2) ;i
f (ii2 < O) oops(3) ;if (
ii2 >wa des、x) oops(4) ;f
or (if ! O; if < 5pip; ii
+−+) [// 1oop over 5can u
nes per 1nput pixelfq ! q
q + 0ffset +5tep”ii;fy−dl
o”pp+dll”fq十d12;iy m (int
) fy; if (iy < O) oops(5) ;if (
iy )w des、y) oops(6) ;xyf
lt[iyl[ixO] −m rxo;xyflt[
iyl[社]軸■λ for (int ii ! ixo; jj < i
i2; jj++)(xyflt[1ylQil +s
+ 1.0;第15表 77 clip the bouom off of 
the gray−scale// using qu
estionable threshold sche
me// &st、 find blackest o
utput pixelfloat zmax w O
; for (yy ! yO; yy < des、y;
 yy→)(for (xx m xO; xx < 
dcs、x; xx++ ) (zmax = fma
x(zmax、 xyflt[yyl(xxl);//
 then clip away、、、。 for 01)l ! yO; yy < des、y
; yy+−+) (for (xx z xo; x
x < des、x: xx++ ) (float 
zz w xyflt[yylIxxl ;int g
 x 1nt(9,9傘zz / zmax);if 
(gr < mingray) gr z O;des
、pix[yyl[xxl m 謀lllllllll
lllllllllIlllIllIllllllll
IIIll11/ put away all our
 toys:delete2(xyflt);
[:5ets up Lseg (in rec2
com) // IMPORTANT ASSUMFrT
ON: firel assumes img, pix
black pixels are PO5mVE/
/ and white pixels are ze
ro = // Tf you can't guara
ntee that, call fire□ ins
+ead of &eQ//negative pi
xels will cause rouble//
Th1s routine modifications img
, pix l +#1nclude"err1.h" 岨nclude "fire, h" 1nline int 1m1n(int4 int
b) (return(ikub? a : b); 1in
line int imax(int a, int
b) [remrn(a>b? a : b); ) st
Yuro c int xdl; //copy ofimg
, xstaoc +ntydl; //arid i
mg, ystatic char” pixl;//
and img, pixstatic Pa1r"p
i; 5tatic Pa1r"p2; 5tatic int ust 5ize = -1;
5tatic Seg myseg; // segem
ent being processedSCg Ls
eg; // longest segment
there 1sstatic int nseg; 5tatic int totpix; // tota
l pixels in imageint&elσm
age img) ( // make 5ure we have allc
enough room to keep
our pair-1ists: int 1 size x
img, x umbrella img, y; // max possi
ble 5ize of Li5t request life edif
(lsiz > 1ist-size) 1if(p
I) (delete pi; delete p2; pi m new Pa1r[1sizl;p2 s+
new Pa1r[1sizl;1ist 5ize
x 1size; Lseg, 1ist! O; // no long
est segment yetLseg, 5ize
wn OH// &st seg will beat
this for surenseg m O; to ψix 0; Table 3 // find first black pixel
, so we can initiate the
bum there: int xx; int yy; for ('/'l ” o; yy < img, y
;yy++)(for(xxsaO;xx<img,
x; xx+ten)(if (img, pix[yyl[
xxl > O) (/l/ fprintf(std
err, ”&stx!%dfirstym10.
xx, yy); // a lot of thes
e things might be logically
be arguments to burnQ. // but 5tatic variables ue
faster &simplernseg++;
// count this segment
g, ashes m-nseg; myseg, 1is
t m (Lseg, 1st!+m pi)?
pi: p2; myseg, sizemo; xdl wm img, x; ydl vm img,
y; pixl wa img, pix; burn(x
x, 'IY)J/ burn, baby, bum
! if (myseg, 5ize > Lseg, 5i
ze) Lseg g myseg;#1fdef″r
EsT fprintf(stderr, ”Saw%d se
gments', nseg); if (nseg)
fprintf(stderr, ”Longest
(code%d) 5tarts at 'Fod%d
o. Lseg, uhes, Lscg, 1st [O], x,
Lseg, 1ist(O], y);#endif if (nseg w 0)re+urn -1;if
(nseg m 1) return O: float
t frac m float (Lseg, 5ize)
/ float αotpix); const float
at m1nfrac m ,9;if (fTac>
m m1nfrac) return 1; rentr
n 2; Table 4 (1) // the magical recursive
burning routine // turns
o ashes all points that a
re 8-connected to the 1ni
tial point void burn ( int xcent. int ycent 77 center of
3 x 3 region or 1 interest/
/1fthiipointisoff-settle:
・'1f(xcent(OycentcOxcen
c>mxdl ycenowydl)return;
//No″r1:: this is 1ndeed
h check for > O. // not just nonzero, so t
Hings don't burn twice. 1f(pixl[ycentl[xcentl > 0
) (int top m myseg, 5ize++;
// keep track of length of
segmenttorpix++; // course
u total pixelspixl[ycentl
[xcentl mmyseg, as city eS', II
turn L)is point 10 ashes
burn(xcent+1.ycent+1);//
1gn1te ncigborsburn(xccn
t+l, ycent); burn(xcent+l
, ycent-1); burn(xcent, y
cent+1); burn(xcent, ycent
-1); burn(xcent-1, ycent+1)
;burn(xcenc1.ycent);bur
n(xcenc1. yient-1); #dcfln
e jump breaks YES#ifdefjum
pbreaks Part 4 (2) Table int jump = imax(xdl, ydl)
;jump = jump / 20; if (jump < 3) jump = 3; if
(jump > 1) ( burn (xcent+jump, ycent-jum
p); burn(xcent, ycent+jum
p);burn(xcent, ycent-jum
p); burn(xcent-jump, ycent
-jump); #endif Table 6 // do most of the work for
r 1inear transform pro
gram // see 1in, plan for e
xtended discussion // if y
you don't care about grayl
evels. // Caller allocates the a
rray; we fill it. #1nclude 1ldo lin, h"1nlin
e int imax(int a, int b)(
return (a>b? a : b); ) Table 5 int fire (Image img) (retu
rn (fwl(fng)); Table 7 void do-1in (const Image raw, // 1nput
image-// Om> all parameters
rs take default v ucscons
t char” sname // filename,
for informational message
es// prowide”” if you can
't do better P company-bl; inE pp* qQ; for (q(1"o; qq <rag,)';
qq4+) [bl[1b11. y -qQ; ibl++; Table 8 Table 9 void 1inl(const int pdimJI 5ize of
1nput arrayconst int qdim
)1. . const Pa1r” blJl 1nput:
1st of black pixelsconst
int nbl, // 5ize of 5aid
1istconst int known fit,
// 1 =) char already fill
s box pdim by qdim. Image des, // result: a
rray of small integersFIL
E” paxxm-fpJI parameter f
ile filepointer // O=x) al
l parameters take default
values // provide song if you
can't do betterFget(kern
el, 2); // convolution kern
el (units of PQ rows/cotts)
Iget(mingray, 3);// this o
r larger: return gray level
l, else return zer. float pkem kernel; float
qkern m kernel;const int
XO proverb 0; const int yOx O; const float xmid x (des, x
-xO) / 2.0; const float y
mid x (des, y −yO) / 2.0; /
/ find raw bounding boxin
t po, qO, p2. q2; int ibl; int PP, (Iq; if (known-fit) (po 0; qOg O; p2-p city m; q2 w q city m: ) else (pO= bl[0], x; qO -bl[o],y;p
2 x po; q2 snow qO; for (ibl x 1; ibl <nbl;
ibl++) (pp -bl[1b11.x; qq
-bl[1b11. y; pQ = 1m1n(po,
PP);p2 x imax(p2.pp);qo
x 1m1n (qO, qq); q2 x 1rnax (q2. qq); p2++;
q2++; Table 10 // calculate some moments
:float” xyflt m new float
(des, y, des, x); // note th
at we are treaig the pixe
ls as BOXES of ink, not p
oints// so the (0,0) pixe
l extends from (0,0) to (
1-cps, 1-eps) // and has it
s center at (,5,,5)float
pmid m (po + p2) / 2.0;fl
oat qmid proverb (QO+ q2) / 2.0;
// but if we 5hift the m1
ddle half a bit. 77 we can defend the (0,
0) pixel is centered at (
0,0) float pmx x pmid −,5;
float qmx m qmid −,5; float
t mpq x O,; // PQ rnomentf
loat mqq! O,; // QQ momen
tfor (ibl m O; ibl <nbl;
1bl-+) [pp-bl[1b11. x; q
q -bl[1b11. y;mpq +m (qq −
qmx)” (pP -pmx); mqq ten counties (qq-q
mX)” (qq−q え■);] float theta sr mpq / mqq;
// Note: 5ince pixels are
numbered from UPPER1ef. // positive theta corresp
onds to ”// neganve theta
corresponds to ”r// (pL
qt) is the coordinate which
re (p, q) will go when the
char is deskewed. // Th1s is not quit the
same as (x,y) 5ince the 1
atter // has 5ize changes
as well. jFIL1 table // Calculate min and mix
horiz coordinates. float P(Oproverb pryu%bl[0], x, b
l[o], y) ;// Iefunost blac
k pixelpt2 m fmax(pt2.XX
II); float dsw wa pt2- pto
J/deskewed widthRout kf
wm dsw / (p2-PO); // krun
ch factorauao+c, pA-pLl, qj
-qLI, IIteJdew, kf, nfat); 1st
Table 2 Table 13 // c31 curate the coeffici
ents of the 1inear transf
Ormation: float doo, dol,
d02. dlo, di 1. di2; if (i
nflate) (// old ”1nflatio
nary” schemefloat fif = n
fat>fcorn? d 11 = (des,
y-yO) / conhgt; // make ou
tput char fill its box ve
rticallydoo-dll”fif; dot = -dil “fif” theta;
else (// never 1nflate sc
hemefloat ygrow = (des, y-
yO) / conhgt; float xgrow m
(des, x-xo) / conwid; / l m
ake the output 5pace all
white and xx, face y; for CYY = yo; y'J < des, y
; yy++) (for (xx w xo; xx
< des, x; xx→)(xyflt[yyl[
xxl x O,;// and 5tan bequ
ea out blacknessint 5pip
m imax(1,1nt(10°di 1))Jsp
ip =x= 5cans per 1nput pi
xelfloat 5tep = pkern / 5
pip; float offset = 5tep /
2. ; int ii; fioat f) l, fq; int iy; float fxo, ii2; int ixo, ii2; float rxo, ii2; d 11 = dogrow; // 5hrink y
Table 14 #define oops (X) (fpriruf(s
tderr,”oops (X)%$%f%nko,sn
ame, fxαfx2); continue;)fo
r (ibls O; ibl <nbl; ib
l++) (// 1oop over black 1
nput pixelspp -bl[1b11. x;
qq -bl[1b11. y;fxos+doO”p
p +d01”qq+d02;//5urtofsca
nline (inxspace) ii2 dew doO” (
pkcm+pp)+dO1”qq+d02;//end
orscanline(,,)ixo s+ 1nt(
fxo); // integer pansix2 s
1nt(ii2); rxom fxo-ixo; // remILin
dersnc2 wa ii2- ii2; if (ixo < 0) oops(1); //
error checks & defense
(ixo >m des, x) oops(2);i
f (ii2 < O) oops(3) ;if (
ii2 >wa des, x) oops(4);f
or (if ! O; if <5pip; ii
+-+) [// 1oop over 5can u
nes per 1nput pixelfq! q
q + 0ffset +5tep"ii; fy-dl
o”pp+dll”fq10d12;iy m (int
) fy; if (iy < O) oops(5) ;if (
iy )w des,y) oops(6);xyf
lt[iyl[ixO] -m rxo;xyflt[
iyl [company] axis ■λ for (int ii ! ixo; jj < i
i2; jj++) (xyflt[1ylQil +s
+ 1.0; Table 15 77 clip the bouom off of
the gray-scale // using qu
estionable threshold sche
me// &st, find blackest o
output pixel float zmax w O
; for (yy! yO; yy < des, y;
yy→)(for (xx m xO; xx <
dcs, x; xx++ ) (zmax = fma
x(zmax, xyflt[yyl(xxl); //
then clip away... for 01)l! yO; yy < des, y
; yy+-+) (for (xx z xo; x
x < des, x: xx++ ) (float
zz w xyflt[yylIxxl;int g
x 1nt (9,9 umbrella zz / zmax); if
(gr < mingray) gr z O; des
, pix[yyl[xxl m plollllllllll
lllllllllllllllllllllllllllllll
IIIll11/ put away all our
toys:delete2(xyflt);

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は分類法の一般的な流れ図; 第2図は独立の3x3テンプレートを使用したときに発
生する問題例; 第3図は3×3より大きいテンプレートを含むところの
本発明で使用される細線化テンプレートのセット; 第4図は特徴抽出テンプレートのセット;第5図は第3
図のテンプレートに関連して使用される手順とは異なる
が3×3より大きい窓を使用する細線化手順の流れ図; 第6図は第3図及び第4図のテンプレートに関連して使
用される神経回路網決定回路の構造:第7図はアナログ
値結合ウェイトを有する2層神経回路網の構造:及び、 第8図はアナログ値結合ウェイト神経回路網用の一実施
態様を示す。 121.122,141,142・・・画素801.8
02・・・コンデンサ 803.804.808,809.815.826・・
・スイッチ805.825.827・・・MOS)ラン
ジスタ80[i、814・・・比較器手段 801・・・掛算手段 出 願 人:アメリカン テレフォン テレグラフ カムパニ アンド 1−49・・・特徴抽出テンプレート 120.130,140.150−350・・・細線化
テンプレートFIG、  3 FIG、  4 FIG、4  ()7″?) FIG、  4 (フプ°ン) FIG。 FIG。 FIG。
Figure 1 is a general flowchart of the classification method; Figure 2 is an example of a problem that arises when using independent 3x3 templates; Figure 3 is used in the present invention involving templates larger than 3x3. A set of thinning templates; Figure 4 is a set of feature extraction templates; Figure 5 is a set of feature extraction templates;
Flowchart of a thinning procedure using a window larger than 3x3 but different from the procedure used in connection with the template of Figure 6; Figure 6 used in connection with the template of Figures 3 and 4. Structure of the neural network determination circuit: FIG. 7 shows the structure of a two-layer neural network with analog value combination weights: and FIG. 8 shows an embodiment for the analog value combination weight neural network. 121.122, 141, 142...pixel 801.8
02...Capacitor 803.804.808, 809.815.826...
・Switch 805.825.827...MOS) Transistor 80[i, 814...Comparator means 801...Multiplying means Application Person: American Telephone Telegraph Company and 1-49...Feature extraction template 120 .130,140.150-350... Thinning template FIG, 3 FIG, 4 FIG, 4 ()7″?) FIG, 4 (Hupun°) FIG. FIG. FIG.

Claims (15)

【特許請求の範囲】[Claims] (1)配列(アレイ)内に配置された画素から構成され
る画像の細線化(thinning)方法において; 複数のテンプレート(原型)を前記画像上に平行して通
過させるステップと;及び、 各テンプレートに対して前記テンプレートと前記画像と
の間の比較に基づいて、前記画像の選択部分が前記画像
から削除可能か否かを無条件に決定するステップと; からなることを特徴とする画像細線化方法。
(1) A method for thinning an image composed of pixels arranged in an array; passing a plurality of templates in parallel over the image; and each template. unconditionally determining whether a selected portion of the image can be deleted from the image based on a comparison between the template and the image. Method.
(2)前記無条件に決定するステップに従って前記画像
の部分を削除するステップをさらに含むことを特徴とす
る請求項1に記載の画像細線化方法。
2. The image thinning method according to claim 1, further comprising the step of: (2) deleting the portion of the image according to the unconditionally determining step.
(3)前記複数のテンプレートを通過させるステップが
、前記テンプレートを前記画像の異なる部分と順次に合
せていくステップ内で前記テンプレートを画像上に通過
させることを特徴とする請求項1に記載の画像細線化方
法。
(3) The image according to claim 1, wherein the step of passing the plurality of templates includes passing the template over the image within the step of sequentially aligning the template with different parts of the image. Thinning method.
(4)前記テンプレートのうちの少なくともあるテンプ
レートが3画素×3画素より多い画素の配列を形成する
ことを特徴とする請求項1に記載の画像細線化方法。
(4) The image thinning method according to claim 1, wherein at least one of the templates forms an array of more than 3 pixels x 3 pixels.
(5)配列内に配置された画素から構成された画像の細
線化方法において; 複数のテンプレートを前記画像上に同時に通過させるス
テップと;及び、 各テンプレートに対し前記テンプレートと前記画像との
間の比較に基づいて、前記画像の選択部分が前記画像か
ら削除可能か否かを無条件に決定するステップと; からなることを特徴とする画像細線化方法。
(5) In a method for thinning an image composed of pixels arranged in an array; passing a plurality of templates over the image simultaneously; and, for each template, forming a line between the template and the image. A method for thinning an image, comprising: unconditionally determining whether a selected portion of the image can be deleted from the image based on the comparison.
(6)前記複数のテンプレートを通過させるステップが
、前記テンプレートを前記画像の異なる部分と順次に合
わせていくステップ内で前記テンプレートを画像上に通
過させることを特徴とする請求項5に記載の画像細線化
方法。
(6) The image according to claim 5, wherein the step of passing the plurality of templates includes passing the template over the image within the step of sequentially aligning the template with different parts of the image. Thinning method.
(7)前記テンプレートのうちの少なくとも1つのテン
プレートが5画素×5画素の配列を形成することを特徴
とする請求項1に記載の画像細線化方法。
(7) The image thinning method according to claim 1, wherein at least one of the templates forms an array of 5 pixels x 5 pixels.
(8)前記選択部分が1画素より多い画素を含むことを
特徴とする請求項1に記載の画像細線化方法。
(8) The image thinning method according to claim 1, wherein the selected portion includes more than one pixel.
(9)繰返しステップを含む画像の骨格化(skele
tonization)方法であって、各ステップが前
記画素を1画素幅の線まで減少させる方向へ前記画像か
ら画素を削除するところの前記方法において;全ての線
が1画素幅に減少される前に前記繰返しステップを終了
させるステップを有することを特徴とする画像骨格化方
法。
(9) Image skeletalization including repeated steps
tonization) method, wherein each step removes pixels from the image in a direction that reduces the pixels to a line one pixel wide; An image skeletonization method comprising the step of terminating a repeating step.
(10)繰返しステップを含む画像の骨格化方法であっ
て、各ステップが前記画素を1画素幅の線まで減少させ
る方向へ前記画像から画素を削除するところの前記方法
において; 全ての線が1画素幅に減少される前に前記骨格化の終了
を可能化する繰返し終了ステップを有することを特徴と
する画像骨格化方法。
(10) A method of skeletalizing an image comprising repeated steps, each step removing pixels from the image in a direction that reduces the pixels to a line one pixel wide; A method of image skeletalization, characterized in that it comprises an iterative terminating step enabling the terminating of said skeletalization before being reduced to pixel width.
(11)画素の配列から構成される画像の線の細線化方
法において; サイズk×k(ここでkは整数)の窓を選択する第1の
ステップと; 前記窓によって覆われた前記画像の一部分に細線化基準
(クライテリア)を適用して前記画像のコア(core
)局所部分が削除可能であるか否かを決定するステップ
と; 細線化基準を適用する前記ステップが前記コア局所部分
が削除されるべきであることを指示したときに、前記コ
ア局所部分を削除するステップと;細線化基準を適用す
る前記ステップが前記コア局所部分が削除されるべきで
はないことを指示したときに、前記窓のサイズを1つだ
け減少するステップと; サイズを減少する前記ステップが2より大きいkのサイ
ズを与えたときに、細線化基準を適用する前記ステップ
に制御を戻すステップと;及び、前記制御を戻すステッ
プと削除するステップとに続いて他の窓を選択するステ
ップと; からなることを特徴とする細線化方法。
(11) In a method for thinning lines in an image composed of an array of pixels; a first step of selecting a window of size k×k (where k is an integer); The core of the image is determined by applying thinning criteria to a portion of the image.
) determining whether the local portion is removable; and removing the core local portion when the step of applying a thinning criterion indicates that the core local portion should be removed. reducing the size of the window by one when the step of applying a thinning criterion indicates that the core local portion should not be removed; and the step of reducing the size. returns control to said step of applying a thinning criterion when k is given a size of k greater than 2; and, subsequent to said returning control and deleting step, selecting another window. A thinning method characterized by comprising the following steps.
(12)前記コア局所部分が(k−2)×(k−2)の
サイズであることを特徴とする請求項11に記載の細線
化方法。
(12) The thinning method according to claim 11, wherein the core local portion has a size of (k-2)×(k-2).
(13)前記他のテンプレートを選択するステップに続
いて、前記細線化基準を適用するステップ内で前記テン
プレートと相互作用させるために前記画像の他の部分を
選択するステップをさらに含むことを特徴とする請求項
11に記載の細線化方法。
(13) Following the step of selecting the other template, the step further includes the step of selecting another part of the image to interact with the template in the step of applying the thinning criterion. The thinning method according to claim 11.
(14)細線化基準を適用する前記ステップが前記画像
の異なる部分に前記細線化基準を平行して適用すること
を特徴とする請求項11に記載の細線化方法。
(14) The thinning method according to claim 11, wherein the step of applying the thinning criterion applies the thinning criterion in parallel to different parts of the image.
(15)細線化基準を適用する前記ステップが前記画像
の異なる部分に前記細線化基準を適用することを特徴と
する請求項11に記載の細線化方法。
(15) The thinning method according to claim 11, wherein the step of applying a thinning criterion applies the thinning criterion to different parts of the image.
JP1324186A 1988-12-20 1989-12-15 Method for making lines constituting picture image finer and said image more sharply outlined Pending JPH02219189A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US288338 1981-07-30
US28833888A 1988-12-20 1988-12-20

Publications (1)

Publication Number Publication Date
JPH02219189A true JPH02219189A (en) 1990-08-31

Family

ID=23106677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1324186A Pending JPH02219189A (en) 1988-12-20 1989-12-15 Method for making lines constituting picture image finer and said image more sharply outlined

Country Status (2)

Country Link
JP (1) JPH02219189A (en)
CA (1) CA2002544C (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5615032A (en) * 1979-07-16 1981-02-13 Mitsubishi Electric Corp Semiconductor device and manufacture thereof
JPS58169681A (en) * 1982-03-31 1983-10-06 Fujitsu Ltd Picture processing circuit
JPS62266678A (en) * 1986-05-14 1987-11-19 Sony Corp Image processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5615032A (en) * 1979-07-16 1981-02-13 Mitsubishi Electric Corp Semiconductor device and manufacture thereof
JPS58169681A (en) * 1982-03-31 1983-10-06 Fujitsu Ltd Picture processing circuit
JPS62266678A (en) * 1986-05-14 1987-11-19 Sony Corp Image processor

Also Published As

Publication number Publication date
CA2002544C (en) 1996-07-16
CA2002544A1 (en) 1990-06-20

Similar Documents

Publication Publication Date Title
US5224179A (en) Image skeletonization method
Yao et al. A shape and image merging technique to solve jigsaw puzzles
Nakamura et al. Scene text eraser
Bhattacharya et al. On recognition of handwritten Bangla characters
Diem et al. ICDAR 2013 competition on handwritten digit recognition (HDRC 2013)
Palacios et al. A system for processing handwritten bank checks automatically
Boiangiu et al. Voting-based OCR system
Saha et al. Handwritten character recognition using fuzzy membership function
JP2009199102A (en) Character recognition program, character recognition device and character recognition method
JP6754120B2 (en) Programs, information storage media and character dividers
Hajič Jr et al. Detecting noteheads in handwritten scores with convnets and bounding box regression
JP4993615B2 (en) Image recognition method and apparatus
Abuhaiba et al. Line extraction and stroke ordering of text pages
Sahlol et al. A proposed OCR algorithm for the recognition of handwritten Arabic characters
Abdalkafor Designing offline Arabic handwritten isolated character recognition system using artificial neural network approach
Verma et al. A novel approach for structural feature extraction: contour vs. direction
Valy et al. Line segmentation for grayscale text images of khmer palm leaf manuscripts
Watanabe et al. Japanese character segmentation for historical handwritten official documents using fully convolutional networks
CN110516674B (en) Handwritten Chinese character segmentation method and system for text image
Majumdar et al. A MLP classifier for both printed and handwritten Bangla numeral recognition
JPH02219189A (en) Method for making lines constituting picture image finer and said image more sharply outlined
CN109325483A (en) The treating method and apparatus of internal short pen section
Raj et al. Offline Tamil handwritten character recognition using chain code and zone based features
Lipkina et al. Grapheme Approach to Recognizing Letters based on Medial Representation.
JP3476595B2 (en) Image area division method and image binarization method