Find objects in images and video
in real time
fotonet is a free, open-source object detection library. Its detection model, fotonete, is small enough to run on everyday GPUs and edge devices while keeping pace with live video — and it needs no hand-tuned post-processing to produce clean boxes.
What fotonet sees
Every box below is a real prediction recorded from the models running on our test PC — nothing is hand-drawn.
Live Browser Inference
Run fotonete directly in your browser with ONNX Runtime Web. Inference stays on your device, with WebGPU acceleration and automatic WASM fallback.
Benchmarks
Eight metrics across fotonete and the detectors we compare it against, ranked by the measured result.
Get started in Python
From installation to detections in a few lines — then the faster paths for production use.
from fotonet import Fotonet import cv2 # Load the deployment weights (1.7M parameters) model = Fotonet("fotonet_last.pt") # Run detection on an image frame = cv2.imread("image.jpg") results = model.predict_bgr(frame, imgsz=640, conf=0.25) for det in results[0].boxes: print(det.cls, det.conf, det.xyxy)
# High-throughput path: pinned memory + FP16, one reusable buffer from fotonet import Fotonet, FastPredictor model = Fotonet("fotonet_last.pt") fast = FastPredictor(model, device="cuda", half=True) # dets is an (N, 6) array: x1, y1, x2, y2, score, class dets = fast.predict(frame)
from fotonet import Fotonet model = Fotonet("fotonet_last.pt") # Standard deployment formats model.export(format="onnx", path="fotonete.onnx", imgsz=640) model.export(format="engine", half=True) # NVIDIA TensorRT FP16 model.export(format="coreml") # Apple Neural Engine
# Train from scratch on your own dataset fotonet train model=fotonete data=my_dataset.yaml epochs=300 batch=64 imgsz=640 # Resume an interrupted run from the latest snapshot fotonet train model=fotonete data=my_dataset.yaml resume=fotonet_last.pt
Go deeper with the docs
Installation details, the architecture behind fotonete, export guides for TensorRT and ONNX, and how to train on your own data.
Full comparison table
Every row measured on the same PC, in the same session, with the same concurrent-training load.
| Model | Architecture | Params | GFLOPs | E2E latency | B1 GPU pass | B8 GPU pass | Peak GPU memory | Cold start | COCO mAP |
|---|
• fotonete is still mid-training — the row shows its latest checkpoint, not a finished model. Peer rows are the fully trained weights each project releases.
• Peer models were run through their own official packages and source on this machine; no numbers are quoted from vendor pages.
• mAP is evaluated on COCO val2017 (the measured sample set, conf 0.01, max 100 detections per image) with identical settings for every model.