욜로 비전 선전
선전
지금 참여하기

Ultralytics YOLOv5 v7.0에 인스턴스 분할 도입

Ultralytics 팀

3분 읽기

2022년 11월 23일

최고의 AI 정확도와 속도를 위해 SOTA 벤치마크를 능가하는 새로운 인스턴스 분할 모델을 통해 YOLOv5 v7.0을 경험해 보세요. 저희 커뮤니티에 참여하세요.

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

최신 릴리스 작업을 진행하면서 두 가지 목표를 최우선으로 고려했습니다. 첫 번째는 AI를 쉽게 만드는 것이었고, 두 번째는 '최첨단'의 진정한 의미를 재정의하는 것이었습니다.

따라서 상당한 개선, 수정 및 업그레이드를 통해 우리는 바로 그 일을 해냈습니다. 기존 YOLOv5 객체 감지 모델과 동일한 간단한 워크플로우를 유지하면서 YOLOv5 v7.0으로 모델을 훈련, 검증 및 배포하는 것이 그 어느 때보다 쉬워졌습니다. 이 외에도 모든 SOTA 벤치마크를 능가하여 YOLOv5를 세계에서 가장 빠르고 정확하게 만들었습니다.

이번 세분화 모델의 첫 번째 릴리스를 발표하게 되어 매우 자랑스럽습니다. 이 릴리스를 가능하게 해준 헌신적인 커뮤니티와 기여자들에게 깊은 감사를 드립니다.  

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

YOLOv5 v7.0 릴리스 정보로 시작해 보겠습니다!

중요한 YOLOv5 업데이트

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

  • Segmentation 모델 ⭐ NEW: SOTA YOLOv5-seg COCO 사전 학습된 분할 모델을 이제 처음으로 사용할 수 있습니다(#9052 by @glenn-jocher, @AyushExel, and @Laughing-q)
  • PaddlePaddle 내보내기: python export.py --include paddle #9459 by @glenn-jocher를 사용하여 모든 YOLOv5 모델(cls, seg, det)을 Paddle 형식으로 내보냅니다.
  • YOLOv5 AutoCache: python train.py --cache ram을 사용하면 사용 가능한 메모리를 검색하고 예측된 데이터 세트 RAM 사용량과 비교합니다. 이렇게 하면 캐싱의 위험이 줄어들고 데이터 세트 캐싱 기능의 채택이 향상되어 학습 속도를 크게 높일 수 있습니다. (@glenn-jocher의 #10027)
  • Comet 로깅 및 시각화 통합: 영구적으로 무료인 Comet을 통해 YOLOv5 모델을 저장하고, 학습을 재개하며, 예측을 대화식으로 시각화하고 디버깅할 수 있습니다. (#9232 by @DN6)

새로운 분할 체크포인트

A100 GPU를 사용하여 이미지 크기 640에서 COCO에 대해 YOLOv5 분할 모델을 300 epoch 동안 학습했습니다. CPU 속도 테스트를 위해 모든 모델을 ONNX FP32로, GPU 속도 테스트를 위해 TensorRT FP16으로 내보냈습니다. 쉬운 재현성을 위해 Google Colab Pro 노트북에서 모든 속도 테스트를 실행했습니다.

  • 모든 체크포인트는 이미지 크기 640에서 lr0=0.01 및 weight_decay=5e-5의 SGD optimizer와 모든 기본 설정을 사용하여 300 epoch 동안 훈련됩니다. 모든 실행은 여기에 기록됩니다.
  • 정확도 값은 COCO 데이터 세트에서 단일 모델, 단일 스케일에 대한 것입니다. python segment/val.py --data coco.yaml --weights yolov5s-seg.pt로 재현할 수 있습니다.
  • Colab Pro A100 High-RAM 인스턴스를 사용하여 100개의 추론 이미지에 대해 평균화된 속도입니다. 값은 추론 속도만 나타냅니다(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-seg 분할 데이터 세트 자동 다운로드를 지원하고 bash data/scripts/get_coco.sh --train --val --segments를 사용하여 COCO-segments 데이터 세트 수동 다운로드를 지원한 다음 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 segments 분할 다운로드 (780MB, 5000 이미지) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640  # 유효성 검사

예측

사전 훈련된 YOLOv5m-seg를 사용하여 bus.jpg 예측:

python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg

model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt')  # PyTorch Hub에서 로드 (경고: 추론은 아직 지원되지 않음)

Ultralytics YOLOv5 v7.0 인스턴스 분할


내보내기

YOLOv5s-seg 모델을 ONNX 및 TensorRT로 내보내기:

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

Ultralytics YOLOv5 v7.0 인스턴스 분할

궁금한 점이 있으신가요? Ultralytics 포럼에 문의하거나, 이슈를 제기하거나, 저장소에 PR을 제출하세요. 빠른 시작 튜토리얼을 위해 YOLOv5 분할 Colab 노트북을 시작할 수도 있습니다.

함께 미래의 AI를 만들어 갑시다!

미래의 머신러닝 여정을 시작하세요

무료로 시작하기
클립보드에 링크가 복사되었습니다.