X
Ultralytics YOLOv8.2 릴리스Ultralytics YOLOv8.2 모바일 릴리스Ultralytics YOLOv8.2 릴리스 화살표
녹색 확인
링크가 클립보드에 복사됨

YOLOv5 사용 방법 Comet

Ultralytics 이 YOLOv5 모델 최적화를 위해 Comet 과 어떻게 협력하는지 알아보세요: 실시간 추적, 간소화된 협업, 향상된 재현성.

Ultralytics 에서는 다른 스타트업과 상업적 파트너십을 맺어 누구나 무료로 사용할 수 있는 YOLOv5 과 같은 멋진 오픈 소스 도구의 연구 개발 자금을 지원하고 있습니다. 이 문서에는 해당 파트너의 제휴 링크가 포함되어 있을 수 있습니다.

새로운 파트너 Comet는 데이터 과학자, 엔지니어, 팀 리더가 머신 러닝과 딥 러닝 모델을 가속화하고 최적화하는 데 도움이 되는 도구를 구축합니다.

Comet 는 모델, 데이터 세트, 지표를 추적할 수 있는 강력한 도구입니다. 심지어 시스템과 환경 변수를 기록하여 모든 실행에 대한 재현성과 원활한 디버깅을 보장합니다. 마치 어떤 메모를 남겨야 하는지 마법처럼 알아서 기억해 주는 가상 비서가 있는 것과 같습니다. 실시간으로 모델 메트릭을 추적 및 시각화하고, 하이퍼파라미터, 데이터 세트 및 모델 체크포인트를 저장하고, Comet 사용자 지정 패널을 통해 모델 예측을 시각화하세요!

또한 Comet 을 사용하면 작업 내용을 놓치지 않고 모든 규모의 팀에서 결과를 쉽게 공유하고 협업할 수 있습니다!

YOLOv5 는 컴퓨터 비전 여정의 훌륭한 출발점입니다. 모델의 성능을 개선하고 프로덕션에 바로 사용할 수 있도록 하려면 다음과 같은 실험 추적 도구에 결과를 기록해야 합니다. Comet.

Comet 및 YOLOv5 통합은 3가지 주요 기능을 제공합니다:

  • 자동 로깅 및 사용자 지정 로깅 기능
  • 디버깅 및 재현성을 위해 데이터 세트와 모델을 아티팩트로 저장하기
  • Comet의 사용자 지정 패널로 보기 구성하기


이 가이드에서는 Comet 과 함께 YOLOv5 을 사용하는 방법에 대해 설명합니다.

실험을 실시간으로 추적할 준비가 되셨나요? 이제 시작하세요!

시작하기

1. 설치 Comet

Pip 설치 comet_ml

2. Comet 자격 증명 구성

Comet 를 구성하는 방법은 두 가지가 있습니다. YOLOv5.

환경 변수를 통해 자격 증명을 설정하거나 작업 디렉터리에 .comet.config 파일을 생성하고 여기에 자격 증명을 설정할 수 있습니다.


환경 변수

내보내기 COMET_API_KEY=내보내기 COMET_PROJECT_NAME= # 기본값은 'yolov5' 입니다.


Comet 구성 파일

[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'

3. 교육 스크립트 실행

# 5개의 에포크에 대해 COCO128에서 YOLOv5를 훈련시킵니다.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

그거예요!

Comet 를 실행하면 하이퍼파라미터, 명령줄 인수, 트레이닝 및 유효성 검사 지표가 자동으로 기록됩니다. Comet UI에서 실행을 시각화하고 분석할 수 있습니다.

Comet 대시보드에서 YOLOv5 실험

직접 체험해 보세요!

여기에서 완료된 실행의 예를 확인하세요.

더 좋은 방법은 이 랩 노트에서 직접 사용해 보는 것입니다.

자동 로그

기본적으로 Comet 에는 다음 항목이 기록됩니다:

지표

  • 훈련 및 검증 데이터의 박스 손실, 오브젝트 손실, 분류 손실
  • 유효성 검사 데이터에 대한 mAP_0.5, mAP_0.5:0.95 메트릭
  • 유효성 검사 데이터의 정확도 및 리콜

매개변수

  • 모델 하이퍼파라미터
  • 명령줄 옵션을 통해 전달되는 모든 매개변수

시각화

  • 검증 데이터에 대한 모델 예측의 혼동 행렬
  • 모든 클래스에 대한 PR 및 F1 곡선 플롯
  • 클래스 레이블의 상관관계도

Comet 로깅 구성

Comet 는 트레이닝 스크립트 또는 환경 변수에 전달된 명령줄 플래그를 통해 추가 데이터를 기록하도록 구성할 수 있습니다.

export COMET_MODE=online # Comet 을 '온라인' 또는 '오프라인' 모드로 실행할지 여부를 설정합니다. 기본값은 온라인 내보내기 COMET_MODEL_NAME= #저장된 모델의 이름을 설정합니다. 기본값은 yolov5export COMET_LOG_CONFUSION_MATRIX=false # Comet 혼동 매트릭스 로깅을 비활성화하도록 설정합니다. 기본값은 trueexport COMET_MAX_IMAGE_UPLOADS= # Comet 에 기록할 총 이미지 예측 개수를 제어합니다. 기본값은 100.export COMET_LOG_PER_CLASS_METRICS=true # 학습 종료 시 탐지된 각 클래스에 대한 평가 지표를 기록하도록 설정합니다. 기본값은 falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # 다른 체크포인트에서 훈련을 다시 시작하려면 이 값을 설정합니다. 기본값은 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # 배치 수준에서 교육 메트릭을 기록하려면 이 값을 설정합니다. 기본값은 false.export COMET_LOG_PREDICTIONS=true # 모델 예측 로깅을 비활성화하려면 이 값을 false로 설정합니다.

로깅 체크포인트 Comet

Comet 에 모델 로깅은 기본적으로 비활성화되어 있습니다. 이 기능을 활성화하려면 훈련 스크립트에 save-period 인수를 전달합니다. Comet

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128.yaml \

--weights yolov5s.pt \

--save-period 1

로깅 모델 예측

기본적으로 모델 예측(이미지, 기준점 레이블, 바운딩 박스)은 Comet 에 기록됩니다. bbox_interval 명령줄 인수를 전달하여 기록되는 예측 및 관련 이미지의 빈도를 제어할 수 있습니다. 예측은 Comet 의 객체 감지 사용자 지정 패널을 사용하여 시각화할 수 있습니다. 이 빈도는 에포크당 데이터의 모든 N번째 배치에 해당합니다. 아래 예시에서는 각 에포크의 두 번째 데이터 배치를 모두 로깅하고 있습니다.

참고: YOLOv5 유효성 검사 데이터 로더는 기본적으로 배치 크기가 32로 설정되어 있으므로 이에 맞게 로깅 빈도를 설정해야 합니다.

다음은 패널을 사용하는 프로젝트의 예입니다.

python train.py \--img 640 \--배치 16 \--에포크 5 \--데이터 코코128.yaml \--가중치 yolov5s.pt \--bbox_interval 2

로그인한 예측 이미지 수 제어하기 Comet

YOLOv5 에서 예측을 로깅할 때 Comet 은 각 예측 세트와 관련된 이미지를 로깅합니다. 기본적으로 최대 100개의 유효성 검사 이미지가 로깅됩니다. COMET _MAX_IMAGE_UPLOADS 환경 변수를 사용하여 이 수를 늘리거나 줄일 수 있습니다.

환경 COMET_MAX_IMAGE_UPLOADS=200python train.py \--이미지 640 \--배치 16 \--에포크 5 \--데이터 코코128.yaml \--웨이트 yolov5s.pt \--bbox_interval 1

클래스 레벨 메트릭 로깅

COMET_LOG_PER_CLASS_METRICS 환경 변수를 사용하여 각 클래스에 대한 mAP, 정밀도, 리콜 및 f1을 기록합니다.

환경 COMET_LOG_PER_CLASS_METRICS=true python train.py \--img 640 \--배치 16 \--에포크 5 \--데이터 coco128.yaml \--가중치 yolov5s.pt

Comet 아티팩트에 데이터 세트 업로드하기

Comet 아티팩트를 사용하여 데이터를 저장하려는 경우 업로드_데이터세트 플래그를 사용하여 저장할 수 있습니다.

데이터 세트는 YOLOv5 문서에 설명된 방식으로 구성됩니다. 데이터 세트 구성 yaml 파일은 coco128.yaml 파일과 동일한 형식을 따라야 합니다.

python train.py \--이미지 640 \--배치 16 \--에포크 5 \--데이터 코코128.yaml \--가중치 yolov5s.pt \--업로드_데이터세트

업로드된 데이터 세트는 Comet 워크스페이스의 아티팩트 탭에서 찾을 수 있습니다.

Comet 아티팩트 탭, YOLOv5

Comet UI에서 바로 데이터를 미리 볼 수 있습니다.

에서 데이터 미리보기 Comet, YOLOv5

아티팩트는 버전이 관리되며 데이터 세트에 대한 메타데이터 추가도 지원합니다. Comet 은 데이터 세트 yaml 파일에서 메타데이터를 자동으로 기록합니다.

Comet 에 YAML 파일의 메타데이터를 기록합니다, YOLOv5

저장된 아티팩트 사용

Comet 아티팩트의 데이터 집합을 사용하려면 데이터 집합 yaml 파일의 경로 변수가 다음 아티팩트 리소스 URL을 가리키도록 설정합니다.

# artifact.yaml 파일 경로의 내용: "comet:///:"

그런 다음 다음과 같은 방법으로 이 파일을 교육 스크립트에 전달합니다:

python train.py \--이미지 640 \--배치 16 \--에포크 5 \--데이터 아티팩트.yaml \--가중치 yolov5s.pt

또한 아티팩트를 사용하면 실험 워크플로우를 통해 데이터의 계보를 추적할 수 있습니다. 여기에서 업로드한 데이터 집합을 사용한 모든 실험을 보여주는 그래프를 볼 수 있습니다.

Comet 실험 워크플로, YOLOv5

훈련 실행 재개

인터넷 연결이 끊기는 등의 이유로 트레이닝 러닝이 중단된 경우, 재개 플래그와 Comet 러닝 경로를 사용하여 러닝을 재개할 수 있습니다.

실행 경로의 형식은 comet://// 입니다.

이렇게 하면 체크포인트에서 모델을 복원하고, 모든 하이퍼파라미터와 훈련 인수를 복원하고, 원래 실행에 사용된 경우 Comet 데이터 세트 아티팩트를 다운로드하는 등 실행이 중단되기 전 상태로 복원됩니다. 재개된 실행은 Comet UI의 기존 실험에 계속 로깅됩니다.

python train.py \--재개 "comet://"

Comet 옵티마이저를 이용한 하이퍼파라미터 검색

YOLOv5 는 Comet 의 옵티마이저와도 통합되어 Comet UI에서 하이퍼파라미터 스윕을 간단하게 시각화할 수 있습니다.

옵티마이저 스윕 구성

Comet 옵티마이저를 구성하려면 스윕에 대한 정보가 포함된 JSON 파일을 만들어야 합니다.

예제 파일이 제공되었습니다:

utils/loggers/comet/optimizer_config.json python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json"

hpo.py 스크립트는 train.py와 동일한 인수를 허용합니다. 스윕에 추가 인수를 전달하려면 스크립트 뒤에 인수를 추가하기만 하면 됩니다.

python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \--save-period 1 \--bbox_interval 1

병렬로 스윕 실행

comet optimizer -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"

Comet 는 스윕 결과를 시각화할 수 있는 다양한 방법을 제공합니다. 여기에서 스윕이 완료된 프로젝트를 살펴보세요:

Comet 에서 스윕 결과 시각화하기 , YOLOv5

연락 유지

교육 실행부터 프로덕션 모니터링에 이르기까지 YOLOv5 모델을 관리, 시각화 및 최적화하기 위해 Comet 와의 통합을 시작하세요.

물론 YOLOv5 교육, 검증 및 배포에 대해 질문하고 팁을 공유할 수 있는 Ultralytics 커뮤니티에 가입하세요.

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

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

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

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