				#########################################
				#					#
				#	Face Recognition - WINDOWS	#
				#					#
				#########################################



===== [CONTENUTO] =============================================================================================

# face_encoder_cpu	cartella contenente la versione CPU della prima parte del programma

La versione CPU è universale ed è abilitata al multicore.
Contiene anche una cartella nascosta _internal con dentro le librerie che servono all'eseguibile.
Per spostare il programma è quindi necessario spostare l'intera cartella e non solo l'eseguibile al suo interno.

# face_encoder_gpu	cartella contenente la versione GPU della prima parte del programma

La versione GPU funziona solamente in un ambiente che dispone di una scheda grafica,
altrimenti il programma segnala l'errore e termina. Utilizza le librerie CUDA per maggiore precisione.
Contiene anche una cartella nascosta _internal con dentro le librerie che servono all'eseguibile.
Per spostare il programma è quindi necessario spostare l'intera cartella e non solo l'eseguibile al suo interno.

# face_matcher.exe	versione Windows della seconda parte del programma



===== [ESEGUIRE FACE_ENCODER] =================================================================================

Avvia il terminale nella cartella del programma e lancia il comando

face_encoder_cpu.exe [-h/--help] -i IMAGES/--images IMAGES [-o OUT/--out OUT] [-l LOG/--log LOG] [-r/--recursive] [-t/--include-tn] [-m/--multicore]
face_encoder_gpu.exe [-h/--help] -i IMAGES/--images IMAGES [-o OUT/--out OUT] [-l LOG/--log LOG] [-r/--recursive] [-t/--include-tn]

rispettivamente per la versione CPU o GPU.

----- <DESCRIZIONE> -------------------------------------------------------------------------------------------
--help		mostra la guida del programma

--images	imposta il percorso da cui leggere le immagini da codificare

--out		imposta il percorso in cui generare il file di encodings .pkl

Accetta sia il percorso di un file da creare (es. "./output/gara2/face_encodings_gara2.pkl"),
sia quello di una cartella (es. "./output/gara2/") in cui verrà generato un file default "face_encodings_DATETIME.pkl".
Tutte le sottocartelle presenti nel percorso, se non esistenti, verranno create.
Se non impostato, di default il programma genererà il file al percorso "./output/face_encodings_DATETIME.pkl".

--log		imposta il percorso in cui generare il file di log .txt

Accetta sia il percorso di un file da creare (es. "./output/gara2/encoder_log_gara2.txt"),
sia quello di una cartella (es. "./output/gara2/") in cui verrà generato un file default "encoder_log_DATETIME.txt".
Tutte le sottocartelle presenti nel percorso, se non esistenti, verranno create.
Se non impostato, di default il programma genererà il file al percorso "./output/encoder_log_DATETIME.txt".

--recursive	abilita la ricerca ricorsiva in tutte le sotto cartelle all'interno di "IMAGES"

Se non impostato, di default il programma ignorerà tutte le sottocartelle nel percorso indicato.

--include-tn	disabilita il filtro-tn, includendo nell'elaborazione anche le immagini thumbnail

Se non impostato, di default il programma abilita il filtro e ignora ciascuna immagine che inizia per "tn_".

--multicore	[!SOLO PER CPU!] imposta il livello di parallelismo con cui avviare l'elaborazione

Accetta valori {1, 2, 3, 4, 5} che corrispondono all'utilizzo di {1/8, 1/4, 1/2, 3/4, n-2} dei core.
Se non impostato, di default il programma imposterà il livello di multicore a 3 e utilizzerà dunque 1/2 dei core.

----- <LEGENDA> -----------------------------------------------------------------------------------------------
[ ]		indica che il parametro è opzionale
/		indica che per impostare quel parametro puoi usare una delle due scritture
IMAGES		è il percorso della cartella contenente le immagini da elaborare e da codificare
OUT		è il percorso della cartella o del file di output contenente gli encodings in formato .pkl
DATETIME	è la data nel formato "yyyymmdd_hhmmss" in cui è stato generato il file



===== [ESEGUIRE FACE_MATCHER] =================================================================================

Avvia il terminale nella cartella del programma e lancia il comando

face_matcher.exe [-h/--help] -i IMAGE/--image IMAGE -e ENCODINGS/--encodings ENCODINGS [-o OUT/--out OUT] [-l LOG/--log LOG]

----- <DESCRIZIONE> -------------------------------------------------------------------------------------------
--help		mostra la guida del programma

--image		imposta il percorso da cui leggere il volto di cui fare il match

--encodings	imposta il percorso da cui leggere gli encodings con cui eseguire il match

--out		imposta il percorso in cui generare il file dei risultati .csv

Il programma accetta sia il percorso di un file da creare (es. "./output/gara2/result_gara2.csv"),
sia quello di una cartella (es. "./output/gara2/") in cui verrà generato un file default "result_DATETIME.csv".
Tutte le sottocartelle presenti nel percorso, se non esistenti, verranno create.
Se non impostato, di default il programma genererà il file al percorso "./output/result_DATETIME.csv".

--log		imposta il percorso in cui generare il file di log .txt

Il programma accetta sia il percorso di un file da creare (es. "./output/gara2/matcher_log_gara2.txt"),
sia quello di una cartella (es. "./output/gara2/") in cui verrà generato un file default "matcher_log_DATETIME.txt".
Tutte le sottocartelle presenti nel percorso, se non esistenti, verranno create.
Se non impostato, di default il programma genererà il file al percorso "./output/matcher_log_DATETIME.txt".

----- <LEGENDA> -----------------------------------------------------------------------------------------------
[ ]		indica che il parametro è opzionale
/		indica che per impostare quel parametro puoi usare una delle due scritture
IMAGE		è il percorso dell'immagine contenente il volto di cui fare il match
ENCODINGS	è il percorso del file .pkl che contiene gli encodings delle foto con cui eseguire il match
OUT		è il percorso della cartella o del file di output contenente il risultato in formato .csv
DATATIME	è la data nel formato "yyyymmdd_hhmmss" in cui è stato generato il file
