Aprendizado de máquina e redes neurais - página 38

 

Rastreamento de objetos em tempo real usando YOLOv8 e DeepSORT | Contagem de Veículos (Entrada e Saída de Veículos)



Rastreamento de objetos em tempo real usando YOLOv8 e DeepSORT | Contagem de Veículos (Entrada e Saída de Veículos)

O vídeo demonstra a implementação do rastreamento de objetos em tempo real usando YOLOv8 e DeepSORT para contar o número de veículos entrando e saindo de uma rodovia. O apresentador fornece um guia passo a passo, começando com a clonagem do repositório GitHub, instalando os pacotes necessários, configurando o diretório e examinando o script de rastreamento. O tutorial aborda o uso de filas duplas, pré-processamento, regressão não máxima e função Deep SORT para gerar IDs exclusivos e determinar nomes de classe. O apresentador também explica como adicionar um recurso de contagem de veículos usando uma linha na tela, e cada vez que a trilha de um veículo se cruza com essa linha, a contagem aumenta. A interface do usuário é definida usando uma função específica. Por fim, o apresentador mostra como a saída atual do script pode detectar cruzamentos com a linha e contar os veículos entrando e saindo da área.

  • A seção 00:00:00 do vídeo mostra uma demonstração da implementação do rastreamento de objetos usando classificação profunda no YOLO V8. O tutorial abordará a criação de um aplicativo para contar o número de veículos que entram e saem de uma rodovia. O apresentador fornece um guia passo a passo para seguir usando o PyCharm IDE e explica cada etapa em detalhes. A primeira etapa é clonar o repositório GitHub e instalar os pacotes necessários. O vídeo também inclui uma seção sobre como configurar o diretório e examinar o script de rastreamento.

  • 00:05:00 Nesta seção do vídeo, o palestrante explica como configurar o arquivo tracking dot e baixar e colocar os arquivos DeepSORT do Google Drive na pasta YOLOv8. Os arquivos do DeepSORT são muito grandes para serem carregados no GitHub, então eles devem ser baixados do link do Google Drive fornecido. O vídeo demonstra como extrair os arquivos baixados e colocá-los na pasta apropriada. O palestrante também mostra como baixar um vídeo de amostra e executar o script. O script pode levar algum tempo para ser executado, pois eles o estão testando na CPU, mas o palestrante explica o código com mais detalhes enquanto o script é executado.

  • 00:10:00 Nesta seção, o palestrante explica o uso de uma fila dupla (DQ) e por que ela é preferível a uma lista ao realizar operações de inserção ou pop ao mesmo tempo. O palestrante usa DQ para acrescentar valores na forma de coordenadas centrais inferiores da caixa delimitadora e explica como os valores são removidos quando o carro desaparece do quadro. O comprimento máximo do DQ é definido como 64 e, uma vez atingido esse valor, não aceita outros valores. O alto-falante também define a paleta de cores e a interface do usuário para criar uma borda elegante ao redor dos objetos detectados.

  • 00:15:00 Nesta seção, o vídeo detalha o código para criar uma interface de usuário (IU) com um retângulo arredondado e um rótulo de texto, bem como o programa anexa objetos detectados a uma fila dupla para gerar trilhas. O código também inclui pré-processamento e regressão não máxima para redimensionar quadros e realizar detecções. A função Deep SORT é chamada para atribuir IDs exclusivos e determinar nomes de classe, enquanto set.modern.names ajuda a recuperar informações do conjunto de dados COCO e gerar caixas delimitadoras.

  • 00:20:00 Nesta seção, o palestrante explica seu código para detecção de objetos usando YOLOv8 e DeepSORT, fornecendo uma visão geral do script e como ele funciona. Eles demonstram a saída atual do script e observam que estão usando um modelo nano, portanto, a detecção do objeto ainda não é perfeita. O palestrante também menciona que criará uma série de palestras sobre visão computacional para Europa e incentiva os espectadores a se inscreverem para mais conteúdo. Por fim, mostram como seu script pode detectar o cruzamento de uma trilha com uma linha, indicando a passagem de um objeto e permitindo a implementação de contagem de veículos para entrada e saída.

  • 00:25:00 Nesta seção, o apresentador explica como o recurso de contagem de veículos foi adicionado ao sistema de rastreamento de objetos em tempo real usando YOLOv8 e DeepSORT. O sistema usa uma linha na tela e cada vez que a trilha de um veículo cruza com essa linha, a contagem aumenta. A contagem pode aumentar se um veículo estiver entrando ou saindo da área, dependendo da direção do movimento do veículo. O apresentador também mostra como a interface do usuário é definida por meio de uma função específica.
 

Segmentação e rastreamento de objetos em tempo real usando YOLOv8 | Contagem de Veículos (Entradas e Saídas)



Segmentação e rastreamento de objetos em tempo real usando YOLOv8 | Contagem de Veículos (Entradas e Saídas)

Este tutorial em vídeo se concentra na implementação de segmentação e rastreamento de objetos em tempo real usando o YOLOv8 e o algoritmo de classificação profunda. Especificamente, demonstra como contar e distinguir entre os diferentes subtipos de veículos que entram e saem de uma determinada área. O tutorial abrange vários aspectos, incluindo estimativa de velocidade, medição de direção e segmentação e rastreamento precisos de cada veículo com seu ID e trilhas. O apresentador também fornece as etapas necessárias para implementar isso em vários IDEs e oferece o código final para seus apoiadores do Patreon.

  • 00:00:00 Nesta seção do vídeo, o apresentador explica como implementar a segmentação de objetos com rastreamento usando YOLOv8 e o algoritmo deep sort. O vídeo demonstra a segmentação e rastreamento de veículos, incluindo a contagem do número de veículos que entram e saem, bem como os tipos de veículos. A implementação também inclui o cálculo da velocidade dos veículos, atribuindo um ID único a cada veículo e também definindo as trilhas. O apresentador fornece as etapas necessárias para implementar isso em vários IDEs, incluindo Anaconda Navigator, PyCharm, Spider e Visual Studio. As dependências necessárias, como bibliotecas, precisam ser instaladas para evitar erros durante a execução do script predict.5.

  • 00:05:00 Nesta seção, o tutorial em vídeo se concentra na implementação de segmentação e rastreamento usando YOLOv8 e deep sort. Os arquivos de classificação profunda são baixados do Google Drive e um vídeo de amostra é usado para teste. O script é modificado para implementar a contagem de veículos para entrada e saída, com um dicionário utilizado para armazenar a contagem de veículos por subtipo. O objeto contador um é utilizado para armazenar a quantidade de veículos que saem por subtipo, enquanto o dicionário contador de cheques é utilizado para armazenar a quantidade de veículos que entram. O script modificado rastreia e conta veículos com base em seu subtipo e se eles entram ou saem do quadro.

  • 00:10:00 Nesta seção, o vídeo discute como criar um sistema de contagem de veículos usando YOLOv8, com um contador de objetos que pode distinguir entre subtipos de veículos como carros, caminhões grandes e motocicletas entrando e saindo de uma determinada área. O vídeo explica o uso de uma função de estimativa de velocidade e como criar uma linha que, ao passar por um veículo, incrementa o contador. Além disso, o vídeo define o PPM constante, ou parâmetro de imagem, que ajuda a medir o número de pixels em uma imagem.

  • 00:15:00 Nesta seção, o palestrante discute o conceito de medição de distância dinâmica com base na distância entre um objeto e a câmera. Eles explicam que isso pode ser feito usando uma fórmula que envolve a distância em metros igual à distância pixel dividida por PPM (pixels por metro) multiplicada por uma constante de 3,6 dividida pela taxa de quadros por segundo. O alto-falante passa a escrever uma função para calcular o ângulo e retornar a velocidade com base na distância e no tempo. Eles também criam mais duas funções - set_d e CCW - e escrevem uma função get_direction para calcular a direção de um objeto com base no eixo y.

  • 00:20:00 Nesta seção do vídeo, o apresentador analisa seu código para segmentação e rastreamento de objetos em tempo real usando YOLOv8. Eles fazem modificações no script, incluindo a adição de uma estrutura de direção e o cálculo do código restante. O apresentador também discute como calcular a velocidade do objeto e anexá-la à lista de IDs. Eles então copiam e colam um código de interseção e continuam fazendo ajustes para corrigir erros no código.

  • 00:25:00 Nesta seção do vídeo, o apresentador adiciona um código contador para contar a quantidade de veículos que entram e saem. O código do contador exibe a contagem total de veículos e a subcontagem, que inclui o número de carros, caminhões e motocicletas que entram. O apresentador também sugere adicionar um display para o número de veículos que saem. Ocorre um erro na função de caixas de desenho e o apresentador o corrige declarando uma variável global para a contagem crescente e regressiva. O script é executado com êxito e o vídeo de demonstração de saída mostra a estimativa de velocidade para cada veículo e a contagem total de veículos com subcontagens para cada tipo de veículo inserido.

  • 00:30:00 Nesta seção, o palestrante discute os resultados de sua segmentação e rastreamento de objetos em tempo real usando o YOLOv8 para contagem de veículos. Eles alcançaram resultados precisos e ainda são capazes de estimar a velocidade de cada veículo, juntamente com rastreamento e trilhas. Além disso, a detecção e segmentação de cada veículo foram realizadas com precisão, e a contagem total de veículos também é mencionada. Eles disponibilizaram este código exclusivamente para seus apoiadores do Patreon, que terão acesso a todos os códigos e projetos que compartilham. Por fim, eles convidam os espectadores a testar os vídeos de demonstração, implementar o código em seus sites ou se inscrever no Patreon.
 

Rastreamento de objetos com YOLOv8: rastreamento de veículos, contagem (entrada e saída) e estimativa de velocidade



Rastreamento de objetos com YOLOv8: rastreamento de veículos, contagem (entrada e saída) e estimativa de velocidade

O tutorial em vídeo descreve como implementar rastreamento de objetos, contagem de veículos e estimativa de velocidade usando YOLOv8 e DeepSORT. O apresentador compartilha um link para o repositório GitHub contendo o código e percorre o processo de clonagem do repositório, download de arquivos DeepSORT, importação de bibliotecas relevantes e definição de uma lista DQ de dados para rastrear objetos. Eles também explicam como determinar a direção do veículo e incrementar a contagem de acordo. Além disso, o apresentador mostra como estimar a velocidade dos veículos implementando a fórmula de distância euclidiana com base nas coordenadas X e Y dos objetos rastreados e configura um espaço para a exibição da contagem. Por fim, a saída do script mostra contagens e velocidades de objetos, indicando assim que a implementação foi bem-sucedida.

  • 00:00:00 Nesta seção do tutorial, o apresentador explica como implementar rastreamento de detecção de objetos e estimativa de velocidade usando YOLOv8. Para começar, o apresentador fornece um link para o rastreamento de objetos YOLOv8 com repositório Deep Sort GitHub, que contém um arquivo do Google Colab, bem como instruções passo a passo para executar o código no Windows. O apresentador segue as etapas necessárias para clonar o repositório, definir o diretório atual e instalar todas as bibliotecas necessárias. Depois disso, o apresentador navega até a pasta de detecção e baixa os arquivos do Deep Sort no link fornecido do Google Drive.

  • 00:05:00 Nesta seção, o palestrante explica as etapas para baixar e implementar o rastreamento de objetos com YOLOv8 usando o DeepSORT. Eles orientam os visualizadores a baixar a pasta DeepSORT descompactando a pasta e colocando-a na pasta principal do projeto. Eles também explicam as importações de biblioteca usadas no arquivo predict.py e descrevem o conceito de fila dupla (DQ) usada para armazenar IDs exclusivos para objetos que entram e saem do quadro. O palestrante também menciona o download do vídeo de amostra do Google Drive e a espera de alguns segundos pela saída, pois eles estão usando CPU em vez de GPU para processamento.

  • 00:10:00 Nesta seção, o palestrante explica várias funções usadas no rastreador de classificação profunda, um algoritmo de rastreamento para rastreamento de objetos. Eles incluem a função dot append, usada para adicionar valores à extremidade direita de um deque, um tipo de dados de contêiner usado para armazenar objetos e a função dot append left usada para inserir valores à extremidade esquerda de um deque. O palestrante também discute a função de cálculo de rótulos coloridos, que atribui cores diferentes a objetos com base em seus tipos. Além disso, as funções desenhar Dash border e desenhar Dash boxes são explicadas em detalhes, onde elas criam uma interface do usuário com um retângulo arredondado que exibe a ID e o nome exclusivos do objeto e uma linha de rastreamento que é criada usando CB2.9.

  • 00:15:00 Nesta seção, o palestrante explica como criar uma Trail Line e implementar o conceito de DQ de dados para rastrear objetos. Eles inicializam uma lista DQ e anexam as coordenadas inferiores de cada objeto detectado a ela. Quando um objeto sai do quadro, seus pontos são removidos da lista DQ de dados. Eles também criam um preditor de detecção de classe, usam o algoritmo Deep Sort para atribuir IDs exclusivos a cada objeto e obtêm seus nomes. Eles chamam uma função draw-boxes e executam as previsões. Além disso, eles implementam a contagem de veículos baixando e colando um arquivo e definindo a direção como norte, sul, leste ou oeste. Se um objeto entra ou sai em uma direção específica, eles incrementam a contagem.

  • 00:20:00 Nesta seção, o palestrante explica como implementou a contagem de objetos em seu script de rastreamento de objetos YOLOv8. Eles definiram uma direção para objetos entrando ou saindo com base em seu movimento através de linhas designadas. Eles também mostraram a contagem de objetos entrando ou saindo e definiram o espaço onde a contagem precisa ser exibida. O palestrante então adicionou a estimativa de velocidade implementando a fórmula de distância euclidiana, usando as coordenadas X e Y de objetos rastreados para calcular suas velocidades. Eles usaram um valor de pixel por metro para fazer o cálculo, que pode ser tornado dinâmico com base na posição da câmera. A saída do script mostrou contagens e velocidades de objetos, indicando que o script estava funcionando corretamente.

  • 00:25:00 Nesta seção, o palestrante explica a fórmula usada para calcular a velocidade dos veículos em metros por hora, que consiste em dividir a distância em pixels pelo valor do pixel por metro (PPM) e multiplicar o resultado por uma constante de tempo . Quando um veículo cruza uma linha definida pela área de detecção definida pelo usuário, o script incrementa a contagem de veículos e discerne se o veículo está entrando ou saindo da área, com base na direção em que está viajando. Por fim, as estimativas de velocidade e contagem de veículos são anexadas à lista de saída e o usuário pode implementar esse projeto seguindo as etapas do tutorial.
 

Reconhecimento automático de placas de veículos usando YOLOV8 e EasyOCR (imagens e vídeos)



Reconhecimento automático de placas de veículos usando YOLOV8 e EasyOCR (imagens e vídeos)

Neste vídeo do YouTube, o apresentador explica como implementar o reconhecimento automático de placas usando YOLOV8 e EasyOCR. Eles guiam os visualizadores pelo processo de implementação usando um bloco de anotações do Google Colab e um repositório GitHub, fornecendo instruções passo a passo e explicando como instalar dependências e baixar o conjunto de dados necessário. O apresentador demonstra a taxa de sucesso do modelo e o processo de validação, além de explicar como usar o EasyOCR para ler placas de veículos. Eles percorrem as etapas finais da execução do script e encontram alguns erros que corrigem, resultando em resultados impressionantes. Embora o script de reconhecimento da placa de licença seja fornecido apenas no repositório GitHub do apresentador para os apoiadores do Patreon, os visualizadores podem aprender sobre as alterações feitas no arquivo predict.py para obter resultados semelhantes.

  • 00:00:00 Nesta seção do vídeo, o apresentador demonstra como implementar a detecção e reconhecimento de placas usando YOLOV8 e EasyOCR. O apresentador usa um bloco de anotações do Google Colab e um repositório GitHub para guiar os espectadores pelo processo de implementação. O notebook contém instruções passo a passo para executar o código, e o repositório GitHub fornece acesso a vários projetos exclusivos para apoiadores do Patreon que contribuem com cinco dólares por mês. O apresentador também explica como instalar as dependências necessárias e baixar o conjunto de dados necessário do Roboflow para treinar um modelo personalizado para detecção de placas de veículos. Por fim, o apresentador mostra a matriz de confusão que revela o quão bem o modelo lidou com diferentes classes, com 84% de sucesso na detecção de placas.

  • 00:05:00 Nesta seção, o palestrante discute os resultados do modelo no conjunto de validação, que mostra uma diminuição na perda e um aumento na precisão média média e na pontuação de rechamada à medida que o número de épocas aumenta. O palestrante também demonstra como baixar o modelo salvo do Google Drive e validá-lo em um vídeo personalizado, obtendo uma precisão média média de 0,926 com um IOU de 50. No entanto, o foco desta seção é a implementação do EasyOCR para leitura do números de placas das placas detectadas e os ajustes feitos no arquivo predict.py para incluir o leitor OCR e as coordenadas da imagem.

  • 00:10:00 Nesta seção, vemos uma explicação de como implementar o reconhecimento automático de placas usando YOLOv8 e EasyOCR. O vídeo discute o processo de corte e conversão da imagem da placa em escala de cinza para ajudar na leitura do texto da placa. Eles mostram como usar o EasyOCR para ler o texto da imagem em escala de cinza da placa do carro escrevendo "reader. read_text(gray)". Eles finalmente testam o script para ver se algum erro ocorre.

  • 00:15:00 Nesta seção, o palestrante percorre as etapas finais da execução do script de reconhecimento de placas usando os modelos YOLOv8 e EasyOCR. Eles encontram alguns erros no código, mas conseguem corrigi-los e executar o script com sucesso. O vídeo de saída demonstra resultados impressionantes, com o modelo detectando placas e lendo texto usando o EasyOCR. O script de reconhecimento da placa será fornecido no repositório GitHub do palestrante para os apoiadores do Patreon, mas os espectadores ainda podem aprender sobre as alterações feitas no arquivo predict.pi no vídeo para obter resultados semelhantes.
 

Detecção e rastreamento de objetos em tempo real usando YOLOv8 no conjunto de dados personalizado: tutorial completo



Detecção e rastreamento de objetos em tempo real usando YOLOv8 no conjunto de dados personalizado: tutorial completo

Neste tutorial em vídeo, o apresentador apresenta um conjunto de dados personalizado contendo imagens de carros, caminhões, motocicletas, picapes, aviões e carros de camping, que é usado para demonstrar a implementação do YOLOv8 com detecção e rastreamento. Eles explicam a importância de um conjunto de dados equilibrado e fornecem instruções passo a passo para navegar no repositório GitHub, configurar o ambiente necessário e implementar o rastreamento de objetos usando o algoritmo de classificação profunda. O apresentador também discute a matriz de confusão e a importância das perdas de treinamento e validação enquanto testa a precisão do modelo executando a inferência com um vídeo de demonstração baixado do Google Drive. Eles concluem compartilhando o arquivo do caderno de colaboração para os interessados.

  • 00:00:00 Nesta seção do tutorial em vídeo, o apresentador apresenta um conjunto de dados multiclasse disponível publicamente que contém cerca de 4.680 imagens de carros, caminhões, motocicletas, picapes, aviões e carros de camping. O conjunto de dados não é equilibrado, pois é super-representado por anotações de carros com cerca de 8.389 anotações, enquanto outras anotações são muito baixas. No entanto, o conjunto de dados é usado para este tutorial, mas ao implementar qualquer projeto ou usar qualquer conjunto de dados disponível publicamente, é importante garantir que o conjunto de dados seja balanceado. O vídeo também apresenta um repositório GitHub usado para o projeto e fornece instruções passo a passo para implementar o YOLO V8 com detecção e rastreamento em qualquer conjunto de dados personalizado. As instruções incluem clonagem do repositório, instalação de dependências, implementação de rastreamento de objetos usando classificação profunda e download de um vídeo de amostra para teste.

  • 00:05:00 Nesta seção do vídeo, o apresentador explica as bibliotecas usadas para exibir imagens e informações de treinamento e demonstra como configurar o ambiente necessário para YOLOv8 usando o Google Colab. O apresentador clona o repositório GitHub para YOLOv8, instala as bibliotecas necessárias e navega até a pasta de detecção. O apresentador mostra como baixar o conjunto de dados personalizado necessário do Roboflow e descompacta-o para obter as pastas de treinamento, teste e validação.

  • 00:10:00 Nesta seção do vídeo, o apresentador discute a implementação do rastreamento de objetos usando o algoritmo deep sort. Eles baixam os arquivos de classificação profunda e os descompactam antes de mostrar a matriz de confusão, que é um gráfico que mostra como um modelo lida com diferentes classes. Eles explicam que a matriz de confusão indica que o modelo detecta carros de camping corretamente 67% das vezes, mas às vezes os classifica como carros simples. Eles também discutem a importância das perdas de treinamento e validação e como eles estão verificando a previsão do modelo em lotes de validação. Por fim, eles baixam os pesos do modelo personalizado do Google Drive e o validam, mostrando que a precisão média média é alta quando o IOU está em 50%.

  • 00:15:00 Nesta seção, o apresentador está testando a precisão do modelo executando inferência com o modelo construído usando um vídeo de demonstração baixado de seu Google Drive. O vídeo mostra carros e caminhões em uma rodovia, e os resultados mostram que o modelo está funcionando bem com um ID exclusivo atribuído a cada objeto, e o rastreamento também é possível. O arquivo de colaboração usado neste tutorial está disponível em seu repositório GitHub. Outro vídeo também é testado e os resultados são igualmente bons, com alguns casos exigindo melhorias. O apresentador compartilha que implementou o rastreamento de detecção de objetos usando YOLOv8 em um conjunto de dados personalizado e compartilha o arquivo de notebook da colaboração para os interessados.
 

Segmentação e rastreamento de objetos em tempo real usando YOLOv8 no conjunto de dados personalizado: tutorial completo



Segmentação e rastreamento de objetos em tempo real usando YOLOv8 no conjunto de dados personalizado: tutorial completo

Este tutorial em vídeo é um guia abrangente sobre o uso do YOLOv8 para segmentação e rastreamento de objetos em tempo real em conjuntos de dados personalizados. O tutorial percorre todo o processo, incluindo a importação de conjuntos de dados, o treinamento de modelos personalizados usando os algoritmos YOLOv8 e Deep Sort e o teste dos modelos em vídeos de demonstração. O palestrante fornece o código e as bibliotecas necessárias para a implementação e mostra os resultados das previsões do modelo. Eles também explicam a matriz de confusão e fornecem links para acessar os vídeos de saída e os arquivos polares no GitHub. No geral, este tutorial é um ótimo recurso para quem quer aprender sobre segmentação e rastreamento de objetos usando o YOLOv8.

  • 00:00:00 Nesta seção, o tutorial em vídeo aborda como usar o YOLOv8 para segmentação e rastreamento em conjuntos de dados personalizados. O tutorial percorre a implementação passo a passo e usa um repositório para ajudar na implementação. O apresentador explica como importar as bibliotecas e dependências necessárias, bem como acessar e baixar um conjunto de dados de tráfego de drones do Roboflow. O código necessário para importar o conjunto de dados também é fornecido, juntamente com instruções sobre como executar o código com êxito. Ressalta-se que é importante assistir ao vídeo completo para entender completamente os conceitos básicos.

  • 00:05:00 Nesta seção, o palestrante explica como treinar modelos personalizados para rastreamento de objetos usando os algoritmos YOLOv8 e Deep Sort. Eles mencionam o procedimento para baixar um conjunto de dados do Roboflow no bloco de notas do Google colab, baixar arquivos Deep Sort e treinar os modelos personalizados para detectar diferentes classes de objetos, incluindo bicicleta, ônibus, carro e caminhão. O palestrante compartilha os resultados da previsão do modelo no lote de validação, salva os pesos do modelo no Google Drive e baixa um vídeo de demonstração para testar o desempenho do modelo. Eles explicam a matriz de confusão e como ela revela a precisão do modelo para diferentes classes de objetos. No geral, o vídeo fornece um tutorial completo sobre segmentação e rastreamento de objetos em tempo real usando YOLOv8 em conjuntos de dados personalizados.

  • 00:10:00 Nesta seção do vídeo, o apresentador testa o modelo em dois vídeos de demonstração e mostra os resultados. O modelo é capaz de detectar e rastrear objetos com precisão, dando a cada objeto uma identificação única e criando rastros para seguir seu movimento. O apresentador fornece um link para acessar o vídeo de saída e o arquivo polar no GitHub.

  • 00:15:00 Nesta seção, o palestrante apresenta os resultados de seu projeto de segmentação e rastreamento de objetos usando YOLOv8 em um conjunto de dados personalizado. O palestrante mostra seus vídeos de saída e menciona que as detecções são muito boas, e os espectadores podem baixar os arquivos para ver os resultados. O palestrante também lembra os espectadores de se inscreverem no canal para futuros vídeos sobre novos tópicos.
Real Time Object Segmentation and Tracking using YOLOv8 on Custom Dataset: Complete Tutorial
Real Time Object Segmentation and Tracking using YOLOv8 on Custom Dataset: Complete Tutorial
  • 2023.01.25
  • www.youtube.com
#yolo #yolov8 #objectdetection #objectracking #opencvpython #opencv #computervision #machinelearning #artificialintelligence #deepsort #multiobjecttracking#...
 

Detecção de sinais de trânsito e semáforos e reconhecimento de cores usando YOLOv8



Detecção de sinais de trânsito e semáforos e reconhecimento de cores usando YOLOv8

Este tutorial do YouTube mostra o uso do YOLOv8 para detecção de sinais de trânsito e reconhecimento de cores. O apresentador apresenta o conjunto de dados, que contém 17 classes diferentes de sinais de trânsito com uma distribuição equilibrada de imagens. O modelo YOLOv8 é treinado e ajustado em mais de 100 épocas, resultando em boas pontuações médias de precisão para iou50 e ioub50. O apresentador demonstra como interpretar a matriz de confusão e validar o modelo no conjunto de dados de validação. O modelo é então testado em dois vídeos de demonstração, ambos mostrando resultados de detecção precisos. No geral, o YOLOv8 funciona bem para detectar sinais de trânsito e semáforos.

  • 00:00:00 Nesta seção do tutorial em vídeo, o apresentador apresenta o conjunto de dados de sinais de trânsito que será usado para treinar o modelo YOLOv8 na detecção de sinais de trânsito. O conjunto de dados contém 17 classes diferentes de sinais de trânsito, com um total de 2.093 imagens para fins de treinamento, validação e teste. O conjunto de dados é balanceado, o que significa que todas as classes têm uma distribuição quase igual de imagens, exceto as luzes verdes que possuem um número ligeiramente maior de imagens. O apresentador também mostra como importar o conjunto de dados do RoboFlow para o notebook Google Colab e instalar as bibliotecas necessárias para a implementação do YOLOv8, incluindo bibliotecas ultralíticas e glob para gerenciar caminhos de arquivo e bibliotecas de imagem e exibição para exibir imagens de entrada e saída. O apresentador também fornece opções para instalar o YOLOv8 clonando o repositório GitHub ou instalando-o a partir do pacote ultralytics via pip.

  • 00:05:00 iou50 são bons indicadores do desempenho do modelo YOLOv8 treinado na tarefa de detecção de sinais de trânsito e reconhecimento de cores. O modelo foi treinado em um grande conjunto de dados e ajustado em mais de 100 épocas, resultando em uma precisão média média com iou50 de 95,8% e uma precisão média média com ioub 50 de 81,3%. Os melhores pesos, com a maior Precisão média média, foram guardados como "best.pt". No geral, os resultados são muito bons para detectar 17 classes diferentes de sinais de trânsito e semáforos no conjunto de dados de imagem.

  • 00:10:00 Nesta seção do vídeo, o apresentador explica os diferentes arquivos salvos na pasta de treinamento após a execução do modelo YOLOv8 para detecção de sinais de trânsito e semáforos e reconhecimento de cores. Esses arquivos incluem a matriz de confusão, curva F1, curva de precisão, curva de recuperação e desempenho do modelo para cada época. Eles também demonstram como interpretar a matriz de confusão e como validar o modelo no conjunto de dados de validação usando os melhores pesos do modelo. Finalmente, eles sugerem que treinar o modelo por uma duração mais longa pode melhorar ainda mais a precisão média média dos resultados.

  • 00:15:00 Nesta seção do vídeo, o apresentador valida o modelo nas imagens do conjunto de dados de validação e obtém uma pontuação impressionante de precisão média principal. O modelo é então testado em dois vídeos de demonstração, onde detecta com sucesso sinais como "não vire à esquerda", "estacionamento", "luz vermelha" e muito mais. Os vídeos de demonstração são baixados do site Pixel e, em seguida, enviados para o Google Drive. Os vídeos de saída são exibidos e mostram resultados de detecção precisos. No geral, o modelo tem um bom desempenho na detecção de sinais de trânsito e semáforos usando o YOLOv8.
 

Detecção e segmentação de buracos usando YOLOv8 (imagens e vídeos) | Conjunto de Dados Personalizado | Guia Completo



Detecção e segmentação de buracos usando YOLOv8 (imagens e vídeos) | Conjunto de Dados Personalizado | Guia Completo

Este vídeo demonstra como criar um conjunto de dados personalizado para detecção e segmentação de buracos usando o YOLOv8. O apresentador mostra as etapas para clonar e anotar os dados da imagem e recomenda o uso do Google Collab para treinar o modelo. As dependências necessárias para o YOLOv8 também são discutidas, bem como a configuração do local do conjunto de dados e o treinamento do modelo. O modelo alcançou uma precisão média média de 0,532 para detecção e 0,531 para segmentação e teve um bom desempenho na detecção de buracos em vídeos. O apresentador conclui o vídeo após validar o modelo personalizado e obter bons resultados.

  • 00:00:00 Nesta seção do vídeo, o autor demonstra como criar um conjunto de dados personalizado para detecção e segmentação de buracos usando YOLOv8. O autor usa o Roboflow para criar seu próprio espaço de trabalho e projeto e explica a importância de escolher um plano público para o espaço de trabalho para poder exportar o conjunto de dados para o Google Colab. O autor também mostra como importar vídeos ou imagens, bem como clonar conjuntos de dados disponíveis publicamente para complementar seus próprios. Por fim, o autor mostra como clonar imagens e anotações, resultando em um conjunto de dados de 50 imagens para detecção e segmentação de buracos.

  • 00:05:00 Nesta seção do vídeo, o apresentador demonstra como clonar e anotar dados de imagem para detecção e segmentação de buracos usando YOLOv8. Eles começam clonando as 46 imagens restantes do conjunto de dados original, elevando o total para 96 imagens. O processo de anotação envolve a conexão de pontos em forma de polígono para indicar a localização do buraco em cada imagem. O apresentador demonstra como salvar e atribuir as anotações a cada imagem. O processo é demorado, mas pode ser feito facilmente seguindo as etapas descritas no vídeo.

  • 00:10:00 Nesta seção do vídeo, o apresentador discute o processo de anotação de um conjunto de dados para detecção e segmentação de buracos. Ele demonstra como gerar um conjunto de dados usando a ferramenta de anotação e, em seguida, treina o modelo usando o algoritmo YOLOv8 no Google Collab. O apresentador também menciona que é possível treinar o modelo no RoboFlow com um único clique e sem nenhuma codificação, mas recomenda o uso do Google Collab para aprender coisas novas. O vídeo mostra como importar as bibliotecas necessárias e clonar um repositório do GitHub antes de definir o diretório de trabalho e instalar as dependências.

  • 00:15:00 Nesta seção do vídeo, o apresentador fornece instruções para instalar as dependências necessárias para YOLOv8 e segmentação, enfatizando que é importante fazer isso antes do treinamento para evitar problemas de biblioteca posteriormente. O apresentador também explica como importar o conjunto de dados do RoboFlow para a pasta do Google e baixá-lo, bem como configurar o local do conjunto de dados e treinar o modelo. O apresentador também reconhece e corrige um erro no arquivo predict.py que foi ajustado para rastreamento.

  • 00:20:00 capaz de detectar buracos com uma precisão média média de 0,532 em um IOU de 50 e 0,218 quando o IOU varia de 0,50 a 0,95. O modelo foi testado em um vídeo de amostra e teve um bom desempenho na detecção de buracos. A matriz de confusão exibida mostra a distribuição dos dados entre as diferentes classes. No geral, o modelo funciona bem na detecção de buracos.

  • 00:25:00 Nesta seção do vídeo, o apresentador tenta validar o modelo personalizado para detecção e segmentação de buracos usando YOLOv8. Eles se depararam com um problema em que o modelo falhava em detectar buracos 50% das vezes, resultando em uma tela em branco. O apresentador então adicionou o melhor caminho de pesos DOT e conseguiu corrigir o problema. Eles então passaram a exibir a previsão no lote de validação e alcançaram uma precisão média média de 0,538 para detecção e 0,531 para segmentação. O modelo foi testado em vários vídeos de demonstração e funcionou bem, e o apresentador conclui o vídeo.
 

Detecção e rastreamento de objetos personalizados YOLOv8 | Detecção de Navios | Tutorial Completo



Detecção e rastreamento de objetos personalizados YOLOv8 | Detecção de Navios | Tutorial Completo

O tutorial do YouTube cobre a implementação do YOLOv8 com rastreamento de objeto de classificação profunda em um conjunto de dados de detecção de navio personalizado. O vídeo discute como baixar o conjunto de dados do RoboFlow, configurar um projeto no Expense ID e treinar o modelo no Google Colab. O script de treinamento foi executado por 70 épocas e resultou em uma precisão média média de 0,968 com IOU 50. O apresentador analisa os gráficos de perda e precisão média para mostrar que treinar por mais épocas produzirá melhores resultados. Em seguida, eles demonstram como validar o modelo em um conjunto de dados de validação e mostram a precisão média média nas imagens do conjunto de dados de validação. Finalmente, eles mostram alguns vídeos de demonstração do modelo em ação, incluindo um exemplo de uma previsão falsa.

  • 00:00:00 Nesta seção, o tutorial em vídeo cobre o conjunto de dados para o projeto de detecção e rastreamento de objetos personalizados, que inclui cerca de 794 imagens de navios capturadas por drones, com apenas uma classe chamada "board" ou "shape". O tutorial mostra como baixar o conjunto de dados do RoboFlow e exportá-lo para o Google Colab ou Expense ID, que oferece 25 créditos gratuitos e uma GPU Tesla T4 ou V100 para treinar modelos de aprendizado de máquina. Por fim, o tutorial discute a configuração de um projeto no Expense ID e a abertura de um notebook Jupyter com opções do servidor Expense para treinar o modelo de detecção de objeto YOLOv8 no conjunto de dados.

  • 00:05:00 Nesta seção do tutorial do YouTube, o instrutor explica a configuração do projeto e fornece um link de repositório do GitHub para implementar o YOLO v8 com rastreamento de objeto de classificação profunda em um conjunto de dados de detecção de navio personalizado. O vídeo mostra como clonar o repositório do GitHub em um notebook do Google Colab e instalar as bibliotecas necessárias usando o pip. O script do notebook é explicado em detalhes, incluindo como importar a biblioteca de imagens, configurar os diretórios de trabalho atuais e fazer download de modelos pré-treinados. O instrutor enfatiza a importância de executar o script na ordem correta e instalar todas as bibliotecas necessárias antes de executar os scripts de treinamento, teste ou validação para evitar erros.

  • 00:10:00 Nesta seção, o palestrante explica como baixar um conjunto de dados de imagens de navios do RoboFlow e implementar o rastreamento de objetos usando o DeepSort. Eles então treinam um modelo YOLOv8 no conjunto de dados do navio, definindo o local do conjunto de dados e o tamanho da imagem padrão antes de executar o script de treinamento por 70 épocas. Os resultados mostram uma boa precisão média de 0,968 com IOU 50, significando que o modelo identificou corretamente 96,8% dos navios nas imagens. O arquivo de pesos é salvo na pasta do trem e uma matriz de confusão mostra que o modelo teve 96% de precisão na detecção da presença de um navio, com uma taxa de falha de 4%. A perda de treinamento diminui continuamente, indicando que treinar por mais épocas produzirá melhores resultados.

  • 00:15:00 Nesta seção do vídeo, o apresentador analisa o gráfico de perda e o gráfico de precisão média para mostrar que a perda de treinamento está diminuindo continuamente e a precisão média média está aumentando continuamente à medida que as épocas aumentam. Eles então demonstram como validar o modelo em um conjunto de dados de validação e mostram a precisão média média com iou50 nas imagens do conjunto de dados de validação que é 96,4% e a precisão média média com iou50 a 95 é 71,6%. O apresentador então mostra alguns vídeos de demonstração, usando o script predict.pi passando os melhores pesos de modelo, para testar o modelo em vários vídeos e demonstra como o modelo pode detectar placas e atribuir IDs exclusivos a cada objeto. Finalmente, eles mostram um exemplo de uma previsão falsa feita pelo modelo.
 

YOLOv8 e VGG16 para Face, Detecção de Gênero, Contagem de Faces e Rastreamento de Pessoas | Conjunto de dados personalizado



YOLOv8 e VGG16 para Face, Detecção de Gênero, Contagem de Faces e Rastreamento de Pessoas | Conjunto de dados personalizado

O tutorial em vídeo explica o processo de detecção facial, classificação de gênero, contagem facial e rastreamento de pessoas usando os modelos YOLOv8 e VGG16. O tutorial abrange vários aspectos da implementação e treinamento desses modelos, incluindo preparação de dados, aumento de dados, ajuste fino do modelo VGG16 pré-treinado, usando aprendizado de transferência e treinamento do modelo YOLOv8 para detecção facial. O apresentador também explica como montar um Google Drive em um notebook do Google Colab, acessar e converter conjuntos de dados de imagens, baixar as bibliotecas necessárias e integrar o rastreamento de objetos usando o deepsort. O tutorial fornece explicações de código detalhadas para desenhar caixas delimitadoras em torno de objetos detectados, integrando o modelo de classificação de gênero, contando o número de faces em um quadro e atribuindo a cada face detectada uma ID exclusiva usando deepsort.update.

  • 00:00:00 Nesta seção do tutorial em vídeo, é explicado o fluxo de trabalho para detecção de rosto com classificação de gênero e contagem de rosto com rastreamento usando YOLOv8 e VGG16. O primeiro passo é preparar o conjunto de dados com imagens de rostos de homens e mulheres, para treinar o modelo VGG16 para detecção de gênero, seguido do treinamento do modelo YOLOv8 para detecção de rosto. Com a detecção de face do YOLOv8, a classificação de gênero é feita usando o modelo VGG16 treinado. O rastreamento de objetos é então implementado usando o Deepsort, atribuindo um ID exclusivo a cada rosto ou pessoa detectada. O notebook é dividido em nove etapas, incluindo importar as bibliotecas necessárias, montar o Google Drive, carregar o conjunto de dados, converter imagens e rótulos em matrizes, aplicar aumento de dados, ajustar o modelo VGG16 em dados de classificação de gênero, plotar perda de treinamento e validação e testando com uma imagem de amostra.

  • 00:05:00 Nesta seção, o palestrante discute várias bibliotecas e funções que podem ser usadas para converter imagens em matrizes numpy e vice-versa. Eles também explicam o uso da biblioteca categórica de dois traços e o conceito de abordagens sequenciais e funcionais para organizar as camadas na rede neural. A camada plana é usada para converter entradas multidimensionais em unidimensionais, enquanto a camada densa é usada para definir o tamanho da camada de saída. Além disso, eles discutem o uso do aprendizado de transferência com o modelo VGG16 e a importação de bibliotecas de divisão de teste de trem, numpy e SO. Finalmente, eles mencionam o uso da biblioteca gdob para acessar todos os arquivos em uma pasta e a biblioteca aleatória para embaralhar conjuntos de dados de imagens.

  • 00:10:00 Nesta seção, o vídeo explica como montar um Google Drive com um notebook Google Colab para acessar um conjunto de dados, que é carregado em formato zip. O conjunto de dados inclui imagens de rostos de homens e mulheres, e o vídeo mostra como descompactar e acessar a pasta que contém essas imagens. Usando a biblioteca glob, o vídeo acessa todos os arquivos de imagem nas pastas do conjunto de dados e os converte em um formato de matriz com rótulos indicando se a imagem é um rosto de homem ou mulher. O vídeo mostra uma imagem de exemplo e explica como a variável de arquivos de imagem contém todos os caminhos de arquivo de imagem da pasta men e women, que podem ser lidos usando cb2.im read.

  • 00:15:00 Nesta seção, o palestrante explica como preparou seu conjunto de dados para detecção de face e gênero. Eles criaram uma pasta 'men' e 'women', redimensionaram as imagens dentro delas e as converteram em arrays que foram então armazenados em uma lista de dados. Eles anexaram os valores de rótulo correspondentes em uma lista de rótulos, com 1 para mulheres e 0 para homens. As listas de dados e rótulos foram convertidas em matrizes usando o NumPy. O palestrante também demonstra o aumento de dados com o uso de um gerador de dados de imagem, gerando várias imagens a partir de uma única imagem aplicando várias transformações. Eles então ajustaram um modelo VGG16 pré-treinado em seu conjunto de dados de classificação de gênero e implementaram a ativação softmax para definir a camada de saída. O tamanho da saída foi definido como 2 para classificar homens ou mulheres.

  • 00:20:00 Nesta seção do tutorial em vídeo, o palestrante demonstra o modelo VGG16 para detecção de face e gênero e mostra como treiná-lo em um conjunto de dados de classificação geral. O modelo é salvo no formato .H5 e sua precisão, precisão de validação e perda de peças são calculadas. Usando cv2.dsize, a imagem é redimensionada para dimensões de 100x100 e convertida em uma matriz, e o modelo prevê se a imagem contém um homem ou uma mulher. Na próxima parte do tutorial, o modelo YOLOv8 será treinado em um conjunto de dados de face para detectar faces e atribuir um ID exclusivo para rastreamento. O palestrante também menciona que a contagem facial será implementada usando um código simples adicionado ao arquivo predict.pi. No geral, o tutorial é dividido em sete etapas.

  • 00:25:00 Nesta seção, o apresentador apresenta o repositório GitHub que usará para implementar o rastreamento de objetos usando deep sort, bem como o modelo YOLO V8 para redução de faces. Eles discutem como irão detectar rostos e realizar a classificação de gênero antes de integrar o código de rastreamento de objetos de classificação profunda para atribuir a cada pessoa um ID exclusivo. O apresentador define seu diretório atual como o repositório de clonagem e instala todas as bibliotecas e dependências necessárias para o script. Eles também baixam o conjunto de dados do RoboFlow em seu bloco de anotações do Google Colab, mas encontram problemas por terem uma conta privada.

  • 00:30:00 usando os pesos do modelo YOLOv8 pré-treinado para detecção de face. O conjunto de dados é baixado e salvo em minha conta do Google Drive, e já treinei um modelo YOLOv8 por 80 épocas para detecção de rosto. O modelo treinado já foi salvo e os pesos foram baixados no bloco de anotações do Google Colab. Os arquivos de classificação profunda também são baixados no notebook, pois o rastreamento de objetos será implementado usando a classificação profunda. Além disso, uma modelo VGG16 foi treinada para detecção de gênero e o arquivo .h5 da modelo foi salvo e baixado na conta do Google Drive. Os vídeos de amostra são baixados do Google Drive para testar o script predict.pi, que inclui o código do classificador de gênero e a contagem facial.

  • 00:35:00 Nesta seção, o palestrante explica o código que foi adicionado para implementar o rastreamento de objetos usando classificação profunda. A porta de rastreamento de objetos de classificação profunda é inicializada e uma função é definida para converter a saída recebida do modelo YOLOv8 em um formato compatível para classificação profunda. A função de caixa de interface do usuário cria caixas delimitadoras em torno dos objetos detectados, enquanto a função de caixa de desenho chama a caixa de interface do usuário e as funções de borda de desenho para desenhar um retângulo arredondado para o texto. O código de rastreamento de classificação profunda é integrado junto com a capacidade de desenhar trilhas. O palestrante então explica o código para o classificador de gênero e a função de contagem no arquivo Paint. A função de contagem é usada para contar cada objeto em cada quadro. No geral, o código explica como converter os valores de saída X1, Y1, X2 e Y2 de YOLOv8 em coordenadas centrais, valores de altura e largura para rastreamento de objetos usando classificação profunda, implementando detecção de objetos e rastreamento de objetos em um aplicativo do mundo real.

  • 00:40:00 Nesta seção, o palestrante discute a conversão do modelo YOLOv8 nas coordenadas do centro xcyc da caixa delimitadora e largura e altura da caixa delimitadora para torná-lo compatível com o rastreamento de objetos de classificação profunda. Eles também explicam como a função de cálculo de cor para rótulo atribui cores exclusivas aos objetos detectados e a função de desenho Dash border cria um retângulo acima da caixa delimitadora onde o rótulo e a pontuação de confiança são escritos. O palestrante também fala sobre a classe classificadora de gênero e como ela é carregada e utilizada em cada quadro do vídeo para classificar o gênero dos objetos detectados. Além disso, eles mencionam a função UI Dash box e a função draw Dash boxes, que são usadas para criar caixas delimitadoras e chamar a função classificadora de gênero.

  • 00:45:00 Nesta seção, o apresentador explica como usar o modelo de classificação de gênero para detectar se um rosto pertence a um homem ou a uma mulher. Depois de detectar a face, apenas as coordenadas da caixa delimitadora são passadas para o modelo de classificação de gênero. O modelo então prevê se o rosto pertence a um homem ou a uma mulher, e o rótulo é adicionado acima da caixa delimitadora de acordo. O apresentador então explica a função count, que usa um dicionário chamado Foundry-classes para armazenar o número de faces detectadas no quadro. A contagem é exibida na interface do usuário acima da parte superior do vídeo ou imagem.

  • 00:50:00 Nesta seção, o palestrante explica que a contagem de quantos rostos foram detectados no quadro atual é armazenada no dicionário da classe Foundry na classe FaceDetails. O dicionário contém dois valores, a variável chave que contém "face" e a variável value que contém quantas faces foram detectadas no quadro atual. O alto-falante usa a função de contagem para mostrar quantos rostos foram detectados em cada quadro e atribui um ID exclusivo a cada rosto detectado usando deepsort.update. O falante também cria uma classe geral, uma classe de classificação e uma classe de perigo. As detecções do modelo são testadas em vários vídeos de demonstração e o palestrante mostra os resultados das detecções em cada quadro.