name: ocr-inference
description: "Use MMOCR inference APIs and safe CLI preflights for text
detection, recognition, OCR chains, KIE, text spotting, outputs, and
visualization."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
ocr-inference
Use this sub-skill when the task is to run or debug MMOCR inference: text detection, text recognition, a detection+recognition OCR chain, KIE on OCR results, text-spotting inference notes, visualization, prediction dumping, model/checkpoint/device selection, and safe preflight checks.
Route first
- For concrete OCR/KIE inference calls, start with Inference workflows.
- For exact class signatures, accepted inputs, output keys, batching, devices, model names, and save/visualization arguments, use API reference.
- For failure triage, especially KIE initialization, model-name errors, missing checkpoints, headless visualization, or output-directory confusion, use Troubleshooting.
- For a no-download preflight CLI, use the bundled MMOCR inference smoke helper.
Boundaries
Use sibling sub-skills instead of this one when the task is outside runtime inference:
- Training, testing, metric evaluation, schedule changes, config editing, or checkpoint evaluation:
../training-evaluation-configs/.
- Dataset preparation, annotation conversion, dataset-zoo mechanics, dictionaries, or data-format migration:
../data-preparation/.
- Model internals, custom backbones/heads/losses/postprocessors/registries, or project component implementation:
../model-api-components/.
Safe default operating pattern
- Decide the mode: detection only, recognition only, OCR chain, KIE chain, direct
KIEInferencer, or TextSpotInferencer.
- Prefer local config+checkpoint paths for offline or reproducible work. Passing a model-zoo name without a local weight may trigger a model download/cache lookup during real inference.
- Use
device="cpu" when CUDA availability is unknown. Use device="cuda:0" only after confirming CUDA is available.
- In headless sessions, keep
show=False; use out_dir, save_pred=True, and save_vis=True to produce JSON and visualization files.
- For KIE through
MMOCRInferencer, initialize with all three components: det, rec, and kie. KIE without both detection and recognition is invalid.
- If a save flag is enabled, keep
out_dir non-empty. MMOCR writes predictions below preds/ and visualizations below vis/ inside that output directory.
Minimal examples
Headless OCR chain with the high-level inferencer:
from mmocr.apis import MMOCRInferencer
ocr = MMOCRInferencer(det="DBNet", rec="CRNN", device="cpu")
result = ocr(
"image_or_folder",
batch_size=1,
det_batch_size=1,
rec_batch_size=4,
out_dir="mmocr_outputs/ocr",
save_pred=True,
save_vis=True,
print_result=True,
show=False,
)
print(result["predictions"][0].keys())
No-download preflight from this sub-skill directory:
python scripts/mmocr_inference_smoke.py image_or_folder --det DBNet --rec CRNN --device cpu
The helper only preflights by default. Add --execute only when local weights are supplied or --allow-download is intentionally set.