{"id":17,"date":"2024-05-30T09:04:50","date_gmt":"2024-05-30T07:04:50","guid":{"rendered":"https:\/\/stage.centrica.it\/?page_id=17"},"modified":"2024-05-30T09:54:09","modified_gmt":"2024-05-30T07:54:09","slug":"ricerche-su-yolo-ed-esercizio-su-python","status":"publish","type":"page","link":"https:\/\/stage.centrica.it\/index.php\/ricerche-su-yolo-ed-esercizio-su-python\/","title":{"rendered":"Ricerche su Yolo ed esercizio su Python"},"content":{"rendered":"\n<p>Yolo(You Only Look Once) \u00e8 un algoritmo fatto nel 2015 che rivela in tempo reale gli oggetti all&#8217;interno di un&#8217;immagine con una velocit\u00e0 superiore ad altri algoritmi.<\/p>\n\n\n\n<p>Uno dei siti che ho utilizzato per vedere il funzionamento di yolo \u00e8 Ultralytics, esso aveva le seguenti configurazioni:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>IoU=Intersection over union, \u00e8 la differenza tra la posizione vera del oggetto e quella predetta, se troppo diversa allora non la mette, viene solitamente usato tra 0.6 e 0.7.<\/li>\n\n\n\n<li>Modelli di yolo v8, la differenza tra i vari modelli sta nella complessit\u00e0 di calcolo, n=nano, s=small, m=medium, l=large; pi\u00f9 \u00e8 grande pi\u00f9 sar\u00e0 lento il calcolo ma dettagliato, per esempio yolo v8 s viene usato per le immagini in tempo reale grazie alla sua alta velocit\u00e0 di calcolo.<\/li>\n\n\n\n<li>La soglia di fiducia serve a limitare il numero di oggetti rilevati a quelli di cui l&#8217;intelligenza artificiale \u00e8 pi\u00f9 sicura che siano giuste.<\/li>\n\n\n\n<li>Le immagini di Yolo devono essere sempre in 640px X 640px, nel caso siano di risoluzione maggiore Ultralytics ne riduce la risoluzione prima di consegnarla a Yolo.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Test fatti con Ultralytics<\/h2>\n\n\n\n<p>Qui sotto indico le immagini usate per i test ed i vari commenti fatti, tutte le immagini saranno con soglia di fiducia=0.4 e IoU=0.6;<\/p>\n\n\n\n<p>Pre-Yolo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"873\" height=\"1024\" src=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t1-1-873x1024.jpg\" alt=\"\" class=\"wp-image-56\" style=\"width:305px;height:auto\" srcset=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t1-1-873x1024.jpg 873w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t1-1-256x300.jpg 256w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t1-1-768x901.jpg 768w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t1-1-1309x1536.jpg 1309w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t1-1.jpg 1705w\" sizes=\"auto, (max-width: 873px) 100vw, 873px\" \/><\/figure>\n\n\n\n<p>Post-Yolo:<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"579\" height=\"682\" data-id=\"59\" src=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/l1-1.jpg\" alt=\"\" class=\"wp-image-59\" srcset=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/l1-1.jpg 579w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/l1-1-255x300.jpg 255w\" sizes=\"auto, (max-width: 579px) 100vw, 579px\" \/><figcaption class=\"wp-element-caption\">Yolov8l<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"575\" height=\"678\" data-id=\"60\" src=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/m1-1.jpg\" alt=\"\" class=\"wp-image-60\" srcset=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/m1-1.jpg 575w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/m1-1-254x300.jpg 254w\" sizes=\"auto, (max-width: 575px) 100vw, 575px\" \/><figcaption class=\"wp-element-caption\">Yolov8m<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>v-n trova sia la persona che il cane ma con bassa confidenza.<\/li>\n\n\n\n<li>v-s-l entrambi trovano sia la persona che il cane con alta confidenza.<\/li>\n\n\n\n<li>v-m trova la persona con alta confidenza ma il cane lo trova come teddy bear con confidenza sotto il 0.50.<\/li>\n<\/ul>\n\n\n\n<p>Pre-Yolo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"726\" src=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t2-1024x726.jpg\" alt=\"\" class=\"wp-image-63\" style=\"width:auto;height:305px\" srcset=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t2-1024x726.jpg 1024w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t2-300x213.jpg 300w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t2-768x544.jpg 768w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t2-1536x1088.jpg 1536w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t2.jpg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Post-Yolo:<\/p>\n\n\n\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\"><img loading=\"lazy\" decoding=\"async\" width=\"574\" height=\"406\" data-id=\"64\" src=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/l2.jpg\" alt=\"\" class=\"wp-image-64\" srcset=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/l2.jpg 574w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/l2-300x212.jpg 300w\" sizes=\"auto, (max-width: 574px) 100vw, 574px\" \/><figcaption class=\"wp-element-caption\">Yolov8l<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"578\" height=\"398\" data-id=\"65\" src=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/m2.jpg\" alt=\"\" class=\"wp-image-65\" srcset=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/m2.jpg 578w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/m2-300x207.jpg 300w\" sizes=\"auto, (max-width: 578px) 100vw, 578px\" \/><figcaption class=\"wp-element-caption\">Yolov8m<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>v-n trova una sola persona.<\/li>\n\n\n\n<li>v-s-l trovano tutte le persone tranne 2 a destra dell&#8217;immagine, quella al centro con alta confidenza mentre le altre con una confidenza tra 0.4 e 0.55.<\/li>\n\n\n\n<li>v-m trova tutte le persone tranne le ultime due a destra e quella pi\u00f9 a sinistra.<\/li>\n<\/ul>\n\n\n\n<p>Pre-Yolo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"846\" height=\"1024\" src=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t3-846x1024.jpg\" alt=\"\" class=\"wp-image-68\" style=\"width:305px\" srcset=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t3-846x1024.jpg 846w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t3-248x300.jpg 248w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t3-768x930.jpg 768w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t3-1269x1536.jpg 1269w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/t3.jpg 1652w\" sizes=\"auto, (max-width: 846px) 100vw, 846px\" \/><\/figure>\n\n\n\n<p>Post-Yolo<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"562\" height=\"689\" data-id=\"70\" src=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/l3.jpg\" alt=\"\" class=\"wp-image-70\" srcset=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/l3.jpg 562w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/l3-245x300.jpg 245w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\" \/><figcaption class=\"wp-element-caption\">Yolov8l<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"572\" height=\"692\" data-id=\"71\" src=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/m3.png\" alt=\"\" class=\"wp-image-71\" srcset=\"https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/m3.png 572w, https:\/\/stage.centrica.it\/wp-content\/uploads\/2024\/05\/m3-248x300.png 248w\" sizes=\"auto, (max-width: 572px) 100vw, 572px\" \/><figcaption class=\"wp-element-caption\">Yolov8m<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>v-n trova le tre persone di cui quella con la nuvola a 0.50 di confidenza mentre le altre due a 0.80.<\/li>\n\n\n\n<li>v-s la persona con la nuvola la trova a 0.40 confidenza.<\/li>\n\n\n\n<li>v-m come in precedenza trova le tre persone con la stessa confidenza, ma trova anche i due bambini che considera una sola persona anche se con bassa confidenza.<\/li>\n\n\n\n<li>v-l trova tutti ad alta confidenza ma considera anche la nuvola in basso a sinistra come teddy bear.<\/li>\n<\/ul>\n\n\n\n<p>Dopo aver testato Yolo ho provato ad allenare io stesso l&#8217;AI, per fare ci\u00f2 avevo bisogno di un dataset, una directory contenente le immagini gi\u00e0 etichettate grazie ad un file jpeg dell immagine con il corrispondente file txt che aveva le informazioni per etichettare l&#8217;immagine, le informazioni in questione sono: il nome dell&#8217;etichetta, la posizione x e y del centro dell&#8217;oggetto e l&#8217;altezza e larghezza del quadrato che conteneva l&#8217;oggetto.<\/p>\n\n\n\n<p>Per automatizzare il processo ho creato un codice in python che riceveva in input un file csv e creava un file csv ordinato con le stesse informazioni, il codice poi continua ricevendo dal file csv le informazioni delle colonne richieste con il nome del dato che serviva per creare un file txt con tutte le etichette dell&#8217;immagine corrispondente, per poi installare l&#8217;immagine grazie all&#8217;URL del file csv e nominare i due file in base all&#8217;ordine di creazione, per esempio i primi due file si chiameranno rispettivamente img.txt e img.jpeg.<\/p>\n\n\n\n<p>Nel dataset vanno poi messe due directory(chiamate entrambe val), una nella directory delle immagini e una in quella dei file txt (nello stesso formato delle precedenti), in modo da usarle per &#8220;validare&#8221; le immagini usate per allenare l&#8217;AI<\/p>\n\n\n\n<p>Dopo aver ottenuto un dataset basta fare un file yaml, usato per dare una configurazione al dataset, e comprimere il tutto in un zip, e darlo in pasto a un sito che utilizza l&#8217;API  di Yolo come Ultralytics per esempio.<\/p>\n\n\n\n<p>Per fare il codice ho dovuto studiare Python da 0 dato che non ne avevo esperienza con quel linguaggio, ho dovuto installare tutte le cose necessarie ed infine fare il codice.<\/p>\n\n\n\n<div style=\"height:140px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Yolo(You Only Look Once) \u00e8 un algoritmo fatto nel 2015 che rivela in tempo reale gli oggetti all&#8217;interno di un&#8217;immagine con una velocit\u00e0 superiore ad altri algoritmi. Uno dei siti che ho utilizzato per vedere il funzionamento di yolo \u00e8 Ultralytics, esso aveva le seguenti configurazioni: Test fatti con Ultralytics Qui sotto indico le immagini [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-17","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/stage.centrica.it\/index.php\/wp-json\/wp\/v2\/pages\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stage.centrica.it\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stage.centrica.it\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stage.centrica.it\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stage.centrica.it\/index.php\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":19,"href":"https:\/\/stage.centrica.it\/index.php\/wp-json\/wp\/v2\/pages\/17\/revisions"}],"predecessor-version":[{"id":92,"href":"https:\/\/stage.centrica.it\/index.php\/wp-json\/wp\/v2\/pages\/17\/revisions\/92"}],"wp:attachment":[{"href":"https:\/\/stage.centrica.it\/index.php\/wp-json\/wp\/v2\/media?parent=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}