CoolFace
Modelpublic

anan19990108/yolov10n-tflite

sourceHugging Faceagpl-3.0updated 1mo agoView on Hugging Face
1likes41downloads
Model Card

YOLOv10n TFLite quantized variants

Three 640×640 TensorFlow Lite exports for edge object-detection experiments. The files use different boundary dtypes even though all contain quantized tensors.

Only yolov10n_full_integer_quant.tflite uses INT8 input and output tensors. The other two artifacts expose FP32 input and output boundaries. Applications must select preprocessing and post-processing according to the tensor metadata of the chosen artifact.

Authorship and Scope

Andrew Chiao prepared the TensorFlow Lite conversion and quantization variants, deployment packaging, tensor-level verification, and Qualcomm deployment guidance. The original checkpoint provenance has not yet been recovered, so the base-model metadata is intentionally omitted rather than inferred.

Files verified on 2026-08-18

FileInputOutputQuantized tensorsBytesSHA-256
yolov10n_full_integer_quant.tfliteINT8 [1,640,640,3], scale 1/255, zero point -128INT8 [1,300,6], scale 0.310396, zero point -1285043,092,6158dcf014175eb327af880661f295d3c97faf31f4cc52d246e26e4854273388875
yolov10n_integer_quant.tfliteFP32 [1,640,640,3]FP32 [1,300,6]5033,092,559eaa6447d1516db8cc45b37a7deb904790342886654ce7a7bb32f84ff80477597
yolov10n_int8.tfliteFP32 [1,640,640,3]FP32 [1,300,6]773,125,8476319e564bac432d8fc95d82fee06c4cb37879ce4830eb5bb1c292a65e644f105

Each output contains up to 300 rows with 6 values. Consumers must verify the exact coordinate, score, and class-id convention used by the originating export pipeline.

Python Usage: Full-Integer Model

python
import numpy as np
from PIL import Image
import tensorflow as tf

interpreter = tf.lite.Interpreter("yolov10n_full_integer_quant.tflite")
interpreter.allocate_tensors()
inp = interpreter.get_input_details()[0]
out = interpreter.get_output_details()[0]

rgb = Image.open("image.jpg").convert("RGB").resize((640, 640))
real = np.asarray(rgb, dtype=np.float32)[None] / 255.0
in_scale, in_zero = inp["quantization"]
input_int8 = np.clip(np.rint(real / in_scale + in_zero), -128, 127).astype(np.int8)

interpreter.set_tensor(inp["index"], input_int8)
interpreter.invoke()
raw = interpreter.get_tensor(out["index"])
out_scale, out_zero = out["quantization"]
detections = (raw.astype(np.float32) - out_zero) * out_scale
print(detections.shape)  # (1, 300, 6)

The expected row layout is typically [x1, y1, x2, y2, score, class_id], but the missing original export manifest means this convention must be confirmed with a known test image before production use.

Android + Qualcomm QNN HTP

java
QnnDelegate.Options qnn = new QnnDelegate.Options();
qnn.setSkelLibraryDir(context.getApplicationInfo().nativeLibraryDir);
qnn.setCacheDir(context.getCacheDir().getAbsolutePath());
qnn.setModelToken("yolov10n_full_integer_quant");
qnn.setBackendType(QnnDelegate.Options.BackendType.HTP_BACKEND);
qnn.setHtpPerformanceMode(
    QnnDelegate.Options.HtpPerformanceMode.HTP_PERFORMANCE_BURST);
qnn.setHtpPrecision(QnnDelegate.Options.HtpPrecision.HTP_PRECISION_QUANTIZED);

QnnDelegate delegate = new QnnDelegate(qnn);
Interpreter.Options options = new Interpreter.Options();
options.setUseNNAPI(false);
options.setUseXNNPACK(false);
options.addDelegate(delegate);
Interpreter interpreter = new Interpreter(modelBuffer, options);

Use matching QNN delegate/runtime versions from an authorized Qualcomm SDK, check HTP_RUNTIME_QUANTIZED, and verify there is no unintended CPU fallback.

Provenance note

The previous model card tagged Ultralytics/YOLO11 as the base model while the repository and files are named YOLOv10n. The TFLite binaries do not contain enough embedded text metadata to resolve that discrepancy. The base-model tag is therefore intentionally omitted until the original checkpoint and export command are recovered.

Verification status

Tensor shapes, dtypes, quantization parameters, sizes, and hashes were checked with TensorFlow Lite. No accuracy or device-latency benchmark is included, so the card does not claim validation on a specific Qualcomm target.

License

The official THU-MIG YOLOv10 repository uses AGPL-3.0. Confirm the original checkpoint provenance before relying on this license statement for these specific binaries.