Como treinar detecção de objetos usando AI com poucas linhas de código
Usando ImageAi uma ferramenta customizada e simples de usar para classificação de imagens.
Visão computacional
Visão computacional é a ciência e tecnologia das máquinas que enxergam.[1] Ela desenvolve teoria e tecnologia para a construção de sistemas artificiais que obtém informação de imagens ou quaisquer dados multidimensionais. Exemplos de aplicações incluem o controle de processos (como robôs industriais ou veículos autônomos), detecção de eventos, organização de informação, modelagem de objetos ou ambientes e interação (atrelado a interação humano-computador).
A visão computacional também pode ser descrita como um complemento da visão biológica. Na visão biológica, a percepção visual dos humanos e outros animais é estudada, resultando em modelos em como tais sistemas operam em termos de processos fisiológicos. Por outro lado, a visão computacional estuda e descreve sistemas de visão artificial implementados por hardware ou software.
Sub campos de pesquisa incluem reconstrução de cena, detecção de eventos, reconhecimento de objetos, aprendizagem de máquina e restauração de imagens
https://pt.wikipedia.org/wiki/Vis%C3%A3o_computacional
Aplicações recentes com uso de visão computacional;
- Restauração de imagens
- Reconhecimento
- Identificação
- Detecção
Sugiro usar o google colab para realizar o treinamento de sua aplicação, listei o passos abaixo dos quais utilizei para treinar e demonstrar meu projeto, quaisquer dúvidas estou a disposição ; -)
Vamos lá ao que interessa!
segue os passos abaixo para necessários para o projeto;
- preparar o dataset
- instalar imageAi e requisitos
- download pré treino e pesos do modelo Yolov3 ou RetinaNet
Preparando o dataset
É necessário coletar um bom número de imagens para o processo de treino, é recomendado para o projeto no mínimo de 200 imagens para cada classe, abaixo segue a estrutura
Anotando imagens
O ImageAi suporta o formato Pascal Voc de anotação, pessoalmente para anotar imagens usei LabelIMG, ferramenta fácil de usar, após a separação visto acima da estrutura do projeto, entre treino e validação ( 70% imagens de treino e 30% imagens de validação). abra o LabelImg e iniciamos o processo de anotação das imagens conforme exemplo abaixo, para cada imagem do dataset.
após anotar cada imagem o aplicativo irá gerar um arquivo xml para cada imagem que deverá ser direcionado para o diretório "annotations",
Instalando ImageAi e requisitos para o treino
conforme já descrito usamos Google Colab para realizar o treino usando habilitando a GPU para acelerar o processo,
Principais requisitos
Python : https://python.org
Tensorflow : !pip3 install tensorflow ( Versão inferior a 2.0 )
OpenCV : !pip3 install opencv-python
Keras : !pip3 install keras
ImageAI : !pip3 install imageai — upgrade
Download do modelo pre treino Yolov3
!wget https://github.com/OlafenwaMoses/ImageAI/releases/download/essential-v4/pretrained-yolov3.h5
após execução dos passos anteriores e de habilidar GPU do notebook no google colab podemos treinar nossa aplicação, para isso devemos rodar o código abaixo, a documentação completa do projeto está muito bem escrita e de fácil entendimento,
link : https://imageai.readthedocs.io/en/latest/customdetection/index.html
após rodar o script temos como resultado;
Agora é so aguardar o fim do processo de treinamento ..
Após o fim do processo de treino carregamos um video para testar a aplicação usando o código abaixo, também fornecido e documentado no link acima já descrito;
Pronto! segue abaixo o resultado.
Espero ter ajudado com o simples tutorial, quaisquer dúvidas pode entrar em contato para críticas e sugestões.