face-clustering-rk3588./README1.md

2.1 KiB

cd /home/nvme/dockerdata/prove/face-clustering-rk3588

Files e dir necessarie per far funzionare

prj_root/ ├── bin/ │ └── face_scan ├── lib/ │ └── librknnrt.so ├── models/ │ ├── SCRFD_500M_KPS_640.rknn │ └── face_recognition_sface_2021dec.rknn └── test └── test3f.jpg

Copia

cd /home/nvme/dockerdata/prove/s121js || exit 1

mkdir -p bin lib models

cp -f
/home/nvme/dockerdata/prove/face-clustering-rk3588/lib/librknnrt.so
lib/

cp -f
/home/nvme/dockerdata/prove/face-clustering-rk3588/models/SCRFD_500M_KPS_640.rknn
models/

cp -f
/home/nvme/dockerdata/prove/face-clustering-rk3588/models/face_recognition_sface_2021dec.rknn
models/

Compilazione

make clean make -j"$(nproc)"

Test delle quattro rotazioni

for rotation in 0 90 180 270; do ./bin/face_scan
--rotation "$rotation"
test/test3f.jpg
> "/tmp/rotation_${rotation}.json"
2> "/tmp/rotation_${rotation}.stderr"

status=$? stderr_bytes=$(wc -c < "/tmp/rotation_${rotation}.stderr")

echo
"rotation=$rotation"
"status=$status"
"stderr_bytes=$stderr_bytes" done

Verifica dimensioni, rotazione e volti

python3 - <<'PY' import json from pathlib import Path

for rotation in (0, 90, 180, 270): json_path = Path( "/tmp/rotation_" + str(rotation) + ".json" )

data = json.loads(
    json_path.read_text(encoding="utf-8")
)

image = data.get("image")
faces = data.get("faces")

if not isinstance(image, dict):
    raise SystemExit(
        "Campo image non valido per rotazione "
        + str(rotation)
    )

if not isinstance(faces, list):
    raise SystemExit(
        "Campo faces non valido per rotazione "
        + str(rotation)
    )

print(
    "rotation:",
    rotation,
    "size:",
    str(image.get("width"))
    + "x"
    + str(image.get("height")),
    "json_rotation:",
    image.get("rotation"),
    "faces:",
    len(faces),
)

PY