// in-browser model · text detection

PP-OCRv6 tiny text detection

pp-ocrv6-tiny-det@2ba1506c fp32 vetted · active onnxruntime-web ≥ 1.17.0 wasmwebgpu

Downloads 1.7 MB once from models.skillsafe.ai, then stays cached for every SkillSafe app that uses it. Inference runs on your device; nothing you enter is uploaded to load it. Licensed Apache-2.0 · source Hugging Face PaddlePaddle/PP-OCRv6_tiny_det_onnx at 2ba1506c0380.

See it working

Public apps that declare this model. Open one and the download you see is this file.

  • OCR Lab — PP-OCRv6 text recognition in your browser

    Read text out of a screenshot with Baidu's PP-OCRv6 detection and recognition models running entirely in your browser through onnxruntime-web — the image is never uploaded. The 6 MB ONNX package is fetched once from SkillSafe's shared model registry and cached in your browser after the first load, so there is nothing to bring and nothing to configure. Per-line confidence, bounding boxes, a diagnostics panel and text/CSV/JSON/Markdown export are all free and local, and work signed out; an optional metered pass repairs reading order, corrects flagged character confusions and extracts structured fields, cross-checked against what the recogniser actually produced so it cannot quietly invent an invoice total. You can also supply your own fine-tuned ONNX package if you have one. Models are PP-OCRv6 from PaddlePaddle/PaddleOCR (Apache-2.0), served unmodified with their NOTICE and licence; the browser-side pipeline follows the approach popularised by the PaddleOCR community write-ups, with the detection channel count, BGR normalisation and already-softmaxed recognition head re-derived from the published packages.

    59 visits
    Open app

Files

Every file is served at an immutable URL; the canonical form is the SHA-256 itself. Tokenizer and config JSON are not here by design — they ship in your app bundle.

PathFormatSizeSHA-256
inference.onnx onnx 1.7 MB 193bab7a04fc…fb19f8

Signature

Graph inputs and outputs read from the ONNX bytes at vetting — these are the tensor names your session.run() call feeds and reads. Symbolic dimensions are shown by name.

Inputs

  • x float32 [DynamicDimension.0, 3, DynamicDimension.1, DynamicDimension.2]

Outputs

  • fetch_name_0 float32 [ConvTranspose_459_o0__d0, 1, ConvTranspose_459_o0__d2, ConvTranspose_459_o0__d3]

How to use it

Three steps: declare the model on your release, load it through the SDK (verified and cached), hand the bytes to the runtime. The examples below are generated from this entry, so ids, paths and tensor names are exact.

Add to the body of POST /v1/apps/{slug}/releases (or a release session). An unknown or withdrawn model is refused with a 400 naming it; the app page then shows "downloads 1.7 MB · runs on your device" and /models.txt carries the attribution.

{
  "models": [
    {
      "id": "pp-ocrv6-tiny-det",
      "revision": "2ba1506c"
    }
  ]
}

Licence & attribution

Apache-2.0 · licence text · notice

PP-OCRv6 tiny detection model from PaddleOCR (PaddlePaddle), ONNX export published on Hugging Face. Licensed under the Apache License 2.0.

Apps that declare this model get this text in their generated /models.txt, so a licence that requires a notice always carries one.