Auto Form Detection - third-party model attribution
===================================================

Models are downloaded on demand from the URLs in model-catalog.json and verified against the
SHA-256 recorded there. The air-gapped image (docker/embedded/Dockerfile.fat) additionally bakes
the ffdetr weights in at build time, since it is the deployment that cannot fetch them later.

This NOTICE covers weights Stirling itself publishes or redistributes. It exists because
Apache-2.0 section 4 attaches attribution and NOTICE obligations to whoever conveys the work,
and converting a checkpoint to ONNX and hosting the result makes us that party.


ffdetr
------
FFDetr, a form-field detector trained on the CommonForms dataset.

  Weights      https://huggingface.co/jbarrow/FFDetr           Apache-2.0
  Our export   https://huggingface.co/Frooodle/ffdetr-int8      Apache-2.0
  Base model   Roboflow RF-DETR (rf-detr-medium)               Apache-2.0
  Framework    https://github.com/roboflow/rf-detr             Apache-2.0
  Backbone     DINOv2 (Meta AI)                                Apache-2.0
  Dataset      https://huggingface.co/datasets/jbarrow/CommonForms   Apache-2.0
  Paper        CommonForms, arXiv:2509.16506

The .onnx Stirling distributes is not the upstream artifact: the publisher releases a PyTorch
.pth only. Stirling exports it to ONNX and quantises it to int8 via
scripts/export-ffdetr-onnx.py, which pins the source revision and its checksum. No weights are
modified beyond that conversion, and the result is republished under the same licence.

Not vendored: the `commonforms` reference wrapper (github.com/jbarrow/commonforms) carries no
licence file and depends on Ultralytics, so none of its code is used. The pre/post-processing in
RfDetr.java and decode.ts is written from the model's own input/output contract.


ffdnet-s, ffdnet-l
------------------
NOT REDISTRIBUTED BY STIRLING, and deliberately so.

The FFDNet checkpoints (huggingface.co/jbarrow/FFDNet-S-cpu and FFDNet-L-cpu) declare no
licence at all, which under default copyright means all rights reserved. They are also trained
with Ultralytics YOLO11, whose AGPL-3.0 terms their publisher asserts no grant over.

They remain in the catalogue so an operator who has their own arrangement with the publisher can
install them, but the download comes from the publisher's own URL, they are never baked into a
Stirling image, and they must not become a shipped default. See the notes on
FORM_DETECTION_MODEL_URL in docker/embedded/Dockerfile.
