CNNを用いた不良検出モデルをFastAPIでAPI化してみた
大学の人工知能設計の授業で、CNNを用いた画像分類モデルの開発に取り組みました。
当初は授業課題としてモデルの構築と評価を行いましたが、「機械学習モデルを実際のシステムとして使える形にしたい」と考え、このプロジェクトを個人開発として発展させました。
製造環境を想定し、不良検出を行う画像分類モデルを構築しました。
TensorFlow / Kerasを用いてモデルを開発し、約1000件の画像データを用いて学習と評価を行いました。
データセットにはクラス不均衡が存在していたため、AccuracyだけでなくConfusion MatrixやROC Curveを用いてモデルの性能を分析しました。
特に、製造検査において重要となる欠陥の見逃し(False Negative)を減らすことを重視しました。
さらに、このモデルを実際のシステムとして利用できるようにするため、FastAPIを用いて機械学習モデルをREST APIとして実装しました。
画像をアップロードすると推論結果を返すAPIを作成し、モデル推論をWebサービスとして利用できる形にしました。
このプロジェクトを通じて、機械学習モデルを研究で終わらせるのではなく、実際のサービスとして利用できるシステムとして実装することの重要性を学びました。
このプロジェクトのコードはこちらです。
https://github.com/hajimoo/defect-detection-api