# Face Scan RK3588 - Guida ai sorgenti e compilazione ## Repository sorgente Repository originale identificato: ```text /home/nvme/dockerdata/prove/face-clustering-rk3588-knn-opencl-validated ``` Questo repository contiene il motore utilizzato per il Face Scan dei progetti: ```text s141js → s190js ``` --- ## Scopo del programma Il binario: ```text bin/face_scan ``` esegue: - rilevamento dei volti nelle fotografie; - estrazione degli embedding facciali; - generazione dell'output JSON utilizzato successivamente dal sistema di riconoscimento. Il riconoscimento delle persone non viene eseguito da `face_scan`. Il riconoscimento viene effettuato successivamente dal programma: ```text bin/face_knn ``` che utilizza gli embedding generati da `face_scan`. --- ## Sorgenti principali ### Main Face Scan ```text src/face_scan.cc ``` Si occupa di: - caricamento immagine; - avvio scansione; - generazione output JSON. ### Motore RKNN ```text src/face_engine.cc ``` Gestisce: - caricamento modello RKNN; - inferenza tramite NPU Rockchip; - estrazione embedding. ### Header ```text include/face_engine.h include/face_config.h ``` --- ## Binari generati ```text bin/face_scan bin/face_recognition ``` --- ## Modelli utilizzati I modelli sono contenuti nella directory: ```text models/ ``` Verificare i modelli disponibili con: ```bash find models -type f ``` --- ## Librerie richieste Verifica: ```bash ldd bin/face_scan ``` Dipendenze identificate: ```text librknnrt.so libpthread.so libdl.so libstdc++.so.6 libgcc_s.so.1 libc.so.6 libm.so.6 ``` Dipendenza fondamentale: ```text lib/librknnrt.so ``` Runtime NPU Rockchip. --- ## Compilazione Pulizia: ```bash make clean ``` Compilazione: ```bash make ``` Il Makefile genera: ```text bin/face_scan bin/face_recognition ``` --- ## Comandi di verifica Verifica dipendenze: ```bash ldd bin/face_scan ``` Verifica hash: ```bash sha256sum bin/face_scan ``` Visualizza simboli: ```bash nm -C bin/face_scan | head ``` --- ## Hardware target Scheda: ```text Orange Pi 5 Plus ``` SoC: ```text Rockchip RK3588 ``` Acceleratore: ```text Rockchip NPU ``` Runtime: ```text RKNN Runtime ``` --- ## Relazione con Face KNN Pipeline completa: ```text Foto ↓ face_scan ↓ embedding facciali ↓ face_knn ↓ riconoscimento persona ↓ database ↓ gallery ``` Face Scan: ```text NPU Rockchip (RKNN) ``` Face KNN: ```text CPU/OpenCL Mali-G610 ``` --- ## Cartelle da conservare Per poter ricompilare il Face Scan in futuro conservare: ```text src/ include/ models/ lib/ Makefile ``` In particolare: ```text src/face_scan.cc src/face_engine.cc include/face_engine.h include/face_config.h lib/librknnrt.so ``` --- ## Note storiche Il repository: ```text face-clustering-rk3588-knn-opencl-validated ``` è stato identificato come repository sorgente originale del motore Face Scan utilizzato dai progetti s141js → s190js. Data documentazione: ```text 2026-10-26 ``` ## Verifica ricompilazione Face Scan **Data verifica:** 2026-10-26 ### Ambiente utilizzato Repository: `/home/nvme/dockerdata/prove/a/docs/face-scan-source` Comandi eseguiti: make clean make ### Confronto binari | File | SHA256 | |------|---------| | Binario compilato | `7b5148ee602f9bb1aa52e3c5c269c584b9dbea05b94296b049d32ec9985c69aa` | | Binario s190js | `7b5148ee602f9bb1aa52e3c5c269c584b9dbea05b94296b049d32ec9985c69aa` | ### Esito ✅ Ricompilazione verificata con successo. Il binario generato dalla compilazione dei sorgenti presenti nel repository produce un file identico bit per bit al binario utilizzato in: `/home/nvme/dockerdata/prove/s190js/bin/face_scan` ### Conclusione Sono stati verificati: - sorgenti - header - Makefile - libreria RKNN - modelli `.rknn` Il repository contiene tutto il necessario per rigenerare il binario `face_scan` senza dipendenze aggiuntive. **Riproducibilità confermata.**