同じAIモデルで、入力だけを変えてみた。
LIVE画像とFORESIGHT STEREO®、同一個体・同一枚数・同一のE3 ENGINE®異常検知アルゴリズムによる比較実証。変数はセンサー入力の一点のみ。
FORESIGHT STEREO® = Photometric Stereo × TOMOMI RESEARCH の画像処理技術。
「良品はみな似ていて、不良品はそれぞれ違う」――良品のみを学習する異常検知はこの前提に立つ。本稿はその前提が入力チャンネルによってどう変わるかを、128個体のスコア分布から検証する(08 章で数値化)。
同一個体(BU_30分類、外周の凸状欠陥)に対する異常スコアヒートマップ。LIVEでは反応が輪全体ににじんで広がるのに対し、FORESIGHT STEREOでは欠陥の実位置に反応が収束している。
2D画像は、見た目に左右される
外観検査AIは、良品の見た目を大量に記憶し、そこから外れたものを異常として検出する。この時、入力が通常のカメラ画像(LIVE)だと、スコアは反射の強さ・照明の当たり方・素材の色ムラといった「見た目」の変動をそのまま拾ってしまう。結果として、良品どうしのスコアがばらつき、良品と不良品のスコア帯が重なりやすくなる。しきい値をどこに引いても、誤警報(良品の見逃し判定)か、欠陥の見逃しのどちらかが増える。
(同じ個体のFORESIGHT STEREOスコアは0.12)
(同じ個体のFORESIGHT STEREOスコアは0.26)
どちらも良品のLIVE画像である。右の個体は内周のふちに強い反射が出ているが、これは欠陥ではなく照明条件によるものである。それでもAIの異常スコアは0.23と0.71で3倍以上開き、右はこのデータセットで最も高いスコアがついた良品となった。しきい値をどこに引いてもこの1枚は不良品側に落ちる。同じ2枚をFORESIGHT STEREOで見るとスコアは0.12と0.26に収まり、反射の差はスコアにほとんど残らない。
推定ではなく、形そのものを測る
FORESIGHT STEREO® = Photometric Stereo × TOMOMI RESEARCH の画像処理技術である。対象物を固定したまま照明の向きだけを変えて複数枚撮像し、明るさの変化から画素ごとの表面法線を解く Photometric Stereo(フォトメトリックステレオ)に、当社の画像処理技術を組み合わせている。ここから再構築される「3D Surface(表面形状)」は、反射強度そのものではなく物体表面の形を表す量であり、照明条件の変動を受けにくい。本稿の検証で入力に用いたのは、この3D Surface出力(輪郭抽出・バンドパスフィルタ処理済み)である。
欠陥は模様に紛れる
欠陥が起伏として現れる
同一個体(DE_15 12-27-23)を2つのチャンネルで見たもの。左のLIVE画像では欠陥が周囲の模様に紛れるが、右の3D Surfaceでは輪の上部に形状の変化として立ち上がる。異常スコアはLIVE 0.41、FORESIGHT STEREO 0.55。3D Surface画像は起伏が微小なため、本稿の他図と同じ強調幅(中央値±22階調)でコントラストを強調している。
異常検知アルゴリズムはE3 ENGINE®を用いた。良品画像のみを学習し、パッチ単位の最近傍距離でスコアを算出するコアセット型のモデルで、LIVE条件・FORESIGHT STEREO条件のあいだでパラメータを一切変えていない。変えたのは入力画像の種類だけである。
同一個体・同一枚数・単一変数の比較
TR-100(AI外観検査システム)で撮像した同一部品・同一個体を、LIVE画像とFORESIGHT STEREO(3D Surface)の両方で取得し、それぞれ独立にE3 ENGINE®モデルを学習・評価した。テストセットの構成は両条件で完全に一致している。
検証の設計。同一個体を2つのチャンネルで取得し、異常検知アルゴリズムとそのパラメータ(img_512 / crop_16 / patch_3 / stride_1 / percentage_0.1)は両条件で完全に固定した。したがって結果の差は入力チャンネルの違いのみに帰属できる。
| 分類 | 内容 | 枚数 |
|---|---|---|
| OK | 良品 | 35 |
| BU_30 | 欠陥種別 | 30 |
| DE_15 | 欠陥種別 | 15 |
| RO_33 | 欠陥種別 | 33 |
| SC_15 | 欠陥種別 | 15 |
| 合計 | LIVE / FORESIGHT STEREO 各条件 | 128 |
評価指標について
分離性能は ROC-AUC・PR-AP(平均適合率)・最適しきい値でのF1で評価した。加えて本稿では「良品の最高スコア〜不良品の最低スコア」の幅を重複ゾーンと呼び、両クラスがしきい値だけでは分離しきれない帯として可視化する。
なお実運用のE3 ENGINE®はOK/Human_Check/NGの3値で判定するが、本稿ではROC/PR解析のため良品・不良品の2値に単純化して評価した。
分離性能はすべての指標で向上
※ 横軸は0.90〜1.00の範囲を拡大表示している(0起点ではない)。棒の長さではなく点の位置で値を示す形式のため、拡大表示でも大小関係を誤らせない。
AUCの差は0.035ポイント。これを「誤り率(1−AUC)」で読み替えると 6.5% → 3.0%、約54%の削減にあたる。PR APも0.946→0.989と、適合率と再現率の両立度で明確な差が出ている。
同じデータをヒストグラムで見ると、分布の違いがそのまま現れる。横軸は異常スコア、縦軸は枚数。LIVEでは良品(青)と不良品(灰)の山が大きく重なっているのに対し、FORESIGHT STEREOでは良品の山が左に締まり、不良品の山から切り離されている。
ビン幅0.01。これは各判定結果図に出力されたスコア(小数第2位)の分解能そのもので、これ以上細かくしても値の存在しない空ビンが並ぶだけになる。両パネルは同一の軸スケール。集計値は公表済みのROC曲線・混同行列と整合する。
この重なりの幅だけを抜き出すと、両条件の差はさらに際立つ。良品の最高スコアと不良品の最低スコアに挟まれた帯が、しきい値をどこに引いても誤判定が避けられない「重複ゾーン」である。
実運用のしきい値(ROC曲線上のYouden最適点)で判定した場合の内訳は次のとおり。
パーセンテージは各行(実際のクラス)に対する割合。FORESIGHT STEREOでは誤警報が12件→6件と半減する一方、見逃しが0件→4件に増えている。これはF1最大化で自動選定されたしきい値の性質によるもので、運用時のしきい値設計で調整すべき点である。
10組の実例で見る、反応の出方の違い
同一個体をLIVE画像とFORESIGHT STEREOでそれぞれ評価した異常スコアヒートマップを、欠陥種別ごとに10組掲載する。恣意的な抽出を避けるため、各種別から等間隔で選出しており、FORESIGHT STEREO側の反応が弱い事例や、LIVEでも十分に検出できている事例も含めている。各画像をクリックすると、元の解析結果(原画像・スコアマップ・ヒートマップ・検出マスク)を別タブで開く。
画像の見方
ヒートマップは各画像のスコア範囲で個別に正規化されているため、条件間で色の明るさを直接比較することはできない。比較すべきは反応が欠陥位置に集中しているか、面全体に散っているかという空間的な集中度である。
LIVEは輪全体に反応が散るのに対し、FORESIGHT STEREOは欠陥位置の一点に反応が集中している。
FORESIGHT STEREOでは上部の弧状の反応として欠陥が浮かび上がる。
FORESIGHT STEREOの反応は小さいが、位置は特定できている。
線状の欠陥が、FORESIGHT STEREOでは明瞭な弧として強く出現する。
FORESIGHT STEREO側の反応は弱く、判定としては境界的な事例。
この個体はLIVEでも欠陥部が明瞭に出ており、両条件とも検出できている。
両条件が同一箇所に強く反応した事例。
FORESIGHT STEREOでも反応が分散した事例。RO_33に残る重複の実例。
FORESIGHT STEREOでは線状の反応として縦方向に現れる。
良品。LIVEでは全面に反応が出るがFORESIGHT STEREOではほぼ消失し、誤警報の抑制につながっている。
見逃した4枚に何が起きていたのか
FORESIGHT STEREOで見逃しとなった4枚を個別に調べた。まず数値から見ると、4枚のうち3枚はしきい値をわずか0.007下回っただけであり、検出の失敗というより境界上の判断である。
| 欠陥種別 | 個体 | FORESIGHT STEREOスコア | しきい値との差 | LIVEスコア |
|---|---|---|---|---|
| RO_33 | ①12-11-35 | 0.20 | −0.027 | 0.36 |
| RO_33 | ②12-08-38 | 0.22 | −0.007 | 0.42 |
| SC_15 | ③12-20-07 | 0.22 | −0.007 | 0.39 |
| SC_15 | ④12-21-18 | 0.22 | −0.007 | 0.37 |
①〜④は下の図に対応する。FORESIGHT STEREOのしきい値は0.227、LIVEは0.336。LIVE側ではいずれも検出できているが、うち1枚(12-11-35)はしきい値を+0.024上回っただけで、LIVEにとっても境界事例である。
次に画像を見ると、原因は明確である。見逃した4枚はいずれも、3D Surface(表面形状)にほとんど起伏が現れていない。下の①〜④は上の表の4行にそのまま対応する。
FORESIGHT STEREO 0.20
FORESIGHT STEREO 0.22
FORESIGHT STEREO 0.22
FORESIGHT STEREO 0.22
見逃した4枚の3D Surface入力。局所的な起伏として現れているものがない。
同じ欠陥種別でも、起伏を伴う欠陥であれば3D Surfaceにはっきり現れる。次の2枚は比較用の個体であり、上の表には含まれない。
FORESIGHT STEREO 0.54(検出できた個体)
FORESIGHT STEREO 0.43(検出できた個体)
検出できた個体の3D Surface入力。左は線状の起伏、右は筋状の凹凸が見えている。
一方、同じ個体をLIVE画像で見ると反応が出ている。見逃しはセンサーが対象を捉えられなかったのではなく、3D Surfaceというチャンネルの性質による。
LIVE 0.36 で検出できている
LIVE 0.37 で検出できている
3D Surface画像は起伏が微小なため、6枚とも同一の強調幅(中央値±22階調)でコントラストを強調して表示している。LIVEヒートマップは未加工。画像をクリックすると拡大表示する。
これは欠点ではなく、同じ物理の裏表である
FORESIGHT STEREOの3D Surfaceは形状を測るチャンネルであり、反射率や色の変化そのものには反応しない。この性質こそが照明変動に強く、良品分布を締めて誤警報を半減させた理由である。裏を返せば、形状変化をほとんど伴わない外観だけの欠陥(変色・ごく浅い擦り傷など)には鈍くなる。今回の4枚はいずれもこのタイプにあたる。強みと弱みは同じ原理から生じており、切り離すことはできない。
対策1:センサーは形状と外観を同時に持っている
FORESIGHT STEREOは1回の撮像でLIVE/2D Texture(反射率)/3D Surface(形状)/Surface Normal(法線)の4出力を同時に取得する。これらは同一光学系・同一画素で完全に位置合わせされたデータである。本検証で入力に用いたのは3D Surfaceの1チャンネルのみであり、外観系の欠陥を担うチャンネルは、すでに同じ撮像の中に存在している。形状系と外観系を別チャンネルで受け持たせれば、今回の4枚は本来カバーできる範囲にある。
対策2:3値判定(OK / Human_Check / NG)を設計する
本稿はROC解析のため良品/不良品の2値に単純化したが、E3 ENGINE®の実運用出力はOK/Human_Check/NGの3値である。しきい値を2本引き、判断が割れる帯だけを人に渡す設計であり、この帯の置き方は数値で決められる。
良品のスコア最大値を M = max s(良品)、不良品のスコア最小値を m = min s(不良品) とする。tlo が m を上回れば、スコア m の不良品が自動OKに落ちて見逃しになる。thi が M を下回れば、スコア M の良品が自動NGに落ちて誤警報になる。したがって
この設計を本データセットに当てはめると、128枚の内訳は次のようになる。
数字は枚数(全128枚)。LIVEは自動でNGにできる個体が1枚もない。良品の最高スコア0.71が不良品側の最高スコアと並んでおり、これを上回る領域が存在しないためである。対してFORESIGHT STEREOは不良品93枚中75枚(80.6%)を人手を介さず確定NGにできる。
生産ラインに換算する:クラス構成の違いを補正する
ただし上の内訳をそのまま現場の工数と読んではいけない。本テストセットは不良品が73%を占める評価用の構成であり、不良率が数%以下の実ラインとは全く違う。人手確認率は不良率 p の関数として書き直す必要がある。
| 不良率 p | LIVE | FORESIGHT STEREO(3D Surface単独) |
|---|---|---|
| 0.5% | 34.6% | 68.3% |
| 1% | 34.9% | 68.1% |
| 5% | 37.6% | 66.1% |
| 73%(本テストセット) | 82.0% | 32.8% |
人手確認率 h(p)。テストセット上での「LIVE 82% 対 FORESIGHT STEREO 33%」という差は不良品が多数を占める構成に由来するもので、実ラインの工数には直結しない。
実ラインの不良率では、3D Surface単独のFORESIGHT STEREOは人手確認が多くなる
不良率1%のラインでは LIVE 34.9% に対し FORESIGHT STEREO 68.1% と逆転する。生産では流れるもののほぼ全てが良品なので、工数は hOK(良品が帯に入る割合)に支配される。FORESIGHT STEREOは m=0.20 が良品分布の中央値と重なっているため、良品を自動OKにできる割合が31.4%に留まる(LIVEは65.7%)。
この制約は、外観系チャンネルを足せば外れる
m を押し下げているのは、本章前半で見た外観系欠陥の4枚(スコア0.20〜0.22)にほかならない。この4枚を2D Textureチャンネル側が担当できれば、3D Surface側の m は0.23に上がり、帯の幅は Δ=0.06 から Δ=0.03 に狭まる。
| 構成 | 良品を自動OK | 不良品を自動NG | h(1%) |
|---|---|---|---|
| LIVE | 65.7% | 0.0% | 34.9% |
| FORESIGHT STEREO:3D Surface単独 | 31.4% | 80.6% | 68.1% |
| FORESIGHT STEREO:外観チャンネル併用(試算) | 77.1% | 84.3% | 22.8% |
最下段は実測ではなく条件付きの試算である。外観系の4枚を別チャンネルが確実に拾えたと仮定して3D Surface側の m を再計算したもので、2D Textureチャンネルでの検証は本稿では行っていない。この前提が成立すれば、人手確認率はLIVEの34.9%を下回る22.8%となる。
工数への換算
| 構成 | 人が見る枚数/日 | 目視工数/日 |
|---|---|---|
| LIVE | 349枚 | 0.97時間 |
| FORESIGHT STEREO:3D Surface単独 | 681枚 | 1.89時間 |
| FORESIGHT STEREO:外観チャンネル併用(試算) | 228枚 | 0.63時間 |
N=1000枚/日、τ=10秒/枚、不良率1%とした場合。N と τ は現場条件に依存する仮定値である。
しきい値のマージン感度
m と M は有限標本(良品35枚・不良品93枚)の最小値・最大値であり、母集団の真の境界ではない。実運用では余裕 δ を持たせて tlo = m − δ、thi = M + δ とするのが安全側の設計になる。その代償が人手確認率の増加である。
| マージン δ | LIVE | FORESIGHT STEREO(単独) | FORESIGHT STEREO(併用・試算) |
|---|---|---|---|
| 0 | 34.9% | 68.1% | 22.8% |
| 0.01 | 46.3% | 76.6% | 34.1% |
| 0.02 | 63.2% | 76.7% | 34.2% |
| 0.03 | 63.2% | 90.8% | 68.2% |
不良率1%における人手確認率 h。いずれの構成も δ に敏感であり、この設計は m・M の推定精度に依存する。実導入時は十分な枚数で両端を推定し、マージンを含めた工数を見積もる必要がある。
単一しきい値で見逃し0を強制する場合はLIVEが有利
しきい値を1本だけ引いて見逃し0を強制する運用では、このデータセットにおいてはLIVEの方が誤警報が少ない(約34%対約48%、公表ROC曲線より)。AUCが高いことは全体的な分離度の優位を意味するが、あらゆる動作点で優位であることまでは保証しない。したがって推奨するのは単一しきい値の単純な置き換えではなく、3値判定またはチャンネル併用である。
なぜ効くのか、どこまで言えるのか
光の当たり方が変わっても、対象物の形そのものは変わらない。FORESIGHT STEREOの3D Surfaceは、この意味で照明条件の影響を受けにくい特徴量であり、これが良品スコアの外れ値を消し、重複ゾーンを84%縮小させた主因と考えられる。実際、LIVE条件では良品側に1枚の外れ値(スコア0.71)があり重複を大きく広げていたが、FORESIGHT STEREO条件ではこの種の外れ値は見られなかった。
改善は一様ではない — RO_33の残存重複
欠陥種別ごとに見ると、RO_33はFORESIGHT STEREO条件でも一部が良品帯に近接しており、他の欠陥種別(BU_30・DE_15)ほど明確には分離できていない。最適しきい値での見逃し4件もこの近接域から出ている。原因の個別分析と対策は06章にまとめた。
検証の限界
本検証はTR-100で撮像した単一部品・単一データセット(n=128)による結果であり、あらゆる対象物・環境で同等の性能を保証するものではない。また今回の「最適しきい値」はF1最大化で自動選定したものであり、品質保証の実運用で優先されるべき基準とは必ずしも一致しない。単一しきい値で見逃し0を強制した場合の誤警報率は本データセットではLIVEの方が低く(06章参照)、AUCの優位はすべての動作点での優位を意味しない。
良品はみな似ているか
幸福な家庭はみな同じように似ているが、不幸な家庭は不幸のさまもそれぞれ違うものだ。 — トルストイ『アンナ・カレーニナ』
良品のみを学習する異常検知は、この一文をそのまま前提にしている。良品はみな似ているから、その「似ている範囲」を記憶できる。不良品はそれぞれ違うから、記憶した範囲から外れる。本稿の出発点にあった仮説――FORESIGHT STEREOは良品の分布を集め、不良品を良品から切り離す――は、この原理が成り立つかどうかを問うている。
原理が成り立っているなら、数値としては不良品のばらつきが良品のばらつきより大きいはずである。両者の標準偏差の比をとればよい。
各群の平均 ± 1標準偏差の帯。LIVEでは良品の帯が不良品とほぼ同じ幅を持ち、大きく重なっている。FORESIGHT STEREOでは良品の帯が狭く締まり、不良品の帯から離れる。
| 指標 | 原理が成り立つなら | LIVE | FORESIGHT STEREO |
|---|---|---|---|
| 良品のばらつき σ良品 | 小さい | 0.075 | 0.035 |
| 不良品のばらつき σ不良品 | 大きい | 0.081 | 0.076 |
| アンナ・カレーニナ比 | 1より大きい | 1.08 | 2.17 |
| 四分位範囲の比(外れ値に頑健) | 1より大きい | 2.57 | 3.33 |
| 良品がスコア軸に占める幅の割合 | 小さい | 100% | 32.6% |
| 分離度(Cohen's d) | 大きい | 1.33 | 1.94 |
σ は母標準偏差。良品35枚・不良品93枚。スコアは小数第2位までの値を集計しているため、σ の下2桁には量子化の影響が含まれる。
LIVE画像では、原理は成り立っていなかった
LIVEのアンナ・カレーニナ比は1.08――良品のばらつきは不良品とほとんど変わらない。良品はスコア軸の全幅にわたって散らばっており(0.23〜0.71)、不良品の範囲(0.34〜0.71)よりむしろ広い。「良品はみな似ている」という前提そのものが崩れている。
ただしこれは良品が実際にばらついているという意味ではない。測っていたものが形ではなく見た目だったということである。01章で見たとおり、人の目には同じに見える良品2枚が0.23と0.71に分かれる。反射や照明の揺れがそのままスコアの揺れになっていた。
形を測ると、良品は似てくる
FORESIGHT STEREOでは比が2.17に上がる。良品のばらつきは0.075から0.035へと半分以下になり、スコア軸に占める幅は100%から32.6%に縮む。一方で不良品のばらつきは0.081から0.076とほぼ保たれたままである。良品だけが集まり、不良品は散らばったまま残った――これは仮説が要求していた挙動そのものである。
仮説は支持される。「良品の分布を集め、不良品を良品から切り離す」という期待は、アンナ・カレーニナ比 1.08 → 2.17、良品の標準偏差の半減、Cohen's d 1.33 → 1.94 という形で確認された。付け加えるなら、この検証が示したのはLIVE画像では原理がそもそも成り立っていなかったという点である。良品を似せたのではなく、良品が似ているという事実を、初めて正しく測れるようになったということである。
良品が似ていることを、初めて測れた
異常検知アルゴリズム(E3 ENGINE®)を完全に固定し、入力をLIVE画像からFORESIGHT STEREO®(3D Surface)に変えるだけで、良品・不良品のスコア分離度は ROC AUC 0.935→0.970、重複ゾーン −84%、最適しきい値での誤警報率 34.3%→17.1% と、いずれも明確に改善した。分布の形で言えば、アンナ・カレーニナ比 1.08 → 2.17、良品の標準偏差は半減した。
重要なのは、良品が似るようになったのではないということである。良品はもともと似ていた。LIVE画像で測っていたのは形ではなく見た目であり、照明と反射の揺れが良品のばらつきとして記録されていた。形を測った瞬間に、良品は本来の姿どおり一箇所に集まった。「良品はみな似ていて、不良品はそれぞれ違う」という異常検知の前提を、初めて正しく観測できたということである。
ただし本稿は、そこで止まらずに次の3点も記録しておく。
- 実運用のしきい値は単一しきい値ではなく、3値判定(OK / Human_Check / NG)で設計することを推奨する。単一しきい値で見逃し0を強制する運用では、本データセットにおいてはLIVEの方が誤警報が少ない(06章)。
- 形状変化を伴わない外観だけの欠陥は3D Surface単独ではカバーできない。2D Textureなど外観系チャンネルとの併用を前提に設計する必要がある(06章)。
- 本検証は単一部品・単一データセット(n=128)による結果であり、対象物と現場条件を変えた追加検証を継続する。
