{"id":1143,"date":"2021-02-08T02:34:39","date_gmt":"2021-02-08T01:34:39","guid":{"rendered":"https:\/\/www.lucaamore.com\/?p=1143"},"modified":"2024-02-09T21:28:25","modified_gmt":"2024-02-09T19:28:25","slug":"face-detection-e-face-recognition-in-python-analizziamo-matrix-reloaded-e-game-of-thrones","status":"publish","type":"post","link":"https:\/\/www.lucaamore.com\/?p=1143","title":{"rendered":"Face Detection e Face Recognition in Python &#8211; Test su Matrix Reloaded e Game of Thrones"},"content":{"rendered":"\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2023\/01\/lukelv_a_beautiful_woman_cyberpunk_with_a_light_grid_in_the_fac_fc2607bf-9036-4319-ac98-1da4d42ca481.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" data-id=\"1710\" src=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2023\/01\/lukelv_a_beautiful_woman_cyberpunk_with_a_light_grid_in_the_fac_fc2607bf-9036-4319-ac98-1da4d42ca481-1024x1024.png\" alt=\"\" class=\"wp-image-1710\" srcset=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2023\/01\/lukelv_a_beautiful_woman_cyberpunk_with_a_light_grid_in_the_fac_fc2607bf-9036-4319-ac98-1da4d42ca481.png 1024w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2023\/01\/lukelv_a_beautiful_woman_cyberpunk_with_a_light_grid_in_the_fac_fc2607bf-9036-4319-ac98-1da4d42ca481-300x300.png 300w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2023\/01\/lukelv_a_beautiful_woman_cyberpunk_with_a_light_grid_in_the_fac_fc2607bf-9036-4319-ac98-1da4d42ca481-150x150.png 150w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2023\/01\/lukelv_a_beautiful_woman_cyberpunk_with_a_light_grid_in_the_fac_fc2607bf-9036-4319-ac98-1da4d42ca481-768x768.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Uno dei post che ha generato il maggior interesse in questo blog \u00e8 certamente quello dedicato alla face detection tramite OpenCV. Riprendiamo questo tema dopo molto tempo parlando degli <strong>algoritmi alla frontiera per il Face Detection e Face Recognition.<\/strong> Lo scopo del post \u00e8 fare il punto sullo stato dell&#8217;arte ed indirizzare verso mouduli open source liberamente e facilmente utilizzabili nelle applicazioni reali.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-mimar-1024x368-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"368\" src=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-mimar-1024x368-1.png\" alt=\"\" class=\"wp-image-1146\" srcset=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-mimar-1024x368-1.png 1024w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-mimar-1024x368-1-300x108.png 300w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-mimar-1024x368-1-768x276.png 768w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-mimar-1024x368-1-500x180.png 500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Matrix Reloaded &#8211; The Architect<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La <strong>Face Detection<\/strong> \u00e8 l&#8217;elaborazione che <strong>ha lo scopo di rilevare la presenza di volti umani all&#8217;interno di un&#8217;immagine digitale<\/strong>; nel precedente articolo \u00e8 stata affrontata solo questa tematica attraverso algoritmi tradizionali ma consolidati.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Gli algoritmi di Face Detection si sono evoluti<\/strong> nel tempo migliorando l&#8217;accuratezza della rilevazione anche <strong>attraverso l&#8217;uso di reti neurali convoluzionarie (CNN)<\/strong> <strong>o reti Deep Learning<\/strong> opportunamente strutturate ed addestrate; tale processamento sfrutta massivamente l&#8217;eventuale presenza di moderne GPU o NPU per aumentarne l&#8217;efficienza ed il parallelismo. Nel nostro caso specifico <strong>ci siamo limitati al riconoscimento di volti umani in posizione frontale.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-fd3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"418\" src=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-fd3-1024x418.png\" alt=\"\" class=\"wp-image-1148\" srcset=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-fd3-1024x418.png 1024w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-fd3-300x122.png 300w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-fd3-768x314.png 768w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-fd3-1536x627.png 1536w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-fd3-500x204.png 500w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/matrix-fd3.png 1690w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Matrix Reloaded Architect &#8211; Face Detection Benchmark MTCNN<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Il benchmark estremo che ho utilizzato <\/strong>per mettere alla prova i moduli python individuati, \u00e8 un <strong>breve video tratto dal dialogo tra Neo e l&#8217;Architetto in Matrix Reloaded<\/strong>; nel video, in un&#8217;atmosfera surreale, sono presenti innumerevoli volti che variano rapidamente per dimensione, inclinazione, espressione, presenza o meno di occhiali. Un video estremo di prova che far\u00e0 friggere neuroni e sinapsi anche alle pi\u00f9 evolute e performanti reti neurali convoluzionarie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo \u00e8 il video che \u00e8 stato prodotto attraverso la nostra elaborazione:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Matrix - Realtime Face Detection in Python with MTCNN - Deep Learning\" width=\"584\" height=\"329\" src=\"https:\/\/www.youtube.com\/embed\/lC73y-tI21I?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Il Benchmark che ho utilizzato per la Face Detection in Python &#8211; L&#8217;architetto in Matrix Reloaded &#8211; questo \u00e8 il risultato ottenuto tramite l&#8217;uso del modulo MTCNN insieme ad OpenCV che ho usato per l&#8217;elaborazione del video<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Il modulo Python che, almeno nei miei esperimenti, ha dimostrato i migliori risultati in termini di qualit\u00e0 e prestazioni \u00e8 <a href=\"https:\/\/github.com\/ipazc\/mtcnn\" data-type=\"URL\" data-id=\"https:\/\/github.com\/ipazc\/mtcnn\">MTCNN<\/a><\/strong>; in esecuzione su una sessione Colab con GPU attiva elabora efficientemente il flusso di frame con un livello di accuratezza molto alto se si escludono i volti in posizione non frontale. <strong>Nel video prodotto si trova l&#8217;esito dell&#8217;elaborazione<\/strong> dove, oltre ai volti, sono stati marcati anche alcuni punti caratteristici del viso (occhi, naso, estremi della bocca). Questo modulo \u00e8 quello che riesce a rilevare meglio volti di dimensioni pi\u00f9 piccole e non perfettamente allineati garantendo anche un&#8217;efficienza molto pi\u00f9 alta degli altri moduli provati; <strong>MTCNN fornisce, per ogni volto rilevato, anche un livello di confidenza nella rilevazione <\/strong>(in tutto il video ho trovato solo un falso positivo pertanto non ho ritenuto necessario introdurre una soglia). <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_training.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"614\" src=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_training-1024x614.png\" alt=\"\" class=\"wp-image-1149\" srcset=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_training-1024x614.png 1024w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_training-300x180.png 300w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_training-768x461.png 768w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_training-500x300.png 500w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_training.png 1165w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Il Trono di Spade &#8211; foto usata come base per l&#8217;apprendimento dei principali personaggi<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>In alternativa<\/strong>, si propone l&#8217;uso del modulo: <a href=\"https:\/\/pypi.org\/project\/face-recognition\/\" data-type=\"URL\" data-id=\"https:\/\/pypi.org\/project\/face-recognition\/\"><strong>face_recognition<\/strong><\/a> che ha comunque garantito un&#8217;ottima precisione su volti di dimensioni significative ed un&#8217;efficienza adeguata; su tale modulo <strong>\u00e8 possibile variare l&#8217;algoritmo di rilevamento (CNN o HOG)<\/strong> ed effettuare del tuning per cercare di rilevare volti di dimensioni minori. Sul benchmark utilizzato la rilevazione CNN non riusciva ad intercettare gli stessi volti di MTCNN mentre la rilevazione HOG, oltre a non velocizzare molto il processamento, riduceva drasticamente il numero di volti rilevati.<strong> In condizioni normali anche questo modulo \u00e8 da considerare un&#8217;ottima scelta<\/strong> e noi lo useremo per effettuare anche il Face Recognition. Questo modulo pu\u00f2 richiedere un quantitativo di memoria sulla GPU pi\u00f9 elevato soprattutto se si vogliono rilevare i volti con dimensioni pi\u00f9 piccole.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"990\" height=\"610\" src=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog1.png\" alt=\"\" class=\"wp-image-1150\" srcset=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog1.png 990w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog1-300x185.png 300w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog1-768x473.png 768w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog1-487x300.png 487w\" sizes=\"auto, (max-width: 990px) 100vw, 990px\" \/><\/a><figcaption class=\"wp-element-caption\">Tutti i personaggi sono stati correttamente rilevati<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dopo aver rilevato ed isolato i volti, <strong>l&#8217;elaborazione della Face Recognition ci permette l&#8217;associazione di un volto ad una persona<\/strong>. In assenza di informazioni o di preappendimento sulle persone da ricercare, \u00e8 possibile aggregare i volti su possibili individui basandosi sulla <strong>similitudine delle caratteristiche fisiologiche e biometriche<\/strong>. Gli algoritmi per effettuare tale riconoscimento, per codificare un volto in un insieme di parametri comparabili sono davvero molteplici e tutti estremamente interessanti. <strong>Anche in questo caso le reti neurali convoluzionarie (CNN) offrono un contributo importante a questi algoritmi.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog2-1024x683.png\" alt=\"\" class=\"wp-image-1151\" srcset=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog2-1024x683.png 1024w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog2-300x200.png 300w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog2-768x512.png 768w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog2-450x300.png 450w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog2.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Tutti i personaggi sono stati correttamente rilevati ad eccezione di Missandei che non era presente nella foto iniziale<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Per <strong>implementare un Face Recognition in pochissime righe di codice Python<\/strong> ed in modo efficiente \u00e8 possibile usare il modulo <strong><a href=\"https:\/\/pypi.org\/project\/face-recognition\/\" data-type=\"URL\" data-id=\"https:\/\/pypi.org\/project\/face-recognition\/\">face_recognition<\/a><\/strong>; se si vuole approfondire come questo modulo funziona internamente vi consiglio di leggere <a href=\"https:\/\/medium.com\/@ageitgey\/machine-learning-is-fun-part-4-modern-face-recognition-with-deep-learning-c3cffc121d78\" data-type=\"URL\" data-id=\"https:\/\/medium.com\/@ageitgey\/machine-learning-is-fun-part-4-modern-face-recognition-with-deep-learning-c3cffc121d78\"><strong>questo aricolo<\/strong><\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog4-1024x768.png\" alt=\"\" class=\"wp-image-1153\" srcset=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog4-1024x768.png 1024w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog4-300x225.png 300w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog4-768x576.png 768w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog4-400x300.png 400w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog4.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Tutti gli attori presenti nel file di training sono stati correttamente rilevati anche senza abiti ed acconciature di scena. Come atteso Drogo non viene rilevato perch\u00e9 non presente nel file di training.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In questo caso <strong>ho creato un notepad colab di test che da una foto iniziale acquisisce le caratteristiche fisiologiche e biometriche dei vari personaggi della serie <a href=\"https:\/\/it.wikipedia.org\/wiki\/Il_Trono_di_Spade_(serie_televisiva)\" data-type=\"URL\" data-id=\"https:\/\/it.wikipedia.org\/wiki\/Il_Trono_di_Spade_(serie_televisiva)\">Il Trono di Spade<\/a><\/strong>; il modulo utilizzato, alla versione attuale, dovrebbe rappresentare ciascun volto tramite 128 parametri caratteristici.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"980\" height=\"668\" src=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog3.png\" alt=\"\" class=\"wp-image-1152\" srcset=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog3.png 980w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog3-300x204.png 300w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog3-768x523.png 768w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog3-440x300.png 440w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/a><figcaption class=\"wp-element-caption\">tutti gli attori presenti nella foto di training sono stati rilevati anche Daenarys che appare molto differente rispetto al personaggio interpretato<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Per testare il rilevamento <strong>ho provato a far riconoscere i personaggi su altre foto contenenti anche personaggi non presenti all&#8217;interno della foto di apprendimento<\/strong>; i risultati sono impeccabili. Il modulo utilizzato ha un&#8217;accuratezza eccellente sia per quanto riguarda i personaggi appresi che per quelli non analizzati che non ha mai classificato come falsi positivi.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"600\" src=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog5.png\" alt=\"\" class=\"wp-image-1154\" srcset=\"https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog5.png 1000w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog5-300x180.png 300w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog5-768x461.png 768w, https:\/\/www.lucaamore.com\/wp-content\/uploads\/2021\/02\/got_blog5-500x300.png 500w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><figcaption class=\"wp-element-caption\">anche in questo caso tutti gli attori presenti nella foto di training sono stati individuati correttamente<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Per spingere oltre il test <strong>abbiamo avviato la detection su foto in cui gli attori non appaiono con i costumi di scena ed hanno acconciature o il colore dei capelli totalmente differente dai personaggi che hanno interpretato<\/strong>; anche in questo caso l&#8217;algoritmo non sbaglia e non rileva mai falsi positivi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anche se non ho effettuato delle prove dirette, sono convinto che l&#8217;algoritmo scali bene all&#8217;aumentare del numero delle persone da rilevare; non ho provato a sottoporre qualche foto degli attori quando erano pi\u00f9 giovani.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/colab.research.google.com\/drive\/1VUyglPT8nUa0oStGDeOj2ZOEpQVZ_gR9?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/colab.research.google.com\/drive\/1VUyglPT8nUa0oStGDeOj2ZOEpQVZ_gR9?usp=sharing\">NOTEBOOK COLAB &#8211; UTILIZZATO PER LA FACE DETECTION E FACE RECOGNITION<\/a><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Concludiamo dicendo che<strong> oltre alla Face Detection ed alla Face Recognition ai volti possono essere applicati altri algoritmi per l&#8217;estrazione di caratteristiche molto importanti come la rilevazione del sesso, dell&#8217;et\u00e0, del sentimento <strong>(es. rabbia, gioia, paura, sorpresa, &#8230;)<\/strong>.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fatemi sapere i vostri pareri e le vostre esperienze su Face Detection, Face Recognition nei commenti. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uno dei post che ha generato il maggior interesse in questo blog \u00e8 certamente quello dedicato alla face detection tramite OpenCV. Riprendiamo questo tema dopo molto tempo parlando degli algoritmi alla frontiera per il Face Detection e Face Recognition. Lo &hellip; <a href=\"https:\/\/www.lucaamore.com\/?p=1143\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1544,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"categories":[25,111,108,42,114,41,107,113,32,110,43,109,112,40,166,11,165],"tags":[119,66,79,120,78,115,118,117,116,65],"class_list":["post-1143","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algorithms","category-cnn","category-colab","category-computervision","category-deep-learning","category-facedetection","category-face-recognition","category-face_detection","category-freesoftware","category-game-of-thrones","category-machine-learning","category-matrix","category-mtcnn","category-opencv","category-programming","category-python","category-top","tag-cnn","tag-colab","tag-computer-vision","tag-deep-learning","tag-face-detection","tag-face-recognition","tag-game-of-thrones","tag-got","tag-matrix","tag-python"],"_links":{"self":[{"href":"https:\/\/www.lucaamore.com\/index.php?rest_route=\/wp\/v2\/posts\/1143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lucaamore.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lucaamore.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lucaamore.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lucaamore.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1143"}],"version-history":[{"count":27,"href":"https:\/\/www.lucaamore.com\/index.php?rest_route=\/wp\/v2\/posts\/1143\/revisions"}],"predecessor-version":[{"id":1711,"href":"https:\/\/www.lucaamore.com\/index.php?rest_route=\/wp\/v2\/posts\/1143\/revisions\/1711"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lucaamore.com\/index.php?rest_route=\/wp\/v2\/media\/1544"}],"wp:attachment":[{"href":"https:\/\/www.lucaamore.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lucaamore.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lucaamore.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}