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/ 분류용(PyTorch 트레이너: CustomTrainer, Basetrainer) 및 검출용(DetTrainer – YOLOv5) 트레이너
utils/benchmark.py 훈련된 모델을 벤치마크에서 평가(mAP, Top-K, 매크로/마이크로-F1, 혼동 행렬)하고 SNR 수준별로 결과 분리
utils/TWOStagesDetector.py 검출 모델(YOLOv5)과 분류 모델을 결합한 2단계 파이프라인
MATLAB 도구(check.m, rawdata_crop.m, positionFind, snrEsti, awgn1) MATLAB 사용자를 위한 동일한 IQ → 스펙트로그램 변환, SNR 추정, 노이즈 추가 기능 제공

데이터셋 및 데이터 처리

  • 내용 – 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)을 시뮬레이션 가능.

일반적인 워크플로우

  1. 다운로드 – Hugging Face에서 원시 IQ 파일(또는 사전 계산된 스펙트로그램 PNG)을 가져옵니다.
  2. 변환 – IQ → 스펙트로그램 (Python RawDataProcessor 또는 MATLAB check.m 사용).
  3. (옵션) 증강 – 제공된 data_augmentation 유틸리티로 스펙트로그램을 증강하여 SNR 범위에 걸쳐 강건성을 높입니다.
  4. 학습 – YAML 설정 파일과 트레이너 클래스를 사용하여 분류기(ResNet, ViT, Swin, EfficientNet 등) 또는 검출기(YOLOv5)를 학습합니다.
  5. 평가Classify_Model.benchmark()로 벤치마크에서 평가. 스크립트는 자동으로 SNR 수준별로 결과를 분리합니다.
  6. 배포 – 새로운 원시 IQ 파일에 대해 Classify_Model.inference() 또는 Detection_Model.inference()를 실행. 파이프라인은 스펙트로그램 위에 탐지 박스와 클래스 레이블을 포함한 동영상을 출력합니다.

누구에게 적합한가요

  • RF 신호 연구자 – 사전 준비된 다중 드론 데이터셋과 정답 레이블이 필요한 분.
  • ML 엔지니어 – 스펙트로그램 또는 원시 IQ 데이터 위에서 시각 스타일 모델을 실험하고 싶은 분.
  • 보안 및 방위 팀 – 노이즈 환경에서도 작동해야 하는 RF 기반 드론 모니터링 시스템을 구축하는 분.

인용

데이터셋 또는 코드를 사용할 경우 다음 논문을 인용해 주세요:

@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