Começando com Object Detection!

 · 3 mins read

Vamos começar entendendo sobre o que vamos aprender antes!

Tema que iremos abordar neste artigo é sobre detecção de objetos, entenda como é possível identificar objetos que podem auxiliar na tomada de decisão de uma empresa ou até mesmo auxiliar um carro autônomo.

Então aperte o cinto e vamos nessa!


Vamos para uma breve apresentação sobre o que vamos apresentar aqui:

Sobre object detection vamos utilizar o modelo YOLOv4, a estrutura do Darknet, mas sobre as anotações utilizaremos o tolkit chamado OIDv4_ToolKit para baixar anotações públicas do Google’s Open Images Dataset .

Este algoritmo possui um base no script https://github.com/AlexeyAB/darknet Vamos utilizar o Google Colab disponibilizado por ele: https://colab.research.google.com/drive/12QusaaRj_lUwCGDvQNfICpa7kA7_a2dE.

Recomendação:

  • Para rodar o script no google colab você vai precisar ter uma conta no google para isso!

  • Realize uma cópia do notebook antes de iniciar a execução do script.

  • Realize citações nas suas aplicações sobre o desenvolvedor desses scripts que você irá utilizar.

ALGORITMO YOLOv4

Etapa 1: Habilitando GPU em seu notebook

1) Clique em Editar no canto superior esquerdo do seu bloco de notas image.png 2) Clique em Configurações do Notebook no menu suspenso image.png 3) Em ‘Hardware Accelerator’, selecione GPU e clique em Salvar image.png

Seu notebook agora deve ter a GPU habilitada!

Etapa 2: clonagem e construção de Darknet

As células a seguir clonarão o darknet do famoso repositório do AlexeyAB, ajustarão o Makefile para habilitar OPENCV e GPU para darknet e então construirão darknet.

Não se preocupe com nenhum aviso ao executar a célula ‘! Make’!

1) clone darknet repositório.

!git clone https://github.com/AlexeyAB/darknet

3) Alterar makefile para ter GPU e OPENCV habilitados

!cd darknet

!sed -i 's/OPENCV=0/OPENCV=1/' Makefile

!sed -i 's/GPU=0/GPU=1/' Makefile

!sed -i 's/CUDNN=0/CUDNN=1/' Makefile

!sed -i 's/CUDNN_HALF=0/CUDNN_HALF=1/' Makefile

5) verificar CUDA

!/usr/local/cuda/bin/nvcc --version

5) make Darknet (constrói darknet para que você possa usar o arquivo executável darknet para executar ou treinar detectores de objetos)

!make

Etapa 3: Baixe pesos YOLOv4 pré-treinados

YOLOv4 já foi treinado no conjunto de dados coco, que tem 80 classes que ele pode prever. Pegaremos esses pesos pré-treinados para que possamos executar o YOLOv4 nessas classes pré-treinadas e obter detecções.

!wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights

Etapa 4: Como treinar seu próprio detector de objetos personalizados YOLOv4!

Agora chega a hora de criar seu próprio detector de objetos YOLOv4 personalizado para reconhecer quaisquer classes / objetos que você deseja!

Isso requer alguns truques e dicas, portanto, certifique-se de acompanhar de perto o restante do tutorial.

Para criar um detector YOLOv4 personalizado, precisaremos do seguinte:

  • Conjunto de dados personalizados rotulados
  • Arquivo .cfg personalizado
  • arquivos obj.data e obj.names
  • arquivo train.txt (test.txt também é opcional)
1) Etapa 1: coletar e rotular um conjunto de dados personalizado
  • Para criar um detector de objeto personalizado, você precisa de um bom conjunto de dados de imagens e rótulos para que o detector possa ser treinado com eficiência para detectar objetos.

  • Isso pode ser feito de duas maneiras. através ou através do uso de imagens do Google ou criando seu próprio conjunto de dados e usando uma ferramenta de anotação para desenhar rótulos manualmente. (Eu recomendo a primeira forma!)