CescoMoretti / Smart-Rescue-Team

Progetto per l'esame di IOT and 3D intelligent systems
0 stars 0 forks source link

scegliere libreria ML #2

Closed CescoMoretti closed 2 years ago

CescoMoretti commented 2 years ago

OpenCV https://www.pyimagesearch.com/2018/06/18/face-recognition-with-opencv-python-and-deep-learning/ https://realpython.com/face-recognition-with-python/ https://www.html.it/articoli/face-detection-python-10-linee-di-codice/ YOLO https://pytorch.org/hub/ultralytics_yolov5/

tobiapoppi commented 2 years ago

FACE DETECTION

Le due strade più praticate sono openCV e YOLO.

OpenCV esegue la detection attraverso Haar Cascades, che è un modello che si basa su Adaboost. Sostanzialmente è un algoritmo di boosting che unisce le performance di tanti weak learner. Non è come una conv neurale, si ha un kernel e lo si passa diverse volte in tanti punti dell'immagine e con diverse dimensioni. L'algoritmo è molto veloce e abbastanza adatto a scenari real-time poichè la cascade si basa sul principio di avere diversi "stage" da superare in fase di inferenza. Se l'immagine non supera il primo stage significa che, dalle feature più ad alto livello, non sembra comparire alcuna faccia nell'immagine. Non superando il primo livello non entrerà in tutte le fasi successive e verrà scartata. Sostanzialmente le immagini all'nterno delle queli vengono detectate le facce saranno solamente quelle che riescono a superare tutti I 38 stage.

Non è perfetta come tecnica, non è allo stato dell'arte e rischia di non rilevare diverse immagini contenenti facce. Da quando si utilizza il deep learning Haar Cascade è outdated e non si usa mai in scenari reali.

YOLO invece è una singola rete neurale che viene applicata a tutta l'immagine solo una volta e produce un risultato. È allo stato dell'arte per l'object detection real-time. La rete crea diverse aree nell'immagine e ad ognuna di esse assegna una probabilità di presenza, predicendo le bounding box (pesate dalle probabilità).

Considerando ciò che è emerso dalle due analisi si è deciso di adottare una rete YOLO.