(57)【要約】      （修正有）【課題】良否が誤認識された画像に対して高い適応度を示す画像良否判定プログラムを用いて画像の検査を行うことができ、かつ従来よりも短時間で良否判定の精度を上げることができる検査装置を提供する。【解決手段】検査装置２００は、学習画像に対する画像良否判定プログラムの適応度が所定の基準を満たす世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群にある第一の画像良否判定プログラムにより、検査画像の良否を判定する判定部２４０と、第一の画像良否判断プログラムによる検査画像の良否判定に対し、作業者が良否判定を行った結果、誤認識された検査画像が生じたとき、誤認識された検査画像に対し最適な適応度を示す、画像良否判断プログラム群にある第二の画像良否判定プログラムを用いて、第一の画像良否判定プログラムを第二の画像良否判定プログラムに置換する置換部２５０と、を有する。【選択図】図１
2019032605.tif 000002
【特許請求の範囲】
【請求項１】
学習画像に対する画像良否判定プログラムの適応度が所定の基準を満たす世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群にある第一の画像良否判定プログラムにより、検査画像の良否を判定する判定部と、
前記第一の画像良否判断プログラムによる前記検査画像の良否判定に対し、作業者が良否判定を行った結果、誤認識された前記検査画像が生じたとき、前記誤認識された前記検査画像に対し最適な適応度を示す、前記画像良否判断プログラム群にある第二の画像良否判定プログラムを用いて、前記第一の画像良否判定プログラムを前記第二の画像良否判定プログラムに置換する置換部と、
を有することを特徴とする検査装置。
【請求項２】
前記第二の画像良否判定プログラムは、前記画像良否判定プログラム群にある過去の世代を含む全ての画像良否判定プログラムの中から選択される、
ことを特徴とする、請求項１に記載の検査装置。
【請求項３】
前記第二の画像良否判定プログラムは、画像良否判定プログラムの良否判定の正解率、及び良否を分離する境界のマージンの大きさから求められる前記適応度により選択される、
ことを特徴とする、請求項１又は２に記載の検査装置。
【請求項４】
前記第二の画像良否判定プログラムは、前記誤認識の検査画像における全ての見逃し画像に対し、不良と正しく判定できるプログラムである、
ことを特徴とする、請求項３に記載の検査装置。
【請求項５】
画像良否判定プログラムを用いて検査画像の良否を判定する検査プログラムであって、
学習画像に対する画像良否判定プログラムの適応度が所定の基準を満たす世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群にある第一の画像良否判定プログラムにより、検査画像の良否を判定し、
前記第一の画像良否判断プログラムによる前記検査画像の良否判定に対し、作業者が良否判定を行った結果、誤認識された前記検査画像が生じたとき、前記誤認識された前記検査画像に対し最適な適応度を示す、前記画像良否判断プログラム群にある第二の画像良否判定プログラムを用いて、前記第一の画像良否判定プログラムを前記第二の画像良否判定プログラムに置換する、
処理をコンピュータに実行させることを特徴とする検査プログラム。
【請求項６】
画像良否判定プログラムを用いて検査画像の良否を判定する検査方法であって、
学習画像に対する画像良否判定プログラムの適応度が所定の基準を満たす世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群にある第一の画像良否判定プログラムにより、検査画像の良否を判定し、
前記第一の画像良否判断プログラムによる前記検査画像の良否判定に対し、作業者が良否判定を行った結果、誤認識された前記検査画像が生じたとき、前記誤認識された前記検査画像に対し最適な適応度を示す、前記画像良否判断プログラム群にある第二の画像良否判定プログラムを用いて、前記第一の画像良否判定プログラムを前記第二の画像良否判定プログラムに置換する、
ことを特徴とする検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査装置、検査プログラム、及び検査方法に関する。
【背景技術】
【０００２】
生産ラインにおいて、製品の外観検査の良否判定を自動で行うため、近年、カメラにより検査対象の画像を取得し、その良否判定を自動で行う方法が提案されている。
例えば、画像処理アルゴリズム（ルール）で規定された複数ロジックの中からメイン検査ロジックを、生産環境の変動に応じて選択しなおすことにより、検査精度を向上させる方法が提案されている。（例えば、特許文献１参照）。
【０００３】
一方、事前に収集した画像とその良否判定の教師データを用いて画像処理アルゴリズム（機械学習）を自動生成する方法も開発されている。
例えば、ライン稼働中に現在の画像処理アルゴリズムでは対応できない画像が入力された場合、取得した画像を基に新たに現在の画像処理アルゴリズムとは別の画像処理アルゴリズムを生成し新たなアルゴリズムに切り替える検査方法が提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３２７８４８号公報
【特許文献２】特開２００７−２９３７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１の方法は、複数のロジックがルールで規定されているため、多様で十分なロジックを用意することは困難である。従って、良否が誤認識された画像が得られた場合、それらの画像に対して、より精度の高い良否判定できる画像処理アルゴリズムを選択には不十分な方法であった。
また、上記特許文献２の方法は、良否が誤認識された画像が得られた場合、新たな学習画像を用意し再学習しなくてはいけない。そのため、再学習による画像処理アルゴリズムの生成には、長時間を要し、生産ラインに直ぐ適用できないという問題があった。
【０００６】
一つの側面では、良否が誤認識された画像に対して正しく良否を判定できる画像良否判定プログラムを用いて画像を検査でき、かつ従来よりも短時間で良否判定の精度を上げることができる検査装置、検査プログラム、及び検査方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの実施態様では、検査装置は、
学習画像に対する画像良否判定プログラムの適応度が所定の基準を満たす世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群にある第一の画像良否判定プログラムにより、検査画像の良否を判定する判定部と、
前記第一の画像良否判断プログラムによる前記検査画像の良否判定に対し、作業者が良否判定を行った結果、誤認識された前記検査画像が生じたとき、前記誤認識された前記検査画像に対し最適な適応度を示す、前記画像良否判断プログラム群にある第二の画像良否判定プログラムを用いて、前記第一の画像良否判定プログラムを前記第二の画像良否判定プログラムに置換する置換部と、
を有する。
【発明の効果】
【０００８】
一つの側面では、良否が誤認識された画像に対して正しく良否を判定できる画像良否判定プログラムを用いて画像を検査でき、かつ従来よりも短時間で良否判定の精度を上げることができる検査装置、検査プログラム、及び検査方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、検査装置を含む学習型検査システムの構成の一例を示す図である。
【図２】図２は、画像良否判定プログラムの生成処理手順の一例を示す図である。
【図３】図３は、画像良否判定プログラムの一例を示す図である。
【図４】図４は、画像処理プログラムの生成における交叉処理の一例を示す図である。
【図５】図５は、画像処理プログラムの生成における突然変異処理の一例を示す図である。
【図６】図６は、画像処理プログラムの生成で使用するフィルタ群の一例を示す図である。
【図７】図７は、マージン最大の判別をするＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）の一例を示す図である。
【図８】図８は、学習型検査システムにおける画像良否判定プログラム生成処理の一例を示すフローチャートである。
【図９】図９は、検査装置のハードウェア構成の一例を示すブロック図である。
【図１０】図１０は、画像良否判定プログラムを選択し、置換するまでの処理手順の一例を示す図である。
【図１１】図１１は、学習型検査システムにおける画像良否判定プログラムを選択し、置換するまでの処理の一例を示すシーケンス図である。
【図１２】図１２は、判定結果ＤＢに格納される検査画像の判定結果のデータ構成の一例を示す説明図である。
【図１３】図１３は、作業者判定入力部における作業者の判定結果を入力するユーザーインターフェースの一例を示す図である。
【図１４】図１４は、誤認識ＤＢに格納される誤認識された検査画像の情報を含むデータ構成の一例を示す説明図である。
【図１５】図１５は、第二の画像良否判定プログラムを選択する際の適応度を求めるためのデータ構成の一例を示す図である。
【図１６】図１６は、ＳＶＭによる良否判定の一例を示す図である。
【図１７】図１７は、誤認識データが現れたときのＳＶＭによる誤判定の一例を示す図である。
【図１８】図１８は、画像良否判定プログラムを選択し、置換した後のＳＶＭによる良否判定の一例を示す図である。
【図１９】図１９は、検査装置の判定部が、検査画像の良否を判定する処理の流れの一例を示すフローチャートである。
【図２０】図２０は、検査装置の通知部が、誤認識ＤＢから取得した情報に基づき、通知を選択装置に送信する処理の流れの一例を示すフローチャートである。
【図２１】図２１は、検査装置の置換部が、第一の画像良否判定プログラムを第二の画像良否判定プログラムに置換する処理の流れの一例を示すフローチャートである。
【図２２】図２２は、作業者判定装置に入力された作業者の良否判定の結果から得られる誤認識された検査画像の情報を検査装置に送信するまでの処理の流れの一例を示すフローチャートである。
【図２３】図２３は、選択装置の選択部が、第二の画像良否判定プログラムを選択する処理の流れの一例を示すフローチャートである。
【図２４】図２４は、検査装置を含む学習型検査システムの構成の他の一例を示す図である。
【図２５】図２５は、検査・選択装置を含む学習型検査システムの構成の他の一例を示す図である。
【図２６】図２６は、学習型検査装置を含む学習型検査システムの構成の他の一例を示す図である。
【発明を実施するための形態】
【００１０】
本発明の検査装置は、世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群の中から選択された、良否が誤認識された画像に対して正しく良否を判定できる画像良否判定プログラムを用いて画像の検査を行う。
これにより、従来よりも短時間で良否判定の精度を上げることができる検査装置を提供することができる。
【００１１】
具体的には、まず、検査装置は、学習画像に対する画像良否判定プログラムの適応度が所定の基準を満たす世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群にある第一の画像良否判定プログラムにより、検査画像の良否を判定する判定部を有する。
検査画像の良否を判定するとは、検査の対象物の外観が良品であるか、不良品であるかを、その検査対象物の画像をもとに判定することをいう。
画像良否判定プログラムとは、検査画像をもとに、その検査の対象物が良品であるか、不良品であるかを判定するためのプログラムである。
画像良否判定プログラムの適応度は、正しく良否を判定できるプログラムであるかを評価するための指標である。例えば、画像良否判定プログラムの適応度は、画像良否判定プログラムの良否判定の正解率、及び良否を分離する境界のマージンの大きさから求められる。
世代が異なる学習型の画像良否判定プログラムの生成は、例えば、遺伝的プログラミングや遺伝的アルゴリズムを含む進化的アルゴリズムにより実現される。
画像良否判定プログラム群は、適応度が所定の基準を満たす画像良否判定プログラムを含む。適応度が所定の基準以上であれば、世代を問わず、生成された全ての世代の画像良否判定プログラムが、画像良否判定プログラム群に記憶される対象となる。
【００１２】
次に、検査装置は、第一の画像良否判断プログラムによる検査画像の良否判定に対し、作業者が良否判定を行った結果、誤認識された検査画像が生じたとき、誤認識された検査画像に対し最適な適応度を示す、画像良否判断プログラム群にある第二の画像良否判定プログラムを用いて、第一の画像良否判定プログラムを第二の画像良否判定プログラムに置換する置換部を有する。
上記「誤認識」とは、検査画像に対し、画像良否判定プログラムによる良否判定の結果と、作業者による良否判定の結果とが一致しない場合をいう。例えば、この誤認識には、画像良否判定プログラムが良画像と判定したのに対し作業者が不良画像と判定した場合の「見逃し」や、画像良否判定プログラムが不良画像と判定したのに対し作業者が良画像と判定した場合の「虚報」が含まれる。
第二の画像良否判定プログラムが、誤認識された画像に対し正しく良否を判定できるかは、適応度を用いて評価される。適応度は、上述したように、例えば、画像良否判定プログラムの良否判定の正解率、及び良否を分離する境界のマージンの大きさから求められる。
【００１３】
第一の画像良否判断プログラムによる検査画像の良否判定に対し、作業者が良否判定を行った結果、誤認識された検査画像が生じた場合には、検査装置は、第一の画像良否判定プログラムを第二の画像良否判定プログラムに置換する。これにより、検査装置は、第二の画像良否判定プログラムを用いて画像の検査を継続することができる。
第二の画像良否判定プログラムは、世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群の中から選択されるプログラムであり、誤認識された画像に対して正しく良否を判定できるプログラムである。
従って、検査装置は、時間がかかる再学習を行わずに、従来よりも短時間で良否判定の精度を上げることができる画像良否判定プログラムを用いて画像検査を行うことができる。
よって、従来よりも短時間で良否判定の精度を上げることができる検査装置を提供することができ、生産ラインを継続稼働するうえで有効な検査装置が提供できる。
検査装置が行うこれらの処理は、検査装置を構成する制御部を有するコンピュータにより実行される。
【００１４】
尚、検査プログラムは、記録媒体に記録させてもよい。これにより、例えば、コンピュータに検査プログラムをインストールすることができる。ここで、検査プログラムを記録した記録媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ−ＲＯＭ）などが挙げられる。
【実施例】
【００１５】
（第１の実施例）
以下、本発明の一実施例を説明するが、本発明は、この実施例に何ら限定されるものではない。
【００１６】
（学習型検査システム）
図１は、本発明の一実施例に係る検査装置２００を含む学習型検査システム５００の構成を示す図である。
学習型検査システム５００は、例えば、生産ラインにおける検査対象の良否判定を画像により高精度に行うことができるシステムである。学習型検査システム５００は、学習装置１００と、検査装置２００と、作業者判定装置３００と、選択装置４００と、を有する。
【００１７】
学習装置１００は、検査に用いる画像良否判定プログラムを生成する装置であり、制御部１２０、及び記憶部１３０を有する。
制御部１２０は、プログラム生成部１４０を有する。記憶部１３０は、学習データベース１５０と、画像良否判定プログラムデータベース１６０と、を有する。以下、「データベース」を「ＤＢ」と称することもある。
【００１８】
検査装置２００は、検査対象の外観の良否を画像により判定する装置であり、制御部２２０、記憶部２３０を有する。
制御部２２０は、判定部２４０と、置換部２５０と、通知部２６０と、を有する。記憶部２３０は、検査画像データベース（検査画像ＤＢ）２７０と、判定結果データベース（判定結果ＤＢ）２８０と、誤認識データベース（誤認識ＤＢ）２９０と、を有する。
【００１９】
作業者判定装置３００は、画像良否判定プログラムによる良否判定された検査画像に対し、作業者の良否判定結果を入力するための装置である。作業者判定装置３００は、作業者判定入力部３２０を有する。
【００２０】
選択装置４００は、誤認識された画像に対し、正しく良否を判定する画像良否判定プログラムを選択する装置であり、制御部４２０を有する。
【００２１】
次に、学習装置１００について詳しく説明する。
＜学習装置＞
学習装置１００では、検査に用いる画像良否判定プログラムを生成する。
学習装置１００は、制御部１２０と、記憶部１３０と、を有する。制御部１２０は、学習装置１００全体を制御する。
制御部１２０は、記憶部１３０の学習ＤＢ１５０で記憶されている学習データを用い、プログラム生成部１４０において、画像良否判定プログラムを生成する。記憶部１３０の画像良否判定プログラムＤＢ１６０には、生成された画像良否判定プログラムが、画像良否判定プログラム群として記憶される。
学習ＤＢ１５０には、学習する画像と、その画像に紐づけられた作業者による良否の判定結果の情報が記憶されている。
【００２２】
図２は、学習装置１００で生成される検査に用いる画像良否判定プログラムの生成処理手順を示すブロック図である。
画像良否判定プログラムは、進化的アルゴリズム、例えば、遺伝的プログラミングや遺伝的アルゴリズムにより生成される。以下、遺伝的プログラミングによる生成を例に画像良否判定プログラムの生成処理手順について説明する。
【００２３】
図２における画像良否判定プログラムの生成処理手順を説明するにあたり、まず、画像良否判定プログラムについて説明する。
画像良否判定プログラムは、例えば、図３で示すように、画像処理プログラム１１と、判定器１２と、を有する。画像処理プログラム１１は、１つ以上の部分プログラムを有する。例えば、図３で示すように、画像処理プログラムは、木構造で定義される。図３において、“Ｆ”は画像フィルタを示し、“Ｉ”は入力端子を示し、“Ｏ”は出力端子を示す。
図３で示すように、画像良否判定プログラム１４は、検査画像としての画像１０に対し、画像処理プログラム１１により画像特徴量を求める。判定器１２は、画像１０の画像特徴量に基づき、良否判定１３を行う。
【００２４】
図２に戻って、学習装置１００のプログラム生成部１４０における画像良否判定プログラムの生成処理手順を、遺伝的プログラミングによる画像処理プログラムの生成処理を中心に、以下説明する。尚、図８の画像良否判定プログラム生成の一例を示すフローチャートの図も参照して説明する。
まず、プログラム生成部１４０は、複数の画像処理プログラムを含む初期画像処理プログラム群を設定する（ステップＳ１１１）。
次に、プログラム生成部１４０は、複数の画像処理プログラム１２２を含む設定した画像処理プログラム群１２１の中から、画像処理プログラムを適宜選択する（ステップＳ１１２）。各画像処理プログラムのノードには、あらかじめ用意された複数の画像フィルタの中から画像フィルタがランダムに選択されて組み込まれている。プログラム生成部１４０は、設定した画像処理プログラム群１２１の中から、ランダムに２つの親画像処理プログラムを取り出す。
次に、プログラム生成部１４０は、これら２つの親画像処理プログラムに対して遺伝的プログラミングによる進化過程の処理を施す。プログラム生成部１４０は、２つ以上の子画像処理プログラムを生成する（ステップＳ１１３）。進化過程では、プログラム生成部１４０は、２つの親画像処理プログラムに対して後述する交叉処理、及び突然変異処理を行う。プログラム生成部１４０では、２つの親画像処理プログラムに対して、それぞれ異なる交叉処理や突然変異処理を行うことで、３つ以上の子画像処理プログラムを生成してもよい。このようにして、プログラム生成部１４０は、画像処理プログラム群１２３を生成する。
【００２５】
次に、プログラム生成部１４０は、進化過程を経て生成した画像処理プログラム群１２３の画像処理プログラムの各々について、学習データ１２４の各入力画像に対する画像特徴量を求め、良否判定を行う判定器１２５を生成する。
学習データ１２４には、学習画像と、その学習画像に対し紐づけられた作業者による学習画像の良否判定結果の情報が含まれている。
また判定器１２５としては、例えば、ＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）、ベイズ判別、ニューラルネットワークなどが挙げられる。本実施例では、ＳＶＭを用いる。
【００２６】
プログラム生成部１４０は、学習データ１２４の各入力画像に対する、画像良否判定プログラムの良否判定の正解率、及び良否を分離する境界のマージンの大きさから適応度を求める。（ステップＳ１１４）。
学習画像に対する画像良否判定プログラムの良否判定の結果が、学習画像に紐付けられた作業者による良否判定の結果と一致している場合（図２中１２６ａ）は、その画像良否判定プログラムは正しく良否を判定できるプログラムである。一方、学習画像に対する画像良否判定プログラムの良否判定の結果が、作業者による良否判定の結果と一致していない場合（図２中１２６ｂ）は、その画像良否判定プログラムは正しく良否を判定できないプログラムである。
尚、ここで、画像良否判定プログラムが全ての学習データに対して正しく良否を判定できたとき、正解率は１００％となる。
プログラム生成部１４０は、適応度の高い画像良否判定プログラムが生成されていない場合には、画像良否判定プログラムの画像処理プログラム部分を遺伝的プログラミングの次の世代の親プログラムとして入れ替える（ステップＳ１１６）。これにより、次世代の画像処理プログラム群が生成される。
【００２７】
プログラム生成部１４０は、適応度の高い画像良否判定プログラムが生成された場合は、係る画像良否判定プログラムを画像良否判定プログラム群として、画像良否判定プログラムＤＢに記憶する（ステップＳ１１７）。画像良否判定プログラムＤＢに記憶される画像良否判定プログラムは、高い適応度を示すものであれば、世代を問わず、生成された全ての世代の画像良否判定プログラムが対象となる。例えば、画像良否判定プログラム群は、直前の世代や過去の世代など全世代の画像良否判定プログラムを含む。
プログラム生成部１４０は、適応度が所定の高い基準を満たす画像良否判定プログラムが生成されるまでは、画像良否判定プログラムの画像処理プログラム部分を遺伝的プログラミングの次の世代の親プログラムとして入れ替える（ステップＳ１１６）。
プログラム生成部１４０は、上述した遺伝的プログラミング手法に基づき、適応度が所定の高い基準を満たす画像良否判定プログラムが生成されるまで、画像良否判定プログラム生成処理を繰り返す。
【００２８】
プログラム生成部１４０は、画像良否判定プログラム群の中から、最適な適応度を示す画像良否判定プログラムを選択する（ステップＳ１１９）。ここで、最適な適応度を示す画像良否判定プログラムとは、例えば、正解率が最大であり、かつマージンが最大の画像良否判定プログラムをいう。
具体的には、プログラム生成部１４０は、以下の１）から３）で記載する処理手順に従い、最適な適応度を示す画像良否判定プログラムを選択する。
１）学習画像における、作業者が不良と判定した全ての画像に対し不良と正しく判定できる画像良否判定プログラムを選択する。
２）上記１）のうち、正解率が最大の画像良否判定プログラムを選択する。
３）上記２）のうち、マージンが最大のプログラムを選択する。
また、例えば、プログラム生成部１４０は、以下の４）から５）で記載する処理手順に従い、最適な適応度を示す画像良否判定プログラムを選択することもできる。
４）全ての学習画像に対し、作業者の良否判定と同じ良否判定結果を示す、正解率が１００％の画像良否判定プログラムを選択する。
５）上記４）のうち、マージンが最大のプログラムを選択する。
【００２９】
プログラム生成部１４０は、最適な適応度を示す画像良否判定プログラム、及びそれ以外の画像良否判定プログラム群にある画像良否判定プログラムを選択することで、画像良否判定プログラムの生成処理を終了する（ステップＳ１２０）。選択された最適な適応度を示す画像良否判定プログラムは、第一の画像良否判定プログラムとして、検査装置２００で用いられる。また、それ以外の画像良否判定プログラム群にある画像良否判定プログラムは、選択装置４００で第二の画像良否判定プログラムとして、選択される際の候補プログラムとして用いられる。
【００３０】
次に、遺伝的プログラミングによる進化過程の処理（ステップＳ１１３）において施される交叉処理、及び突然変異処理について、以下説明する。
図４は、交叉処理の例を示す図である。図４では、親画像処理プログラム２１ａと親画像処理プログラム２２ａとの間で交叉が行われ、親画像処理プログラム２１ａに基づく子画像処理プログラム２１ｂと、親画像処理プログラム２２ａに基づく子画像処理プログラム２２ｂとが生成される場合の例を示す。
親画像処理プログラム２１ａは、画像フィルタＦ１、Ｆ２、Ｆ３、Ｆ４を含む。親画像処理プログラム２２ａは、画像フィルタＦ２、Ｆ３、Ｆ５、Ｆ６を含む。ここで、親画像処理プログラム２１ａにおける画像フィルタＦ２のノードと、親画像処理プログラム２２ａにおける画像フィルタＦ５のノードが、交叉を行う箇所として選択されている。
交叉処理では、例えば、選択されたノードだけでなく、そのノードより下位階層のノードも対象となる。このため、図４の例では、親画像処理プログラム２１ａにおける“画像フィルタＦ２、Ｆ１、画像フィルタＦ２の一方に接続された入力端子のノード、画像フィルタＦ１に接続された入力端子のノード”と、親画像処理プログラム２２ａにおける“画像フィルタＦ５、画像フィルタＦ５に接続された入力端子のノード”とが入れ替えられる。このような交叉により、画像フィルタＦ３、Ｆ４、Ｆ５を含む子画像処理プログラム２１ｂと、画像フィルタＦ１、Ｆ２、Ｆ４をそれぞれ１つ含み、画像フィルタＦ３を２つ含む子画像処理プログラム２２ｂとが生成される。
【００３１】
図５は、突然変異処理の例を示す図である。図５において、画像処理プログラム２３ａは、画像フィルタＦ３、Ｆ４、Ｆ５を含む。この画像処理プログラム２３ａは、例えば、画像処理プログラム群１２１から取り出された親画像処理プログラムであってもよいし、画像処理プログラム群１２１から親画像処理プログラムとして取り出された後、交叉処理が行われた画像処理プログラムであってもよい。
ここで、画像処理プログラム２３ａにおける画像フィルタＦ３のノードが突然変異を行う箇所として選択されているとともに、突然変異による置き換え後の画像フィルタとして画像フィルタＦ７が選択されている。尚、突然変異による置き換え後の画像フィルタは、あらかじめ用意された複数の画像フィルタの中からランダムに選択される。このような突然変異処理により、画像フィルタＦ４、Ｆ５、Ｆ７を含む子画像処理プログラム２３ｂが生成される。
【００３２】
次に、図３で示す画像良否判定プログラム１４を構成する画像処理プログラム１１のフィルタについて説明する。
図６に、フィルタの種類の例を示す。フィルタには、例えば、周波数処理を行うフィルタ、閾値処理を行うフィルタ、微分処理を行うフィルタなどが挙げられる。
周波数処理を行うフィルタとしては、例えば、ローパスフィルタ、ハイパスフィルタなどが挙げられる。閾値処理を行うフィルタとしては、例えば、予め設定されたパラメータが異なる複数の閾値処理フィルタが挙げられる。微分処理を行うフィルタには、例えば、ソーベルフィルタ、ラプラスフィルタ、プレウィットフィルタなどが挙げられる。
図６に記載の同一名のフィルタにおいて、番号の違いは、フィルタのパラメータ設定が異なっていることを意味する。例えば、ローパスフィルタ＃１とローパスフィルタ＃２は、遮断周波数のパラメータが異なっている。図６で示すパラメータが異なる複数のフィルタを組み合わせることにより、プログラム生成部１４０は、様々な画像処理プログラムを作成することができる。
【００３３】
次に、図３の画像良否判定プログラム１４の判定器１２として本実施例で用いるＳＶＭについて説明する。
ＳＶＭは、入力画像１０に対して画像処理プログラム１１により得られた画像特徴量を分類する。図７の左図４０で示すように、空間（平面）上に配置された画像特徴量群である４０ａ、４０ｂに対して、実線や点線で示されるような様々な線引き（分類）ができる。様々な線引きができる中で、ＳＶＭは、図７の右図４１に示すように、マージン（境界線と境界線近傍の画像特徴量との距離）が最大となるように線引き（分類）する。
【００３４】
次に、画像良否判定プログラムの生成処理手順の詳細について説明する。図８は、学習装置１００のプログラム生成部１４０における画像良否判定プログラム生成の一例を示すフローチャートである。以下、図１を参照して説明する。
【００３５】
ステップＳ１１０では、学習装置１００の制御部１２０のプログラム生成部１４０は、記憶部１３０の学習ＤＢ１５０に記憶された学習データ（画像・良否情報）１５０を取得し、処理をＳ１１１に移行する。
ステップＳ１１１では、プログラム生成部１４０は、初期画像処理プログラム群を設定し、処理をＳ１１２に移行する。
ステップＳ１１２では、プログラム生成部１４０は、設定した画像処理プログラム群から画像処理プログラムを選択し、処理をＳ１１３に移行する。
ステップＳ１１３では、プログラム生成部１４０は、遺伝的プログラミングによる画像処理プログラムを生成し、処理をＳ１１４に移行する。
ステップＳ１１４では、プログラム生成部１４０は、生成した画像処理プログラムによりＳＶＭを生成し、適応度を求め、処理をＳ１１５に移行する。
ステップＳ１１５では、プログラム生成部１４０は、適応度の高い画像良否判定プログラムを生成したか否かを判定し、生成したと判定した場合は、処理をＳ１１７に移行する。一方、プログラム生成部１４０は、生成していないと判定した場合は、処理をＳ１１６に移行する。
ステップＳ１１６では、プログラム生成部１４０は、画像処理プログラムを入れ替え、処理をＳ１１２に戻す。
ステップＳ１１７では、プログラム生成部１４０は、適応度の高い画像良否判定プログラムを画像良否判定プログラム群として画像良否判定プログラムＤＢ１６０に記憶し、処理をＳ１１８に移行する。
ステップＳ１１８では、プログラム生成部１４０は、適応度が所定の高い基準を満たす画像良否判定プログラムを生成したか否かを判定し、生成したと判定した場合は、処理をＳ１１９に移行する。一方、プログラム生成部１４０は、生成していないと判定した場合は、処理をＳ１１６に移行する。ステップＳ１１６では、上述したように、プログラム生成部１４０は、画像処理プログラムを入れ替え、処理をＳ１１２に戻す。これにより、ステップ１１６で入れ替えた次の世代の親プログラムをもとに適応度が所定の高い基準を満たす画像良否判定プログラムを生成するまで遺伝的プログラミングによる画像良否判定プログラムの生成を継続する。
ステップＳ１１９では、プログラム生成部１４０は、画像良否判定プログラム群の中から最適な適応度を示す第一の画像良否判定プログラムを選択し、処理をＳ１２０に移行する。尚、最適な適応度を示す第一の画像良否判定プログラムの具体的な選択方法は、上述したとおりである。
ステップＳ１２０では、プログラム生成部１４０は、最も高い適応度を示す第一の画像良否判定プログラム、及びそれ以外の画像良否判定プログラム群にある画像良否判定プログラムを選択し、本処理を終了する。
【００３６】
学習装置１００のハードウェア構成としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、主記憶装置、補助記憶装置、入力装置、出力装置、通信Ｉ／Ｆの各部を有する。これらの各部は、バスを介してそれぞれ接続されている。
ＣＰＵは、種々の制御や演算を行う処理装置である。ＣＰＵは、主記憶装置などが記憶するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やプログラムを実行することにより、種々の機能を実現する。すなわち、ＣＰＵは、本実施例では、学習プログラムを実行することにより、学習装置１００の制御部１２０として機能する。
主記憶装置は、各種プログラムを記憶し、各種プログラムを実行するために必要なデータ等を記憶する。
主記憶装置は、図示しない、ＲＯＭ（Ｒｅｅｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、を有する。
ＲＯＭは、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）等の各種プログラム等を記憶している。
ＲＡＭは、ＲＯＭに記憶された各種プログラムがＣＰＵにより実行される際に展開される作業範囲として機能する。ＲＡＭとしては、特に制限はなく、目的に応じて適宜選択することができる。ＲＡＭとしては、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などが挙げられる。
補助記憶装置としては、各種情報を記憶できれば特に制限はなく、目的に応じて適宜選択することができ、例えば、ソリッドステートドライブ、ハードディスクドライブなどが挙げられる。また、補助記憶装置は、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）ドライブ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）ドライブ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）ドライブなどの可搬記憶装置としてもよい。
【００３７】
入力装置は、学習装置１００に対する各種要求を受け付けることができれば、特に制限はなく、適宜公知のものを用いることができ、例えば、キーボード、マウス、タッチパネルなどが挙げられる。
出力装置は、ディスプレイやスピーカーなどを用いることができる。ディスプレイとしては、特に制限はなく、適宜公知のものを用いることができ、例えば、液晶ディスプレイ、有機ＥＬディスプレイが挙げられる。
通信インターフェイス（通信Ｉ／Ｆ）は、特に制限はなく、適宜公知のものを用いることができ、例えば、無線又は有線を用いた通信デバイスなどが挙げられる。
以上のようなハードウェア構成によって、学習装置１００の処理機能を実現することができる。
尚、学習装置１００は、ネットワーク上のコンピュータ群であるクラウドの一部であってもよい。
【００３８】
次に、検査装置２００について詳しく説明する。
＜検査装置＞
検査装置２００は、画像良否判定プログラムを用いて検査画像の良否を判定する装置である。
検査装置２００は、使用している画像良否判定プログラムが、検査画像の良否判定を正しく行わなくなった場合、誤認識された画像に対し正しく良否を判定できる他の画像良否判定プログラムに置換する。
検査装置２００のハードウェア構成及び機能構成について説明する。
【００３９】
＜＜検査装置のハードウェア構成＞＞
図９は、検査装置２００のハードウェア構成の一例を示すブロック図である。
図９で示すように、検査装置２００は、以下の各部を有する。各部は、バス２１０を介してそれぞれ接続されている。
ＣＰＵ２０１は、種々の制御や演算を行う処理装置である。ＣＰＵ２０１は、主記憶装置２０３などが記憶するＯＳやプログラムを実行することにより、種々の機能を実現する。すなわち、ＣＰＵ２０１は、本実施例では、検査プログラムを実行することにより、検査装置の制御部２２０として機能する。本実施例では、画像処理を行うため、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０２を有する。
また、ＣＰＵ２０１は、検査装置２００全体の動作を制御する。尚、本実施例では、検査装置２００全体の動作を制御する装置をＣＰＵ２０１をしたが、これに限ることなく、例えば、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などとしてもよい。
【００４０】
検査プログラムや各種データベースは、必ずしも主記憶装置２０３や、補助記憶装置２０４などに記憶されていなくともよい。インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などを介して、検査装置２００に接続される他の情報処理装置などに検査プログラムや各種データベースを記憶させてもよい。検査装置２００がこれら他の情報処理装置から検査プログラムや各種データベースを取得して実行するようにしてもよい。
主記憶装置２０３は、各種プログラムを記憶し、各種プログラムを実行するために必要なデータ等を記憶する。
主記憶装置２０３は、図示しない、ＲＯＭと、ＲＡＭと、を有する。
ＲＯＭは、ＢＩＯＳ等の各種プログラムなどを記憶している。
ＲＡＭは、ＲＯＭに記憶された各種プログラムがＣＰＵ２０１により実行される際に展開される作業範囲として機能する。ＲＡＭとしては、特に制限はなく、目的に応じて適宜選択することができる。ＲＡＭとしては、例えば、ＤＲＡＭ、ＳＲＡＭなどが挙げられる。
補助記憶装置２０４としては、各種情報を記憶できれば特に制限はなく、目的に応じて適宜選択することができ、例えば、ソリッドステートドライブ、ハードディスクドライブなどが挙げられる。また、補助記憶装置２０４は、例えば、ＣＤドライブ、ＤＶＤドライブ、ＢＤドライブなどの可搬記憶装置としてもよい。
【００４１】
出力装置２０５は、ディスプレイやスピーカーなどを用いることができる。ディスプレイとしては、特に制限はなく、適宜公知のものを用いることができ、例えば、液晶ディスプレイ、有機ＥＬディスプレイが挙げられる。
ＶＲＡＭ２０６は、モニタ等のディスプレイに画像表示するために必要なデータを保持するためのメモリ領域である。
入力装置２０７は、検査装置２００に対する各種要求を受け付けることができれば、特に制限はなく、適宜公知のものを用いることができ、例えば、キーボード、マウス、タッチパネルなどが挙げられる。
入力インターフェイス（入力Ｉ／Ｆ）２０８は、接続された外部デバイスとの間でデータの送受信を行う。本実施例では、入力Ｉ／Ｆ２０８には、外部デバイスとしてカメラ２０８ａが接続されており、入力Ｉ／Ｆ２０８は、カメラ２０８ａから送信された画像データをプロセッサに送信する。
通信インターフェイス（通信Ｉ／Ｆ）２０９は、特に制限はなく、適宜公知のものを用いることができ、例えば、無線又は有線を用いた通信デバイスなどが挙げられる。
以上のようなハードウェア構成によって、検査装置２００の処理機能を実現することができる。
【００４２】
＜＜検査装置の機能構成＞＞
図１に戻り、検査装置２００は、制御部２２０と、記憶部２３０と、を有する。制御部２２０は、検査装置２００全体を制御する。
制御部２２０は、判定部２４０と、置換部２５０と、通知部２６０と、を有する。
検査装置２００の判定部２４０は、学習装置１００で生成された最適な適応度を示す第一の画像良否判定プログラムを用い、記憶部２３０の検査画像ＤＢ２７０に記憶されている検査データの画像に対し良否判定を行う。
判定部２４０は、第一の画像良否判定プログラムによる検査画像の良否判定の結果を記憶部２３０の判定結果ＤＢ２８０に記憶する。
検査装置２００の通知部２６０は、記憶部２３０に記憶されている誤認識ＤＢ２９０の情報に基づき、誤認識された画像が所定の基準値を超えた場合には、超えたことを以下で記載する選択装置４００へ通知する。
【００４３】
ここで、「誤認識された」とは、検査画像に対する画像良否判定プログラムによる良否判定の結果と、作業者による良否判定の結果とが一致しないことをいう。例えば、第一の画像良否判断プログラムによる良否判定された検査画像に対し、作業者はその検査画像の良否を判定する。作業者によるその良否判定の結果、プログラムによる良否判定の結果と異なる良否の判定を作業者がした場合、その画像は「誤認識された画像」になる。誤認識された画像には、画像良否判定プログラムが良画像と判定したのに対し作業者が不良画像と判定する「見逃し画像」、及び画像良否判定プログラムが不良画像と判定したのに対し作業者が良画像と判定する「虚報画像」が含まれる。
尚、作業者による誤認識画像の判定処理手順や誤認識ＤＢ２９０の構築については、以下で詳しく述べる。
また、選択装置４００へ通知する場合の誤認識された画像が所定の基準値を超えたか否かの基準としては、特に制限はなく、数や量で規定することができる。例えば、誤認識された画像の数、割合、又は誤認識の程度等を規定することができる。例えば、誤認識された画像の数が所定数を超えたとき、超えたことを選択装置４００へ通知する。
検査装置２００の置換部２５０は、選択装置４００の選択部４３０で選択された第二の画像良否判定プログラムを用いて、第一の画像良否判定プログラムを第二の画像良否判定プログラムに置換する。ここで、第二の画像良否判定プログラムは、画像良否判断プログラム群の中から選択された、誤認識の検査画像に対し最適な適応度を示す画像良否判断プログラムである。
尚、第二の画像良否判定プログラムの選択処理手順については、以下で詳しく述べる。
【００４４】
以下、検査装置２００において、第一の画像良否判定プログラムを用いて検査画像の良否を判定した後、第一の画像良否判定プログラムを第二の画像良否判定プログラムに置換するまでの一連の処理手順について、図１０を用いて説明する。
図１０は、第一の画像良否判定プログラムを用いて検査画像の良否を判定した後、第二の画像良否判定プログラムを選択し、第一の画像良否判定プログラムから第二の画像良否判定プログラムに置換するまでの処理手順を示すブロック図である。尚、図１１の画像良否判定プログラムを選択し、置換するまでの処理の一例を示すシーケンス図も参照して、以下説明する。
【００４５】
まず、検査装置２００の判定部２４０では、学習装置１００により選択された最適な画像良否判定プログラムである第一の画像良否判定プログラムＡにより，検査画像２２１の良否判定２２２を行う（ステップＳ２１２）。判定部２４０は、第一の画像良否判定プログラムＡによる検査画像の良否判定の結果２２３を判定結果ＤＢ２８０に記憶する（ステップＳ２１３）。
第一の画像良否判断プログラムＡによる良否判定された検査画像に対し、作業者はその検査画像の良否を判定２２４する。作業者は、作業者が行った良否判定の結果を以下で記載する作業者判定装置３００の作業者判定入力部３２０に入力する（ステップＳ２１５）。作業者による良否判定の結果、画像良否判定プログラムＡによる良否判定の結果と作業者による良否判定の結果が一致した検査画像は、正しく認識された検査画像となる。一方、画像良否判定プログラムＡによる良否判定の結果と作業者による良否判定の結果が不一致である検査画像は、誤認識された検査画像となる。誤認識された画像には、画像良否判定プログラムが良画像と判定したのに対し作業者が不良画像と判定する「見逃し画像」２２３ａや、画像良否判定プログラムが不良画像と判定したのに対し作業者が良画像と判定する「虚報画像」２２３ｂが含まれる。
【００４６】
作業者判定装置３００の作業者判定入力部３２０は、作業者による良否判定の結果を受け付け、作業者による良否判定の結果から得られた誤認識された画像に関する情報を検査装置２００に送信する。作業者判定装置３００については、以下で詳しく述べる。
検査装置２００は、作業者判定装置３００から受信した誤認識された画像に関する情報を誤認識画像群２２５として、誤認識ＤＢ２９０に記憶する（ステップＳ２１６）。
検査装置２００の通知部２６０は、誤認識ＤＢ２９０の情報に基づき、誤認識された画像が所定の基準（本実施例では、例えば、所定数とする）を超えたと判定した場合、超えたことを選択装置４００へ通知する（ステップＳ２１８、ステップＳ２１９）。
【００４７】
選択装置４００は、通知部からの通知により、選択部４３０において、第二の画像良否判定プログラムを選択する（ステップＳ２２３）。選択装置４００、及び選択される第二の画像良否判定プログラムについては、以下で詳しく述べる。
検査装置２００は、選択装置４００から選択部４３０で選択された第二の画像良否判定プログラムを受信する。そして、検査装置２００の置換部２５０は、第一の画像良否判定プログラムを第二の画像良否判定プログラムに置換する（ステップＳ２２５）。
図１０では、画像良否判定プログラム群２２６の中から最適な適応度を示す画像良否判定プログラム２２７である、画像良否判定プログラムＢが選択２２８されている。
そこで、図１０では、置換部２５０は、第一の画像良否判定プログラムＡを、第二の画像良否判定プログラムＢに置換２２９する（ステップＳ２２５）。
【００４８】
判定部２４０で用いる画像良否判定プログラムが第二の画像良否判定プログラムＢに置換された後は、判定部２４０は、置換された画像良否判定プログラムＢを第一の画像良否判定プログラムとして用い、検査画像２２１の良否判定２２２を行う。その後、画像良否判定プログラムＢにより誤認識された画像が所定数を超えたとき、選択部４３０は、画像良否判定プログラムＢ以外の第二の画像良否判定プログラムを画像良否判定プログラム群２２６の中から再度選択する。そして、検査装置２００の置換部２５０は、選択部４３０により再度選択された第二の画像良否判定プログラムを用い、第一の画像良否判定プログラムＢを新たに選択された第二の画像良否判定プログラムに置換する。
【００４９】
次に、作業者判定装置３００について詳しく説明する。
＜作業者判定装置＞
図１に戻り、作業者判定装置３００は、作業者判定入力部３２０を有する。
作業者判定入力部３２０は、第一の画像良否判定プログラムにより良否判定された検査画像に対する作業者の良否判定を受け付ける。
作業者判定入力部３２０は、作業者による良否判定の結果から得られた誤認識された画像に関する情報を検査装置２００に送信する。検査装置２００は、受信した誤認識された画像に関する情報を記憶部２３０の誤認識ＤＢ２９０に記憶する。
【００５０】
作業者判定装置３００の作業者判定入力部３２０における作業者による良否判定の入力処理手順について、図１０及び図１１を参照して、以下説明する。
作業者判定入力部３２０は、判定結果ＤＢ２８０から、検査画像と第一の画像良否判定プログラムＡによるその検査画像に対する良否判定の結果２２３を取得する（ステップＳ２１４）。
作業者は第一の画像良否判定プログラムによる良否判定された検査画像に対し、良否判定２２４する。作業者は、作業者が行った良否判定の結果を作業者判定入力部３２０に入力する（ステップＳ２１５）。
第一の画像良否判定プログラムＡによる良否判定の結果と作業者による良否判定の結果が一致した検査画像は、正しく認識された検査画像となる。一方、画像良否判定プログラムＡによる良否判定の結果と作業者による良否判定の結果が不一致である検査画像は、誤認識された検査画像となる。誤認識された画像には、画像良否判定プログラムが良画像と判定したのに対し作業者が不良画像と判定する「見逃し画像」２２３ａや、画像良否判定プログラムが不良画像と判定したのに対し作業者が良画像と判定する「虚報画像」２２３ｂが含まれる。
作業者判定入力部３２０は、作業者による良否判定の結果を受け付け、第一の画像良否判定プログラムＡと作業者とが行った良否判定の結果から誤認識された画像を選別する（ステップＳ２１５）。
作業者判定入力部３２０は、選別された誤認識された画像に関する情報（見逃し、虚報の判定結果を含む）を検査装置２００に送信する（ステップＳ２１６）。
【００５１】
図１２は、判定結果ＤＢに格納される、検査画像の第一の画像良否判定プログラムによる判定結果の情報（データ構成）の一例を示す図である。図１２に示すように、本実施例では、「判定日時」、「品種情報」、「画像ＩＤ」、「プログラム判定結果」などのデータ項目を含む。ここで、「判定日時」は、第一の画像良否判定プログラムにより検査画像の良否を判定した日時である。「品種情報」は、検査対象を特定できれば内容に特に制限はなく、例えば、検査対象の物品を特定できる名称、記号、品番等である。「画像ＩＤ」は、検査画像を特定する識別子である。「プログラム判定結果」は、第一の画像良否判定プログラムによる良否判定の結果である。図１２の表中「ＯＫ」は良判定を、「ＮＧ」は不良判定を示す（他の図も同様、「ＯＫ」は良判定を、「ＮＧ」は不良判定を示す）。
【００５２】
図１３は、作業者判定入力部における、第一の画像良否判定プログラムによる良否判定された検査画像に対する、作業者の判定結果を入力するユーザーインターフェースの一例を示す図である。図１３では、第一の画像良否判定プログラムが良判定（ＯＫ）した検査画像ＩＭＧ０００３に対し、作業者が表示された検査画像を見て不良（ＮＧ）と判定した、目視良否判定がＮＧの例が示されている。
【００５３】
図１４は、誤認識ＤＢに格納される誤認識された検査画像の情報を含むデータ構成の一例を示す図である。図１４に示すように、本実施例では、図１２の情報に加え、「作業者判定日時」、「目視良否判定結果」、「正誤判定フラグ」、「見逃しフラグ」、「虚報フラグ」などのデータ項目を含む。ここで、「作業者判定日時」は、作業者が検査画像に対し良否を判定した日時である。「目視良否判定結果」は、作業者による良否判定の結果である。
正誤判定フラグは、第一の画像良否判定プログラムと作業者とが行った良否判定の結果をもとに、設定される。作業者判定入力部は、図１４に示すように、第一の画像良否判定プログラムと作業者との良否判定結果が一致している場合には正誤判定フラグ「１」を、一致していない場合には「０」を付与する。
また、作業者判定入力部は、正誤判定フラグが「０」の誤認識された画像において、見逃しフラグや虚報フラグを設定することができる。
作業者判定入力部は、図１４に示すように、正誤判定フラグが「０」の誤認識画像において、第一の画像良否判定プログラムが「ＯＫ」で、作業者が「ＮＧ」と判定した場合には、見逃しフラグ「１」を付与する。作業者判定入力部は、見逃しフラグ「１」以外の画像に対しては、見逃しフラグ「０」を付与する。また、作業者判定入力部は、正誤判定フラグが「０」の誤認識画像において、第一の画像良否判定プログラムが「ＮＧ」で、作業者が「ＯＫ」と判定した場合には、虚報フラグ「１」を付与する。作業者判定入力部は、虚報フラグ「１」以外の画像に対しては、虚報フラグ「０」を付与する。
このように、見逃しフラグと虚報フラグのデータ項目を設定しておくと、選択装置４００は、見逃し画像と虚報画像の情報を容易に区別して取得することができる。これにより、例えば、選択装置４００が、虚報画像より見逃し画像を優先し、見逃し画像に対して正しく良否を判定できる第二の画像良否判定プログラムを選択しようとした場合、見逃し画像に関する情報を容易に取得することができる。
【００５４】
本実施例では、誤認識ＤＢは、第一の画像良否判定プログラムと作業者との良否判定結果が、一致している場合と一致していない（誤認識された）場合の両方を含んだデータ構成とした。尚、誤認識ＤＢには、少なくとも、誤認識された画像に関する情報が含まれていればよい。そこで、例えば、図１４のデータ構成のうち、正誤判定フラグが「０」である誤認識された画像に関する情報のみを抽出したような、誤認識ＤＢのデータ構成としてもよい。
【００５５】
尚、この作業者判定装置３００が稼働するタイミング、つまり作業者が検査対象の画像良否判定プログラムによる良否判定結果を確認するタイミングとしては、例えば、以下のｉ）、ｉｉ）、又はｉｉｉ）に記載の各場合が挙げられる。
ｉ）定期的に実施する。例えば、この場合、作業者は、設定された期間内の検査画像を確認する。
ｉｉ）対象品種の製造における後工程で問題が発生した場合に実施する。例えば、この場合、作業者は、不具合が発生した前後の期間の検査画像を確認する。
ｉｉｉ）ライン稼働中に、作業者が画像良否判定プログラムによる良否判定結果を確認（例えば、無作為抽出による確認）している中で、誤認識の判定が多くなったと判断した場合に実施する。例えば、この場合、作業者は、誤認識が生じたと判断した時点前の所定期間の検査画像を確認する。
【００５６】
作業者判定装置３００のハードウェア構成としては、ＣＰＵ、主記憶装置、補助記憶装置、入力装置、出力装置、通信Ｉ／Ｆの各部を有する。これらの各部は、バスを介してそれぞれ接続されている。各部の説明は、学習装置１００や検査装置２００における説明と同様であるため、ここでは説明を省略する。
【００５７】
次に、選択装置４００について詳しく説明する。
＜選択装置＞
選択装置４００は、検査装置２００の通知部２６０から誤認識された画像が所定数を超えたとの通知を受信したとき、画像良否判定プログラムＤＢ１６０に記憶されている画像良否判定プログラム群から、第二の画像良否判定プログラムを選択する。選択装置４００は、選択部４３０で選択した画像良否判定プログラムを検査装置２００に送信する。
図１に戻り、選択装置４００は、制御部４２０を有する。制御部４２０は、選択部４３０を有し、選択装置４００全体を制御する。
選択部４３０は、検査装置２００の記憶部２３０に記憶されている誤認識ＤＢ２９０、及び学習装置１００の記憶部１３０に記憶されている画像良否判定プログラムＤＢ１６０を用いて、誤認識された画像に対し、正しく良否を判定する画像良否判定プログラムを選択する。
【００５８】
選択装置４００の選択部４３０における画像良否判定プログラムの選択処理手順について、図１０及び図１１を参照して、以下説明する。
図１０の画像良否判定プログラム群２２６は、学習装置１００により適応度の高い画像良否判定プログラムとして選択された画像良否判定プログラムＡ、Ｂ、Ｃ、Ｄ、Ｅなどを含む。選択部４３０は、画像良否判定プログラム群にある、画像良否判定プログラムＢ、Ｃ、Ｄ、Ｅなどの各画像良否判定プログラムを用いて、誤認識された画像２２５に対する各画像良否判定プログラムの適応度を求める（ステップＳ２２２）。
選択部４３０は、画像良否判定プログラム群の中から最適な適応度を示す画像良否判定プログラムを選択する（ステップＳ２２３）。
【００５９】
ここで、最適な適応度を示す画像良否判定プログラムとしては、例えば、正解率が最大であり、かつマージンが最大の画像良否判定プログラムである。
具体的には、選択部４３０は、例えば、以下の１）から３）で記載する処理手順に従い、最適な適応度を示す画像良否判定プログラムを選択する。
１）誤認識検査画像における全ての見逃し画像に対し不良と正しく判定できる（見逃し率０％）画像良否判定プログラムを選択する。
２）上記１）のうち、正解率が最大の画像良否判定プログラムを選択する。
３）上記２）のうち、マージンが最大のプログラムを選択する。
また、例えば、選択部４３０は、以下の４）から５）で記載する処理手順に従い、最適な適応度を示す画像良否判定プログラムを選択することもできる。
４）誤認識検査画像における全ての見逃し画像及び全て虚報画像に対し良否が正しく判定できる、正解率１００％の画像良否判定プログラムを選択する。
５）上記４）のうち、マージンが最大のプログラムを選択する。
正解率が最大、及びマージンが最大の画像良否判定プログラムの選択方法については、以下でより詳しく説明する。
【００６０】
尚、上記具体的選択方法で示したように、誤認識検査画像における全ての見逃し画像に対し不良と正しく判定できる第二の画像良否判定プログラムを選択すると、不良品の流出を有効に防止できる検査装置が提供できる。
図１０では、画像良否判定プログラムＢが、最適な適応度を示す画像良否判定プログラム２２８として選択されている。
【００６１】
第二の画像良否判定プログラムの選択においては、画像良否判定プログラム群に含まれる全ての画像良否判定プログラムが選択の対象となる。適応度が高い画像良否判定プログラムを選択することが重要であり、画像良否判定プログラム群に含まれる、直前の世代や過去の世代など全世代の画像良否判定プログラムが選択の対象となる。
選択部４３０は、選択した最適な適応度を示す第二の画像良否判定プログラムを、検査装置２００へ送信する。その後、検査装置２００の置換部２５０は、第一の画像良否判定プログラムを、受信した第二の画像良否判定プログラムに置換する（ステップＳ２２５）。
尚、選択部４３０が、画像良否判定プログラム群の中に、正解率が所定の値を超える画像良否判定プログラムがないと判定した場合には、選択部４３０における第二の画像良否判定プログラムの選択処理は終了する。第二の画像良否判定プログラムが選択できない場合、作業者は、学習装置１００で再学習により新たな画像良否判定プログラムを作成することになる。
【００６２】
図１５は、第一の画像良否判定プログラムにより誤認識された検査画像を用いて、第二の画像良否判定プログラムを選択する際に、第二の画像良否判定プログラムの適応度を求めるためのデータ構成の一例を示す図である。
図１５は、例えば、画像良否判定プログラム群２２６にある画像良否判定プログラムＢ、Ｃ、Ｄ、Ｅを用いて、第一の画像良否判定プログラム２２２である画像良否判定プログラムＡにより、誤認識された検査画像に対し、良否判定を行った結果を示す。
図１５では、画像良否判定プログラムＡにより誤認識された検査画像の画像ＩＤ、その検査画像に対する作業者の目視良否判定情報、及びその検査画像に対する各画像良否判定プログラムＢ、Ｃ、Ｄ、Ｅの判定結果と適応度を求めるための情報が示されている。適応度を求めるための情報としては、本実施例では、「判定値」、「見逃し」、「虚報」、「マージン値」などを含む。
「判定値」には、画像良否判定プログラム群にある画像良否判定プログラムと作業者とが行った良否判定の結果をもとに、「１」又は「０」の値が付与される。例えば、選択部４３０は、作業者の判定結果と画像良否判定プログラムＢ、Ｃ、Ｄ、Ｅの各画像良否判定プログラムとの判定結果が一致している場合には判定値「１」を、一致していない場合には「０」を付与する。
「見逃し」には、判定値「０」の誤認識された画像のうち見逃し画像に対し、「１」の値が付与される。例えば、選択部４３０は、作業者の判定結果が「ＮＧ」で、画像良否判定プログラムの判定結果が「ＯＫ」の場合の見逃し画像に対し「１」を付与する。それ以外の画像に対しては、選択部４３０は、「０」を付与する。
「虚報」には、判定値「０」の誤認識された画像のうち虚報画像に対し、「１」の値が付与される。例えば、選択部４３０は、作業者の判定結果が「ＯＫ」で、画像良否判定プログラムの判定結果が「ＮＧ」の場合の虚報画像に対し「１」を付与する。それ以外の画像に対しては、選択部４３０は、「０」を付与する。
「マージン値」は、画像良否判定プログラムＢ、Ｃ、Ｄ、Ｅの各画像良否判定プログラムにおける、誤認識された検査画像とＳＶＭの境界面との距離で求める。
【００６３】
図１５の表において、各画像良否判定プログラムの正解率は、判定値を用いて下記の（１）式で求める。
正解率＝判定値合計／検査画像の総数            ・・・（１）式
画像良否判定プログラムＢ、Ｃは、誤認識がなく、判定値が全て「１」である正解率１００％を示す画像良否判定プログラムである。
図１５の表において、各画像良否判定プログラムの見逃し率は、表中の「見逃し」の値を用いて、下記の（２）式で求める。
見逃し率＝見逃しの値合計／検査画像の総数      ・・・（２）式
画像良否判定プログラムＥは、ＩＭＧ０００３の検査画像に対して、見逃しが生じた画像良否判定プログラムである。画像良否判定プログラムＢ、Ｃ、Ｄは、見逃しがなく、見逃し率０％の画像良否判定プログラムである。
図１５の表において、各画像良否判定プログラムの虚報率は、表中の「虚報」の値を用いて、下記の（３）式で求める。
虚報率＝虚報の値合計／検査画像の総数          ・・・（３）式
画像良否判定プログラムＤ、Ｅは、ＩＭＧ１５３２の検査画像に対して、虚報が生じた画像良否判定プログラムである。画像良否判定プログラムＢ、Ｃは、虚報がなく、虚報率０％の画像良否判定プログラムである。
マージンの評価（マージン評価値）は、表中のマージン値を用いて、下記の（４）式で求める。
マージン評価値＝ｍｉｎ（｜判定値が１であるときのマージン値｜）・・・（４）式
各プログラムが示すマージン評価値の中で、マージン評価値が最大の画像良否判定プログラムを選択することで、マージンが最大の画像良否判定プログラムを選択することができる。
画像良否判定プログラムＢ、Ｃでは、判定値が全て「１」であるため、それぞれのプログラムにおけるマージン値の絶対値の最小値である、マージン評価値を求める。画像良否判定プログラムＢでは、マージン評価値は０．８であり、画像良否判定プログラムＣでは、マージン評価値は０．５である。
【００６４】
図１５の画像良否判定プログラムＢ、Ｃ、Ｄ、Ｅの結果から、選択部４３０が、誤認識検査画像に対し最適な適応度を示す第二の画像良否判定プログラムを選択する具体的処理について、以下説明する。
（ａ）見逃し率が０％の画像良否判定プログラムを選択する。図１５で示される結果から、画像良否判定プログラムＢ、Ｃ、Ｄを選択する。
（ｂ）次に、正解率が最大のプログラムを選択する。図１５で示される結果から、見逃し率も虚報率もともに０％である、正解率が１００％の画像良否判定プログラムＢ、Ｃを選択する。
（ｃ）更に、正解率が最大を示す画像良否判定プログラムＢ、Ｃのうち、マージン評価値が最大の画像良否判定プログラムを選択する。図１５で示される結果から、正解率が１００％の画像良否判定プログラムＢ、Ｃのうち、マージン評価値がより大きい画像良否判定プログラムＢを選択する。
図１５の結果から、選択部４３０は、正解率が最大で、かつマージンが最大の第二の画像良否判定プログラムとして、画像良否判定プログラムＢを選択する。
【００６５】
次に、図１６、図１７、図１８を用いて、第一の画像良否判定プログラムにより誤認識された画像が、第二の画像良否判定プログラムに置換することにより、正しく良否判定されることを説明する。
図１６は、ＳＶＭによる良否判定の一例を示す図である。図１６は、第一の画像良否判定プログラムにより、学習画像に対して、良画像・不良画像が正しく判定されている状態を示している。
図１７は、誤認識データが現れた時のＳＶＭによる誤判定の一例を示す図である。検査が進むにつれ、第一の画像良否判定プログラムでは、正しく判定できない誤認識画像が現れた状態を示している。５２ａは、第一の画像良否判定プログラムにより不良画像と判定されたが、作業者は良画像と判定した誤認識画像（虚報画像）を示す。５２ｂは、第一の画像良否判定プログラムにより良画像と判定されたが、作業者は不良画像と判定した誤認識画像（見逃し画像）を示す。
図１８は、誤認識画像に対し正しく良否を判定できる画像良否判定プログラムに置換した後のＳＶＭによる良否判定の一例を示す図である。図１８は、誤認識画像に対し、最適な適応度を示す第二の画像良否判定プログラムを用いて検査画像を判定した結果、検査画像に対し良・不良の判定が正しく行われていることを示している。
【００６６】
選択装置４００のハードウェア構成としては、ＣＰＵ、主記憶装置、補助記憶装置、入力装置、出力装置、通信Ｉ／Ｆの各部を有する。これらの各部は、バスを介してそれぞれ接続されている。各部の説明は、学習装置１００や検査装置２００における説明と同様であるため、ここでは説明を省略する。
尚、選択装置４００は、ネットワーク上のコンピュータ群であるクラウドの一部であってもよい。
【００６７】
次に、画像良否判定プログラムを選択し、置換する処理手順の詳細について説明する。
図１１は、学習型検査システムにおける画像良否判定プログラムを選択し、置換するまでの処理の一例を示すシーケンス図である。以下、図１及び図１０を参照して説明する。
【００６８】
ステップＳ２１０では、検査装置２００の制御部２２０の判定部２４０は、画像良否判定プログラムＤＢ１６０に記憶された最適な画像良否判定プログラム（第一の画像良否判定プログラム）を取得し、処理をＳ２１１に移行する。
ステップＳ２１１では、判定部２４０は、検査画像ＤＢ２７０に記憶された検査画像を取得し、処理をＳ２１２に移行する。
ステップＳ２１２では、判定部２４０は、第一の画像良否判定プログラムを用いて検査画像の良否を判定し、処理をＳ２１３に移行する。
ステップＳ２１３では、判定部２４０は、検査画像とその検査画像の第一の画像良否判定プログラムによる良否の判定結果を判定結果ＤＢ２８０に記憶し、処理をＳ２１４に移行する。
【００６９】
ステップＳ２１４では、作業者判定装置３００の作業者判定入力部３２０は、判定結果ＤＢ２８０に記憶された検査画像とその検査画像の第一の画像良否判定プログラムによる良否の判定結果を取得し、処理をＳ２１５に移行する。
ステップＳ２１５では、作業者判定入力部３２０は、第一の画像良否判定プログラムによる良否判定された検査画像に対する、作業者の良否判定を受け付ける。そして、作業者判定入力部３２０は、第一の画像良否判定プログラムと作業者とが行った良否判定の結果から誤認識された画像を選別し、処理をＳ２１６に移行する。
ステップＳ２１６では、作業者判定入力部３２０は、作業者の良否判定の結果得られる誤認識された検査画像に関する情報を検査装置２００に送信し、処理をＳ２１７に移行する。誤認識された検査画像に関する情報を受信した検査装置２００は、係る情報を記憶部２３０の誤認識ＤＢ２９０に記憶する。ここで、誤認識された検査画像に関する情報には、第一の画像良否判定プログラムが良画像と判定したのに対し作業者が不良画像と判定した「見逃し画像」に関する情報、及び第一の画像良否判定プログラムが不良画像と判定したのに対し作業者が良画像と判定した「虚報画像」に関する情報が含まれる。
【００７０】
ステップＳ２１７では、検査装置２００の通知部２６０は、誤認識ＤＢ２９０に記憶された誤認識された検査画像に関する情報を取得し、処理をＳ２１８に移行する。
ステップＳ２１８では、通知部２６０は、誤認識された検査画像の数が所定数を超えたか否かを判定し、所定数を超えたと判定した場合には、処理をＳ２１９に移行する。一方、通知部２６０が、所定数を超えていないと判定した場合には、処理をＳ２１１に戻し、判定部２４０は、検査画像に対する検査を継続する。
ステップＳ２１９では、通知部２６０は、誤認識された画像の数が所定数を超えたことを選択装置４００へ通知し、処理をＳ２２０に移行する。
【００７１】
ステップＳ２２０では、通知部２６０からの通知の受信に従い、選択装置４００の選択部４３０は、画像良否判定プログラムＤＢ１６０に記憶されている画像良否判定プログラム群の中から画像良否判定プログラムを取得し、処理をＳ２２１に移行する。
ステップＳ２２１では、選択部４３０は、誤認識ＤＢ２９０に記憶されている誤認識された検査画像に関する情報を取得し、処理をＳ２２２に移行する。
ステップＳ２２２では、選択部４３０は、誤認識された検査画像に対し、取得した画像良否判定プログラムによる良否判定を行い、係る画像良否判定プログラムの適応度を求め、処理をＳ２２３に移行する。
適応度は、画像良否判定プログラムＤＢ１６０に記憶されている画像良否判定プログラム群にある全ての画像良否判定プログラムに対して求める。
ステップＳ２２３では、選択部４３０は、得られた適応度から、第二の画像良否判定プログラムを選択し、処理をＳ２２４に移行する。
第二の画像良否判定プログラムは、正解率が所定の値を超えている画像良否判定プログラムの中から選択される最適な適応度を示す画像良否判定プログラムが第二の画像良否判定プログラムとして選択される。ここで、最適な適応度を示す画像良否判定プログラムの選択手法としては、上述したとおりである。
ステップＳ２２４では、選択装置４００は、選択部４３０で選択された第二の画像良否判定プログラムを検査装置２００に送信し、処理をＳ２２５に移行する。
ステップＳ２２５では、検査装置２００の置換部２５０は、第一の画像良否判定プログラムを第二の画像良否判定プログラムに置換し、本処理を終了する。
【００７２】
検査装置の判定部が、検査画像の良否を判定する処理の流れを、図１９に示すフローチャートにしたがって説明する。
ステップＳ３１０では、検査装置２００の制御部２２０の判定部２４０は、画像良否判定プログラムＤＢ１６０に記憶された最適な画像良否判定プログラム（第一の画像良否判定プログラム）を取得し、処理をＳ３１１に移行する。
ステップＳ３１１では、判定部２４０は、検査画像ＤＢ２７０に記憶された検査画像を取得し、処理をＳ３１２に移行する。
ステップＳ３１２では、判定部２４０は、第一の画像良否判定プログラムを用いて検査画像の良否を判定し、処理をＳ３１３に移行する。
ステップＳ３１３では、判定部２４０は、検査画像とその検査画像の第一の画像良否判定プログラムによる良否の判定結果を判定結果ＤＢ２８０に記憶し、処理をＳ３１４に移行する。
ステップＳ３１４では、検査装置２００の通知部２６０が誤認識された検査画像の数が所定数を超えたと判定した場合には、判定部２４０は、第一の画像良否判定プログラムを用いて検査画像の良否を判定する処理を終了する。一方、通知部２６０が誤認識された検査画像の数が所定数を超えたと判定していない場合には、判定部２４０は、第一の画像良否判定プログラムを用いて検査画像の良否を判定する処理を継続する。
【００７３】
検査装置の通知部が、誤認識ＤＢから取得した情報に基づき、通知を選択装置に送信する処理の流れを、図２０に示すフローチャートにしたがって説明する。
ステップＳ４１０では、検査装置２００の通知部２６０は、誤認識ＤＢ２９０に記憶された誤認識された検査画像に関する情報を取得し、処理をＳ４１１に移行する。
ステップＳ４１１では、通知部２６０は、誤認識された検査画像の数が所定数を超えたか否かを判定し、所定数を超えたと判定した場合には、処理をＳ４１２に移行する。一方、通知部２６０が、所定数を超えていないと判定した場合には、処理をＳ４１０に戻す。これにより、判定部２４０は、検査画像に対する良否を判定する検査処理を継続する。
ステップＳ４１２では、通知部２６０は、誤認識された画像の数が所定数を超えたことを選択装置４００へ通知し、本処理を終了する。
【００７４】
検査装置の置換部が、第一の画像良否判定プログラムを第二の画像良否判定プログラムに置換する処理の流れを、図２１に示すフローチャートにしたがって説明する。
ステップＳ５１０では、検査装置２００は、選択装置４００からの第二の画像良否判定プログラムの受信を待機し、処理をＳ５１１に移行する。
ステップＳ５１１では、検査装置２００が選択装置４００から第二の画像良否判定プログラムを受信した場合には、処理をＳ５１２に移行する。一方、検査装置２００が選択装置４００から第二の画像良否判定プログラムを受信していない場合には、処理をＳ５１０に戻し、検査装置２００は、選択装置４００からの受信を待機する。
ステップＳ５１２では、検査装置２００の置換部２５０は、第一の画像良否判定プログラムを第二の画像良否判定プログラムに置換し、本処理を終了する。
【００７５】
作業者判定装置に入力された作業者の良否判定の結果から得られた、誤認識された検査画像の情報を誤認識ＤＢに記憶するまでの処理の流れを、図２２に示すフローチャートにしたがって説明する。
ステップＳ６１０では、作業者判定装置３００の作業者判定入力部３２０は、判定結果ＤＢ２８０に記憶された検査画像とその検査画像の第一の画像良否判定プログラムによる良否の判定結果を取得し、処理をＳ６１１に移行する。
ステップＳ６１１では、作業者判定入力部３２０は、検査画像とその検査画像の第一の画像良否判定プログラムによる良否の判定結果を表示し、処理をＳ６１２に移行する。
ステップＳ６１２では、作業者判定入力部３２０は、第一の画像良否判定プログラムによる良否判定された検査画像に対する、作業者の良否判定を受け付け、処理をＳ６１３に移行する。
ステップＳ６１３では、作業者判定入力部３２０は、第一の画像良否判定プログラムと作業者とが行った良否判定の結果から誤認識された検査画像を選別し、処理をＳ６１４に移行する。
ステップＳ６１４では、作業者判定入力部３２０は、作業者の良否判定の結果得られる誤認識された検査画像に関する情報（見逃し画像、虚報画像に関する情報を含む）を検査装置２００に送信し、本処理を終了する。誤認識された検査画像に関する情報を受信した検査装置２００は、係る情報を記憶部２３０の誤認識ＤＢ２９０に記憶する。
【００７６】
選択装置の選択部が、第二の画像良否判定プログラムを選択する処理の流れを、図２３に示すフローチャートにしたがって説明する。
ステップＳ７１０では、通知部２６０からの通知の受信に従い、選択装置４００の選択部４３０は、画像良否判定プログラムＤＢ１６０に記憶されている画像良否判定プログラム群の中から画像良否判定プログラムを取得し、処理をＳ７１１に移行する。
ステップＳ７１１では、選択部４３０は、誤認識ＤＢ２９０に記憶されている誤認識された検査画像に関する情報を取得し、処理をＳ７１２に移行する。ここで、誤認識された検査画像に関する情報には、第一の画像良否判定プログラムが良画像と判定したのに対し作業者が不良画像と判定した「見逃し画像」に関する情報、及び第一の画像良否判定プログラムが不良画像と判定したのに対し作業者が良画像と判定した「虚報画像」に関する情報が含まれる。
ステップＳ７１２では、選択部４３０は、誤認識された検査画像に対し、取得した画像良否判定プログラムによる良否判定を行い、係る画像良否判定プログラムの適応度を求め、処理をＳ７１３に移行する。
ステップＳ７１３では、選択部４３０は、画像良否判定プログラムＤＢ１６０に記憶されている画像良否判定プログラム群にある全ての画像良否判定プログラムに対し適応度を求めたか否かを判定する。全ての画像良否判定プログラムに対し適応度を求めた場合には、選択部４３０は、処理をＳ７１４に移行する。全ての画像良否判定プログラムに対し適応度を求めていない場合には、選択部４３０は、処理をＳ７１０に戻し、適応度を求める処理を継続する。
ステップＳ７１４では、選択部４３０は、求めた適応度から、正解率が所定の値を超える画像良否判定プログラムがあるか否かを判定する。正解率が所定の値を超える画像良否判定プログラムがある場合には、選択部４３０は、処理をＳ７１５に移行する。正解率が所定の値を超える画像良否判定プログラムがない場合には、選択部４３０は、本処理を終了する。選択部４３０において、第二の画像良否判定プログラムが選択できない場合には、作業者は、学習装置１００で再学習により新たな画像良否判定プログラムを作成することになる。
ステップＳ７１５では、選択部４３０は、正解率が所定の値を超えている画像良否判定プログラムの中から、求めた適応度の中で最適な適応度を示す第二の画像良否判定プログラムを選択し、処理をＳ７１６に移行する。ここで、最適な適応度を示す画像良否判定プログラムの選択手法としては、ステップＳ２２３の説明箇所で記載したとおりである。
ステップＳ７１６では、選択装置４００は、選択部４３０で選択された第二の画像良否判定プログラムを検査装置２００に送信し、本処理を終了する。
【００７７】
図１で示す学習型検査システム５００では、学習装置１００、検査装置２００、作業者判定装置３００、選択装置４００の４つの装置で構成したが、例えば、これらの装置は、適宜組み合わせて、以下に示すように１つ〜２つの装置の構成としてもよい。
【００７８】
（第２の実施例）
図２４で示される学習型検査システム５００における学習・選択装置６００は、図１で示す学習型検査システム５００における学習装置１００と選択装置４００とを合わせて、一つの装置とした。また、図２４で示される学習型検査システム５００における検査装置７００は、図１で示す学習型検査システム５００における検査装置２００と作業者判定装置３００とを合わせて、一つの装置とした。それ以外は、図２４で記載の各構成部は、図１で示される各構成部と同じ機能を示すものである。このため、既に説明した同一の構成については、同じ参照符号を付して、その説明を省略する。
学習・選択装置６００は、制御部６２０と、記憶部６３０とを有する。制御部６２０は、学習・選択装置６００全体を制御する。
制御部６２０は、プログラム生成部１４０と、選択部４３０とを有する。記憶部６３０は、学習ＤＢ１５０と、画像良否判定プログラムＤＢ１６０とを有する。
検査装置７００は、制御部７２０と、記憶部７３０と、入力部７４０とを有する。制御部７２０は、検査装置７００全体を制御する。
制御部７２０は、判定部２４０と、置換部２５０と、通知部２６０とを有する。記憶部７３０は、検査画像ＤＢ２７０と、判定結果ＤＢ２８０と、誤認識ＤＢ２９０とを有する。
入力部７４０は、作業者判定入力部３２０を有する。
図１の作業者判定装置３００は、図１で示すように検査装置２００に対し別装置としても、図２４で示すように検査装置２００に作業者判定入力部３２０の機能を付加させ検査装置内に取り込ませることにより、検査装置と同一装置としてもよい。
【００７９】
（第３の実施例）
図２５で示される学習型検査システム５００における検査・選択装置８００は、図１で示す学習型検査システム５００における検査装置２００と作業者判定装置３００と選択装置４００とを合わせて、一つの装置とした。それ以外は、図２５で記載の各構成部は、図１で示される各構成部と同じ機能を示すものである。このため、既に説明した同一の構成については、同じ参照符号を付して、その説明を省略する。
検査・選択装置８００は、制御部８２０と、記憶部８３０と、入力部８４０とを有する。制御部８２０は、検査・選択装置８００全体を制御する。
制御部８２０は、判定部２４０と、置換部２５０と、通知部２６０と、選択部４３０とを有する。記憶部８３０は、検査画像ＤＢ２７０と、判定結果ＤＢ２８０と、誤認識ＤＢ２９０とを有する。
入力部８４０は、作業者判定入力部３２０を有する。
【００８０】
（第４の実施例）
図２６で示される学習型検査システム５００における学習型検査装置９００は、図１で示される学習型検査システム５００における学習装置１００と検査装置２００と作業者判定装置３００と選択装置４００とを合わせて、一つの装置としたものである。それ以外は、図２６で記載の各構成部は、図１で示される各構成部と同じ機能を示すものである。このため、既に説明した同一の構成については、同じ参照符号を付して、その説明を省略する。
学習型検査装置９００は、制御部９２０と、記憶部９３０と、入力部９４０とを有する。制御部９３０は、学習型検査装置９００全体を制御する。
制御部９２０は、プログラム生成部１４０と、判定部２４０と、置換部２５０と、通知部２６０と、選択部４３０とを有する。記憶部９３０は、学習ＤＢ１５０と、画像良否判定プログラムＤＢ１６０と、検査画像ＤＢ２７０と、判定結果ＤＢ２８０と、誤認識ＤＢ２９０とを有する。
入力部９４０は、作業者判定入力部３２０を有する。
【００８１】
以上、説明したように、検索装置は、第一の画像良否判定プログラムを用いて検査画像の良否判定を行った結果、誤認識された画像が所定の基準を超えた場合、第二の画像良否判定プログラムに置換する。
これにより、時間がかかる再学習を行わずに、従来よりも短時間で良否判定の精度を上げることができる第二の画像良否判定プログラムを用いて画像検査を行うことができ、生産ラインを継続稼働することができる。
【００８２】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
学習画像に対する画像良否判定プログラムの適応度が所定の基準を満たす世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群にある第一の画像良否判定プログラムにより、検査画像の良否を判定する判定部と、
前記第一の画像良否判断プログラムによる前記検査画像の良否判定に対し、作業者が良否判定を行った結果、誤認識された前記検査画像が生じたとき、前記誤認識された前記検査画像に対し最適な適応度を示す、前記画像良否判断プログラム群にある第二の画像良否判定プログラムを用いて、前記第一の画像良否判定プログラムを前記第二の画像良否判定プログラムに置換する置換部と、
を有することを特徴とする検査装置。
（付記２）
前記第二の画像良否判定プログラムは、前記画像良否判定プログラム群にある過去の世代を含む全ての画像良否判定プログラムの中から選択される、
ことを特徴とする、付記１に記載の検査装置。
（付記３）
前記第二の画像良否判定プログラムは、画像良否判定プログラムの良否判定の正解率、及び良否を分離する境界のマージンの大きさから求められる前記適応度により選択される、
ことを特徴とする、付記１又は２に記載の検査装置。
（付記４）
前記第二の画像良否判定プログラムは、前記誤認識の検査画像における全ての見逃し画像に対し、不良と正しく判定できるプログラムである、
ことを特徴とする、付記３に記載の検査装置。
（付記５）
画像良否判定プログラムを用いて検査画像の良否を判定する検査プログラムであって、
学習画像に対する画像良否判定プログラムの適応度が所定の基準を満たす世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群にある第一の画像良否判定プログラムにより、検査画像の良否を判定し、
前記第一の画像良否判断プログラムによる前記検査画像の良否判定に対し、作業者が良否判定を行った結果、誤認識された前記検査画像が生じたとき、前記誤認識された前記検査画像に対し最適な適応度を示す、前記画像良否判断プログラム群の中にある第二の画像良否判定プログラムを用いて、前記第一の画像良否判定プログラムを前記第二の画像良否判定プログラムに置換する、
処理をコンピュータに実行させることを特徴とする検査プログラム。
（付記６）
前記第二の画像良否判定プログラムは、前記画像良否判定プログラム群にある過去の世代を含む全ての画像良否判定プログラムの中から選択される、
ことを特徴とする、付記５に記載の検査プログラム。
（付記７）
前記第二の画像良否判定プログラムは、画像良否判定プログラムの良否判定の正解率、及び良否を分離する境界のマージンの大きさから求められる前記適応度により選択される、
ことを特徴とする、付記５又は６に記載の検査プログラム。
（付記８）
前記第二の画像良否判定プログラムは、前記誤認識の検査画像における全ての見逃し画像に対し、不良と正しく判定できるプログラムである、
ことを特徴とする、付記７に記載の検査プログラム。
（付記９）
画像良否判定プログラムを用いて検査画像の良否を判定する検査方法であって、
学習画像に対する画像良否判定プログラムの適応度が所定の基準を満たす世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群にある第一の画像良否判定プログラムにより、検査画像の良否を判定し、
前記第一の画像良否判断プログラムによる前記検査画像の良否判定に対し、作業者が良否判定を行った結果、誤認識された前記検査画像が生じたとき、前記誤認識された前記検査画像に対し最適な適応度を示す、前記画像良否判断プログラム群にある第二の画像良否判定プログラムを用いて、前記第一の画像良否判定プログラムを前記第二の画像良否判定プログラムに置換する、
ことを特徴とする検査方法。
（付記１０）
前記第二の画像良否判定プログラムは、前記画像良否判定プログラム群にある過去の世代を含む全ての画像良否判定プログラムの中から選択される、
ことを特徴とする、付記９に記載の検査方法。
（付記１１）
前記第二の画像良否判定プログラムは、画像良否判定プログラムの良否判定の正解率、及び良否を分離する境界のマージンの大きさから求められる前記適応度により選択される、
ことを特徴とする、付記９又は１０に記載の検査方法。
（付記１２）
前記第二の画像良否判定プログラムは、前記誤認識の検査画像における全ての見逃し画像に対し、不良と正しく判定できるプログラムである、
ことを特徴とする、付記１１に記載の検査方法。
（付記１３）
画像良否判定プログラムを用いて検査画像の良否を判定する検査プログラムを記録した非一過性の記録媒体であって、
学習画像に対する画像良否判定プログラムの適応度が所定の基準を満たす世代が異なる学習型の画像良否判定プログラムを複数含む画像良否判定プログラム群にある第一の画像良否判定プログラムにより、検査画像の良否を判定し、
前記第一の画像良否判断プログラムによる前記検査画像の良否判定に対し、作業者が良否判定を行った結果、誤認識された前記検査画像が生じたとき、前記誤認識された前記検査画像に対し最適な適応度を示す、前記画像良否判断プログラム群にある第二の画像良否判定プログラムを用いて、前記第一の画像良否判定プログラムを前記第二の画像良否判定プログラムに置換する、
処理をコンピュータに実行させることを特徴とする検査プログラムを記録した非一過性の記録媒体。
【符号の説明】
【００８３】
１００    学習装置
１２０    学習装置の制御部
１３０    学習装置の記憶部
２００    検査装置
２２０    検査装置の制御部
２３０    検査装置の記憶部
３００    作業者判定装置
３２０    作業者判定入力部
４００    選択装置
４２０    選択装置の制御部
５００    学習型検査システム
【図１】
2019032605.tif 000003
【図２】
2019032605.tif 000004
【図３】
2019032605.tif 000005
【図４】
2019032605.tif 000006
【図５】
2019032605.tif 000007
【図６】
2019032605.tif 000008
【図７】
2019032605.tif 000009
【図８】
2019032605.tif 000010
【図９】
2019032605.tif 000011
【図１０】
2019032605.tif 000012
【図１１】
2019032605.tif 000013
【図１２】
2019032605.tif 000014
【図１３】
2019032605.tif 000015
【図１４】
2019032605.tif 000016
【図１５】
2019032605.tif 000017
【図１６】
2019032605.tif 000018
【図１７】
2019032605.tif 000019
【図１８】
2019032605.tif 000020
【図１９】
2019032605.tif 000021
【図２０】
2019032605.tif 000022
【図２１】
2019032605.tif 000023
【図２２】
2019032605.tif 000024
【図２３】
2019032605.tif 000025
【図２４】
2019032605.tif 000026
【図２５】
2019032605.tif 000027
【図２６】
2019032605.tif 000028