JPWO2013147022A1 - 集合演算機能を備えたメモリ及びこれを用いた集合演算処理方法 - Google Patents

集合演算機能を備えたメモリ及びこれを用いた集合演算処理方法 Download PDF

Info

Publication number
JPWO2013147022A1
JPWO2013147022A1 JP2014508027A JP2014508027A JPWO2013147022A1 JP WO2013147022 A1 JPWO2013147022 A1 JP WO2013147022A1 JP 2014508027 A JP2014508027 A JP 2014508027A JP 2014508027 A JP2014508027 A JP 2014508027A JP WO2013147022 A1 JPWO2013147022 A1 JP WO2013147022A1
Authority
JP
Japan
Prior art keywords
information
pattern
image
memory
match
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014508027A
Other languages
English (en)
Other versions
JP6014120B2 (ja
Inventor
井上 克己
克己 井上
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of JPWO2013147022A1 publication Critical patent/JPWO2013147022A1/ja
Application granted granted Critical
Publication of JP6014120B2 publication Critical patent/JP6014120B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/56Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • G10L2015/025Phonemes, fenemes or fenones being the recognition units

Abstract

【課題】集合演算機能を有するメモリを提供する。【解決手段】メモリアドレスごとに情報を記憶しその情報を読み出し可能なメモリであって、このメモリは、外部から与えられる、各メモリアドレスに記憶された情報を比較するための第1の入力221と、各メモリアドレス同士を比較するための第2の入力222と、集合演算条件として(1)部分集合、(2)論理和、(3)論理積、(4)論理否定のいずれか若しくはそれらの2以上の組み合わせを選択可能に指定する第3の入力223と、を入力するための入力手段と、第1の入力に基づき、アドレス毎にこのメモリに記憶された情報と比較し判定する手段208,209と、第2の入力に基づき、このメモリに記憶された情報同士を比較し判定する手段210,211と、第3の入力に基づき、前記第1及び第2の入力に基づく判定結果について論理演算する手段224と、この集合演算結果を出力する手段207とを有する。

Description

本発明は集合演算機能を備えたメモリ及びこれを用いた集合演算処理方法に関する。
現在のノイマン型コンピュータが誕生して以来、情報処理の全てはCPUに委ねられてきた。CPUが実行出来る命令の数は多数存在するが、その目的は、数値演算処理、制御処理、そして集合演算処理、の3つの処理に大別される。
数値演算処理や制御処理のすべての情報処理行為は、1ステップ、1ステップが意味をもつ価値のある情報処理であるが、データを相手にする集合演算処理は利用分野が極めて広範囲であるとともに頻繁に発生する処理であり、また専用となることも多い処理である、しかしながらノイマン型バスボトルネックがあるのでCPUにとって理不尽で過酷な情報処理になっている。
(情報の集合を一括して論理演算することの意義)
Wikipediaによれば、数学における集合とは、大雑把に言えばいくつかの「もの」からなる「集まり」である。集合を構成する個々の「もの」を元という、と紹介されている。この定義を情報の集合に当てはめて考えると、現在の情報の集合演算は全て元を対象として個別になされる情報処理である。論理和、論理積をはじめとする基本的な論理素子はもとより、現在の情報処理の主役をなす中央処理装置(CPU)による集合演算も、情報集合の元を対象とした情報処理である。
具体的に述べれば、CPUを使ったプログラムによる集合演算は、メモリに記憶された集合情報データの中から、特定の情報を探し出す処理であり、メモリ上の情報(元)を逐次アクセスし、参照し、集合演算の解を求める方法である。
この問題を最小限に食い止めるよう様々なソフトウエアアルゴリズムが考え出されているものの抜本的な対策はなく、CPUを多数利用して分散する並列処理もCPUにとってみれば「犬も歩けば棒に当たる」のたとえのように大量のデータを片っ端からめくって特定のデータを探し出すという理不尽で過酷な情報処理となっている。従ってこの処理を高速化する場合CPUの発熱、それに伴う装置の肥大化が避けられない。
もし、オイラー図やベン図の概念のように、情報の集合(メモリ全体)を一括して演算処理できるプロセッサが出来れば情報処理の概念は一変する。なぜなら、情報の集合を一括して論理演算する素子は元を対象とした個別の逐次情報処理に比較して、比べ物にならない程高速な論理演算が期待できるからである。
ここで、情報処理おいて、メモリに記憶された集合情報の中から、特定の情報を探し出す処理は無限に存在するが、サーチ、検索、照合、認識、などの言葉で表現される処理が代表的なものであり、これらの情報処理は、意識するかしないかは別として、通常データベース用のプログラム言語を用いた集合演算である。
したがって、情報の集合を一括して演算処理できるプロセッサが実現されれば、現在のコンピュータが最も苦手であったこれらの情報処理全体に大きな恩恵がもたらされることになる。
(情報処理における「認識」について)
以上のメモリに記憶された集合情報の中から、特定の情報を探し出す処理の中で最も困難な情報処理である「認識」について説明する。
情報処理における認識とは、対象となる情報の中から、いくつかの特徴を探し出し、その特徴から、我々が理解し判断できる概念、つまり名詞や形容詞などの言葉に当てはめる技術である。幾つかの特徴は通常個別に探す必要があり、何回も何回も繰り返し情報を探し出す必要がある。
またこれらの特徴は多くの場合お互いの位置の関係が重要な鍵を握っているため位置の演算を行う必要も有り極めて複雑な情報処理になる。このような認識情報処理においてパターンマッチは知識処理の最重要技術の一つであるパターン認識の屋台骨、大黒柱となる基本技術であり、画像や音声、文字あらゆる分野の認識情報処理に不可欠の存在である。
以上説明のパターンマッチは情報の集合論理演算の典型的な例であるものの、現在のところパターンマッチを始めとする情報の集合演算は専門のプロセッサがないため、CPUによる極めて効率の悪い情報処理となっている。
もしパターンマッチという技術をどのような情報にも汎用的で共通的に利用できるように定義し実現すること、さらにこのパターンマッチの考え方を拡張した集合論理演算専用の素子プロセッサが実現できれば、情報処理上図り知れない恩恵が得られることになる。(情報処理における「パターンマッチング」について)
次に情報におけるパターンやパターンマッチの重要性やその概要を説明する。
我々が探したい、認識したい情報は独立した1つのデータではない、それはデータの塊り(配列パターン)である。たとえば、認識したい画像データは画素データの集合体であり、認識したい音声データは音のスペクトラムの集合体である。一般的なデータ、例えば株価の動きや気温の変動、文字列、DNA、ウイルスなど我々人間が認識したい情報の殆どは配列パターンデータである。
例えば、株価は独立した一つのデータでは何の役に立たない、前日の株価との差や、一週間前の株価との差や動き(パターン)に意味があり、高い、安い、景気が良い悪いなどの認識が成り立つ。
同様に我々が暑さ寒さを感じるのは昨日や数日前の気温との差を寒暖として感じているのであり一年中同じような気温では、今日は暑い、寒いなどの気温の変化の認識は生じない。
文字や言葉にしても、幾つかの文字の塊が、単語となり、単語の組み合わせが意味を現し、相手に意図を伝えることが可能になる。つまり認識したい情報は情報の塊、パターンそのものであり、情報の集合演算を解くことにほかならない。しかしながら現在のところパターン、およびパターンマッチは極めて多様で漠然とした概念であり標準化、汎用化がなされていない。
これまで、情報集合をCPU以外の手段で実現させる取り組みは数少ない、特願平4−298741はファジィ集合処理用演算装置、記憶装置および計算機システム、であり一般情報の集合そのものを集合演算するものではない。
特許第4588114号 特願平4−298741号公報
本願発明は、以上述べたように、従来のノイマン型情報処理の最大の弊害であるノイマンボトルネックを避けるため、CPUに頼ることなく素子自身が自らの機能でサーチ、検索、照合、認識などの言葉で表現される情報の集合演算をして一括して処理をできるプロセッサを提供することを目的とするものである。
上記目的を達成するため、本願発明の主要な観点によれば、メモリアドレスごとに情報を記憶しその情報を読み出し可能なメモリであって、このメモリは、外部から与えられる、各メモリアドレスに記憶された情報を比較するための第1の入力と、各メモリアドレス同士を比較するための第2の入力と、集合演算条件として(1)部分集合、(2)論理和、(3)論理積、(4)論理否定のいずれか若しくはそれらの2以上の組み合わせを選択可能に指定する第3の入力と、を入力するための入力手段と、第1の入力に基づき、アドレス毎にこのメモリに記憶された情報と比較し判定する手段と、第2の入力に基づき、このメモリに記憶された情報同士を比較し判定する手段と、第3の入力に基づき、前記第1及び第2の入力に基づく判定結果について論理演算する手段と、この集合演算結果を出力する手段と、を有することを特徴とする集合演算機能を備えたメモリが提供される。
この発明の1の実施態様実施によれば、このメモリは、前記第1〜第3の入力による前記集合演算結果に、新たに与えられる前記第1〜第3の入力により集合演算を繰り返し実行する手段を有するものである。
また、別の1の実施態様によれば、前記情報の、前記第1〜第3の入力による集合演算の少なくとも1つ以上を並列処理で実行する手段を具備するものである。
更なる別の1の実施態様によれば、前記第1の入力は、比較する情報を表す値、及び比較条件として完全一致、部分一致、範囲一致、若しくはこれらの組み合わせの指定、を含むものである。
更なる別の1の実施態様によれば、前記第1の入力による判定は連想メモリ手段で実現するものである。
更なる別の1の実施態様によれば、第2の入力は、比較する情報の位置、その位置を基準にした一定の領域、若しくはそれらの組み合わせを含むものである。この場合、前記第2の入力の前記比較する情報の位置は、相対的位置、絶対的位置若しくはそれらの組み合わせを含むものであることが好ましい。
更なる別の1の実施態様によれば、前記第2の入力による判定を行う手段は、メモリアドレスを並列操作することによって実行する手段を含む。
更なる別の1の実施態様によれば、前記入力手段は情報の配列・順序を指定する第4の入力(画像の大きさなど)をさらに入力するためのものであり、前記第4の入力に指定された情報の配列・順序に基づいて、前記情報の判定を実行させるものである。
更なる別の1の実施態様によれば、前記第1〜第3の入力は、メモリに記憶された集合情報に対してパターンマッチングする問い合わせ情報パターンを指定するものである。この場合、前記問い合わせ情報パターンは、エッジ検出のための問い合わせ情報であることが好ましい。また、前記パターンマッチングは、文字情報を一例とする1次元情報、画像情報を一例とする2次元情報、動画情報を一例とする3次元情報、配列が定義されたN次元情報、のいずれかに対して実行されるものであることが望ましい。また、前記パターンマッチングの前記問い合わせ情報パターンにより、視覚認識、聴覚認識、味覚認識、臭覚認識、触覚認識の少なくとも1つを処理するものであることが好ましい。
更なる別の1の実施態様によれば、上記メモリは、CPUを一例とする他の半導体と一体に組み込みされたものである。
更なる別の1の実施態様によれば、請求項1記載の集合演算機能を備えたメモリを含んだ装置が提供されるものである。
このような構成によれば、情報の任意の集合演算を、CPUによる情報の元(メモリ個別の情報)を対象にすることなく、メモリ自身が自分自身に記憶された集合情報(メモリ全体)を一括して集合演算することにより、情報を探す処理、つまりサーチ、検索、照合、認識のいずれにも共通に利用可能であり、任意の集合演算が可能である集合演算機能を備えたメモリ(素子)を実現することができる。
この構成により、現在のコンピュータの弱点であった情報認識の最も基本的で最も重要な技術であるパターンマッチやエッジ検出の概念を標準化・汎用化することができる。
またCPUが一番苦手であった情報処理のほとんどをこの技術で解決できるので、CPUによる発熱や装置の肥大化を極限まで解消することが出来る。
図1は、集合演算の概念を示すオイラー図である。 図2は、位置ならびに領域の概念の含めたオイラー図である。 図3は、連想メモリ(CAM)のブロック図の例である。 図4は、連想メモリ(CAM)のデータ比較回路の例である。 図5は、情報絞込み機能を備えたメモリのブロック図の例1である。 図6は、情報絞込み機能を備えたメモリによる全文検出の例である。 図7は、情報絞込み機能を備えたメモリのブロック図の例2である。 図8は、情報絞込み機能を備えたメモリによる画像検出の例1である。 図9は、情報絞込み機能を備えたメモリによる画像検出の例2である。 図10は、情報絞込み機能を備えたメモリによる画像検出の例3である。 図11は、情報絞込み機能を備えたメモリによる画像検出の例4である。 図12は、情報絞込み機能を備えたメモリによる画像検出の例5である。 図13は、情報絞込み機能を備えたメモリによる画像検出の例6である。 図14は、情報絞込み機能を備えたメモリによる画像検出の例7である。 図15は、情報絞込み機能を備えたメモリによる画像検出の例8である。 図16は、情報絞込み機能を備えたメモリによる画像検出の例9である。 図17は、情報絞込み機能を備えたメモリによる画像検出の例10である。 図18は、情報絞込み機能を備えたメモリによる画像検出の例11である。 図19は、情報絞込み機能を備えたメモリのグラフィックユーザーインターフェイス(GUI)の例である。 図20は、1次元情報の検出例を示すものである。 図21は、2次元情報の検出例を示すものである。 図22は、3次元情報の検出例を示すものである。 図23は、1次元情報の曖昧検出例を示すものである。 図24は、2次元情報の曖昧検出例を示すものである。 図25は、3次元情報の曖昧検出例を示すものである。 図26は、2次元情報の曖昧検出例2を示すものである。 図27は、2次元情報の座標変換の例を示すものである。 図28は、集合演算機能を備えたメモリのブロック図の例である。 図29は、集合演算機能を備えたメモリの詳細ブロック図の例である。 図30は、文献検索のグラフィックユーザーインターフェイス(GUI)の例である。 図31は、集合演算機能を備えたメモリによる集合演算例1である。 図32は、集合演算機能を備えたメモリによる集合演算例2である。 図33は、集合演算機能を備えたメモリによる集合演算例3である。 図34は、集合演算機能を備えたメモリによる集合演算例4である。 図35は、集合演算機能を備えたメモリによるエッジ検出の例である。 図36は、画像パターンのおよび画像パターンマッチの説明図である。 図37は、情報絞込みメモリを用いた画像パターンマッチの原理の説明図である。 図38は、画像の領域・輪郭の例の説明図である。 図39は、画像の排他パターンマッチの説明図である。(実施例1−1) 図40は、近傍4画素パターンによるエッジコード符号化の説明図である。(実施例1−2) 図41は、近傍8画素パターンによるエッジコード符号化の説明図である。(実施例1−3) 図42は、情報絞込みメモリを用いた画像パターンマッチの情報配列の説明図である。(実施例1−4) 図43は、物体のエッジコードの応用例の説明図である。(実施例1−5) 図44は、局部パターンマッチによる無作為および作為パターンマッチの説明図である。(実施例1−6) 図45は、物体の変化画像検出の説明図である。 図46は、局部パターンマッチによる物体の対応点検出の説明図である。(実施例1−7) 図47は、エッジコードによる物体認識の説明図である。(実施例1−8) 図48は、立体計測を利用した人物認識の説明図である。(実施例1−9) 図49は、空間内の物体認識の説明図である。(実施例1−10) 図50は、パターンマッチによる物体認識の概念説明図である。(実施例1−11) 図51は、音素の振幅波形の参考例である。 図52は、音素の周波数スペクトラム波形の参考例Aである 図53は、音素の周波数スペクトラム波形の参考例Bである 図54は、音素判別のための範囲データの例である。 図55は、情報絞込み機能を備えたメモリによる音素認識の例である。 図56は、語彙パターンマッチの例である。 図57は、画像パターンおよび画像パターンマッチの説明図である。 図58は、情報絞込みメモリを用いた画像パターンマッチの原理の説明図である。 図59は、排他パターンマッチの説明図である。 図60は、文字の書体例である。 図61は、文字パターンサンプリングポイント作成例Aの説明図である。 図62は、文字パターンサンプリングポイント作成例Bの説明図である。 図63は、特定書体の文字パターンサンプリングポイント作成例である。 図64は、字幕付き画像の文字認識の例である。 図65は、リアルタイムOCR機能を備えた情報処理装置の例である。 図66は、文書画像の文字認識の例である。 図67は、1次元情報のパターンマッチの例である。 図68は、2次元情報のパターンマッチの例である。 図69は、1次元情報パターンマッチのGUIの例である。 図70は、2次元情報パターンマッチのGUIの例である。 図71は、画像情報パターンマッチのGUIの例である。 図72は、本方式を用いたパターンマッチの情報処理の概念図である。
発明を実施するための最良の実施形態
以下、本発明の最良の実施形態を、添付図面等を参照して詳しく説明する。
(本発明の目的)
本発明は、情報の集合を一括演算処理するための、情報の集合演算機能を備えたプロセッサを提供するものである。
このようなプロセッサの実現により、情報を探す処理、つまりサーチ、検索、照合、認識のいずれにも共通に利用可能であり、任意の集合演算が可能でパターンマッチやエッジ検出、を高速で実現するために大規模なシステム、専用LSIや特殊なソフトウエア上のアルゴリズムさらにはスーパーコンピュータを使用することなく、画像、音声、文字認識を始めとする認識処理の原点となる高速なハードウエアパターンマッチやエッジ検出技術を汎用技術的にすることが可能になり、コンピュータによる本格的な知識処理を我々の身近なものとすることができる。
(優先権主張の基礎となる特許出願に記載された発明)
本願に先立って、本願発明者は、以下のような優先権主張の基礎となる特許出願を行っている。
特願2012−083361号は、音素認識方法、語彙認識方法、音声パターンマッチ方法に関するものである。特願2012−101352号は、画像認識方法、物体認識方法、パターンマッチ方法に関するものである。特願2012−110145号は、画像文字認識方法、画像文字認識機能を備えた情報処理装置、以上の3つは人間の3大認識の音声、画像、文字の認識にかかわるものである。
また特願2012−121395号は、パターンマッチの標準化方法、パターンマッチGUIの標準化方法であり、認識にかかわるパターンマッチに不可欠な共通項をとりまとめ、汎用、標準化パターンマッチに必要最低限の内容をまとめたものである。
以下にその概要を示す。
特願2012−083361(音素認識方法、語彙認識方法、音声パターンマッチ方法)の請求項1に記載された発明は、
「(1)音声のそれぞれの音素から得られる、スペクトラムもしくはケプストラムのパターンを音素別、周波数別に配列データベースとして用意し
(2)発声される音声の音素から得られる、スペクトラムもしくはケスペクトラムベクトルのパターンを、上記配列データベースに問い合わせすることにより、上記条件にパターンマッチする上記配列データベースのアドレスを検出し
以上(1)(2)により問い合わせ条件の音素を検出することを特徴とする音素認識方法。」
である。
特願2012−101352号(画像認識方法、物体認識方法、パターンマッチ方法)の請求項1に記載された発明は、
「画像のXY配列の大きさが定義された画像において
(1)画像を構成する、画素の画像情報データ値と、その画素のデータ位置と、の双方を適宜組合せして構成される画像問い合わせパターンを作成するステップ
(2)画像検出の対象となる画像に上記画像問い合わせパターンを問合せする事によりこの画像問い合わせパターンにパターンマッチする画素を上記対象となる画像の中から検出するステップ
以上(1)(2)のステップにより画像処理することを特徴とする画像認識方法。」
である。
特願2012−110145号(画像文字認識方法、画像文字認識機能を備えた情報処理装置)の請求項1に記載された発明は、
「(1)画像中の文字の書体を構成する、画素の画像情報データ値と、その画素の位置と、の双方を適宜組合せして構成される画像文字問い合わせパターンを作成登録用意するステップ
(2)画像文字認識の対象となる画像に上記画像文字問い合わせパターンを問い合わせする事によりこの画像問い合わせパターンにパターンマッチする画素を上記対象となる画像の中から検出するステップ
以上(1)(2)のステップにより画像文字認識処理することを特徴とする画像文字認識方法。」
である。
特願2012−121395号(パターンマッチの標準化方法、パターンマッチGUIの標準化方法)の請求項1に記載された発明は、
「情報の配列が定義されて記憶された情報のパターンマッチ検出において
(1)情報の配列の定義を指定するステップ
(2)パターンマッチの候補となる情報のデータ値を指定して基準情報とするステップ
(3)以上(3)の基準情報にマッチさせる複数のマッチ情報のそれぞれのデータ値をそれぞれ独立して指定するとともにこのそれぞれ情報の位置をそれぞれ独立して指定するステップ
(4)以上(1)の基準情報、および(2)の複数のマッチ情報を1組みの問い合わせパターンとしてこの問い合わせパターンにマッチする上記(2)の基準情報のアドレスを検出するステップ
以上(1)から(4)のステップにより情報をパターンマッチ検出することを特徴とするパターンマッチの標準化方法。」
である。
これらの先願のいずれの場合もパターンマッチが基本になり、パターンマッチの基本である、情報と、その情報の位置と、の双方を入力条件として情報処理を行い、その情報処理結果を出力する、これらのことは、画像や画像の文字情報、音声などの集合情報に演算条件を与え、その演算結果を求めたものである。
本願発明は、以上の考え方を実施できるプロセッサを提供するものである。
本発明の最終目的は、数学の集合の概念のように、全く演算時間を意識させない論理演算プロセッサを実現することである。
(情報処理における「集合」について)
先に述べた通りWikipediaによれば、数学における集合とは、大雑把に言えばいくつかの「もの」からなる「集まり」である。集合を構成する個々の「もの」を元という、と紹介されている。
図1は、集合演算の概念を示すオイラー図である
オイラー図は集合論の考え方を最も理解しやすくするための概念であり、全体集合103の中から、特定の元105やその部分集合104を探し出す際の考え方をまとめる場合などに頻繁に利用されている。
図が情報の集合102である場合、全体集合情報の中から探し出したい元105、つまり情報(図に示すAおよびB)を部分集合で指定するとともに、これらの論理否定111、論理和109、論理積110、の演算ならびにその組み合わせにより、論理差や論理対象などあらゆる集合演算115が可能になることは周知の通りであり、この考え方は現在の情報処理(コンピュータ)の根幹をなすものである。
数学的な概念は以上のように極めて単純であるものの、情報処理における元の場所は、図のように一箇所にまとまって存在することは少なくバラバラな場所に点在するのが一般的である。
図2は位置ならびに領域の概念の含めたオイラー図である。
図1で説明の集合演算115に、情報の位置106ならびに領域107の概念を組み合わせしたものである。
(情報の集合演算における情報の場所の意義)
そもそも集合演算、つまり情報を探し出し出す処理とは、情報を探し出す対象のメモリ自体の物理的な構造が、アドレスとメモリセルの2つの要素のみで構成されていることから、メモリに記憶された何の情報がアドレス上どこにあるか、反対に一定のアドレスに何の情報があるかを特定すること以外のなにものでもない。
従ってメモリ上の、何が何処に、もしくは何処に何が、あるかが集合演算である。何が(データの値)と、何処(アドレス)との双方を一括して演算処理できれば、メモリ上の情報の集合演算をすべて実現できることを意味している。逆に言えば情報処理における集合演算は、情報(情報データ)の位置106や領域107を抜きにして処理することができないことを意味する。
情報処理の場合、当然のことながら図2における情報の位置106とは、メモリの特定のアドレスである情報データの位置414、領域107は特定のアドレスである情報データの領域415を意味する。
もちろん1アドレスを対象とする場合から、複数のアドレス、広範囲なアドレス領域の場合、離散したアドレスなどを含む広い概念である。
特定の位置106と領域107のXにおける、集合演算115の実施結果を示すものである。
例えば、1次元情報の代表的な例である時系列データの場合、その時間の位置ならびに領域を指定し演算を行うことであり、2次元情報の代表的な例である画像データの場合、画像の位置ならびに領域を指定して演算を行うこと、そしてその演算結果がどの場所114にあるかを求める集合演算115である。
これらの考え方は日常極自然に行われている情報処理行為であり、この考えをなくして集合演算115をする意味がない重要な概念であり、情報の集合演算を行うためには絶対的に必要不可欠な概念である。
これまでの集合演算115は元105を対象としたものであったので、アドレス203の存在は暗黙の条件であり、特段の説明の必要もなかったものの、メモリ全体を対象にして集合演算115を一括演算するためには避けて通れない考え方であり、詳細を後述するパターンマッチやエッジ検出に不可欠の概念である。
本願特許では、これらの多様さを持ち、極めて重要な意味をもつ情報(情報データ)の位置106や領域107を情報の場所114と表現し説明する。
大きなデータベースから、小さなデータベースまで、様々な分野のデータベースで集合演算115が利用されているが、このような集合演算115の代表的な例は、特許庁の特許文献検索システムである。
例えば特許の先願を調査する場合、いくつかの言葉をキーワードにして、大量の特許文献の中から、論理和109、論理積110、論理否定111などの集合演算を用いて、特定の特許文献を見つけ出す処理はこの概念そのものである。
情報処理101の新しい産業の一つとして誕生したデーターマイニングもまさにこのような集合演算115を、名前を変えて行っているに過ぎない。
これらの集合演算115の情報処理101は通常プログラムに基づくCPUの情報処理行為によってなされるものである。
集合論の説明のオイラー図は数学的な解釈で表現されたものであり元105の存在が理解しにくいが、実際の情報処理101では元105を対象に集合演算115がなされている。
CPUはメモリ上に記憶された大量の情報(元)を集合演算115する際、CPUはメモリ上のどこに何の情報(元)があるのかわからないので、1枚1枚トランプをめくるようにメモリをアドレス(元)毎に照合し、意図する結果が出るまでこれを繰り返す(サーチ)必要がある。
我々がものを探す(サーチ)時、その殆どは無駄な時間である、CPUによるメモリ空間のサーチも全く同様でそのほとんどが無いところを探す処理となってしまい、その大半が無駄な情報処理時間となっている。
したがって集合演算115はCPUにとって極めて過酷で理不尽な情報処理である。
(本願発明の概念)
本願発明は、
メモリアドレスごとに情報を記憶しその情報を読み出し可能なメモリであって、このメモリは、外部から与えられる、各メモリアドレスに記憶された情報を比較するための第1の入力221と、各メモリアドレス同士を比較するための第2の入力222と、集合演算条件として(1)部分集合、(2)論理和、(3)論理積、(4)論理否定のいずれか若しくはそれらの2以上の組み合わせを選択可能に指定する第3の入力223と、を入力するための入力手段と、第1の入力に基づき、アドレス毎にこのメモリに記憶された情報と比較し判定する手段208,209と、第2の入力に基づき、このメモリに記憶された情報同士を比較し判定する手段210,211と、第3の入力に基づき、前記第1及び第2の入力に基づく判定結果について論理演算する手段224と、この集合演算結果を出力する手段207とを有するメモリである。
以下、この発明の構成要件ごとに説明することで、上記の集合演算115をCPUに頼ることなくメモリが自ら情報処理する新しい考え方のプロセッサを実現するための考えを説明する。
(連想メモリ)
本願発明のメモリは、大きな潜在能力を持ちながらその実力を十分発揮することができなかった連想メモリをヒントにしたプロセッサである。したがって、まず、連想メモリについて説明する。
図3は、連想メモリ(CAM)のブロック図の例である。
従来からメモリベースアーキテクチャデバイス、つまりメモリ自身が自主的に情報処理を行うデバイスとして、連想メモリ(CAM)301の存在が知られている。この連想メモリ(CAM)301は通常のメモリ同様にメモリアドレス203ごとにメモリセル202が配列された構造で、通常のメモリ同様に、メモリセル202に情報の読み書きが出来ると同時に、データ比較回路208で外部から与えられるデータ条件221に基づき並列に比較演算を行いその結果を出力することの出来るデバイスである。
このブロック図では、アドレスバスからのアドレス指定をアドレスデコーダ回路206でデコードし、アドレス選択を行い、メモリ上にデータの書き込みや読み出しが可能な構成であると同時に、メモリアドレス毎に並列に配列されたデータ比較回路208により、外部から与えられる、データ条件221に合致するメモリセル202を並列に検出し、本例ではこの検出結果をプライオリテイアドレスエンコーダ207で、マッチアドレスバスに出力する構成になっている。
以上の内容の連想メモリ(CAM)301は一般的には、完全一致タイプのものであり、実用上利用できる情報の範囲が限定されるため、現在ではインターネット通信機器のIPアドレスの検出に利用される程度である。
次に、連想メモリに、本願発明の1つ目の構成要素であるデータを比較処理する手段を設けた例について説明する。
図4は、その連想メモリ(CAM)のデータ比較回路の例である。
図に示す連想メモリ(CAM)301は、1アドレスのデータ幅が1byteつまり8bit構成のものであるが、1アドレスのデータの幅は、自由であり対象となる情報に適切なデータ幅とすればよい。
上述した完全一致形の連想メモリ(CAM)301の弱点を補うためには図に示すように、データ比較回路208やデータ範囲比較回路209で、データの大小比較並びに一致の比較ができる構成にすることにより利用できる情報の種類が大幅に拡大できる。
例えば画像情報405などは連続性を持ったアナログデータをデジタルに変換したものであり、これらのデータを取り扱うためには、完全一致の比較は不十分であり、範囲をもった比較が不可欠である。
また部分的な一致も重要である、たとえば画像情報405の色402情報は例えばR(赤)、G(緑)、B(青)の3色の組み合わせにより画素406として成り立っており、赤に関わるデータの一致、緑に関わるデータの一致、青に関わるデータの一致、などがこれに相当する。
本願特許では、これらの多様なデータ条件一致の様態を、情報データの値117の合致116と表現し説明する。
以上の構成により、データの合致が並列に行われ、データ条件221の部分集合104、複数のデータ条件221による論理和109、論理積110など基本的な集合演算115が可能になる。
次に、重要な要素はデータの場所114を含めた集合演算115である。
例えば部分的な一致の部分集合を複数回行い、その情報データの場所114の集合演算115を高速で行うには並列演算が不可欠となるが、連想メモリ(CAM)301のアドレス毎に並列の四則演算器を個別に設けることは現実的な方法ではないため、通常CPUやGPUなどの逐次処理型の情報処理デバイスに頼る意外なかった。つまりこれまで、情報のデータ条件221の集合演算115は連想メモリ(CAM)301で実現できても、その情報のデータの場所114を含めた並列集合演算115の技術がなかったことを意味する。すなわち、連想メモリ(CAM)301は情報の場所114の集合演算115ができないため片手落ちのデバイスとなり利用されることは少なかった。
以下に複数のデータ条件221の情報データの場所114の集合演算115を極めて単純でしかも、集合空間の全体を並列処理で求めるための基本的原理を説明する。
(情報データの値を集合演算する手段(データ比較回路)及び(情報データの場所の集合演算の手段(アドレス比較回路)について)
図5は、情報絞込み機能を備えたメモリのブロック図の例1である。
この情報絞込み機能を備えたメモリ302は、先に説明の連想メモリ(CAM)301の機能に、外部から与えられるアドレス条件222をもとに、データの場所114を検出するためにアドレス比較回路210を加え、更にその結果を累積カウントするための、マッチ回数カウンタ212、そして勝ち抜いたアドレス、つまりマッチアドレス213を出力するためのプライオリテイアドレスエンコーダ207で構成されたメモリである。
すなわち、この情報絞込み機能を備えたメモリ302は、連想メモリ(CAM)301の出力に並列に取り付けられた、アドレス比較回路210、およびアドレス領域比較回路211、によって情報の場所114、つまりアドレスの位置106や領域107を指定して、情報の絞込み、つまり情報同士の論理積110集合が出来る構成にしたものである。
アドレス比較回路210、およびアドレス領域比較回路211は、連想メモリ(CAM)301の出力フラグのアドレスの位置替えを行うようなメモリアドレスの並列操作216で実現でき、この構成が連想メモリ(CAM)301の情報の場所114の集合演算115の片手落ちを解消している。
この例で示す情報絞込み機能を備えたメモリ302は、例えば1次元(線形配列)のシフトレジスタなどで単純に実現できる構成であり1次元配列情報に最適な構成である。
以下にこの情報絞込み機能を備えたメモリ302の動作の概要を示す。
(1次元情報のパターンマッチの情報処理例)
図6は、全文検出の例である。
この図6に示すように、文字データの集合102である文字列がデータベース407として、情報絞込み機能を備えたメモリ302に記憶されている。
一例としてこのデータベース407の中から問い合わせパターン408、文字列「情、報、処、理」を検出する場合の例を以下に示す。
1次判定として、情報絞込み機能を備えたメモリ302の連想メモリ(CAM)301機能で、外部から与えられたデータ条件221により、文字「情」の検出を行う。この検出結果は今後の文字検出の基準情報421となるものである。
2次判定として、同様に文字「報」の検出を行うと共に、この2次判定結果を1アドレス分、アドレス全体を並列に図の左側にシフトする。
3次判定として、同様に文字「処」の検出を行うと共に、この3次判定結果を2アドレス分、アドレス全体を並列に図の左側にシフトする。
4次判定として、同様に文字「理」の検出を行うと共に、この4次判定結果を3アドレス分、アドレス全体を並列に図の左側にシフトする。
以上4つの判定結果フラグが揃うアドレス、つまりマッチ回数カウンタ212が「4」になるアドレス、つまり論理積110が成り立つアドレスは図示するようにマッチアドレス213であり、対象となるデータベース全領域の中から、本例の場合、絶対アドレス204n±0のアドレスが文字列「情、報、処、理」の文字列の先頭番地になっている。
つまり、この場合、マッチ回数カウンタ212は累積論理積110演算結果を記憶していることと等価である。
またこの際、必ずしも、「情、報、処、理」の順序である必要もなく、「理、処、報、情」の順序場合には、アドレス203のシフトの方向が逆転し、「理」のアドレスが基準情報421となりマッチアドレス213となる。
さらに「処、理、情、報」でも、途中の文字を飛ばしても、アドレス203をシフト比較する際の方向とその位置の対応が的確になされていればどのような配列でも可能である。
いうまでもなく、データベース407全体で、1つもマッチアドレス213が存在しない場合も、複数のマッチアドレス213が存在し検出される場合もある。
重要なことは最初に指定される情報が基準情報421となり、順次これらの基準情報421が絞り込まれ、最後まで勝ち抜いたアドレスのみが検出されることである。
更に重要なことは、メモリアドレスの並列操作216でアドレスをシフトする量、つまり比較する情報の場所は互の相対位置、つまり相対アドレス205であり、その結果検出されるアドレスは絶対アドレス204であることである。
従って、探し出したい情報の元105の組み合わせ順序のみが分かっていれば、どのような情報でも探し出せることになる。
従来このような検索を高速で実施する場合には、インデックステーブルや頻繁に検索される情報を引き出しやすくする配列方法など特殊なアルゴリズムを考える必要があったが、データが更新される度にこれらのテーブルやアルゴリズムを変更する必要があった、この技術はこれら情報データの事前加工を全く不要にする。
後述するが、画像などの2次元画像でも同様である。
以上の文字列は背景技術で説明のパターン401の代表的なものであり、上記説明の通り、以上のような文字列は通常の検索を行うことなく、連想メモリ(CAM)301機能と、その出力フラグの位置替えを行うようなメモリアドレスの並列操作216はシフトレジスタの数クロックのシフト演算により容易に検出することが出来るようになる。
更に高速なメモリアドレスの並列操作216を行う場合には、マルチプレクサやバレルシフタなどを適宜組み合わせすることにより実現可能である。
したがってこのような完全並列の手法による情報の集合全体の集合演算115はCPUのメモリ空間個別の(情報の元)のスキャン(検索)を全く不要にするので、従来の情報処理101に比較にならない程高速な全文検出が可能になる。
また完全並列であるために情報の大きさに左右されないので、情報の集合102が大きければ大きいほどその演算速度の差が顕著に現れやすい。
先に述べた特許文献検索に話を戻せば、このような高速情報検出技術を利用することにより、例えば類似、同類な用語(例えばシソーラス)の繰り返しの検出も極めて単純に実現できることを意味する。
図7は、情報絞込み機能を備えたメモリのブロック図の例2である。
この例で示す情報絞込み機能を備えたメモリ302は、先に示した情報の場所114の集合演算115を行なうアドレス比較回路210、およびアドレス領域比較回路211を2次元(X軸、Y軸の2軸)のシフトレジスタで構成したもので、2次元配列情報に最適な構成である。
(2次元情報のパターンマッチの情報処理例)
図8から図18は、以上の構成の情報絞込み機能を備えたメモリ302による2次元情報である画像検出の概念を説明するものである。
図8に示すように、画素406の集合102である画像情報405が、情報絞込み機能を備えたメモリ302に配列記憶されている。
本図では黒、赤、青、緑の4色の色402の情報データが、図に示すアドレス0からN―1までそれぞれのアドレス204に配列記憶されている。
もちろん、これらの情報データは色402以外の輝度403でも、その他の方式の情報データでも、情報データの値117の種類は問わない。
通常のメモリに情報を記憶することと全く同様である。
問い合わせパターン408は黒、赤、青の画素406で示される、3画素のサンプリングポイント410からなるパターンである。
以上の画像問い合わせパターン408をもとに、情報絞込み機能を備えたメモリ302が情報の集合102の中からパターンマッチ409して、マッチアドレス213を出力するまでの概念を以下に示す。
以上のような2次元情報のパターンマッチ409は、図9に示すような概念で捉えると理解しやすい。
先ほどの画像情報405の上に一枚のマスク217が被されており、このマスク217全体にマッチ回数カウンタ212が配列されていると考えると良い。
この場合カウンタは0からN―1個がそれぞれのアドレス、つまり画素406毎に配列されている。
先に1次元情報の文字検出で説明の通り、どのような順番でパターンマッチを行っても良いが本例では「黒、赤、青」の画素406の順序でパターンマッチ409を行う場合の説明を行う。
図10は黒の画素406を連想メモリ(CAM)301機能で並列に検出した状態を示すものである。
黒の3つの画素406が、座標404、データの位置414として検出されている。
いうまでもなく、これは指定した情報データの値107に合致116する情報データ412が画素406の場所114つまりデータの位置414を座標404で示したものにほかならない。
以上の黒の3つの画素の座標404、データの位置414は、今後のパターンマッチの基準情報421となるもので、図11に示すように、この基準情報421の座標404、データの位置414のマスク217位置に窓を開けて、黒の画素が覗けるようにする。
このマスク217の窓から黒の画素406が覗けたことを持って、マッチ回数カウンタ212を「1」にカウントアップする。
以上の操作で、全画像集合中、3箇所の画素406のマッチ回数カウンタ212が「1」となり、この周辺に問い合わせパターン408と同様のパターンが存在する可能性があることを意味する。
次に図12に示すように赤画素の検出を同様に行う。
この場合、3箇所の画素が赤である。
これらの赤画素の座標404、データの位置414と、先ほど検出された黒の画素の位置つまり座標404、データの位置414の演算は図13のように行う。
図12に示すように、黒画素406で定めた基準情報421が乗っているマスク217を、問い合わせパターンの、黒と赤の画素の位置、つまり座標404、データの位置414に相当する分、マスク217を移動させてみる。
この時、先ほど窓を開けた基準情報421の位置、座標404、データの位置414から赤の画素が覗けるのは、図中の上部の画素1箇所のみである。
つまり、この基準情報421のマッチ回数カウンタ212が「2」にカウントアップされ、勝ち残り、他の2つの基準位置のマッチ回数カウンタ212は「1」のままで、脱落となる。
図14に示すように、次は青画素406の検出である。
本例の場合、6画素が検出されている。
図15で示すように、今度は先ほどのマスクを問い合わせパターン408の、黒と青の画素の位置、つまり座標404、データの位置414に相当する分、マスクを移動させてみる。
この時、先ほどマスク217に窓を開けた基準情報421の位置、座標404、データの位置414から青の画素が覗けるのは、図中の上部の画素1箇所のみである。
つまり、この基準情報421のマッチ回数カウンタ212が「3」にカウントアップされ、勝ち残り、他の2つの基準位置のマッチ回数カウンタ212は「1」のままである。
つまり、問い合わせパターン408の黒を基準情報421として赤、青の2つの画素406の位置つまり、座標404、データの位置414は、マッチ回数カウンタ212のカウンタ値が「3」である座標404、データの位置414がパターンマッチ409し、マッチアドレス213として、勝ち残り、検出されたことになる。
以上の説明のマスク217の移動は、いうまでもなくアドレス比較回路210、アドレス領域比較回路211によるメモリアドレスの並列操作216で実現される。
以上のパターンマッチの際、外部から与える条件となる問い合わせパターン408の、座標404、データの位置414は、画素同士の相対距離108、つまり相対アドレス205で指定し、その演算結果のパターンマッチ409のマッチアドレス213を絶対アドレス204として出力できることは、後工程の処理の負担を軽減させる結果となる。
本例は説明のための画像であるため、極めて小さなサイズの画像と、極めて少ないサンプリングポイント410の問い合わせパターン408によるパターンマッチ409の例であるが、画像のサイズが大きくなっても、確率上絞込み効果が大きいので、一般的には数画素から十数画素の問い合わせパターン408で十分にマッチアドレス213を絞り込んだパターンマッチ409を期待することができる。
先に説明の1次元情報の時と同様に、以上の画像パターンマッチは、連想メモリ(CAM)301機能と、シフトレジスタの数クロックのシフト演算によるものであり、CPUのメモリ空間のスキャンならびにそれに基づく情報の元同士の場所のベクトル演算を全く不要にするので、従来手法に比較にならない程高速な検出が可能になる。
以上の説明は、完全一致型のパターンマッチ409の例であるが、図16は基準情報421の領域を、X軸、Y軸共に±1領域拡大したものである。
このように座標404、データの位置414に領域を持たせることにより、曖昧なパターンマッチ418が可能になる。
このような曖昧パターン417によるパターンマッチ409は、情報の位置の領域のみならず、情報データ値に範囲を持たせることや、マッチ回数カウンタ212の計測回数のミスマッチ回数を一定回数許容425することなどにより、極めて合理的で、しかも人間の感性に沿った曖昧なパターンマッチ418による曖昧認識419が行える。
例えば図17は、基準情報421を黒にして、X軸、Y軸双方の座標404、データの位置414の領域を±2にした場合の例である。
以上のように範囲指定することにより、この場合マスクを移動することなく、パターンを見つけ出すことも可能になる。
これまでの、パターンマッチ409は、まず基準となる情報を指定する方法により、基準情報421、その結果により基準となる情報の場所114を決めるものであったが、この考え方と反対に、絶対アドレス204を対象として位置106や領域107などの情報の場所114を指定する方法を説明する。
例えば、情報絞込み機能を備えたメモリ302に記憶する画像をオール白として、図18に示すように、目的の座標404、データの位置414に、特定の色情報、本例の場合「緑」を記憶させる。
以上の画像の1画素を、これまでの説明の、連想メモリ(CAM)機能301機能で検出し、この検出結果フラグをアドレス領域比較回路211により、フラグの領域を領域拡大することにより、簡単に絶対位置やその領域、つまり絶対アドレス204による場所114を指定することが出来る。
このような絶対アドレス空間の指定は、限られた空間の色のヒストグラムや濃度を検出する場合などに利用することができる。
このような、絶対的なアドレス領域の濃度検出は、人間の顔や手など皮膚などの色の領域や、特別な色402や輝度403を持った物体の存在を検出するのに最適である。
もちろん、アドレス条件が全領域であれば、メモリ全体が演算の対象になり、領域指定であれば、該当する領域のみの演算結果となる。
このことは極めて重要である。
膨大な情報がメモリに記憶されている場合、該当するアドレス領域のみが出力されることにより、マッチアドレス213を順次読み込み出す際の後処理を軽減することができるからである。
これまでの説明の内容は、情報(データ)の値117を指定する手段と、情報(データ)の場所114を指定する手段によって、認識技術の基本となるパターンマッチ409を行った実例である。
いうまでもなく、情報(データ)の値117は様々な情報の種類と、その合致116を意図しており、情報の場所114は、情報の位置106と情報の領域107の双方を意図しているとともに、情報の場所114は、相対的場所と絶対的場所の双方を意図している。
これまで文字情報ならびに画像情報をもとにこれらの情報データの場所114の概念を説明してきた。
情報処理における情報の場所114の概念は極めて広範囲でとらえどころがなく極めて漠然とした概念であるが、我々が情報処理を行う上で不可欠となる情報の種類の情報集合演算の標準化の例について説明する。
図19は、このメモリのグラフィックユーザーインターフェイス(GUI)の例である。
汎用のグラフィックユーザーインターフェイス(GUI)とするには1次元配列、2次元配列、3次元配列のいずれかのデータ配列411を選択することにより、その情報の場所114つまり情報の位置106や領域107を適切に指定できるような構成とする。
本例では基準情報421を基準として、本例ではM1からM16までの、マッチ順序420のマッチ情報422をそれぞれ、情報のデータ412、とその範囲413、並びに情報の場所114、つまり情報データの位置414、とその領域415、を指定することにより、基本的な構成ができる。
さらにデータの配列411の指定や、情報の場所の座標変換428、並びに、マッチ回数カウンタのミスマッチ回数を許容425する、機能が盛り込まれた構成になっている。
これらのパターンマッチ条件を指定して、パターンマッチ409指定することにより、情報絞込み機能を備えたメモリ302は、指定にもとづき、パターンマッチを行い、マッチアドレス213を、絶対アドレス204として本グラフィックユーザーインターフェイス(GUI)に返す構造とすれば良い。
以下にパターンマッチ409による情報集合演算の標準化の例を紹介する。
図20は1次元情報の検出例を示すものである。
季節の温度の変化や、景気の動向など時系列の集合情報、つまり1次元情報の中から、問い合わせパターンに、合致(マッチ)する情報を探し出す際の、イメージであり、一般的な文章などのテキストもこれらの一次元情報の仲間である。
図の左側は全体集合103であるデータベース407であり、データの配列411の定義がなされ、絶対アドレス204に配列記憶された情報の元105の集合102である。
一方図の右側に示す、問い合わせパターン408は、いくつかの、サンプリングポイント410からなる、探し出したい情報のパターンであり、それぞれのサンプリングポイント410は、データとその場所の関係が指定された基準情報421ならびに、マッチ情報422で1セットの問い合わせパターン401となっている。
基準情報421は一つであるが、マッチ情報422はいくつでも構わない。
図に示すように、それぞれの情報はそのデータ値(図ではDの値)と基準情報421との相対距離、この場合相対アドレス205(図ではXの値)が指定されている。
以上の問い合わせパターン408に基づき、情報絞込み機能を備えたメモリの、指定された情報(データ)に合致116する情報を探し出す手段と、情報(データ)の場所114を探し出す手段によって、パターンマッチ409が行われマッチアドレス213が絶対アドレス204として出力される。
図21は2次元情報の検出例を示すものである。
画像などの集合情報、つまり2次元情報の中から、問い合わせパターンに、合致(マッチ)する情報を探し出す際のイメージであり、その内容は図20と同様である。
図22は3次元情報の検出例を示すものである。
分子や星座などの集合情報、つまり3次元情報の中から、問い合わせパターン408に、合致(マッチ)する情報を探し出す際のイメージであり、その内容は図20と同様である。
図23は、1次元情報の曖昧検出例を示すものである。
図20で示した1次元情報の中から、曖昧な問い合わせ情報に、合致(マッチ)させる曖昧パターンマッチ418のイメージである。
図に示すように、情報のデータにはデータの範囲413が指定され、情報の場所にも領域107が指定されている。
以上のようなパターンマッチは一例として、株価の変動パターンや、気温の変動パターン、音声認識の音素パターンの検出(認識)などの分野に最適である。
図24は2次元情報の曖昧検出例を示すものである。
図21で示した2次元情報の中から、曖昧な問い合わせパターンに、合致(マッチ)させる曖昧パターンマッチ418のイメージである。
以上のようなパターンマッチは一例として、画像中の人の顔位置、非顔部分の高速な検出や、車のナンバープレートの高速な文字読み取りなどの分野に最適である。
図25は、3次元情報の曖昧検出の例を示すものである。
図22で示した3次元情報の中から、曖昧な問い合わせパターンに、合致(マッチ)させる曖昧パターンマッチ418のイメージである。
以上のようなパターンマッチは一例として、分子構造の特定や、宇宙空間の星座の特定、気象データの解析などの分野に最適である。
図26は、2次元情報の曖昧検出の例2を示すものである。
図は図24で示した2次元情報の曖昧検出の概念をさらに拡張したものである。
図に示すように、領域内のいずれかの場所114に、対象となる情報があるかどうかを検出するものである。
このような概念で検出するパターンは、パターンマッチ409の情報の場所114の概念を大きく拡大し、数学的な集合演算115を連想させるものである。
図27は、2次元情報の座標変換の例を示すものである。
図は、パターンマッチの際の、情報の場所114の変換を座標変換428した例である。
図に示す通り、座標の拡大、縮小や回転を行うことにより、画像のサイズ変更や、回転があっても、パターンマッチ409が有効に行われることを示している。
以上の説明で特に重要なことは、パターン401は、情報(データ)の値117と、その情報データの場所114、の組み合わせであること、さらに少ないサンプリングポイント410でも、確率上、十分に絞り込みが行われ、特定のアドレスを抽出することができ、様々な種類の認識技術この考え方が応用できることである。
これまでの説明で理解できるようにすべて情報の配列が定義された情報であればパターンマッチ409が可能であり、全てのデータ配列411はパターンマッチ409の情報集合演算の標準化、汎用化ができることである。
以上のようなパターンマッチ409が、従来のCPUによるソフトウエア情報処理101でどの程度の時間が必要か幾つかの検証を行った。
もちろんこの検証は、特殊なアルゴリズムや特殊なハードウエアを使用しないCPUの裸の実力だけに頼るものである。
(CPUによるパターンマッチ時間)
検証結果の一つとして、高性能なパソコンで2次元配列の画像(BMP形式)の640×480ピクセルの画像を検索対象画像として、1セット合計5ポイントのサンプリングポイント410によるパターンマッチを行ってみた。
完全一致の場合114m秒の時間が必要であった。
さらに1セット合計5ポイントの曖昧パターンマッチをさせた場合、11秒を超える処理時間がかかることが確認された。
曖昧なパターンマッチ、つまり情報(データ)の領域415をもつパターンマッチは、情報と情報の、組み合せベクトル演算となる。
知られているように組み合せ演算は、多大な情報処理時間となる。
曖昧パターンマッチの領域を大きく拡大すると、組み合せ的な爆発を生じ分単位、またはそれ以上の時間が必要になる。
しかしながら画像の認識などには情報の領域をもった曖昧パターンマッチは不可欠な技術である。
以上のことは、情報の認識にパターンマッチは不可欠な技術であり、もっとも基本になる技術であるが、画像情報のように大きなサイズの情報では、パターンマッチは実用化できないことを物語っている。
以上のような要因で多くの場合、認識の最も基本となり、重要な手段であるパターンマッチが利用できないので、他の複雑で特殊な認識手段に頼らなくてはならないのが現状である。
例えば画像処理の多くは、認識処理の1次処理として、画像空間をフーリエ変換で周波数成分のデータに変換する場合や、アナログ処理によりエッジや領域の検出をしている。
そのための変換時間や処理時間が必要になり、これらの認識手段の多くは、撮影条件や照明の条件など一定の条件のもとで有効であっても、条件外の環境では利用できない場合も少なくない。
以上のことが、現在のコンピュータが誕生して66年も経つがその認識レベルは人間で言えば赤ちゃんレベルにとどまっている大きな要因である。
(集合全体一括演算によるパターンマッチ時間)
これまでの情報絞込み機能を備えたメモリ302の研究は主としてFPGAによるものであり、ロジックリソースが不十分な回路構成によるパターンマッチであるものの1m秒以下で1セット合計5ポイントの曖昧パターンマッチが可能あることが確認されている。
これらの実績をもとにASICにすることにより、理論上であるが曖昧パターンマッチでも数μ秒での検出が可能あることが確認されており、更に高速化することも可能である。
CPUによるパターンマッチの時間と比較すれば100万倍以上である。
これらのことは、現在のCPUによる情報処理が集合の元105を対象にしたものである一方、情報絞込み機能を備えたメモリ302が集合全体を一括したパターンマッチ409であることによる決定的な違いである。
一般的な動画は1秒間に30枚の静止画が連続されたものである、1枚当たり33m秒である。
1回、1セット合計5ポイントの曖昧パターンマッチを仮に5μ秒とした場合、この33m秒の間に、6600回のパターンマッチ409が可能である。
1秒間であれば、200,000回のパターンマッチ409が可能である。
つまり認識したい様々な物体や文字、音声などの問い合わせパターン408をテンプレートとして用意しておくことにより、動画の中から認識したい物体や文字、音声を瞬時に検出することができる。
さらに、局所画像空間から無作為にサンプリングポイント410を定めデータを抽出して、そのサンプリングデータを問い合わせパターン408とすることもできる。
このようなパターンマッチは動体認識や、立体視のパターンマッチ409に最適である。
もしCPUによりこれらの速度に匹敵する速度性能を実現しようとする場合、特殊なソフトウエアアルゴリズムを用い、さらにCPUの数の増設(並列)に頼る意外に解決方法はない。
従って装置自体のサイズや消費電流の増大などが大きな課題である。
一例として、認識処理機能を持たせたインテリジェンスなカメラの場合、数十ワットクラスのCPUが内蔵されている。
このようなカメラの場合、カメラの筐体はヒートシンクとなり、大型となり軽量化することができない。
情報絞込み機能を備えたメモリ302を用いることにより、超高速で高精度な認識機能が実現できるので、CPUは高性能のものでなくても良いことになる。
以上の内容は携帯用のバッテリ機器に大きな意味をもつ。
(データ比較回路、アドレス比較回路に加え、集合演算回路を備えたメモリの例)
これまで様々な観点からパターンマッチ409が情報処理101で極めて有効な情報処理101手段であるとともに、情報絞込み機能を備えたメモリ302が、CPUが苦手な情報処理の一つである、情報のパターンマッチ409に有効であることを示してきた。
そもそもパターンマッチとは、メモリ自体の物理的な構造が、アドレスとメモリセルの2つの要素のみで構成されていることから、メモリに記憶されたパターンの情報がアドレス上どこにあるか、反対に一定のアドレスに何のパターンがあるかを特定すること以外のなにものでもない。
以上のパターンマッチ409ならびに情報絞込み機能を備えたメモリ302の概念をさらに拡張することにより、あらゆる情報の任意の集合を演算することができるメモリベースのプロセッサに進化させる方法について説明する。
パターンマッチ409の上位概念は情報の集合演算115である、このことにまず着目する必要がある。
パターンマッチに必要な情報の絞込みは、部分集合の論理積110を主体とした集合演算115であった、この考えをさらに発展させ、集合演算115に必要な機能、例えば論理和109、論理否定111の機能と、これらを組み合わせ演算する機能を揃えることにより、これまでCPUに頼っていた集合演算115を、個別の情報つまりメモリ個別の元105を対象にした集合演算115をすることなく、数学的集合演算115のように、メモリ上の情報集合102を一括して、超高速で、高精度、低消費電力で、しかも極めて単純な操作によるプロセッサを実現することができるようになる。
図28は、本発明の実施形態にかかるメモリのブロック図の例である。
図に示すように集合演算機能を備えたメモリ303は情報絞込み機能を備えたメモリ302のマッチ回数カウンタ212の部分を、演算回路224に置き換え、外部から与えられる論理演算条件223に基づく、論理和109、論理積110、論理否定111などの演算を指定された条件で任意に実現できるように構成したものである。
つまり、情報絞込み機能を備えたメモリ302は、カウンタによる論理積110集合演算115を主体として行い、主としてパターンマッチ409など目的となる情報を絞込み集合演算115するものであったが、この考え方を更に進化発展させて、あらゆる種類の情報の任意の集合演算115を実現させるよう構成したものである。
図29は、上記集合演算機能を備えたメモリの詳細ブロック図の例である。
すなわち、このメモリは、外部から与えられるデータ条件221によりデータ比較する回路208、209(詳しい構成は前記の説明参照)と、外部から与えられるアドレス条件222によりアドレス比較する回路210、211(詳しい構成は前記の説明参照)、外部から与えられる論理演算条件223、ならびに以上の条件に基づき論理演算する回路224、更にプライオリテイアドレスエンコーダ207で演算結果のマッチアドレス213を出力する構成になっている。
演算回路224は、正論理112、負論理113変換の回路並びに、一つ以上の勝抜きフラグ214、もしくは領域勝抜きフラグ215で構成されており、連想メモリ(CAM)301からの出力フラグはアドレス条件222、並びに論理演算条件223で指定される条件に基づき、勝抜きフラグ214、もしくは領域勝抜きフラグ215通じて、プライオリテイアドレスエンコーダ207に接続され出力される構成となっている。
勝抜きフラグ214、もしくは領域勝抜きフラグ215、はフラグの多段接続を行い、従来の情報絞り込み機能を備えたメモリ302のようにカウンタ構成としてマッチ回数カウンタ212として使用することもできる。
また、勝抜きフラグ214、もしくは領域勝抜きフラグ215からの出力は、アドレス比較回路、210、211の入力に加えられ、論理演算条件223の指定に基づき、並列に再論理演算をさせることができる構成となっている。
以上の構成により、外部から与えられるデータ条件221にもとづきデータ比較回路208、データ範囲比較回路209で連想メモリ(CAM)301機能を働かせ条件に合致116するアドレスを並列に検出するとともに、外部から与えられるアドレス条件222をもとにアドレス比較回路210、アドレス領域比較回路211で、相対的なアドレス、絶対的なアドレス、の場所114、つまりアドレス位置105と領域107を並列に指定し、外部から与えられる論理演算条件223、ならびに以上の結果を論理演算する回路224で、任意の集合演算115、例えば論理和109、論理積110、論理否定111、ならびにその組み合わせ、さらには過去の演算結果との集合演算115、を並列に行いその結果のマッチアドレス213をプライオリテイアドレスエンコーダ207で出力することができる。
以上の集合演算115は、メモリ上の元105を対象にした集合演算115ではなく、メモリ上の情報の集合を一括した集合演算115である。
このような集合演算115方法であれば、1アドレスに対し、通常2つのフラグを制御するだけの回路構成で実現できるので、回路構成が極めて単純であり大型の情報処理容量を持った、集合演算機能を備えたメモリ303を造ることが可能である。
これまで、連想メモリ(CAM)301を応用した様々なデバイスの研究が行われてきたものの、メモリアドレス間の演算は規模が大きくなり並列処理を行うと大きなアドレス空間のデバイスが実現できなかった。
連想メモリ(CAM)301出力フラグのアドレスの位置替えを行うようなメモリアドレスの並列操作216は極めて単純な回路構成で実現できるので、回路構成上の負担を極めて少なくするものである。
(文献検索の例)
図30は、文献検索の場合を例にとった、グラフィックユーザーインターフェイス(GUI)の例である。
図では集合演算機能を備えたメモリ303で、特許情報検索のような全文検出を行う場合のグラフィックユーザーインターフェイス(GUI)の概要を示している。
本例では、演算条件が条件1から条件8まで8つあり、それぞれの条件の中にキーワードとする文字列を指定し、演算子の指定と、論理の正論理112、負論理113の指定が行われる。ここで、このGUIにおいては、演算子の指定が、(1)部分集合、(2)論理和、(3)論理積、(4)論理否定のいずれか若しくはそれらの2以上の組み合わせを選択可能に指定することができるように構成されている。
本例は、文字列(情報処理)の部分集合と、文字列(検索+検出)の部分集合と、を正論理の論理積で求め、合致する文献を探し出し、その演算結果に文字列(認識)の負論理の論理積に、合致する文献を探し出す場合の例である。
図31から図34は、集合演算機能を備えたメモリ303による集合演算例である。
以上の文献検索を行う場合の一例として、まずは対象となる複数の文献を、集合演算機能を備えたメモリ303に記憶しておく。
実際には多数の文献を記憶できるが説明を容易にするために、図の左側のアドレス群、図の中央のアドレス群、図の右側のアドレス群、のそれぞれに記憶された文献を左文献、中文献、右文献(それぞれ1文献とする)と表現して説明する。
図31は、文字列(情報処理)の論理積110集合演算を行い、勝ち残ったアドレスと、対象になる文献を示すものである。(情報処理)の論理積110集合演算については、この明細書中ですでに図6を参照して行った。ここで、「情」、「報」、「処」、及び「理」がこの発明の「第1の入力」に該当し、「情」、「報」、「処」、及び「理」の互いの位置関係が「第2の入力」に該当する。また、前記演算子及び正/負理論の別を示すのが「第3の入力」に該当する。
文字列(情報処理)は図6で説明の通り、情報の場所114を含んだ論理積110演算により求まり、そのマッチアドレス213が、中文献、右文献の中に1つずつ存在し、その中文献、右文献のプライオリテイアドレスエンコーダ207は、勝ち残り、になっている。
図32は、文字列(検索)の論理積110集合演算を行い、そのマッチアドレス213が、右文献の中に1つ存在し、右文献のプライオリテイアドレスエンコーダ207は、勝ち残り、になっている。
この場合、続けて論理和109演算が続くので、中文献のプライオリテイアドレスエンコーダ出力207も、勝ち残り、のままにしておく。
図33は、文字列(検出)の論理積110集合演算を行い、そのマッチアドレス213が、左文献と、中文献の中に1つずつ存在する。
この際、左文献のプライオリテイアドレスエンコーダ207は既に、勝ち残り、から脱落しているので無視される。
中文献のプライオリテイアドレスエンコーダ207は、勝ち残り、が継続される。
当然、右文献のプライオリテイアドレスエンコーダ207は、勝ち残り、が継続される。
図34は、文字列(認識)の論理積110集合演算を行い、そのマッチアドレス213が、右文献の中に1つ存在する例である。
この場合、論理演算条件223の指定が負論理113であった場合、右文献のプライオリテイアドレスエンコーダ207は、勝ち残りから脱落し、文字列(認識)の論理積110集合演算のマッチアドレス213が存在しない中文献が、最終勝ち残り、の文献となる。
以上の集合演算(複数回の最集合演算)は、外部から与えられる、論理演算条件223をもとに図29で示した論理回路224により、適切に実現される。
本例では、集合演算を集合演算機能を備えたメモリ303のアドレス空間全体を一括して行っているが、部分的な領域を指定して集合演算できることはいうまでもない。
仮に1Mアドレス(100万アドレス)の集合情報の場合、高速なメモリをCPUが1スキャンするだけでも数m秒が必要になり、範囲を含めたベクトル演算、つまり組み合せ演算があればすぐに組み合せ的な爆発を起こし、極めて多大な情報処理時間が必要になることはこれまでの説明の通りである。
本例のような集合演算の場合、1Mアドレスであろうと100クロック程度の処理で集合演算が可能になるので、熱が問題にならない10n秒のクロックの場合でも1μ秒程度で全体の集合演算が完了できる。
当然ながら、この演算に必要な電力も極めて削減される結果になる。
仮に特許検索に、シソーラスの考えを組み込んだ検索ができるようになれば利用者の負担は大幅に軽減され、しかも見落としのない確実な特許検索が可能になる。
本例は1次元配列の情報を対象としたものであるが、集合演算機能を備えたメモリ303は、2次元配列や、3次元配列、さらには配列の決まった情報の全てに利用することが可能であることはこれまでのパターンマッチの例を参照されたい。
この場合には、図19に示すよう、情報データ配列411を指定(本発明の「第4の入力」に該当)できるようにすればよい。
以上のような集合演算が自由に出来れば、これまでのパターンマッチの概念もさらに拡大し、さらに高度で効果的なパターンマッチが可能になる。
例えば、論理否定を利用することにより、排他データ426を利用した排他パターンマッチ427をすることができる。
また、例えば、一定のアドレス領域に期待する情報が全て存在する場合、その全てのマッチアドレス213を逐次出力させるより、期待する情報の補数、つまり排他データ426で集合演算を行い、その結果マッチアドレス213が一つもないことを確認(マッチアドレスの読み出し)、つまり排他パターンマッチ427をするほうが後工程の負担を軽減することができる。
(エッジ検出の例)
図35は、集合演算機能を備えたメモリによるエッジ検出の例である。
本例は情報の論理否定111を利用した排他パターンマッチ427の効果的な活用例である。
図に示す実際の画像には、黒、青、緑、白、そして赤の画素406が複雑に混ざった画像405の集合102を示している。赤の集合102はこの中から赤の画素102のみを値117の集合演算115で求めたものである。本例の場合赤画素は球体の形状であり同一の画素で形成された一定の領域を持っている、また言うまでもなくこの球体に黒、青、緑、白などの画素が複雑に隣接している。このような場合、前述の排他データ426による排他パターンマッチ427を利用したエッジ検出が有効である。
図のSTEP1は、基準情報421を赤の画素として、基準情報421の左側に隣接する画素(X=−1、Y=0)が赤以外の画素(赤の論理否定111)であることを条件として排他パターンマッチ427を行い球体の左側エッジをマッチアドレス213として検出したものである、この排他パターンマッチによりエッジ右側に存在する赤画素(領域内赤画素)は無視される結果となっている。
図のSTEP2は、基準情報421を赤の画素として、基準情報421の右側に隣接する画素(X=+1、Y=0)が赤以外の画素(赤の論理否定111)であることを条件として排他パターンマッチ427を行い球体の右側エッジをマッチアドレス213として検出したものである、この排他パターンマッチによりエッジ左側に存在する赤画素(領域内赤画素)は無視される結果となっている。
図のSTEP3は、基準情報421を赤の画素として、基準情報421の上側に隣接する画素(X=0、Y=+1)が赤以外の画素(赤の論理否定111)であることを条件として排他パターンマッチ427を行い球体の右側エッジをマッチアドレス213として検出したものである、この排他パターンマッチによりエッジ下側に存在する赤画素(領域内赤画素)は無視される結果となっている。
図のSTEP4は、基準情報421を赤の画素として、基準情報421の下側に隣接する画素(X=0、Y=−1)が赤以外の画素(赤の論理否定111)であることを条件として排他パターンマッチ427を行い球体の右側エッジをマッチアドレス213として検出したものである、この排他パターンマッチによりエッジ上側に存在する赤画素(領域内赤画素)は無視される結果となっている。
以上STEP1から4を組合せすることにより画像の全体のエッジ(輪郭)アドレスが得られることになる。
更に高度なエッジを検出する必要があれば、赤を基準として、左上、右上、左下、右下の条件を入れることや、画像上のノイズを無視するために数画素間を設けて排他パターンマッチを行うなど従来のフィルター効果を利用することなども自由である。
もちろん完全一致のみならず値の範囲や一色のみならず複数の色や輝度を対象とすることにより物体の特定が容易になる。いすれにしても、領域内全てのアドレスを対象とすることなく、エッジのみのアドレスを直接検出出来ることは、エッジ検出の負担を軽減するのみならず後工程の負担も大幅に軽減する結果となる。
以上のようにエッジ検出という極めて簡単な集合演算により物体の形状を認識することが出来る。
言うまでもなくこのエッジ検出は画像空間全てに対して行われるものであり物体の領域が広くても、どの様な形状でも問題ない。
エッジアドレスが検出できれば物体の大きさ、重心などを求め物体を特定することや、エッジによる物体の動きを追従することが極めて容易になることを意味している。
以上のエッジ検出はいずれのSTEPも数クロックの集合演算で実現できるので、様々な条件を組合せ効果的なエッジ検出を行うことが出来る。
以上説明の通りエッジ検出はパターンマッチ同様画像認識を行う上で必要不可欠の画像処理でありグレースケールのみならずカラーによる複雑なエッジ検出は従来概念を大きく変える画像処理ツールとなる。
以上の例は集合演算機能を備えたメモリ303の利用方法のほんの一部に過ぎない。大量のデータベース407や更に高速を図る場合には、集合演算機能を備えたメモリ303を並列に接続して利用すればよい。この場合、集合演算機能を備えたメモリ303は使用するデバイスの個数に比例したパフォーマンスが期待できるのも大きな特徴である。
集合演算機能を備えたメモリ303のメモリセル202は、DRAM、SRAM、ROM、FLASHタイプなどあらゆるタイプのメモリで実現させることができ、また半導体メモリ等に限定されるものではない。常に一定の集合演算を繰り返すような場合においては、論理回路110を固定化して使用することや、FPGAのようなPLD(Programmable Logic Device)を用いて半固定化して使用することも可能である。
本例では完全並列の集合演算を紹介したが、一部の機能を逐次処理として使用することも可能である。
また情報の場所114の集合が単純である場合には、通常行われるアドレス設定やバンク切り替え、仮想メモリ空間の考えで場所114を指定することも可能である。
以上、集合演算機能を備えたメモリ303の集合演算の実例を2例で示したが、情報を探す仕事、検索、照合、認識のいずれにも利用できることはこれまでの説明の通りである。
集合演算機能を備えたメモリ303はCPUや、CCD、CMOSセンサなどの半導体に組み込み込まれ使用する場合、反対に集合演算機能を備えたメモリ303にCPUやその他の半導体を組み込み更に高度な情報処理をさせることも可能である。
以下、上記集合演算機能を備えたメモリ303で実施できる他のパターンマッチングの例を説明する。
いずれの例も、メモリアドレスごとに情報を記憶しその情報を読み出し可能なメモリであって、このメモリは、外部から与えられる、各メモリアドレスに記憶された情報を比較するための第1の入力221と、各メモリアドレス同士を比較するための第2の入力222と、集合演算条件として(1)部分集合、(2)論理和、(3)論理積、(4)論理否定のいずれか若しくはそれらの2以上の組み合わせを選択可能に指定する第3の入力223と、を入力するための入力手段と、第1の入力に基づき、アドレス毎にこのメモリに記憶された情報と比較する判定する手段208,209と、第2の入力に基づき、このメモリに記憶された情報同士を比較し判定する手段210,211と、第3の入力に基づき、前記第1及び第2の入力に基づく判定結果について論理演算する手段224と、この集合演算結果を出力する手段207とを有するものである。
(画像パターンマッチングの例)
以下、画像パターンマッチングの例を、図36〜図50を参照して説明する。なお、以下の説明では、優先権主張の基礎出願との対応関係が分かりやすいように参照符号をそのままにして説明していることに留意されたい。
図36は、画像パターンのおよび画像パターンマッチの説明である。
パターン1の原義は織物の柄や印刷物の絵柄を現す言葉であると同時に、特定の事象や物体の特徴を現す場合に広く使用される言葉である。画像のパターン1の場合、これらの柄や絵柄は、細かい色や輝度が、様々な位置に、組み合わされて、配列されたものと定義して良い。温度パターン1や景気のパターン1などは一次元情報のパターン1の例であり、文字列やDNA配列、コンピュータウイルスもこのパターン1の一例である。静止画、動画、CGを問わず、一般的な画像はメモリ上の画像情報5をもとに表示再生が行われるもので画像情報5と画像は表裏一体の関係があり本明細書では画像情報5を単に画像5と表現する。
図ではトンボのような虫眼鏡で指定されたパターンを探し出す時の概念が示されており、図では省略されているが画像5上に記憶された全範囲の画像情報の中から特定のパターン1をトンボのような虫眼鏡で検出した状況である。
図に示すように画像5によるパターン1は、Aパターン1の、BL(黒)、R(赤)、G(緑)、O(オレンジ)、B(青)で示される色2情報や、Bパターン1の、5、3、7、8、2で示される輝度3情報が座標上に組み合わされたものである。このパターン1の色や輝度のデータとその座標4の位置が相対的に合致する事により画像パターンマッチ17が成立する。
以上の問い合わせパターン1は人の意志にもとづき、色や輝度とその位置を適宜組み合わせパターン1として構成する場合と、何らかの他の画像の中から特定の画素とその位置を抽出して問い合わせパターン1を構成する場合、その双方を組み合わせして問い合わせパターン1を構成する場合の3通りがある、その詳細は後述する。
この時、問い合わせBパターンのように色や輝度のデータ値に一定の幅を与え、さらに組み合わせの座標4の位置にも一定の範囲を与えることにより、完全一致の画像パターンマッチ17から類似画像パターンマッチ17にその手段を拡大することが出来る。以上は、人間にとっては、極めて単純な事であるが、人間にとって極めて容易にパターンマッチ17できる内容も現在のCPUとメモリを中心にしてなされる情報処理では極めて負荷の掛る厄介な情報処理の一つである。
図37は、本発明の情報絞込みメモリを用いた画像パターンマッチの原理の説明である。
画像5はXY軸2軸の情報として扱われる2次元情報の代表的な情報である。どのような画像5も画像5を構成する画素(ピクセル)6の数がXY軸両軸決められており、その積算されたものが総画素数となる。原則的に画像5の基本となる輝度3情報や色2の三原色等の色2情報はこの画素6単位で獲得され記憶媒体に記憶される。
一方コンピュータのメモリは、情報を記憶する場所、その記憶された情報の場所を指定するためのアドレス7が存在する。このアドレス7は一次元、線形配列で通常0番地からN番地まで16進値で指定される。図に示す通り2次元情報の画像5情報を画素6毎にメモリに記憶する場合、1ラインの画素6数(n、2n、3n・・・)で折り返しを繰り返し、N番地までメモリのアドレス上に書き込みが行われている。
一般的にアドレス等は0番地からn番地などの表記が一般的であるが図では説明を簡略化するために1画素からn画素の配列で図示している。またこの説明では便宜上、図の上方から順にアドレスを割り当てしているが、下方から順にアドレスを割り当てする場合でもなんら問題ない。また画像5を構成する画素6は輝度3情報の場合1つの種類のデータをメモリに記憶するだけであるが、色2情報の場合、通常色の3原色R、G、Bをそれぞれ独立して記憶する必要があり通常は1画素6当たり3つの画素情報を記憶する必要がある。従って1画素6当り3アドレスで色2情報を記憶する場合、実際のメモリは画素6数の3倍のアドレス7数が必要になる。いうまでもなく1ラインの画素6数(n)が分かっていれば、画像5上のどの画素6のどの色2の情報がメモリ上のどの位置に記憶されているのか、その反対も容易に変換することが可能である。
以上の画素の配列は、画像フレームバッファ情報はもとより、ビットマップ画像情報、JPEG、MPEG等の圧縮画像データ、さらに地図やアニメ―ション画像のCGなどの人為的に作成された画像つまり二次元配列の画像全てにおいて共通であり、一般的な画像を扱う上での基本的な約束事項である。
図37に示すA、Bの2つの画像パターン1は、5つの画素6とその位置で構成される画像パターン1であり、パターンマッチ条件が5条件である。Aパターン1は、色2情報である、BL(黒)を基準にして、R(赤)、G(緑)、O(オレンジ)、B(青)が図示する画素位置に配列されている。Bパターン1は、輝度3情報である、「2」を基準にして、「5」、「3」、「7」、「8」が図示する画素位置に配列されている。基準となる画素はパターン内どの画素でも構わない、また対象とする画素の数(パターンマッチ条件)は多くても少なくてもよい。
これまでの技術では、この様な問い合わせパターンをもとにして、配列記憶されたメモリ上のアドレスをCPUが逐次処理して見つけ出す処理、つまりソフトウエアよるパターンマッチを行う必要があった。つまりパターンマッチと称する情報処理はその大半がCPUの処理によるものであるため本質的なパターンマッチとはかけ離れた内容になっているのが実態であった。
この発明の情報絞り込み検出機能を備えたメモリ51(303)では、これまでのCPUとメモリの逐次処理による無駄時間をなくすため、以上説明のようなA、Bのパターンを直接入力することにより、メモリ内の情報処理のみで、パターンマッチ17させて、パターンマッチ17したアドレス7を出力させるよう構成したものである。以下、先に述べたA、Bパターンをもとにその動作原理を紹介する。
情報絞り込み検出機能を備えたメモリ51(303)は指定されたデータに合致し、更に配列された情報の相対位置が合致、以上双方のマッチングをメモリの内部でとることが出来るメモリ51(303)である。
これまで説明してきたように、2次元座標は、図に示すように、基準画素6からの位置が線形配列の画素6位置情報に変換されている。注目すべきは、基準画素6とその周辺の画素6で構成される、一組のパターン1の画素6の相対距離はこの画像空間上どこにあってもいつも一定である、この事がこの発明の基礎となっている。
以上の内容は画像情報を取り扱いするときの周知の事実であるが、この発明はこの基本的な事実を半導体デバイスとしてハードウエアに組み込みすることが可能であり、パターンマッチ17に利用できる事を証明したものである。
また、複数の画素6とその位置で構成される1組のパターン1は一定の画素数を持つことにより、そのパターン1が他に存在する確率は極めて少なくなることである。従って、パターン範囲内の画素全部を対象にする必要はなく、適切な画素6の数を選びサンプルとすることにより指定したパターン1が絞り込まれて検出できること、さらには部分毎のパターン1を組合せ全体のパターン1を検出することなど、効果的なパターンマッチ17が行われる事が大きな特徴である。
対象になる画像に拡大や縮小、更に回転等がある場合には単純な座標変換を行いパターンマッチさせればよい。画像の拡大、縮小の率、更には回転角度が未知であるような場合には、問い合わせBパターンのようにマッチさせる座標の範囲を広げておけば、パターンマッチの回数を極限まで削減させることが出来る。まずは確認すべき座標の範囲を広げておき、対象となるパターンが存在する可能性があるかどうかを掴むことが重要である。パターン存在の可能性がなければその段階で切り上げればよい。もし絞込みが不十分であり多数のパターン1が存在する場合は、更に新しい画素をサンプルに追加し絞り込して目的のパターン1を探せばよい。
以上のような情報絞込み機能を備えたメモリ51(303)の原理と、その応用例で分かるように、この処理は全くCPUなどの情報処理手段を使わなくても極めて高速で指定したパターン1の検出をハードウエアのみで実現できるところが大きなポイントである。
通常のCPUとメモリによるパターンマッチ17とハードウエアパターンマッチのスピードの比較は背景技術に示した通りであり、7条件(画像の場合7画素)のパターンマッチが34nSで実現された事に相当する。画像に適した機能とアドレスサイズのデバイスの1条件当りのパターンマッチ時間が仮に1μs程度であっても画像認識、物体認識技術は大きく進化する、詳細は後述する。
図38は、画像の領域・輪郭の例の説明である。
図に示す画像5上の物体8は画像上、領域(エリア)9ならびに輪郭(エッジ)10でいずれも色2情報や輝度3情報を基に抽出され画像処理の基本となる情報である。
これらの領域(エリア)9ならびに輪郭(エッジ)10はアナログ情報処理が可能でありこれを高速デジタル変換し情報提供が可能であるが、実際のこのデータから、画像の特徴をCPUが見つける場合は、どこにどのような情報つまり輪郭や領域情報があるのか分からずに手あたり次第探索をせざるを得ない、従って極めて負担の多い情報処理となり、一般的にはこれを避けるために様々なソフトウエア情報処理或アルゴリズムが考えられている。
しかしながらどのようなソフトウエア情報処理或アルゴリズムであるにしろ本質的な問題解決とはならず、CPUによる大量な逐次情報処理は避けて通れない。この発明のメモリは、このような問題点を解決するものである。
以降以上のような画像の領域・輪郭を効率的にパターンマッチする方法を説明する。
(実施例1−1)
本発明の特徴を利用した物体の認識の例を説明する
図39は画像の排他パターンマッチの説明図であり、対象となる画像情報5、の画素6の中から物体8の領域(エリア)と輪郭(エッジ)を効率的に検出する例を示している。
特定の色2や輝度3の領域(エリア)9を持った物体8を探す場合、その物体の背景パターンは無限に存在するために様々な色2や輝度3のデータ54によるパターンマッチ17を必要回数繰り返しする必要がある。
このような場合に有効なのが排他パターンマッチ59(第3の入力として排他集合演算を行う)である。
本例では画像中にボールのような球状の白い(W)物体8が3個所ある画像の場合の例であり、横幅6ピクセルの白いボール8の一定の領域(エリア)9を指定するための4つの白い範囲(W)データ54とこれに外接する4つの白以外データ(W(━))データ54つまり白の排他データ58により、この(W)、(W(━))の境目で4個所のボールの輪郭(エッジ)10を検出できる。
つまり特定の大きさの白の物体8、本例では横幅が6画素のエリアを持った白い物体(ボール)のみが検出される。
白(W)の横幅は5ピクセルでも7ピクセルでも除外されることになるので、極めて正確な物体大きさの検出が可能になる。
本例では完全に隣接した画素6同士で排他パターンマッチ59を行ったが、(W)、(W(━))の範囲を一定範囲あけることにより、多少大きさが変化した白い物体8も容易に検出できる。この場合、ボールエリア以外の背景の画素6が白以外の何の色であっても排他データ(W(━))を使えるので、本例のように8か所程度の画素6をパターンマッチすれば極めて単純に横幅6画素の白のボールを探し出すことが出来る。この様な(W(━))の排他データ58は、情報絞り込み検出機能を備えたメモリ51(303)の場合、その連想メモリ(CAM)機能の(W)出力を一旦否定(インバート)し、このインバート結果(W(━))をCAM出力として書き換えする(CAM出力を反転する)ことにより極めて単純な原理で利用できるので、探し出す対象物の背景の画像が不特定で無限の可能性がある場合に極めて効率的である。
本例では白一色の排他パターンマッチ59の場合であるが、その他の色を組み合わせることにより複雑な画像を極めて少数のパターンマッチで検出することが可能になる。
物体の形状を精度よく求める場合には、パターンマッチのポイントの数量とその位置を適切に選べばよい。移動する物体を認識し、追従する際に不可欠のパターンマッチが可能になる。動画中のある物体が1フレーム毎に少しずつ大きさや形状が変化する場合には1フレーム毎に物体の形状を更新して次の1フレームの物体とマッチングを取ればよい。この様な移動物体の追従は映像装置やセキュリテー装置に不可欠の技術である。
この技術は手書き文字認識や指紋、更に一次元情報などのパターンマッチに広く利用できる。本方式のパターンマッチは強力である、これまで大がかりになりがちな画像処理を極めて単純処理することが可能になる。
(実施例1−2)
図40は、近傍4画素パターンによるエッジコード符号化の説明図である。
通常の画像情報は輝度や色を表現(表示)する目的として、獲得され記憶されている。
画像処理も与えられた輝度や色情報をもとになされるが、新たに、新しい考え方の情報を利用することより極めて高速で効果的な画像処理が実現する。本コードはその目的で考えられたコードで、画像内の任意の1画素の近傍4画素と違いをコード化したものである。
一例として図に示すように、全ての画素の輝度もしくは色データを2値化して、本例の場合、近傍の上(U)、下(D)、右(R)、左(L)の画素と比較し、一致するか否かを判断してその結果を「0」から「F」までの16種の符号にコード化したエッジコード12である。1画素が近傍の4つの画素とすべて異なる状態の画素から、近傍の4つの画素とすべて同じである、領域(エリア)内画素まで16種類で、このコードの意味する所は上(U)、下(D)、右(R)、左(L)のいずれの輪郭(エッジ)が存在するかを示している。
図に示すように、近傍4画素は必ずしも隣接画素とする必要もなく、近傍の適切な画素との比較とすることにより、画像のノイズを軽減することも可能になる。いずれにしても画像全領域の画素のこのコードを持たせることが重要である。
これまで仮にこの様なデータが存在したとしても、これらの情報を読みとり特定の情報を探し出すためには情報処理上大きな負担となったが、CPUとメモリによらない新しい情報処理デバイスの出現により大きな効果が生まれる、詳細は後述する。
(実施例1−3)
図41は、近傍8画素パターンによるエッジコード符号化の説明図である。
先に説明の図40では上下左右4画素の近傍画素をエッジコード化したものであったが本図は更に4つの、左上、右上、左下、右下のコーナの画素を含み8つの画素でエッジコード12を符号化した例である。この場合には合計256通りのエッジパターンが存在しより細かなエッジを検出することが出来る。
以下にこれらのエッジコードの12の応用例を説明する。
(実施例1−4)
図42は、情報絞込み機能を備えたメモリを用いた画像パターンマッチの情報配列の説明図である。
情報絞込み機能を備えたメモリ51(303)そのもの詳細説明は割愛するが連想メモリ(CAM)のデータマッチ機能に加えアドレスのシフトなどアドレスの置き換え機能(スワップ機能)で、外部から指定されたデータと相対アドレスの双方を並列演算してその条件にマッチしたアドレス7をマッチアドレス57として出力する情報処理機能を備えた情報検出デバイスである。
これまで説明の画素6の情報、ここではR、G、B3色の色2情報と、R、G,Bのエッジコード12の合計6つの種類の画素6情報を情報絞込み検出機能を備えたメモリ51(303)に情報配列した例である。これらの6種類の情報をそれぞれ個別の情報絞込み機能を備えたメモリ51(303)に記憶させる方法でもよいが、本例では情報絞込み機能を備えたメモリ51(303)の機能を最大に発揮させるための方法例である。
本例では情報絞込み機能を備えたメモリ51(303)全体を6つのバンクに分割して、6種の情報をそれぞれのアドレスバンク52に記憶させた場合である。6種類の情報は1アドレス7からNアドレス7まで画素の順番で同一配列で記憶すればよい。
このような構成にする事により、いずれのバンク内の同一アドレスが同一画素となり、色2の情報と、領域(エリア)9、輪郭(エッジ)10の情報を使い分けして情報を絞り込んで行く、つまり効率的なパターンマッチ17をすることが出来る。
バンク指定53はどの種類の情報を対象にするかの選択である、データ指定55は記憶されたデータ54値の一致アドレス7を検出するものである。相対アドレス指定56は画素間の相対アドレス(相対位置)を検出するものであり、マッチアドレス57は以上の条件にマッチする絞込みされたアドレス7(画素6)である。
この絞り込みの効果は絶大である、データとその位置がマッチする確率は極めて少ないからである。データ値と、相対アドレスを1対ずつ指定することも、複数の画素のデータ値と、相対アドレスをまとめて一括指定することも自由である。またデータ値を範囲で指定することも、相対アドレスを範囲で指定することも可能である。もちろん単純に連想メモリ(CAM)機能によりデータ値のみのマッチも可能である。
以上のような配列で画素情報を情報絞込み機能を備えたメモリ51(303)に配列することにより極めて効率の良い画像処理が可能となる。
(実施例1−5)
図43は、物体のエッジコードの応用例の説明図である。
色2情報、ならびにエッジコード12から、物体の大きさを効果的に実施する方法を示している。図に示すように、2つの物体の色2の情報とのエッジコード12は図示するように記憶配列されている。
ここで物体の大きさの概要は以下の極めて効果的な処理により実現ででる。
まず、当該情報が記憶されているバンクを指定し、Fのコードを出力させる、その際、アドレス値の最も若い(少ない)領域最少アドレス、とその反対の領域最大アドレスは物体の高さを示しており、その範囲に必ず領域最右アドレス並びに領域最左アドレスが存在する。物体の高さ、並びに幅が限定されればその詳細を調べるのは容易である、このコードで当該物体のすべての輪郭を求めるのにコード「F」を除く「0」から「E」までのコードの15回のマッチングで、凹凸や平面を含む領域周辺の輪郭をすべて識別することが出来る。
更に、色情報と組み合わせすることにより、複雑で高度な画像物体の形状認識が可能になる。
一例であるが丸いエッジ、四角のエッジ、鋭いエッジなど物体の形状16を効果的に表す情報となる。これらの情報をパターンとして採取もしくは作成し、作成されたパターンでパターンマッチをかけることにより物体の形状認識が極めて効率的に実現できる、詳細は後述する。
これまでのCPUとメモリによる画像処理に比べ比較にならないほど少ない情報処理回数でしかも効率的に画像物体の形状認識が行われていることが分かる。
ただしこの方法での物体の大きさは奥行きがある場合、実寸とはならないことに留意する必要がある、奥行きのある物体の実寸の計測については後述する。
(実施例1−6)
図44は、局部パターンマッチによる無作為および作為パターンマッチの説明図である。パターンマッチ技術を使って画像上の物体を論理的に効率よく見つけ出す手法を説明する。
本例は、画像上の空間をいくつかの部分、もしくは局部に分割し、その部分の色とその形の情報のパターンを採取する場合の説明である。
いうまでもなく我々人間が物体を認識する上での大きな比重は色の情報である。また多くの物体は画像上幾つかの色の領域の組み合わせで成り立っている。従って局部的なパターンか部分的なパターンを構成し、さらに部分的なパターンが全体パターン(画像全体)を構成している。従って局部的なパターンもしくは部分的なパターンを適宜組合せしてパターンマッチ17をすれば物体の認識が可能になる。
図示するように、本例ではX軸6、Y軸6、合計36個所の部分もしくは局部からそれぞれ5画素を無作為に問い合わせパターンとして採取している。さらに図では以上の36の局部パターンの中の2つの局部パターンの詳細を示している。
一つは無作為に採取された物体が、赤(R)の色情報を持つ十字パターンの物体であり、もう一つは青(B)の色情報をもつ円形の一部が欠如したパターンの物体である。図に示すように採取された5つのサンプル画素の特徴に応じて今度は作為的(意図をもって)にパターンマッチをかけて詳細を求めればよい。
このような無作為に採取されたパターン1を用いたパターンマッチ17の応用は無限に存在する。
その一つはデジタルカメラの手ぶれの検出に有効である。
シャッターを押した瞬間の画像とシャッターが切れる直前の画像の各部分を部分、または局部的にパターンマッチすることにより、画面全体が移動したのか(手振れ)画像の一部が移動したのか(対象物の移動)、その双方の組み合わせなどが極めて簡単に検出できる。
以上説明の無作為に採取されたパターン1によるパターンマッチ17の結果を基に、さらに局部ごとの作為的な詳細パターンマッチ17は通常の物体検出の基礎になるものである。
しかしながら眼に映るすべての物体を認識する場合には局部マッチングの繰り返しとなり、一つ一つのパターンマッチがいかに高速でもその数が大きければ処理時間は大きくなる。
人間は瞬時に様々な物体を同時に認識できると誤解されがちであるが、我々の日常活動での認識処理は常にこのような広範囲で詳細な認識はしていない。つまり目に映るすべての物体を隈なく認識するのでなく、それぞれの瞬間に必要なものを必要な程度認識している。このことはコンピュータによる画像認識を人間の眼と脳の認識に当てはめる上で特に重要であり以下にその趣旨を記載する。
我々が集中して物体を認識する例が車の運転時である。
如何に安全運転に注意して運転しているときでも目に入る風景の一つ一つを物体認識しているのではなく、必要とする情報と刺激を受ける物体が認識の対象になり、一瞬一瞬で認識できる物体はせいぜい3から4種類程度の物体である。
以上を証明するには、多くの物体が映っている写真を一瞬の間だけ見た場合に認識できる物体の数を調べればよい。人による個人差もあるが、一秒間だけ写真を見て認識できるものは数物体程度である。また眼に映っているものの中に認識したい物体があれば無意識の内に、視線をそのものに向けている、視線を注がれた以外のものは景色として見えているだけで認識の対象外である。つまり一秒間に3つから4つの物体認識でもその積み重ねが記憶され、全体的な物体認識情報となり我々人間の高度な認識がなされている事実である。
以上の説明のように、最初は刺激の多いもの、たとえば目立つもの、興味をもっているものを認識し、後は時間をかけて順次写真全体を眺め、あるいは凝視し、順次物体を認識していることが良くわかる。
認識の程度も様々である、一例であるが写真の中の車両を認識のレベルは、その色、形、メーカー、型名、更にはナンバープレートまで認識のレベルは様々であるが、通常の運転ではこのような細部の認識は不要で単に車と判断出来ればそれでよい。
以上の説明で分かるようにコンピュータによる人間に近い画像認識の、認識の程度は意思を持って(作為的)に局部または部分的なパターンマッチをどこまで繰り返すかであることが分かる。
無作為のパターンマッチは運転席から眺めた全体風景、景色のようなもの、さらに必要があり意思を持った作為的なパターンマッチは前車のナンバープレートを認識するような人間の認識に例えられる。
つまりコンピュータによる人間の眼と脳による物体認識は、無作為(無意識)なパターンマッチと、画素情報とその位置を適宜組み合わせして問い合わせパターンとして構成する場合の作為的(意図的)なパターンマッチを組み合わせして、その時点で必要な物体を必要な精度で認識出来ればよいことになる。
対象となる画像は必ずしも大画面で高精細度の画像でなくても人間の眼球同様に重点的に認識したいものに焦点を当て必要に応じ拡大してパターンマッチをかければよい。
個別の情報を探しまわる画像認識に比較して、複数の画素の配列で構成されるパターンによるハードウエアパターンマッチは絞り込み効果が極めて高いので究極的な画像認識手段である。
最初の段階では絞り込み条件を、2から3に条件に緩くしてパターンマッチさせ、パターンの有無の存在が確認出来たら5条件や10条件など詳細なパターンマッチを掛けるなどパターンマッチの使い方は自由である。
1条件のパターンマッチが仮に1μsの場合でも、1秒間に実現できるパターンマッチ回数は100万回であり、この事は理論上、画面上1000箇所を個別に1000回パターンマッチさせる事が可能であることを意味している。
さらに必要に応じてこのデバイスを並列に使用し、適切なパターンマッチと知識処理を実行すれば、一秒間の間に認識できる物体の数を人間並みそれ以上に進化させる事も可能になる。
一言で言えば使い方次第である。
車の安全運転のみを考えた場合、運転席から眼に入る建物、ビル、樹木、道路や車両そのすべてを個別に認識する必要はなく、建物、ビル、樹木などは固定物として一括して認識しても問題ない、また遠景の物体は無視してもかまわない。
更に高速道路での運転であれば道路上の物体を中心に認識すればよい。
後は如何に必要とする情報を高速で効率的に検出できるかであり、その代表的な例が、交通信号や交通標識である。
これらは刺激色(ハイライト色)、刺激色の組み合わせとして画像からその部分を検出し易い。
以上は色を特徴とした作為的なパターンマッチングで実現できる。
さらに距離の近いもの、大きいものが認識すべき重要なものである、この件に関しては後述する。
安全運転をする上で不可欠な歩行者の飛び出しや前車の異常などは画像の動きとして容易にその部分を検出できる。
以下にその例を説明する。
図45は、物体の変化画像検出の説明図である。
画像の動きは本図に示すように、時間T0と時間T1の二つの画像の差分を取ることにより動いていない画素を削除し、動いた、移動した画像部分を効果的に検出することが出来る。この変化画像11部分をパターンとすることにより、動画像上の物体の動きや、カメラのアングルの動きをキャッチして様々な応用が可能になる。特定対象物をパターンとして捉え、何時もこのパターンが画面の中心になるようにするなどの自動カメラアングル追従など極めて簡単である。
以上のように検出された画像部分を対象パターンとすることが出来るので、先に示した全範囲の無作為パターンマッチングのみに頼らず、動きのある部分のみのパターンマッチングをすることが出来る。本方式の差分画像検出は、標準画像との比較による位置ずれ検出や製品の欠陥検出など様々な利用方法がある。
(実施例1−7)
図46は、局部パターンマッチによる物体の対応点検出の説明図である。
本図では空間中に赤(R)、B(青)、黄(Y)、緑(G)の4色の風船のような物体8が浮かんでいる画像を左右のカメラの画像としてとらえたものである。両眼カメラで捉えた物体の画像と実際の物体はエピポーラ平面で構成されるので、両眼カメラの距離が分かれば三角測量により物体の奥行きを含むXYZ軸の位置が計測可能である。
図では物体はY軸(高さ)が省略され、X軸、Z軸2軸で表現されており、一方左画像14、ならびに右画像15は、Z軸が省略されX、Yの2軸が表現されている。左右いずれかを基準として、基準からサンプルパターンを採取し、もう一方の画像に問い合わせして一致したところが互いに対応点21である。
説明上図では、単色でのパターンマッチ17で説明しているが、通常は単色以外の色の組み合わせで局部マッチすればよい。物体の画像の多くの部分は左右双方の画像(パターン)と同様または類似した画像(パターン)として存在するはずである、また画像処理上課題になる照明の問題や撮影環境も同一であることから対応点21の対応付けがし易い。左右画像の対応点21が検出出来れば、その対応点21の画素位置から物体の奥行18方向を含む3軸の計測可能である。
以上の手法によりその画像物体の実際の寸法を極めて高速で計測できることになり、画像処理上その効果は計り知れない恩恵を生み出す。
(実施例1−8)
図47は、エッジコードによる物体認識の説明図である。
以上の図46で示されたパターンマッチ17原理の実例である、先ほどのエッジコード12がそれぞれ左画像14、右画像15で記憶されている場合、左右のエッジコード12でパターンマッチ17を掛けると、その対応点21パターンはその物体固有のパターンとなり画面空間上、他に存在する確率は極めて少ない。
従って左右いずれかのエッジパターンを採取して問い合わせパターンとして、左右の対応点21をパターンマッチで探し出せばよい。
例えば左右別々のエッジが一つの物体であるか否かの判定も極めて高速に認識出来、その奥行き(Z軸)距離が求められるとともにその物体のX、Y、Z3軸の物体寸法13を導きだす事が出来る。
(実施例1−9)
図48は、立体計測を利用した人物認識の例である。
単眼カメラ画像の局部パターンマッチ17でも顔認識技術のレベルは格段に進歩できるが、以下に立体計測を利用した人物認識の例を説明する。
ここで説明の人物認識は画像範囲の中から人物の特徴を認識して個人名を特定することを意味している。
これまでカメラセンサやズーム機能等の性能が上がり高精細度の画像が得られても画像処理技術が進化出来ないため人物認識は極めて困難な技術のままである。
本発明を利用したパターンマッチにより人物認識は大きく前進する。
本例では図に示すように画像に表示される顔の眼や鼻、ホクロ、キズなどの特徴をパターンとして捉え両眼視差による対応点をパターンマッチ17させ、その結果から得られた、X、Y、Zの3軸の実寸法つまり眼の大きさ、鼻の高さなどを計測した例である。
これらの計測結果はその人固有の大きな特徴である。
言うまでもなく、このような特徴は眼や、鼻、ホクロ、キズなどの顔にかかわらず、口、眉、髭、手、足など人物として固有の特徴が得られるものであれ人体のどの部分でも構わない。色によらない形状や寸法による認識が出来れば人種を越えた人物認識が可能になる。これらの人物を識別するに相応しい特徴をサンプリンし計測できる解像度の立体計測カメラシステムを用いればよい。
高速なパターンマッチ17が実現でき、かつZ軸の情報が利用できるようになればこれまでの顔認識は人物認識に大きく前進する。従来の顔認識技術を組み合わせると、極めて高速で高精度な人物認識技術が完成する。
図49は、空間内の物体認識の説明図である。
以上のような物体の寸法やその距離が容易に求められる事は物体の実寸が分かる事になり、図に示した、3つの物体の大きさから、トラックのような大きさの物体、顔のような大きさの物体、リンゴのような大きさの物体と、物体の範囲を限定することが可能になり、後は色の情報や詳細な情報を基にクラス分けして物体を認識することが可能になる。
赤く、丸い物体で、寸法が13センチメートルであればリンゴの可能性が極めて高い。このように物体の実寸が分かる事により物体の認識率は極めて向上できる。
さらに安全運転をする上で不可欠なのが、前方方向の物体の大きさとその距離である。これらの奥行き情報を画素毎に画像情報として持つことによって、例えば前方50m以内の画像のみを認識させるなど効果的な画像検出が実現できる。
これらの物体の大きさと距離を正しく認識できることにより人間に近い車の運転をコンピュータで実現できるようになる。
以上の方法の多くはCPUとメモリによる通常のパターンマッチ17で実施可能である、ただしリアルタイム処理等は実現困難である。このような物体の実寸計測は言うまでもなく、高速で効果的なパターンマッチ17の手段が確立されたからに他ならない。
これまでの物体認識技術は特別なハードウエアやソフトウエアの上に成り立っていたがこの情報絞り込み検出機能を備えたメモリ51(303)で実現することにより画像認識技術が汎用化されることを意味する。
本発明の目的とは異なるが、参考のため以上のような空間認識に基づく知識処理を更に効果的に実現する方法を説明する。
一例であるが車両の安全運転に的を絞った物体認識であれば地図情報が極めて効果的にこの認識技術をサポートする。市街の交差点付近での安全確保や高速道路での安全確保のための物体認識はおのずからその内容は大きく異なる。これらの地図情報や車両の走行条件等を入力条件とすることにより画像として認識すべき物体の範囲を絞り込む事、すなわち知識処理の組合せ数を効果的に軽減出来る。
いまや多くの携帯端末にGPSが内蔵されているので、この情報を利用すれば日常のあらゆる環境に適用することが出来る。
さらに人の言葉を認識しこの言葉で認識すべき物体を絞り込みすることが出来る。
これまでの説明の繰り返しであるが、人間が認識できる物体の数は極めて多いが、一遍に認識できる物体の数は限定される、認識すべき必要のある物体を絞り込みして、最優先で認識すべきもの、その次のものと、手順を定め順次実行することにより人間の眼と脳に近い画像による物体認識が完成される。
(実施例1−11)
図50は、パターンマッチによる物体認識の概念説明図であり、これまでの説明をまとめたものである。
物体認識は画像処理と知識処理の双方が合体され成り立っている。
知識処理は物体の様々な特徴が様々なカテゴリーでクラス分けされて登録されており、画像処理から与えられた特徴を基に、データベースに登録された物体を知識処理で探し出す。また反対に知識処理で特徴を指定し画像処理でその特徴に合う特徴があるか否かを探し出すことも同様に行われる。
一方画像処理は、この発明の趣旨である特徴を探し出す処理と、その他の処理に分割される。
その他の処理の代表的な処理が演算処理や表示処理でありこれらの処理は従来通りCPUを中心とした情報処理で行う、この部分はサーチの無駄時間が全くなくCPUの機能を100%無駄なく利用できる。演算処理はこの発明のパターンマッチにより大幅に軽減されるのでCPUによるこの部分の負担も極めて少なくなる。
本発明の目的である特徴を探し出す処理は、色や輝度、エッジやエリア、更には奥行きなどの基本情報を基にパターンマッチで行い、得られる物体の特徴は、形状、寸法、動き、対応点、奥行き、空間など極めて広範囲で重要な特徴で、物体の特徴データベースからの物体の特定を効果的に実現することが出来る。言うまでもなく特徴を探し出す処理にかかる時間は情報絞り込み機能を備えたメモリ51(303)を利用することによって、サーチによる無駄時間を抜本的に解消することが出来るが、従来手法によるCPUとメモリによる逐次処理によっても実現可能である。
本発明では、画像処理の高速化並びに高精度化を中心にした物体の認識を中心にしているが、知識処理におけるデータベースの中から与えられた特徴に最も類似している物体を探し出す処理はパターンマッチそのものであり、画像処理のパターンマッチと、知識処理のパターンマッチ双方にこの技術が利用可能である。
知識の獲得とその格納方法については本発明とは別にする。
本発明の請求項の内容を本明細書の内容に照らし合わせてその要点記述する。画像のパターンマッチに関する特許は数多く出願されているが、メモリ上の画像情報のデータ配列そのものに着目し、極めて単純に画素の画像情報データ値と、その画素のデータ位置と、の2つを基にパターンマッチさせる例はない。
従ってこの例に記載されたメモリは、
画像のXY配列の大きさが定義された画像において
(1)画像を構成する、画素の画像情報データ値と、その画素のデータ位置と、の双方を適宜組合せして構成される画像問い合わせパターンを作成するステップは、情報絞り込み機能を備えたメモリ51(303)上に配列された画像の中から特定のパターンを見つけ出す際の一例として無作為もしくは作為的な問い合わせパターンの作成方法で示した内容である。(パターンマッチングしたデータを検索する行程)
更に
(2)画像検出の対象となる画像に上記画像問い合わせパターンを問合せする事によりこの画像問い合わせパターンにパターンマッチ17する画素を上記対象となる画像の中から検出するステップは、対象となるメモリ画像にサンプリングされたパターンを問い合わせして、パターンマッチしたアドレス(画素)を検出することである。(パターンマッチングしたアドレスを検索する行程)
以上(1)(2)のステップにより画像処理することを特徴とする画像認識方法(様々なパタンーンマッチの組合せ)が本発明の画像認識の特徴である。
(音声パターンマッチングの例)
以下、音声パターンマッチングの例を、図51〜図57を参照して説明する。なお、以下の説明では、優先権主張の基礎出願との対応関係が分かりやすいように参照符号をそのままにして説明していることに留意されたい。
情報絞込み機能を備えたメモリ50(303)そのもの詳細説明は割愛するが、上述したように、連想メモリ(CAM)のデータ52のマッチ19機能に加えアドレス51のシフトなどアドレス51の置き換え機能で、外部から指定されたデータ52と相対アドレス54の双方を並列演算してその条件で絞込みしたアドレス51を、パターンマッチ9したマッチアドレス56として出力する情報処理機能を備えた情報検出デバイスである。
音声認識技術はパタ―ンマッチ9技術の塊であり、このデバイスは音声認識に最適である。最近の言語学の研究では、最大の音素をもつ言語はアフリカ系の言語で200、英語46、日本語20、一番少ないのはハワイ語で13との研究事例が報告されている。研究者によってその数は異なるものの以上のような世界中の言語の音素を包含して、最大256程度の音素を高精度で認識出来れば音声認識は飛躍的に進化できる。
図51は、音素の振幅波形の参考例である。
本図は我々の言葉のある一瞬の音素5の振幅3波形の例であり、図に示すように、音素5は音声1信号として様々な周波数2が含まれた信号である。日本語の場合、母音、子音、半母音など20程度の音素の組み合わせでアイウエオの50音並びに擬音を発音することが出来る。
図52は、音素の周波数スペクトラム波形の参考例Aである。
本図はある音素の周波数2毎の強度(パワー)4をスペクトラム16計測したものであり、周波数2毎のその強度(パワー)4を配列番号15として配列8したものである。
本例では低周波成分から高周波成分まで50の配列8で、配列番号15毎にその強度(パワー)4が示されている。本図の音声1、音素5は低音域と高音域に大きな強度(パワー)4を持った音素パターン17である。
図53は、音素の周波数スペクトラム波形の参考例Bである。
一方、本図の音素パターン17は高音域に大きな強度(パワ―)4を持った音素パターン17である。図52、図53で示した通り、音素5をスペクトラム16波形は音素のパターン17を意味しているので、このパターンを正しくパターンマッチさせ読みとることが出来れば、確実な音素5認識が可能になる。
近年の音声認識技術では、音素スペクトラムパターンそのものを取り使うのではなく音声発声の声道の形状に注目して、音声スペクトラムを対数変換し、逆フーリエ変換したケプストラム系列を用いる場合も多いが、この場合で同様で各音素毎の周波数毎のデータをパターンとして解釈すれば全く同様である。
音素の認識をする上でで、重要なことは、同一音素5でも、個人差がある、その象徴的な例でとして男性と女性では低音域と高音域など微妙な差がある。従ってこのような個人差を許容するためには、多くの人の声を収集して、音素5の周波数2の配列8毎に音素の強度(パワー)4のデータ52の最大値10、最小値11を統計的な手法で範囲18をもとめ、これを範囲18をもったパターンマッチ9、つまりあいまいパターンマッチ13が可能なようにするとよい。
この様なあいまいパターンマッチ13を行う場合、データの分解能を高くしても全く意味がない、通常10レベル、最大でも20レベル程度の分解能があれば十分である。16レベルであれば、4bitで符号化可能である。この様な範囲検索を行う場合の方法として、データベース側に範囲18を設ける場合と、問い合わせするデータに範囲18を設ける2つの方法が考えられる。
図54は、音素判別のための範囲データの例である。
本例では、先に説明した、問い合わせするデータに範囲18を設ける場合の例であり、強度(パワー)4のレベルを16レベルとして、与えられたデータ52に最大値10、最小値11の範囲18を持ってパターンマッチ9をかける、あいまいパターンマッチ13の例を示している。
本例では与えられたデータに一律±2の範囲18を与え、それぞれ5つのデータ範囲を与えた場合のデータ52を示している。与えられたデータが下限値、上限値およびその周辺であればその範囲は減少する。以上のような考えに基づき強度(パワー)4のあいまいパターンマッチ13をすればよい。
図55は、情報絞込み機能を備えたメモリによる音素認識の例である。
図54で説明の配列8を、情報絞込み機能を備えたメモリ50(303)に配列8記憶させたものである。
図に示すように、本例では1つの音素5パターンを50の配列8として、情報絞込み機能を備えたメモリ50(303)の絶対アドレス51に、配列割り付けされ、データ52に強度(パワー)4データが記憶登録されている。
最大256種の音素を1音素当たり50の配列4パターンとする場合、そのアドレス空間は12Kアドレス程度である。
以上の極めて小さなデータベースで世界中の言語の音素の認識が可能になる。
発音され、スペクトラム変換された音素スペクトラム16は問い合わせ音素14として、情報絞込み機能を備えたメモリ50(303)に条件入力される。
この音素5データは配列番号15毎に強度(パワー)4のデータ52が配列されたものであり、この配列番号は、絶対アドレス51の相対アドレス54を指定する相対アドレス指定55である。
この相対アドレス指定55と、データ52を指定するデータ指定53の双方の指定データにより、情報絞込み機能を備えたメモリ50(303)の内部で絞込みが行われ、その絞り込まれた結果がマッチしたアドレス56として出力される。
このアドレスは音素5を指定するものであり、音素5そのものをパターンマッチ9させて認識させたものである。
次にデータの範囲18を含んだあいまいさを含んだパターンマッチ13を説明する。
この様な範囲18を持ったパターンマッチ9に当たっては範囲検出機能を持った情報絞込み機能を備えたメモリ50(303)をハード的に創ることも可能であるが、図54で説明の最大、最小の範囲をもったあいまいパターンマッチの場合、完全一致型のデバイス50でも、単純に与えられたデータ値に範囲18、最大値10、最小値11まで本例では5回の連想メモリ(CAM)機能のデータ52のマッチ19を範囲回数分、本例では5回繰り返し、都度マッチしたアドレスの論理和(OR)を取ることにより容易に範囲マッチングが可能になる。
以上の5回の繰り返しマッチングは並列処理であり極めて高速で処理可能であり、1配列5回ずつの配列を50まで順次パターンマッチ9をかけて行けばあいまいパターンマッチ13実現できる。
このパターンマッチは並列演算であるので極めて高速でしかも正確である。本例では50配列全体のパターンマッチ9を紹介しているが、統計確率上以上のようなすべての配列8に対してパターンマッチ9、13を実施することもなく必要数たとえば半数程度をパターンマッチ9,13することでも十分である。
たとえば車両の中の発音の中には車両特有のエンジンの回転音やエアコンの音など固有周波数のノイズが含まれる、このような場合、その時々の外来ノイズのその固有周波数の配列8のデータ52のパターンマッチ9、13を除外することにより信頼性の高い音素認識が可能になる。
このような動的なパターンマッチが出来るのも高速なハードウエアパターンマッチが実現できるお蔭である。
音素5を認識する際、とかく問題になる、音素の区間の問題も高速なパターンマッチの有効性を活かし、常に一定の時間、例えば10ミリセカンドずつでパターンマッチ繰り返し実行し、一定時間の範囲の音素のパターンの平均値をとる、フィルターをかけるなどすることにより、極めて合理的なパターンマッチが可能になる。
さらに以下に説明する語彙のパターンマッチと組み合わせすることにより総合的な認識率が向上する。
図56は、語彙パターンマッチの例である。
以上により検出された音素の組み合わせさえたものが単語、語彙である、音素の配列で定まる語彙6のマッチングにもこのパターンマッチ方法が応用できる。
一例として「音声」の発声は「o-n-s-e-i」のような音素の配列パターンであり、音素の配列は言葉としての最小限単位の語彙(単語)をなすものである。
図に示すように、本例では一つの語彙を16の音素5の配列8として、情報絞込み機能を備えたメモリ50(303)に配列割り付けし、絶対アドレス51に音素5をデータ52として記憶登録したものである。
問い合わせ語彙20は配列番号15に音素5がデータ52として条件入力される。この問い合わせ語彙20にパターンマッチ9する絶対アドレス51を読むだけで語彙6が検出されたことになる。
本例の場合16配列条件を一括でパターンマッチする構成である。
極めてシンプルで高速な語彙検出であり、複雑なアルゴリズムや他のデータテーブル等全く不要である。
本方式はどの語彙から記憶配列させてもよくその順番は関係ない、語彙の追加や修正の度に通常実施する配列のし直しが不要であることも大きな特徴である。
一般的水準の語彙5万語を本方式で登録する場合、50K×16配列=800Kアドレス空間あれば実現可能である。本例では16配列の1例を示しているが、語彙の長さによって8配列や、16配列、24配列など複数のデバイスに分割すれば、無駄のないアドレスの利用が可能になる。
現在多くの語彙マッチングでは通常3音素程配列程度の小さな音素配列を基に語彙データベースにパターンマッチをかけるのが一般的である、その原因は配列数を大きくすると語彙データベースを構成するテーブルやインデックスが組み合わせ的な爆発を引き起こし実現できないからである。
複数の言語が存在する場合、別な記憶媒体に言語毎のデータベースを用意しておき都度この情報絞込み機能を備えたメモリ50(303)にダウンロードすればよい。
ここで語彙認識のあいまいパターンマッチ13について説明する。
先に示した、音素の列「o−n−s−e−i」は時系列上、「o」−「n」−「s」−「e」−「i」の順に出現するが、この情報絞込み機能を備えたメモリ50(303)による、パターンマッチの特徴は、一部が欠落しても、その順序も無関係である。
具体的に示せば先に説明の音素の列は情報配列上、相対番地X+0「o」−相対番地X+1「n」−相対番地X+2「s」−相対番地X+3「e」−相対番地X+4「i」の配列である。しかもXは絞込みのマチングの結果、本例の場合1から16までの相対値として認識可能である。
従って一部が欠落した相対番地X+0「o」−相対番地X+1「n」-相対番地X+2「s」−相対番地X+4「i」の配列でも、その配列の順序が相対番地X+4「i」−相対番地X+0「o」相対番地X+1「n」-相対番地X+2「s」の配列でも全く問い合わせに問題ないことが大きな特徴である、問い合わせはその音素の配列が指定出来ればよいことになる。
つまり配列中の一部を任意のデータを指定する場合のワイルドカードや、音素配列を逆から絞り込む場合(逆引き)、中間から絞り込む場合(中引き)などの、パターンマッチが完璧に保障される。つまり不確実に認識された音素を除外してパターンマッチさせる場合や外部の騒音などで全体的に不確実な音素の場合でも、繰り返しパターンマッチして、可能性の高い語彙を探し出す場合にも極めて効果的である。
情報絞込み機能を備えたメモリ50(303)はアドレスのサイズや様々なオプションする機能により並列演算マッチング処理時間は大きく変動するが、以上のような語彙マッチングをさせるような構成のデバイスの例として16配列1組のパターンマッチに要する時間を1マイクロセカンド以下とすることが可能である、速さは認識の精度に直結する。
なお、この実施例は、上記で説明したマッチング回数を計測するためのカウンタを備えた情報絞り込み機能を備えたメモリ50(303)を使うと、上記のようなあいまいな情報のパターンマッチがさらに効果的に実現できる。
以上説明してきた通りこれまで説明の音素並びに語彙のパターンマッチはこれまでのどの技術によるパターンマッチに比較して、高速であり、正確であり、しかも簡単である。
継続的に音声の一定期間の録音をとって置き、仮にこれらの音素や語彙にパターンマッチされない場合は、録音された音声をもとに繰り返しパターンマッチをかけるなどの余裕も十分にある。
以上で検出された語彙を文法との確認をすることにより話し言葉としての本質的な音声認識が実現できる、文法上のマッチングもこのマッチング手法で実現可能であるが割愛する。
(文字パターンマッチングの例)
以下、文字画像パターンマッチングの例を、図57〜図66を参照して説明する。なお、以下の説明では、優先権主張の基礎出願との対応関係が分かりやすいように参照符号をそのままにして説明していることに留意されたい。
図57は、画像パターンのおよび画像パターンマッチの説明である。
パターン1の原義は織物の柄や印刷物の絵柄を現す言葉であると同時に、特定の事象や物体の特徴を現す場合に広く使用される言葉である。画像のパターン1の場合、これらの柄や絵柄は、細かい色や輝度が、様々な位置に、組み合わされて、配列されたものと定義して良い。温度パターン1や景気のパターン1などは一次元情報のパターン1の例であり、文字列やDNA配列、コンピュータウイルスもこのパターン1の一例である。
静止画、動画、CGを問わず、一般的な画像はメモリ上の画像情報5をもとに表示再生が行われるもので画像情報5と画像は表裏一体の関係があり本明細書では画像情報5を単に画像5と表現する。図ではトンボのような虫眼鏡で指定されたパターンを探し出す時の概念が示されており、図では省略されているが画像5上に記憶された全範囲の画像情報の中から特定のパターン1をトンボのような虫眼鏡で検出した状況である。
図に示すように画像5によるパターン1は、Aパターン1の、BL(黒)、R(赤)、G(緑)、O(オレンジ)、B(青)で示される色2情報や、Bパターン1の、5、3、7、8、2で示される輝度3情報が座標上に組み合わされたものである。
このパターン1の色や輝度のデータとその座標4の位置が相対的に合致する事により画像パターンマッチ17が成立する。
以上の問い合わせパターン1は人の意志にもとづき、色や輝度とその位置を適宜組み合わせパターン1として構成する場合と、何らかの他の画像の中から特定の画素とその位置を抽出して問い合わせパターン1を構成する場合、その双方を組み合わせして問い合わせパターン1を構成する場合の3通りがある、その詳細は後述する。
この時、問い合わせBパターンのように色や輝度のデータ値に一定の幅を与え、さらに組み合わせの座標4の位置にも一定の範囲を与えることにより、完全一致の画像パターンマッチ17から類似画像パターンマッチ17にその手段を拡大することが出来る。
以上は極めて単純な事であり、人間にとって極めて容易にパターンマッチ17できる内容も現在のCPUとメモリを中心にしてなされる情報処理では極めて負荷の掛る厄介な情報処理の一つである。
図58は、情報絞込みメモリを用いた画像パターンマッチの原理の説明である。
画像5はXY軸2軸の情報として扱われる2次元情報の代表的な情報である。どのような画像5も画像5を構成する画素(ピクセル)6の数がXY軸両軸決められており、その積算されたものが総画素数となる。原則的に画像5の基本となる輝度3情報や色2の三原色等の色2情報はこの画素6単位で獲得され記憶媒体に記憶される。
コンピュータのメモリは、情報を記憶する場所、その記憶された情報の場所を指定するための絶対アドレス7が存在する。この絶対アドレス7は一次元、線形配列で通常0番地からN番地まで16進値で指定される。
図に示す通り2次元情報の画像5情報を画素6毎にメモリに記憶する場合、1ラインの画素6数(n、2n、3n・・・)で折り返しを繰り返し、N番地までメモリのアドレス上に書き込みが行われている。一般的にアドレス等は0番地からn番地などの表記が一般的であるが図では説明を簡略化するために1画素からn画素の配列で図示している。
またこの説明では便宜上、図の上方から順にアドレスを割り当てしているが、下方から順にアドレスを割り当てする場合、折り返しをX軸でなくY軸とする場合でもなんら問題ない。
また画像5を構成する画素6は輝度3情報の場合1つの種類のデータをメモリに記憶するだけであるが、色2情報の場合、通常色の3原色R、G、Bをそれぞれ独立して記憶する必要があり通常は1画素6当たり3つの画素情報を記憶する必要がある。従って1画素6当り3アドレスで色2情報を記憶する場合、実際のメモリは画素6数の3倍のアドレス数が必要になる。いうまでもなく1ラインの画素6数(n)が分かっていれば、画像5上のどの画素6のどの色2の情報がメモリ上のどの位置に記憶されているのか、その反対も容易に変換することが可能である。
以上の画素の配列は、画像フレームバッファ情報はもとより、ビットマップ画像情報、JPEG、MPEG等の圧縮画像データ、さらに地図やアニメ―ション画像のCGなどの人為的に作成された画像つまり二次元配列の画像全てにおいて共通であり、一般的な画像を扱う上での基本的な約束事項である。
図58に示すA、Bの2つの画像パターン1は、5つの画素6とその位置で構成される画像パターン1であり、パターンマッチ条件が5条件である。Aパターン1は、色2情報である、BL(黒)を基準(±0)にして、R(赤)、G(緑)、O(オレンジ)、B(青)が図示する画素位置に配列されている。Bパターン1は、輝度3情報である、「2」を基準(±0)にして、「5」、「3」、「7」、「8」が図示する画素位置に配列されている。基準(±0)となる画素はパターン内どの画素でも構わない、また対象とする画素の数(パターンマッチ条件)は多くても少なくてもよい。これまでの技術では、この様な問い合わせパターンをもとにして、配列記憶されたメモリ上のアドレスをCPUが逐次処理して見つけ出す処理、つまりソフトウエアよるパターンマッチである。
つまりパターンマッチと称する情報処理はその大半がCPUの処理によるものであるため本質的なパターンマッチとはかけ離れた内容になっているのが実態である。
これまでのCPUとメモリの逐次処理による無駄時間をなくすため、以上説明のようなA、Bのパターンを直接入力することにより、メモリ内の情報処理のみで、パターンマッチ17させて、パターンマッチ17した絶対アドレス7を出力させるよう構成されたのが、本発明者の発明による、情報絞り込み検出機能を備えたメモリ51(303)であり、その詳細は特許明細書に詳しく紹介されているが、ここでは先に述べたA、Bパターンをもとにその原理を紹介する。
情報絞り込み検出機能を備えたメモリ51(303)は指定されたデータに合致し、更に配列された情報の相対位置が合致、以上相方のマッチングをメモリの内部でとることが出来るメモリである。
これまで説明してきたように、2次元座標は、図に示すように、基準画素6からの位置が線形配列の画素6位置情報に変換されている。
注目すべきは、基準画素6とその周辺の画素6で構成される、一組のパターン1の画素6の相対距離はこの画像空間上どこにあってもいつも一定である、この事がこの発明の基礎となっている。以上の内容はローカルアドレス103とグローバルアドレス104の関係として詳しく後述する。
以上の内容は画像情報を取り扱いするときの周知の事実であるが、先願発明はこの基本的な事実を半導体デバイスとしてハードウエアに組み込みすることが可能であり、パターンマッチ17に利用できる事を証明したものである。
また、複数の画素6とその位置で構成される1組のパターン1は一定のサンプリングポイント60を持つことにより、その組み合わせパターン1が他に存在する確率は極めて少なくなることである。
従って、パターン範囲内の画素全部を対象にする必要はなく、適切な画素6の数を選びサンプルとすることにより指定したパターン1が絞り込まれて検出できること、さらには部分毎のパターン1を組合せ全体のパターン1を検出することなど、効果的なパターンマッチ17が行われる事が大きな特徴である。対象になる画像に拡大や縮小、更に回転等がある場合には単純な座標変換を行いパターンマッチ17させればよい。画像の拡大、縮小の率、更には回転角度が未知であるような場合には、問い合わせBパターンのようにマッチさせる座標の範囲を広げておけば、パターンマッチの回数を極限まで削減させることが出来る。
まずは確認すべき座標の範囲を広げておき、対象となるパターンが存在する可能性があるかどうかを掴むことが重要である。パターン存在の可能性がなければその段階で切り上げればよい。
もし絞込みが不十分であり多数のパターン1が存在する場合は、更に新しい画素をサンプルに追加し絞り込して目的のパターン1を探せばよい。以上のような情報絞込み機能を備えたメモリ51(303)の原理と、その応用例で分かるように、この処理は全くCPUなどの情報処理手段を使わなくても極めて高速で指定したパターン1の検出をハードウエアのみで実現できるところが大きなポイントである。
通常のCPUとメモリによるパターンマッチ17とハードウエアパターンマッチのスピードの比較は背景技術に示した通りであり、7条件(画像の場合7画素)のパターンマッチが34nSで実現された事に相当する。本ハードウエアパターンマッチは並列処理にありがちな回路構成を大型化することなく、回路規模を現在考えうる最低限の構成で実現可能にしたことによるものであり、結果として画像処理が可能な大型の情報処理容量のデバイスが実現可能になることである。
背景技術で紹介のプロトタイプ機は高速性を求めた完全一致タイプのパターンマッチであったが、機能が追加されることにより多少処理時間は低下し情報処理容量は低減するが問い合わせBパターンに示すように、パターンマッチ17する画素6を範囲指定とすることも、検出データ値も固定値のみならず範囲指定し類似画像等の検出も可能である。
画像に適した機能とアドレスサイズのデバイスの1条件当りのパターンマッチ時間が仮に1マイクロ秒程度であっても画像文字認識技術は大きく進化する、詳細は後述する。
対象となる画像のサイズが情報絞込み機能を備えたメモリ51(303)の情報処理容量より大きい場合は、画像をいくつかに分割して、分割単位ごとにパターンマッチをかければよい。この場合、分割部分の画像のパターンマッチ17に影響されないよう、パターンマッチ17する画像の大きさの分X軸、Y軸互いにオーバラップするよう分割し、いずれかの分割画像内に対象なる画像がパターンマッチ掛るようにパターンマッチすればよい。
ここで、ローカル(相対)アドレス103ならびにグローバル(絶対)アドレス104について説明する。
例えば、現在のデジタルフルハイビジョン画像は横(X軸)1920ピクセル×縦(Y軸)1080、合計約2,073,600ピクセルの画素で構成された映像であり、0ピクセルから2,073,599ピクセルまで線形配列された絶対アドレス7に画素毎の画像情報が記憶される。この画像空間の任意の2つのピクセルの相対位置は一次元データのグローバルアドレス104の距離で表現することが出来る。
一方この画像の中に字幕などの文字が存在する場合、文字単位のX軸、Y軸2軸座標4のローカルアドレス104を使用した方が便利である。例えば映像中の字幕の文字サイズが128×128ピクセルの場合この空間をローカルアドレスと表現する。
ローカルアドレスは対象となる画像の横幅(X軸)の最大値(デジタルフルハイビジョンの場合1920)が決まればグローバルアドレスに変換可能である。例えば、X=0、Y=0のローカルアドレス103を基準としてX=0、Y=127のローカルアドレス103はグローバルアドレスに変換すると、「いずれかのピクセル」を基準として128*1920=245,760ピクセル目のアドレスであり、X=127、Y=127のローカルアドレス103はグローバルアドレスに変換すると、「いずれかのピクセル」を基準として127+128*1920=245,887ピクセル目のアドレスである。
複数のグローバルアドレス104のサンプリングポイント60を与えパターンマッチさせることにより、上記の「いずれかのピクセル」が絞り込まれ、最終的にマッチした「いずれかのピクセル=アドレス」が絶対値アドレス7として出力されるのが、情報絞込み機能を備えたメモリ51(303)の特色である。画像上のすべてのピクセルを対象として全ピクセル並列(同時)にパターンマッチが出来る(ハードウエアパターンマッチ)からである。時間はかかるがこの2次元配列を利用した手法はCPUとメモリを使った通常の処理でも実現可能である。
本発明の文字のパターンマッチをする上で必要不可欠な技術を紹介する。
図59は排他パターンマッチの説明図であり、対象となる画像情報5、の画素6の中から物体8の領域(エリア)9と輪郭(エッジ)10を効率的に検出する例を示している。特定の色2や輝度3の領域(エリア)9を持った物体8を探す場合、その物体の背景パターンは無限に存在するために様々な色2や輝度3のデータ54によるパターンマッチ17を必要回数繰り返しする必要がある。
このような場合に有効なのが排他パターンマッチ59である。
本例では画像中にボールのような球状の白い(W)物体8が3個所ある画像の場合の例であり、横幅6ピクセルの白いボール8の一定の領域(エリア)9を指定するための4つの白い範囲(W)データ54とこれに外接する4つの白以外データ(W(━))データ54つまり白の排他データ58により、この(W)、(W(━))の境目で4個所のボールの輪郭(エッジ)10を検出できる。
つまり特定の大きさの白の物体8、本例では横幅が6画素のエリアを持った白い物体(ボール)のみが検出される。白(W)の横幅は5ピクセルでも7ピクセルでも除外されることになるので、極めて正確な物体大きさの検出が可能になる。本例では完全に隣接した画素6同士で排他パターンマッチ59を行ったが、(W)、(W(━))の範囲を一定範囲あけることにより、多少大きさが変化した白い物体8も容易に検出できる。
この場合、ボールエリア以外の背景の画素6が白以外の何の色であっても排他データ(W(━))を使えるので、本例のように8か所程度の画素6をパターンマッチすれば極めて単純に横幅6画素の白のボールを探し出すことが出来る。この様な(W(━))の排他データ58は、情報絞り込み検出機能を備えたメモリ51(303)の場合、その連想メモリ(CAM)機能の(W)出力を一旦否定(インバート)し、このインバート結果(W(━))をCAM出力として書き換えする(CAM出力を反転する)ことにより極めて単純な原理で利用できるので、探し出す対象物の背景の画像が不特定で無限の可能性がある場合に極めて効率的である。
本例では白一色の排他パターンマッチ59の場合であるが、その他の色を組み合わせることにより複雑な画像を極めて少数のパターンマッチで検出することが可能になる。物体の形状を精度よく求める場合には、パターンマッチのポイントの数量とその位置を適切に選べばよい。
移動する物体を認識し、追従する際に不可欠のパターンマッチが可能になる。
動画中のある物体が1フレーム毎に少しずつ大きさや形状が変化する場合には1フレーム毎に物体の形状を更新して次の1フレームの物体とマッチングを取ればよい。この様な移動物体の追従は映像装置やセキュリテー装置に不可欠の技術である。
この技術は文字認識や指紋、更に一次元情報などのパターンマッチに広く利用できる。本方式のパターンマッチは強力である、これまで大がかりになりがちな画像処理を極めて単純処理することが可能になる。一般の文字は一定の色とその形状(領域)で成り立つものであり、文字以外の部分が特定の色であったり、特定の柄や映像であっても文字以外の色で領域外を指定することが出来るので、この排他パターンマッチを利用すると極めて簡素化した文字認識のパターンマッチが可能になる。
言うまでもなく全てのサンプリングポイントを領域内サンプリングポイントにした場合は文字と同一文字色のベタ塗り領域がある場合、パターンマッチされてしまうからである。
図60は文字の書体例である。
本例で示す日本語は様々な種類の文字が組み合わされた言語である、そのうち特に数の多い漢字は、常用漢字で2000文字程度、複雑な漢字を含めて3000文字程度、さらにこれらに日常使用される、ひらがな、カタカナ、アラビア数字、アルファベット、これら以外の記号等を含め最大5000種の文字記号を認識する必要がある。最大の文字数を持つ漢字でも現在日常中国使用されている漢字は6000文字から7000文字と言われている。従って、中国語の場合、最大10,000文字を認識する必要がある。
全世界の文字を共通に認識する場合には2万文字程度を認識する必要があり、さらに文字には様々な種類の書体(フォント)102があり、文字認識をさらに複雑なものにしている。
画像中の文字を認識するには大きく2つの方法がある。一つは画像中の文字一つ一つの書体の特徴を抽出して、その特徴を基にその文字が何であるかを問い合わせする場合。この方法による文字認識は本願発明者により出願された特願2012−101352に紹介する画像認識や物体認識によって実現できる。もう一つは文字一つ一つの書体の領域と非領域を識別するために必要な複数のサンプリングポイントをあらかじめ決めておいて、このサンプリングポイントにマッチする画像を文字と認識する場合である。この方は文字の特徴を予めサンプリングしておき、画像上のすべての文字を対象として並列にパターンマッチさせることが出来るので、前者に比較してより効率よく高速で精度よくパターンマッチ指定した文字が認識できる。
本願発明は後者の方法による文字認識方法を対象にしている。
図61は、文字パターンサンプリングポイント作成例Aの説明図である。
特定の日本語文字「あ」を文字認識するために、No1、No2、No3、No4、まで文字の領域部分には領域内サンプリングポイント61と領域外部分には領域外サンプリングポイント62のそれぞれ2つの4つのサンプリングポイント60をローカルアドレス103の座標4上に付与した場合の例である。
パターンマッチ17はNo1、No2、No3、No4、の順序で行われる、その順序はどこからでも良いがNo1に指定したローカルアドレスの座標が、マッチしたグローバルアドレスの絶対アドレス7として出力される。これら4つのサンプリングポイント60は図58に示すようにX軸、Y軸それぞれのローカルアドレス103が座標4として与えられる。
これらの2種のサンプリングポイント60の意味するものは、当該サンプリングポイントおよびその近傍が、文字の領域部分であるかそれ以外であるかを特定するためのものである。
一般的な文字の場合、座標4空間中の領域面積は、領域外面積より少なくなり、全ての文字の領域の存在確率は1/2以下となるが、その反対に非領域の存在確率は1/2以上になる。
以上のようにどのような文字においても領域部分には領域内サンプリングポイント61と領域外部分(非領域)には領域外サンプリングポイント62の双方を同一数配置した場合、1サンプルポイントのそれぞれの座標4が文字の領域であるか否か、反対に領域外であるか否かの平均確率は1/2となる。従って以上の4つのサンプリングポイントがマッチする確率は概ね1/(2*2*2*2)=1/16となる。
厳密に言えば、座標の中心部は領域の確率が高く、座標のコーナ付近は領域の確率が少ない。従ってこのような特性を積極的に利用して、座標のコーナ付近は領域内サンプリングポイント、座標の中心部は領域外サンプリリングポイントを利用することにより確率を下げて認識率を向上することも可能となる。言うまでもなくサンプリングポイントの数が多いほど識別能力が高くなるが、サンプリングポイントが多ければパターンマッチ時間が増えるので適切なサンプリングポイント数を決める必要がある。
一例として20サンプリングポイントでパターン化する場合、1/100万程度の識別確率になり、30サンプリングポントでパターン化した場合は1/10億程度の識別能力になる。印刷された文字の品質や紙質による文字のカスレや異物等でサンプリングポイントのいくつかが正常に読めない場合でも大半がマッチすれば合格とするような構成にすればばよい、詳細は後述する。
言うまでもなく、この方法はどのような文字に対しても共通に利用でき、全世界の文字を共通に認識させる場合や、認識率の安全を見込む場合でも、30程度のサンプリングポイントでパターン化すれば十分である。
図62は文字パターンサンプリングポイント作成例Bの説明図であり、特定文字「あ」のいくつかの書体(フォント)を重ね合わせ、領域が一致する部分に領域内サンプリングポイント61、いずれの書体(フォント)の領域外部分に領域外サンプリングポイント62を合計30個所付与した場合である。
以上のように代表的な書体(フォント)102の文字の領域が合致する部分といずれの領域に属さない部分を区分して適切にサンプリングポイントを付与することにより、特殊な書体(フォント)102の文字以外は共通にパターンマッチすることが可能になる。
万一複数の文字が認識選択される場合には、その文字のサンプリングポイントを部分的に修正すればよい。
図63は、特定書体の文字パターンサンプリングポイント作成例であり、これまでの説明に基づき、それぞれの文字に30個所のサンプリングポイントを付与したものである。日本語の場合は5千文字、中国語では1万文字に対しこのようなパターンマッチ用のサンプルポイントを作成すればよい。全世界の文字をすべて集めても2万文字程度あれば十分である。
サンプリングポイントを作成する際は、大きなサイズの書体(フォント)102で作成し、小さな文字サイズの場合には自動的に座標4値を縮小してパターンマッチさせればよい。従って一度これらのサンプリングポイントを作成すれば未来永劫活用することが出来る人類共通の財産となる。
図64は、字幕付き画像の文字認識の例である。
外国映画に字幕は付き物である。
映画の字幕の場合、1シーンに現れる字幕は最大2行、文字数40文字程度であり表示時間は1秒から5秒程度である。情報絞り込み機能を備えたメモリ51(303)は完全なるハードウエアパターンマッチなので1マイクロ秒もあれば1回のパターンマッチが可能である。1マイクロ秒1回のパターンマッチで30サンプルポイントの場合、一文字が30マイクロ秒であり、5千文字の日本語では0.15秒、1万文字の中国語の場合でも0.3秒で一画面当たりのすべての文字をパターンマッチさせることが出来る。全世界文字2万文字でも0.6秒で一画面当たりのすべての文字をパターンマッチさせる事が可能である。
書体サイズが不明の場合、頻繁に出てくる文字の大きさを変動させてパターンマッチを掛ればよい。日本語の場合、頻繁に出てくるひらがな、50文字でパターンマッチを行えばよい、対象となる文字が、文書であるかその他の例えば映画の字幕などであると判断がつく場合はその文字の一般的な文字のサイズを中心にしてパターンマッチをかけパターンマッチの絶対アドレス7が必要数かえって来るところがその文字サイズである。特殊な書体(フォント)を用意して、特殊な書体を文字認識することも可能である。文字の色も、通常は黒もしくは白、続いて赤、青、緑、ならびにその近傍の色でパターンマッチを行えばよい。
以上のような前処理を全て行っても1秒もあれば十分であり、映画の字幕の場合は最初から最後まで書体や文字の大きさ色は同一な場合がほとんどであり、字幕位置も固定されている。世界中のどの言語の字幕でも共通にリアルタイムに文字認識することが可能なシステムが可能になる。
図65はリアルタイムOCR機能を備えた情報処理装置の例である。
図に示すように、日本語5千種文字のそれぞれの文字101にNo1からNo30までのサンプリングポイント60のパターンマッチ17用のOCRパターンデータベース105が登録されている。本例では日本語を例にしているが、英語でも、中国語でも、全世界の言語を一括して登録することも可能である。
サンプリングポイント60には、文字101毎の「XY」ローカルアドレス103ならびに、「D」すなわち文字101の領域の色2、または輝度3を指定するデータ54、ならびにその領域外の色2、または輝度3を示す排他データ58が登録されている。このデータ54ならびに排他データ58は一括し別途指定して登録することが出来る、最低限必要なことはそれぞれのサンプリングポイント60が文字101の領域内サンプリンポイント61であるか領域外サンプリングポイント62であるかを明確化しておく必要がある。
さらにこの装置には情報絞込み機能を備えたメモリ51(303)が組み込まれ、このメモリ51(303)には文字認識の対象となる画像情報5が記憶されている。前述のデータベース105から順次文字101を指定して5千回パターンマッチをかける。この際、パターンマッチ17に必要なことは文字の色とサイズを把握してローカルアドレス103をグローバルアドレス104に変換してパターンマッチをかけるだけである。
これらの処理はCPUによって高速で確実な情報絞込み機能を備えたメモリ51(303)への指定が可能になる。情報絞込み機能を備えたメモリ51(303)に記憶された画面上で問い合わせパターン1にマッチ文字101があれば、マッチするアドレスが絞りこまれパターンマッチ17する絶対アドレス7が出力される、この絶対アドレス7は、ローカルアドレス103で指定したサンプリングポイント60のNo1の位置である。もしパターンマッチ17する同一文字が複数ある場合にはその文字分の絶対アドレス7が出力される。
以上の絶対アドレス7をCPUで読み取りCPUで必要な処理を行えばよい。
以上の説明通りCPUは文字認識そのものにかかわる一切の処理をする必要がなく、必要なのは文字認識処理全体を統括し、情報絞込み機能を備えたメモリ51(303)にパターンマッチの指示を与え、パターンマッチ結果(絶対アドレス7)を読み取り、その結果必要な処理をするだけである。日本語だけの場合、5千文字として0.15秒で全てのパターンマッチが実現できる。通常映画の場合の字幕の文字色は白で、書体(フォント)102も固定されており変化しない。
考慮すべき点はデジタル画像特有のブロックノイズによる文字ノイズ等である。これらの色もしくは輝度のノイズは適切にフィルターを掛けるなり、データ54の範囲を指定してパターンマッチ可能にすればよい。
以上のようなパターンマッチで認識された文字は、再生された時刻とともにテキストデータとすれば、これらのテキストデータは映像シーンのアノテーションデータとして利用することが可能である。
例えばHDD(ハードデスクドライブ)型の録画機は情報記憶容量が数T(テラ)バイトを超えるものが出回っており、録画時間は数百時間を超える。録画しておいた画像をまた見たい場合、番組名やタイトル名は思い出せない場合も多く、さらにはどのあたりに見たいシーンがあるのかは全く分からない。家庭用の録画機では、あとで再度見たいシーンにはチャプターマークを付して後々サムネイル画像を参照できるようにするなどの方式が一般的であるが目的に叶うようタイミングよくチャプターマークを付ける操作は大変に煩雑で困難である。この様な場合、字幕を読みとったこれらの文字アノテーションデータ108を検索することにより思い出のシーンを意のままに検索することが可能になる。
一般的なテレビ画像においても字幕映像シーンは番組の始まりや重要な映像シーンに出現する場合が多い。これらの重要なシーンの字幕をリアルタイムで読み取りして、テキストデータして検索が可能なようにすることにより、検索指定した文字情報があるシーンのみ、例えば人物の名前を登録しておくことにより、その人物が画像に現れている場面のみを録画しておくことも可能になる。
音楽番組で自分のひいきの歌手が出現するところのみを録画することが出来ればその他のシーンを見る無駄な時間がなくなる。その他の応用例として、テキストデータを音声合成したり、点字文字にすることも可能になる。
以上の内容は、インターネット情報においても同様である。
図66は、文書画像の文字認識の例である。
先に示した通り、本方式の特徴であるハードウエアによる並列処理によるパターンマッチを使用すれば画像の中に含まれる文字の数が幾つであってもパターンマッチに要する時間は一定である。従って先ほどの映画の字幕の場合でも文字数が数百に及ぶ文書画像であっても1画面当たりの文字認識は同じ時間で可能である。
またローカルアドレスの座標を回転させることによって回転した文字や逆さになった文字や、これらが組合された複雑な構成の文字も自由に認識することが可能である。複雑なソフトウエアアルゴリズムを用いる必要も、また装置を大型化することなく文字認識装置を構成することが可能である。
印刷された文書をスキャナーで画像読み取りした場合には、文字のカスレや異物などにより、サンプリングポイントの幾つがパターンマッチ出来ない場合がある。サンプリングポイントの内1個所でもパターンマッチが出来ないと当該文字が認識できなくなる可能性がある。
対象となる画像文字の品質が良くない場合には、情報絞込み機能を備えたメモリ51(303)にカウンタ機能を備えた情報絞込み機能を備えたメモリ51(303)を利用すると効果的である。例えばカウンタ機能を用いて30ポイントのサンプルポイントの内25ポイント以上を持って合格とし、その絶対アドレス7を認識出力するなどの方法が活用できる。
文字品質がそれほど問題にならない場合は、サンプリングポイントの順番を変え幾通りか繰り返すことにより確実に文字認識が可能になる。時間はかかるがこの2次元配列を利用した手法はCPUとメモリを使った通常の処理でも実現可能である。
本願発明は完全一致タイプのパターンマッチを中心に説明してきたが、サンプルポイントの位置を範囲検索可能にすることによって類似パターンマッチさせ手書き文字認識にも応用することが可能である。人間が認識できる文字の数は極めて多いが、一遍に認識できる文字の数は限定される、つまり文字を読まない限り画像として眼に映っているだけである。従ってこの方式の文字認識は人間の能力をはるかに超えた認識能力を持つことになる。
これまで、画像上の文字の領域の配列がローカルアドレスからグローバルアドレスに単純に変換できることを積極的に利用してパターンマッチを行う文字認識の前例はない。言うまでもなく本願発明のパターンマッチによる文字認識は情報絞り込み機能を備えたメモリ51(303)を利用することによって、サーチによる無駄時間を抜本的に解消することが出来るが、従来手法によるCPUとメモリによる逐次処理によっても実現可能である。
本願発明者はこれまで、情報絞込み機能を備えたメモリ51(303)の高速なパターンマッチを利用して、先願発明では画像の認識と音声の認識、そして本願発明の文字認識で人間が認識すべき3つの認識に関わる特許を出願した。動画像と同じように1つの情報絞込み機能を備えたメモリ51(303)に必要な情報を都度記憶させ必要な文字認識や画像認識、音声認識を行い、次の瞬間では新しい別な情報の認識に利用できるところが大きな特徴である。これらの事は我々の脳の情報処理と類似している、我々人間も五官すべて同時に神経を集中することは困難で、通常は画像、音声、文字のいずれかに集中して処理を行っている。このことは情報絞込み機能を備えたメモリ51(303)は汎用ブレインチップと表現することが出来る。
情報絞込み機能を備えたメモリ51(303)はCPUとのコラボレーションによりコンピュータを賢くパワフルに大きく変身する。
(パターンマッチの標準化)
以下、パターンマッチングの標準化の例を、図67〜図72を参照して説明する。なお、以下の説明では、優先権主張の基礎出願との対応関係が分かりやすいように参照符号をそのままにして説明していることに留意されたい。
情報の塊である配列情報の標準化パターンマッチを考えるときに一番重要なことは、何を基準としてパターンマッチするかが最も基本となる。大きく分類すれば、特定のデータを基準とするのか、特定のデータの位置を基準とするのか、その双方を基準にするのかなどである。さらにデータの位置の定義をどのように定めるかは特に重要である。
1組の情報の単純なマッチであれば、比較的簡単であるが、複雑な情報のパターンマッチである場合でも単純でしかも実現できなくては意味がない。本発明は対象となる配列情報の中の情報をパターンマッチする際、探したいパターンに含まれるであろう候補になるデータを最初に指定し基準情報にする事がベースになっている。
また本発明では配列の定義に基づき、上記候補データとマッチングのための他の情報の相対関係は座標で指定することも距離で指定することも可能であるので単に位置としている。
以下の説明では、情報のデータ101のその位置103をローカル座標112で指定する方法で説明する。
具体的には先ず最初に含まれるであろう特定のデータを基準にとって、この基準データと異なる他のデータを一対の情報とし、その双方の相対座標がマッチするかを判定する方法をとり、この考え方を拡張して常に基準データを一対の情報の片側において繰り返しマッチングする方法をベースとして単純化している。もちろん、探したいパターンに含まれるであろう候補データがなければ最初の時点でパターンマッチが成立しなかったことになり切り上げればよい。
このデータとその位置の考え方を原則にするパターンマッチ方法であれば一次元情報から多次元情報、さらにはパターンマッチサンプル数が幾つであっても汎用的に利用することが可能になり、この発明の一番基本になるところである。
この様な視点で注目すべき事は、大量のデータの中から特定の情報を見つけ出す事を目的としたメモリベースアキテクチャのハードウエアデバイスである連想メモリ(CAM)は単純な情報を探し出す事(マッチ)は出来るがパターンのような複雑な情報を探し出す事は出来ない。常にCPUの力を借りる必要があるので、現在では大型高速通信機器のIPアドレスの検出など特定の分野に応用されるのみである。
次に情報処理における曖昧パターンマッチについて検討する。
現在のコンピュータのメモリの配列情報でとり得る曖昧さは、メモリに記憶格納する情報データの曖昧さと、メモリに記憶格納する場所(アドレス)の2つのみである。つまり情報の集合体であるパターンは一定の定義に基づき配列情報として記憶格納されているのでこの二つを曖昧に情報処理することが出来れば人間に極めて近い認識が可能になることである。
従って情報処理における、曖昧パターン情報は、情報(データ値)に幅(範囲)を持たせ、格納するアドレスに幅(範囲)を持って情報(データ値)を格納した情報の集合体の情報配列と定義できる。
しかしながら、現在の一般のメモリはその性格上以上のようにデータ値そのものを曖昧にしたり、格納するアドレスを曖昧にすることは出来ない。データ値を複数のアドレスに格納したり、データの範囲を別途指定する必要があり複雑な情報処理が必要になり曖昧情報そのものを作ることは困難である。考え方を変えて、記憶される情報(データ値)と格納するアドレスは固定にして、これを検出する際の問い合わせパターン9のデータ値とその位置の双方に範囲(最大、最小、以上、以下を含む)を持たせ曖昧にすることにより曖昧なパターンマッチが可能になる。
以上の事により一般的な半導体メモリを用いて曖昧パターンを取扱いし曖昧パターンマッチさせることが可能になる。
この方法によればメモリに記憶する情報(データ)とその場所(メモリアドレス)は通常のままで、その配列も一般的な情報配列で実現することが出来る。
図67は1次元情報のパターンマッチの例である。
株価や気温などの時系列データや文字データ、DNAデータなどは代表的な1次元配列のデータであるので、線形配列のメモリには情報(データ値)を書き込む先頭番地を決め1アドレス毎にそのデータ値を順次記憶格納すればよい。もちろんこの際、1アドレスずつ間を開けて2アドレス毎に順次情報を格納することも、3アドレス毎に順次情報を格納することであってもかまわない、通常は若い番地から順に書き込むが反対であってもかまわない、情報格納の定義(配列)が定められていればよい。
本例ではデータベース8の情報は絶対アドレス7、グロ−バルアドレス113として、パターンマッチの情報データ101のその位置103は相対アドレス57、ローカル座標112として説明している。
図がある都市の最高気温の月毎の時系列データベースであった場合を考える。
前述のように、温度の時系列データはデータベースに毎月の最高平均気温が定められた定義によって曖昧さを持たずに記憶格納(配列)されている。人間が感じる感触は通常の絶対的な尺度を持たない曖昧なものであり、例えば暑さを示す尺度であれば、極めて暑い、暑い、過ごしやすい、寒い、極めて寒い、などのような5段階から精々10段階のレベルである。
このような曖昧さを含まないデータの中から、例えば異常気象のようなパターンを探す場合、極めて暑い、を35℃、暑い30℃、過ごしやすい20℃、寒い10度、極めて寒い5℃、として、これらのデータにそれぞれ±5℃の範囲を与えるとともに、変化するまでの期間に一定の範囲を与え(本例の場合±1月、2月)パターンマッチ17することにより人間に近い曖昧なパターンマッチによる温度分析が可能になる。
本方式のパターンマッチ17は、基準(候補)となる情報110をパターンマッチ17の候補として予め選んでおき、パターンマッチの対象となるマッチ情報111を次々に与え、マッチ情報111とマッチしない基準情報110の候補を次々とふるい落とし、一定の回数のマッチングが終了した時に勝ち残ったアドレスをマッチアドレス57とするものである。従って問い合わせパターン9を作成する時に特に重要なのが最初の基準となるサンプリングポイント60である、この場合3つのデータをサンプルポイントとしており、基準情報101、No1は左側のサンプルとなっている、中心でも右のサンプリングポイントを選んでも全く問題ないが、前述のように、在ることが期待できるデータでなければ意味がない、従って本例の場合に一番可能性が高いデータ(データの中央値)を最初に選んでいる。またNo1のデータの範囲を適切に選択することによりミスマッチの可能性を低減することが出来る。もしこのデータに該当するものがなければパターンマッチを切れ上げればよい。
以上のように本例のパターンマッチ情報処理をする基準情報110がNo1となり、このNo1を基準として、No2、No3の双方にマッチするデータを探し出すことになる。
No3の情報を探し出す際もNo2との相対位置によるものでなく、No1とNo3でマッチする情報を探し出すことがこの発明の原点である。
後述するがサンプリングポイントの数が増えてもこの原則が最重要である。従ってNo1の基準サンプルには位置の範囲設定をしない方が賢明である(データ値は範囲設定があっても問題ない)。
本例では問い合わせパターン1にマッチしたパターン1がデータベース8内に存在(パターンマッチ17)した場合を図示している。
以上の例は3組の情報データのパターンマッチ17であるが、情報データの組合せはいくら多くてもかまわない。またこれらの3つの情報のデータ101値ならびにその範囲102は任意設定可能であり、そのデータの位置103ならびにその位置104も任意設定可能であればよい。
いうまでもなく、データ値の範囲102、その位置の範囲104のいずれかを「0」にすることも可能であり、双方を「0」にすれば完全一致のパターンマッチになる。
図68は2次元情報のパターンマッチの例である。
画像情報や地図情報などの情報は代表的な2次元情報である。
この様な2次元情報は通常X軸またはY軸をラスタースキャン方式(折り返し)X軸方向の1ライン毎に線形配列のメモリに順次記憶格納(配列)されている。1次元情報同様に、X軸を左から記憶するのか右から順に記憶するのか、Y軸で折り返すのかなどは任意であり、情報格納(配列)の定義が定められていればよい。
図ではトンボのような虫眼鏡で指定された問い合わせパターン9を探し出す時の概念が示されており、画像5上に記憶された全範囲の画像情報5の中から特定のパターン1をトンボのような虫眼鏡で検し出す際のイメージである。
図に示すように画像5によるパターン1は、No1、からNo5までの5つの画素6、本例では7、5、3、8、2などの輝度値データ、ならびにその位置、つまり画素(ピクセル)6の位置に範囲を持って曖昧パターンマッチ107設定をした例である。例えばNo1サンプリングポイントの画素は、データ値7±1、でありX=0、Y=0つまりローカル座標の基準点であり基準となる情報110を意味している。またNo2サンプリングポイントの画素は、データ値D=5±2、でX=−4±3、のデータ101、102値ならびのその位置103に範囲104を持った設定になっている。対象となる画像情報5の中から、この問い合わせパターン9の色や輝度のデータとその座標4の位置が相対的に合致するアドレスが検出される事により曖昧パターンマッチ17、107が成立する。
この様な画像の曖昧パターンマッチは画像認識を行う上で不可欠なツールになる。
図に示すように、パターンマッチするアドレス57が存在する場合、ローカル座標112で指定された問い合わせパターン9は、情報配列上ではメモリの絶対アドレス7として検出されれば、パターンを構成するそれぞれの画素6の位置を相対的に見つけ出すこと、つまり情報の塊としてパターン1が検出出来る。
1次元情報でも述べたように、特に重要なのが最初の基準情報110となるサンプリングポイント60である、この場合5つのデータをサンプルポイントとしており、基準情報110、No1はパターンの中心部のサンプルとなっている、他のサンプリングポイントを基準情報110に選んでも全く問題ない。この際常にパターンマッチ17情報処理10をする基準情報110がNo1となり、このNo1を基準として、No2、N5までの範囲の中から該当するデータを探し出すことになる、もしNo2とNo3、No3とNo4と順次マッチをした場合、範囲が次第に拡大し発散することになる。意図的にNo1のサンプリングポイントの位置に範囲を持たせることも可能であるが、通常は1次元同様No1の基準サンプルには位置の範囲設定をしない方が賢明である。
本方式のパターンマッチは、パターン1範囲内に含まれる多くの情報の中から選択したサンプリングポイント60である、情報のデータ101値が仮に256通りでデータが均等にばらついているときは2種のデータが意図した相対配列にある確率は1/256、であり、3種のデータが意図した相対配列にある確率は1/(256×256)であり、4種の場合は更に少なくなる、従って幾つかの適切なサンプルリングポイントを選択することにより確率的に、パターンマッチ候補(基準情報110)が絞り込まれ、特定のパターンが選択(パターンマッチ17)されるものである。
しかしながら、前述の温度の場合の5段階設定の曖昧パターンマッチの場合やさらにはデータの位置に範囲を設けた場合には、マッチの確率が多くなり十分にパターンが絞込み出来なく沢山のアドレスが出力される場合が出てくる。その場合は必要に応じサンプリングポイントを増やして目的に見合ったパターンマッチをさせることが重要である。
図69は、1次元情報パターンマッチのGUIの例である。
本願発明を分かり易く効率的に使用するためには、問い合わせパターン9のデータを入力するGUI(Graphic User Interface)が必要である。本例は1次元情報のパターンマッチ用GUIである。
本例ではデータ配列110で対象となる情報やデータベースのアドレス上の先頭番地や、X軸やY軸のサイズが設定できるようになっている。本例の場合では1次元情報であるので、先頭アドレスとX軸(データのサイズ)を指定すればよい。2次元情報であればX軸、Y軸双方のサイズを指定すればよい。いずれの場合でもローカル座標で指定した情報の相対的な位置でマッチングを行い最終的にマッチしたアドレスを見つけ出すことが可能になる。
本例では、基準となる情報101に対してM1からM16で示されるマッチ順序109でマッチ情報111を1から16サンプルまでパターンマッチ17可能にするGUIの例である。本例ではサンプリングポイント60を16サンプルとしているがこれに限るものでなく増やすことも削減することも自由である。
さらにM1からM16までの情報のすべてにデータ指定をする必要もなく必要数のサンプルを指定して使用することが出来る。基準となる情報110のデータの位置103は固定で座標原点(X軸=0、Y軸=0)である、本例では位置の範囲104の設定もない構成としている。
基準となる情報110はデータ値101ならびに範囲102が入力可能になっている。M1からM16の16のマッチ情報111にはそれぞれ、データ値101ならびにその範囲102、ならびにその情報の位置103、およびその範囲104をローカル座標112で指定できるように構成されている。
以上の問い合わせパターン9設定により、パターンマッチ17指令を行うことにより、情報処理10が実行されて、その結果が、マッチアドレス57として絶対アドレス7、グルーバルアドレス113として出力される。この場合、当然のことながらパターンマッチ17するアドレスが複数あれば複数のアドレスが出力され、もしなければ出力はされない。
従って、これらのパターンマッチ17の目的に合うようサンプリングポイント60の数を選ぶとともにデータの範囲やその位置の範囲を設定することが肝心である。
以上がこの発明の標準パターンマッチ17の基本であるが、本例ではオプション機能の一例として、M1からM16のデータ値に、排他データ115を指定し排他パターンマッチ116が出来るように構成されている。もちろん基準情報110を排他データ115とする構成とすることも可能である。
さらに本例のオプション機能では、M1からM16までの情報に複数のデータ指定した場合、その中のいくつかがパターンマッチ出来ないことを許容114する機能を持たせている。
この様な構成とすることにより曖昧なパターンマッチをより有効に機能させることが可能になる。座標を距離に変換するなどのオプション機能を充実させることにより更に使いやすいGUIが完成される。
1次元情報の場合、データ配列100は線形配列以外の特別な配列の場合以外特に設定の必要はない。当然のことながら、データ101ならびにそのデータの位置103の双方の範囲を「0」にすることにより完全一致型のパターンマッチとすることも、どちらか一方のみ範囲指定をするなど曖昧の度合いを自由に設定することが出来る。
以上のような構成で、株価情報や気温情報、さらには文字情報などの1次元情報のパターンマッチに共通のGUIが利用できる。
図70は2次元情報パターンマッチのGUIの例である。
基本的な構成は1次元情報と全く同様であるが、2次元情報では、基準になる情報110ならびにマッチ情報111の位置がX軸、Y軸の2次元のローカル座標112となっている。また、本例では2次元情報のデータ配列をX軸、Y軸それぞれ入力可能にしてローカル座標112からグローバルアドレス113、絶対アドレス7変換が可能なように構成されている。画像のような2次元情報は、情報が拡大、縮小、回転することがしばしばおこる、このような場合、座標変換117機能を利用することにより、1つの問い合わせパターンを様々に座標変換してパターンマッチすることが可能になる。
本例のような構成にすることにより2次元情報のパターンマッチに共通なGUIが利用できる。
図71は、画像情報パターンマッチのGUIの例である。
色2のついた画像は1画素(ピクセル)6毎に色2情報、R、G、Bが個別に記憶されている、従って1画素(ピクセル)6をグローバルアドレス113する場合には、1つのグリーバルアドレス113毎にそれぞれの色2情報を設定できるようにしたものである。この方式とすることにより、画素(ピクセル)6単位でのパターンマッチが可能になる。
これまでのパターンマッチの定義に基づき以上3種類のGUIを紹介したが、これらを1つのGUIに統一することも、対象となる情報に最適なGUIを選択して利用するなど様々な応用が可能である。
図72は、本方式を用いたパターンマッチの情報処理の概念図である。
問い合わせパターン9のデータ101とその範囲102と、問い合わせパターン9のデータの位置103とその範囲104と、の双方の条件設定を行い、パターンマッチ指令17によって、情報処理が実行される。これらの条件設ならびに情報処理は一括して行うことも、個別に実行するのも自由である。
考え方の基本は、問い合わせパターン9のデータ101とその範囲102によりデータの検出処理10を行うとともに、問い合わせパターン9のデータの位置103とその範囲104によりアドレスマッチング処理10を行い、これを繰り返し実行10することにより、最初に基準情報110として設定したパターンマッチ候補が順次絞込み処理10されて勝ち残った絶対アドレス7がパターンマッチアドレス757として出力される。この絶対アドレス7を知ることによりパターンが認識され、そのパターンの位置が検出される。
以上の構成の情報処理はCPUとメモリによる通常の情報処理10でも、さらにパターンマッチ17の対象となる情報を分散させて並列処理10によりパターンマッチ17させることも自由であり、情報処理の形態も自由である。さらに情報絞り込み機能を備えたメモリ51においても実現可能であることは言うまでもない。
一般的なデータベースはほとんどの場合1次元または2次元情報で構成されており、このパターンマッチは極めて汎用的に利用できることになる。自由に構成できる情報データであればこのパターンマッチの原理に適した配列とすることにより、効果的で効率的なパターンマッチが可能になる。一例であるが高次元次元情報も以上のような2次元情報を積み上げして記憶格納された配列であれば共通化して利用することが出来る。
以上の本願発明の要点を示すと、まず一番の基本は情報の配列にある、従ってこの配列構成を指定して、この配列に含まれるパターンマッチ候補(基準情報)を選び出し、そのマッチ相手(マッチ情報111)の互いのデータ値とその位置を指定することによりパターンマッチを標準化して情報処理をすることが可能になる、さらにデータ値とその位置に範囲を定義することにより曖昧なパターンマッチも実現できることになり、あらゆるタイプのパターンマッチの標準化が出来る。
情報の位置は座標値とすることも、距離とすることのいずれでも対応可能であり引用した特願2005−212974号文献(この言及により本願明細書に組み込まれることとする)にも示されるように、情報の種類やその目的に応じてユークリッド距離、マンハッタン距離の空間距離さらには時系列の距離で情報の位置を定義する方法が提案されている。
本発明では、どのような空間、時系列上、数学的な距離、概念的な座標や距離であっても本方式の位置に変換して使用することが可能である。
(本願発明の経緯とまとめ)
従来のCPUを使ったプログラムによるサーチや検索、照合、認識などの言葉に代表される集合演算は、メモリに記憶された集合情報の中から、特定の情報を探し出す処理であり、メモリ上の情報(元)を逐次アクセスし、参照し、集合演算の解を求める方法である。
従って処理も遅く、また消費電力も大きくならざるを得ない。
以上のことから、元を対象とする情報処理ではなく、集合全体を一括集合演算することのできる新しいタイプのプロセッサが不可欠である。
情報を探し出す対象のメモリ自体の物理的な構造が、アドレスとメモリセルの2つの要素のみで構成されていることから、この2つの要素を自由にコントロールできれば、更に高度な情報処理が出来ると感じていたが、特定の情報を探し出す処理の究極的な姿である数学的な集合演算を情報処理の場所を含めた集合演算の概念に置き換えるまでには困難を伴った。
これまでの元を対象とする集合演算は情報の場所(アドレス)は暗黙の了解事項となり表面には出てこない、しかしながら本方式の情報処理における集合演算は場所(アドレス)を無視しては成り立たない。
以上の集合演算機能を備えたメモリ303の構想が生まれたのは言うまでもなく、情報絞込み機能を持ったメモリ302の発明と、これを利用した様々なアプリケーションの恩恵によるものである。
本願発明はいわば、情報の絞込み機能を備えたメモリ302のマッチ回数カウンタ21を汎用集合演算回路に置き換えただけのものであるが、曖昧パターンマッチやエッジ検出に代表されるような複雑極まりないアドレスの場所を含んだ集合演算の概念を汎用化するまでに多くの時間と労力を費やした。
これもひとえに情報の絞込み機能を備えたメモリ302をさらに便利で広範囲な情報処理に利用したいとの欲望がこの発明の原点となっている。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらに限定されるものではなく、発明の要旨を変更しない範囲で種々変形可能であることは言うまでもない。
たとえば、上記一実施形態において、ユーザインタフェースはコンピュータディスプレイに表示されるようなGUI(グラフィックユーザインタフェース)であったが、GUIに限定されるものではなく、あらゆる種類・表示形態(非表示含む)のユーザインタフェースを含むものである。
また、上記で説明した画像、文字、音声等のパターンマッチングの例は、本実施形態にかかるメモリ303の演算回路224における演算処理を固定の状態にして実施するようにしてもよい。
101 情報処理
102 集合
103 全体集合
104 部分集合
105 元
106 位置
107 領域
108 距離
109 論理和
110 論理積
111 論理否定
112 正論理
113 負論理
114 情報(データ)の場所
115 集合演算
116 情報(データ)の合致
117 情報(データ)の値
201 メモリ
202 メモリセル
203 アドレス
204 絶対アドレス
205 相対アドレス
206 アドレスデコーダ
207 プライオリテイアドレスエンコーダ
208 データ比較回路
209 データ範囲比較回路
210 アドレス比較回路
211 アドレス領域比較回路
212 マッチ回数カウンタ
213 マッチアドレス
214 勝抜きフラグ(FG)
215 領域勝抜きフラグ(FG)
216 メモリアドレスの並列操作
217 マスク
221 データ条件
222 アドレス条件
223 論理演算条件
224 演算回路
301 連想メモリ(CAM)
302 情報絞込み機能を備えたメモリ
303 集合演算機能を備えたメモリ
401 パターン
402 色
403 輝度
404 座標
405 画像情報
406 画素
407 データベース
408 問い合わせパターン
409 パターンマッチ
410 サンプリングポイント
411 データ配列
412 データ
413 データの範囲
414 データの位置
415 データの領域
416 曖昧情報
417 曖昧パターン
418 曖昧パターンマッチ
419 曖昧認識
420 マッチ順序
421 基準情報
425 ミスマッチ許容
426 排他データ
427 排他パターンマッチ
428 座標変換

Claims (50)

  1. メモリアドレスごとに情報を記憶しその情報を読み出し可能なメモリであって、
    このメモリは、
    外部から与えられる、各メモリアドレスに記憶された情報を比較するための第1の入力と、各メモリアドレス同士を比較するための第2の入力と、集合演算条件として(1)部分集合、(2)論理和、(3)論理積、(4)論理否定のいずれか若しくはそれらの2以上の組み合わせを選択可能に指定する第3の入力と、を入力するための入力手段と、
    第1の入力に基づき、アドレス毎にこのメモリに記憶された情報と比較し判定する手段と、
    第2の入力に基づき、このメモリに記憶された情報同士を比較し判定する手段と、
    第3の入力に基づき、前記第1及び第2の入力に基づく判定結果について論理演算する手段と、
    この集合演算結果を出力する手段と
    を有することを特徴とする集合演算機能を備えたメモリ。
  2. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1〜第3の入力による前記集合演算結果に、新たに与えられる前記第1〜第3の入力により集合演算を繰り返し実行する手段を有することを特徴とする集合演算機能を備えたメモリ。
  3. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記情報の、前記第1〜第3の入力による集合演算の少なくとも1つ以上を並列処理で実行する手段を具備することを特徴とするメモリ。
  4. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1の入力は、
    比較する情報を表す値、及び
    比較条件として完全一致、部分一致、範囲一致、若しくはこれらの組み合わせの指定、
    を含むものであることを特徴とする集合演算機能を備えたメモリ。
  5. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1の入力による判定を連想メモリ手段で実現するものである
    ことを特徴とする請求項1記載の集合演算機能を備えたメモリ。
  6. 請求項1記載の集合演算機能を備えたメモリにおいて、
    第2の入力は、
    比較する情報の位置、その位置を基準にした一定の領域、若しくはそれらの組み合わせ
    を含むものであることを特徴とするメモリ。
  7. 請求項6記載の集合演算機能を備えたメモリにおいて、
    前記第2の入力の前記比較する情報の位置は、
    相対的位置、絶対的位置若しくはそれらの組み合わせを含むものであることを特徴とするメモリ。
  8. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第2の入力による判定を行う手段は、
    メモリアドレスを並列操作することによって実行する手段を含むものである
    ことを特徴とするメモリ。
  9. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記入力手段は情報の配列・順序を指定する第4の入力(画像の大きさなど)をさらに入力するためのものであり、
    前記第4の入力に指定された情報の配列・順序に基づいて、前記情報の判定を実行させるものである
    ことを特徴とする請求項1記載の集合演算機能を備えたメモリ。
  10. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1〜第3の入力は、メモリに記憶された集合情報に対してパターンマッチングする問い合わせ情報パターンを指定するものであることを特徴とするメモリ。
  11. 請求項10記載の集合演算機能を備えたメモリにおいて、
    前記問い合わせ情報パターンは、エッジ検出のための問い合わせ情報であることを特徴とするメモリ。
  12. 請求項10記載の集合演算機能を備えたメモリにおいて、
    前記パターンマッチングは、
    文字情報を一例とする1次元情報
    画像情報を一例とする2次元情報
    動画情報を一例とする3次元情報
    配列が定義されたN次元情報
    のいずれかに対して実行されるものであることを特徴とするメモリ。
  13. 請求項10記載の集合演算機能を備えたメモリにおいて、
    前記パターンマッチングの前記問い合わせ情報パターンにより
    視覚認識
    聴覚認識
    味覚認識
    臭覚認識
    触覚認識
    の少なくとも1つを処理するものであることを特徴とするメモリ。
  14. CPUを一例とする他の半導体と一体に組み込みされたことを特徴とする請求項1記載の集合演算機能を備えたメモリ。
  15. 請求項1記載の集合演算機能を備えたメモリを含んだ装置。
  16. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1〜第2の入力は、メモリに記憶された集合情報に対してパターンマッチングする問い合わせ情報パターンを指定するものであり、
    画像のXY配列の大きさが定義された画像において
    (1)画像を構成する、画素の画像情報データ値と、その画素のデータ位置と、の双方を適宜組合せして構成される画像問い合わせパターンを作成するステップと、
    (2)画像検出の対象となる画像に上記画像問い合わせパターンを問合せする事によりこの画像問い合わせパターンにパターンマッチする画素を上記対象となる画像の中から検出するステップと
    により画像処理することを特徴とする画像認識方法。
  17. 請求項16記載の方法において、
    前記画素の画像情報は
    (1)物体の色または輝度情報
    (2)物体の輪郭(エッジ)または領域(エリア)情報
    (3)物体の奥行き情報
    の少なくとも1つの画素の画像情報を基に画像処理することを特徴とする画像認識方法。
  18. 請求項17記載の方法において、
    前記、物体の輪郭(エッジ)または領域(エリア)情報は、画像上の任意の1画素と、その近隣画素と、の比較結果によるコードを画面全体の画素に符号化するとすることを特徴とする、画像認識方法。
  19. 請求項16記載の方法において、
    (1)単眼カメラで撮像された静止画像または動画像
    (2)複眼カメラで撮像された静止画像または動画像
    (3)CGで作成された静止画像または動画像
    の少なくとも1つの画像の認識をすることを特徴とする画像認識方法。
  20. 請求項16記載の方法において、
    (1)複眼カメラで撮像された静止画像の認識ステップと、
    (2)複眼画像に表示される物体の対応点をパターンマッチで検出するステップと、
    (3)以上で検出された物体を立体計測するステップと
    を有し、画像物体の形状の認識をすること特徴とする画像認識方法。
  21. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1〜第2の入力は、メモリに記憶された集合情報に対してパターンマッチングする問い合わせ情報パターンを指定するものであり、
    上記問い合わせ情報パターンは、画像を構成する、画素の画像情報データ値と、その画素のデータ位置と、の双方を適宜組合せして構成されるものであり、
    (1)画像全体の中から無作為にパターンを採取し、採取されたパターンを問い合わせ情報パターンとしその特徴に合致する物体を検出するステップ、
    (2)予め認識する物体を特定しその物体の特徴を検出するための問い合わせ情報パターンを作成し、画像全体の中からそのパターンに合致する物体を検出するステップ、
    (3)以上(1)(2)の組み合わせによるパターンに合致する物体を検出するステップ、
    の少なくとも1つのステップにより物体を認識する物体認識方法。
  22. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1〜第2の入力は、メモリに記憶された集合情報に対してパターンマッチングする問い合わせ情報パターンを指定するものであり、
    (1)音声のそれぞれの音素から得られる、スペクトラムもしくはケプストラムのパターンを音素別、周波数別に配列データベースとして用意し
    (2)発声される音声の音素から得られる、スペクトラムもしくはケスペクトラムベクトルのパターンを、上記配列データベースに問い合わせすることにより、上記条件にパターンマッチする上記配列データベースのアドレスを検出し
    以上(1)(2)により問い合わせ条件の音素を検出することを特徴とする音素認識方法。
  23. 請求項22記載の方法において、
    前記パターンの変化許容する範囲を設定しパターンマッチすることを特徴とする音素認識方法。
  24. 請求項22記載の方法において、
    登録された、前記周波数別のスペクトルもしくはケプストラムのデータの配列データベースの中から必要とする周波数のみをパターンマッチ条件とすることを特徴とする音素認識方法。
  25. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1〜第2の入力は、メモリに記憶された集合情報に対してパターンマッチングする問い合わせ情報パターンを指定するものであり、
    (1)言葉のそれぞれの語彙を、語彙別に音素の配列データベースとして用意し
    (2)発音される音声の音素の配列を、上記配列データベースに問い合わせすることにより、上記条件にパターンマッチする上記データベースのアドレスを検出し
    以上(1)(2)により問い合わせ条件の語彙を検出することを特徴とする音声認識方法。
  26. 請求項25記載の音声認識方法において、
    前記音素の配列の変化を許容するパターンマッチすることを特徴とする音声認識方法。
  27. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1〜第2の入力は、メモリに記憶された集合情報に対してパターンマッチングする問い合わせ情報パターンを指定するものであり、
    (1)画像中の文字の書体を構成する、画素の画像情報データ値と、その画素の位置と、の双方を適宜組合せして構成される画像文字問い合わせパターンを作成登録用意するステップと
    (2)画像文字認識の対象となる画像に上記画像文字問い合わせパターンを問い合わせする事によりこの画像問い合わせパターンにパターンマッチする画素を上記対象となる画像の中から検出するステップと
    以上(1)(2)のステップにより画像文字認識処理することを特徴とする画像文字認識方法。
  28. 請求項27記載の画像文字認識方法において、
    前記その画素の位置は
    (1)前記文字書体の領域内を示すサンプリングポイント
    (2)前記文字書体の領域外を示すサンプリングポイント
    以上(1)(2)の画素の位置を基に画像文字認識処理することを特徴とする画像文字認識方法。
  29. 請求項27記載の画像文字認識方法において、
    前記サンプリングポイントは座標変換によって
    (1)拡大縮小された文字
    (2)回転された文字
    以上(1)(2)の画像文字認識処理することを特徴とする画像文字認識方法。
  30. 請求項27記載の画像文字認識方法において、
    前記サンプリングポイントを範囲パターンマッチによって画像文字認識処理することを特徴とする画像文字認識方法。
  31. 請求項27記載の画像文字認識方法において、
    前記画素の画像情報データ値は
    (1)前記領域内を示すサンプリングポイントの画素情報は前記文字書体の色データ値もしくは輝度データ値
    (2)前記領域外を示すサンプリングポイントの画素情報は前記文字書体の色データ値もしくは輝度データ値以外のデータ値
    以上(1)(2)の画素の画像情報データ値を基に画像文字認識処理することを特徴とする画像文字認識方法。
  32. 請求項27記載の画像文字認識方法において、
    複数種類の前記文字書体を1文字毎に重ね合わせ当該文字の
    (1)前記文字書体共通領域内に前記文字書体の領域内を示すサンプリングポイント
    (2)いずれの前記文字書体の領域に含まれない部分に前記文字書体の領域外を示すサンプリングポイント
    以上(1)(2)のサンプリングポイントを決めることを特徴とする画像文字認識方法。
  33. 請求項27記載の画像文字認識方法において、
    前記画像文字問い合わせパターンは相対アドレスとし、この相対アドレスを絶対アドレスに変換してパターンマッチすることを特徴とする画像文字認識方法。
  34. 請求項27記載の画像文字認識方法において、
    前記文字は
    単一言語文章に必要な文字全てを対象にして一文字毎に、シーケンシャルに画像空間内全区間パターンマッチすることを特徴とする画像文字認識方法。
  35. 請求項27記載の画像文字認識方法において、
    全世界言語文章に必要な文字全てを対象にして一文字毎に、シーケンシャルに画像空間内全区間をパターンマッチすることを特徴とする画像文字認識方法。
  36. 請求項1記載のメモリを有し、
    (1)画像中の文字の書体を構成する、画素の画像情報データ値と、その画素の位置と、の双方を適宜組合せして構成される画像文字問い合わせパターンを登録したデータベースと
    (2)画像文字認識の対象となる画像に上記データベースの画像文字問い合わせパターンをシーケンシャルに問い合わせする事によりこの画像問い合わせパターンにパターンマッチする画素を上記対象となる画像の中から逐次検出する手段と
    (3)逐次検出されたパターンマッチアドレスから画像上の文字とその位置を認識して、認識された文字とその配列を記憶する手段と
    以上(1)から(3)の手段を具備することを特徴とする画像文字認識機能を備えた情報処理装置。
  37. 請求項36記載の情報処理装置において、
    前記認識された文字とその配列による文字列をアノテーションデータとすることを特徴とする画像文字認識機能を備えた情報処理装置。
  38. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1〜第2の入力は、メモリに記憶された集合情報に対してパターンマッチングする問い合わせ情報パターンを指定するものであり、
    情報の配列が定義されて記憶された情報のパターンマッチ検出において
    (1)前記第4の入力として情報の配列の定義を指定するステップと
    (2)パターンマッチの候補となる情報のデータ値(前記第1の入力)を指定して基準情報とするステップと
    (3)以上(2)の基準情報にマッチさせる複数のマッチ情報のそれぞれのデータ値をそれぞれ独立して指定するとともにこのそれぞれ情報の位置(前記第2の入力)をそれぞれ独立して指定するステップ
    (4)以上(1)の基準情報、および(2)の複数のマッチ情報を1つの問い合わせ情報パターンとしてこの問い合わせ情報パターンにマッチする上記(2)の基準情報のアドレスを検出するステップ
    以上(1)から(4)のステップにより情報をパターンマッチ検出することを特徴とするパターンマッチ標準化方法。
  39. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1〜第2の入力は、メモリに記憶された集合情報に対してパターンマッチングする問い合わせ情報パターンを指定するものであり、
    情報の配列が定義されて記憶された情報のパターンマッチ検出において
    (5)前記第4の入力として情報の配列の定義を指定するステップ
    (6)パターンマッチの候補となる情報のデータ値とその範囲を指定して基準情報とするステップ
    (7)以上(6)の基準情報にマッチさせる複数のマッチ情報のそれぞれのデータ値とその範囲をそれぞれ独立して指定するとともにこのそれぞれ情報の位置とその範囲をそれぞれ独立して指定するステップ
    (8)以上(6)の基準情報、および(7)の複数のマッチ情報を1つの問い合わせ情報パターンとしてこの問い合わせ情報パターンにマッチする上記(6)の基準情報のアドレスを検出するステップ
    以上(5)から(8)のステップにより曖昧情報をパターンマッチ検出することを特徴とするパターンマッチの標準化方法。
  40. 前記(2)(6)のステップを並列にマッチ実行することを特徴とする請求項38又は39記載の情報のパターンマッチの標準化方法。
  41. 前記(4)(8)のステップを並列にマッチ実行することを特徴とする請求項38又は39記載の情報のパターンマッチの標準化方法。
  42. 前記(2)(6)の基準情報ならびに前記(3)(7)のマッチ情報の位置を座標で指定することを特徴とする請求項38又は39記載の情報のパターンマッチの標準化方法。
  43. 前記(2)(6)の基準情報ならびに前記(3)(7)のマッチ情報の位置を距離で指定することを特徴とする請求項38又は39記載の情報のパターンマッチの標準化方法。
  44. 前記座標は前記情報の配列の次元に合せた次元座標であることを特徴とする請求項42記載の情報のパターンマッチの標準化方法。
  45. 前記座標は座標変換をすることが可能であることを特徴とする請求項42記載の情報のパターンマッチの標準化方法。
  46. 画像情報の前記(2)(3)(6)(7)のデータ値およびその範囲を色情報R、G、B、それぞれ独立して指定することを特徴とする請求項38又は39記載の情報のパターンマッチの標準化方法。
  47. 前記(4)(8)のステップをマッチ実行する際、前記1つの問い合わせパターンの内、幾つかの前記マッチ情報がマッチしない場合(ミスマッチ)を許容することを特徴とする請求項38又は39記載の情報のパターンマッチの標準化方法。
  48. 前記パターンマッチを分散処理して実施することを特徴とする請求項38又は39記載の情報のパターンマッチの標準化方法。
  49. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1、第2の入力は、メモリに記憶された集合情報に対してパターンマッチングする問い合わせ情報パターンを指定するものであり、
    これを指定するパターンマッチのユーザインタフェースにおいて
    (9)第4の入力として配列を指定する機能
    (10)問い合わせパターンの設定機能は、
    (10−1)パターンマッチの候補となる情報のデータ値を指定して基準情報とする機能、
    (10−2)以上(10−1)の基準情報にマッチさせる複数のマッチ情報のそれぞれのデータ値をそれぞれ独立して指定するとともにこのそれぞれ情報の位置をそれぞれ独立して指定する機能
    (11)以上(10−1)(10−2)の指定に基づきマッチ指令をする機能
    (12)マッチ指令に基づき情報処理されたパターンマッチ結果を表示する機能
    以上(9)から(12)のステップにより情報をパターンマッチ検出させること特徴とするパターンマッチ用ユーザインタフェース。
  50. 請求項1記載の集合演算機能を備えたメモリにおいて、
    前記第1、第2の入力は、メモリに記憶された集合情報に対してパターンマッチングする問い合わせ情報パターンを指定するものであり、
    これを指定するパターンマッチのユーザインタフェースにおいて
    (9)配列を指定する機能
    (10)問い合わせ情報パターンの設定機能は、
    (10−1)パターンマッチの候補となる情報のデータ値とその範囲を指定して基準情報とする機能
    (10−2)以上(10−1)の基準情報にマッチさせる複数のマッチ情報のそれぞれのデータ値とその範囲をそれぞれ独立して指定するとともにこのそれぞれ情報の位置とその範囲をそれぞれ独立して指定する機能
    (11)以上(10−1)(10−2)の指定に基づきマッチ指令をする機能
    (12)マッチ指令に基づき情報処理されたパターンマッチ結果を表示する機能
    以上(9)から(12)のステップにより曖昧情報をパターンマッチ検出させることを特徴とするパターンマッチ用ユーザインタフェース。
JP2014508027A 2012-03-28 2013-03-28 集合演算機能を備えたメモリ及びこれを用いた集合演算処理方法 Active JP6014120B2 (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
JP2012073451 2012-03-28
JP2012073451 2012-03-28
JP2012083361 2012-03-31
JP2012083361 2012-03-31
JP2012101352 2012-04-26
JP2012101352 2012-04-26
JP2012110145 2012-05-13
JP2012110145 2012-05-13
JP2012121395 2012-05-28
JP2012121395 2012-05-28
PCT/JP2013/059260 WO2013147022A1 (ja) 2012-03-28 2013-03-28 集合演算機能を備えたメモリ及びこれを用いた集合演算処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016184995A Division JP2017084349A (ja) 2012-03-28 2016-09-23 集合演算機能を備えたメモリ及びこれを用いた集合演算処理方法

Publications (2)

Publication Number Publication Date
JPWO2013147022A1 true JPWO2013147022A1 (ja) 2015-12-14
JP6014120B2 JP6014120B2 (ja) 2016-10-25

Family

ID=49260269

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014508027A Active JP6014120B2 (ja) 2012-03-28 2013-03-28 集合演算機能を備えたメモリ及びこれを用いた集合演算処理方法
JP2016184995A Pending JP2017084349A (ja) 2012-03-28 2016-09-23 集合演算機能を備えたメモリ及びこれを用いた集合演算処理方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2016184995A Pending JP2017084349A (ja) 2012-03-28 2016-09-23 集合演算機能を備えたメモリ及びこれを用いた集合演算処理方法

Country Status (3)

Country Link
US (1) US20150154317A1 (ja)
JP (2) JP6014120B2 (ja)
WO (1) WO2013147022A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105900085B (zh) 2013-12-23 2019-08-09 井上克己 具备信息检索功能的存储器及其利用方法、装置、信息处理方法
US9558825B1 (en) * 2014-06-25 2017-01-31 Hrl Laboratories, Llc System and method to discover and encode indirect associations in associative memory
CN105389566B (zh) * 2015-11-13 2018-09-11 广东欧珀移动通信有限公司 指纹识别方法、指纹模板的更新方法、装置和移动终端
JP6448696B2 (ja) * 2017-03-22 2019-01-09 株式会社東芝 情報処理装置、方法及びプログラム
JP7176478B2 (ja) * 2019-06-14 2022-11-22 トヨタ自動車株式会社 画像認識装置
CN114387124A (zh) * 2021-12-22 2022-04-22 中核武汉核电运行技术股份有限公司 一种核电工业互联网平台的时序数据存储方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003036269A (ja) * 2001-07-23 2003-02-07 Sony Corp 情報処理装置および情報処理方法並びにこの情報処理のプログラムが記録された記録媒体
WO2011102432A1 (ja) * 2010-02-18 2011-08-25 Inoue Katsumi 情報絞り込み検出機能を備えたメモリ、このメモリを用いた情報検出方法、このメモリを含む装置、情報の検出方法、メモリの使用方法、およびメモリアドレス比較回路

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950034265A (ko) * 1994-02-10 1995-12-28 도자끼 시노부 연상메모리
JP3038649B2 (ja) * 1997-04-16 2000-05-08 日本電気株式会社 連想検索装置および方法
JP2002260389A (ja) * 2001-03-01 2002-09-13 Kawasaki Microelectronics Kk 連想メモリ
US20080285652A1 (en) * 2007-05-14 2008-11-20 Horizon Semiconductors Ltd. Apparatus and methods for optimization of image and motion picture memory access
US7861030B2 (en) * 2007-08-08 2010-12-28 Microchip Technology Incorporated Method and apparatus for updating data in ROM using a CAM
US8631195B1 (en) * 2007-10-25 2014-01-14 Netlogic Microsystems, Inc. Content addressable memory having selectively interconnected shift register circuits
US7859878B2 (en) * 2007-12-03 2010-12-28 International Business Machines Corporation Design structure for implementing matrix-based search capability in content addressable memory devices
US7848128B2 (en) * 2007-12-03 2010-12-07 International Business Machines Corporation Apparatus and method for implementing matrix-based search capability in content addressable memory devices
JP4588114B1 (ja) * 2010-02-18 2010-11-24 克己 井上 情報絞り込み検出機能を備えたメモリ、その使用方法、このメモリを含む装置。

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003036269A (ja) * 2001-07-23 2003-02-07 Sony Corp 情報処理装置および情報処理方法並びにこの情報処理のプログラムが記録された記録媒体
WO2011102432A1 (ja) * 2010-02-18 2011-08-25 Inoue Katsumi 情報絞り込み検出機能を備えたメモリ、このメモリを用いた情報検出方法、このメモリを含む装置、情報の検出方法、メモリの使用方法、およびメモリアドレス比較回路

Also Published As

Publication number Publication date
WO2013147022A1 (ja) 2013-10-03
US20150154317A1 (en) 2015-06-04
JP6014120B2 (ja) 2016-10-25
JP2017084349A (ja) 2017-05-18

Similar Documents

Publication Publication Date Title
RU2595559C2 (ru) Система и способ использования данных предыдущего кадра для оптического распознавания символов кадров видеоматериалов
JP2017084349A (ja) 集合演算機能を備えたメモリ及びこれを用いた集合演算処理方法
Wang et al. Deep sketch feature for cross-domain image retrieval
Das et al. Automated Indian sign language recognition system by fusing deep and handcrafted feature
Bilgin et al. Road sign recognition system on Raspberry Pi
Nguyen et al. Completed statistical adaptive patterns on three orthogonal planes for recognition of dynamic textures and scenes
Chen et al. A multi-scale fusion convolutional neural network for face detection
Bu et al. Multimodal feature fusion for 3D shape recognition and retrieval
CN113468371A (zh) 实现自然语句图像检索的方法、系统、装置、处理器及其计算机可读存储介质
Li et al. Review network for scene text recognition
Muthukumar et al. Vision based hand gesture recognition for Indian sign languages using local binary patterns with support vector machine classifier
Hisham et al. A Systematic Literature Review of the Mobile Application for Object Recognition for Visually Impaired People
Parra et al. Automatic gang graffiti recognition and interpretation
Diem et al. Semi-automated document image clustering and retrieval
Ghosh et al. Efficient indexing for query by string text retrieval
Seth et al. A review on content based image retrieval
Li et al. Fusion framework for color image retrieval based on bag-of-words model and color local Haar binary patterns
Zhu et al. Enhancing interior and exterior deep facial features for face detection in the wild
Verma et al. Recent advancement of LBP techniques: A survey
Rayeed et al. Bangla sign digits recognition using depth information
Jhansi et al. A methodology for sketch based image retrieval based on score level fusion
Farajzadeh Exemplar-based logo and trademark recognition
Joseph et al. Content based image retrieval system for Malayalam handwritten characters
Jiménez et al. Automatic method for Recognition of Colombian Sign Language for vowels and numbers from zero to five by using SVM and KNN
Poornima et al. Recognition of Indian sign language alphanumeric gestures based on global features

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160310

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160310

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160715

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160923

R150 Certificate of patent or registration of utility model

Ref document number: 6014120

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250