Ultralytics Docs: 슬라이싱 추론에 SAHI와 함께 YOLO11 사용
SAHI (슬라이싱 지원 하이퍼 추론)와 YOLO11 사용 방법에 대한 Ultralytics 문서에 오신 것을 환영합니다. 이 포괄적인 가이드는 YOLO11 와 함께 SAHI를 구현하는 데 필요한 모든 필수 지식을 제공하는 것을 목표로 합니다. SAHI가 무엇인지, 슬라이스 추론이 대규모 애플리케이션에 중요한 이유와 이러한 기능을 YOLO11 와 통합하여 개체 감지 성능을 향상시키는 방법에 대해 자세히 살펴봅니다.
SAHI 소개
SAHI(슬라이싱 지원 하이퍼 추론)는 대규모 고해상도 이미지의 객체 감지 알고리즘을 최적화하도록 설계된 혁신적인 라이브러리입니다. 핵심 기능은 이미지를 관리 가능한 슬라이스로 분할하고 각 슬라이스에서 객체 감지를 실행한 다음 결과를 다시 연결하는 것입니다. SAHI는 YOLO 시리즈를 비롯한 다양한 물체 감지 모델과 호환되므로 컴퓨팅 리소스를 최적화하여 사용할 수 있는 유연성을 제공합니다.
Watch: SAHI(슬라이싱 지원 하이퍼 추론)를 사용한 추론(슬라이싱 지원 하이퍼 추론) Ultralytics YOLO11
SAHI의 주요 기능
- 원활한 통합: SAHI는 YOLO 모델과 손쉽게 통합되므로 많은 코드 수정 없이도 슬라이싱 및 탐지를 시작할 수 있습니다.
- 리소스 효율성: SAHI는 큰 이미지를 작은 부분으로 나누어 메모리 사용량을 최적화하여 리소스가 제한된 하드웨어에서 고품질 탐지를 실행할 수 있도록 합니다.
- 높은 정확도: SAHI는 스마트 알고리즘을 사용하여 스티칭 프로세스 중에 겹치는 감지 상자를 병합함으로써 감지 정확도를 유지합니다.
슬라이스 추론이란 무엇인가요?
슬라이스 추론은 큰 이미지나 고해상도 이미지를 작은 세그먼트(슬라이스)로 세분화하고, 이러한 슬라이스에서 객체 감지를 수행한 다음, 슬라이스를 다시 컴파일하여 원본 이미지에서 객체 위치를 재구성하는 방법을 말합니다. 이 기술은 컴퓨팅 리소스가 제한되어 있거나 메모리 문제가 발생할 수 있는 초고해상도 이미지로 작업할 때 매우 유용합니다.
슬라이스 추론의 이점
-
컴퓨팅 부담 감소: 이미지 슬라이스가 작을수록 처리 속도가 빨라지고 메모리 사용량이 적어져 저사양 하드웨어에서 더 원활하게 작동합니다.
-
보존된 감지 품질: 각 슬라이스는 독립적으로 처리되므로, 슬라이스가 관심 있는 물체를 캡처할 수 있을 만큼 충분히 큰 경우 물체 감지 품질이 저하되지 않습니다.
-
향상된 확장성: 이 기술을 사용하면 이미지의 크기와 해상도에 따라 물체 감지 기능을 보다 쉽게 확장할 수 있으므로 위성 이미지부터 의료 진단에 이르기까지 다양한 애플리케이션에 이상적입니다.
YOLO11 SAHI 없음 | YOLO11 SAHI와 함께 |
---|---|
![]() |
![]() |
설치 및 준비
설치
시작하려면 최신 버전의 SAHI 및 Ultralytics 을 설치하세요:
모듈 가져오기 및 리소스 다운로드
필요한 모듈을 가져오고 YOLO11 모델과 몇 가지 테스트 이미지를 다운로드하는 방법은 다음과 같습니다:
from sahi.utils.file import download_from_url
from sahi.utils.ultralytics import download_yolo11n_model
# Download YOLO11 model
model_path = "models/yolo11n.pt"
download_yolo11n_model(model_path)
# Download test images
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
"demo_data/small-vehicles1.jpeg",
)
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
"demo_data/terrain2.png",
)
표준 추론을 사용한 YOLO11
모델 인스턴스화
다음과 같이 개체 감지를 위해 YOLO11 모델을 인스턴스화할 수 있습니다:
from sahi import AutoDetectionModel
detection_model = AutoDetectionModel.from_pretrained(
model_type="ultralytics",
model_path=model_path,
confidence_threshold=0.3,
device="cpu", # or 'cuda:0'
)
표준 예측 수행
이미지 경로 또는 덩어리 이미지를 사용하여 표준 추론을 수행합니다.
from sahi.predict import get_prediction
# With an image path
result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)
# With a numpy image
result_with_np_image = get_prediction(read_image("demo_data/small-vehicles1.jpeg"), detection_model)
결과 시각화
예측된 바운딩 박스와 마스크를 내보내고 시각화합니다:
슬라이스 추론을 사용한 YOLO11
슬라이스 크기와 겹침 비율을 지정하여 슬라이스 추론을 수행합니다:
from sahi.predict import get_sliced_prediction
result = get_sliced_prediction(
"demo_data/small-vehicles1.jpeg",
detection_model,
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)
예측 결과 처리
SAHI는 PredictionResult
객체를 다양한 어노테이션 형식으로 변환할 수 있습니다:
# Access the object prediction list
object_prediction_list = result.object_prediction_list
# Convert to COCO annotation, COCO prediction, imantics, and fiftyone formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]
result.to_imantics_annotations()[:3]
result.to_fiftyone_detections()[:3]
배치 예측
이미지 디렉토리에 대한 일괄 예측의 경우:
from sahi.predict import predict
predict(
model_type="ultralytics",
model_path="path/to/yolo11n.pt",
model_device="cpu", # or 'cuda:0'
model_confidence_threshold=0.4,
source="path/to/dir",
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)
이제 끝났습니다! 이제 표준 추론과 슬라이스 추론 모두에 YOLO11 을 사용할 수 있게 되었습니다.
인용 및 감사
연구 또는 개발 작업에 SAHI를 사용하는 경우, 원본 SAHI 논문을 인용하고 저자를 인정해 주세요:
@article{akyon2022sahi,
title={Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection},
author={Akyon, Fatih Cagatay and Altinuc, Sinan Onur and Temizel, Alptekin},
journal={2022 IEEE International Conference on Image Processing (ICIP)},
doi={10.1109/ICIP46576.2022.9897990},
pages={966-970},
year={2022}
}
컴퓨터 비전 커뮤니티를 위해 이 귀중한 리소스를 만들고 유지 관리해 주신 SAHI 연구 그룹에 감사의 말씀을 전합니다. SAHI와 제작자에 대한 자세한 내용은 SAHI GitHub 리포지토리를 참조하세요.
자주 묻는 질문
객체 감지에서 슬라이스 추론을 위해 YOLO11 을 SAHI와 통합하려면 어떻게 해야 하나요?
Ultralytics YOLO11 을 슬라이스 추론을 위한 SAHI(슬라이싱 지원 하이퍼 추론)와 통합하면 고해상도 이미지를 관리 가능한 슬라이스로 분할하여 객체 감지 작업을 최적화할 수 있습니다. 이 접근 방식은 메모리 사용량을 개선하고 높은 감지 정확도를 보장합니다. 시작하려면 ultralytics 및 sahi 라이브러리를 설치해야 합니다:
그런 다음 YOLO11 모델을 다운로드하고 이미지를 테스트합니다:
from sahi.utils.file import download_from_url
from sahi.utils.ultralytics import download_yolo11n_model
# Download YOLO11 model
model_path = "models/yolo11n.pt"
download_yolo11n_model(model_path)
# Download test images
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
"demo_data/small-vehicles1.jpeg",
)
자세한 지침은 슬라이스 추론 가이드를 참조하세요.
큰 이미지에서 물체 감지를 위해 YOLO11 와 함께 SAHI를 사용해야 하는 이유는 무엇인가요?
큰 이미지에서 물체 감지를 위해 Ultralytics YOLO11 과 함께 SAHI를 사용하면 몇 가지 이점이 있습니다:
- 컴퓨팅 부담 감소: 슬라이스가 작을수록 처리 속도가 빠르고 메모리 사용량이 적어 리소스가 제한된 하드웨어에서도 고품질 탐지를 실행할 수 있습니다.
- 탐지 정확도 유지: SAHI는 지능형 알고리즘을 사용하여 겹치는 상자를 병합하여 탐지 품질을 유지합니다.
- 향상된 확장성: 다양한 이미지 크기와 해상도에 걸쳐 물체 감지 작업을 확장할 수 있어 위성 이미지 분석 및 의료 진단과 같은 다양한 애플리케이션에 이상적입니다.
문서에서 슬라이스 추론의 이점에 대해 자세히 알아보세요.
SAHI에서 YOLO11 을 사용할 때 예측 결과를 시각화할 수 있나요?
예, SAHI에서 YOLO11 을 사용하면 예측 결과를 시각화할 수 있습니다. 결과를 내보내고 시각화하는 방법은 다음과 같습니다:
from IPython.display import Image
result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")
이 명령은 시각화된 예측을 지정된 디렉터리에 저장한 다음 이미지를 로드해 노트북이나 애플리케이션에서 볼 수 있습니다. 자세한 가이드는 표준 추론 섹션을 참조하세요.
SAHI는 YOLO11 객체 감지를 개선하기 위해 어떤 기능을 제공하나요?
SAHI(슬라이싱 지원 하이퍼 추론)는 객체 감지를 위해 Ultralytics YOLO11 을 보완하는 몇 가지 기능을 제공합니다:
- 원활한 통합: SAHI는 YOLO 모델과 쉽게 통합되므로 최소한의 코드 조정만 필요합니다.
- 리소스 효율성: 큰 이미지를 작은 조각으로 분할하여 메모리 사용량과 속도를 최적화합니다.
- 높은 정확도: 스티칭 과정에서 겹치는 감지 상자를 효과적으로 병합함으로써 SAHI는 높은 감지 정확도를 유지합니다.
더 자세히 알아보려면 SAHI의 주요 기능에 대해 읽어보세요.
YOLO11 및 SAHI를 사용하여 대규모 추론 프로젝트를 처리하려면 어떻게 해야 하나요?
YOLO11 및 SAHI를 사용하여 대규모 추론 프로젝트를 처리하려면 다음 모범 사례를 따르세요:
- 필수 라이브러리를 설치합니다: ultralytics 및 sahi의 최신 버전이 설치되어 있는지 확인합니다.
- 슬라이스 추론을 구성합니다: 특정 프로젝트에 맞는 최적의 슬라이스 크기와 겹침 비율을 결정합니다.
- 일괄 예측 실행: SAHI의 기능을 사용하여 이미지 디렉토리에 대한 일괄 예측을 수행하면 효율성이 향상됩니다.
배치 예측의 예입니다:
from sahi.predict import predict
predict(
model_type="ultralytics",
model_path="path/to/yolo11n.pt",
model_device="cpu", # or 'cuda:0'
model_confidence_threshold=0.4,
source="path/to/dir",
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)
자세한 단계는 배치 예측 섹션을 참조하세요.