{ "architecture_id": "ocr.ppocr-dbnet", "bundle_id": "ocr/detector/ppocr-dbnet", "license": "Apache-2.0", "parity_source": { "files": [ "det_mobile.onnx", "det.json", "ocr_model/ocr_det.axmodel" ], "repo": "AXERA-TECH/PPOCR_v5", "revision": "2a3427a63c410ee6982250769126328ad85eb24a" }, "preprocessing": { "known_mismatches": [ "source inference.yml uses DetResizeForTest resize_long=960, while current markers preprocessing direct-stretches to 960x960", "source preprocessor_config.json and inference.yml list mean/std in opposite channel orders; impl-candle-ocr-detectors must resolve this against source or legacy parity fixtures before changing constants", "source model names the main input pixel_values in Transformers and x in Paddle inference metadata" ], "markers_legacy_compat": { "channel_order": "bgr", "input_shape": [ 1, 3, 960, 960 ], "mean_u8": [ 123.675, 116.28, 103.53 ], "output": "probability_map", "postprocess": "decode_prob_map", "resize": "direct-stretch-to-square", "std_u8": [ 58.395, 57.12, 57.375 ] }, "source_inference_yml": { "dynamic_shapes": [ [ 1, 3, 32, 32 ], [ 1, 3, 736, 736 ], [ 1, 3, 4000, 4000 ] ], "normalize_mean": [ 0.485, 0.456, 0.406 ], "normalize_order": "hwc", "normalize_scale": "1./255.", "normalize_std": [ 0.229, 0.224, 0.225 ], "paddle_input_name": "x", "resize_long": 960, "to_chw": true }, "source_processor": { "channel_first": false, "do_normalize": true, "do_rescale": true, "do_resize": true, "image_mean": [ 0.406, 0.456, 0.485 ], "image_mode": "BGR", "image_std": [ 0.225, 0.224, 0.229 ], "limit_side_len": 960, "max_side_limit": 4000, "model_input_names": [ "pixel_values", "original_image_size" ], "rescale_factor": 0.00392156862745098 } }, "provenance": { "conversion": "native safetensors copied byte-for-byte; metadata generated", "runtime_onnx": "false", "source_model_class": "PPOCRv5MobileDetForObjectDetection", "source_output": "sigmoid probability map, not logits", "source_paddle_input_name": "x", "source_transformers_input_name": "pixel_values", "source_transformers_output_name": "last_hidden_state" }, "required_files": [ { "path": "model.safetensors", "role": "weights" }, { "path": "config.json", "role": "config" }, { "path": "preprocessor_config.json", "role": "preprocessor" }, { "path": "inference.yml", "role": "source-inference-config" }, { "path": "README.md", "role": "source-card" }, { "path": "ocr_pipeline.py", "role": "source-example" }, { "path": "tensor_map.json", "role": "tensor-map" }, { "path": "validation.json", "role": "validation" } ], "schema_version": 1, "source": { "files": [ "README.md", "config.json", "inference.yml", "model.safetensors", "ocr_pipeline.py", "preprocessor_config.json" ], "repo": "PaddlePaddle/PP-OCRv5_mobile_det_safetensors", "revision": "c5041d225cf951ff06900ab81a3c7d543c45e2ad" }, "tensor_contract": { "inputs": [ { "aliases": [ "x" ], "dtype": "f32", "name": "pixel_values", "shape": [ "batch", 3, 960, 960 ] } ], "outputs": [ { "aliases": [ "last_hidden_state" ], "dtype": "f32", "name": "probability_map", "shape": [ "batch", 1, 960, 960 ] } ] }, "validated_runtime": [ { "device": "cpu", "dtype": "f32" } ] }