Model weights for the optional picpeak-ml face-detection sidecar (#1074).
This is not an application release. It carries only ML model artifacts, and
is deliberately not marked "Latest". The update checker ignores it — its tag
does not match the X.Y.Z / X.Y.Z-beta.N pattern it filters on.
facenet512.onnx
FaceNet-512 face-embedding model, converted from deepface's published Keras
weights to ONNX so the sidecar can run it under onnxruntime without pulling
TensorFlow into the image.
| SHA-256 | a1c06dcb79dc17a42af01d5bcbce4822caa148b9c24bf7eb8b8e556b4fd0d5db
|
| Size | 89.6 MB (23,497,424 parameters) |
| Input | (None, 160, 160, 3) NHWC float32
|
| Output | 512-d embedding |
| Licence | MIT (serengil/deepface) |
Converted from facenet512_weights.h5
(3f76b5117a9ca574d536af8199e6720089eb4ad3dc7e93534496d88265de864f,
deepface_models v1.0)
by ml/tools/convert_facenet.py, which verifies the converted graph against
the Keras original before writing: worst divergence 2.086e-06 absolute,
cosine 1.0000000000.
Why this model
Redistributable under MIT. Every open face-recognition weight set traces back
to a research-only dataset, so what binds a redistributor is the distributor's
grant on the artifact — and PicPeak's users run it commercially. The more
accurate InsightFace weights (buffalo_*) are non-commercial only and are
never baked into an image we publish. See ml/LICENSES.md.
Reproducibility
Re-running the conversion produces a functionally identical graph with a
different SHA-256 — same 336 nodes, same 271 initializers, weights matching
to 0.000e+00, but tf2onnx's traced-op naming is not deterministic. A checksum
mismatch after re-converting is expected and is not evidence of tampering. The
checksum here pins this artifact so its URL cannot start serving different
bytes; validating a fresh conversion is the parity check's job.