メインコンテンツへスキップ

【物体検出】オンプレミス環境で独自モデルを最速生成「てんかく忍者モデル工房」機能紹介 vol.26

前々回の"データセットの著作権、データベースの著作権、AIモデルのライセンスについてのざっくりしたまとめ"で、近年のデータセットやAIを巡る知財状況の動向を確認し、ライセンス汚染の問題が中長期的なリスクになりえることに触れ、

前回の"【物体検出】オンプレミス環境で独自モデルを最速生成「てんかく忍者モデル工房」概要紹介 vol.25"で、企業が自社アセットの管理にAIを使う場合に継続性やコストメリット、法務リスクを回避する必要があり、その弊社からの提案として"てんかく忍者モデル工房"を挙げました。

今回は、"てんかく忍者モデル工房"がどのような機能を持っていて、最終的に"独自データ、独自モデルの高速リリース"を可能にするのかをご紹介します。

 

 

AIモデル制作環境の近況

 

クラウドサービスとして、アノテーション作成、モデル学習、評価まで一貫して行う方法がある一方で、長らくOpenSourceとして提供されてきたアノテーションソフトウェアである"labelImg"はLabelStudioに吸収されました。

LabelStudioはダウンロードすることができ、オンプレミスで複数人によるアノテーションデータ作成ができるソフトウェアとなっています。過去に公表している評価の記事はこちら

以下に代表的なクラウドサービスを列挙します(2026/09/02現在)。
無償でトライアルまたはパブリックなプロジェクトとしての利用ができ、数人からのクローズプロジェクトのライセンスと、さらに本格的に活用する場合のエンタープライズライセンスに分かれています。
無償トライアルでの利用は、データセットの公開やモデルの公開などの許諾がある場合があるので、十分に気を付けてください。
サービスの内容や価格等が変更になっている可能性がありますので、最新の情報は、必ずリンク先を確認ください。

 


ultralytics

URL

https://www.ultralytics.com/ja/pricing

費用 無償or$29/月or問い合わせ
内容 クラウドストレージ:100,500GB、,無制限
モデル:100,500,無制限
UP上限:10,20,50GB
GPU:H200,B200

 

roboflow

 

URL

https://roboflow.com/pricing

費用 無償or$79/月or問い合わせ、1ユーザ追加:$29/月
内容 プライベートデータ、モデル
学習、分析
モデル評価
データ増量
モデルダウンロード

 


labelStudio

 

URL

https://humansignal.com/pricing/

費用 無償or$99/月or問い合わせ
内容 オンラインアノテーションツール
ロールベースのアクセス制御
品質レビューワークフロー
オートメーション

 

 

てんかく忍者モデルで何を目指すのか

ローカル動作で超高速なアノテーション

    OpenSourceでローカル動作する"labelImg(Python版)"を使用

データ集めの自動化

    動画から切り出した静止画を、指定した割合で、全路線から均等に抽出(統計的偏りの排除)

適宜クラスを追加

    実際のデータを見ながら適宜クラスを追加しながら作業できる(最大50クラスのスロットを固定)
    classes.txtの混在によるIDずれの事故を防ぐ。

希少データの水増し、アノテーション自動化

    digプログラムで希少データのクラスを増強し、再学習の素材へ

GPUをフル活用

    学習、検証の速度を上げることで仮説検証ループを高速に回す
    GPUメモリやGPU負荷状況をサンプリングして最適値を自動設定
    または手動調整することで、検出と学習を同一マシン上で実行する際の負荷調整にも対応。

 

 

てんかく忍者モデルは、何を回避し、何を得たいのか

性能追及の手段を手放さない

    学習や検出の見えないボトルネックであるDB書き込みやファイルアクセスの問題をローカル環境で解消。
    NASのエコシステムが最良(継続コストなし、永続、自律、最速)、ローカルGPUコンピューティングの活用。

クラウドサービスの便利、手軽の誘惑に負けない

    Ultralytics、LabelStudioのモデル生成、評価サービスに依存しない(容量課金、ライセンス囲い込み)
    特に機密データの扱いや、データセット、モデル利用権をクラウドサービス事業者に渡さない。

データ処理の手法を最適化する

    時系列データの優位性を維持、フォルダ構成、ファイル名規則、アクセス権限
    他のpythonプログラムとの連携動作、パイプライン統合の手段を確保(特にyamlを使った疎連携や自動化への対応)

TCOにこだわる(キャッシュアウトを常に意識する)

    OpenSoureceを使うことでコスト、透明性、配布性、知識共有を得る

将来に渡るブラッシュアップ、継続性を担保する

    データ追加によるモデルのブラッシュアップ
    学習済ウェイトを使った転移学習
    バックボーンが変更されてもアノテーションデータの継続利用が可能であること(情報資産化)

 

 

得られた効果:3日で1イテレーション

モデル Stage 内容 CPUの場合 GPUの場合
初期モデル
収集 動画→静止画切り出し(100FPS)
train/validを均一に収集
30分 30分

作成 labelImgでアノテーション付け(ローカル作業で即応)
クラスの任意追加
3時間 3時間

学習 小さいモデルで学習、評価を実行
希少データクラス=補強対象の選定
1時間30分 10分

補強 digプログラムで検出&補強データ収集(32FPS)
train/valに分割
2時間 2時間

標準モデル

再学習 追加分のアノテーション作成
標準モデルで学習、評価を実行
6時間半 30分

検出 標準モデルで検出を実行
評価を実行
5時間 1時間

 

手法

  • 動画から静止画の生成&均一に抽出(Collector)
  • labelImgによるアノテーション付与
  • クラス定義の1スロット50クラス化
  • GPU性能の自動調整
  • 希少データの水増し、自動アノテーション(dig)

 

てんかく忍者モデル工房の画面と機能

 

クラス/環境

ここでやっていること

バックエンドごとのpython実行環境の指定と、クラス定義の指定をしています。
labelImgが参照するclasses.txtをチェックし、不整合が発生しないように考慮されています。

 

Dataset作成

ここでやっていること

素材種別として動画かCubeMap化された静止画を選択できます。
任意のジョブ名や書き出し先のDatasetのディレクトリや、動画から静止画を書き出すときのテンポラリディレクトリを指定します。
全フレームのデータから、どの程度の割合て抽出するのかを指定します。
train/valの比率やvalで選択する画像が、trainで選択する画像からどの程度離れているものを選択するかをrndやフレーム数指定できます。

 

LabelImg起動

ここでやっていること

labelImgを起動する際のPython環境を指定します。
デフォルトで読み込み画像フォルダを、先のデータセットのところで生成されるtrain/valを指定することができます。
labelImgをここから起動できます。
labelImg起動後は、アノテーション付け作業を進めます。

 

TRAIN学習

ここでやっていること

学習の設定を行います。
バックエンドにはultralytics、RF-DETR、YOLO-NASを選択できます。
それぞれのバックエンドに応じたモデルアーキテクチャや、resumeした場合の既存モデルの指定、pre-trained weightを使って再学習する場合の指定ができます。
学習時のパラメータを指定することで、GPUの能力をフルに使って学習するのか(それとも夜間バッチなどで)安全側で動作させるのかを調整できます。
長時間のバッチとなるので、コマンドの事前チェックや、設定をtrain.yamlとして保存、呼び出しして再実行しやすくなっています。

 

DIG抽出

ここでやっていること

指定したバックボーン、モデルで検出を実行し、希少クラスまたは全クラスのアノテーション付き検出結果を書き出します。(このことをDIG=掘ると呼んでいます)
書き出し先の指定、Conf閾値、IoU閾値、推論サイズなどを指定できます。
検出実行時のバッチサイズやWorkerなどのパラメータを自動決定するモードと、手動で設定するモードを選択できます。
同じマシンを使って学習と検出を同時に走らせる場合は、安全率を設定して、GPUメモリを奪い合わないように最適化します。
DIGの処理も長時間となるので、コマンドやディレクトリ設定の事前チェックを行い、OKであれば実行をします。

 

補助ツール

ここでやっていること

学習や検出を実行している最中のGPU利用率をモニタリングするために、nvidia-smiやnvitopをサブプロセス(別窓で起動)実行します。
モデル学習の状態や、validationの結果などは、TensorBoardを起動して確認します。
TensorBoardが参照するログディレクトリをTrain出力先から取得して、指定したホストアドレス、ポートでhttpサービスを起動します。
Webブラウザで指定したIPアドレス、ポートを入力することでグラフが描画されます。

 

 

▼この記事を書いたひと

001@2x.png

R&Dセンター 松井 良行

R&Dセンター 技術戦略担当部長。コンピュータと共に35年。そしてこれからも!

 

 

機械学習・AIの最新記事