Record that face detection has run, not just what it found
An image with no faces in it was indistinguishable from one that had never been looked at, so every landscape, still life and document scan in the library was re-detected on every pass, for ever. In a real library that is most of it: on the 23,527-image test library, 64 of the first 110 images indexed contain no face at all. Schema v9 adds face_index, a run marker per (image, model) carrying the face count and the proxy edge it read. Keyed on the model, so a model change puts every image back in the queue by itself. That makes a coverage figure possible, which is the thing a user actually wants to see. The audit also splits the outstanding set by whether a proxy exists, because 23,417 awaiting a proxy and 110 ready to index are different problems, and telling the user to run indexing again would not fix the first. The Identity screen gains Index faces, Stop, and the coverage line. examples/face_index.rs is the same check and sweep without a window, which is the right shape for an overnight pass. Measured on the real library in release: 3.5 images/second, 110 images and 125 faces in 30 seconds, and a second run correctly finds nothing left to do. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -107,3 +107,8 @@ default = []
|
||||
# without rebuilding. Costs the constant-folding of every token, so it stays
|
||||
# off by default and has no business in a release build.
|
||||
live-style = ["dep:serde_norway"]
|
||||
|
||||
[dev-dependencies]
|
||||
# The face_index batch job wants a log level from the environment; the library
|
||||
# itself only ever calls `log`, and picks up whatever the application installs.
|
||||
env_logger.workspace = true
|
||||
|
||||
Reference in New Issue
Block a user