YOLO Vision 2026:

버그 리포트를 위한 최소 재현 가능 예제 작성하기#

Ultralytics YOLO 저장소에 버그 리포트를 제출할 때는 Minimum Reproducible Example (MRE)를 제공하는 것이 필수적입니다. MRE는 겪고 있는 문제를 시연하는 작고 자체 포함된 코드 조각입니다. MRE를 제공하면 메인테이너와 기여자들이 문제를 이해하고 더 효율적으로 수정 작업을 진행하는 데 도움이 됩니다. 이 가이드는 Ultralytics YOLO 저장소에 버그 리포트를 제출할 때 MRE를 생성하는 방법을 설명합니다.

문제 격리하기#

MRE 작성의 첫 번째 단계는 문제를 격리하는 것입니다. 문제와 직접적인 관련이 없는 불필요한 코드나 종속성을 제거하십시오. 문제를 일으키는 코드의 특정 부분에 집중하고 관련 없는 섹션은 모두 제거하십시오.

공개 모델 및 데이터셋 사용하기#

MRE를 생성할 때는 공개적으로 사용 가능한 모델과 데이터셋을 사용하여 문제를 재현하십시오. 예를 들어, yolo26n.pt 모델과 coco8.yaml 데이터셋을 사용하십시오. 이는 메인테이너와 기여자들이 독점 데이터나 커스텀 모델에 대한 접근 없이도 예제를 쉽게 실행하고 문제를 조사할 수 있도록 보장합니다.

필요한 모든 종속성 포함하기#

MRE에 필요한 모든 종속성이 포함되어 있는지 확인합니다. 코드가 외부 라이브러리에 의존하는 경우, 필요한 패키지와 그 버전을 명시하세요. 이상적으로는 ultralytics이 설치된 경우 yolo checks을 사용하여 버그 보고서에 종속성을 나열하거나, 다른 도구의 경우 pip list를 사용하세요.

문제에 대한 명확한 설명 작성하기#

귀하가 겪고 있는 문제에 대해 명확하고 간결하게 설명하십시오. 예상되는 동작과 실제로 발생하는 동작을 설명하십시오. 해당하는 경우 관련 오류 메시지나 로그를 포함하십시오.

코드를 올바르게 서식화하기#

이슈 설명에서 코드 블록을 사용하여 코드를 올바르게 포맷하십시오. 이렇게 하면 다른 사람들이 귀하의 코드를 더 쉽게 읽고 이해할 수 있습니다. GitHub에서는 코드를 세 개의 백틱(```)으로 감싸고 언어를 지정하여 코드 블록을 만들 수 있습니다:

```python
# Your Python code goes here
```

MRE 테스트하기#

MRE를 제출하기 전에 테스트하여 문제를 정확하게 재현하는지 확인하십시오. 다른 사람들이 문제나 수정 사항 없이 귀하의 예제를 실행할 수 있는지 확인하십시오.

MRE 예시#

다음은 가상의 버그 리포트에 대한 MRE 예시입니다:

버그 설명:

0채널 이미지에서 추론을 실행할 때 입력 텐서의 차원과 관련된 오류가 발생합니다.

MRE:

import torch

from ultralytics import YOLO

# Load the model
model = YOLO("yolo26n.pt")

# Load a 0-channel image
image = torch.rand(1, 0, 640, 640)

# Run the model
results = model(image)

오류 메시지:

RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead

종속성:

  • torch==2.3.0
  • ultralytics==8.2.0

이 예에서 MRE는 최소한의 코드로 문제를 시연하고, 공개 모델("yolo26n.pt")을 사용하며, 필요한 모든 의존성을 포함하고, 에러 메시지와 함께 문제에 대한 명확한 설명을 제공합니다.

이러한 지침을 따르면 Ultralytics YOLO 저장소의 메인테이너와 기여자들이 사용자의 문제를 더 효율적으로 이해하고 해결하는 데 도움이 됩니다.

FAQ#

Ultralytics YOLO 저장소의 버그 리포트를 위한 효과적인 최소 재현 가능 예제(MRE)는 어떻게 작성합니까?#

Ultralytics YOLO 저장소의 버그 리포트를 위한 효과적인 최소 재현 가능 예제(MRE)를 작성하려면 다음 단계를 따르십시오:

  1. 문제 격리: 문제와 직접적인 관련이 없는 코드나 종속성을 제거합니다.
  2. 공개 모델 및 데이터셋 사용: 더 쉬운 재현성을 위해 yolo26n.ptcoco8.yaml과 같은 공개 리소스를 활용하십시오.
  3. 필수 종속성 모두 포함: 필요한 패키지와 해당 버전을 지정하세요. ultralytics이 설치되어 있는 경우 yolo checks을 사용하거나 pip list를 사용하여 종속성을 나열할 수 있습니다.
  4. 문제에 대한 명확한 설명 작성: 예상되는 동작과 실제 동작을 설명하고 관련 오류 메시지나 로그를 포함합니다.
  5. 코드를 올바르게 서식화: 코드 블록을 사용하여 코드를 서식화하여 가독성을 높입니다.
  6. MRE 테스트: MRE가 수정 없이 문제를 재현하는지 확인합니다.

상세한 가이드는 Creating a Minimum Reproducible Example을 참조하십시오.

Ultralytics YOLO 버그 리포트를 위한 MRE에 왜 공개적으로 사용 가능한 모델과 데이터셋을 사용해야 합니까?#

MRE에서 공개적으로 사용 가능한 모델과 데이터셋을 사용하면 메인테이너가 독점 데이터에 접근할 필요 없이 예제를 쉽게 실행할 수 있습니다. 이를 통해 더 빠르고 효율적인 문제 해결이 가능합니다. 예를 들어, yolo26n.pt 모델과 coco8.yaml 데이터셋을 사용하면 디버깅 프로세스를 표준화하고 단순화하는 데 도움이 됩니다. 공개 모델 및 데이터셋에 대한 자세한 내용은 Use Public Models and Datasets 섹션에서 확인하세요.

Ultralytics YOLO 버그 리포트에 어떤 정보를 포함해야 합니까?#

포괄적인 Ultralytics YOLO 버그 리포트에는 다음이 포함되어야 합니다:

  • 명확한 설명: 문제, 예상되는 동작, 실제 동작을 설명합니다.
  • 오류 메시지: 관련 오류 메시지나 로그를 포함합니다.
  • 종속성: 필요한 종속성과 해당 버전을 나열합니다.
  • MRE: 최소 재현 가능 예제를 제공합니다.
  • 재현 단계: 문제를 재현하는 데 필요한 단계를 요약합니다.

전체 체크리스트는 Write a Clear Description of the Issue 섹션을 참조하십시오.

GitHub에 버그 리포트를 제출할 때 코드를 어떻게 올바르게 서식화할 수 있습니까?#

GitHub에 버그 리포트를 제출할 때 코드를 올바르게 서식화하려면:

  • 세 개의 백틱(```)을 사용하여 코드 블록을 만드십시오.
  • 구문 강조(syntax highlighting)를 위해 프로그래밍 언어를 지정하십시오(예: ```python).
  • 가독성을 위해 코드가 올바르게 들여쓰기되었는지 확인합니다.

예시:

```python
# Your Python code goes here
```

코드 포맷팅에 대한 더 많은 팁은 Format Your Code Properly 섹션을 참조하십시오.

버그 리포트를 위해 MRE를 제출하기 전에 확인해야 할 일반적인 오류는 무엇입니까?#

MRE를 제출하기 전에 다음을 확인하십시오:

  • 문제가 재현 가능한지 확인합니다.
  • 모든 종속성이 나열되어 있고 정확한지 확인합니다.
  • 불필요한 코드를 모두 제거합니다.
  • MRE를 테스트하여 수정 없이 문제를 재현하는지 확인합니다.

상세한 체크리스트는 Test Your MRE 섹션을 방문하십시오.

댓글