Update documentation and face scan build verification

This commit is contained in:
Fabio 2026-10-26 14:46:34 +01:00
parent 73b44d24e5
commit e78abcf9a2
3 changed files with 320 additions and 105 deletions

255
README.md
View file

@ -1,129 +1,174 @@
# Galleria con json-server e protetto con JWT S6J git clone https://forgit.patachina.it/Fabio/gallery_server_client.git a
cd a
clear
ls -lh models
ls -lh native/face-knn
ls -lh bin/face_scan
find . -name "*.sqlite"
## Installazione ## Installazione
clonare questa repo e installare tutte le dipendenze con `npm ci`
## Start/Stop servers
| Description | Script |
| ------------------------- | -------------------- |
| Start server senza auth | `npm start-no-auth` |
| Start server con auth | `npm run start` |
## Tools
| Description | Script |
| ------------------------------ | ------------------- |
| Generate user hashed passwords | `npm run hash` |
[json-server api reference](https://github.com/typicode/json-server)
## Come usarlo
clonare e poi installare con
``` ```
npm ci npm ci
node db/init.js
npm start
``` ```
nel file .env ci sono tutti i dati da modificare
poi inserire in user.json user e password utilizzati per fare il login se serve aggiornare i file di face in c++
la password da inserire è criptata e viene generata con npm run hash
il nome viene utilizzato come cartella da scansionare, si trova dentro photos
es:
```
name: Fabio
public/photos
└── Fabio
└── original
└── 2017Irlanda19-29ago
├── IMG_0092.JPG
├── IMG_0099.JPG
├── IMG_0100.JPG
```
poi dentro Fabio genererà thumbs con tutti i thumbs
- npm run start
- su IP:4000 ci sarà la galleria e andando su impostazioni si potrà fare lo scan di tutte le foto
dopo aver fatto lo scan è possibile richiedere il json al server con tutte le informazioni anche senza autorizzazione
basta farlo partire con npm run start-no-auth e le info si possono vedere con
ip:4000/photos
- npm start
---
#### FIT parse (utilizzo di python)
Per avere il parse dei fit installare python, pipx e i seguenyi packages
``` ```
sudo apt install pipx cd docs/face-scan-source
pipx ensurepath
pipx install fitdecode make clean
make
``` ```
usa per sapere dove è installato python dovrebbe produrre
``` ```
pipx list bin/face_scan
``` bin/face_recognition
in api_v1/scanner/parsers/parseFit.js va inserito il riferimento
in questo caso
```
async function parseFit(absPath) {
const frames = await new Promise((resolve, reject) => {
execFile(
"/home/orangepi/.local/pipx/venvs/fitdecode/bin/python",
["api_v1/scanner/parsers/parse_fit.py", absPath],
{ maxBuffer: 1024 * 1024 * 50 }, // 50 MB
``` ```
Inspired in this [post](https://www.techiediaries.com/fake-api-jwt-json-server/) by [Techiediaries](https://www.techiediaries.com/)
#### Interrogazioni manuali
per vedere il token
``` ```
curl -s -X POST https://prova.patachina.it/auth/login \ cd docs/face-knn-source
-H "Content-Type: application/json" \
-d '{"email":"fabio@gmail.com","password":"master66"}' g++ \
-std=c++17 \
-O2 \
-Wall \
-Wextra \
-Wpedantic \
-Iinclude \
src/face_knn.cc \
src/knn_opencl.cc \
src/knn_opencl_backend.cc \
-lOpenCL \
-ldl \
-lpthread \
-o bin/face_knn
``` ```
per salvare il token ### Face Scan (RKNN)
``` Per funzionare servono:
TOKEN=$(curl -s -X POST https://prova.patachina.it/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"fabio@gmail.com","password":"master66"}' \
| jq -r '.token')
```
per interrogare le foto bin/face_scan
```
curl -s "https://prova.patachina.it/photos/" \
-H "Authorization: Bearer $TOKEN"
```
per interrogare le attività e inoltre:
models/
├── SCRFD_500M_KPS_640.rknn
└── face_recognition_sface_2021dec.rknn
e:
lib/
└── librknnrt.so
Esempio
Sul server:
s190js/
├── bin/
│ └── face_scan
├── models/
│ ├── SCRFD_500M_KPS_640.rknn
│ └── face_recognition_sface_2021dec.rknn
└── lib/
└── librknnrt.so
### Face KNN (OpenCL)
Per funzionare servono:
native/face-knn/
completa:
native/face-knn/
├── bin/
│ └── face_knn
├── kernels/
│ └── knn_float4_topk.cl
├── config.json
├── run-face-knn.sh
└── SHA256SUMS
Copia completa
cp -a \
docs/face-knn-source/bin/face_knn \
s190js/native/face-knn/bin/
cp -a \
docs/face-knn-source/kernels \
s190js/native/face-knn/
cp \
s190js/native/face-knn/config.json \
s190js/native/face-knn/
In pratica il modo più sicuro è copiare tutta:
native/face-knn/
Per ricompilare in futuro
Conserverei anche:
docs/face-scan-source/
docs/face-knn-source/
perché contengono:
Face Scan
Makefile
src/
include/
models/
lib/
Face KNN
src/
include/
kernels/
original-build/
COMPILAZIONE_FACE_KNN.md
Backup completo consigliato
Se dovessi ripristinare tutto su una macchina nuova io copierei:
bin/
models/
lib/
native/face-knn/
docs/face-scan-source/
docs/face-knn-source/
Così avresti:
✅ eseguibili pronti
✅ modelli .rknn
✅ runtime RKNN
✅ kernel OpenCL
✅ sorgenti
✅ documentazione di build
✅ oggetti originali .o
```
curl -s "https://prova.patachina.it/activities/" \
-H "Authorization: Bearer $TOKEN"
```

129
README1.md Normal file
View file

@ -0,0 +1,129 @@
# Galleria con json-server e protetto con JWT S6J
## Installazione
clonare questa repo e installare tutte le dipendenze con `npm ci`
## Start/Stop servers
| Description | Script |
| ------------------------- | -------------------- |
| Start server senza auth | `npm start-no-auth` |
| Start server con auth | `npm run start` |
## Tools
| Description | Script |
| ------------------------------ | ------------------- |
| Generate user hashed passwords | `npm run hash` |
[json-server api reference](https://github.com/typicode/json-server)
## Come usarlo
clonare e poi installare con
```
npm ci
```
nel file .env ci sono tutti i dati da modificare
poi inserire in user.json user e password utilizzati per fare il login
la password da inserire è criptata e viene generata con npm run hash
il nome viene utilizzato come cartella da scansionare, si trova dentro photos
es:
```
name: Fabio
public/photos
└── Fabio
└── original
└── 2017Irlanda19-29ago
├── IMG_0092.JPG
├── IMG_0099.JPG
├── IMG_0100.JPG
```
poi dentro Fabio genererà thumbs con tutti i thumbs
- npm run start
- su IP:4000 ci sarà la galleria e andando su impostazioni si potrà fare lo scan di tutte le foto
dopo aver fatto lo scan è possibile richiedere il json al server con tutte le informazioni anche senza autorizzazione
basta farlo partire con npm run start-no-auth e le info si possono vedere con
ip:4000/photos
- npm start
---
#### FIT parse (utilizzo di python)
Per avere il parse dei fit installare python, pipx e i seguenyi packages
```
sudo apt install pipx
pipx ensurepath
pipx install fitdecode
```
usa per sapere dove è installato python
```
pipx list
```
in api_v1/scanner/parsers/parseFit.js va inserito il riferimento
in questo caso
```
async function parseFit(absPath) {
const frames = await new Promise((resolve, reject) => {
execFile(
"/home/orangepi/.local/pipx/venvs/fitdecode/bin/python",
["api_v1/scanner/parsers/parse_fit.py", absPath],
{ maxBuffer: 1024 * 1024 * 50 }, // 50 MB
```
Inspired in this [post](https://www.techiediaries.com/fake-api-jwt-json-server/) by [Techiediaries](https://www.techiediaries.com/)
#### Interrogazioni manuali
per vedere il token
```
curl -s -X POST https://prova.patachina.it/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"fabio@gmail.com","password":"master66"}'
```
per salvare il token
```
TOKEN=$(curl -s -X POST https://prova.patachina.it/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"fabio@gmail.com","password":"master66"}' \
| jq -r '.token')
```
per interrogare le foto
```
curl -s "https://prova.patachina.it/photos/" \
-H "Authorization: Bearer $TOKEN"
```
per interrogare le attività
```
curl -s "https://prova.patachina.it/activities/" \
-H "Authorization: Bearer $TOKEN"
```

View file

@ -279,3 +279,44 @@ Data documentazione:
```text ```text
2026-10-26 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.**