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

Ultralytics가 Ultralytics YOLOv5 모델 최적화를 위해 Comet과 어떻게 협력하는지 알아보세요: 실시간 추적, 간소화된 협업 및 향상된 재현성.
Ultralytics는 YOLOv5와 같은 멋진 오픈 소스 도구의 연구 개발 자금을 지원하고 모든 사람이 무료로 사용할 수 있도록 다른 스타트업과 상업적 파트너십을 맺고 있습니다. 이 기사에는 해당 파트너에 대한 제휴 링크가 포함될 수 있습니다.
최신 파트너인 Comet은 데이터 과학자, 엔지니어 및 팀 리더가 머신 러닝 및 딥 러닝 모델을 가속화하고 최적화하는 데 도움이 되는 도구를 구축합니다.
Comet은 모델, 데이터 세트 및 메트릭 추적을 위한 강력한 도구입니다. 또한 모든 실행에 대한 재현성과 원활한 디버깅을 보장하기 위해 시스템 및 환경 변수까지 기록합니다. 마치 어떤 노트를 보관해야 할지 마법처럼 아는 가상 비서와 같습니다. 실시간으로 모델 메트릭을 추적하고 시각화하고, 하이퍼파라미터, 데이터 세트 및 모델 체크포인트를 저장하고, Comet Custom Panels로 모델 예측을 시각화하세요!
또한 Comet은 작업 추적을 절대 놓치지 않도록 하고 모든 규모의 팀에서 결과를 쉽게 공유하고 협업할 수 있도록 합니다!
YOLOv5는 컴퓨터 비전 여정을 위한 훌륭한 시작점입니다. 모델의 성능을 개선하고 프로덕션 준비를 완료하려면 Comet과 같은 실험 추적 도구에 결과를 기록해야 합니다.
Comet 및 YOLOv5 통합은 3가지 주요 기능을 제공합니다.
이 가이드에서는 Comet과 함께 YOLOv5를 사용하는 방법을 다룹니다.
자, 실시간으로 실험을 추적할 준비가 되셨습니까? 시작해 봅시다!
Pip install comet_ml
YOLOv5와 함께 Comet을 구성하는 방법은 두 가지가 있습니다.
환경 변수를 통해 자격 증명을 설정하거나 작업 디렉토리에 .comet.config 파일을 생성하고 자격 증명을 설정할 수 있습니다.
export COMET_API_KEY=export COMET_PROJECT_NAME= # 기본적으로 'yolov5'로 설정됩니다.
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# COCO128 데이터셋으로 YOLOv5s 모델을 5 epoch 동안 훈련합니다. python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt
이것으로 끝입니다!
Comet은 하이퍼파라미터, 명령줄 인수, 훈련 및 검증 메트릭을 자동으로 기록합니다. Comet UI에서 실행을 시각화하고 분석할 수 있습니다.
완료된 실행 예시를 확인해 보세요.
아니면 이 Colab Notebook에서 직접 사용해 보십시오.
기본적으로 Comet은 다음 항목을 기록합니다.
Comet은 학습 스크립트 또는 환경 변수에 전달된 명령줄 플래그를 통해 추가 데이터를 기록하도록 구성할 수 있습니다.
export COMET_MODE=online # Comet을 'online' 또는 'offline' 모드로 실행할지 설정합니다. 기본적으로 online으로 설정됩니다.export COMET_MODEL_NAME= #저장된 모델의 이름을 설정합니다. 기본적으로 yolov5로 설정됩니다.export COMET_LOG_CONFUSION_MATRIX=false # Comet Confusion Matrix 로깅을 비활성화하려면 설정합니다. 기본적으로 true로 설정됩니다.export COMET_MAX_IMAGE_UPLOADS= # Comet에 로깅할 총 이미지 예측 수를 제어합니다. 기본적으로 100으로 설정됩니다.export COMET_LOG_PER_CLASS_METRICS=true # 훈련 종료 시 감지된 각 클래스에 대한 평가 지표를 로깅하도록 설정합니다. 기본적으로 false로 설정됩니다.export COMET_DEFAULT_CHECKPOINT_FILENAME= # 다른 체크포인트에서 훈련을 재개하려면 설정합니다. 기본적으로 'last.pt'로 설정됩니다.export COMET_LOG_BATCH_LEVEL_METRICS=true # 배치 수준에서 훈련 지표를 로깅하려면 설정합니다. 기본적으로 false로 설정됩니다.export COMET_LOG_PREDICTIONS=true # 모델 예측 로깅을 비활성화하려면 false로 설정합니다.
Comet에 모델 로깅은 기본적으로 비활성화되어 있습니다. 활성화하려면 학습 스크립트에 save-period 인수를 전달하십시오. 이렇게 하면 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의 객체 감지 사용자 지정 패널을 사용하여 시각화할 수 있습니다. 이 빈도는 epoch당 N번째 데이터 배치를 의미합니다. 아래 예에서는 각 epoch마다 2번째 데이터 배치를 기록합니다.
참고: YOLOv5 유효성 검사 데이터 로더는 기본적으로 배치 크기가 32로 설정되므로 로깅 빈도를 적절하게 설정해야 합니다.
다음은 Panel을 사용한 예제 프로젝트입니다.
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 2
YOLOv5에서 예측을 로깅할 때 Comet은 각 예측 세트와 연결된 이미지를 로깅합니다. 기본적으로 최대 100개의 유효성 검사 이미지가 로깅됩니다. COMET_MAX_IMAGE_UPLOADS 환경 변수를 사용하여 이 숫자를 늘리거나 줄일 수 있습니다.
env COMET_MAX_IMAGE_UPLOADS=200python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 1
COMET_LOG_PER_CLASS_METRICS 환경 변수를 사용하여 각 클래스에 대한 mAP, 정밀도, 재현율 및 f1을 기록합니다.
env COMET_LOG_PER_CLASS_METRICS=true python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt
Comet Artifacts를 사용하여 데이터를 저장하려면 upload_dataset 플래그를 사용하면 됩니다.
데이터 세트는 YOLOv5 문서에 설명된 방식으로 구성됩니다. 데이터 세트 구성 yaml 파일은 coco128.yaml 파일과 동일한 형식을 따라야 합니다.
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--upload_dataset
Comet Workspace의 Artifacts 탭에서 업로드된 데이터 세트를 찾을 수 있습니다.
Comet UI에서 데이터를 직접 미리 볼 수 있습니다.
Artifacts는 버전 관리되며 데이터 세트에 대한 메타데이터 추가도 지원합니다. Comet은 데이터 세트 yaml 파일에서 메타데이터를 자동으로 기록합니다.
Comet Artifacts의 데이터 세트를 사용하려면 데이터 세트 yaml 파일의 경로 변수를 다음 Artifact 리소스 URL을 가리키도록 설정하십시오.
# artifact.yaml 파일 내용 경로: "comet:///:"
그런 다음 다음 방법으로 이 파일을 훈련 스크립트에 전달합니다.
python train.py \--img 640 \--batch 16 \--epochs 5 \--data artifact.yaml \--weights yolov5s.pt
Artifacts를 사용하면 실험 워크플로우를 통해 데이터의 계보를 추적할 수도 있습니다. 여기에서 업로드한 데이터 세트를 사용한 모든 실험을 보여주는 그래프를 볼 수 있습니다.
인터넷 연결 문제 등 어떤 이유로든 학습 실행이 중단된 경우, resume 플래그와 Comet Run Path를 사용하여 실행을 재개할 수 있습니다.
실행 경로는 comet://// 형식입니다.
이렇게 하면 실행이 중단되기 전 상태로 복원됩니다. 여기에는 체크포인트에서 모델 복원, 모든 하이퍼파라미터 및 학습 인자 복원, 원래 실행에서 Comet 데이터세트 아티팩트가 사용된 경우 해당 아티팩트 다운로드가 포함됩니다. 재개된 실행은 Comet UI의 기존 실험에 계속 로깅됩니다.
python train.py \--resume "comet://"
YOLOv5는 Comet의 Optimizer와 통합되어 Comet UI에서 하이퍼파라미터 스윕을 간단하게 시각화할 수 있습니다.
Comet Optimizer를 구성하려면 스윕에 대한 정보가 담긴 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 학습, 검증 및 배포에 대한 질문을 하고 팁을 공유하는 공간인 Ultralytics 커뮤니티에도 참여하세요.