JP2006085686A - 画像処理方法および装置 - Google Patents
画像処理方法および装置 Download PDFInfo
- Publication number
- JP2006085686A JP2006085686A JP2005239011A JP2005239011A JP2006085686A JP 2006085686 A JP2006085686 A JP 2006085686A JP 2005239011 A JP2005239011 A JP 2005239011A JP 2005239011 A JP2005239011 A JP 2005239011A JP 2006085686 A JP2006085686 A JP 2006085686A
- Authority
- JP
- Japan
- Prior art keywords
- temporary
- pixels
- label
- labeling
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
【課題】 ラベリング処理を高速で行う。
【解決手段】 2次元に配列された複数の画素を有する画像1をラベリング処理する際に、相互に隣接する4つの画素5を含む画素ブロック2を1つの単位として処理を行う。画素ブロック2の範囲では、画素5が隣接するので、必ず1つの仮ラベルあるいは真ラベルが付与される。このため、画素ブロック2に含まれる複数の画素5に仮ラベルを付したり、真ラベルを付したりする処理を並列に実行でき、ラベリング処理に要する時間を短縮できる。
【選択図】 図1
【解決手段】 2次元に配列された複数の画素を有する画像1をラベリング処理する際に、相互に隣接する4つの画素5を含む画素ブロック2を1つの単位として処理を行う。画素ブロック2の範囲では、画素5が隣接するので、必ず1つの仮ラベルあるいは真ラベルが付与される。このため、画素ブロック2に含まれる複数の画素5に仮ラベルを付したり、真ラベルを付したりする処理を並列に実行でき、ラベリング処理に要する時間を短縮できる。
【選択図】 図1
Description
本発明は、画像に含まれる画素の内、連結する画素群毎に異なるラベルを付けるラベリング処理に関するものである。
2次元画像の画像処理の手法としてラベリング処理がある。このラベリング処理は、画像を構成する複数の画素の内、連結された部分を表示すると判断される画素の集合毎に同一の符号を付す処理である。ラベリング処理により画像上の領域を区分けすることによりその画像上の領域の1次または2次のモーメント、面積、周囲長、濃度、広がりなどの特徴量を求めることができる。
3次元画像においても同様の画像処理が可能であり、体積、重心、モーメントなどの種々の特徴量を求めることができる。これらの解析結果は、2次元画像あるいは3次元画像として取得された情報の解析に使われる。たとえば、自動装着を行う産業用のロボットなどにおいては、ラベリング処理された画像から取り付けられた部品の位置や傾きなどを判断することができる。また、3次元CTスキャンにおいては、撮像された物体の基本的な特徴を処理するための前処理に用いられる。
特開2002−230540号公報
ラベリング処理においては、1つの画像に含まれる多量の画素に対して連結状態を判断する必要がある。2次元画像において、2次元方向に広がりのある連結された領域を2次元方向に検索することは膨大なメモリを必要とし、処理が重複する可能性が高いので通常非効率的である。したがって、1次元方向に上下左右の連結の有無を判断しながらサーチして仮ラベルを付し、仮ラベルの連結情報から真ラベルを付すという方法が採用される。ラベリング処理において処理時間が必要とされるのは仮ラベルを付す処理であり、画像の解像度が高くなり、1つの画像に含まれる画素数が増大すると仮ラベルを付すために要する時間も増大する。
特開2002−230540号公報においては、斜め方向の画素ごとに、複数のプロセッシングエレメントにより並列に仮ラベルを付す処理を行うことを提案している。斜め方向の画素を並列に処理することにより、注目画素の連結の有無を判定するのに必要な隣接画素については注目画素よりも先にラベリング処理が行われるので、SIMD型のプロセッサの並列処理機能を有効に利用して処理速度を高められるとしている。しかしながら、200DPI程度の画像でも、斜め方向にスキャンしようとすると数1000のPEを備えた一次元SIMD型プロセッサが必要となり、そのようなプロセッサを開発することは容易ではないし、経済的でもない。一方、1つの画像を提供可能なSIMD型プロセッサに合わせて複数に分割して処理を行おうとすれば、分割画像間のラベリング情報を適切に管理したり、境界情報の受け渡しをしたりする処理が必要になり、実際の画像を高速で処理することは難しい。
そこで、本発明においては、簡易なハードウェアにより、ラベリング処理をより高速で実行することができる画像処理方法および装置を提供することを目的としている。
本発明の、多次元に配列された複数の画素を有する画像をラベリング処理する過程を有する画像処理方法では、このラベリング処理のための少なくともいずれかの工程において、相互に隣接する限られた複数の画素を含む画素ブロックを1つの単位として処理を行うことを特徴とする。ラベリング処理は、画像の連続要素を示す画素群に仮ラベルを付す仮ラベリングステップ、異なる仮ラベルが付された画素群が結合している場合に同一の真ラベルを付す真ラベリングステップ、結合している画素群の特徴を抽出する解析ステップなどを有するが、本発明においては、少なくともいずれかのステップにおいて、相互に隣接する限られた複数の画素を含む画素ブロックを1つの単位として、その画素ブロックに含まれる複数の画素を並列に処理する。
2次元画像であれば、相互に隣接する限られた画素を含む画素ブロックは、2×2の4つの画素により構成される。また、3次元画像であれば、画素ブロックは、2×2×2の8つの画素により構成される。この画素ブロックにおいては、画素ブロックに含まれる1つ画素は、画素ブロックに含まれる他の画素と隣接する。したがって、画素ブロックに含まれる画素の内、ラベリング対象である同値の、例えば、「1」あるいはオンの画素に対しては同じ値あるいは共通の仮ラベル、さらには、同じ値あるいは共通の真ラベルを付すことができる。「0」あるいはオフの画素をラベリングの対象にすることも可能である。
このため、本発明においては、画素ブロック内のラベリング対象の画素に対しては、個々に仮ラベルあるいは真ラベルを付す必要がなく、画素ブロック内に複数のラベリング対象の画素が含まれている場合は、それらの画素に共通の仮ラベルあるいは真ラベルを付すことができる。したがって、画素ブロック内の複数の画素を並列に処理することが可能となり、ラベリング処理を高速化できる。
また、本発明の画像処理方法を実行する画像処理装置は、画素ブロックを1つの単位として繰り返し処理を行うハードウェア資源を用いて処理を高速化できる。多次元に配列された複数の画素を有する画像をラベリング処理する機能を有する本発明の画像処理装置は、このラベリング処理のために実装される少なくともいずれかの回路構成が、相互に隣接する限られた複数の画素ブロックを1つの単位とし、その画素ブロックを構成する複数の画素を並列に処理する回路構成を含むものである。したがって、2次元画像であれば少なくとも2×2の4つの画素、3次元画像であれば少なくとも2×2×2の8つの画素を同時に処理するハードウェア資源を用いることにより、処理を大幅に高速化できる。このため、簡易な構成の画像処理装置により本発明の画像処理方法を実行できる。ハードウェア資源に余裕があれば、2次元画像を複数の画素ブロックを並列に処理することも可能である。
本発明のラベリング処理の仮ラベリングステップは、1つの画素ではなく、1つの画素ブロックに隣接し、先行して当該仮ラベリングステップを経た画素により構成される隣接画素群に基づき、当該画素ブロックに含まれるラベリング対象の画素に共通の仮ラベルを付す第1のステップを備える。2次元に配列された複数の画素を有する画像をラベリング処理する際は、2×2の4つの画素からなる画素ブロックと、その画素ブロックの隣り合う2辺に隣接する6つの画素からなる隣接画素群とを用い、隣接画素群のラベリング対象の画素に予め付された仮ラベルに基づき、画素ブロックに含まれるラベリング対象の画素に共通の仮ラベルを付す。さらに具体的には、2×2の画素ブロックを、画像の上から下、右から左にスキャンしながら仮ラベルを付す場合は、画素ブロックの左側の上下2画素と、画素ブロックの左上から右上までの4画素の合計6画素が隣接画素群を構成する。そして、これら隣接画素群に含まれる画素のオンオフの組み合わせ、および画素ブロックに含まれる画素のオンオフの組み合わせにより、画素ブロックに共通で付す仮ラベルを決定することができる。したがって、画素ブロックに共通で付す仮ラベルを決定するロジックのための組み合わせの数は限られるので、小規模な論理演算回路あるいはルックアップテーブルを用いることにより、1クロックあるいは数クロックという短い時間で2×2の4画素の仮ラベルを演算できる。
第1のステップは、隣接画素群から承継される仮ラベルの有無および条件を演算するステップと、画素ブロックの状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを共通の仮ラベルとして選択するステップとを備えていることが望ましい。演算するステップは、画素ブロックの読み込みと並列に、あるいは先行して実行でき、演算するステップと、選択するステップとをパイプライン方式で実行することにより、実質的に1クロックで画素ブロックに含まれる複数の画素に対して仮ラベルを付すことができる。
さらに、仮ラベリングステップは、未承継の仮ラベルと共通の仮ラベルとの結合情報を記録するステップを備えていることが望ましい。画素ブロックに隣接する隣接画素群は複数の仮ラベルを含む可能性がある。したがって、記録するステップでは、未承継の仮ラベルが複数あるときは、未記録の結合情報をキャッシュし、未承継の仮ラベルがないときに未記録の結合情報を記録することが望ましい。これにより、演算するステップと、選択するステップとのパイプラインを止めずに、記録するステップと並列に処理できる。
真ラベリングステップでは、画素ブロックの単位で、それに含まれるラベリング対象の画素に共通の真ラベルを付すことができる。したがって、画素ブロックに含まれる複数の画素を並列に処理できる、それと共に、結合情報へのアクセスも画素ブロックの単位で行うことによりメモリへのアクセス回数も削減できる。
解析ステップにおいても、画素ブロックの単位で特徴を解析することが望ましい。画素ブロックの単位では仮ラベルおよび真ラベルは1つであるので、ラベル値を比較することなく、画素ブロックに含まれる画素の組み合わせにより種々の特徴量に対して寄与する情報を導出できる。したがって、画素ブロック毎に得られた情報を、結合している画素ブロックで統計処理することにより、連続要素単位の特徴量を得ることができる。
この画像処理方法において、仮ラベリングステップと、結合していることを判断するステップと、解析ステップとはこの順番に実行される必要があるが、同一の画像に対して処理が重複するものではない。したがって、この画像処理方法を実行するための画像処理装置は、これらのステップを実行するための回路構成を予め全て備えていても良いし、再構成可能なハードウェアを用い、各々のステップを実行するための構成を順番に実現させても良い。仮ラベリングステップを実行するための回路構成は、画素ブロックに隣接し、先行して当該仮ラベリングステップを経た画素により構成される隣接画素群に基づき、当該画素ブロックに含まれる複数の画素に共通の仮ラベルを付す第1の構成を備えていることが望ましい。
この第1の構成の、隣接画素群から承継される仮ラベルの有無および条件を演算するための構成と、画素ブロックの状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを共通の仮ラベルとして選択するための構成とはパイプライン方式で接続されていることが望ましい。また、仮ラベリングステップを実行するための回路構成は、未承継の仮ラベルと共通の仮ラベルとの結合情報を記録するための構成を備えていることが望ましく、未承継の仮ラベルが複数あるときは、未記録の結合情報をキャッシュし、未承継の仮ラベルがないときに未記録の結合情報を記録するための構成を備えていることが望ましい。
真ラベリングステップを実行するための構成は、画素ブロックの単位で、それに含まれる画素に共通の真ラベルを付す構成を備えていることが望ましい。解析ステップを実行するための構成は、画素ブロックの単位で特徴を解析するための構成を備えていることが望ましい。
本発明は、2次元あるいは3次元などの多次元に配列された複数の画素を有する画像をラベリング処理する過程において複数の画素からなる画素ブロックを単位として処理を進める。例えば、2次元画像であれば、4画素により構成される画素ブロックを単位としてラベリング処理を行い、4画素同時に仮ラベルを付したり、4画素同時に真ラベルを付したり、画素群の特徴を4画素同時に解析することが可能である。したがって、様々な画像処理のベースとなるラベリング処理に要する処理時間を大幅に短縮することができる。
図1に本発明のラベリング処理の基本的な概念を示してある。フレーム単位で出力(表示、印刷など)される2値化された2次元の画像(2値画像)1を例とすると、この画像1は、0(オフ)または1(オン)の値を持つ複数の画素5が2次元に配列されたものである。ラベリング処理では、これらの画素5を分析し、連続成分ごとに異なるラベルを付して画像1の自動分析を行ったり、画像1の連続成分をユーザに示してさらなる分析が行えるようにする。
本発明のラベリング処理においては、2次元に配列された画素5をラベリング処理する際に、画素5を1つ1つ独立して処理するのではなく、上下左右に隣接した4つの画素5を1つの単位(画素ブロック)2として並列に処理する。この画素ブロック2の範囲の画素5は、相互に隣接している。したがって、1つの画素ブロック2に含まれる複数の画素5のいずれかが1であれば、新たに論理演算する必要なく、それらの画素5は連続しており、必ず同じラベルが付される。このため、画素ブロック2を単位としてラベリング処理することにより、2×2の4つの画素5を並列処理するメリットと、それら4つの画素5の関係を論理演算する処理を省くことができるというメリットとを同時に得ることができる。
ラベリング処理において、画素ブロック2を単位としてスキャンする方向は、上下左右どちらでもかまわないが、本例においては、図1に示した画像1の左から右(Y方向)をスキャン方向とし、上から下(X方向)をサブスキャン方向としてラベリング処理する例を説明する。したがって、1つの画素ブロック2の連結状態を判断する対象となる隣接画素群3は、画素ブロック2の上側および左側に隣接する6つの画素5により構成される。このため、本発明のラベリング処理は、図2(a)および(b)に示すように、画素ブロック2に含まれる4つの画素d(i,j)、d(i,j+1)、d(i+1,j)およびd(i+1,j+1)の仮ラベル値L(i,j)、L(i,j+1)、L(i+1,j)およびL(i+1,j+1)を並列処理により決定する際に、隣接画素群3に含まれる6つの画素d(i−1,j−1)、d(i−1,j)、d(i−1,j+1)、d(i−1,j+2)、d(i,j−1)およびd(i+1,j−1)の仮ラベル値L(i−1,j−1)、L(i−1,j)、L(i−1,j+1)、L(i−1,j+2)、L(i,j−1)およびL(i+1,j−1)を参照する。そして、画像1の全体を画素ブロック2の単位でスキャンしながら、処理を繰り返す。したがって、以降では、説明を簡単にするために、画素ブロック2に含まれる画素5を上記の順番で画素g1〜g4として参照し、隣接画素群3に含まれる画素5を上記の順番で画素r1〜r6として参照することにする。
図3に、ラベリング処理10の一例をフローチャートにより示してある。このラベリング処理10は、画像の連続要素を示す画素群に仮ラベルを付す仮ラベリングステップ11と、異なる仮ラベルが付された画素群が結合している場合に同一の真ラベルを付す真ラベリングステップ12と、結合している画素群の特徴を抽出する解析ステップ13とを有する。本例では、仮ラベルあるいは真ラベルとして数値を付す例を説明する。したがって、仮ラベルあるいは真ラベルは仮ラベル値あるいは真ラベル値と称する場合がある。
仮ラベリングステップ11では、ステップ14において、画素データファイル29から処理対象のフレームの画像1の画素ブロック2の画素データを読み取る。ステップ15において、画像1の画素ブロック2があれば、ステップ16において、隣接画素群3から承継される仮ラベルの有無および条件を演算し、ステップ17において、画素ブロック2の状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを共通の仮ラベルとして選択する。さらに、ステップ18において、未承継の仮ラベルと共通の仮ラベルとの結合情報を記録する。ステップ17においては、画素ブロック2の仮ラベルの情報を、仮ラベル値情報ファイル27に画素ブロック単位で書き出し、同時に、後続の画素ブロック2に対して隣接画素群3に含まれる仮ラベルの情報は画素単位でバッファ28に格納する。ステップ18においては、仮ラベルの結合情報を結合情報ファイル26に書き出す。
隣接画素群3の仮ラベルから承継状態を演算するステップ16は、バッファリングされた仮ラベルを用いることにより、画素ブロック2を読み込むステップ14と並列に、あるいは先行して実行できる。また、読み込まれた画素ブロック2に含まれるラベリング対象の画素(本例では、オンあるいは「1」の画素)に対して仮ラベルを付す一連のステップ16および17は、仮ラベル生成ステップ(第1のステップ)21としてハードウェア化することにより、パイプライン方式で実行することができる。したがって、画素ブロック2に仮ラベルを付す処理を、実質的に1クロックで実行することが可能となる。また、結合情報を記録するステップ18も隣接画素群3を用いて演算されるので仮ラベル生成ステップ21に含めてハードウェア化することにより、ステップ16および17と並列に処理することができる。
図4に、隣接画素群3の仮ラベルと、画素ブロック2の画素の状態から、画素ブロック2の仮ラベルを承継し、または、新たに仮ラベルを生成する例を示している。図4では、画素ブロック2の左上の画素g1の状態のみにより決まる仮ラベル生成の例を示している。図4(a)では、画素ブロック2の画素g1が0である。したがって、画素ブロック2の画素g1は、仮ラベルの生成に関与しない。しかしながら、他の画素g2およびg3も0で右下の画素g4のみが1であれば隣接画素群3の状態に関わらず、隣接画素群3の仮ラベルは承継されず、画素g4には新しい仮ラベルが付される。
図4(b)では、画素ブロック2の画素g1が1で、隣接画素群3の画素r1〜r3、r5およびr6が0である。したがって、画素g1については承継する仮ラベルはなく、新しい仮ラベルが付与される状態となる。ただし、隣接画素群3の画素r4と、画素ブロック2の画素g2の状態によって、画素ブロック2としては隣接画素群3から仮ラベルを承継する可能性もある。
図4(c)では、両図とも、画素ブロック2の画素g1が1で、一方の図では、隣接画素群3の画素r1および画素r3に仮ラベルが付されている。なお、図中の隣接画素群3の「1」という表示は、画素2としては1であり、事前の仮ラベリング処理により、なんらかの仮ラベルが付されていることを示している。他方の図では、隣接画素群3の画素r3および画素r6に仮ラベルが付されている。隣接画素群3の仮ラベルが付された画素は連続しておらず、それらの仮ラベルは異なっている可能性がある。したがって、画素g1については、承継すべき仮ラベルが複数になる可能性があり、いずれか一方の仮ラベルを承継し、他方の仮ラベルとの結合情報を出力する必要がある。ただし、画素ブロック2の他の画素、隣接画素群3の他の画素の状態によっては、画素ブロック2として承継すべき仮ラベルはさらにある可能性がある。
図4(d)では、両図とも画素ブロック2の画素g1が1で、一方の図では、隣接画素群3の画素r1および画素r2に仮ラベルが付されている。他方の図では、隣接画素群3の画素r5に仮ラベルが付されている。したがって、画素g1については、承継すべき仮ラベルが1つあり、その仮ラベルを承継する。ただし、画素ブロック2の他の画素、隣接画素群3の他の画素の状態によっては、画素ブロック2として承継すべき仮ラベルが複数になる可能性がある。
図5に、画素ブロック2の仮ラベルの生成に関わる画素g1〜g4の組み合わせと、それに対応する隣接画素群3の組み合わせとを示してある。組合せ1〜5は、隣接画素群3に付されている仮ラベルのいずれかを承継した仮ラベルが画素ブロック2に付されるケースを示している。この図5に示した隣接画素群3の状態の組み合わせは論理和であり、「1」で示された画素のいずれかに仮ラベルが付されていれば、その仮ラベルのいずれかを画素ブロック2の画素の状態により画素ブロック2の仮ラベルとして承継することを示している。例えば、組合せ1においては、隣接画素群3の画素d(r1)、d(r2)、d(r3)、d(r5)およびd(r6)に対応して、仮ラベルL(r1)、L(r2)、L(r3)、L(r5)およびL(r6)のいずれかが付されており、画素ブロック2の画素d(g1)が1であれば、仮ラベルL(r1)、L(r2)、L(r3)、L(r5)およびL(r6)のいずれかを画素ブロック2の画素d(g1)、d(g2)、d(g3)およびd(g4)の内、値が1の画素の仮ラベルとして承継することを示している。すなわち、図4(a)から(d)に示した仮ラベルの承継を示している。
承継を演算するステップ16においては、図5に示した隣接画素群3の組合せ1〜5が成立するか否かを論理演算により判断する。その際、画素ブロック2が承継可能な仮ラベルが複数存在するケースがある。基本的には、いずれの仮ラベルを承継しても良い。仮ラベルが付されていない画素、すなわち、0または1となる2値化画素データの0をオフとしたときに、値が0の画素の仮ラベルを「−1」にセットすることにより、2進数では、その画素に対しては最大値が割り付けられる。したがって、図5に示した隣接画素群3の組合せ1〜5の条件が成立しているか否かの判断は、組合せ1〜5の仮ラベルの値を比較して最小値が「−1」以外に見つかるか否かという判断に置き換えることが可能である。このため、以下において説明する仮ラベリング処理においては、承継可能な仮ラベルの最小値を画素ブロック2のオンの画素の仮ラベルとして生成し、その他の仮ラベルに対しては結合情報を出力する。
図5の表の最終行のニューラベルは、画素ブロック2に新しい仮ラベルが付されるケースを示している。画素ブロック2を所定の方向にスキャンしながら仮ラベルを付す仮ラベリングステップ11においては、仮ラベルを付す画素ブロック2の座標は画素データを読み込む際に事前に判明しているので、その画素ブロック2に対応する隣接画素群3も判明している。したがって、図3に示したステップ16において、隣接画素群3の仮ラベルを図5に示した組合せ1〜5に従って予め演算して幾つかの承継すべき仮ラベルを求めておき、ステップ17において画素ブロック2の画素データの状態をルックアップテーブルにより判断し、求められた仮ラベルのいずれかあるいは新たな仮ラベルから選択することにより、画素ブロック2の仮ラベルを短時間で求めることができる。
本例のラベリング処理10は、仮ラベリングステップ11と、結合していることを判断する真ラベリングステップ12と、解析ステップ13とはこの順番に実行される必要があるが、同一の画像に対して処理が重複するものではない。したがって、再構成可能なハードウェアを用いてラベリング処理10を実行することにより、少ないハードウェア資源によりラベリング処理10を含めた画像処理を実行できる。図6に示した処理装置30は、再構成可能なハードウェアの一例であり、動的に回路を再構成することができる領域を備えている。この処理装置30は、ある程度の演算機能、例えばALU、を備えたプロセッシングエレメント(以降においてはEXE)32を接続して様々なデータパスを構成可能なマトリクス領域31を備えている。複数のEXE32を接続することにより構成されるデータパスを備えた回路は、複数のデータを並列に処理するに適しており、本例のラベリング処理10に適したハードウェア資源である。さらに、処理装置30は、マトリクス31のEXE32の接続を制御してデータパスを動的に構成するコントローラ33と、データパスの構成情報を記録したRAM34と、マトリクス31の回路により処理されるデータを一時的に記録するバッファ35を備えている。さらに、処理装置30は、外部メモリ36に対してデータを入出力するインターフェイスも備えている。
この処理装置30のマトリクス31のEXE32の接続を、ラベリング処理10の各々のステップを実行するための構成情報にしたがって順番に変更することにより、ラベリング処理を行うための処理装置として使用できる。したがって、図7に示すように、ラベリング処理10を行う処理装置30は、構成情報として、図3の仮ラベリングステップ11を実行するための回路の構成情報51と、図3の真ラベリングステップ12を実行するための回路の構成情報52と、図3の解析ステップ13を実行するための回路の構成情報53とを備えている。仮ラベリングステップ11の構成情報51は、隣接画素群3により、画素ブロック2に含まれる複数の画素に共通の仮ラベルを付す処理を並列に実行するための構成(第1の構成)55を備えている。この仮ラベルを付す構成55は、隣接画素群3から承継される仮ラベルの有無および条件を演算するための構成56と、画素ブロック2の状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを共通の仮ラベルとして選択するための構成57と、未承継の仮ラベルと共通の仮ラベルとの結合情報を記録するための構成58を備えている。演算するための構成56と、選択するための構成57とはパイプライン方式で接続される情報を含んでいる。さらに、仮ラベリングステップ11を実行するための構成情報51は、画素データファイル29から画素ブロック2の画素情報をロードするための回路を生成するための構成54も備えている。
図8に、仮ラベリングステップ11の構成情報51により処理装置30に実現される回路の概要を示してある。まず、マトリクス31には、主メモリ36の画素データ29から画素ブロック2の画素データをロードするための構成61が構成情報54により実現あるいは実装され、ロードされた画素ブロック2の画素データは、コントローラ33に供給される。コントローラ33では、ルックアップテーブル(LUT)方式で画素ブロック2の構成が解析され、マトリクス31に実現される他の回路を制御するための信号69が出力される。コントローラ33のLUTは、マトリクス31にRAMとして機能するエレメントが含まれている場合は、RAMエレメントにより構成することが可能である。マトリクス31には、さらに、仮ラベルを付すための構成62が構成情報55により実現あるいは実装される。この仮ラベルを付すための構成62は、バッファ35に一時的にストアされた仮ラベルバッファ28から隣接画素群3を構成する仮ラベルの情報をロードして比較演算するコンパレータと、コントローラ33からの制御信号69により演算された仮ラベルおよび新しく生成された仮ラベルから画素ブロック2に付す仮ラベルを選択するセレクタと、結合情報を選択して出力するための回路などを含む。
図9に、隣接画素群3の条件を演算するための構成56によりマトリクス31に実装される回路66と、仮ラベルを選択するための構成57によりマトリクス31に実装される回路67の概略を示してある。実際には、隣接画素群3の画素r1〜r4の仮ラベルは、一列先行する画素ブロック2に対して付された仮ラベルであるのに対し、隣接画素群3の画素r5およびr6の仮ラベルは、直前に決定される画素ブロック2に対して付された仮ラベルであるので、異なった取り扱いが要求される。回路66においては、図5に示した組合せ1〜5のうち、隣接画素群3の画素d(r1)〜d(r4)については3つの組合せで最小値を求めれば仮ラベルの承継の要否は判断できる。したがって、そのための回路を、コンパレータとしてセットされた複数のEXE32を組み合わせて形成している。この回路66における演算対象となる隣接画素群3の画素d(r1)〜d(r4)はすでに決まっているので、画素ブロック3の読み込みに対して同時にあるいは先行して回路66の演算処理を実行することができる。
隣接画素群3の条件を演算する回路66は、最小値を選択する構成の代わりに、セレクタで承継すべき仮ラベルを選択する構成とすることも可能である。この場合、コントローラ33は、LUTで画素ブロック2の構成および隣接画素群3の構成を解析し、明示的にセレクタを制御して適切な仮ラベルを選択する。
回路67は、回路66において演算された仮ラベルの最小値のいずれかを画素ブロック2の状態をLUTにより判断したコントローラ33からの制御により選択し、画素ブロック2の画素d(g1)〜d(g4)の仮ラベルL(g1)〜L(g4)として出力する。また、承継する仮ラベルがないときにニューラベルを選択して仮ラベルL(g1)〜L(g4)として出力する。上述したように、隣接画素群3の仮ラベルL(r5)およびL(r6)は、直前のサイクルにより決定される仮ラベルなので、回路67にフィードバックループを設け、コントローラ33からの制御により画素ブロック2の状態により最小値を比較している。また、画素d(g1)〜d(g4)の各々に対してセレクタとして機能するようにセットされたEXE32を配列し、画素がオンのときにのみ、上記の論理にて決定された仮ラベルを出力することによりラベリング対象の画素のデータとして仮ラベルを出力している。また、画素がオフでラベリング対象ではないときは「−1」を出力する処理をコントローラ33の制御により並列に実行できるようにしている。
このように、本例の処理装置30では、回路67において、画素ブロック2に含まれる4つの画素に対して仮ラベルを付す処理(ラベリング非対象の画素には仮ラベルを付さない処理を含む)を並列に実行し、1サイクルあるいは1クロックで4つの画素に対応した仮ラベルを出力する処理を行う。また、隣接画素群3の組合せを判断する処理を回路66において事前に行い、これも1サイクルあるいは1クロックで実行できる。したがって、回路66と回路67とをパイプラインで接続することにより、実質的に1クロックで4画素分の仮ラベルを付す処理を実行することができる。決定された仮ラベルL(g1)〜L(g4)は、仮ラベルファイル27に出力される。また、次の列の画素ブロックの処理に必要な仮ラベルL(g3)およびL(g4)は仮ラベルバッファ28に一時的に蓄積される。仮ラベル情報ファイル28に対して仮ラベルを画素毎に出力する代わりに、画素ブロックを単位として、仮ラベルと画素ブロックの構成とに情報を圧縮して出力することも可能である。この場合、出力段の並列に稼動するエレメント(EXE)は不用となり、さらに回路は簡素化される。
図10に、結合情報を記録するステップ18の処理の概念を示してある。画素ブロック2に承継可能な仮ラベルが複数あるときに、承継されなかった仮ラベルとの結合情報を出力する処理を、画素ブロック2に仮ラベルを付す処理が終了してから行うことも可能である。しかしながら、そのためにサイクルを消費すると、1クロックで画素ブロック2に仮ラベルを付す処理を、パイプラインを崩さずに連続して行うことができない。そこで、本例においては、隣接画素群3に含まれる仮ラベルから、結合情報として記録することになる承継する仮ラベルと未承継の仮ラベルとの組合せを生成する回路を設けることにより、1つの画素ブロック2に対して基本的に1サイクルで結合情報を記録できるようにしている。
最大3個の異なる値の仮ラベルが存在する可能性があるのは、隣接画素群3のL(r1)、L(r3)およびL(r6)の組合せ、L(r1)、L(r4)およびL(r6)の組合せ、L(r2)、L(r4)およびL(r6)の組合せなどであり、1つの仮ラベルが承継されるので、承継された仮ラベルと未承継の仮ラベルの組合せの最大は2個になる。隣接画素群3の隣接している画素同士については、仮ラベルは同一になるか、前の段階で、すでに結合情報の抽出は済まされている。したがって、図10に示すように、隣接画素群3を隣接した画素からなるA〜Cの3つのエリアに分けて、それらの仮ラベル同士の組合せを他の回路と並列に動作する回路により用意し、エリアA〜Cの3つの組み合わせから、画素ブロック2の仮ラベルとして選択された仮ラベルを含む2つの組み合わせを結合情報として出力する。
図11に、未承継の仮ラベルと、画素ブロックに共通の仮ラベル、すなわち承継された仮ラベルとの結合情報を記録するための構成58により、マトリクス31に実現あるいは実装された回路68を示してある。この回路68においては、エリアA、BおよびCに含まれる仮ラベルの3つの組合せをEXE32により予め構成しておき、画素ブロック3の状態をコントローラ33で判断し、それらのペアから結合情報に相当するものを選択して結合情報ファイル26に出力する。画素ブロック2に付される仮ラベルは結合情報として記録する仮ラベルのペアの小さいほうになる。
上述したように、結合情報の最小は0であり、最大は2である。常に2つの仮ラベルのペアを結合情報として結合情報ファイル26に格納するスケジュールにすると、結合情報が0または1のときに無駄な時間を消費する。バリアブルにすると、パイプラインを止めずに連続して処理を行うことができない。そこで、結合情報が2つあるときは、それらの一方を、EXE32を用いてキャッシュし、次のクロックあるいはサイクルで結合情報ファイルに格納するようにしている。結合情報が2つ発生した後の画素ブロックの処理において、承継される仮ラベルがあるときは、エリアAとBとの結合情報はすでに記録されているので、記録する結合情報はエリアCに関する1組となる。一方、結合情報が2つ発生する前の画素ブロックは、ニューラベルが付与されるか、承継する仮ラベルが1つで結合情報が発生しないので、記録される結合情報はない。したがって、図12に示すように、4つの画素を単位とするラベリング方法では、1段のキャッシュで結合情報を保持することにより、パイプラインを崩壊させることなく結合情報を記録することができる。
結合情報ファイル26に記録された仮ラベルのペアの情報は、連結関係にある1または複数の仮ラベルのペアに対して同一の真ラベルを付与することにより、仮ラベルに対して真ラベルを付与するためのデータに変換することができる。例えば、仮ラベルをアドレスとし、それに対応する真ラベルをリードできる統合テーブル23に変換することができる。結合情報ファイル26から統合テーブル23を生成するアルゴリズムは次のようになる。結合情報ファイル26には、2つの仮ラベルの結合を示すエントリーが複数記録されている。また、統合テーブル23は、仮ラベルをアドレスとしてアクセスすることにより、それに対応する真ラベルが得られるようになっている。結合情報ファイル26のn番目のエントリーの仮ラベルが「a」および「b」であるとすると、これら「a」および「b」をそれぞれアドレスとして統合テーブル23を参照し、「a」および「b」に対応して得られた真ラベルの最小値をテンポラリな領域に一時記憶する。真ラベルが付されていないアドレスは「null」となっており、「a」および「b」が共に「null」の場合は、新しい真ラベルがテンポラリな領域に格納される。統合テーブルのアドレス「a」および「b」の真ラベルは、テンポラリな領域に格納された真ラベルに書き換えられる。さらに、結合情報ファイル26のn+1番目以降の全エントリーについて、「a」または「b」と結合している仮ラベルが確認され、統合テーブル23の、「a」または「b」と結合している仮ラベルをアドレスとする真ラベルの値は、がテンポラリな領域に格納された真ラベルに書き換えられる。このような処理を、結合情報ファイル26の全エントリーに対して行うことにより、結合関係にある仮ラベルに対して統一した真ラベルを割当てる統合テーブル23が生成される。
真ラベリングステップ12は、この統合テーブル23を生成し、さらに、この統合テーブル23と、仮ラベル情報を記録したファイル27により、異なる仮ラベルが付された画素群が結合している場合に同一の真ラベルを付す処理を実行する。この真ラベリングステップ12を実行するための回路をマトリク31に構成するための構成情報52を用意することにより、仮ラベリング処理を行った同一のハードウェア(処理装置)30により、真ラベリング処理を行うことができる。
図13に、仮ラベル情報ファイル27と統合テーブル23から、真ラベルが付された画素データファイル25を生成する回路例を示してある。仮ラベル情報ファイル27は、画素単位で仮ラベル情報を記録する代わりに、図14に示すように、仮ラベル27aと画素ブロックの構成情報27bおよび位置情報(X、Y座標、IDあるいは並び順など)27cとを関連付して記録することが可能である。この場合、真ラベリング処理を行うための回路72においては、画素ブロック2を構成する4つの画素を単位として、仮ラベル情報ファイル27に対して一回アクセスすれば4つの画素の内のラベリング対象の画素に対して並列に真ラベルLt(g1)〜Lt(g4)を付与し、出力する処理を実行することができる。このように、真ラベリング処理12において、画素ブロック2を単位として処理を行うことにより、処理時間を大幅に短縮できる。
ラベリング処理10に含まれる処理の1つである、結合している画素群の特徴を抽出する解析ステップ13においても、画素ブロック2の単位で特徴を解析することにより処理時間を短縮できる。さらに、画素ブロック2を単位として解析する場合は、画素ブロック2の範囲でラベルが同一であれば良く、それが仮ラベルでも真ラベルでも差はない。したがって、図14に示した仮ラベル情報27の画素ブロック2の情報27bおよび27cから特徴を抽出し、統合テーブル23により連結している仮ラベルからなる画素群として統計処理することにより、真ラベルが付された画素を処理したのと同じ結果を、さらに高速で得ることができる。すなわち、本例では統合テーブル23により、真ラベルが共通し、結合関係にある仮ラベルが付された画素ブロック2の解析結果を統計処理することにより、結合している画素群の特徴を解析することができる。
図15に示したロジック81は解析ステップ13の一例であり、Y座標方向の最大値を求める回路を示している。以下に示す解析ステップ13を実行するための回路は、マトリクス31のEXE32を適当な構成となるように連結することにより実現できる。Y座標方向の最大値を求めるロジック81は、真ラベルが共通する画素ブロック2の最大値テーブル81aの値および現在の画素ブロック2の最大値のいずれかを新しい最大値として最大値テーブル81aへ出力するものであり、連結している画素群のY方向の広がりを求めることができる。ロジック81は、直前の画素ブロック2の解析結果もフィードバックしてメモリの入出力による遅れを防止している。以下のロジックにおいても同様である。Y座標方向の最小値、X座標方向の最大及び最小値も同様のロジックで解析できる。
図16に示したロジック82は、面積情報を求める回路を示している。このロジック82は、真ラベルが共通する画素ブロック2の画素数を足し算して面積テーブル82aに書き込むことにより、連結している画素群の面積を求めることができる。
図17(a)および(b)に示したロジック83および84は、Y方向の重心を求める回路を示している。ロジック83は、画素ブロック2の4つの画素の座標値の合計Y−POSをブロック内画素情報27bにより選択し、真ラベルが共通する画素ブロック2の座標値の合計を足し算して座標値合計テーブル83aに書き込むことにより、連結している画素群の座標値の合計を求める。ロジック84は、ロジック83により座標値合計テーブル83aに記録された真ラベル毎の座標値合計を、ロジック82により求められた真ラベル毎の面積で割ることにより、真ラベル毎にY方向の重心を求める。これらのロジック81〜84は解析ステップ13における処理の一例であり、画素ブロック2を用いた解析処理はこれらに限定されるものではない。
以上の実施例では、2次元の2値化画像の解析に、2×2の4画素を1つの画素ブロックとして適用した例により本発明を説明しているが、本発明はこの実施例に限定されるものではない。例えば、2次元画像の解析であれば、4画素の範囲で仮ラベルが共通するので、ルックアップテーブルあるいはロジック回路の規模は大きくなるが、4画素の整数倍の画素を単位としてラベリング処理を並列に処理を進めることは可能である。また、2値化画像は必ずしもモノクロ画像に限定されず、カラー画像の各色成分を2値化した画像に対しても本発明を適用することができる。さらに、2次元画像に限らず、3次元画像に対しても本発明を提供することが可能であり、その場合は、先に説明したように、8画素が1つの画素ブロックを構成する。
2 画素ブロック、 3 隣接画素群
10 ラベリング処理
30 画像処理装置
10 ラベリング処理
30 画像処理装置
Claims (19)
- 多次元に配列された複数の画素を有する画像をラベリング処理する過程を有し、このラベリング処理のための少なくともいずれかの工程では、相互に隣接する限られた複数の画素を含む画素ブロックを1つの単位として処理を行う、画像処理方法。
- 請求項1において、前記画像は2次元または3次元に配列された画素を有し、前記画素ブロックは、それぞれ2×2の4つの画素または2×2×2の8つの画素で構成される、画像処理方法。
- 請求項1において、前記ラベリング処理は、前記画像の連続要素を示すラベリング対象の画素群に仮ラベルを付す仮ラベリングステップを備えており、この仮ラベリングステップは、前記画素ブロックに隣接し、先行して当該仮ラベリングステップを経た画素により構成される隣接画素群に基づき、当該画素ブロックに含まれる、ラベリング対象の画素に共通の仮ラベルを付す第1のステップを備えている、画像処理方法。
- 請求項3において、前記第1のステップは、前記隣接画素群から承継される仮ラベルの有無および条件を演算するステップと、前記画素ブロックの状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを前記共通の仮ラベルとして選択するステップとを備えている、画像処理方法。
- 請求項4において、前記第1のステップでは、前記演算するステップと、前記選択するステップとをパイプライン方式で実行する、画像処理方法。
- 請求項4において、前記仮ラベリングステップは、さらに、未承継の仮ラベルと前記共通の仮ラベルとの結合情報を記録するステップを備えている、画像処理方法。
- 請求項6において、前記記録するステップでは、前記未承継の仮ラベルが複数あるときは、未記録の前記結合情報をキャッシュし、前記未承継の仮ラベルがないときに前記未記録の結合情報を記録する、画像処理方法。
- 請求項6において、前記ラベリング処理は、異なる仮ラベルが付された画素群が結合している場合に同一の真ラベルを付す真ラベリングステップを備えており、この真ラベリングステップでは、前記画素ブロックの単位で、それに含まれる前記ラベリング対象の画素に共通の真ラベルを付す、画像処理方法。
- 請求項6において、前記ラベリング処理は、結合している画素群の特徴を抽出する解析ステップを備えており、この解析ステップでは、前記画素ブロックの単位で前記特徴を解析する、画像処理方法。
- 2次元に配列された複数の画素を有する画像をラベリング処理する際に、2×2の4つの画素からなる画素ブロックと、その画素ブロックの隣り合う2辺に隣接する6つの画素からなる隣接画素群とを用い、前記隣接画素群のラベリング対象の画素に予め付された仮ラベルに基づき、前記画素ブロックに含まれるラベリング対象の画素に共通の仮ラベルを付す工程を有する画像処理方法。
- 多次元に配列された複数の画素を有する画像をラベリング処理する機能を有し、このラベリング処理のために実装される少なくともいずれかの回路構成は、相互に隣接する限られた複数の画素を含む画素ブロックを1つの単位とし、その画素ブロックを構成する複数の画素を並列に処理する回路構成を含む、画像処理装置。
- 請求項11において、前記画像は2次元または3次元に配列された画素を有し、前記画素ブロックは、それぞれ2×2の4つの画素または2×2×2の8つの画素で構成される、画像処理装置。
- 請求項11において、前記ラベリング処理は、前記画像の連続要素を示すラベリング対象の画素群に仮ラベルを付す仮ラベリングステップを備えており、この仮ラベリングステップを実行するための回路構成は、前記画素ブロックに隣接し、先行して当該仮ラベリングステップを経た画素により構成される隣接画素群に基づき、当該画素ブロックに含まれるラベリング対象の画素に共通の仮ラベルを付す第1の構成を備えている、画像処理装置。
- 請求項13において、前記第1の構成は、前記隣接画素群から承継される仮ラベルの有無および条件を演算するための構成と、前記画素ブロックの状態により承継される仮ラベルのいずれかまたは新しい仮ラベルを前記共通の仮ラベルとして選択するための構成とを備えている、画像処理装置。
- 請求項14において、前記演算するための構成と、前記選択するための構成とがパイプライン方式で接続されている、画像処理装置。
- 請求項14において、前記仮ラベリングステップを実行するための回路構成は、さらに、未承継の仮ラベルと前記共通の仮ラベルとの結合情報を記録するための構成を備えている、画像処理装置。
- 請求項16において、前記記録するための構成では、前記未承継の仮ラベルが複数あるときは、未記録の前記結合情報をキャッシュし、前記未承継の仮ラベルがないときに前記未記録の結合情報を記録する、画像処理装置。
- 請求項16において、前記ラベリング処理は、異なる仮ラベルが付された画素群が結合している場合に同一の真ラベルを付す真ラベリングステップを備えており、
この真ラベリングステップを実行するための回路構成は、前記画素ブロックの単位で、それに含まれる前記ラベリング対象の画素に共通の真ラベルを付す構成を備えている、画像処理装置。 - 請求項16において、前記ラベリング処理は、結合している画素群の特徴を抽出する解析ステップを備えており、
この解析ステップを実行するための回路構成は、前記画素ブロックの単位で前記特徴を解析するための構成を備えている、画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005239011A JP2006085686A (ja) | 2004-08-20 | 2005-08-19 | 画像処理方法および装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004240281 | 2004-08-20 | ||
JP2005239011A JP2006085686A (ja) | 2004-08-20 | 2005-08-19 | 画像処理方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006085686A true JP2006085686A (ja) | 2006-03-30 |
Family
ID=36164096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005239011A Pending JP2006085686A (ja) | 2004-08-20 | 2005-08-19 | 画像処理方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006085686A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234349A (ja) * | 2007-03-20 | 2008-10-02 | Nippon Hoso Kyokai <Nhk> | 多次元ラベリング装置、多次元ラベリングシステム及び多次元ラベリングプログラム |
JP2012164108A (ja) * | 2011-02-07 | 2012-08-30 | Canon Inc | ラベリング処理装置及びラベリング処理方法 |
-
2005
- 2005-08-19 JP JP2005239011A patent/JP2006085686A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234349A (ja) * | 2007-03-20 | 2008-10-02 | Nippon Hoso Kyokai <Nhk> | 多次元ラベリング装置、多次元ラベリングシステム及び多次元ラベリングプログラム |
JP2012164108A (ja) * | 2011-02-07 | 2012-08-30 | Canon Inc | ラベリング処理装置及びラベリング処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4803493B2 (ja) | ラベルイメージの生成方法および画像処理システム | |
US11068776B2 (en) | Convolutional neural network based data processing apparatus, method for controlling the same, and storage medium storing program | |
US6336209B1 (en) | Information processing system that processes portions of an application program using programmable logic circuits | |
JP2012168951A (ja) | タイルベースのグラフィックスシステム及びこのようなシステムの動作方法 | |
JP5786434B2 (ja) | 画像データ処理装置及びプログラム | |
JP2010134697A (ja) | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 | |
WO2007082043A2 (en) | Method and apparatus for scheduling the processing of multimedia data in parallel processing systems | |
JP4693074B2 (ja) | 外観検査装置及び外観検査方法 | |
JPH1166325A (ja) | 物体の境界決定方法および装置並びに物体の境界決定プログラムを記録した記録媒体 | |
CN108073549B (zh) | 卷积运算装置及方法 | |
US8229251B2 (en) | Pre-processing optimization of an image processing system | |
JP2007535267A (ja) | 画像処理装置及び方法 | |
JP2003141548A (ja) | 3次元ラベリング装置及びその方法 | |
JP2006085686A (ja) | 画像処理方法および装置 | |
US20200372332A1 (en) | Image processing apparatus, imaging apparatus, image processing method, non-transitory computer-readable storage medium | |
JP4082051B2 (ja) | 画像処理装置および画像処理方法 | |
Zhao et al. | A memory-efficient hardware architecture for connected component labeling in embedded system | |
WO2021070303A1 (ja) | 演算処理装置 | |
CN101562691B (zh) | 图像处理装置及方法 | |
JP4952116B2 (ja) | 演算処理システム、制御プログラム | |
JP6840860B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP5697475B2 (ja) | ラベリング処理装置及びラベリング処理方法 | |
JP2008186123A (ja) | 画像データ処理方法、画像データ処理プログラム及び画像データ処理装置 | |
US6760466B2 (en) | Automatic image replacement and rebuilding system and method thereof | |
CN115908473A (zh) | 一种图像连通域连接方法及装置 |