0Pricing
Python Academy · Aula

Projeto de classificação de imagens

Construção de um modelo básico de CNN.

Projeto de classificação de imagens é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 4 de 5. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 5 aulas no total.

Projeto de classificação de imagens

Projeto de classificação de imagens

Neste projeto, criaremos uma rede CNN simples para classificar imagens em categorias. A classificação de imagens consiste em prever a categoria ou o rótulo de uma imagem de entrada.

Projeto de classificação de imagens — ilustração 1

Conjunto de dados para classificação

Conjunto de dados para classificação

Usaremos o conjunto de dados CIFAR-10, que contém 60.000 imagens distribuídas em 10 categorias, como aviões, carros, pássaros e gatos. Cada imagem tem 32×32 pixels e possui 3 canais de cor (RGB).

Carregando o conjunto de dados

Carregando o conjunto de dados

Carregaremos o conjunto de dados CIFAR-10 usando TensorFlow:

import tensorflow as tf
from tensorflow.keras.datasets import cifar10

# Load dataset
(x_train, y_train), (x_test, y_test) = cifar10.load_data()

# Normalize the pixel values to [0, 1]
x_train = x_train / 255.0
x_test = x_test / 255.0

print("Training data shape:", x_train.shape)

Criando o modelo CNN

Criando o modelo CNN

Definiremos uma arquitetura CNN com camadas convolucionais, de agrupamento e totalmente conectadas:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# Define the CNN model
model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    MaxPooling2D((2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(10, activation='softmax')
])

Compilando o modelo

Compilando o modelo

Compilamos o modelo com:

  • Função de perda: Entropia cruzada categórica para classificação multiclasse.
  • Otimizador: Otimizador Adam para um aprendizado eficiente.
  • Métricas: Acurácia para avaliar o desempenho.
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

Treinando o modelo

Treinando o modelo

Treinamos o modelo usando os dados de treinamento durante 10 épocas. Durante o treinamento, o modelo aprende a classificar imagens em categorias.

# Train the model
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

Avaliando o modelo

Avaliando o modelo

Após o treinamento, avaliamos o modelo com os dados de teste para verificar sua acurácia:

# Evaluate the model
loss, accuracy = model.evaluate(x_test, y_test)
print(f"Test Accuracy: {accuracy * 100:.2f}%")

Fazendo previsões

Fazendo previsões

Podemos usar o modelo treinado para fazer previsões sobre novas imagens:

# Predict the category of a test image
import numpy as np

sample_image = x_test[0]
sample_label = y_test[0]

prediction = np.argmax(model.predict(sample_image[np.newaxis, ...]))
print(f"Predicted Label: {prediction}, Actual Label: {sample_label[0]}")

Desafios da classificação de imagens

Desafios da classificação de imagens

Entre os desafios comuns estão:

  • Sobreajuste: O modelo tem bom desempenho nos dados de treinamento, mas baixo desempenho em dados novos.
  • Desequilíbrio entre classes: Representação desigual das categorias no conjunto de dados.
  • Custo computacional: O treinamento de redes profundas exige recursos significativos.

Resumo e próximos passos

Resumo e próximos passos

Neste projeto, nós:

  • Criamos e treinamos uma rede CNN para classificação de imagens usando o conjunto de dados CIFAR-10.
  • Aprendemos a carregar, pré-processar e avaliar o conjunto de dados.
  • Discutimos os desafios das tarefas de classificação de imagens.

Em seguida, exploraremos técnicas de aumento de dados para melhorar o desempenho do modelo gerando variações das imagens de treinamento.

Projeto de classificação de imagens — ilustração 10

Perguntas Frequentes

A aula “Projeto de classificação de imagens” é grátis?

Sim — o texto completo de “Projeto de classificação de imagens” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 5 aulas no total.

O que vou aprender em “Projeto de classificação de imagens”?

Construção de um modelo básico de CNN. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Python Academy?

Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 5.

Quanto tempo leva a aula “Projeto de classificação de imagens”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Python Academy?

Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O que são dados de imagem?
  2. Processamento de imagens com OpenCV
  3. Redes neurais convolucionais (CNN)
  4. Projeto de classificação de imagens
  5. Técnicas de aumento de dados
← Voltar para Python Academy