本発明の実施例は、ユーザ入力に基づいて生成された人工知能モデルを使用し、仮想欠陥画像を生成するためのコンピュータプログラム、方法、及び装置に関するものである。
一般的に、工場で生産された生産品に欠陥が存在するか否かに対する検収が必要である。最近、生産ラインの自動化など、コスト削減のための努力がなされており、これに伴い生産品の品質検収自動化に対する関心も高まっている。例えば、コンピュータビジョンを機械やロボット、プロセッサ、または品質制御に応用するマシンビジョン(machine vision)技術が急激に発展する傾向にある。
従来のマシンビジョン技術は人工知能を使用せず、単に生産品の画像(例えば写真)から基準となるテンプレートを抽出するか、またはテンプレートと比較する技術を含む、テンプレートマッチング(template matching)を使用した。一例として、従来のマシンビジョンは、基準となる画像と生産品画像の画素値とを比較し、画素値差がどの範囲であれば欠陥なのかについてのルール(rule)をアルゴリズム化したり、生産品画像の特定部分の長さを測定し、長さがどの範囲であれば、欠陥なのかについてのルールをアルゴリズム化する方式であった。つまり、人工知能を使用しないマシンビジョンの場合、欠陥の場合の数を全てアルゴリズム化しなければならない煩わしさが大きく、規則のない非定型欠陥(すなわち、ルール(rule)を定められない欠陥)は検出しにくい問題があった。
一方、最近人工知能に関する技術が発展しつつ、人工知能をマシンビジョンに適用し、ルールを定められない非定型欠陥も人工知能が判別してくれる技術に対する関心が高まっている。
上述のように生産品の欠陥を検出する人工知能モデルを学習させようとする場合、学習データのために、欠陥を有する多数の生産品画像(例えば写真)が必要である。例えば、学習データが多いほど、欠陥検出人工知能モデルの性能が向上する可能性がある。
ところが一般的な生産ラインであれば、欠陥を有する生産品画像(以下、欠陥画像)を多く取得することはかなり難しい。特に、生産ラインの初期には欠陥画像の個数が極めて少なく、有意な欠陥検出人工知能モデルを学習させることができず、生産ラインの初期には、さらに前記人工知能モデルを使用することができない場合がある。
一方、少数の欠陥画像(すなわち、実在する欠陥画像)を若干変形することで学習データを増やす場合、既存の欠陥画像を変形する方式であるため、これまで全く存在しなかった新たな欠陥画像を生成することは不可能である。また、生産品によって発生しうる特徴的な欠陥や精巧な欠陥は、規則を示すことができず、存在しない新たな欠陥を有する生産品画像を生成することは非常に難しい。
本発明は、前記のような問題点を改善するために案出されたものであり、ユーザ入力に基づいて生成された人工知能モデルを用いて、仮想欠陥画像を生成するためのコンピュータプログラム、方法、及び装置することを目的とする。
しかし、このような課題は例示的なものであり、これによって本発明の範囲が限定されるものではない。
本発明の一実施例に係る電子装置の動作方法において、仮想欠陥画像生成方法は、少なくとも第1生産品に対する第1正常画像、欠陥画像、及びユーザ入力に基づいて仮想欠陥画像生成モデルを学習する動作と、前記学習された仮想欠陥画像生成モデルを用いて、第2生産品の第2正常画像から仮想欠陥画像を生成する動作とを含むことができる。前記仮想欠陥画像を生成する動作は、既定の形状の欠陥領域に関する情報を用いて、前記仮想欠陥画像生成モデルを介して前記仮想欠陥画像を生成する動作と、ユーザが欠陥を発生させる領域を直接描画する入力に基づいた手動領域情報を用いて、前記仮想欠陥画像生成モデルを介して前記仮想欠陥画像を生成する動作を含むことができる。
一実施例によれば、前記第1生産品と前記第2生産品は、互いに全く同じ種類であるか、または互いに同じ種類で、規格またはバージョンが異なる場合がある。
一実施例によれば、前記第1正常画像と前記第2正常画像は同じであるか、または互いに異なることができる。
一実施例によれば、前記仮想欠陥画像生成モデルを学習する動作は、前記第1生産品に対して発生可能な欠陥タイプを設定する動作を含むことができる。
一実施例によれば、前記仮想欠陥画像を生成する動作は、前記設定された欠陥タイプのうち少なくとも一部に対して、前記少なくとも一部の欠陥タイプのそれぞれが発生することができる欠陥領域に関する情報を、ユーザ入力に基づいて入力される動作を含むことができる。
一実施例によれば、前記仮想欠陥画像生成モデルを学習する動作は、前記第1生産品を含む複数の互いに異なるバージョンの生産品に対する第1正常画像及び欠陥画像に基づいてデータベースを収集及び前処理を実行する動作と、前記複数の互いに異なるバージョンの生産品のうち一部生産品のみを選択して前記仮想欠陥画像生成モデルを学習する動作を含むことができる。
本発明の一実施例に係るコンピュータプログラムは、コンピュータを使用して前述した動作を実行させるためにコンピュータ読み取り可能な記憶媒体に記憶されることができる。
本発明の一実施例に係る非一時的(non-transitory)コンピュータ読み取り可能な(computer-readable)記憶(storage)媒体(medium)は、前述した動作を実行するための1つまたは複数のプログラムを記憶することができる。
前述したもの以外の他の側面、特徴、利点が、以下の図面、特許請求の範囲及び発明の詳細な説明から明確になるであろう。
上述したように構成された本発明の一実施例に係る装置、方法、及びコンピュータプログラムは、ユーザ入力に基づいて、ユーザの必要に応じて様々な種類の生産品に対する仮想欠陥画像生成モデルを学習することができ、学習された仮想欠陥画像生成モデルを用いて、前記ユーザの必要に応じた生産品の仮想欠陥画像を生成することができる。
また、既存の欠陥画像を変形させるのではなく、正常画像から新たな欠陥を有する仮想欠陥画像を新たに生成することができる。
また、様々な種類の欠陥を1回の学習で生成することができる。
また、ユーザ入力に基づいて行われる一度の学習で、自動モード(auto mode)での仮想欠陥画像生成と手動モード(manual mode)での仮想欠陥画像生成、両方が可能な一つの仮想欠陥画像生成モデルを学習することができる。
また、種類は同じであるが、細部の特徴が異なる生産品を一つのプロジェクトに集めて一度で学習することができる。
また、本発明の一実施例に係る装置、方法、及びコンピュータプログラムは、生成モデル学習時に、複数の製品や複数の欠陥タイプの中から、学習に使用するもののみを選択するユーザ入力に基づいて、様々なモデルを学習することができる。
もちろん、このような効果によって本発明の範囲が限定されるものではない。
本発明の一実施例に係る仮想欠陥画像を生成するための電子装置10の機能的な構成の例を示す。
本発明の一実施例に係る仮想欠陥画像生成過程とその使用例を含む、全体的な過程S10の例を示す。
本発明の一実施例に係る仮想欠陥画像を生成するためのプログラム16の機能的な構成の例を示す。
本発明の一実施例に係る、自動モード及び手動モードにおける生成モジュール22の動作の例を示す。
本発明の一実施例に係る仮想欠陥画像を生成するための電子装置10の動作の例を示す。
本発明の一実施例に係る仮想欠陥画像生成モデルを学習するための電子装置10の動作の例を示す。
本発明の一実施例に係る仮想欠陥画像を生成するためのプログラム16の一画面A7の例を示す。
本発明の一実施例に係る仮想欠陥画像生成モデルを学習するためにデータベースを構築する電子装置10の動作の例を示す。
1つまたは複数のバージョンの生産品の例を示す。
本発明の一実施例に係るデータベースを構築する画面の例を示す。
本発明の一実施例に係るデータベースを構築する画面の例を示す。
本発明の一実施例に係るデータベースを構築する画面の例を示す。
本発明の一実施例に係る仮想欠陥画像生成モデルの学習のためにデータベースに前処理を実行する電子装置10の動作の例を示す。
本発明の一実施例に係る前処理を実行するための電子装置10の画面の例を示す。
本発明の一実施例に係る前処理を実行するための電子装置10の画面の例を示す。
本発明の一実施例に係る前処理を実行するための電子装置10の画面の例を示す。
本発明の一実施例に係る前処理を実行するための電子装置10の画面の例を示す。
本発明の一実施例に係る前処理を実行するための電子装置10の画面の例を示す。
本発明の一実施例に係る仮想欠陥画像生成モデルを学習するための画面A19の例を示す。
本発明の一実施例に係る仮想欠陥画像を生成するための電子装置10の動作の例を示す。
本発明の一実施例に係る自動モード(auto mode)生成を実行するための電子装置10の画面の例を示す。
本発明の一実施例に係る自動モード(auto mode)生成を実行するための電子装置10の画面の例を示す。
本発明の一実施例に係る自動モード(auto mode)生成を実行するための電子装置10の画面の例を示す。
本発明の一実施例に係る自動モード(auto mode)生成を実行するための電子装置10の画面の例を示す。
本発明の一実施例に係る自動モード(auto mode)生成を実行するための電子装置10の画面の例を示す。
本発明の一実施例に係る自動モード(auto mode)生成を実行するための電子装置10の画面の例を示す。
自動モードで生成された仮想欠陥画像の例を示す。
本発明の一実施例に係る手動モード(manual mode)生成を実行するための画面の例を示す。
本発明の一実施例に係る手動モード(manual mode)生成を実行するための画面の例を示す。
本発明の一実施例に係る手動モード(manual mode)生成を実行するための画面の例を示す。
手動モードで生成された仮想欠陥画像の例を示す。
本発明の一実施例に係る仮想欠陥画像を生成する際に自動モード生成が有用な場合と、手動モード生成が有用な場合の例を示す。
本発明の一実施例に係る仮想欠陥画像を生成する際に自動モード生成が有用な場合と、手動モード生成が有用な場合の例を示す。
本発明の一実施例に係る仮想欠陥画像を生成する際に自動モード生成が有用な場合と、手動モード生成が有用な場合の例を示す。
発明の実施のための形態
本発明は、様々な変換を加えることができ、様々な実施例を有することができるため、特定の実施例を図面に例示し、詳細に説明しようとする。本発明の効果及び特徴とそれらを達成する方法は、図面と共に詳細に後述する実施例を参照することで明らかになるであろう。しかし、本発明は、以下で開示される実施例に限定されるものではなく、様々な形態で実装されてもよい。
以下、添付の図面を参照して本発明の実施例を詳細に説明するものとし、図面を参照して説明するとき、同一又は対応する構成要素は同一の図面符号を付与し、これに対する重複の説明は省略する。
以下の実施例において、第1、第2などの用語は限定的な意味ではなく、1つの構成要素を他の構成要素と区別する目的で用いられた。
以下の実施例において、単数の表現は、文脈上明らかに異なる意味を持たない限り、複数の表現を含む。
以下の実施例において、含むまたは有するなどの用語は、明細書上に記載された特徴、または構成要素が存在することを意味するものであり、1つまたは複数の他の特徴または構成要素が追加される可能性を予め排除するものではない。
図面では、説明の便宜上、構成要素の大きさが誇張または縮小されてもよい。例えば、図面に示された各構成の大きさ及び厚さは説明の便宜上任意に示しているため、本発明が必ずしも示されたものに限定されるものではない。
以下の実施例において、領域、構成要素、ブロック、モジュールなどが接続されているとした場合、構成要素、ブロック、モジュールが直接接続されている場合だけでなく、構成要素、ブロック、モジュールの間に他の構成要素、ブロック、モジュールが介在され、間接的に接続された場合も含む。
図1は、本発明の一実施例に係る仮想欠陥画像を生成するための電子装置10の機能的な構成の例を示す。
図1を参照すると、電子装置10は、通信モジュール11、プロセッサ12、表示装置13、入力装置14、メモリ15を含むことができる。メモリ15は、仮想欠陥画像生成モデルを学習することができ、学習された仮想欠陥画像生成モデルを用いて正常画像から仮想欠陥画像を生成することができるプログラム16を記憶することができる。
したがって、電子装置10は、プロセッサ12がプログラム16を実行することによって仮想欠陥画像を生成することができる装置である。電子装置10は、例えば、携帯用通信装置(例えば、スマートフォン、ノートパソコン)、コンピュータ装置、タブレットPCなどを含むことができる。しかしながら、電子装置10は、前述した機器に限定されない。
また、電子装置10は、前述した構成要素に限定されず、電子装置10には他の構成要素を追加されるか、一部の構成要素を省略されることができる。
通信モジュール11は、電子装置10と外部電子装置(例えば、他の電子装置、またはサーバ)との間の有線または無線通信チャネルの確立、及び確立された通信チャネルを介した通信の実行を支援することができる。通信モジュール11は、プロセッサ12(例えばアプリケーションプロセッサ)とは独立して運営される、有線通信または無線通信をサポートする1つまたは複数のコミュニケーションプロセッサを含むことができる。一実施例によれば、通信モジュール11は、無線通信モジュール(例えば、セルラー通信モジュール、近距離無線通信モジュール、またはGNSS(global navigation satellite system)通信モジュール)または有線通信モジュール(例えば、LAN(local area network)通信モジュール、または電力線通信モジュール)を含み、その中で該当する通信モジュールを使用して、近距離通信ネットワーク(例えば、ブルートゥース(登録商標)、WiFi direct、またはIrDA(infrared data association))または遠距離通信ネットワーク(例えば、セルラーネットワーク、インターネット、またはコンピュータネットワーク(例えば、LANまたはWAN)を介して外部電子装置と通信することができる。上述した様々な種類の通信モジュール11は、1つのチップで実装されるか、または、それぞれ別々のチップで実装されることができる。
本発明の一実施例に係る電子装置10の仮想欠陥画像生成動作の少なくとも一部は、通信モジュール11を介したサーバ(図示せず)との無線通信チャネルを介して実行されてもよい。例えば、電子装置10がユーザ入力に基づいて仮想欠陥画像生成モデルを学習し、仮想欠陥画像を生成する過程で、サーバ(図示せず)と少なくとも一部のデータの送受信を行うことができる。
プロセッサ12は、例えば、ソフトウェア(例えば、プログラム16)を駆動してプロセッサ12に接続された電子装置10の少なくとも1つの他の構成要素(例えば、ハードウェアまたはソフトウェア構成要素)を制御することができ、様々なデータ処理及び演算を実行することができる。プロセッサ12は、他の構成要素(例えば、入力装置14)から受信した命令またはデータをメモリ15(例えば、揮発性メモリ)にロードして処理し、結果データをメモリ15(例えば、不揮発性メモリ)に記憶することができる。
メモリ15は、電子装置10の少なくとも1つの構成要素(例えば、プロセッサ12)によって使用される様々なデータ、例えばソフトウェア(例えば、プログラム16)及び、それに関連する命令に対する入力データまたは出力データを記憶することができる。メモリ15は、揮発性メモリまたは不揮発性メモリを含むことができる。
本発明の一実施例によれば、メモリ15は、少なくともユーザ入力に基づいて仮想欠陥画像生成モデルを学習し、学習された仮想欠陥画像生成モデルを介して仮想欠陥画像を生成することができるプログラム16を記憶することができる。
プログラム16はメモリ15に記憶されるソフトウェアであり、プログラム16は1つまたは複数のプログラムを含むことができる。例えば、プログラム16は、図2及び図3で後述するように、仮想欠陥画像生成モデルを学習する開発モジュール21と、学習された仮想欠陥画像生成モデルを用いて仮想欠陥画像を生成する生成モジュール22を含むことができ、開発モジュール21と生成モジュール22は、下位モジュールを含むことができるように、複数のモジュールを含むことができる。
表示装置13は、電子装置10のユーザに情報を視覚的に提供するための装置であり、例えば、ディスプレイ及びディスプレイを制御するための制御回路を含むことができる。一実施例によれば、表示装置13はタッチ回路(touch circuitry)を含むことができる。
本発明の一実施例によれば、表示装置13は、プログラム16の実行に対応する画面を表示することができる。表示装置13は、仮想欠陥画像生成モデルを学習し、仮想欠陥画像を生成するために使用されるユーザ入力を受信するための、GUI(graphic user interface)を表示することができる。
入力装置14は、電子装置10の少なくとも1つの構成要素(例えば、プロセッサ12)に使用される命令またはデータを電子装置10の外部(例えば、ユーザ)から受信することができる。入力装置14は、例えば、マウス、キーボード、タッチスクリーン、ボタン、マイクなどを含むことができる。
図2は、本発明の一実施例に係る仮想欠陥画像生成過程S11とその使用例を含む、全体的な過程S10の例を示す。
図2を参照すると、本発明の一実施例に係る全体的な過程S10は、学習データE1を用いて仮想欠陥画像生成モデルを学習する過程S1、学習された生成モデルE2用いて仮想欠陥画像を生成する過程S2、生成された仮想欠陥画像E3を学習データとして用いて欠陥検出モデルを学習する過程S3、学習された欠陥検出モデルE4を用いて生産品の欠陥を検出する過程S4を含む。
図2において、四角ブロックは、例えばプロセッサ12の実行または動作を表すことができ、楕円ブロックは、例えば、前記動作に用いられるか、前記動作によって算出される要素(例えば、ファクター(factor)、ツール、モデル、データ)を表すことができる。
なお、本文書において仮想欠陥画像は、生産品の正常画像に仮想欠陥スケッチを加えて生成された、欠陥を有する仮想生産品画像を示す。本文書で仮想欠陥画像生成モデルとは、正常画像から仮想欠陥画像を生成することができる人工知能モデルで、少なくともプログラム16に対するユーザ入力に基づいて学習することができる。本文書で欠陥検出モデルとは、生成された仮想欠陥画像を学習データとして用いて、実際の生産品画像から生産品の欠陥有無を検出することができる人工知能モデルである。欠陥検出モデルも、少なくともプログラム16に対するユーザ入力に基づいて生成されることができる。
本発明の一実施例に係る電子装置10(例えば、プロセッサ12)は、例えば、仮想欠陥画像生成モデル学習動作S1、仮想欠陥画像生成動作S2、欠陥検出モデル学習動作S3を実行することができる。S3の結果として生成された欠陥検出モデルE4は、例えば、実際の生産ラインで生産品の欠陥を検出S4するために使用することができる。
プログラム16は、学習データE1から仮想欠陥画像生成モデルを学習してS1、仮想欠陥画像生成モデルE2を出力する開発モジュール21と、仮想欠陥画像生成モデルE2を用いて仮想欠陥画像を生成S2することにより、仮想欠陥画像E3を出力する生成モジュール22を含むことができる。さらに、プログラム16は、前記出力された仮想欠陥画像E3から欠陥検出モデルを学習しS3、欠陥検出モデルE4を出力する検出モジュール(または分類モジュール)(図示せず)をさらに含むことができる。開発モジュール21と生成モジュール22の詳細な説明は、以下の図面で後述する。
一実施例によれば、S1、S2、S3、S4は、すべて異なる人工知能に基づいた動作であってもよい。例えば、ユーザ入力に基づいた学習データE1を用いて仮想欠陥画像生成モデルを学習S1するための人工知能モデル(図示せず)が、プログラム16に組み込まれていてもよい。また、仮想欠陥画像を生成する動作S2は、S1の結果として生成された人工知能モデルE2を介して実行されることができる。また、S2の結果生成される仮想欠陥画像E3を学習データとして用いて欠陥検出モデルを学習S3する人工知能モデル(図示せず)がプログラム16に組み込まれていてもよい。また、生産品の欠陥を検出する動作S4は、S3の結果として生成された人工知能モデルE4を介して実行されることができる。
本発明の一実施例によれば、生成モジュール22が仮想欠陥画像を生成する過程S2は、自動モードで生成する過程S221と手動モードで生成する過程S222を含む。
自動モードで生成する過程S221は、正常画像及び既定の欠陥領域に関する情報を用いて、仮想欠陥画像生成モデルE2を介して自動的に仮想欠陥画像を生成する過程である。
手動モードで生成する過程S222は、正常画像及びユーザが仮想欠陥を発生させる領域を直接描画する入力に基づいた手動領域情報を用いて、前記仮想欠陥画像生成モデルE2を介して仮想欠陥画像を生成する過程である。
一実施例によれば、1つの(同じ)仮想欠陥画像生成モデルE2を用いて、自動モード生成S221と手動モード生成S222の両方を実行することができる。
一方、自動モード生成S221と手動モード生成S222は、順序がある過程ではなく、選択的な過程であってもよい。したがって、プログラム16(またはプロセッサ12)に対するユーザ入力によって、1つの(同じ)仮想欠陥画像生成モデルE2を用いて自動モードで仮想欠陥画像を生成することもでき、手動モードで仮想欠陥画像を生成することもできる。もちろん、自動モードで仮想欠陥画像を生成して記憶、手動モードで仮想欠陥画像を生成して記憶、自動モード及び手動モードで生成された仮想欠陥画像の両方を用いて欠陥検出モデルを学習S3することもできる。
図3は、本発明の一実施例に係る仮想欠陥画像を生成するためのプログラム16の機能的な構成の例を示す。
図3を参照すると、プログラム16は、開発モジュール21及び生成モジュール22を含むことができる。図2で前述したように、開発モジュール21は、仮想欠陥画像生成モデルを学習(または開発)することができ、生成モジュール22は、学習された仮想欠陥画像生成モジュールを用いて仮想欠陥画像を生成することができる。図示されてはいないが、プログラム16は、生成された仮想欠陥画像を用いて欠陥検出モデルを学習することができる検出モジュール(または分類モジュール)をさらに含むことができる。
開発モジュール21及び生成モジュール22は、ユーザ入力に基づいて動作を実行することができる。例えば、開発モジュール21及び生成モジュール22は、ユーザ入力に基づいて予め設定された動作、または予め記憶された(例えば、プログラミングされた)動作を実行することができる。開発モジュール21及び生成モジュール22は、ユーザ入力に基づいて動作するため、ユーザの必要に応じて(例えば、様々な種類の生産品に)プログラム16を使用することができ、プログラム16は特定分野ではなく、様々な分野で使用することができる。
本発明の一実施例によれば、開発モジュール21は、データベースモジュール211、前処理モジュール212、トレーニングモジュール213を含むことができる。しかしながら、これは一例に過ぎず、各モジュールの機能の少なくとも一部は統合して構成されてもよく、または各モジュールはより下位のモジュールで構成されてもよい。
データベースモジュール211は、仮想欠陥画像生成モデルを学習するためのデータベースを構築するために、データベースを収集及び記憶(または一時的に記憶)することができる。
データベースモジュール211は、前記データベースとして、例えば生産品の識別情報(例えば、名前)の入力を記憶し、仮想欠陥画像生成モデルを学習するために、1つまたは複数の正常画像及び欠陥画像をロード、欠陥タイプに関する情報を入力して記憶することができる。また、データベースモジュール211は、前記ロードされた正常画像及び欠陥画像に対して欠陥タイプをラベル付けすることができる。
なお、本文書において正常画像とは、正常と判定された実際の生産品の画像を示す。本明細書において欠陥画像とは、欠陥を有すると判定された実際の生産品の画像を示す。本文書における欠陥タイプとは、生産品が有することができる欠陥の種類であり、ユーザ入力によってリスト(list)されることができる。例えば、プログラム16(またはプロセッサ12)は、ユーザから欠陥タイプを入力されリスト化、例えば欠陥タイプ情報を記憶することができる。欠陥タイプは、例えば、曲げ、傷、異物(例えば、汚れや汚染)、特定の色を有する異物など多様に存在することができる。
データベースモジュール211の動作に関する詳細な説明は、図8及びその以下で詳細に後述する。
前処理モジュール212は、仮想欠陥画像生成モデルを学習するために、前記収集されたデータベースに対して前処理を実行することができる。
前処理モジュール212は、前記前処理として、例えば、ロードされた1つまたは複数の正常画像のうち代表画像を設定し、ロードされた1つまたは複数の正常画像及び欠陥画像を前記代表画像基準で整列し、代表画像上に各欠陥タイプが生じ得る欠陥領域に関する情報を入力されて記憶することができる。
前処理モジュール212の動作に関する詳細な説明は、図13及びその以下で詳細に後述する。
トレーニングモジュール213は、前記データベース及び前記前処理に基づいて仮想欠陥画像生成モデルを学習(またはトレーニング)することができる。トレーニングモジュール213は、例えば、前記整列された1つまたは複数の正常画像及び欠陥画像、前記ラベル付けに関する情報と、前記欠陥領域に関する情報を用いて前記学習またはトレーニングを実行することができる。
本発明の一実施例によれば、生成モジュール22は自動モードモジュール221、手動モードモジュール222を含むことができる。しかしながら、これは一例に過ぎず、各モジュールの機能の少なくとも一部は統合して構成されてもよく、または各モジュールはより下位のモジュールで構成されてもよい。
一実施例によれば、自動モードモジュール221及び手動モードモジュール222は、機能上の区分(またはモードの区分、またはアルゴリズム上の区分)に過ぎない可能性がある。一実施例によれば、開発モジュール21で生成された1つの仮想欠陥画像生成モデルを用いて自動モード生成動作S221と手動モード生成動作S222の両方を実行することができる。一例として、自動モードでは、開発モジュール21に記憶されたスケッチ生成機223(図4参照)をさらに用いて自動モード生成動作S221を実行することができる。
一実施例によれば、生成モジュール22は、自動モードモジュール221を介して正常画像、既定の欠陥領域に関する情報、及び開発モジュール21から出力された仮想欠陥画像生成モデルE2を用いて、仮想欠陥画像を生成することができる。
また、生成モジュール22は、手動モードモジュール222を介して、正常画像、ユーザが欠陥を発生させる領域を直接描画する入力、及び前記仮想欠陥画像生成モデルE2を用いて、仮想欠陥画像を作成できる。
一方、生成モジュール22で使用される第2正常画像は、開発モジュール21で使用される第1正常画像と同じでもよいが、異なっていてもよい。これについては、図5及びその以降の説明で詳細に後述する。
一方、自動モード及び手動モードにおける生成モジュール22の各動作の一例の詳細な説明は、図4で後述する。
図4は、本発明の一実施例に係る、自動モード及び手動モードにおける生成モジュール22の動作の例を示す。
図4を参照すると、生成モジュール22は自動モードまたは手動モードで動作することができる。自動モードと手動モードは順序付きの過程ではなく、選択的な過程である。したがって、プログラム16(またはプロセッサ12)に対するユーザ入力によって、1つの仮想欠陥画像生成モデルを用いて自動モードで仮想欠陥画像(VDI)を生成することもでき、手動モードで仮想欠陥画像(VDI)を生成することもできる。もちろん、手動モードで仮想欠陥画像(VDI)を作成して記憶、自動モードで仮想欠陥画像(VDI)を作成して記憶した後、生成した仮想欠陥画像(VDIs)をすべて使用して欠陥検出モデルを学習することもできる。
本発明の一実施例によれば、開発モジュール21で学習された同一の仮想欠陥画像生成モデルが、自動モードと手動モードの両方で使用されることができる。すなわち、一つの仮想欠陥画像生成モデルが、自動モードで仮想欠陥画像(VDI)を生成してもよいし、手動モードで仮想欠陥画像(VDI)を生成してもよい。
本発明の一実施例によれば、自動モードでスケッチ生成機223は、既定の欠陥領域情報と仮想欠陥画像生成モデルを用いて仮想欠陥スケッチVDS1を生成することができる。スケッチ生成機223は、例えば、生成モジュール22に含まれる1つのロジック、アルゴリズム、人工知能モデル、またはモジュールであることができる。
具体的に、仮想欠陥画像生成ステップS2のうち、自動モードでは、各欠陥タイプごとに発生可能な欠陥領域を予め指定された(例えば、プログラムされた)所定の形状に設定することができる。例えば、自動モードでユーザは、生産品の正常画像上に、予め指定された所定の形状(例えば、直線、四角の境界、円形の境界、四角形の面積(area)、円形の面積)に欠陥領域を設定することができる。このようにして設定された欠陥領域を前記設定された欠陥領域情報と呼ぶことができる。
自動モードで生成モジュール22(例えば、スケッチ生成機223)は、前記既定の欠陥領域情報と学習された仮想欠陥画像生成モデルを用いて仮想欠陥スケッチVDS1を生成することができる。スケッチ生成機223は、既定の欠陥領域(例えば、直線、四角形の縁、円形の境界、四角形の面積(area)、円形の面積)内で、仮想欠陥画像生成モデルを介して、自由にまたは自動的に仮想欠陥スケッチVDS1を作成することができる。
仮想欠陥スケッチVDS1は、生産品の画像が除去された、仮想欠陥のみ存在するスケッチといえる。仮想欠陥スケッチVDS1は、形状だけでなく、その位置に関する情報、欠陥タイプに関する情報も一緒に含むことができる。図4は、仮想欠陥スケッチ(VDS)の例を示す。
その後、画像生成機224は、仮想欠陥スケッチVDS1を正常画像OIに加えて(例えば、重複または合成処理によって)、仮想欠陥画像VDIを生成することができる。
本発明の一実施例によれば、手動モードで生成モジュール22は、ユーザが仮想欠陥を生成させる領域を直接描画する(すなわち、スケッチする)入力に基づいた手動領域情報と、前記同じ仮想欠陥画像生成モデルを用いて、仮想欠陥スケッチVDS2を作成することができる。手動モードでは、ユーザが仮想欠陥を作成する手動領域を直接スケッチするため、自動モードのように欠陥領域情報を設定される必要はない。したがって、手動モードでは、欠陥領域情報が使用されなくてもよい。
また、手動モードでは、ユーザが直接スケッチした手動領域に対応する仮想欠陥スケッチVDS2を生成するため、スケッチ生成機223が不要である。したがって、手動モードでは、スケッチ生成機223を使用されない可能性がある。
一方、ユーザは、手動領域をスケッチする際に、前記手動領域に発生させる欠陥の種類である欠陥タイプを指定することができる。したがって、手動領域情報は、例えば、欠陥タイプ情報を含むことができたり、または欠陥タイプ情報と連動またはマッチングされることができる。
自動モードで生成モジュール22は、前記手動領域情報と仮想欠陥画像生成モデルを用いて、前記手動領域情報に対応する仮想欠陥スケッチVDS2を生成することができる。仮想欠陥スケッチVDS2は、生産品の画像が除去された、仮想欠陥のみ存在するスケッチといえる。仮想欠陥スケッチVDS2は、形状だけでなく、その位置に関する情報、欠陥タイプに関する情報も一緒に含むことができる。
その後、画像生成機224は、仮想欠陥スケッチVDS2を正常画像OIに加えて(例えば、重複または合成処理によって)、仮想欠陥画像VDIを生成することができる。画像生成機224の動作は、自動モードと手動モードとで共通であってもよい。
図5は、本発明の一実施例に係る仮想欠陥画像を生成するための電子装置10の動作の例を示す。図5の動作は、プロセッサ12によってプログラム16を介して実行されることができる。
図5を参照すると、S21において、プロセッサ12は、開発モジュール21を介して、少なくとも生産品の第1正常画像、欠陥画像、及びユーザ入力に基づいて仮想欠陥画像生成モデルを学習することができる。S22において、プロセッサ12は、生成モジュール22を介して学習された仮想欠陥画像生成モデルを用いて、第2正常画像から仮想欠陥画像を生成することができる。S23において、プロセッサ12は、生成モジュール22を介して、生成された仮想欠陥画像をメモリ15に記憶することができる。記憶された仮想欠陥画像は、例えば、欠陥検出モデルを学習するために学習データとして使用することができる。
生成モデル学習ステップS21において(または開発モジュール21で)使用される第1正常画像は、仮想欠陥画像生成ステップS22で(または生成モジュール22で)使用される第2正常画像である。同じでも異なっていてもよい。
一例として、S21において、開発モジュール21は、仮想欠陥画像生成モデルを学習するために、生産品の第1正常画像及び前記生産品の欠陥画像が必要である。したがって、生産品の正常画像及び欠陥画像の数量が多少(例えば、数~数十枚以上、ただし、これに限定されない)確保された場合に、前記生産品の正常画像が開発モジュール21で第1正常画像として使用されることができる。
これに対して、S22において生成モジュール22は欠陥画像を必要としない。生成モジュール22は、仮想欠陥画像生成モデルを用いて正常画像(すなわち、第2正常画像)から完全な仮想の欠陥画像(すなわち、仮想欠陥画像)を新たに生成するためのモジュールである。したがって、生成モジュール22で使用される第2正常画像は、開発モジュール21でロードされる第1正常画像と必ずしも同じである必要はない。
以下において、第1正常画像とは、生成モデル学習ステップS21において(または開発モジュール21において)学習データとして使用される正常画像を指すこととする。以下において、第2正常画像とは、仮想欠陥画像生成ステップS22において(または生成モジュール22において)仮想欠陥画像生成の基礎となる正常画像を指すこととする。
一実施例によれば、第1正常画像と第2正常画像が互いに同じであることができる。この実施例の場合、第1正常画像の生産品と第2正常画像の生産品は当然同じ生産品である。
別の実施例によれば、同じ生産品の異なる第1正常画像と第2正常画像を使用することができる。すなわち、同じ種類の同じバージョンの生産品の複数の正常画像のうち、互いに異なる正常画像をそれぞれ第1正常画像と第2正常画像として使用することができる。
別の実施例によれば、広い意味の種類は互いに同一であるが、細部の特徴(例えば、規格またはバージョン)が互いに異なる第1生産品と第2生産品がある場合、第1生産品の正常画像が第1正常画像として使用され、第2生産品の正常画像が第2正常画像として使用されることができる。したがって、欠陥画像がないか、または非常に少ない第2生産品の仮想欠陥画像を生成したい場合、欠陥画像が十分に存在する第1生産品を用いて仮想欠陥画像生成モデルを学習した後、前記学習された仮想欠陥画像生成モデルを用いて、第2生産品の正常画像(すなわち、第2正常画像)から第2生産品の仮想欠陥画像を生成することができる。
図6は、本発明の一実施例に係る仮想欠陥画像生成モデルを学習するための電子装置10の動作の例を示す。図6の動作は、S21の具体例であってもよく、プロセッサ12によって実行されることができ、プログラム16の開発モジュール21を介して実行されることができる。
図6を参照すると、S211において、プロセッサ12は、開発モジュール21(例えば、データベースモジュール211)を介してデータベースを収集及び記憶(または一時的に記憶)することができる。これは、仮想欠陥画像生成モデルを学習するためのデータベースを構築するためのものである。S211の詳細な動作の説明は、図8及びその以下で詳細に後述する。
S212において、プロセッサ12は、開発モジュール21(例えば、前処理モジュール212)を介して、前記収集されたデータベースに対して前処理(preprocess)を実行することができる。前記前処理は、仮想欠陥画像生成モデルを学習するための前処理である。S212の詳細な動作の説明は、図13及びその以下で詳細に後述する。
S213において、プロセッサ12は、開発モジュール21(例えば、トレーニングモジュール213を介して、前記データベース及び前記前処理に基づいて仮想欠陥画像生成モデルを学習(またはトレーニング)することができる。
図7は、本発明の一実施例に係る仮想欠陥画像を生成するためのプログラム16の一画面A7の例を示す。
図7を参照すると、プログラム16が実行されると、プロセッサ12は、仮想欠陥画像生成モデルに対する新たなプロジェクト(new project)を生成するための画面A7を表示するように表示装置13を制御することができる。画面A7は、仮想欠陥画像を生成するためのアイコン71と、生成された仮想欠陥画像を用いて欠陥検出モデルを学習するためのアイコン72とを含むことができる。例えば、プロセッサ12は、仮想欠陥画像を生成するためのアイコン71に対するユーザ入力に基づいて、プログラム16(またはプロセッサ12、メモリ15)の下位モジュールである開発モジュール21に入るための開発機アイコン73及び他の下位モジュールである生成モジュール22に入るための生成機アイコン74とを表示することができる。欠陥検出モデルを学習するためのアイコン72は、検出モジュール(または分類モジュール)(図示せず)に対応することができる。
プロセッサ12が開発機アイコン73に対するユーザ入力を受信すると、開発モジュール21を介して仮想欠陥画像生成モデルを学習するための過程S1に入ることができる。例えば、開発モジュール21は、仮想欠陥画像生成モデルを学習するプロジェクトを生成することができる。前記プロジェクトにおいて、仮想欠陥画像生成モデル学習過程S1を介して、開発モジュール21は、学習された仮想欠陥画像生成モデルE2を出力及び記憶することができる。
プロセッサ12が生成機アイコン74に対するユーザ入力を受信すると、生成モジュール22を介して、前記記憶された仮想欠陥画像生成モデルE2を用いた仮想欠陥画像生成過程S2に入ることができる。例えば、生成モジュール22は、正常画像(第2正常画像)から仮想欠陥画像を生成するプロジェクトを生成することができる。前記プロジェクトにおいて、生成モジュール22は、1つまたは複数の仮想欠陥画像E3を生成及び記憶することができる。
図8は、本発明の一実施例に係る仮想欠陥画像生成モデルを学習するためにデータベースを構築する電子装置10の動作の例を示す。図10~図12は、本発明の一実施例に係るデータベースを構築する画面の例を示す。
図8の動作は、図6のS211の具体例であってもよく、プロセッサ12によって実行されることができ、プログラム16の開発モジュール21(例えば、データベースモジュール211)を介して実行されることができる。
図8を参照すると、S2111において、プロセッサ12は、開発モジュール21(例えば、データベースモジュール211)を介して、1つまたは複数のバージョン(version)の生産品それぞれに対する識別情報(例えば、名前)を入力されて記憶することができる。ここで1つまたは複数のバージョンの生産品とは、広い意味の種類は互いに同一であるが、細部の特徴(例えば、規格またはバージョン)が互いに異なる1つまたは複数の生産品を意味することができる。例えば、1つまたは複数のバージョンの生産品とは、形状、色、及び発生する欠陥のタイプが類似した生産品を意味することができる。
例えば、プロジェクトは、同じ種類で同じバージョンの生産品の画像(すなわち、第1正常画像及び欠陥画像)から仮想欠陥画像生成モデルを学習する必要はない。前記プロジェクトは、同じ種類であるが、細部の規格、バージョンが異なる生産品から1つの仮想欠陥画像生成モデルを学習することができる。
したがって、プロセッサ12は、S2111において、1つまたは複数のバージョンの生産品それぞれに対する識別情報を記憶して区別することができる。
例えば、図9は、1つまたは複数のバージョン(version)の生産品の例を示す。図9を参照すると、前記プロジェクトは、仮想欠陥画像生成モデルを学習するために、第1生産品である第1トランジスタ91の画像(すなわち、第1正常画像及び欠陥画像)を使用し、第2生産品である第2トランジスタ92の画像を使用することができる。
図10を参照すると、画面A10は、1つまたは複数のバージョン(version)の生産品それぞれに対する識別情報(例えば、名前)を入力される画面を示す。例えば、プロセッサ12は、学習に使用する生産品を編集するためのアイコン101に対するユーザ入力を受信すると、1つまたは複数の生産品を追加及び削除したり、生産品の表示順序を変更したり、生産品の識別情報(例えば、名前)を修正することができる編集ウィンドウ102を表示(例えば、オーバーレイ)することができる。編集ウィンドウ102を参照して、例えば、第1生産品が34Ah電池で、第2生産品が37Ah電池であってもよい。
一実施例によれば、このように複数のバージョンの生産品の画像を用いて、1つのプロジェクトを介して1つの仮想欠陥画像生成モデルを学習する場合、1種類、1バージョンである生産品の画像を用いて仮想欠陥画像生成モデルを学習する場合よりモデルの性能が良いことができる。
また、例えば、第1生産品の正常画像及び欠陥画像は十分(例えば、数十枚以上)確保されており、第2生産品の正常画像及び欠陥画像は十分確保されていない場合、第2生産品の欠陥検出モデルを作成したいのであれば、この機能が有効に使用されることができる。もちろん、第1生産品の画像のみで仮想欠陥画像生成モデルを学習し、前記仮想欠陥画像生成モデルを用いて第2生産品の正常画像から第2生産品の仮想欠陥画像を生成することも可能である。ただし、例えば、第1生産品及び第2生産品の両方を使用してモデルを学習し、前記モデルを用いて第2生産品の正常画像から第2生産品の仮想欠陥画像を生成する場合、より品質のよい第2生産品の仮想欠陥画像を得ることが可能であるかもしれない。
一実施例によれば、形状、色、及び欠陥タイプが類似する複数のバージョンの生産品を1つのプロジェクトに追加することで、学習効果を向上させることができる。
一方、データベースを構築する画面A10、A11、A12では、データベースを示すアイコン103を強調表示することができる。
再び図8を参照すると、S2112において、プロセッサ12は、開発モジュール21(例えば、データベースモジュール211)を介して、1つまたは複数のバージョンの生産品それぞれに対して、1つまたは複数の第1正常画像及び欠陥画像をロードすることができる。前記ロードは、ユーザ入力に基づいた入力及び記憶を含むことができる。第1正常画像は、上述したように、仮想欠陥画像生成モデルの学習に使用される正常画像を指すことができる。正常画像は、上述したように、正常と判定された実際の生産品の画像を示す。欠陥画像は、上述したように、欠陥があると判定された実際の生産品の画像を示す。
同じ種類であるが、細部の特徴が異なる第1生産品及び第2生産品を追加した場合、プロセッサ12は、プログラム16を介してユーザ入力に基づいて、第1生産品に対して1つまたは複数の第1正常画像及び欠陥画像を入力され、第2生産品に対して1つまたは複数の第1正常画像及び欠陥画像を入力されることができる。
例えば、図11を参照すると、データベースを構築するための一画面A11の例が示されている。図11及びその以下では、説明の便宜のために、プロジェクトにおいて1つのバージョンの生産品(例えば、PCB基板)のみを使用して仮想欠陥画像生成モデルを学習するための画面を例に挙げて説明する。
画面A11は、「PCB基板」が生産品の識別情報の例として表示された生産品領域114を含むことができる。もし、「PCB基板」以外の第2生産品が登録または追加される場合、生産品領域114内の「PCB基板」の下に第2生産品の識別情報(例えば、PCB基板2)が表示されることにより、生産品リストを示すことができるであろう。前記第2生産品は、例えば、第1生産品と細部の特徴または規格が異なるPCB基板であってもよい。
生産品領域114は、ユーザ入力に基づいて各生産品に対する画像(すなわち、生産品の1つまたは複数の第1正常画像及び欠陥画像)をロードすることができるアイコン110を含むことができる。例えば、前記画像ロード用アイコン110は、第1アイコン111、第2アイコン112、第3アイコン113を含むことができる。プロセッサ12は、第1アイコン111に対するユーザ入力に基づいて画像をそれぞれロードすることができ、第2アイコン112に対するユーザ入力に基づいてフォルダから画像をロードすることができ、第3アイコン113に対するユーザ入力に基づいて、プロジェクト(例えば、他のプロジェクト)から予め記憶された画像をロードすることができる。
ロードされる画像は、1つまたは複数の第1正常画像、及び1つまたは複数の欠陥画像を含むことができる。好ましくは、学習の品質のために、複数の(例えば、数十枚以上の)第1正常画像及び欠陥画像がそれぞれロードされることができる。しかしながら、前記複数の欠陥画像は、欠陥検出モデルE4の学習データとして直接使用されるには不十分な数量である可能性がある。
画面A11は、ロードされた画像のリスト、またはロードされた画像に関する情報を表示することができる画像リスト領域115を含むことができる。画像リスト領域115は、図11には示されていないが、ロードされた画像のリストが表示されることができる。もし、「PCB基板」以外の第2生産品が登録された場合、画像リスト領域115には、例えば、現在活性化されている生産品の画像リストのみを表示することができる。現在活性化された生産品とは、例えば、生産品領域114で選択された生産品を意味することができる。
一方、図11の画像リスト領域115には現在、ロードされた画像のラベル付けに対する情報が表示されているが、ラベル付きに対する詳細な説明は図12で後述する。
例えば、画面A11において、画像リスト領域115にロードされた画像のリストのうち選択された(または活性化された)画像が画像領域118に表示されることができる。画像領域118に表示される画像は、正常画像でもよく、欠陥画像でもよい。
再び図8を参照すると、S2113において、プロセッサ12は、開発モジュール21(例えば、データベースモジュール211)を介して1つまたは複数のバージョンの生産品に一括適用される欠陥タイプに対する情報を入力されて記憶することができる。
例えば、図11を参照すると、画面A11は、欠陥タイプに対する情報を示す欠陥タイプ領域116を含むことができる。欠陥タイプとは、前述したように、生産品に発生する可能性のある欠陥の種類を指すことができる。欠陥タイプは、ユーザ入力に基づいて設定または生成されることができる。本文書において任意情報(例えば、欠陥タイプ、欠陥領域など)が「生成される」ということは、ユーザインタフェース(UI)を介して当該情報を生成するユーザ入力に応答してプロセッサ12が識別できる、当該情報に対応する識別情報を生成及び記憶することを含むことができる。
プロセッサ12は、ユーザ入力に基づいて欠陥タイプが生成されると、欠陥タイプに対する情報を記憶することができる。欠陥タイプに対する情報は、例えば、欠陥タイプの識別番号、欠陥タイプの識別名、欠陥タイプの識別色119などを含むことができ、ユーザ入力に基づいて入力されることができる。
欠陥タイプ領域116を参照すると、「PCB基板」と識別される生産品は、スクラッチ(scratch)、くぼみ(dent)、割れ(crack)、すす(soot)の欠陥タイプを含むことができる。しかしながら、欠陥タイプはこれに限定されず、生産品の特性によってユーザ入力に基づいて多様に設定されることができる。例えば、本実施例では図示されていないが、例えば曲げ(dent)、特定の色の異物などが欠陥タイプとして設定される可能性もある。曲げ(dent)は、例えばブレード刃などの生産品に適用可能な欠陥タイプであることができる。特定の色の異物は、例えば、特定の接着剤や特定の電解質の流出による汚れや汚染などであることができる。これに限定されない。
本プロジェクトにおいて、第1生産品(識別情報:PCB基板)以外に追加的に第2生産品が登録された場合、欠陥タイプは第1生産品及び第2生産品に一括的適用されることができなければならない。例えば、第2生産品(例えば、PCB基板2)も、スクラッチ、くぼみ、割れ、すすの欠陥が発生可能でなければならない場合がある。
一実施例によれば、欠陥タイプを形状と色相等に応じて分類することで、学習性能を向上させることができる。
一方、欠陥タイプの「識別色」は「欠陥の色」とは異なっていてもよい。「欠陥の色」は、特定の異物が欠陥画像で実際に表す色を指すことができる。「識別色」は、ユーザ入力に基づいて設定されることができる。欠陥タイプの識別色119は、後で生成モジュール22を介して仮想欠陥画像が生成されたとき、各仮想欠陥画像がどの欠陥タイプを含んでいるかを示すための表示であることができる。
一例として、欠陥タイプ領域116は、欠陥タイプ編集アイコン117を含むことができる。プロセッサ12は、欠陥タイプ編集アイコン117に対するユーザ入力を受信すると、欠陥タイプの追加、または削除したり、欠陥タイプの表示順序の変えたり、欠陥タイプの識別名の修正したり、欠陥タイプの識別色を変更することができる、編集ウィンドウ(図示せず)を表示(オーバーレイ)することができる。すなわち、欠陥タイプ編集アイコン117を介して、ユーザは欠陥タイプに対する情報を編集することができる。
再び図8を参照すると、S2114において、プロセッサ12は、開発モジュール21(例えば、データベースモジュール211)を介して、ロードされた第1正常画像及び欠陥画像に対して、正常または欠陥タイプをラベル付けすることができる。
例えば、図12を参照すると、画面A12は、画像領域118に表示された画像に対してラベル付けを実行する画面の例を示す。
画像領域118は、ラベル付けツールアイコン121を表示することができる。例えば、ユーザは、ロードされた画像のそれぞれに対してラベル付けを実行することができるが、画像領域118に表示された画像が正常画像である場合、ラベル付けツールアイコン121を用いて正常であることをラベル付けすることができる。また、画像領域118に表示された画像が欠陥画像である場合、ユーザは画像が有する欠陥タイプを選択し、ラベル付けツールアイコン121を用いて画像上に当該欠陥タイプの欠陥が発生した領域を表示(例えば:入力装置14を用いて表示)することでラベル付けすることができる。
例えば、画像領域118に表示された画像が割れ(crack)タイプの欠陥を有する場合、ユーザは欠陥タイプ領域116において該当する欠陥タイプ(すなわち、割れ(crack))を選択し、ラベル付けツールアイコン121を使用して、表示された画像上に割れ欠陥が発生した領域を直接描画または色付けするユーザ入力を加えることができる。このとき、前記描画された領域または色付けされた領域(すなわち、欠陥が発生した領域)は、欠陥タイプの識別色119に該当する色で表示されることができる。例えば、壊れの欠陥タイプの識別色119が赤色である場合、画像上で割れ欠陥が発生した領域をユーザが描画したり色付けしたりする場合、赤色に表示されることができる。しかしながら、これに限定されるものではない。
一実施例によれば、1枚の欠陥画像が複数の欠陥タイプを含むことも可能である。ラベル付け情報領域122には、表示された画像のラベル付け情報(例えば、欠陥タイプに対する情報、または正常画像であることを示す情報)が表示されることができる。
例えば、1枚の欠陥画像に複数の欠陥タイプに対するラベル付けが実行された場合、ラベル付け情報領域122には、該当する複数の欠陥タイプに対する情報を全て表示されることができる。
例えば、プロセッサ12は、ラベル付け動作が実行されるとき、各画像毎にラベル付け情報(例えば、欠陥タイプに対する情報、該当欠陥タイプの発生領域に対する情報、または正常画像であることを示す情報)をマッチして記憶することができる。
前述した図8~図12に対する説明のように、仮想欠陥画像生成モデルを学習するためのデータベースが構築されることができるS211。データベースを構築する画面A10、A11、A12では、データベースを示すアイコン103を強調表示することができる。
図13は、本発明の一実施例に係る仮想欠陥画像生成モデルの学習のためにデータベースに前処理を実行する電子装置10の動作の例を示す。図14~図18は、本発明の一実施例に係る前処理を実行するための画面の例を示す。
図13の動作は、図6のS212の具体例であってもよく、プロセッサ12によって実行されることができ、プログラム16の開発モジュール21(例えば、前処理モジュール212)を介して実行されることができる。
図13を参照すると、S2121において、プロセッサ12は、開発モジュール21(例えば、前処理モジュール212)を介して、1つまたは複数のロードされた第1正常画像の中から代表画像を設定することができる。代表画像は、画像のアライメントS2122の基準となることができ、各欠陥タイプが発生可能な領域である欠陥領域を設定S2123するために使用されることができる。代表画像は、正常画像(すなわち、第1正常画像)の中から設定されることができる。
例えば、図14を参照すると、代表画像設定に関する画面A14が示されている。 例えば、記憶されたラベル付け情報を用いて、画像リスト領域115に正常画像(すなわち、正常とラベル付けされた画像)を集めて表示することができる。前記正常画像のリストの中から一正常画像を選択するユーザ入力に基づいて、選択された正常画像が画像領域118に表示されることができる。例えば、代表画像設定アイコン141に対するユーザ入力に基づいて、画像領域118に表示された正常画像(例えば、test_good_008.png)が代表画像に設定及び記憶されることができる。
再び図13を参照すると、S2122において、プロセッサ12は、開発モジュール21(例えば、前処理モジュール212)を介して、前記設定された代表画像に基づいて、ロード及びラベル付けされた第1正常画像及び欠陥画像を整列(align)させることができる。例えば、画像リスト領域115にリストされた画像を整列させることができる。
一実施例によれば、整列(alignment)は3つのタイプのうちの1つで実行されることができる。3つのタイプは、非整列(none)タイプ、トランス(trans)タイプ、アファイン(affine)タイプを含む。非整列タイプは、整列を実行しないオプションである。トランスタイプは、画像の平行移動を介して整列を実行するオプションである。アファインタイプは、画像を回転、サイズ変更、及び平行移動することで整列を実行するオプションである。
例えば、図14を参照すると、画面A14は整列オプション領域142を含むことができる。整列オプション領域142には、非整列(none)タイプで行うための非整列アイコン143、トランス(trans)タイプで整列させるためのトランスアイコン144、アファイン(affine)タイプで行うためのアファインアイコン145を表示することができる。
プロセッサ12は、非整列アイコン143に対するユーザ入力を受信すると、ラベル付けされた複数の画像の整列を実行せずに次のステップに進むことができる。例えば、ユーザは、ラベル付けされた複数の画像がすべて整列されている場合、非整列アイコン143を選択することができる。
図15の(a)を参照すると、整列オプション領域142でトランスアイコン144を選択した場合、代表画像上に整列の基準となる部品または部品の位置情報を表示することができる。好ましくは、部品(または部品の位置情報)の数を3つ設定することができる。ただし、これに限定されない。例えば、整列オプション領域142でトランスアイコン144を選択した場合、追加ボタン151及び選択ボタン152で部品(または部品の位置)を選択することができ、削除ボタン153で部品の選択を削除することができる。一例として、図16に一点鎖線で示されたように部品(または部品の位置)を選択することができる。
プロセッサ12は、トランスタイプで整列を実行する場合、複数の画像から部品(または部品の位置情報)を識別することができ、識別された部品の位置情報に応じて複数の画像を、代表画像の配置に対応して平行移動させることで整列することができる。トランスタイプは、すべての画像のサイズが同じ場合に適用することが可能である。
図15(b)を参照すると、整列オプション領域142でアファインアイコン145を選択した場合、代表画像上に生産品の領域を設定することができる。例えば、整列オプション領域142でアファインアイコン145を選択した場合、関心領域設定ボタン154を介して生産品が占める領域を関心領域(region of interest, ROI)に設定することができる。一例として、図16に一点鎖線で示されたように生産品が占める領域である関心領域(ROI)を選択することができる。
プロセッサ12は、アファインタイプで整列を実行する場合、複数の画像のそれぞれに現れる生産品が占める領域が、前記関心領域(ROI)と同じ形状を有するように、前記複数の画像のうち少なくとも一部に変形を加えることができる。
図14を参照すると、プロセッサ12は、整列オプション領域142で整列オプションに関する選択が完了すると、整列アイコン146に対するユーザ入力に基づいて、該当生産品のすべてのラベル付けされた画像に整列を実行することができる。
本プロジェクトに複数の生産品が追加された場合、プロセッサ12は、ユーザ入力に基づいて、各生産品ごとに前記整列過程を実行することができる。各生産品ごとに異なる整列オプションが適用されてもよい。
プロセッサ12は、プログラム16を介して、整列が正しく実行されていない画像に対して別途の指示をすることができ、ユーザ入力に基づいて前記整列が正しく実行されていない画像は削除されることができる。
一方、前処理を実行する画面A14、A17、A18では、前処理を示すアイコン147を強調表示することができる。
再び図13を参照すると、S2123において、プロセッサ12は、開発モジュール21(例えば、前処理モジュール212を介して、前記設定された代表画像上に、各欠陥タイプが生じ得る欠陥領域に対する情報を入力されて記憶することができる。
例えば、図17を参照すると、プロセッサ12は、画面A17を介して、前記設定された代表画像171上に欠陥領域を設定するユーザ入力を受信することができる。例えば、欠陥領域を設定するステップで、画像領域118は、代表画像171上に欠陥領域を設定するための欠陥領域設定アイコン172を表示することができる。
例えば、ユーザは欠陥タイプ領域116で任意の欠陥タイプを選択した後、代表画像171上で、欠陥領域設定アイコン172を用いて、該当欠陥タイプの欠陥が発生可能な領域を表示することができる。欠陥領域設定アイコン172は、予め指定された所定の形状(例えば、直線、四角形の縁、円形の縁、四角形の面積(area)、円形の面積)でユーザが欠陥領域を表示できるようにする。
欠陥領域とは、欠陥タイプに対応する欠陥が発生可能な領域を示すことができる。欠陥領域は、ラベル付けのために表示する欠陥が発生した領域とは異なる。ラベル付けステップでは、それぞれの欠陥画像上に各欠陥が発生した領域を表示する。しかしながら、欠陥領域を表示することは、それぞれの欠陥タイプが生じ得る領域を代表画像上にそれぞれ表示することであってもよい。
例えば、長方形の生産品(例えば、PCBボード)の全領域でくぼみ(dent)欠陥が発生可能である場合、ユーザは、プログラム16のユーザインタフェース(UI)を介して次のようなユーザ入力を実行することができる。ユーザは、欠陥タイプ領域116でくぼみ(dent)欠陥タイプを選択し、欠陥領域設定アイコン172の中で長方形領域を描画することができる一アイコンを選択し、代表画像171上でくぼみ欠陥が発生可能な生産品の全体領域(すなわち、長方形領域)に欠陥領域を描画することができる。代表画像上に描画された欠陥領域は、該当欠陥タイプ(dent)の識別色(例えば、黄色)で描画されることができる。
別の例として、図18の画面A18を参照すると、生産品(例えば、PCB基板)の端部で割れ(crack)欠陥が発生可能である場合、及び生産品の端部の境界が直線である場合、ユーザはプログラム16のユーザインタフェース(UI)を介して、次のようなユーザ入力を実行することができる。
ユーザは、欠陥タイプ領域116で割れ(crack)欠陥タイプを選択し、欠陥領域設定アイコン172の中から直線を描画することができる一アイコンを選択し、代表画像171上で割れ欠陥が発生可能な PCB基板の縁(すなわち直線領域)に欠陥領域を描画することができる。図示のように、1つの欠陥タイプ(例えば、割れ)に対して複数の欠陥領域が設定されることができる。代表画像に描画された欠陥領域は、該当欠陥タイプ(例えば、crack)の識別色(例えば、赤色)で描画されることができる。
再び図13を参照すると、S2124において、プロセッサ12は、開発モジュール21(例えば、トレーニングモジュール213)を介して整列された1つまたは複数の第1正常画像及び欠陥画像、ラベル付け情報、欠陥領域に対する情報を用いて仮想欠陥画像生成モデルを学習することができる。S2124は、図6のS213に対応する動作であることができる。
例えば、図19を参照すると、学習を実行するための画面A19が示されている。画面A19を介して、様々な学習パラメータが入力されることができる。
画面A19を参照すると、一実施例によれば、学習は、プレステージ(pre-stage)及びメインステージ(main stage)の2つのステップから構成されることができる。プレステージは、学習を開始する前に必要な前処理作業を実行するイテレーション(iteration)を意味し、繰り返し回数を設定することができる。メインステージの学習の繰り返し回数もユーザ入力に基づいて設定されることができる。
学習が可視化間隔(visualization interval)の回数だけ繰り返されるたびに、学習されたモデルが生成したサンプル画像を確認することができる。前記可視化間隔の回数もユーザによって入力されることができる。
本発明の一実施例によれば、トレーニングのための画面A19に表示される生産品領域191において、学習に使用する少なくとも1つの生産品が選択されることができる。
本機能によれば、複数のバージョンの生産品(例えば、第1生産品、第2生産品など)に対してデータベース収集(S211、図6参照)及び前処理S212を一度に実行した後、学習ステップS213では、複数のバージョンの生産品の中から学習に使用する生産品を選択して複数のモデルを学習(または生成)することができる。本機能により、前記複数のモデルのうち、性能が最も良いモデルを選択して仮想欠陥画像生成モデルとして用いることも可能である。
同様に、トレーニングのための画面A19に表示される欠陥タイプ領域192において、学習に使用する少なくとも1つの欠陥タイプを選択されることができる。前記欠陥タイプの選択によって、さまざまなバージョンのモデルを学習することができる。
図20は、本発明の一実施例に係る仮想欠陥画像を生成するための電子装置10の動作の例を示す。図20の動作は、プロセッサ12によってプログラム16を介して実行されることができる。
図20を参照すると、S21において、プロセッサ12は、プログラム16(例えば、開発モジュール21)を介して、少なくとも第1、正常画像、欠陥画像、及びユーザ入力に基づいて仮想欠陥画像生成モデルを学習することができる。これは、前述した図5のS21、図6及びそれ以下の図面で説明した内容に対応する。
S21において、プロセッサ12は、プログラム16(例えば、生成モジュール22)を介して、ユーザ入力に基づいて仮想欠陥画像を自動モードで生成することもできS221、手動モードで生成することもできるS222。例えば、自動モード生成S221は、第2正常画像及び既定の欠陥領域に対する情報を用いて、仮想欠陥画像生成モデルを介して仮想欠陥画像を生成するものである。例えば、手動モード生成S222は、第2正常画像、及びユーザが欠陥を発生させる領域を直接描画する入力に基づいた手動領域情報を用いて、前記同じ仮想欠陥画像生成モデルを介して仮想欠陥画像を生成するものである。これについての説明は図4で前述しており、以下の図面で詳細に後述する。
S23において、プロセッサ12は、プログラム16(例えば、生成モジュール22)を介して、生成された仮想欠陥画像をメモリ15に記憶することができる。記憶された仮想欠陥画像は、例えば、欠陥検出モデルを学習するために学習データとして使用することができる。
一方、以下では、自動モード生成S221と手動モード生成S222の動作に対して詳細に説明する。
図21~図27は、本発明の一実施例に係る自動モード(auto mode)生成を実行するための画面の例を示す。
まず、S21で生成され記憶された仮想欠陥画像生成モデルを用いて仮想欠陥画像を生成するために、プロセッサ12は、図7の画面A7の生成機アイコン74に対するユーザ入力を受信することができる。生成機アイコン74に対するユーザ入力を受信することに基づいて、プロセッサ12は仮想欠陥画像を生成するための過程S2に入ることができる。
その後、自動モードを選択する所定のユーザ入力に基づいて、図21の画面A21が表示されることができる。画面A21は、当該プロジェクトで学習され記憶された各種仮想欠陥画像生成モデルのリスト219を表示することができる。仮想欠陥画像生成モデルのリスト219の中から、仮想欠陥画像生成に使用するモデルを選択することができる。
生産品領域218には、前記選択されたモデルの学習に使用された1つまたは複数のバージョンの生産品のリストを表示されることができる。生産品領域218に表示された1つまたは複数のバージョンの生産品の中から、仮想欠陥画像の生成に使用する生産品を選択することができる。
生産品領域218で所定のアイコン(「Load with a new product」)に対するユーザ入力を加えると、学習に使用されなかった新たな生産品に対する仮想欠陥画像を生成することができる。例えば、プロセッサ12は、前記アイコンに対するユーザ入力に基づいて新たな生産品を登録(または追加)できるウィンドウを表示(例えば、オーバーレイ)することができる。
例えば、仮想欠陥画像生成モデルの学習に第1生産品の画像のみが使用された場合でも、生成ステップS2で、第1生産品と種類は同じで、細部の特徴(例えば、バージョンまたは規格)のみが異なる第2生産品の第2正常画像のみで、前記学習された仮想欠陥画像生成モデルを用いて第2生産品の仮想欠陥画像を生成することができる。
ユーザの選択に基づいて、選択された仮想欠陥画像生成モデル及び選択された生産品に関する情報がプログラム16(例えば、生成モジュール22)にロードされることができる。
以降、図22を参照すると、仮想欠陥画像生成の基礎となる、前記選択された生産品に対するテンプレート画像がテンプレート画像領域229にロードされることができる。テンプレート画像は、選択された生産品の正常画像として、前述した第2正常画像と呼ばれてもよい。テンプレート画像は、図22に示すように1つでもよいが、複数のテンプレート画像をロードすることもできる。例えば、テンプレート画像に基づいて生成される仮想欠陥画像の多様性のために、複数のテンプレート画像が使用されることができる。
仮想欠陥画像の生成のために、複数のテンプレート画像(すなわち、複数の第2正常画像)をロードした場合、複数のテンプレート画像が整列される必要がある。もし学習に使用された生産品が選択された(またはロードされた)場合、開発モジュール21において前処理過程で設定された整列情報がそのまま適用されることができる。
一方、学習に使用されていない新たな生産品がロードされた場合、本ステップ(S221、自動モード生成ステップ)において、1つまたは複数のテンプレート画像の代表画像設定及び前記テンプレート画像の整列が新たに実行される必要がある。例えば、整列オプション領域228を介して、複数のテンプレート画像を代表画像(すなわち、代表テンプレート画像)の配置に対応して整列させることができる。整列方法は、図14~図16を通じて説明した整列方法に対応することができる。したがって、説明を省略する。
以降、図23を参照すると、自動モード生成のために画面A23を介して、各欠陥タイプが発生可能な領域である欠陥領域が必要となる場合がある。すなわち、欠陥タイプごとの欠陥領域情報が必要となる場合がある。学習に使用された生産品が選択された(またはロードされた)場合、開発モジュール21において前処理過程で設定された欠陥領域情報がそのまま適用されることができる。
一方、学習に使用されていない新たな生産品がロードされた場合、本ステップ(S221、自動モード生成ステップ)において、1つまたは複数のテンプレート画像の代表画像に対して欠陥領域情報が新たに設定される必要がある。例えば、ユーザは、欠陥タイプ領域239で欠陥タイプを選択し、欠陥領域設定アイコン238を使用して、欠陥タイプ別に発生可能な欠陥領域を設定または表示することができる。
一方、このステップでは、モデルの学習過程で設定された欠陥領域と連動可能な欠陥領域のみ設定可能である。一例として、欠陥領域として直線と四角形の縁は互いに連動させることができる。また、例えば、欠陥領域として、四角形の面積(area)と円形の面積とを連動させることができる。例えば、学習過程において(すなわち、開発ステップで)特定の欠陥タイプの欠陥領域として四角形の面積が設定されている場合、このステップで(すなわち、自動モード生成ステップで)、前記欠陥タイプの欠陥領域として四角形の面積または円形の面積のみ設定することができる。
一方、欠陥領域の設定は自動モード生成のために必要な過程であることができる。自動モードにおいて生成モジュール22は、このように設定された欠陥領域の範囲内で自由にまたは自動的に仮想欠陥スケッチを生成し、テンプレート画像に仮想欠陥スケッチを重ね合わせまたは合成することができる。欠陥領域設定方法は、図17~図18で説明した欠陥領域設定方法に対応することができるため、詳細な説明を省略する。
以降、図24の画面A24の生成ボタン249を介して自動モードで仮想欠陥画像を生成することができる。自動モードの仮想欠陥画像生成過程は、図4で説明した自動モード生成過程に対応することができるため、詳細な説明は省略して簡単に説明する。
自動モードにおいて、プロセッサ12は、前記設定された欠陥領域情報及び仮想欠陥画像生成モデルを用いて仮想欠陥画像を生成することができるS221。例えば、プロセッサ12は、前記設定された欠陥領域情報及び仮想欠陥画像生成モデルを用いて仮想欠陥スケッチ(VDS)を生成することができる。例えば、仮想欠陥スケッチ(VDS)は、任意の欠陥タイプが発生可能な欠陥領域上に自由に配置されるように生成されたスケッチであることができる。仮想欠陥スケッチ(VDS)は、例えば、色情報、形状情報、配置(位置)情報(例えば、画素情報)を含むことができる。以降、プロセッサ12は、テンプレート画像領域229にロードされた第2正常画像(すなわち、テンプレート画像)に前記仮想欠陥スケッチを重ね合わせまたは合成することによって仮想欠陥画像を生成することができる。
プロセッサ12は、画面A24の生成ボタン249に対するユーザ入力を受信することに基づいて、図25の画面A25を表示することができる。プロセッサ12は、第1入力欄251を介して生成する仮想欠陥画像の数を入力されることができる。プロセッサ12は、第2入力欄252を介して、1枚に生成する欠陥の最大数を入力されることができる。プロセッサ12は、各欠陥タイプごとに、生成する重み(weight)を入力されることができる。プロセッサ12は、スライダー253を介して各欠陥タイプごとに生成される欠陥の最小サイズを入力されることができる。プロセッサ12は、生成ボタン254に対するユーザ入力を受信すると、仮想欠陥画像の生成を開始することができる。
以降、生成された仮想欠陥画像が、図26の画面A26を介して表示されることができる。画面A26の生成画像リスト領域261に、生成された仮想欠陥画像の一覧が表示されることができる。生成画像リスト領域261に表示された一仮想欠陥画像をクリックすると、画像領域262に該当仮想欠陥画像を表示されることができる。表示された仮想欠陥画像には、発生された欠陥(例えば、割れ(crack))の位置を示す薄い縁が表示されることができる。細い縁は、例えば、生成された欠陥タイプ(例えば、割れ(crack))の識別色(例えば、赤色)で表示されることができる。
図27は、自動モードで生成された仮想欠陥画像(VDI)の例を示す。左上の写真はすす(soot)を示し、右上の写真はスクラッチ(scratch)を示し、左下の写真はくぼみ(dent)を示し、右下の写真は割れ(crack)を示すことができる。
再び図26を参照して、ユーザは、例えば、仮想欠陥編集アイコン263を使用して、生成された仮想欠陥(すなわち、仮想欠陥スケッチ(VDS1))を削除することができる。ユーザ入力に応じて、1つの仮想欠陥画像に複数の仮想欠陥が生成されることができ、ユーザは仮想欠陥編集アイコン263を使用して削除したい仮想欠陥のみを削除することができる。
また、ユーザは、生成画像リスト領域261に表示された複数の生成された仮想欠陥画像のうち、一仮想欠陥画像自体を削除することもできる。
プロセッサ12は、エクスポートボタン264に対するユーザ入力を受信することに基づいて、生成された(及び編集された)仮想欠陥画像を指定された経路に記憶することができる。
以下で手動モード生成S222動作に対して詳細に説明する。図28~図30は、本発明の一実施例に係る手動モード(manual mode)生成を実行するための画面の例を示す。
図28を参照すると、画面A28のテンプレート画像領域281を介して、欠陥を生成させる1つまたは複数の第2正常画像(すなわち、テンプレート画像)をロードすることができる。画像領域282には、テンプレート画像領域281にリストされた第2正常画像の中から選択された第2正常画像を表示することができる。
一方、画面A28は、現在ロードされているモデル(すなわち、仮想欠陥画像生成モデル)に関連して記憶された欠陥タイプを表示する欠陥タイプ領域283を表示することができる。
手動モードにおいてプロセッサ12は、ユーザが欠陥を発生させる領域を直接第2正常画像上に描画する(すなわち、スケッチする)入力に基づいた手動領域情報を使用して、前記描画された手動領域上に欠陥タイプを生成させることができる。
一例として、ユーザは、欠陥タイプ領域283に含まれる欠陥タイプの中から生成する欠陥タイプを選択し、欠陥領域スケッチアイコン284を使用して表示された画像(すなわち、第2正常画像、またはテンプレート画像)上に該当欠陥タイプの形状を直接スケッチすることができる。以降、プロセッサ12は、前記スケッチの形状に対応する仮想欠陥をテンプレート画像に挿入することによって、仮想欠陥画像を生成することができる。これについての説明は図4で前述したものであり、前述したラベル付け動作とも類似であることができる。
このような手動モード生成動作により、精巧、または形状が複雑な仮想欠陥を生成することができる。
一方、生成ボタン285に対するユーザ入力に基づいて、プロセッサ12は、図29の画面A29を表示することができる。「Generate all manual labels in each template image」に対応するボタン291を選択すると、ユーザが描画した欠陥タイプ別の欠陥領域とおりに欠陥を生成することができる。前記ボタン291の選択を解除すると、1つのテンプレート画像に生成する欠陥の最大数を入力されることができる。このとき、もし1つのテンプレート画像に8つの欠陥を描画したが、前記最大欠陥数を2に設定した場合、仮想欠陥画像生成モデルは、自動的に1つの仮想欠陥画像あたり1~2個の欠陥を有するように複数の仮想欠陥画像を生成することができる。
一実施例によれば、画面A29に表示される一領域292を介して、ユーザのスケッチが施されたテンプレート画像のうち、仮想欠陥画像として生成するものを選択することができる。以降、生成ボタン293に対するユーザ入力により、手動モードで仮想欠陥画像を生成することができる。
以降、生成された仮想欠陥画像が、図30の画面A30を介して表示されることができる。画面A30の生成画像リスト領域301に、生成された仮想欠陥画像の一覧が表示されることができる。生成画像リスト領域301に表示された一仮想欠陥画像をクリックすると、画像領域302に該当仮想欠陥画像を表示されることができる。表示された仮想欠陥画像には、発生された欠陥の位置を示す薄い縁が表示されることができる。薄い縁は、例えば、生成された欠陥タイプの識別色で表示されることができる。
図31は、手動モードで生成された仮想欠陥画像の例を示す。
再び図30を参照して、ユーザは、例えば、仮想欠陥編集アイコン303を使用して、生成された仮想欠陥(すなわち、仮想欠陥スケッチ(VDS2))を削除することができる。1つの仮想欠陥画像に複数の仮想欠陥スケッチが生成されることができ、ユーザは仮想欠陥編集アイコン303を使用して削除したい仮想欠陥スケッチのみを削除することができる。
また、ユーザは、生成画像リスト領域301に表示された一つまたは複数の生成された仮想欠陥画像のうち、一仮想欠陥画像自体を削除することもできる。
プロセッサ12は、エクスポートボタン304に対するユーザ入力を受信することに基づいて、生成された(及び編集された)仮想欠陥画像を指定された経路に記憶することができる。
図32~図34は、本発明の一実施例に係る仮想欠陥画像を生成する際に自動モード生成が有用な場合と、手動モード生成が有用な場合の例を示す。
図32を参照すると、任意の生産品320(例えば、電池の上部)の模式図を示すことができる。図33は、前記生産品320に対して自動モード生成が有利である、または可能な場合を示す。第1例331は、前記生産品320の四角形の第1部分321に対して四角形の面積(area)の欠陥領域設定が可能な場合を示す。第2例332は、前記生産品320の円形の第2部分322に対して円形の面積の欠陥領域設定が可能な場合を示す。
例えば、前記第1部分321及び第2部分322の面積内には、スクラッチまたは異物(または色付きの異物)の欠陥タイプが発生する可能性がある。したがって、ユーザは、例えば、欠陥タイプでスクラッチまたは異物を選択(または活性化)し、予め提供されるアイコンを使用して、第1部分321に四角形の面積の欠陥領域を表示し、第2部分322に円形の面積の欠陥領域を表示することができる。
第3例333は、前記生産品320の第3部分323に対して直線の欠陥領域設定が可能な場合を示す。第3部分323は、例えば、第1部分321の縁の一部であることができる。第4例334は、前記生産品320の円形の第2部分322の縁に対して、円形の縁の欠陥領域設定が可能な場合を示す。
例えば、前記第3部分323及び第2部分322の縁には、接着剤または電解質の流出、または前記流出による汚染などが発生する可能性がある。したがって、第3部分324及び第2部分322の縁には、例えば「色付きの異物」の欠陥タイプが発生する可能性がある。したがって、ユーザは、例えば、欠陥タイプとして「色付きの異物(例えば、赤い異物、黒い異物、青い異物など)」を選択(または活性化)し、予め提供されるアイコンを使用して、第3部分323に直線の欠陥領域を表示し、第2部分322の縁に円形の縁の欠陥領域を表示することができる。
図34は、前記生産品320に対して手動モード生成が有利である、または可能な場合を示す。例えば、生産品320が第5部分325のように複雑な形状を含む場合がほとんどであることができる。この場合は、生成ステップS2で手動モードを選択し、前記複雑な形状に発生可能な欠陥タイプを選択(または活性化)し、前記複雑な形状に発生可能な欠陥領域を手動で描画することができる。
例えば、前記第5部分325には、接着剤または電解質の流出、または前記流出による汚染などが発生する可能性がある。したがって、前記第5部分325には、例えば「色付きの異物」の欠陥タイプが発生する可能性がある。したがって、ユーザは、例えば、欠陥タイプとして「色付きの異物(例えば、赤い異物、黒い異物、青い異物など)」を選択(または活性化)し、予め提供されるスケッチアイコンを使用して、第5部分325に沿って生成したい欠陥の形状をスケッチすることによって、手動で欠陥領域を設定することができる。
本発明の様々な実施例において、自動モード生成S221及び手動モード生成S222の両方を使用することによって、様々な種類の仮想欠陥画像を所望の数だけ生成することができる。したがって、多様に生成された仮想欠陥画像を用いて、欠陥検出モデルの学習S3の性能を向上させることができる。
一方、本明細書で使用される「モジュール」という用語は、ハードウェア、ソフトウェア、またはファームウェアから構成されるユニットを含むことができ、例えば、ロジック、論理ブロック、または回路などの用語と互換して使用されることができる。モジュールは、一体的に構成された部品、または1つまたは複数の機能を実行する最小単位またはその一部になることができる。例えば、モジュールは、ASIC(application-specific integrated circuit)で構成されることができる。
本明細書の様々な実施例は、機器(machine)(例えば、コンピュータ)で読み取り可能な記憶媒体(machine-readable storage media)(例えば、メモリ15、例えば、内蔵メモリまたは外部メモリ)に記憶された命令語を含むソフトウェア(例えば、プログラム16)で実装されることができる。機器は、記憶媒体から記憶された命令語を呼び出し、呼び出された命令語に従って動作可能な装置として、開示された実施例による電子装置(例えば、電子装置10)を含むことができる。前記命令がプロセッサ(例えば、プロセッサ12)によって実行される場合、プロセッサは直接、または前記プロセッサの制御下で他の構成要素を使用して前記命令に対応する機能を実行することができる。命令は、コンパイラまたはインタプリタによって生成または実行されるコードを含むことができる。機器で読み取ることができる記憶媒体は、非一時的(non-transitory)記憶媒体の形態で提供されることができる。ここで、「非一時的」とは、記憶媒体が信号(signal)を含まず、実在(tangible)することを意味するだけで、データが記憶媒体に半永久的または一時的に記憶されることを区別しない。
一実施例によれば、本明細書に開示された様々な実施例による方法は、コンピュータプログラム製品(computer program product)に含まれて提供されることができる。コンピュータプログラム製品は、商品として販売者及び購入者の間で取引されることができる。コンピュータプログラム製品は、機器で読み取り可能な記憶媒体の形態で、またはアプリケーションストア(例えば、プレイストアTM)を介してオンラインで配布されることができる。オンライン配布の場合、コンピュータプログラム製品の少なくとも一部は、製造元のサーバ、アプリケーションストアのサーバ、または中継サーバのメモリなどの記憶媒体に少なくとも一時的に記憶されるか、一時的に生成されることができる。
本発明は、図面に示された一実施例を参照して説明しているが、これは例示的なものに過ぎず、当分野で通常の知識を有する者であれば、これから様々な変形及び実施例の変形が可能であることが理解できるであろう。したがって、本発明の真の技術的保護範囲は、添付の特許請求の範囲の技術的思想によって定められるべきである。