Skip to content

FiftyOne Visualization

FiftyOne provides an interactive UI for exploring detection results, comparing predictions, and debugging model performance.

Supported version: pip install fiftyone>=0.14.2,<0.15.0

Explore a COCO Dataset

from sahi.utils.fiftyone import launch_fiftyone_app

# Launch the FiftyOne app with your COCO dataset
session = launch_fiftyone_app(coco_image_dir, coco_json_path)

# When done, close the session
session.close()

Visualize SAHI Predictions

Run sliced inference and convert results to FiftyOne format:

from sahi import AutoDetectionModel
from sahi.predict import get_sliced_prediction

detection_model = AutoDetectionModel.from_pretrained(
    model_type="ultralytics",
    model_path="yolo26n.pt",
    confidence_threshold=0.25,
)

result = get_sliced_prediction(
    "image.jpg",
    detection_model,
    slice_height=512,
    slice_width=512,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)

# Convert to FiftyOne detection format
fiftyone_detections = result.to_fiftyone_detections()

Compare Multiple Detection Results

Use the CLI to visualize a dataset alongside multiple prediction results, ordered by misdetections:

sahi coco fiftyone \
  --image_dir dir/to/images \
  --dataset_json_path dataset.json \
  cocoresult1.json cocoresult2.json

Set the IOU threshold for FP/TP classification:

sahi coco fiftyone --iou_threshold 0.5 \
  --image_dir dir/to/images \
  --dataset_json_path dataset.json \
  cocoresult1.json

Predict and Explore in One Step

The predict-fiftyone CLI command runs sliced inference and opens results in FiftyOne directly:

sahi predict-fiftyone \
  --image_dir images/ \
  --dataset_json_path dataset.json \
  --model_path yolo26n.pt \
  --model_type ultralytics \
  --slice_height 512 \
  --slice_width 512