고해상도 타일링
tile=True을 사용해 고해상도 이미지를 겹치는 윈도우로 처리한 다음 모델 입력 크기로 조정합니다. 이렇게 하면 전체 이미지를 조정할 때 손실될 수 있는 작은 객체의 디테일을 보존할 수 있습니다. 추가 패키지는 필요하지 않습니다.
타일링은 일반 학습, 검증 및 예측 파이프라인을 사용합니다. 예측은 원본 이미지마다 Results 객체 하나를 반환합니다. 검증에서는 예측을 병합한 후 원본 어노테이션과 비교해 평가하고, 학습 손실은 타일에서 계산합니다.
사용법#
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.train(data="aerial.yaml", tile=True, imgsz=640)
metrics = model.val(data="aerial.yaml", tile=True, imgsz=640)
results = model.predict("large-image.tif", tile=640, imgsz=640, batch=8)yolo predict model=yolo26n.pt source=large-image.tif tile=640 imgsz=640 batch=8tile=True은 imgsz을 윈도우 크기로 사용합니다. tile=1024와 같은 양의 정수는 imgsz과 관계없이 윈도우 크기를 설정합니다. 기본값은 tile=False입니다. 윈도우는 20% 겹치며, 마지막 윈도우는 이미지 경계에 맞춰 정렬됩니다. 작은 이미지는 이미지 전체를 포함하는 단일 윈도우를 사용합니다.
batch은 예측 중 모델이 함께 처리하는 타일 수를 제어합니다. 기존 백엔드는 마지막 부분 배치를 포함해 고정된 내보내기 배치 크기를 처리합니다. 내보낸 모델은 일반 입력 그래프를 유지하며, 타일링은 Python 예측 파이프라인에서 실행됩니다.
비디오의 경우 메모리 사용량을 제한하도록 결과를 스트리밍하고, 기존 예측 옵션을 사용해 결과를 저장하거나 표시합니다:
for result in model.predict("video.mp4", tile=640, stream=True, save=True):
print(result.boxes)yolo predict model=yolo26n.pt source=video.mp4 tile=640 save=True작업 및 모델#
| 작업 | 전체 이미지 출력 |
|---|---|
| 감지 | 박스를 원본 좌표로 복원하고 iou, agnostic_nms, max_det를 사용해 중복을 억제합니다. |
| 분할 | 동일한 박스 선택을 적용하고 선택된 마스크를 원본 이미지에 배치합니다. |
| 의미론적 | 겹치는 영역에서 가장 중앙에 위치한 타일을 선택해 클래스 맵을 이어 붙입니다. |
| 깊이 | 각 타일의 중심에 가까울수록 가중치를 높여 겹치는 깊이 맵을 블렌딩합니다. |
| 분류 | 타일 확률의 평균을 계산합니다. |
| 포즈 | 박스 선택을 적용하고 해당 키포인트를 복원합니다. |
| OBB | 회전 박스를 복원하고 회전 NMS를 사용합니다. |
공유 파이프라인은 YOLO 작업 모델, YOLO-World, YOLOE, RT-DETR 및 FastSAM 예측을 지원합니다. YOLOE 시각 프롬프트는 전체 원본 이미지에서 임베딩한 후 해당 타일에서 재사용합니다. FastSAM은 마스크를 원본 좌표로 병합한 후 프롬프트에 해당하는 마스크를 선택합니다. SAM 예측기는 자체 프롬프트 및 크롭 생성 파이프라인을 유지하며 tile을 지원하지 않습니다.
학습 중에는 박스와 폴리곤을 각 윈도우에 맞게 자르고, OBB 클리핑은 방향을 유지하며, 윈도우 밖의 키포인트는 가시성을 잃습니다. 원래 바운딩 박스 면적의 10% 미만만 남은 인스턴스는 제거됩니다. 비어 있는 윈도우도 음성 예제로 유지됩니다. 시맨틱 및 깊이 타깃에는 이미지와 동일한 윈도우가 적용됩니다.
성능 및 품질#
- 타일링은 전체 이미지 추론보다 모델 순전파를 더 많이 실행합니다. 필요한 디테일을 보존하면서 사용 가능한 메모리 내에서 가장 큰 타일 및 배치 크기를 선택하세요.
- 연속된 타일은 디코딩된 원본을 재사용합니다.
cache="ram"을 사용하면 학습 시 원본 이미지를 한 번만 저장하고,cache="disk"은 기존 이미지 캐시를 사용합니다. 학습 시 타일을 셔플하므로, 캐싱은 용량이 큰 압축 원본 이미지에서 특히 유용합니다. - 원본 크기의 마스크와 밀집 맵에는 여전히 원본 이미지 크기에 비례하는 메모리가 필요합니다.
max_det은 유지되는 인스턴스 마스크 수를 제한합니다. - 타일링은 전역 컨텍스트를 제거합니다. 특히 타일 출력이 전체적으로 일치하지 않을 수 있는 분류 및 깊이 작업의 경우, 자체 데이터에서 정확도를 검증하세요.
- 중복 억제는 예측 전체를 선택하며, 따로 보이는 조각으로부터 객체를 재구성하지 않습니다. 겹침은 경계에서의 잘림을 줄이지만, 타일보다 큰 객체에서는 잘림을 완전히 없앨 수 없습니다.
- 텐서 소스,
embed및visualize은 지원되지 않습니다. 추적은 ReID 특징을 포함해 소스 프레임마다 한 번씩 병합된 예측을 대상으로 실행됩니다.
댓글
질문을 하거나 결과를 공유하거나 다른 사람을 도와주세요.