You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

CaniSight YOLO11s Visual Signs V4 Pilot

This repository contains the selected YOLO11s V4 pilot checkpoint for detecting two observable canine visual signs:

  • class 0: dropped_jaw
  • class 1: visible_hypersalivation

It is part of the CaniSight observational screening prototype. The model does not diagnose rabies and must not label a dog as rabies-positive or rabies-negative. These signs are nonspecific and can occur in other conditions.

Status and intended use

This is a small, exploratory pilot intended for research, demonstration, reproducibility, and human-reviewed error analysis. It is not clinically validated and must not be used for autonomous veterinary or public-health decisions, or to delay medical care after a bite, scratch, or saliva exposure.

Dataset and split

The V4 export contains 65 images:

Split Images
Train 46
Validation 11
Test 8

V4 corrected a known source-scene split issue from V3 by keeping all frames from Watch out for rabies infected dog symptoms... in the test split. One other source contributes different dogs/scenes to train and validation. The dataset remains too small for strong generalization claims.

Training configuration

  • Base weights: Ultralytics yolo11s.pt (open weights)
  • Image size: 768
  • Maximum epochs: 120 with early stopping, patience 25
  • Batch size: 8
  • Optimizer: AdamW
  • Seed: 42
  • Frozen layers: 10
  • Device: Kaggle Tesla T4
  • Classes: 2

The complete settings are recorded in args.yaml; the reproducible notebook is canisight_yolo11_v4_scene_corrected.ipynb.

Exploratory metrics

Split Precision Recall mAP50 mAP50-95
Validation (11 images) 0.551 0.458 0.356 0.139
Test (8 images) 0.680 0.417 0.426 0.145

The test split was consulted when comparing YOLO11n and YOLO11s candidates. Therefore these test metrics are exploratory selection results, not an independent final evaluation. The low recall means genuine signs may be missed.

CaniSight inference settings

The application samples video at 3 FPS and uses class-specific confidence thresholds:

  • dropped_jaw: 0.06
  • visible_hypersalivation: 0.25
  • minimum positive-frame ratio before risk fusion: 0.20

These thresholds are prototype operating points chosen for the small pilot set, not clinically calibrated cutoffs.

from ultralytics import YOLO

model = YOLO("best.pt")
results = model.predict("dog_frame.jpg", conf=0.05, imgsz=768)

Apply the class-specific thresholds after prediction. Video detections should be aggregated over time and reviewed by a person.

Files

  • best.pt: selected V4 YOLO11s checkpoint
  • args.yaml: Ultralytics training configuration
  • results.csv and results.png: epoch-level training history
  • canisight_v4_yolo11s_summary.json: recorded metrics and limitations
  • evaluation/: validation and exploratory test plots/predictions
  • canisight_yolo11_v4_scene_corrected.ipynb: Kaggle training notebook

Known limitations

  • Only 65 images and few independent positive scenes
  • Very small validation and test splits
  • Test used for candidate model selection
  • Low recall, especially for subtle or isolated signs
  • dropped_jaw is nonspecific and may resemble panting, barking, or yawning
  • Hypersalivation may be confused with wet fur, water, or mouth highlights
  • Performance may shift with breed, fur color, lighting, occlusion, camera angle, motion blur, distance, and compression
  • No clinical diagnosis ground truth and no clinical validation

License and attribution

The checkpoint is derived from Ultralytics YOLO11 weights. This repository uses AGPL-3.0; downstream users are responsible for complying with its requirements and verifying the licenses and permissions of data used in their own work.

Project code: https://github.com/shzirley/Canisight

Downloads last month
15
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support