Koldim2001/YOLO-Patch-Based-Inference

Python library for YOLO small object detection and instance segmentation

What it solves

이 라이브러리는 고해상도 이미지에서 작은 객체가 표준 신경망을 통과할 때 사라지거나 다운샘플링되는 문제를 해결합니다. 이미지를 더 작고 겹치는 크롭으로 나누어 작은 객체를 상대적으로 더 큰 스케일에서 포착하도록 하는 "패치 기반 추론"(SAHI와 유사)을 간소화합니다.

How it works

라이브러리는 객체 검출 및 인스턴스 세그멘테이션을 위한 두 단계 파이프라인을 구현합니다:

  1. Cropping: MakeCropsDetectThem 클래스는 사용자가 정의한 크기와 겹침 비율에 따라 이미지를 패치로 나눈 뒤, 각 패치에 지원되는 YOLO 모델을 실행합니다.
  2. Consolidation: CombineDetections 클래스는 모든 겹치는 크롭의 결과를 병합하고 IoU 또는 IoS 메트릭을 사용한 비최대 억제(NMS)를 적용해 중복 검출을 제거합니다.

YOLOv8, v9, v10, v11, v12, FastSAM, RTDETR 등 Ultralytics 모델을 폭넓게 지원합니다.

Who it’s for

대형 이미지에서 작은 객체를 검출해야 하는 YOLO 기반 모델을 사용하는 컴퓨터 비전 개발자 및 연구자를 위한 도구이며, 타일링 및 결과 병합을 간편하게 처리할 수 있습니다.

Highlights

  • Broad Model Support: 검출과 세그멘테이션 모두에 거의 모든 최신 Ultralytics 모델과 호환됩니다.
  • Flexible Tiling: 검출 정확도를 최적화하기 위해 크롭 크기와 겹침 비율을 자유롭게 조정할 수 있습니다.
  • Advanced NMS: "지능형 정렬기"와 클래스 무관 NMS 옵션을 제공해 중복 억제를 보다 효과적으로 처리합니다.
  • Custom Visualization: 바운딩 박스와 세그멘테이션 마스크를 세련되고 커스터마이징 가능한 방식으로 렌더링하는 visualize_results 함수를 포함합니다.
  • Performance Options: 배치 추론을 통한 빠른 처리와 RAM 사용량과 세그멘테이션 정확도 사이의 균형을 맞추는 memory_optimize 토글을 지원합니다.