NewTechs/Papers

[DL] YOLOv12 주요 변경점 및 YOLOv11과의 차이점, 코드

사족보행 개발자 2025. 3. 4. 23:56
728x90

0. 개요

YOLOv12는 기존 YOLOv11의 효율성과 속도를 유지하면서도, Attention 중심의 새로운 아키텍처Residual ELAN (R-ELAN) 백본, 그리고 FlashAttention 기술을 도입하여 성능(accuracy) 면에서 큰 개선을 이루었다. 특히, 넓은 영역의 정보를 효과적으로 반영하는 Area Attention (A2) 모듈이 도입되어 복잡한 장면이나 작은 객체 검출에 탁월한 성능을 보인다.


1. 문제점 파악

기존 YOLO 모델들은 빠른 실시간 객체 검출에 강점을 두었으나,

  • 복잡한 배경이나 작은 객체 검출 시 정확도에서 한계를 보였다.
  • CNN 기반 구조는 긴 범위의 상관관계를 포착하는 데 제약이 있었다.

따라서 실시간성을 유지하면서도 더 높은 정확도를 달성할 수 있는 새로운 아키텍처가 필요하다.


2. YOLOv11의 특징 요약

YOLOv11은 Ultralytics에서 2024년에 발표한 모델이다. YOLOv11은 다음과 같은 특징을 가진다.

  • C2PSA 모듈: Cross-Stage Partial 네트워크와 Self-Attention을 결합하여 다양한 스케일의 특징을 효과적으로 혼합한다.
  • C3k2 병목 블록: 큰 컨볼루션 대신 두 개의 소형 컨볼루션을 사용하여 특징 추출의 효율을 높인다.
  • 효율성: 동일한 모델 크기 대비 더 높은 mAP와 파라미터 절감을 달성한다.
  • 다중 작업 지원: 객체 검출 외에도 인스턴스 분할, 포즈 추정 등 다양한 작업에 유연하게 적용된다.

3. YOLOv12 주요변경점

YOLOv12는 YOLOv11의 한계를 극복하고, 실시간 객체 검출에서 더 높은 정확도를 달성하기 위하여 다음과 같은 기술들을 도입한다.

① Area Attention (A2) 모듈

  • 기존 문제: 전통적인 self-attention은 전체 영역에 대해 연산 비용이 크거나, 제한된 윈도우 내에서만 작동하여 장거리 상관관계를 포착하는 데 한계가 있다.
  • 해결: A2 모듈은 이미지 피처 맵을 큰 영역(예: 가로 스트라이프)으로 분할한 후 각 영역 내에서 self-attention을 적용한다.
    • 연산 복잡도를 절반으로 줄이면서 전체 영역에 대한 정보를 효과적으로 통합한다.
    • YOLOv11의 제한적 Attention 대비, 보다 광범위한 컨텍스트 정보를 반영하여 작은 객체나 복잡한 배경에서도 우수한 성능을 보인다.

② Residual ELAN (R-ELAN) 백본

  • 기존 문제: 깊은 네트워크 구성 시 gradient 소실 문제가 발생하며, 기존 ELAN/CSP 블록은 깊이 확장에 한계가 있다.
  • 해결: R-ELAN은 블록 간에 잔차 연결(residual connection) 을 도입하여 안정적인 학습을 가능하게 한다.
    • 각 블록에서 피처를 통합할 때 채널 차원 조정을 통해 하나의 통합 피처 맵을 생성하고, 잔차 덧셈을 수행한다.
    • YOLOv11에 비해 더 깊은 네트워크 확장이 가능하며, 전체 네트워크의 안정성과 성능을 개선한다.

③ FlashAttention 적용

  • 기존 문제: Transformer 계열의 Attention 연산은 GPU 메모리와 연산 시간 측면에서 병목 현상을 일으킨다.
  • 해결: FlashAttention 알고리즘을 사용하여 Attention 연산의 메모리 접근 횟수를 최소화하고 빠른 연산을 가능하게 한다.
    • 최신 GPU에서는 YOLOv12가 YOLOv11과 동일한 속도를 유지하면서도 더 복잡한 Attention 구조를 사용할 수 있다.
    • 다만, 구형 GPU에서는 일반 Attention으로 대체되어 약간의 속도 저하가 있을 수 있다.

④ 간소화된 피드포워드 네트워크

  • 기존 Transformer 모델들은 MLP 확장 비율(보통 4배)을 사용하여 불필요한 연산을 유발한다.
  • YOLOv12는 MLP 확장 비율을 1.2로 낮추고, 불필요한 positional encoding을 제거하여 연산 효율을 극대화한다.
    • 이를 통해 Attention 블록의 효율성을 높이며, 컨볼루션+BatchNorm 연산을 주로 사용하여 하드웨어 최적화를 달성한다.

⑤ 헤드 구조 단순화

  • YOLOv12는 기존 YOLOv11의 디커플드 헤드 디자인을 유지하면서도,
    • 마지막 단계의 블록 수를 줄여 gradient 흐름을 개선한다.
    • 불필요한 중복 연산을 제거하여 전체 모델의 추론 속도를 유지한다.
  • 이와 같은 구조 최적화를 통해 YOLOv12는 동일한 시간 내에 더 풍부한 피처를 생성하여 높은 mAP를 달성한다.

4. 해결책 및 성능 개선

YOLOv12의 위와 같은 혁신적 기술 도입은 실제 성능 개선으로 이어진다.

성능 비교

  • YOLOv12-Nano vs YOLOv11-Nano:
    • YOLOv12-N은 COCO 데이터셋에서 약 40.6% mAP를 기록하며, YOLOv11-N보다 약 1.2% 높은 mAP를 보인다.
    • 파라미터 수는 더 적으면서도 효율성이 크게 개선된다.
  • 모델 스케일 확장:
    • 대형 모델에서도 YOLOv12는 더 높은 recall과 mAP를 달성하며, 특히 복잡한 장면에서의 객체 검출 성능이 우수하다.
    • 전체적으로 동일한 추론 시간 내에서 YOLOv12가 이전 버전들보다 더 높은 정확도를 보인다.
  • 실시간 검출 리더십:
    • YOLOv12는 RT-DETR 같은 Transformer 기반 모델보다 빠르면서도 높은 mAP를 기록하여 실시간 객체 검출 분야에서 새로운 기준을 제시한다.
    • 최신 GPU에서 FlashAttention 덕분에 YOLOv12는 YOLOv11과 동일한 속도를 유지하면서 정밀도가 향상된다.

5. 코드 예제: YOLOv12 사용법

YOLOv12의 공식 구현은 GitHub에서 제공되며, 사용법은 기존 YOLO 모델들과 유사하다. 아래 코드는 YOLOv12를 로드하고 이미지에 대해 객체 검출을 수행하는 예제이다.

# YOLOv12 공식 저장소를 클론하고 설치한다.
!git clone https://github.com/sunsmarterjie/yolov12.git
%cd yolov12
!pip install -r requirements.txt
!pip install -e .  # 편집 가능한 패키지로 설치한다.

# Ultralytics API를 사용하여 YOLOv12 모델을 불러온다 (예: nano 모델).
from ultralytics import YOLO
model = YOLO("yolov12n.pt")  # COCO 데이터셋으로 사전 학습된 YOLOv12-nano 모델을 로드한다.

# 이미지에 대해 객체 검출을 수행한다.
results = model.predict("input.jpg")  # 또는 shorthand로 model("input.jpg")를 사용한다.

# 검출된 객체들의 박스와 클래스를 출력한다.
for box in results[0].boxes:
    cls_id = int(box.cls)
    score = float(box.conf)
    print(f"{box.xyxy} 위치에서 {model.names[cls_id]} 객체가 {score:.2f} 확률로 검출됨이다.")

 

위 코드는 YOLOv12 모델을 설치하고, 이미지를 입력받아 객체 검출을 수행하는 전형적인 예제이다. YOLOv12는 인스턴스 분할, 포즈 추정 등 다양한 작업을 지원하므로, 모델 가중치 파일 이름만 변경하면 다른 태스크에도 쉽게 적용할 수 있다.


정리

YOLOv12는 기존 YOLOv11의 강점을 유지하면서, Attention 기반의 새로운 모듈과 잔차 연결을 통한 안정적인 학습, 최신 GPU에 최적화된 FlashAttention 도입으로 한층 발전한 모델이다.

  • 요약: 기존 YOLO 모델의 한계를 극복하고, 실시간 객체 검출에서 더 높은 정확도와 효율성을 구현한다.
  • 문제: 복잡한 장면 및 작은 객체 검출의 어려움과 CNN 구조의 한계가 있었다.
  • 개념: Attention 모듈과 효율적인 백본(R-ELAN)을 통해 장거리 상관관계를 포착하며 안정적인 학습을 달성한다.
  • 해결: Area Attention, FlashAttention, 간소화된 피드포워드 네트워크 등 혁신적 기법을 도입한다.
  • 설명: 실험 결과, YOLOv12는 동일한 추론 시간 내에서 YOLOv11보다 높은 mAP와 우수한 성능을 달성하여 실시간 객체 검출 분야에서 새로운 기준을 제시한다.

딥러닝 연구자들은 YOLOv12의 설계 철학과 기술적 세부사항을 면밀히 분석하여 향후 객체 검출 연구 및 실제 응용 시스템에 어떻게 적용할지 고민할 수 있다. YOLOv12는 단순히 성능을 개선한 것이 아니라, CNN과 Transformer의 장점을 결합하여 “한 번 본 것으로 충분하다”는 YOLO의 철학을 새로운 차원으로 끌어올린 모델이다.


728x90