外観検査における「精度」とは

はじめに

外観検査を自動化するにあたり、事前の検証で精度評価を行ってから現場にシステムを導入することが一般的です。では、ここで言う「精度」とは何なのか、どれほど重要なのか、どのように精度を向上させるのかについて解説します。

精度とは

まず、精度とは何なのかを解説します。精度を表す指標は目的によって様々ですが、ここでは機械学習の判別問題においてもっとも一般的な精度指標を紹介します。

  • Accuracy
    「学習済みモデルが判別し、正解したデータの割合」で、学習済みモデルのざっくりとした性能が分かります。
  • Precision
    「学習済みモデルがラベルAと判別したラベルのうち、本当にラベルAだったデータの割合」で、ラベルAにおける誤検出(ラベル間違い)の多少が分かります。
  • Recall
    「ラベルAのデータのうち、学習済みモデルがラベルAと判別したデータの割合」で、ラベルAにおける見逃しの多少が分かります。

では、以下の例を元に上記指標を見ていきましょう。例は実際に検証した結果ではなく、適当に作成したものです。指標の計算には良品と不良品が必要になりますので、金属部品の良品/不良品(傷)画像を各100枚ずつ用意したとします。

  判別結果
不良品(傷) 良品
元のラベル 不良品(傷) 75 25
良品 5 95

この時、各指標の値は次のようになります。

  • Accuracy :(75+95) / 200 = 0.850
  • Precision
    不良品(傷) :75 / (75+5) = 0.938
  • Recall
    不良品(傷) :75 / 100 = 0.750

各指標から言えることは以下の通りです。

  • Accuracyが85%なので、学習済みモデルのざっくりとした精度は85%。
  • Precisionを見ると、傷は93.8%なので、誤検出が6.2%。
  • Recallを見ると、傷は75%なので、見逃しが25%。Recallが75%と低くなっている要因は、不良品100枚のうち25枚が良品と誤判別されているため。
  • よって、精度を上げるためには不良品を良品と誤判別してしまうのをどうにかする必要がある。

今回の結果では、不良品のうち25%を見逃してしまうため、改善の必要があります。精度が納得のいく値ではない場合、多くはデータの見直しを行うことである程度改善されます。撮影環境の変更・改善や画像処理による画像加工でうまくいくこともありますが、「ラベルの正当性」についても確認してみましょう。これは次の章で説明します。

ラベルの正当性

ラベルの正当性とは、文字通り「画像に割り振られているラベルの正しさ」です。外観検査の工程は、複数の人が目視で検査しているケースが多いと思います。外観検査を行っている人にラベリングをしてもらい、それをそのまま学習・評価データにしようとすると、いくつかの落とし穴があります。

1つ目は、人が業務中にラベリングしたデータを使うことです。業務中であれば製品1つの検査にかけられる時間はあまり長くないため、ラベルの精査をすることは非常に難しいです。また、その人の体調や勤務時間によっては、同じ製品を見てもラベリング結果が変わる可能性があります。

2つ目は、ラベリング方法が明文化されていても、人によって基準に違いがあることです。同一の製品を複数人で検査した時、人によってラベリング結果が異なることがあります。このデータをそのまま学習・評価させてしまうと、思った通りの結果が得られません。

この2点から、データの精査を行い、ラベルの正当性を皆で確認する必要があります。

例えばこのCD。右下に白い線がありますが、これは何というラベルでしょうか。

icon_cd

「傷」であるとして、100人中100人が「傷」とラベリングしないかもしれません。また、傷だと分かっていても見逃しているかもしれません。ある人は、朝見た時に傷だと判別しましたが、夕方見た時には良品とするかもしれません。これを良品として学習すると、同じような不良品を判別した時に恐らく良品と判別されます。

しかし、ただの糸くずだとすると良品にラベリングされるのが正しいと思います。これをぱっと見で不良品とラベリングし、不良品として学習すると、同じ場所に同じような糸くずが付いたデータは不良品と判別されます。

撮影環境にもよりますが、このように良品か不良品かよく分からないデータは少なくありません。重要なのは、データを精査することで、このような曖昧なデータが多く含まれている事実を把握するということです。

システム化における精度の重要性

ここまでは、精度について説明しました。では、実際に精度はシステム化においてどの程度重要なのでしょうか。単刀直入に言えば、参考にはなりますがそこまで重要ではありません。

理由は、前章で記載した通りラベルの正当性が低いことにあります。もちろんデータのラベリングが完璧に行われている可能性はありますが、多くの場合はそうではありません。数枚のデータが入れ替わるだけでも精度に影響を与えることがあるため、精査されていないデータを用いて得られた精度を見ても仕方がありません。裏を返せば、ラベルの正当性が高ければ高いほど、精度の重要性も増します。

精度は、システムが検査対象をどう判別するかの傾向を示す値に過ぎません。そこで私は、精度よりも以下の点が重要であると考えています。

  1. 製品の外観にどれほどバリエーションがあるのかを把握する。
  2. 現状、検査員の方が様々な外観に対して何を根拠に判別しているのかを把握する。
  3. システムがどう判別するのかを把握する。

これらを理解し、システムの検査基準や検査運用フローを検討し、関係者全員で調整・合意することが大切です。

上記フローを進めるためには画像や実物を一つ一つ確認していく地道な作業が必要になります。そういった作業を簡略化するためのツールが当社の「gLupe Monitor」です。大量にあるデータの検査結果が画像だけでなく数値やグラフでも確認できるため、データの精査が容易に行えます。

  gLupe Monitor

終わりに

外観検査における分類の精度は、分類の傾向を簡単に知ることが出来るので有効な指標です。しかし、その値だけを見て良し悪しを判断するのでは意味がありません。なぜその値になったのか考察し、改善策を見つけることが本当に重要なことなのです。