obss/sahi
Framework agnostic sliced/tiled inference + interactive ui + error analysis plots
什麼是 SAHI?
SAHI(Slicing‑Aided Hyper Inference)是一個輕量級的 Python 庫,可輕鬆在極大圖像或影片上執行 物件檢測 與 實例分割 模型。核心概念是 切片推論:輸入圖像會自動切割成重疊的瓦片,每個瓦片送入標準檢測器,再將結果合併回來。這解決了模型僅看到低解析度整體圖像時,容易遺漏微小物件的常見問題。
主要功能(README 中描述)
| 功能 | 說明 |
|---|---|
| 切片推論 | 自動將大圖像切分成瓦片,對每個瓦片運行任何支援的檢測器,並合併檢測結果。 |
| 框架無關 | 支援 Ultralytics YOLO(v5, v8, YOLO‑X, YOLO‑E 等)、MMDetection、Detectron2、HuggingFace 🤗 Transformers、TorchVision、Roboflow / RF‑DETR 與 GroundingDINO。 |
| CLI 工具 | sahi predict、predict‑fiftyone、coco slice、coco evaluate、coco analyse、coco yolo 等,支援快速命令列使用與資料集處理。 |
| FiftyOne 整合 | 在 FiftyOne 應用中可視化預測結果與錯誤分析。 |
| COCO 工具 | 切分 COCO 資料集、格式轉換、評估 AP/AR、產生錯誤分析圖表。 |
| 影片支援 | 相同的切片邏輯適用於影片畫格,支援即時或批次推論。 |
| 預訓練模型支援 | 無需額外程式碼——只需將 SAHI 指向支援庫中的任意模型檢查點即可。 |
| 豐富的文件與筆記本 | 每個主要檢測器都有 Colab 筆記本,完整的文件網站,以及一篇描述此方法的論文(ICIP 2022)。 |
安裝(快速)
pip install sahi # 核心套件
# 選用 – 安裝你想要使用的檢測器,例如:
# pip install ultralytics>=8.3 # YOLO 系列
# pip install torch torchvision # 用於 TorchVision 模型
# pip install transformers timm # HuggingFace 模型
# pip install yolov5==7.0.14 # YOLOv5
# pip install mim && mim install mmdet==3.3.0 # MMDetection
README 也提供 PyTorch、CUDA 與各檢測框架的詳細版本匹配說明。
快速入門範例(來自文件)
from sahi import AutoDetectionModel, get_sliced_prediction
# 選擇任意支援的模型 – 這裡使用 ultralytics 的 YOLOv8
model = AutoDetectionModel.from_pretrained(
model_type="yolov8",
model_path="yolov8n.pt",
confidence_threshold=0.3,
device="cuda:0",
)
result = get_sliced_prediction(
"large_image.jpg",
detection_model=model,
slice_height=512,
slice_width=512,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)
# 可視化或匯出合併後的檢測結果
result.save("output.jpg")
相同的流程也適用於影片(對每一幀呼叫 get_sliced_prediction)以及其它支援的後端。
何時使用 SAHI?
- 衛星或航空影像:單張圖像可達數萬像素寬,小物件(汽車、船隻、動物)容易被遺漏。
- 醫學影像(如全切片病理):需在不降採樣的情況下處理高解析度掃描。
- 監控影片:希望在多幀中高效檢測微小物件。
- 基準測試 / 研究 – 庫包含切分 COCO 資料集、評估 AP/AR、產生錯誤分析圖表的工具。
- 快速原型開發 – 無需重寫現有檢測器程式碼;只需用 SAHI 的 CLI 或 Python API 包裝即可。
資源
- 論文:Slicing Aided Hyper Inference(ICIP 2022)– DOI 10.1109/ICIP46576.2022.9897990
- 文件:https://github.com/obss/sahi/tree/main/docs
- Colab 筆記本:每個主要檢測器都有(README 中的連結)。
- HuggingFace Space 演示 – https://huggingface.co/spaces/fcakyon/sahi-yolox
- 社群:600+ 引用,競賽獲獎者,錯誤分析討論區。
總結:SAHI 是一個真實、持續維護的開源套件,透過自動切片、預測與合併結果,讓任何主流物件檢測模型都能應用於超大圖像或影片串流。它專注於 AI/ML 領域(電腦視覺),為開發者提供 CLI 方便性與 Python API。
相關
- 專案
- 專案
- 專案
- 專案
- 專案