特許第6699053号(P6699053)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 学校法人東京理科大学の特許一覧 ▶ 株式会社白興商会の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6699053
(24)【登録日】2020年5月7日
(45)【発行日】2020年5月27日
(54)【発明の名称】画像処理装置及びプログラム
(51)【国際特許分類】
   G06T 1/00 20060101AFI20200518BHJP
   G06T 7/60 20170101ALI20200518BHJP
   G06T 7/62 20170101ALI20200518BHJP
   G01N 21/88 20060101ALI20200518BHJP
【FI】
   G06T1/00 300
   G06T7/60 110
   G06T7/62
   G01N21/88 J
【請求項の数】9
【全頁数】19
(21)【出願番号】特願2015-225818(P2015-225818)
(22)【出願日】2015年11月18日
(65)【公開番号】特開2017-97428(P2017-97428A)
(43)【公開日】2017年6月1日
【審査請求日】2018年8月30日
(73)【特許権者】
【識別番号】000125370
【氏名又は名称】学校法人東京理科大学
(73)【特許権者】
【識別番号】591234411
【氏名又は名称】株式会社白興商会
(74)【代理人】
【識別番号】100079049
【弁理士】
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【弁理士】
【氏名又は名称】加藤 和詳
(74)【代理人】
【識別番号】100099025
【弁理士】
【氏名又は名称】福田 浩志
(72)【発明者】
【氏名】相川 直幸
(72)【発明者】
【氏名】鈴木 芳明
【審査官】 板垣 有紀
(56)【参考文献】
【文献】 特開平05−258056(JP,A)
【文献】 特開2003−202297(JP,A)
【文献】 特開平05−012444(JP,A)
【文献】 櫻田 大樹 他,FPGAを用いたおしぼり表面に付着した髪の毛の自動判別システムの開発,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2015年 1月15日,第114巻 第394号,pp.109〜112
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00
G06T 7/00 − 7/90
G01N 21/84 − 21/958
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
アドレスとデータとが対応付けられて記憶されている記憶手段と、
所定のマスクパターンを用いて入力画像を走査し、前記マスクパターン内の注目画素に対してラベルを付与する際に、
前記注目画素の複数の周辺画素に異なるラベルが付与されているか否かを判定し、
前記注目画素の複数の周辺画素に異なるラベルが付与されている場合、前記マスクパターンに含まれる周辺画素に付与されているラベルが、統合される方のラベルを表す第1のラベル及び統合する方のラベルを表す第2のラベルの何れであるかを判定し、該判定結果に基づいて、周辺画素に付与された第1のラベルを第2のラベルへと統合し、第2のラベルを前記注目画素に付与し、前記記憶手段のうちのアドレスが第1のラベルであるデータへ第2のラベルを格納し、
前記注目画素の複数の周辺画素に同一のラベルが付与されている場合、前記マスクパターンの周辺画素に付与されているラベルを、前記注目画素に対して付与し、
前記注目画素の複数の周辺画素のラベルを参照して前記注目画素に対してラベルを付与する際に、前記記憶手段を参照し、周辺画素のラベルが第1のラベルである場合、周辺画素の第1のラベルを、前記記憶手段の第1のラベルを表すアドレスに対応付けられた第2のラベルに置き換えて、前記注目画素に対してラベルを付与するラベリング手段と、
を含む画像処理装置。
【請求項2】
前記ラベリング手段によって前記注目画素にラベルが付与される毎に、前記ラベルが付与された画素からなる領域の面積を算出する面積算出手段を更に含む
請求項1に記載の画像処理装置。
【請求項3】
前記面積算出手段は、前記ラベリング手段によって前記注目画素の複数の周辺画素に付与されているラベルが同一のラベルに統合された場合に、前記複数の周辺画素に付与されている異なるラベルの各々について、前記ラベルが付与された画素からなる領域の面積を加算して、前記統合されたラベルが付与された画素からなる領域の面積を算出する
請求項2に記載の画像処理装置。
【請求項4】
前記面積算出手段によって算出された面積に基づいて、前記入力画像の被写体の表面に対象物が含まれるか否かを判別する判別手段を更に含む
請求項2又は請求項3に記載の画像処理装置。
【請求項5】
前記対象物は毛髪である請求項に記載の画像処理装置。
【請求項6】
被測定物を照明する照明手段と、
照明された前記被測定物を撮影するカメラと、
前記カメラによって撮影された画像のエッジ画像を2値化処理する2値化手段と、を更に含み、
前記ラベリング手段は、前記2値化手段によって2値化された画像に含まれる各画素について、前記統合されたラベルを、前記注目画素に付与する
請求項1〜請求項5の何れか1項に記載の画像処理装置。
【請求項7】
前記照明手段は、紫外域の光を照射して前記被測定物を照明する請求項に記載の画像処理装置。
【請求項8】
前記被測定物は布製品である請求項又は請求項に記載の画像処理装置。
【請求項9】
コンピュータを、
所定のマスクパターンを用いて入力画像を走査し、前記マスクパターン内の注目画素に対してラベルを付与する際に、
前記注目画素の複数の周辺画素に異なるラベルが付与されているか否かを判定し、
前記注目画素の複数の周辺画素に異なるラベルが付与されている場合、前記マスクパターンに含まれる周辺画素に付与されているラベルが、統合される方のラベルを表す第1のラベル及び統合する方のラベルを表す第2のラベルの何れであるかを判定し、該判定結果に基づいて、周辺画素に付与された第1のラベルを第2のラベルへと統合し、第2のラベルを前記注目画素に付与し、アドレスとデータとが対応付けられて記憶されている記憶手段のうちのアドレスが第1のラベルであるデータへ第2のラベルを格納し、
前記注目画素の複数の周辺画素に同一のラベルが付与されている場合、前記マスクパターンの周辺画素に付与されているラベルを、前記注目画素に対して付与し、
前記注目画素の複数の周辺画素のラベルを参照して前記注目画素に対してラベルを付与する際に、前記記憶手段を参照し、周辺画素のラベルが第1のラベルである場合、周辺画素の第1のラベルを、前記記憶手段の第1のラベルを表すアドレスに対応付けられた第2のラベルに置き換えて、前記注目画素に対してラベルを付与するラベリング手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【0002】
従来より、画像処理法を導入し、異物の検出を行う異物検出装置が知られている(特許文献1)。特許文献1に記載の技術では、布製品に付着した毛髪を検出することが記載されている。
【0003】
また、検査対象物に対して紫外線照明を照射し、紫外領域において感度を有する撮像手段によって撮影することにより検査対象物に混入する生体異物を検出することが知られている(特許文献2)。
【0004】
また、検査対象物に対して1940nm〜2400nmの波長範囲から選ばれる複数波長の光を照射することで得られる反射スペクトルを用いて毛髪を検出することが知られている(特許文献3)。
【0005】
また、内容物を外部から確認可能な袋状体に収容された粉体中の異物を光学的に検出する異物検出装置が知られている(特許文献4)。特許文献4には、照明装置とカメラを袋状体(被測定物)の上下に配置し、強化ガラスの表裏面から画像を取り込み、袋状体に混入した毛髪を検出することが記載されている。
【0006】
また、X線を用いた異物検出装置が知られている(特許文献5)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−245695号公報
【特許文献2】特開2003−202297号公報
【特許文献3】特開2012−189390号公報
【特許文献4】特開2001−004549号公報
【特許文献5】国際公開第98/11456号
【発明の概要】
【発明が解決しようとする課題】
【0008】
通常のラベリングでは、画像の全画素に対してラベリングを行った後に、ラベルの統合を行う必要がある。
【0009】
本発明では、入力画像を走査しながら適切なラベリングをすることができる画像処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記の目的を達成するために本発明に係る画像処理装置は、入力画像を走査することにより、前記入力画像の注目画素の各周辺画素に付与されたラベルと前記注目画素の画素値とに基づき前記注目画素に対してラベルを付与する際に、前記注目画素の複数の周辺画素に異なるラベルが付与されている場合、前記複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、前記注目画素に付与するラベリング手段を含んで構成されている。
【0011】
本発明に係るプログラムは、コンピュータを、入力画像を走査することにより、前記入力画像の注目画素の各周辺画素に付与されたラベルと前記注目画素の画素値とに基づき前記注目画素に対してラベルを付与する際に、前記注目画素の複数の周辺画素に異なるラベルが付与されている場合、前記複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、前記注目画素に付与するラベリング手段として機能させるためのプログラムである。
【0012】
本発明によれば、ラベリング手段によって、入力画像を走査することにより、入力画像の注目画素の各周辺画素に付与されたラベルと注目画素の画素値とに基づき注目画素に対してラベルを付与する際に、注目画素の複数の周辺画素に異なるラベルが付与されている場合、複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、注目画素に付与する。
【0013】
このように、入力画像を走査することにより、入力画像を走査することにより、入力画像の注目画素の各周辺画素に付与されたラベルと注目画素の画素値とに基づき注目画素に対してラベルを付与する際に、注目画素の複数の周辺画素に異なるラベルが付与されている場合、複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、注目画素に付与することにより、入力画像を走査しながら適切なラベリングをすることができる。
【0014】
本発明は、前記ラベリング手段によって前記注目画素にラベルが付与される毎に、前記ラベルが付与された画素からなる領域の面積を算出する面積算出手段を更に含むようにすることができる。
【0015】
本発明において、前記面積算出手段は、前記ラベリング手段によって前記注目画素の複数の周辺画素に付与されているラベルが同一のラベルに統合された場合に、前記複数の周辺画素に付与されている異なるラベルの各々について、前記ラベルが付与された画素からなる領域の面積を加算して、前記統合されたラベルが付与された画素からなる領域の面積を算出するようにすることができる。
【0016】
また、本発明の前記ラベリング手段によって同一のラベルに統合されたラベルの関係を記憶する記憶手段を更に含み、前記ラベリング手段は、前記複数の周辺画素に付与されているラベルを同一のラベルに統合する際に、前記記憶手段に、同一のラベルに統合されるラベルの関係を格納するようにすることができる。
【0017】
本発明は、前記面積算出手段によって算出された面積に基づいて、前記入力画像の被写体の表面に対象物が含まれるか否かを判別する判別手段を更に含むようにすることができる。
【0018】
また、本発明は、前記対象物は毛髪とすることができる。
【0019】
また、本発明は、被測定物を照明する照明手段と、照明された前記被測定物を撮影するカメラと、前記カメラによって撮影された画像のエッジ画像を2値化処理する2値化手段と、を更に含み、前記ラベリング手段は、前記2値化手段によって2値化された画像に含まれる各画素について、前記統合されたラベルを、前記注目画素に付与するようにすることができる。
【0020】
また、前記照明手段は、紫外域の光を照射して前記被測定物を照明するようにすることができる。
【0021】
また、前記被測定物は布製品であるようにすることができる。
【0022】
本発明のプログラムは、記録媒体に格納して提供することができる。
【発明の効果】
【0023】
以上説明したように、本発明の画像処理装置及びプログラムによれば、入力画像を走査しながら適切なラベリングをすることができる、という効果が得られる。
【図面の簡単な説明】
【0024】
図1】本発明の実施の形態に係る毛髪検出装置の構成例を示す概略図である。
図2】FPGAボードのトップモジュールの一例を示す図である。
図3】画像処理モジュールの構成例を示す図である。
図4】画像処理モジュールのマスクパターン取得モジュール及びラプラシアンフィルタモジュールの詳細な構成例を示す図である。
図5】ラプラシアンフィルタを説明するための図である。
図6】マスクパターンの一例を示す図である。
図7】周辺画素を参照して注目画素のラベルを決定するためのパターンの一例を示す図である。
図8】周辺画素にラベルが付与されていない場合に注目画素のラベルを決定する処理の一例を示す図である。
図9】注目画素のラベルの統合を説明するための図である。
図10】ラベルの統合が発生する場合の例を示す図である。
図11】ラベルの統合の処理の一例を示す図である。
図12】ラベルの統合の処理の一例を示す図である。
図13】ラベルの統合の処理の一例を示す図である。
図14】注目画素のラベルを決定する場合に参照する周辺画素のラベルの一例を示す図である。
図15】ラベル統合メモリの一例を示す図である。
図16】ラベル統合メモリを用いた処理の一例を説明するための図である。
図17】ラベル統合メモリを用いた処理の一例を説明するための図である。
図18】ラベリングモジュールの構成例を示す図である。
図19】基本的面積算出メモリの構成例を示す図である。
図20】基本的面積算出メモリを用いた面積算出の処理の例を示す図である。
図21】基本的面積算出メモリと統合発生時用面積算出メモリとを用いた面積算出の処理の例を示す図である。
図22】髪の毛の有無判別モジュールの出力するデータの一例を示す図である。
図23】画像処理モジュールの構成例を示す図である。
図24】本発明の実施の形態の画像処理のフローを示す図である。
図25】本発明の実施の形態のラベリングのフローを示す図である。
【発明を実施するための形態】
【0025】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、本実施の形態では、おしぼりに付着した毛髪を検出する毛髪検出装置に、本発明を適用した場合を例に説明する。
【0026】
図1に示すように、本発明の実施の形態に係る毛髪検出装置1は、おしぼり2を移動させるベルトコンベア3と、おしぼり2の表面を照明する照明手段の一例であるLEDライト4と、おしぼり2の裏面を照明する照明手段の一例であるLEDライト5と、おしぼり2の表面を撮影するカメラ6と、おしぼり2の裏面を撮影するカメラ7と、カメラ6によって撮影された画像を処理するFPGAボード8と、カメラ7によって撮影された画像を処理するFPGAボード9とを備えている。カメラとFPGAボードとは、例えばケーブル等で接続されている。おしぼり2は、被測定物及び布製品の一例である。
【0027】
LEDライト4及びLEDライト5は、例えば、紫外域の光を照射しておしぼり2を照明する。
【0028】
以下では、FPGAボード8によって行われる画像処理について説明する。
【0029】
FPGAボード8を設計する回路の最上階層となるトップモジュールについて説明する。本実施の形態では、トップモジュールを大きく分けると、図2に示すように、クロック乗せ換えモジュール10と、カメラリンクモジュール12と、画像処理モジュール14とを備えている。
【0030】
クロック乗せ換えモジュール10は、カメラ6のクロックとFPGAボード8内部の動作クロックとを同期させる。
【0031】
クロック乗せ換えモジュール10では、カメラ6から出力されるクロック周波数(例えば、65MHz)とFPGA内部の動作させるクロック周波数(例えば、100MHz)とを同期させるための接続を行っている。後述するカメラリンクモジュール12及び画像処理モジュール14は、クロック乗せ換えモジュール10で乗せ換えられたクロック周波数100MHzで動作する。
【0032】
カメラリンクモジュール12は、カメラ6からのデータを取得するためのカメラリンクボード(図示省略)との接続を行う。カメラリンクモジュール12では、カメラ6で撮影された画像をカメラリンクボードから取得し、当該画像を画像処理モジュール14に出力するための接続を行う。
【0033】
画像処理モジュール14は、カメラリンクモジュール12によって出力された画像を取得し、画像を走査することにより、取得した画像を画像処理する。画像処理モジュール14は、取得した画像を1画素ずつ入力させ画像処理を行い、毛髪の有無判別結果を出力する。画像処理モジュール14は、出力結果において毛髪ありと判定した場合にはDC5Vを出力し、かつデバック用LED(図示省略)を点灯させ、それ以外の場合は何も出力しないように設計されている。
【0034】
画像処理モジュール14は、図3に示すように、マスクパターン取得モジュール16と、ラプラシアンフィルタモジュール18と、2値化モジュール20とを含む第1処理部15と、ラベリングモジュール22と、面積算出モジュール24と、髪の毛の有無判別モジュール26とを含む第2処理部17とを備えている。髪の毛の有無判別モジュール26は、判別手段の一例である。
【0035】
マスクパターン取得モジュール16は、カメラリンクモジュール12によって出力された画像を取得する。そして、マスクパターン取得モジュール16は、予め定められた対応マスクに応じて、画像の注目画素の画素値と当該注目画素の周辺画素の画素値とを取得する。例えば、マスクパターン取得モジュール16は、注目画素の4近傍の画素の画素値を周辺画素の画素値として取得する。
【0036】
マスクパターン取得モジュール16の構成例を図4に示す。例えば、マスクパターン取得モジュール16は、後述するラプラシアンフィルタモジュール18で処理する3×3のマスクに対応する画素の画素値を取得するため、図4に示すように、2ライン分のメモリと3つのレジスタとを利用し、注目画素の4近傍の画素の画素値を周辺画素の画素値として取得する。
【0037】
ラプラシアンフィルタモジュール18は、マスクパターン取得モジュール16によって取得された注目画素の画素値及び周辺画素の画素値と、予め設定されたフィルタとに基づいて、注目画素の画素値及び周辺画素の画素値に対しフィルタ演算を行う。本実施の形態では、図5に示すような4近傍のラプラシアンフィルタ係数を利用して、注目画素の画素値及び周辺画素の画素値から特徴を抽出する。
【0038】
2値化モジュール20は、ラプラシアンフィルタモジュール18によって演算されたフィルタ演算結果から得られるエッジ画像と予め設定した閾値とに基づいて注目画素の画素値を2値化し、2値化処理結果を出力する。
【0039】
ラベリングモジュール22は、2値化モジュール20によって2値化された注目画素について、当該注目画素の各周辺画素に付与されたラベルと当該注目画素の画素値とに基づき当該注目画素に対してラベルを付与する際に、当該注目画素の複数の周辺画素に異なるラベルが付与されている場合、複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、当該注目画素に付与する。
【0040】
ラベリングモジュール22全体の具体的な処理について以下説明する。
【0041】
ラベリングモジュール22におけるラベルの具体的な決定方法としては、例えば、図6に示すような2×3のマスクパターンを利用し、既に決定された4つの周辺画素のラベルを参照して、太線枠で囲まれた注目画素のラベルを決定する。
【0042】
具体的には、ラベリングモジュール22は、上記図6に示すマスクパターンに対応する周辺画素のラベルを取得するために、上記図4に示すように、1ライン分のメモリと3つのレジスタを利用し、注目画素のラベルを決定する。本実施の形態では、1ライン分のメモリと3つのレジスタとを利用し、1回のラスタスキャンで注目画素のラベルの決定及び後述する面積算出を行う。
【0043】
また、ラベリングモジュール22によるラベル付けは、2値化モジュール20から出力された注目画素の画素値が1の場合に行う。例えば、上記図6においては、太線枠で囲われた注目画素の画素値が1の場合にラベル付けを行う。ラベルの決定は、注目画素の4方向のラベルの連続性から決定される。ただし、例えば、参照するラベルが複数存在するときは番号の小さいラベルを参照することができる。
【0044】
まず、注目画素のラベル付けを行う場合に、マスクパターン内に同一のラベルのみが存在する場合について説明する。
【0045】
図7に、注目画素のラベルの決定方法の一例を示す。図7に示すように、12個のパターンのとき、注目画素のラベルは、参照する画素のラベルLによって決定される。なお、上記図7の網掛部分は0以外の画素値である。
【0046】
また、図8に示すように、注目画素の画素値が1で、マスクパターンに対応する周辺画素にラベルが付与されておらず、参照するラベルが存在しない場合は新しいラベル(例えば、Lnewとする)がラベル付けされる。
【0047】
ラベリングモジュール22によってラベルが決定された後、決定した注目画素のラベルが逐次面積算出モジュール24へ出力される。
【0048】
次に、注目画素のラベル付けを行う場合に、マスクパターン内に2つの異なるラベルが存在する場合について説明する。
【0049】
図9に、ラベル付けするときに2×3のマスクパターンに異なるラベルが存在し、同じラベルにしなければならないパターンの一例を示す。なお、本実施の形態では、マスクパターンに2つの異なるラベルが存在し、異なるラベルの各々を同じラベルに統合する処理を統合発生と称する。
【0050】
上記図9に示すような統合発生は、参照するマスクが図10に示すような3つのケースでラベル付けされる場合に発生する。なお、図10に示す3つのケースでは、注目画素の左上に位置する画素のラベルを、当該注目画素のラベルとして決定する。
【0051】
図10では、注目画素の左上又は左隣りに位置する画素のラベルaと、注目画素の右上に位置する画素のラベルbとを統合対象のラベルとする。ここで、統合されるラベルを第1のラベル(以下の例では、ラベルa)、統合するラベルを第2のラベル(以下の例ではラベルb)として、以下説明する。
【0052】
注目画素のラベルの決定は、図10に示すように、注目画素の左上に位置する画素のラベルbが参照され決定される。ラベル決定後は、統合条件が発生したときも通常の決定時と同様に、決定した注目画素のラベルが逐次面積算出モジュール24に出力される。
【0053】
次に、統合が発生した後に、ラベリング処理を行う際、注目画素のラベルを決定する際に、参照するマスクにラベルaが存在する場合について説明する。このようなケースについて、図11に示す例のように、2値化画像がラベリングモジュール22へ出力された場合を例に挙げ、詳しく説明する。
【0054】
上記図11に示す例においてラベル付けが行われた場合、図12に示す太線枠の部分が注目画素であるときに統合が発生する。その後、図13に示す太枠線の部分の注目画素のラベル付けを行う場合、上記図12の時点でラベルaが参照されてしまう。しかし、実際には上記図12の時点で統合したラベルであるラベルbを参照する必要がある。本実施の形態では、このような問題を防ぐために、次のような処理を行う。
【0055】
図14に示すように、参照するマスクパターンのX部分の画素を参照する前に、X部分のラベルが統合されるラベルであるか否かを確認し、X部分の画素のラベルを決定する。
【0056】
具体的な処理方法としては、上記図12に示すように統合が発生した場合にラベルaとラベルbとの関係を、ラベル統合メモリに保存する。このとき、ラベルaを書き込むアドレスとし、そのアドレス内にラベルbのデータを書き込む。ラベル統合メモリに格納されるラベル間の関係は図15に示すようになる。ラベル統合メモリは、記憶手段の一例である。
【0057】
次に、上記図13に示す太枠線におけるラベル決定時において、ラベルaを参照しないために、上記図14のX部分を参照する前の段階で、ラベル統合メモリのアドレスXを読み込む。上記図14のX部分は1ライン分保存したメモリから出力されるため、このメモリの出力を1クロック早く出力した画素値をラベル統合メモリ内におけるアドレスとしてデータを読み込むことでラベル決定のタイミングに合わせた書き換えが可能である。
【0058】
そして、ラベリングモジュール22は、ラベル統合メモリから読み込んだデータが0ならば参照するX部分の画素は、X部分のラベルをそのまま参照する。
一方、ラベリングモジュール22は、ラベル統合メモリから読み込んだデータが0以外ならば参照するX部分の画素は、読み込んだデータであるラベルaを参照する。
【0059】
このような処理により、ラベルaを参照しないラベリングモジュール22が構築される。
【0060】
上記図11の例において、この処理を施した場合、図16に示す時点でラベル統合メモリ内におけるアドレスaにデータbが書き込まれる。
【0061】
さらに、統合発生後の統合されたラベルを参照する時点では、図17に示すように書き換えることで統合するラベルを参照し、ラベルの決定をすることができる。
【0062】
ラベリングモジュール22は、例えば、図18に示すような構成とすることができる。
【0063】
ラベリングモジュール22は、図18に示すように、ラベル決定部220と、ラベル統合メモリ222と、メモリ224と、第1レジスタ226と、第2レジスタ228と、第3レジスタ230とを備える。ラベル統合メモリ222と、メモリ224とは、例えばRAMによって構成される。
【0064】
ラベル決定部220は、2値化モジュール20によって出力された注目画素の各々について、複数の周辺画素に異なるラベルが付与されている場合、ラベル統合メモリ222に記憶された、同一のラベルに統合されたラベルの各々の関係に基づいて、統合されたラベルを当該注目画素に付与する。
また、ラベル決定部220は、同一のラベルに統合したラベルの関係を、ラベル統合メモリ222に格納する。
また、ラベル決定部220は、2値化モジュール20によって出力された注目画素の各々について、複数の周辺画素に同一のラベルが付与されている場合、周辺画素と同一のラベルを当該注目画素に付与する。
【0065】
ラベル統合メモリ222には、ラベル決定部220によって同一のラベルに統合されたラベルの各々の関係が格納される。
【0066】
メモリ224、第1レジスタ226、第2レジスタ228、及び第3レジスタ230は、ラベル決定のタイミングに合わせた書き換えが行われるように、対応マスクに対応する各画素のラベルを出力する。
【0067】
面積算出モジュール24は、ラベリングモジュール22によって統合されたラベルに基づいて、統合されたラベルに対応する領域の面積を算出する。具体的には、面積算出モジュール24は、注目画素にラベルが付与される毎に、ラベルが付与された画素からなる領域の面積を算出する。
【0068】
面積算出モジュール24は、例えば、図19に示すような基本的面積算出メモリ240を含んだ構成とすることができる。基本的面積算出メモリ240は、例えばRAMによって構成される。
【0069】
面積算出モジュール24では、ラベリングモジュール22から出力されたラベルを基本的面積算出メモリ240に保存することにより、面積を逐次算出する。基本的面積算出メモリ240にラベルを保存する場合は、図19に示すように、ラベルLを書き込むアドレスとし、そのアドレス内のデータをラベルに対応する領域の面積Sとする。
【0070】
面積算出モジュール24では、基本的な処理として以下のような3つの処理を行う。
【0071】
(1)決定したラベルのアドレス内のデータであるラベルに対応する領域の面積を読み出す。
(2)読み出したデータをインクリメントする。
(3)インクリメントした結果を、後述する髪の毛の有無判別モジュール26に出力しつつ、基本的面積算出メモリ240内の(1)で決定したアドレス内に書き込む。ただし、読み込むアドレスが‘0’の場合、書き込むデータは常に0とする。
【0072】
上記(1)〜(3)のように処理することで、ラベルに対応する領域の面積を逐次算出することができる。基本的面積算出メモリ240を含み、基本的な面積算出を行うモジュールは図20に示すようになる。
【0073】
次に、ラベルの統合が発生したときの処理について説明する。ラベルの統合が発生したとき、面積算出の過程においては2つのラベルに対応する領域の面積を統合する必要がある。
【0074】
しかし、面積を算出するためのメモリとしてRAMを用いる際、全く同じタイミングで複数のアドレス内のデータを読み出すことができない。そのため、本実施の形態では、図21に示すように、基本的面積算出メモリ240と統合発生時用面積算出メモリ242との2つのメモリを用意し、RAMの二重化を行う。この二重化では、前述した(1)〜(3)を行う基本的面積算出メモリ240の他に、統合発生時用面積算出メモリ242が用意される。そして、統合発生時用面積算出メモリ242はラベルの統合が発生した場合のみ、基本的面積算出メモリ240のデータに加算するために用いられる。
【0075】
統合発生時用面積算出メモリ242におけるアドレスのやりとりは以下のように行われる。
【0076】
まず、統合が発生した場合に読み込まれるアドレスは、ラベリングモジュール22で統合されるラベル(ラベリングモジュール22のラベル決定部222から出力されたラベルaのことを示す)とし、統合が発生しない場合に読み込まれるアドレスはメモリ内で使わない番号である0が読み込まれる。
【0077】
これにより、統合が発生した時のみ統合発生時用の面積算出モジュールから0以外の面積を出力することができる。また、書き込むアドレスやデータは基本的な面積算出メモリと同じアドレスやデータを利用する。この統合発生時用面積算出メモリ242で読み込まれるデータと、上記の(1)〜(3)を行った基本的面積算出メモリ240で読み込まれたデータを足し合わせることで、統合するラベルに対応する領域の面積と統合されるラベルに対応するラベルの面積とを、統合することができる。
【0078】
従って、面積算出モジュール24は、注目画素の複数の周辺画素に付与されているラベルを同一のラベルに統合された場合に、複数の周辺画素に付与されているラベルに対応する領域の面積を加算して、統合されたラベルに対応する領域の面積を算出する。
【0079】
髪の毛の有無判別モジュール26は、面積算出モジュール24によって算出された面積に基づいて、画像に毛髪が含まれるか否かを判別する。毛髪は対象物の一例である。
【0080】
具体的には、髪の毛の有無判別モジュール26は、面積算出モジュール24から逐次出力された面積のデータを予め設定した閾値によって2値化する。そして、毛髪の有無判別モジュール26は、2値化した結果1が出力された場合、毛髪ありと判定し、0が出力された場合、毛髪なしと判定する。
【0081】
髪の毛の有無判別モジュール26は、毛髪ありと判定した場合は、毛髪ありの通知信号として5Vの電圧をFPGAボード8の外部に出力する。一方、毛髪なしと判定した場合は、FPGAボード8の外部へは何も出力しない(通知信号0Vの状態)。5Vの信号を外部のシーケンサーへ送ることにより、毛髪ありのときにはベルトコンベア上を流れるおしぼりを通常のルートから除外するシステムになっている。毛髪の有無判別モジュール26は、例えば図22のような構成になっている。
【0082】
次に、画像処理モジュール14内のトップモジュールについて説明する。
【0083】
画像処理モジュール14内のトップモジュールは、例えば図23に示すように、第1処理部15及び第2処理部17を備え、8bitの画像、ラインイネーブル、フレームイネーブルを入力としている。ただし、全てのモジュールはアクティブ・ハイである。
【0084】
このとき、ラインイネーブル信号はラインセンサカメラが1ライン分(4096画素分)撮影したデータを送るタイミングのときHighとし、それ以外のときLowとしている。また、カメラリンクモジュールから送られてくるフレームイネーブル信号は8つのDIPスイッチを利用している。8つのDIPスイッチから8bitデータを設定し、設定された値を閾値とする。この設定された閾値を超える画素が1ラインに50画素以上あるときにフレームイネーブルをHighにする。おしぼりはベルトコンベア(背景画像)に比べて非常に画素値が大きいため、このように設定することでおしぼりが流れ始めたことを判定することができる。その後、フレームイネーブルをLowにするタイミングは、閾値を超える画素が1ラインに50画素以下になった直後のラインまでとしている。このような設計により、おしぼりが撮影された部分のみ有効なフレームイネーブル信号とすることができる。画像処理モジュール14では、フレームイネーブル立ち下がり時にリセットする構成になっている。
また、ラベリングモジュール22や面積算出モジュール24で利用しているRAMは13bitにしているが、番号8192になったとき、ラベルは1から再度番号付けする構成になっている。
【0085】
次に、本実施の形態に係る毛髪検出装置1の作用について説明する。
【0086】
ベルトコンベア3によっておしぼり2が移動させられ、LEDライト4によっておしぼり2の表面が照明され、かつカメラ6によっておしぼり2の表面が撮影されているときに、FPGAボード8が動作し、図24に示す画像処理が画像処理モジュール14によって実行される。
【0087】
まず、ステップS100において、マスクパターン取得モジュール16は、カメラリンクモジュール12によって出力された画像を取得する。
【0088】
ステップS102において、マスクパターン取得モジュール16は、予め定められた対応マスクに応じて、上記ステップS100で取得された画像の注目画素の画素値と当該注目画素の周辺画素の画素値とを取得する。
【0089】
ステップS104において、ラプラシアンフィルタモジュール18は、上記ステップS102で取得された注目画素の画素値及び周辺画素の画素値と、予め設定されたフィルタとに基づいて、注目画素の画素値及び周辺画素の画素値に対しフィルタ演算を行う。
【0090】
ステップS106において、2値化モジュール20は、上記ステップS104で演算されたフィルタ演算結果と予め設定した閾値とに基づいて注目画素の画素値を2値化し、2値化処理結果を出力する。
【0091】
ステップS108において、ラベリングモジュール22は、上記ステップS106で2値化された注目画素について、当該注目画素の各周辺画素に付与されたラベルと当該注目画素の画素値とに基づき当該注目画素に対してラベルを付与する際に、当該注目画素の複数の周辺画素に異なるラベルが付与されている場合、複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、当該注目画素に付与する。ステップS108は、図25に示すラベリング処理によって実現される。
【0092】
<ラベリング処理>
ステップS200において、ラベリングモジュール22は、ステップS106で出力された注目画素を取得する。
【0093】
次に、ステップS202において、ラベリングモジュール22は、上記ステップS200で取得された注目画素の画素値が1であるか否かを判定する。注目画素の画素値が1である場合には、ステップS204に進む。一方、注目画素の画素値が0である場合には、ステップS200へ戻る。
【0094】
ステップS204において、ラベリングモジュール22は、予め設定されたマスクパターンに応じて、上記ステップS200で取得された注目画素の周辺画素を取得する。なお、周辺画素は、メモリ224と、第1レジスタ226、第2レジスタ228、及び第3レジスタ230に格納されたデータから取得される。
【0095】
ステップS206において、ラベリングモジュール22は、上記ステップS204で取得された複数の周辺画素に異なるラベルが付与されているか否かを判定する。複数の周辺画素に異なるラベルが付与されている場合には、ステップS208へ進む。一方、複数の周辺画素に同一のラベルが付与されている場合には、ステップS210へ進む。
【0096】
ステップS208において、ラベリングモジュール22は、ラベル統合メモリ222を参照し、上記ステップS206で取得された複数の周辺画素に付与されている、第1のラベルと第2のラベルとを同一のラベルに統合して、ラベル間の関係をラベル統合メモリ222に保存する。そして、ラベリングモジュール22は、第2のラベルを当該注目画素に付与する。
【0097】
ステップS210において、ラベリングモジュール22は、上記ステップS206で取得された周辺画素に付与されているラベルと同一のラベルを、当該注目画素に付与する。
【0098】
ステップS212において、ラベリングモジュール22は、上記ステップS208でラベルが統合された場合に、ラベル統合メモリ222に格納されたラベル間の関係に基づいて、第1のラベルと第2のラベルとを、面積算出モジュール24へ出力する。一方、上記ステップS210でラベルが付与された場合には、当該注目画素に付与されたラベルを面積算出モジュール24へ出力する。
【0099】
次に、上記図24に示す画像処理に戻り、ステップS110において、面積算出モジュール24は、ラベリングモジュール22によって第1のラベルと第2のラベルとが出力された場合に、基本的面積算出メモリ240で読み込まれるデータと、統合発生時用面積算出メモリ242で読み込まれるデータとを加算して、統合されたラベルに対応する領域の面積を算出する。
【0100】
一方、面積算出モジュール24は、ラベリングモジュール22によって注目画素に付与されたラベルのみが出力された場合に、基本的面積算出メモリ240で読み込まれるデータを読み出す。そして、面積算出モジュール24は、読み出したデータをインクリメントし、インクリメントした結果を、髪の毛の有無判別モジュール26に出力し、基本的面積算出メモリ240内のアドレス内に結果を書き込む。
【0101】
ステップS112において、髪の毛の有無判別モジュール26は、上記ステップS110で算出された面積に基づいて、画像に毛髪が含まれるか否かを判別する。
【0102】
ステップS114において、髪の毛の有無判別モジュール26は、上記ステップS112で毛髪ありと判定した場合は、毛髪ありの通知信号として5Vの電圧をFPGAボード8の外部に出力する。一方、毛髪なしと判定した場合は、FPGAボード8の外部へは何も出力しない。
【0103】
以上説明したように、本発明の実施の形態に係る毛髪検出装置によれば、入力画像を走査することにより、入力画像の注目画素の各周辺画素に付与されたラベルと注目画素の画素値とに基づき注目画素に対してラベルを付与する際に、注目画素の複数の周辺画素に異なるラベルが付与されている場合、複数の周辺画素に付与されているラベルを同一のラベルに統合し、かつ、統合されたラベルを、注目画素に付与することにより、入力画像を走査しながら適切なラベリングをすることができる。
【0104】
また、従来技術では、各画素に対してラベル付けを行った後にラベルを統合する処理が必要であったが、本実施形態では、ラベル付けを行う際にラベルを統合することにより、画像中の対象物の有無を高速に判定することができる。
【0105】
なお、上記実施の形態では、おしぼり2の表面の画像をFPGAボード8によって画像処理する場合について説明したが、おしぼり2の裏面の画像をFPGAボード9よって同様の画像処理方法を用いて、おしぼり2の裏面に付着した毛髪も検出することができる。
【0106】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0107】
例えば、本実施の形態では、入力画像の被写体がおしぼりであり、検出する対象物が毛髪である場合を例に説明したがこれに限定されるものではなく、画像処理を適用することができれば、入力画像の被写体及び対象物は何でもよい。例えば、入力画像の被写体の表面の異物を対象物として検出してもよい。または、入力画像の被写体の表面のきずなどの欠陥箇所を対象物として検出してもよい。
【0108】
また、本実施の形態では、毛髪検出装置がFPGAによって実現される場合を例に説明したが、これに限定されるものではない。例えば、本実施形態に係る毛髪検出装置を、CPU、ROM、RAM、及びHDDを備えるコンピュータによって実現してもよい。
【0109】
また、本実施の形態では、周辺画素を参照するためのマスクパターンとして、上記図6に示すようなマスクパターンを用いる場合を例に説明したが、これに限定されるものではなく、どのようなマスクパターンを用いてもよい。その場合には、ラベルの統合が発生するのは、上記図10に限定されるものではなく、他のパターンであってもラベルを統合してもよい。
【0110】
また、本実施の形態では、マスクパターンを用いて周辺画素を参照し、上記図14に示す周辺画素Xのラベルを、画素のラベルとする場合について説明したが、これに限定されるものではない。例えば、ラベルを付与する画素の左上、左隣、右隣、又は上側に位置する周辺画素のラベルを、画素のラベルとして付与してもよい。または、マスクパターン内の周辺画素に付与されたラベルの多数決によって、画素のラベルを決定してもよい。
【符号の説明】
【0111】
1 毛髪検出装置
2 おしぼり
3 ベルトコンベア
4,5 LEDライト
6,7 カメラ
8,9 FPGAボード
10 クロック乗せ換えモジュール
12 カメラリンクモジュール
14 画像処理モジュール
16 マスクパターン取得モジュール
18 ラプラシアンフィルタモジュール
20 2値化モジュール
22 ラベリングモジュール
24 面積算出モジュール
26 髪の毛の有無判別モジュール
220 ラベル決定部
222 ラベル統合メモリ
224 メモリ
226,228,230 レジスタ
240 基本的面積算出メモリ
242 統合発生時用面積算出メモリ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25