논문 정보
저자:
소속:
- Georgia Institute of Technology
인용:
- 2024.06.07 금요일 기준 189회
논문 업데이트 내역
- 초판 제출(v1) : 2023년 5월 17일
- 최근 수정(v2) : 2024년 5월 22일
논문 & Github 링크
Arxiv
공식 Github
Abstract
비행 물체의 실시간 탐지를 위한 일반화된 모델과 SOTA(State-of-the-Art) 모델을 제시
전이 학습과 Yolov8를 활용하여 비행 물체 감지에 대한 성능을 향상시키는 새로운 접근 방식을 제안
최종 일반화 모델의 경우 1080p 동영상에서 초당 50프레임의 추론 속도로 mAP50 79.2%, mAP50-95 68.5%
최종 정교화된 모델의 경우 같은 추론 속도로 mAP50 99.1%, mAP50-95 83.5% 성능
1. Introduction
최근 드론 악용에 대한 사례와 미니 무인 항공기(UAV)의 감지 기술의 중요성을 강조
드론은 작은 전자기적 신호로 인해 대부분의 현대 레이더 시스템에서 감지를 피할 수 있다.
또한 드론의 경우 소형이고 소음이 적어 탐지가 어려운 특성을 가진다.
이러한 이유로 현재 기술로는 드론을 이용한 불법 활동을 탐지하기 힘든 상황
연구 목적은 다른 사람들이 전이 학습이나 추가 연구에 활용할 수 있는 실시간 비행 물체 탐지 모델의 일반화된 모델을 제공하는 것(1080p, 30~60 프레임)
2. Architecture
실시간 객체 탐지는 물체의 크기와 종횡비의 변화, 추론 속도, 노이즈의 존재 등 여러 요인으로 인해 여전히 어려운 과제
특히 비행 중인 물체는 위치, 크기, 회전, 궤적이 매우 빠르게 변할 수 있기 때문에 더욱 어려운 과제
초기 모델의 경우 데이터를 80% 훈련과 20% 검증 데이터로 학습
다양한 비행 물체 이미지 15,064개으로 구성된 데이터
각 이미지는 객체의 클래스 번호와 바운딩 박스 좌표로 레이블링
드론(25.2%), 새(25%), 비행기(7,9%), 헬리콥터(6.3%) 등 클래스 불균형 존재
https://universe.roboflow.com/new-workspace-0k81p/flying_object_dataset
전이 학습을 적용하기 위해 두 번째 데이터셋을 사용, 더 멀리 있는 비행 물체 이밎미 포함
11,998개 이미지 포함, 90% 훈련 데이터, 10%는 검증 데이터로 사용
드론(38.8%), 헬리콥터(21.2%), 비행기(20.4%), 새(19.6%) 클래스 포함
https://universe.roboflow.com/ahmedmohsen/drone-detection-new-peksv
YOLOv8 코드는 Ultralytics 리포지토리에서 가져와 구현
전이 학습의 경우 사전 학습된 가중치를 사용하여 모델을 초기화한 후, 사용자 정의 데이터셋으로 학습 - (가중치는 COCO 데이터셋 학습 모델)
제한된 하드웨어로 인해, greedy 모델 선택 및 하이퍼파라미터 튜닝 접근법 선택
모델 평가의 경우
- 평가 지표
- mAP50-95와 추론 속도를 중점적으로 평가
- 클래스 불균형
- 데이터셋의 클래스 불균형으로 인해 검증 세트에서 소수 클래스의 성능이 저조할 것으로 예상되었으나, 실제로는 이러한 현상이 관찰되지 않음
평균 정밀도 (Mean Average Precision, mAP)
- mAP는 객체 탐지의 평가 지표 중 하나로, 모든 클래스에 대한 평균 정밀도(AP)를 사전 정의된 교차 영역 비율(IoU) 임계값에서 계산
- 정밀도 = TP / (TP + FP)
- True Positive (TP) : 예측된 박스와 실제 값(ground truth)의 IoU가 설정된 임계값보다 큰 경우
- False Positive (FP) : 예측된 박스와 실제 값의 IoU가 설정된 임계값보다 작은 경우
- mAP50-95는 IoU 임계값을 0.5에서 0.95까지 0.05 단위로 변경하면서 각 클래스에 대한 평균 정밀도를 계산
2.1 Generalized Model Choice and Performance
모델 크기 평가
- 모델 크기
- 작은 모델 : 11151080개의 파라미터, 225개의 레이어
- 중간 모델 : 25879480개의 파라미터, 295개의 레이어
- 대형 모델 : 43660680개의 파라미터, 365개의 레이어
- 성능 비교
- 작은 모델과 중간 모델 사이에는 mAP50-95에서 0.05의 큰 차이가 나타났으나, 중간 모델과 대형 모델 사이에는 0.002의 작은 차이만 있었다.
- 추론 속도는 각각 4.1ms , 5.7ms, 9.3ms 로 나타났다.
- 중간 모델이 1080p HD 영상에서 평균 19.75ms (50fps)의 속도로 추론하여 목표 추론 속도(30~60 fps)에 부합했다.
하이퍼파라미터 튜닝
- 평가 방법
- 제한된 계산 자원으로 인해 각 하이퍼파라미터 세트를 10 에포크 동안만 평가하여 성능을 예측
- 최적 하이퍼파라미터 세트를 사용하여 100 에포크 동안 학습한 결과, 기본 하이퍼파라미터보다 성능이 개선됨을 확인 (0.027)
- 최적 하이퍼파라미터
- 배치 크기 : 16
- 최적화 알고리즘 : 확률적 경사 하강법 (SGD)
- 모멘텀 : 0.937
- 가중치 감쇠 : 0.01
- 분류 손실 가중치 (λcls) : 1
- 박스 손실 가중치 (λbox) : 5.5
- 분포 초점 손실 가중치 (λdfl) : 2.5
- 최종 모델
- 최적 하이퍼파라미터로 163 에포크 동안 학습한 결과, mAP50-95가 0.685에 도달
- 1080p 영상에서 평균 추론 속도 50 fps 기록
2.2 Loss Function and Update Rule
일반화된 손실 함수 및 가중치 업데이트 절차는 아래 수식
$$L(\theta) = \frac{\lambda_{\text{box}}}{N_{\text{pos}}}L_{\text{box}}(\theta) + \frac{\lambda_{\text{cls}}}{N_{\text{pos}}}L_{\text{cls}}(\theta) + \frac{\lambda_{\text{dfl}}}{N_{\text{pos}}}L_{\text{dfl}}(\theta) + \varphi \|\theta\|^2_2$$
- $λ_{box},λ_{cls},λ_{dfl}$ : 각각 박스 손실, 분류 손실, 분포 초점 손실의 가중치
- $N_{pos}$ : 객체를 포함하는 셀의 총 수
- $φ$ : 가중치 감쇠의 계수
- $L_{box},L_{cls},L_{dfl}$ : 각각 박스 손실, 분류 손실, 분포 초점의 손실
가중치 업데이트 절차 (Weight Update Procedure)
운동량 $β$를 가진 속도 항
$$V_t = \beta V_{t-1} + \nabla_\theta L(\theta_{t-1})$$
- $β$ : 모멘텀 계수
- $V_t$ : 현재 속도
- $∇_θL(θ_{t−1})$ : 이전 가중치에 대한 손실 함수의 기울기
가중치 업데이트 규칙 (Weight Update Rule)
$$\theta_t = \theta_{t-1} - \eta V_t$$
- $θ_t$ : 현재 가중치
- $η$ : 학습률 (learning rate)
YOLOv8의 특정 손실 함수 (YOLOv8 Specific Loss Function)
$$L = \frac{\lambda_{\text{box}}}{N_{\text{pos}}} \sum_{x,y} 1_{c^*_{x,y}} \left[ 1 - q_{x,y} + \frac{\|b_{x,y} - \hat{b}_{x,y}\|^2_2}{\rho^2} + \alpha_{x,y} \nu_{x,y} \right]
+ \frac{\lambda_{\text{cls}}}{N_{\text{pos}}} \sum_{x,y} \sum_{c \in \text{classes}} y_c \log(\hat{y}_c) + (1 - y_c) \log(1 - \hat{y}_c)
+ \frac{\lambda_{\text{dfl}}}{N_{\text{pos}}} \sum_{x,y} 1_{c^*_{x,y}} \left[ - (q_{(x,y)}+1 - q_{x,y}) \log(\hat{q}_{x,y}) + (q_{x,y} - q_{(x,y)}-1) \log(\hat{q}_{(x,y)}+1) \right]$$
where:
$$q_{x,y} = \text{IoU}_{x,y} = \frac{\beta_{x,y} \cap \hat{\beta}_{x,y}}{\beta_{x,y} \cup \hat{\beta}_{x,y}} \\
\nu_{x,y} = \frac{4}{\pi^2} \left( \arctan \left( \frac{w_{x,y}}{h_{x,y}} \right) - \arctan \left( \frac{\hat{w}_{x,y}}{\hat{h}_{x,y}} \right) \right)^2 \\
\alpha_{x,y} = \frac{\nu_{x,y}}{1 - q_{x,y}} \\
\hat{y}_c = \sigma(\cdot) \\
\hat{q}_{x,y} = \text{softmax}(\cdot)$$
- $N_{pos}$ : 객체를 포함하는 셀의 수
- $1_{c^*_{x,y}}$ : 객체를 포함하는 셀에 대한 지시 함수
- $β_{x,y}$ : 실제 바운딩 박스 (중심 좌표, 너비, 높이)
- $\hatβ_{x,y}$ : 예측된 바운딩 박스
- $b_{x,y}$ : 실제 바운딩 박스의 중심 좌표
- $y_c$ : 각 그리드 셀에 대한 클래스 c의 실제 레이블
- $q_{(x,y)+/-1}$ : 가장 가까운 예측된 박스의 IoU (좌우)
- $w_{x,y}$ 및 $h_{x,y}$ : 각각 바운딩 박스의 너비와 높이
- $ρ$ : 예측된 박스와 실제 박스를 포함하는 가장 작은 사각형의 대각선 길이
각 셀은 객체의 바운딩 박스를 예측하기 위해 최적의 후보 결정
손실 함수는 완전 IoU(CIoU) 손실을 박스 손실로 포함
다중 라벨 분류를 위해 표준 이진 교차 엔트로피 손실을 분류 손실로 사용하여 각 셀이 둘 이상의 클래스를 예측 가능
분포 초점 손실을 세 번째 항으로 포함하여 예측의 불확실성 줄임
2.3 Model Confusion and Diagnosis
유사한 외형을 가진 클래스들 사이의 구분이 어려워 혼동 발생 (ex F-14, F-18 전투기)
YOLOv8은 깊은 신경망의 개념을 적용하여 반복 모듈과 여러 탐지 헤드를 사용하여 예측 수행
MMYolo 도구를 사용하여 다른 단계의 백본의 활성화 맵을 시각화하여 모델이 특정 클래스 가ㅏㄴ의 혼동을 일으키는 이유를 분석할 수 있다.
MMYolo는 YOLO 알고리즘을 분해하고 커스터마이징 및 분석하기 쉽게 해주는 도구
YOLOv8의 백본은 CSPDarknet53을 사용하며, 이는 입력 이미지를 점진적으로 다운샘플링하여 여러 해상도에서 특징 추출
YOLOv8의 백본은 네 개의 섹션으로 구성되며, 각각의 섹션은 단일 합성곱과 c2f 모듈로 이루어져 있다.
'c2f' 모듈은 CSPDarknet53에 새로 도입된 모듈로 주요 역할은 네트워크의 특정 계층에서 특징을 효율적으로 학습하고, 이를 통해 모델의 성능을 향상시키는 것
c2f 구조 및 구성
- 입력 분할 : 입력 데이터가 두 개의 경로로 분할, 하나의 경로로는 병목 모듈을 통과하고, 다른 하나는 그대로 유지
- 병목 모듈 : 두 개의 3x3 합성곱 층과 잔차 연결로 구성, 이 모듈은 입력 데이터의 중요한 특징을 추출하면서도 계산 비용 줄이는 역할
- 다중 분할 : 병목 모듈의 출력을 다시 N번 분할, N은 YOLOv8 모델의 크기에 따라 달라진다. 작은 모델일수록 분할 횟수가 적고, 큰 모델일수록 분할 횟수가 많음
- 특징 맵 결합 : 분할된 각 출력은 최종적으로 하나의 특징 맵으로 결합된다. 이 결합 과정은 다양한 해상도와 스케일의 정보를 통합하여 더 풍부한 표현을 만든다.
- 최종 합성곱 층 : 결합된 특징 맵은 마지막 합성곱 층을 통과하여 최종 출력을 생성
활성화 맵을 분석한 결과, 네트워크의 얕은 c2f 모듈은 주로 항공기의 날개를 감지하고, 두 번째 모듈은 날개, 몸체, 조종석 및 페이로드 등의 구성 요소를 강조한다. 세 번째 활성화 맵은 항공기의 구성 요소의 개별 텍스처를 분하고, 마지막 모듈은 매우 세밀한 디테일과 윤곽을 강조한다.
3. Results
3.1 Generalized Model
세 가지 도전 과제 해결
- 매우 작은 물체의 탐지 및 분류
- 배경과 섞이는 비행 물체의 식별
- 다양한 종류의 비행물체의 분류
3.2 Refined Model
정교화된 모델을 생성하기 위해, 일반화된 모델에서 학습한 가중치와 기본 하이퍼파라미터를 사용하여 모델 초기화. 이후 모델을 199 에포크 동안 “두 번째” 데이터 셋으로 훈련
이 데이터셋은 매우 작은 물체를 탐지하고 분류하기 위해 선택
위 모델은 현재 최고 수준의 결과로 mAP50에서 0.991, mAP50-95에서 0.835
4. Discussion
위 모델은 비행 물체의 특징 표현을 이전 연구보다 더 잘 추출한다.
정제된 모델의 경우 드론, 비행기, 헬리콥터 3개 클래스 데이터에서 99.1% mAP50, 98.7%의 Precision, 98.8%의 Recall을 달성했고, 추론 속도는 50fps입니다.
비교 연구
- Aydin 등 : 드론과 새 데이터 셋에서 90.4%의 mAP50, 91.8%의 Precision, 87.5%의 Recall, 31fps의 추론 속도 달성
- Rozantsev 등 : UAV만 포함된 데이터셋에서 84.9%의 AP, 항공기만 포함된 데이터셋에서 86.5%의 AP 달성
- AI-Qubaydhi 등 : 드론만 포함된 데이터셋에서 94.1%의 mAP50, 94.7%의 Precision, 92.5%의 Recall달성
모델의 한계 및 제안
- 정제된 모델의 경우 다양한 환경이 적은 데이터셋으로 훈련되었기 때문에 잠재적인 일반화 문제를 가지고 있음
- 다양한 배경을 가진 데이터 셋에 대해 전이 학습을 적용할 것을 제안
5. Model Architecture
2015년 YOLOv1이 객체 탐짐 알고리즘으로 소개되었다. YOLOv1은 초기에 45fps로 이미지를 처리할 수 있었고, 다른 알고리즘으로는 fast YOLO는 155fps까지 도달할 수 있었다. 또한 당시 다른 객체 탐지 알고리즘에 비하여 높은 mAP를 달성했다.
YOLO의 주요 제안은 객체 탐지를 One-Pass Regression Problem로 구성하는 것이다.
YOLOv1은 단일 신경망으로 구성되어 있으며, 한 번의 평가로 바운딩 박스와 관련 클래스 확률을 예측한다.
기본 모델은 입력 이미지를 S x S 그리드로 나눈 후, 각 그리드 셀 (i,j)에서 B개의 바운딩 박스와 각 박스에 대한 신뢰도 점수, C개의 클래스 확률을 예측한다. 최종 출력은 S x S x (B x 5 + C) 형태의 텐서로 나타난다.
- 여기서 각 바운딩 박스는 5개의 값(x, y, w, h, confidence)을 가진다.
5.1 YOLOv1 Overview
YOLOv1의 아키텍처는 24개의 합성곱 층과 두 개의 완전 연결(FC) 층으로 구성된다.
YOLOv1의 저자들은 네트워크 백본에서 처음 20개의 합성곱 층을 사용하고, 평균 풀링 층과 하나의 완전 연결 층을 추가하여 ImageNet 2012 데이터셋으로 사전 훈련 및 검증을 수행했다.
추론 중에는 최종 네 개의 층과 두 개의 완전 연결 층이 네트워크에 추가되며, 무작위로 초기화된다.
또한 확률적 경사 하강법(SGD)로 최적화하고, 손실 함수는 위치 손실과 분류 손실의 두 부분으로 구성되며, 위치 손실은 예측된 바운딩 박스 좌표와 실제 바운딩 박스 사이의 오류를 측정하고, 분류 손실은 예측된 클래스 확률과 실제 클래스 사이의 오류를 측정한다.
5.2 YOLOv5 Overview
YOLOv5는 Ultralytics가 2020년에 제안한 객체 탐지 모델로, 원래 YOLOv1 및 YOLOv3를 만든 팀에 의해 개발되었다. YOLOv5는 COCO 데이터셋에서 최고 수준의 성능을 달성하면서도 훈련과 배포가 빠르고 효율적이다.
YOLOv5는 주로 모델을 세 가지 구성 요소로 구조화하는 표준화를 도입했다.
- 백본(Backbone), 넥(Neck), 헤드(Head)
- 백본
- YOLOv5의 백본은 Darknet53을 기반으로 하며, 작은 필터 윈도우와 잔차 연결을 특징으로 하는 특징 추출에 중점을 둔 새로운 네트워크 아키텍처
- Crossstage partial connections (CSP)는 기울기가 더 풍부하게 흐르도록 하여, 학습이 더 안정적이고 효율적으로 이루어지게 한다.
- 넥
- 넥은 백본과 헤드를 연결하며, 추출된 특징을 집계하고 정제하여 다양한 스케일에서 공간적 의미적 정보를 향상시키는 역할
- Spatial Pyramid Pooling (SPP) 모듈 : 네트워크의 고정 크기 제약을 제거
- *SPP는 CNN에서 고정 크기의 입력을 요구하지 않고 다양한 크기의 입력 이미지를 처리할 수 있도록 하는 기술이다.
- 이는 네트워크가 입력 이미지를 왜곡하거나 자를 필요 없이 다양한 크기의 입력 이미지를 수용할 수 있게 한다.
- 입력 이미지의 크기에 관계없이 처리할 수 있어 더 유연한 네트워크 구조를 제공한다.
- 다양한 스케일의 피처를 추출함으로 더 풍부한 정보를 유지할 수 있다.
- CSP-Path Aggregation Network (CSP-PAN) 모듈 : 특징을 통합하고 정보 경로를 단축
- 백본에서 학습된 특징을 통합하고 하위 및 상위 레이어 간의 정보 경로를 단축시킨다.
- CSPNet과 PANet의 아이디어를 결합하여 특징 맵을 효율적으로 통합하고 다양한 스케일에서의 정보를 집계하는 네트워크 구조로, 풍부한 정보 통합과 효율적인 계산을 가능하게 한다.
- 헤드
- 구성 : 각기 다른 특징 스케일을 예측하는 세 가지 분ㅂ기로 구성
- 그리드 셀 크기 : 13 x 13, 26 x 26, 52 x 52
- Non-maximum Suppression (NMS) : 중복 바운딩 박스를 제거
- 앵커 박스
- 고정 크기의 바운딩 박스를 사용하여 객체의 위치와 크기를 예측
- 미리 정의된 종횡비와 스케일을 가진 앵커 박스의 좌표를 예측하고 조정
5.3 YOLOv8 Overview
YOLOv8는 YOLO 객체 탐지 모델의 최신 버전으로, 이전 버전과 동일한 아키텍처를 가지고 있지만 여러 개선 사항을 도입
주요 개선 사항으로는 Feature Pyramid Network (FPN)와 Path Aggregation Network (PAN)를 활용한 새로운 신경망 아키텍처와 주석 작업을 단순화하는 새로운 라벨링 도구
5.4 YOLOv8 vs YOLOv5
YOLOv8은 YOLOv5와 비교했을 때 여러 면에서 향상된 성능을 보인다.
YOLOv8은 더 나은 mAP를 달성하며, RF100 데이터셋에서 YOLOv5보다 더 적은 이상치를 가지고 있다.
YOLOv8의 새로운 아키텍처
- YOLOv8은 FAN(FPN)과 PAN 모듈을 결합하여 다중 스케일과 해상도의 특징 맵을 생성하고, 네트워크의 다양한 레벨에서 특징을 집계하여 정확도를 향상
- Yolov5는 CSPDarknet의 수정된 버전을 사용하여 정보 흐름을 개선
훈련 데이터
- YOLOv8은 COCO 데이터셋과 여러 다른 데이터셋을 혼합하여 훈련되었으며, YOLOv5는 주로 COCO 데이터셋으로 훈련되었다.
- 이로 인해 YOLOv8은 더 다양한 이미지에서 더 나은 성능을 보인다.
라벨링 도구
- YOLOv8은 RoboFlow Annotate라는 새로운 라벨링 도구를 사용하여 이미지 주석 작업을 쉽게 만듦, 이 도구는 자동 라벨링, 라벨링 단축키, 사용자 정의 가능한 핫키 등의 기능 포함
- YOLOv5는 LabelImg라는 오픈 소스 그래픽 이미지 주석 도구를 사용
후처리 기술
- YOLOv8은 YOLOv5보다 더 발전된 후처리 기술을 포함
- Soft-NMS를 사용하여 중복되는 바운딩 박스를 부드럽게 제거하여 예측의 정확도 향상
- YOLOv5는 NMS를 사용하여 중복 바운딩 박스를 제거
출력 헤드
- YOLOv5는 세 개의 출력 헤드를 가지고 있으며, 작은, 중간, 큰 앵커 박스를 사용
- YOLOv8은 하나의 출력 헤드를 가지며, 앵커 박스를 사용하지 않고 객체의 중심을 직접 예측하는 앵커 프리 탐지 매커니즘을 사용
객체 탐지 속도
- YOLOv8은 YOLOv5보다 약간 느리지만 여전히 최신 GPU에서 실시간으로 이미지 처리 가능
모자이크 증강
- 두 모델 모두 모자이크 증강 기법을 사용하여 훈련 세트에서 네 개의 랜덤 이미지를 결합하여 모델의 입력으로 사용
\