Ultralytics YOLO27: 대기자 명단에 등록하세요.
Get Started
컴퓨터 비전 기초·지표 읽기·레슨 10/10
강의초급

실험실에서 프로덕션까지

Ultralytics를 설치하고, 직접 촬영한 이미지에 YOLO26을 실행한 다음, 출력 결과를 명세와 대조하고 다음 단계를 선택하세요.

사전 학습된 모델로 10분만 테스트하면 전체 계획을 좌우하는 질문에 답할 수 있습니다. 기성 모델이 이미 필요한 클래스와 카메라 환경을 지원하나요, 아니면 자체 데이터가 필요한가요? 이 과정에서는 Ultralytics를 설치하고 실제 이미지에 YOLO26을 실행한 뒤, 첫 번째 강의에서 작성한 명세와 결과를 대조합니다.

학습 성과

직접 촬영한 이미지에 YOLO26을 실행하고, 출력 결과를 바탕으로 사전 학습 가중치로 프로토타입을 만들지 데이터셋을 구축할지 결정하세요.

속성 과정
이미 사용법을 알고 계신다면, 간단히 요약해 드리겠습니다.
  1. 설치: pip install ultralytics을 실행한 다음 yolo checks을 실행합니다.

  2. 예측: yolo predict model=yolo26n.pt source=https://ultralytics.com/images/bus.jpg.

  3. 확인: 명세에 있는 클래스 중 사전 학습된 모델이 지원하는 클래스는 무엇이며, 직접 촬영한 이미지에서 박스가 올바르게 표시되나요?

  4. 답에 따라 다음 과정을 선택하세요.

실습형

설치#

pip install ultralytics
yolo checks

첫 번째 명령줄은 ultralytics Python 패키지와 yolo 명령을 설치하고, PyTorch가 없으면 함께 설치합니다. yolo checks는 Python, PyTorch, CUDA 버전과 Ultralytics가 사용할 하드웨어를 출력하므로, 작업을 실행하기 전에 설정을 확인할 수 있습니다. 새 가상 환경을 사용하세요. 빠른 시작 가이드에서 conda, Docker, GPU 설정을 다룹니다.

Python 버전

ultralytics 패키지는 Python 3.8 이상에 설치되지만, 최신 PyTorch 릴리스에는 Python 3.10 이상이 필요합니다. 환경이 더 오래된 버전이라면 최신 Python으로 새 가상 환경을 먼저 만드세요.

Stable, Mac, Pip, Python, Default가 선택된 PyTorch Start Locally 설치 선택기. torch, torchvision, torchaudio의 pip3 설치 명령이 표시되어 있습니다

사용되지 않는 GPU

증상: NVIDIA GPU가 있는 컴퓨터에서 yolo checks에 CPU라고 표시되고 추론이 느립니다. 원인: CPU 전용 PyTorch 빌드입니다. 예를 들어 Windows에서는 기본 pip 휠이 이에 해당합니다. 해결: 위의 PyTorch selector에서 OS, 패키지 관리자, CUDA 버전을 선택하고 표시된 명령을 실행한 다음 ultralytics을 다시 설치합니다. 스크린샷처럼 Mac에서는 기본 빌드가 올바릅니다. Apple GPU를 사용하려면 device=mps를 전달하지 않는 한 Ultralytics는 CPU에서 실행됩니다.

첫 번째 예측#

from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # 처음 사용할 때 약 5 MB 크기의 nano 모델을 다운로드합니다
results = model("https://ultralytics.com/images/bus.jpg", save=True)

for box in results[0].boxes:
    print(model.names[int(box.cls)], round(float(box.conf), 2))

두 명령 모두 이미지마다 한 줄 요약을 출력하고, 주석이 추가된 이미지를 runs/detect/predict에 저장합니다:

image 1/1 .../bus.jpg: 640x480 4 persons, 1 bus, 19.7ms
Speed: 0.9ms preprocess, 19.7ms inference, 0.4ms postprocess per image at shape (1, 3, 640, 480)
Results saved to runs/detect/predict

한 줄씩 살펴보면, 추론을 위해 이미지 크기를 640×480으로 조정했고 모델이 사람 4명과 버스 1대를 찾았으며 노트북 CPU에서 추론에 약 20ms가 걸렸습니다. Speed 줄은 첫 번째 지연 시간 확인 지점입니다. 명세의 입력 항목에 기재한 프레임 속도와 비교하세요. 저장된 이미지를 열어 보세요. 각 박스에는 객체 탐지 강의에서 다룬 클래스, 박스, 신뢰도가 표시되어 있습니다.

출력 결과를 명세와 대조하세요#

질문예라면아니요라면
모델이 알고 있는 80개의 COCO 클래스에 필요한 클래스가 포함되어 있나요?학습 없이 바로 프로토타입을 만드세요라벨링된 데이터와 파인튜닝이 필요합니다(파인튜닝 가이드).
직접 촬영한 이미지에서 임계값보다 높은 박스가 올바른 객체를 표시하나요?작업과 시점이 일치합니다도메인 격차가 예상됩니다. 카메라로 데이터를 수집하세요
출력 유형이 의사결정 항목에서 필요한 유형인가요?작업을 유지하세요가중치 전환: -seg, -sem, -depth, -pose, -obb 또는 -cls
타깃 하드웨어에서 필요한 프레임 속도를 충족할 만큼 빠른가요?다음 단계로 진행하세요더 작은 모델이나 최적화된 내보내기 형식을 사용해 보세요

첫 번째 질문에는 명확한 답이 있습니다. model.names에는 사전 학습된 모델이 인식하는 모든 클래스가 나열되어 있습니다. 지게차 명세의 경우 person은 COCO 클래스이지만 forklift는 아니므로, 임계값을 어떻게 설정해도 사전 학습된 모델은 지게차를 찾을 수 없습니다. 첫 실행에서 가장 흔히 나오는 결과는 모델이 명세의 일부만 지원하는 것입니다. 이때는 지원되는 클래스를 사용해 의사결정 로직을 프로토타입으로 만들면서 나머지 클래스를 위한 데이터셋을 구축하는 것이 좋습니다.

프로덕션에서 달라지는 점#

배포된 모델은 데이터셋에서 한 번도 표본으로 다루지 않은 조건을 마주합니다. 새로운 카메라, 계절, 제품, 유니폼 등이 그 예입니다. 재학습하지 않으면 정확도가 떨어지지만, 프로덕션에서 수집한 데이터를 사용해 정기적으로 재학습하면 정확도를 회복할 수 있습니다:

시간에 따른 모델 정확도를 보여주는 차트 두 개: 재학습하지 않아 성능이 저하되는 모델과, 정기적으로 재학습하여 업데이트 때마다 정확도를 회복하는 모델

이 과정의 모든 강의는 이러한 반복 과정에 기여합니다. 명세는 실패 조건을 정의하고, 커버리지 감사는 살펴볼 부분을 알려주며, 라벨 린터와 가이드라인은 새 데이터를 유용하게 만듭니다. 또한 올바른 데이터 분할과 지표를 통해 재학습된 모델이 실제로 더 나아졌는지 확인할 수 있습니다. 첫날부터 효과를 내는 습관은 두 가지입니다. 신뢰도가 낮은 경우를 포함해 입력과 예측의 표본을 기록하고, 모든 모델을 같은 이미지로 비교할 수 있도록 고정 테스트 세트를 유지하세요. 관측 가능성과 드리프트에서 데이터 드리프트 모니터링을 자세히 다룹니다.

다음 단계#

과정수강 시점
고성능 YOLO 데이터셋 구축필요한 클래스가 사전 학습되어 있지 않거나 장면이 COCO와 다릅니다
첫 YOLO 모델 학습하기라벨링된 데이터셋이 있고 파인튜닝을 원합니다
프로덕션 환경의 Ultralytics YOLO모델이 있고 내보내기, 추적, 모니터링이 필요합니다
Ultralytics Platform으로 구축하기데이터, 라벨링, 학습, 배포를 한곳에서 처리하고 싶습니다

브라우저 기반 워크플로를 선호하시나요? Ultralytics Platform에서는 로컬 설치 없이 업로드, 주석 추가, 학습, 배포의 동일한 과정을 진행할 수 있습니다:

사용해 보기

솔루션 스크립트를 수정하세요. 명세의 클래스는 spec_classes에, 직접 촬영한 이미지 경로는 sources에 입력한 다음 실행하고 저장된 결과를 여세요. 이미지, 탐지된 클래스, 명세와 일치하는지(예 또는 아니요)로 구성된 표를 작성하세요. 마지막으로 다음 단계와 해당 내용을 다루는 과정을 선택하는 한 문장으로 마무리하세요.

커밋
git add -A && git commit -m "docs(academy): completed Computer Vision Foundations"
완료 조건
다음 조건을 모두 충족하면 레슨을 완료한 것입니다.
  • 직접 촬영한 이미지 세 장 이상에 YOLO26을 실행하고 저장된 결과를 열어 보았습니다.

  • 명세의 클래스 중 사전 학습된 모델이 지원하는 클래스와 자체 데이터가 필요한 클래스를 알고 있습니다.

  • 다음 단계와 이를 위해 수강할 과정을 한 문장으로 정리했습니다.

정답 보기
from pathlib import Path

from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# 1. Which classes in your output line does the pretrained model already know?
spec_classes = {"person", "forklift"}
known = set(model.names.values())
print(f"pretrained: {sorted(spec_classes & known)}  needs your own data: {sorted(spec_classes - known)}")

# 2. What does it find on your images?
sources = [
    "https://ultralytics.com/images/bus.jpg",  # replace with your own images
    "https://ultralytics.com/images/zidane.jpg",
]
for source, result in zip(sources, model.predict(sources, conf=0.25, save=True, verbose=False)):
    names = [result.names[int(c)] for c in result.boxes.cls]
    print(f"{Path(source).name}: {len(names)} detections -> {sorted(set(names))}")
pretrained: ['person']  needs your own data: ['forklift']
bus.jpg: 5 detections -> ['bus', 'person']
zidane.jpg: 3 detections -> ['person', 'tie']

지게차 명세의 경우 person은 지원되지만 forklift은 지원되지 않습니다. 다음 단계: 지금 사전 학습된 모델을 사용해 사람을 대상으로 구역 규칙을 프로토타입으로 만들고, 창고 카메라에서 지게차 데이터를 수집하고 라벨링하기 위해 고성능 YOLO 데이터셋 구축 과정을 시작하세요.

다음 단계

과정을 완료했습니다. 최종 퀴즈를 풀어 인증서를 받은 다음, 명세를 학습 준비가 된 데이터셋으로 만드는 고성능 YOLO 데이터셋 구축 과정을 이어서 수강하세요.