(57)【要約】撮像画像に含まれるオブジェクトを検出するオブジェクト検出方法であって、撮像画像に含まれるオブジェクトの種類を検出し、撮像画像に含まれるオブジェクトを画素単位で検出し、オブジェクトの種類、及び画素単位で検出されたオブジェクトの画素に基づいて、オブジェクトの大きさ及び種類を画素単位で決定する。
2020031422.tif 000002
【特許請求の範囲】
【請求項１】
撮像画像に含まれるオブジェクトを検出するオブジェクト検出方法であって、
前記撮像画像に含まれる前記オブジェクトの種類を検出する第１の方式にて前記オブジェクトを検出し、
前記撮像画像に含まれる前記オブジェクトを画素単位で検出する第２の方式にて前記オブジェクトを検出し、
前記第１の方式にて検出された前記オブジェクトの種類、及び前記第２の方式にて検出された前記オブジェクトに基づいて、前記オブジェクトの大きさ及び種類を画素単位で決定し、
前記オブジェクトに関して所定の判定を行うための閾値を、該オブジェクトの種類に基づいて選択し、
画素単位で決定された前記オブジェクトと、前記種類に基づいて選択された閾値とに基づいて前記所定の判定を行う
オブジェクト検出方法。
【請求項２】
前記オブジェクトの一の種類の画素の総数と、該種類に基づいて選択された閾値とを比較することによって、前記所定の判定を行う
請求項１に記載のオブジェクト検出方法。
【請求項３】
前記第２の方式による前記オブジェクトの検出は、前記撮像画像のデータが入力された場合、入力された該データの特徴が抽出された特徴抽出画像のデータを出力する学習済みオートエンコーダを用いて行う
請求項１又は請求項２に記載のオブジェクト検出方法。
【請求項４】
前記第１の方式による前記オブジェクトの検出は、前記撮像画像のデータが入力された場合、該撮像画像に含まれる前記オブジェクトの種類を出力する学習済みの画像認識ニューラルネットワークを用いて行う
請求項１から請求項３のいずれか１項に記載のオブジェクト検出方法。
【請求項５】
前記第１の方式による検出結果と、前記第２の方式による検出結果が整合しない場合、前記第１の方式と異なる第３の方式にて前記撮像画像に含まれる前記オブジェクトの種類を検出し、
前記画像認識ニューラルネットワークに前記撮像画像のデータが入力された場合、前記第３の方式にて検出された前記オブジェクトの種類が出力されるように、前記撮像画像及び前記第３の方式に係る検出結果を用いて、前記画像認識ニューラルネットワークを追加学習させる
請求項４に記載のオブジェクト検出方法。
【請求項６】
前記第３の方式は、前記オブジェクトの輪郭線の形状パターンに基づいて前記オブジェクトの種類を検出する
請求項５に記載のオブジェクト検出方法。
【請求項７】
前記第３の方式にて前記オブジェクトの種類を検出できなった場合、該オブジェクトの種類をユーザから受け付け、
前記画像認識ニューラルネットワークに前記撮像画像のデータが入力された場合、前記オブジェクトの種類が出力されるように、前記撮像画像及び受け付けた前記オブジェクトの種類を用いて、前記画像認識ニューラルネットワークを追加学習させる
請求項５又は請求項６に記載のオブジェクト検出方法。
【請求項８】
前記画像認識ニューラルネットワークを用いた前記オブジェクトの検出と、該画像認識ニューラルネットワークの追加学習とを並行的に実行する
請求項５〜請求項７のいずれか１項に記載のオブジェクト検出方法。
【請求項９】
前記撮像画像は検査対象物を撮像して得た画像であり、検出対象の前記オブジェクトは該検査対象物における異変部位である
請求項１から請求項８のいずれか１項に記載のオブジェクト検出方法。
【請求項１０】
撮像画像に含まれるオブジェクトを検出するオブジェクト検出装置であって、
前記撮像画像に含まれる前記オブジェクトの種類を検出する第１検出部と、
前記撮像画像に含まれる前記オブジェクトを画素単位で検出する第２検出部と、
前記第１検出部にて検出された前記オブジェクトの種類、及び前記第２検出部にて画素単位で検出された前記オブジェクトに基づいて、前記オブジェクトの大きさ及び種類を画素単位で決定する決定部と、
前記オブジェクトに関して所定の判定を行うための閾値を、該オブジェクトの種類に基づいて選択する選択部と、
画素単位で決定された前記オブジェクトと、前記種類に基づいて選択された閾値とに基づいて前記所定の判定を行う判定部と
を備えるオブジェクト検出装置。
【請求項１１】
コンピュータに撮像画像に含まれるオブジェクトを検出させるためのコンピュータプログラムであって、
前記コンピュータに、
前記撮像画像に含まれる前記オブジェクトの種類を検出する第１の方式にて前記オブジェクトを検出し、
前記撮像画像に含まれる前記オブジェクトを画素単位で検出する第２の方式にて前記オブジェクトを検出し、
前記第１の方式にて検出された前記オブジェクトの種類、及び前記第２の方式にて検出された前記オブジェクトに基づいて、前記オブジェクトの大きさ及び種類を画素単位で決定し、
前記オブジェクトに関して所定の判定を行うための閾値を、該オブジェクトの種類に基づいて選択し、
画素単位で決定された前記オブジェクトと、前記種類に基づいて選択された閾値とに基づいて前記所定の判定を行う
処理を実行させるためのコンピュータプログラム。
【請求項１２】
コンピュータに撮像画像に含まれるオブジェクトを検出して得られる情報を表示させるためのコンピュータプログラムであって、
前記コンピュータに、
前記撮像画像に含まれる前記オブジェクトの種類を検出する第１の方式にて前記オブジェクトを検出して得られた情報と、前記撮像画像に含まれる前記オブジェクトを画素単位で検出する第２の方式にて前記オブジェクトを検出して得られた情報とに基づく情報を表示させる
処理を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はオブジェクト検出方法、オブジェクト検出装置及びコンピュータプログラムに関する。
本出願は、２０１８年８月６日出願の日本出願第２０１８−１４７９７９号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。
【背景技術】
【０００２】
工業的に生産される部品を撮像し、撮像して得られる良品及び不良品の撮像画像を教師データとしてニューラルネットワークを深層機械学習させることにより、学習済みニューラルネットワークを用いた部品の良否判定を行うことができる。【０００３】
一方、Ｔｅｎｓｏｒｆｌｏｗ（登録商標）を用いた画像認識技術を利用することにより、撮像画像に含まれるオブジェクトの位置及び範囲、当該オブジェクトの種類を検出する技術がある。例えば、撮像画像に含まれる人物、動物、車両等の画像部分を検出することができる。
また、非特許文献１は、オートエンコーダを用いて、データの特徴量を自己学習する技術を開示している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】G. E. Hinton and R. Salakhutdinov, “Reducing the Dimensionality of Data with Neural Networks”, Science, vol. 313, p. 504-507
【発明の概要】
【０００５】
本開示のオブジェクト検出方法は、撮像画像に含まれるオブジェクトを検出するオブジェクト検出方法であって、前記撮像画像に含まれる前記オブジェクトの種類を検出する第１の方式にて前記オブジェクトを検出し、前記撮像画像に含まれる前記オブジェクトを画素単位で検出する第２の方式にて前記オブジェクトを検出し、前記第１の方式にて検出された前記オブジェクトの種類、及び前記第２の方式にて検出された前記オブジェクトに基づいて、前記オブジェクトの大きさ及び種類を画素単位で決定し、前記オブジェクトに関して所定の判定を行うための閾値を、該オブジェクトの種類に基づいて選択し、画素単位で決定された前記オブジェクトと、前記種類に基づいて選択された閾値とに基づいて前記所定の判定を行う。
【０００６】
本開示のオブジェクト検出装置は、撮像画像に含まれるオブジェクトを検出するオブジェクト検出装置であって、前記撮像画像に含まれる前記オブジェクトの種類を検出する第１検出部と、前記撮像画像に含まれる前記オブジェクトを画素単位で検出する第２検出部と、前記第１検出部にて検出された前記オブジェクトの種類、及び前記第２検出部にて画素単位で検出された前記オブジェクトに基づいて、前記オブジェクトの大きさ及び種類を画素単位で決定する決定部と、前記オブジェクトに関して所定の判定を行うための閾値を、該オブジェクトの種類に基づいて選択する選択部と、画素単位で決定された前記オブジェクトと、前記種類に基づいて選択された閾値とに基づいて前記所定の判定を行う判定部とを備える。
【０００７】
本開示のコンピュータプログラムは、コンピュータに撮像画像に含まれるオブジェクトを検出させるためのコンピュータプログラムであって、前記コンピュータに、前記撮像画像に含まれる前記オブジェクトの種類を検出する第１の方式にて前記オブジェクトを検出し、前記撮像画像に含まれる前記オブジェクトを画素単位で検出する第２の方式にて前記オブジェクトを検出し、前記第１の方式にて検出された前記オブジェクトの種類、及び前記第２の方式にて検出された前記オブジェクトに基づいて、前記オブジェクトの大きさ及び種類を画素単位で決定し、前記オブジェクトに関して所定の判定を行うための閾値を、該オブジェクトの種類に基づいて選択し、画素単位で決定された前記オブジェクトと、前記種類に基づいて選択された閾値とに基づいて前記所定の判定を行う処理を実行させる。
【０００８】
本開示のコンピュータプログラムは、コンピュータに撮像画像に含まれるオブジェクトを検出して得られる情報を表示させるためのコンピュータプログラムであって、前記コンピュータに、前記撮像画像に含まれる前記オブジェクトの種類を検出する第１の方式にて前記オブジェクトを検出して得られた情報と、前記撮像画像に含まれる前記オブジェクトを画素単位で検出する第２の方式にて前記オブジェクトを検出して得られた情報とに基づく情報を表示させる処理を実行させる。
【０００９】
なお、本願は、オブジェクト検出装置の一部又は全部を実現する半導体集積回路として実現したり、オブジェクト検出装置を含むその他のシステムとして実現したりすることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は実施形態１に係る異変検知装置のハードウェア構成を示すブロック図である。
【図２】図２は実施形態１に係る異変検知装置の構成例を示す機能ブロック図である。
【図３】図３はオブジェクト検出に係る処理手順を示すフローチャートである。
【図４】図４はマッピング処理を示すフローチャートである。
【図５Ａ】図５Ａは第１検出部によるオブジェクト検出方法を示す説明図である。
【図５Ｂ】図５Ｂは第１検出部によるオブジェクト検出方法を示す説明図である。
【図６】図６は第２検出部によるオブジェクト検出方法を示す説明図である。
【図７】図７は画素単位でオブジェクトの位置及び種類を決定する方法を示す説明図である。
【図８】図８はオブジェクトの寸法測定に係る処理手順を示すフローチャートである。
【図９】図９はオブジェクトの寸法測定方法を示す説明図である。
【図１０】図１０はオブジェクトの良否判定処理手順を示すフローチャートである。
【図１１】図１１はオブジェクトの良否判定方法を示す説明図である。
【図１２Ａ】図１２Ａは重なり合っているオブジェクトの検出及び寸法測定方法を示す説明図である。
【図１２Ｂ】図１２Ｂは重なり合っているオブジェクトの検出及び寸法測定方法を示す説明図である。
【図１２Ｃ】図１２Ｃは重なり合っているオブジェクトの検出及び寸法測定方法を示す説明図である。
【図１２Ｄ】図１２Ｄは重なり合っているオブジェクトの検出及び寸法測定方法を示す説明図である。
【図１３】図１３は実施形態２に係る異変検知システムの構成例を示すブロック図である。
【図１４】図１４は実施形態２に係る追加学習に係る処理手順を示すフローチャートである。
【図１５】図１５は学習用データの生成に係る処理手順を示すフローチャートである。
【図１６】図１６は学習用データの生成方法を示す説明図である。
【図１７Ａ】図１７Ａは学習用データの生成方法を示す説明図である。
【図１７Ｂ】図１７Ｂは学習用データの生成方法を示す説明図である。
【発明を実施するための形態】
【００１１】
［本開示が解決しようとする課題］
ところで、Ｔｅｎｓｏｒｆｌｏｗ（登録商標）を用いた画像認識技術によれば、オブジェクトを囲むバウンディングボックスによって、当該オブジェクトの位置及び範囲をおおよそ特定することができるが、画素単位でオブジェクトの位置及び種類を検出することができないという問題がある。
【００１２】
例えば、オブジェクトの種類を特定できても当該オブジェクトの寸法を正確に検出できない。部品に付着した髪のような線状の異物がオブジェクトとして検出されたとしても、当該異物の画像を囲むバウンディングボックスには、背景画像も多分に含まれ、バウンディングボックスの大きさから異物の大きさを特定することはできない。異物の大きさが特定できないと、許容される異変なのか否かを判断することができない。
【００１３】
本開示の目的は、撮像画像に含まれるオブジェクトの大きさ及び種類を画素単位で検出することができるオブジェクト検出方法、オブジェクト検出装置及びコンピュータプログラムを提供することにある。
【００１４】
［本開示の効果］
本開示によれば、撮像画像に含まれるオブジェクトの大きさ及び種類を画素単位で検出することができるオブジェクト検出方法、オブジェクト検出装置及びコンピュータプログラムを提供することが可能となる。
【００１５】
［本開示の実施形態の説明］
最初に本開示の実施態様を列記して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【００１６】
（１）本開示のオブジェクト検出方法は、撮像画像に含まれるオブジェクトを検出するオブジェクト検出方法であって、前記撮像画像に含まれる前記オブジェクトの位置及び範囲をバウンディングボックスにて特定すると共に、該バウンディングボックスによって囲まれる前記オブジェクトの種類を検出する第１の方式にて前記オブジェクトを検出し、前記撮像画像に含まれる前記オブジェクトの位置を画素単位で検出する第２の方式にて前記オブジェクトを検出し、前記第１の方式にて検出された前記オブジェクトの位置及び範囲、該オブジェクトの種類、並びに前記第２の方式にて検出された前記オブジェクトの画素の位置に基づいて、前記オブジェクトの位置及び種類を画素単位で決定する。
【００１７】
本開示にあっては、２つの方式でオブジェクトを検出する。第１の方式は、オブジェクトの位置及び範囲をおおよそ特定することができるが、オブジェクトの種類を検出することができる検出方法である。第２の方式は、オブジェクトの位置を画素単位で正確に検出することができるが、オブジェクトの種類を特定することができない検出方法である。
本開示のオブジェクト検出方法は、上記第１の方式で特定及び検出されたオブジェクトの位置及び範囲、並びに当該オブジェクトの種類のデータと、第２の方式により画素単位で検出されたオブジェクトの画素位置のデータとに基づいて、オブジェクトの位置及び種類を画素単位で決定する。
従って、撮像画像に含まれるオブジェクトの位置及び範囲を画素単位で検出することが可能である。
なお、第１の方式によるオブジェクトの検出処理と、第２の方式によるオブジェクトの検出処理とを実行する順序は限定されるものでは無く、逆順で実行しても良いし、同時並行的に実行しても良い。
【００１８】
（２）前記オブジェクトに関して所定の判定を行うための閾値を、該オブジェクトの種類に基づいて選択し、画素単位で決定された前記オブジェクトの位置及び種類と、該種類に基づいて選択された閾値とに基づいて前記所定の判定を行う構成が好ましい。
【００１９】
本開示にあっては、オブジェクトの種類によって異なる閾値を選択し、画素単位で検出されたオブジェクトの位置及び種類と、当該種類に対応する閾値とに基づいて、所定の判定を行うことができる。
例えば、撮像画像は、製造される部品等の検査対象物、オブジェクトは、部品に付着した埃、髪、へこみ、傷等の異変であり、かかるオブジェクトの種類毎に異なる閾値を用いて、検査対象物の良、不良を判定することができる。
【００２０】
（３）前記オブジェクトの一の種類の画素の総数と、該種類に基づいて選択された閾値とを比較することによって、前記所定の判定を行う構成が好ましい。
【００２１】
本開示にあっては、一の種類のオブジェクトを構成する画素の総数と、当該一の種類に対応する閾値とを比較することによって、所定の判定を行う。
例えば、上記の検査対象物の例においては、画素の総数は部品に付着した埃、髪、へこみ、傷等の寸法に相当し、オブジェクトの種類毎に異なる閾値を用いて検査対象物の良、不良を判定することができる。
【００２２】
（４）前記第２の方式による前記オブジェクトの検出は、前記撮像画像のデータが入力された場合、入力された該データの特徴が抽出された特徴抽出画像のデータを出力する学習済みオートエンコーダを用いて行う構成が好ましい。
【００２３】
本開示にあっては、学習済みオートエンコーダを用いることによって、画素単位でオブジェクトの位置を正確に検出することができる。
【００２４】
（５）前記第１の方式による前記オブジェクトの検出は、前記撮像画像のデータが入力された場合、該撮像画像に含まれる前記オブジェクトの位置及び範囲並びに該オブジェクトの種類を出力する学習済みの画像認識ニューラルネットワークを用いて行う構成が好ましい。
【００２５】
本開示にあっては、学習済みの画像認識ニューラルネットワークを用いることによって、様々な特徴を有するオブジェクトを認識し、オブジェクトの位置及び範囲並びに当該オブジェクトの種類を検出することができる。
【００２６】
（６）前記第１の方式による検出結果と、前記第２の方式による検出結果が整合しない場合、前記第１の方式と異なる第３の方式にて前記撮像画像に含まれる前記オブジェクトの種類を検出し、前記画像認識ニューラルネットワークに前記撮像画像のデータが入力された場合、前記第３の方式にて検出された前記オブジェクトの位置及び範囲並びに該オブジェクトの種類が出力されるように、前記撮像画像及び前記第３の方式に係る検出結果を用いて、前記画像認識ニューラルネットワークを追加学習させる構成が好ましい。
【００２７】
本開示にあっては、態様（１）で説明した第１の方式によるオブジェクトの検出結果と、上記第２の方式によるオブジェクトの検出結果とが整合しない場合、特に、オブジェクトの種類の検出に失敗した場合、第３の方式でオブジェクトの種類を検出する。そして、第３方式による検出結果を用いて画像認識ニューラルネットワークを追加学習させることによって、第１の方式によるオブジェクトの検出精度を自動的に向上させることができる。
【００２８】
（７）前記第３の方式は、前記オブジェクトの輪郭線の形状パターンに基づいて前記オブジェクトの種類を検出する構成が好ましい。
【００２９】
本開示にあっては、画像認識ニューラルネットワークで検出できなかったオブジェクトの種類を、当該オブジェクトの輪郭線の形状パターンに基づいて検出し、上記画像認識ニューラルネットワークを追加学習させることができる。
【００３０】
（８）前記第３の方式にて前記オブジェクトの種類を検出できなった場合、該オブジェクトの種類をユーザから受け付け、前記画像認識ニューラルネットワークに前記撮像画像のデータが入力された場合、前記オブジェクトの位置及び範囲並びに該オブジェクトの種類が出力されるように、前記撮像画像及び受け付けた前記オブジェクトの種類を用いて、前記画像認識ニューラルネットワークを追加学習させる構成が好ましい。
【００３１】
本開示にあっては、第３の方式でもオブジェクトの種類を認識できなった場合、ユーザからオブジェクトの種類を受け付け、受け付けた内容を用いて画像認識ニューラルネットワークを追加学習させることができる。つまり上記態様（６）及び（７）により、可能な限り自動的に画像認識ニューラルネットワークを追加学習させると共に、第３の方式でも認識できない未知のオブジェクトに関してはユーザの人手を借りて画像認識ニューラルネットワークの追加学習を行う。
従って、未知のオブジェクトが発生し得る環境においても、各種オブジェクトを認識できるよう、半自動的に画像認識ニューラルネットワークを追加学習させ、種々のオブジェクトの位置及び種類を画素単位で検出可能となる。
【００３２】
（９）前記画像認識ニューラルネットワークを用いた前記オブジェクトの検出と、該画像認識ニューラルネットワークの追加学習とを並行的に実行する構成が好ましい。
【００３３】
本開示にあっては、画像認識ニューラルネットワークを用いたオブジェクトの検出と、画像認識ニューラルネットワークの追加学習を並行的に実行することができる。従って、画像認識ニューラルネットワークの学習処理中も、オブジェクトの検出処理を継続することができる。
【００３４】
（１０）前記撮像画像は検査対象物を撮像して得た画像であり、検出対象の前記オブジェクトは該検査対象物における異変部位である構成が好ましい。
【００３５】
本開示にあっては、検査対象物の異変部位及び種類を、画素単位で検出することができる。
【００３６】
（１１）本開示のオブジェクト検出装置は、撮像画像に含まれるオブジェクトを検出するオブジェクト検出装置であって、前記撮像画像に含まれる前記オブジェクトの位置及び範囲をバウンディングボックスにて特定すると共に、該バウンディングボックスによって囲まれる前記オブジェクトの種類を検出する第１検出部と、前記撮像画像に含まれる前記オブジェクトの位置を画素単位で検出する第２検出部と、前記第１検出部にて検出された前記オブジェクトの位置及び範囲、該オブジェクトの種類、並びに前記第２検出部にて画素単位で検出された前記オブジェクトの画素の位置に基づいて、前記オブジェクトの位置及び種類を画素単位で決定する決定部とを備える。
【００３７】
本開示にあっては、態様（１）と同様にして、撮像画像に含まれるオブジェクトの位置及び種類を画素単位で検出することができる。
【００３８】
（１２）本開示のコンピュータプログラムは、コンピュータに撮像画像に含まれるオブジェクトを検出させるためのコンピュータプログラムであって、前記コンピュータに、前記撮像画像に含まれる前記オブジェクトの位置及び範囲をバウンディングボックスにて特定すると共に、該バウンディングボックスによって囲まれる前記オブジェクトの種類を検出する第１の方式にて前記オブジェクトを検出し、前記撮像画像に含まれる前記オブジェクトの位置を画素単位で検出する第２の方式にて前記オブジェクトを検出し、前記第１の方式にて検出された前記オブジェクトの位置及び範囲、該オブジェクトの種類、並びに前記第２の方式にて検出された前記オブジェクトの画素の位置に基づいて、前記オブジェクトの位置及び種類を画素単位で決定する処理を実行させる。
【００３９】
本開示にあっては、コンピュータを態様（１１）に係るオブジェクト検出装置として機能させることができる。
【００４０】
（１３）本開示のコンピュータプログラムは、コンピュータに撮像画像に含まれるオブジェクトを検出して得られる情報を表示させるためのコンピュータプログラムであって、前記コンピュータに、前記撮像画像に含まれる前記オブジェクトの位置及び範囲をバウンディングボックスにて特定すると共に、該バウンディングボックスによって囲まれる前記オブジェクトの種類を検出する第１の方式にて前記オブジェクトを検出して得られた情報と、前記撮像画像に含まれる前記オブジェクトの位置を画素単位で検出する第２の方式にて前記オブジェクトを検出して得られた情報とに基づく情報を表示させる処理を実行させる。
【００４１】
本開示にあっては、第１の方式にてオブジェクトを検出して得られる情報と、第２の方式にてオブジェクトを検出して得られる情報とに基づく情報、例えば画素単位で検出されたオブジェクトの位置及び種類に関する情報を表示させることができる。
【００４２】
［本開示の実施形態の詳細］
本開示の実施形態に係るオブジェクト検出方法、異変検知装置及びコンピュータプログラムの具体例を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００４３】
（実施形態１）
＜異変検知装置のハードウェア構成＞
図１は、実施形態１に係る異変検知装置１のハードウェア構成を示すブロック図である。異変検知装置１（オブジェクト検出装置）は、例えば一又は複数のＣＰＵ（Central Processing Unit）、マルチコアＣＰＵ、ＧＰＵ（Graphics Processing Unit）、ＴＰＵ（Tensor Processing Unit）等の演算部１１を有するコンピュータである。演算部１１には、一時記憶部１２、画像入力部１３、出力部１４、入力部１５、記憶部１６及びデータ蓄積部１７がバスラインを介して接続されている。本実施形態１に係る異変検知装置１は、製造される検査対象物を撮像して得られる撮像画像５（図５Ａ参照）の画像データを取得し、撮像画像５に含まれる検出対象であるオブジェクト６、例えば検査対象物に付着した埃、髪、検査対象物のへこみ等の異変部位を検知するものである。検査対象物は、例えば、ワイヤハーネスを構成するコネクタである。
【００４４】
演算部１１は、記憶部１６に記憶されている後述のコンピュータプログラム１６ａを実行することにより、各構成部の動作を制御する。演算部１１は、検査対象物を撮像して得た撮像画像５に含まれるオブジェクト６の位置及び種類を画素単位で検出して検査対象物の異変を検知する処理を実行する。処理内容の詳細は後述する。
【００４５】
一時記憶部１２は、ＤＲＡＭ（Dynamic RAM）、ＳＲＡＭ（Static RAM）等のメモリであり、演算部１１の演算処理を実行する際に記憶部１６から読み出されたコンピュータプログラム１６ａ、又は演算処理によって生ずる各種データを一時記憶する。
【００４６】
記憶部１６は、ハードディスク、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）、フラッシュメモリ等の不揮発性メモリである。記憶部１６は、演算部１１が各構成部の動作を制御することにより、撮像画像５に含まれるオブジェクト６の位置及び種類を画素単位で検出して検査対象物の異変を検知する処理を実行するためのコンピュータプログラム１６ａを記憶している。また、記憶部１６は、各種オブジェクト６を形状認識し、撮像画像５に含まれるオブジェクト６の種類を検出するための特徴量等の情報、検出されたオブジェクト６、つまり異変が許容されるものか否かを判定するための閾値を記憶している。閾値はオブジェクト６の種類毎に異なり、記憶部１６は、複数のオブジェクト６の種類に対応付けて、異なる閾値を記憶している。
なお記憶部１６は、図示しない読出装置によって記録媒体から読み出されたコンピュータプログラム１６ａを記憶する態様であっても良い。記録媒体はＣＤ（Compact Disc）−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）−ＲＯＭ、ＢＤ（Blu-ray(登録商標) Disc）等の光ディスク、フレキシブルディスク、ハードディスク等の磁気ディスク、磁気光ディスク、半導体メモリ等である。また、図示しない通信網に接続されている図示しない外部コンピュータから本実施形態１に係るコンピュータプログラム１６ａをダウンロードし、記憶部１６に記憶させても良い。
【００４７】
画像入力部１３は撮像部１ａが接続されるインタフェースである。撮像部１ａは、レンズにて結像した像を電気信号に変換するＣＣＤ、ＣＭＯＳ等の撮像素子と、撮像素子にて変換された電気信号をデジタルの画像データにＡＤ変換し、ＡＤ変換された画像データを出力する。撮像部１ａから出力された画像データは画像入力部１３を介して異変検知装置１に入力される。撮像部１ａと、異変検知装置１とは、専用ケーブルで接続される構成であっても良いし、ＬＡＮ（Local Area Network）等のネットワークを介して接続される構成であっても良い。なお、画像データは、縦横に配列される各画素を所定階調の輝度値で示したデジタルのデータである。本実施形態では、モノクロの画像データであるものとして説明する。
【００４８】
出力部１４は表示部１ｂが接続されるインタフェースである。表示部１ｂは液晶パネル、有機ＥＬディスプレイ、電子ペーパ、プラズマディスプレイ等である。表示部１ｂは、演算部１１から与えられた画像データに応じた各種情報を表示する。例えば、異変検知結果の内容、不具合のある検査対象物の画像等を表示する。なお、表示部１ｂは、異変検知結果を出力する外部出力装置の一例であり、ブザー、スピーカ、発光素子、その他の報知装置であっても良い。工場の作業者は、表示部１ｂに表示された画像にて、異変検知の結果、検査対象物の状態等を認識することができる。
【００４９】
入力部１５には、キーボード、マウス、タッチセンサ等の操作部１ｃが接続される。操作部１ｃの操作状態を示した信号は入力部１５を介して異変検知装置１に入力される。演算部１１は、入力部１５を介して操作部１ｃの操作状態を認識することができる。
【００５０】
データ蓄積部１７は、記憶部１６と同様、ハードディスク、ＥＥＰＲＯＭ、フラッシュメモリ等の不揮発性メモリである。データ蓄積部１７は、検査対象物の画像データ、異変検知結果等のデータを記憶する。
【００５１】
＜異変検知装置の機能部＞
図２は、実施形態１に係る異変検知装置１の構成例を示す機能ブロック図である。異変検知装置１は、機能部としての第１検出部２、第２検出部３、良否判定部４を有する。異変検知装置１の各機能部は、演算部１１、一時記憶部１２等のハードウェアによって実現される。
【００５２】
第１検出部２は撮像画像５に含まれるオブジェクト６を画像認識し、当該オブジェクト６の位置及び範囲、並びに種類を検出する。具体的には、第１検出部２は、撮像画像５のデータが入力された場合、当該撮像画像５に含まれる一又は複数のオブジェクト６の位置及び範囲並びに当該オブジェクト６の種類を出力する学習済み画像認識ニューラルネットワーク２１を備える。オブジェクト６の位置は、当該オブジェクト６を囲むバウンディングボックス７の位置及び大きさで特定される（図５Ｂ参照）。バウンディングボックス７は例えば矩形状であり、概ねオブジェクト６が内接するような幅及び高さを有する。画像認識ニューラルネットワーク２１は、例えば公知のＴｅｎｓｏｒｆｌｏｗ（登録商標）を用いて構成することができる。また、画像認識ニューラルネットワーク２１は、その他の公知の畳み込みニューラルネットワーク（CNN：Convolutional neural network）を用いて構成することができる。
画像認識ニューラルネットワーク２１は、撮像画像５に含まれるオブジェクト６の種類が出力されるように、オブジェクト６の画像データと、当該オブジェクト６の種類を示す情報とを教師データとして機械学習させる。
【００５３】
第２検出部３はオートエンコーダ３１及び差分データ生成部３２を備える。オートエンコーダ３１は、撮像部１ａから出力された画像データが入力され、撮像画像５に含まれる検査対象物の特徴を抽出した特徴抽出画像５ａの画像データを出力する機能部である（図６参照）。具体的には、オートエンコーダ３１は、画像データが入力された場合、正常な検査対象物の特徴を表した特徴抽出画像５ａの画像データを出力する。撮像画像５には、ゴミ、傷、影、検査対象物自体の異変部位等の画像が含まれることがある。特徴抽出画像５ａはこれらの画像を除去し、異変が無い正常な検査対象物を撮像した場合に得られるような理想的な検査対象物を再現した撮像画像５である。オートエンコードはニューラルネットワークによって実現される。当該ニューラルネットワークは、画像データを次元圧縮する中間層を含み、同一画素数の画像データを入出力する。
【００５４】
オートエンコーダ３１は、入力層３１ａと、出力層３１ｂと、コンボリューション層（ＣＯＮＶ層）３１ｃと、デコンボリューション層（ＤＥＣＯＮＶ層）３１ｄとを有する。入力層３１ａは画像データに係る各画素値のデータが入力される層である。コンボリューション層３１ｃは、画像データを次元圧縮する層である。例えば、コンボリューション層３１ｃは、畳み込み積分を行うことにより、次元圧縮を行う。次元圧縮により、検査対象物の特徴量が抽出される。デコンボリューション層３１ｄは、コンボリューション層３１ｃで次元圧縮されたデータを元の次元に復元する層である。デコンボリューション層３１ｄは、逆畳み込み処理を行い、元の次元に復元する。当該復元によって、検査対象物の本来の特徴、即ち正常な検査対象物の特徴を表した画像データが復元される。なお、コンボリューション層３１ｃ及びデコンボリューション層３１ｄが２層である例を示したが、１層又は３層以上であっても良い。出力層３１ｂは、コンボリューション層３１ｃ及びデコンボリューション層３１ｄにて検査対象物の特徴が抽出された特徴抽出画像５ａに係る各画素値のデータを出力する層である。
オートエンコーダ３１は、入力された画像データと、出力された画像データとが同じになるように、オートエンコーダ３１のニューラルネットワークを機械学習させる。つまり、入力された撮像画像５と、出力される特徴抽出画像５ａとが同じになるように、ニューラルネットワークを機械学習させる。かかる機械学習は、正常な検査対象物を撮像して得られる画像データを用いて行う。
【００５５】
差分データ生成部３２は、撮像部１ａから取得した画像データと、オートエンコーダ３１から出力された画像データとの差分を演算する。具体的には、差分データ生成部３２は、各画像データの同一箇所の画素の画素値の差分を、画素毎に演算する。そして、差分データ生成部３２は、画素値の差分と、所定の閾値とを比較することによって二値化する。二値化処理によって、画素単位で検出されたオブジェクト６の画像を含む画像が得られる。以下、画素単位で検出されたオブジェクト６を含む画像を差分画像５ｂ（図６参照）と呼ぶ。
【００５６】
良否判定部４は、オブジェクト検出処理部４１、寸法測定処理部４２及び良否判定処理部４３を備える。
オブジェクト検出処理部４１は、撮像画像５に含まれる一又は複数のオブジェクト６の位置及び種類を画素単位で検出する機能部である。
寸法測定処理部４２は、画素単位で検出された各オブジェクト６の寸法を測定する機能部である。
良否判定処理部４３は、オブジェクト６の寸法と、当該オブジェクト６の種類に応じた閾値とを比較することによって、異変が許容可能なものか否か、つまり異変の良否を判定する処理を実行する機能部である。
【００５７】
＜異変部位検知処理＞
図３は、オブジェクト検出に係る処理手順を示すフローチャートである。演算部１１は、撮像部１ａから出力された画像データを取得する（ステップＳ１１）。次いで、演算部１１は、後述のマッピング処理を実行することにより、当該撮像画像５に含まれるオブジェクト６の位置及び種類を画素単位で検出する（ステップＳ１２）。次いで、演算部１１は、検出されたオブジェクト６の寸法を測定して（ステップＳ１３）、オブジェクト６の良否を判定する（ステップＳ１４）。
【００５８】
次いで、演算部１１は、ステップＳ１４の判定結果に基づいて、検査対象物の良否を判定する（ステップＳ１５）。つまり、演算部１１は、許容される異変があるか否かを判定する。良であると判定した場合（ステップＳ１５：ＹＥＳ）、演算部１１は処理を終える。不良であると判定した場合（ステップＳ１５：ＮＯ）、演算部１１は、検査対象物の異変に対処するための所定処理を実行し（ステップＳ１６）、処理を終える。例えば、演算部１１は、検査対象物に異常がある旨を報知する処理を実行する。また、演算部１１は、良否判定結果を示した画像（図１１右図参照）を表示部１ｂに表示させる処理を実行する。当該良否判定結果を示した画像の情報は、第１検出部２による検出処理にて得られた情報と、第２検出部３による検出処理にて得られる情報とに基づく情報の一例である。
【００５９】
図４は、マッピング処理手順を示すフローチャートである。第１検出部２は、撮像画像５に含まれる一又は複数のオブジェクト６の位置及び範囲をバウンディングボックス７にて特定すると共に、当該バウンディングボックス７によって囲まれるオブジェクト６の種類を検出する（ステップＳ３１）。
【００６０】
図５Ａ及び図５Ｂは、第１検出部２によるオブジェクト検出方法を示す説明図である。図５Ａは撮像画像５を示し、図５Ｂはオブジェクト６の検出結果を示す撮像画像５である。図５Ａに示すように、撮像画像５には複数のオブジェクト６が含まれている。例えば、埃の画像であるオブジェクト６１、髪の画像であるオブジェクト６２、へこみの画像であるオブジェクト６３等が含まれている。そして、図５Ｂに示すように、第１検出部２にて検出された各オブジェクト６はバウンディングボックス７によって囲まれており、オブジェクト６の位置はバウンディングボックス７の位置及び大きさによって表される。例えば、バウンディングボックス７１は、埃のオブジェクト６１の位置及び範囲を示し、バウンディングボックス７２は、髪のオブジェクト６２の位置及び範囲を示し、バウンディングボックス７３は、へこみのオブジェクト６３の位置及び範囲を示している。また、各バウンディングボックス７には、当該バウンディングボックス７に包含されたオブジェクト６の種類が表示される。このように、第１検出部２によれば、撮像画像５に含まれる各オブジェクト６のおおよその位置及び範囲と、種類とが特定される。
【００６１】
次いで、第２検出部３は、撮像画像５に含まれるオブジェクト６を画素単位で検出する（ステップＳ３２）。
【００６２】
図６は、第２検出部３によるオブジェクト検出方法を示す説明図である。撮像画像５の画像データがオートエンコーダ３１に入力されると、異変部位が取り除かれた撮像画像５本来の特徴を表した特徴抽出画像５ａの画像データが出力される。そして、差分データ生成部３２は、取得した元の画像データと、オートエンコーダ３１から出力された画像データとの差分を演算する。具体的には、差分データ生成部３２は、各画像データの同一箇所の画素の画素値の差分を、画素毎に演算する。そして、差分データ生成部３２は、画素値の差分と、所定の閾値とを比較することによって二値化する。二値化処理によって、画素単位で検出されたオブジェクト６の画像を含む画像が得られる。以下、画素単位で検出されたオブジェクト６を含む画像を差分画像５ｂと呼ぶ。差分画像５ｂには、検査対象物自体は含まれず、異変部位であるオブジェクト６のみが含まれる。例えば、図６右図に示すように、差分画像５ｂには、埃の画像であるオブジェクト６１、髪の画像であるオブジェクト６２、へこみの画像であるオブジェクト６３が含まれる。
【００６３】
次いで、演算部１１は、マッピング処理により、画素単位でオブジェクト６の位置及び種類を決定し（ステップＳ３３）、オブジェクト検出に係る処理を終える。なお、ステップＳ３３の処理を実行する演算部１１は、第１検出部２及び第２検出部３の検出結果に基づいて、オブジェクト６の位置及び種類を画素単位で決定する決定部として機能する。
【００６４】
図７は、画素単位でオブジェクト６の位置及び種類を決定する方法を示す説明図である。左上図は、第１検出部２によるオブジェクト６の検出結果が反映された撮像画像５である。撮像画像５に含まれる各オブジェクト６の位置はバウンディングボックス７の位置及び寸法によって表されている。また、各オブジェクト６の種類はバウンディングボックス７に付されたラベルによって表されている。バウンディングボックス７は、オブジェクト６の種類を示しているものの、オブジェクト６の位置、形状ないし寸法の正確な情報を有しない。
一方、左下図は、第２検出部３によるオブジェクト６の検出結果が反映された差分画像５ｂである。差分画像５ｂに含まれるオブジェクト６の各画素は、オブジェクト６の位置ないし形状を画素単位で正確に示しているものの、オブジェクト６の種類に関する情報を有しない。
中央の図は第２検出部３から出力された差分画像５ｂに対して、バウンディングボックス７のマッピングを行った状態を概念的に示したものである。バウンディングボックス７を差分画像５ｂにマッピングすることによって、画素単位でオブジェクト６の種類を決定することが可能になる。つまり、一の種類のバウンディングボックス７に包含されたオブジェクト６の画素に対して、当該一の種類を対応付けることにより、画素単位でオブジェクト６の種類を決定することができる。
右図は、画素単位でオブジェクト６の種類が決定された状態を概念的に示したものである。例えば、埃のオブジェクト６１を構成する各画素に対して、種類「埃」が対応付けられている。同様に、髪のオブジェクト６２を構成する各画素に対して、種類「髪」が対応付けられ、へこみのオブジェクト６３を構成する各画素に対して、種類「へこみ」が対応付けられている。
【００６５】
図８は、オブジェクト６の寸法測定に係る処理手順を示すフローチャート、図９は、オブジェクト６の寸法測定方法を示す説明図である。演算部１１は、一の種類のオブジェクト６の画素群を選択する（ステップＳ５１）。つまり、一つのオブジェクト６を構成している一群の複数画素を選択する。例えば、図９に示すように、埃のオブジェクト６１を構成する一群の複数画素を選択する。オブジェクト６の種類が異なる複数の画素は、たとえ連結ないし隣接していても一群の画素として選択されない。また、オブジェクト６の種類が同一の複数の画素であっても、所定画素以上離隔している場合は一群の画素として選択されない。
【００６６】
そして、演算部１１は、図９右図に示すように、選択されたオブジェクト６の一群の画素の総数を算出する（ステップＳ５２）。例えば、埃のオブジェクト６１を構成する画素の総数は１３である。同様に、髪を構成する画素の総数は１９である。オブジェクト６を構成する画素の総数は、オブジェクト６の寸法に相当するものである。
なお、オブジェクト６には、塊状のもの、線状のもの等、形状は様々であるが、同一種類のオブジェクト６は概ね同一形状である。このため、オブジェクト６の種類が既知であれば、オブジェクト６を構成する画素の総数を、当該オブジェクト６の寸法を示す情報として利用することができる。
例えば、髪のオブジェクト６２を構成する画素の総数は、髪の長さ寸法に相当する。埃のオブジェクト６１を構成する画素の総数は、概ね縦横寸法の積に相当する。
【００６７】
次いで、演算部１１は、差分画像５ｂに含まれる全オブジェクト６の寸法測定を終えたか否かを判定する（ステップＳ５３）。測定を終えていないオブジェクト６があると判定した場合（ステップＳ５３：ＮＯ）、処理をステップＳ５１へ戻し、寸法未測定の他のオブジェクト６についても同様の算出処理を実行する。全てのオブジェクト６の測定処理を終えたと判定した場合（ステップＳ５３：ＹＥＳ）、演算部１１は寸法測定に係る処理を終える。
【００６８】
図１０は、オブジェクト６の良否判定処理手順を示すフローチャート、図１１は、オブジェクト６の良否判定方法を示す説明図である。
【００６９】
演算部１１は、良否判定の対象であるオブジェクト６の画素群の種類に対応する閾値を選択する（ステップＳ７１）。記憶部１６は、オブジェクト６の種類毎に異なる閾値を記憶しており、演算部１１は判定対象のオブジェクト６の種類に対応付けられた閾値を選択する。
【００７０】
そして、演算部１１は、良否判定対象であるオブジェクト６の画素の総数と、ステップＳ７１にて選択した閾値とを比較し（ステップＳ７２）、比較結果を記憶する（ステップＳ７３）。例えば演算部１１は、一のオブジェクト６を構成する画素の総数が閾値以上である場合、当該オブジェクト６は許容できない異変であることを示す情報を記憶する。画素の総数が閾値未満である場合、当該オブジェクト６は許容できる異変であることを示す情報を記憶する。
図１１に示すように、埃の大きさを示す画素の総数（Σ画素）は、埃に係る第１閾値未満であるため、許容されると判定される。同様に、へこみの程度を示す画素の総数（Σ画素）は、へこみに係る第３閾値未満であるため、許容されると判定される。しかし、髪の長さを示す画素の総数（Σ画素）は、髪に係る第２閾値以上であるため、許容されない異変と判定される。
【００７１】
次いで、演算部１１は、全オブジェクト６に対して良否判定を終えたか否かを判定する（ステップＳ７４）。良否判定を終えていないオブジェクト６があると判定した場合（ステップＳ７４：ＮＯ）、処理をステップＳ７１へ戻し、良否未測定の他のオブジェクト６についても同様の算出処理を実行する。全てのオブジェクト６の良否判定を終えたと判定した場合（ステップＳ７４：ＹＥＳ）、演算部１１は良否判定に係る処理を終える。
【００７２】
上記の説明は、撮像画像５に含まれる複数のオブジェクト６が互いに離隔している状態を例に説明したが、本実施形態１によればオブジェクト６が重なっていても、画素単位でオブジェクト６の検出、寸法測定及び異常判定を行うことができる。
【００７３】
図１２Ａ、図１２Ｂ、図１２Ｃ、図１２Ｄは、重なり合っているオブジェクト６の検出及び寸法測定方法を示す説明図である。図１２Ａは、埃と髪のオブジェクト６１、６２が重なりあっている状態を示している。第２検出部３は、各オブジェクト６の種類を区別することなく、埃及び髪のオブジェクト６１、６２を構成する複数の画素を一群の画素として検出している。
図１２Ｂは、埃の位置及び範囲を示すバウンディングボックス７１によりマッピングされた状態を示している。演算部１１は、当該バウンディングボックス７１に包含される画素群を埃のオブジェクト６１を構成する画素として認識し、各画素に種類「埃」を付与する。
図１２Ｃは、髪の位置及び範囲を示すバウンディングボックス７２によりマッピングされた状態を示している。演算部１１は、当該バウンディングボックス７２に包含される画素群を髪のオブジェクト６２を構成する画素として認識し、各画素に種類「髪」を付与する。
図１２Ｄは、図１２Ｂ及び図１２Ｃに示すマッピング処理により、画素単位でオブジェクト６の種類を認識した結果を示している。黒塗りで示した画素は、種類「髪」が付与されている。ハッチングが付された画素は、種類「埃」が付与されている。白塗りの画素は、種類「埃」及び「髪」の双方が付与されている。
このように、オブジェクト６が重なり合っている部分の画素に、両方の種類を付与することにより、オブジェクト６が重なり合っていても、各オブジェクト６の寸法を測定することが可能となる。例えば、「埃」の種類が付与されている画素は、ハッチングが付された画素及び白抜きの画素であり、当該画素の総数を算出することによって、「埃」のオブジェクト６１の寸法を測定することができる。同様に、「髪」の種類が付与されている画素は、黒塗りの画素及び白抜きの画素であり、当該画素の総数を算出することによって、「髪」のオブジェクト６２の寸法を測定することができる。このように、複数種類のオブジェクト６が重なり合っていても、各オブジェクト６の位置及び種類を画素単位で検出することができ、各オブジェクト６の寸法を測定することもできる。
【００７４】
以上の通り、本実施形態によれば、第１検出部２及び第２検出部３にてオブジェクト６を検出し、図７に示すマッピング処理を行うことによって、撮像画像５に含まれるオブジェクト６の位置及び種類を画素単位で検出することができる。画素単位でオブジェクト６の位置及び種類を検出することが可能であるため、異変部位であるオブジェクト６の寸法を正確に測定することができる。
また、画素単位で検出された異変部位及びその良否を図１１に示すように表示することができる。
例えば、ワイヤハーネスを構成するコネクタ等の検査対象物の異変部位及び種類を画素単位で検出し、当該異変部位の寸法を正確に算出することができる。
【００７５】
また、オブジェクト６の種類に応じた異なる閾値を用いて、検出されたオブジェクト６が許容される異変か否かを判定することができる。
【００７６】
更に、画素単位で検出されたオブジェクト６の画素の総数と、閾値とを比較する簡単な処理で、オブジェクト６の形状に応じた異なる測定算出処理を行わずとも、上記判定を行うことができる。つまり、複雑な処理で異変部位の寸法を算出しなくても、異変部位の大きさが許容される寸法であるか否かを判定することができる。
【００７７】
更にまた、オートエンコーダ３１を用いることによって、オブジェクト６の位置を画素単位で正確に検出することができる。また当該オブジェクト６の寸法を正確に算出することができる。
【００７８】
更にまた、学習済みの画像認識ニューラルネットワーク２１を用いることによって、様々な特徴を有するオブジェクト６を認識し、当該オブジェクト６の位置、範囲及び種類を検出することができる。
【００７９】
なお、本実施形態１では、１台のコンピュータが異変検知装置１として動作し、第１検出部２、第２検出部３及び良否判定部４等として機能する例を説明したが、各機能部を実現する処理の一部又は全部をクラウドコンピュータに実行させるように構成しても良い。また、各機能部を実現する処理を複数のコンピュータで実行させる等、仮想マシンで実行するように構成しても良い。
【００８０】
また、本実施形態１では、主に検査対象物の良、不良を検知するシステムを説明したが、検出対象であるオブジェクト６の内容は特に限定されるものでは無い。
【００８１】
（実施形態２）
＜画像認識ニューラルネットワークの追加学習＞
図１３は、実施形態２に係る異変検知システムの構成例を示すブロック図である。実施形態２に係る異変検知システムは、異変検知装置１と、機械学習装置９とを備える。異変検知装置１は、例えば検査対象物が製造される工場に設置され、機械学習装置９は工場外の施設に設置される。異変検知装置１は実施形態１と同様の構成部であり、更に機械学習装置９との間でデータを送受信するための通信部１８を備える。機械学習装置９は、異変検知装置１を構成する画像認識ニューラルネットワーク２１を追加学習させるサーバ装置である。機械学習装置９は、コンピュータであり、基本的なハードウェア構成は異変検知装置１と同様である。
【００８２】
異変検知装置１と、機械学習装置９とは別個のコンピュータであり、並行的にプログラムを実行して動作する。具体的には、異変検知装置１は画像認識ニューラルネットワーク２１のコピーを機械学習装置９へ提供し、異変検知装置１が検査対象物の異変を検知する処理を実行している傍らで、機械学習装置９は画像認識ニューラルネットワーク２１の追加学習処理を実行することができる。異変検知装置１は、学習中の画像認識ニューラルネットワーク２１では無く、学習前の画像認識ニューラルネットワーク２１を用いて異変検知処理を継続する。
なお、機械学習装置９は画像認識ニューラルネットワーク２１を構成するための各種パラメータ、例えば画像認識ニューラルネットワーク２１の層数、ニューロン数、ニューラルネットワークの種類、重み係数等のパラメータを機械学習装置９へ送信することによって、画像認識ニューラルネットワーク２１のコピーを提供する。
【００８３】
異変検知装置１は、異変検知処理中、第１検出部２にて検出されたオブジェクト６の位置及び範囲と、第２検出部３にて検出されたオブジェクト６の位置とが整合しない場合、追加学習に係る処理を機械学習装置９に要求する。
【００８４】
図１４は、実施形態２に係る追加学習に係る処理手順を示すフローチャートである。異変検知装置１の演算部１１は、実施形態１と同様、撮像部１ａから画像データを取得し、オブジェクト６の検出に係る処理を実行する（ステップＳ１１１）。なお、画像データを取得する処理ブロックを省略してフローチャートを簡略化しているが、具体的な処理内容は実施形態１と同様である。
【００８５】
次いで、演算部１１は、オブジェクト６の検出に成功したか否かを判定する（ステップＳ１１２）。具体的には、演算部１１は、第１検出部２によってバウンディングボックス７にて特定されたオブジェクト６の位置及び範囲と、第２検出部３にて検出されたオブジェクト６の画素の位置とが整合している場合、オブジェクト６の検出に成功したと判定し、整合していない場合、オブジェクト６の検出に失敗したと判定する。本実施形態２では、第２検出部３にてオブジェクト６の画素が検出されているにも拘わらず、第１検出部２にてオブジェクト６の種類が検出できていない状態を、検出失敗の例として説明する。
【００８６】
オブジェクト６の検出に失敗していないと判定した場合（ステップＳ１１２：ＮＯ）、演算部１１は実施形態１と同様、オブジェクト６の寸法測定、良否判定に係る処理をステップＳ１１３及びステップＳ１１４で実行する。なお、良否判定時の処理のブロックを省略してフローチャートを簡略化しているが、具体的な処理内容は実施形態１と同様である。
【００８７】
ステップＳ１１２においてオブジェクト６の検出に失敗したと判定した場合（ステップＳ１１２：ＹＥＳ）、演算部１１は、現在の画像認識ニューラルネットワーク２１を通信部１８にて、機械学習装置９へ送信する（ステップＳ１１５）。具体的には、画像認識ニューラルネットワーク２１を構成するための各種パラメータを機械学習装置９へ送信する。
【００８８】
機械学習装置９は、異変検知装置１から送信された画像認識ニューラルネットワーク２１を追加学習対象として受信する（ステップＳ１１６）。
【００８９】
ステップＳ１１５の処理を終えた異変検知装置１は、学習用データの生成に係る処理を実行する（ステップＳ１１７）。
【００９０】
図１５は、学習用データの生成に係る処理手順を示すフローチャート、図１６及び図１７は、学習用データの生成方法を示す説明図である。まず演算部１１は、オブジェクト６の検出に失敗した撮像画像５を、図１６右図に示すように格子状に分割し、分割された各画像ブロックに対してオブジェクト６に関する情報を示す配列Ｙを割り当てる（ステップＳ１３１）。配列Ｙは、例えば下記式（１）で表される。ステップＳ１３１で割り当てられる配列の各変数の初期値は０である。
【００９１】
【数１】
2020031422.tif 000003
【００９２】
配列Ｙの変数Ｐは、画像ブロックにオブジェクト６が含まれているか否かを示す。図１７に示すように、Ｐ＝１はオブジェクト６が含まれていることを示し、Ｐ＝０はオブジェクト６が含まれていないことを示す。
変数Ｂｘ、Ｂｙは、図１７Ａに示すように、オブジェクト６の中心位置、例えば画像の重心位置のＸ座標、及びＹ座標を示す。座標系の取り方は特に限定されるものでは無いが、例えば図１７に示すように、各画像ブロックの左下の頂点を原点とし、撮像画像５の水平方向をＸ軸、垂直方向をＹ軸とする直交座標系を用いると良い。
変数Ｂｗ、Ｂｈは、オブジェクト６の幅及び高さを示す。
変数Ｃ１、Ｃ２、Ｃ３、…は、オブジェクト６の種類に対応している。例えば、Ｃ１は「埃」、Ｃ２は「髪」、Ｃ３は「へこみ」等に対応している。変数Ｃ１＝１は、オブジェクト６が「埃」であることを示し、変数Ｃ１＝０はオブジェクト６が「埃」で無いことを示している。他の変数Ｃ２、Ｃ３、…も同様である。なお、オブジェクト６の種類を示す変数は、新規のオブジェクト６の種類に対応できるよう、種類「未定」の変数を適宜数用意しておくと良い。
【００９３】
ステップＳ１３１の処理を終えた演算部１１は、第２検出部３の検出結果を参照して、各画像ブロックにおけるオブジェクト６の有無、位置及び寸法を特定する（ステップＳ１３２）。そして、演算部１１は、図１７Ａ及び図１７Ｂに示すように特定結果に従って、各画像ブロックに割り当てられた配列Ｙの変数Ｐ、Ｂｘ、Ｂｙ、Ｂｗ、Ｂｈに、該当する数値を代入する（ステップＳ１３３）。
なお、画像ブロックにオブジェクト６が含まれていない場合、配列Ｙの各変数は０となる。
【００９４】
次いで、演算部１１は、撮像画像５に対して公知の形状認識処理を実行することによって、種類が特定されていなかったオブジェクト６の種類を検出する（ステップＳ１３４）。例えば、演算部１１は、オブジェクト６のエッジを検出して所定の特徴量を算出し、記憶部１６が記憶する特徴量と比較することによって、類似の特徴量に対応するオブジェクト６の種類を特定することによって、オブジェクト６の種類を検出する。また、パターンマッチングによって、オブジェクト６の種類を特定しても良い。
【００９５】
そして、ステップＳ１３４の処理を終えた演算部１１は、オブジェクト６の種類の検出に成功したか否かを判定する（ステップＳ１３５）。成功したと判定した場合（ステップＳ１３５：ＹＥＳ）、演算部１１は、ステップＳ１３４の検出結果に応じて、変数Ｃ１、Ｃ２、Ｃ３…に、該当する数値を代入し（ステップＳ１３７）、学習用データの生成処理を終える。
【００９６】
ステップＳ１３５で失敗したと判定した場合（ステップＳ１３５：ＮＯ）、演算部１１は、操作部１ｃにてオブジェクト６の種類をユーザから受け付ける（ステップＳ１３６）。例えば、演算部１１は、問題となる撮像画像５を表示部１ｂに表示させると共に、オブジェクト６の検出に失敗した画像部分を指し示す指示画像を表示すると良い。例えば、第１検出部２にて検出されず、第２検出部３で検出されたオブジェクト６の画素群を囲む枠画像を撮像画像５に重畳させて表示すると良い。枠画像は一例であり、矢印画像等でも良い。
演算部１１は、想定されている複数の種類をユーザに提示し、ユーザによる種類の選択を受け付ける。また新規の種類である場合、演算部１１は、種類の名称の登録を受け付けと良い。演算部１１は、ユーザから新規の種類の名称を受け付け、種類「未定」の変数名を当該名称に変更登録する。
【００９７】
そして、演算部１１は、ステップＳ１３６で受け付けた内容に従って、変数Ｃ１、Ｃ２、Ｃ３…に、該当する数値を代入し（ステップＳ１３７）、学習用データの生成処理を終える。
上記処理によって、オブジェクト６の検出に失敗した画像データと、当該画像データに含まれるオブジェクト６の位置及び範囲並びに種類を示したデータとを組みとした学習用データを生成することができる。
【００９８】
ステップＳ１１７において学習用データの生成に係る処理を終えた演算部１１は、生成した学習用データをデータ蓄積部１７に蓄積する（ステップＳ１１８）。そして、演算部１１は、所定量の学習用データを蓄積したか否かを判定する（ステップＳ１１９）。所定量の学習用データが蓄積されていないと判定した場合（ステップＳ１１９：ＮＯ）、演算部１１は処理をステップＳ１１３へ戻し、異変検知処理及び学習用データの蓄積を継続する。所定量の学習用データが蓄積されたと判定した場合（ステップＳ１１９：ＹＥＳ）、演算部１１は、データ蓄積部１７に蓄積された学習用データを通信部１８にて機械学習装置９へ送信する（ステップＳ１２０）。
【００９９】
機械学習装置９は、異変検知装置１から送信された学習用データを受信し（ステップＳ１２１）、ステップＳ１１６にて受信した画像認識ニューラルネットワーク２１を、学習用データを用いて追加学習させる（ステップＳ１２２）。つまり、機械学習装置９は、認識不能であったオブジェクト６を含む撮像画像５の画像データが画像認識ニューラルネットワーク２１に入力された場合、当該オブジェクト６の位置及び範囲並びに種類を示すデータが出力されるように、学習用データを用いて、画像認識ニューラルネットワーク２１を追加学習させる。当該追加学習は、教師有り学習である。
【０１００】
次いで、機械学習装置９はステップＳ１２２にて追加学習された画像認識ニューラルネットワーク２１を異変検知装置１へ送信する（ステップＳ１２３）。異変検知装置１は、機械学習装置９から送信された追加学習済みの画像認識ニューラルネットワーク２１を通信部１８にて受信する（ステップＳ１２４）。そして、異変検知装置１の演算部１１は、追加学習前の画像認識ニューラルネットワーク２１を、追加学習済みの新しい画像認識ニューラルネットワーク２１に更新し（ステップＳ１２５）、処理をステップＳ１１１に戻す。
【０１０１】
実施形態２に係る異変検知システムによれば、画像認識ニューラルネットワーク２１及びオートエンコーダ３１を用いた画素単位でのオブジェクト６の検出に失敗した場合であっても、自動的に学習用データを蓄積し、画像認識ニューラルネットワーク２１を追加学習させることができる。
【０１０２】
具体的には、画像認識ニューラルネットワーク２１を用いてオブジェクト６の種類が検出されなかった場合、形状認識によりオブジェクト６の種類を検出し、画像認識ニューラルネットワーク２１を追加学習させることができる。
【０１０３】
また、形状認識処理でもオブジェクト６の種類が特定されなかった場合、ユーザからオブジェクト６の種類を受け付けることによって、追加学習用データを生成し、画像認識ニューラルネットワーク２１を追加学習させることができる。
【０１０４】
更に、本実施形態２によれば、オブジェクト６の検出ないし検査対象物の異変検知処理と、画像認識ニューラルネットワーク２１の追加学習とを並行的に実行することができる。従って、画像認識ニューラルネットワーク２１の学習処理中も、オブジェクト６の検出処理を継続することができる。
【符号の説明】
【０１０５】
１  異変検知装置
１ａ  撮像部
１ｂ  表示部
１ｃ  操作部
２  第１検出部
３  第２検出部
４  良否判定部
５  撮像画像
５ａ  特徴抽出画像
５ｂ  差分画像
６、６１、６２、６３  オブジェクト
７、７１、７２、７３  バウンディングボックス
９  機械学習装置
１１  演算部
１２  一時記憶部
１３  画像入力部
１４  出力部
１５  入力部
１６  記憶部
１６ａ  コンピュータプログラム
１７  データ蓄積部
１８  通信部
２１  画像認識ニューラルネットワーク
３１  オートエンコーダ
３１ａ  入力層
３１ｂ  出力層
３１ｃ  コンボリューション層
３１ｄ  デコンボリューション層
３２  差分データ生成部
４１  オブジェクト検出処理部
４２  寸法測定処理部
４３  良否判定処理部
【図１】
2020031422.tif 000004
【図２】
2020031422.tif 000005
【図３】
2020031422.tif 000006
【図４】
2020031422.tif 000007
【図５Ａ】
2020031422.tif 000008
【図５Ｂ】
2020031422.tif 000009
【図６】
2020031422.tif 000010
【図７】
2020031422.tif 000011
【図８】
2020031422.tif 000012
【図９】
2020031422.tif 000013
【図１０】
2020031422.tif 000014
【図１１】
2020031422.tif 000015
【図１２Ａ】
2020031422.tif 000016
【図１２Ｂ】
2020031422.tif 000017
【図１２Ｃ】
2020031422.tif 000018
【図１２Ｄ】
2020031422.tif 000019
【図１３】
2020031422.tif 000020
【図１４】
2020031422.tif 000021
【図１５】
2020031422.tif 000022
【図１６】
2020031422.tif 000023
【図１７Ａ】
2020031422.tif 000024
【図１７Ｂ】
2020031422.tif 000025
【手続補正書】
【提出日】令和3年2月4日(2021.2.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１２
【補正方法】変更
【補正の内容】
【請求項１２】
コンピュータに撮像画像に含まれるオブジェクトを検出して得られる情報を表示させるためのコンピュータプログラムであって、
前記コンピュータに、
前記撮像画像に含まれる前記オブジェクトの種類を検出する第１の方式にて前記オブジェクトを検出させ、
前記撮像画像に含まれる前記オブジェクトを画素単位で検出する第２の方式にて前記オブジェクトを検出させ、
前記第１の方式にて前記オブジェクトを検出して得られた情報と前記第２の方式にて前記オブジェクトを検出して得られた情報とに基づく情報を表示させ、
前記第１の方式による前記オブジェクトの検出を、前記撮像画像に含まれる前記オブジェクトの種類を出力する学習済みの画像認識ニューラルネットワークを用いて実行させ、
前記第２の方式による前記オブジェクトの検出を、前記撮像画像のデータの特徴が抽出された特徴抽出画像のデータを出力する学習済みオートエンコーダを用いて実行させる
処理を実行させるためのコンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
データ蓄積部１７は、記憶部１６と同様、ハードディスク、ＥＥＰＲＯＭ（登録商標）、フラッシュメモリ等の不揮発性メモリである。データ蓄積部１７は、検査対象物の画像データ、異変検知結果等のデータを記憶する。
【国際調査報告】
2020031422.tif 000026
2020031422.tif 000027