본문 바로가기
AI Paper Review

[논문 리뷰] Computer Vision - YOLOv10: Real-Time End-to-End Object Detection

by coding-choonsik 2024. 5. 28.
728x90
반응형
SMALL

YOLOv10: 실시간 End-to-End 객체 탐지

📃 논문

🔮 GitHub

 

GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection

YOLOv10: Real-Time End-to-End Object Detection. Contribute to THU-MIG/yolov10 development by creating an account on GitHub.

github.com

📍 Docs

 

YOLOv10

뛰어난 속도와 정확성으로 유명한 최첨단 실시간 물체 감지기인 YOLOv10에 대해 알아보세요. NMS가 필요 없는 훈련, 전체적인 모델 설계, 다양한 규모에 걸친 성능에 대해 알아보세요.

docs.ultralytics.com

🔍 YOLOv9 논문리뷰 

 

[논문 리뷰] Computer Vision - YOLOv9: 물체 감지 기술의 도약

📃 논문 YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information Today's deep learning methods focus on how to design the most appropriate objective functions so that the prediction results of the model can be closest to the grou

coding-yesung.tistory.com


 

개요

 

실시간 객체 감지는 짧은 지연 시간으로 이미지에서 객체 범주와 위치를 정확하게 예측하는 것을 목표로함.

YOLO 시리즈는 NMS에 대한 의존도와 아키텍처의 비효율성이 최적의 성능을 저해해 왔음.

YOLOv10은 NMS 없는 훈련을 위한 일관된 이중 할당 전략과 전체적인 효율성-정확도 중심의 모델 설계 전략을 도입하여 이러한 문제를 해결

 

 

  1. NMS(Non-Maximum Suppression) 없는 훈련을 위한 일관된 이중 할당 전략 
    • NMS(Non-Maximum Suppression)
      • NMS는 객체 탐지에서 여러 후보 박스 중에서 가장 확실한 객체 박스를 선택하는 과정
      • 여러 박스가 같은 객체를 탐지했을 때, 가장 높은 확률을 가진 박스를 선택하고 나머지 겹치는 박스는 제거함
      • NMS는 추가적인 계산을 필요로 하기 때문에 추론 속도에 영향을 미칠 수 있음
    • 이중 할당 전략
      • 일반적으로 객체 탐지 모델은 훈련 시에 한 개의 객체에 대해 여러 개의 예측을 할당(one-to-many)하여 더 많은 supervision 신호를 제공하여 모델이 더 잘 학습할 수 있도록 돕지만, 추론 시에는 NMS를 통해 중복된 예측을 제거해야 하는 단점이 있음 → 기존 YOLO 모델 학습에 사용(Task Alignment Learning)
      •  하나의 객체에 하나의 예측만을 할당(one-to-one)하면 NMS가 필요 없지만,  supervision 신호가 부족하여 성능이 떨어질 수 있음
  2.  효율성과 정확성을 모두 고려한 모델 설계. 이 설계 전략은 경량화된 분류 헤드, 공간-채널 분리 다운샘플링, 순위 기반 블록 설계, large kernel convolution 및 부분적 self-attention 모듈이 포함 
    • 효율성 중심 모델 설계
      • 경량화된 분류 헤드:  깊이별로 분리 가능한 컨볼루션이 포함된 단순화된 아키텍처를 사용하여 계산 오버헤드를 줄인다.
      • 공간-채널 분리 다운샘플링: 공간 감소와 채널 증가를 분리하여 계산 비용을 줄이고 정보를 유지
      • 순위 기반 블록 설계: 고유 순위 분석을 사용하여 모델 단계의 중복성을 식별하고 줄이고 복잡한 블록을 소형 역전 블록과 같은 보다 효율적인 구조로 대체
    • 정확성 중심의 모델 설계
      • large kernel convolution : 얕은 단계에서 오버헤드를 피하기 위해 선택적으로 대형 커널 깊이별 컨볼루션을 사용하여 깊은 단계의 수용 필드를 늘려 모델 기능을 향상시킴
      • 부분적 self-attention(PSA): 기능을 분할하고 기능의 일부에 셀프 어텐션을 적용하여 효율적인 셀프 어텐션을 통합하여 계산 복잡성과 메모리 사용량을 줄이는 동시에 전역 표현 학습을 향상시킴

 

 

실험 및 결과

YOLOv10은 COCO와 같은 표준 벤치마크에서 광범위하게 테스트되어 우수한 성능과 효율성을 입증

이 모델은 이전 버전 및 기타 최신 탐지기에 비해 추론 시간과 정확도가 크게 향상!!

 

  • YOLOv10-S / X는 비슷한 정확도로 RT-DETR-R18 / R101보다 1.8배 / 1.3배 빠름
  • YOLOv10-B는 동일한 정확도에서 YOLOv9-C보다 파라미터 수가 25% 더 적고 지연 시간이 46% 더 짧음
  • 1.8배 / 2.3배 적은 매개 변수로 YOLOv8-L / X보다 0.3 AP / 0.5 AP 성능이 우수

 

사용 예시

pretrained 모델로 이미지 예측 해보기!

▲ 원본이미지

 

from ultralytics import YOLO

# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform object detection on an image
results = model.predict("frame_0030.jpg")

# Display the results
results[0].show()

위왁 같은 에러가 발생함

 

https://github.com/THU-MIG/yolov10/issues/46

 

AttributeError: 'dict' object has no attribute 'shape' · Issue #46 · THU-MIG/yolov10

Hi so i trained my model and im trying to run inference, Command used "!yolo predict model="I:/Github/test/runs/detect/train/weights/best.pt" source="03_001_130524.png" i get this error File "c:\Us...

github.com

 

from ultralytics import YOLOv10
model = YOLOv10()
model.predict(img, save=True)

 

 

 

 

728x90
반응형
LIST