Koldim2001/YOLO-Patch-Based-Inference

Python library for YOLO small object detection and instance segmentation

What it solves

此函式庫解決了在高解析度影像中偵測小物件的挑戰——在標準神經網路中,這些小物件常會遺失或被降採樣。它簡化了「基於補丁的推論」(類似 SAHI)的流程,將影像切割成更小且有重疊的裁切區塊,以確保小物件以較高的相對尺度被捕捉。

How it works

函式庫實作了兩步驟的管線,用於目標偵測與實例分割:

  1. CroppingMakeCropsDetectThem 類別依使用者自訂的尺寸與重疊比例將影像分割成多個補丁,然後在每個補丁上執行支援的 YOLO 模型。
  2. ConsolidationCombineDetections 類別合併所有重疊裁切的結果,並使用 IoU 或 IoS 指標進行非極大值抑制(NMS),移除重複偵測。

它支援廣泛的 Ultralytics 模型,包括 YOLOv8、v9、v10、v11、v12、FastSAM 與 RTDETR。

Who it’s for

適用於需要在大型影像中偵測小物件的電腦視覺開發者與研究者,使用基於 YOLO 的模型並希望以簡化的方式處理切片與結果合併。

Highlights

  • Broad Model Support:相容幾乎所有最新的 Ultralytics 偵測與分割模型。
  • Flexible Tiling:可自訂裁切尺寸與重疊比例,以最佳化偵測精度。
  • Advanced NMS:提供「智慧排序器」與類別無關的 NMS 選項,提升重複抑制效果。
  • Custom Visualization:內建 visualize_results 函式,可對邊界框與分割遮罩進行時尚且可自訂的渲染。
  • Performance Options:支援批次推論以加速處理,並提供 memory_optimize 開關,在記憶體使用與分割精度之間取得平衡。