CarFree — CARLAで手軽にアノテーション生成

AI/ML

概要

CarFreeは、CARLAシミュレータから自動的に学習用の画像とそれに対応するGround Truth(Darknet/YOL O形式)を生成するPython API群です。主に車両(vehicle)と歩行者(pedestrian)を対象としたバウンディングボックスラベルを自動で作成し、シーン生成、気象設定、センサー取得、ラベル生成までのワークフローをスクリプトで実行できます。シミュレータならではの制御可能な環境を活かし、様々な天候や時間帯、交通密度でデータ収集を行い、物体検出モデルの学習用データセット作成を簡便にします。使い方はCARLA環境上でスクリプトを実行するだけで、Darknet互換のテキストラベルと対応画像が出力されます。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 9
  • フォーク数: 0
  • ウォッチャー数: 9
  • コミット数: 4
  • ファイル数: 5
  • メインの言語: Python

主な特徴

  • CARLAのPython APIを利用した自動データ収集(アクターのスポーンからセンサ取得まで自動化)
  • Darknet/YOL OフォーマットでのGround Truth生成(車両と歩行者のバウンディングボックス)
  • 気象条件やシーンバリエーションをプログラムで切り替えて大量データ作成が可能
  • シンプルなスクリプト構成で実運用データセット作成パイプラインに組み込みやすい

技術的なポイント

CarFreeのコアはCARLAシミュレータのPython APIに依存し、シミュレーション内でアクター(車両・歩行者)をプログラム的にスポーンしてカメラセンサーのデータを取得する点にあります。取得したRGBフレームに対して、各アクターのワールド座標からカメラ座標系への射影を行い、2D画像上のバウンディングボックスを算出します。出力フォーマットはDarknet(YOLO)互換で、クラスIDと中心座標・幅・高さを画像サイズで正規化したテキストファイルを生成するため、そのままYOLO系の学習に利用できます。また、spawnやweather制御用のスクリプトにより、交通量や天候(雨・曇り・時間帯など)を動的に変更して多様な条件下でのデータ収集が可能です。コードベースは比較的小規模で、データ抽出(extract)、生成(generate)、スポーン制御(spawn)、気象制御(weather)といった機能ごとにスクリプトが分割されており、必要な箇所を改変して独自のシナリオに適用しやすく設計されています。依存関係はCARLA本体とPython環境が中心で、実行には対応するCARLAバージョンとネットワーク接続(サーバ起動)が必要です。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
    • プロジェクトの目的、概要、導入方法の抜粋があり、使用イメージや簡単な実行手順の説明が記載されています。CARLAのワークスペースに配置して使うことを前提としている点に注意が必要です。
  • extract.py.py: file
    • センサーから取得したデータ(画像等)とアクター情報を受け取り、画像ごとの座標変換・バウンディングボックス抽出・ラベル化を行う処理が入っている想定です。ファイル名に余分な拡張子が見られますが、実体はPythonスクリプトです。
  • generate.py.py: file
    • 収集した情報に基づいて最終的なデータセット出力(画像とYOLO形式のラベルファイル生成)を担当するスクリプト。データの保存パス設定やファイル命名規則の管理を行う役割が予想されます。
  • spawn.py.py: file
    • シミュレーション中に車両や歩行者を配置(スポーン)するための制御スクリプト。スポーン位置、数、移動パターンなどを設定してシーンの多様性を作り出します。
  • weather.py.py: file
    • 雨、曇り、日照などの気象パラメータを切り替えるスクリプト。これにより、異なる視認性やライティング条件でのデータ収集が可能になり、モデルの汎化性向上に寄与します。

各スクリプトは組み合わせて用いる想定で、まずspawnでシーンを用意し、weatherで条件を変えつつセンサーを動作させ、extractでフレームを解析、generateでYOLO形式のデータセットを出力するワークフローが基本です。ファイル名の拡張子表記(.py.py)はリポジトリ上の記載に合わせていますが、実行時は通常の.pyとして扱う必要があります。

まとめ

CARLAを利用したYOLO向けアノテーション自動生成が容易になる実用的なツール群。

リポジトリ情報:

READMEの抜粋: Automatic Ground Truth Generation in CARLA

This Python API gets a variety of data from CARLA Simulator and also helps automatically generate the Ground Truth according to the Darknet YOLO Framework. The Ground Truth on the objects provided are the vehicle and the pedestrian.

Installation

cd [carla director…