26 欠陥検出
検出編の前章3つは、3つのツールを提供してきた。Blob解析(チャプター 23)は二値画像から領域を分割し計測するものであり、輪郭解析(チャプター 24)は実際の輪郭と理論上の輪郭を点ごとに照合するものであり、形状特徴は「どのような形状か」を比較可能な数値に圧縮するものである。しかしこれらが答えるのは「この物体は何か、大きさはどれくらいか、どれだけずれているか」であるのに対し、生産ラインで最も多い問いは別のものである。「この製品にあってはならないものがあるか」という問いである。汚れ、異物、傷、欠け、バリ……欠陥の形状は列挙しきれず、それぞれに対して検出器を作成することはできない。本章は検出編全体を締めくくるパラダイムを提示する。欠陥(defect)とは「正常」からのずれである、というものである。これにより問題は反転する。千差万別の欠陥を定義するよりも、まず唯一の「正常」を定義すればよい。「正常はどこから来るのか」という線に沿って、工業用欠陥検出は3つの経路に分かれる。参照比較——良品サンプルで参照を作成し、画素ごとに比較する(本章の主役である変数モデル);ルール判定——「エッジの真直度は2 px以下」といった幾何学的ルールで合格条件を記述する(エッジ欠陥、輪郭欠陥の検出);統計的外れ値——外部参照に依存せず、画像内から統計的に異常な領域を直接探す。本章では一連の実際の工業用サンプル画像を実験全体で用いる。Smart3「傷検出示例ソリューション」の5枚の2448×2048、8ビットグレースケール画像であり(図 26.1)、各画像は繊維フィルタ円盤(盤面の平均グレースケール値は約150、暗い背景のグレースケール値は約80)で、盤面には実際の傷が散在し、それぞれに1種類の実際の欠陥——大きな暗い汚れ、明るい異物、エッジの欠け——が存在する。この「きれいな原図はなく、実際の部品のみ」のサンプルセットこそが、理想的な合成シーンでは変数モデルが学べなかったいくつかの教訓を引き出すきっかけとなる。
26.1 変数モデル:サンプルに正常を定義させる
フィルタ検出の素朴な手法は、金サンプル(golden sample)画像から被検査画像を減算し、その差分に閾値処理を施すものである。これはすぐに失敗する。盤面はランダムな繊維テクスチャであり、各円盤のテクスチャの向きはすべて異なる。2枚とも良品であっても、画素ごとに減算すると各繊維、各傷の箇所に「欠陥」が現れてしまう。変数モデル(variation model)の洞察は次の点にある。正常は1枚の画像ではなくバンド(band)であり、バンドの幅は技術者の勘で決めるべきではなく、訓練サンプル自体のばらつきによって定めるべきである、ということである。
\(n\) 枚の良品訓練画像に対し、画素ごとにグレースケールの平均値 \(\mu(x,y)\) と標準偏差 \(\sigma(x,y)\) を計算すると、その画素の合格区間——容差バンド(tolerance band)——は
\[ \big[\,\mu - \max(a,\ k\sigma),\ \ \mu + \max(a,\ k\sigma)\,\big], \]
となる。ここで \(a\) は絶対閾値(absolute threshold)、\(k\) は分散閾値係数(variation threshold)である。\(k\sigma\) 項は各画素の真のばらつきに容差を適応させ、\(a\) は下限値である——\(\sigma\) がゼロに近い領域では、少数のサンプルから推定した \(\sigma\) 自体が信頼できないため、絶対下限により容差バンドが幅ゼロに収縮して純粋なノイズを欠陥と判定することを防ぐ。検出時には、被検査画素がバンド外にあれば欠陥画素としてマークする。モデル本体は上限値画像と下限値画像の2枚である。
しかしこの実サンプルセットにより、変数モデルの前提条件はすぐに壁にぶつかる。教科書的な変数モデルには隠れた仮定がある。\(n\) 枚の良品画像は画素ごとに再現可能でなければならない——同じ座標ではすべての良品で同じ構造が見え、差異はプロセスのばらつき(見当ずれの揺らぎ、インク量、照明)によるものだけである、という仮定である。印刷ラベルはこの条件を満たすが、疎な繊維フィルタ円盤は満たさない。5枚の円盤を重心で位置合わせ(平行移動によるセンタリング、強度の正規化)してSDKの変数モデルを訓練すると、テクスチャは画素レベルで全く一致せず、画素ごとの \(\sigma\) はテクスチャの位置ずれによって膨れ上がり、結果としてすべての円盤——最もきれいな金サンプルを含む——に対して千個近いテクスチャの誤検出領域が報告される(セクション 26.2 で実測値692–1459を示す)。これが実サンプルが教える最初の教訓である。位置合わせした金サンプルを用いる変数モデルには「再現可能な外観」が必要であり、繊維、布地、粗面などの非再現的なテクスチャには対応できない。
「再現可能な外観」は参照比較経路の不可視の敷居である。印刷、ラベル貼り、シルク印刷、成形品の表面は位置合わせ後に画素ごとに再現可能であり、変数モデルの得意領域である。一方、繊維紙、不織布、ヘアライン加工金属、磨りガラス面は画素ごとにランダムであり、サンプル間の位置合わせはテクスチャの位置ずれを容差バンドに焼き込むだけである。ある表面が位置合わせを用いる変数モデルに適用可能か判断するには、まず次の問いを立てるとよい。2枚の良品を位置合わせして減算したとき、差分画像は平坦か、それともテクスチャで覆われているか。
解決策は「正常がどこから来るのか」の供給元を変えることである。サンプル間ではなく、同じ画像内で正常を探すのである。各円盤について、それ自身の盤面は大きなスケールでは緩やかに変化し(盤心は明るく、縁にはハローがあり、全体は平らな照明分布)、局所的な異常が欠陥となる。そこで「正常モデル」\(\mu\) をその円盤自身の大きな窓による平滑化背景(半径150 pxの盤面マスクを用いたボックス平均)とする。これは傷と汚れを消去し、緩やかな照明変化のみを残す。バンド幅の \(\sigma\) には金サンプル残差のロバストな尺度 \(1.4826\cdot\mathrm{MAD}=8.69\)(盤面の繊維テクスチャの通常のノイズレベル)を用い、下限値 \(a=10\) とする。検出は残差 \(R=I-\mu\) に対して行う:\(|R|>\max(a,k\sigma)\) なら欠陥である。これは依然として変数モデルと同じバンドの数学的枠組みであるが、\(\mu\) は空間平滑化から、\(\sigma\) は金サンプルのテクスチャから得られる——これは「参照比較」と「統計的外れ値」の両経路の交差点に位置する。
1つの工学的な工夫を指摘しておく価値がある。盤面のセグメンテーションにはOtsu法を用いるが、暗い汚れの中心は閾値よりも暗いため背景に分類され、盤面マスクに穴が残る。そのため平滑化背景は穴の箇所で周囲の明るい繊維の値を用いる(図 26.2 (b) の平均値画像では汚れは「明るく埋められ」きれいな盤面になっている)。その結果、穴の箇所の残差は強い負の値となり——この機構により汚れの穴は大きな負の残差を持つ欠陥としてきれいに露出する(図 26.2 (c) の変動画像)。
interiorR の円外で除外される。
26.2 検出実験
まず、位置合わせした多サンプルSDK変数モデルの失効の実測結果を示す。内部がきれいな3枚の円盤003、004、005を良品参照とし(それらの実際の欠陥は縁にあり、内部の円形マスクで除外される)、重心で位置合わせし強度を正規化した後、SDKの変数モデル(\(a=12\), \(k=3\))を訓練し、円盤ごとに比較を行った:
| 被検査円盤 | 001 | 002 | 003 | 004 | 005(金サンプル) |
|---|---|---|---|---|---|
| 欠陥領域数 | 1017 | 1298 | 692 | 1459 | 1094 |
金サンプル005はモデルの訓練データの1つであるにもかかわらず、依然として1094個の「欠陥」が報告されている。これは問題を明確にしている:閾値の調整が不十分なのではなく、画素ごとに再現可能であるという前提が成立していないのである。セクション 26.1 の自己参照バンドに切り替えると、検出結果はすぐに可読になる。通常設定(\(k=5\)、バンド幅 \(\max(10,5\times8.69)\approx43\)、最小連結成分30)で円盤ごとに検出し、極性(暗欠陥/明るい傷)ごとに集計した結果は次の通りである:
- 002の暗い汚れ:検出された暗欠陥の面積は 9811 画素、最大連結成分は 9738 画素、平均コントラストは −101 グレースケールレベル——盤面より100レベル暗い、約1万画素の汚れの塊であり、位置は(504, 676)である(図 26.3 (a))。これは全セットで最も強く、最も曖昧さのない真の欠陥である。
- 001の異物:盤面に埋め込まれたカールした明るい繊維異物——明るい部分が検出され(最大連結成分のコントラストは +93 グレースケールレベル)、同時にその暗い影も検出された(暗欠陥の面積は 2960、最大は2771、コントラストは−82)。明と暗の両極性がバンドを越えている(図 26.3 (c))。
- 005の金サンプル:暗欠陥の面積はわずか 343 画素(汚れなし)であるが、盤面の実際の傷が 2934 の明るい画素として検出された(図 26.3 (b))——金サンプルが「きれい」であるのは相対的なものに過ぎず、同様に傷で覆われている。
- 003 / 004:内部の暗欠陥の面積は480 / 440(軽微)である。それらの真の欠陥はエッジの欠けであり、内部検出円の外に位置するため、ルール経路で処理される(セクション 26.4)。
002の例は自己参照経路のロバスト性を裏付けている。汚れの塊は盤面より100グレースケールレベル暗く、ノイズの裾から遠く離れているため、閾値の緩急にかかわらず確実にバンドを越える。一方、005の傷は別の極端を示している——それらは盤面よりわずか十数から数十グレースケールレベル明るいだけであり、ノイズの裾に接しており、閾値調整の真の戦場となる箇所である。
26.3 閾値のジレンマ
正常設定の \(k=5\) は根拠のない値ではない。同一の自参照モデルと5枚のディスクを用い、厳しい(\(k=3\)、帯幅≈26)、正常(\(k=5\)、≈43)、緩い(\(k=8\)、≈70)の3水準で閾値走査(下限値 \(a=10\)、最小連結成分30)を行った際の、極性ごとに分割した検出面積を以下に示す(手動で計算した決定論的帯域であり、セクション 26.5 のSDK出力と交差検証済みである)。
| ディスク(欠陥) | 暗欠陥 厳 | 正常 | 緩 | 明るい傷 厳 | 正常 | 緩 |
|---|---|---|---|---|---|---|
| 001 明るい異物 | 5939 | 2960 | 1935 | 4984 | 864 | 179 |
| 002 暗汚染 | 12065 | 9811 | 9133 | 4592 | 241 | 0 |
| 003 エッジ欠け | 5228 | 480 | 0 | 8729 | 1552 | 74 |
| 004 エッジ欠け | 4168 | 440 | 109 | 13345 | 1520 | 163 |
| 005 金サンプル | 2204 | 343 | 35 | 13384 | 2934 | 236 |
表中の2種類の欠陥の検出結果の違いが、欠陥検出の根本的なジレンマである。暗汚染と異物は全ての閾値を貫通して検出される:002の暗欠陥は厳しい設定での12065から緩い設定での9133までほとんど変化せず、001の異物も5939から1935まで安定して検出されている——これらはコントラストが十分に強く、「必検出」の真の欠陥である。一方、スクラッチと粒状欠陥は閾値に極めて敏感である:金サンプル005の明るい欠陥の検出量は、厳しい設定での13384ピクセルから緩い設定での236ピクセルまで急減し、003、004の明るい傷も桁違いに減衰している。図 26.4 は005の両極端の結果を並べたものである:左図(厳しい設定)では盤面に検出された細かいスクラッチと繊維状の粒が密集しており——もしスクラッチが許容可能な外観上の瑕疵であれば、これらは虚警(false alarm)である;右図(緩い設定)では画面がほぼクリーンになり、最深の数本のスクラッチのみが残っている。
これはまさに実物サンプルが合成シーンよりも正直である点である:ここに「クリーンな良品」は存在しない——全てのディスクにスクラッチがあり、「欠陥」と「瑕疵」の境界は物理ではなく規格によって決まる。チューニングの工学的な手法は両端からの挟み込みである:まず「合格」と判定されたディスクのセットで閾値を絞り、許容可能な瑕疵(浅いスクラッチ)がちょうど報告されなくなり、虚警が許容されるPPM水準まで押し下げられた時点で下限値が得られる;次に既知の必検出真欠陥(汚染、異物、欠け)で検出性能を検証し、上限値が得られる。2つの境界の間が動作窓である——もし窓が存在しない(最も浅い必検出欠陥と許容可能な瑕疵が濃淡値上分離不可能である)場合、変更すべきは閾値ではなく、照明角度、波長帯域、解像度といった撮像系である(チャプター 4 の暗視野/明視野の選択は、多くの場合この窓を拡げるために行われる)。
これは チャプター 7 の教訓と同型である:閾値の「自動」は単に閾値を選択する行為を自動化しただけで、自身のシーンへの適合を保証するものではない。変動モデルの「自動公差」も同様で——\(k\sigma\) が自動的に適応するのは金サンプルに存在するテクスチャノイズであり、「どのずれが欠陥とみなされるか」は依然として規格によって引かれる人為的な境界線であり、「自動」であることは検査の免除を意味しない。
26.4 ルールベースルート:エッジと輪郭の欠陥
自参照変動モデルは盤面内部の汚染、異物、スクラッチには優れるが、003、004のようなエッジ欠けには対応できない——これらは内部検出円の外側に位置し、本質的にはディスクの輪郭が本来の円からずれているものである。合否条件が幾何学的ルールとして記述できる場合(例えば「エッジは半径760の円であるべき」)、SciVisionはルールベースルートのモジュールを2つ提供しており、ここでは予備的な紹介にとどめる(本章では実演しない)。
単一エッジ欠陥検出(SingleEdgeDefectDetection、マニュアル8.11)は「エッジは直線/滑らかであるべき」という要求を対象とする:一連の探索線に沿って基準エッジと実エッジの点ペアをそれぞれ抽出し、各ペアについて距離と角度のずれを計算し、閾値を超えた場合にNGと判定する。本質的にはキャリパー式(チャプター 20)のラインごとの測定と規格判定を組み合わせたものであり、プレス部品のバリ、刃先の欠け、シール材の切れ目といった片側局所異常に適する——まさに本セットの003、004フィルタエッジの欠けに対応する:ディスクの理論円を基準エッジとし、実エッジの内側への凹みが規格外となった箇所が欠けとなり、金サンプルは不要である。
輪郭欠陥検出(ContourDefectDetection、マニュアル8.14)は実輪郭とテンプレート輪郭を全体として比較し、規格外の判定に加えて欠陥の分類(断裂、凹み、隆起、微細バリ)を出力する。輪郭ペア(contour pair)間の幅欠陥検出にも対応し、テンプレートから塗布軌道を生成することもできる——これらの機能は明らかに点塗布/塗膜検査を対象としている:接着剤の経路が途切れていないか(断裂)、接着剤が堆積していないか(隆起)、接着剤が不足していないか(凹み)、接着剤の幅が規格内か(輪郭ペアの幅)。チャプター 24 の輪郭比較(ContrastContour)と同系列である:後者は連続的なずれ曲線を出力するのに対し、前者は分類後の欠陥リストを直接出力する。
2つのルートの役割分担は一言でまとめられる:幾何学的事前知識がありルールを記述できる場合はルールベースルート、再現可能なサンプルはあるがルールを記述できない場合は変動モデルを用いる。盤面の繊維テクスチャの「正常」を少数の幾何学的制約で記述することはできず、サンプル間の位置合わせで再現することもできないため、単一画像の自参照統計に依存するしかない;逆に、ディスクのエッジが「半径760の円であるべき」は明確なルールであり、このためにモデルを学習する必要はない。
26.5 SciVisionでの実装
変動モデルは SCIMV::SciSvVariationModel によって提供され、学習と比較にそれぞれ1つのインターフェースが用意されている:
SCIMV::SciSvVariationModel vm;
SciImageArray trainImgs; // 良品学習画像(ピクセル単位で再現可能である必要がある)
SciROIArray maskArr; // 画像ごとのマスク領域(盤内をGenCircleで囲む)
SciROI trainRoi; // 学習領域
SciImageArray model; // 出力:[0]上限 8U [1]下限 8U [2]予約 [3]平均 32F
long rc = vm.TrainModel(trainImgs, maskArr, trainRoi,
/*absThreshold*/ 12.0f, /*varThreshold*/ 3.0f, &model);
SciImage result; SciContourArray contours;
SciVarArray lengths; SciPointArray centers;
SciROI roi; // UNDEF = 画像全体を比較(円形ROIは拒否される、後述)
rc = vm.CompareModel(testImg, model, roi, /*minLength*/ 30, /*maxLength*/ 100000,
&result, &contours, &lengths, ¢ers);absThreshold と varThreshold は セクション 26.1 の数式における \(a\) と \(k\) である。本章の実物サンプルに関する重要な発見は、位置合わせした複数サンプルの学習は繊維状の表面では使用できないことである(表 26.1 参照;金サンプル自身が1094の誤検出領域を報告する)。解決策は、CompareModel を汎用的な「帯域外ピクセル→輪郭抽出→長さフィルタリング」エンジンとして扱い、画像ごとに自己合成した自参照モデルを入力することである——model[3] に当該ディスクの平滑化背景 \(\mu\)、model[0]/[1] に \(\mu\pm\max(a,k\sigma)\) を格納し、model[2] は0に設定する。これにより、位置合わせの前提条件を回避しつつ、SDKの輪郭抽出と長さフィルタリングを再利用できる。実測による交差検証(帯幅43、\(k=5\))の結果は以下の通りである:
CompareModel エンジン(自参照合成モデル)と手動帯域のディスクごとの交差検証:欠陥ピクセルの総数は一致しており(002:9926 対 10052)、連結規則の違いによる領域の粒度のみが異なる。
| ディスク | SDK比較出力(盤内非ゼロピクセル数 / 領域数) | 手動帯域(面積 / 領域数) |
|---|---|---|
| 002 汚染 | 9926 / 100 | 10052 / 9 |
| 001 異物 | 3666 / 46 | 3824 / 18 |
| 005 金サンプル | 2768 / 184 | 3277 / 54 |
この一連のインターフェースは実測により、正確に記録しておくべきいくつかの落とし穴を露呈した:
minLengthは1以上である必要がある:0を渡すとエラー120001014が返される。ドキュメントには有効範囲が [0, 100000] と記載されているにもかかわらず、である。maxLengthは100000以下である必要がある:1000000を渡すとエラー120001015が返される(「長さフィルタリングの上限値」という直感に反し、ドキュメントにも記載されていない)——本章の実測で発見された新たな落とし穴である。- 4つの出力パラメータは全て実体を渡す必要がある:いずれか1つに
NULLを渡すと(輪郭や中心に関心がない場合でも)、直ちにクラッシュする(0xC0000005)。 CompareModelは円形ROIを受け付けない:GenCircleで生成したROIを渡すと120001015が返される(一方、TrainModelのマスクは円形を受け付ける);比較にはUNDEF/矩形ROIのみ使用でき、盤内の制限は円形マスクによる後処理で独自に行う必要がある。- 位置合わせした複数サンプルの学習は非再現性テクスチャ上で失効する:表 26.1 参照;変動モデルのピクセルごとの \(\sigma\) がサンプル間のテクスチャの位置ずれを「プロセス変動」とみなし、金サンプル自身も誤検出で埋め尽くされる。
これらの落とし穴が本章の実験方法論を形成した:閾値走査と極性統計は全て手動で計算した \(\mu\pm\max(a,k\sigma)\) モデル(32ビット浮動小数点、完全に決定論的)を用い、SDKの CompareModel 出力と交差検証を行った——002の汚染で9926対10052、001の異物で3666対3824、欠陥ピクセルの総数が一致したことで、両者が同一の数学的実装であることが確認された。これは チャプター 5 のゴールデン実験方法論を継承したものである:ドキュメントが記述しているのは約束であり、既知の挙動を用いた対照実験が検証するのが真実である——ある種のデータによって商用ライブラリのある前提条件が無効になった場合は、自前で記述した数学的参照を仲裁者とすべきである。完全なプロジェクトは code/defect_detection/ に格納されており、ファイルヘッダには全ての実測記録が保持されている。
産業事例:「金サンプル」を万能薬と誤認する
ある不織布フィルタ材の検査ラインで、印刷検査の経験を流用して位置合わせ変動モデルによる表面欠陥検出を試みた:20枚の「良品」画像を収集してモデルを構築し、ピクセルごとの平均と分散から帯域を形成して稼働させたところ、虚警率が30%を超え、ほぼ全てのフレームが小領域の誤検出で埋め尽くされた。調査の結果、根本原因は閾値でも照明でもなく、フィルタ材表面の繊維テクスチャがフレームごとにランダムであり、位置合わせ後にピクセルレベルで一致しないことにあると判明した——変動モデルがテクスチャの位置ずれをプロセス変動とみなし、公差帯域が引き延ばされた結果、全体で虚警するか真の欠陥を見逃すかのいずれかになった。最終的な解決策はサンプル間の位置合わせを放棄し、単一画像自参照に切り替えることであった:各画像を自身の大窓平滑化背景と比較し、帯域幅を当該画像のテクスチャのロバストスケールで設定した。教訓は以下の通りである:変動モデルには目に見えない敷居——位置合わせ後のピクセル単位の再現性——が存在する。印刷、ラベル貼付、スクリーン印刷はこれを満たすが、繊維、織物、シボ加工、ヘアライン加工の表面は満たさない。稼働前にまず「2枚の良品を位置合わせして減算する」健全性チェックを行い、差分画像がテクスチャで埋め尽くされている場合は、位置合わせした金サンプルに期待するのをやめ、自参照またはテクスチャ統計のルートに切り替えるべきである。
26.6 まとめ
- 欠陥検出のパラダイムは逆方向からの定義である:欠陥の形態を列挙し尽くすことは不可能であり、運用可能な定義は「正常からのずれ」である——まず正常を定義し、次にずれを定量化する。正常は、位置合わせした良品(変動モデル)、幾何学的ルール(エッジ/輪郭欠陥)、または単一画像内の統計(自参照)から得ることができる。
- 位置合わせ変動モデルには目に見えない敷居:ピクセル単位の再現性が存在する。実物の繊維フィルタディスクはこれを満たさない——5枚のディスクを位置合わせして学習すると、金サンプル自身でさえ1094個のテクスチャ誤検出領域が発生する。印刷様の表面がこのモデルの得意分野であり、繊維/織物/シボ加工面は得意分野ではない。
- 解決策は単一画像自参照帯域 \(|I-\mu|>\max(a,k\sigma)\) である:\(\mu\) は当該画像自身の大窓平滑化背景、\(\sigma\) は金サンプル残差のロバストスケール(8.69)とする。これにより、(大津の手法で背景に分類され、平滑化背景で明るく埋められた)汚染穴が大きな負の残差を持つ欠陥として明確に露呈される——002の汚染塊は9738ピクセル、コントラスト−101濃淡値であった。
- 閾値は両端からの挟み込みでチューニングする:許容可能な瑕疵で虚警を押し下げて下限値を得(金サンプルのスクラッチが厳しい設定で13384→緩い設定で236)、既知の必検出真欠陥で検出を検証して上限値を得る(汚染は全ての閾値を貫通する)。実物サンプルでは「欠陥」と「瑕疵」の境界線は物理ではなく規格によって決まる。
- 商用ライブラリの全ての前提条件はゴールデン実験を通過する必要がある:SDKの
CompareModelを自参照検出エンジンとして再利用し、手動帯域との交差検証(9926対10052)によって初めて同一の数学的実装であることが確認された;実測によりmaxLength≤100000、円形ROIの拒否といった新たな落とし穴も明らかになった——ドキュメントは約束であり、実験こそが挙動である。
ここに検出編は収束する:Blob分析は「分割と度量」をもたらし、輪郭分析は「点ごとの照合」をもたらし、形状特徴は「形状の言語」をもたらした。本章はこれらを「正常を定義し、逸脱を検出する」パラダイムへと昇華させる——そして一連の実際のフィルタ円板サンプルを用いて、パラダイムを現実に適用する際に最も重要なのは「正常はどこから来るのか」という正しい問いを立てることであると証明する。テクスチャ表面の欠陥検出に関する手法の全体像はXieの総説(Xie 2008)を参照されたい。同総説はテクスチャ分析を主軸として、統計的、構造的、フィルタベース、モデルベースの4つのアプローチを系統的に整理している。テクスチャ特徴の統計に関する古典的な出典は依然としてHaralickらによるGLCMの論文(Haralick, Shanmugam, と Dinstein 1973)である。本章では展開しなかった周波数領域(フーリエ)アプローチについては、TsaiとHsiehによる方向性テクスチャを対象とした欠陥検出が優れた模範例となっている(Tsai と Hsieh 1999)。産業用欠陥検出に関するより体系的な工学的議論(テクスチャ表面や変動モデルの拡張を含む)については、Stegerらの著作(Steger, Ulrich, と Wiedemann 2018)をさらに参照されたい。







