(57)【要約】【課題】ラべリング処理をより高速に行う。【解決手段】実施形態の画像処理装置は、ラベルを付与する付与処理の対象とする処理対象画像のうち、付与処理の対象とする処理対象ラインの前に付与処理の対象としたラインに含まれる前段画素に付与された第１のラベルを記憶するラベル記憶部と、同じラベルが付与された画素により形成されるラベル領域を特定する特定情報を記憶するラベル領域記憶部と、処理対象ラインの１以上の注目画素が有効画素の場合、第１のラベルを含む、１以上の注目画素の周辺画素に付与された１以上のラベルに基づいて、１以上の注目画素に付与処理を行う付与部と、１以上の注目画素の位置と、１以上の注目画素に付与されたラベルとに基づいて、特定情報を更新する更新処理を行うラベル領域更新部と、を備える。【選択図】図１
2017215689.tif 000002
【特許請求の範囲】
【請求項１】
ラベルを付与する付与処理の対象とする処理対象画像のうち、前記付与処理の対象とする処理対象ラインの前に前記付与処理の対象としたラインに含まれる前段画素に付与された第１のラベルを記憶するラベル記憶部と、
同じラベルが付与された画素により形成されるラベル領域を特定する特定情報を記憶するラベル領域記憶部と、
前記処理対象ラインの１以上の注目画素が有効画素の場合、前記第１のラベルを含む、前記１以上の注目画素の周辺画素に付与された１以上のラベルに基づいて、前記１以上の注目画素に前記付与処理を行う付与部と、
前記１以上の注目画素の位置と、前記１以上の注目画素に付与されたラベルとに基づいて、前記特定情報を更新する更新処理を行うラベル領域更新部と、
を備える画像処理装置。
【請求項２】
異なる複数の前記第１のラベルが付与されていた前記前段画素を含むラベル領域が、前記更新処理により統合された場合、統合前のラベル領域に含まれる前記前段画素に付与されていた前記第１のラベルと、統合されたラベル領域に新たに付与される第２のラベルと、を関連付けた変換情報を更新する変換情報更新部を更に備え、
前記付与部は、前記処理対象ラインの１以上の注目画素が有効画素の場合、前記第１のラベルを前記変換情報により前記第２のラベルに変換し、前記第２のラベルを含む、前記１以上の注目画素の周辺画素に付与された１以上のラベルに基づいて、前記１以上の注目画素に前記付与処理を行う、
請求項１に記載の画像処理装置。
【請求項３】
前記変換情報は、前記第１のラベルがアドレスを示し、前記第２のラベルが前記アドレスに記憶される変換情報記憶部に記憶され、
前記変換情報更新部は、前記変換情報メモリの複数のアドレスに並列にアクセスすることにより、複数の前記第２のラベルを並列に更新する、
請求項２に記載の画像処理装置。
【請求項４】
前記処理対象ライン上の画素に対するラベルの付与処理が終了した場合、前記ラベル記憶部のアドレスから読み出した前記第１のラベルを、前記変換情報記憶部の読み出しアドレスとして、前記ラベル記憶部に入力することにより取得された前記第２のラベルを、前記ラベル記憶部のアドレスに書き戻すことにより、前記ラベル記憶部を更新するラベル更新部、
を更に備える請求項３に記載の画像処理装置。
【請求項５】
前記ラベル記憶部は、複数のメモリにより構成され、
前記ラベル更新部は、前記複数のメモリに並列にアクセスすることにより、前記ラベル記憶部を更新する、
請求項４に記載の画像処理装置。
【請求項６】
前記処理対象ライン上の画素に対するラベルの付与処理が終了した場合、前記変換情報更新部は、前記変換情報記憶部のアドレスと、前記変換情報記憶部のアドレスに記憶される前記第２のラベルと、を一致させることにより、前記変換情報記憶部を初期化する、
請求項２乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記付与部は、前記ラベルが使用されているか否かを、前記ラベル毎に１ビットで記憶する記憶素子を並列に検索することにより、未使用の前記ラベルを取得する、
請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記付与部は、前記処理対象画像の付与処理が終了したときに、前記記憶素子を並列に検索することにより、使用されている前記ラベルを取得し、前記ラベル領域記憶部から、使用されている前記ラベルにより識別されるラベル領域の特定情報を取得し、前記ラベル領域記憶部から取得された特定情報をプロセッサに通知する、
請求項７に記載の画像処理装置。
【請求項９】
前記周辺画素は、前記１以上の注目画素の上の上画素と、前記１以上の注目画素の左の左画素と、を含み、
前記処理対象ラインが、前記処理対象画像の上端の場合、前記上画素のラベルを、無効なラベルとし、
前記１以上の注目画素が、前記処理対象ラインの左端の場合、前記左画素のラベルを無効なラベルとする、
請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
ラベルを付与する付与処理の対象とする処理対象画像のうち、前記付与処理の対象とする処理対象ラインの前に前記付与処理の対象としたラインに含まれる前段画素に付与された第１のラベルを記憶するラベル記憶部と、
同じラベルが付与された画素により形成されるラベル領域を特定する特定情報を記憶するラベル領域記憶部と、を備える画像処理装置の画像処理方法であって、
前記処理対象ラインの１以上の注目画素が有効画素の場合、前記第１のラベルを含む、前記１以上の注目画素の周辺画素に付与された１以上のラベルに基づいて、前記１以上の注目画素に前記付与処理を行うステップと、
前記１以上の注目画素の位置と、前記１以上の注目画素に付与されたラベルとに基づいて、前記特定情報を更新する更新処理を行うステップと、
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
イメージセンサにより取得された画像から、物体の距離及び位置を計測する画像処理技術が従来から知られている。例えば画像から物体の距離及び位置を計測する前に行われる画像処理として、画像に含まれる領域にラベルを付与することにより、画像内の領域を識別するラベリング処理が知られている。
【０００３】
特許文献１には、ＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）を利用することにより、暫定ラベル数を制限せずにラべリング処理を行う画像処理装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら従来の技術では、イメージセンサから出力される画像の出力フレームレートが高い程、出力フレームレートと同じ周期でラベリング処理を行うことが困難だった。
【０００５】
本発明は、上記に鑑みてなされたものであって、ラべリング処理をより高速に行うことができる画像処理装置及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、ラベルを付与する付与処理の対象とする処理対象画像のうち、前記付与処理の対象とする処理対象ラインの前に前記付与処理の対象としたラインに含まれる前段画素に付与された第１のラベルを記憶するラベル記憶部と、同じラベルが付与された画素により形成されるラベル領域を特定する特定情報を記憶するラベル領域記憶部と、前記処理対象ラインの１以上の注目画素が有効画素の場合、前記第１のラベルを含む、前記１以上の注目画素の周辺画素に付与された１以上のラベルに基づいて、前記１以上の注目画素に前記付与処理を行う付与部と、前記１以上の注目画素の位置と、前記注目画素に付与されたラベルとに基づいて、前記特定情報を更新する更新処理を行うラベル領域更新部と、を備える。
【発明の効果】
【０００７】
本発明によれば、ラべリング処理をより高速に行うことができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は実施形態の画像処理システムのハードウェア構成の例を示す図である。
【図２】図２は実施形態のラベル領域を含む画像の例を示す図である。
【図３】図３は実施形態の画像処理装置の機能構成の例を示す図である。
【図４】図４は実施形態の周辺画素の例を示す図である。
【図５】図５は実施形態のラベル領域を特定する特定情報の例を示す図である。
【図６Ａ】図６Ａは実施形態のラべリング処理対象の画像の例を示す図である。
【図６Ｂ】図６Ｂは、図６Ａの画像のラべリング処理の途中経過の例を示す図である。
【図７】図７はラベルメモリを書き換える場合の問題点を説明するための図である。
【図８】図８は実施形態の変換情報メモリの更新例を示す図である。
【図９】図９は実施形態の使用ラベルテーブルメモリの例を示す図である。
【図１０Ａ】図１０Ａは実施形態の画像処理方法の例を示すフローチャートである。
【図１０Ｂ】図１０Ｂは実施形態の画像処理方法の例を示すフローチャートである。
【図１１】図１１は実施形態の更新処理の例を示す図である。
【図１２】図１２は実施形態の初期化された変換情報メモリの例を示す図である。
【図１３】図１３は実施形態の画像処理装置の適用例を示す図である。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、画像処理装置及び画像処理方法の実施形態を詳細に説明する。
【００１０】
［画像処理システムのハードウェア構成］
はじめに実施形態の画像処理システムのハードウェア構成の例について説明する。
【００１１】
図１は実施形態の画像処理システム１００のハードウェア構成の例を示す図である。実施形態の画像処理システム１００は、イメージセンサ１０、画像処理装置２０及びプロセッサ３０を備える。画像処理装置２０は、受信回路２１、ラインバッファ２２、ラべリング回路２３、ラベルメモリ２４、ラベル領域メモリ２５、変換情報メモリ２６及び使用ラベルテーブルメモリ２７を備える。
【００１２】
イメージセンサ１０は、画像を取得すると、当該画像を示す画像信号を受信回路２１に入力する。
【００１３】
受信回路２１は、イメージセンサ１０から画像信号を受信すると、ラベルの付与処理の対象とする処理対象ラインとして、画像の水平方向の１ライン分の画素値をラインバッファ２２に入力する。
【００１４】
ラインバッファ２２は、処理対象ラインの画素の画素値を記憶する。
【００１５】
ラべリング回路２３は、ラインバッファ２２から１画素ずつ画素を読み出し、当該画素のラベリング処理を行う。なおラべリング回路２３は、ラインバッファ２２から複数の画素を同時に読み出してもよい。ラべリング処理は、付与処理及び更新処理を含む。
【００１６】
付与処理は、処理対象ライン毎にラベルを付与することにより、画像に含まれる領域にラベルを付与する処理である。ラベルは、画像上の領域を識別する識別情報である。実施形態の説明では、ラベルはラベル番号である。以下、同一のラベルが付与された連結された領域をラベル領域という。また、ラベル番号がｎのラベルの名称をラベルｎという。
【００１７】
更新処理は、付与処理で参照される各種メモリ（ラベルメモリ２４、ラベル領域メモリ２５、変換情報メモリ２６及び使用ラベルテーブルメモリ２７）を更新する処理である。ラベルメモリ２４、ラベル領域メモリ２５、変換情報メモリ２６及び使用ラベルテーブルメモリ２７は、ＲＡＭである。またラベルメモリ２４、ラベル領域メモリ２５、変換情報メモリ２６及び使用ラベルテーブルメモリ２７は、物理的に１つのメモリでもよいし、複数のメモリにより構成されていてもよい。
【００１８】
図２は実施形態のラベル領域を含む画像の例を示す図である。図２の例は、ラベル番号が１のラベルが付与されたラベル領域、ラベル番号が２のラベルが付与されたラベル領域、ラベル番号が３のラベルが付与されたラベル領域、及び、ラベル番号が４のラベルが付与されたラベル領域を含む画像を示す。
【００１９】
［画像処理装置の機能構成］
次に実施形態の画像処理装置２０の機能構成について説明する。
【００２０】
図３は実施形態の画像処理装置２０の機能構成の例を示す図である。実施形態の画像処理装置２０は、受信部２１１、記憶部２２１及びラべリング部２３０を備える。受信部２１１は、例えば受信回路２１により実現される。記憶部２２１は、例えばラインバッファ２２（処理対象ライン記憶部）、ラベルメモリ２４（ラベル記憶部）、ラベル領域メモリ２５、変換情報メモリ２６及び使用ラベルテーブルメモリ２７により実現される。ラべリング部２３は、付与部２３１、ラベル領域更新部２３２、変換情報更新部２３３、及び、ラベル更新部２３４を備える。ラべリング部２３０は、例えばラべリング回路２３により実現される。
【００２１】
付与部２３１は、画像上端から１ラインずつ取得された処理対象ライン上の画素を、左から１画素ずつ右方向にスキャンすることにより、注目画素にラベルを付与する付与処理を行う。具体的には、付与部２３１は、注目画素が有効画素であるか否かを判定する。付与部２３１は、例えば注目画素の画素値が閾値以上の場合、当該注目画素が有効画素であると判定する。そして付与部２３１は、注目画素が有効画素である場合、注目画素の周辺画素に付与された１以上のラベル番号に基づいて、注目画素にラベルを付与する付与処理を行う。
【００２２】
なお付与部２３１は、注目画素の輝度値により、当該注目画素が有効画素であるか否かを判定してもよい。
【００２３】
図４は実施形態の周辺画素の例を示す図である。図４の例では、注目画素の上の周辺画素（以下、「上画素」という。）のラベル番号、及び、注目画素の左の周辺画素（以下、「左画素」という。）のラベル番号に基づいて、ラベルの付与処理を行う。ラベルの付与処理の詳細は、図１１を参照して後述する。
【００２４】
なお実施形態の説明では、４近傍ラベリングアルゴリズムについて説明するが、ラべリングアルゴリズムは、４近傍ラべリングアルゴリズムに限られない。ラべリングアルゴリズムは、例えば８近傍ラベリングアルゴリズムでもよい。また実施形態の説明では、注目画素が１つの場合を例にして説明しているが、ラべリング部２３０は、ラインバッファ２２から複数の画素を読み出すことにより、複数の注目画素（複数の画素を含む領域）毎にラべリング処理を行ってもよい。
【００２５】
図４の例では、処理対象ライン上の注目画素の上画素は、処理対象ラインの前に付与処理の対象としたラインに含まれる。したがって、付与部２３１が、処理対象ライン上の注目画素にラベルを付与するためには、処理対象ラインの前に前記付与処理の対象としたラインに含まれる前段画素（実施形態の説明では上画素）に付与されたラベル番号が必要になる。
【００２６】
図１に戻り、ラベルメモリ２４は、処理対象ラインの前に付与処理の対象としたラインに含まれる前段画素に付与されたラベル番号を、第１のラベルとして記憶する。実施形態の説明では、ラベルメモリ２４の深さは、処理対象の画像の幅と同じである。例えば画像の幅が５１２ドットの場合、ラベルメモリ２４の深さは５１２である。
【００２７】
ラベル領域メモリ２５は、同じラベルが付与された画素により形成されるラベル領域を特定する特定情報を記憶する。
【００２８】
図５は実施形態のラベル領域を特定する特定情報の例を示す図である。実施形態の特定情報は、ラベル番号、及び、座標情報（最小ｘ座標、最大ｘ座標、最小ｙ座標及び最大ｙ座標）を含む。図５の例では、最小ｘ座標、最大ｘ座標、最小ｙ座標及び最大ｙ座標により、ラベル領域を、当該ラベル領域の外接矩形として特定することができる。実施形態の説明では、ｘ座標及びｙ座標の原点は、画像左上の隅である。
【００２９】
なお図５の例では、簡単のため、ラベル領域を外接矩形として特定する場合について説明しているが、特定情報は、ラベル領域の位置及び大きさをより詳細に特定するデータ形式を有していてもよい。また特定情報は、位置及び大きさを示す情報に限定されない。特定情報は、例えばラベル領域に含まれる画素の特徴を示す特徴量を含んでいてもよい。特徴量は、例えば画素の輝度を示す輝度情報等である。ラベル領域の特定に輝度情報が利用される場合、例えばラベル領域は、輝度が所定の条件を満たす画素の集合として特定されてもよい。
【００３０】
図３に戻り、ラベル領域更新部２３２は、注目画素の位置と、注目画素に付与されたラベルとに基づいて、ラベル領域の特定情報を更新する。
【００３１】
ここで、ラべリング処理の過程で、２つの異なるラベルにより識別される領域が、１つの領域に統合される場合がある。この場合、２つの異なるラベルを、同じラベルに統合する必要がある。実施形態の説明では、統合された領域に付与されるラベルのラベル番号は、注目画素の上画素に付与されていたラベル番号である。なお統合された領域に付与されるラベルのラベル番号を決定する方法は任意でよい。統合された領域に付与されるラベルのラベル番号は、例えば２つの異なるラベルのラベル番号のうち、小さい方のラベル番号でもよい。
【００３２】
２つの異なるラベルにより識別される領域が、１つの領域に統合される場合の例について説明する。
【００３３】
図６Ａは実施形態のラべリング処理対象の画像の例を示す図である。図６Ａの例は、ラベルが付与される領域を１つ含む場合を示す。
【００３４】
図６Ｂは、図６Ａの画像のラべリング処理の途中経過の例を示す図である。図６Ｂの例は、図６Ａに含まれる領域が、ラベル番号が５のラベルが付与されたラベル領域、及び、ラベル番号が６のラベルが付与されたラベル領域として識別されている場合を示す。
【００３５】
２つの異なるラベルにより識別されているラベル領域が、１つのラベル領域に統合された場合、ラベルメモリ２４に記憶されているラベル番号を、統合されたラベル領域に付与されるラベル番号に書き換えなければ、処理対象ラインのラべリング処理が正常にできなくなる。
【００３６】
図７はラベルメモリ２４を書き換える場合の問題点を説明するための図である。図７は、ラベル番号が５であるラベル領域と、ラベル番号が３であるラベル領域とが、ラベル番号が３であるラベル領域に統合された場合のラベルメモリ２４の書き換え例を示す。現在参照しているラベルメモリ２４のアドレス１０１から遡って、ラベル番号が５であるアドレスが参照され、当該アドレスが記憶するラベル番号が３に書き換えられている。
【００３７】
しかしながら、上述の図７の例のように、ラベル領域が統合される度に、ラベルメモリ２４の書き換えが行われると、イメージセンサ１０から出力される画像に含まれる領域のラべリング処理をリアルタイムに行うことが困難になる。
【００３８】
このため、実施形態の画像処理装置２０では、ラベル領域の統合が発生する度に、ラベルメモリ２４を更新しないようにするために、変換情報メモリ２６が使用される。
【００３９】
変換情報メモリ２６（図１参照）は、ラベルメモリ２４に記憶されたラベル番号を変換する変換情報を記憶する記憶素子である。変換情報は、統合前のラベル領域に含まれる前段画素に付与されていた第１のラベルと、統合されたラベル領域に新たに付与される第２のラベルと、を関連付けて記憶する。変換情報のデータ形式は任意でよい。実施形態の変換情報のデータ形式は、ルックアップテーブルである。変換情報メモリ２６は、ラベル番号をアドレスとして、付与可能なラベルの数と同じ数の記憶領域を有する。
【００４０】
変換情報更新部２３３（図３参照）は、異なる複数のラベルが付与されていた前段画素を含むラベル領域が、ラベル領域更新部２３２の更新処理により統合された場合、統合前のラベル領域に含まれる前段画素に付与されていたラベル番号（第１のラベル）を、統合されたラベル領域に新たに付与されるラベル番号（第２のラベル）に変換するように、変換情報メモリ２６を更新する。
【００４１】
変換情報メモリ２６の各アドレスに記憶されたラベル番号の更新、及び、読出しは、並列（同時）に行われる。したがって、変換情報更新部２３３が、複数のアドレスにアクセスする場合でも、ラベル番号の更新にかかる時間は、１つのアドレスにアクセスする場合と同じである。同様に、付与部２３１が、複数のアドレスにアクセスする場合でも、ラベル番号の読出しにかかる時間は、１つのアドレスにアクセスする場合と同じである。
【００４２】
図８は実施形態の変換情報メモリ２６の更新例を示す図である。図８の例では、上段のアドレスが、変換前のラベル番号（第１のラベル）を示し、下段のラベル番号（上段のアドレスに記憶されている値）が変換後のラベル番号（第２のラベル）を示す。
【００４３】
変換情報メモリの初期状態では、アドレスと当該アドレスの値とは一致する。すなわち変換前のラベル番号（第１のラベル）と、変換後のラベル番号（第２のラベル）とは一致する。
【００４４】
例えばラベル番号５のラベル領域が、ラベル番号２のラベル領域に統合された場合、変換情報更新部２３３は、変換情報メモリ２６のアドレス５に記憶されているラベル番号を５から２に更新する。
【００４５】
更に、ラベル番号７のラベル領域が、ラベル番号２のラベル領域に統合された場合、変換情報更新部２３３は、変換情報メモリ２６のアドレス７に記憶されているラベル番号を７から２に更新する。
【００４６】
更に、ラベル番号２のラベル領域が、ラベル番号１のラベル領域に統合された場合、変換情報更新部２３３は、変換情報メモリ２６のアドレス２、５及び７に記憶されているラベル番号を２から１に更新する。
【００４７】
なお図８の変換情報メモリ２６の例では、アドレス０に記憶されているラベル番号０は、ラべリング処理に使用されない無効ラベルとして扱われる。したがって図８の変換情報メモリ２６の例では、ラべリング処理の対象となる画像に含まれる最大１５個の領域にラベルを付与することができる。
【００４８】
使用ラベルテーブルメモリ２７（図１参照）は、ラベル番号が使用されているか否かを記憶する。
【００４９】
図９は実施形態の使用ラベルテーブルメモリ２７の例を示す図である。図９の使用ラベルテーブルメモリ２７の例では、アドレスがラベル番号を表し、当該アドレスは１ビットの情報を有する記憶素子である。ラベル番号が使用されている場合、当該ラベル番号を示すアドレスに１が設定される。ラベル番号が使用されていない場合、当該ラベル番号を示すアドレスに０が設定される。なおラベル番号０は、無効ラベルとして扱われるため、ラベル番号０を示すアドレス０には、常に１が設定される。
【００５０】
使用ラベルテーブルメモリ２７の各アドレスに記憶された値の更新、及び、読出しは、付与部２３１により並列（同時）に行われる。これにより、ハードウェアを単純化できるので、画像処理装置２０のコストの削減、及び、ラべリング処理の高速化を実現することができる。
【００５１】
付与部２３１（図３参照）は、新たなラベル番号を領域に付与する場合、使用ラベルテーブルメモリ２７の各アドレスに記憶された値を、並列に読出す。そして付与部２３１は、値が０であるアドレスのうち、最小のアドレスの値を１とするとともに、当該最小のアドレスが示すラベル番号を領域に付与する。
【００５２】
ラベル更新部２３４は、ラベルメモリ２４を更新する。具体的には、ラベル更新部２３４は、処理対象ラインのｘ番目の注目画素が、有効画素でない場合、ラベルメモリ２４のアドレスｘに、無効ラベルを示す０を書き込む。また、ラベル更新部２３４は、処理対象ライン上の画素に対するラベルの付与処理（１ライン分のラベルの付与処理）が終了した場合、ラベルメモリ２４のアドレスから読み出したラベル番号（第１のラベル）を、変換情報メモリ２６の読み出しアドレスとして、変換情報メモリ２６に入力する。そしてラベル更新部２３４は、変換情報メモリ２６から取得された第２のラベルを、ラベルメモリ２４のアドレスに書き戻すことにより、ラベルメモリ２４を更新する。
【００５３】
［画像処理方法］
次に実施形態の画像処理方法について説明する。
【００５４】
図１０Ａ及びＢは実施形態の画像処理方法の例を示すフローチャートである。図１０Ａ及びＢの例では、一例として、イメージセンサ１０から、水平５１２ドット、垂直２５６ラインの画像が出力される場合について説明する。
【００５５】
はじめに、イメージセンサ１０が画像を出力する（ステップＳ１）。
【００５６】
次に、付与部２３１が、水平方向の読出しアドレスｘを０に初期化し、垂直方向の読出しアドレスｙを０に初期化する（ステップＳ２）。
【００５７】
次に、受信部２１が、画像からｙ行目の処理対象ラインを取得し、当該処理対象ラインをラインバッファ２２に記憶する（ステップＳ３）。
【００５８】
次に、付与部２３１が、ラインバッファ２２に記憶された処理対象ライン上のｘ番目の注目画素を１つ読み取り、当該注目画素の画素値をｐｉｘに代入する（ステップＳ４）。
【００５９】
次に、付与部２３１が、ｐｉｘが閾値以上か否かを判定することにより、注目画素が有効画素であるか否かを判定する（ステップＳ５）。
【００６０】
注目画素が有効画素でない場合（ステップＳ５、Ｎｏ）、付与部２３１が、ｐｉｘ＝０とする（ステップＳ６）。次に、ラベル更新部２３４が、ラベルメモリ２４のアドレスｘに、無効ラベルを示す０を書き込む（ステップＳ７）。
【００６１】
次に、付与部２３１が、ｘにｘ＋１を代入し（ステップＳ８）、ステップＳ４の処理に戻る。なお、ｐｉｘ＝０の場合の処理クロック数を、ｐｉｘ≠０の場合の処理クロック数と同じにするために、所定のクロック数待ってから、ステップＳ４の処理に戻ってもよい。
【００６２】
注目画素が有効画素である場合（ステップＳ５、Ｙｅｓ）、付与部２３１は、ｙ＝０であるか否かを判定する（ステップＳ９）。
【００６３】
ｙ＝０の場合（ステップＳ９、Ｙｅｓ）、付与部２３１は、上画素のラベル番号を示すｕｌｍに０を代入する（ステップＳ１０）。次に、処理はステップＳ１３に進む。
【００６４】
ｙ＝０でない場合（ステップＳ９、Ｎｏ）、付与部２３１は、ラベルメモリ２４のアドレスｘから、ラベル番号（第１のラベル）を読み出す（ステップＳ１１）。次に、付与部２３１は、ステップＳ１１の処理により読み出されたラベル番号を、変換情報メモリ２６の読み出しアドレスとして、変換情報メモリ２６に入力することにより、変換情報メモリ２６から取得されたラベル番号（第２のラベル）を、ｕｌｍに代入する（ステップＳ１２）。
【００６５】
次に、付与部２３１が、ｘ＝０であるか否かを判定する（ステップＳ１３）。ｘ＝０の場合（ステップＳ１３、Ｙｅｓ）、左画素のラベル番号を示すｌｅｆｔを０に初期化する（ステップＳ１４）。これにより付与部２３１を、ＩＣ等のハードウェアで実現する場合、ハードウェアを単純化できるので、画像処理装置２０のコストを削減することができる。
【００６６】
ｘ＝０でない場合（ステップＳ１３、Ｎｏ）、ｌｅｆｔに代入されているラベル番号を読み出す（ステップＳ１５）。
【００６７】
次に、ラベル領域更新部２３２、変換情報更新部２３３及びラベル更新部２３４が、ラベルメモリ２４、ラベル領域メモリ２５及び変換情報メモリ２６の更新処理を行う（ステップＳ１６）。
【００６８】
ここでステップＳ１６の処理により行われる更新処理の詳細について説明する。
【００６９】
図１１は実施形態の更新処理の例を示す図である。図１１の例では、上画素にラベルが付与されている場合を、ラベル番号が１のラベルが付与されている場合を例にして説明する。また、上画素のラベルと異なるラベルが左画素に付与されている場合を、ラベル番号が２のラベル番号が左画素に付与されている場合を例にして説明する。
【００７０】
＜パターン１＞
付与部２３１は、上画素に付与されたラベルがラベル１であり、かつ、左画素に付与されたラベルがラベル１の場合、注目画素がラベル１のラベル領域に含まれると判定する。
【００７１】
パターン１の場合、ラベル領域更新部２３２は、ラベル領域メモリ２５を更新しない。
【００７２】
また、パターン１の場合、変換情報更新部２３３は、変換情報メモリ２６を更新しない。
【００７３】
また、パターン１の場合、ラベル更新部２３４は、ラベルメモリ２４を更新しない。
【００７４】
＜パターン２＞
付与部２３１は、上画素に付与されたラベルがラベル１であり、かつ、左画素に付与されたラベルがラベル２の場合、注目画素がラベル１のラベル領域に含まれると判定する。
【００７５】
パターン２の場合、ラベル領域更新部２３２は、ラベル２のラベル領域を、ラベル１のラベル領域に統合する。具体的には、ラベル領域更新部２３２は、ラベル１のラベル領域の最小ｘ座標を、ラベル１の最小ｘ座標と、ラベル２の最小ｘ座標と、のうち小さい方により更新する。また、ラベル領域更新部２３２は、ラベル１のラベル領域の最大ｘ座標を、ラベル１の最大ｘ座標と、ラベル２の最大ｘ座標と、のうち大きい方により更新する。また、ラベル領域更新部２３２は、ラベル１のラベル領域の最小ｙ座標を、ラベル１の最小ｙ座標と、ラベル２の最小ｙ座標と、のうち小さい方により更新する。また、ラベル領域更新部２３２は、ラベル１のラベル領域の最大ｙ座標を、ラベル１の最大ｙ座標と、ラベル２の最大ｙ座標と、のうち大きい方により更新する。
【００７６】
また、ラベル領域更新部２３２は、アドレス２に記憶されたラベル領域のラベル番号を２から１に更新する。これにより、アドレス２と、アドレス２に記憶されているラベル番号と、が不一致になる。なお後述のステップＳ２２−１の処理により、アドレス番号とラベル番号とが一致しないアドレス番号は、未使用のラベル番号として再利用される。
【００７７】
また、パターン２の場合、変換情報更新部２３３は、ラベル番号２を、ラベル番号１に変換するように変換情報メモリ２６を更新する。
【００７８】
また、パターン２の場合、ラベル更新部２３４は、ラベルメモリ２４を更新しない。
【００７９】
＜パターン３＞
付与部２３１は、上画素に付与されたラベルがラベル１であり、かつ、左画素が有効画素でない場合（ｌｅｆｔ＝０）、注目画素がラベル１のラベル領域に含まれると判定する。
【００８０】
パターン３の場合、ラベル領域更新部２３２は、ラベル１のラベル領域を更新する。具体的には、ラベル領域更新部２３２は、ラベル１のラベル領域の最大ｙ座標を、現在ｙ座標により更新する。
【００８１】
また、パターン３の場合、変換情報更新部２３３は、変換情報メモリ２６を更新しない。
【００８２】
また、パターン３の場合、ラベル更新部２３４は、ラベルメモリ２４を更新しない。
【００８３】
＜パターン４＞
付与部２３１は、上画素が有効画素でなく（ｕｌｍ＝０）、かつ、左画素に付与されたラベルがラベル１の場合、注目画素がラベル１のラベル領域に含まれると判定する。
【００８４】
パターン４の場合、ラベル領域更新部２３２は、ラベル１のラベル領域を更新する。具体的には、ラベル領域更新部２３２は、ラベル１のラベル領域の最大ｘ座標を、現在ｘ座標により更新する。
【００８５】
また、パターン４の場合、変換情報更新部２３３は、変換情報メモリ２６を更新しない。
【００８６】
また、パターン４の場合、ラベル更新部２３４は、ラベルメモリ２４のアドレスｘに、ラベル番号１を書き込む。
【００８７】
＜パターン５＞
付与部２３１は、上画素が有効画素でなく（ｕｌｍ＝０）、かつ、左画素が有効画素でない場合（ｌｅｆｔ＝０）、使用ラベルテーブルメモリ２７の各アドレスに記憶された値を、並列に読出す。そして付与部２３１は、値が０であるアドレスのうち、最小のアドレスの値を１とするとともに、当該最小のアドレスが示すラベル番号を領域に付与する。ここでは、説明のため、最小のアドレスが示すラベル番号を１とする。
【００８８】
なお、付与部２３１は、まだ使用されていない空きラベル番号がない場合、これ以上ラベリング処理ができないことをプロセッサ３０に通知してもよい。
【００８９】
パターン５の場合、ラベル領域更新部２３２は、ラベル１のラベル領域の最小ｘ座標を、現在ｘ座標により更新する。また、ラベル領域更新部２３２は、ラベル１のラベル領域の最大ｘ座標を現在ｘ座標により更新する。また、ラベル領域更新部２３２は、ラベル１のラベル領域の最小ｙ座標を、現在ｙ座標により更新する。また、ラベル領域更新部２３２は、ラベル１のラベル領域の最大ｙ座標を、現在ｙ座標により更新する。
【００９０】
また、パターン５の場合、変換情報更新部２３３は、変換情報メモリ２６を更新しない。
【００９１】
また、パターン５の場合、ラベル更新部２３４は、ラベルメモリ２４のアドレスｘに、ラベル番号１を書き込む。
【００９２】
図１０Ｂに戻り、次に、付与部２３１は、ステップＳ１６の処理により注目画素に付与されたラベル番号をｌｅｆｔに代入する（ステップＳ１７）。図１１の例では、付与部２３１は、ｌｅｆｔにラベル番号１を代入する。
【００９３】
次に、付与部２３１は、ｘにｘ＋１を代入する（ステップＳ１８）。次に、付与部２３１は、ｘ＝５１２であるか否かを判定する（ステップＳ１９）。ｘ＝５１２でない場合（ステップＳ１９、Ｎｏ）、処理はステップＳ４に戻る。ｘ＝５１２の場合（ステップＳ１９、Ｙｅｓ）、付与部２３１は、ｘに０を代入し、ｙにｙ＋１を代入する（ステップＳ２０）。
【００９４】
次に、付与部２３１は、ｙ＝２５６であるか否かを判定する（ステップＳ２１）。
【００９５】
ｙ＝２５６でない場合（ステップＳ２１、Ｎｏ）、付与部２３１による後述のステップＳ２２−１の処理と、ラベル更新部２３４による後述のステップＳ２２−２の処理と、を行う。
【００９６】
付与部２３１は、使用ラベルテーブルメモリ２７を更新する（ステップＳ２２−１）。具体的には、付与部２３１は、ラベル番号１の使用有無を示すアドレス１から、ラベル番号の最大値ｎ（実施形態の説明ではｎ＝１５）の使用有無を示すアドレスｎに記憶されている値（０又は１）を更新する。付与部２３１は、ラベル領域メモリ２５のラベル番号を読出し、使用ラベルテーブルメモリ２７のアドレスと比較し、等しければ次のアドレスの処理を行う。一致しない場合は、そのラベル番号の使用有無を示すアドレスが記憶する値を０に書換え、当該ラベル番号を未使用ラベルとして再利用できるようにする。すなわち、ラベル領域メモリ２５のアドレスと、当該アドレスに記憶されているラベル番号と、が一致していないアドレスの番号を、未使用のラベル番号として再利用できるようにする。
【００９７】
ステップＳ２２−１の処理により、統合により不要となったラベル番号を、次の処理対象ラインで再利用できる。これによりラベル番号の再利用ができない場合に比べ、ラベル番号を枯渇させる可能性を低下させることができる。また、ラベル番号の再利用ができない場合に比べ、付与可能なラベル番号の上限をより小さくすることができる。
【００９８】
一方、ラベル更新部２３４は、変換情報メモリ２６に記憶されている変換情報に基づいて、ラベルメモリ２４を更新する（ステップＳ２２−２）。具体的には、ラベル更新部２３４は、ラベルメモリ２４のアドレス０から、アドレスｍ（実施形態の説明ではｍ＝５１２）に記憶されたラベル番号（第１のラベル）を更新する。ラベル更新部２３４は、ラベルメモリ２４のアドレスから読み出したラベル番号（第１のラベル）を、変換情報メモリ２６の読み出しアドレスとして、変換情報メモリ２６に入力することにより、変換情報メモリ２６から取得されたラベル番号（第２のラベル）を、当該アドレスに書き戻す。
【００９９】
ステップＳ２２−２の処理により、ラベル番号が統合された場合でも、次の処理対象ラインの処理が行われる前に、ラベルメモリ２４に記憶されたラベル番号（第１のラベル）を最新の状態に書き換えることができる。
【０１００】
なお、実施形態の説明では、ラベルメモリ２４の深さは、処理対象の画像の幅と同じであるが、ラベルメモリ２４を、複数のメモリに分割することにより、ラベルメモリ２４の更新処理を並列にできるようにしてもよい。例えば処理対象の画像の幅が５１２ドットの場合、ラベルメモリ２４を４つのメモリに分割すると、５１２クロックかかっていた更新処理が、１２８クロックですむ。また、ラベルメモリ２４の更新処理は、ピクセルクロックと同じである必要はなく、より高速なクロックであることが望ましい。
【０１０１】
次に、変換情報更新部２３３が、変換情報メモリ２６を初期化する（ステップＳ２３）。
【０１０２】
図１２は実施形態の初期化された変換情報メモリ２６の例を示す図である。変換情報変更部２３３は、変換情報メモリ２６の複数のアドレスに並列にアクセスする。これにより、変換情報変更部２３３は、１クロックの更新処理で、アドレスと、当該アドレスに記憶されるラベル番号と、を一致させる。
【０１０３】
図１０Ｂに戻り、付与部２３１による上述のステップＳ２２−１の処理と、変換情報更新部２３３による上述のステップＳ２３の処理と、が終了すると、処理は、ステップＳ３に戻る。
【０１０４】
ｙ＝２５６である場合（ステップＳ２１、Ｙｅｓ）、付与部２３１は、１画面分の画像のラベリング処理が完了したので、ラベル領域の特定情報をプロセッサ３０に通知する（ステップＳ２４）。具体的には、付与部２３１は、使用ラベルテーブルメモリ２７を参照することにより、有効なラベル番号（１画面分のラべリング処理の終了時点で付与されているラベル番号）を特定する。そして付与部２３１は、ラベル領域メモリ２５から有効なラベルの座標情報を取得し、有効なラベルのラベル番号と、当該座標情報と、を含む特定情報をプロセッサ３０に通知する。これにより、プロセッサ３０は、ラベル領域メモリ２５の全内容を読み取らなくても、有効なラベルの特定情報を取得することができる。
【０１０５】
なお、付与部２３１は、１画面分の画像のラベリング処理が完了した場合、有効なラベルの個数（付与されたラベルの個数）をプロセッサ３０に通知してもよい。これにより、後工程の処理に必要な情報が、有効なラベルの個数で十分な場合には、後工程の処理を簡単にすることができる。
【０１０６】
以上説明したように、実施形態の画像処理装置２０によれば、画像のデータサイズによらず、処理対象ライン毎のラべリング処理による一定の遅延時間で、画像内の領域にラベルを付与することができる。すなわち、画像入力に対して一定の遅延時間でラベリング結果を出力することができるため、高いフレームレートであってもラベリング処理をリアルタイムに行うことが可能となる。
【０１０７】
また、実施形態の画像処理装置２０では、イメージセンサ１０から出力される画像１枚分のデータを画像メモリに溜め込む必要がない。実施形態の画像処理装置２０では、処理対象ライン毎（１ライン毎）にラベリング処理を行うことにより、最終的には、１画面分のラベリング処理を完了させることができる。すなわち、画像全体を格納するためのメモリ、又は、画像サイズと同程度の暫定ラベルメモリが不要となるので、画像処理装置２０のコストダウンが可能となる。
【０１０８】
［画像処理装置の適用例］
次に実施形態の画像処理装置２０の適用例について説明する。従来のラベリング処理では、ラベリング結果を保持するためのラベル画像メモリが必要となる。ラベル画像メモリは、ラベル画像を元に、ラベル領域の周囲長及び円形度等の詳細な特定情報を算出するために使用される。しかしながら、ラベリング処理の目的として、詳細な特定情報が不要な場合もある。例えば、ラベル領域の重心点、最高輝度値、面積、輝度総和及び外接矩形等を特定する座標等が分かればよいという場合も多数ある。このような場合に、高いフレームレートで画像をラベリングするとき、従来は、大きなラベル画像メモリ、または、大きな画像メモリが使用されていたため、コストアップとなっていた。
【０１０９】
例えばインタラクティブホワイトボード（電子黒板）に、実施形態の画像処理装置２０を適用することにより、ラべリング処理の高速化、及び、コストダウンの効果が得られる。
【０１１０】
図１３は実施形態の画像処理装置２０の適用例を示す図である。図１３の例は、インタラクティブホワイトボード４０の画像処理に、実施形態の画像処理装置２０を適用する場合を示す。画像処理装置２０は、例えばインタラクティブホワイトボード４０に内蔵される。
【０１１１】
インタラクティブホワイトボード４０は、イメージセンサ１０ａ、イメージセンサ１０ｂ、表示部４１及び発光ペン４２を備える。イメージセンサ１０ａ及びイメージセンサ１０ｂは、発光ペン４２の発光点を含む画像を撮像する。画像処理装置２０は、上述のラべリング処理により、画像内の発光点をラベル領域として特定する。これによりインタラクティブホワイトボード４０は、表示部４１に発光ペン４２のペン先を表示したり、表示部４１に表示されたオブジェクトが選択されたか否かを判定したりする処理を行うことができる。
【０１１２】
（実施形態の変形例）
なお、上述の実施形態の画像処理装置１００の受信部２１、及び、ラべリング部２３（付与部２３１、ラベル領域更新部２３２、変換情報更新部２３３及びラベル更新部２３４）の一部又は全部は、プログラムにより実現されてもよい。受信部２１及びラべリング部２３の一部又は全部をプログラムにより実現する場合、画像処理装置２０は、例えばＣＰＵ等の制御装置を更に備える。また例えば、画像処理装置２０に、上述のプロセッサ３０を内蔵し、当該プロセッサ２０によりプログラムを実行してもよい。
【０１１３】
実施形態の変形例の画像処理装置２０で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、メモリカード、ＣＤ−Ｒ及びＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータ・プログラム・プロダクトとして提供される。
【０１１４】
また、実施形態の変形例の画像処理装置２０で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また実施形態の画像処理装置２０が実行するプログラムを、ダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
【０１１５】
また、実施形態の変形例の画像処理装置２０で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【符号の説明】
【０１１６】
１０  イメージセンサ
２０  画像処理装置
２１  受信部
２２  ラインバッファ
２３  ラべリング部
２４  ラベルメモリ
２５  ラベル領域メモリ
２６  変換情報メモリ
２７  使用ラベルテーブルメモリ
３０  プロセッサ
４０  インタラクティブホワイトボード
４１  表示部
４２  発光ペン
１００  画像処理システム
２１１  受信部
２２１  記憶部
２３０  ラべリング部
２３１  付与部
２３２  ラベル領域更新部
２３３  変換情報更新部
２３４  ラベル更新部
【先行技術文献】
【特許文献】
【０１１７】
【特許文献１】特開平０５−３４２３５０号公報
【図１】
2017215689.tif 000003
【図２】
2017215689.tif 000004
【図３】
2017215689.tif 000005
【図４】
2017215689.tif 000006
【図５】
2017215689.tif 000007
【図６Ａ】
2017215689.tif 000008
【図６Ｂ】
2017215689.tif 000009
【図７】
2017215689.tif 000010
【図８】
2017215689.tif 000011
【図９】
2017215689.tif 000012
【図１０Ａ】
2017215689.tif 000013
【図１０Ｂ】
2017215689.tif 000014
【図１１】
2017215689.tif 000015
【図１２】
2017215689.tif 000016
【図１３】
2017215689.tif 000017