YOLO12: 어텐션 중심 객체 탐지#
개요#
2025년 초에 출시된 YOLO12는 이전 YOLO 모델에 사용된 기존 CNN 기반 접근 방식에서 벗어난 어텐션 중심 아키텍처를 도입하면서도, 다양한 애플리케이션에 필수적인 실시간 추론 속도를 유지합니다. 이 모델은 어텐션 메커니즘과 전체 네트워크 아키텍처의 새로운 방법론적 혁신을 통해 높은 객체 탐지 정확도를 달성하면서 실시간 성능을 유지합니다. 이러한 장점에도 불구하고 YOLO12는 커뮤니티 주도로 출시된 모델이며, 무거운 어텐션 블록으로 인해 학습 불안정, 메모리 사용량 증가, CPU 처리량 저하가 나타날 수 있습니다. 따라서 대부분의 프로덕션 워크로드에는 YOLO11 또는 YOLO26을 권장합니다.
시청: Ultralytics 패키지로 객체 감지에 YOLO12를 사용하는 방법 | YOLO12는 빠를까요, 느릴까요? 🚀
주요 기능#
- 영역 어텐션 메커니즘: 넓은 수용 영역을 효율적으로 처리하는 새로운 셀프 어텐션 접근 방식입니다. 특징 맵을 가로 또는 세로 방향으로 동일한 크기의 l개 영역(기본값 4개)으로 나누어 복잡한 연산을 피하면서 넓은 유효 수용 영역을 유지합니다. 이를 통해 표준 셀프 어텐션보다 연산 비용을 크게 줄입니다.
- 잔차 효율적 계층 집계 네트워크(R-ELAN): ELAN을 기반으로 개선한 특징 집계 모듈로, 특히 대규모 어텐션 중심 모델의 최적화 문제를 해결하도록 설계되었습니다. R-ELAN은 다음을 도입합니다.
- 스케일링을 적용한 블록 수준 잔차 연결(레이어 스케일링과 유사).
- 병목 구조를 형성하는 새롭게 설계된 특징 집계 방식.
- 최적화된 어텐션 아키텍처: YOLO12는 표준 어텐션 메커니즘을 간소화하여 효율성과 YOLO 프레임워크와의 호환성을 높입니다. 여기에는 다음이 포함됩니다.
- 메모리 액세스 오버헤드를 최소화하기 위해 FlashAttention 사용.
- 모델을 더 간결하고 빠르게 만들기 위해 위치 인코딩 제거.
- 어텐션 계층과 피드포워드 계층 간 연산 균형을 더 효과적으로 맞추기 위해 MLP 비율을 일반적인 4에서 1.2 또는 2로 조정.
- 최적화를 개선하기 위해 스택 블록의 깊이를 줄임.
- 연산 효율성이 높은 컨볼루션 연산을 적절히 활용.
- 위치 정보를 암묵적으로 인코딩하기 위해 어텐션 메커니즘에 7x7 분리형 컨볼루션("position perceiver") 추가.
- 폭넓은 작업 지원: YOLO12는 객체 탐지, 인스턴스 분할, 이미지 분류, 포즈 추정, 방향성 객체 탐지(OBB) 등 다양한 핵심 컴퓨터 비전 작업을 지원합니다.
- 향상된 효율성: 이전의 여러 모델보다 적은 파라미터로 더 높은 정확도를 달성하여 속도와 정확도 간 균형이 개선되었습니다.
- 유연한 배포: 엣지 디바이스부터 클라우드 인프라까지 다양한 플랫폼에 배포할 수 있도록 설계되었습니다.

지원 작업 및 모드#
YOLO12는 다양한 컴퓨터 비전 작업을 지원합니다. 아래 표에는 작업 지원 여부와 각 작업에서 사용할 수 있는 작동 모드(추론, 검증, 학습, 내보내기)가 나와 있습니다.
탐지 가중치(yolo12n.pt, yolo12s.pt, yolo12m.pt, yolo12l.pt, yolo12x.pt)만 ultralytics/assets에서 공개합니다. 분할, 분류, 포즈, OBB 아키텍처는 ultralytics/cfg/models/12/에 정의되어 있으므로, 해당 변형 모델은 .yaml 설정으로 처음부터 학습할 수 있지만 현재 사전 학습된 .pt 파일은 제공되지 않습니다. 사전 학습된 분할, 포즈, 분류 또는 OBB 체크포인트가 필요하다면 YOLO11 또는 YOLO26을 권장합니다.
| 모델 유형 | 작업 | 사전 학습 가중치 | 학습 | 검증 | 추론 | 내보내기 |
|---|---|---|---|---|---|---|
| YOLO12 | 감지 | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | 분할 | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | 분류 | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | 포즈 | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
학습된 체크포인트가 있으면 모든 YOLO12 아키텍처에서 모든 모드를 사용할 수 있습니다. Pretrained Weights 열은 Ultralytics가 ultralytics/assets에 공식 사전 학습 .pt을 공개하는지 여부만 나타냅니다. 분할, 포즈, 분류, OBB의 경우 추론, 검증 또는 내보내기를 실행하기 전에 해당 .yaml에서 자체 체크포인트를 학습해야 합니다.
성능 지표#
YOLO12는 모든 모델 규모에서 정확도를 크게 개선했지만, 이전 YOLO 모델 중 가장 빠른 모델보다 속도가 느려지는 일부 상충 관계가 있습니다. 다음은 COCO 검증 데이터셋에서 객체 탐지를 수행한 정량적 결과입니다.
탐지 성능(COCO val2017)#
| 모델 | 크기 (픽셀) | mAP검증 50-95 | 속도 CPU ONNX (ms) | 속도 T4 TensorRT (ms) | 파라미터 (M) | FLOPs (B) | 비교 (mAP/속도) |
|---|---|---|---|---|---|---|---|
| YOLO12n | 640 | 40.6 | - | 1.64 | 2.6 | 7.5 | +2.1%/-9% (YOLOv10n 대비) |
| YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 23.3 | +0.1%/+42% (RT-DETRv2 대비) |
| YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 70.7 | +1.0%/-3% (YOLO11m 대비) |
| YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 95.4 | +0.4%/-8% (YOLO11l 대비) |
| YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 208.9 | +0.6%/-4% (YOLO11x 대비) |
- NVIDIA T4 GPU에서 TensorRT FP16 정밀도로 측정한 추론 속도입니다.
- 비교 결과는 mAP의 상대적 개선율과 속도의 변화율을 나타냅니다(양수는 더 빠름, 음수는 더 느림). 비교 대상은 공개된 결과가 있는 경우 YOLOv10, YOLO11, RT-DETR입니다.
사용 예시#
이 섹션에서는 YOLO12를 사용한 학습 및 추론 예제를 제공합니다. 이러한 모드와 다른 모드에 대한 자세한 설명은 검증 및 내보내기를 포함하여 전용 예측 및 학습 페이지를 참조하세요.
아래 예제는 YOLO12 탐지 모델(객체 탐지용)에 중점을 둡니다. 분할, 분류, 포즈 추정, 방향성 객체 탐지 등 다른 지원 작업은 각 작업의 문서인 분할, 분류, 포즈, OBB를 참조하세요.
사전 학습된 *.pt 모델(PyTorch 사용)과 설정 *.yaml 파일을 YOLO() 클래스에 전달하면 Python에서 모델 인스턴스를 생성할 수 있습니다.
from ultralytics import YOLO
# COCO 사전 학습 YOLO12n 모델 로드
model = YOLO("yolo12n.pt")
# COCO8 예제 데이터셋으로 100 에포크 동안 모델 학습
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 'bus.jpg' 이미지로 YOLO12n 모델 추론 실행
results = model("path/to/bus.jpg")주요 개선 사항#
-
향상된 특징 추출:
- 영역 어텐션: 넓은 수용 영역을 효율적으로 처리하여 연산 비용을 줄입니다.
- 균형 최적화: 어텐션 연산과 피드포워드 네트워크 연산 간 균형을 개선했습니다.
- R-ELAN: R-ELAN 아키텍처를 사용해 특징 집계를 개선합니다.
-
최적화 혁신:
- 잔차 연결: 특히 대규모 모델에서 학습을 안정화하기 위해 스케일링을 적용한 잔차 연결을 도입합니다.
- 개선된 특징 통합: R-ELAN 내부의 특징 통합 방식을 개선했습니다.
- FlashAttention: 메모리 액세스 오버헤드를 줄이기 위해 FlashAttention을 적용합니다.
-
아키텍처 효율성:
- 파라미터 감소: 이전의 여러 모델보다 파라미터 수를 줄이면서 정확도를 유지하거나 개선합니다.
- 간소화된 어텐션: 위치 인코딩을 사용하지 않는 간소화된 어텐션 구현을 사용합니다.
- 최적화된 MLP 비율: 연산 리소스를 더 효과적으로 배분하도록 MLP 비율을 조정합니다.
요구 사항#
Ultralytics YOLO12 구현은 기본적으로 FlashAttention을 필요로 하지 않습니다. 하지만 FlashAttention을 선택적으로 컴파일하여 YOLO12와 함께 사용할 수 있습니다. FlashAttention을 컴파일하려면 다음 NVIDIA GPU 중 하나가 필요합니다.
- Turing GPU(예: T4, Quadro RTX 시리즈)
- Ampere GPU(예: RTX30 시리즈, A30/40/100)
- Ada Lovelace GPU(예: RTX40 시리즈)
- Hopper GPU (예: H100/H200)
인용 및 감사의 글#
연구에서 YOLO12를 사용하신다면 University at Buffalo와 University of Chinese Academy of Sciences의 원저를 인용해 주세요:
@inproceedings{tian2025yolov12,
title={YOLOv12: Attention-Centric Real-Time Object Detectors},
author={Tian, Yunjie and Ye, Qixiang and Doermann, David},
booktitle={Advances in Neural Information Processing Systems},
volume={38},
pages={78433--78457},
year={2025},
url={https://proceedings.neurips.cc/paper_files/paper/2025/file/7103444259031cc58051f8c9a4868533-Paper-Conference.pdf}
}
@software{yolo12,
author = {Tian, Yunjie and Ye, Qixiang and Doermann, David},
title = {YOLO12: Attention-Centric Real-Time Object Detectors},
year = {2025},
url = {https://github.com/sunsmarterjie/yolov12},
license = {AGPL-3.0}
}YOLO12 논문은 NeurIPS 2025 proceedings에 게재되었으며, arXiv에 프리프린트가 게시되어 있습니다.
자주 묻는 질문#
YOLO12는 속도와 정확도의 균형을 맞추기 위해 몇 가지 핵심 혁신을 적용합니다. Area Attention 메커니즘은 넓은 수용 영역을 효율적으로 처리하여 표준 self-attention보다 계산 비용을 줄입니다. Residual Efficient Layer Aggregation Networks (R-ELAN)는 feature aggregation을 개선해 attention 중심의 대규모 모델에서 발생하는 최적화 문제를 해결합니다. FlashAttention 사용과 positional encoding 제거를 포함한 최적화된 Attention 아키텍처는 효율성을 더욱 높입니다. 이러한 기능을 통해 YOLO12는 여러 애플리케이션에 필수적인 실시간 추론 속도를 유지하면서 최신 수준의 정확도를 달성합니다.
YOLO12는 YOLOv10 및 YOLO11과 같은 이전 YOLO 모델에 비해 모든 모델 규모에서 정확도가 크게 향상되었으며, 가장 빠른 이전 모델과 비교하면 속도 면에서 일부 절충이 있습니다. 예를 들어, YOLO12n은 COCO val2017 데이터셋에서 YOLOv10n보다 mAP가 +2.1%, YOLO11n보다 +1.2% 향상됩니다. RT-DETR 같은 모델과 비교하면 YOLO12s는 mAP가 +1.5% 향상되고 속도는 상당한 수준인 +42% 증가합니다. 이러한 지표는 정확도와 효율성 사이에서 YOLO12가 뛰어난 균형을 갖추었음을 보여줍니다. 자세한 비교는 성능 지표 섹션을 참조하세요.
기본적으로 Ultralytics YOLO12 구현에는 FlashAttention이 필요하지 않습니다. 하지만 메모리 액세스 오버헤드를 최소화하기 위해 FlashAttention을 선택적으로 컴파일하여 YOLO12와 함께 사용할 수 있습니다. FlashAttention을 컴파일하려면 다음 NVIDIA GPU 중 하나가 필요합니다. Turing GPU(예: T4, Quadro RTX 시리즈), Ampere GPU(예: RTX30 시리즈, A30/40/100), Ada Lovelace GPU(예: RTX40 시리즈) 또는 Hopper GPU(예: H100/H200). 이러한 유연성 덕분에 하드웨어 리소스가 허용되는 경우 FlashAttention의 이점을 활용할 수 있습니다.