Koldim2001/YOLO-Patch-Based-Inference

Python library for YOLO small object detection and instance segmentation

What it solves

このライブラリは、高解像度画像において小さな物体が標準的なニューラルネットワークを通すときに失われたりダウンサンプリングされたりするという課題に対処します。画像を小さく重なり合うクロップに分割し、相対的に大きなスケールで小物体を捉える「パッチベース推論」(SAHI に類似)を簡素化します。

How it works

ライブラリは物体検出とインスタンスセグメンテーションのための 2 段階パイプラインを実装しています:

  1. Cropping: MakeCropsDetectThem クラスは、ユーザーが指定したサイズとオーバーラップ率に基づいて画像をパッチに分割し、各パッチに対応するサポートされた YOLO モデルを実行します。
  2. Consolidation: CombineDetections クラスは、すべての重なり合うクロップからの結果を統合し、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: バッチ推論による高速処理や、RAM 使用量とセグメンテーション精度のバランスを取る memory_optimize トグルをサポートします。