Koldim2001/YOLO-Patch-Based-Inference
Python library for YOLO small object detection and instance segmentation
What it solves
이 라이브러리는 고해상도 이미지에서 작은 객체가 표준 신경망을 통과할 때 사라지거나 다운샘플링되는 문제를 해결합니다. 이미지를 더 작고 겹치는 크롭으로 나누어 작은 객체를 상대적으로 더 큰 스케일에서 포착하도록 하는 "패치 기반 추론"(SAHI와 유사)을 간소화합니다.
How it works
라이브러리는 객체 검출 및 인스턴스 세그멘테이션을 위한 두 단계 파이프라인을 구현합니다:
- Cropping:
MakeCropsDetectThem클래스는 사용자가 정의한 크기와 겹침 비율에 따라 이미지를 패치로 나눈 뒤, 각 패치에 지원되는 YOLO 모델을 실행합니다. - 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토글을 지원합니다.