Skip to main content

EdgeYOLO Runner

A Python package for running EdgeYOLO models using ONNX Runtime, TensorFlow Lite, and CoreML on images and videos. This package supports both FP32 and FP16 precision, and can run on both CPU and GPU acceleration.

Installation

Basic Installation (ONNX support only)

pip install edgeyolo_runner

With TensorFlow Lite Support

pip install edgeyolo_runner[tflite]
# or for all optional dependencies
pip install edgeyolo_runner[all]

Usage

Using the DetectorFactory (Recommended)

The DetectorFactory automatically detects the model type based on the file extension:

from edgeyolo_runner import DetectorFactory
import cv2

# Auto-detect model type (.onnx or .tflite)
detector = DetectorFactory.create_detector(
    model_path="path/to/your/model.onnx",  # or .tflite
    detector_type="auto",  # Auto-detect based on file extension
    conf_thres=0.25,
    nms_thres=0.5,
    use_acceleration=True  # CUDA for ONNX, GPU for TFLite
)

# Read and process image
image = cv2.imread("image.jpg")
detections = detector(image)

# Process detections
if detections is not None:
    for det in detections:
        boxes = det[:4]
        score = det[4]
        class_id = int(det[5])
        # Draw boxes, etc.

ONNX Detector

from edgeyolo_runner import ONNXDetector
import cv2

# Initialize ONNX detector
detector = ONNXDetector(
    model_path="path/to/your/model.onnx",
    conf_thres=0.25,
    nms_thres=0.5,
    fp16=False,  # Set to True for FP16 inference
    use_cuda=True  # Set to False for CPU inference
)

# Read and process image
image = cv2.imread("image.jpg")
detections = detector(image)

TensorFlow Lite Detector

from edgeyolo_runner import TFLiteDetector
import cv2

# Initialize TFLite detector
detector = TFLiteDetector(
    model_path="path/to/your/model.tflite",
    conf_thres=0.25,
    nms_thres=0.5,
    fp16=False,  # Set to True for FP16 inference
    use_gpu=True  # Set to False for CPU inference
)

# Read and process image
image = cv2.imread("image.jpg")
detections = detector(image)

Video Detection

from edgeyolo_runner import DetectorFactory
import cv2

# Works with both ONNX and TFLite models
detector = DetectorFactory.create_detector("path/to/your/model.onnx")

cap = cv2.VideoCapture("video.mp4")
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
        
    detections = detector(frame)
    # Process detections and draw on frame
    
    print(f"Inference time: {detector.dt*1000:.2f}ms")
    
cap.release()

Command Line Usage

Use the provided example script to compare detectors:

# Auto-detect model type and run inference
python examples/detector_comparison.py --model model.onnx --image image.jpg

# Specifically use TFLite detector
python examples/detector_comparison.py --model model.tflite --image image.jpg --detector tflite

# Use hardware acceleration
python examples/detector_comparison.py --model model.onnx --image image.jpg --use-acceleration

# Save output
python examples/detector_comparison.py --model model.onnx --image image.jpg --output result.jpg

Features

  • Dual Runtime Support: Both ONNX Runtime and TensorFlow Lite
  • Auto Model Detection: Automatic model type detection based on file extension
  • Hardware Acceleration: CUDA support for ONNX, GPU delegation for TFLite
  • Precision Options: FP16 and FP32 precision support
  • Easy-to-use API: Unified interface for both model types
  • Batch Processing: Support for processing multiple images
  • Performance Monitoring: Built-in inference time measurement

Model Support

  • ONNX Models: .onnx files using ONNX Runtime
  • TensorFlow Lite Models: .tflite files using TensorFlow Lite

Requirements

Core Dependencies

  • Python >= 3.7
  • ONNX Runtime >= 1.15.0
  • OpenCV >= 4.5.0
  • NumPy >= 1.19.0
  • Pillow >= 8.0.0

Optional Dependencies

  • TensorFlow >= 2.8.0: For TensorFlow Lite support
  • ONNX Runtime GPU: For CUDA acceleration

License

MIT License

Metadata

Release files for edgeyolo-runner 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for edgeyolo-runner 0.2.0
File Size Uploaded
edgeyolo_runner-0.2.0.tar.gz 9.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for edgeyolo-runner 0.2.0
File Interpreter ABI Platform
edgeyolo_runner-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 22.3 kB

Release files / edgeyolo_runner-0.2.0.tar.gz

Download URL edgeyolo_runner-0.2.0.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
cefb064883d1501d99ed212850ddd56da7098d7af44ce12973fd097553f87ef3
BLAKE2b-256 checksum
How to use checksums
a7604e65723fa17007d6edbd6ddb0d6d37dec3059c12aa6dd6e35fc19c772ad6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.19

Release files / edgeyolo_runner-0.2.0-py3-none-any.whl

Download URL edgeyolo_runner-0.2.0-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9dca3746a0504137506bdfcd53d784a96f4020b226fc9e0a7ad8fc8754ab756e
BLAKE2b-256 checksum
How to use checksums
4d70a35292aad94ea329f4ac818a1f26607a80ba679425319403fe195cb3ee40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.19

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page