openvla-7b-finetuned-drone-furniture-fly-around

本モデルは、関西電力KOI×VOLTMIND 生成AIハッカソンで学習しました。

Genesis シミュレーター内の家具環境において、FPV カメラ映像と自然言語命令からドローン制御アクションを出力する Vision-Language-Action (VLA) モデル。 OpenVLA 7B を LoRA ファインチューニングし、「ソファの周りを周回して写真を撮れ」のような命令でドローンを自律飛行させる。


モデル概要

項目 内容
タスク ドローン自律ナビゲーション(VLA)
入力 FPVカメラ画像 + 自然言語命令(英語)
出力 7次元ドローン制御アクションベクトル
動作環境 Genesis シミュレーター(PoC)

室内に配置された家具(ソファ・アームチェア・木製引き出し)を対象に、カメラ映像と命令テキストのみでドローンを操縦する。 LiDAR・事前マップ・ウェイポイント座標は一切不要。


ベースモデル

openvla/openvla-7b

  • アーキテクチャ: Prismatic VLM(Llama-2 7B + SigLIP-400M)
  • ライセンス: MIT License
  • 入力トークン列に対してアクションをトークンとして予測する Vision-Language-Action モデル

学習方法

ファインチューニング手法:LoRA

ハイパーパラメータ
LoRA rank 32
Learning rate 5e-4
Epochs 15
Batch size 16
Gradient accumulation steps 1
精度 bf16
Optimizer AdamW

学習フレームワーク

ライブラリ バージョン
transformers 4.44.0
peft 最新安定版
accelerate 最新安定版
PyTorch 2.x (CUDA 12.1)

実行環境

項目 内容
GPU NVIDIA H100 × 2 割当(torchrun 1 プロセス使用)
CPU 8 コア
メモリ 64 GB
最大ジョブ時間 48 時間
OS Ubuntu 22.04
Python 3.10+

使用データ

データセット 用途 規模 ライセンス
Genesis シミュレーター自動生成データ LoRA 学習データ(FPV画像+アクション) 5,000 エピソード
modern_arm_chair_01_4k.glb(Poly Haven) 3Dシーン構築用アームチェアモデル CC0 1.0
sofa_02_4k.glb(Poly Haven) 3Dシーン構築用ソファモデル CC0 1.0
vintage_wooden_drawer_01_4k.glb(Poly Haven) 3Dシーン構築用木製引き出しモデル CC0 1.0

すべての学習データは Genesis 物理シミュレーターで自動生成した合成データ(real world データは不使用)。

アクション形式(7次元・OpenVLA 互換)

インデックス 内容 単位
0 vx_body 機首方向の速度(前進) m/s
1 vy_body 機体左方向の速度 m/s
2 vz_body 上方向の速度 m/s
3 yaw_rate ヨー角速度(回転) rad/s
4〜6 ゼロ埋め(OpenVLA 互換用)

想定ユースケース

  • シミュレーター内ドローン制御の研究・実験
  • VLA(Vision-Language-Action)モデルの概念実証(PoC)
  • 自然言語命令によるロボット操作の研究
  • LiDAR不要ナビゲーションのフィージビリティスタディ

このモデルは「事前の3Dマップやウェイポイント座標なしに、カメラ映像と自然言語だけでドローンを操縦できるか」を実証するものです。


非推奨ユースケース

⚠️ 以下の用途での使用は推奨しません

  • 実機ドローンへの直接適用(Sim-to-Real ギャップが未検証)
  • 安全性が求められる用途(飛行制御の信頼性は未保証)
  • 屋外・未知環境での運用(屋内家具環境のみで学習)
  • プロダクション環境での使用(ハッカソン用プロトタイプ)
  • リアルタイムオンボード推論(現状 H100 VRAM 80GB が必要)

性能・評価

実験結果

3種類の実験を実施し、各実験でドローンが自然言語命令に従って飛行することを確認した。

exp1:単体オブジェクト × 正しいオブジェクト名の命令(ベースライン)

配置されたオブジェクトを名指しした命令を与えるベースライン実験。

オブジェクト 命令 結果
ソファ "Approach the sofa, fly around it, and take photos." 目標オブジェクトへの接近・周回に成功
アームチェア "Approach the arm chair, fly around it, and take photos." 目標オブジェクトへの接近・周回に成功
木製引き出し "Approach the wooden drawer, fly around it, and take photos." 目標オブジェクトへの接近・周回に成功

exp2:単体オブジェクト × 別オブジェクト名の命令(視覚 vs 言語の優先度検証)

配置オブジェクトと命令が不一致な場合に、モデルが視覚情報と言語情報のどちらを優先するかを検証。

配置オブジェクト 命令(別オブジェクト名) 挙動
ソファ "Approach the arm chair..." 視覚情報(ソファ)を優先する傾向
アームチェア "Approach the wooden drawer..." 視覚情報を優先する傾向
木製引き出し "Approach the sofa..." 視覚情報を優先する傾向

exp3:全オブジェクト同時配置 × 各オブジェクト名の命令

3種のオブジェクトを同時配置した環境で、命令で指定したオブジェクトのみに近づけるかを検証。

命令 挙動
"Approach the sofa..." 3オブジェクト中からソファを選択して接近
"Approach the arm chair..." アームチェアを選択して接近
"Approach the wooden drawer..." 木製引き出しを選択して接近

学習曲線

  • バリデーションロスは 15 エポックで収束
  • 詳細は学習ログ・TensorBoard で確認可能

評価指標

指標 説明
バリデーションロス(Cross-Entropy) アクショントークン予測の損失
目標接近成功率 命令で指定したオブジェクトへの接近成否(定性評価)
周回完走率 対象オブジェクトの周回を完遂できたかの定性評価

定量的なベンチマーク(BLEU 等)は未実施。現時点では目視による定性評価が主体。


推論方法

必要環境

transformers==4.44.0
peft
torch>=2.0 (CUDA 12.1)
Pillow
NVIDIA H100 (VRAM 80GB) または同等以上のGPU

インストール

pip install "transformers==4.44.0" peft accelerate Pillow

サンプルコード

import torch
from PIL import Image
from transformers import AutoProcessor, AutoModelForVision2Seq
from peft import PeftModel

# モデルのロード
base_model_id = "openvla/openvla-7b"
adapter_model_id = "furuharu/openvla-7b-finetuned-drone-furniture-fly-around"

processor = AutoProcessor.from_pretrained(base_model_id, trust_remote_code=True)
model = AutoModelForVision2Seq.from_pretrained(
    base_model_id,
    torch_dtype=torch.bfloat16,
    trust_remote_code=True,
).to("cuda")
model = PeftModel.from_pretrained(model, adapter_model_id)
model.eval()

# 推論
image = Image.open("fpv_image.jpg")  # FPVカメラ画像
instruction = "Approach the sofa, fly around it, and take photos."

prompt = f"In: What action should the robot take to {instruction}?\nOut:"
inputs = processor(prompt, image).to("cuda", dtype=torch.bfloat16)

with torch.no_grad():
    action_tokens = model.generate(**inputs, max_new_tokens=512, do_sample=False)

decoded = processor.decode(action_tokens[0], skip_special_tokens=True)
print("Action:", decoded)

実際の Genesis シミュレーターとの統合には scripts/infer.py を参照してください。


制約・限界

Sim-to-Real ギャップ

本モデルは Genesis シミュレーター内のみで学習・検証されています。実機への転用には以下の課題があります:

  • ドメインシフト(シミュレーター画像 vs 実カメラ映像)
  • 物理特性の差異(風・振動・レイテンシ)
  • 安全性の未検証

計算リソース

推論に H100 (80GB VRAM) が必要です。コンシューマー GPU では動作しない可能性があります。

対応オブジェクト

以下の家具のみで学習しており、未知オブジェクトへの汎化は保証されません

  • ソファ(sofa_02_4k.glb)
  • アームチェア(modern_arm_chair_01_4k.glb)
  • 木製引き出し(vintage_wooden_drawer_01_4k.glb)

その他

  • 自然言語命令は英語のみ対応
  • FPVカメラ視点以外の画像入力は未検証
  • 学習エピソード数(5,000)は実用レベルとしては少ない

バイアス

  • オブジェクトバイアス:3種類の家具のみで学習しており、それ以外のオブジェクトや環境への汎化性能は未検証
  • 視覚優先バイアス:exp2 の結果より、言語命令よりも視覚情報を優先する傾向が確認されている
  • 照明・テクスチャバイアス:シミュレーター固有の照明・レンダリング条件に依存している
  • データ多様性の欠如:合成データのみで学習しており、実世界の多様な環境分布を反映していない

ライセンス

MIT License

ベースモデル openvla/openvla-7b も MIT License です。 3Dオブジェクト(Poly Haven)は CC0 1.0 です。 シミュレーター Genesis は Apache 2.0 です。


引用情報

ベースモデル OpenVLA の引用:

@article{kim24openvla,
  title    = {{OpenVLA}: An Open-Source Vision-Language-Action Model},
  author   = {Moo Jin Kim and Karl Pertsch and Siddharth Karamcheti and Ted Xiao and Ashwin Balakrishna and Suraj Nair and Rafael Rafailov and Ethan Foster and Grace Lam and Pannag Sanketi and Quan Vuong and Thomas Kollar and Benjamin Burchfiel and Russ Tedrake and Dorsa Sadigh and Sergey Levine and Percy Liang and Chelsea Finn},
  journal  = {arXiv preprint arXiv:2406.09246},
  year     = {2024}
}

本研究が参考にした論文:

@misc{racevla2025,
  title     = {{RaceVLA}: VLA-based Racing Drone Navigation with Human-like Behaviour},
  author    = {Valerii Serpiva and Artem Lykov and Aleksei Shcherbak and Dzmitry Tsetserukou},
  year      = {2025},
  eprint    = {2503.02572},
  archivePrefix = {arXiv},
  primaryClass  = {cs.RO},
  url       = {https://arxiv.org/abs/2503.02572}
}

RaceVLA (arXiv, 2025年3月4日) — VLA をドローンナビゲーションに適用し、人間のような飛行挙動を実現する手法。本研究のアプローチの参考にしました。

関連リンク

Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading

Model tree for furuharu/openvla-7b-finetuned-drone-furniture-fly-around

Adapter
(14)
this model

Papers for furuharu/openvla-7b-finetuned-drone-furniture-fly-around