YOLO vs SAM 비교
| YOLO | SAM 3 |
|---|
| 한 줄 요약 | 실시간 탐지 전문 | 정밀 세그멘테이션 전문 |
| 관계 | 경쟁이 아닌 보완 관계 | 경쟁이 아닌 보완 관계 |
문서 탐색
기능 비교
| 항목 | YOLO | SAM 3 |
|---|
| 주요 기능 | Object Detection (바운딩 박스) | Segmentation (픽셀 마스크) |
| 출력 | 바운딩 박스 + 클래스 + confidence | 세그멘테이션 마스크 |
| 프롬프트 | 없음 (학습된 클래스 자동 탐지) | 텍스트/이미지 예시/포인트/박스 |
| Open-vocabulary | 불가 (커스텀 학습 필요) | 가능 (텍스트로 새 클래스 즉시) |
| Zero-shot | 불가 | 가능 |
성능 비교
| 항목 | YOLO11n | YOLO11x | SAM 3 |
|---|
| 추론 속도 | ~1.5ms (TensorRT) | ~11ms | ~30ms (H200) |
| 모델 크기 | 5.4MB | 109MB | ~3.4GB |
| mAP@50 (COCO) | ~55% | ~72% | - |
| Mask AP (LVIS) | - | - | 47.0 |
| GPU 메모리 | < 2GB | < 8GB | 16GB+ |
라이선스 비교
| 항목 | YOLO (Ultralytics) | SAM 3 (Meta) |
|---|
| 라이선스 | AGPL-3.0 | Apache 2.0 |
| 상업적 사용 | Enterprise 라이선스 구매 필요 | 자유롭게 사용 가능 |
| 소스 공개 의무 | AGPL: 프로젝트 전체 소스 공개 필수 | 없음 |
| 비용 | 무료(오픈소스 공개 시) / 유료(상업용) | 무료 |
| 철도 프로젝트 영향 | 상용화 시 Enterprise 전환 필요 | 제약 없음 |
시나리오별 선택 가이드
| 시나리오 | 추천 | 이유 |
|---|
| 실시간 드론 탐지 | YOLO | 속도 10배+ 빠름, 엣지 배포 가능 |
| 자동 라벨링 (수동 라벨링 대체) | SAM 3 | 텍스트 프롬프트로 즉시 사용, 학습 불필요 |
| 프로토타이핑/PoC | SAM 3 | Zero-shot으로 바로 결과 확인 |
| 프로덕션 배포 (Jetson 등) | YOLO | 경량 모델, 엣지 디바이스 최적화 |
| 정밀 마스크 필요 (결함 영역) | SAM 3 | 픽셀 단위 세그멘테이션 |
| 상업적 제품 출시 | SAM 3 우선 검토 | Apache 2.0 라이선스 자유로움 |
| 대량 이미지 빠른 처리 | YOLO | 배치 처리 속도 압도적 |
하이브리드 파이프라인 (핵심!)
두 모델은 경쟁 관계가 아니라 함께 쓸 때 가장 강력합니다.
파이프라인 1: SAM → YOLO (자동 라벨링)
- SAM 3 텍스트 프롬프트로 드론 사진 자동 세그멘테이션
- 마스크 → YOLO 바운딩 박스 라벨로 변환
- 생성된 라벨로 YOLO 커스텀 학습
- 결과: 수동 라벨링 시간 대폭 절감
코드 개요:
# Step 1: SAM으로 자동 라벨링
predictor.set_image("drone_photo.jpg")
results = predictor(text=["rail", "sleeper", "catenary"])
# Step 2: 마스크 → YOLO 라벨 변환
save_as_yolo_labels(results)
# Step 3: YOLO 학습
model = YOLO("yolo11n.pt")
model.train(data="railway.yaml", epochs=100)
파이프라인 2: YOLO → SAM (정밀 분석)
- YOLO로 빠른 탐지 (바운딩 박스)
- 탐지된 박스를 SAM 프롬프트로 전달 → 정밀 마스크 획득
- 결함 영역의 픽셀 단위 분석 가능
코드 개요:
# Step 1: YOLO 탐지
yolo = YOLO("railway_model.pt")
detections = yolo("drone_photo.jpg")
# Step 2: SAM 정밀 세그멘테이션
predictor.set_image("drone_photo.jpg")
for box in detections[0].boxes.xyxy:
mask = predictor(bboxes=[box.tolist()])
철도 프로젝트 추천 조합
| 단계 | 도구 | 목적 |
|---|
| Phase 1: PoC | SAM 3 단독 | 데이터 없이 즉시 가능성 검증 |
| Phase 2: 데이터 구축 | SAM 3 자동 라벨링 | 수동 라벨링 비용 절감 |
| Phase 3: 모델 학습 | YOLO 커스텀 학습 | 실시간 탐지 모델 확보 |
| Phase 4: 프로덕션 | YOLO (엣지) + SAM (서버) | 빠른 탐지 + 정밀 분석 병행 |
문서 탐색
참고 자료