2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【第二編】「高価なAI物体検出システムを買う前に読んでほしい」— ライセンスフリーで使える「BILT」ライブラリ

2
Last updated at Posted at 2026-03-31

はじめに:現場でAIを使いたいのに、なぜ難しいのか

製造現場でAI導入を検討したことがある方なら、こんな壁にぶつかったことはないでしょうか。

  • 「学習データを何百枚も用意する工数がない」
  • 「GPUサーバーを調達する予算がない」
  • 「AIベンダーに頼むと高額になる」
  • 「導入したとしても、ライン変更のたびに再学習が必要になる」

現場のカイゼンスタッフや工場ITエンジニアが「自分たちで回せるAI」を持てたら——そのギャップを埋めるために作られたのが、オープンソースツール BILT_Workflow_JA です。

今回の検証では、学習用6枚・検証用3枚、合計わずか9枚の画像で、信頼度閾値80%超の物体検出を達成しました。 しかもGPUなし・特別なチューニングなしです。

本記事では、このツールを使って工場の品質管理・工程監視・異常検知を構築する方法を、製造現場のエンジニア目線で解説します。


BILT_Workflow_JA とは

BILT_Workflow_JA は、物体検出に必要な3つの作業をひとつのWebアプリに統合したツールです。

① 画像にラベルを付ける(アノテーション)
        ↓
② AIモデルを学習させる(BILTトレーニング)
        ↓
③ カメラ映像からリアルタイムに検出・判定する(ワークフロー実行)

ブラウザで操作するため、Pythonの知識がなくても大半の操作は画面上から行えます。工場の生産ラインPCや検査ステーションのPCにそのまま導入でき、インターネット接続不要のオフライン完結で動作します。

ライセンスはApache License 2.0。 商用クローズドプロジェクトへの組み込みが可能で、改変・再配布も自由です。著作権表示(Copyright (C) 2026 Rikiza89)さえ残せばOKです。社内ツールとして自社カスタマイズして使うことも問題ありません。


なぜ9枚で動くのか:「事前学習」の力

通常の機械学習モデルは「ゼロから」特徴を学ぶため、数百〜数千枚の画像が必要です。

BILTが使う ImageNet事前学習済みバックボーン は、すでに120万枚以上の画像から「エッジ・テクスチャ・形状を見分ける力」を持っています。あとは「この工場のこのネジがどのクラスか」という差分だけを少ない画像から追加学習すればよい。

イメージとしては:

ゼロから学ぶ = 読み書き・算数・理科・社会すべてを一から教える
事前学習 = すでに義務教育を終えた人に、製品知識だけを教える

これが少ない画像でも動く理由です。

モデルサイズの選び方

バリアント バックボーン 入力サイズ ファイルサイズ 推奨ハードウェア
spark MobileNetV2 320px ~9MB Raspberry Pi 4、低スペックPC
flash MobileNetV3-S 416px ~13MB 産業用小型PC、エッジデバイス
core MobileNetV3-L 512px ~19MB 一般的な工場PC(推奨)
pro ResNet-50 640px ~55MB GPU搭載PC、高精度が必要な検査
max ResNet-101 640px ~95MB GPU必須、最高精度が求められる用途

今回の9枚検証で使ったのは最軽量の spark です。現場の低スペックPCやRaspberry Pi 4 でも実用的に動作します。


対応環境

項目 内容
OS Windows 10/11、Ubuntu、Raspberry Pi OS(Bookworm 64bit)
Python 3.10以上
GPU 不要(CUDA対応GPUがあれば自動使用)
カメラ USBカメラ、Raspberry Pi Camera Module v3
ブラウザ Chrome、Edge(Webアプリとして動作)
ネットワーク 不要(オフライン完結)

セットアップ手順

1. リポジトリのクローン

BILTライブラリは BILT_Workflow_JA リポジトリの中に同梱されています。クローンは1回だけで完了します。

git clone https://github.com/rikiza89/BILT_Workflow_JA
cd BILT_Workflow_JA

ディレクトリ構成:

BILT_Workflow_JA/
├── bilt/               ← BILTライブラリ(同梱済み)
├── app.py
├── bilt_service.py
├── requirements.txt
└── ...

2. BILTライブラリのインストール

まずリポジトリ内の bilt ライブラリをインストールします。

cd bilt
pip install -e .
cd ..

3. 仮想環境の作成と依存パッケージのインストール

Windows:

python -m venv venv
venv\Scripts\activate
cd bilt
pip install -e .
cd ..
pip install -r requirements.txt

Linux / macOS:

python3 -m venv venv
source venv/bin/activate
cd bilt
pip install -e .
cd ..
pip install -r requirements.txt

Raspberry Pi 4(--system-site-packages が必須):

python3 -m venv venv --system-site-packages
source venv/bin/activate
cd bilt
pip install -e .
cd ..
pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu
pip install -r requirements.txt

3. 起動

# ランチャー一発起動(推奨)
python launcher.py        # Windows / Linux / macOS
python launcher_rpi.py    # Raspberry Pi

# または個別起動(ターミナルが2つ必要になります)
python bilt_service.py    # バックエンド(ポート5002)
python app.py             # Webアプリ(ポート5000)

ブラウザで http://127.0.0.1:5000 を開けば完了です。


工場での使い方:Step by step

STEP 1:プロジェクトを作成し、画像を集める

「ラベリング」ページでプロジェクトを作成します。

画像の集め方は2通りです:

  • カメラから直接キャプチャ — 実際の作業台・ラインにカメラを設置してアプリから撮影
  • ファイルアップロード — スマートフォンで撮った写真をドラッグ&ドロップ

現場のコツ: 学習画像は「実際に検出したい状況」を撮ってください。照明が異なる・角度が異なる・対象物の状態が異なる画像を混ぜるほど、本番環境での精度が上がります。

STEP 2:バウンディングボックスを描く(アノテーション)

画像を選んでキャンバス上でドラッグするだけでバウンディングボックスが描けます。クラス名(例:ネジありラベル位置OK部品欠品)を設定して保存します。

キーボードショートカット:

  • / キーで前後の画像へ移動
  • Ctrl + S で保存
  • Delete で選択したボックスを削除

80〜100枚ほどラベル付けしたら学習開始の目安です。前述の通り6枚から動作しますが、20枚以上あると安定します。

STEP 3:BILTでモデルを学習させる

ワークスペースの「BILTトレーニング」パネルを開き、以下の設定で「トレーニング開始」をクリックします。

最小構成(今回の検証設定):

パラメータ 説明
バリアント spark 最軽量・最高速
エポック数 30 学習の繰り返し回数
バッチサイズ 2 同時に処理する画像数(最小値)
デバイス 空欄 GPUがあれば自動選択

学習中はブラウザ上でリアルタイムにロスカーブが更新されます。学習が進むにつれ損失が下がっていくことを確認できます。

完了後に自動生成されるもの:

  • モデルレーティング(0〜100点) — 過学習の有無・収束度・安定性を自動採点
  • 改善提案カード — 「学習率を下げてみては」「モザイク拡張を有効化しては」など具体的なアドバイス
  • 検証画像サンプル — 実際に検出ボックスが描かれた画像が自動生成される

学習済みモデルは bilt_models/ フォルダに .pth ファイルとして保存されます。

STEP 4:ワークフローを組んで検出を自動化する

「ワークフロー」ページでは、ノードをドラッグ&ドロップして検出パイプラインを視覚的に組み立てられます。

製造ラインでの典型的なワークフロー例:

[開始]
  ↓
[BILT検出ノード]
  モデル: my_screw_detector.pth
  カメラ: カメラ0(組み立て台)
  ターゲット: ネジ × 4個以上
  タイムアウト: 30秒
  ↓成功                ↓失敗(タイムアウト)
[次の検査へ]      [アラートノード]
                  メッセージ: 「ネジ締め未完了」
                  HTTP POST: http://192.168.1.100/alert
                  スナップショット: オン

アラートノードはHTTP POSTとUDPブロードキャストの両方に対応しており、既存の生産管理システムやアンドン(工場の警告灯システム)との連携が可能です。


実際の活用シナリオ

シナリオ1:部品取り忘れ検査

組み立て後の製品をカメラで撮影し、必要な部品がすべて揃っているかを自動チェック。作業者が確認ボタンを押す前に、AIが二重確認します。

学習データの例: 「全部品あり」「部品Aなし」「部品Bなし」の3クラスを各クラス10〜20枚

シナリオ2:ラベル貼り付け確認

出荷前の製品にラベルが正しい位置に貼られているかを検出。ラベルなし・傾きあり・位置ずれを別クラスとして学習させることも可能です。

シナリオ3:工程順守のチェーン検出

「治工具Aをセット → 部品を載せる → カバーを閉じる」という順序のある作業手順を自動監視します。

チェーン検出モードでは、ステップをスキップした場合(例:カバーを閉じる前に治工具Aを取り外した場合)に即座にアラートが発報されます。作業ミスの早期発見・ヒューマンエラーの防止に直結します。

シナリオ4:設備・工具の管理

「使用中の工具が元の場所に戻っているか」「危険区域に人が入っていないか」など、定点カメラによる監視にも使えます。


多品種少量生産への対応

現場では製品の切り替えが頻繁に発生します。BILT_Workflow_JAでは:

  1. 製品ごとにプロジェクト(モデル)を分けて管理できます
  2. BILTによる再ラベリング機能を使えば、新製品の追加学習が大幅に効率化されます。既存モデルで大まかなラベルを自動生成し、人間が確認・修正するだけでOKです
  3. ワークフローのモデル差し替えはドロップダウン1つで完了します

Raspberry Pi 4 での現場導入

専用PCを用意しなくても、Raspberry Pi 4(4GB推奨、2GBでも動作) で本番運用が可能です。

  • spark バリアントはデフォルト15 FPS制限(CPUの熱対策)
  • 推奨解像度:640×480 または 1280×720
  • Raspberry Pi Camera Module v3 に対応(CSIリボンケーブルで接続)
  • systemdサービスとして登録すれば電源ON時に自動起動

コスト試算の目安:

  • Raspberry Pi 4(4GB): 約8,000〜10,000円
  • USBカメラまたはCamera Module v3: 約3,000〜7,000円
  • 合計1〜2万円で1台の検査ステーションが構築可能

既存システムとの連携

アラートのHTTP POST連携

アラートノードのHTTP URL欄に既存システムのエンドポイントを入力するだけで連携できます。

{
  "message": "ネジ締め未完了",
  "timestamp": "2026-03-31T14:32:45.123456",
  "source": "workflow",
  "frame_snapshot": "<base64 JPEG文字列>"
}

このJSON形式をそのまま受け取るだけで、既存のMES(製造実行システム)やSCADAシステムへの組み込みが可能です。

ローカルアラートビューア

社内ネットワーク内にブラウザがあれば、http://[PC-IP]:5000/alert_viewer でアラートログを一覧表示できます。スナップショット付きのアラートは「スナップショットを表示」ボタンで確認できます。


よくある現場からの疑問

Q: カメラは何でもよいですか?

基本的にはUSBカメラであれば何でも動作します。OpenCVが対応しているカメラであれば認識されます。Raspberry Pi ではCamera Module v3 も使えます。画角・解像度・フォーカスは検出対象に合わせて選定してください。

Q: ラインを止めずに学習データを収集できますか?

「検出ワークフロー」ページのデータセットキャプチャ機能を使えば、ライン稼働中にカメラフレームをそのまま保存できます。後からまとめてラベリング作業をすることが可能です。

Q: モデルの精度が出ない場合は?

トレーニング完了後に自動生成される「改善提案カード」を参照してください。また、照明条件・カメラ距離・角度を本番に近づけた学習データを追加することが最も効果的です。

Q: 複数のカメラを同時に使えますか?

はい。ワークフローエディタ上で、検出ノードごとに別々のカメラを割り当てられます。2台・3台のカメラを同時に使った並列検査パイプラインを構築できます。

Q: 導入・改変のコストは?

Apache License 2.0のオープンソースです。追加ライセンス費用は不要です。著作権表示(Copyright (C) 2026 Rikiza89)を保持した上で、自由に改変・社内展開できます。


まとめ:現場で回せるAIを自分たちの手で

BILT_Workflow_JA が目指すのは、「AIのことは専門チームに任せる」から「現場のエンジニアが自分たちで学習・更新・運用できる」への転換です。

今回の検証で示した通り:

  • 9枚の画像・30エポック・GPUなし で信頼度80%超の検出を達成
  • ブラウザだけで操作できる — コードを書く必要なし
  • Raspberry Pi 4 で本番運用可能 — 1〜2万円のハードウェアで検査ステーション構築
  • 既存システムとHTTP/UDPで連携 — MES・アンドン・社内システムへの組み込みが容易
  • Apache 2.0ライセンス — 商用利用・改変・クローズド開発すべて自由

カイゼン活動の一環として、あるいは社内DXの第一歩として、ぜひ試してみてください。


参考リンク

  • BILT_Workflow_JA:

  • Raspberry Pi セットアップガイド: リポジトリ内 RASPBERRY_PI_SETUP.md
  • ライセンス: Apache License 2.0 — Copyright (C) 2026 Rikiza89

本記事で紹介した機能はすべてリポジトリのソースコードで確認できます。コードコメントはすべて日本語で記述されています。

2
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?