Ultralytics YOLO27:
통합

Comet과 함께 Ultralytics YOLOv5를 사용하는 방법

Ultralytics가 Comet과 협력해 Ultralytics YOLOv5 모델을 최적화하는 방법을 알아보세요. 실시간 추적, 간소화된 협업 및 향상된 재현성을 제공합니다.

NUNuvola Ladi5 min read
Comet으로 Ultralytics YOLOv5 모델 학습 추적하기

Ultralytics는 YOLOv5와 같은 훌륭한 오픈 소스 도구를 모두에게 무료로 제공하기 위한 연구 및 개발 자금을 마련하고자 다른 스타트업과 상업적 파트너십을 맺고 있습니다. 이 글에는 해당 파트너에 대한 제휴 링크가 포함될 수 있습니다.

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

Comet은 모델, 데이터셋, 메트릭을 추적하는 강력한 도구입니다. 또한 재현성을 보장하고 각 실행에서 원활하게 디버깅할 수 있도록 시스템 및 환경 변수를 기록합니다. 이는 어떤 노트를 남겨야 하는지 마법처럼 알고 있는 가상 비서와 같습니다. 모델 메트릭을 실시간으로 추적하고 시각화하며, 하이퍼파라미터, 데이터셋, 모델 체크포인트를 저장하고, Comet Custom Panels을 사용하여 모델 예측을 시각화할 수 있습니다!

또한 Comet은 작업을 절대 놓치지 않도록 지원하며, 모든 규모의 팀에서 결과를 쉽게 공유하고 협업할 수 있도록 합니다!

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

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

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

이 가이드에서는 YOLOv5를 Comet과 함께 사용하는 방법을 다룹니다.

이제 실험을 실시간으로 추적할 준비가 되셨나요? 시작해 보겠습니다!

시작하기#

1. Comet 설치#

pip install comet_ml

2. Comet 자격 증명 구성#

YOLOv5에서 Comet을 구성하는 방법은 두 가지입니다.

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

환경 변수#

export COMET_API_KEY=<Your API Key>
export COMET_PROJECT_NAME=<Your Comet Project Name> # This will default to 'yolov5'

Comet 구성 파일#

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

3. 학습 스크립트 실행#

# Train YOLOv5s on COCO128 for 5 epochs
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

이제 완료되었습니다!

Comet은 하이퍼파라미터, 명령줄 인수, 학습 및 검증 메트릭을 자동으로 기록합니다. Comet UI에서 실행 결과를 시각화하고 분석할 수 있습니다.

Comet 대시보드의 YOLOv5 실험

직접 사용해 보세요!#

완료된 실행 예시를 확인해 보세요.

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

자동으로 기록하기#

기본적으로 Comet은 다음 항목을 기록합니다:

메트릭#

  • 학습 및 검증 데이터의 Box Loss, Object Loss, Classification Loss
  • 검증 데이터의 mAP_0.5, mAP_0.5:0.95 메트릭
  • 검증 데이터의 Precision 및 Recall

파라미터#

  • 모델 하이퍼파라미터
  • 명령줄 옵션을 통해 전달된 모든 파라미터

시각화#

  • 검증 데이터에 대한 모델 예측의 Confusion Matrix
  • 모든 클래스에 대한 PR 및 F1 곡선 플롯
  • 클래스 레이블의 Correlogram

Comet 로깅 구성#

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

export COMET_MODE=online # Set whether to run Comet in 'online' or 'offline' mode. Defaults to online
export COMET_MODEL_NAME=<your model name> # Set the name for the saved model. Defaults to yolov5
export COMET_LOG_CONFUSION_MATRIX=false # Set to disable logging a Comet Confusion Matrix. Defaults to true
export COMET_MAX_IMAGE_UPLOADS=<number of allowed images to upload to Comet> # Controls how many total image predictions to log to Comet. Defaults to 100.
export COMET_LOG_PER_CLASS_METRICS=true # Set to log evaluation metrics for each detected class at the end of training. Defaults to false
export COMET_DEFAULT_CHECKPOINT_FILENAME=<your checkpoint filename> # Set this if you would like to resume training from a different checkpoint. Defaults to 'last.pt'
export COMET_LOG_BATCH_LEVEL_METRICS=true # Set this if you would like to log training metrics at the batch level. Defaults to false.
export COMET_LOG_PREDICTIONS=true # Set this to false to disable logging model predictions

Comet으로 체크포인트 기록하기#

Comet으로 모델을 기록하는 기능은 기본적으로 비활성화되어 있습니다. 활성화하려면 학습 스크립트에 save-period 인수를 전달합니다. 그러면 save-period에 지정된 간격 값에 따라 기록된 체크포인트가 Comet에 저장됩니다.

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --save-period 1

모델 예측 기록하기#

기본적으로 모델 예측(이미지, ground truth 레이블, 바운딩 박스)은 Comet에 기록됩니다. bbox_interval 명령줄 인수를 전달하여 기록되는 예측 및 관련 이미지의 빈도를 제어할 수 있습니다. Comet의 Object Detection Custom Panel을 사용하여 예측을 시각화할 수 있습니다. 이 빈도는 에포크마다 N번째 데이터 배치마다 기록하는 것을 의미합니다. 아래 예시에서는 각 에포크의 2번째 데이터 배치마다 기록합니다.

참고: YOLOv5 검증 데이터 로더의 배치 크기는 기본적으로 32이므로 그에 맞게 로깅 빈도를 설정해야 합니다.

Panel을 사용하는 예시 프로젝트를 확인해 보세요.

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --bbox_interval 2

Comet에 기록되는 예측 이미지 수 제어하기#

YOLOv5의 예측을 기록할 때 Comet은 각 예측 세트와 연결된 이미지를 기록합니다. 기본적으로 최대 100개의 검증 이미지가 기록됩니다. COMET_MAX_IMAGE_UPLOADS 환경 변수를 사용하여 이 수를 늘리거나 줄일 수 있습니다.

env COMET_MAX_IMAGE_UPLOADS=200 python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --bbox_interval 1

클래스 수준 메트릭 기록하기#

COMET_LOG_PER_CLASS_METRICS 환경 변수를 사용하여 각 클래스의 mAP, precision, recall, f1을 기록합니다.

env COMET_LOG_PER_CLASS_METRICS=true python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt

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

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 Artifacts 탭, YOLOv5

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

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

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

Comet에서 YAML 파일의 메타데이터 기록, YOLOv5

저장된 아티팩트 사용하기#

Comet Artifacts의 데이터셋을 사용하려면 데이터셋 yaml 파일의 path 변수가 다음 Artifact 리소스 URL을 가리키도록 설정합니다.

# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"

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

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data artifact.yaml \
  --weights yolov5s.pt

또한 아티팩트를 사용하면 데이터가 Experimentation 워크플로를 거치는 동안 데이터 계보를 추적할 수 있습니다. 여기에서는 업로드한 데이터셋을 사용한 모든 실험을 보여 주는 그래프를 확인할 수 있습니다.

Comet 실험 워크플로, YOLOv5

학습 실행 재개하기#

인터넷 연결 중단 등 어떤 이유로든 학습 실행이 중단된 경우 resume 플래그와 Comet Run Path를 사용하여 실행을 재개할 수 있습니다.

Run Path의 형식은 다음과 같습니다: comet://<your workspace name>/<your project name>/<experiment id>.

이렇게 하면 중단 전 상태로 실행이 복원됩니다. 여기에는 체크포인트에서 모델 복원, 모든 하이퍼파라미터 및 학습 인수 복원, 원래 실행에서 사용한 경우 Comet 데이터셋 아티팩트 다운로드가 포함됩니다. 재개된 실행은 Comet UI의 기존 Experiment에 계속 기록됩니다.

python train.py \
  --resume "comet://<your run path>"

Comet Optimizer를 사용한 하이퍼파라미터 검색#

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

Optimizer 스윕 구성하기#

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 <num_workers> utils/loggers/comet/hpo.py \
  utils/loggers/comet/optimizer_config.json

Comet은 스윕 결과를 시각화하는 다양한 방법을 제공합니다. 완료된 스윕이 있는 프로젝트를 확인해 보세요:

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

계속 소통하기#

Comet과의 통합을 사용하여 학습 실행부터 프로덕션 모니터링까지 YOLOv5 모델을 관리하고 시각화하며 최적화해 보세요.

물론 Ultralytics Community에 참여하여 YOLOv5 학습, 검증, 배포에 관한 질문을 하고 팁을 공유할 수도 있습니다.

Explore solutions

항공 이미지를 위한 컴퓨터 비전

항공 이미지를 위한 컴퓨터 비전

Ultralytics YOLO을 활용하여 드론 및 항공 이미지를 농업, 수산업, 환경 모니터링, 자연 보호, 지리 공간 분석을 위한 실시간 인사이트로 변환합니다.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 지리 공간 산업을 지원합니다.
자세히 알아보기

Ultralytics YOLO 모델로 모든 사이트를 보호하세요. 비전 AI는 경계 모니터링, 위협 탐지, 번호판 인식 및 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 컴퓨터 비전

로보틱스 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 기계의 성능을 구현하세요. 로보틱스의 Vision AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 지원합니다.
자세히 알아보기
물류 컴퓨터 비전

물류 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 효율화하세요. Vision AI는 패키지 검사, 분류, 차량 추적 및 창고의 실시간 안전 모니터링을 지원합니다.
자세히 알아보기
소매 컴퓨터 비전

소매 컴퓨터 비전

Ultralytics YOLO 모델로 소매업을 새롭게 혁신하세요. Vision AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
자세히 알아보기
헬스케어 분야의 컴퓨터 비전

헬스케어 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 헬스케어 솔루션을 구축하십시오. 헬스케어 분야의 Vision AI는 더 빠른 의료 영상 처리, 더욱 스마트한 진단, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조를 최적화하십시오. Vision AI는 품질 관리, 결함 탐지, PPE 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 산업의 컴퓨터 비전

자동차 산업의 컴퓨터 비전

Ultralytics YOLO 모델을 활용해 자동차 산업에 컴퓨터 비전을 적용합니다. 비전 AI는 도로 안전, 운전자 보조, 차량 자동화를 향상해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업의 컴퓨터 비전

농업의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입합니다. 작물 모니터링, 가축 추적, 정밀 농업을 강화해 더 높은 수확량을 스마트하게 실현합니다.
자세히 알아보기
항공 이미지를 위한 컴퓨터 비전

항공 이미지를 위한 컴퓨터 비전

Ultralytics YOLO을 활용하여 드론 및 항공 이미지를 농업, 수산업, 환경 모니터링, 자연 보호, 지리 공간 분석을 위한 실시간 인사이트로 변환합니다.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 지리 공간 산업을 지원합니다.
자세히 알아보기

Ultralytics YOLO 모델로 모든 사이트를 보호하세요. 비전 AI는 경계 모니터링, 위협 탐지, 번호판 인식 및 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 컴퓨터 비전

로보틱스 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 기계의 성능을 구현하세요. 로보틱스의 Vision AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 지원합니다.
자세히 알아보기
물류 컴퓨터 비전

물류 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 효율화하세요. Vision AI는 패키지 검사, 분류, 차량 추적 및 창고의 실시간 안전 모니터링을 지원합니다.
자세히 알아보기
소매 컴퓨터 비전

소매 컴퓨터 비전

Ultralytics YOLO 모델로 소매업을 새롭게 혁신하세요. Vision AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
자세히 알아보기
헬스케어 분야의 컴퓨터 비전

헬스케어 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 헬스케어 솔루션을 구축하십시오. 헬스케어 분야의 Vision AI는 더 빠른 의료 영상 처리, 더욱 스마트한 진단, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조를 최적화하십시오. Vision AI는 품질 관리, 결함 탐지, PPE 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 산업의 컴퓨터 비전

자동차 산업의 컴퓨터 비전

Ultralytics YOLO 모델을 활용해 자동차 산업에 컴퓨터 비전을 적용합니다. 비전 AI는 도로 안전, 운전자 보조, 차량 자동화를 향상해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업의 컴퓨터 비전

농업의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입합니다. 작물 모니터링, 가축 추적, 정밀 농업을 강화해 더 높은 수확량을 스마트하게 실현합니다.
자세히 알아보기
항공 이미지를 위한 컴퓨터 비전

항공 이미지를 위한 컴퓨터 비전

Ultralytics YOLO을 활용하여 드론 및 항공 이미지를 농업, 수산업, 환경 모니터링, 자연 보호, 지리 공간 분석을 위한 실시간 인사이트로 변환합니다.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 지리 공간 산업을 지원합니다.
자세히 알아보기

Ultralytics YOLO 모델로 모든 사이트를 보호하세요. 비전 AI는 경계 모니터링, 위협 탐지, 번호판 인식 및 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 컴퓨터 비전

로보틱스 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 기계의 성능을 구현하세요. 로보틱스의 Vision AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 지원합니다.
자세히 알아보기
물류 컴퓨터 비전

물류 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 효율화하세요. Vision AI는 패키지 검사, 분류, 차량 추적 및 창고의 실시간 안전 모니터링을 지원합니다.
자세히 알아보기
소매 컴퓨터 비전

소매 컴퓨터 비전

Ultralytics YOLO 모델로 소매업을 새롭게 혁신하세요. Vision AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
자세히 알아보기
헬스케어 분야의 컴퓨터 비전

헬스케어 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 헬스케어 솔루션을 구축하십시오. 헬스케어 분야의 Vision AI는 더 빠른 의료 영상 처리, 더욱 스마트한 진단, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조를 최적화하십시오. Vision AI는 품질 관리, 결함 탐지, PPE 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 산업의 컴퓨터 비전

자동차 산업의 컴퓨터 비전

Ultralytics YOLO 모델을 활용해 자동차 산업에 컴퓨터 비전을 적용합니다. 비전 AI는 도로 안전, 운전자 보조, 차량 자동화를 향상해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업의 컴퓨터 비전

농업의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입합니다. 작물 모니터링, 가축 추적, 정밀 농업을 강화해 더 높은 수확량을 스마트하게 실현합니다.
자세히 알아보기

AI의 미래를 함께 만들어가세요!

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