(57)【要約】【課題】配列データに適した演算方法がない。【解決方法】この発明は集合演算の元の考え方を進化させることにより情報を探す処理の情報処理手法の標準化（汎用化）と情報を探す処理の複雑度の軽減により即応性のある情報を探す処理の演算方法を確立し「だれでもがすぐに利用できる情報を探す処理装置と手法」を提供することを目的として、元の属性を示すデータ（data）情報と、その元が存在する空間（space）情報と、の２つの情報で１つの元を指定する手段と、前記データ（data）情報ならびに前記空間（space）情報の双方の情報を演算して集合演算を行う手段とを用い配列データの集合演算を行う。【選択図】図２
2017174053.tif 000002
【特許請求の範囲】
【請求項１】
情報配列データの集合（set）の元（element）の集合演算装置であって、
１つの元を、元の属性を示すデータ（data）情報と、その元が存在する空間（space）情報と、の２つの情報で指定する手段と、
前記データ（data）情報ならびに前記空間（space）情報の双方の情報を演算して集合演算を行う手段と
を具備することを特徴とする配列データの集合演算装置。
【請求項２】
前記元の前記空間（space）情報を、基準位置（reference position）および相対位置( relative position)で指定する手段を具備することを特徴とする請求項１記載の配列データの集合演算装置。
【請求項３】
前記元の前記空間（space）情報に領域（aria）を指定する手段を具備することを特徴とする請求項１記載の配列データの集合演算装置。
【請求項４】
前記元の前記空間（space）情報に領域の内外を指定する手段を具備することを特徴とする請求項１記載の配列データの集合演算装置。
【請求項５】
前記元の前記空間（space）情報を１次元からＮ次元のユークリッド空間で指定する手段を具備することを特徴とする請求項１記載の配列データの集合演算装置。
【請求項６】
前記元の前記データ情報にデータの範囲（range）を指定する手段を具備することを特徴とする請求項１記載の配列データの集合演算装置。
【請求項７】
前記元の前記データ情報にデータの補数を指定する手段を具備することを特徴とする請求項１記載の配列データの集合演算装置。
【請求項８】
情報配列データの集合（set）の元（element）の演算方法であって、
１つの元を、元の属性を示すデータ（data）情報と、その元が存在する空間（space）情報と、の２つの情報で指定し、
前記データ（data）情報ならびに前記空間（space）情報の双方の情報を演算して集合演算を行うことを
特徴とする配列データの集合演算方法。
【請求項９】
前記データ（data）情報ならびに前記空間（space）情報の双方の情報を演算して
（１）エッジ／輪郭／線成分
（２）領域
（３）テクスチャ
（４）パターン
少なくとも以上（１）から（４）の検出を行うことを特徴とする請求項８記載の配列データの集合演算方法
【請求項１０】
（５）パターンマッチング法
（６）統計的識別法
（７）構造識別法
（８）機械学習法
少なくとも以上（５）から（８）に利用することを特徴とする請求項８記載の配列データの集合演算方法
【請求項１１】
請求項８記載の配列データの集合演算方法を実行する演算プログラム。
【請求項１２】
請求項８記載の配列データの集合演算方法を実行する回路を組み込んだ半導体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は配列データの集合演算装置、配列データの集合演算方法、その実行プログラム、その回路を組み込んだ半導体に関する。
【背景技術】
【０００２】
本発明出願人は、ＣＰＵが苦手な、検索、照合、認証などの情報探し処理は、メモリ型の情報処理デバイス（メモリ型プロセッサ）に任せるべきとの考えに基づき特許第４５８８１１４号は情報絞り込み機能を備えたメモリ、ならびにＰＣＴ／ＪＰ２０１３／０５９２６０は集合演算機能を備えたメモリなどの研究を続けて来た。
【０００３】
長年の研究をもとに昨年末実用システムを完成させるとともに様々な観点から評価を行った結果、メモリ型プロセッサは、従来のＣＰＵより、検索、照合、認証などの情報探し処理がけた違いに高速であること、小型・省エネでしかも情報処理が簡素化されるなど当初の期待を大幅に上回る成果を生み出すことができた。
【０００４】
またこれらのデバイスを利用する上で重要な演算手法が次々に発見され、これらの演算手法は現状の情報処理手法だけでは解決できない問題点を解決するとともに、ソフトウエアの平易化、標準化を大きく推進し、メモリ型プロセッサを利用する場合でも、これまで通りＣＰＵで処理をする場合の双方に、利便性をもたらす新しい演算方法を実現できることの確証を得ることができた。
【０００５】
ソフトウエアに依存することなく特別な専門家以外でも複雑難解な画像認識などの処理が簡単に実現できる手法、つまり素人が参加できる演算手法があれば、情報処理に大きな進化が得られることになることは明白である。
以下に本願発明に密接に関係する現状の情報処理の課題を示す。
【０００６】
（配列データに関して）
我々が情報処理で利用する全てのデータは配列データである。
例えば画像データ、音声データ、温度データ、気圧データなど自然界の振る舞いをサンサーで抽出し得られたデータは、空間を意識した配列データとしてメモリに記憶する必要がある。
【０００７】
一例を挙げれば、気温データであれば、時間と温度データで構成される１次元配列データであり、時間はメモリのアドレスに対応付け（意味付け）され、対応するアドレスに気温データが記憶され、気温配列データとなっている。
画像データであればＸＹ空間のピクセルの輝度や色度のデータで構成される２次元配列データであり、ＸＹ空間がメモリのアドレスに対応付け（意味付け）され、対応するアドレスにピクセルデータが記憶され、画像配列データとなっている。
【０００８】
これらのデータを空間配列データとするのは、言うまでもなくこれらのデータを後で利用する場合、空間情報がないとデータが利用出来なくなるからである。
【０００９】
自然界のデータのみならず、データベースのデータもメモリ上のどこにどのようなデータが格納されているか対応付け（意味付け）されデータが格納されている。
【００１０】
つまり、配列データはメモリのアドレスを意味付けし、意味付けされたアドレスに該当するデータを記憶したデータと定義することができる。
【００１１】
（メタデータの必要性）
しかしながら、逐次処理プロセッサＣＰＵは配列データなどの集合演算が極めて苦手なプロセッサである。
従ってこのように折角意味付けしたアドレスを効率的かつ標準的に利用できる演算方法がないので、目的により都度個別にプログラムを開発する必要がある。
【００１２】
画像処理の一例を述べると例えば、エッジを検出する場合には折り畳み演算による画像メタデータ、人の顔の特徴を見つける場合にはＨａａｒなど積分演算画像メタデータ、歩行者を見つける場合にはＨＯＧ特徴によるヒストグラム画像メタデータ、一般的な特徴であればガウス分布データを用いたＳＩＦＴ画像メタデータなどを事前に用意（前処理）しこれらのメタデータを頼りに目的とする特徴を見つけ出す以外ない。
これらの特徴を確実に探し出すための画像条件、例えば屋内であれば撮影アングルや照明条件、屋外であれば天候や時間変化により微妙に変化するので、そのメタデータとそのアルゴリズム開発は極めて膨大な力仕事が必要になる。
【００１３】
（一般物体認識）
さらに大きな課題を示す。
図１に示す画像は飲食物の例である、本例では飲み物を代表して、ビールとワイン、食べ物を代表して、コロッケ、ハンバーグ、そして牛丼がそれぞれ３例ずつ紹介されている、いうまでもなく３例にとどまることなく無限ともいえる種類の画像が発生する。
同一の言葉（概念）で表現される物体でありながら、実際のその形状や色調は大きく異なり、これらの画像を認識（クラス分け）すること（一般物体認識）は、以上述べた通り非常に困難な技術で現在の情報処理上最大の課題といっても差し支えない。
【００１４】
これらの課題に対応すべく近年、ディープラーニングと呼称される機械学習型ニューラルネットワーク技術により大きな進展がみられ１０００種の物体が精度よく見分けられるようになってきた。
然しながら、システムが巨大化し、学習時間に極めて大きな時間が必要である、発展途上であるので標準化が困難など様々な課題を抱えている。
【００１５】
最近ではこれらの技術だけでは解決できない問題も報告されており、幾つかの技術を組み合わせ、解決するような取り組みがなされている。
【００１６】
以上は画像の例であるが、音声、気象データ、そしてその他のビッグデータの情報などそれぞれの分野の専門家以外手が出せない状況となっている。
【００１７】
（即応性の必要性）
以上様々な課題を示してきたが先ずは市場が求める以下のような切実な課題を克服する必要がある。
例えばセキュリテイの分野、医療の分野、ＦＡの分野などでは、必要な時、必要なものをタイムリに検出したい。
例えば防犯カメラのビデオからコンビニ泥棒の犯人の特徴を検出するプログラムを組んでそれから何回かのテストを行い、数日後にようやくビデオ画像の検査ができるようになるようでは、犯人は遠くに逃亡してしまう、従って現在では人間の目による検出に頼るしかない、このような場合には如何に速く利用できるか、即応性が重要である。
【００１８】
医療の分野でも画像処理が積極的に活用されている、例えばレントゲンやＣＴスキャナー画像の中から、何らかの新しい欠陥（病気）が見つかった場合には、直ちに過去のデータを再検査して新しく発見された欠陥（病気）があるのか無いのか早急に判断する必要がある。
【００１９】
ＦＡ分野の画像検査においても、同様に新しく発生した不具合にタイムリに検査が出来ないとその間ラインを停止しなくてはならない事態も起こってくる。
【００２０】
以上は画像の例であるが、このような情報処理の即応性はいたるところで必要とされて日々少しずつ進化しているものの大幅な進化や抜本的な解決の取り組みはほとんどない。
【００２１】
（探したいものは無限にある）
また、即応性の次に重要なことは、探したいものは、無限であることに注目する必要がある。
先に紹介したディープラーニング手法で１０００種類もの物体が認識できるようになってきたとは言え、実際に我々が探したいものは、より具体的な物体であり、同じ人でも背が大きく赤い上着に、青のズボンの若い人、背は大きくないが赤い上着に、黒のズボンで黒色のカバンを持っている人など、探したいものは組み合わせ問題であり無限に存在する。
これらの組み合わせ問題に柔軟に対応し、しかも専門的な知識を持たない人でも自由に取り扱いが出来るような構成にする必要がある。
【００２２】
これまで情報処理のハードウエア上牽引してきたＣＰＵの最大の長所は何でも出来る汎用性である、また情報処理の利用技術（ソフトウエア）を牽引してきたブール代数の最大の長所は何でも出来る汎用性である。
しかしながら、ビッグデータ問題、さらには半導体の微細化技術も限界が間近に迫り、ＩｏＴを初めとする情報処理の新しいニーズを満足させるためには、従来のクラウドコンピューティング一辺倒の考えだけでは捌ききれず、エッジコンピューティングに代表されるような新しい考えの情報処理方法が不可欠となっている。
【００２３】
（応用範囲）
特許庁の特許マップの画像認識技術を参照すると、画像認識を行うための特徴抽出として、（１）エッジ／輪郭／線成分の抽出、（２）領域分割による抽出、（３）テクスチャの抽出、の３つが紹介されている。
更に画像識別では、（１）パターンマッチング、（２）統計的識別法、（３）構造識別法、の３つが紹介されている。
【００２４】
補足すればテクスチャはパターンの組み合わされたものであり、パターンマッチ（パターンマッチング）はテクスチャやパターンを見つけ出す手法である。
また画像の識別に関しては先に示した、機械学習法などを加えることもできる。
【００２５】
本願発明は対象範囲を限定することなく以上特許マップに紹介される特徴抽出並びに画像識別技術の大半を包含し利用できることである、従って画像認識の標準化や汎用化に大きく貢献できることが大きな特徴である。
この発明は以上のような画像認識にのみならずあらゆる配列データ共通に利用できることも大きな特徴である。
【００２６】
（従来技術Ａ）
以下に従来技術の特許文献の一例を紹介する。
特願２００６−１６０１４８は物体候補領域検出装置の例であり、領域を切り出し歩行者の検出を行うものである。
（従来技術Ｂ）
本願発明者の出願による特許第４５８８１１４号は情報絞り込み機能を備えたメモリ、ならびにＰＣＴ／ＪＰ２０１３／０５９２６０は集合演算機能を備えたメモリ及びこれを用いた集合演算処理方法は、メモリで本発明の演算の一部を実現することを目的とした発明であるもののパターンマッチを実現することに主眼が置かれ、領域検出や、エッジ検出などこの発明のような広範囲な考えには遠く至っていない。
【先行技術文献】
【特許文献】
【００２７】
【特許文献１】特願２００６−１６０１４８
【特許文献２】特許第４５８８１１４号
【特許文献３】ＰＣＴ／ＪＰ２０１３／０５９２６０
【発明の概要】
【発明が解決しようとする課題】
【００２８】
この発明は集合演算の元の考え方を進化させることにより情報を探す処理の情報処理手法の標準化（汎用化）と情報を探す処理の複雑度の軽減により即応性のある情報を探す処理の演算方法を確立し「だれでもがすぐに利用できる情報を探す処理装置と手法」を提供することを目的とする。
【課題を解決するための手段】
【００２９】
請求項１では
情報配列データの集合（set）の元（element）の集合演算装置であって、
１つの元を、元の属性を示すデータ（data）情報と、その元が存在する空間（space）情報と、の２つの情報で指定する手段と、
前記データ（data）情報ならびに前記空間（space）情報の双方の情報を演算して集合演算を行う手段と
を具備することを特徴とする
【００３０】
請求項２では
前記元の前記空間（space）情報を、基準位置（reference position）および相対位置( relative position)で指定する手段を具備することを特徴とする
【００３１】
請求項３では
前記元の前記空間（space）情報に領域（aria）を指定する手段を具備することを特徴とする
【００３２】
請求項４では
前記元の前記空間（space）情報に領域の内外を指定する手段を具備することを特徴とする
【００３３】
請求項５では
前記元の前記空間（space）情報を１次元からＮ次元のユークリッド空間で指定する手段を具備することを特徴とする
【００３４】
請求項６では
前記元の前記データ情報にデータの範囲（range）を指定する手段を具備することを特徴とする
【００３５】
請求項７では
前記元の前記データ情報にデータの補数を指定する手段を具備することを特徴とする
【００３６】
請求項８では
情報配列データの集合（set）の元（element）の演算方法であって、
１つの元を、元の属性を示すデータ（data）情報と、その元が存在する空間（space）情報と、の２つの情報で指定し、
前記データ（data）情報ならびに前記空間（space）情報の双方の情報を演算して集合演算を行うことを
特徴とする
【００３７】
請求項９では
前記データ（data）情報ならびに前記空間（space）情報の双方の情報を演算して
（１）エッジ／輪郭／線成分
（２）領域
（３）テクスチャ
（４）パターン
少なくとも以上（１）から（４）の検出を行うことを特徴とする
【００３８】
請求項１０では
（１）パターンマッチング法
（２）統計的識別法
（３）構造識別法
（４）機械学習法
少なくとも以上（１）から（４）に利用することを特徴とする
【００３９】
請求項１１では
請求項８記載の配列データの集合演算方法を実行する演算プログラム。
【００４０】
請求項１２では
請求項８記載の配列データの集合演算方法を実行する回路を組み込んだ半導体。
【発明の効果】
【００４１】
（即応性）
特殊なアルゴリズムとそのメタデータを考慮する必要がなくなるので即応性がある、配列データがあればその場で利用できる、配列データは従来のままでよい、特別な加工や編集は不要である。
すでに完成され検証されているアルゴリズムとそのメタデータを併用することも容易である。
【００４２】
（単純である）
ソフトを組み込みコンパイルし、デバッグするような作業を不要にして、例えば画像処理のようにこれまで専門家以外実現できなかった情報処理が素人でも可能になる。
通常のブール演算を拡張したものであり演算の考えが単純なので理解しやすく空間に存在する物体の特徴を演算式で直接記述できる。
例えば曖昧な記憶を元に作成した演算式で特定の情報を探し出すことができる。
絞り込みされた情報、言い換えれば意味を持つ重要な情報のみを得ることができるので、後処理の効率が高い。
特殊なアルゴリズムとそのメタデータを考慮する必要がなくなるので情報処理が平易化し、標準化したシステムがあれば、その場で演算式を組み込み利用することができる、演算式の完成度は直ちに検証できる。
【００４３】
（応用範囲が広い）
１次元情報からＮ次元情報まで標準化できる。
人間の記憶に基づく演算式が実現できる。
これまでの画像処理は処理を簡素化することを考慮しグレースケール画像を基になされる場合が多かったが、本手法をとることにより色情報の活用が極めて単純で容易になるので応用範囲が格段に拡大する。
画像で極めて重要な面や線が直接扱える、距離や面積が直接測定できる。
ディープラーニングなどの技術に組み込むことも可能である。
組み合わせ問題に直接対応できる。
【００４４】
（その他の効果）
演算データや演算式は自然界そのままの空間情報を利用したものであるので、時代やＩＴ機器やＩＴ手法の変化に関係なく普遍的価値をもつ。
演算データサイズは極めてコンパクトであるので、携帯機器にも沢山の演算データを搭載することが出来る。
従来技術との親和性が高く、過去の技術資産を活用できる、半導体ＡＳＩＣやＦＰＧＡに容易に組み込むことができる、クラウド化することやエッジコンピューティングとして並列処理することも可能。
【図面の簡単な説明】
【００４５】
【図１】図１は、飲食物の画像例である
【図２】図２は、従来の集合とその元と本発明の集合の元の概念の相違点をまとめたものである。
【図３】図３は、集合演算の説明図（図３−Ａ、Ｂ、Ｃ）である
【図４】図４は、集合演算の説明図（図４−Ａ、Ｂ、Ｃ）である
【図５】図５は、集合演算の説明図（図５−Ａ、Ｂ、Ｃ）である
【図６】図６は、集合演算の説明図（図６−Ａ、Ｂ、Ｃ）である
【図７】図７は、集合演算の説明図（図７−Ａ、Ｂ、Ｃ）である
【図８】図８は、集合演算の説明図（図８−Ａ、Ｂ、Ｃ）である
【図９】図９は、集合演算の説明図（図９−Ａ、Ｂ、Ｃ）である
【図１０】図１０は、本装置の集合演算設定画面（ＧＵＩ）の例である。（実施例１）
【図１１】図１１は、本装置で画像処理を実施した例である（実施例２から実施例７）
【発明を実施するための形態】
【００４６】
図２は、従来の集合(set)１００とその元（element）１０１と本技術の一番基本になる集合（set）２００の元（element）２０１の概念の相違点をまとめたものである。
図２−ＡからＤはこれまでの集合１００の考えである、本例ではＡ、Ｂ二つの元の集合（部分集合）の例が示されており、論理否定（ＮＯＴ）１０４や和（ＯＲ）１０３集合、そして積（ＡＮＤ）１０２集合の例が示されている。
この集合の演算の組み合わせにより、排他論理和（ＸＯＲ）やその他のＮＯＲ、ＮＡＮＤなど全ての集合演算１１０が可能になっている。
この集合論をもとにしたブール演算は、現在のコンピュータのソフトウエアの基本をなす考えである。
【００４７】
このＡ、Ｂ２つの元（element）１０１は一例を挙げれば、Ａが赤っぽい色、Ｂが緑っぽい色であると、Ａ＋Ｂは赤っぽい色と緑っぽい色の集合になり、Ａ×Ｂは黄色っぽい色となる。
以上のように従来型集合演算１１０はＡ，Ｂ、赤っぽい、緑っぽいなどそれぞれのデータ１０２のみが元１０１の対象になりその元を基にした演算１１０であった。
言うまでもなく、元の位置がどこにあるのかは演算の対象外である。
【００４８】
集合論は近年では立体等を意識して四元数へ拡張され利用されているものの集合演算のデータと空間を一体化した演算方式の汎用化や標準化はされていないので、データと空間それぞれ個別の処理が続いている。
【００４９】
図２−ＥからＧは、本特許の基本的な概念を示すもので、元２０１の構成がデータ２０２のみならず、空間（space）２０４の概念（空間情報）が加味されていることである。
【００５０】
図２−Ｅは最も一般的で簡易的な本発明の元２０１の表記例である、この元２０１の持つ意味は「Ｓ」で示される空間２０４の上にテーブル記号２０３があり、その空間テーブルの上に「Ｄ」で示されるデータ２０２が乗っている（存在する）ことを示すものである。
【００５１】
図２−Ｆは以上の考え方の一例として、２次元情報である画像の元（ピクセル）２０１の例を示すものであり、空間２０４情報は距離の演算が容易であるユークリッド空間座標で表記したものである。
ユークリッド空間座標とすることは、利用者にとって馴染みやすく、１次元からＮ次元までの空間の構造が理解しやすいことと同時に、実際にメモリ上に展開されているデータ配列（一般的には線形配列）との変換が単純であることである。
【００５２】
本例では位置２０５ならびに領域２０６で指定された空間２０４に存在するデータ２０２が赤色の元（ピクセル）を意味する。
データ２０２は離散値でもよいが、通常は範囲２１０を持ったデータが多く、特に注記しない場合、赤っぽい、緑っぽいなど一定の範囲を持ったデータ２０２として説明する。
【００５３】
更に図２−Ｇは先に示した、元の考えに、「‘」で示されるデータの補数演算子２０７によるデータの補数演算と、「“」で示される領域外演算子２０８による領域内外の演算、ならびに「〜」で示される元２０１の演算結果反転（正を負に、負を正に）演算子２０９による、元の演算結果反転を実現できるように記述され指定できる構成である。
【００５４】
この３種類の演算子について補足する。
図１−Ｂに示されるように、従来論理演算では否定の考え方は論理否定だけの唯一的な概念でも特に問題になることはなかった。
【００５５】
然しながら、元２０１の内容をデータ２０２とその空間２０４と拡張すると以上の唯一的な否定の概念では多くの矛盾が発生し演算を正しく記述（だれでも分かりやすく）できないという大きな問題が生じていた。
【００５６】
本発明の最大のポイントは否定の考え方を図２−Ｇに示すよう、データと、空間、そして演算結果の正負反転の３つに分離して定義することであり、以上の構成とすることにより誰もが理解しやすくしかも多彩な集合演算２２０が可能になる。
空間２０４を示す位置２０５と領域２０６の考え方や演算内容については以降詳しく説明する。
【００５７】
先に示したとおり、本例は２次元空間情報であるので、Ｘ、Ｙ２次元情報として例示しているが、例えば時系列データのような１次元空間情報であればＸ軸情報のみ、例えば立体物を対象とするのであれば、Ｘ、Ｙ、Ｚ３次元情報として記述することができる。
【００５８】
いうまでもなく、図２で示した、元２０１や演算子２１１の記述方法や指定方法は一例であり、これに限るものではない。
【００５９】
図３から図９は、これまで説明した、本発明の元（以下新しい元）２０１の考え、そして新しい演算（２２０）の定義について説明する。
以上の元２０１を利用して実行する演算とその演算子２１１「＋、−、×、ＸＯＲ  （  ）‘  “  〜  ＝」などの演算ルールは自由に定義して良いが、以下に代表的な集合演算２２０と演算子２１１の定義例とその利用方法を示す。
【００６０】
本願特許では、画像ピクセルの空間２０４を指定する絶対座標はＸ、Ｙ（全角大文字）、相対座標はx、y（半角小文字）で表記する。
【００６１】
図３−Ａは、Ｘ軸が０から１９ピクセル、Ｙ軸が０から１９ピクセル、合計４００ピクセルが全体集合２００となる画像の例である。
本例は説明の便宜上、極めて小さな画像空間であるが、実際にはＶＧＡ画像空間や１Ｋ×１Ｋ画像空間など任意の空間の大きさを選択することができる。
本画像には赤、青、緑、黒、黄、紫、そして無地ピクセルは白（記述が省略されている）合計７色で合計４００のピクセル（元２０１）で全体集合２００となっている。
また先に述べたように、赤、青、緑、黒、黄、紫、そして無地ピクセルの白は必ずしも完全に純粋な色を表すものでなくてもよく、赤っぽいなど、色の条件で指定する範囲を持った赤（赤のクラスの色）も含まれる。
【００６２】
図３−Ｂは、以上の全体集合の中から、緑の元２０１を検出する際の演算式である。
データ２０２は緑として指定されており、空間２０４の情報は、位置２０５、x＝０ y＝０ と指定されている。
この空間２０４情報の位置２０５、x＝０ y＝０は後続する元２０１の基準位置２１７となるものと定義する。
従って基準位置２１７となる元は、初回の演算で特定する必要がある、特定された元をもとに後続する元との集合演算２２０が成立する。
これ等の概念は図６−Ａ以降の例を参照の事。
【００６３】
この考えをもとに集合演算実行演算子２１５である「＝」で演算させた結果がハッチングされた「緑」の元２０１である。
先に述べた通り、この「緑」は位置２０５が、x＝０ y＝０であるので後続の演算の元２０１の基準位置２１７になるものである。
【００６４】
図３−Ｃは、「赤」と「緑」の双方の元２０１を求めたものである。
空間テーブル上に集合有演算子２１２「＋」を用いて「赤」＋「緑」を実行することにより、「赤」と「緑」の双方の元２０１を検出するものと定義する。
この「赤」と「緑」の双方とも位置２０５がx＝０ y＝０であるので後続の演算の元２０１の基準位置２１７になるものである。
【００６５】
集合有演算子２１２「＋」は「有るものを見つける」という意味をもち、独立したデータならびに、本例の「赤」のように初めのデータは省略することが出来るものと定義する。
集合無演算子２１３「−」については後述する。
【００６６】
図４−Ａは「黄」の元２０１を求めたものである、「黄」は「赤」と「緑」の混合色である、まぎらわしいが、図３−Ｃとの違いに留意されたい。
【００６７】
図４−Ｂは「青」の元２０１を求めたものである。
合計２３個の元２０１が検出されている。
【００６８】
図４−Ｃは「青」の元の補数を求めるものである。
データの補数２０７演算子「‘」をつけて演算することにより、結果として図４−Ｂの演算結果の正と負を反転した結果となっている。
このことだけでは、あまり大きな意味を持たないが、以降説明する演算で重要な意味を持つことになる。
【００６９】
図５−Ａは「青」の元２０１に隣接する元２０１を含めた演算で領域の拡大を求めるものである。
これまでの説明では、空間２０４情報が位置２０５に限られていたが本例では、位置２０５と領域２０６の双方で指定されている。
本例の場合先に示した図４−Ｂの青の元２０１の±１に隣接する元２０１も検出されている。
図のクロベタの領域の元２０１がその対象になる、図４−Ｂと比較すると領域が拡大されていることが分かる。
【００７０】
図５−Ｂは「青の補数」の元２０１に隣接する元２０１を含めた演算で「青の補数」の領域の拡大を求めるものである。
本例の場合「青の補数」の元の±１に隣接する元２０１が対象になるので、青の元の１部も検出されており、４つの青の元以外のすべてが検出されている。
【００７１】
図５−Ｃは演算結果の反転を定義するものである。
図５−Ｂの演算結果の正と負が反転されている、「〜」は演算結果を反転する演算子と定義する。
図５−Ｂの演算結果を反転すると４つの青の元のみが検出される結果となる。
【００７２】
以上の演算内容は重要な意味をもつ。
検出された４つの元の周辺±１の領域は全て「青」の元であり他の色が含まれていないことを意味している。
言い換えると、データの補数演算と、演算結果の反転で探し出された領域は青の元２０１で「満たされた空間」２１６と定義することもできる。
【００７３】
「満たされた空間」の検出は画像処理上物体や物体の一部を特定する上で特に重要な意味を持つ。
【００７４】
図４−Ｂで検出した青は合計２３個の元２０１であるのに対し、本例では合計３個の元２０１に絞り込みされ、しかもその元がまとまっている部位（領域）のみを探し出している。
本例では便宜上極めて小さな空間で説明しているが実際の空間は極めて大きく、元の数も通常数百倍以上と大量である。
従って、出力される結果が多くなると、例えば演算結果出力表示など以降の情報処理コストが大きくなるので如何に出力される元の数を絞り込み出来るかが鍵になる、この手法は出力される元の数を削減する上で極めて効果的である。
【００７５】
以降この考え方の演算は図５−Ｃに示すように、「青」のデータ２０２の周囲を囲む記号で「満たされた空間」２１６の演算を簡易表記するものとする。
本例では、青のみの元２０１の「満たされた空間」（領域）２１６の例であるが、後述の図８−Ａ、Ｂ、Ｃではさらに高度な「満たされた空間」領域検出の例が示されている。
【００７６】
本例では色情報の画像で説明を行っているがグレースケールでも同一スケール値の領域（空間）を求めることや１次元空間、３次元空間、Ｎ次元空間においても同様な演算が可能であることは言うまでもない。
【００７７】
図６−Ａ、Ｂ、Ｃは領域集合演算の定義を示すものである。
図６−Ａは領域内集合演算の例である。
図に示す演算式の領域は±２なので、最初に検出された黒を中心とする５×５の領域２０６の中に、青と緑が存在する場合、黒が勝ち残り、領域２０６の中に存在しない黒は負けと定義する。
本例ではＸ＝１０、Ｙ＝８の黒の元２０１は勝ち残り、Ｘ＝７、Ｙ＝３の黒は負けである。
【００７８】
図６−Ｂは領域外集合演算の例である。
図に示す演算式の領域２０６は±５で、領域外演算子２０８「“」が指定される場合、最初に検出された黒を基準位置２１７とする１１×１１の領域２０６の外に青と緑が存在する場合、黒が勝ち残り、存在しない黒は負けと定義する。
本例ではＸ＝１０、Ｙ＝８の黒の元２０１は勝ち残り、Ｘ＝７、Ｙ＝３の黒は負けである。
【００７９】
図６−Ｃは領域内排他集合演算の例である。
青と緑には集合有演算子２１２「＋」、黄には集合無演算子２１３「−」がついている、図に示す演算式の領域は±２なので、最初に検出された黒を中心とする５×５の領域２０６の中に、青と緑が存在し、黄がなければ、黒が勝ち残り、存在しない黒は負けと定義する。
先に説明した通り集合有演算子２１２「＋」の意味は「有るものを見つける」のに対し集合無演算子２１３「−」の意味は「無いものを見つける」、つまりあってはならないと等価である。
従って独立したデータで指定された例えば〜（−青）は（青）と同じである。
本例ではＸ＝１２、Ｙ＝６に黄があるので、Ｘ＝１０、Ｙ＝８の黒、Ｘ＝７、Ｙ＝３の黒、共に負けである。
【００８０】
以上説明の図６−Ａ、Ｂ、Ｃの組み合わせにより、極めて多彩な領域２０６集合演算２２０が可能になる。
この集合演算２２０のよいところは、空間内外の色がどのような配列であるか、例えば向きや姿勢にかかわりなく、空間の内外に存在するか否かだけである、非常に単純であるが勝ち残りが多数出ることに弱点がある、弱いマッチングと表現できる。
【００８１】
図７−Ａは、黄の元と、青の元の完全一致マッチングの例である。
最初に検出された黄の元を基準位置にして、ｘ＝７、y＝４の位置に、青があった場合の黄を勝ち残りとし、青がない場合の黄は負けと定義する。
沢山の黄の元が存在するが、この定義にマッチする、黄の元はＸ＝２、Ｙ＝３の１つの黄の元のみであり、この元のみが勝ち残る。
【００８２】
図７−Ｂは、黄の元と、青の元の領域マッチングの例である。
最初に検出された黄の元を基準にして、ｘ＝７±２、y＝４±２の領域に、青があった場合の黄を勝ち残りとし、青がない場合の黄は負けと定義する。
沢山の黄の元が存在するが、この定義にマッチする、黄の元はＸ＝２、Ｙ＝３の１つの黄の元のみであり、この元のみが勝ち残る。
この場合、指定された領域には、４つの青の元が存在するが、基準と指定した黄が１つのみが勝ち残る。
【００８３】
図７−Ｃは、青を基準として、黄色の元の領域マッチングの例である。
この場合、最初に検出された４つの青の元が、１つの黄色の元にマッチして勝ち残りするように定義する。
いうまでもなく、図７−Ｂと図７−Ｃは対象の関係にある。
【００８４】
図８−Ａ、Ｂ、Ｃは図５−Ｃで説明の「満たされた空間」２１６のより高度な応用例を説明するものである。
【００８５】
図８−Ａは、黄色の菱形形状を検出する場合の集合演算２２０例である。
本例では、最初に３×３の領域が黄色で満たされた９つの元の中心の黄色を基準とし、さらに、同一位置２０５で、異なる領域、つまりＸ＝１、Ｙ＝５、の空間に黄色で満たされた５つの黄色があるかどうかを演算、さらに同一位置２０５で別の領域、Ｘ＝５、Ｙ＝１の空間が黄色で満たされているかどうかを演算して、いずれも勝ち残った場合、勝ち残りとするものであり、一回でも失敗すれば負けとなる。
【００８６】
Ｘ＝４、Ｙ＝１４の黄色の元は、基準位置の演算と、その後の２回の集合積演算「×」を含む３回の集合演算２２０に勝ち残った元である。
このような考え方をすることにより、任意形状の物体（その一部）の検出が容易に実現できるようになる。
いうまでもなく、本例のように、画像と、演算式が１回で完璧にマッチすることは少ない、通常は小さな形状から、徐々に大きくするなどにより画像の形状を特定することができる。
従って、このような演算で検出される元は非常に少ない、強いマッチングと表現することができる。
【００８７】
先に示した、弱いマッチングと強いマッチングを組み合わせすると、効果的な集合演算が可能になる。
【００８８】
図８−Ｂは、３色で「満たされた空間」２１６を求めるものである。
本例は５×５の空間が、白（白地部分）、青、緑の３色で「満たされた空間」なる部分を求めたものである。
Ｘ＝１２、Ｙ＝１１、Ｘ＝１３、Ｙ＝１１、Ｘ＝１１、Ｙ＝１２、Ｘ＝１３、Ｙ＝１２の４つの青が勝ち残る結果となる。
以上のように幾つかの色で満たされた空間を検出できることは物体の認識に極めて有効な手立てとなる。
【００８９】
図８―Ｃは、特定ポイント（本例は黄）と、３色で「満たされた空間」２１６のマッチングを求めるものである。
図に示す、Ｘ＝２、Ｙ＝３の黄色が条件式にマッチする元である。
【００９０】
図９−Ａは、「満たされた空間」２１６同士のマッチングを求めるものである。
図に示す、Ｘ＝４、Ｙ＝１４の黄色が条件式にマッチする元である。
【００９１】
図９−Ｂは、（  ）付き演算の例である。
最初に検出された黄の領域の、右と、左何れかに、緑があるはずの場合、（  ）付きの演算で緑が何れかにある場合、黄は勝ち残り、無い場合黄は負けとなる。
本例の場合、Ｘ＝４、Ｙ＝１４の黄は、Ｘ＝６、Ｙ＝１５に緑があるので勝ち残りになる。
【００９２】
本例の場合、集合有演算子「＋」２１２は一般的な集合演算１１０の論理和、ＯＲの意味を兼ね備えている、もちろん集合無演算子「−」２１３を使い、あってはならない色を指定することも可能である。
以上のような（  ）付き演算の組み合わせにより極めて高度な条件の設定が可能になる。
【００９３】
図９−Ｃはエッジ検出を求めるものである。
図９−Ｃの場合、最初に検出された緑を基準とし、青がｘ＝１つまり、緑の左隣りが青の部分を勝ち残り検出すればよいことになる。
以上は左右関係の例であるが、上下、斜めにもこの考えは利用できる、人物を検出する際のＨＯＧ特徴の検出にも有効である。
【００９４】
以上の演算２２０例はほんの一部である。
これまでの説明の様々な演算の組み合わせで、意図する空間情報を効率的に検出することができる。
【００９５】
以上の演算子の定義をまとめると以下の通りである。
集合有演算子２１２「＋」は元の有りを求める、ＯＲの意味も兼ね備えている。
集合無演算子２１３「−」は元の無しを求める。
集合積演算子２１４「×」は元と元のマッチを求める。
データの補数演算子２０７「‘」は指定をするとデータの補数をとる。
領域外演算子２０８「“」は指定をすると領域の外をとる。
演算結果反転演算子２０９「〜」は指定をすると演算結果を反転させる。
「（  ）」は通常のブール代数と同様の使い方である。
集合演算実行演算子２１５「＝」により指定された演算を実行する。
【００９６】
以上が、本例の演算子の定義である。
本例ではＥＯＲ（排他論理和）は割愛している、他にも必要に応じ演算を定義することも可能である。
そしてデータは離散データでも連続データでも構わない、空間情報は、位置、領域を座標で指定する。
【００９７】
物体の大きさが変化する場合や回転を伴う場合、多くの場合は領域の幅を利用することによって、その変化を吸収することが出来るが、大幅に変化する場合は、座標値を圧縮、拡大する必要がある。
以上のような極めて単純なルールを理解すれば直ちに利用可能である。
【００９８】
これまで説明の集合演算の定義を満足するソフトエウアを開発しこの発明の理論の検証、つまり意図した演算を指定することができるか、その演算が実行され、意図した演算結果が得られるかの確認を行った。
図１０は、開発したソフトウエアの集合演算装置の演算設定部の例である。
【００９９】
演算設定画面の上部は、データ２０２の指定部である、本例は画像データであるのでＤ０からＤ１５まで１６色の色が指定できる構成である。
それぞれの色はＲ、Ｇ、Ｂそれぞれ各４ｂｉｔの１６階調を最小（ｍｉｎ）、最大（ｍａｘ）設定可能になっている。
本例のＤ０は赤っぽい色であり、緑っぽい色はＤ１である。
Ｄ７、Ｄ８、Ｄ９は人の肌の色の明暗を３段階にして指定したものである。
【０１００】
日常我々が記憶した情報は極めて曖昧なものである。
従って記憶した情報など曖昧な情報を扱う場合には以上のように必要最低限の構成とすることにより本発明を効果的に利用することができる。
例えば完全な赤はＲ（１５）×Ｇ（０）×Ｂ（０）、赤っぽい色はＲ（１０から１５）×Ｇ（０から５）×Ｂ（０から５）、完全な青はＲ（０）×Ｇ（０）×Ｂ（１５）、青っぽい色であればＲ（０から５）×Ｇ（０から５）×Ｂ（１０から１５）などの曖昧なデータ範囲指定を可能である。
言うまでもなく、その補数２０７は以上指定した色以外の色である
【０１０１】
演算設定画面の中部は、空間２０４の指定部である。本例は画像２次元データであるのでＳ０からＳ１５まで、x、y  それぞれ位置２０５ならびに領域２０６がユークリッド空間をＸＹ座標で指定可能な構成である。
【０１０２】
また空間２０４の位置２０５や領域２０６などについても曖昧であるので画像サイズもあまり高解像度にする必要もなくＱＶＧＡ（３２０×２４０）の画像サイズとしている。
【０１０３】
演算設定画面の下部は、演算式の指定部である。
本例では、演算設定画面の上部で指定したＤ０からＤ１５のデータ２０２と、演算設定画面の中部で指定したＳ０からＳ１５の空間２０４を選択して演算式に代入するとともに様々な演算子の設定する構成としたものである。
設定例１、設定例２で理解できるようにこのような構成にすることにより、任意のデータ２０２、任意の空間２０４、で任意の演算式２２０を実行することが可能になる。
【０１０４】
本装置のソフトウエアプログラムは演算の定義を明確に決定するだけで特別なアルゴリズムを組み込みそのメタデータを利用することなく、指定された演算を逐次処理するプログラムとしている。
【０１０５】
本願理論の検証をソフトウエアで実施した場合、画像サイズがＱＶＧＡの場合、一般的なノートパソコンによるソフト処理でも、多くの場合数百秒程度で実現できていることが確認できた。
ＶＧＡにした場合、理論的にはＱＶＧＡの４倍程度の時間で実現の見通しである。
ＰＣを並列処理することやＧＰＧＰＵにより１０ｍ秒程度まで高速化可能であろう、このスピードであれば動画でも利用できる。
【０１０６】
以上のような、集合演算の演算設定部（ＧＵＩ）を設けた演算装置があれば、特にソフトウエアの知識を必要とすることなく、画像の色についての一般常識と、簡単な座標の一般常識を持った中学程度の知識レベルの素人でも様々な画像を認識する演算式を組み込み意図した物体を検出することが可能になる。
以下にその実例を紹介する。
【実施例１】
【０１０７】
図１１−Ａは、データの補数演算よる、青のみの元の領域２０６、青で「満たされた空間」２１６を検証したものである。
カラーチャートがグレースケールになっているので確認しにくいが、カラーチャートを時計で表した場合、１０時付近の青っぽい色、５色が、図６−Ａで説明の領域２０６（本例の場合は１１×１１の領域  四角マークが表示されている部分）手法により正確に検出されていることが示されている。
【実施例２】
【０１０８】
図１１−Ｂは、画像の特定の空間に特定の色情報があるかどうかを検出したものである。
本例では、中央上部の特定領域内が、トラの象徴である、トラ色と黒色の二つの色で満たされているかどうかを判定したものである。
つまり、特定領域の中に、意図した色があれば、トラがいる、なければトラがいないなどの判断が容易になる。
もちろん、このような部分領域を、数か所設けることにより、トラの姿勢や大きさなどを判定することも可能になる。
【実施例３】
【０１０９】
図１１−Ｃは盛り付けされたハンバーグを部分的な色の特徴と領域的な色の特徴とその形状をもとにハンバーグを検出した画像例である。
【実施例４】
【０１１０】
図１１−Ｄはワイングラスに存在する赤ワインを部分的な色の特徴と領域的な色の特徴とその形状をもとにワインを検出した画像例である。
【実施例５】
【０１１１】
図１１−Ｅは、顔写真（マスクして関係する部分のみ表示）から、目の色や肌の部分的な色の特徴と領域的な色の特徴とその形状をもとに人の顏を検出した画像例である。
従来のＨａａｒのような積分画像メタデータとそのアルゴリズムを利用することなく直接的に顔を認識していることに注目されたい。
【実施例６】
【０１１２】
図１１−Ｆは、顔画像の目の色や肌の部分的な色の特徴と領域的な色の特徴と着ている上着の色をもとに意図した特定の人を検出した画像例である。
グレースケールで分かりにくいが、３人の人物の中から緑色の服を着た人のみが認識されている。
【０１１３】
本例では極めて単純なマッチングの例を示したに過ぎないが、単純に服の色や形状を組み合わせすることにより、簡単に物体の検出ができることに注目されたい。
【０１１４】
以上説明した通り、この技術は
（１）エッジ／輪郭／線成分
（２）領域
（３）テクスチャ
（４）パターン
以上（１）から（４）の検出をプログラムに依存することなく極めて単純な演算式の組み合わせのみで行うことができる。
【０１１５】
同様にこの技術は
（５）パターンマッチング法
（６）統計的識別法
（７）構造識別法
（８）機械学習法
少なくとも以上（５）から（８）に利用することが可能である。
【０１１６】
以上６つの実施例を示したが演算式を組むに当たり考慮すべきことは、認識率、誤認率である、目的とする画像、例えばハンバーグの場合、何枚かのハンバーグの画像を基に、色や、形状、エッジ、大きさなどの特徴の最大公約数的な演算式を作成し、全ての画像を認識できるようにチューニングする。
以上で求めた、演算式で、ハンバーグ以外で似た形状や色の物体、例えばコロッケや小豆のおはぎなどの画像で誤認識が無いようにチューニングする。
人間でもそうであるが認識に１００％はあり得ない、利用する目的に応じて演算式の完成度を考慮する。
【０１１７】
誤認識の程度を判定して演算式の完成度を高めるための自動化システムも実現可能である。
【０１１８】
また必ずしも１回の演算で物体を特定する必要もない、何回かの演算条件を与えて、その演算毎の出力の結果を基に総合的に判定するのが最も合理的である。
【０１１９】
本願発明人は、これまで説明の集合演算をハードウエアで実現するための研究を行い、データの演算は連想メモリ（ＣＡＭ）の概念を拡張すること、空間の演算はアドレスのスワップの概念を取り込むことで、データ並びに空間の演算を共に並列に実現する１次元情報の実用化システムを完成している。
技術の詳細については、特許第４５８８１１４号を参照のこと。
【０１２０】
その結果、この技術を画像に利用する場合、２次元メモリ型プロセッサがあればプロセッサ１個で、１回の集合演算を１マイクロ秒程度１０回の集合演算の繰り返しで１０マイクロ秒程度に短縮することができる確証を得ている、ソフトウエア処理に比較すると１０万倍程度高速である。
この高速なプロセッサ（メモリ型プロセッサ）を利用することが出来れば、様々な演算式を与えた結果を総合的に判断し、画像に含まれる様々な物体の局部を判定すればこれまでの技術に比較して飛躍的に精度のよい認識が可能になる。
【０１２１】
本発明ではデータと空間と一体にした元に特徴がある。
そして一体化することにより、データとデータの様々な空間を意識した演算が可能になることに着目したものであるものの図２で説明の通り従来のブール代数では、否定の考え方は１種類のみである。
本発明が生まれる前、反転もしくは否定（ＮＯＴ）の考えを当初演算子「〜」のみで考えていため折角元の構成を２つの情報に拡大したものの極めて単純なマッチング演算程度しか実現できなかった。
【０１２２】
この発明のヒントはハミルトンの四元数にある。
ハミルトンは複素数の面（二次元空間）の考えを立体空間（三次元空間）に拡張する考え方を試行錯誤し漸く辿り着いたのが三を超えた四元数である。
この四元数は美しい数学とも評価され立体空間の位置を極めて単純な演算式として表記して演算できるようになり３Ｄ画像処理分野に大きな恩恵を与えている。
【０１２３】
本願発明の考え方はハミルトンの考え方と直接関係するものではないが、メモリ型プロセッサの完成とこれらのシミュレーション装置により様々な演算の可能性を試すことにより、混沌とした元２０１の考え方を整理し、元２０１の構成をデータ及び空間の２つの情報に統合するとともに、データ及び空間それぞれ独立した反転の考え方と、元全体の反転、合計３つの反転で合計８種類の反転演算（広義のＮＯＴ演算）の仮定を行いその仮定が実際に利用できるかどうかを検証したものである。
【０１２４】
以上の結果、反転演算（広義のＮＯＴ演算）が従来の１種から３種に増えたことにより実現可能な反転演算の種類は４倍と大幅に増え様々な応用が可能になるとともに、エッジや領域、そして満ち足りた空間の概念は、元２０１のデータの補数演算なしではなし得ないものである。
【０１２５】
今考えれば以上のことは当たり前のことであるが従来の概念を超えることは途方もない試行錯誤とその実証が不可欠であり、本願発明はメモリ型プロセッサの完成とこれらのシミュレーション装置の開発のベースなしに実現することはできない。
【産業上の利用可能性】
【０１２６】
本願特許では画像処理を例にとって説明を行ったが、この技術はあらゆる情報処理分野と密接に関連している、幾つかの例を説明する。
１次元データの応用例として時系列データがある、株価の動向をあらよる手法で解析し、近未来の株価を高速でしかも精度よく予想することに利用できる。
２次元データの応用例として、台風などの豪雨が一か所に集中すると河川の氾濫やダム決壊などの災害を引き起こす結果になる。
画像データの代わりに、地域ごとの降水雨量データを入力し雨量の程度で領域判定すればどの地域に降水が集中して危険性があるのかなど一目瞭然である。
３次元空間とすればより高度な解析が可能になる。
この集合演算は、ＡＳＩＣやＦＰＧＡに容易に組み込むことが可能であり、ＣＰＵの苦手な高度な集合演算を補完する技術とそのプラットフォームになる。
【符号の説明】
【０１２７】
１００  集合
１０１  元
１０２  論理積（×）
１０３  論理和（＋）
１０４  論理否定（ＮＯＴ）
１１０  集合演算
２００  集合
２０１  元
２０２  データ
２０３  テーブル記号
２０４  空間
２０５  位置
２０６  領域
２０７  データの補数演算子「‘」
２０８  領域外演算子「“」
２０９  演算結果反転演算子「〜」
２１０  データの範囲
２１１  演算子
２１２  集合有演算子「＋」  
２１３  集合無演算子「−」  
２１４  集合積演算子「×」
２１５  集合演算実行演算子「＝」
２１６  満たされた空間
２１７  基準位置
２２０  （新しい）集合演算
【図１】
2017174053.tif 000003
【図２】
2017174053.tif 000004
【図３】
2017174053.tif 000005
【図４】
2017174053.tif 000006
【図５】
2017174053.tif 000007
【図６】
2017174053.tif 000008
【図７】
2017174053.tif 000009
【図８】
2017174053.tif 000010
【図９】
2017174053.tif 000011
【図１０】
2017174053.tif 000012
【図１１】
2017174053.tif 000013