Conteúdo[Esconder][Mostrar]
- O que é classificação de imagem?
- Como funciona a classificação de imagens?
Classificação de imagens usando Tensorflow e Keras em python+-
- 1. Requisitos de instalação
- 2. Importando dependências
- 3. Inicializando parâmetros
- 4. Carregando o conjunto de dados
- 5. Criando o modelo
- 6. Treinamento do modelo
- Testando o modelo
- 7. Importando os utilitários para teste
- 8. Criando um diretório python
- 9. Carregando dados de teste e modelo
- 10. Avaliação e previsão
- 11. Resultados
- Conclusão
É reconfortante saber que conseguimos imbuir os robôs com nossas habilidades inatas para aprender pelo exemplo e perceber seus arredores. O desafio fundamental é que aqueles que ensinam os computadores a “ver” como humanos precisariam de muito mais tempo e esforço.
No entanto, quando consideramos o valor prático que essa habilidade oferece atualmente às organizações e empresas, o esforço vale a pena. Neste artigo, você aprenderá sobre classificação de imagens, como funciona e sua implementação prática. Vamos começar.
O que é classificação de imagem?
O trabalho de alimentar uma imagem em um rede neural e fazer com que ele produza algum tipo de rótulo para essa imagem é conhecido como reconhecimento de imagem. A etiqueta de saída da rede corresponderá a uma classe pré-definida.
Pode haver várias classes atribuídas à imagem, ou simplesmente uma. Quando há apenas uma classe, o termo “reconhecimento” é frequentemente usado, enquanto que quando há várias classes, o termo “classificação” é frequentemente usado.
Detecção de objetos é um subconjunto de classificação de imagens em que instâncias particulares de objetos são detectadas como pertencentes a uma determinada classe, como animais, veículos ou humanos.
Como funciona a classificação de imagens?
Uma imagem na forma de pixels é analisada por um computador. Ele faz isso tratando a imagem como uma coleção de matrizes, cujo tamanho é determinado pela resolução da imagem. Simplificando, a classificação de imagens é o estudo de dados estatísticos utilizando algoritmos da perspectiva de um computador.
A classificação de imagens é realizada no processamento digital de imagens agrupando pixels em grupos predeterminados, ou “classes”. Os algoritmos dividem a imagem em uma sucessão de características notáveis, o que reduz a carga para o classificador final.
Essas qualidades informam o classificador sobre o significado da imagem e sua classificação potencial. Como o resto dos processos de classificação de uma imagem são dependentes dela, o método de extração de características é a fase mais crítica.
A dados fornecidos ao algoritmo também é crucial na classificação de imagens, especialmente na classificação supervisionada. Em comparação com um conjunto de dados terrível com desequilíbrio de dados baseado em classe e baixa qualidade de imagem e anotação, um conjunto de dados de classificação bem otimizado tem um desempenho admirável.
Classificação de imagens usando Tensorflow e Keras em python
Nós estaremos usando o CIFAR-10 conjunto de dados (que inclui aeronaves, aviões, pássaros e outras 7 coisas).
1. Requisitos de instalação
O código abaixo instalará todos os pré-requisitos.
2. Importando dependências
Crie um arquivo train.py em Python. O código abaixo importará as dependências do Tensorflow e do Keras.
3. Inicializando parâmetros
O CIFAR-10 inclui apenas 10 categorias de imagens, portanto, as classes núm referem-se simplesmente ao número de categorias a serem classificadas.
4. Carregando o conjunto de dados
A função usa o módulo Tensorflow Datasets para carregar o conjunto de dados e definimos com info como True para obter algumas informações sobre ele. Você pode imprimi-lo para ver quais são os campos e seus valores, e usaremos as informações para recuperar o número de amostras nos conjuntos de treinamento e teste.
5. Criando o modelo
Agora vamos construir três camadas, cada uma consistindo em duas ConvNets com uma função max-pooling e ativação ReLU, seguidas por um sistema de 1024 unidades totalmente conectado. Em comparação com ResNet50 ou Xception, que são modelos de última geração, este pode ser um modelo comparativamente pequeno.
6. Treinamento do modelo
Usei o Tensorboard para medir a precisão e a perda em cada época e nos fornecer uma bela exibição após importar os dados e gerar o modelo. Execute o seguinte código; dependendo da sua CPU/GPU, o treinamento levará vários minutos.
Para usar o tensorboard, basta digitar o seguinte comando no terminal ou prompt de comando no diretório atual:
Você verá que a perda de validação está diminuindo e a precisão está aumentando para cerca de 81%. Isso é fantástico!
Testando o modelo
Quando o treinamento termina, o modelo final e os pesos são salvos na pasta de resultados, permitindo treinar uma vez e fazer previsões sempre que quisermos. Siga o código em um novo arquivo python chamado test.py.
7. Importando os utilitários para teste
8. Criando um diretório python
Faça um dicionário Python que traduza cada valor inteiro para o rótulo apropriado do conjunto de dados:
9. Carregando dados de teste e modelo
O código a seguir carregará os dados e o modelo de teste.
10. Avaliação e previsão
O código a seguir avaliará e fará previsões nas imagens do sapo.
11. Resultados
O modelo previu o sapo com 80.62% de precisão.
Conclusão
Ok, terminamos esta lição. Embora 80.62% não seja bom para um pouco de CNN, recomendo fortemente que você altere o modelo ou olhe para ResNet50, Xception ou outros modelos de ponta para obter melhores resultados.
Agora que você construiu sua primeira rede de reconhecimento de imagem no Keras, você deve experimentar o modelo para descobrir como diferentes parâmetros afetam seu desempenho.
Deixe um comentário