Ultralytics YOLOv5 v7.0의 인스턴스 세그멘테이션 소개
최고 수준의 AI 정확도와 속도를 위해 SOTA 벤치마크를 능가하는 새로운 인스턴스 세그멘테이션 모델을 갖춘 YOLOv5 v7.0을 만나보세요. 커뮤니티에 참여하세요.

AI 아키텍처의 최신 버전인 YOLOv5 v7.0이 출시되었습니다. 새로운 인스턴스 세그멘테이션 모델을 소개해 드리게 되어 매우 기쁩니다!

이번 최신 릴리스를 작업하면서 두 가지 목표를 최우선으로 고려했습니다. 첫 번째는 AI를 쉽게 만들겠다는 우리의 사명이고, 두 번째는 “최첨단(state-of-the-art)”의 의미를 진정으로 재정의하겠다는 목표였습니다.
따라서 상당한 개선, 수정 및 업그레이드를 거쳐 바로 그렇게 해냈습니다. 기존 Ultralytics YOLOv5 객체 감지 모델과 동일한 단순한 워크플로를 유지하면서, 이제 YOLOv5 v7.0을 사용하여 모델을 그 어느 때보다 쉽게 학습, 검증 및 배포할 수 있습니다. 뿐만 아니라, 모든 SOTA 벤치마크를 능가하여 YOLOv5를 세계에서 가장 빠르고 정확한 모델로 만들었습니다.
segmentation 모델의 첫 번째 릴리스인 만큼, 이번 마일스톤에 대해 엄청난 자부심을 느낍니다. 이번 릴리스가 가능하도록 도움을 주신 헌신적인 커뮤니티와 contributors 여러분께 깊은 감사를 드립니다.

그럼 YOLOv5 v7.0 release notes와 함께 시작해 보겠습니다!
중요한 Ultralytics YOLOv5 업데이트#
2022년 8레에 YOLOv5 v6.2를 마지막으로 릴리스한 이후 YOLOv5에서 업데이트된 내용은 다음과 같습니다.
- Segmentation Models ⭐ NEW: SOTA YOLOv5-seg COCO 사전 학습된 세그멘테이션 모델을 최초로 사용할 수 있게 되었습니다 (#9052 (작성자: @glenn-jocher, @AyushExel, @Laughing-q))
- PaddlePaddle Export: python export.py --include paddle을 사용하여 모든 YOLOv5 모델(cls, seg, det)을 Paddle 형식으로 내보낼 수 있습니다 (#9459 (작성자: @glenn-jocher))
- YOLOv5 AutoCache: python train.py --cache ram을 사용하면 이제 사용 가능한 메모리를 스캔하고 예상되는 데이터셋 RAM 사용량과 비교합니다. 이를 통해 캐싱 위험이 줄어들며, 학습 속도를 크게 향상시킬 수 있는 데이터셋 캐싱 기능의 도입을 촉진하는 데 도움이 됩니다. (#10027 (작성자: @glenn-jocher))
- Comet Logging and Visualization Integration: 평생 무료인 Comet을 사용하면 YOLOv5 모델을 저장하고, 학습을 재개하며, 예측을 대화형으로 시각화하고 디버그할 수 있습니다. (#9232 (작성자: @DN6))
새로운 세그멘테이션 체크포인트#
저희는 A100 GPU를 사용하여 이미지 크기 640에서 300 에포크 동안 COCO 데이터셋으로 Ultralytics YOLOv5 segmentation 모델을 학습시켰습니다. CPU 속도 테스트를 위해 모든 모델을 ONNX FP32로 내보내고, GPU 속도 테스트를 위해 TensorRT FP16으로 내보냈습니다. 간편한 재현을 위해 모든 속도 테스트를 Google Colab Pro 노트북에서 실행했습니다.
- 모든 체크포인트는 이미지 크기 640 및 모든 기본 설정에서 lr0=0.01 및 weight_decay=5e-5를 사용하는 SGD optimizer로 300 에폭 동안 학습됩니다. 모든 실행은 Weights & Biases training logs에 기록됩니다.
- 정확도 값은 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 명령어로 재현할 수 있습니다.
- FP32에서의 ONNX 및 FP16에서의 TensorRT 내보내기는 export.py를 통해 완료되었습니다. python export.py --weights yolov5s-seg.pt --include engine --device 0 --half 명령어로 재현할 수 있습니다.
새로운 세그멘테이션 사용 예시#
학습#
Ultralytics YOLOv5 분할 학습은 --data coco128-seg.yaml 인수를 통한 COCO128-seg 분할 데이터셋의 자동 다운로드와, bash data/scripts/get_coco.sh --train --val --segments 및 python train.py --data coco.yaml을 실행하는 COCO-segments 데이터셋의 수동 다운로드를 지원합니다.
단일 GPU#
python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640
멀티 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)#
COCO 데이터셋에서 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 # 검증
예측(Predict)#
사전 학습된 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에서 로드 (경고: 추론은 아직 지원되지 않음)

내보내기(Export)#
YOLOv5s-seg 모델을 ONNX 및 TensorRT로 내보내기:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

질문이 있으신가요? Ultralytics forum에 문의하거나, raise an issue를 통해 이슈를 제기하거나, 레포지토리에 submit a PR을 제출해 주세요. 빠른 시작 튜토리얼을 위해 YOLOv5 segmentation Colab notebook을 시작해 볼 수도 있습니다.






