kitoweeknd/RFUAV
This is official repository of our paper "RFUAV: A Benchmark Dataset for Unmanned Aerial Vehicle Detection and Identification". Codes include a two stage model to achieve drone detection and classification using some FFT/STFT analytical method. The Raw data will be free to use after our paper is accept. Star us!!!!, if you think this is useful♥
RFUAV – RFベースのドローン検出・識別データセット
何であるか – ロウRF(無線周波数)記録から無人航空機(UAV)を検出・分類するための研究用ベンチマーク。リポジトリには、データセット(35種類以上のドローン、複数のSNRレベル)、元のIQ記録、および完全なPython/MATLAB処理・学習パイプラインが含まれます。
なぜ重要か – 多くのUAV視覚データセットは画像を用いるが、RFUAVはまだ十分に研究されていないRF領域に焦点を当てており、視界が遮断されたり照明が不良な状況でも動作するモデルの開発を可能にします。また、広範なSNR範囲(-20 dB → +20 dB)で再現可能なベンチマーク(精度、mAP、F1)を提供します。
クイックスタート
| ステップ | コマンド | 機能 |
|---|---|---|
| 依存関係のインストール | pip install -r requirements.txt |
PyTorch、torchvision、および学習/評価に必要なその他のライブラリを取得 |
| 事前学習済み分類器の実行 | python inference.py |
供給されたモデル重みを読み込み、サンプルIQファイルに対して推論を実行し、検出・識別結果を動画で表示 |
| 簡単なモデルの学習 | python train.py |
デフォルト設定で、スペクトログラム画像の小規模サブセット上でResNet-50を学習 |
コアコンポーネント
| モジュール | 目的 |
|---|---|
graphic/RawDataProcessor.py |
ロウバイナリIQファイルをスペクトログラム、動画、またはウォールファロー可視化に変換(Python) |
utils/trainer/ |
分類(CustomTrainer、Basetrainer)および検出(DetTrainer – YOLOv5)用のPyTorchトレーナー |
utils/benchmark.py |
訓練済みモデルをベンチマーク上で評価(mAP、Top-K、マクロ/ミクロ-F1、混同行列)し、SNRレベルごとに結果を分離 |
utils/TWOStagesDetector.py |
検出モデル(YOLOv5)と分類モデルを組み合わせた2段階パイプライン |
MATLABツール(check.m、rawdata_crop.m、positionFind、snrEsti、awgn1) |
同じIQ→スペクトログラム変換、SNR推定、ノイズ追加ユーティリティをMATLABユーザー向けに提供 |
データセットとデータ処理
- 内容 – USRP SDRで高SNRで収録された37のロウIQクリップ(35種類のドローンモデル)、および各クリップに対応する生成されたスペクトログラム画像。各クリップにはXMLメタデータ(中心周波数、サンプリングレート、IF帯域幅、参照SNRなど)が付随。
- ダウンロード – Hugging Face上にホスト(
https://huggingface.co/datasets/kitofrank/RFUAV)。検出用の小規模サブセットはRoboflowでも利用可能。 - データローダーが期待するファイル構造
Dataset/
├── train/
│ ├── AVATA/imgs/…
│ └── MINI4/imgs/…
└── valid/
├── AVATA/imgs/…
└── MINI4/imgs/…
- SNRツール – MATLAB関数(
snrEsti、awgn1)を使用して、クリップの現在のSNRを推定し、人工的にガウスノイズを追加して低品質状態(-20 dB ~ +20 dB、ステップ2 dB)をシミュレート可能。
一般的なワークフロー
- ダウンロード – Hugging FaceからロウIQファイル(または事前に計算されたスペクトログラムPNG)を取得。
- 変換 – IQ → スペクトログラム(Pythonの
RawDataProcessorまたはMATLABのcheck.mを使用)。 - (オプション)拡張 – 提供された
data_augmentationユーティリティでスペクトログラムを拡張し、SNR範囲にわたるロバスト性を向上。 - 学習 – YAML設定ファイルとトレーナークラスを使用して、分類器(ResNet、ViT、Swin、EfficientNetなど)または検出器(YOLOv5)を学習。
- 評価 –
Classify_Model.benchmark()でベンチマーク上で評価。スクリプトは自動的にSNRレベルごとに結果を分割。 - デプロイ – 新しいロウIQファイルに対して
Classify_Model.inference()またはDetection_Model.inference()を実行。パイプラインは、スペクトログラム上に検出ボックスとクラスラベルを含む動画を出力。
どのユーザーに適しているか
- RF信号研究者 – 事前準備済みで、複数ドローンのラベル付きデータセットが必要な方。
- MLエンジニア – スペクトログラムやロウIQデータ上で視覚スタイルのモデルを実験したい方。
- セキュリティ・防衛チーム – ノイズ環境下でも動作するRFベースのUAV監視システムを構築したい方。
引用
データセットまたはコードを使用する場合、以下の論文を引用してください:
@misc{shi2025rfuavbenchmarkdatasetunmanned,
title={RFUAV: A Benchmark Dataset for Unmanned Aerial Vehicle Detection and Identification},
author={Rui Shi and Xiaodong Yu and Shengming Wang and Yijia Zhang and Lu Xu and Peng Pan and Chunlai Ma},
year={2025},
eprint={2503.09033},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2503.09033}
}
関連
- Dispatch
- プロジェクト
- Dispatch
- プロジェクト
- Dispatch