Utilizando Redes Neurais em PYTHON com TensorFlow e Keras para Integração com Webcam

Posted by


As redes neurais são modelos computacionais inspirados no funcionamento do cérebro humano, capazes de aprender a partir de dados e encontrar padrões complexos. Neste tutorial, vamos aprender como implementar redes neurais em Python utilizando as bibliotecas TensorFlow e Keras para processar imagens da webcam em tempo real.

Passo 1: Instalação das bibliotecas necessárias

Antes de começar, é necessário instalar as bibliotecas TensorFlow e Keras, que são essenciais para a construção de redes neurais em Python. Para instalá-las, abra o terminal e digite os seguintes comandos:

pip install tensorflow
pip install keras

Além disso, vamos precisar das bibliotecas OpenCV e numpy para capturar e processar as imagens da webcam. Para instalá-las, execute os seguintes comandos no terminal:

pip install opencv-python
pip install numpy

Passo 2: Captura de imagens da webcam

Primeiramente, vamos criar um script Python para capturar imagens da webcam em tempo real. Para isso, utilize o seguinte código:

import cv2

# Captura de vídeo da webcam
cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()

    cv2.imshow('WebCam', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

Este código irá abrir a janela da webcam e exibir as imagens capturadas em tempo real. Pressione a tecla ‘q’ para fechar a janela da webcam.

Passo 3: Processamento das imagens da webcam com TensorFlow e Keras

Agora que conseguimos capturar imagens da webcam, vamos utilizar o TensorFlow e o Keras para processar essas imagens. Para isso, vamos criar uma rede neural convolucional simples para classificar as imagens em tempo real.

import cv2
import numpy as np
from tensorflow import keras

# Carrega o modelo pré-treinado
model = keras.models.load_model('modelo_de_rede_neural.h5')

# Captura de vídeo da webcam
cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()

    # Redimensiona a imagem para o tamanho esperado pelo modelo
    img = cv2.resize(frame, (224, 224))
    img = np.expand_dims(img, axis=0)

    # Realiza a classificação da imagem
    prediction = model.predict(img)
    label = np.argmax(prediction)

    cv2.putText(frame, str(label), (30, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)

    cv2.imshow('WebCam', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

Neste código, carregamos um modelo de rede neural convolucional previamente treinado e utilizamos ele para classificar as imagens da webcam em tempo real. As classificações são exibidas na janela da webcam.

Passo 4: Treinamento do modelo de rede neural

Para que o modelo de rede neural possa classificar as imagens corretamente, é necessário treiná-lo com um conjunto de dados específico para o problema em questão. Para isso, precisamos de um conjunto de dados rotulado e separado em classes.

Utilize o código a seguir para treinar um modelo de rede neural convolucional simples com o conjunto de dados de exemplo MNIST:

import tensorflow as tf
from tensorflow import keras

# Carrega o conjunto de dados MNIST
mnist = keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# Cria o modelo de rede neural
model = keras.models.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dropout(0.2),
    keras.layers.Dense(10, activation='softmax')
])

# Compila o modelo
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# Treina o modelo
model.fit(x_train, y_train, epochs=5)

# Avalia o modelo
model.evaluate(x_test, y_test)

# Salva o modelo treinado em um arquivo
model.save('modelo_de_rede_neural.h5')

Este código carrega o conjunto de dados MNIST, cria e treina um modelo de rede neural convolucional simples com uma camada oculta, e salva o modelo treinado em um arquivo. Você pode modificar este código para adaptá-lo a um conjunto de dados específico para o seu problema.

Com este tutorial, você aprendeu como utilizar as bibliotecas TensorFlow e Keras em Python para implementar redes neurais e processar imagens da webcam em tempo real. Continue explorando e experimentando com as redes neurais para aprimorar suas habilidades em aprendizado de máquina e visão computacional.

0 0 votes
Article Rating

Leave a Reply

10 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@inteligenciamilgrau
3 hours ago

Faaaaaala pessoal, quem quiser os arquivos, tem aqui:
https://github.com/inteligenciamilgrau/videos_tutoriais/tree/main/redes_neurais_keras

@externos4827
3 hours ago

Se o intuito do vídeo era pra ser explicativo, faltou muita explicação, obviamente se fosse explicar tudo em detalhes ficaria um vídeo de horas, mas pra mim e imagino que pra maioria que está começando um vídeo longo com um pouco mais de detalhe as vezes seria excelente. Descobri seu canal hoje e estou adorando as aulas, se pudesse entrar mais em detalhes seria muito bom. Obrigado mestre

@samuelgarcia5699
3 hours ago

explica direito poxa

@WagnerUlisses
3 hours ago

Kkkkk vídeo engraçado 😂 bom pacas

@L0RD.X
3 hours ago

Woooo nunca tinha visto um code tão símples kkkkkkk

@edernatan3831
3 hours ago

Usei só esse código.py não funcionou, oq devo fazer ?

@myvidsfull
3 hours ago

Top

@viniciuselias007
3 hours ago

Muito bom seu video gostei muito … qual das duas formas vc acha melhor .. essa que vc fez ou com yolov5 ? Essa aparentemente parece ser mais leve

@gabrielbarcelos9154
3 hours ago

Fala Bob! Feliz de mais por você voltar com o canal ativo. Lembro que na época que conheci seu canal a 3 anos atrás eu mal sabia o que era arduino, e hoje no mesmo período que você voltou com rede neural eu estou quase formando e estagiando na área de AI. Sucesso meu querido

@andreimoreira4082
3 hours ago

show!! você ja testou fazer um robô seguidor de linha usando o TensorFlow?

10
0
Would love your thoughts, please comment.x
()
x