はじめに
こんにちは、京セラコミュニケーションシステム 森田 (@kccs_kai-morita)です。
GoogleCloudにおけるAIサービスといえばVertexAIが有名ですが、実は製造品の外観検査に特化したサービスとしてVisual Inspection AI(以下VIAIと表記)が存在します1。
今回VIAIを検証する機会がありましたので、その内容について記載します。前回の記事ではCosmetic Inspectionについて記載しましたが、今回はAssembly Inspectionについて書きます。
本記事は2022年12月ごろに作成しております。
Visual Inspectionとは
VIAIは、AutoMLと同様に画像があれば内部で自動的に機械学習モデルを構築してくれるサービスです。AutoMLは汎用的にどのような種類の画像に対してもモデルを構築してくれるのに対して、VIAI外観検査向けの細かい不良まで検知できてなおかつAutoMLより少ない枚数で高精度な機械学習モデルを構築できるという特徴があります。
VIAIにはCosmetic Inspection、Assembly Inspection、Anomaly Inspectionの3つのメニューがあります。
Cosmetic Inspectionについては、前回の記事をご参照ください。
Assembly Inspectionは基板などの組立品上で欠陥がある部品を検知するモデルを構築します。また、機械学習トレーニングする側としても嬉しい機能として、テンプレートを作成するとすべての画像に対してアノテーションをする必要がないという特徴がありました。今回はそのあたりの機能を確認しながら、Assembly Inspectionについて検証した結果を記載しています。
検証に用いたデータセット
組み立て検査用とのことですが、手元に良さそうなデータセットがなく悩んでたところ、箱詰め検査工程にも使用できるのでは?とひらめきました。そこで近くにあった同僚が買ってきたお土産品をパシャリと撮影し、検査対象のデータセットにしました。鹿児島土産の「かるかん」と「かすたどん」の詰め合わせです。中身を入れ替えたり背景変えるなどパターンを変えて合計400枚ほど取得しました。
まずこちらのように1つの画像に対して基準となるテンプレートを作成します。画像内のどこが部品(コンポーネント)なのかを矩形で示します。この画像では赤色が「かるかん」、オレンジ色が「かすたどん」として設定しました。また、どこが検査する領域か検査しない領域なのかも設定できました。
画面の表示通りすすめると、他のすべての画像に対してテンプレートに沿ったコンポーネントの部分を自動的に切り出してくれました!つまり、画像すべてに対してコンポーネントはここだと教える手間がなくなりかなり学習時間の短縮になりました。画像内の対象が多少斜めになっていても正常に切り出してくれましたが、さすがに全然違う画像だったり画像内の対象のサイズが極端に異なるものは切り出しの精度は悪い結果となりました。
次に、それぞれに対して正常以上のラベルをつけます。今回はお菓子の上に付箋を貼ったり、上下逆さまにしたりしたものを異常としております。これもすべてラベル付けしなくても学習できるようでしたので、ある程度つけたところでトレーニング開始しました。
評価結果
半日ほどでトレーニングが終了しました。トレーニング後はコンポーネントごとにモデルが作成されるようです。今回だとコンポーネントは「かるかん」と「かすたどん」のため、2つモデルが作成されました。評価結果としては、混同行列や適合率と再現率を計算した結果が表示されます。
FPFNが小さくなかなかいい結果と言えます。デプロイしたモデルに画像を予測させた結果を載せます。
上に異物があるものや、上下逆さまになっているものを異常として検知しました!
また、トレーニング後データセットを確認すると前回の記事のCosmetic同様、ラベル付けしていないコンポーネントに対して、推奨マークがついていることが確認できました。この推奨マークがついているものに対して優先的にラベリングするとより精度向上が見込めるとのことでした。
終わりに
本来は組立品の部品の検査に使うことを想定しているようでしたがこのように箱詰め検査にも使えそうな結果となりました。学習用の画像はある程度必要となるため、CosmeticInspectionほど少ない枚数ではないですが、その分ラベル付けオペレーションが楽になっていたのが特徴と言えます。
なお、料金については、検索して出てくる公式ドキュメント上で「Google営業担当へお問い合わせください」となっております。