Meet YOLO26: next-gen vision AI.

Link to this sectionUltralytics YOLO를 사용한 모델 예측#

Ultralytics YOLO ecosystem and integrations

Link to this section소개#

머신러닝컴퓨터 비전 분야에서 시각적 데이터를 해석하는 과정을 흔히 추론(inference) 또는 예측(prediction)이라고 합니다. Ultralytics YOLO26은 다양한 데이터 소스에 걸쳐 고성능 실시간 추론을 수행하도록 최적화된 **예측 모드(predict mode)**라는 강력한 기능을 제공합니다.



Watch: How to Extract Results from Ultralytics YOLO26 Tasks for Custom Projects 🚀

Link to this section실제 활용 사례#

제조업스포츠안전
차량 예비 부품 탐지축구 선수 탐지사람 낙상 탐지
차량 예비 부품 탐지축구 선수 탐지사람 낙상 탐지

Link to this section왜 추론을 위해 Ultralytics YOLO를 사용하는가?#

다양한 추론 요구사항에 YOLO26의 예측 모드를 고려해야 하는 이유는 다음과 같습니다:

  • 범용성: 이미지, 비디오, 심지어 라이브 스트림에서도 추론을 실행할 수 있습니다.
  • 성능: 정확도를 희생하지 않으면서 실시간 고속 처리를 위해 설계되었습니다.
  • 사용 편의성: 빠른 배포 및 테스트를 위한 직관적인 Python 및 CLI 인터페이스를 제공합니다.
  • 높은 사용자 정의 가능성: 특정 요구사항에 맞춰 모델의 추론 동작을 조정할 수 있는 다양한 설정 및 매개변수를 제공합니다.
  • 프로덕션 준비 완료: Ultralytics Platform에서 자동 확장(auto-scaling) 및 모니터링이 포함된 API 엔드포인트로 모델을 배포하거나 로컬에서 추론을 실행할 수 있습니다.

Link to this section예측 모드의 주요 특징#

YOLO26의 예측 모드는 강력하고 범용적으로 설계되었으며 다음과 같은 기능을 갖추고 있습니다:

  • 다중 데이터 소스 호환성: 데이터가 개별 이미지, 이미지 모음, 비디오 파일, 실시간 비디오 스트림 등 어떤 형태이든 예측 모드에서 지원합니다.
  • 스트리밍 모드: 스트리밍 기능을 사용하여 메모리 효율적인 Results 객체 생성기를 생성하십시오. 예측기의 호출 메서드에서 stream=True로 설정하여 활성화할 수 있습니다.
  • 배치 처리: 여러 이미지 또는 비디오 프레임을 단일 배치로 처리하여 전체 추론 시간을 더욱 단축합니다.
  • 통합 용이성: 유연한 API 덕분에 기존 데이터 파이프라인 및 기타 소프트웨어 구성 요소와 쉽게 통합할 수 있습니다.

Ultralytics YOLO models return either a Python list of Results objects or a memory-efficient generator of Results objects when stream=True is passed to the model during inference:

추론(Predict)
from ultralytics import YOLO

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

# Run batched inference on a list of images
results = model(["image1.jpg", "image2.jpg"])  # return a list of Results objects

# Process results list
for result in results:
    boxes = result.boxes  # Boxes object for bounding box outputs
    masks = result.masks  # Masks object for segmentation masks outputs
    keypoints = result.keypoints  # Keypoints object for pose outputs
    probs = result.probs  # Probs object for classification outputs
    obb = result.obb  # Oriented boxes object for OBB outputs
    result.show()  # display to screen
    result.save(filename="result.jpg")  # save to disk

Link to this section추론 소스#

YOLO26은 아래 표와 같이 추론을 위한 다양한 유형의 입력 소스를 처리할 수 있습니다. 소스에는 정적 이미지, 비디오 스트림 및 다양한 데이터 형식이 포함됩니다. 또한 이 표는 각 소스가 stream=True ✅ 인수를 사용하여 스트리밍 모드에서 사용될 수 있는지 여부를 나타냅니다. 스트리밍 모드는 모든 프레임을 메모리에 로드하는 대신 결과 생성기를 생성하므로 비디오나 라이브 스트림을 처리하는 데 유용합니다.

긴 비디오나 대규모 데이터 세트를 처리할 때는 메모리를 효율적으로 관리하기 위해 stream=True를 사용하십시오. stream=False일 때는 모든 프레임이나 데이터 포인트에 대한 결과가 메모리에 저장되므로, 대규모 입력의 경우 결과가 빠르게 누적되어 메모리 부족(out-of-memory) 오류가 발생할 수 있습니다. 반면 stream=True는 생성기를 사용하여 현재 프레임이나 데이터 포인트의 결과만 메모리에 유지하므로 메모리 소비를 크게 줄이고 메모리 부족 문제를 방지할 수 있습니다.

소스예시유형참고
이미지'image.jpg'str 또는 Path단일 이미지 파일.
URL'https://ultralytics.com/images/bus.jpg'str이미지 URL.
스크린샷'screen'str스크린샷 캡처.
PILImage.open('image.jpg')PIL.ImageRGB 채널을 포함하는 HWC 형식.
OpenCVcv2.imread('image.jpg')np.ndarrayBGR 채널 uint8 (0-255)을 포함하는 HWC 형식.
NumPynp.zeros((640,1280,3))np.ndarrayBGR 채널 uint8 (0-255)을 포함하는 HWC 형식.
torchtorch.zeros(16,3,320,640)torch.TensorRGB 채널 float32 (0.0-1.0)을 포함하는 BCHW 형식.
CSV'sources.csv'str 또는 Path이미지, 비디오 또는 디렉토리 경로가 포함된 CSV 파일.
비디오 ✅'video.mp4'str 또는 PathMP4, AVI 등 형식의 비디오 파일.
디렉토리 ✅'path/'str 또는 Path이미지나 비디오가 포함된 디렉토리 경로.
글로브(glob) ✅'path/*.jpg'str여러 파일을 일치시키는 글로브 패턴. 와일드카드로 * 문자를 사용하십시오.
YouTube ✅'https://youtu.be/LNwODJXcvt4'strYouTube 비디오 URL.
스트림 ✅'rtsp://example.com/media.mp4'strRTSP, RTMP, TCP와 같은 스트리밍 프로토콜용 URL 또는 IP 주소.
멀티 스트림 ✅'list.streams'str 또는 Path행당 하나의 스트림 URL을 포함하는 *.streams 텍스트 파일(예: 8개의 스트림은 배치 사이즈 8로 실행됨).
웹캠 ✅0int추론을 실행할 연결된 카메라 장치의 인덱스.

각 소스 유형을 사용하는 코드 예시는 다음과 같습니다:

예측 소스

이미지 파일에서 추론을 실행합니다.

from ultralytics import YOLO

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

# Define path to the image file
source = "path/to/image.jpg"

# Run inference on the source
results = model(source)  # list of Results objects

Link to this section추론 인수#

model.predict()는 추론 시 기본값을 재정의하기 위해 전달될 수 있는 여러 인수를 허용합니다:

Link to this section고정 크기 대 최소 직사각형(rect)#

기본적으로 예측은 **rect=True**를 사용하여 가능할 때 최소 직사각형 패딩을 활성화합니다. 이미지는 imgsz에 맞게 크기가 조정되고 가장 가까운 스트라이드 배수까지만 패딩되므로, 최종 텐서는 imgsz보다 작을 수 있습니다. 최소 직사각형 패딩은 배치의 모든 이미지가 동일한 모양을 가지고 백엔드에서 지원하는 경우(PyTorch .pt 또는 동적 ONNX / Triton)에만 사용됩니다. 그렇지 않으면 이미지는 전체 imgsz 대상으로 패딩됩니다.

Use rect=False to always pad to the full imgsz target. This is recommended when you need a fixed input size to match exported models (ONNX, TensorRT, etc.).

정수 대 튜플 imgsz

  • 정수 imgsz=640은 스트라이드 반올림 후 정사각형 대상 (640, 640)이 됩니다.
  • 튜플 imgsz=(384, 672)는 직사각형 대상을 설정합니다. rect=Trueauto=True를 사용하면 실제 텐서는 이 대상보다 작을 수 있습니다.

학습 대 예측/내보내기

학습은 단일 정수 imgsz만 허용합니다([h, w] 목록은 가장 큰 값으로 강제 변환됩니다). 예측 및 내보내기는 정수 또는 (height, width) 튜플을 모두 허용합니다.

예시
from ultralytics import YOLO

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

# Run inference on 'bus.jpg' with arguments
model.predict("https://ultralytics.com/images/bus.jpg", save=True, imgsz=320, conf=0.25)

추론 인수:

인수유형기본값설명
sourcestr 또는 int 또는 NoneNone추론을 위한 데이터 소스를 지정합니다. 이미지 경로, 비디오 파일, 디렉토리, URL 또는 라이브 피드용 장치 ID일 수 있습니다. 생략하면 경고가 기록되고 모델은 내장 데모 자산(ultralytics/assets 또는 OBB용 데모 URL)으로 대체됩니다. 다양한 형식과 소스를 지원하여 다양한 유형의 입력 전반에 걸쳐 유연한 적용이 가능합니다.
conffloat0.25탐지를 위한 최소 신뢰도 임계값을 설정합니다. 이 임계값 미만의 신뢰도로 탐지된 객체는 무시됩니다. 이 값을 조정하면 오탐을 줄이는 데 도움이 될 수 있습니다.
ioufloat0.7NMS(Non-Maximum Suppression)를 위한 IoU(Intersection Over Union) 임계값입니다. 낮은 값은 중복된 상자를 제거하여 탐지 결과를 줄이며, 중복을 줄이는 데 유용합니다.
imgszint 또는 tuple640레터박스 대상입니다. 정수는 정사각형 N×N을 제공하고, 튜플은 (height, width)를 제공합니다. rect=True인 경우, 최소 직사각형 패딩으로 인해 실제 텐서가 이 대상보다 작을 수 있습니다. 고정 크기를 사용하려면 rect=False를 사용하십시오. 고정 크기 대 최소 직사각형을 참조하십시오.
rectboolTrueTrue이면 가능한 경우 최소 직사각형 패딩을 사용합니다(동일한 모양의 배치 및 지원되는 백엔드). False이면 항상 전체 imgsz로 패딩합니다. 고정 크기 대 최소 직사각형을 참조하십시오.
halfboolFalseFP16 반정밀도 정밀도 추론을 활성화하며, 정확도에 미치는 영향은 최소화하면서 지원되는 GPU에서 모델 추론 속도를 높일 수 있습니다.
devicestrNone추론을 위한 장치를 지정합니다(예: cpu, cuda:0, 0, npu 또는 npu:0). 사용자가 CPU, 특정 GPU, Huawei Ascend NPU 또는 기타 컴퓨팅 장치 중에서 모델 실행을 선택할 수 있습니다.
batchint1추론을 위한 배치 크기를 지정합니다(소스가 디렉토리, 비디오 파일 또는 .txt 파일인 경우에만 작동합니다). 더 큰 배치 크기는 더 높은 처리량을 제공하여 추론에 필요한 총 시간을 단축할 수 있습니다.
max_detint300이미지당 허용되는 최대 탐지 수입니다. 단일 추론에서 모델이 탐지할 수 있는 객체의 총 수를 제한하여 밀집된 장면에서 과도한 출력을 방지합니다.
vid_strideint1비디오 입력을 위한 프레임 스트라이드입니다. 비디오에서 프레임을 건너뛰어 시간적 해상도를 희생하는 대신 처리 속도를 높일 수 있습니다. 값 1은 모든 프레임을 처리하고, 더 높은 값은 프레임을 건너뜁니다.
stream_bufferboolFalse비디오 스트림에 대해 들어오는 프레임을 대기열에 넣을지 여부를 결정합니다. False이면 이전 프레임이 삭제되어 새 프레임을 수용합니다(실시간 애플리케이션에 최적화됨). True이면 새 프레임을 버퍼에 대기시켜 프레임이 건너뛰지 않도록 보장하지만, 추론 FPS가 스트림 FPS보다 낮을 경우 지연 시간이 발생합니다.
visualizeboolFalse추론 중에 모델 특징 시각화를 활성화하여 모델이 "보고 있는" 것에 대한 통찰력을 제공합니다. 디버깅 및 모델 해석에 유용합니다.
augmentboolFalse예측을 위한 TTA(test-time augmentation)를 활성화하여 추론 속도를 희생하는 대신 탐지 견고성을 향상시킬 수 있습니다.
agnostic_nmsboolFalse클래스에 구애받지 않는 NMS(Non-Maximum Suppression)를 활성화하여 서로 다른 클래스의 중복 상자를 병합합니다. 클래스 중첩이 흔한 다중 클래스 탐지 시나리오에서 유용합니다. 엔드 투 엔드 모델(YOLO26, YOLOv10)의 경우, 이는 동일한 탐지가 여러 클래스 레이블(IoU=1.0 중복)과 함께 나타나는 것만 방지하며 개별 상자 간의 IoU 임계값 기반 억제는 수행하지 않습니다.
classeslist[int]None예측을 클래스 ID 세트로 필터링합니다. 지정된 클래스에 속하는 탐지만 반환됩니다. 다중 클래스 탐지 작업에서 관련 객체에 집중하는 데 유용합니다.
retina_masksboolFalse고해상도 세그멘테이션 마스크를 반환합니다. 활성화되면 반환된 마스크(masks.data)가 원본 이미지 크기와 일치합니다. 비활성화되면 추론 중에 사용된 이미지 크기를 가집니다.
embedlist[int]None특징 벡터 또는 임베딩을 추출할 레이어를 지정합니다. 클러스터링이나 유사성 검색과 같은 후속 작업에 유용합니다.
projectstrNonesave가 활성화된 경우 예측 출력이 저장되는 프로젝트 디렉토리의 이름입니다.
namestrNone예측 실행의 이름입니다. save가 활성화된 경우 예측 출력이 저장되는 프로젝트 폴더 내의 하위 디렉토리를 만드는 데 사용됩니다.
streamboolFalse모든 프레임을 한 번에 메모리에 로드하는 대신 Results 객체 생성기를 반환하여 긴 비디오나 수많은 이미지에 대해 메모리 효율적인 처리를 활성화합니다.
verboseboolTrue터미널에 상세한 추론 로그를 표시할지 여부를 제어하여 예측 프로세스에 대한 실시간 피드백을 제공합니다.
compilebool 또는 strFalseEnables PyTorch 2.x torch.compile graph compilation with backend='inductor'. Accepts True"default", False → disables, or a string mode such as "default", "reduce-overhead", "max-autotune-no-cudagraphs". Falls back to eager with a warning if unsupported.
end2endboolNoneNMS 없는 추론을 지원하는 YOLO 모델(YOLO26, YOLOv10)에서 엔드 투 엔드 모드를 재정의합니다. False로 설정하면 기존 NMS 파이프라인을 사용하여 예측을 실행할 수 있으며, 추가적으로 iou 인수를 사용할 수 있습니다. 자세한 내용은 엔드 투 엔드 탐지 가이드를 참조하십시오.

시각화 인수:

인수유형기본값설명
showboolFalseTrue일 경우, 주석이 달린 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 확인하는 데 유용합니다.
saveboolFalse or True주석이 달린 이미지나 비디오를 파일로 저장하는 것을 활성화합니다. 문서화, 추가 분석 또는 결과 공유에 유용합니다. CLI 사용 시 기본값은 True이고 Python에서 사용 시 False입니다.
save_framesboolFalse비디오를 처리할 때 개별 프레임을 이미지로 저장합니다. 특정 프레임을 추출하거나 상세한 프레임별 분석에 유용합니다.
save_txtboolFalse[class] [x_center] [y_center] [width] [height] [confidence] 형식을 따라 탐지 결과를 텍스트 파일로 저장합니다. 다른 분석 도구와의 통합에 유용합니다.
save_confboolFalse저장된 텍스트 파일에 신뢰도 점수를 포함합니다. 후처리 및 분석에 사용할 수 있는 세부 정보를 향상시킵니다.
save_cropboolFalse탐지된 이미지의 크롭된 이미지를 저장합니다. 데이터셋 증강, 분석 또는 특정 객체에 대한 집중 데이터셋을 만드는 데 유용합니다.
show_labelsboolTrue시각적 출력에서 각 탐지에 대한 레이블을 표시합니다. 탐지된 객체를 즉시 이해할 수 있도록 합니다.
show_confboolTrue각 탐지에 대한 신뢰도 점수를 레이블과 함께 표시합니다. 각 탐지에 대한 모델의 확신도를 파악할 수 있습니다.
show_boxesboolTrue탐지된 객체 주위에 경계 상자를 그립니다. 이미지나 비디오 프레임에서 객체의 시각적 식별 및 위치 파악에 필수적입니다.
line_widthint or NoneNone바운딩 박스의 선 굵기를 지정합니다. None일 경우, 선 굵기가 이미지 크기에 따라 자동으로 조정됩니다. 명확성을 위해 시각적 커스터마이징을 제공합니다.

Link to this section이미지 및 비디오 형식#

YOLO26은 ultralytics/data/utils.py에 지정된 대로 다양한 이미지 및 비디오 형식을 지원합니다. 유효한 접미사와 예제 예측 명령은 아래 표를 참조하십시오.

Link to this section이미지#

아래 표에는 유효한 Ultralytics 이미지 형식이 포함되어 있습니다.

참고

HEIC/HEIF 형식은 처음 사용할 때 자동으로 설치되는 pi-heif가 필요합니다. AVIF는 Pillow에서 기본적으로 지원됩니다.

이미지 접미사예제 예측 명령참조
.avifyolo predict source=image.avifAV1 이미지 파일 형식
.bmpyolo predict source=image.bmpMicrosoft BMP 파일 형식
.dngyolo predict source=image.dngAdobe DNG
.heicyolo predict source=image.heic고효율 이미지 형식
.heifyolo predict source=image.heif고효율 이미지 형식
.jp2yolo predict source=image.jp2JPEG 2000
.jpegyolo predict source=image.jpegJPEG
.jpeg2000yolo predict source=image.jpeg2000JPEG 2000
.jpgyolo predict source=image.jpgJPEG
.mpoyolo predict source=image.mpo멀티 픽처 객체
.pngyolo predict source=image.png휴대용 네트워크 그래픽
.tifyolo predict source=image.tifTag Image File Format
.tiffyolo predict source=image.tiffTag Image File Format
.webpyolo predict source=image.webpWebP

Link to this section비디오#

아래 표에는 유효한 Ultralytics 비디오 형식이 포함되어 있습니다.

비디오 확장자예제 예측 명령참조
.asfyolo predict source=video.asfAdvanced Systems Format
.aviyolo predict source=video.aviAudio Video Interleave
.gifyolo predict source=video.gifGraphics Interchange Format
.m4vyolo predict source=video.m4vMPEG-4 Part 14
.mkvyolo predict source=video.mkvMatroska
.movyolo predict source=video.movQuickTime File Format
.mp4yolo predict source=video.mp4MPEG-4 Part 14 - Wikipedia
.mpegyolo predict source=video.mpegMPEG-1 Part 2
.mpgyolo predict source=video.mpgMPEG-1 Part 2
.tsyolo predict source=video.tsMPEG Transport Stream
.wmvyolo predict source=video.wmvWindows Media Video
.webmyolo predict source=video.webmWebM Project

Link to this section결과 작업#

모든 Ultralytics predict() 호출은 Results 객체 리스트를 반환합니다:

결과
from ultralytics import YOLO

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

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
results = model(
    [
        "https://ultralytics.com/images/bus.jpg",
        "https://ultralytics.com/images/zidane.jpg",
    ]
)  # batch inference

Results 객체는 다음과 같은 속성을 가집니다:

속성유형설명
orig_imgnp.ndarrayNumPy 배열 형태의 원본 이미지입니다.
orig_shapetuple(높이, 너비) 형식의 원본 이미지 크기입니다.
boxesBoxes, optional탐지된 BBox(바운딩 박스)를 포함하는 Boxes 객체입니다.
masksMasks, optional탐지된 마스크를 포함하는 Masks 객체입니다.
probsProbs, optional분류 작업에서 각 클래스에 대한 확률을 포함하는 Probs 객체입니다.
keypointsKeypoints, optional각 객체에 대해 탐지된 키포인트를 포함하는 Keypoints 객체입니다.
obbOBB, optional지향성 바운딩 박스를 포함하는 OBB 객체입니다.
semantic_maskSemanticMask, optional픽셀 단위 클래스 맵을 포함하는 SemanticMask 객체입니다.
speeddict이미지당 밀리초(ms) 단위로 측정된 전처리, 추론 및 후처리 속도를 담은 딕셔너리입니다.
namesdict클래스 인덱스와 클래스 이름을 매핑한 딕셔너리입니다.
pathstr이미지 파일 경로입니다.
save_dirstr, optional결과를 저장할 디렉토리입니다.

Link to this section작업별 결과#

각 예측은 이미지 또는 프레임당 하나의 Results 객체를 반환합니다. 위의 공통 필드는 항상 사용할 수 있으며, 작업별 예측 데이터는 아래 필드에 저장됩니다. 좌표, 신뢰도, 확률 텐서는 하프 정밀도를 사용하지 않는 한 torch.float32이며, 하프 정밀도를 사용할 경우 torch.float16입니다. result.numpy()를 실행하면 텐서는 일치하는 NumPy dtype을 가진 NumPy 배열로 변환됩니다. 인스턴스 마스크는 torch.uint8 이진 텐서인 반면, 시맨틱 마스크는 클래스 수에 따라 torch.uint8, torch.int16 또는 torch.int32와 같이 클래스 ID에 대해 가장 실용적인 최소 정수 dtype을 사용합니다.

속성유형형태설명
result.boxesBoxes(N)탐지 박스입니다.
result.boxes.datatorch.float32(N,6/7)원시 [x1,y1,x2,y2,conf,cls] 데이터이며, 선택적으로 트랙 ID가 포함됩니다.
result.boxes.xyxytorch.float32(N,4)xyxy 픽셀 박스입니다.
result.boxes.conftorch.float32(N,)신뢰도 점수입니다.
result.boxes.clstorch.float32(N,)클래스 ID입니다. 이름을 가져오려면 int로 변환하십시오.

Results 객체는 다음 메서드를 가집니다:

메서드반환 타입설명
update()None박스, 마스크, 확률, obb, 키포인트 또는 의미론적 마스크와 같은 새로운 데이터로 Results 객체를 업데이트합니다.
cpu()Results모든 텐서가 CPU 메모리로 이동된 Results 객체의 복사본을 반환합니다.
numpy()Results모든 텐서가 NumPy 배열로 변환된 Results 객체의 복사본을 반환합니다.
cuda()Results모든 텐서가 GPU 메모리로 이동된 Results 객체의 복사본을 반환합니다.
to()Results텐서가 지정된 장치와 dtype으로 이동된 Results 객체의 복사본을 반환합니다.
new()Results동일한 이미지, 경로, 이름 및 속도 속성을 가진 새로운 Results 객체를 생성합니다.
plot()np.ndarray입력 BGR 이미지에 감지 결과를 표시하고 주석이 달린 이미지를 반환합니다.
show()None주석이 달린 추론 결과가 포함된 이미지를 표시합니다.
save()str주석이 달린 추론 결과 이미지를 파일로 저장하고 파일 이름을 반환합니다.
verbose()str각 작업에 대한 로그 문자열을 반환하며 감지 및 분류 결과를 자세히 설명합니다.
save_txt()str감지 결과를 텍스트 파일로 저장하고 저장된 파일의 경로를 반환합니다.
save_crop()None잘라낸 감지 이미지를 지정된 디렉토리에 저장합니다.
summary()List[Dict[str, Any]]추론 결과를 선택적 정규화가 포함된 요약된 딕셔너리로 변환합니다.
to_df()DataFrame감지 결과를 Polars DataFrame으로 변환합니다.
to_csv()str감지 결과를 CSV 형식으로 변환합니다.
to_json()str감지 결과를 JSON 형식으로 변환합니다.

더 자세한 내용은 Results 클래스 문서를 참조하십시오.

Link to this section박스#

Boxes 객체는 바운딩 박스를 인덱싱, 조작 및 다른 형식으로 변환하는 데 사용할 수 있습니다.

박스
from ultralytics import YOLO

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

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.boxes)  # print the Boxes object containing the detection bounding boxes

다음은 Boxes 클래스 메서드 및 속성에 대한 표이며, 이름, 유형 및 설명을 포함합니다:

이름유형설명
cpu()메서드객체를 CPU 메모리로 이동합니다.
numpy()메서드개체를 NumPy 배열로 변환합니다.
cuda()메서드개체를 CUDA 메모리로 이동합니다.
to()메서드개체를 지정된 디바이스로 이동합니다.
xyxy속성 (torch.Tensor)상자를 xyxy 형식으로 반환합니다.
conf속성 (torch.Tensor)상자의 신뢰도 값을 반환합니다.
cls속성 (torch.Tensor)상자의 클래스 값을 반환합니다.
id속성 (torch.Tensor)상자의 추적 ID를 반환합니다(사용 가능한 경우).
xywh속성 (torch.Tensor)상자를 xywh 형식으로 반환합니다.
xyxyn속성 (torch.Tensor)원본 이미지 크기로 정규화된 xyxy 형식의 상자를 반환합니다.
xywhn속성 (torch.Tensor)원본 이미지 크기로 정규화된 xywh 형식의 상자를 반환합니다.

자세한 내용은 Boxes 클래스 문서를 참조하십시오.

Link to this sectionMasks#

Masks 객체를 사용하여 마스크를 인덱싱하고 조작하며 세그먼트로 변환할 수 있습니다.

Masks
from ultralytics import YOLO

# Load a pretrained YOLO26n-seg Segment model
model = YOLO("yolo26n-seg.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.masks)  # print the Masks object containing the detected instance masks

Masks 클래스의 메서드와 속성, 이름, 유형 및 설명을 포함한 표는 다음과 같습니다.

이름유형설명
data속성 (torch.Tensor)torch.uint8 이진 마스크 텐서(형태: (N,H,W), 값: 0 또는 1).
cpu()메서드CPU 메모리의 마스크 텐서를 반환합니다.
numpy()메서드NumPy 배열로 마스크 텐서를 반환합니다.
cuda()메서드GPU 메모리의 마스크 텐서를 반환합니다.
to()메서드지정된 디바이스와 dtype으로 마스크 텐서를 반환합니다.
xyn속성 (list[np.ndarray])정규화된 마스크 다각형 목록입니다.
xy속성 (list[np.ndarray])픽셀 좌표로 된 마스크 다각형 목록입니다.

자세한 내용은 Masks 클래스 문서를 참조하십시오.

Link to this sectionSemanticMask#

SemanticMask는 의미론적 세그멘테이션 결과를 위해 하나의 조밀한 클래스 맵을 저장합니다. Masks와 달리, 개체당 하나의 이진 마스크를 포함하지 않으며 다각형 도우미를 제공하지 않습니다.

SemanticMask
from ultralytics import YOLO

# Load a pretrained YOLO26n-sem Semantic model
model = YOLO("yolo26n-sem.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.semantic_mask.data)  # print the H x W class-ID map
이름유형설명
data속성 (torch.Tensor)형태 (H,W)의 클래스-ID 맵입니다. Dtype은 클래스 수에 따라 선택된 torch.uint8, torch.int16 또는 torch.int32입니다.
shape속성 (tuple)클래스 맵의 형태이며, 일반적으로 result.orig_shape와 일치합니다.
cpu()메서드CPU 메모리의 의미론적 마스크 텐서를 반환합니다.
numpy()메서드NumPy 배열로 의미론적 마스크 텐서를 반환합니다.
cuda()메서드GPU 메모리의 의미론적 마스크 텐서를 반환합니다.
to()메서드지정된 디바이스와 dtype으로 의미론적 마스크 텐서를 반환합니다.

Link to this sectionKeypoints#

Keypoints 객체를 사용하여 좌표를 인덱싱하고 조작하며 정규화할 수 있습니다.

Keypoints
from ultralytics import YOLO

# Load a pretrained YOLO26n-pose Pose model
model = YOLO("yolo26n-pose.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.keypoints)  # print the Keypoints object containing the detected keypoints

Keypoints 클래스의 메서드와 속성, 이름, 유형 및 설명을 포함한 표는 다음과 같습니다.

이름유형설명
cpu()메서드CPU 메모리의 키포인트 텐서를 반환합니다.
numpy()메서드NumPy 배열로 키포인트 텐서를 반환합니다.
cuda()메서드GPU 메모리의 키포인트 텐서를 반환합니다.
to()메서드지정된 디바이스와 dtype으로 키포인트 텐서를 반환합니다.
xyn속성 (torch.Tensor)텐서로 표현된 정규화된 키포인트 목록입니다.
xy속성 (torch.Tensor)텐서로 표현된 픽셀 좌표의 키포인트 목록입니다.
conf속성 (torch.Tensor)사용 가능한 경우 키포인트의 신뢰도 값을 반환하고, 그렇지 않으면 None을 반환합니다.

자세한 내용은 Keypoints 클래스 문서를 참조하십시오.

Link to this sectionProbs#

Probs 객체를 사용하여 분류의 top1top5 인덱스와 점수를 인덱싱하고 가져올 수 있습니다.

Probs
from ultralytics import YOLO

# Load a pretrained YOLO26n-cls Classify model
model = YOLO("yolo26n-cls.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.probs)  # print the Probs object containing the detected class probabilities

Probs 클래스의 메서드와 속성을 요약한 표는 다음과 같습니다:

이름유형설명
cpu()메서드CPU 메모리의 probs 텐서 복사본을 반환합니다.
numpy()메서드NumPy 배열로 probs 텐서 복사본을 반환합니다.
cuda()메서드GPU 메모리의 probs 텐서 복사본을 반환합니다.
to()메서드지정된 디바이스와 dtype으로 probs 텐서 복사본을 반환합니다.
top1속성 (int)상위 1개 클래스의 인덱스입니다.
top5속성 (list[int])상위 5개 클래스의 인덱스입니다.
top1conf속성 (torch.Tensor)상위 1개 클래스의 신뢰도입니다.
top5conf속성 (torch.Tensor)상위 5개 클래스의 신뢰도입니다.

자세한 내용은 Probs 클래스 문서를 참조하십시오.

Link to this sectionOBB(방향성 경계 상자)#

OBB 객체를 사용하여 회전된 경계 상자를 인덱싱하고 조작하며 다양한 형식으로 변환할 수 있습니다.

OBB(방향성 경계 상자)
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n-obb.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/boats.jpg")  # results list

# View results
for r in results:
    print(r.obb)  # print the OBB object containing the oriented detection bounding boxes

OBB 클래스의 메서드와 속성, 이름, 유형 및 설명을 포함한 표는 다음과 같습니다.

이름유형설명
cpu()메서드객체를 CPU 메모리로 이동합니다.
numpy()메서드개체를 NumPy 배열로 변환합니다.
cuda()메서드개체를 CUDA 메모리로 이동합니다.
to()메서드개체를 지정된 디바이스로 이동합니다.
conf속성 (torch.Tensor)상자의 신뢰도 값을 반환합니다.
cls속성 (torch.Tensor)상자의 클래스 값을 반환합니다.
id속성 (torch.Tensor)상자의 추적 ID를 반환합니다(사용 가능한 경우).
xyxy속성 (torch.Tensor)수평 상자를 xyxy 형식으로 반환합니다.
xywhr속성 (torch.Tensor)회전된 상자를 xywhr 형식으로 반환합니다.
xyxyxyxy속성 (torch.Tensor)회전된 상자를 xyxyxyxy 형식으로 반환합니다.
xyxyxyxyn속성 (torch.Tensor)이미지 크기로 정규화된 xyxyxyxy 형식의 회전된 상자를 반환합니다.

자세한 내용은 OBB 클래스 문서를 참조하십시오.

Link to this section결과 시각화(Plotting Results)#

The plot() method in Results objects facilitates visualization of predictions by overlaying detected objects (such as bounding boxes, masks, keypoints, and probabilities) onto the original image. This method returns the annotated image as a NumPy array, allowing for easy display or saving.

플롯
from PIL import Image

from ultralytics import YOLO

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

# Run inference on 'bus.jpg'
results = model(["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"])  # results list

# Visualize the results
for i, r in enumerate(results):
    # Plot results image
    im_bgr = r.plot()  # BGR-order numpy array
    im_rgb = Image.fromarray(im_bgr[..., ::-1])  # RGB-order PIL image

    # Show results to screen (in supported environments)
    r.show()

    # Save results to disk
    r.save(filename=f"results{i}.jpg")

Link to this sectionplot() 메서드 매개변수#

plot() 메서드는 출력을 사용자 지정하기 위해 다양한 인수를 지원합니다:

인수유형설명기본값
confbool감지 신뢰도 점수를 포함합니다.True
line_widthfloat경계 상자의 선 두께입니다. None인 경우 이미지 크기에 따라 크기가 조정됩니다.None
font_sizefloat텍스트 글꼴 크기입니다. None인 경우 이미지 크기에 따라 크기가 조정됩니다.None
fontstr텍스트 주석에 사용할 글꼴 이름입니다.'Arial.ttf'
pilbool이미지를 PIL Image 객체로 반환합니다.False
imgnp.ndarray시각화를 위한 대체 이미지입니다. None인 경우 원본 이미지를 사용합니다.None
im_gputorch.Tensor더 빠른 마스크 시각화를 위한 GPU 가속 이미지입니다. 형태: (1, 3, 640, 640).None
kpt_radiusint그려진 키포인트의 반지름입니다.5
kpt_linebool키포인트를 선으로 연결합니다.True
labelsbool주석에 클래스 레이블을 포함합니다.True
boxesbool이미지에 경계 상자를 오버레이합니다.True
masksbool이미지에 마스크를 오버레이합니다.True
probsbool분류 확률을 포함합니다.True
showbool기본 이미지 뷰어를 사용하여 주석이 달린 이미지를 직접 표시합니다.False
saveboolfilename으로 지정된 파일에 주석이 달린 이미지를 저장합니다.False
filenamestrsaveTrue일 때 주석이 달린 이미지를 저장할 파일의 경로 및 이름입니다.None
color_modestr색상 모드를 지정합니다 (예: 'instance' 또는 'class').'class'
txt_colortuple[int, int, int]경계 상자 및 이미지 분류 레이블을 위한 BGR 텍스트 색상입니다.(255, 255, 255)

Link to this section스레드 안전한 추론#

서로 다른 스레드에서 여러 YOLO 모델을 병렬로 실행할 때 추론 중 스레드 안전성(thread safety)을 보장하는 것은 매우 중요합니다. 스레드 안전한 추론은 각 스레드의 예측이 격리되어 서로 간섭하지 않도록 보장함으로써, 경쟁 상태(race condition)를 방지하고 일관되고 신뢰할 수 있는 출력을 보장합니다.

다중 스레드 애플리케이션에서 YOLO 모델을 사용할 때는 충돌을 방지하기 위해 각 스레드마다 별도의 모델 객체를 인스턴스화하거나 스레드 로컬 스토리지를 사용하는 것이 중요합니다.

스레드 안전한 추론

스레드 안전한 추론을 위해 각 스레드 내에서 단일 모델을 인스턴스화합니다:

from threading import Thread

from ultralytics import YOLO

def thread_safe_predict(model, image_path):
    """Performs thread-safe prediction on an image using a locally instantiated YOLO model."""
    model = YOLO(model)
    results = model.predict(image_path)
    # Process results

# Starting threads that each have their own model instance
Thread(target=thread_safe_predict, args=("yolo26n.pt", "image1.jpg")).start()
Thread(target=thread_safe_predict, args=("yolo26n.pt", "image2.jpg")).start()

YOLO 모델을 사용한 스레드 안전한 추론에 대한 자세한 내용과 단계별 지침은 YOLO Thread-Safe Inference Guide를 참조하십시오. 이 가이드는 일반적인 실수를 방지하고 다중 스레드 추론이 원활하게 실행되도록 하는 데 필요한 모든 정보를 제공합니다.

Link to this section스트리밍 소스 for 루프#

다음은 OpenCV(cv2)와 YOLO를 사용하여 비디오 프레임에 대해 추론을 실행하는 Python 스크립트입니다. 이 스크립트는 필요한 패키지(opencv-pythonultralytics)가 이미 설치되어 있다고 가정합니다.

스트리밍 for 루프
import cv2

from ultralytics import YOLO

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

# Open the video file
video_path = "path/to/your/video/file.mp4"
cap = cv2.VideoCapture(video_path)

# Loop through the video frames
while cap.isOpened():
    # Read a frame from the video
    success, frame = cap.read()

    if success:
        # Run YOLO inference on the frame
        results = model(frame)

        # Visualize the results on the frame
        annotated_frame = results[0].plot()

        # Display the annotated frame
        cv2.imshow("YOLO Inference", annotated_frame)

        # Break the loop if 'q' is pressed
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        # Break the loop if the end of the video is reached
        break

# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()

이 스크립트는 비디오의 각 프레임에서 예측을 실행하고, 결과를 시각화하여 창에 표시합니다. 'q'를 눌러 루프를 종료할 수 있습니다.

Link to this sectionFAQ#

Link to this sectionUltralytics YOLO와 실시간 추론을 위한 predict 모드는 무엇입니까?#

Ultralytics YOLO는 실시간 object detection, instance segmentation, semantic segmentationclassification을 위한 최첨단 모델입니다. predict 모드를 사용하면 이미지, 비디오, 라이브 스트림과 같은 다양한 데이터 소스에서 고속 추론을 수행할 수 있습니다. 성능과 범용성을 위해 설계되었으며, 배치 처리 및 스트리밍 모드도 제공합니다. 기능에 대한 자세한 내용은 Ultralytics YOLO predict mode를 확인하십시오.

Link to this sectionUltralytics YOLO를 사용하여 다양한 데이터 소스에서 어떻게 추론을 실행할 수 있습니까?#

Ultralytics YOLO는 개별 이미지, 비디오, 디렉토리, URL 및 스트림을 포함한 광범위한 데이터 소스를 처리할 수 있습니다. model.predict() 호출에서 데이터 소스를 지정할 수 있습니다. 예를 들어, 로컬 이미지는 'image.jpg'를 사용하고 URL은 'https://ultralytics.com/images/bus.jpg'를 사용합니다. 문서에서 다양한 inference sources에 대한 자세한 예제를 확인하십시오.

Link to this sectionYOLO 추론 속도와 메모리 사용량을 최적화하려면 어떻게 해야 합니까?#

추론 속도를 최적화하고 메모리를 효율적으로 관리하려면, 예측기(predictor)의 호출 메서드에서 stream=True로 설정하여 스트리밍 모드를 사용할 수 있습니다. 스트리밍 모드는 모든 프레임을 메모리에 로드하는 대신 메모리 효율적인 Results 객체 생성기를 생성합니다. 긴 비디오나 대규모 데이터셋을 처리할 때 스트리밍 모드가 특히 유용합니다. streaming mode에 대해 자세히 알아보십시오.

Link to this sectionUltralytics YOLO는 어떤 추론 인수를 지원합니까?#

YOLO의 model.predict() 메서드는 conf, iou, imgsz, device 등 다양한 인수를 지원합니다. 이러한 인수를 사용하면 신뢰도 임계값, 이미지 크기, 계산에 사용되는 장치와 같은 매개변수를 설정하여 추론 프로세스를 사용자 지정할 수 있습니다. 이러한 인수에 대한 자세한 설명은 inference arguments 섹션에서 확인할 수 있습니다.

Link to this sectionYOLO 예측 결과를 시각화하고 저장하려면 어떻게 해야 합니까?#

YOLO로 추론을 실행한 후, Results 객체에는 주석이 달린 이미지를 표시하고 저장하는 메서드가 포함되어 있습니다. result.show()result.save(filename="result.jpg")와 같은 메서드를 사용하여 결과를 시각화하고 저장할 수 있습니다. 파일 이름 경로에 누락된 상위 디렉토리는 자동으로 생성됩니다(예: result.save("path/to/result.jpg")). 이러한 메서드의 전체 목록은 working with results 섹션을 참조하십시오.

댓글