Meet YOLO26: next-gen vision AI.

Link to this section일반적인 YOLO 문제 해결#

YOLO common training and deployment issues

Link to this section소개#

이 가이드는 Ultralytics 프로젝트에서 YOLO26을 작업할 때 발생하는 일반적인 문제를 해결하기 위한 종합적인 도움말입니다. 올바른 지침을 따르면 이러한 문제들을 쉽게 해결할 수 있으며, 불필요한 지연 없이 프로젝트를 원활하게 진행할 수 있습니다.



Watch: Ultralytics YOLO26 Common Issues | Installation Errors, Model Training Issues

Link to this section일반적인 문제#

Link to this section설치 오류#

설치 오류는 호환되지 않는 버전, 누락된 종속성 또는 잘못된 환경 설정과 같은 다양한 이유로 발생할 수 있습니다. 먼저 다음 사항을 확인하십시오.

  • 권장되는 Python 3.8 이상 버전을 사용하고 있습니다.
  • 올바른 버전의 PyTorch(1.8 이상)가 설치되어 있는지 확인하십시오.
  • 충돌을 피하기 위해 가상 환경 사용을 고려하십시오.
  • 공식 설치 가이드를 단계별로 따르십시오.

또한 사용자가 자주 겪는 일반적인 설치 문제와 그에 대한 해결책은 다음과 같습니다.

  • 가져오기 오류 또는 종속성 문제 - YOLO26을 가져오는 중에 오류가 발생하거나 종속성 관련 문제가 있는 경우, 다음 해결 단계를 고려하십시오.

    • 새로 설치: 때로는 새로 설치하는 것만으로도 예상치 못한 문제가 해결될 수 있습니다. 특히 Ultralytics와 같은 라이브러리의 경우, 업데이트로 인해 파일 트리 구조나 기능이 변경될 수 있습니다.

    • 정기적인 업데이트: 최신 버전의 라이브러리를 사용하고 있는지 확인하십시오. 이전 버전은 최신 업데이트와 호환되지 않아 잠재적인 충돌이나 문제가 발생할 수 있습니다.

    • 종속성 확인: 필요한 모든 종속성이 올바르게 설치되어 있고 호환되는 버전인지 확인하십시오.

    • 변경 사항 검토: 처음 설치 시 이전 버전을 복제하거나 설치했다면, 중요한 업데이트가 라이브러리의 구조나 기능에 영향을 줄 수 있음을 인지하십시오. 항상 공식 문서나 변경 로그를 참조하여 주요 변경 사항을 파악하십시오.

    • 라이브러리와 종속성을 최신 상태로 유지하는 것은 원활하고 오류 없는 경험을 위해 매우 중요합니다.

  • GPU에서 YOLO26 실행하기 - GPU에서 YOLO26을 실행하는 데 어려움이 있는 경우, 다음 해결 단계를 고려하십시오.

    • CUDA 호환성 및 설치 확인: GPU가 CUDA와 호환되는지, CUDA가 올바르게 설치되었는지 확인하십시오. nvidia-smi 명령어를 사용하여 NVIDIA GPU 상태와 CUDA 버전을 확인하십시오.

    • PyTorch와 CUDA 통합 확인: Python 터미널에서 import torch; print(torch.cuda.is_available())을 실행하여 PyTorch가 CUDA를 활용할 수 있는지 확인하십시오. 'True'가 반환되면 PyTorch는 CUDA를 사용하도록 설정된 것입니다.

    • GPU 호환성 확인: cuDNN 9.11.0 이후부터는 Turing 이전의 GPU 아키텍처 및 연산 능력(SM) < 7.5에 대한 지원이 중단되었습니다. 따라서 1080Ti와 같은 구형 GPU를 사용하는 경우, 이전 버전의 CUDA/cuDNN으로 빌드된 PyTorch 버전을 사용해야 할 수 있습니다. 이를 확인하려면 다음을 실행하십시오: import torch; cap = torch.cuda.get_device_capability(0) if torch.cuda.is_available() else (0, 0); cudnn = torch.backends.cudnn.version() or 0; ok = "not compatible" if cudnn >= 91100 and (cap[0] < 7 or (cap[0] == 7 and cap[1] < 5)) else "should be ok"; print(f"Compute capability: SM {cap[0]}.{cap[1]}, cuDNN: {cudnn} => {ok}")

    • 환경 활성화: 필요한 모든 패키지가 설치된 올바른 환경에 있는지 확인하십시오.

    • 패키지 업데이트: 오래된 패키지는 GPU와 호환되지 않을 수 있습니다. 항상 최신 상태로 유지하십시오.

    • 프로그램 구성: 프로그램이나 코드가 GPU 사용을 지정하고 있는지 확인하십시오. YOLO26에서는 설정이나 구성 파일에서 확인할 수 있습니다.

Link to this section모델 학습 문제#

이 섹션에서는 학습 중에 발생하는 일반적인 문제와 그에 대한 설명 및 해결책을 다룹니다.

Link to this section구성 설정 확인#

문제: 모델 학습 중 .yaml 파일의 구성 설정이 올바르게 적용되고 있는지 확실하지 않습니다.

해결책: .yaml 파일의 구성 설정은 model.train() 함수를 사용할 때 적용되어야 합니다. 이러한 설정이 올바르게 적용되었는지 확인하려면 다음 단계를 따르십시오.

  • .yaml 구성 파일 경로가 올바른지 확인하십시오.

  • Make sure you pass the path to your .yaml file as the data argument when calling model.train(), as shown below:

    model.train(data="/path/to/your/data.yaml", batch=4)

Link to this section여러 GPU를 사용하여 학습 가속화하기#

문제: 단일 GPU에서 학습 속도가 느려 여러 GPU를 사용하여 프로세스 속도를 높이고 싶습니다.

해결책: 배치 크기를 늘리면 학습 속도가 빨라질 수 있지만, GPU 메모리 용량을 고려하는 것이 중요합니다. 여러 GPU로 학습 속도를 높이려면 다음 단계를 따르십시오.

  • 여러 개의 GPU를 사용할 수 있는지 확인하십시오.

  • device 인수를 GPU 인덱스 목록으로 설정하십시오. 예: device=[0,1,2,3].

  • 메모리 제한을 초과하지 않으면서 여러 GPU를 최대한 활용할 수 있도록 배치 크기를 적절히 늘리십시오.

  • 여러 GPU를 활용하도록 학습 명령어를 수정하십시오.

    # Adjust the batch size and other settings as needed to optimize training speed
    model.train(data="/path/to/your/data.yaml", batch=32, device=[0, 1, 2, 3])

Link to this section지속적인 모니터링 매개변수#

문제: 손실(loss) 외에 학습 중에 지속적으로 모니터링해야 하는 매개변수가 무엇인지 알고 싶습니다.

해결책: 손실은 모니터링해야 할 중요한 지표이지만, 모델 성능 최적화를 위해 다른 지표를 추적하는 것도 필수적입니다. 학습 중에 모니터링해야 할 주요 지표는 다음과 같습니다.

학습 로그에서 이러한 지표에 액세스하거나 TensorBoard 또는 wandb와 같은 도구를 사용하여 시각화할 수 있습니다. 이러한 지표를 기반으로 조기 종료(early stopping)를 구현하면 더 나은 결과를 얻는 데 도움이 될 수 있습니다.

Link to this section학습 진행 상황 추적 도구#

문제: 학습 진행 상황을 추적하기 위한 도구 추천을 원합니다.

해결책: 학습 진행 상황을 추적하고 시각화하려면 다음 도구를 고려하십시오.

  • TensorBoard: TensorBoard는 손실, 정확도 등 학습 지표를 시각화하는 데 인기 있는 선택입니다. YOLO26 학습 프로세스와 통합할 수 있습니다.
  • Comet: Comet은 실험 추적 및 비교를 위한 광범위한 툴킷을 제공합니다. 지표, 하이퍼파라미터 및 모델 가중치를 추적할 수 있습니다. YOLO 모델과의 통합도 간단하며, 실험 주기에 대한 완벽한 개요를 제공합니다.
  • Ultralytics Platform: Ultralytics Platform은 YOLO 모델 추적을 위한 전문 환경을 제공하며, 지표 관리, 데이터셋 관리, 팀 협업을 위한 원스톱 플랫폼입니다. YOLO에 특화되어 있어 더욱 맞춤화된 추적 옵션을 제공합니다.

이 도구들은 각각 장점이 있으므로 프로젝트의 구체적인 요구 사항을 고려하여 선택하는 것이 좋습니다.

Link to this section학습이 GPU에서 수행되고 있는지 확인하는 방법#

문제: 학습 로그의 'device' 값이 'null'로 표시되며, 학습이 GPU에서 수행되는지 확실하지 않습니다.

해결책: 'device' 값이 'null'이라는 것은 기본 설정대로 학습 프로세스가 사용 가능한 GPU를 자동으로 선택한다는 의미입니다. 특정 GPU에서 학습이 수행되도록 하려면 .yaml 구성 파일에서 'device' 값을 GPU 인덱스(예: 첫 번째 GPU의 경우 '0')로 수동 설정할 수 있습니다.

device: 0

이렇게 하면 학습 프로세스가 지정된 GPU에 명시적으로 할당됩니다. CPU에서 학습하려면 'device'를 'cpu'로 설정하십시오.

학습 진행 상황을 효과적으로 모니터링하기 위해 'runs' 폴더의 로그와 지표를 주의 깊게 살펴보십시오.

Link to this section효과적인 모델 학습을 위한 핵심 고려 사항#

모델 학습과 관련된 문제를 겪고 있다면 다음 사항들을 염두에 두십시오.

데이터셋 형식 및 레이블

  • 중요성: 모든 머신러닝 모델의 기초는 모델이 학습되는 데이터의 품질과 형식에 있습니다.
  • 권장 사항: 사용자 지정 데이터셋과 관련 레이블이 예상되는 형식을 준수하는지 확인하십시오. 주석이 정확하고 품질이 높은지 검증하는 것이 매우 중요합니다. 잘못되었거나 품질이 낮은 주석은 모델의 학습 과정을 방해하여 예측 불가능한 결과를 초래할 수 있습니다.

모델 수렴

  • 중요성: 모델 수렴을 달성한다는 것은 모델이 학습 데이터로부터 충분히 학습되었음을 의미합니다.
  • 권장 사항: '처음부터(from scratch)' 모델을 학습할 때는 모델이 만족스러운 수준의 수렴에 도달하도록 하는 것이 중요합니다. 이는 기존 모델을 미세 조정할 때보다 더 많은 에포크(epoch)를 사용하여 더 긴 학습 시간이 필요할 수 있습니다.

학습률(Learning Rate) 및 배치 크기

  • 중요성: 이 하이퍼파라미터들은 학습 중에 모델이 가중치를 업데이트하는 방식을 결정하는 데 중요한 역할을 합니다.
  • 권장 사항: 선택한 학습률과 배치 크기가 특정 데이터셋에 최적인지 정기적으로 평가하십시오. 데이터셋의 특성과 조화를 이루지 않는 매개변수는 모델 성능을 저해할 수 있습니다.

클래스 분포

  • 중요성: 데이터셋의 클래스 분포는 모델의 예측 경향에 영향을 줄 수 있습니다.
  • 권장 사항: 데이터셋 내 클래스 분포를 정기적으로 평가하십시오. 클래스 불균형이 있으면 모델이 다수 클래스에 편향될 위험이 있습니다. 이러한 편향은 혼동 행렬(confusion matrix)에서 명확하게 나타날 수 있으며, 모델이 주로 다수 클래스를 예측하게 될 수 있습니다.

사전 학습된 가중치와 대조 검사

  • 중요성: 사전 학습된 가중치를 활용하면 특히 데이터가 제한적인 경우 모델 학습을 위한 견고한 출발점을 제공할 수 있습니다.
  • 권장 사항: 진단 단계로, 동일한 데이터를 사용하여 모델을 학습하되 사전 학습된 가중치로 초기화해 보십시오. 이 방법으로 잘 형성된 혼동 행렬이 나온다면, '처음부터' 학습하는 모델에 추가적인 학습이나 조정이 필요할 수 있음을 의미할 수 있습니다.

Link to this section모델 예측 관련 문제#

이 섹션에서는 모델 예측 중에 발생하는 일반적인 문제를 다룹니다.

Link to this sectionYOLO26 사용자 지정 모델로 바운딩 박스 예측 얻기#

문제: 사용자 지정 YOLO26 모델로 예측을 실행할 때, 바운딩 박스 좌표의 형식 및 시각화와 관련된 어려움이 있습니다.

해결책:

  • 좌표 형식: YOLO26은 절대 픽셀 값으로 바운딩 박스 좌표를 제공합니다. 이를 상대 좌표(0에서 1 사이)로 변환하려면 이미지 차원으로 나누어야 합니다. 예를 들어 이미지 크기가 640x640이라면 다음과 같이 수행합니다.

    # Convert absolute coordinates to relative coordinates
    x1 = x1 / 640  # Divide x-coordinates by image width
    x2 = x2 / 640
    y1 = y1 / 640  # Divide y-coordinates by image height
    y2 = y2 / 640
  • 파일 이름: 예측 중인 이미지의 파일 이름을 얻으려면 예측 루프 내의 결과 객체에서 이미지 파일 경로에 직접 액세스하십시오.

Link to this sectionYOLO26 예측에서 객체 필터링하기#

문제: Ultralytics 라이브러리를 사용하여 YOLO26을 실행할 때, 예측 결과에서 특정 객체만 필터링하여 표시하는 방법에 문제가 있습니다.

해결책: 특정 클래스를 감지하려면 classes 인수를 사용하여 출력에 포함할 클래스를 지정하십시오. 예를 들어 자동차만 감지하려면('자동차' 클래스 인덱스가 2라고 가정):

yolo task=segment mode=predict model=yolo26n-seg.pt source='path/to/car.mp4' show=True classes=2

Link to this sectionYOLO26의 정밀도 지표 이해하기#

문제: YOLO26에서 박스 정밀도(box precision), 마스크 정밀도(mask precision), 혼동 행렬 정밀도 간의 차이에 대한 혼란이 있습니다.

해결책: 박스 정밀도는 IoU(Intersection over Union)를 지표로 사용하여 실제 ground truth 박스와 비교하여 예측된 바운딩 박스의 정확도를 측정합니다. 마스크 정밀도는 픽셀 단위 객체 분류에서 예측된 세그멘테이션 마스크와 ground truth 마스크 간의 일치도를 평가합니다. 반면, 혼동 행렬 정밀도는 모든 클래스에 걸친 전반적인 분류 정확도에 초점을 맞추며 예측의 기하학적 정확도는 고려하지 않습니다. 클래스 예측이 틀리더라도 바운딩 박스는 기하학적으로 정확(true positive)할 수 있으며, 이는 박스 정밀도와 혼동 행렬 정밀도 간의 차이를 발생시킵니다. 이러한 지표들은 모델 성능의 서로 다른 측면을 평가하므로 다양한 작업에서 서로 다른 평가 지표가 필요합니다.

Link to this sectionYOLO26에서 객체 치수 추출하기#

문제: YOLO26에서 감지된 객체의 길이와 높이를 가져오는 데 어려움이 있습니다. 특히 이미지 내에 여러 객체가 감지된 경우 더욱 그렇습니다.

해결책: 바운딩 박스 치수를 가져오려면 먼저 Ultralytics YOLO26 모델을 사용하여 이미지에서 객체를 예측하십시오. 그런 다음 예측 결과에서 바운딩 박스의 너비와 높이 정보를 추출하십시오.

from ultralytics import YOLO

# Load a pretrained YOLO26 model
model = YOLO("yolo26n.pt")

# Specify the source image
source = "https://ultralytics.com/images/bus.jpg"

# Make predictions
results = model.predict(source, save=True, imgsz=320, conf=0.25)

# Extract bounding box dimensions
boxes = results[0].boxes.xywh.cpu()
for box in boxes:
    x, y, w, h = box
    print(f"Width of Box: {w}, Height of Box: {h}")

Link to this section배포 관련 문제#

Link to this sectionGPU 배포 문제#

문제: 멀티 GPU 환경에서 모델을 배포하면 예상치 못한 메모리 사용량이나 GPU 간 결과 불일치와 같은 예기치 않은 동작이 발생할 수 있습니다.

해결책: 기본 GPU 초기화를 확인하십시오. PyTorch와 같은 일부 프레임워크는 지정된 GPU로 전환하기 전에 기본 GPU에서 CUDA 작업을 초기화할 수 있습니다. 예기치 않은 기본 초기화를 방지하려면 배포 및 예측 중에 GPU를 직접 지정하십시오. 그런 다음 도구를 사용하여 GPU 활용도와 메모리 사용량을 모니터링하여 실시간으로 이상 징후를 식별하십시오. 또한 프레임워크나 라이브러리의 최신 버전을 사용하고 있는지 확인하십시오.

Link to this section모델 변환/내보내기 문제#

문제: 머신러닝 모델을 다른 형식이나 플랫폼으로 변환하거나 내보내는 과정에서 오류나 예상치 못한 동작이 발생할 수 있습니다.

해결책:

  • 호환성 확인: 서로 호환되는 라이브러리 및 프레임워크 버전을 사용하고 있는지 확인하십시오. 버전이 일치하지 않으면 변환 중에 예기치 않은 오류가 발생할 수 있습니다.
  • 환경 재설정: Jupyter나 Colab 같은 대화형 환경을 사용하는 경우, 중요한 변경 사항이나 설치를 마친 후 환경을 다시 시작하는 것을 고려하십시오. 새로 시작하면 근본적인 문제가 해결되는 경우가 있습니다.
  • 공식 문서: 사용 중인 도구나 라이브러리의 공식 문서를 항상 참조하십시오. 모델 내보내기에 대한 구체적인 지침과 모범 사례가 포함되어 있는 경우가 많습니다.
  • 커뮤니티 지원: 라이브러리나 프레임워크의 공식 저장소에서 다른 사용자가 보고한 유사한 문제를 확인하십시오. 관리자나 커뮤니티가 토론 스레드에서 솔루션이나 해결 방법을 제공했을 수 있습니다.
  • 정기적인 업데이트: 도구나 라이브러리의 최신 버전을 사용하고 있는지 확인하십시오. 개발자들은 버그를 수정하거나 기능을 향상시키는 업데이트를 자주 출시합니다.
  • 점진적 테스트: 전체 변환을 수행하기 전에 더 작은 모델이나 데이터셋으로 프로세스를 테스트하여 잠재적인 문제를 조기에 식별하십시오.

Link to this section커뮤니티 및 지원#

같은 관심을 가진 커뮤니티와 소통하면 YOLO26 작업 경험과 성공률을 크게 높일 수 있습니다. 다음은 도움이 될 만한 채널 및 리소스입니다.

Link to this section도움을 받을 수 있는 포럼 및 채널#

GitHub Issues: GitHub의 YOLO26 저장소에는 질문을 하거나 버그를 보고하고 새로운 기능을 제안할 수 있는 Issues 탭이 있습니다. 이곳에서 커뮤니티와 메인테이너들이 활발하게 활동하고 있으므로 특정 문제에 대한 도움을 받기에 최적의 장소입니다.

Ultralytics Discord 서버: Ultralytics는 다른 사용자 및 개발자들과 소통할 수 있는 Discord 서버를 운영하고 있습니다.

Link to this section공식 문서 및 리소스#

Ultralytics YOLO26 문서: 공식 문서는 YOLO26에 대한 포괄적인 개요와 설치, 사용법, 문제 해결을 위한 가이드를 제공합니다.

이러한 리소스는 귀하의 YOLO26 프로젝트를 문제 해결하고 개선하며, YOLO26 커뮤니티의 다른 사람들과 교류하는 데 튼튼한 기반을 제공할 것입니다.

Link to this section결론#

문제 해결은 모든 개발 과정의 필수적인 부분이며, 올바른 지식을 갖추는 것은 문제를 해결하는 데 드는 시간과 노력을 크게 줄여줄 수 있습니다. 이 가이드는 Ultralytics 생태계 내에서 YOLO26 모델 사용자가 직면하는 가장 일반적인 과제들을 다루고자 합니다. 이러한 공통적인 문제들을 이해하고 해결함으로써 귀하는 프로젝트를 더 원활하게 진행하고 computer vision 작업에서 더 나은 결과를 얻을 수 있습니다.

Ultralytics 커뮤니티는 매우 귀중한 자원임을 기억하십시오. 동료 개발자 및 전문가들과 교류하면 표준 문서에서 다루지 않는 추가적인 통찰력과 해결책을 얻을 수 있습니다. 항상 학습하고 실험하며 경험을 공유하여 커뮤니티의 집단 지성에 기여하십시오.

Link to this sectionFAQ#

Link to this sectionYOLO26 설치 오류는 어떻게 해결합니까?#

설치 오류는 종종 호환성 문제나 누락된 종속성으로 인해 발생합니다. Python 3.8 이상을 사용 중인지, PyTorch 1.8 이상이 설치되어 있는지 확인하십시오. 충돌을 방지하기 위해 가상 환경을 사용하는 것이 좋습니다. 단계별 설치 가이드는 공식 설치 가이드를 참조하십시오. 가져오기(import) 오류가 발생하면 새로 설치하거나 라이브러리를 최신 버전으로 업데이트해 보십시오.

Link to this section단일 GPU에서 YOLO26 모델 학습이 느린 이유는 무엇입니까?#

단일 GPU에서의 학습은 큰 배치 사이즈나 부족한 메모리로 인해 느려질 수 있습니다. 학습 속도를 높이려면 여러 개의 GPU를 사용하십시오. 시스템에 여러 GPU가 사용 가능한지 확인하고 device 인수를 설정하십시오(예: device=[0,1,2,3]). 메모리 한도를 초과하지 않으면서 GPU를 최대한 활용할 수 있도록 배치 사이즈를 적절히 늘리십시오. 명령어 예시:

model.train(data="/path/to/your/data.yaml", batch=32, device=[0, 1, 2, 3])

Link to this sectionYOLO26 모델이 GPU에서 학습 중인지 어떻게 확인할 수 있습니까?#

학습 로그에서 'device' 값이 'null'로 표시된다면, 일반적으로 학습 프로세스가 사용 가능한 GPU를 자동으로 사용하도록 설정된 것입니다. 특정 GPU를 명시적으로 할당하려면 .yaml 구성 파일에서 'device' 값을 설정하십시오. 예를 들면 다음과 같습니다:

device: 0

이렇게 하면 학습 프로세스가 첫 번째 GPU로 설정됩니다. CUDA 설정을 확인하려면 nvidia-smi 명령어를 참조하십시오.

Link to this sectionYOLO26 모델 학습 진행 상황을 모니터링하고 추적하려면 어떻게 해야 합니까?#

TensorBoard, Comet, Ultralytics Platform과 같은 도구를 사용하여 학습 진행 상황을 효과적으로 추적하고 시각화할 수 있습니다. 이러한 도구를 사용하면 손실(loss), precision, recall, mAP와 같은 지표를 기록하고 시각화할 수 있습니다. 이러한 지표를 기반으로 조기 종료를 구현하면 더 나은 학습 결과를 얻는 데 도움이 될 수 있습니다.

Link to this sectionYOLO26이 데이터셋 형식을 인식하지 못하면 어떻게 해야 합니까?#

데이터셋과 라벨이 예상되는 형식에 맞는지 확인하십시오. 주석(annotation)이 정확하고 고품질인지 검증하십시오. 문제가 발생하면 모범 사례에 대해 데이터 수집 및 주석 가이드를 참조하십시오. 더 구체적인 데이터셋 관련 지침은 문서의 데이터셋 섹션을 확인하십시오.

댓글