Add a face/animal recognition feature: local ONNX detection (YuNet+SFace for faces with automatic person clustering, YOLOX-Nano for animal species) behind an IRecognitionService seam mirroring IPlaceSearchService's local/ remote proxy pattern, with a separate engine seam so the ONNX backend can be swapped later. Wired into the import/sync pipeline via TaskType.IMAGE_ANALYSIS with a visible progress task, a startup backfill for existing libraries, and a cheap perceptual-hash skip so metadata-only edits don't retrigger detection. Detected regions are stored (new person/media_face_region tables) and shown read-only in MediaInfoPane. Bundled ONNX weights (MIT/Apache-2.0) are tracked via Git LFS. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JzvA5ySQUsYrMUTj7sHxFA
26 lines
885 B
Plaintext
26 lines
885 B
Plaintext
# Normalize line endings to LF for everything Git considers text, so a file's on-disk bytes
|
|
# never depend on the OS or editor that last touched it. This matters most for Flyway migrations
|
|
# under src/main/resources/db/migration: Flyway checksums the file content it applies, and a
|
|
# CRLF/LF flip after a migration has already run invalidates that checksum on every other clone.
|
|
* text=auto eol=lf
|
|
|
|
*.sql text eol=lf
|
|
*.java text eol=lf
|
|
*.yaml text eol=lf
|
|
*.yml text eol=lf
|
|
*.properties text eol=lf
|
|
*.css text eol=lf
|
|
*.md text eol=lf
|
|
*.xml text eol=lf
|
|
|
|
*.jar binary
|
|
*.png binary
|
|
*.jpg binary
|
|
*.jpeg binary
|
|
*.ico binary
|
|
*.icns binary
|
|
|
|
# Bundled ONNX recognition models (src/main/resources/models/recognition/) — tens of MB each, stored via
|
|
# Git LFS rather than directly in history so a plain clone stays small unless LFS objects are pulled.
|
|
*.onnx filter=lfs diff=lfs merge=lfs -text
|