1.6 KiB
s121js/ ├── bin/ │ └── face_scan ├── lib/ │ └── librknnrt.so ├── models/ │ ├── SCRFD_500M_KPS_640.rknn │ └── face_recognition_sface_2021dec.rknn ├── api_v1/ │ └── scanner/ │ └── faceScanner.js ├── db/ ├── tools/ │ └── scanPhotoFaces.js └── public/
cd /home/nvme/dockerdata/prove/s122js
node tools/scanPhotoFaces.js
e30a1427708cfc8d63a66d369781b15ac6a07b43e13550b1a7625003914503ed
node tools/scanPhotoFaces.js
2454c04dd9067d2b5288dcca99c5c3eac85660779a97d6165a08ca7c37481070
sqlite3 -header -column
api_v1/database.sqlite
"
SELECT
photo_id,
COUNT(*) AS face_count,
COUNT(DISTINCT face_index) AS unique_face_indexes,
MIN(length(embedding)) AS min_embedding_bytes,
MAX(length(embedding)) AS max_embedding_bytes
FROM faces
WHERE photo_id =
'e30a1427708cfc8d63a66d369781b15ac6a07b43e13550b1a7625003914503ed'
GROUP BY photo_id;
"
[✓] FaceEngine riutilizzabile [✓] face_scan JSON [✓] eseguibile relocabile [✓] runtime RKNN relativo [✓] modelli relativi [✓] root server calcolata automaticamente [✓] conversione embedding in BLOB [✓] inserimento transazionale [✓] idempotenza [✓] rotazione 0/90/180/270 [✓] validazione rotazione server/motore [✓] test positivo con due volti [✓] gestione corretta di zero volti
photos.rotation ↓ validazione Node.js ↓ face_scan --rotation 0|90|180|270 ↓ rotazione RGB ↓ SCRFD + SFace ↓ validazione JSON e rotazione applicata ↓ transazione SQLite ↓ faces.embedding = BLOB float32[128]