camstack-models / THIRD_PARTY_MODELS.md
apocaliss92's picture
docs: notices, licences and source/ after the plate detector swap (D718)
90c9878 verified
|
Raw History Blame Contribute Delete
21.2 kB

Third-party models

CamStack's own source code is MIT-licensed (see LICENSE). CamStack does not include model weights in its npm packages or its Docker image. It downloads them, on demand, from the locations listed below. Each model stays under its own licence. Converting a model to another format does not change its licence: every CamStack-made build is a modified version (a "model derivative") of the upstream weights, and the change is stated per model.

Full licence texts: licenses/models/ in the CamStack source repository, and LICENSES/ in the model mirror https://huggingface.co/camstack/camstack-models.

Some of these models are not licensed for commercial use. They are listed under Non-commercial models.

Required attributions

Training data under attribution terms:

Source offer for the AGPL-3.0 weights

The folders objectDetection/yolo26, objectDetection/yolov9 and segmentation/yolo26-seg of the model mirror hold Ultralytics weights, modified by CamStack and distributed under AGPL-3.0. Their Corresponding Source is published in the mirror itself, in its source/ folder, https://huggingface.co/camstack/camstack-models/tree/main/source, together with the upstream checkpoints it starts from:

  1. The upstream checkpoints. Ultralytics publishes yolo26{n,s,m,l,x}.pt, yolov9{t,s,m,c}.pt and yolo26{n,s,m}-seg.pt at https://github.com/ultralytics/assets/releases.
  2. The build script in source/: build-camstack-models.py, with convert_lib.py (the ONNX to OpenVINO / INT8 converter it calls, the same file CamStack's Model Studio runs) and requirements.txt. It holds one recipe per hosted file: the upstream checkpoint, the input size, the Ultralytics export() arguments, the OpenVINO precision and the INT8 calibration count that file records about itself. Every hosted Ultralytics-derived file is rebuilt by one invocation: build-camstack-models.py --variant <file stem> (for example camstack-yolo26n-320 or camstack-yolov9m-640), --family <folder> or --all; --list prints the recipes and --check-hosted confirms against the mirror that every hosted file is a recipe output. The INT8 builds are NNCF post-training quantisation calibrated on COCO images: 128 for YOLO26, 300 for YOLOv9, as each IR records; the documented set is the first N of COCO val2017 in file-name order. The Python environment, the recorded tool versions and the calibration set are in source/README.md and the script's header. These scripts are CamStack's own code and are offered under the MIT licence; the weights they produce keep their upstream licence.

Limits of a rebuild:

  • Tool versions. With the Ultralytics, PyTorch, coremltools and OpenVINO versions each recipe names, a rebuild reproduces the hosted weights. Other versions give the same weights in a possibly different graph.
  • INT8 calibration. An IR records how many images calibrated it, not which ones. Calibrating on the same COCO images gives the documented build; a different set gives an equivalent, not bit-identical, INT8 model.

Non-commercial models

These are downloaded by default or selectable, and their terms do not allow commercial use:

Model Used for Terms
vehicle-type-v1 (default) Vehicle classifier CC-BY-NC-4.0; training data: CC-BY-NC-4.0 — treated as binding the trained weights (conservative reading) (terms)

Models

"Mirror" means https://huggingface.co/camstack/camstack-models, folder given. "Code / weights" gives the two licences separately because they often differ. Unknown means no licence could be traced; it does not mean free to use. default marks the model a step runs when nobody chose one; hidden marks an entry kept resolvable for a saved selection but no longer offered.

Object detection

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
yolo26n (default), yolo26s, yolo26m, yolo26l, yolo26x (hidden), yolo26n-fp16 (hidden), yolo26n-int8, yolo26s-fp16 (hidden), yolo26s-int8, yolo26m-fp16 (hidden), yolo26m-int8, yolo26l-fp16 (hidden), yolo26l-int8, yolo26n-320, yolo26n-320-int8, yolo26n-256, yolo26n-256-int8, yolo26s-320, yolo26s-320-int8, yolo26s-256, yolo26s-256-int8, yolo26m-320, yolo26m-320-int8, yolo26m-256, yolo26m-256-int8, yolo26l-320, yolo26l-320-int8, yolo26l-256, yolo26l-256-int8, yolo26x-fp16 (hidden), yolo26x-int8 (hidden) Ultralytics AGPL-3.0 / AGPL-3.0 (AGPL-3.0.txt) COCO 2017: annotations CC-BY-4.0; images under their Flickr owners' terms exported to ONNX, OpenVINO IR and CoreML (scripts/build-camstack-models.py); OpenVINO FP16 export; exported to OpenVINO IR, then OpenVINO NNCF INT8 post-training quantisation; re-exported at 320×320 to ONNX, OpenVINO IR and CoreML; re-exported at 320×320 to OpenVINO IR; OpenVINO NNCF INT8 post-training quantisation; re-exported at 256×256 to ONNX, OpenVINO IR and CoreML; re-exported at 256×256 to OpenVINO IR; OpenVINO NNCF INT8 post-training quantisation mirror objectDetection/yolo26
ssd-mobilenet-v2-coco-edgetpu (default) Google Coral test_data Apache-2.0 / Apache-2.0 (Apache-2.0.txt) COCO 2017: annotations CC-BY-4.0; images under their Flickr owners' terms none https://github.com/google-coral/test_data
yolov9t-320, yolov9t-320-int8, yolov9t-640, yolov9t-640-int8, yolov9s-320, yolov9s-320-int8, yolov9s-640, yolov9s-640-int8, yolov9m-320, yolov9m-320-int8, yolov9m-640, yolov9m-640-int8, yolov9c-320, yolov9c-320-int8, yolov9c-640, yolov9c-640-int8 Ultralytics AGPL-3.0 / AGPL-3.0 (AGPL-3.0.txt) COCO 2017: annotations CC-BY-4.0; images under their Flickr owners' terms exported at 320×320 to ONNX, OpenVINO IR FP16 and CoreML; exported at 320×320 to OpenVINO IR; OpenVINO NNCF INT8 post-training quantisation; exported at 640×640 to ONNX, OpenVINO IR FP16 and CoreML; exported at 640×640 to OpenVINO IR; OpenVINO NNCF INT8 post-training quantisation mirror objectDetection/yolov9

Package detection

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
rfdetr-package (default) Roboflow RF-DETR Apache-2.0 / Apache-2.0 (Apache-2.0.txt) parcel fine-tuning set (not recorded): UNVERIFIED RF-DETR-M fine-tuned to 2 classes at 576; exported to ONNX, OpenVINO IR and CoreML; training checkpoint .pth also published mirror packageDetection/rfdetr-package

Face detection

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
yunet-2023mar (default) OpenCV Zoo YuNet BSD-3-Clause (BSD-3-Clause.txt) / MIT (MIT-yunet-reference.txt) WIDER FACE: research-oriented terms; images CC BY-NC-ND input contract baked into the graph (the pool RGB /255 becomes the upstream BGR 0..255: Mul(255) plus a channel Gather); internal tensor names cleared in the OpenVINO IR; ONNX fp32, OpenVINO IR fp32, CoreML fp16 (scripts/build-yunet-model.py) mirror faceDetection/yunet

Face recognition

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
auraface-r100 (default) fal.ai AuraFace v1 (glintr100.onnx only) — / Apache-2.0 (Apache-2.0.txt) — input scaling y = 2x - 1 baked ahead of the first Conv (scripts/build-auraface-model.py); converted to OpenVINO IR and CoreML FP16 mirror faceRecognition/auraface

Licence plate detection

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
yolox-tiny-plate (default) open-lpr models (faisalthaheem/open-lpr-models), YOLOX-tiny Apache-2.0 / Apache-2.0 (Apache-2.0.txt) Simanno annotated plate corpus plus community-contributed photographs, pseudo-labelled by a teacher model (not published; the upstream NOTICE says the photographs were uploaded without consent obtained): UNKNOWN input contract baked into the graph (static 1x3x640x640 RGB /255 becomes the upstream BGR 0..255: Mul(255) plus a channel Gather) and the output reshaped to the YOLOv8 layout (cx, cy, w, h, obj*cls); ONNX fp32, OpenVINO IR fp16, CoreML fp16 (scripts/build-yolox-plate-model.py) mirror plateDetection/yolox-tiny-plate

Licence plate reading

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
cct-s-v2-global (default) ankandrew/fast-plate-ocr MIT / MIT (MIT-fast-plate-ocr.txt) fast-plate-ocr training set: private, not released upstream input head removed (recorded in the ONNX doc_string); converted to OpenVINO IR and CoreML mirror plateRecognition/cct-s-v2-global

Animal classifier

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
animal-classifier (default) timm EfficientNet-Lite0, fine-tuned by CamStack Apache-2.0 / Apache-2.0 (Apache-2.0.txt) Open Images V7: annotations CC-BY-4.0 (Google LLC); images listed as CC-BY-2.0, no warranty fine-tuned by CamStack on the Open Images V7 animal subset (8 classes); exported to ONNX, OpenVINO IR and CoreML mirror animalClassification/animal-classifier

Bird classifier

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
bird-classifier (default) Google AIY Vision birds_V1 — / Apache-2.0 (Apache-2.0.txt) — converted from TensorFlow with tf2onnx; OpenVINO IR and CoreML derived from it mirror animalClassification/bird-classifier

Vehicle classifier

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
vehicle-type-v1 (default) torchvision MobileNetV3-Large, fine-tuned by CamStack BSD-3-Clause (BSD-3-Clause.txt) / CC-BY-NC-4.0 (CC-BY-NC-4.0.txt) DrBimmer/vehicle-classification: CC-BY-NC-4.0 — treated as binding the trained weights (conservative reading) fine-tuned by CamStack (8 classes); exported to ONNX, OpenVINO IR and CoreML mirror vehicleClassification/vehicle-type-v1

Semantic search, image encoders (CLIP)

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
siglip2-b16-224 (default) Google SigLIP 2 (google/siglip2-base-patch16-224) Apache-2.0 / Apache-2.0 (Apache-2.0.txt) WebLI: Google internal, not released input scaling y = 2x - 1 baked ahead of the patch embedding; converted to OpenVINO IR and CoreML FP16, an FP32 ONNX hosted as the verification reference (scripts/build-siglip2-model.py) mirror clip/siglip2

Semantic search, text encoders (CLIP)

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
siglip2-b16-224-text Google SigLIP 2 (google/siglip2-base-patch16-224) Apache-2.0 / Apache-2.0 (Apache-2.0.txt) WebLI: Google internal, not released input sliced to the model's 64 positions in the graph; ONNX weights FP16, OpenVINO IR and CoreML FP16; a Lowercase normalizer prepended to the Gemma tokenizer (scripts/build-siglip2-model.py) mirror clip/siglip2

Segmentation

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
u2netp (default) xuebinqin/U-2-Net Apache-2.0 / Apache-2.0 (Apache-2.0.txt) DUTS-TR: not checked converted to ONNX, OpenVINO IR and CoreML mirror segmentationRefiner/u2netp

Instance segmentation (dormant step)

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
yolo26n-seg, yolo26s-seg, yolo26m-seg Ultralytics AGPL-3.0 / AGPL-3.0 (AGPL-3.0.txt) COCO 2017: annotations CC-BY-4.0; images under their Flickr owners' terms exported to ONNX, OpenVINO IR and CoreML mirror segmentation/yolo26-seg

Audio

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
yamnet-onnx (default) tensorflow/models research/audioset/yamnet Apache-2.0 / Apache-2.0 (Apache-2.0.txt) AudioSet ontology/labels: CC-BY-4.0 (Google LLC) converted from TensorFlow with tf2onnx; OpenVINO IR derived from it mirror audioClassification/yamnet
apple-soundanalysis (default) Apple SoundAnalysis (macOS built-in) — / LicenseRef-Apple-macOS — none built in, nothing downloaded

Language and vision-language models (AI addon)

Catalog ids Upstream Code / weights Training data CamStack changes Downloaded from
llm-qwen2.5-1.5b-instruct-q4 Qwen (Alibaba Cloud) — / Apache-2.0 (Apache-2.0.txt) — none (GGUF Q4_K_M published by Qwen; not re-hosted by CamStack) https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF
llm-llama3.2-3b-instruct-q4 Meta Llama 3.2 (GGUF by bartowski) — / LicenseRef-Llama-3.2-Community (Llama-3.2-Community.txt) — Q4_K_M GGUF quantisation by bartowski (not re-hosted by CamStack) https://huggingface.co/bartowski/Llama-3.2-3B-Instruct-GGUF
llm-qwen3-vl-2b-instruct-q4 Qwen3-VL (GGUF by unsloth) — / Apache-2.0 (Apache-2.0.txt) — Q4_K_M GGUF quantisation by unsloth (not re-hosted by CamStack) https://huggingface.co/unsloth/Qwen3-VL-2B-Instruct-GGUF
llm-qwen3-vl-4b-instruct-q4 Qwen3-VL (GGUF by unsloth) — / Apache-2.0 (Apache-2.0.txt) — Q4_K_M GGUF quantisation by unsloth (not re-hosted by CamStack) https://huggingface.co/unsloth/Qwen3-VL-4B-Instruct-GGUF
llm-qwen3-vl-8b-instruct-q4 Qwen3-VL (GGUF by unsloth) — / Apache-2.0 (Apache-2.0.txt) — Q4_K_M GGUF quantisation by unsloth (not re-hosted by CamStack) https://huggingface.co/unsloth/Qwen3-VL-8B-Instruct-GGUF
llm-qwen3.6-35b-a3b-ud-q4 Qwen3.6-35B-A3B (GGUF by unsloth) — / Apache-2.0 (Apache-2.0.txt) — UD-Q4_K_M GGUF quantisation by unsloth (not re-hosted by CamStack) https://huggingface.co/unsloth/Qwen3.6-35B-A3B-GGUF

Your own models

Model Studio can import third-party models (for example community object-detection catalogs) on request. They are downloaded from their publishers, are not hosted or redistributed by CamStack, and keep their publishers' licences; Model Studio shows the licence where the source declares one. A model you upload or convert yourself, or pull from your own Frigate+ account, likewise keeps whatever licence its author published. CamStack does not change it and does not record it.