(57)【要約】【課題】ラベリング処理の高速化と、処理結果をリアルタイムで保存するメモリの小容量化を両立させる。【解決手段】画像処理装置１は、注目画素にラベルを付与するラベリング処理部２０と、ラベリング処理部が生成したラベリング情報を記憶する第一ラベリング情報格納部３０と、第一ラベリング情報格納部から転送されたラベリング情報を記憶する第二ラベリング情報格納部５０と、ラベリング処理部によって付与されたラベル数がフラッシュラベル数に到達した場合に、第一ラベリング情報格納部に記憶されているラベリング情報を第二ラベリング情報格納部へ転送させると共に第一ラベリング情報格納部をフラッシュするフラッシュ制御部４０とを備える。第一ラベリング情報格納部には小容量であるがアクセス速度が高速のメモリを使用し、第二ラベリング情報格納部にはアクセス速度が低速であるが大容量のメモリを使用する。【選択図】図３
2019003469.tif 000002
【特許請求の範囲】
【請求項１】
画像データの注目画素に隣接する参照画素に付与されたラベルを参照して、注目画素にラベルを付与するラベリング処理部と、
ラベリング処理部によって付与されたラベルに係るラベリング情報を記憶する第一ラベリング情報格納部と、
第一ラベリング情報格納部から転送されたラベリング情報を記憶する第二ラベリング情報格納部と、
ラベリング処理部によって付与されたラベルに係るラベル数がフラッシュラベル数に到達した場合に、第一ラベリング情報格納部に記憶されているラベリング情報を第二ラベリング情報格納部へ転送させると共に第一ラベリング情報格納部をフラッシュするフラッシュ制御部と、を備えることを特徴とするラベリング処理装置。
【請求項２】
前記ラベリング処理部は、前記第一ラベリング情報格納部がフラッシュされた場合に、フラッシュ前に付与されたラベルと、フラッシュ後に付与されたラベルとの接続関係を示す前処理接続情報を前記第一ラベリング情報格納部に記憶させることを特徴とする請求項１に記載のラベリング処理装置。
【請求項３】
前記フラッシュ制御部は、前記ラベリング処理部によって付与されたラベルに係るラベル数が前記画像データのライン途中で前記フラッシュラベル数となった場合に、前記ラベリング処理部による該ラインの処理が終了したときに前記第一ラベリング情報格納部をフラッシュすることを特徴とする請求項１又は２に記載のラベリング処理装置。
【請求項４】
前記第一ラベリング情報格納部のアクセス速度が、前記第二ラベリング情報格納部のアクセス速度よりも速いことを特徴とする請求項１乃至３の何れか一項に記載のラベリング処理装置。
【請求項５】
前記第一ラベリング情報格納部の記憶容量が、前記第二ラベリング情報格納部の記憶容量よりも少ないことを特徴とする請求項１乃至４の何れか一項に記載のラベリング処理装置。
【請求項６】
前記フラッシュラベル数は、該フラッシュラベル数に対応したラベリング情報に係る記憶容量と、前記ラベリング処理部によって付与されたラベルの個数がライン途中で前記フラッシュラベル数となった後、該ラインの残部について新規に付与されるラベル数の予測値に対応したラベリング情報に係る記憶容量と、を加算した容量が、前記第一ラベリング情報格納部の記憶容量を越えないように設定されることを特徴とする請求項１乃至５の何れか一項に記載のラベリング処理装置。
【請求項７】
前記ラベリング処理部は、ラベリング処理結果として、ラベル同士の接続関係を表す接続情報と、ラベルを付与された画素の数及び存在範囲をラベル毎に示す付加情報とを生成して前記第一ラベリング情報格納部に記憶させ、前記画像データ中の各画素と該各画素に付与されたラベルとの対応関係を示す画素・ラベル情報を生成して前記第二ラベリング情報格納部に記憶させることを特徴とする請求項１乃至６の何れか一項に記載のラベリング処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ中の連続する各画素に同一のラベルを付与するラベリング処理装置に関し、特に、処理の高速化と処理回路の低コスト化を可能としたラベリング処理装置に関する。
【背景技術】
【０００２】
二値画像中の連結した画素の領域を他の連結した画素の領域と区別するために、各連結領域に異なるラベルを付すラベリング処理が行われる。ラベリング処理を行うことにより、各連結領域について面積や重心等の特徴量を求めることができる。このような画像処理技術は、各種の製造工場における製品の欠陥検査に利用されている。
ラベリング処理の一例としては、注目画素の左上、上、右上、左の画素に付されたラベルを調べる走査マスク（参照範囲、図７等）を設定し、ラスタスキャンにより画像データの左上の画素から順にラベリング処理するものがある。このラベリングアルゴリズムの場合、参照範囲内に複数の異なるラベルが付された画素が存在した場合に、注目画素に付すラベルどのようにするか優先順位を定めておく必要がある。設定された優先順位によっては同一の連結領域内に存在する画素であるにも関わらず異なるラベルが付与される場合があるので、ラベリング処理時にラベル同士の接続関係を示す接続情報を生成する。そして、ラスタスキャン終了後に接続情報を用いてラベルを連結する必要がある（特許文献１）。
監視カメラや製造ライン上での検品にカメラから取り込んだ画像を利用する場合、ラベリング処理を実行する画像処理装置にはリアルタイムでの高速なデータ処理が求められる。特許文献２においては、連結領域の境界周囲長を判定し、所定周囲長以上の領域または所定周囲長以下の連結領域を除去することで、一度のラスタスキャンでラベリング処理を完了できるようにし、リアルタイムでのデータ処理を実現している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平３−１８４１８５号公報
【特許文献２】特開平３−２０６５７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の発明によれば、ラベル付けされた連結領域の接続関係を常に更新することで、接続情報を保持するメモリ容量を低く抑えることができ、また特許文献２に記載の発明によれば、一度のラスタスキャンでラベリング処理を完了させることができる。
しかしながら、特許文献１では画素に付与した一次ラベルの番号が最大一次ラベル番号を超える場合には処理終了となる。様々な画像に対応するためには画素に付与できるラベル数を十分に確保する必要があり、そのため、処理結果を保存するＲＡＭのメモリ容量を大きく確保しなければならないという問題点があった。また、特許文献２記載の方法では連結領域の周囲長が所定値以上または所定値以下の領域を除去することでラベリング処理を高速化しているので、処理できる画像の種類に制限があるという問題点があった。
本発明は、上記のような従来のラベリング処理における問題点を解決するものであり、様々な画像のラベリング処理を行うに際し、ラベリング処理を高速に実行することができ、且つ、ラベリングの処理結果を保存するメモリの容量を小さくできるラベリング処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記の課題を解決するために、請求項１に記載の発明は、画像データの注目画素に隣接する参照画素に付与されたラベルを参照して、注目画素にラベルを付与するラベリング処理部と、ラベリング処理部によって付与されたラベルに係るラベリング情報を記憶する第一ラベリング情報格納部と、第一ラベリング情報格納部から転送されたラベリング情報を記憶する第二ラベリング情報格納部と、ラベリング処理部によって付与されたラベルに係るラベル数がフラッシュラベル数に到達した場合に、第一ラベリング情報格納部に記憶されているラベリング情報を第二ラベリング情報格納部へ転送させると共に第一ラベリング情報格納部をフラッシュするフラッシュ制御部と、を備えることを特徴とする。
請求項２に記載の発明は、前記ラベリング処理部は、前記第一ラベリング情報格納部がフラッシュされた場合に、フラッシュ前に付与されたラベルと、フラッシュ後に付与されたラベルとの接続関係を示す前処理接続情報を前記第一ラベリング情報格納部に記憶させることを特徴とする。
【０００６】
請求項３に記載の発明は、前記フラッシュ制御部は、前記ラベリング処理部によって付与されたラベルに係るラベル数が前記画像データのライン途中で前記フラッシュラベル数となった場合に、前記ラベリング処理部による該ラインの処理が終了したときに前記第一ラベリング情報格納部をフラッシュすることを特徴とする。
請求項４に記載の発明は、前記第一ラベリング情報格納部のアクセス速度が、前記第二ラベリング情報格納部のアクセス速度よりも速いことを特徴とする。
請求項５に記載の発明は、前記第一ラベリング情報格納部の記憶容量が、前記第二ラベリング情報格納部の記憶容量よりも少ないことを特徴とする。
【０００７】
請求項６に記載の発明は、前記フラッシュラベル数は、該フラッシュラベル数に対応したラベリング情報に係る記憶容量と、前記ラベリング処理部によって付与されたラベルの個数がライン途中で前記フラッシュラベル数となった後、該ラインの残部について新規に付与されるラベル数の予測値に対応したラベリング情報に係る記憶容量と、を加算した容量が、前記第一ラベリング情報格納部の記憶容量を越えないように設定されることを特徴とする。
請求項７に記載の発明は、前記ラベリング処理部は、ラベリング処理結果として、ラベル同士の接続関係を表す接続情報と、ラベルを付与された画素の数及び存在範囲をラベル毎に示す付加情報とを生成して前記第一ラベリング情報格納部に記憶させ、前記画像データ中の各画素と該各画素に付与されたラベルとの対応関係を示す画素・ラベル情報を生成して前記第二ラベリング情報格納部に記憶させることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、様々な画像のラベリング処理を行うに際し、ラベリング処理を高速に実行することができ、且つ、ラベリングの処理結果を保存するメモリの容量を小さくできる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る画像処理装置のハードウェア構成図である。
【図２】本発明の一実施形態に係るラベリング演算処理部の概略構成を示す機能ブロック図である。
【図３】本発明の一実施形態に係る画像処理装置のラベリング機能に係る構成を示した機能ブロック図である。
【図４】接続情報の一例を示す図である。
【図５】付加情報の一例を示す図である。
【図６】ラベリング処理の対象となる二値画像データの一例を示す図である。
【図７】ラベリング処理に用いる走査マスクの一例を示す図である。
【図８】ラベリング処理の一例を示す図であり、（ａ）は処理画像を示す図であり、（ｂ）は付加情報を示す図であり、（ｃ）は接続情報を示す図である。
【図９】ラベリング処理を説明する図であり、（ａ）は処理画像を示す図であり、（ｂ）は付加情報を示す図であり、（ｃ）は現在処理接続情報を示す図であり、（ｄ）は前処理接続情報を示す図である。
【図１０】フラッシュ後のラベリング処理を説明する図であり、（ａ）は処理画像を示す図であり、（ｂ）は付加情報を示す図であり、（ｃ）は現在処理接続情報を示す図であり、（ｄ）は前処理接続情報を示す図である。
【図１１】現ライン処理部によるラベリング処理が完了した後の処理画像の一例を示す図である。
【図１２】（ａ）〜（ｃ）は、第二ラベリング情報格納部の全接続情報格納部と付加情報格納部に格納されるデータの一例を示す図である。
【図１３】第二ラベリング情報格納部のアドレスマップの概要を示す図である。
【図１４】ラベル連結処理後の処理画像の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
【００１１】
〔ハードウェア構成〕
図１は、本発明の一実施形態に係る画像処理装置のハードウェア構成図である。
画像処理装置（ラベリング処理装置）１は、ＣＰＵ（Central Processing Unit）１１、ラベリング演算処理部１３、メモリ１５、及びＩ／Ｆ部１６を備える。
ＣＰＵ１１はレジスタ１２を有しており、画像処理装置１の全体を制御する。
ラベリング演算処理部１３は、ＣＰＵ１１の命令に従ってラベリングに係わる各種の処理を実行する集積回路（ＩＣ：Integrated Circuit）である。ラベリング演算処理部１３は、入力された画像データの連結画素領域に仮のラベル（インデックス）を付与する。ラベリング演算処理部１３は、記憶手段として例えば揮発性記憶手段であるＳＲＡＭ（Static Random Access Memory）１４を備えており、ラベリング処理により得られるラベリング情報をＳＲＡＭ１４に一時的に格納する。
メモリ１５は、ラベリング演算処理部１３に設けた記憶手段（ＳＲＡＭ１４）よりも大きな記憶容量を有するがアクセス速度が比較的低速の記憶手段である。メモリ１５は、例えばＤＲＡＭ（Dynamic Random Access Memory）等の揮発性記憶手段から構成される。
Ｉ／Ｆ部１６は、外部装置と接続するインターフェースである。Ｉ／Ｆ部１６には、処理対象となる画像データを供給する監視カメラや、ラベリング演算処理部１３によって処理された画像データを処理する他の装置等が接続される。
【００１２】
〔ラベリング演算処理部の概略構成〕
図２は、本発明の一実施形態に係るラベリング演算処理部の概略構成を示す機能ブロック図である。
ラベリング演算処理部１３は、二値化処理部１７と、ノイズ除去部１８と、ラベリング処理部２０とを備える。
二値化処理部１７は、外部装置である監視カメラ等から入力されたビデオ信号（多値の画像データ）を二値化する処理を実行する。ノイズ除去部１８は、二値化された画像データに対する平滑化処理等を行って画像データからノイズを除去する。ラベリング処理部２０は、ノイズ除去後の画像データ中の各画素の連結成分に同一のラベル（インデックス）を仮付与し、ラベリング処理の結果を出力する。
【００１３】
〔機能構成〕
図３は、本発明の一実施形態に係る画像処理装置のラベリング機能に係る構成を示した機能ブロック図である。
画像処理装置１は、制御部１９、ラベリング演算処理部１３、第二ラベリング情報格納部５０、及びラベル連結処理部６０を備える。
【００１４】
制御部１９は、図１に示すＣＰＵ１１により実現され、ラベリング演算処理部１３に対してラベリング処理の開始を命令する制御信号や、ラベル数の設定値等を出力する。
ラベリング演算処理部１３は、ラベリング処理部２０、第一ラベリング情報格納部３０、及びフラッシュ制御部４０を備える。ラベリング処理部２０は、図２に示すノイズ除去部１８から入力されたノイズ除去後の二値画像データ中の各画素に対して仮のラベルを付与するラベリング処理を実行する。
ラベリング処理部２０は、画像データの注目画素に隣接する参照画素に付与されたラベルを参照して、注目画素にラベルを付与する処理を実行する。ラベリング処理部２０は、現ライン処理部２１と１ライン前処理結果保持部２２とを有する。
現ライン処理部２１は、注目画素と、注目画素の周囲に位置する他の画素との接続関係を検出する。より詳しくは、現ライン処理部２１は、画像データ中の注目画素に対して４連結（４近傍）又は８連結（８近傍）に位置する画素と同一のインデックス（ラベル）を付与するラベリング処理を実行する。現ライン処理部２１は、ラベリング処理の結果として、ラベル同士の接続関係を表す接続情報と、ラベルを付与された画素の数及び存在範囲をラベル毎に示す付加情報とを含むラベリング情報を生成して第一ラベリング情報格納部３０に記憶させる。また、現ライン処理部２１は、ラベリング処理の結果として、画像データ中の各画素と各画素に付与されたラベルとの対応関係を示す画素・ラベル情報を生成して第二ラベリング情報格納部５０に記憶させる。
１ライン前処理結果保持部２２は、現ライン処理部２１によるラベリング処理の結果生成される画素・ラベル情報を１ライン分保持する手段である。画素・ラベル情報は、どの画素に対してどのラベルが付与されているかを示す情報である。１ライン前処理結果保持部２２はラインバッファにより構成されており、ラインバッファの各画素に対応する領域には夫々複数ビットが割り当てられている。各画素には、割り当てられたビット数を上限として順次ラベルを付与することが可能である。
【００１５】
第一ラベリング情報格納部３０は、図１にＳＲＡＭ１４として示されているように、高速アクセスが可能な記憶手段により構成される。第一ラベリング情報格納部３０は、ラベリング処理部２０によって付与されたラベルに係るラベリング情報を記憶する。ラベリング処理部２０が生成するラベリング情報は、接続情報と付加情報とを含む。なお、接続情報と付加情報の詳細については後述する。第一ラベリング情報格納部３０は、ラベリング処理部２０によって付与されたラベルが所定数となる度にフラッシュ（初期化）される。そのため、第一ラベリング情報格納部３０は、接続情報（図４）を格納する手段として、現在処理接続情報格納部３１と前処理接続情報格納部３２とを有する。現在処理接続情報格納部３１は、現在のラベリング処理において付与されるラベル同士の接続関係を示す接続情報を格納する。前処理接続情報格納部３２は、現在のラベリング処理において付与されるラベルと、前回のラベリング処理（第一ラベリング情報格納部３０をフラッシュする直前のラベリング処理）において付与されたラベルとの接続関係を示す接続情報を格納する。また、第一ラベリング情報格納部３０は付加情報（図５）を格納する手段として、第一付加情報格納部３３を有する。
【００１６】
フラッシュ制御部４０は、現ライン処理部２１が付与したラベル数が所定のラベル数（フラッシュラベル数）に到達した場合に、第一ラベリング情報格納部３０に記憶されているラベリング情報を第二ラベリング情報格納部５０へ転送させると共に、第一ラベリング情報格納部３０をフラッシュする処理を実行する。フラッシュ制御部４０は、ラベル数判定部４１とコントローラ４２を備える。
ラベル数判定部４１は、現ライン処理部２１が付与したラベル数を入力し、ラベル数が所定のフラッシュラベル数に達した場合にコントローラ４２に対して第一ラベリング情報格納部３０をフラッシュするフラッシュ要求を出力する。フラッシュ要求の基準となるフラッシュラベル数は、制御部１９がラベル数判定部４１に対して設定する。制御部１９はフラッシュラベル数を、第一ラベリング情報格納部３０の記憶容量に基づいて設定してもよいし、図１に示すＩ／Ｆ部１６を介して外部から入力された数値に基づいて設定してもよい。
ここで、接続情報及び付加情報の記憶には、ラベリング処理部が付与したラベル数に応じた容量が必要である。制御部１９は、第一ラベリング情報格納部３０に格納可能なラベリング情報の最大ラベル数よりも少ないラベル数をフラッシュラベル数としてラベル数判定部４１に設定する。
【００１７】
コントローラ４２は、ラベル数判定部４１からフラッシュ要求を入力した場合に、第一ラベリング情報格納部３０の各部に記憶されているラベリング情報を読み出して、第二ラベリング情報格納部５０の対応する各部に転送する。また、コントローラ４２は、第一ラベリング情報格納部３０に順次ゼロを書き込むことにより、第一ラベリング情報格納部３０のデータをクリア（フラッシュ）する。
【００１８】
第二ラベリング情報格納部５０は、図１に示すメモリ１５により実現される。第二ラベリング情報格納部５０は、第一ラベリング情報格納部４０から転送されたラベリング情報を記憶する。即ち、第二ラベリング情報格納部５０は、第一ラベリング情報格納部３０をフラッシュする前、及び一のフレーム画像についてのラベリング処理終了後に、第一ラベリング情報格納部３０から読み出された接続情報及び付加情報を格納、蓄積する手段である。
具体的には、第二ラベリング情報格納部５０は、第一ラベリング情報格納部３０の現在処理接続情報格納部３１及び前処理接続情報格納部３２から読み出された各接続情報を格納する全接続情報格納部５１と、第一付加情報格納部３３から読み出された付加情報を格納する第二付加情報格納部５２とを備える。また、第二ラベリング情報格納部５０は、ラベリング処理部２０から出力された画素・ラベル情報を保持する画素・ラベル情報保持部５３を備える。第二ラベリング情報格納部５０は、第一ラベリング情報格納部３０に比べてアクセス速度は低速であるが、第一ラベリング情報格納部３０よりも安価、且つ大容量の記憶手段により構成される。例えば、第一ラベリング情報格納部３０をＳＲＡＭから構成し、第二ラベリング情報格納部５０をＤＲＡＭから構成することができる。
第一ラベリング情報格納部３０に加えて第二ラベリング情報格納部５０を設けることにより、１フレームの画像データから生成されるラベリング情報の格納に必要な記憶容量を確保しつつ、現ライン処理部２１が生成するラベリング情報をリアルタイムで高速に記憶する第一ラベリング情報格納部３０の容量を小さくすることができ、画像処理装置１を低コスト化することができる。
【００１９】
ラベル連結処理部６０は、第二ラベリング情報格納部５０に格納された全ての接続情報、付加情報、及び画素・ラベル情報からラベル連結処理を行う手段である。ラベル連結処理部６０は、異なるラベルが付与された画素同士が連結している場合に、一の連結領域を構成する各画素に同一のラベルを振り直す処理を実行する。なお、ラベル連結処理部６０が利用するラベル連結アルゴリズムには特に制限はない。ラベル連結処理部６０は、バスを介してＣＰＵ１１と接続する回路でもよいし、Ｉ／Ｆ部１６を介して接続する外部装置でもよい。
【００２０】
〔接続情報〕
図４は、接続情報の一例を示す図である。
接続情報は、ラベル同士の接続関係を示す情報である。異なるラベル同士が接続している場合、当該ラベルの付された複数の画素は一つの連結領域を形成する。縦軸と横軸の数字１〜１６は、ラベルを表している。図示する例では、縦軸が注目画素のラベルを表しており、横軸が参照画素のラベルを表している。図示した例は、接続情報の初期状態を示しており、接続情報が発生しない、すなわち、注目画素のラベルと参照画素のラベルが同一である部分にのみ着色している。
【００２１】
〔付加情報〕
図５は、付加情報の一例を示す図である。付加情報は、あるラベルの付された画素の集合が画像データ中のどの範囲にどの程度の大きさで存在するかを示す情報であり、テーブルの形式にて表現される。付加情報は、第一ラベリング情報格納部３０がフラッシュされる毎に新規に作成される。各タイトルの意味は、以下の通りである。
ＩＤ：フラッシュ毎に作成される夫々の付加情報を識別する識別情報。例えば、ラベリング処理の開始時にＩＤ「０」が付与された場合、ＩＤは第一ラベリング情報格納部３０がフラッシュされる毎にカウントアップされる。
ｄｏｍａｉｎ：ＩＤに対応する付加情報が示す画像データの範囲を示す情報。第一ラベリング情報格納部３０のフラッシュが画像データのライン単位で実行される場合は、画像データの処理ラインを特定する情報となる。
ｉｎｄｅｘ：ラベリング処理によって付与されたラベル。
ａｒｅａ：ｉｎｄｅｘに示されるラベルが付与された画素数。
Ｘｍｉｎ：ｉｎｄｅｘに示されるラベルが付与された画素領域のＸ座標最小値。
Ｙｍｉｎ：ｉｎｄｅｘに示されるラベルが付与された画素領域のＹ座標最小値。
Ｘｍａｘ：ｉｎｄｅｘに示されるラベルが付与された画素領域のＸ座標最大値。
Ｙｍａｘ：ｉｎｄｅｘに示されるラベルが付与された画素領域のＹ座標最大値。
【００２２】
〔画像例〕
図６は、ラベリング処理の対象となる二値画像データの一例を示す図である。本図においては、各画素のＸ方向、Ｙ方向における位置を把握しやすくするため、各画素間に罫線を記載している。ラベリング処理部２０は、このような１フレームの画像の左上から図中右方向に処理対象である注目画素を移動しながら注目画素に対してラベルを付与する。
【００２３】
〔走査マスク〕
図７は、ラベリング処理に用いる走査マスクの一例を示す図である。
この走査マスク７０は、所謂８連結（８近傍）用の走査マスクであり、ラベリング処理部２０（図３）が注目画素７１の左上、上、右上、左に位置する４つの参照画素７２ａ〜７２ｄに付されたラベルを参照して、注目画素７１に対してラベルを付与することを示している。以下では、参照画素７２ａ〜７２ｄをまとめて「参照範囲」と表現することがある。なお、各参照画素７２ａ〜７２ｄに付された数字１〜４は、走査マスク７０内にラベルが割り当てられた複数の画素が存在する場合に、注目画素７１に割り当てるラベルの優先順位を示している。
【００２４】
〔基本的なラベリング処理の手順〕
以下、ラベリング処理について図３を参照して説明する。
図６に示すような１フレーム分の二値画像データは、１画素ずつラベリング処理部２０の現ライン処理部２１に供給される。現ライン処理部２１は、走査マスク７０（図７）中の参照画素７２ａ〜７２ｄに付されたラベルを参照して注目画素７１に対して順次ラベルを付与する処理を実行する。
【００２５】
図８は、ラベリング処理の一例を示す図であり、（ａ）は処理画像を示す図であり、（ｂ）は付加情報を示す図であり、（ｃ）は接続情報を示す図である。本図において、グレーの画素は処理済みの画素を示している。白抜き及び黒ベタの画素は未処理の画素を示しており、そのうち白抜きの画素はラベルを付すべき画素を示している。また、図中の右向き矢印は処理の方向を示している。また、本図は第６ラインの途中までラベリング処理が行われた状態を示している。
走査マスク７０内には既にラベル「２」「３」の付された画素が存在するが、走査マスク７０が参照する画素の優先順位（図５）により注目画素７１にはラベル「３」が付与される。
１ライン前処理結果保持部２２には、破線で示すように、注目画素の２つ前の画素から１ライン分の画素・ラベル情報が保持されており、現ライン処理部２１はラベリング処理時に、１ライン前処理結果保持部２２から処理中のラインの１ライン前に位置する参照画素の画素・ラベル情報を読み出して参照する。
現ライン処理部２１は、注目画素７１の直前に処理された画素の画素・ラベル情報を保持するレジスタを有しており、注目画素７１のラベリング処理時にこれを参照する。現ライン処理部２１は、注目画素７１に対してラベリング処理を行った後に、注目画素７１の直前に位置する画素の画素・ラベル情報を１ライン前処理結果保持部２２と第二ラベリング情報格納部５０の画素・ラベル情報保持部５３に記憶させる。
なお、現ライン処理部２１は１ラインの処理終了時にレジスタ中の画素・ラベル情報を１ライン前処理結果保持部２２と画素・ラベル情報保持部５３に記憶させ、レジスタをクリアする。
【００２６】
＜付加情報＞
現ライン処理部２１は、１ラインの処理開始時に付加情報（図８（ｂ））の「ｄｏｍａｉｎ」を更新する処理を実行する。また、現ライン処理部２１は、注目画素に対してラベルを付与した場合に、付加情報を更新する処理を実行する。具体的には、現ライン処理部２１は、第一ラベリング情報格納部３０の第一付加情報格納部３３に記憶されている付加情報を読み出して、「ｄｏｍａｉｎ」或いは注目画素に付与したラベルに係る情報を変更した付加情報を生成し、第一付加情報格納部３３に書き込む処理を実行する。
図８（ｂ）に示されている付加情報は、第７ライン１４画素目のラベリング処理が終了した後において、以下のような状態であることを示している。
（１）ｉｎｄｅｘ１が付された画素は１２個存在し、それらのＸ軸最小値は１、Ｙ軸最小値は２、Ｘ軸最大値は４、Ｙ軸最大値は５である。
（２）ｉｎｄｅｘ２が付された画素は３個存在し、それらのＸ軸最小値は１４、Ｙ軸最小値は５、Ｘ軸最大値は１６、Ｙ軸最大値は５である。
（３）ｉｎｄｅｘ３が付された画素は２個存在し、それらのＸ軸最小値は１２、Ｙ軸最小値は６、Ｘ軸最大値は１３、Ｙ軸最大値は６である。
【００２７】
＜接続情報＞
現ライン処理部２１は、新規なラベルを付与した場合、又は異なるラベル間の新規な接続関係を検出した場合に、接続情報（図８（ｃ））を更新する処理を実行する。具体的には、現ライン処理部２１は、現在処理接続情報格納部３１に記憶されている接続情報を読み出して、注目画素に付与したラベルと接続するラベルに係る情報を変更した接続情報を生成し、現在処理接続情報格納部３１に書き込む処理を実行する。
図８（ｃ）の接続情報は、縦軸が注目画素を示し、横軸が注目画素と接続する参照画素の情報を示している。図８（ａ）に示すように第６ライン第１３画素が注目画素であるとき、注目画素にはラベル「３」が付与されるが、参照範囲内にはラベル「２」の付された画素も存在するので、接続情報にはラベル「３」とラベル「２」の画素が接続している旨の情報が追加される。具体的には、ラベリング処理部２０は、図８（ｃ）に示す接続情報について、第３行第２列（★印）部分の情報を追加する。
【００２８】
〔フラッシュ処理〕
以下、第一ラベリング情報格納部３０のフラッシュについて、フラッシュラベル数が４である場合の例により説明する。
図９は、ラベリング処理を説明する図であり、（ａ）は処理画像を示す図であり、（ｂ）は付加情報を示す図であり、（ｃ）は現在処理接続情報を示す図であり、（ｄ）は前処理接続情報を示す図である。図９は、第７ラインのラベリング処理を終了した状態を示している。
【００２９】
第一ラベリング情報格納部３０は、現ライン処理部２１が付与したラベルがフラッシュラベル数に到達した場合にフラッシュされる。
本例においてコントローラ４２は、現ライン処理部２１によって付与されたラベルに係るラベル数が画像データのライン途中でフラッシュラベル数となり、且つ現ライン処理部２１による処理中のラインのラベリング処理が終了した場合に、第一ラベリング情報格納部３０をフラッシュするように制御する。
【００３０】
フラッシュ処理における具体的な制御手順は以下の通りである。
現ライン処理部２１は、注目画素に対して新規にラベルを付与した場合に、現在処理において付与したラベル数の情報をラベル数判定部４１に出力する。例えば、現ライン処理部２１は、第７ライン第１０画素に対して新規にラベル「４」を付与した場合、使用ラベル数「４」をラベル数判定部４１に通知する。ラベル数判定部４１は、使用ラベル数がフラッシュラベル数に到達したか否かを判定しており、使用ラベル数がフラッシュラベル数に到達した場合にコントローラ４２に対してフラッシュ要求を出力する。
現ライン処理部２１は、コントローラ４２に対して、１ラインの処理が終了する毎にその旨を示すライン処理終了通知を出力する。
コントローラ４２は、ラベル数判定部４１からのフラッシュ要求を受け付け、且つ現ライン処理部２１からライン処理終了通知を受け付けた場合に、ラベリング情報を第一ラベリング情報格納部３０から第二ラベリング情報格納部５０に転送する。即ち、コントローラ４２は、現在処理接続情報格納部３１に格納されている現在処理接続情報と、前処理接続情報格納部３２に格納されている前処理接続情報とを読み出して、第二ラベリング情報格納部５０の全接続情報格納部５１に記憶させる処理を実行する。また、コントローラ４２は、第一付加情報格納部３３に格納されている付加情報を読み出して、第二ラベリング情報格納部５０の第二付加情報格納部５２に記憶させる処理を実行する。
その後、コントローラ４２は、第一ラベリング情報格納部３０をフラッシュする処理を実行する。
更にコントローラ４２は、現ライン処理部２１に対してラベルの初期化を命令する。
【００３１】
〔フラッシュ後のラベリング処理〕
図１０は、フラッシュ後のラベリング処理を説明する図であり、（ａ）は処理画像を示す図であり、（ｂ）は付加情報を示す図であり、（ｃ）は現在処理接続情報を示す図であり、（ｄ）は前処理接続情報を示す図である。図１０は、第８ラインの途中までラベリング処理が行われた状態を示している。
現ライン処理部２１は第一ラベリング情報格納部３０がフラッシュされた後、コントローラ４２からのラベル初期化命令に従って、画素に付与するラベルを初期化する。即ち、現ライン処理部２１は、フラッシュ後に、最初に検知されたラベルの付与対象となる注目画素に対してラベル「１」を付与する。現ライン処理部２１は、前処理における付加情報のＩＤをカウントアップした付加情報を生成して、第一付加情報格納部に記憶させる。このとき、現ライン処理部２１は、処理ラインを示す「ｄｏｍａｉｎ」にフラッシュ後の処理ラインに係る情報を与える。
現ライン処理部２１は、新規なラベルを付与した場合、又はフラッシュ後に処理したライン中で異なるラベル間の新規な接続関係を検出した場合に、現在処理接続情報（図１０（ｃ））を更新して、現在処理接続情報格納部３１に記憶させる。
現ライン処理部２１は、フラッシュ前に処理されたライン中のラベルと、フラッシュ後に処理したライン中のラベルとの間に接続関係を検出した場合に、前処理接続情報（図１０（ｄ））を更新して、前処理接続情報格納部３２に記憶させる。
【００３２】
図１１は、現ライン処理部によるラベリング処理が完了した後の処理画像の一例を示す図である。本図は、最終的に第二ラベリング情報格納部５０の画素・ラベル情報保持部５３に記憶される情報を示している。
現ライン処理部２１は、コントローラ４２に対して１フレームの画像データの処理（図では第２３ライン第２３画素の処理）が終了したときにフレーム処理終了通知を出力する。
コントローラ４２は、現ライン処理部２１からのフレーム処理終了通知を受けて、第一ラベリング情報格納部３０に記憶されている全ての情報を第二ラベリング情報格納部５０へ転送する処理と、第一ラベリング情報格納部３０をフラッシュする処理を実行する。
【００３３】
図１２（ａ）〜（ｃ）は、第二ラベリング情報格納部の全接続情報格納部と付加情報格納部に格納されるデータの一例を示す図である。本図は、１フレームの画像についてラベリング処理が完了した場合に第二ラベリング情報格納部に格納される情報を示しており、（ａ）はＩＤ０のラベリング情報を、（ｂ）はＩＤ１のラベリング情報を、（ｃ）はＩＤ２のラベリング情報を示している。夫々のラベリング情報は、付加情報と現在処理接続情報と前処理接続情報を含んでいる。
【００３４】
図１３は、第二ラベリング情報格納部のアドレスマップの概要を示す図である。本図には、全接続情報格納部５１と第二付加情報格納部５２に係るアドレスマップのみを示している。第二ラベリング情報格納部５０には、ＩＤ毎に順次ラベリング情報（図１２（ａ）〜（ｃ））を格納する格納領域５４ａ〜５４ｃが形成される。夫々のラベリング情報の格納領域は、付加情報を格納する付加情報格納領域５５、現在処理接続情報を格納する現在処理接続情報格納領域５６、及び前処理接続情報を格納する前処理接続情報格納領域５７を備えている。
【００３５】
〔ラベル連結処理〕
ラベル連結処理部６０（図３）は、第二ラベリング情報格納部５０の画素・ラベル情報保持部５３に記憶された画素・ラベル情報（図１１）と、全接続情報格納部５１に記憶された接続情報（図１２）とを用いてラベルを連結する処理を実行する。
ラベル連結処理部６０は、第二ラベリング情報格納部５０の画素・ラベル情報保持部５３中の画素・ラベル情報（図１１）を第０ラインから順次確認していき、ラベルを連結する。
まず、ラベル連結処理部６０は、第二ラベリング情報格納部５０の全接続情報格納部５１に記憶されているＩＤ「０」（図１２（ａ））の現在処理接続情報を用いてラベル連結処理を実行する。ラベル連結処理部６０は、現在処理接続情報に基づいて、ラベル（index）「２」がラベル「３」及び「４」と接続していると判定し、ラベル「３」、「４」が割り振られた画素のラベルを全て「２」に変更する。なお、ラベル連結処理部６０は、ラベル「４」がラベル「２」に変更された旨の情報を一時的に記憶しておく。
【００３６】
次に、ラベル連結処理部６０は、ＩＤ「１」（図１２（ｂ））の現在処理接続情報及び前処理接続情報を用いてラベル連結処理を実行する。
前処理接続情報にはラベル「１」が前処理におけるラベル「４」と接続している情報が含まれており、ラベル連結処理部６０はＩＤ「０」のラベル連結処理においてラベル「４」がラベル「２」に変更された旨の情報を記憶しているので、ラベル連結処理部６０はＩＤ「１」におけるラベル「１」をラベル「２」に変更する。
ラベル連結処理部６０は、他のラベルと接続していない独立したラベル「２」、「３」、「４」を、最小の未使用ラベルから順にそれぞれラベル「３」、「４」、「５」に振り直す。また、ラベル連結処理部６０は、ＩＤ「１」のラベル「１」〜「４」が、それぞれラベル「２」〜「５」に変更された旨の情報を一時的に記憶する。
【００３７】
最後に、ラベル連結処理部６０は、ＩＤ「２」（図１２（ｃ））の現在処理接続情報及び前処理接続情報を用いて上記と同様にラベル連結処理を実行する。
図１４は、ラベル連結処理後の処理画像の一例を示す図である。最終的には、図１４に示すようなラベル連結画像が得られる。
【００３８】
〔変形例等〕
本実施形態において、ラベル数判定部４１には、第一ラベリング情報格納部３０に格納可能なラベリング情報の最大ラベル数よりも少ない数をフラッシュラベル数として設定する。具体的には以下のように設定される。即ち、フラッシュラベル数は、このフラッシュラベル数に対応したラベリング情報の格納に必要な記憶容量と、現ライン処理部２１によって付与されたラベルの個数がライン途中でフラッシュラベル数となった後、このラインの残部について新規に付与されるラベル数の予測値に対応したラベリング情報の格納に必要な記憶容量と、を加算した容量が、第一ラベリング情報格納部３０の記憶容量を越えないように設定される。仮に、１ラインの処理中に現ライン処理部２１の付与したラベル数がフラッシュラベル数を超えたとしても、第一ラベリング情報格納部３０には、１ラインの処理が終了するまで最大ラベル数の範囲内でラベリング情報を順次格納することができる。
【００３９】
本実施形態においては、第一ラベリング情報格納部３０のフラッシュを１ラインの処理終了後に実行するが、ライン途中でフラッシュする構成としてもよい。この場合、ラベル数判定部４１には、第一ラベリング情報格納部３０に格納可能なラベリング情報の最大ラベル数をフラッシュラベル数として設定することができる。付加情報（図５）の「ｄｏｍａｉｎ」は、フラッシュ処理によって区切られる領域の始点画素と終点画素の情報となる。コントローラ４２は、ラベリング処理部２０の付与したラベル数がフラッシュラベル数となり、且つそのラベルの付された画素が連続しなくなったときに、第一ラベリング情報格納部３０をフラッシュするように制御する。
【００４０】
上記実施形態においては、小容量であるがアクセス速度が高速な記憶手段としてＳＲＡＭを、大容量であるがアクセス速度が低速な記憶手段（メモリ）としてＤＲＡＭを例に挙げて説明したが、本発明において第一ラベリング情報格納部３０と第二ラベリング情報格納部５０に利用する記憶手段をこれに限定するものではない。
例えば、第一ラベリング情報格納部３０にはＳＲＡＭ以外の高速応答性の高い記憶手段として、フリップフロップ回路を用いることができる。第二ラベリング情報格納部５０としてＤＲＡＭ以外に、フラッシュメモリやＨＤＤ（Hard Disk Drive）を用いることもできる。また、第二ラベリング情報格納部５０はＩ／Ｆ部１６を介して接続された外部メモリ（外部記憶装置）としてもよい。
上記実施形態において、ＳＲＡＭやＤＲＡＭを説明するに際し、アクセス速度と容量との関係を規定しているが、一般的にアクセス速度が高速な記憶装置は高価であるため、装置を安価に提供するためには小容量のものを用いるのが好ましく、一方、アクセス速度が低速な記憶装置は大容量であるにも関わらず安価であることが多いという前提に基づいて記載しているに過ぎず、本発明を何ら限定するものではない。
【００４１】
本実施形態においては、第一ラベリング情報格納部３０のフラッシュ時に、現ライン処理部２１が付与するラベルも初期化したが、現ライン処理部２１はフラッシュ後もフラッシュ前に付与したラベルに連続するラベルを付与してもよい。つまり、現ライン処理部２１は、フラッシュが実行されたか否かに関わらず、ラベルをカウントアップして付与してもよい。
【００４２】
〔ラベリング処理装置の使用用途〕
本実施形態に係る画像処理装置（ラベリング処理装置）は、製造ラインにおける欠陥検査装置、物体の追跡処理を行うための監視カメラ装置、医療分野における検査装置（例えば眼科の検査装置）等に組み込むことができる。画像データに対してラベリング処理を行うことで入力画像中に存在する連結領域を特定し、特定された連結領域の面積や重心を求めることができ、種々の検査等に利用できる。
なお、連結領域の存在エリアや連結領域の大きさ（連結領域を構成する画素の個数）がわかれば十分であるような場合には、主として付加情報を利用することができ、ラベル連結処理は必要とされない場合もあり得る。
【００４３】
〔本発明の実施態様例と作用、効果のまとめ〕
＜第一の実施態様＞
本態様に係るラベリング処理装置（画像処理装置１）は、画像データの注目画素に隣接する参照画素に付与されたラベルを参照して、注目画素にラベルを付与するラベリング処理部２０と、ラベリング処理部によって付与されたラベルに係るラベリング情報を記憶する第一ラベリング情報格納部３０と、第一ラベリング情報格納部から転送されたラベリング情報を記憶する第二ラベリング情報格納部５０と、ラベリング処理部によって付与されたラベルに係るラベル数がフラッシュラベル数に到達した場合に、第一ラベリング情報格納部に記憶されているラベリング情報を第二ラベリング情報格納部へ転送させると共に第一ラベリング情報格納部をフラッシュするフラッシュ制御部４０と、を備えることを特徴とする。
【００４４】
ラベリング処理部が生成するラベリング情報を直接、リアルタイムで記憶していくメモリには高速動作が要求される。しかし、高速動作が可能なメモリに１フレームの画像データから生成される全てのラベリング情報を格納しようとすれば、当該メモリに要求される記憶容量が大きくなり、装置コストが過大となるという問題がある。
そこで、本態様に係るラベリング処理装置には、ラベリングの処理結果を保存する複数のメモリ（第一ラベリング情報格納部と第二ラベリング情報格納部）を配置した。第一ラベリング情報格納部はラベリング処理部が生成するラベリング情報を直接、リアルタイムで記憶していく手段であり、高速動作が要求されるメモリである。第二ラベリング情報格納部は、一旦は第一ラベリング情報格納部に記憶されたラベリング情報を所定のタイミングで第一ラベリング情報格納部から退避させる手段であり、処理速度は低速で構わないが、記憶容量が要求されるメモリである。このように、ラベリング情報格納部を複数用意することによって、夫々のラベリング情報格納部には、役割に応じて必要な性能を与えることができるようになる。
従って、本態様によれば、様々な画像のラベリング処理を行うに際し、ラベリング処理を高速に実行することができ、且つ、ラベリングの処理結果をリアルタイムで保存するメモリの容量を小さくできる。即ち、本態様によれば、画像処理装置の高速性とリアルタイム性を維持しながら、安価な装置構成としても、生成された１フレーム分のラベリング情報を記憶するために必要な容量を十分に確保することができる。
【００４５】
＜第二の実施態様＞
本態様に係るラベリング処理装置（画像処理装置１）において、ラベリング処理部２０は、第一ラベリング情報格納部３０がフラッシュされた場合に、フラッシュ前に付与されたラベルと、フラッシュ後に付与されたラベルとの接続関係を示す前処理接続情報を第一ラベリング情報格納部３０に記憶させることを特徴とする。
本態様によれば、第一ラベリング情報格納部をフラッシュしても、フラッシュ前後に付されたラベル同士の接続関係を第一ラベリング情報格納部に記憶させるので、フラッシュ前後のラベルについても問題なくラベル連結処理を行うことができる。
【００４６】
＜第三の実施態様＞
本態様に係るラベリング処理装置（画像処理装置１）において、フラッシュ制御部４０は、ラベリング処理部２０によって付与されたラベルに係るラベル数が画像データのライン途中でフラッシュラベル数となった場合に、ラベリング処理部による該ラインの処理が終了したときに第一ラベリング情報格納部３０をフラッシュすることを特徴とする。
画像データのライン途中で第一ラベリング情報格納部をフラッシュすることも可能であるが、ラベリング処理が複雑化し、ラベリング処理に係わる回路が肥大化するという問題がある。
本態様によれば、第一ラベリング情報格納部のフラッシュをライン単位で行うことによって、ラベリング処理を簡素化にすることができ、ラベリング処理に係わる回路をコンパクトにすることができる。
【００４７】
＜第四の実施態様＞
本態様に係るラベリング処理装置（画像処理装置１）は、第一ラベリング情報格納部３０のアクセス速度が、第二ラベリング情報格納部５０のアクセス速度よりも速いことを特徴とする。
本態様によれば、ラベリング処理部が生成するラベリング情報を第一ラベリング情報格納部にリアルタイムで高速に記憶させることができる。また、アクセス速度が比較的低速なメモリは安価であるため、第二ラベリング情報格納部を１フレーム分のラベリング情報を記憶するために必要な程度に大容量化しても、装置を安価に構成することができる。
【００４８】
＜第五の実施態様＞
本態様に係るラベリング処理装置（画像処理装置１）は、第一ラベリング情報格納部３０の記憶容量が、第二ラベリング情報格納部５０の記憶容量よりも少ないことを特徴とする。
本態様によれば、第一ラベリング情報格納部を高速アクセスが可能なメモリとしても、記憶容量を低容量とすることができるので、装置の低コスト化を実現できる。また、第二ラベリング情報格納部を大容量とすることによって、第一ラベリング情報格納部を低容量化しても、ラベリング処理において付与するラベル数は制限を受けず、これにより様々な画像のラベリング処理を行うことが可能となる。
【００４９】
＜第六の実施態様＞
本態様に係るラベリング処理装置（画像処理装置１）において、フラッシュラベル数は、フラッシュラベル数に対応したラベリング情報に係る記憶容量と、ラベリング処理部２０によって付与されたラベルの個数がライン途中でフラッシュラベル数となった後、該ラインの残部について新規に付与されるラベル数の予測値に対応したラベリング情報に係る記憶容量と、を加算した容量が、第一ラベリング情報格納部３０の記憶容量を超えないように設定されることを特徴とする。
画像データのライン途中でフラッシュを行えば、第一ラベリング情報格納部には記憶容量の最大限までラベリング情報を格納することができる。しかし、ラベリング処理の簡素化とラベリング処理に係わる回路のコンパクト化を考慮すると、フラッシュはライン単位で行う方が望ましい。そのためには、ライン単位でのフラッシュを保証できるようにする必要がある。
本態様においては、ラベリング処理部が付与したラベル数がライン途中でフラッシュラベル数に到達したとしても、第一ラベリング情報格納部には少なくとも当該ラインのラベリング処理が終了するまでに生成されるラベリング情報も格納できるような容量を持たせている。このようにすることでライン単位でのフラッシュ処理を保証することができる。
【００５０】
＜第七の実施態様＞
本態様に係るラベリング処理装置（画像処理装置１）において、ラベリング処理部２０は、ラベリング処理結果として、ラベル同士の接続関係を表す接続情報と、ラベルを付与された画素の数及び存在範囲をラベル毎に示す付加情報とを生成して第一ラベリング情報格納部３０に記憶させ、画像データ中の各画素と各画素に付与されたラベルとの対応関係を示す画素・ラベル情報を生成して第二ラベリング情報格納部５０に記憶させることを特徴とする。
本態様によれば、ラベリング処理中にリアルタイムで変更される接続情報と付加情報を第一ラベリング情報格納部に記憶させ、ラベリング処理中に変更されない画素・ラベル情報を第二ラベリング情報格納部に記憶させるので、第一ラベリング情報格納部の記憶容量を低容量化することができる。
【符号の説明】
【００５１】
１…画像処理装置（ラベリング処理装置）、１１…ＣＰＵ、１２…レジスタ、１３…ラベリング演算処理部、１４…ライン、１５…メモリ、１６…Ｉ／Ｆ部、１７…二値化処理部、１８…ノイズ除去部、１９…制御部、２０…ラベリング処理部、２１…現ライン処理部、２２…ライン前処理結果保持部、３０…第一ラベリング情報格納部、３１…現在処理接続情報格納部、３２…前処理接続情報格納部、３３…第一付加情報格納部、４０…フラッシュ制御部、４１…ラベル数判定部、４２…コントローラ、５０…第二ラベリング情報格納部、５１…全接続情報格納部、５２…第二付加情報格納部、５３…画素・ラベル情報保持部、５４ａ〜５４ｃ…格納領域、５５…付加情報格納領域、５６…現在処理接続情報格納領域、５７…前処理接続情報格納領域、６０…ラベル連結処理部、７０…走査マスク、７１…注目画素、７２ａ〜７２ｄ…参照画素
【図１】
2019003469.tif 000003
【図２】
2019003469.tif 000004
【図３】
2019003469.tif 000005
【図４】
2019003469.tif 000006
【図５】
2019003469.tif 000007
【図６】
2019003469.tif 000008
【図７】
2019003469.tif 000009
【図８】
2019003469.tif 000010
【図９】
2019003469.tif 000011
【図１０】
2019003469.tif 000012
【図１１】
2019003469.tif 000013
【図１２】
2019003469.tif 000014
【図１３】
2019003469.tif 000015
【図１４】
2019003469.tif 000016