(57)【特許請求の範囲】
【請求項１】
アドレスとデータとが対応付けられて記憶されている記憶手段と、
所定のマスクパターンを用いて入力画像を走査し、前記マスクパターン内の注目画素に対してラベルを付与する際に、
前記注目画素の複数の周辺画素に異なるラベルが付与されているか否かを判定し、
前記注目画素の複数の周辺画素に異なるラベルが付与されている場合、前記マスクパターンに含まれる周辺画素に付与されているラベルが、統合される方のラベルを表す第１のラベル及び統合する方のラベルを表す第２のラベルの何れであるかを判定し、該判定結果に基づいて、周辺画素に付与された第１のラベルを第２のラベルへと統合し、第２のラベルを前記注目画素に付与し、前記記憶手段のうちのアドレスが第１のラベルであるデータへ第２のラベルを格納し、
前記注目画素の複数の周辺画素に同一のラベルが付与されている場合、前記マスクパターンの周辺画素に付与されているラベルを、前記注目画素に対して付与し、
前記注目画素の複数の周辺画素のラベルを参照して前記注目画素に対してラベルを付与する際に、前記記憶手段を参照し、周辺画素のラベルが第１のラベルである場合、周辺画素の第１のラベルを、前記記憶手段の第１のラベルを表すアドレスに対応付けられた第２のラベルに置き換えて、前記注目画素に対してラベルを付与するラベリング手段と、
を含む画像処理装置。
【請求項２】
前記ラベリング手段によって前記注目画素にラベルが付与される毎に、前記ラベルが付与された画素からなる領域の面積を算出する面積算出手段を更に含む
請求項１に記載の画像処理装置。
【請求項３】
前記面積算出手段は、前記ラベリング手段によって前記注目画素の複数の周辺画素に付与されているラベルが同一のラベルに統合された場合に、前記複数の周辺画素に付与されている異なるラベルの各々について、前記ラベルが付与された画素からなる領域の面積を加算して、前記統合されたラベルが付与された画素からなる領域の面積を算出する
請求項２に記載の画像処理装置。
【請求項４】
前記面積算出手段によって算出された面積に基づいて、前記入力画像の被写体の表面に対象物が含まれるか否かを判別する判別手段を更に含む
請求項２又は請求項３に記載の画像処理装置。
【請求項５】
前記対象物は毛髪である請求項４に記載の画像処理装置。
【請求項６】
被測定物を照明する照明手段と、
照明された前記被測定物を撮影するカメラと、
前記カメラによって撮影された画像のエッジ画像を２値化処理する２値化手段と、を更に含み、
前記ラベリング手段は、前記２値化手段によって２値化された画像に含まれる各画素について、前記統合されたラベルを、前記注目画素に付与する
請求項１〜請求項５の何れか１項に記載の画像処理装置。
【請求項７】
前記照明手段は、紫外域の光を照射して前記被測定物を照明する請求項６に記載の画像処理装置。
【請求項８】
前記被測定物は布製品である請求項６又は請求項７に記載の画像処理装置。
【請求項９】
コンピュータを、
所定のマスクパターンを用いて入力画像を走査し、前記マスクパターン内の注目画素に対してラベルを付与する際に、
前記注目画素の複数の周辺画素に異なるラベルが付与されているか否かを判定し、
前記注目画素の複数の周辺画素に異なるラベルが付与されている場合、前記マスクパターンに含まれる周辺画素に付与されているラベルが、統合される方のラベルを表す第１のラベル及び統合する方のラベルを表す第２のラベルの何れであるかを判定し、該判定結果に基づいて、周辺画素に付与された第１のラベルを第２のラベルへと統合し、第２のラベルを前記注目画素に付与し、アドレスとデータとが対応付けられて記憶されている記憶手段のうちのアドレスが第１のラベルであるデータへ第２のラベルを格納し、
前記注目画素の複数の周辺画素に同一のラベルが付与されている場合、前記マスクパターンの周辺画素に付与されているラベルを、前記注目画素に対して付与し、
前記注目画素の複数の周辺画素のラベルを参照して前記注目画素に対してラベルを付与する際に、前記記憶手段を参照し、周辺画素のラベルが第１のラベルである場合、周辺画素の第１のラベルを、前記記憶手段の第１のラベルを表すアドレスに対応付けられた第２のラベルに置き換えて、前記注目画素に対してラベルを付与するラベリング手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来より、画像処理法を導入し、異物の検出を行う異物検出装置が知られている（特許文献１）。特許文献１に記載の技術では、布製品に付着した毛髪を検出することが記載されている。
【０００３】
また、検査対象物に対して紫外線照明を照射し、紫外領域において感度を有する撮像手段によって撮影することにより検査対象物に混入する生体異物を検出することが知られている（特許文献２）。
【０００４】
また、検査対象物に対して１９４０ｎｍ〜２４００ｎｍの波長範囲から選ばれる複数波長の光を照射することで得られる反射スペクトルを用いて毛髪を検出することが知られている（特許文献３）。
【０００５】
また、内容物を外部から確認可能な袋状体に収容された粉体中の異物を光学的に検出する異物検出装置が知られている（特許文献４）。特許文献４には、照明装置とカメラを袋状体（被測定物）の上下に配置し、強化ガラスの表裏面から画像を取り込み、袋状体に混入した毛髪を検出することが記載されている。
【０００６】
また、Ｘ線を用いた異物検出装置が知られている（特許文献５）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−２４５６９５号公報
【特許文献２】特開２００３−２０２２９７号公報
【特許文献３】特開２０１２−１８９３９０号公報
【特許文献４】特開２００１−００４５４９号公報
【特許文献５】国際公開第９８／１１４５６号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
通常のラベリングでは、画像の全画素に対してラベリングを行った後に、ラベルの統合を行う必要がある。
【０００９】
本発明では、入力画像を走査しながら適切なラベリングをすることができる画像処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために本発明に係る画像処理装置は、入力画像を走査することにより、前記入力画像の注目画素の各周辺画素に付与されたラベルと前記注目画素の画素値とに基づき前記注目画素に対してラベルを付与する際に、前記注目画素の複数の周辺画素に異なるラベルが付与されている場合、前記複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、前記注目画素に付与するラベリング手段を含んで構成されている。
【００１１】
本発明に係るプログラムは、コンピュータを、入力画像を走査することにより、前記入力画像の注目画素の各周辺画素に付与されたラベルと前記注目画素の画素値とに基づき前記注目画素に対してラベルを付与する際に、前記注目画素の複数の周辺画素に異なるラベルが付与されている場合、前記複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、前記注目画素に付与するラベリング手段として機能させるためのプログラムである。
【００１２】
本発明によれば、ラベリング手段によって、入力画像を走査することにより、入力画像の注目画素の各周辺画素に付与されたラベルと注目画素の画素値とに基づき注目画素に対してラベルを付与する際に、注目画素の複数の周辺画素に異なるラベルが付与されている場合、複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、注目画素に付与する。
【００１３】
このように、入力画像を走査することにより、入力画像を走査することにより、入力画像の注目画素の各周辺画素に付与されたラベルと注目画素の画素値とに基づき注目画素に対してラベルを付与する際に、注目画素の複数の周辺画素に異なるラベルが付与されている場合、複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、注目画素に付与することにより、入力画像を走査しながら適切なラベリングをすることができる。
【００１４】
本発明は、前記ラベリング手段によって前記注目画素にラベルが付与される毎に、前記ラベルが付与された画素からなる領域の面積を算出する面積算出手段を更に含むようにすることができる。
【００１５】
本発明において、前記面積算出手段は、前記ラベリング手段によって前記注目画素の複数の周辺画素に付与されているラベルが同一のラベルに統合された場合に、前記複数の周辺画素に付与されている異なるラベルの各々について、前記ラベルが付与された画素からなる領域の面積を加算して、前記統合されたラベルが付与された画素からなる領域の面積を算出するようにすることができる。
【００１６】
また、本発明の前記ラベリング手段によって同一のラベルに統合されたラベルの関係を記憶する記憶手段を更に含み、前記ラベリング手段は、前記複数の周辺画素に付与されているラベルを同一のラベルに統合する際に、前記記憶手段に、同一のラベルに統合されるラベルの関係を格納するようにすることができる。
【００１７】
本発明は、前記面積算出手段によって算出された面積に基づいて、前記入力画像の被写体の表面に対象物が含まれるか否かを判別する判別手段を更に含むようにすることができる。
【００１８】
また、本発明は、前記対象物は毛髪とすることができる。
【００１９】
また、本発明は、被測定物を照明する照明手段と、照明された前記被測定物を撮影するカメラと、前記カメラによって撮影された画像のエッジ画像を２値化処理する２値化手段と、を更に含み、前記ラベリング手段は、前記２値化手段によって２値化された画像に含まれる各画素について、前記統合されたラベルを、前記注目画素に付与するようにすることができる。
【００２０】
また、前記照明手段は、紫外域の光を照射して前記被測定物を照明するようにすることができる。
【００２１】
また、前記被測定物は布製品であるようにすることができる。
【００２２】
本発明のプログラムは、記録媒体に格納して提供することができる。
【発明の効果】
【００２３】
以上説明したように、本発明の画像処理装置及びプログラムによれば、入力画像を走査しながら適切なラベリングをすることができる、という効果が得られる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態に係る毛髪検出装置の構成例を示す概略図である。
【図２】ＦＰＧＡボードのトップモジュールの一例を示す図である。
【図３】画像処理モジュールの構成例を示す図である。
【図４】画像処理モジュールのマスクパターン取得モジュール及びラプラシアンフィルタモジュールの詳細な構成例を示す図である。
【図５】ラプラシアンフィルタを説明するための図である。
【図６】マスクパターンの一例を示す図である。
【図７】周辺画素を参照して注目画素のラベルを決定するためのパターンの一例を示す図である。
【図８】周辺画素にラベルが付与されていない場合に注目画素のラベルを決定する処理の一例を示す図である。
【図９】注目画素のラベルの統合を説明するための図である。
【図１０】ラベルの統合が発生する場合の例を示す図である。
【図１１】ラベルの統合の処理の一例を示す図である。
【図１２】ラベルの統合の処理の一例を示す図である。
【図１３】ラベルの統合の処理の一例を示す図である。
【図１４】注目画素のラベルを決定する場合に参照する周辺画素のラベルの一例を示す図である。
【図１５】ラベル統合メモリの一例を示す図である。
【図１６】ラベル統合メモリを用いた処理の一例を説明するための図である。
【図１７】ラベル統合メモリを用いた処理の一例を説明するための図である。
【図１８】ラベリングモジュールの構成例を示す図である。
【図１９】基本的面積算出メモリの構成例を示す図である。
【図２０】基本的面積算出メモリを用いた面積算出の処理の例を示す図である。
【図２１】基本的面積算出メモリと統合発生時用面積算出メモリとを用いた面積算出の処理の例を示す図である。
【図２２】髪の毛の有無判別モジュールの出力するデータの一例を示す図である。
【図２３】画像処理モジュールの構成例を示す図である。
【図２４】本発明の実施の形態の画像処理のフローを示す図である。
【図２５】本発明の実施の形態のラベリングのフローを示す図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、本実施の形態では、おしぼりに付着した毛髪を検出する毛髪検出装置に、本発明を適用した場合を例に説明する。
【００２６】
図１に示すように、本発明の実施の形態に係る毛髪検出装置１は、おしぼり２を移動させるベルトコンベア３と、おしぼり２の表面を照明する照明手段の一例であるＬＥＤライト４と、おしぼり２の裏面を照明する照明手段の一例であるＬＥＤライト５と、おしぼり２の表面を撮影するカメラ６と、おしぼり２の裏面を撮影するカメラ７と、カメラ６によって撮影された画像を処理するＦＰＧＡボード８と、カメラ７によって撮影された画像を処理するＦＰＧＡボード９とを備えている。カメラとＦＰＧＡボードとは、例えばケーブル等で接続されている。おしぼり２は、被測定物及び布製品の一例である。
【００２７】
ＬＥＤライト４及びＬＥＤライト５は、例えば、紫外域の光を照射しておしぼり２を照明する。
【００２８】
以下では、ＦＰＧＡボード８によって行われる画像処理について説明する。
【００２９】
ＦＰＧＡボード８を設計する回路の最上階層となるトップモジュールについて説明する。本実施の形態では、トップモジュールを大きく分けると、図２に示すように、クロック乗せ換えモジュール１０と、カメラリンクモジュール１２と、画像処理モジュール１４とを備えている。
【００３０】
クロック乗せ換えモジュール１０は、カメラ６のクロックとＦＰＧＡボード８内部の動作クロックとを同期させる。
【００３１】
クロック乗せ換えモジュール１０では、カメラ６から出力されるクロック周波数（例えば、６５ＭＨｚ）とＦＰＧＡ内部の動作させるクロック周波数（例えば、１００ＭＨｚ）とを同期させるための接続を行っている。後述するカメラリンクモジュール１２及び画像処理モジュール１４は、クロック乗せ換えモジュール１０で乗せ換えられたクロック周波数１００ＭＨｚで動作する。
【００３２】
カメラリンクモジュール１２は、カメラ６からのデータを取得するためのカメラリンクボード（図示省略）との接続を行う。カメラリンクモジュール１２では、カメラ６で撮影された画像をカメラリンクボードから取得し、当該画像を画像処理モジュール１４に出力するための接続を行う。
【００３３】
画像処理モジュール１４は、カメラリンクモジュール１２によって出力された画像を取得し、画像を走査することにより、取得した画像を画像処理する。画像処理モジュール１４は、取得した画像を１画素ずつ入力させ画像処理を行い、毛髪の有無判別結果を出力する。画像処理モジュール１４は、出力結果において毛髪ありと判定した場合にはＤＣ５Ｖを出力し、かつデバック用ＬＥＤ（図示省略）を点灯させ、それ以外の場合は何も出力しないように設計されている。
【００３４】
画像処理モジュール１４は、図３に示すように、マスクパターン取得モジュール１６と、ラプラシアンフィルタモジュール１８と、２値化モジュール２０とを含む第１処理部１５と、ラベリングモジュール２２と、面積算出モジュール２４と、髪の毛の有無判別モジュール２６とを含む第２処理部１７とを備えている。髪の毛の有無判別モジュール２６は、判別手段の一例である。
【００３５】
マスクパターン取得モジュール１６は、カメラリンクモジュール１２によって出力された画像を取得する。そして、マスクパターン取得モジュール１６は、予め定められた対応マスクに応じて、画像の注目画素の画素値と当該注目画素の周辺画素の画素値とを取得する。例えば、マスクパターン取得モジュール１６は、注目画素の４近傍の画素の画素値を周辺画素の画素値として取得する。
【００３６】
マスクパターン取得モジュール１６の構成例を図４に示す。例えば、マスクパターン取得モジュール１６は、後述するラプラシアンフィルタモジュール１８で処理する３×３のマスクに対応する画素の画素値を取得するため、図４に示すように、２ライン分のメモリと３つのレジスタとを利用し、注目画素の４近傍の画素の画素値を周辺画素の画素値として取得する。
【００３７】
ラプラシアンフィルタモジュール１８は、マスクパターン取得モジュール１６によって取得された注目画素の画素値及び周辺画素の画素値と、予め設定されたフィルタとに基づいて、注目画素の画素値及び周辺画素の画素値に対しフィルタ演算を行う。本実施の形態では、図５に示すような４近傍のラプラシアンフィルタ係数を利用して、注目画素の画素値及び周辺画素の画素値から特徴を抽出する。
【００３８】
２値化モジュール２０は、ラプラシアンフィルタモジュール１８によって演算されたフィルタ演算結果から得られるエッジ画像と予め設定した閾値とに基づいて注目画素の画素値を２値化し、２値化処理結果を出力する。
【００３９】
ラベリングモジュール２２は、２値化モジュール２０によって２値化された注目画素について、当該注目画素の各周辺画素に付与されたラベルと当該注目画素の画素値とに基づき当該注目画素に対してラベルを付与する際に、当該注目画素の複数の周辺画素に異なるラベルが付与されている場合、複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、当該注目画素に付与する。
【００４０】
ラベリングモジュール２２全体の具体的な処理について以下説明する。
【００４１】
ラベリングモジュール２２におけるラベルの具体的な決定方法としては、例えば、図６に示すような２×３のマスクパターンを利用し、既に決定された４つの周辺画素のラベルを参照して、太線枠で囲まれた注目画素のラベルを決定する。
【００４２】
具体的には、ラベリングモジュール２２は、上記図６に示すマスクパターンに対応する周辺画素のラベルを取得するために、上記図４に示すように、１ライン分のメモリと３つのレジスタを利用し、注目画素のラベルを決定する。本実施の形態では、１ライン分のメモリと３つのレジスタとを利用し、１回のラスタスキャンで注目画素のラベルの決定及び後述する面積算出を行う。
【００４３】
また、ラベリングモジュール２２によるラベル付けは、２値化モジュール２０から出力された注目画素の画素値が１の場合に行う。例えば、上記図６においては、太線枠で囲われた注目画素の画素値が１の場合にラベル付けを行う。ラベルの決定は、注目画素の４方向のラベルの連続性から決定される。ただし、例えば、参照するラベルが複数存在するときは番号の小さいラベルを参照することができる。
【００４４】
まず、注目画素のラベル付けを行う場合に、マスクパターン内に同一のラベルのみが存在する場合について説明する。
【００４５】
図７に、注目画素のラベルの決定方法の一例を示す。図７に示すように、１２個のパターンのとき、注目画素のラベルは、参照する画素のラベルＬによって決定される。なお、上記図７の網掛部分は０以外の画素値である。
【００４６】
また、図８に示すように、注目画素の画素値が１で、マスクパターンに対応する周辺画素にラベルが付与されておらず、参照するラベルが存在しない場合は新しいラベル（例えば、Ｌｎｅｗとする）がラベル付けされる。
【００４７】
ラベリングモジュール２２によってラベルが決定された後、決定した注目画素のラベルが逐次面積算出モジュール２４へ出力される。
【００４８】
次に、注目画素のラベル付けを行う場合に、マスクパターン内に２つの異なるラベルが存在する場合について説明する。
【００４９】
図９に、ラベル付けするときに２×３のマスクパターンに異なるラベルが存在し、同じラベルにしなければならないパターンの一例を示す。なお、本実施の形態では、マスクパターンに２つの異なるラベルが存在し、異なるラベルの各々を同じラベルに統合する処理を統合発生と称する。
【００５０】
上記図９に示すような統合発生は、参照するマスクが図１０に示すような３つのケースでラベル付けされる場合に発生する。なお、図１０に示す３つのケースでは、注目画素の左上に位置する画素のラベルを、当該注目画素のラベルとして決定する。
【００５１】
図１０では、注目画素の左上又は左隣りに位置する画素のラベルａと、注目画素の右上に位置する画素のラベルｂとを統合対象のラベルとする。ここで、統合されるラベルを第１のラベル（以下の例では、ラベルａ）、統合するラベルを第２のラベル（以下の例ではラベルｂ）として、以下説明する。
【００５２】
注目画素のラベルの決定は、図１０に示すように、注目画素の左上に位置する画素のラベルｂが参照され決定される。ラベル決定後は、統合条件が発生したときも通常の決定時と同様に、決定した注目画素のラベルが逐次面積算出モジュール２４に出力される。
【００５３】
次に、統合が発生した後に、ラベリング処理を行う際、注目画素のラベルを決定する際に、参照するマスクにラベルａが存在する場合について説明する。このようなケースについて、図１１に示す例のように、２値化画像がラベリングモジュール２２へ出力された場合を例に挙げ、詳しく説明する。
【００５４】
上記図１１に示す例においてラベル付けが行われた場合、図１２に示す太線枠の部分が注目画素であるときに統合が発生する。その後、図１３に示す太枠線の部分の注目画素のラベル付けを行う場合、上記図１２の時点でラベルａが参照されてしまう。しかし、実際には上記図１２の時点で統合したラベルであるラベルｂを参照する必要がある。本実施の形態では、このような問題を防ぐために、次のような処理を行う。
【００５５】
図１４に示すように、参照するマスクパターンのＸ部分の画素を参照する前に、Ｘ部分のラベルが統合されるラベルであるか否かを確認し、Ｘ部分の画素のラベルを決定する。
【００５６】
具体的な処理方法としては、上記図１２に示すように統合が発生した場合にラベルａとラベルｂとの関係を、ラベル統合メモリに保存する。このとき、ラベルａを書き込むアドレスとし、そのアドレス内にラベルｂのデータを書き込む。ラベル統合メモリに格納されるラベル間の関係は図１５に示すようになる。ラベル統合メモリは、記憶手段の一例である。
【００５７】
次に、上記図１３に示す太枠線におけるラベル決定時において、ラベルａを参照しないために、上記図１４のＸ部分を参照する前の段階で、ラベル統合メモリのアドレスＸを読み込む。上記図１４のＸ部分は１ライン分保存したメモリから出力されるため、このメモリの出力を１クロック早く出力した画素値をラベル統合メモリ内におけるアドレスとしてデータを読み込むことでラベル決定のタイミングに合わせた書き換えが可能である。
【００５８】
そして、ラベリングモジュール２２は、ラベル統合メモリから読み込んだデータが０ならば参照するＸ部分の画素は、Ｘ部分のラベルをそのまま参照する。
一方、ラベリングモジュール２２は、ラベル統合メモリから読み込んだデータが０以外ならば参照するＸ部分の画素は、読み込んだデータであるラベルａを参照する。
【００５９】
このような処理により、ラベルａを参照しないラベリングモジュール２２が構築される。
【００６０】
上記図１１の例において、この処理を施した場合、図１６に示す時点でラベル統合メモリ内におけるアドレスａにデータｂが書き込まれる。
【００６１】
さらに、統合発生後の統合されたラベルを参照する時点では、図１７に示すように書き換えることで統合するラベルを参照し、ラベルの決定をすることができる。
【００６２】
ラベリングモジュール２２は、例えば、図１８に示すような構成とすることができる。
【００６３】
ラベリングモジュール２２は、図１８に示すように、ラベル決定部２２０と、ラベル統合メモリ２２２と、メモリ２２４と、第１レジスタ２２６と、第２レジスタ２２８と、第３レジスタ２３０とを備える。ラベル統合メモリ２２２と、メモリ２２４とは、例えばＲＡＭによって構成される。
【００６４】
ラベル決定部２２０は、２値化モジュール２０によって出力された注目画素の各々について、複数の周辺画素に異なるラベルが付与されている場合、ラベル統合メモリ２２２に記憶された、同一のラベルに統合されたラベルの各々の関係に基づいて、統合されたラベルを当該注目画素に付与する。
また、ラベル決定部２２０は、同一のラベルに統合したラベルの関係を、ラベル統合メモリ２２２に格納する。
また、ラベル決定部２２０は、２値化モジュール２０によって出力された注目画素の各々について、複数の周辺画素に同一のラベルが付与されている場合、周辺画素と同一のラベルを当該注目画素に付与する。
【００６５】
ラベル統合メモリ２２２には、ラベル決定部２２０によって同一のラベルに統合されたラベルの各々の関係が格納される。
【００６６】
メモリ２２４、第１レジスタ２２６、第２レジスタ２２８、及び第３レジスタ２３０は、ラベル決定のタイミングに合わせた書き換えが行われるように、対応マスクに対応する各画素のラベルを出力する。
【００６７】
面積算出モジュール２４は、ラベリングモジュール２２によって統合されたラベルに基づいて、統合されたラベルに対応する領域の面積を算出する。具体的には、面積算出モジュール２４は、注目画素にラベルが付与される毎に、ラベルが付与された画素からなる領域の面積を算出する。
【００６８】
面積算出モジュール２４は、例えば、図１９に示すような基本的面積算出メモリ２４０を含んだ構成とすることができる。基本的面積算出メモリ２４０は、例えばＲＡＭによって構成される。
【００６９】
面積算出モジュール２４では、ラベリングモジュール２２から出力されたラベルを基本的面積算出メモリ２４０に保存することにより、面積を逐次算出する。基本的面積算出メモリ２４０にラベルを保存する場合は、図１９に示すように、ラベルＬを書き込むアドレスとし、そのアドレス内のデータをラベルに対応する領域の面積Ｓとする。
【００７０】
面積算出モジュール２４では、基本的な処理として以下のような３つの処理を行う。
【００７１】
（１）決定したラベルのアドレス内のデータであるラベルに対応する領域の面積を読み出す。
（２）読み出したデータをインクリメントする。
（３）インクリメントした結果を、後述する髪の毛の有無判別モジュール２６に出力しつつ、基本的面積算出メモリ２４０内の（１）で決定したアドレス内に書き込む。ただし、読み込むアドレスが‘０’の場合、書き込むデータは常に０とする。
【００７２】
上記（１）〜（３）のように処理することで、ラベルに対応する領域の面積を逐次算出することができる。基本的面積算出メモリ２４０を含み、基本的な面積算出を行うモジュールは図２０に示すようになる。
【００７３】
次に、ラベルの統合が発生したときの処理について説明する。ラベルの統合が発生したとき、面積算出の過程においては２つのラベルに対応する領域の面積を統合する必要がある。
【００７４】
しかし、面積を算出するためのメモリとしてＲＡＭを用いる際、全く同じタイミングで複数のアドレス内のデータを読み出すことができない。そのため、本実施の形態では、図２１に示すように、基本的面積算出メモリ２４０と統合発生時用面積算出メモリ２４２との２つのメモリを用意し、ＲＡＭの二重化を行う。この二重化では、前述した（１）〜（３）を行う基本的面積算出メモリ２４０の他に、統合発生時用面積算出メモリ２４２が用意される。そして、統合発生時用面積算出メモリ２４２はラベルの統合が発生した場合のみ、基本的面積算出メモリ２４０のデータに加算するために用いられる。
【００７５】
統合発生時用面積算出メモリ２４２におけるアドレスのやりとりは以下のように行われる。
【００７６】
まず、統合が発生した場合に読み込まれるアドレスは、ラベリングモジュール２２で統合されるラベル（ラベリングモジュール２２のラベル決定部２２２から出力されたラベルａのことを示す）とし、統合が発生しない場合に読み込まれるアドレスはメモリ内で使わない番号である０が読み込まれる。
【００７７】
これにより、統合が発生した時のみ統合発生時用の面積算出モジュールから０以外の面積を出力することができる。また、書き込むアドレスやデータは基本的な面積算出メモリと同じアドレスやデータを利用する。この統合発生時用面積算出メモリ２４２で読み込まれるデータと、上記の（１）〜（３）を行った基本的面積算出メモリ２４０で読み込まれたデータを足し合わせることで、統合するラベルに対応する領域の面積と統合されるラベルに対応するラベルの面積とを、統合することができる。
【００７８】
従って、面積算出モジュール２４は、注目画素の複数の周辺画素に付与されているラベルを同一のラベルに統合された場合に、複数の周辺画素に付与されているラベルに対応する領域の面積を加算して、統合されたラベルに対応する領域の面積を算出する。
【００７９】
髪の毛の有無判別モジュール２６は、面積算出モジュール２４によって算出された面積に基づいて、画像に毛髪が含まれるか否かを判別する。毛髪は対象物の一例である。
【００８０】
具体的には、髪の毛の有無判別モジュール２６は、面積算出モジュール２４から逐次出力された面積のデータを予め設定した閾値によって２値化する。そして、毛髪の有無判別モジュール２６は、２値化した結果１が出力された場合、毛髪ありと判定し、０が出力された場合、毛髪なしと判定する。
【００８１】
髪の毛の有無判別モジュール２６は、毛髪ありと判定した場合は、毛髪ありの通知信号として５Ｖの電圧をＦＰＧＡボード８の外部に出力する。一方、毛髪なしと判定した場合は、ＦＰＧＡボード８の外部へは何も出力しない（通知信号０Ｖの状態）。５Ｖの信号を外部のシーケンサーへ送ることにより、毛髪ありのときにはベルトコンベア上を流れるおしぼりを通常のルートから除外するシステムになっている。毛髪の有無判別モジュール２６は、例えば図２２のような構成になっている。
【００８２】
次に、画像処理モジュール１４内のトップモジュールについて説明する。
【００８３】
画像処理モジュール１４内のトップモジュールは、例えば図２３に示すように、第１処理部１５及び第２処理部１７を備え、８ｂｉｔの画像、ラインイネーブル、フレームイネーブルを入力としている。ただし、全てのモジュールはアクティブ・ハイである。
【００８４】
このとき、ラインイネーブル信号はラインセンサカメラが１ライン分（４０９６画素分）撮影したデータを送るタイミングのときＨｉｇｈとし、それ以外のときＬｏｗとしている。また、カメラリンクモジュールから送られてくるフレームイネーブル信号は８つのＤＩＰスイッチを利用している。８つのＤＩＰスイッチから８ｂｉｔデータを設定し、設定された値を閾値とする。この設定された閾値を超える画素が１ラインに５０画素以上あるときにフレームイネーブルをＨｉｇｈにする。おしぼりはベルトコンベア（背景画像）に比べて非常に画素値が大きいため、このように設定することでおしぼりが流れ始めたことを判定することができる。その後、フレームイネーブルをＬｏｗにするタイミングは、閾値を超える画素が１ラインに５０画素以下になった直後のラインまでとしている。このような設計により、おしぼりが撮影された部分のみ有効なフレームイネーブル信号とすることができる。画像処理モジュール１４では、フレームイネーブル立ち下がり時にリセットする構成になっている。
また、ラベリングモジュール２２や面積算出モジュール２４で利用しているＲＡＭは１３ｂｉｔにしているが、番号８１９２になったとき、ラベルは１から再度番号付けする構成になっている。
【００８５】
次に、本実施の形態に係る毛髪検出装置１の作用について説明する。
【００８６】
ベルトコンベア３によっておしぼり２が移動させられ、ＬＥＤライト４によっておしぼり２の表面が照明され、かつカメラ６によっておしぼり２の表面が撮影されているときに、ＦＰＧＡボード８が動作し、図２４に示す画像処理が画像処理モジュール１４によって実行される。
【００８７】
まず、ステップＳ１００において、マスクパターン取得モジュール１６は、カメラリンクモジュール１２によって出力された画像を取得する。
【００８８】
ステップＳ１０２において、マスクパターン取得モジュール１６は、予め定められた対応マスクに応じて、上記ステップＳ１００で取得された画像の注目画素の画素値と当該注目画素の周辺画素の画素値とを取得する。
【００８９】
ステップＳ１０４において、ラプラシアンフィルタモジュール１８は、上記ステップＳ１０２で取得された注目画素の画素値及び周辺画素の画素値と、予め設定されたフィルタとに基づいて、注目画素の画素値及び周辺画素の画素値に対しフィルタ演算を行う。
【００９０】
ステップＳ１０６において、２値化モジュール２０は、上記ステップＳ１０４で演算されたフィルタ演算結果と予め設定した閾値とに基づいて注目画素の画素値を２値化し、２値化処理結果を出力する。
【００９１】
ステップＳ１０８において、ラベリングモジュール２２は、上記ステップＳ１０６で２値化された注目画素について、当該注目画素の各周辺画素に付与されたラベルと当該注目画素の画素値とに基づき当該注目画素に対してラベルを付与する際に、当該注目画素の複数の周辺画素に異なるラベルが付与されている場合、複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、当該注目画素に付与する。ステップＳ１０８は、図２５に示すラベリング処理によって実現される。
【００９２】
＜ラベリング処理＞
ステップＳ２００において、ラベリングモジュール２２は、ステップＳ１０６で出力された注目画素を取得する。
【００９３】
次に、ステップＳ２０２において、ラベリングモジュール２２は、上記ステップＳ２００で取得された注目画素の画素値が１であるか否かを判定する。注目画素の画素値が１である場合には、ステップＳ２０４に進む。一方、注目画素の画素値が０である場合には、ステップＳ２００へ戻る。
【００９４】
ステップＳ２０４において、ラベリングモジュール２２は、予め設定されたマスクパターンに応じて、上記ステップＳ２００で取得された注目画素の周辺画素を取得する。なお、周辺画素は、メモリ２２４と、第１レジスタ２２６、第２レジスタ２２８、及び第３レジスタ２３０に格納されたデータから取得される。
【００９５】
ステップＳ２０６において、ラベリングモジュール２２は、上記ステップＳ２０４で取得された複数の周辺画素に異なるラベルが付与されているか否かを判定する。複数の周辺画素に異なるラベルが付与されている場合には、ステップＳ２０８へ進む。一方、複数の周辺画素に同一のラベルが付与されている場合には、ステップＳ２１０へ進む。
【００９６】
ステップＳ２０８において、ラベリングモジュール２２は、ラベル統合メモリ２２２を参照し、上記ステップＳ２０６で取得された複数の周辺画素に付与されている、第１のラベルと第２のラベルとを同一のラベルに統合して、ラベル間の関係をラベル統合メモリ２２２に保存する。そして、ラベリングモジュール２２は、第２のラベルを当該注目画素に付与する。
【００９７】
ステップＳ２１０において、ラベリングモジュール２２は、上記ステップＳ２０６で取得された周辺画素に付与されているラベルと同一のラベルを、当該注目画素に付与する。
【００９８】
ステップＳ２１２において、ラベリングモジュール２２は、上記ステップＳ２０８でラベルが統合された場合に、ラベル統合メモリ２２２に格納されたラベル間の関係に基づいて、第１のラベルと第２のラベルとを、面積算出モジュール２４へ出力する。一方、上記ステップＳ２１０でラベルが付与された場合には、当該注目画素に付与されたラベルを面積算出モジュール２４へ出力する。
【００９９】
次に、上記図２４に示す画像処理に戻り、ステップＳ１１０において、面積算出モジュール２４は、ラベリングモジュール２２によって第１のラベルと第２のラベルとが出力された場合に、基本的面積算出メモリ２４０で読み込まれるデータと、統合発生時用面積算出メモリ２４２で読み込まれるデータとを加算して、統合されたラベルに対応する領域の面積を算出する。
【０１００】
一方、面積算出モジュール２４は、ラベリングモジュール２２によって注目画素に付与されたラベルのみが出力された場合に、基本的面積算出メモリ２４０で読み込まれるデータを読み出す。そして、面積算出モジュール２４は、読み出したデータをインクリメントし、インクリメントした結果を、髪の毛の有無判別モジュール２６に出力し、基本的面積算出メモリ２４０内のアドレス内に結果を書き込む。
【０１０１】
ステップＳ１１２において、髪の毛の有無判別モジュール２６は、上記ステップＳ１１０で算出された面積に基づいて、画像に毛髪が含まれるか否かを判別する。
【０１０２】
ステップＳ１１４において、髪の毛の有無判別モジュール２６は、上記ステップＳ１１２で毛髪ありと判定した場合は、毛髪ありの通知信号として５Ｖの電圧をＦＰＧＡボード８の外部に出力する。一方、毛髪なしと判定した場合は、ＦＰＧＡボード８の外部へは何も出力しない。
【０１０３】
以上説明したように、本発明の実施の形態に係る毛髪検出装置によれば、入力画像を走査することにより、入力画像の注目画素の各周辺画素に付与されたラベルと注目画素の画素値とに基づき注目画素に対してラベルを付与する際に、注目画素の複数の周辺画素に異なるラベルが付与されている場合、複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、注目画素に付与することにより、入力画像を走査しながら適切なラベリングをすることができる。
【０１０４】
また、従来技術では、各画素に対してラベル付けを行った後にラベルを統合する処理が必要であったが、本実施形態では、ラベル付けを行う際にラベルを統合することにより、画像中の対象物の有無を高速に判定することができる。
【０１０５】
なお、上記実施の形態では、おしぼり２の表面の画像をＦＰＧＡボード８によって画像処理する場合について説明したが、おしぼり２の裏面の画像をＦＰＧＡボード９よって同様の画像処理方法を用いて、おしぼり２の裏面に付着した毛髪も検出することができる。
【０１０６】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１０７】
例えば、本実施の形態では、入力画像の被写体がおしぼりであり、検出する対象物が毛髪である場合を例に説明したがこれに限定されるものではなく、画像処理を適用することができれば、入力画像の被写体及び対象物は何でもよい。例えば、入力画像の被写体の表面の異物を対象物として検出してもよい。または、入力画像の被写体の表面のきずなどの欠陥箇所を対象物として検出してもよい。
【０１０８】
また、本実施の形態では、毛髪検出装置がＦＰＧＡによって実現される場合を例に説明したが、これに限定されるものではない。例えば、本実施形態に係る毛髪検出装置を、ＣＰＵ、ＲＯＭ、ＲＡＭ、及びＨＤＤを備えるコンピュータによって実現してもよい。
【０１０９】
また、本実施の形態では、周辺画素を参照するためのマスクパターンとして、上記図６に示すようなマスクパターンを用いる場合を例に説明したが、これに限定されるものではなく、どのようなマスクパターンを用いてもよい。その場合には、ラベルの統合が発生するのは、上記図１０に限定されるものではなく、他のパターンであってもラベルを統合してもよい。
【０１１０】
また、本実施の形態では、マスクパターンを用いて周辺画素を参照し、上記図１４に示す周辺画素Ｘのラベルを、画素のラベルとする場合について説明したが、これに限定されるものではない。例えば、ラベルを付与する画素の左上、左隣、右隣、又は上側に位置する周辺画素のラベルを、画素のラベルとして付与してもよい。または、マスクパターン内の周辺画素に付与されたラベルの多数決によって、画素のラベルを決定してもよい。
【符号の説明】
【０１１１】
１     毛髪検出装置
２     おしぼり
３     ベルトコンベア
４，５ ＬＥＤライト
６，７ カメラ
８，９ ＦＰＧＡボード
１０   クロック乗せ換えモジュール
１２   カメラリンクモジュール
１４   画像処理モジュール
１６   マスクパターン取得モジュール
１８   ラプラシアンフィルタモジュール
２０   ２値化モジュール
２２   ラベリングモジュール
２４   面積算出モジュール
２６   髪の毛の有無判別モジュール
２２０ ラベル決定部
２２２ ラベル統合メモリ
２２４ メモリ
２２６，２２８，２３０  レジスタ
２４０ 基本的面積算出メモリ
２４２ 統合発生時用面積算出メモリ
【図１】
0006699053.tif 000002
【図２】
0006699053.tif 000003
【図３】
0006699053.tif 000004
【図４】
0006699053.tif 000005
【図５】
0006699053.tif 000006
【図６】
0006699053.tif 000007
【図７】
0006699053.tif 000008
【図８】
0006699053.tif 000009
【図９】
0006699053.tif 000010
【図１０】
0006699053.tif 000011
【図１１】
0006699053.tif 000012
【図１２】
0006699053.tif 000013
【図１３】
0006699053.tif 000014
【図１４】
0006699053.tif 000015
【図１５】
0006699053.tif 000016
【図１６】
0006699053.tif 000017
【図１７】
0006699053.tif 000018
【図１８】
0006699053.tif 000019
【図１９】
0006699053.tif 000020
【図２０】
0006699053.tif 000021
【図２１】
0006699053.tif 000022
【図２２】
0006699053.tif 000023
【図２３】
0006699053.tif 000024
【図２４】
0006699053.tif 000025
【図２５】
0006699053.tif 000026