難易度:★★★☆☆
製造業でのAI導入は今後ますます発展が見込まれます。現状では人で品質管理をしている場合でも、データを集め、機械学習や深層学習を用いることにより省力化やコスト削減を実現することが可能です。本クエストでは製造業へのAI導入という課題に対して、鋳造製品の画像データを用いて、PyTorchというライブラリを使いながら、欠陥検出を予測する画像分類モデルの作成に挑戦します。クエストを通じて、画像データへの対処方法、深層学習(ディープラーニング)を用いた予測モデルの作成方法を学びます。
近年では製造業におけるAI・IoT技術の導入が進んでおり、「インダストリー4.0」「スマートファクトリー」といった概念も登場しています。しかし、日本企業のAI導入率まだ低い状況が続いています。SIGNATE鋳造株式会社も同様に、AIを導入したことが今まで一度もない会社の1つです。SIGNATE鋳造株式会社の業績のメインとなる鋳造製品に関しても、欠陥を必ず人が目でチェックしており、人件費や時間が多くかかっています。そんな現状を打開するために鋳造製品の画像データを収集し、AIによって欠陥検出を行うためのPoCプロジェクトが発足しました。収集したデータを用いるとどのくらいの精度の画像分類モデルを作ることができるのか、実際に画像分類モデル作成の流れに沿って取り組んでいきましょう。
Mission 1
事前に鋳造製品の画像データを収集しそれぞれの画像に対して正常品であるのか、欠陥品であるのかをアノーテーション(ラベル付)を行いました。ただし、データを収集すれば、分類モデル作成の準備は終わりではありません。画像処理ライブラリPillowを用いながら、画像の読み込みや画像の確認をしていきましょう。また確認をしていく中で、欠陥品とされるデータにはどのような傾向があるのかも掴んでいきましょう。データ分析の世界では誤認識や不備の検知漏れといったリスクを伴うため、データの確認は非常に重要な作業の1つです。本ミッションでは、ライブラリを使った画像データの読み込み方、画像データに対しての図形描画、画像データの特徴量抽出を学びます。
それでは早速、鋳造製品画像を見ていきましょう。
Pythonのライブラリを使って画像データを読み込み、どのようなものが正常品としてOKな製品かであるのか、どのようなものが欠陥品としてNGな製品であるのかを確認しましょう。
画像データは`Pillow`によって様々な特徴量を作成することができます。
実際に色々な形式にデータを変化させて、どのような傾向が現れるのか確認しましょう。
Mission 2
画像分類モデルを作成する前に収集したデータがどのくらいの量あるのかの事前確認を行います。
また現状では、画像データがそのままとなっており画像分類モデルがデータを認識できる状況ではありません。
モデルがデータを認識するためには、データ1つ1つに対して対応するラベルを紐つけ、データ正規化などの前処理を行う必要があります。
本ミッションでは画像認識モデル作成準備として、収集したデータの全量の把握、画像分類モデル用のデータセットの作成方法を学びます。
画像分類モデル作成のために収集したデータがどのくらいあるのかを確認していきます。
また学習データに重複などの抜け漏れがないかの確認を行います。
画像分類モデル作成のためのデータセットを作成していきます。
Mission 3
いよいよモデル作成に移ります。
一言で画像分類モデルと言っても、昔から使われているモデルや最新の論文で発表されたモデルなど様々あります。
また各々のモデルにメリットやデメリットが多くあります。
今回の鋳造製品の画像データに適したモデルとは一体なんなのでしょうか。
本ミッションでは欠陥検出モデルの作成として、作成すべきモデルの選定を様々な観点から考え、今回のタスクに適しているであろう画像分類モデル「ResNet18」の理解からモデルの学習、推論までを学びます。
欠陥検出のための`ResNet18`モデルの定義作成から学習済モデルを使った推論までを行っていきます。
欠陥検出モデル`ResNet18`を学習させていきます。
画像分類モデルを学習させる方法については学びました。
今回は、学習済モデルを用いて未知画像データに対しての推論を行なってみましょう。
Mission 4
深層学習にはある領域(ドメイン)で学習したモデルを、別の領域(ドメイン)に適合させる技術があります。
この技術を転移学習と言い、様々な画像認識タスクで用いられています。
転移学習は少ないデータセットでも画像分類モデルを作成出来ることや、精度が事前学習無のモデルに比べて格段に上がる可能性があるなどの利点があります。
本ミッションでは、鋳造製品の欠陥検出モデル(ResNet18)をImageNetという100 万枚を超える画像データを使って事前学習させたモデルを元に転移学習させる方法を学びます。
また、さらなる精度向上のためデータの水増しについて、画像データ拡張ライブラリalbumentationsを使いながら学びます
欠陥検出モデル`ResNet18`を「Imagenet」というデータを事前に学習したモデルを用いて、学習させる方法を学びます。
既存のモデルの精度をより高くするために、データの水増し技術(Data Augmentation)について学びます。
本クエストでは、製造業に役立つ機械学習の活用として、鋳造製品の欠陥検出を行う画像分類モデルの作成に取り組みました。
クエスト全編を通じて学んだことをおさらいしましょう。