Benchmark Script for FastSAM and ORB by Franco MuccoBenchmark Script for FastSAM and ORB by Franco Mucco

Benchmark Script for FastSAM and ORB

Franco Mucco

Franco Mucco

Script di benchmark per:
FastSAM-x e FastSAM-s a risoluzioni: 512, 576, 640, 704, 768, 832, 896, 960, 1024 su 8 immagini statiche.
ORB (OpenCV) con sweep di combinazioni parametriche, misurando latenza, #keypoint e keypoints/ms.
ORB per Pose estimation e Orientamento stima orientamento e angolo di immagini ruotate di 45 gradi (front/back) + angolo usando due reference:
• Coop_fronte_texture_fronte.png (front)
• Coop_retro_texture_retro.png (back)
Output: CSV con i tempi e risultati.

Indice

Requisiti

Python 3.9 – 3.11 (consigliato 3.10 per massima compatibilità).
PyTorch installato correttamente per la tua piattaforma (CPU/CUDA/macOS Metal).
Connessione internet se i pesi non sono presenti localmente (lo script li scarica in automatico).
Lo script seleziona automaticamente il device: CUDA → MPS (macOS) → CPU.

Piattaforme supportate

Windows 10/11 (x64)
macOS (Intel e Apple Silicon M1/M2/M3)
Linux (x64)
NVIDIA Jetson (Nano/Orin/Xavier) — vedi sezione dedicata

Setup ambiente

Linux / macOS

python3 -m venv venv
source venv/bin/activate

Windows (PowerShell)

python -m venv venv
venv\Scripts\Activate.ps1

Installazione PyTorch

Scegli la build corretta (usa anche la guida su https://pytorch.org/get-started/locally/).
CPU only:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
CUDA 12.4 (GPU NVIDIA):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
macOS (Apple Silicon / Metal):
pip install torch torchvision torchaudio
Su Jetson NON usare questi comandi generici: vedi la sezione Uso su Jetson.

Installazione dipendenze

pip install -r requirements.txt
Se su Linux/Jetson hai conflitti con OpenCV di sistema, usa:
pip install opencv-python-headless

Struttura progetto

project/
├── benchmark_fastsam_orb.py # Script principale (no-args)
├── requirements.txt
├── README.md
├── FastSAM-x.pt # (opzionale: lo script può scaricarli)
├── FastSAM-s.pt # (opzionale: lo script può scaricarli)
└── images/
├── image1.jpg
├── image2.jpg
└── image3.jpg

Uso

Esegui senza argomenti:
python benchmark_fastsam_orb.py
Device scelto automaticamente (CUDA/MPS/CPU).
Se i pesi non sono presenti, lo script prova a scaricarli (vedi sotto).

Uso su Jetson (Nano/Orin/Xavier)

I dispositivi Jetson hanno RAM/CPU limitate; ecco il percorso consigliato.

1) Ambiente & dipendenze

python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip wheel
pip install opencv-python-headless numpy pandas pillow tqdm

2) PyTorch per Jetson

Installa la ruota compatibile con la tua versione di JetPack/CUDA (gli URL cambiano nel tempo: verifica sul forum NVIDIA “PyTorch for Jetson”).
Esempio — JetPack 4.6.1, Python 3.8:
wget https://nvidia.box.com/shared/static/3nm3gxxwy8f8q4nwd6kgtl4p3yr3zd8i.whl -O torch-1.10.0-cp38-cp38-linux_aarch64.whl
pip install torch-1.10.0-cp38-cp38-linux_aarch64.whl
pip install torchvision==0.11.1
Esempio — JetPack 5.1, Python 3.8:
wget https://nvidia.box.com/shared/static/bz5lxprp6k25lhk1pnc6u9h7v4rfv74i.whl -O torch-2.1.0-cp38-cp38-linux_aarch64.whl
pip install torch-2.1.0-cp38-cp38-linux_aarch64.whl
pip install torchvision==0.16.0

Ottimizzazioni & consigli

Chiudi applicazioni in background durante i test.
Mantieni la macchina “in idle” per risultati più stabili.
Aumenta repeats (es. 10) se vuoi statistiche più affidabili (su Jetson, attenzione ai tempi).
Per confronti, usa sempre le stesse 3 immagini e stesse risoluzioni.

Troubleshooting

ImportError: fastsampip install "git+https://github.com/CASIA-IVA-Lab/FastSAM.git"
CUDA non rilevata → verifica driver (nvidia-smi su PC, tegrastats su Jetson); in fallback lo script userà CPU/MPS
OpenCV in conflitto (Linux/Jetson) → pip install opencv-python-headless
Pesi non scaricati → scarica manualmente FastSAM-x.pt / FastSAM-s.pt e mettili accanto allo script
RAM insufficiente → usa solo FastSAM-s.pt, riduci risoluzioni e repeats
Like this project

Posted Sep 17, 2025

Created benchmark script for FastSAM and ORB with CSV output.

Likes

0

Views

2

Timeline

Mar 4, 2025 - Ongoing