Real-time object detection optimized for mobile and edge by Ultralytics
Ultralytics YOLOv8 is a machine learning model that predicts bounding boxes and classes of objects in an image.
This model is an implementation of YOLOv8-Detection found
here
.
This repository provides scripts to run YOLOv8-Detection on Qualcomm® devices.
More details on model performance across various devices, can be found
here
.
The package contains a simple end-to-end demo that downloads pre-trained
weights and runs this model on a sample input.
python -m qai_hub_models.models.yolov8_det.demo
The above demo runs a reference implementation of pre-processing, model
inference, and post processing.
NOTE
: If you want running in a Jupyter Notebook or Google Colab like
environment, please add the following to your cell (instead of the above).
%run -m qai_hub_models.models.yolov8_det.demo
Run model on a cloud-hosted device
In addition to the demo, you can also run the model on a cloud-hosted Qualcomm®
device. This script does the following:
Performance check on-device on a cloud-hosted device
Downloads compiled assets that can be deployed on-device for Android.
Accuracy check between PyTorch and on-device outputs.
python -m qai_hub_models.models.yolov8_det.export
Profile Job summary of YOLOv8-Detection
--------------------------------------------------
Device: SA8255 (Proxy) (13)
Estimated Inference Time: 5.21 ms
Estimated Peak Memory Range: 4.75-16.64 MB
Compute Units: NPU (285) | Total (285)
How does this work?
This
export script
leverages
Qualcomm® AI Hub
to optimize, validate, and deploy this model
on-device. Lets go through each step below in detail:
Step 1:
Compile model for on-device deployment
To compile a PyTorch model for on-device deployment, we first trace the model
in memory using the
jit.trace
and then call the
submit_compile_job
API.
import torch
import qai_hub as hub
from qai_hub_models.models.yolov8_det import Model
# Load the model
torch_model = Model.from_pretrained()
# Device
device = hub.Device("Samsung Galaxy S23")
# Trace model
input_shape = torch_model.get_input_spec()
sample_inputs = torch_model.sample_inputs()
pt_model = torch.jit.trace(torch_model, [torch.tensor(data[0]) for _, data in sample_inputs.items()])
# Compile model on a specific device
compile_job = hub.submit_compile_job(
model=pt_model,
device=device,
input_specs=torch_model.get_input_spec(),
)
# Get target model to run on-device
target_model = compile_job.get_target_model()
Step 2:
Performance profiling on cloud-hosted device
After compiling models from step 1. Models can be profiled model on-device using the
target_model
. Note that this scripts runs the model on a device automatically
provisioned in the cloud. Once the job is submitted, you can navigate to a
provided job URL to view a variety of on-device performance metrics.
YOLOv8-Detection huggingface.co is an AI model on huggingface.co that provides YOLOv8-Detection's model effect (), which can be used instantly with this qualcomm YOLOv8-Detection model. huggingface.co supports a free trial of the YOLOv8-Detection model, and also provides paid use of the YOLOv8-Detection. Support call YOLOv8-Detection model through api, including Node.js, Python, http.
YOLOv8-Detection huggingface.co is an online trial and call api platform, which integrates YOLOv8-Detection's modeling effects, including api services, and provides a free online trial of YOLOv8-Detection, you can try YOLOv8-Detection online for free by clicking the link below.
qualcomm YOLOv8-Detection online free url in huggingface.co:
YOLOv8-Detection is an open source model from GitHub that offers a free installation service, and any user can find YOLOv8-Detection on GitHub to install. At the same time, huggingface.co provides the effect of YOLOv8-Detection install, users can directly use YOLOv8-Detection installed effect in huggingface.co for debugging and trial. It also supports api for free installation.