Apprendimento automatico e Reti Neurali - pagina 39

 

Rilevamento, tracciamento, sfocatura e conteggio di oggetti in tempo reale utilizzando YOLOv8: un tutorial passo-passo



Rilevamento, tracciamento, sfocatura e conteggio di oggetti in tempo reale utilizzando YOLOv8: un tutorial passo-passo

Questo tutorial si concentra sull'implementazione della sfocatura e del conteggio degli oggetti con il rilevamento e il tracciamento degli oggetti in tempo reale utilizzando YOLOv8. Il tutorial fornisce i passaggi per scaricare i file richiesti, inclusi i file Deep Sort per il tracciamento degli oggetti e un video di esempio per il test. Il tutorial utilizza la libreria CV2 di OpenCV per sfocare gli oggetti rilevati e fornisce il codice per il rilevamento, il tracciamento e la sfocatura degli oggetti. L'oratore dimostra il processo di determinazione delle coordinate del riquadro di delimitazione, il ritaglio dell'immagine e l'applicazione della funzione di sfocatura. Inoltre, il presentatore spiega il codice per il conteggio del numero totale di oggetti in ogni fotogramma utilizzando un dizionario e dimostra come il codice rileva, tiene traccia e offusca gli oggetti mentre visualizza il conteggio totale degli oggetti in ogni fotogramma. Nel complesso, i risultati sono buoni e nella descrizione viene fornito un repository GitHub per il progetto.

  • 00:00:00 In questa sezione del tutorial, l'obiettivo è sfocare gli oggetti rilevati e contare il numero di oggetti in ogni fotogramma. Il tutorial usa YOLOv8 per il rilevamento di oggetti con tracking ID e tracce. Il tutorial fornisce una guida dettagliata dalla selezione del runtime della GPU all'esecuzione degli script per il download dei file richiesti, inclusi i file Deep Sort per il tracciamento degli oggetti e un video di esempio per il test. Il tutorial evidenzia anche l'uso della libreria CV2 di OpenCV per sfocare gli oggetti rilevati e fornisce il codice per implementare il rilevamento, il tracciamento e la sfocatura degli oggetti.

  • 00:05:00 In questa sezione, il video tutorial spiega come sfocare gli oggetti rilevati nel rilevamento e tracciamento degli oggetti in tempo reale utilizzando YOLOv8. Per implementare ciò, è necessario conoscere le coordinate del riquadro di delimitazione, che include il vertice in alto a sinistra e il vertice in basso a destra, quindi sfocare l'oggetto all'interno di questo riquadro di delimitazione. Le coordinate sono memorizzate nel file "predict.pi" e si possono ottenere questi valori per sfocare gli oggetti.

  • 00:10:00 In questa sezione del video, il relatore spiega come sfocare l'oggetto all'interno del riquadro di delimitazione dell'oggetto rilevato. Per prima cosa determina le coordinate del riquadro di delimitazione prima di ritagliare l'immagine per contenere solo l'area in cui si trova il riquadro di delimitazione. Quindi, applica la funzione di sfocatura utilizzando la sfocatura dei punti CV2 e imposta il rapporto del sangue, che determina la sfocatura dell'area. L'oratore dimostra il processo scrivendo ed eseguendo lo script.

  • 00:15:00 In questa sezione del video, il presentatore mostra come implementare la sfocatura degli oggetti utilizzando YOLOv8 per il rilevamento, il tracciamento e il conteggio degli oggetti in tempo reale. Dopo aver apportato alcune correzioni minori ed eseguito lo script, il presentatore mostra i risultati della funzione di sfocatura degli oggetti, che funziona bene. Successivamente, il presentatore passa a spiegare il codice per contare il numero totale di oggetti in ogni fotogramma, il che comporta la creazione di un dizionario che contiene il nome dell'oggetto e il numero di volte in cui appare nel fotogramma corrente. Il presentatore non mostra il codice per questa parte per evitare di rendere il video troppo lungo.

  • 00:20:00 In questa sezione, il presentatore spiega la funzione di conteggio, che estrae chiavi e valori da un dizionario contenente i nomi degli oggetti e il loro conteggio (il numero di apparizioni nell'attuale frame frontale). Questa funzione crea un rettangolo e lo sovrappone con il testo che mostra il numero di volte che l'oggetto è apparso. Il presentatore dimostra anche come il codice rileva e tiene traccia degli oggetti, li sfoca e visualizza il conteggio totale degli oggetti in ogni fotogramma. I risultati sono buoni e nella descrizione viene fornito un repository GitHub per il progetto.
 

Addestra YOLOv8 su set di dati personalizzati | Rilevamento e riconoscimento degli alfabeti della lingua dei segni utilizzando YOLOv8



Addestra YOLOv8 su set di dati personalizzati | Rilevamento e riconoscimento degli alfabeti della lingua dei segni utilizzando YOLOv8

Il video mostra l'implementazione di YOLOv8 su un set di dati personalizzato per il rilevamento e il riconoscimento dell'alfabeto della lingua dei segni. Il processo prevede il download del set di dati, l'addestramento del modello per 50 epoche e la valutazione delle sue prestazioni utilizzando la matrice di confusione e le perdite di addestramento e convalida. Il relatore discute anche di come vengono convalidate le previsioni del modello sul batch di convalida e le immagini non utilizzate per l'addestramento per determinare come si comporta su immagini diverse. Il modello addestrato viene quindi convalidato e testato sulle immagini del set di dati di convalida e viene mostrata un'inferenza video dimostrativa con buoni risultati. Nel complesso, il video evidenzia l'applicazione di YOLOv8 per l'addestramento di set di dati personalizzati e il rilevamento di oggetti.

  • 00:00:00 In questa sezione del video, il presentatore introduce l'argomento della formazione YOLOv8 sui dati personalizzati per il rilevamento e il riconoscimento degli alfabeti della lingua dei segni. Spiegano il processo passo dopo passo e discutono su come implementare un sistema di rilevamento e riconoscimento dell'alfabeto della lingua dei segni utilizzando YOLOv8. Il presentatore importa varie librerie tra cui sistema operativo, display IPython e G-LOP, necessarie per visualizzare matrici di confusione, perdite di addestramento e convalida e immagini di test. Il presentatore mostra quindi come verificare l'accesso alla GPU e definisce una variabile di supporto per una facile navigazione tra diverse cartelle contenenti immagini del set di dati. Infine, installano Ultra Analytics utilizzando "pip install" e verificano che YOLOv8 sia installato e funzioni correttamente.

  • 00:05:00 In questa sezione, il video mostra il processo di implementazione di YOLOv8 su un set di dati personalizzato per il rilevamento e il riconoscimento dell'alfabeto della lingua dei segni. Il set di dati viene scaricato da Roboflow e il modello YOLOv8 viene addestrato su di esso per 50 epoche. La matrice di confusione viene utilizzata per valutare le prestazioni del modello, identificando la capacità del modello di rilevare e classificare le diverse classi. I risultati mostrano che il modello è stato in grado di rilevare correttamente l'alfabeto A il 60% delle volte, ma a volte ha portato a una classificazione errata o non è stato in grado di rilevarlo. Nel complesso, il video evidenzia l'applicazione di YOLOv8 per l'addestramento di set di dati personalizzati e il rilevamento di oggetti.

  • 00:10:00 In questa sezione del video, il relatore discute la matrice di confusione, che mostra come il modello ha gestito le diverse classi e le perdite di addestramento e convalida, con quelle importanti che sono i registri delle scatole e la perdita di classificazione. Vengono inoltre visualizzate le previsioni del modello sul batch di convalida e le immagini non utilizzate per l'addestramento vengono convalidate per determinare il comportamento del modello su immagini diverse. Il modello personalizzato viene quindi convalidato e testato sulle immagini del set di dati di convalida, seguito da un'inferenza video dimostrativa, che mostra il modello che rileva e riconosce gli alfabeti della lingua dei segni con buoni risultati. Infine, gli spettatori sono incoraggiati a testare i propri modelli con il set di dati video fornito.
 

Segmentazione YOLOv8 con tracciamento degli oggetti: implementazione del codice passo dopo passo | Google Colab | finestre



Segmentazione YOLOv8 con tracciamento degli oggetti: implementazione del codice passo dopo passo | Google Colab | finestre

Questo tutorial video fornisce una guida completa su come implementare la segmentazione YOLOv8 con l'ID di tracciamento dell'ordinamento profondo e le tracce. Il relatore guida gli spettatori attraverso il processo di importazione dei file di script necessari, l'installazione delle dipendenze e l'impostazione della directory richiesta per la segmentazione e il tracciamento degli oggetti con il deep sort. Il tutorial include una dimostrazione del tracciamento degli oggetti con ID univoci e tracce di movimento e una discussione sul repository GitHub che fornisce il codice della soluzione con un clic per la segmentazione YOLOv8 e il tracciamento dell'ordinamento profondo. Il tutorial introduce anche un programma di patreon con accesso esclusivo a video tutorial che non verranno caricati sul canale YouTube. Nel complesso, il tutorial offre una spiegazione dettagliata dell'implementazione del codice per la segmentazione YOLOv8 con tracciamento degli oggetti.

  • 00:00:00 In questa sezione del video tutorial, gli spettatori vengono guidati su come implementare la segmentazione YOLO V8 con l'ID di tracciamento dell'ordinamento profondo più le tracce. Il tutorial fornisce una spiegazione end-to-end del codice con una dimostrazione del processo di implementazione su Google Colab, nonché su Windows e Linux. Agli spettatori viene inoltre presentato un nuovo programma Patreon, che offre accesso esclusivo a due o tre progetti a settimana, inclusi tutorial video che non verranno caricati sul canale YouTube. Il video si conclude con una discussione sul repository GitHub, che fornisce il codice della soluzione con un clic per la segmentazione YOLO V8 e il monitoraggio dell'ordinamento profondo, semplificando l'implementazione su set di dati personalizzati o sul set di dati MS Coco pre-addestrato.

  • 00:05:00 In questa sezione, il relatore ripercorre i passaggi iniziali coinvolti nell'implementazione della segmentazione YOLOv8 con tracciamento degli oggetti. Il primo passaggio prevede la clonazione del repository GitHub e l'importazione di tutti i file di script necessari. Le dipendenze vengono installate utilizzando il file setup.py e la directory richiesta è impostata per eseguire la segmentazione e il monitoraggio degli oggetti con il deep sort. Il presentatore scarica quindi un video di esempio per il test da Google Drive e dimostra come viene eseguito il tracciamento degli oggetti con ID univoci assegnati a ciascun oggetto e tracce che mostrano il movimento di ciascun oggetto. Il video si conclude con una spiegazione di come implementare YOLOv8 su un sistema Windows utilizzando PyCharm.

  • 00:10:00 In questa sezione, il relatore fornisce una guida passo passo per implementare la segmentazione YOLOv8 con tracciamento degli oggetti in Google Colab su Windows. Il processo prevede la clonazione del repository GitHub, l'impostazione della directory corrente come cartella clone, l'installazione di tutte le dipendenze e il download dei file di ordinamento profondo. I file di ordinamento profondo sono necessari per implementare il tracciamento degli oggetti utilizzando l'algoritmo di ordinamento profondo. Questi file vengono scaricati ed estratti nella cartella del tutorial segmentato. Il relatore menziona anche che sono disponibili più algoritmi di tracciamento degli oggetti che possono essere utilizzati al posto del deep sort.

  • 00:15:00 In questa sezione, il relatore discute l'algoritmo di tracciamento degli oggetti e osserva che dopo il test, hanno scoperto che l'algoritmo di ordinamento profondo funziona meglio. Spiegano che utilizzeranno l'algoritmo SORT per il tracciamento nello script. L'oratore scarica un video dimostrativo e mostra il codice, spiegando il modello preaddestrato YOLOv8-sec BT utilizzato per il tracciamento degli oggetti. Discutono anche dei vari modelli di YOLOv8 e dei loro compromessi tra velocità e precisione. Infine, il relatore spiega lo script predict.5 e sottolinea come vengono definiti i colori del riquadro di delimitazione per gli oggetti rilevati.

  • 00:20:00 In questa sezione, l'oratore dimostra la funzione che crea un rettangolo attorno all'oggetto rilevato, assegna un ID e un'etichetta univoci e crea un riquadro di delimitazione. Spiegano come viene utilizzata la funzione touch box dell'interfaccia utente per creare il riquadro di delimitazione e il rettangolo sopra, mentre la funzione rettangolo punto due CV crea il rettangolo attorno all'oggetto rilevato. L'oratore mostra anche come la funzione Draw Dash boxing trova il centro del bordo inferiore del riquadro di delimitazione per tracciare traiettorie e assegna a ciascun oggetto un ID univoco. Nel complesso, il relatore fornisce una spiegazione dettagliata dell'implementazione del codice per la segmentazione YOLOv8 con tracciamento degli oggetti.

  • 00:25:00 In questa sezione, l'oratore spiega l'uso di una coda doppia (DQ) invece di un elenco per memorizzare i dati. Il DQ viene utilizzato per memorizzare i valori degli oggetti e rimuovere l'ID di un oggetto che non si trova nel frame corrente. I dati vengono utilizzati per tracciare percorsi utilizzando la linea di strumenti CV2. La segmentazione viene eseguita e il video di output mostra le tracce e gli oggetti rilevati con ID univoco assegnato. Il relatore osserva che lo script potrebbe richiedere più tempo per essere eseguito su una CPU, ma può essere eseguito su una GPU con gli stessi passaggi.
 

YOLOv8 | Rilevamento oggetti | Segmentazione | Tutorial completo Google Colab| Soluzione con un solo clic



YOLOv8 | Rilevamento oggetti | Segmentazione | Tutorial completo Google Colab| Soluzione con un solo clic

Il video tutorial mostra come implementare YOLOv8 utilizzando Google Colab per il rilevamento e la segmentazione degli oggetti. Gli utenti vengono guidati attraverso le fasi di clonazione del repository GitHub, installazione di pacchetti, configurazione di directory e importazione di video dimostrativi da Google Drive per il test. All'utente viene inoltre mostrato come eseguire il modello YOLOv8 per il rilevamento di oggetti su un video dimostrativo, come risolvere eventuali problemi di spaziatura e come salvare e scaricare il video di output. Il tutorial copre anche l'esecuzione della segmentazione con YOLOv8 e sottolinea l'importanza di rimuovere i file compressi precedenti prima di procedere. Viene fornito un collegamento per scaricare il file del blocco appunti e gli spettatori sono incoraggiati a porre domande nella sezione dei commenti.

  • 00:00:00 In questa sezione, il relatore discute l'implementazione di YOLOv8 utilizzando Google Colab per il rilevamento e la segmentazione. Il tutorial inizia con la clonazione del repository GitHub YOLOv8 e l'installazione dei pacchetti richiesti. Il presentatore mostra come configurare il sistema con le directory richieste e importare video dimostrativi da Google Drive per i test. Seguendo questi passaggi ed eseguendo le celle fornite, gli utenti possono installare e implementare YOLOv8 in Google Colab per il rilevamento e la segmentazione degli oggetti.

  • 00:05:00 In questa sezione, l'esercitazione video illustra l'esecuzione del modello YOLOv8 per il rilevamento di oggetti su un video dimostrativo. Il video viene importato nella cartella e il repository GitHub YOLOv8 viene aggiunto al notebook. Il video "test 1" viene quindi testato per il rilevamento con il modello YOLOv8 e tutti i problemi di spaziatura vengono risolti prima di provare il video "test 2". Il video di output viene salvato in un percorso e può essere scaricato per rivedere i risultati, ma il tutorial include anche uno script per mostrare il video dimostrativo all'interno di Google Colab utilizzando le librerie HTML e del sistema operativo.

  • 00:10:00 Questo estratto sembra essere la continuazione di un tutorial sulla creazione di un modello di rilevamento degli oggetti utilizzando YOLOv8 in Google Colab. L'oratore sta apportando alcune modifiche al codice e verificando la presenza di errori per garantire che il percorso sia corretto per il video di output. Citano un problema con RB.free mancante e un problema di spaziatura, che correggono prima di eseguire nuovamente il codice. Il video mostra l'output del modello di rilevamento degli oggetti.

  • 00:15:00 In questa sezione, l'utente esegue la segmentazione utilizzando YOLOv8. Copiano il codice necessario e lo eseguono per eseguire la segmentazione, ottenendo risultati impressionanti nel video di output. L'utente sottolinea l'importanza di rimuovere il file compresso precedente prima di procedere con la segmentazione. Forniscono inoltre un collegamento per scaricare il file del taccuino e incoraggiano gli spettatori a porre eventuali domande nella sezione dei commenti.
 

Riconoscimento delle emozioni facciali AI | Identificare le espressioni facciali con V7



Riconoscimento delle emozioni facciali AI | Identificare le espressioni facciali con V7

I tutorial video illustrano il processo di utilizzo della piattaforma V7 per creare set di dati con annotazioni per il riconoscimento delle emozioni dei volti dell'IA. I tutorial coprono vari aspetti del processo, tra cui la creazione di un set di dati, l'annotazione di immagini e video per le emozioni, l'addestramento del modello e il test su immagini di esempio e webcam dal vivo. L'importanza di un'etichettatura accurata per un addestramento efficace dei modelli di intelligenza artificiale è sottolineata in tutti i tutorial e vengono evidenziate le funzionalità della piattaforma V7 e i molteplici modelli. I tutorial forniscono esempi end-to-end del processo di annotazione per identificare le espressioni facciali utilizzando l'intelligenza artificiale.

  • 00:00:00 In questa sezione, lo YouTuber spiega come utilizzare la piattaforma V7 per creare un rilevatore di espressioni facciali. Eseguono le fasi di creazione di un set di dati, caricamento di immagini e video ed etichettatura del set di dati. La piattaforma V7 consente all'utente di addestrare il proprio modello per il rilevamento degli oggetti o la segmentazione e la classificazione e testarlo su immagini di esempio, video o persino su webcam. Lo YouTuber utilizza l'esempio di un'espressione facciale arrabbiata e carica immagini per addestrare il modello. Menzionano anche che V7 offre vari formati per immagini e video, inclusi PNG, JPG, JFIF, MP4 e ABI, tra gli altri. Nel complesso, questo video fornisce un tutorial end-to-end su come implementare un rilevatore di espressioni facciali utilizzando la piattaforma V7.

  • 00:05:00 In questa sezione, il relatore illustra il processo di annotazione delle espressioni facciali con i laboratori V7. Usando l'esempio della classe arrabbiata, il presentatore mostra come disegnare un rettangolo di delimitazione attorno al volto di una persona e quindi creare un'etichetta di classe per le emozioni arrabbiate. Il presentatore passa quindi ad annotare tutte le 50 immagini incluse nel set di dati, osservando che il processo può essere replicato anche per annotare i fotogrammi video. Nel complesso, il relatore sottolinea l'importanza di un'etichettatura accurata per un addestramento efficace dei modelli di riconoscimento delle emozioni facciali dell'IA.

  • 00:10:00 In questa sezione del video, il presentatore mostra come annotare fotogrammi da un set di dati video per creare immagini visive per il riconoscimento delle emozioni AI. Il presentatore carica un set di dati video ed estrae un fotogramma al secondo per creare singole immagini. Le immagini vengono quindi annotate separatamente per identificare l'emozione rappresentata. Il relatore osserva che il processo richiede molto tempo, ma è importante per la creazione di un set di dati completo per l'apprendimento automatico. Il presentatore dimostra anche la capacità di annotare immagini e video per il riconoscimento delle emozioni AI. Nel complesso, questa sezione fornisce un utile tutorial per la creazione di set di dati annotati per il riconoscimento delle emozioni AI.

  • 00:15:00 In questa sezione, il relatore spiega il processo di caricamento e annotazione di un set di dati per la classe "felice" nel riconoscimento delle emozioni facciali AI utilizzando la tecnologia V7. Il relatore carica 50 immagini e le annota una per una con l'etichetta "felice". Dicono che finora sono state annotate un totale di 182 immagini, di cui 100 per la classe "arrabbiata". Discutono anche del caricamento di un video e della sua suddivisione in frame separati per annotare ciascuno per le espressioni facciali.

  • 00:20:00 In questa sezione, il tutorial video mostra il processo di annotazione per identificare individui felici e paurosi in video e immagini utilizzando il riconoscimento delle emozioni facciali AI. L'annotatore carica 66 video di persone felici e li annota con Envision, ruotando ogni fotogramma ed etichettando espressioni felici o neutre. Successivamente, l'annotatore aggiunge una nuova classe per la paura e carica 50 immagini, quindi annota ciascuna immagine con l'etichetta di emozione appropriata. Il set di dati completato contiene 248 immagini e video e il tutorial fornisce un esempio end-to-end del processo di annotazione per identificare le espressioni facciali utilizzando l'intelligenza artificiale.

  • 00:25:00 In questa sezione, lo YouTuber discute i suoi progressi nell'annotazione e nell'animazione delle immagini per il suo progetto di riconoscimento delle emozioni facciali AI. Hanno annotato con successo tutte le 50 immagini del vetro trasparente e hanno anche completato l'annotazione fotogramma per fotogramma di un video di una persona che ha paura. Lo YouTuber procede quindi ad annotare tutte le immagini per la lezione a sorpresa, che è la loro ultima lezione, e afferma che si sposteranno verso la parte di formazione del video dopo aver completato tutte le annotazioni. Il video mostra un diagramma del flusso di lavoro per il progetto e lo YouTuber chiarisce che eseguiranno il rilevamento degli oggetti e creeranno riquadri di delimitazione anziché segmentazione o classificazione istantanea.

  • 00:30:00 In questa sezione, il tutorial video mostra il processo di addestramento di un modello AI su un set di dati di espressioni facciali ed emozioni utilizzando V7. L'esercitazione mostra come pianificare e monitorare l'addestramento del set di dati, con una notifica tramite posta elettronica inviata dopo il completamento. Il video evidenzia anche le metriche delle prestazioni del modello, tra cui la precisione media e il richiamo, nonché le perdite, che sono diminuite continuamente nel tempo. Il tutorial si conclude mostrando come il modello addestrato può essere distribuito per l'uso in varie API utilizzando Python, shell, JavaScript o Elixir e come il modello può essere testato anche su webcam live.

  • 00:35:00 In questa sezione, il relatore dimostra il riconoscimento delle emozioni facciali AI utilizzando i laboratori V7. Il processo prevede la raccolta e l'etichettatura di set di dati di immagini per le emozioni di rabbia, felicità, paura, sorpresa e altro ancora. Il relatore addestra il modello e lo testa utilizzando una webcam e campioni di immagini, ottenendo ottimi risultati. I laboratori V7 offrono anche più modelli per attività come la segmentazione e la scansione del testo e gli utenti possono creare i propri modelli con crediti gratuiti. L'oratore prende in giro i progetti futuri utilizzando V7 e incoraggia gli spettatori a condividere e apprezzare il video.
 

Giocatore di football in tempo reale e rilevamento e tracciamento della palla utilizzando YOLOv8 Live: Object Tracking YOLOv8



Giocatore di football in tempo reale e rilevamento e tracciamento della palla utilizzando YOLOv8 Live: Object Tracking YOLOv8

In questo video tutorial di YouTube, il relatore mostra il processo di creazione di un set di dati per il rilevamento e il tracciamento di un giocatore di football e della palla utilizzando Roboflow. Il presentatore segue le fasi di caricamento e annotazione delle immagini, preparazione del set di dati, addestramento del modello, test su video di esempio e webcam live e modifica del codice per migliorare il tracciamento. Nel complesso, il modello YOLOv8 funziona bene ma presenta alcune limitazioni nel rilevare il calcio in determinati scenari.

  • 00:00:00 In questa sezione dell'esercitazione, il relatore illustra il processo di creazione di un set di dati per il rilevamento di giocatori e palloni utilizzando Roboflow. Dimostrano come registrarsi per un account e creare un nuovo progetto, nonché come caricare ed elaborare video da YouTube per estrarre frame per l'annotazione. Il presentatore nota che i fotogrammi non sono ancora annotati e procede a caricare un altro video per l'annotazione.

  • 00:05:00 In questa sezione, il creatore del video dimostra il processo di caricamento e annotazione delle immagini per un giocatore di football e un progetto di rilevamento e tracciamento della palla. Il creatore carica immagini ed estrae fotogrammi da un video, assegnando a se stesso il compito di annotare le immagini. Annotano ogni immagine con etichette per il calcio o il giocatore di football e dimostrano l'annotazione di diversi giocatori in ogni immagine. Infine, notano di aver annotato un totale di 1827 immagini per il progetto.

  • 00:10:00 In questa sezione del video, il presentatore parla della preparazione del set di dati per un giocatore di football e del modello di rilevamento della palla ridimensionando tutte le immagini a 640x640, filtrando le immagini senza annotazioni e generando dati aumentati per aumentare il set di dati misurare. I dati aumentati includono due immagini con diversi contrasti e livelli di luminosità generati da una singola immagine. Il relatore esporta il set di dati da Roboflow in un file Google Colab e addestra il modello utilizzando un set di dati sul calcio estratto da un repository GitHub. Connettono anche il loro Google Drive al taccuino Colab per salvare i pesi del modello addestrato.

  • 00:15:00 In questa sezione, l'utente imposta la propria directory di lavoro corrente come repository GitHub e installa tutte le dipendenze necessarie per evitare errori durante l'esecuzione del processo di rilevamento o previsione. Quindi si spostano verso la directory richiesta, rilevano e scaricano il set di dati da roboflow nel loro taccuino Google. L'utente scarica anche i file Deep Sort e li decomprime per implementare il tracciamento degli oggetti utilizzando Deep Sort. Infine, addestrano il modello personalizzato di YOLOv8 sul giocatore di calcio e sul set di dati del calcio e lo convalidano, garantendo una buona media media. L'utente può rivedere i risultati dell'allenamento, inclusa la curva F1, la curva di precisione, la curva di richiamo e i risultati della banca dati di addestramento e convalida.

  • 00:20:00 In questa sezione, il relatore discute i risultati del suo modello YOLOv8 per il rilevamento e il tracciamento di calciatori e palloni. Riportano risultati precisi, con una precisione media di 0,63144 e 0,476 per i giocatori e un buon rilevamento del calcio. L'oratore mostra quindi come hanno scaricato un video di esempio per testare il loro modello e mostra i risultati, oltre a inserire il modello in un test webcam dal vivo. Nel complesso, il modello ha funzionato bene con il rilevamento dei giocatori e l'assegnazione di ID univoci, ma si sono verificati alcuni mancati rilevamenti del calcio.

  • 00:25:00 In questa sezione, il video mostra come rimuovere l'ID univoco assegnato al pallone nel codice per semplificare il processo di tracciamento. Le modifiche al codice vengono apportate modificando il file project.py e rimuovendo l'ID univoco assegnato all'etichetta del calcio. Il video in uscita viene quindi scaricato e testato su una webcam dal vivo, dove il modello è in grado di rilevare con successo il pallone ma non il giocatore, poiché non è vestito come un giocatore. Nel complesso, le modifiche apportate al codice hanno migliorato il processo di tracciamento e prodotto risultati soddisfacenti.

  • 00:30:00 In questa sezione, il relatore mostra uno script che è stato scritto per eseguire previsioni su live webcam utilizzando YOLOv8. Lo script importa YOLO, imposta il file dei pesi ed esegue previsioni con una sorgente impostata su 0 e show impostato su true. Il valore di confidenza è impostato su 0,15. Mentre era vestita da giocatore, la modella non è stata in grado di rilevare il presentatore, ma i risultati per il rilevamento di un pallone da calcio hanno avuto successo.
 

YOLOv8 e VGG16 per rilevamento di volti, sesso, conteggio dei volti e monitoraggio delle persone | Set di dati personalizzato



YOLOv8 e VGG16 per rilevamento di volti, sesso, conteggio dei volti e monitoraggio delle persone | Set di dati personalizzato

Il video tutorial spiega il processo di rilevamento dei volti, classificazione di genere, conteggio dei volti e tracciamento delle persone utilizzando i modelli YOLOv8 e VGG16. Il tutorial copre vari aspetti dell'implementazione e dell'addestramento di questi modelli, tra cui la preparazione dei dati, l'aumento dei dati, la messa a punto del modello VGG16 pre-addestrato, l'utilizzo dell'apprendimento del trasferimento e l'addestramento del modello YOLOv8 per il rilevamento dei volti. Il presentatore spiega anche come montare un Google Drive in un taccuino Google Colab, accedere e convertire set di dati di immagini, scaricare le librerie richieste e integrare il tracciamento degli oggetti utilizzando deepsort. Il tutorial fornisce spiegazioni dettagliate sul codice per disegnare riquadri di delimitazione attorno agli oggetti rilevati, integrare il modello di classificazione di genere, contare il numero di volti in un fotogramma e assegnare a ciascun volto rilevato un ID univoco utilizzando deepsort.update.

  • 00:00:00 In questa sezione del video tutorial, viene spiegato il flusso di lavoro per il rilevamento dei volti con classificazione di genere e conteggio dei volti con tracciamento utilizzando YOLOv8 e VGG16. Il primo passo è preparare il set di dati con immagini di volti di uomini e donne, per addestrare il modello VGG16 per il rilevamento del genere, seguito dall'addestramento del modello YOLOv8 per il rilevamento del volto. Con il rilevamento dei volti di YOLOv8, la classificazione di genere viene eseguita utilizzando il modello VGG16 addestrato. Il tracciamento degli oggetti viene quindi implementato utilizzando Deepsort, assegnando un ID univoco a ciascun volto o persona rilevata. Il notebook è suddiviso in nove passaggi, tra cui l'importazione delle librerie richieste, il montaggio di Google Drive, il caricamento del set di dati, la conversione di immagini ed etichette in array, l'applicazione dell'incremento dei dati, la messa a punto del modello VGG16 sui dati di classificazione di genere, il tracciamento della perdita di addestramento e convalida e test con un'immagine di esempio.

  • 00:05:00 In questa sezione, il relatore discute varie librerie e funzioni che possono essere utilizzate per convertire le immagini in array numpy e viceversa. Spiegano anche l'uso di una libreria categoriale a due trattini e il concetto di approcci sequenziali e funzionali per organizzare i livelli nella rete neurale. Il livello appiattito viene utilizzato per convertire gli input multidimensionali in unidimensionali, mentre il livello denso viene utilizzato per definire la dimensione del livello di output. Inoltre, discutono dell'uso dell'apprendimento di trasferimento con il modello VGG16 e dell'importazione di librerie split, numpy e OS del test del treno. Infine, menzionano l'uso della libreria gdob per accedere a tutti i file in una cartella e la libreria casuale per mescolare i set di dati delle immagini.

  • 00:10:00 In questa sezione, il video spiega come montare un Google Drive con un taccuino Google Colab per accedere a un set di dati, che viene caricato in formato zip. Il set di dati include immagini di volti di uomini e donne e il video mostra come decomprimere e accedere alla cartella contenente queste immagini. Utilizzando la libreria glob, il video accede a tutti i file immagine nelle cartelle del set di dati e li converte in un formato array con etichette che indicano se l'immagine è un volto di uomo o di donna. Il video mostra un'immagine di esempio e spiega come la variabile image files contenga tutti i percorsi dei file immagine della cartella men e women, che possono essere letti utilizzando cb2.im read.

  • 00:15:00 In questa sezione, il relatore spiega come hanno preparato il loro set di dati per il rilevamento del volto e del sesso. Hanno creato una cartella "uomini" e "donne", hanno ridimensionato le immagini al loro interno e le hanno convertite in matrici che sono state poi memorizzate in un elenco di dati. Hanno aggiunto i valori delle etichette corrispondenti in un elenco di etichette, con 1 per le donne e 0 per gli uomini. Gli elenchi di dati ed etichette sono stati quindi convertiti in array utilizzando NumPy. Il relatore dimostra anche l'aumento dei dati con l'uso di un generatore di dati di immagini, generando più immagini da una singola immagine applicando varie trasformazioni. Hanno quindi messo a punto un modello VGG16 pre-addestrato sul loro set di dati di classificazione di genere e implementato l'attivazione softmax per definire il livello di output. La dimensione dell'output è stata impostata su 2 per classificare uomini o donne.

  • 00:20:00 In questa sezione del video tutorial, il relatore dimostra il modello VGG16 per il rilevamento di volti e sesso e mostra come addestrarlo su un set di dati di classificazione generale. Il modello viene salvato nel formato .H5 e ne vengono calcolati l'accuratezza, l'accuratezza di convalida e le parti di perdita. Utilizzando cv2.dsize, l'immagine viene ridimensionata a dimensioni 100x100 e convertita in un array e il modello prevede se l'immagine contiene un uomo o una donna. Nella parte successiva del tutorial, il modello YOLOv8 verrà addestrato su un set di dati di volti per rilevare i volti e assegnare un ID univoco per il tracciamento. L'oratore menziona anche che il conteggio delle facce sarà implementato utilizzando un semplice codice aggiunto al file predict.pi. Nel complesso, il tutorial è suddiviso in sette passaggi.

  • 00:25:00 In questa sezione, il relatore introduce il repository GitHub che utilizzerà per implementare il tracciamento degli oggetti utilizzando il deep sort, nonché il modello YOLO V8 per la riduzione del volto. Discutono di come rileveranno i volti ed eseguiranno la classificazione di genere prima di integrare il codice di tracciamento degli oggetti di ordinamento profondo per assegnare a ciascuna persona un ID univoco. Il relatore quindi imposta la directory corrente come repository di clonazione e installa tutte le librerie e le dipendenze necessarie per lo script. Scaricano anche il set di dati da RoboFlow nel loro taccuino Google Colab, ma riscontrano problemi dovuti all'avere un account privato.

  • 00:30:00 utilizzare i pesi del modello YOLOv8 pre-addestrato per il rilevamento dei volti. Il set di dati viene scaricato e salvato nel mio account Google Drive e ho già addestrato un modello YOLOv8 per 80 epoche per il rilevamento dei volti. Il modello addestrato è già stato salvato e i pesi sono stati scaricati nel taccuino di Google Colab. Anche i file di ordinamento profondo vengono scaricati nel notebook, poiché il tracciamento degli oggetti verrà implementato utilizzando l'ordinamento profondo. Inoltre, un modello VGG16 è stato addestrato per il rilevamento del sesso e il file .h5 del modello è stato salvato e scaricato nell'account Google Drive. I video di esempio vengono scaricati da Google Drive per testare lo script predict.pi, che include il codice di classificazione del genere e il conteggio dei volti.

  • 00:35:00 In questa sezione, l'oratore spiega il codice che è stato aggiunto per implementare il tracciamento degli oggetti utilizzando il deep sort. Viene inizializzata la porta di tracciamento dell'oggetto deep sort e viene definita una funzione per convertire l'output ricevuto dal modello YOLOv8 in un formato compatibile per il deep sort. La funzione UI box crea riquadri di delimitazione attorno agli oggetti rilevati, mentre la funzione draw box chiama le funzioni UI box e draw border per disegnare un rettangolo arrotondato per il testo. Il codice di monitoraggio dell'ordinamento profondo è integrato insieme alla possibilità di tracciare tracce. L'oratore spiega quindi il codice per il classificatore di genere e la funzione di conteggio nel file Paint. La funzione di conteggio viene utilizzata per contare ogni oggetto in ogni fotogramma. Nel complesso, il codice spiega come convertire i valori di output X1, Y1, X2 e Y2 da YOLOv8 in valori di coordinate centrali, altezza e larghezza per il tracciamento degli oggetti utilizzando il deep sort, implementando il rilevamento e il tracciamento degli oggetti in un'applicazione reale.

  • 00:40:00 In questa sezione, il relatore discute la conversione del modello YOLOv8 nelle coordinate del centro xcyc del riquadro di delimitazione e la larghezza e l'altezza del riquadro di delimitazione per renderlo compatibile con il tracciamento degli oggetti di ordinamento profondo. Spiegano inoltre in che modo la funzione Compute Color for Label assegna colori univoci agli oggetti rilevati e la funzione Draw Dash Border crea un rettangolo sopra il riquadro di delimitazione in cui sono scritti l'etichetta e il punteggio di affidabilità. Il relatore parla anche della classe del classificatore di genere e di come viene caricata e utilizzata su ogni fotogramma del video per classificare il genere degli oggetti rilevati. Inoltre, menzionano la funzione UI Dash box e la funzione draw Dash boxes, che vengono utilizzate per creare riquadri di delimitazione e chiamare la funzione di classificazione del genere.

  • 00:45:00 In questa sezione, il presentatore spiega come utilizzare il modello di classificazione di genere per rilevare se un volto appartiene a un uomo o una donna. Dopo aver rilevato il volto, solo le coordinate del riquadro di delimitazione vengono passate al modello di classificazione del genere. Il modello quindi prevede se il volto appartiene a un uomo o a una donna e l'etichetta viene aggiunta di conseguenza sopra il riquadro di delimitazione. Il presentatore spiega quindi la funzione count, che utilizza un dizionario chiamato Foundry-classes per memorizzare il numero di volti rilevati nell'inquadratura. Il conteggio viene visualizzato nell'interfaccia utente sopra la parte superiore del video o dell'immagine.

  • 00:50:00 In questa sezione, l'oratore spiega che il numero di volti rilevati nel fotogramma corrente è memorizzato nel dizionario della classe Foundry nella classe FaceDetails. Il dizionario contiene due valori, la variabile chiave che contiene "volto" e la variabile valore che contiene quanti volti sono stati rilevati nel fotogramma corrente. L'oratore utilizza la funzione di conteggio per mostrare quanti volti sono stati rilevati in ogni fotogramma e assegna un ID univoco a ciascun volto rilevato utilizzando deepsort.update. Il parlante crea anche una classe generale, una classe di classificazione e una classe di pericolo. I rilevamenti del modello vengono testati su più video dimostrativi e l'oratore mostra i risultati dei rilevamenti in ciascun fotogramma.
 

Rilevamento dei semafori e riconoscimento dei colori tramite YOLOv8 | Esercitazione sul rilevamento di oggetti personalizzati



Rilevamento dei semafori e riconoscimento dei colori tramite YOLOv8 | Esercitazione sul rilevamento di oggetti personalizzati

Il video tutorial "Rilevamento dei semafori e riconoscimento dei colori utilizzando YOLOv8" spiega i passaggi per creare un modello di rilevamento dei semafori e riconoscimento dei colori utilizzando Ultralytics YOLOv8 web pro. Copre il set di dati del semaforo, l'aumento dei dati, l'installazione delle librerie necessarie, la messa a punto del modello YOLOv8 e il test del modello su diversi video. Il presentatore sottolinea l'importanza di installare tutte le librerie richieste ei risultati del test del modello sui video dimostrano la sua accuratezza nel rilevare e riconoscere i semafori di vari colori.

  • 00:00:00 , il tutorial copre il set di dati del semaforo che utilizzeranno per il progetto, che consiste in circa 1000 immagini con tre diverse classi di semafori: verde, rosso e giallo. Mostrano esempi di ciascuna etichetta e spiegano come hanno applicato l'aumento dei dati per aumentare le dimensioni del loro set di dati, poiché non avevano abbastanza immagini nel loro set di dati di addestramento. Il video prosegue mostrando come esportare il set di dati da RoboFlow nel notebook Google Colab e introduce anche il prodotto appena lanciato, Expense, che può aiutare ad addestrare, distribuire e monitorare i modelli, tra le altre funzionalità.

  • 00:05:00 In questa sezione, lo YouTuber spiega i passaggi iniziali del processo di implementazione per la creazione di un modello di rilevamento del semaforo e riconoscimento del colore utilizzando l'ultralytics YOLOv8 web pro. Il primo passaggio prevede l'importazione di tutte le librerie necessarie, come OS e glob, che vengono utilizzate per navigare in diversi percorsi di file e tracciare immagini di input e output. Successivamente, controllano la presenza di una GPU e installano tutte le librerie richieste utilizzando pip. Infine, clonano il repository GitHub di ultralytics e lo impostano come directory corrente prima di installare le restanti librerie necessarie. Il video sottolinea l'importanza di installare tutte le librerie necessarie per evitare errori di script in seguito.

  • 00:10:00 In questa sezione del video, il presentatore mostra i passaggi per addestrare e mettere a punto un modello YOLO V8 su un set di dati a semaforo utilizzando Google Colab. Dopo aver impostato la cartella del set di dati come directory corrente, il modello viene addestrato su Ade box per 80 box e i risultati mostrano che la precisione media media con IOU50 per tutte le classi è del 98,3%. Viene quindi presentata la matrice di confusione, che mostra che il modello ha classificato accuratamente le luci verde, rossa e gialla rispettivamente per il 96,7%, 97,4% e 95,5% delle volte. Il relatore osserva inoltre che la perdita è in continua diminuzione e il modello potrebbe essere ulteriormente migliorato addestrandolo su un numero maggiore di epoche. Infine, i migliori pesi del modello vengono convalidati utilizzando le immagini di convalida.

  • 00:15:00 In questa sezione, il relatore discute i risultati del test del modello YOLOv8 su diversi video, incluso un video dimostrativo dei semafori. Il modello è in grado di rilevare con precisione i semafori e assegnare etichette in base al colore della luce, con un colore del riquadro di delimitazione che corrisponde al colore della luce. L'oratore mostra esempi del modello che rileva i semafori rossi, verdi e gialli, con l'etichetta appropriata e il colore del riquadro di delimitazione per ciascuno. I risultati del modello su diversi video dimostrano la sua accuratezza nel rilevare e riconoscere i semafori di vari colori.
 

Analisi e previsione del tasso di abbandono dei clienti utilizzando ANN| Esercitazione sull'apprendimento profondo (Tensorflow, Keras e Python)



Analisi e previsione del tasso di abbandono dei clienti utilizzando ANN| Esercitazione sull'apprendimento profondo (Tensorflow, Keras e Python)

Il video di YouTube intitolato "Customer Churn Analysis and Prediction using ANN| Deep Learning Tutorial(Tensorflow, Keras & Python)" dimostra l'uso di reti neurali artificiali per prevedere il tasso di abbandono dei clienti utilizzando un set di dati di Kaggle. Il video copre vari passaggi coinvolti nella preparazione dei dati, come la pulizia dei dati, la codifica delle caratteristiche categoriche e il ridimensionamento dei valori nelle colonne. L'oratore crea quindi una rete neurale con un singolo strato nascosto di 20 neuroni e una funzione di attivazione sigmoidea mentre definisce i livelli di input e output e un ottimizzatore con una funzione binaria di perdita di entropia incrociata. Vengono visualizzati l'accuratezza raggiunta e il rapporto di classificazione utilizzando la libreria Scikit-learn, con i valori previsti convertiti in formato 0 o 1 per mostrare una precisione di 0,78.

  • 00:00:00 In questa sezione, lo YouTuber introduce l'argomento del tasso di abbandono dei clienti e spiega come utilizzare le reti neurali artificiali per prevederlo. Utilizzeranno un set di dati di Kaggle e Jupyter Notebook per eseguire l'analisi esplorativa dei dati e la pulizia dei dati, seguita da data wrangling, train test e split, e infine prevedere l'abbandono dei clienti utilizzando una rete neurale artificiale. Iniziano importando le librerie necessarie come Pandas e NumPy e quindi procedono a caricare e analizzare il set di dati, eliminando la colonna ID cliente poiché non è utile per prevedere l'abbandono dei clienti.

  • 00:05:00 In questa sezione del video, il relatore discute il processo di verifica dei tipi di dati e l'identificazione di eventuali caratteristiche categoriche. L'oratore scopre che la colonna "addebiti totali" appare come una variabile categoriale, anche se dovrebbe essere un valore float o intero. Per risolvere questo problema, l'oratore converte la colonna in un numero intero. Incontrano anche un errore di spazio vuoto nella posizione 488 e lo risolvono usando errors = "coerce" per ignorare l'errore. Infine, l'oratore controlla che non ci siano valori nelle righe e pianifica di eliminarli se necessario.

  • 00:10:00 In questa sezione, l'oratore discute il processo di eliminazione delle righe vuote dalle colonne dei costi totali utilizzando Python. Inizialmente, l'oratore identifica il numero di righe vuote nella colonna degli addebiti totali e quindi applica pd.notnull() per rimuoverle. Dopo aver eliminato le righe, l'oratore controlla il numero di righe rimaste per assicurarsi che corrisponda al numero previsto. Successivamente, l'oratore converte la colonna dei costi totali in un tipo di dati numerico utilizzando pd.to_numeric(). L'oratore identifica l'errore di non salvare la conversione del tipo di dati e lo regola.

  • 00:15:00 In questa sezione del video, il presentatore conduce un'analisi esplorativa dei dati sui dati sull'abbandono dei clienti. Convertono la colonna "addebiti totali" nel tipo float e controllano i valori utilizzando le visualizzazioni. Quindi tracciano un istogramma per vedere quanti clienti fedeli rimangono (non abbandoni) sulla base di una durata di 10 mesi e codificano a colori i punti dati che indicano che i clienti che lasciano in verde e quelli che rimangono in rosso.

  • 00:20:00 In questa sezione, l'oratore discute la modifica delle istruzioni per trovare i valori univoci in ogni colonna e l'aggiunta dei nomi delle colonne prima dei valori univoci. L'oratore parla anche della ricerca di tutte le colonne con variabili categoriche e della loro conversione in numeri interi o float. Quindi definiscono una funzione per mettere insieme tutti questi passaggi ed essere in grado di stampare i valori categorici in qualsiasi dataframe.

  • 00:25:00 In questa sezione del video, l'oratore mostra come utilizzare una funzione per stampare valori categorici o valori del tipo di dati oggetto per qualsiasi frame di dati che vi viene inserito. Quindi modificano il frame di dati convertendo una colonna in un tipo di dati float e rimuovendola. L'oratore sostituisce "nessun servizio Internet" e "nessun servizio telefonico" con "no" utilizzando la funzione di sostituzione e definisce una colonna sì-no in cui sostituiscono tutte le variabili sì e no con 1 e 0, rispettivamente, per convertire i valori categorici in valori numerici, che sono più facili da comprendere per i modelli di machine learning.

  • 00:30:00 In questa sezione, il relatore discute i passaggi coinvolti nella preparazione dei dati per l'apprendimento automatico. Dimostrano come suddividere il set di dati in set di addestramento e test e come codificare le caratteristiche categoriche sostituendo "femmina" con 1 e "maschio" con 0. L'oratore utilizza quindi TensorFlow e Keras per creare una rete neurale con un singolo livello nascosto di 20 neuroni e una funzione di attivazione sigmoidea. Il livello di input ha 27 feature e il livello di output è definito.

  • 00:35:00 In questa sezione del video, il relatore illustra come convertire i dati di testo in valori interi utilizzando i manichini get per preparare i dati per i modelli di machine learning. Il presentatore mostra come generare valori fittizi per variabili come servizio Internet e contratto, quindi utilizza min max scalar per ridimensionare i valori nelle colonne tra 0 e 1. Lo scopo del ridimensionamento è portare i valori nelle colonne tra 0 e 1 in modo che il modello di apprendimento automatico possa comprendere e interpretare i dati in modo accurato.

  • 00:40:00 In questa sezione, il relatore discute come definire il livello di input, il livello di output e l'ottimizzatore per l'analisi e la previsione del tasso di abbandono dei clienti utilizzando una rete neurale artificiale. Rimuove lo strato di input non necessario e definisce lo strato di output composto da uno o zero con una funzione di attivazione sigmoidea. Osserva che la funzione ReLU può essere utilizzata nel livello nascosto per problemi di classificazione, ma non nel livello di output. L'ottimizzatore è definito con una funzione binaria di perdita di entropia incrociata e l'accuratezza è verificata con una compilazione del modello di 100 epoche. Infine, mostra l'accuratezza raggiunta e il rapporto di classificazione utilizzando la libreria Scikit-learn.

  • 00:45:00 In questa sezione, l'oratore spiega come hanno convertito i valori previsti, che erano in un array bidimensionale e variavano da 0 a 1, nella forma 0 o 1. Lo hanno fatto usando un ciclo for, affermando che se un valore era maggiore di 0,5, sarebbe stato considerato come 1, e se era minore di 0,5, sarebbe stato considerato come 0. Dopo aver convertito i valori, l'oratore ha stampato la classificazione rapporto, che mostra una precisione di 0,78. Il tutorial si conclude con il relatore che ringrazia gli spettatori per la visione e li invita a iscriversi al canale.
 

Monitoraggio del veicolo / Monitoraggio del traffico yolov5+deepsort



Monitoraggio del veicolo / Monitoraggio del traffico yolov5+deepsort

Per tutti quelli che vengono qui da YouTube o vogliono semplicemente usare il mio repository per dedurre. Questo è un progetto molto vecchio solo per imparare il CV quando ero a scuola. È passato molto tempo, quindi ho dimenticato tutto quello che ho fatto in questo progetto di giocattoli. Ho modificato da questo repository e ho aggiunto alcune righe di codice per alcuni vincoli. Ragazzi, potete usare quel repository per i riferimenti. Grazie.

I rilevamenti generati da YOLOv5 vengono passati all'algoritmo Deep Sort che tiene traccia degli oggetti.

Codice: https://github.com/duongcongnha/Vehicle-tracking