녹색 확인
링크가 클립보드에 복사됨

Ultralytics YOLOv5 v7.0에서 인스턴스 세분화 소개

새로운 인스턴스 세분화 모델이 포함된 YOLOv5 v7.0을 살펴보고 최고의 AI 정확도와 속도를 위해 SOTA 벤치마크를 능가하는 성능을 발휘합니다. 커뮤니티에 참여하세요.

YOLOv5 AI 아키텍처의 최신 버전인v7.0이 출시되었으며, 새로운 인스턴스 세분화 모델을 소개하게 되어 매우 기쁩니다!

이번 최신 버전을 개발하는 동안 두 가지 목표를 최우선으로 고려했습니다. 첫 번째는 AI를 쉽게 만들겠다는 사명이었고, 두 번째는 '최첨단'의 진정한 의미를 재정의하겠다는 목표였습니다.

그래서 대대적인 개선, 수정 및 업그레이드를 통해 바로 그 일을 해냈습니다. 기존 YOLOv5 개체 감지 모델과 동일한 간단한 워크플로를 유지하면서 이제 YOLOv5 v7.0을 통해 그 어느 때보다 쉽게 모델을 훈련, 검증 및 배포할 수 있습니다. 또한 모든 SOTA 벤치마크를 뛰어넘어 YOLOv5 을 세계에서 가장 빠르고 정확하게 만들었습니다.

세분화 모델의 첫 번째 릴리스인 만큼, 이 이정표가 매우 자랑스럽습니다. 이번 릴리스가 가능하도록 도와주신 헌신적인 커뮤니티와 기여자 여러분께 깊은 감사를 드립니다.  

Ultralytics YOLOv5 v7.0 SOTA 실시간 인스턴스 세분화

그럼 이제 YOLOv5 v7.0 릴리스 노트를 시작하겠습니다!

중요 YOLOv5 업데이트

다음은 2022년 8월에 마지막으로 릴리스된 YOLOv5 v6. 2 이후 YOLOv5 에서 업데이트된 내용입니다.

  • 세분화 모델 ⭐ 신규: SOTA YOLOv5-seg COCO가 사전 학습한 세분화 모델을 처음으로 사용할 수 있게 되었습니다(#9052 @glenn-jocher, @AyushExel, @Laughing-q 작성).
  • PaddlePaddle 내보내기: YOLOv5 모델(cls, seg, det)을 패들 형식으로 내보내기( python export.py --include paddle #9459 by @glenn-jocher).
  • YOLOv5 자동 캐시: python train.py --cache ram을 사용하면 이제 사용 가능한 메모리를 스캔하고 예측된 데이터 세트 RAM 사용량과 비교합니다. 이렇게 하면 캐싱의 위험이 줄어들고 데이터 세트 캐싱 기능의 채택을 개선하여 학습 속도를 크게 높일 수 있습니다.(#10027 by @glenn-jocher)
  • Comet 로깅 및 시각화 통합: 평생 무료, CometYOLOv5 모델을 저장하고, 훈련을 재개하고, 예측을 대화형으로 시각화 및 디버깅할 수 있습니다.( @DN6의#9232 )

새로운 세분화 체크포인트

A100 GPU를 사용하여 이미지 크기 640에서 300개의 에포크에 대해 COCO에서 YOLOv5 세그먼테이션 모델을 훈련했습니다. CPU 속도 테스트를 위해 모든 모델을 ONNX FP32로, GPU 속도 테스트를 위해 TensorRT FP16으로 내보냈습니다. 재현성을 높이기 위해 모든 속도 테스트는 Google Colab Pro 노트북에서 실행했습니다.

  • 모든 체크포인트는 이미지 크기 640 및 모든 기본 설정에서 lr0=0.01, weight_decay=5e-5의 SGD 옵티마이저를 사용하여 300 에포크로 훈련되었습니다. 모든 실행은 여기에 기록됩니다.
  • 정확도 값은 COCO 데이터 세트의 단일 모델 단일 스케일에 대한 것입니다. python segment/val.py --data coco.yaml --weights yolov5s-seg.pt로 재현합니다.
  • 100개 이상의 추론 이미지에 대해 Colab Pro A100 하이램 인스턴스를 사용하여 평균 속도를 측정했습니다. 값은 추론 속도만을 나타냅니다(NMS는 이미지당 약 1ms를 추가합니다). python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1로 재현합니다.
  • export.py를 사용하여 FP32의 경우 ONNX , FP16의 경우 TensorRT 로 내보냅니다. python export.py --weights yolov5s-seg.pt --include engine --device 0 --half로 재현합니다.

새로운 세분화 사용 예시

기차

YOLOv5 세그멘테이션 트레이닝은 --data coco128-seg.yaml 인수를 사용하여 COCO128 세그멘테이션 데이터 세트를 자동 다운로드하고, bash data/scripts/get_coco.sh --train --val --segments를 사용하여 COCO 세그먼트 데이터 세트를 수동 다운로드한 다음 python train.py --data coco.yaml을 사용하여 다운로드할 수 있습니다.

싱글GPU

python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640

Multi-GPU DDP

python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3

Val

ImageNet-1k 데이터 세트에서 YOLOv5m-seg 정확도를 검증합니다:

bash data/scripts/get_coco.sh --val --segments # COCO val 세그먼트 분할 다운로드(780MB, 5000개 이미지) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # 유효성 검사

예측

사전 학습된 YOLOv5m-seg를 사용하여 버스.jpg를 예측합니다:

python segment/predict.py --weights yolov5m-seg.pt --data 데이터/이미지/버스.jpg

model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt') # load from PyTorch Hub (경고: 추론은 아직 지원되지 않습니다.)

Ultralytics YOLOv5 v7.0 인스턴스 세분화


내보내기

ONNX 및 TensorRT 으로 YOLOv5s-seg 모델을 내보냅니다:

python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

Ultralytics YOLOv5 v7.0 인스턴스 세분화

질문이 있으신가요? Ultralytics 포럼에 질문하거나, 문제를 제기하거나, 리포지토리에 PR을 제출하세요. 빠른 시작 튜토리얼을 보려면 YOLOv5 세분화 Colab 노트북에서 시작할 수도 있습니다.

Facebook 로고트위터 로고LinkedIn 로고복사 링크 기호

이 카테고리에서 자세히 보기

인공지능의 미래
를 함께 만들어 갑시다!

머신 러닝의 미래와 함께하는 여정 시작하기