2 KiB
2 KiB
Formato JSON di face_scan
face_scan scrive un singolo oggetto JSON su standard output.
Gli errori e i messaggi diagnostici vengono scritti su standard error.
Invocazione
./bin/face_scan /percorso/immagine.jpg
Esempio
{
"image": {
"path": "/percorso/immagine.jpg",
"width": 1500,
"height": 2000
},
"faces": [
{
"face_index": 0,
"score": 0.8671875,
"bbox": {
"x": 1079.3457,
"y": 489.648438,
"width": 131.591797,
"height": 182.275391
},
"landmarks": [
[1107.8125, 558.325195],
[1170.99609, 559.423828],
[1134.17969, 594.500732],
[1106.22559, 615.83252],
[1168.34717, 616.967773]
],
"embedding": [
-0.0426222458,
0.0678814054
]
}
]
}
L'array embedding reale contiene sempre 128 valori.
Oggetto image
Campi disponibili:
path: percorso ricevuto dal programma;width: larghezza originale dell'immagine;height: altezza originale dell'immagine.
Oggetto face
Campi disponibili:
face_index: indice sequenziale del volto;score: confidence SCRFD;bbox.x: coordinata sinistra;bbox.y: coordinata superiore;bbox.width: larghezza;bbox.height: altezza;landmarks: cinque coppie di coordinate;embedding: vettore L2-normalizzato di 128 elementi.
Immagini senza volti
Un'immagine elaborata correttamente ma senza volti produce:
{
"image": {
"path": "image.jpg",
"width": 1920,
"height": 1080
},
"faces": []
}
L'exit code resta 0.
Exit code
0 scansione completata
2 argomenti non validi
3 inizializzazione FaceEngine fallita
4 caricamento o elaborazione immagine fallita
5 risultato facciale o embedding non valido
Requisiti dell'embedding
Per ogni volto:
Dimensione 128
Tipo logico float32
Norma L2 circa 1.0
Valori tutti finiti
Quando viene salvato in formato binario float32:
128 x 4 byte = 512 byte