Compartilhamento de tecnologia

Classificação de imagens com Python e TensorFlow: começando do zero

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

introdução

A classificação de imagens é uma tarefa básica em visão computacional, que permite aos computadores identificar automaticamente objetos nas imagens. Neste artigo, usaremos Python e TensorFlow para implementar um modelo simples de classificação de imagens para ajudar todos a compreender os fundamentos da tecnologia de IA.

Preparação

Primeiro, precisamos instalar algumas bibliotecas Python necessárias. Abra um terminal de linha de comando e execute o seguinte comando:

pip install tensorflow numpy matplotlib

Carregar conjunto de dados

Usaremos o famoso conjunto de dados MNIST, que contém imagens de dígitos manuscritos (0 a 9). O TensorFlow já possui esse conjunto de dados integrado, então podemos carregá-lo facilmente.

  1. import tensorflow as tf
  2. from tensorflow.keras.datasets import mnist
  3. # 加载MNIST数据集
  4. (x_train, y_train), (x_test, y_test) = mnist.load_data()
  5. # 归一化图像数据
  6. x_train, x_test = x_train / 255.0, x_test / 255.0

Modelo de construção

Usaremos um modelo de rede neural simples para classificação de imagens. Este modelo contém uma camada de entrada (camada Flatten), duas camadas totalmente conectadas (camada Densa) e uma camada de saída.

  1. from tensorflow.keras.models import Sequential
  2. from tensorflow.keras.layers import Dense, Flatten
  3. # 构建顺序模型
  4. model = Sequential([
  5. Flatten(input_shape=(28, 28)), # 输入层:将28x28的图像展平成一维数组
  6. Dense(128, activation='relu'), # 隐藏层:128个神经元,使用ReLU激活函数
  7. Dense(10, activation='softmax') # 输出层:10个神经元,使用Softmax激活函数
  8. ])
  9. # 编译模型
  10. model.compile(optimizer='adam',
  11. loss='sparse_categorical_crossentropy',
  12. metrics=['accuracy'])

Modelo de treinamento

Agora podemos treinar o modelo. Usaremos os dados de treinamento (x_train, y_train) para treinar o modelo e os dados de teste (x_test, y_test) para avaliar o desempenho do modelo.

  1. # 训练模型
  2. model.fit(x_train, y_train, epochs=5)
  3. # 评估模型
  4. test_loss, test_acc = model.evaluate(x_test, y_test)
  5. print('测试准确率:', test_acc)

imagem prevista

Após a conclusão do treinamento, podemos usar o modelo para prever novas imagens. Veja como fazer previsões em uma imagem a partir dos dados de teste.

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. # 选择一张测试图像
  4. img = x_test[0]
  5. plt.imshow(img, cmap='gray')
  6. plt.show()
  7. # 预测图像类别
  8. img = np.expand_dims(img, 0) # 扩展维度以匹配模型输入
  9. predictions = model.predict(img)
  10. predicted_class = np.argmax(predictions)
  11. print('预测类别:', predicted_class)

Resumir

Neste artigo, começamos do zero e implementamos um modelo simples de classificação de imagens usando Python e TensorFlow. Por meio deste exemplo, aprendemos como carregar dados, construir um modelo, treinar o modelo e fazer previsões. Espero que este artigo possa ajudá-lo a começar com a tecnologia de IA e inspirar seu interesse em uma exploração mais aprofundada neste campo.


Este artigo apresenta como implementar um modelo simples de classificação de imagens usando Python e TensorFlow e fornece exemplos de código detalhados para ajudá-lo a concluir esta tarefa passo a passo. Atualmente, Python também é muito popular. É claro que o autor não pode parar de avançar. Os idiomas são todos iguais, basta aprendê-los!