콘텐츠로 건너뛰기

Ultralytics 문서: Sliced Inference를 위해 YOLO11과 SAHI 함께 사용

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

YOLO11을 SAHI(Slicing Aided Hyper Inference)와 함께 사용하는 방법에 대한 Ultralytics 문서에 오신 것을 환영합니다. 이 종합 가이드는 SAHI를 YOLO11과 함께 구현하는 데 필요한 모든 필수 지식을 제공하는 것을 목표로 합니다. SAHI가 무엇인지, 대규모 애플리케이션에 sliced inference가 중요한 이유, 향상된 객체 감지 성능을 위해 이러한 기능을 YOLO11과 통합하는 방법에 대해 자세히 살펴보겠습니다.

SAHI 슬라이스 추론 개요

SAHI 소개

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



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

SAHI의 주요 기능

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

Sliced Inference란 무엇입니까?

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

Sliced Inference의 장점

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

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

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

SAHI 없는 YOLO11 SAHI가 있는 YOLO11
SAHI 없는 YOLO11 SAHI가 있는 YOLO11

설치 및 준비

설치

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

pip install -U 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",
)
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'
)

표준 예측 수행

이미지 경로 또는 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")

YOLO11을 사용한 Sliced Inference

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

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

이것으로 끝입니다! 이제 표준 및 슬라이스된 추론 모두에 SAHI와 함께 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 저장소를 방문하십시오.

FAQ

객체 감지에서 sliced inference를 위해 YOLO11을 SAHI와 어떻게 통합할 수 있습니까?

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

pip install -U 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과 SAHI를 함께 사용할 때 예측 결과를 시각화할 수 있습니다. 결과를 내보내고 시각화하는 방법은 다음과 같습니다.

from IPython.display import Image

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

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

SAHI는 YOLO11 객체 감지 개선을 위해 어떤 기능을 제공합니까?

SAHI(Slicing Aided Hyper Inference)는 객체 감지를 위해 Ultralytics YOLO11을 보완하는 여러 가지 기능을 제공합니다.

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

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

YOLO11과 SAHI를 사용하여 대규모 추론 프로젝트를 어떻게 처리합니까?

YOLO11과 SAHI를 사용하여 대규모 추론 프로젝트를 처리하려면 다음 모범 사례를 따르세요.

  1. 필수 라이브러리 설치: ultralytics와 sahi의 최신 버전을 설치했는지 확인합니다.
  2. 슬라이스 추론 구성: 특정 프로젝트에 맞는 최적의 슬라이스 크기와 겹침 비율을 결정합니다.
  3. 배치 예측 실행: 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,
)

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



📅 1년 전에 생성됨 ✏️ 23일 전에 업데이트됨

댓글