콘텐츠로 건너뛰기

Ultralytics 문서: SAHI를 사용하여 YOLO26으로 슬라이스 추론하기

Colab에서 슬라이스 추론을 위한 Open SAHI 열기

Ultralytics의 SAHI(Slicing Aided Hyper Inference)와 함께 YOLO26을 사용하는 방법에 대한 문서에 오신 것을 환영합니다. 이 포괄적인 가이드는 SAHI를 YOLO26과 함께 구현하는 데 필요한 모든 필수 지식을 제공하는 것을 목표로 합니다. 저희는 SAHI가 무엇인지, 슬라이스 추론이 대규모 애플리케이션에 왜 중요한지, 그리고 향상된 객체 detect 성능을 위해 이러한 기능들을 YOLO26과 어떻게 통합하는지에 대해 심층적으로 다룰 것입니다.

SAHI 타일링 추론(작은 물체용)

SAHI 소개

SAHI(Slicing Aided Hyper Inference)는 대규모 및 고해상도 이미지를 위한 객체 감지 알고리즘을 최적화하도록 설계된 혁신적인 라이브러리입니다. 핵심 기능은 이미지를 관리 가능한 슬라이스로 분할하고, 각 슬라이스에서 객체 감지를 실행한 다음, 결과를 다시 결합하는 데 있습니다. SAHI는 YOLO 시리즈를 포함한 다양한 객체 감지 모델과 호환되므로 유연성을 제공하는 동시에 컴퓨팅 리소스의 최적화된 사용을 보장합니다.



참고: Ultralytics YOLO26을 사용한 SAHI(Slicing Aided Hyper Inference) 추론

SAHI의 주요 기능

  • 원활한 통합: SAHI는 YOLO 모델과 쉽게 통합되므로 많은 코드 수정 없이 슬라이싱 및 감지를 시작할 수 있습니다.
  • 리소스 효율성: SAHI는 큰 이미지를 더 작은 부분으로 분할하여 메모리 사용량을 최적화하므로 제한된 리소스를 가진 하드웨어에서 고품질 감지를 실행할 수 있습니다.
  • 높은 정확도: SAHI는 스티칭 프로세스 중에 겹치는 감지 상자를 병합하기 위해 스마트 알고리즘을 사용하여 감지 정확도를 유지합니다.

Sliced Inference란 무엇입니까?

Sliced Inference는 큰 이미지 또는 고해상도 이미지를 더 작은 세그먼트(슬라이스)로 세분화하고, 이러한 슬라이스에서 객체 감지를 수행한 다음, 슬라이스를 다시 컴파일하여 원래 이미지에서 객체 위치를 재구성하는 방식을 의미합니다. 이 기술은 컴퓨팅 리소스가 제한적이거나 메모리 문제를 일으킬 수 있는 매우 고해상도 이미지로 작업하는 시나리오에서 매우 중요합니다.

Sliced Inference의 장점

  • 계산 부담 감소: 더 작은 이미지 슬라이스는 처리 속도가 더 빠르고 메모리 소비가 적어 저가형 하드웨어에서 더 원활하게 작동할 수 있습니다.

  • 보존된 감지 품질: 각 슬라이스는 독립적으로 처리되므로 관심 객체를 캡처할 수 있을 만큼 슬라이스가 충분히 크다면 객체 감지 품질이 저하되지 않습니다.

  • 향상된 확장성: 이 기술을 사용하면 다양한 크기와 해상도의 이미지에서 객체 감지를 보다 쉽게 확장할 수 있으므로 위성 이미지에서 의료 진단에 이르기까지 광범위한 애플리케이션에 적합합니다.

SAHI 없이 YOLO26SAHI와 함께하는 YOLO26
SAHI 없이 YOLO26SAHI와 함께하는 YOLO26

설치 및 준비

설치

시작하려면 SAHI 및 Ultralytics의 최신 버전을 설치하세요.

pip install -U ultralytics sahi

모듈 가져오기 및 리소스 다운로드

필요한 모듈을 임포트하고 YOLO26 모델 및 일부 테스트 이미지를 다운로드하는 방법은 다음과 같습니다:

from sahi.utils.file import download_from_url
from sahi.utils.ultralytics import download_yolo26n_model

# Download YOLO26 model
model_path = "models/yolo26n.pt"
download_yolo26n_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",
)

YOLO26을 사용한 표준 추론

모델 인스턴스화

객체 detect를 위한 YOLO26 모델을 다음과 같이 인스턴스화할 수 있습니다:

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'
)

표준 예측 수행

이미지 경로 또는 numpy 이미지를 사용하여 표준 추론을 수행합니다.

from sahi.predict import get_prediction
from sahi.utils.cv import read_image

# 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)

결과 시각화

예측된 경계 상자와 마스크를 내보내고 시각화합니다.

from IPython.display import Image

result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")

YOLO26을 사용한 슬라이스 추론

슬라이스 크기 및 겹침 비율을 지정하여 슬라이스된 추론을 수행합니다.

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/yolo26n.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,
)

이제 표준 및 슬라이스 추론 모두에 SAHI와 함께 YOLO26을 사용할 준비가 되었습니다.

인용 및 감사의 말씀

연구 또는 개발 작업에 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 저장소를 방문하십시오.

FAQ

객체 detect에서 슬라이스 추론을 위해 YOLO26을 SAHI와 어떻게 통합할 수 있나요?

슬라이스 추론을 위해 Ultralytics YOLO26을 SAHI(Slicing Aided Hyper Inference)와 통합하면 고해상도 이미지를 관리 가능한 슬라이스로 분할하여 객체 detect 작업을 최적화합니다. 이 접근 방식은 메모리 사용량을 개선하고 높은 detect 정확도를 보장합니다. 시작하려면 ultralytics 및 sahi 라이브러리를 설치해야 합니다:

pip install -U ultralytics sahi

그런 다음, YOLO26 모델과 테스트 이미지를 다운로드합니다:

from sahi.utils.file import download_from_url
from sahi.utils.ultralytics import download_yolo26n_model

# Download YOLO26 model
model_path = "models/yolo26n.pt"
download_yolo26n_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",
)

자세한 내용은 슬라이스된 추론 가이드를 참조하십시오.

대규모 이미지에서 객체 detect를 위해 SAHI와 YOLO26을 함께 사용해야 하는 이유는 무엇인가요?

대규모 이미지에서 객체 detect를 위해 Ultralytics YOLO26과 SAHI를 사용하면 다음과 같은 몇 가지 이점을 제공합니다:

  • 계산 부담 감소: 더 작은 슬라이스는 처리 속도가 더 빠르고 메모리 소비가 적어 제한된 리소스를 가진 하드웨어에서 고품질 감지를 실행할 수 있습니다.
  • 유지 관리되는 감지 정확도: SAHI는 지능형 알고리즘을 사용하여 겹치는 상자를 병합하여 감지 품질을 유지합니다.
  • 향상된 확장성: 다양한 이미지 크기 및 해상도에서 객체 감지 작업을 확장함으로써 SAHI는 위성 이미지 분석 및 의료 진단과 같은 다양한 애플리케이션에 적합합니다.

자세한 내용은 설명서에서 슬라이스된 추론의 이점에 대해 알아보십시오.

SAHI와 함께 YOLO26을 사용할 때 예측 결과를 시각화할 수 있나요?

네, SAHI와 함께 YOLO26을 사용할 때 예측 결과를 시각화할 수 있습니다. 결과를 내보내고 시각화하는 방법은 다음과 같습니다:

from IPython.display import Image

result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")

이 명령어는 시각화된 예측을 지정된 디렉토리에 저장하며, 이미지를 로드하여 노트북이나 애플리케이션에서 볼 수 있습니다. 자세한 내용은 표준 추론 섹션을 확인하십시오.

SAHI는 YOLO26 객체 detect 개선을 위해 어떤 기능을 제공하나요?

SAHI(Slicing Aided Hyper Inference)는 객체 detect를 위한 Ultralytics YOLO26을 보완하는 몇 가지 기능을 제공합니다:

  • 원활한 통합: SAHI는 최소한의 코드 조정만으로 YOLO 모델과 쉽게 통합됩니다.
  • 리소스 효율성: 큰 이미지를 더 작은 조각으로 분할하여 메모리 사용량과 속도를 최적화합니다.
  • 높은 정확도: 스티칭 과정에서 겹치는 감지 상자를 효과적으로 병합함으로써 SAHI는 높은 감지 정확도를 유지합니다.

더 자세한 내용은 SAHI의 주요 기능에 대해 읽어보세요.

YOLO26과 SAHI를 사용하여 대규모 추론 프로젝트를 어떻게 처리하나요?

YOLO26과 SAHI를 사용하여 대규모 추론 프로젝트를 처리하려면 다음 모범 사례를 따르십시오:

  1. 필수 라이브러리 설치: ultralytics와 sahi의 최신 버전을 설치했는지 확인합니다.
  2. 슬라이스 추론 구성: 특정 프로젝트에 맞는 최적의 슬라이스 크기와 겹침 비율을 결정합니다.
  3. 배치 예측 실행: SAHI의 기능을 사용하여 이미지 디렉터리에서 배치 예측을 수행하여 효율성을 향상시킵니다.

배치 예측 예시:

from sahi.predict import predict

predict(
    model_type="ultralytics",
    model_path="path/to/yolo26n.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,
)

자세한 단계는 배치 예측 섹션을 참조하세요.



5; 2 년 전에 생성됨 ✏️ 7 전에 업데이트됨
glenn-jocherRizwanMunawarpderrengerCoderUniUltralyticsAssistantMatthewNoyce

댓글