(57)【要約】【課題】  ラベリング処理を高速で行う。【解決手段】  ２次元に配列された複数の画素を有する画像１をラベリング処理する際に、相互に隣接する４つの画素５を含む画素ブロック２を１つの単位として処理を行う。画素ブロック２の範囲では、画素５が隣接するので、必ず１つの仮ラベルあるいは真ラベルが付与される。このため、画素ブロック２に含まれる複数の画素５に仮ラベルを付したり、真ラベルを付したりする処理を並列に実行でき、ラベリング処理に要する時間を短縮できる。【選択図】        図１
2006085686.tif 000002
【特許請求の範囲】
【請求項１】
多次元に配列された複数の画素を有する画像をラベリング処理する過程を有し、このラベリング処理のための少なくともいずれかの工程では、相互に隣接する限られた複数の画素を含む画素ブロックを１つの単位として処理を行う、画像処理方法。
【請求項２】
請求項１において、前記画像は２次元または３次元に配列された画素を有し、前記画素ブロックは、それぞれ２×２の４つの画素または２×２×２の８つの画素で構成される、画像処理方法。
【請求項３】
請求項１において、前記ラベリング処理は、前記画像の連続要素を示すラベリング対象の画素群に仮ラベルを付す仮ラベリングステップを備えており、この仮ラベリングステップは、前記画素ブロックに隣接し、先行して当該仮ラベリングステップを経た画素により構成される隣接画素群に基づき、当該画素ブロックに含まれる、ラベリング対象の画素に共通の仮ラベルを付す第１のステップを備えている、画像処理方法。
【請求項４】
請求項３において、前記第１のステップは、前記隣接画素群から承継される仮ラベルの有無および条件を演算するステップと、前記画素ブロックの状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを前記共通の仮ラベルとして選択するステップとを備えている、画像処理方法。
【請求項５】
請求項４において、前記第１のステップでは、前記演算するステップと、前記選択するステップとをパイプライン方式で実行する、画像処理方法。
【請求項６】
請求項４において、前記仮ラベリングステップは、さらに、未承継の仮ラベルと前記共通の仮ラベルとの結合情報を記録するステップを備えている、画像処理方法。
【請求項７】
請求項６において、前記記録するステップでは、前記未承継の仮ラベルが複数あるときは、未記録の前記結合情報をキャッシュし、前記未承継の仮ラベルがないときに前記未記録の結合情報を記録する、画像処理方法。
【請求項８】
請求項６において、前記ラベリング処理は、異なる仮ラベルが付された画素群が結合している場合に同一の真ラベルを付す真ラベリングステップを備えており、この真ラベリングステップでは、前記画素ブロックの単位で、それに含まれる前記ラベリング対象の画素に共通の真ラベルを付す、画像処理方法。
【請求項９】
請求項６において、前記ラベリング処理は、結合している画素群の特徴を抽出する解析ステップを備えており、この解析ステップでは、前記画素ブロックの単位で前記特徴を解析する、画像処理方法。
【請求項１０】
２次元に配列された複数の画素を有する画像をラベリング処理する際に、２×２の４つの画素からなる画素ブロックと、その画素ブロックの隣り合う２辺に隣接する６つの画素からなる隣接画素群とを用い、前記隣接画素群のラベリング対象の画素に予め付された仮ラベルに基づき、前記画素ブロックに含まれるラベリング対象の画素に共通の仮ラベルを付す工程を有する画像処理方法。
【請求項１１】
多次元に配列された複数の画素を有する画像をラベリング処理する機能を有し、このラベリング処理のために実装される少なくともいずれかの回路構成は、相互に隣接する限られた複数の画素を含む画素ブロックを１つの単位とし、その画素ブロックを構成する複数の画素を並列に処理する回路構成を含む、画像処理装置。
【請求項１２】
請求項１１において、前記画像は２次元または３次元に配列された画素を有し、前記画素ブロックは、それぞれ２×２の４つの画素または２×２×２の８つの画素で構成される、画像処理装置。
【請求項１３】
請求項１１において、前記ラベリング処理は、前記画像の連続要素を示すラベリング対象の画素群に仮ラベルを付す仮ラベリングステップを備えており、この仮ラベリングステップを実行するための回路構成は、前記画素ブロックに隣接し、先行して当該仮ラベリングステップを経た画素により構成される隣接画素群に基づき、当該画素ブロックに含まれるラベリング対象の画素に共通の仮ラベルを付す第１の構成を備えている、画像処理装置。
【請求項１４】
請求項１３において、前記第１の構成は、前記隣接画素群から承継される仮ラベルの有無および条件を演算するための構成と、前記画素ブロックの状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを前記共通の仮ラベルとして選択するための構成とを備えている、画像処理装置。
【請求項１５】
請求項１４において、前記演算するための構成と、前記選択するための構成とがパイプライン方式で接続されている、画像処理装置。
【請求項１６】
請求項１４において、前記仮ラベリングステップを実行するための回路構成は、さらに、未承継の仮ラベルと前記共通の仮ラベルとの結合情報を記録するための構成を備えている、画像処理装置。
【請求項１７】
請求項１６において、前記記録するための構成では、前記未承継の仮ラベルが複数あるときは、未記録の前記結合情報をキャッシュし、前記未承継の仮ラベルがないときに前記未記録の結合情報を記録する、画像処理装置。
【請求項１８】
請求項１６において、前記ラベリング処理は、異なる仮ラベルが付された画素群が結合している場合に同一の真ラベルを付す真ラベリングステップを備えており、
この真ラベリングステップを実行するための回路構成は、前記画素ブロックの単位で、それに含まれる前記ラベリング対象の画素に共通の真ラベルを付す構成を備えている、画像処理装置。
【請求項１９】
請求項１６において、前記ラベリング処理は、結合している画素群の特徴を抽出する解析ステップを備えており、
この解析ステップを実行するための回路構成は、前記画素ブロックの単位で前記特徴を解析するための構成を備えている、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に含まれる画素の内、連結する画素群毎に異なるラベルを付けるラベリング処理に関するものである。
【背景技術】
【０００２】
２次元画像の画像処理の手法としてラベリング処理がある。このラベリング処理は、画像を構成する複数の画素の内、連結された部分を表示すると判断される画素の集合毎に同一の符号を付す処理である。ラベリング処理により画像上の領域を区分けすることによりその画像上の領域の１次または２次のモーメント、面積、周囲長、濃度、広がりなどの特徴量を求めることができる。
【０００３】
３次元画像においても同様の画像処理が可能であり、体積、重心、モーメントなどの種々の特徴量を求めることができる。これらの解析結果は、２次元画像あるいは３次元画像として取得された情報の解析に使われる。たとえば、自動装着を行う産業用のロボットなどにおいては、ラベリング処理された画像から取り付けられた部品の位置や傾きなどを判断することができる。また、３次元ＣＴスキャンにおいては、撮像された物体の基本的な特徴を処理するための前処理に用いられる。
【特許文献１】特開２００２−２３０５４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ラベリング処理においては、１つの画像に含まれる多量の画素に対して連結状態を判断する必要がある。２次元画像において、２次元方向に広がりのある連結された領域を２次元方向に検索することは膨大なメモリを必要とし、処理が重複する可能性が高いので通常非効率的である。したがって、１次元方向に上下左右の連結の有無を判断しながらサーチして仮ラベルを付し、仮ラベルの連結情報から真ラベルを付すという方法が採用される。ラベリング処理において処理時間が必要とされるのは仮ラベルを付す処理であり、画像の解像度が高くなり、１つの画像に含まれる画素数が増大すると仮ラベルを付すために要する時間も増大する。
【０００５】
特開２００２−２３０５４０号公報においては、斜め方向の画素ごとに、複数のプロセッシングエレメントにより並列に仮ラベルを付す処理を行うことを提案している。斜め方向の画素を並列に処理することにより、注目画素の連結の有無を判定するのに必要な隣接画素については注目画素よりも先にラベリング処理が行われるので、ＳＩＭＤ型のプロセッサの並列処理機能を有効に利用して処理速度を高められるとしている。しかしながら、２００ＤＰＩ程度の画像でも、斜め方向にスキャンしようとすると数１０００のＰＥを備えた一次元ＳＩＭＤ型プロセッサが必要となり、そのようなプロセッサを開発することは容易ではないし、経済的でもない。一方、１つの画像を提供可能なＳＩＭＤ型プロセッサに合わせて複数に分割して処理を行おうとすれば、分割画像間のラベリング情報を適切に管理したり、境界情報の受け渡しをしたりする処理が必要になり、実際の画像を高速で処理することは難しい。
【０００６】
そこで、本発明においては、簡易なハードウェアにより、ラベリング処理をより高速で実行することができる画像処理方法および装置を提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明の、多次元に配列された複数の画素を有する画像をラベリング処理する過程を有する画像処理方法では、このラベリング処理のための少なくともいずれかの工程において、相互に隣接する限られた複数の画素を含む画素ブロックを１つの単位として処理を行うことを特徴とする。ラベリング処理は、画像の連続要素を示す画素群に仮ラベルを付す仮ラベリングステップ、異なる仮ラベルが付された画素群が結合している場合に同一の真ラベルを付す真ラベリングステップ、結合している画素群の特徴を抽出する解析ステップなどを有するが、本発明においては、少なくともいずれかのステップにおいて、相互に隣接する限られた複数の画素を含む画素ブロックを１つの単位として、その画素ブロックに含まれる複数の画素を並列に処理する。
【０００８】
２次元画像であれば、相互に隣接する限られた画素を含む画素ブロックは、２×２の４つの画素により構成される。また、３次元画像であれば、画素ブロックは、２×２×２の８つの画素により構成される。この画素ブロックにおいては、画素ブロックに含まれる１つ画素は、画素ブロックに含まれる他の画素と隣接する。したがって、画素ブロックに含まれる画素の内、ラベリング対象である同値の、例えば、「１」あるいはオンの画素に対しては同じ値あるいは共通の仮ラベル、さらには、同じ値あるいは共通の真ラベルを付すことができる。「０」あるいはオフの画素をラベリングの対象にすることも可能である。
【０００９】
このため、本発明においては、画素ブロック内のラベリング対象の画素に対しては、個々に仮ラベルあるいは真ラベルを付す必要がなく、画素ブロック内に複数のラベリング対象の画素が含まれている場合は、それらの画素に共通の仮ラベルあるいは真ラベルを付すことができる。したがって、画素ブロック内の複数の画素を並列に処理することが可能となり、ラベリング処理を高速化できる。
【００１０】
また、本発明の画像処理方法を実行する画像処理装置は、画素ブロックを１つの単位として繰り返し処理を行うハードウェア資源を用いて処理を高速化できる。多次元に配列された複数の画素を有する画像をラベリング処理する機能を有する本発明の画像処理装置は、このラベリング処理のために実装される少なくともいずれかの回路構成が、相互に隣接する限られた複数の画素ブロックを１つの単位とし、その画素ブロックを構成する複数の画素を並列に処理する回路構成を含むものである。したがって、２次元画像であれば少なくとも２×２の４つの画素、３次元画像であれば少なくとも２×２×２の８つの画素を同時に処理するハードウェア資源を用いることにより、処理を大幅に高速化できる。このため、簡易な構成の画像処理装置により本発明の画像処理方法を実行できる。ハードウェア資源に余裕があれば、２次元画像を複数の画素ブロックを並列に処理することも可能である。
【００１１】
本発明のラベリング処理の仮ラベリングステップは、１つの画素ではなく、１つの画素ブロックに隣接し、先行して当該仮ラベリングステップを経た画素により構成される隣接画素群に基づき、当該画素ブロックに含まれるラベリング対象の画素に共通の仮ラベルを付す第１のステップを備える。２次元に配列された複数の画素を有する画像をラベリング処理する際は、２×２の４つの画素からなる画素ブロックと、その画素ブロックの隣り合う２辺に隣接する６つの画素からなる隣接画素群とを用い、隣接画素群のラベリング対象の画素に予め付された仮ラベルに基づき、画素ブロックに含まれるラベリング対象の画素に共通の仮ラベルを付す。さらに具体的には、２×２の画素ブロックを、画像の上から下、右から左にスキャンしながら仮ラベルを付す場合は、画素ブロックの左側の上下２画素と、画素ブロックの左上から右上までの４画素の合計６画素が隣接画素群を構成する。そして、これら隣接画素群に含まれる画素のオンオフの組み合わせ、および画素ブロックに含まれる画素のオンオフの組み合わせにより、画素ブロックに共通で付す仮ラベルを決定することができる。したがって、画素ブロックに共通で付す仮ラベルを決定するロジックのための組み合わせの数は限られるので、小規模な論理演算回路あるいはルックアップテーブルを用いることにより、１クロックあるいは数クロックという短い時間で２×２の４画素の仮ラベルを演算できる。
【００１２】
第１のステップは、隣接画素群から承継される仮ラベルの有無および条件を演算するステップと、画素ブロックの状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを共通の仮ラベルとして選択するステップとを備えていることが望ましい。演算するステップは、画素ブロックの読み込みと並列に、あるいは先行して実行でき、演算するステップと、選択するステップとをパイプライン方式で実行することにより、実質的に１クロックで画素ブロックに含まれる複数の画素に対して仮ラベルを付すことができる。
【００１３】
さらに、仮ラベリングステップは、未承継の仮ラベルと共通の仮ラベルとの結合情報を記録するステップを備えていることが望ましい。画素ブロックに隣接する隣接画素群は複数の仮ラベルを含む可能性がある。したがって、記録するステップでは、未承継の仮ラベルが複数あるときは、未記録の結合情報をキャッシュし、未承継の仮ラベルがないときに未記録の結合情報を記録することが望ましい。これにより、演算するステップと、選択するステップとのパイプラインを止めずに、記録するステップと並列に処理できる。
【００１４】
真ラベリングステップでは、画素ブロックの単位で、それに含まれるラベリング対象の画素に共通の真ラベルを付すことができる。したがって、画素ブロックに含まれる複数の画素を並列に処理できる、それと共に、結合情報へのアクセスも画素ブロックの単位で行うことによりメモリへのアクセス回数も削減できる。
【００１５】
解析ステップにおいても、画素ブロックの単位で特徴を解析することが望ましい。画素ブロックの単位では仮ラベルおよび真ラベルは１つであるので、ラベル値を比較することなく、画素ブロックに含まれる画素の組み合わせにより種々の特徴量に対して寄与する情報を導出できる。したがって、画素ブロック毎に得られた情報を、結合している画素ブロックで統計処理することにより、連続要素単位の特徴量を得ることができる。
【００１６】
この画像処理方法において、仮ラベリングステップと、結合していることを判断するステップと、解析ステップとはこの順番に実行される必要があるが、同一の画像に対して処理が重複するものではない。したがって、この画像処理方法を実行するための画像処理装置は、これらのステップを実行するための回路構成を予め全て備えていても良いし、再構成可能なハードウェアを用い、各々のステップを実行するための構成を順番に実現させても良い。仮ラベリングステップを実行するための回路構成は、画素ブロックに隣接し、先行して当該仮ラベリングステップを経た画素により構成される隣接画素群に基づき、当該画素ブロックに含まれる複数の画素に共通の仮ラベルを付す第１の構成を備えていることが望ましい。
【００１７】
この第１の構成の、隣接画素群から承継される仮ラベルの有無および条件を演算するための構成と、画素ブロックの状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを共通の仮ラベルとして選択するための構成とはパイプライン方式で接続されていることが望ましい。また、仮ラベリングステップを実行するための回路構成は、未承継の仮ラベルと共通の仮ラベルとの結合情報を記録するための構成を備えていることが望ましく、未承継の仮ラベルが複数あるときは、未記録の結合情報をキャッシュし、未承継の仮ラベルがないときに未記録の結合情報を記録するための構成を備えていることが望ましい。
【００１８】
真ラベリングステップを実行するための構成は、画素ブロックの単位で、それに含まれる画素に共通の真ラベルを付す構成を備えていることが望ましい。解析ステップを実行するための構成は、画素ブロックの単位で特徴を解析するための構成を備えていることが望ましい。
【発明の効果】
【００１９】
本発明は、２次元あるいは３次元などの多次元に配列された複数の画素を有する画像をラベリング処理する過程において複数の画素からなる画素ブロックを単位として処理を進める。例えば、２次元画像であれば、４画素により構成される画素ブロックを単位としてラベリング処理を行い、４画素同時に仮ラベルを付したり、４画素同時に真ラベルを付したり、画素群の特徴を４画素同時に解析することが可能である。したがって、様々な画像処理のベースとなるラベリング処理に要する処理時間を大幅に短縮することができる。
【発明を実施するための最良の形態】
【００２０】
図１に本発明のラベリング処理の基本的な概念を示してある。フレーム単位で出力（表示、印刷など）される２値化された２次元の画像（２値画像）１を例とすると、この画像１は、０（オフ）または１（オン）の値を持つ複数の画素５が２次元に配列されたものである。ラベリング処理では、これらの画素５を分析し、連続成分ごとに異なるラベルを付して画像１の自動分析を行ったり、画像１の連続成分をユーザに示してさらなる分析が行えるようにする。
【００２１】
本発明のラベリング処理においては、２次元に配列された画素５をラベリング処理する際に、画素５を１つ１つ独立して処理するのではなく、上下左右に隣接した４つの画素５を１つの単位（画素ブロック）２として並列に処理する。この画素ブロック２の範囲の画素５は、相互に隣接している。したがって、１つの画素ブロック２に含まれる複数の画素５のいずれかが１であれば、新たに論理演算する必要なく、それらの画素５は連続しており、必ず同じラベルが付される。このため、画素ブロック２を単位としてラベリング処理することにより、２×２の４つの画素５を並列処理するメリットと、それら４つの画素５の関係を論理演算する処理を省くことができるというメリットとを同時に得ることができる。
【００２２】
ラベリング処理において、画素ブロック２を単位としてスキャンする方向は、上下左右どちらでもかまわないが、本例においては、図１に示した画像１の左から右（Ｙ方向）をスキャン方向とし、上から下（Ｘ方向）をサブスキャン方向としてラベリング処理する例を説明する。したがって、１つの画素ブロック２の連結状態を判断する対象となる隣接画素群３は、画素ブロック２の上側および左側に隣接する６つの画素５により構成される。このため、本発明のラベリング処理は、図２（ａ）および（ｂ）に示すように、画素ブロック２に含まれる４つの画素ｄ（ｉ，ｊ）、ｄ（ｉ，ｊ＋１）、ｄ（ｉ＋１，ｊ）およびｄ（ｉ＋１，ｊ＋１）の仮ラベル値Ｌ（ｉ，ｊ）、Ｌ（ｉ，ｊ＋１）、Ｌ（ｉ＋１，ｊ）およびＬ（ｉ＋１，ｊ＋１）を並列処理により決定する際に、隣接画素群３に含まれる６つの画素ｄ（ｉ−１，ｊ−１）、ｄ（ｉ−１，ｊ）、ｄ（ｉ−１，ｊ＋１）、ｄ（ｉ−１，ｊ＋２）、ｄ（ｉ，ｊ−１）およびｄ（ｉ＋１，ｊ−１）の仮ラベル値Ｌ（ｉ−１，ｊ−１）、Ｌ（ｉ−１，ｊ）、Ｌ（ｉ−１，ｊ＋１）、Ｌ（ｉ−１，ｊ＋２）、Ｌ（ｉ，ｊ−１）およびＬ（ｉ＋１，ｊ−１）を参照する。そして、画像１の全体を画素ブロック２の単位でスキャンしながら、処理を繰り返す。したがって、以降では、説明を簡単にするために、画素ブロック２に含まれる画素５を上記の順番で画素ｇ１〜ｇ４として参照し、隣接画素群３に含まれる画素５を上記の順番で画素ｒ１〜ｒ６として参照することにする。
【００２３】
図３に、ラベリング処理１０の一例をフローチャートにより示してある。このラベリング処理１０は、画像の連続要素を示す画素群に仮ラベルを付す仮ラベリングステップ１１と、異なる仮ラベルが付された画素群が結合している場合に同一の真ラベルを付す真ラベリングステップ１２と、結合している画素群の特徴を抽出する解析ステップ１３とを有する。本例では、仮ラベルあるいは真ラベルとして数値を付す例を説明する。したがって、仮ラベルあるいは真ラベルは仮ラベル値あるいは真ラベル値と称する場合がある。
【００２４】
仮ラベリングステップ１１では、ステップ１４において、画素データファイル２９から処理対象のフレームの画像１の画素ブロック２の画素データを読み取る。ステップ１５において、画像１の画素ブロック２があれば、ステップ１６において、隣接画素群３から承継される仮ラベルの有無および条件を演算し、ステップ１７において、画素ブロック２の状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを共通の仮ラベルとして選択する。さらに、ステップ１８において、未承継の仮ラベルと共通の仮ラベルとの結合情報を記録する。ステップ１７においては、画素ブロック２の仮ラベルの情報を、仮ラベル値情報ファイル２７に画素ブロック単位で書き出し、同時に、後続の画素ブロック２に対して隣接画素群３に含まれる仮ラベルの情報は画素単位でバッファ２８に格納する。ステップ１８においては、仮ラベルの結合情報を結合情報ファイル２６に書き出す。
【００２５】
隣接画素群３の仮ラベルから承継状態を演算するステップ１６は、バッファリングされた仮ラベルを用いることにより、画素ブロック２を読み込むステップ１４と並列に、あるいは先行して実行できる。また、読み込まれた画素ブロック２に含まれるラベリング対象の画素（本例では、オンあるいは「１」の画素）に対して仮ラベルを付す一連のステップ１６および１７は、仮ラベル生成ステップ（第１のステップ）２１としてハードウェア化することにより、パイプライン方式で実行することができる。したがって、画素ブロック２に仮ラベルを付す処理を、実質的に１クロックで実行することが可能となる。また、結合情報を記録するステップ１８も隣接画素群３を用いて演算されるので仮ラベル生成ステップ２１に含めてハードウェア化することにより、ステップ１６および１７と並列に処理することができる。
【００２６】
図４に、隣接画素群３の仮ラベルと、画素ブロック２の画素の状態から、画素ブロック２の仮ラベルを承継し、または、新たに仮ラベルを生成する例を示している。図４では、画素ブロック２の左上の画素ｇ１の状態のみにより決まる仮ラベル生成の例を示している。図４（ａ）では、画素ブロック２の画素ｇ１が０である。したがって、画素ブロック２の画素ｇ１は、仮ラベルの生成に関与しない。しかしながら、他の画素ｇ２およびｇ３も０で右下の画素ｇ４のみが１であれば隣接画素群３の状態に関わらず、隣接画素群３の仮ラベルは承継されず、画素ｇ４には新しい仮ラベルが付される。
【００２７】
図４（ｂ）では、画素ブロック２の画素ｇ１が１で、隣接画素群３の画素ｒ１〜ｒ３、ｒ５およびｒ６が０である。したがって、画素ｇ１については承継する仮ラベルはなく、新しい仮ラベルが付与される状態となる。ただし、隣接画素群３の画素ｒ４と、画素ブロック２の画素ｇ２の状態によって、画素ブロック２としては隣接画素群３から仮ラベルを承継する可能性もある。
【００２８】
図４（ｃ）では、両図とも、画素ブロック２の画素ｇ１が１で、一方の図では、隣接画素群３の画素ｒ１および画素ｒ３に仮ラベルが付されている。なお、図中の隣接画素群３の「１」という表示は、画素２としては１であり、事前の仮ラベリング処理により、なんらかの仮ラベルが付されていることを示している。他方の図では、隣接画素群３の画素ｒ３および画素ｒ６に仮ラベルが付されている。隣接画素群３の仮ラベルが付された画素は連続しておらず、それらの仮ラベルは異なっている可能性がある。したがって、画素ｇ１については、承継すべき仮ラベルが複数になる可能性があり、いずれか一方の仮ラベルを承継し、他方の仮ラベルとの結合情報を出力する必要がある。ただし、画素ブロック２の他の画素、隣接画素群３の他の画素の状態によっては、画素ブロック２として承継すべき仮ラベルはさらにある可能性がある。
【００２９】
図４（ｄ）では、両図とも画素ブロック２の画素ｇ１が１で、一方の図では、隣接画素群３の画素ｒ１および画素ｒ２に仮ラベルが付されている。他方の図では、隣接画素群３の画素ｒ５に仮ラベルが付されている。したがって、画素ｇ１については、承継すべき仮ラベルが１つあり、その仮ラベルを承継する。ただし、画素ブロック２の他の画素、隣接画素群３の他の画素の状態によっては、画素ブロック２として承継すべき仮ラベルが複数になる可能性がある。
【００３０】
図５に、画素ブロック２の仮ラベルの生成に関わる画素ｇ１〜ｇ４の組み合わせと、それに対応する隣接画素群３の組み合わせとを示してある。組合せ１〜５は、隣接画素群３に付されている仮ラベルのいずれかを承継した仮ラベルが画素ブロック２に付されるケースを示している。この図５に示した隣接画素群３の状態の組み合わせは論理和であり、「１」で示された画素のいずれかに仮ラベルが付されていれば、その仮ラベルのいずれかを画素ブロック２の画素の状態により画素ブロック２の仮ラベルとして承継することを示している。例えば、組合せ１においては、隣接画素群３の画素ｄ（ｒ１）、ｄ（ｒ２）、ｄ（ｒ３）、ｄ（ｒ５）およびｄ（ｒ６）に対応して、仮ラベルＬ（ｒ１）、Ｌ（ｒ２）、Ｌ（ｒ３）、Ｌ（ｒ５）およびＬ（ｒ６）のいずれかが付されており、画素ブロック２の画素ｄ（ｇ１）が１であれば、仮ラベルＬ（ｒ１）、Ｌ（ｒ２）、Ｌ（ｒ３）、Ｌ（ｒ５）およびＬ（ｒ６）のいずれかを画素ブロック２の画素ｄ（ｇ１）、ｄ（ｇ２）、ｄ（ｇ３）およびｄ（ｇ４）の内、値が１の画素の仮ラベルとして承継することを示している。すなわち、図４（ａ）から（ｄ）に示した仮ラベルの承継を示している。
【００３１】
承継を演算するステップ１６においては、図５に示した隣接画素群３の組合せ１〜５が成立するか否かを論理演算により判断する。その際、画素ブロック２が承継可能な仮ラベルが複数存在するケースがある。基本的には、いずれの仮ラベルを承継しても良い。仮ラベルが付されていない画素、すなわち、０または１となる２値化画素データの０をオフとしたときに、値が０の画素の仮ラベルを「−１」にセットすることにより、２進数では、その画素に対しては最大値が割り付けられる。したがって、図５に示した隣接画素群３の組合せ１〜５の条件が成立しているか否かの判断は、組合せ１〜５の仮ラベルの値を比較して最小値が「−１」以外に見つかるか否かという判断に置き換えることが可能である。このため、以下において説明する仮ラベリング処理においては、承継可能な仮ラベルの最小値を画素ブロック２のオンの画素の仮ラベルとして生成し、その他の仮ラベルに対しては結合情報を出力する。
【００３２】
図５の表の最終行のニューラベルは、画素ブロック２に新しい仮ラベルが付されるケースを示している。画素ブロック２を所定の方向にスキャンしながら仮ラベルを付す仮ラベリングステップ１１においては、仮ラベルを付す画素ブロック２の座標は画素データを読み込む際に事前に判明しているので、その画素ブロック２に対応する隣接画素群３も判明している。したがって、図３に示したステップ１６において、隣接画素群３の仮ラベルを図５に示した組合せ１〜５に従って予め演算して幾つかの承継すべき仮ラベルを求めておき、ステップ１７において画素ブロック２の画素データの状態をルックアップテーブルにより判断し、求められた仮ラベルのいずれかあるいは新たな仮ラベルから選択することにより、画素ブロック２の仮ラベルを短時間で求めることができる。
【００３３】
本例のラベリング処理１０は、仮ラベリングステップ１１と、結合していることを判断する真ラベリングステップ１２と、解析ステップ１３とはこの順番に実行される必要があるが、同一の画像に対して処理が重複するものではない。したがって、再構成可能なハードウェアを用いてラベリング処理１０を実行することにより、少ないハードウェア資源によりラベリング処理１０を含めた画像処理を実行できる。図６に示した処理装置３０は、再構成可能なハードウェアの一例であり、動的に回路を再構成することができる領域を備えている。この処理装置３０は、ある程度の演算機能、例えばＡＬＵ、を備えたプロセッシングエレメント（以降においてはＥＸＥ）３２を接続して様々なデータパスを構成可能なマトリクス領域３１を備えている。複数のＥＸＥ３２を接続することにより構成されるデータパスを備えた回路は、複数のデータを並列に処理するに適しており、本例のラベリング処理１０に適したハードウェア資源である。さらに、処理装置３０は、マトリクス３１のＥＸＥ３２の接続を制御してデータパスを動的に構成するコントローラ３３と、データパスの構成情報を記録したＲＡＭ３４と、マトリクス３１の回路により処理されるデータを一時的に記録するバッファ３５を備えている。さらに、処理装置３０は、外部メモリ３６に対してデータを入出力するインターフェイスも備えている。
【００３４】
この処理装置３０のマトリクス３１のＥＸＥ３２の接続を、ラベリング処理１０の各々のステップを実行するための構成情報にしたがって順番に変更することにより、ラベリング処理を行うための処理装置として使用できる。したがって、図７に示すように、ラベリング処理１０を行う処理装置３０は、構成情報として、図３の仮ラベリングステップ１１を実行するための回路の構成情報５１と、図３の真ラベリングステップ１２を実行するための回路の構成情報５２と、図３の解析ステップ１３を実行するための回路の構成情報５３とを備えている。仮ラベリングステップ１１の構成情報５１は、隣接画素群３により、画素ブロック２に含まれる複数の画素に共通の仮ラベルを付す処理を並列に実行するための構成（第１の構成）５５を備えている。この仮ラベルを付す構成５５は、隣接画素群３から承継される仮ラベルの有無および条件を演算するための構成５６と、画素ブロック２の状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを共通の仮ラベルとして選択するための構成５７と、未承継の仮ラベルと共通の仮ラベルとの結合情報を記録するための構成５８を備えている。演算するための構成５６と、選択するための構成５７とはパイプライン方式で接続される情報を含んでいる。さらに、仮ラベリングステップ１１を実行するための構成情報５１は、画素データファイル２９から画素ブロック２の画素情報をロードするための回路を生成するための構成５４も備えている。
【００３５】
図８に、仮ラベリングステップ１１の構成情報５１により処理装置３０に実現される回路の概要を示してある。まず、マトリクス３１には、主メモリ３６の画素データ２９から画素ブロック２の画素データをロードするための構成６１が構成情報５４により実現あるいは実装され、ロードされた画素ブロック２の画素データは、コントローラ３３に供給される。コントローラ３３では、ルックアップテーブル（ＬＵＴ）方式で画素ブロック２の構成が解析され、マトリクス３１に実現される他の回路を制御するための信号６９が出力される。コントローラ３３のＬＵＴは、マトリクス３１にＲＡＭとして機能するエレメントが含まれている場合は、ＲＡＭエレメントにより構成することが可能である。マトリクス３１には、さらに、仮ラベルを付すための構成６２が構成情報５５により実現あるいは実装される。この仮ラベルを付すための構成６２は、バッファ３５に一時的にストアされた仮ラベルバッファ２８から隣接画素群３を構成する仮ラベルの情報をロードして比較演算するコンパレータと、コントローラ３３からの制御信号６９により演算された仮ラベルおよび新しく生成された仮ラベルから画素ブロック２に付す仮ラベルを選択するセレクタと、結合情報を選択して出力するための回路などを含む。
【００３６】
図９に、隣接画素群３の条件を演算するための構成５６によりマトリクス３１に実装される回路６６と、仮ラベルを選択するための構成５７によりマトリクス３１に実装される回路６７の概略を示してある。実際には、隣接画素群３の画素ｒ１〜ｒ４の仮ラベルは、一列先行する画素ブロック２に対して付された仮ラベルであるのに対し、隣接画素群３の画素ｒ５およびｒ６の仮ラベルは、直前に決定される画素ブロック２に対して付された仮ラベルであるので、異なった取り扱いが要求される。回路６６においては、図５に示した組合せ１〜５のうち、隣接画素群３の画素ｄ（ｒ１）〜ｄ（ｒ４）については３つの組合せで最小値を求めれば仮ラベルの承継の要否は判断できる。したがって、そのための回路を、コンパレータとしてセットされた複数のＥＸＥ３２を組み合わせて形成している。この回路６６における演算対象となる隣接画素群３の画素ｄ（ｒ１）〜ｄ（ｒ４）はすでに決まっているので、画素ブロック３の読み込みに対して同時にあるいは先行して回路６６の演算処理を実行することができる。
【００３７】
隣接画素群３の条件を演算する回路６６は、最小値を選択する構成の代わりに、セレクタで承継すべき仮ラベルを選択する構成とすることも可能である。この場合、コントローラ３３は、ＬＵＴで画素ブロック２の構成および隣接画素群３の構成を解析し、明示的にセレクタを制御して適切な仮ラベルを選択する。
【００３８】
回路６７は、回路６６において演算された仮ラベルの最小値のいずれかを画素ブロック２の状態をＬＵＴにより判断したコントローラ３３からの制御により選択し、画素ブロック２の画素ｄ（ｇ１）〜ｄ（ｇ４）の仮ラベルＬ（ｇ１）〜Ｌ（ｇ４）として出力する。また、承継する仮ラベルがないときにニューラベルを選択して仮ラベルＬ（ｇ１）〜Ｌ（ｇ４）として出力する。上述したように、隣接画素群３の仮ラベルＬ（ｒ５）およびＬ（ｒ６）は、直前のサイクルにより決定される仮ラベルなので、回路６７にフィードバックループを設け、コントローラ３３からの制御により画素ブロック２の状態により最小値を比較している。また、画素ｄ（ｇ１）〜ｄ（ｇ４）の各々に対してセレクタとして機能するようにセットされたＥＸＥ３２を配列し、画素がオンのときにのみ、上記の論理にて決定された仮ラベルを出力することによりラベリング対象の画素のデータとして仮ラベルを出力している。また、画素がオフでラベリング対象ではないときは「−１」を出力する処理をコントローラ３３の制御により並列に実行できるようにしている。
【００３９】
このように、本例の処理装置３０では、回路６７において、画素ブロック２に含まれる４つの画素に対して仮ラベルを付す処理（ラベリング非対象の画素には仮ラベルを付さない処理を含む）を並列に実行し、１サイクルあるいは１クロックで４つの画素に対応した仮ラベルを出力する処理を行う。また、隣接画素群３の組合せを判断する処理を回路６６において事前に行い、これも１サイクルあるいは１クロックで実行できる。したがって、回路６６と回路６７とをパイプラインで接続することにより、実質的に１クロックで４画素分の仮ラベルを付す処理を実行することができる。決定された仮ラベルＬ（ｇ１）〜Ｌ（ｇ４）は、仮ラベルファイル２７に出力される。また、次の列の画素ブロックの処理に必要な仮ラベルＬ（ｇ３）およびＬ（ｇ４）は仮ラベルバッファ２８に一時的に蓄積される。仮ラベル情報ファイル２８に対して仮ラベルを画素毎に出力する代わりに、画素ブロックを単位として、仮ラベルと画素ブロックの構成とに情報を圧縮して出力することも可能である。この場合、出力段の並列に稼動するエレメント（ＥＸＥ）は不用となり、さらに回路は簡素化される。
【００４０】
図１０に、結合情報を記録するステップ１８の処理の概念を示してある。画素ブロック２に承継可能な仮ラベルが複数あるときに、承継されなかった仮ラベルとの結合情報を出力する処理を、画素ブロック２に仮ラベルを付す処理が終了してから行うことも可能である。しかしながら、そのためにサイクルを消費すると、１クロックで画素ブロック２に仮ラベルを付す処理を、パイプラインを崩さずに連続して行うことができない。そこで、本例においては、隣接画素群３に含まれる仮ラベルから、結合情報として記録することになる承継する仮ラベルと未承継の仮ラベルとの組合せを生成する回路を設けることにより、１つの画素ブロック２に対して基本的に１サイクルで結合情報を記録できるようにしている。
【００４１】
最大３個の異なる値の仮ラベルが存在する可能性があるのは、隣接画素群３のＬ（ｒ１）、Ｌ（ｒ３）およびＬ（ｒ６）の組合せ、Ｌ（ｒ１）、Ｌ（ｒ４）およびＬ（ｒ６）の組合せ、Ｌ（ｒ２）、Ｌ（ｒ４）およびＬ（ｒ６）の組合せなどであり、１つの仮ラベルが承継されるので、承継された仮ラベルと未承継の仮ラベルの組合せの最大は２個になる。隣接画素群３の隣接している画素同士については、仮ラベルは同一になるか、前の段階で、すでに結合情報の抽出は済まされている。したがって、図１０に示すように、隣接画素群３を隣接した画素からなるＡ〜Ｃの３つのエリアに分けて、それらの仮ラベル同士の組合せを他の回路と並列に動作する回路により用意し、エリアＡ〜Ｃの３つの組み合わせから、画素ブロック２の仮ラベルとして選択された仮ラベルを含む２つの組み合わせを結合情報として出力する。
【００４２】
図１１に、未承継の仮ラベルと、画素ブロックに共通の仮ラベル、すなわち承継された仮ラベルとの結合情報を記録するための構成５８により、マトリクス３１に実現あるいは実装された回路６８を示してある。この回路６８においては、エリアＡ、ＢおよびＣに含まれる仮ラベルの３つの組合せをＥＸＥ３２により予め構成しておき、画素ブロック３の状態をコントローラ３３で判断し、それらのペアから結合情報に相当するものを選択して結合情報ファイル２６に出力する。画素ブロック２に付される仮ラベルは結合情報として記録する仮ラベルのペアの小さいほうになる。
【００４３】
上述したように、結合情報の最小は０であり、最大は２である。常に２つの仮ラベルのペアを結合情報として結合情報ファイル２６に格納するスケジュールにすると、結合情報が０または１のときに無駄な時間を消費する。バリアブルにすると、パイプラインを止めずに連続して処理を行うことができない。そこで、結合情報が２つあるときは、それらの一方を、ＥＸＥ３２を用いてキャッシュし、次のクロックあるいはサイクルで結合情報ファイルに格納するようにしている。結合情報が２つ発生した後の画素ブロックの処理において、承継される仮ラベルがあるときは、エリアＡとＢとの結合情報はすでに記録されているので、記録する結合情報はエリアＣに関する１組となる。一方、結合情報が２つ発生する前の画素ブロックは、ニューラベルが付与されるか、承継する仮ラベルが１つで結合情報が発生しないので、記録される結合情報はない。したがって、図１２に示すように、４つの画素を単位とするラベリング方法では、１段のキャッシュで結合情報を保持することにより、パイプラインを崩壊させることなく結合情報を記録することができる。
【００４４】
結合情報ファイル２６に記録された仮ラベルのペアの情報は、連結関係にある１または複数の仮ラベルのペアに対して同一の真ラベルを付与することにより、仮ラベルに対して真ラベルを付与するためのデータに変換することができる。例えば、仮ラベルをアドレスとし、それに対応する真ラベルをリードできる統合テーブル２３に変換することができる。結合情報ファイル２６から統合テーブル２３を生成するアルゴリズムは次のようになる。結合情報ファイル２６には、２つの仮ラベルの結合を示すエントリーが複数記録されている。また、統合テーブル２３は、仮ラベルをアドレスとしてアクセスすることにより、それに対応する真ラベルが得られるようになっている。結合情報ファイル２６のｎ番目のエントリーの仮ラベルが「ａ」および「ｂ」であるとすると、これら「ａ」および「ｂ」をそれぞれアドレスとして統合テーブル２３を参照し、「ａ」および「ｂ」に対応して得られた真ラベルの最小値をテンポラリな領域に一時記憶する。真ラベルが付されていないアドレスは「ｎｕｌｌ」となっており、「ａ」および「ｂ」が共に「ｎｕｌｌ」の場合は、新しい真ラベルがテンポラリな領域に格納される。統合テーブルのアドレス「ａ」および「ｂ」の真ラベルは、テンポラリな領域に格納された真ラベルに書き換えられる。さらに、結合情報ファイル２６のｎ＋１番目以降の全エントリーについて、「ａ」または「ｂ」と結合している仮ラベルが確認され、統合テーブル２３の、「ａ」または「ｂ」と結合している仮ラベルをアドレスとする真ラベルの値は、がテンポラリな領域に格納された真ラベルに書き換えられる。このような処理を、結合情報ファイル２６の全エントリーに対して行うことにより、結合関係にある仮ラベルに対して統一した真ラベルを割当てる統合テーブル２３が生成される。
【００４５】
真ラベリングステップ１２は、この統合テーブル２３を生成し、さらに、この統合テーブル２３と、仮ラベル情報を記録したファイル２７により、異なる仮ラベルが付された画素群が結合している場合に同一の真ラベルを付す処理を実行する。この真ラベリングステップ１２を実行するための回路をマトリク３１に構成するための構成情報５２を用意することにより、仮ラベリング処理を行った同一のハードウェア（処理装置）３０により、真ラベリング処理を行うことができる。
【００４６】
図１３に、仮ラベル情報ファイル２７と統合テーブル２３から、真ラベルが付された画素データファイル２５を生成する回路例を示してある。仮ラベル情報ファイル２７は、画素単位で仮ラベル情報を記録する代わりに、図１４に示すように、仮ラベル２７ａと画素ブロックの構成情報２７ｂおよび位置情報（Ｘ、Ｙ座標、ＩＤあるいは並び順など）２７ｃとを関連付して記録することが可能である。この場合、真ラベリング処理を行うための回路７２においては、画素ブロック２を構成する４つの画素を単位として、仮ラベル情報ファイル２７に対して一回アクセスすれば４つの画素の内のラベリング対象の画素に対して並列に真ラベルＬｔ（ｇ１）〜Ｌｔ（ｇ４）を付与し、出力する処理を実行することができる。このように、真ラベリング処理１２において、画素ブロック２を単位として処理を行うことにより、処理時間を大幅に短縮できる。
【００４７】
ラベリング処理１０に含まれる処理の１つである、結合している画素群の特徴を抽出する解析ステップ１３においても、画素ブロック２の単位で特徴を解析することにより処理時間を短縮できる。さらに、画素ブロック２を単位として解析する場合は、画素ブロック２の範囲でラベルが同一であれば良く、それが仮ラベルでも真ラベルでも差はない。したがって、図１４に示した仮ラベル情報２７の画素ブロック２の情報２７ｂおよび２７ｃから特徴を抽出し、統合テーブル２３により連結している仮ラベルからなる画素群として統計処理することにより、真ラベルが付された画素を処理したのと同じ結果を、さらに高速で得ることができる。すなわち、本例では統合テーブル２３により、真ラベルが共通し、結合関係にある仮ラベルが付された画素ブロック２の解析結果を統計処理することにより、結合している画素群の特徴を解析することができる。
【００４８】
図１５に示したロジック８１は解析ステップ１３の一例であり、Ｙ座標方向の最大値を求める回路を示している。以下に示す解析ステップ１３を実行するための回路は、マトリクス３１のＥＸＥ３２を適当な構成となるように連結することにより実現できる。Ｙ座標方向の最大値を求めるロジック８１は、真ラベルが共通する画素ブロック２の最大値テーブル８１ａの値および現在の画素ブロック２の最大値のいずれかを新しい最大値として最大値テーブル８１ａへ出力するものであり、連結している画素群のＹ方向の広がりを求めることができる。ロジック８１は、直前の画素ブロック２の解析結果もフィードバックしてメモリの入出力による遅れを防止している。以下のロジックにおいても同様である。Ｙ座標方向の最小値、Ｘ座標方向の最大及び最小値も同様のロジックで解析できる。
【００４９】
図１６に示したロジック８２は、面積情報を求める回路を示している。このロジック８２は、真ラベルが共通する画素ブロック２の画素数を足し算して面積テーブル８２ａに書き込むことにより、連結している画素群の面積を求めることができる。
【００５０】
図１７（ａ）および（ｂ）に示したロジック８３および８４は、Ｙ方向の重心を求める回路を示している。ロジック８３は、画素ブロック２の４つの画素の座標値の合計Ｙ−ＰＯＳをブロック内画素情報２７ｂにより選択し、真ラベルが共通する画素ブロック２の座標値の合計を足し算して座標値合計テーブル８３ａに書き込むことにより、連結している画素群の座標値の合計を求める。ロジック８４は、ロジック８３により座標値合計テーブル８３ａに記録された真ラベル毎の座標値合計を、ロジック８２により求められた真ラベル毎の面積で割ることにより、真ラベル毎にＹ方向の重心を求める。これらのロジック８１〜８４は解析ステップ１３における処理の一例であり、画素ブロック２を用いた解析処理はこれらに限定されるものではない。
【００５１】
以上の実施例では、２次元の２値化画像の解析に、２×２の４画素を１つの画素ブロックとして適用した例により本発明を説明しているが、本発明はこの実施例に限定されるものではない。例えば、２次元画像の解析であれば、４画素の範囲で仮ラベルが共通するので、ルックアップテーブルあるいはロジック回路の規模は大きくなるが、４画素の整数倍の画素を単位としてラベリング処理を並列に処理を進めることは可能である。また、２値化画像は必ずしもモノクロ画像に限定されず、カラー画像の各色成分を２値化した画像に対しても本発明を適用することができる。さらに、２次元画像に限らず、３次元画像に対しても本発明を提供することが可能であり、その場合は、先に説明したように、８画素が１つの画素ブロックを構成する。
【図面の簡単な説明】
【００５２】
【図１】図１は、画素ブロックの単位で画像をスキャンする様子を示す図である。
【図２】図２は、画素ブロックの構成と、隣接画素群の構成を拡大して示す図であり、図２（ａ）は画素の配列を示し、図２（ｂ）は仮ラベルの配列を示している。
【図３】ラベリング処理の概要を示すフローチャートである。
【図４】仮ラベルを選択する際の画素ブロックの構成と隣接画素群の構成との組合せの一例を示す図であり、図４（ａ）は仮ラベルを承継しない例を示し、図４（ｂ）はニューラベルを付す例を示し、図４（ｃ）は承継可能な仮ラベルが複数ある例を示し、図４（ｄ）は仮ラベルを承継する例を示している。
【図５】仮ラベルを選択する際の画素ブロックの構成と隣接画素群の構成の組合せを纏めて示すテーブルである。
【図６】ラベリング処理に適した処理装置の概略構成を示す図である。
【図７】再構成可能な処理装置においてラベリング処理を行うための構成情報を示す図である。
【図８】仮ラベリング処理に適した回路の概略構成を示す図である。
【図９】仮ラベルを承継する条件を演算する回路と、仮ラベルを選択する回路の概略構成を示す図である。
【図１０】結合情報を記録する処理を説明するために、画素ブロックおよび隣接画素群を示す図である。
【図１１】結合情報を記録する回路の概略構成を示す図である。
【図１２】結合情報をキャッシュしながら出力する様子を示す図である。
【図１３】真ラベリング処理を行う回路の概略構成を示す図である。
【図１４】仮ラベル情報ファイルの概略構成を示す図である。
【図１５】解析ステップの内、Ｙ方向の最大値を抽出する処理を行う回路の概略構成を示す図である。
【図１６】解析ステップの内、面積を求める処理を行う回路の概略構成を示す図である。
【図１７】解析ステップの内、重心を求める処理を行う回路の概略構成であり、図１７（ａ）は座標値合計を求めるロジックを示し、図１７（ｂ）は座標値合計と面積から重心を求めるロジックを示す。
【符号の説明】
【００５３】
２    画素ブロック、  ３    隣接画素群
１０    ラベリング処理
３０    画像処理装置
【図１】
2006085686.tif 000003
【図２】
2006085686.tif 000004
【図３】
2006085686.tif 000005
【図４】
2006085686.tif 000006
【図５】
2006085686.tif 000007
【図６】
2006085686.tif 000008
【図７】
2006085686.tif 000009
【図８】
2006085686.tif 000010
【図９】
2006085686.tif 000011
【図１０】
2006085686.tif 000012
【図１１】
2006085686.tif 000013
【図１２】
2006085686.tif 000014
【図１３】
2006085686.tif 000015
【図１４】
2006085686.tif 000016
【図１５】
2006085686.tif 000017
【図１６】
2006085686.tif 000018
【図１７】
2006085686.tif 000019