(57)【特許請求の範囲】
【請求項１】
物体の外観上の欠陥を検出する情報処理装置であって、
前記物体の外観を構成する部品毎の画像データをそれぞれ示す複数の第１の部品画像データを記憶する記憶手段と、
前記複数の第１の部品画像データに基づき、前記物体を撮像して得た画像データから、前記部品毎の画像データをそれぞれ示す複数の第２の部品画像データを取得する部品画像取得手段と、
前記複数の第２の部品画像データそれぞれの特徴量を算出する特徴量算出手段と、
前記特徴量算出手段により算出された複数の特徴量のそれぞれに基づき、半教師あり異常検知により、前記特徴量に対応する部品の外観上の欠陥を検出する検出手段と、
を有する情報処理装置。
【請求項２】
前記部品画像取得手段は、
前記複数の第１の部品画像データのそれぞれをテンプレートとしたテンプレートマッチングを前記画像データにそれぞれ行うことにより、前記複数の第２の部品画像データをそれぞれ取得する、請求項１記載の情報処理装置。
【請求項３】
前記特徴量算出手段により算出される複数の特徴量のそれぞれは、ＳＵＲＦ特徴量又はＳＩＦＴ特徴量である、請求項１又は２に記載の情報処理装置。
【請求項４】
前記特徴量算出手段により算出される複数の特徴量のそれぞれは、ＳＵＲＦ特徴量又はＳＩＦＴ特徴量算出の手法により算出されるオリエンテーションと、該オリエンテーションが算出された座標とが含まれる特徴量である、請求項３記載の情報処理装置。
【請求項５】
前記検出手段は、
Ｄｅｎｓｅ  Ｓａｍｐｌｉｎｇの手法により算出したＳＵＲＦ特徴量又はＳＩＦＴ特徴量を用いて予め学習された正常モデルと、前記特徴量算出手段により算出された複数の特徴量のそれぞれに基づき、半教師あり異常検知により、前記特徴量に対応する部品の外観上の欠陥を検出する、請求項１ないし４のいずれか１項に記載の情報処理装置。
【請求項６】
前記正常モデルは、
Ｄｅｎｓｅ  Ｓａｍｐｌｉｎｇの手法を用いたＳＵＲＦ特徴量又はＳＩＦＴ特徴量算出の手法により算出されるオリエンテーションと、該オリエンテーションが算出された座標とを特徴量を用いて予め学習される、請求項５記載の情報処理装置。
【請求項７】
前記検出手段は、Ｏｎｅ−Ｃｌａｓｓ  ＳＶＭ又はＬＯＦを用いて前記部品の外観上の欠陥を検出する、請求項１ないし６のいずれか１項に記載の情報処理装置。
【請求項８】
物体の外観上の欠陥を検出する情報処理装置であって、前記物体の外観を構成する部品毎の画像データをそれぞれ示す複数の第１の部品画像データを記憶する記憶手段を有する情報処理装置に用いられる情報処理方法であって、
前記複数の第１の部品画像データに基づき、前記物体を撮像して得た画像データから、前記部品毎の画像データをそれぞれ示す複数の第２の部品画像データを取得する部品画像取得手順と、
前記複数の第２の部品画像データそれぞれの特徴量を算出する特徴量算出手順と、
前記特徴量算出手順により算出された複数の特徴量のそれぞれに基づき、半教師あり異常検知により、前記特徴量に対応する部品の外観上の欠陥を検出する検出手順と、
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
あるデータについて、このデータが異常な値（外れ値）であるか否かを識別する機械学習の手法が知られており、このような手法を用いることにより、例えば、規格外の製品や欠陥がある製品を検知する技術が従来より知られている。あるデータが異常な値であるか否かを識別する手法は、教師あり異常検知手法、半教師あり異常検知手法、教師なし異常検知手法の３通りに大別される。
【０００３】
ここで、教師あり異常検知の手法を用いて、欠陥がある製品の画像データを分類する技術が従来より知られている（例えば特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術においては、教師あり異常検知手法を用いているため、学習データとして欠陥がある製品を示すネガティブデータを得ることが難しい場合には、欠陥を検知する精度が低いといった問題がある。ここで、一般的な製品は欠陥品と比して良品（欠陥がない製品）が多いため、ネガティブデータを大量に得ることは難しい場合が多い。また、製品の欠陥の種類が複数ある場合には、すべての欠陥の種類をカバーするように多様なネガティブデータを得ることはさらに難しくなる。
【０００５】
他方、半教師あり異常検知手法は、学習データとして良品を示すポジティブデータのみを用いる手法であり、一般に、教師あり異常検知手法に比べて欠陥を検知する精度が低い場合が多い。
【０００６】
本発明の一実施形態は、上記の点に鑑みてなされたもので、半教師あり異常検知を用いて、高い精度で欠陥を検出することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一実施形態は、物体の外観上の欠陥を検出する情報処理装置であって、前記物体を撮像して得られた画像データの特徴量を算出する特徴量算出手段と、前記特徴量算出手段により算出された特徴量に基づき、半教師あり異常検知により前記製品の外観上の欠陥を検出する検出手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明の一実施形態によれば、半教師あり異常検知を用いて、高い精度で欠陥を検出することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る情報処理システムの一例の構成図である。
【図２】第１の実施形態に係る情報処理装置の一例のハードウェア構成図である。
【図３】第１の実施形態に係る情報処理装置の一例の機能ブロック図である。
【図４】第１の実施形態に係る学習処理の一例のフローチャートである。
【図５】Ｄｅｎｓｅ  ｓａｍｐｌｉｎｇの一例を説明するための図である。
【図６】第１の実施形態に係る判定処理の一例のフローチャートである。
【図７】検出された欠陥の一例を説明するための図である。
【図８】第２の実施形態に係る判定処理の一例のフローチャートである。
【図９】検出された欠陥の他の例を説明するための図である。
【図１０】欠陥の検出率を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１１】
［第１の実施形態］
＜システム構成＞
まず、第１の実施形態に係る情報処理システム１のシステム構成について説明する。図１は、第１の実施形態に係る情報処理システムの一例の構成図である。
【００１２】
図１に示すように情報処理システム１は、情報処理装置１０と、撮像装置３０とを有する。また、情報処理装置１０及び撮像装置３０は、例えばＵＳＢ（Universal Serial Bus）ケーブル等を介して通信可能に接続されている。なお、情報処理装置１０及び撮像装置３０は、ＬＡＮ（Local Area Network）等を介して通信可能に接続されていてもよい。
【００１３】
情報処理装置１０は、例えばＰＣ（パーソナルコンピュータ）等である。情報処理装置１０には、欠陥検出プログラム２０がインストールされている。情報処理装置１０は、欠陥検出プログラム２０を用いることで、撮像装置３０で撮像することにより入力された画像データにおける被写体の外観上の欠陥を検出することができる。本実施形態では、撮像装置３０により撮像される被写体としては例えば工場で量産される製品等を想定し、外観上に欠陥がある場合とは、製品等の外観上（表面上）に傷等がある場合を言うものとする。
【００１４】
ここで、欠陥検出プログラム２０は、半教師あり異常検知により画像データの被写体の外観上の欠陥を検出するものとする。このため、欠陥検出プログラム２０は、欠陥のない製品（良品）を被写体とした画像データを複数枚用いて、予め半教師あり学習の手法により学習（すなわち、欠陥がないことを示すデータの集合であるポジティブモデルの作成）を行っておく必要がある。
【００１５】
なお、情報処理装置１０は、ＰＣに限られず、スマートフォン、タブレット端末等の携帯端末装置であってもよい。
【００１６】
撮像装置３０は、被写体を撮像して画像データを生成するカメラ等である。撮像装置３０により生成された画像データは、例えばＵＳＢケーブル等を介して情報処理装置１０に入力される。撮像装置３０は、情報処理装置１０に内蔵されていてもよい。
【００１７】
＜ハードウェア構成＞
次に、第１の実施形態に係る情報処理装置１０のハードウェア構成について説明する。図２は、第１の実施形態に係る情報処理装置の一例のハードウェア構成図である。図２に示すように情報処理装置１０は、ＣＰＵ（Central Processing Unit）１１と、ＨＤＤ（Hard Disk Drive）１２と、ＲＡＭ（Random Access Memory）１３と、ＲＯＭ（Read Only Memory）１４とを備えている。また、情報処理装置１０は、入力装置１５と、表示装置１６と、外部Ｉ／Ｆ１７と、通信Ｉ／Ｆ１８とを備えている。これらの各部はバスＢで接続されている。
【００１８】
ＣＰＵ１１は、ＲＯＭ１４やＨＤＤ１２等の記憶装置からプログラムやデータをＲＡＭ１３上に読み出し、処理を実行することで、情報処理装置１０全体の制御や機能を実現する演算装置である。
【００１９】
ＨＤＤ１２は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えば、情報処理装置１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア（例えば、欠陥検出プログラム２０）等がある。ＨＤＤ１２は格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢ（データベース）により管理している。なお、情報処理装置１０は、ＨＤＤ１２の代わりに又はＨＤＤ１１２と併せて、ＳＳＤ（Solid State Drive）等を備えていてもよい。
【００２０】
ＲＡＭ１３は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１４は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）である。
【００２１】
入力装置１５は、ユーザが各種操作信号を入力するのに用いられる装置である。入力装置１５は、例えば、各種操作ボタン、タッチパネル、キーボード、マウス等である。表示装置１６は、情報処理装置１０による処理結果を表示する装置である。表示装置１６は、例えば、ディスプレイ等である。
【００２２】
外部Ｉ／Ｆ１７は、外部装置とのインタフェースである。外部装置には、例えば、ＵＳＢ（Universal Serial Bus）メモリ、ＳＤカード、ＣＤ、ＤＶＤ等がある。通信Ｉ／Ｆ１８は、撮像装置３０とデータ通信を行うためのインタフェースである。
【００２３】
本実施形態に係る情報処理装置１０は、上記ハードウェア構成を有することにより、後述する各種処理を実現することができる。
【００２４】
＜機能構成＞
次に、第１の実施形態に係る情報処理装置１０の機能構成について説明する。図３は、第１の実施形態に係る情報処理装置の一例の機能ブロック図である。図３に示すように、情報処理装置１０は、入力部２１と、部品画像生成部２２と、特徴量算出部２３と、欠陥検出部２４とを有する。これらの各部は、例えばＣＰＵ１１が欠陥検出プログラム２０を実行させることにより実現される。
【００２５】
入力部２１は、学習画像データ１０００及び判定対象画像データ２０００を入力する。ここで、入力部２１は、学習画像データ１０００を、例えば外部Ｉ／Ｆ１７を介して外部装置から又はＨＤＤ１２から入力する。また、入力部２１は、判定対象画像データ２０００を、例えば通信Ｉ／Ｆ１８を介して撮像装置３０から入力する。
【００２６】
ここで、学習画像データ１０００は、欠陥検出部２４の学習に用いる、欠陥のない複数の製品（良品）をそれぞれ撮像することにより得た複数枚の画像データである（すなわち、学習画像データ１０００はポジティブデータである。）。複数枚の学習画像データ１０００について、各々区別する場合はそれぞれ「学習画像データ１０００１」、「学習画像データ１０００２」、・・・と表す。
【００２７】
一方、判定対象画像データ２０００は、欠陥検出部２４により欠陥の有無が判定される画像データである。すなわち、判定対象画像データ２０００は、例えば、情報処理装置１０のユーザにより撮像装置３０で撮像された、外観に欠陥があるか否かを判定したい製品を被写体とする画像データである。
【００２８】
部品画像生成部２２は、部品画像データ３０００に基づき、入力部２１により入力された学習画像データ１０００から部品毎の学習画像データを生成する。すなわち、学習画像データ１０００の被写体となっている製品の外観が複数の部品から構成されているものとした場合、部品画像生成部２２は、学習画像データ１０００からこれらの部品毎の学習画像データを生成する。この生成された画像データを、以降では、「部品毎の学習画像データ１１００」と表す。
【００２９】
具体的には、被写体となっている製品の外観が例えば、部品Ａ、部品Ｂ、及び部品Ｃから構成されている場合、学習画像データ１０００から部品Ａの学習画像データ１１００１、部品Ｂの学習画像データ１１００２、及び部品Ｃの学習画像データ１１００３を生成する。これは、予めＨＤＤ１２や外部装置に記憶された部品Ａ画像データ３０００１、部品Ｂ画像データ３０００２、及び部品Ｃ画像データ３０００３を用いて、それぞれ学習画像データ１０００に対してテンプレートマッチングを行うことで生成される。
【００３０】
同様に、部品画像生成部２２は、部品画像データ３０００に基づき、入力部２１により入力された判定対象画像データ２０００から部品毎の判定対象画像データを生成する。この生成された画像データを、以降では、「部品毎の判定対象画像データ２１００」と表す。
【００３１】
特徴量算出部２３は、入力された部品毎の学習画像データ１１００からそれぞれ特徴量を算出する。同様に、特徴量算出部２３は、入力された部品毎の判定対象画像データ２１００からそれぞれ特徴量を算出する。ここで、本実施形態では、特徴量は、ＳＵＲＦ（Speeded Up Robust Features）特徴量の算出手法が用いられる。ＳＵＲＦ特徴量の算出については、例えば「H.Bay, "Speeded-Up Robust Features (SURF)", Computing Vision and Image Understanding, Vol.110 (3) June 2008, pp.346-359.」に開示されている。ただし、特徴量の算出手法は、これに限られず、例えば、ＳＩＦＴ（Scale-Invariant Feature Transform）特徴量やＦｅｒｎｓ特徴量の算出手法等を用いてもよい。
【００３２】
欠陥検出部２４は、部品毎に複数の欠陥検出部２４から構成される。例えば、欠陥検出部２４は、部品Ａの欠陥を検出するための欠陥検出部２４１、部品Ｂの欠陥を検出するための欠陥検出部２４２、・・・を有する。各欠陥検出部２４は、学習画像データ１０００から特徴量算出部２３により算出された部品毎の特徴量に基づき、それぞれ部品毎に半教師あり学習を行う。また、各欠陥検出部２４は、判定対象画像データ２０００から特徴量算出部２３により算出された部品毎の特徴量に基づき、半教師あり異常検知によりそれぞれ部品毎に欠陥の有無を判定する。ここで、本実施形態では、各欠陥検出部２４は、ｏｎｅ―ｃｌａｓｓ  ＳＶＭを用いることにより欠陥の検出（欠陥の有無を判定）を行う。ただし、欠陥の検出は、これに限られず、例えば、ＬＯＦ（Local Outlier Factor）等を用いてもよい。
【００３３】
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。本実施形態に係る情報処理装置１０は、上述したように、学習画像データ１０００を用いて、欠陥検出部２４を予め学習させておく必要がある。そして、本実施形態に係る情報処理装置１０は、学習された欠陥検出部２４により判定対象画像データ２０００の欠陥の有無を判定する。
【００３４】
≪学習処理≫
まず、学習画像データ１０００を用いて、本実施形態に係る情報処理装置１０の欠陥検出部２４を学習させる処理について説明する。なお、上述したように、学習画像データ１０００は、良品を撮像装置３０により撮像等することにより得られた画像データである。すなわち、以降で説明する学習処理は、半教師あり学習である。
【００３５】
ステップＳ４０１において、入力部２１は、学習画像データ１０００を入力する。ここで、入力部２１は、学習画像データ１０００を、例えば、外部Ｉ／Ｆ１７を介してＵＳＢメモリ、ＳＤカード、ＣＤ、ＤＶＤ等の外部装置から又はＨＤＤ１２等から入力する。また、入力部２１は、学習画像データ１０００を、例えば、ＬＡＮやインターネット等のネットワークを介して入力してもよいし、撮像装置３０で良品を撮像することにより学習画像データ１０００を生成して入力してもよい。
【００３６】
なお、以降のステップＳ４０２〜ステップＳ４０４の処理は、入力部２１により入力された学習画像データ１０００毎に繰り返し実行される。すなわち、ステップＳ４０２〜ステップＳ４０４の処理は、学習画像データ１０００１、学習画像データ１０００２、・・・のそれぞれに対して実行される。
【００３７】
ステップＳ４０２において、部品画像生成部２２は、部品画像データ３０００に基づき、入力された学習画像データ１０００から部品毎の学習画像データ１１００を生成する。
【００３８】
例えば、製品の外観が部品Ａ、部品Ｂ、及び部品Ｃから構成されている場合には、具体的には以下のようにして部品毎の学習画像データ１１００を生成する。
（１）部品Ａを撮像して得た部品Ａ画像データ３０００１、部品Ｂを撮像して得た部品Ｂ画像データ３０００２、及び部品Ｃを撮像して得た部品Ｃ画像データ３０００３を入力する。
（２）部品Ａ画像データ３０００１をテンプレートとして、学習画像データ１０００に対して、テンプレートマッチングを行い類似度を算出する。なお、類似度の算出には、例えばＳＳＤ（Sum of Squared Difference）、ＳＡＤ（Sum of Absolute Difference）、ＮＣＣ（Normalized Cross-Correlation）等を用いればよい。
（３）算出された類似度が、予め設定された所定の閾値以上となる（又は最大となる）画像を、部品Ａの学習画像データ１１００１とする。これにより、部品Ａの学習画像データ１１００１が生成される。
【００３９】
部品Ｂの学習画像データ１１００２及び部品Ｃの学習画像データ１１００３は、上記の（２）において、それぞれ部品Ｂ画像データ３０００２及び部品Ｃ画像データ３０００３を用いてテンプレートマッチングを行うことにより上記と同様に生成される。
【００４０】
以上のようにして、学習画像データ１０００から、製品（良品）の外観を構成する部品毎の学習画像データ１１００が生成される。なお、良品の外観を構成する部品として、同一の部品が複数含まれる場合、当該部品の学習画像データ１１００は複数枚生成される。例えば、良品の外観に部品Ａが２つ含まれる場合、２枚の部品Ａの学習画像データ１１００が生成される。
【００４１】
ステップＳ４０３において、特徴量算出部２３は、部品毎の学習画像データ１１００からそれぞれ特徴量を算出する。例えば、製品の外観が部品Ａ、部品Ｂ、及び部品Ｃから構成されている場合には、具体的には、特徴量算出部２３は、以下のようにして特徴量を算出する。
（１）部品Ａの学習画像データ１１００１について、２ピクセル毎に、ＳＵＲＦ特徴量の算出手法を用いて、所定のスケールσでオリエンテーションを算出する。部品Ａの学習画像データ１１００１が１００×１００ピクセルの画像データである場合について、一例として図５に示す。図５に示すように、各ｎ，ｍ＝１，・・・，５０に対して、（ｘ，ｙ）＝（２ｎ−１，２ｍ−１）の座標のピクセル（図５では１つのセルが１つのピクセルを表すものとする）において、所定のスケールσでオリエンテーションθｘｙを算出する。図５では、各矢印の向きがオリエンテーションθｘｙを示している。このように、キーポイントの検出を行わずに、所定のピクセル毎（又はすべてのピクセルに対して）に特徴量を算出する手法はＤｅｎｓｅ  ｓａｍｐｌｉｎｇと称される。
（２）上記で得られた各３次元ベクトル（ｘ，ｙ，θｘｙ）を、部品Ａの学習画像データ１１００１の特徴量とする。
【００４２】
部品Ｂの学習画像データ１１００２及び部品Ｃの学習画像データ１１００３についてもそれぞれ上記の（１）及び（２）を行い、それぞれ３次元ベクトル（ｘ，ｙ，θｘｙ）部品Ｂ及び（ｘ，ｙ，θｘｙ）部品Ｃを特徴量として得る。
【００４３】
以上のようにして、部品毎の学習画像データ１１００からそれぞれ特徴量が算出される。ここで算出された部品毎の特徴量が、当該部品におけるポジティブデータである。なお、上記では、２ピクセル毎にオリエンテーションを算出したが、これに限られず、任意のピクセル毎にオリエンテーションを算出してもよい。また、所定のスケールσとしては、部品毎の学習画像データ１１００のサイズにより異なるものの、２０ないし３０ピクセルとすればよい。
【００４４】
ステップＳ４０４において、欠陥検出部２４は、上記のステップＳ４０３で算出された特徴量を用いて学習を行う。このとき欠陥検出部２４は、部品毎に学習を行う。すなわち、例えば、部品Ａの学習画像データ１１００１から算出された特徴量を用いて、部品Ａの欠陥検出部２４１の学習を行う。同様に、部品Ｂの学習画像データ１１００２から算出された特徴量を用いて、部品Ｂの欠陥検出部２４２の学習を行う。このように、各欠陥検出部２４の学習は、部品毎に行われる。
【００４５】
ここで、ｏｎｅ―ｃｌａｓｓ  ＳＶＭを用いた欠陥検出部２４の学習は、次のようにして行われる。すなわち、上記のステップＳ４０３で算出された特徴量を３次元空間にプロットして、ポジティブデータを表すデータ集合（ポジティブモデル）を生成する。そして、このデータ集合と、３次元空間上の所定の点とを分ける所定の平面（又は曲面）を求める。このように欠陥検出部２４を学習させておくことで、後述する判定処理において、判定対象画像データ２０００の被写体の製品の外観を構成する部品に欠陥があるか否かを判定することができる。なお、上記で生成されたデータ集合は、例えばＨＤＤ１２等に格納すればよい。
【００４６】
≪判定処理≫
次に、上記で説明したような学習処理を行った欠陥検出部２４を用いて、判定対象画像データ２０００の被写体（製品）に外観上の欠陥があるか否かを判定する処理について説明する。なお、上述したように、本実施形態において、製品の外観上の欠陥とは、傷等がある場合（すなわち、製品の外観を構成する部品の表面上に傷等がある場合）をいうものとする。図６は、第１の実施形態に係る判定処理の一例のフローチャートである。
【００４７】
ステップＳ６０１において、入力部２１は、判定対象画像データ２０００を入力する。ここで、入力部２１は、判定対象画像データ２０００を、撮像装置３０により製品を撮像することにより生成して入力する。また、入力部２１は、判定対象画像データ２０００を、例えば、外部Ｉ／Ｆ１７を介してＵＳＢメモリ、ＳＤカード、ＣＤ、ＤＶＤ等の外部装置から又はＨＤＤ１２等から入力してもよい。さらに、入力部２１は、判定対象画像データ２０００を、例えば、ＬＡＮやインターネット等のネットワークを介して入力してもよい。
【００４８】
ステップＳ６０２において、部品画像生成部２２は、部品画像データ３０００に基づき、入力された判定対象画像データ２０００から部品毎の判定対象画像データ２１００を生成する。これは、図４のステップＳ４０２の処理と略同様であるため、簡単に説明する。
【００４９】
例えば、製品の外観が部品Ａ、部品Ｂ、及び部品Ｃから構成されている場合には、以下のようにして部品毎の判定対象画像データ２１００を生成する。
（１）部品Ａ画像データ３０００１、部品Ｂ画像データ３０００２、及び部品Ｃ画像データ３０００３を入力する。
（２）部品Ａ画像データ３０００１をテンプレートとして、判定対象画像データ２０００に対して、テンプレートマッチングを行い類似度を算出する。
（３）算出された類似度が、予め設定された所定の閾値以上となる（又は最大となる）画像を、部品Ａの判定対象画像データ２１００１とする。
【００５０】
部品Ｂの判定対象画像データ２１００２及び部品Ｃの判定対象画像データ２１００３は、上記の（２）において、それぞれ部品Ｂ画像データ３０００２及び部品Ｃ画像データ３０００３を用いてテンプレートマッチングを行うことにより上記と同様に生成される。
【００５１】
以上のようにして、判定対象画像データ２０００から、製品の外観を構成する部品毎の判定対象画像データ２１００が生成される。なお、製品の外観を構成する部品として、同一の部品が複数含まれる場合、当該部品の判定対象画像データ２１００は複数枚生成される。
【００５２】
ステップＳ６０３において、特徴量算出部２３は、部品毎の判定対象画像データ２１００からそれぞれ特徴量を算出する。例えば、製品の外観が部品Ａ、部品Ｂ、及び部品Ｃから構成されている場合には、具体的には、特徴量算出部２３は、以下のようにして特徴量を算出する。
（１）部品Ａの判定対象画像データ２１００１について、キーポイントの検出を行う。これは、ヘッセ行列を用いて検出することができる。検出されたキーポイントを、それぞれ（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘｋ，ｙｋ）とする。
（２）上記で得られたキーポイント（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘｋ，ｙｋ）のそれぞれについて、スケールσｊを算出する。ここで、ｊ＝１，・・・，ｋである。
（３）キーポイント（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘｋ，ｙｋ）のうち、学習処理の際に用いた所定のスケールσとの関係で、｜σ−σｊ｜＞εとなる（ｘｊ，ｙｊ）を除外する。このようにして得られたキーポイントを、（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘＬ，ｙＬ）とする。ここで、ｋ≧Ｌである。また、上記のεは予め設定された値である。このことは、キーポイント（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘｋ，ｙｋ）のうち、スケールσｊの値がσと近い値となるキーポイント以外を除外することを意味している。なお、このようにして得られたキーポイント（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘＬ，ｙＬ）が当該部品（部品Ａ）において欠陥（傷等）が存在する場所の候補となる。
（４）各キーポイント（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘＬ，ｙＬ）に対して、それぞれのキーポイントにおけるオリエンテーションθｊを算出する。そして、これにより得られる３次元ベクトル（ｘｊ，ｙｊ，θｊ）（ｊ＝１，・・・，Ｌ）を部品Ａの判定対象画像データ２１００１の特徴量とする。
【００５３】
部品Ｂの判定対象画像データ２１００１及び部品Ｃの判定対象画像データ２１００２についてもそれぞれ上記の（１）ないし（４）を行い、それぞれ３次元ベクトル（ｘｊ，ｙｊ，θｊ）部品Ｂ及び（ｘｊ，ｙｊ，θｊ）部品Ｃを特徴量として得る。
【００５４】
以上のようにして、部品毎の判定対象画像データ２１００からそれぞれ特徴量が算出される。ここで算出された部品毎の特徴量を用いて、部品毎に欠陥（傷等）があるか否かが判定される。
【００５５】
ステップＳ６０４において、欠陥検出部２４は、上記のステップＳ６０３で算出された特徴量を用いて欠陥があるか否かの判定を行う。このとき欠陥検出部２４は、部品毎に欠陥の検出を行うことで、判定対象画像データ２０００の被写体（製品）の外観に欠陥があるか否かの判定を行う。
【００５６】
すなわち、例えば、部品Ａの判定対象画像データ２１００１から算出された特徴量に基づき、部品Ａの欠陥検出部２４１により部品Ａの外観上の欠陥を検出する。具体的には、部品Ａの特徴量（ｘｊ，ｙｊ，θｊ）の各ｊについて、それぞれｏｎｅ―ｃｌａｓｓ  ＳＶＭを用いた欠陥検出部２４１によりネガティブデータであるか否かを識別する。このとき、ネガティブデータであると識別された特徴量（ｘｊ，ｙｊ，θｊ）に対応するキーポイント（ｘｊ，ｙｊ）を、判定対象画像データ２１００１における特徴点とする。そして、判定対象画像データ２１００１において、特徴点の密度が予め設定された所定の値（閾値）以上の範囲を、部品Ａの欠陥がある箇所と判定する。これにより部品Ａの欠陥が検出される。部品Ｂや部品Ｃについても同様の方法で欠陥が検出される。これにより、判定対象画像データ２０００の被写体（製品）の外観上に欠陥があるか否かが判定される。
【００５７】
ここで、本実施形態に係る情報処理装置１０により検出された製品の外観上の欠陥の一例を図７に示す。図７において範囲４０００及び範囲４１００で示される箇所が傷（欠陥）がある箇所である。これに対して本実施形態に係る情報処理装置１０により検出された欠陥が範囲５０００及び範囲５１００で示される箇所である。このように、本実施形態に係る情報処理装置１０によれば、製品の外観上に存在する欠陥の箇所を適切に検出することができる。なお、図７に示した画像は、「精密工学会  画像応用技術専門委員会  外観検査アルゴリズムコンテスト2014」の課題画像を用いたものである。
【００５８】
以上のように、本実施形態に係る情報処理装置１０によれば、製品の外観上に存在する傷等の欠陥を検出することができる。これにより、当該製品の外観に傷等の欠陥があるか否かを判定することができる。
【００５９】
［第２の実施形態］
次に、第２の実施形態に係る情報処理システム１について説明する。第１の実施形態に係る情報処理システム１に含まれる情報処理装置１０は製品の外観上に傷等の欠陥がある場合を検出するものであるが、第２の実施形態に係る情報処理装置１０では、製品の外観上に刻印等がない場合を欠陥として検出するものである。すなわち、第２の実施形態に係る情報処理装置１０では、本来あるべき外観上の特徴（例えば、刻印、シール等）がない場合を欠陥として検出する。なお、以降では、第１の実施形態と同様の機能を有する箇所及び同一の処理を行う箇所については、第１の実施形態と同一の符号を用いて、その説明を省略する。
【００６０】
＜処理の詳細＞
第２の実施形態に係る情報処理装置１０の処理の詳細について説明する。なお、学習処理は第１の実施形態と同様であるため、説明を省略する。
【００６１】
≪判定処理≫
以降では、判定対象画像データ２０００の被写体（製品）に外観上の欠陥があるか否かを判定する処理について説明する。なお、上述したように、本実施形態において、製品の外観上の欠陥とは、本来あるべき外観上の特徴（例えば、刻印、シール等）がない場合をいうものとする。図８は、第２の実施形態に係る判定処理の一例のフローチャートである。
【００６２】
ステップＳ８０１において、特徴量算出部２３は、部品毎の判定対象画像データ２１００からそれぞれ特徴量を算出する。例えば、製品の外観が部品Ａ、部品Ｂ、及び部品Ｃから構成されている場合には、具体的には、特徴量算出部２３は、以下のようにして特徴量を算出する。すなわち、第２の実施形態では、第１の実施形態と異なり、キーポイントの検出は行わずに、Ｄｅｎｓｅ  ｓａｍｐｌｉｎｇを行う。
（１）部品Ａの判定対象画像データ２１００１について、４ピクセル毎に、ＳＵＲＦ特徴量の算出手法を用いて、所定のスケールσでオリエンテーションθｊを算出する。これは、図４のステップＳ４０２で説明した処理と略同様である（ただし、ここでは判定対象画像データ２１００に対して、４ピクセル毎に行う点が異なる）。
（２）上記で得られた各３次元ベクトル（ｘｊ，ｙｊ，θｊ）を、部品Ａの判定対象画像データ２１００１の特徴量とする。
【００６３】
部品Ｂの判定対象像データ２１００２及び部品Ｃの判定対象画像データ２１００３についてもそれぞれ上記の（１）及び（２）を行い、それぞれ３次元ベクトル（ｘｊ，ｙｊ，θｊ）部品Ｂ及び（ｘｊ，ｙｊ，θｊ）部品Ｃを特徴量として得る。
【００６４】
以上のようにして、部品毎の判定対象画像データ２１００からそれぞれ特徴量が算出される。ここで算出された部品毎の特徴量を用いて、部品毎に欠陥（本来あるべき外観上の特徴がないこと）があるか否かが判定される。
【００６５】
ステップＳ８０２において、上記のステップＳ８０１で算出された特徴量を用いて欠陥があるか否かの判定を行う。このとき欠陥検出部２４は、部品毎に欠陥の検出を行うことで、判定対象画像データ２０００の被写体（製品）の外観に欠陥があるか否かの判定を行う。
【００６６】
すなわち、例えば、部品Ａの判定対象画像データ２１００１から算出された特徴量に基づき、部品Ａの欠陥検出部２４１により部品Ａの外観上の欠陥を検出する。具体的には、部品Ａの特徴量（ｘｊ，ｙｊ，θｊ）の各ｊについて、それぞれｏｎｅ―ｃｌａｓｓ  ＳＶＭを用いた欠陥検出部２４１によりネガティブデータであるか否かを識別する。このとき、ポジティブデータであると識別された特徴量（ｘｊ，ｙｊ，θｊ）に対応するピクセル（ｘｊ，ｙｊ）を、判定対象画像データ２１００１における特徴点とする。そして、判定対象画像データ２１００１において、特徴点の数が予め設定された所定の値（閾値）以下である場合、部品Ａに欠陥がある（すなわち、本来あるべき外観上の特徴がない）と判定する。これにより部品Ａの欠陥が検出される。部品Ｂや部品Ｃについても同様の方法で欠陥が検出される。これにより、判定対象画像データ２０００の被写体（製品）の外観上に欠陥があるか否かが判定される。
【００６７】
ここで、本実施形態に係る情報処理装置１０により検出された製品の外観上の欠陥の一例を図９に示す。図９において範囲６０００の箇所は、良品であれば刻印がある箇所であるが、当該刻印がつぶれてしまっているため、本実施形態に係る情報処理装置１０により欠陥として検出されている。このように、本実施形態に係る情報処理装置１０によれば、製品の外観上に存在する欠陥の箇所を適切に検出することができる。なお、図９に示した画像は、「精密工学会  画像応用技術専門委員会  外観検査アルゴリズムコンテスト2014」の課題画像を用いたものである。
【００６８】
以上のように、本実施形態に係る情報処理装置１０によれば、製品の外観上に本来あるべき刻印等がないといった欠陥を検出することができる。これにより、当該製品の外観に本本来あるべき刻印等がないといった欠陥があるか否かを判定することができる。
【００６９】
＜まとめ＞
以上のように、本実施形態に係る情報処理システム１に含まれる情報処理装置１０によれば、製品の外観上に存在する欠陥を適切に検出することができる。
【００７０】
ここで、第１の実施形態及び第２の実施形態に係る情報処理装置１０を用いて、予め欠陥の種類（傷がある、刻印がない等）及び欠陥の箇所（合計１４箇所）が判明している８４０枚の画像データについて、判定処理を行った場合の処理結果を図１０に示す。図１０に示すように、１４個中１１個の欠陥が検出されている。このように、本実施形態に係る情報処理装置１０によれば、高い精度で欠陥を検出することができる。なお、図１０では、８４０枚の画像データから部品毎の画像データを生成した後、傷がある場合が欠陥とされる部品の画像データを第１の実施形態に係る情報処理装置１０で、刻印がない場合が欠陥とされる部品の画像データを第２の実施形態に係る情報処理装置１０で処理を行った。
【００７１】
また、図１０に示すように、画像データ１枚あたり１６４ｍｓの処理時間であり、本実施形態に係る情報処理装置１０によれば、高速に欠陥の検出を行うことができる。
【００７２】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更、組合せが可能である。
【符号の説明】
【００７３】
１        情報処理システム
１０      情報処理装置
２０      欠陥検出プログラム
２１      入力部
２２      部品画像生成部
２３      特徴量算出部
２４      欠陥検出部
３０      撮像装置
１０００  学習画像データ
２０００  判定対象画像データ
３０００  部品画像データ
【先行技術文献】
【特許文献】
【００７４】
【特許文献１】特開２０００−２００３５６号公報
【図１】
0006476802.tif 000002
【図２】
0006476802.tif 000003
【図３】
0006476802.tif 000004
【図４】
0006476802.tif 000005
【図５】
0006476802.tif 000006
【図６】
0006476802.tif 000007
【図７】
0006476802.tif 000008
【図８】
0006476802.tif 000009
【図９】
0006476802.tif 000010
【図１０】
0006476802.tif 000011