Add verified PP-DocLayoutV3 FP32 candidate
Browse filesAdditive non-default candidate selected by the bounded FP32 precision experiment. The default medium profile and legacy Layout-L rollback remain unchanged.
- README.md +7 -2
- SHA256SUMS +42 -32
- docs/pp-doclayout-v3.md +26 -0
- model-sets/medium-v3-candidate.json +12 -0
- models-jaxjs/manifest.json +0 -0
- models-jaxjs/pp-doclayout-v3-jaxjs/constants/0000-eager_tmp_2_deepcopy_547.bool.bin +3 -0
- models-jaxjs/pp-doclayout-v3-jaxjs/constants/index.json +20 -0
- models-jaxjs/pp-doclayout-v3-jaxjs/contract.json +0 -0
- models-jaxjs/pp-doclayout-v3-jaxjs/metadata.json +0 -0
- models-jaxjs/pp-doclayout-v3-jaxjs/sidecars/README.md +107 -0
- models-jaxjs/pp-doclayout-v3-jaxjs/sidecars/inference.yml +100 -0
- models-jaxjs/pp-doclayout-v3-jaxjs/weights.safetensors +3 -0
- reports/pp-doclayout-v3/precision-experiment.json +157 -0
- reports/pp-doclayout-v3/promotion-decision.json +78 -0
README.md
CHANGED
|
@@ -26,7 +26,7 @@ This repository packages converted artifacts only. Each model's `contract.json`
|
|
| 26 |
| OCR detection | `ppocr-v6-medium-det-jaxjs` | FP32 | 61,974,931 |
|
| 27 |
| OCR recognition | `ppocr-v6-medium-rec-jaxjs` | FP32 | 76,474,177 |
|
| 28 |
|
| 29 |
-
The selection is defined by [`model-sets/medium.json`](model-sets/medium.json). The filtered runtime manifest is [`models-jaxjs/manifest.json`](models-jaxjs/manifest.json).
|
| 30 |
|
| 31 |
## Repository Layout
|
| 32 |
|
|
@@ -56,7 +56,7 @@ Every artifact directory includes:
|
|
| 56 |
Preserve the repository paths when resolving files. A browser loader can use a pinned Hub commit as its artifact base URL:
|
| 57 |
|
| 58 |
```ts
|
| 59 |
-
const repo = "
|
| 60 |
const revision = "PINNED_COMMIT_SHA";
|
| 61 |
const artifactBase = `https://huggingface.co/${repo}/resolve/${revision}/`;
|
| 62 |
|
|
@@ -81,3 +81,8 @@ Use a commit SHA rather than `main` in production so contracts, metadata, sideca
|
|
| 81 |
|
| 82 |
The selected upstream PaddlePaddle model repositories declare Apache-2.0 licensing. See each `contract.json` for its exact upstream repository and revision. The repository-level license text is provided in [`LICENSE`](LICENSE).
|
| 83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
| OCR detection | `ppocr-v6-medium-det-jaxjs` | FP32 | 61,974,931 |
|
| 27 |
| OCR recognition | `ppocr-v6-medium-rec-jaxjs` | FP32 | 76,474,177 |
|
| 28 |
|
| 29 |
+
The selection is defined by [`model-sets/medium.json`](model-sets/medium.json). The non-default [`model-sets/medium-v3-candidate.json`](model-sets/medium-v3-candidate.json) adds the gated FP32 PP-DocLayoutV3 candidate without changing the default. The filtered runtime manifest is [`models-jaxjs/manifest.json`](models-jaxjs/manifest.json).
|
| 30 |
|
| 31 |
## Repository Layout
|
| 32 |
|
|
|
|
| 56 |
Preserve the repository paths when resolving files. A browser loader can use a pinned Hub commit as its artifact base URL:
|
| 57 |
|
| 58 |
```ts
|
| 59 |
+
const repo = "hf-dev-01/pj-ocr-jaxjs-medium";
|
| 60 |
const revision = "PINNED_COMMIT_SHA";
|
| 61 |
const artifactBase = `https://huggingface.co/${repo}/resolve/${revision}/`;
|
| 62 |
|
|
|
|
| 81 |
|
| 82 |
The selected upstream PaddlePaddle model repositories declare Apache-2.0 licensing. See each `contract.json` for its exact upstream repository and revision. The repository-level license text is provided in [`LICENSE`](LICENSE).
|
| 83 |
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
## Candidate Layout
|
| 87 |
+
|
| 88 |
+
`pp-doclayout-v3-jaxjs` is an additive FP32 candidate with 25 explicit labels, polygons, and learned order. See [the candidate report](docs/pp-doclayout-v3.md). It is not selected by the default `medium` profile while the promotion decision remains on hold.
|
SHA256SUMS
CHANGED
|
@@ -1,32 +1,42 @@
|
|
| 1 |
-
f0319ebaffb3908afeb740eb79cebf9e3e2ae62b573731eb4fc5096bc890ace6 .
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
f0319ebaffb3908afeb740eb79cebf9e3e2ae62b573731eb4fc5096bc890ace6 .gitattributes
|
| 2 |
+
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
|
| 3 |
+
af6722cd71ddca7c1cbd0b0636b84254ccfd2dc65f63158855a0464a291e850f README.md
|
| 4 |
+
2f3f7b87a104517fdd49dc7ee65cbfe612ffa1af68567dd32e64fdb388e9390e docs/pp-doclayout-v3.md
|
| 5 |
+
e24621605c8280219f2a16c1b782521afe597ae11b0d7f74a70ac1ea174e7407 model-sets/medium-v3-candidate.json
|
| 6 |
+
bf029047f4363625e7589d0968534e9b0a86141a20f493f8bea5f5c82697cf08 model-sets/medium.json
|
| 7 |
+
50251c1fbba94a188cde03e88179a9b17d63e468d12ba37968923017d097f6e6 models-jaxjs/manifest.json
|
| 8 |
+
e6fc2c623b214eb283567c918be21e9cebf2b23dd95c2c26f2076610d3e5f093 models-jaxjs/pp-doclayout-l-fp16-jaxjs/constants/0000-eager_tmp_2_deepcopy_547.bool.bin
|
| 9 |
+
c93a864055f4bf604782e680d65b5dc2a6dd19c8a7666ea28593b967f05388fb models-jaxjs/pp-doclayout-l-fp16-jaxjs/constants/index.json
|
| 10 |
+
ae2dc317cab819de7e6ab912b7390a1c00b41c2f437dd6f7ab3dd5c8e8fefa2e models-jaxjs/pp-doclayout-l-fp16-jaxjs/contract.json
|
| 11 |
+
88d573f6bff717f138d6b735d52fc7663a7db81cc920e77b34575f10ad5b3e9b models-jaxjs/pp-doclayout-l-fp16-jaxjs/metadata.json
|
| 12 |
+
f2dae4643151c4b236c5173ef3d960e2b0f7a5471f1615a96ca9a6fe0ba5568a models-jaxjs/pp-doclayout-l-fp16-jaxjs/sidecars/config.json
|
| 13 |
+
fbdbb903efd3d82db5800f9ae3e2477d2d84525956ef410ffe8e64bbaad02fa5 models-jaxjs/pp-doclayout-l-fp16-jaxjs/sidecars/inference.yml
|
| 14 |
+
7e9b393176a11d358b9e5c5d3243b7cef96bb5ba2565b5a71bdd0b0e1c072178 models-jaxjs/pp-doclayout-l-fp16-jaxjs/weights.safetensors
|
| 15 |
+
dfdd60e211d277092c5eb020e65ae461dc65b2daefa236e22443b017e8306116 models-jaxjs/pp-doclayout-v3-jaxjs/constants/0000-eager_tmp_2_deepcopy_547.bool.bin
|
| 16 |
+
0782478ee59752b01fe74895d9097a96e6616cfef6eb66fd453c28e2fd8a7f29 models-jaxjs/pp-doclayout-v3-jaxjs/constants/index.json
|
| 17 |
+
243033a54f1aeb6db5aaa75e5c81767fe476726a65f839b3d076be0bd2c5edcb models-jaxjs/pp-doclayout-v3-jaxjs/contract.json
|
| 18 |
+
df6d110faaecdae18ba34408ccc129c23ea82b81dfde581ea83f97c7599ed03c models-jaxjs/pp-doclayout-v3-jaxjs/metadata.json
|
| 19 |
+
8483bc2af32658aae3d38ddec2b7186f94f925481b70ae9e9034daaf80e6b9e1 models-jaxjs/pp-doclayout-v3-jaxjs/sidecars/README.md
|
| 20 |
+
506fcfac13b3b546ae40d7886b44126420f392adb694e3f8bb6a6286a1f90fdc models-jaxjs/pp-doclayout-v3-jaxjs/sidecars/inference.yml
|
| 21 |
+
13492ac1f96d5340caa0f75e8c894a3b7d8e95d7c2e485fd5b671bee9a3df6f3 models-jaxjs/pp-doclayout-v3-jaxjs/weights.safetensors
|
| 22 |
+
4343743dfa26312018bb3d5208e7512c625102234a3a007b54c9fdc7d82f0848 models-jaxjs/pp-formulanet-plus-s-fp16-jaxjs/contract.json
|
| 23 |
+
b7752be778e8343f90400d82cacc209ddcae15cfb581486c3eac831449043ff8 models-jaxjs/pp-formulanet-plus-s-fp16-jaxjs/metadata.json
|
| 24 |
+
ddf1f951ceeb10c2b9de3ae255b62de59299b1028f87878177e86c9604fe3610 models-jaxjs/pp-formulanet-plus-s-fp16-jaxjs/sidecars/config.json
|
| 25 |
+
96062655d94c21d39274328dbc82c1a487e66addb8425f5a7fd5b7dfb2421ec3 models-jaxjs/pp-formulanet-plus-s-fp16-jaxjs/sidecars/inference.yml
|
| 26 |
+
38be6ae5f469d4c622f616f47c3b2ebe893ec4e42b1aa81195de58e6245b0780 models-jaxjs/pp-formulanet-plus-s-fp16-jaxjs/weights.safetensors
|
| 27 |
+
df161327d9334d32b8c39fdffcead9062e747ba033fcbc358bee5727d5a897dd models-jaxjs/ppocr-v6-medium-det-jaxjs/contract.json
|
| 28 |
+
ce153054c98e3dced306c11b0d72fb6a34e30d98bb5b331c2533ffde0ca1aa74 models-jaxjs/ppocr-v6-medium-det-jaxjs/metadata.json
|
| 29 |
+
7298d5ead546584af2504d03355f881ac7a7bc0eb1e282d3e159277c1d0af871 models-jaxjs/ppocr-v6-medium-det-jaxjs/sidecars/inference.yml
|
| 30 |
+
01fde77b9bf46640ea52c97892b8669618b3109ac760d0be85005526da585a8a models-jaxjs/ppocr-v6-medium-det-jaxjs/weights.safetensors
|
| 31 |
+
5fbf9217cfab61fc908a4b7219debe7eea2d2089235306bcf3c54bceebc40ae7 models-jaxjs/ppocr-v6-medium-rec-jaxjs/contract.json
|
| 32 |
+
0e8ab9d8fe73b0d5271b4846944e82d3df2974b2db0230b6b5ffc87d25611cb9 models-jaxjs/ppocr-v6-medium-rec-jaxjs/metadata.json
|
| 33 |
+
991b700facf5b50a7de193468207d5f4255b538dde0d312ae3b7c7a9b6873129 models-jaxjs/ppocr-v6-medium-rec-jaxjs/sidecars/inference.yml
|
| 34 |
+
b654abe03b4b2a87c9e36974a06c101fa8b8bfc9b508f5de0e7eb8588ca3c5e5 models-jaxjs/ppocr-v6-medium-rec-jaxjs/weights.safetensors
|
| 35 |
+
caf7124e7cf8faa8e290f942ad7cbb04de49020028573ec735eb5bfccdff2032 models-jaxjs/slanet-plus-table-jaxjs/contract.json
|
| 36 |
+
38dc30f6e7b9d24ff83e35560429b54fa606b58146f1f140e1cfcefc80b9013d models-jaxjs/slanet-plus-table-jaxjs/metadata.json
|
| 37 |
+
de63f29e0096cbfc7dcf772ae7dabc47c3e5348f29e949d9b4dda8875e90ea31 models-jaxjs/slanet-plus-table-jaxjs/sidecars/config.json
|
| 38 |
+
8a6372d3269a6f112fe13a2da7952a84da6e112c10a3146cbb43de5bd01d19fa models-jaxjs/slanet-plus-table-jaxjs/sidecars/inference.yml
|
| 39 |
+
68d344a84b726e043f390122240ff2b2ced2949b2a80ce9b61ae955054d190ef models-jaxjs/slanet-plus-table-jaxjs/sidecars/table_structure_dict_ch.txt
|
| 40 |
+
f2fdc8b6f8377b6b448e6c18771790a4b4dd9090c62f8bad8dcd0c2952234033 models-jaxjs/slanet-plus-table-jaxjs/weights.safetensors
|
| 41 |
+
d535c0790fdc717707966aec6476f8763fa0d0ee7a913aa541674c8fc3d48fff reports/pp-doclayout-v3/precision-experiment.json
|
| 42 |
+
0bfa79053da041d13732bf433464ed57b3a50681233c4f2b491dcc89160385a4 reports/pp-doclayout-v3/promotion-decision.json
|
docs/pp-doclayout-v3.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# PP-DocLayoutV3 JAXJS candidate
|
| 2 |
+
|
| 3 |
+
This additive candidate contains the FP32 artifact selected by OCR JS task `R90AA10-022`.
|
| 4 |
+
FP16 storage is not published: JAXJS/WASM widens it during upload, increases runtime cost, and failed the bounded warm-run RSS gate.
|
| 5 |
+
|
| 6 |
+
- Upstream: `PaddlePaddle/PP-DocLayoutV3`
|
| 7 |
+
- Upstream revision: `7b48a7566925fa464281f930c58eee04fe2c862a`
|
| 8 |
+
- Weight SHA-256: `13492ac1f96d5340caa0f75e8c894a3b7d8e95d7c2e485fd5b671bee9a3df6f3`
|
| 9 |
+
- Weight dtype: `float32`
|
| 10 |
+
- License: Apache-2.0
|
| 11 |
+
- Precision report: [`reports/pp-doclayout-v3/precision-experiment.json`](../reports/pp-doclayout-v3/precision-experiment.json)
|
| 12 |
+
- Promotion decision: [`reports/pp-doclayout-v3/promotion-decision.json`](../reports/pp-doclayout-v3/promotion-decision.json)
|
| 13 |
+
|
| 14 |
+
The model is published as a non-default candidate. The canonical `medium` profile remains unchanged until every promotion gate passes.
|
| 15 |
+
|
| 16 |
+
## Reproduce
|
| 17 |
+
|
| 18 |
+
From the OCR JS workspace with the pinned Paddle source available:
|
| 19 |
+
|
| 20 |
+
```bash
|
| 21 |
+
pnpm jaxjs:convert-pp-doclayout-v3
|
| 22 |
+
pnpm --filter @ocr-js/pipeline-runner verify:pp-doclayout-v3
|
| 23 |
+
node scripts/stage-v3-release.mjs ../pj-ocr-jaxjs-medium
|
| 24 |
+
```
|
| 25 |
+
|
| 26 |
+
No WebGPU execution is required for conversion or the frozen WASM oracle checks.
|
model-sets/medium-v3-candidate.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schemaVersion": 1,
|
| 3 |
+
"name": "medium-v3-candidate",
|
| 4 |
+
"description": "Non-default medium OCR candidate using the R90AA10-022-approved FP32 PP-DocLayoutV3 artifact.",
|
| 5 |
+
"models": {
|
| 6 |
+
"layout.det": "pp-doclayout-v3-jaxjs",
|
| 7 |
+
"formula.rec": "pp-formulanet-plus-s-fp16-jaxjs",
|
| 8 |
+
"table.rec": "slanet-plus-table-jaxjs",
|
| 9 |
+
"ocr.det": "ppocr-v6-medium-det-jaxjs",
|
| 10 |
+
"ocr.rec": "ppocr-v6-medium-rec-jaxjs"
|
| 11 |
+
}
|
| 12 |
+
}
|
models-jaxjs/manifest.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
models-jaxjs/pp-doclayout-v3-jaxjs/constants/0000-eager_tmp_2_deepcopy_547.bool.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dfdd60e211d277092c5eb020e65ae461dc65b2daefa236e22443b017e8306116
|
| 3 |
+
size 13125
|
models-jaxjs/pp-doclayout-v3-jaxjs/constants/index.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schemaVersion": 1,
|
| 3 |
+
"format": "raw-bool-shards",
|
| 4 |
+
"encoding": "uint8-bool",
|
| 5 |
+
"tensors": [
|
| 6 |
+
{
|
| 7 |
+
"name": "eager_tmp_2_deepcopy_547",
|
| 8 |
+
"shape": [
|
| 9 |
+
1,
|
| 10 |
+
13125,
|
| 11 |
+
1
|
| 12 |
+
],
|
| 13 |
+
"dtype": "bool",
|
| 14 |
+
"encoding": "uint8-bool",
|
| 15 |
+
"path": "constants/0000-eager_tmp_2_deepcopy_547.bool.bin",
|
| 16 |
+
"sha256": "dfdd60e211d277092c5eb020e65ae461dc65b2daefa236e22443b017e8306116",
|
| 17 |
+
"sizeBytes": 13125
|
| 18 |
+
}
|
| 19 |
+
]
|
| 20 |
+
}
|
models-jaxjs/pp-doclayout-v3-jaxjs/contract.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
models-jaxjs/pp-doclayout-v3-jaxjs/metadata.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
models-jaxjs/pp-doclayout-v3-jaxjs/sidecars/README.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
pipeline_tag: image-segmentation
|
| 4 |
+
tags:
|
| 5 |
+
- PaddleOCR
|
| 6 |
+
- PaddlePaddle
|
| 7 |
+
- image-segmentation
|
| 8 |
+
- ocr
|
| 9 |
+
- layout
|
| 10 |
+
- layout_detection
|
| 11 |
+
language:
|
| 12 |
+
- en
|
| 13 |
+
- zh
|
| 14 |
+
- multilingual
|
| 15 |
+
library_name: PaddleOCR
|
| 16 |
+
---
|
| 17 |
+
|
| 18 |
+
<div align="center">
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
<h1 align="center">
|
| 22 |
+
|
| 23 |
+
Unified Layout Module for PaddleOCR-VL 1.5/1.6 & GLM-OCR.
|
| 24 |
+
|
| 25 |
+
</h1>
|
| 26 |
+
|
| 27 |
+
[](https://github.com/PaddlePaddle/PaddleOCR)
|
| 28 |
+
[](https://huggingface.co/PaddlePaddle/PP-DocLayoutV3)
|
| 29 |
+
[](https://modelscope.cn/models/PaddlePaddle/PP-DocLayoutV3)
|
| 30 |
+
[](https://huggingface.co/spaces/PaddlePaddle/PaddleOCR-VL-1.5_Online_Demo)
|
| 31 |
+
[](https://modelscope.cn/studios/PaddlePaddle/PaddleOCR-VL-1.5_Online_Demo/summary)
|
| 32 |
+
[](https://discord.gg/JPmZXDsEEK)
|
| 33 |
+
[](https://x.com/PaddlePaddle)
|
| 34 |
+
[](./LICENSE)
|
| 35 |
+
|
| 36 |
+
**🔥 [Official Website](https://www.paddleocr.com)** |
|
| 37 |
+
**📝 [Technical Report](https://arxiv.org/abs/2606.23344)**
|
| 38 |
+
|
| 39 |
+
</div>
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
## Introduction
|
| 45 |
+
|
| 46 |
+
This is the PP-Doclayoutv3 model weights for the PaddlePaddle framework. Get safetensors weights at [PP-DocLayoutV3_safetensors](https://huggingface.co/PaddlePaddle/PP-DocLayoutV3_safetensors)
|
| 47 |
+
|
| 48 |
+
**PP-DocLayoutV3 is specifically engineered to handle non-planar document images. It can directly predict multi-point bounding boxes for layout elements—as opposed to standard two-point boxes—and determine logical reading orders for skewed and curved surfaces within a single forward pass, significantly reducing cascading errors.** This model is an essential component of PaddleOCR-VL-1.5, providing crucial layout analysis for the high-precision parsing of various real-world documents in PaddleOCR-VL.
|
| 49 |
+
|
| 50 |
+
This work has been accepted to ECCV 2026! 🎉
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
### **Model Architecture**
|
| 56 |
+
|
| 57 |
+
<div align="center">
|
| 58 |
+
<img src="https://raw.githubusercontent.com/cuicheng01/PaddleX_doc_images/refs/heads/main/images/paddleocr_vl_1_5/PP-DocLayoutV3.png" width="800"/>
|
| 59 |
+
</div>
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
## Visualization
|
| 63 |
+
|
| 64 |
+
|
| 65 |
+
### Light Variation
|
| 66 |
+
|
| 67 |
+
<div align="center">
|
| 68 |
+
<img src="https://raw.githubusercontent.com/cuicheng01/PaddleX_doc_images/refs/heads/main/images/paddleocr_vl_1_5/layout_lighting.jpg" width="800"/>
|
| 69 |
+
</div>
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
### Skewing
|
| 73 |
+
|
| 74 |
+
<div align="center">
|
| 75 |
+
<img src="https://raw.githubusercontent.com/cuicheng01/PaddleX_doc_images/refs/heads/main/images/paddleocr_vl_1_5/layout_skew.jpg" width="800"/>
|
| 76 |
+
</div>
|
| 77 |
+
|
| 78 |
+
|
| 79 |
+
### Screen-photo
|
| 80 |
+
|
| 81 |
+
<div align="center">
|
| 82 |
+
<img src="https://raw.githubusercontent.com/cuicheng01/PaddleX_doc_images/refs/heads/main/images/paddleocr_vl_1_5/layout_screen.jpg" width="800"/>
|
| 83 |
+
</div>
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
### Curving
|
| 87 |
+
|
| 88 |
+
<div align="center">
|
| 89 |
+
<img src="https://raw.githubusercontent.com/cuicheng01/PaddleX_doc_images/refs/heads/main/images/paddleocr_vl_1_5/layout_curv.jpg" width="800"/>
|
| 90 |
+
</div>
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
## Citation
|
| 94 |
+
|
| 95 |
+
If you find PP-DocLayoutV3 helpful, feel free to give us a star and citation.
|
| 96 |
+
|
| 97 |
+
```bibtex
|
| 98 |
+
@misc{cui2026rtdoclayoutrealtimeendtoenddocument,
|
| 99 |
+
title={RT-DocLayout: Real-Time End-to-End Document Layout Analysis with Reading Order in the Wild},
|
| 100 |
+
author={Cheng Cui and Tingquan Gao and Xueqing Wang and Changda Zhou and Hongen Liu and Ting Sun and Yubo Zhang and Zelun Zhang and Jiaxuan Liu and Manhui Lin and Yue Zhang and Suyin Liang and Yiqing Xiang and Yi Liu},
|
| 101 |
+
year={2026},
|
| 102 |
+
eprint={2606.23344},
|
| 103 |
+
archivePrefix={arXiv},
|
| 104 |
+
primaryClass={cs.CV},
|
| 105 |
+
url={https://arxiv.org/abs/2606.23344},
|
| 106 |
+
}
|
| 107 |
+
```
|
models-jaxjs/pp-doclayout-v3-jaxjs/sidecars/inference.yml
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
mode: paddle
|
| 2 |
+
draw_threshold: 0.5
|
| 3 |
+
metric: COCO
|
| 4 |
+
use_dynamic_shape: false
|
| 5 |
+
Global:
|
| 6 |
+
model_name: PP-DocLayoutV3
|
| 7 |
+
arch: DETR
|
| 8 |
+
min_subgraph_size: 3
|
| 9 |
+
Preprocess:
|
| 10 |
+
- interp: 2
|
| 11 |
+
keep_ratio: false
|
| 12 |
+
target_size:
|
| 13 |
+
- 800
|
| 14 |
+
- 800
|
| 15 |
+
type: Resize
|
| 16 |
+
- mean:
|
| 17 |
+
- 0.0
|
| 18 |
+
- 0.0
|
| 19 |
+
- 0.0
|
| 20 |
+
norm_type: none
|
| 21 |
+
std:
|
| 22 |
+
- 1.0
|
| 23 |
+
- 1.0
|
| 24 |
+
- 1.0
|
| 25 |
+
type: NormalizeImage
|
| 26 |
+
- type: Permute
|
| 27 |
+
label_list:
|
| 28 |
+
- abstract
|
| 29 |
+
- algorithm
|
| 30 |
+
- aside_text
|
| 31 |
+
- chart
|
| 32 |
+
- content
|
| 33 |
+
- display_formula
|
| 34 |
+
- doc_title
|
| 35 |
+
- figure_title
|
| 36 |
+
- footer
|
| 37 |
+
- footer_image
|
| 38 |
+
- footnote
|
| 39 |
+
- formula_number
|
| 40 |
+
- header
|
| 41 |
+
- header_image
|
| 42 |
+
- image
|
| 43 |
+
- inline_formula
|
| 44 |
+
- number
|
| 45 |
+
- paragraph_title
|
| 46 |
+
- reference
|
| 47 |
+
- reference_content
|
| 48 |
+
- seal
|
| 49 |
+
- table
|
| 50 |
+
- text
|
| 51 |
+
- vertical_text
|
| 52 |
+
- vision_footnote
|
| 53 |
+
Hpi:
|
| 54 |
+
backend_configs:
|
| 55 |
+
paddle_infer:
|
| 56 |
+
trt_dynamic_shapes: &id001
|
| 57 |
+
image:
|
| 58 |
+
- - 1
|
| 59 |
+
- 3
|
| 60 |
+
- 800
|
| 61 |
+
- 800
|
| 62 |
+
- - 1
|
| 63 |
+
- 3
|
| 64 |
+
- 800
|
| 65 |
+
- 800
|
| 66 |
+
- - 8
|
| 67 |
+
- 3
|
| 68 |
+
- 800
|
| 69 |
+
- 800
|
| 70 |
+
scale_factor:
|
| 71 |
+
- - 1
|
| 72 |
+
- 2
|
| 73 |
+
- - 1
|
| 74 |
+
- 2
|
| 75 |
+
- - 8
|
| 76 |
+
- 2
|
| 77 |
+
trt_dynamic_shape_input_data:
|
| 78 |
+
scale_factor:
|
| 79 |
+
- - 2
|
| 80 |
+
- 2
|
| 81 |
+
- - 1
|
| 82 |
+
- 1
|
| 83 |
+
- - 0.67
|
| 84 |
+
- 0.67
|
| 85 |
+
- 0.67
|
| 86 |
+
- 0.67
|
| 87 |
+
- 0.67
|
| 88 |
+
- 0.67
|
| 89 |
+
- 0.67
|
| 90 |
+
- 0.67
|
| 91 |
+
- 0.67
|
| 92 |
+
- 0.67
|
| 93 |
+
- 0.67
|
| 94 |
+
- 0.67
|
| 95 |
+
- 0.67
|
| 96 |
+
- 0.67
|
| 97 |
+
- 0.67
|
| 98 |
+
- 0.67
|
| 99 |
+
tensorrt:
|
| 100 |
+
dynamic_shapes: *id001
|
models-jaxjs/pp-doclayout-v3-jaxjs/weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:13492ac1f96d5340caa0f75e8c894a3b7d8e95d7c2e485fd5b671bee9a3df6f3
|
| 3 |
+
size 130847572
|
reports/pp-doclayout-v3/precision-experiment.json
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schemaVersion": 1,
|
| 3 |
+
"kind": "pp-doclayout-v3-precision-experiment",
|
| 4 |
+
"generatedAt": "2026-07-12T05:58:00Z",
|
| 5 |
+
"runtime": {
|
| 6 |
+
"name": "jaxjs-wasm",
|
| 7 |
+
"threads": 1,
|
| 8 |
+
"wasmLinearMemoryBytes": 536870912,
|
| 9 |
+
"processRssBudgetBytes": 805306368,
|
| 10 |
+
"isolation": "fresh process per cold fixture; same detector and process for warm probe"
|
| 11 |
+
},
|
| 12 |
+
"artifacts": {
|
| 13 |
+
"fp32": {
|
| 14 |
+
"id": "pp-doclayout-v3-jaxjs",
|
| 15 |
+
"weightsSha256": "13492ac1f96d5340caa0f75e8c894a3b7d8e95d7c2e485fd5b671bee9a3df6f3",
|
| 16 |
+
"weightsSizeBytes": 130847572,
|
| 17 |
+
"status": "selected"
|
| 18 |
+
},
|
| 19 |
+
"fp16": {
|
| 20 |
+
"id": "pp-doclayout-v3-fp16-jaxjs",
|
| 21 |
+
"parentId": "pp-doclayout-v3-jaxjs",
|
| 22 |
+
"weightsSha256": "da8613530ea128d8e85d00be530fe02a29830e59308f6dc6c67e12fdb03e6a8f",
|
| 23 |
+
"weightsSizeBytes": 65459939,
|
| 24 |
+
"sizeRatio": 0.5002762985926862,
|
| 25 |
+
"status": "rejected-runtime"
|
| 26 |
+
}
|
| 27 |
+
},
|
| 28 |
+
"conversion": {
|
| 29 |
+
"report": "fp16-conversion-audit.json",
|
| 30 |
+
"byteReproducible": true,
|
| 31 |
+
"floatingTensorCount": 738,
|
| 32 |
+
"retainedFloat32TensorCount": 0,
|
| 33 |
+
"retainedNativeTensorCount": 1,
|
| 34 |
+
"mixedPrecisionTensorCount": 0,
|
| 35 |
+
"normalizationSensitiveTensorCount": 464,
|
| 36 |
+
"overflowCount": 0,
|
| 37 |
+
"underflowToZeroCount": 1445,
|
| 38 |
+
"maxAbsError": 1.197265625,
|
| 39 |
+
"rmse": 0.0006262482094378353
|
| 40 |
+
},
|
| 41 |
+
"qualityThresholds": {
|
| 42 |
+
"classExact": true,
|
| 43 |
+
"maximumThresholdCrossings": 0,
|
| 44 |
+
"relativeOrderExact": true,
|
| 45 |
+
"minimumBoxIou": 0.995,
|
| 46 |
+
"minimumPolygonIou": 0.95,
|
| 47 |
+
"minimumMaskIou": 0.995,
|
| 48 |
+
"maximumScoreAbsError": 0.003,
|
| 49 |
+
"minimumPositiveClassRecall": 1
|
| 50 |
+
},
|
| 51 |
+
"quality": {
|
| 52 |
+
"fp16Academic": {
|
| 53 |
+
"report": "fp16-academic.json",
|
| 54 |
+
"classExact": true,
|
| 55 |
+
"thresholdCrossingCount": 0,
|
| 56 |
+
"relativeOrderExact": true,
|
| 57 |
+
"maximumAbsoluteOrderDelta": 2,
|
| 58 |
+
"minimumBoxIou": 0.9991102898194166,
|
| 59 |
+
"minimumPolygonIou": 0.9642857142857143,
|
| 60 |
+
"minimumMaskIou": 0.9962546816479401,
|
| 61 |
+
"meanMaskIou": 0.9998196085124901,
|
| 62 |
+
"maximumScoreAbsError": 0.0004281950245667021,
|
| 63 |
+
"formulaRecall": 1,
|
| 64 |
+
"formulaNumberRecall": 1,
|
| 65 |
+
"tableRecall": null,
|
| 66 |
+
"tableRecallStatus": "not-evaluable-no-table-positive-in-frozen-v3-oracle"
|
| 67 |
+
},
|
| 68 |
+
"fp16Curved": {
|
| 69 |
+
"report": "fp16-curved.json",
|
| 70 |
+
"classExact": true,
|
| 71 |
+
"thresholdCrossingCount": 0,
|
| 72 |
+
"relativeOrderExact": true,
|
| 73 |
+
"maximumAbsoluteOrderDelta": 2,
|
| 74 |
+
"minimumBoxIou": 0.9978265928684884,
|
| 75 |
+
"minimumPolygonIou": 0.9645151633776222,
|
| 76 |
+
"minimumMaskIou": 0.9982293050022134,
|
| 77 |
+
"meanMaskIou": 0.9997030696791581,
|
| 78 |
+
"maximumScoreAbsError": 0.0024748477961731297
|
| 79 |
+
},
|
| 80 |
+
"fp32Academic": {
|
| 81 |
+
"report": "fp32-academic-warm.json",
|
| 82 |
+
"classExact": true,
|
| 83 |
+
"thresholdCrossingCount": 0,
|
| 84 |
+
"relativeOrderExact": true,
|
| 85 |
+
"maximumAbsoluteOrderDelta": 2,
|
| 86 |
+
"minimumBoxIou": 0.9990843017788482,
|
| 87 |
+
"minimumPolygonIou": 0.9642857142857143,
|
| 88 |
+
"minimumMaskIou": 0.9962546816479401,
|
| 89 |
+
"meanMaskIou": 0.9998269382768598,
|
| 90 |
+
"maximumScoreAbsError": 0.00038713593536376933,
|
| 91 |
+
"formulaRecall": 1,
|
| 92 |
+
"formulaNumberRecall": 1
|
| 93 |
+
},
|
| 94 |
+
"page4Ownership": {
|
| 95 |
+
"fixture": "../1512.00809v4/page-4-formula-ownership.json",
|
| 96 |
+
"layoutFormulaLabelsExact": true,
|
| 97 |
+
"inlineFormulaRecall": 1,
|
| 98 |
+
"displayFormulaRecall": 1,
|
| 99 |
+
"formulaNumberRecall": 1,
|
| 100 |
+
"normalizedDuplicateCandidateCount": 0,
|
| 101 |
+
"nestedInlineDisplayConflictCount": 0,
|
| 102 |
+
"materialTextFormulaOverlapCount": 0,
|
| 103 |
+
"oneToOneOwnership": true,
|
| 104 |
+
"projectionConsistency": true
|
| 105 |
+
}
|
| 106 |
+
},
|
| 107 |
+
"performance": {
|
| 108 |
+
"fp32": {
|
| 109 |
+
"coldLatencyMs": 343516.373041,
|
| 110 |
+
"warmLatencyMs": 303129.631833,
|
| 111 |
+
"coldParameterUploadMs": 29.407006999719556,
|
| 112 |
+
"warmParameterUploadMs": 32.0894330003066,
|
| 113 |
+
"artifactFetchMs": 63.44441599999993,
|
| 114 |
+
"weightsParseMs": 1.22362499999997,
|
| 115 |
+
"peakRssBytes": 737345536,
|
| 116 |
+
"warmCompleted": true
|
| 117 |
+
},
|
| 118 |
+
"fp16": {
|
| 119 |
+
"coldAcademicLatencyMs": 345001.211625,
|
| 120 |
+
"coldCurvedLatencyMs": 346552.886208,
|
| 121 |
+
"coldAcademicParameterUploadMs": 1937.737654999974,
|
| 122 |
+
"coldCurvedParameterUploadMs": 1909.9433300003657,
|
| 123 |
+
"artifactFetchMs": 35.69737499999985,
|
| 124 |
+
"weightsParseMs": 11.531665999999973,
|
| 125 |
+
"maximumColdPeakRssBytes": 778125312,
|
| 126 |
+
"warmCompleted": false,
|
| 127 |
+
"warmStopReport": "fp16-warm-stop.json",
|
| 128 |
+
"warmStopPeakRssBytes": 805961728
|
| 129 |
+
}
|
| 130 |
+
},
|
| 131 |
+
"gates": {
|
| 132 |
+
"conversionReproducible": true,
|
| 133 |
+
"tensorPolicyExplainable": true,
|
| 134 |
+
"qualityPassed": true,
|
| 135 |
+
"coldRssPassed": true,
|
| 136 |
+
"warmRssPassed": false,
|
| 137 |
+
"runtimeMemoryImprovedOverFp32": false,
|
| 138 |
+
"parameterUploadImprovedOverFp32": false,
|
| 139 |
+
"artifactSizeImproved": true,
|
| 140 |
+
"webgpuRequired": false,
|
| 141 |
+
"webgpuAttempted": false
|
| 142 |
+
},
|
| 143 |
+
"decision": {
|
| 144 |
+
"selectedArtifactId": "pp-doclayout-v3-jaxjs",
|
| 145 |
+
"selectedPrecision": "float32",
|
| 146 |
+
"fp16Candidate": "reject",
|
| 147 |
+
"reason": "FP16 storage preserves semantics and halves download bytes, but JAXJS/WASM widens parameters during upload, increases cold peak RSS and upload time, and fails the bounded same-process warm run while FP32 completes both cold and warm runs.",
|
| 148 |
+
"candidateIntegrationAllowed": false,
|
| 149 |
+
"publicationAllowed": false,
|
| 150 |
+
"dependentTasksMustConsume": "pp-doclayout-v3-jaxjs"
|
| 151 |
+
},
|
| 152 |
+
"safety": {
|
| 153 |
+
"webgpuAttempted": false,
|
| 154 |
+
"reason": "WASM gates fully determine rejection and prior machine-safety policy prohibits unbounded WebGPU work",
|
| 155 |
+
"liveResourcesAfterExperiment": 0
|
| 156 |
+
}
|
| 157 |
+
}
|
reports/pp-doclayout-v3/promotion-decision.json
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schemaVersion": 1,
|
| 3 |
+
"kind": "pp-doclayout-v3-promotion-decision",
|
| 4 |
+
"generatedAt": "2026-07-12T06:31:00.000Z",
|
| 5 |
+
"candidate": {
|
| 6 |
+
"id": "pp-doclayout-v3-jaxjs",
|
| 7 |
+
"precision": "float32",
|
| 8 |
+
"weightsSha256": "13492ac1f96d5340caa0f75e8c894a3b7d8e95d7c2e485fd5b671bee9a3df6f3",
|
| 9 |
+
"weightsSizeBytes": 130847572
|
| 10 |
+
},
|
| 11 |
+
"rollback": {
|
| 12 |
+
"id": "pp-doclayout-l-fp16-jaxjs",
|
| 13 |
+
"weightsSha256": "7e9b393176a11d358b9e5c5d3243b7cef96bb5ba2565b5a71bdd0b0e1c072178"
|
| 14 |
+
},
|
| 15 |
+
"policy": {
|
| 16 |
+
"allMandatoryGatesMustPass": true,
|
| 17 |
+
"mineruIsTruthAuthority": false,
|
| 18 |
+
"fullDocumentWebGpuAllowed": false,
|
| 19 |
+
"missingEvidenceCountsAsPass": false
|
| 20 |
+
},
|
| 21 |
+
"gates": [
|
| 22 |
+
{
|
| 23 |
+
"id": "frozen-academic-and-curved-oracles",
|
| 24 |
+
"mandatory": true,
|
| 25 |
+
"status": "pass",
|
| 26 |
+
"evidence": ["precision-experiment.json", "fp32-academic-warm.json"],
|
| 27 |
+
"summary": "Classes, threshold membership, relative order, boxes, polygons, masks, and scores meet the frozen Paddle tolerances."
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"id": "page4-formula-ownership",
|
| 31 |
+
"mandatory": true,
|
| 32 |
+
"status": "pass",
|
| 33 |
+
"evidence": ["../1512.00809v4/page-4-formula-ownership.json", "../1512.00809v4/stage-aware-evidence.json"],
|
| 34 |
+
"summary": "Formula/formula-number recall is 1 and normalized ownership has zero duplicates, nested conflicts, or material text overlap."
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"id": "deterministic-wasm",
|
| 38 |
+
"mandatory": true,
|
| 39 |
+
"status": "pass",
|
| 40 |
+
"evidence": ["fp32-academic-warm.json"],
|
| 41 |
+
"summary": "Two same-process FP32 runs preserve decoded classes, geometry, order, and masks under the bounded WASM supervisor."
|
| 42 |
+
},
|
| 43 |
+
{
|
| 44 |
+
"id": "cli-web-contract-parity",
|
| 45 |
+
"mandatory": true,
|
| 46 |
+
"status": "pass",
|
| 47 |
+
"evidence": ["source-tests:modelRuntime,nodeJaxJs,layoutModelOutput"],
|
| 48 |
+
"summary": "CLI and web select the same factory and preserve explicit labels, formula numbers, polygons, and learned order through one output mapper."
|
| 49 |
+
},
|
| 50 |
+
{
|
| 51 |
+
"id": "corpus-text-table-image-formula-recall",
|
| 52 |
+
"mandatory": true,
|
| 53 |
+
"status": "not-evaluated",
|
| 54 |
+
"evidence": ["../1512.00809v4/stage-aware-evidence.json"],
|
| 55 |
+
"summary": "The frozen V3 oracle has formulas and text but no table-positive or image-positive curated case; absent classes are not counted as success."
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"id": "bounded-browser-runtime",
|
| 59 |
+
"mandatory": true,
|
| 60 |
+
"status": "not-evaluated-safety",
|
| 61 |
+
"evidence": ["source-tests:modelRuntime"],
|
| 62 |
+
"summary": "Browser contract tests pass, but live WebGPU inference was deliberately not run after the prior machine crash."
|
| 63 |
+
},
|
| 64 |
+
{
|
| 65 |
+
"id": "startup-and-memory-budget",
|
| 66 |
+
"mandatory": true,
|
| 67 |
+
"status": "not-approved",
|
| 68 |
+
"evidence": ["fp32-academic-warm.json", "precision-experiment.json"],
|
| 69 |
+
"summary": "FP32 is bounded but the approximately 343.5 s cold and 303.1 s warm WASM runs and 130.8 MB weights lack an approved browser/startup budget comparison against Layout-L."
|
| 70 |
+
}
|
| 71 |
+
],
|
| 72 |
+
"decision": {
|
| 73 |
+
"status": "hold",
|
| 74 |
+
"promoteToMedium": false,
|
| 75 |
+
"reason": "Mandatory corpus class-recall, live bounded browser, and comparative startup/memory gates are not passed. Missing or intentionally unrun evidence cannot be converted into approval.",
|
| 76 |
+
"nextSafeAction": "Complete table/image-positive Paddle or bounded WASM corpus evidence and define an acceptable startup budget; keep live WebGPU disabled until a separately authorized crash-contained smoke environment exists."
|
| 77 |
+
}
|
| 78 |
+
}
|