💬

画像検査自動生成アプリケーション

に公開

1. はじめに

  • すぐに作れる簡易的な画像検査ツールの必要性
    通常の画像検査ツールを作成する場合、大量の学習データが必要であったり、学習データに対するアノテーション作業の工数が大きかったりするため、独自の画像検査ツールを作成するのは大変だったりします。

しかし、ChatGPT等の生成AIを使うことで非常に簡単に画像検査ツールを作ることができます。

  • 本ツールが解決したいポイント(迅速なアプリ構築)
    自然言語による検査内容の指定するだけで簡易画像検査ツールの作成可能になります。

2. ソリューション概要

  • 自然言語で指定するのみで、画像検査アプリケーションを自動で生成するアプリケーション

https://github.com/saotomryo/auto-visual-inspection-generator

3. アプリのワークフロー

  1. 画像アップロード

    画像をアップロードして、OKサンプルかNGサンプルかを入力します。

2. 検査仕様(日本語)入力

  1. サンプル画像による検査とフィードバック保存

    想定判定と違う場合は、検査仕様プロンプト修正候補を表示します。

  2. 単一ファイルの最終アプリ生成
    最終的にファイルとして、アプリケーションを生成します。

生成したアプリケーションの画面

※利用したデータはMVTec ADです。

4. 技術構成と設計

  • 使用技術:Streamlit / Python / OpenAI・Gemini API
  • アプリ生成ロジック(scripts/generate_runtime_app.py)の概要

4.1 画像と検査仕様を入力するだけ

アップロードした検査画像と、日本語で書いた仕様を投げ込むと、ツールが直ちに外観検査用のプロンプトを生成します。複雑なルールも文章で表現できれば、そのまま検査シナリオに反映できます。

4.1 想定判定を付き合わせて仕様を磨く

サンプル画像には「想定する判定(OK/NG)」をあらかじめ指定しておきます。ツールが実際に判定を走らせ、想定とズレれば AI が検査仕様の修正案を提示。仕様を調整して再度試す──というブラッシュアップをワンクリックで繰り返せます。

4.3 ワンクリックで配布用アプリを生成

仕様が固まったら「最終アプリ生成」ボタンを押すだけで、Streamlit ベースの単体アプリを出力。API キーを設定すればそのまま現場やクライアントに配布でき、検査判定と理由をシンプルに表示する UI が即座に完成します。

5. 実際の操作手順

  • セットアップ(依存パッケージ、API キー設定)
    githubのページセットアップ手順に従ってセットアップを行なってください。

※OpenAIまたは、Google GeminiのAPIを事前に入手してください。

  • streamlit run app_streamlit.py での操作例

6. 成果と活用シナリオ

  • 検証結果
    こちらで確認する限りでは、文章で指示出来る内容であれば、かなり複雑な検査もそれなりの精度で実施できると思っています。文章による指示のみなので、どこまでOKとするかどこからNGとするかといった境界条件を指示することは難しいです。
    few-shot学習等で境界条件を指定することで境界条件を指示することも可能と思いますが、参照する画像の枚数を増やすとAPI利用料が増えることと処理速度が遅くなる可能性がります。
  • 想定活用ケース(設計レビュー、製造ライン導入、顧客向け PoC)
  • 文章指示による検査なので、精緻な検査には向きません。また、熟練した人でしか出来ないような目視検査を代替するということも現実的ではないと思います。
    想定するケースとしては、短期間で導入しないといけない目視検査や熟練の必要性がない簡単な目視検査の代替といったことが挙げられると思います。
  • 運用上の注意点(API コスト、トークン設定)
    検査にはAPI利用料がかかります。
    複雑な検査を行う場合は、より複雑なプロンプト文を組む必要がありますがƒ、その場合API利用料および処理時間の増大が見込まれます。

7. まとめ

  • ツール導入による価値の再整理
    カスタムAIを1から作成して精度を出すには、かなりのデータ数とアノテーションの工数。並びにデータの精査が必要となります。
    商用の既存の画像AIモデルをベースにカスタムする場合も、データ数はそれほど要らないとしても高額な費用が必要になるケースが多いかと思います。
    その点、VLM(ヴィジョンランゲージモデル)ベースの検査は、プロンプト文の検討のみである程度の精度を出すことが出来るため非常に簡単に検査アプリケーションを構築することが可能です。

  • 今後の展望と読者への呼びかけ(試用案内・問い合わせ窓口など)
    簡易的に検査したいけど、高額な費用と時間をかけることは難しいといった場合は、こういったVLMベースの検査を行うことも一つ選択肢になってくるかと思います。

現状ではまだ精度が足りないと思う場合でも、VLMの性能向上により、より精度が求められる検査を行える可能性もあります。

Discussion