Article image
Luiz Café
Luiz Café14/05/2025 18:47
Compartilhe

Primeiros Passos com Python com IA: Criando Projetos Simples com a Biblioteca OpenCV no Google Colab

  • #Python

Olá, comunidade da DIO!

Você sabia que, a linguagem de programação Python está em primeiro lugar no índice da TIOBE Software no mês de maio de 2025?

Esse índice é muito respeitado em todo o mundo e é utilizado para medir a popularidade de linguagens de programação e ditar tendências no mercado de desenvolvimento de software.

Mas o que torna Python tão popular? Não há uma resposta certa, no entanto, quando estamos falando de IA, a linguagem mais recomendada é justamente ela. Por ser de fácil aprendizado a combinação Python com IA é sem dúvidas, muito poderosa para criar diferentes tipos de projetos.

Inclusive, você sabia que é possível usar Python com IA para criar projetos de reconhecimento facial? Tudo isso é possível graças a uma biblioteca chamada OpenCV. E você gostaria de aprender como criar seus primeiros projetos utilizando a combinação de Python com IA, OpenCV e também o Google Colab?

Se sua resposta for sim, você está no artigo certo! Apresento para você a como usar Python com IA, a biblioteca OpenCV e o Google Colab para criar seus primeiros projetos de visão computacional e enriquecer seu portfólio de projetos !

Está pronto para aprender? Então, vamos lá!

Neste artigo, você vai encontrar:

  • O que é Visão Computacional e qual sua importância;
  • Introdução à Biblioteca OpenCV
  • O que é o Google Colab;
  • Exemplo prático de reconhecimento facial em imagens e vídeos;
  • Desafios de Segurança
  • Prática na vida real;
  • Considerações Finais.

Introdução a Visão Computacional

image

Com o avanço da Inteligência Artificial e da informática os computadores se tornam cada vez mais capazes de receber, capturar, estruturar, refinar, analisar e criar insights de grande quantidade de informações. Graças a essa grande capacidade de processamento de dados, principalmente em relação as imagens foram possíveis o desenvolvimento de uma área conhecida como visão computacional.

Podemos entender esse termo, em poucas palavras como, a capacidade de máquinas reconhecer imagens, em diferentes cenários, como por exemplo:

  • Vídeos com 1 ou mais rostos humanos;
  • Câmeras de smartphones, notebooks, câmeras de trânsito, sistemas de segurança e outros dispositivos capazes de realizar a gravação e captura de imagens;

Para que isso seja possível a dupla Inteligência Artificial e Machine Learning entram em ação, ajudando na identificação de objetos para determinar quais são classificar, recomendar, detectar e também monitorar objetos, com o foco principal em fazer a correta identificação de uma pessoa.

A visão computacional está em constante evolução e é uma área primordial para garantir maior segurança das pessoas nos dias de hoje, em que, podemos lidar com violação da privacidade dos indivíduos, com a possibilidade de exposição de dados sensíveis e até mesmo risco de segurança, por isso, esse tema é constantemente debatido por especialistas, para oferecer a maior eficiência e eficácia possível.

O estudo não é recente, porém, antes do uso de IA e Machine Learning, a necessidade da presença de pessoas para executar ações, como análise manual de uma enorme quantidade de dados, que poderia acarretar em erros eram um desafio considerável para todos os profissionais envolvidos no processo, mas com o avanço dos conhecimentos sobre o tema, estão reduzindo esses problemas graças as contribuições e o desenvolvimento de ferramentas de IA.

Funcionamento na Prática

Com um sistema de visão computacional bem desenvolvido, ele irá tentar imitar um ser humano no processo de reconhecimento facial. Eles são treinados com uma grande quantidade de dados, para ser o mais assertivo possível.

Esse processo é construído da seguinte maneira:

  • Aprendizado Minucioso: nessa etapa é utilizado redes neurais para que o modelo de machine learning faça uma varredura mais precisa possível para evitar erros. São utilizados os chamados “neurônios artificiais” que realizam uma série de cálculos complexos, tentando imitar a capacidade humana de reconhecimento de padrões e objetos. E tudo isso deve ser feito de maneira automática, por isso a capacidade constante de treinamento do modelo;
  • Redes Convulcionais: através de um sistema conhecido como “sistema de rotulagem” as imagens são utilizados para tentar interpretar uma imagem por inteiro. A operação matemática para realizar esse processo é conhecida como covulação. O processo começa dividindo os dados da imagem em pequenas partes até realizar a identificação completa;
  •  Redes Neurais Recorrentes: elas são muito parecidas com as redes convulcionais, a diferença principal está na capacidade de processamento de grande quantidade de imagens em busca de relações entre essas imagens e também vídeos.

Uma Diferença Importante entre Processamento de Imagens e Visão Computacional

Talvez você tenha levantado uma dúvida importante, qual a diferença de um processamento de imagens para a visão computacional? Não se preocupe é um conceito fácil de entender, pense que quando estamos processando uma imagem, estamos realizando alterações, modificando, melhorando, aprimorando a imagem de acordo com nossas necessidades, já no caso da visão computacional isso não acontece, a imagem permanecerá igual, buscando entender do que ela se trata, para realizar sua correta identificação.

Os dois processos podem ser usados em conjunto para entender melhor a imagem e ainda melhorar os resultados obtidos, vai depender muito da necessidade e do objetivo que os profissionais de IA, machine learning e análise de grande volume de dados também conhecido como big data, para que a decisão de processar uma imagem e depois realizar a visão computacional ou vice-versa, como foi dito, vai depender de qual é o objetivo principal, ao utilizar os dados disponíveis.

Visão Computacional na Prática

Agora que você sabe o que é uma visão computacional, vamos entender a aplicação prática dessa área de estudo. Veja alguns exemplos simples:

  • Ordenar imagens: permite que cada imagem seja organizada e classificada no lugar certo, evitando erros e confusões;
  • Detecção: é o processo de identificar qual a imagem está sendo procurada de acordo com sua classificação. É muito utilizado em diversos casos, como por exemplo em câmeras de segurança, para reconhecer uma pessoa.
  • Rastreamento: possui a função de identificar e rastrear itens que, após os processos anteriores são classificados e passam a pertencer a uma determinada categoria.
  • Segmentação: seu principal objetivo é facilitar o processo de visão computacional. A imagem é dividida em pequenas partes, mais simples, para ajudar no processo de entendimento se há um ou mais objetos na imagem ou vídeo.
  • Restauração: pode ser uma ferramenta importante para realizar pesquisas de mais imagens para alimentar os bancos de dados e melhorar ou aprimorar a visão computacional do modelo de machine learning utilizado.

Esses são apenas alguns dos vários casos práticos de aplicação da visão computacional, como você pode ler, ela é fundamental para reconhecer imagens e classificar cada uma delas, de acordo com as necessidades das equipes e desenvolvimento.

Biblioteca OpenCV: facilitando a Visão Computacional

image

Dando continuidade ao nosso artigo, vamos conhecer uma biblioteca muito poderosa para realização do processo de visão computacional, seu nome é OpenCV, cujo significado é Open Source Computer Vision ou em uma tradução livre Biblioteca de Visão Computacional em Código Aberto. Sua criação é recente, com menos de 30 anos de mercado. Ela foi criada, no ano de 1999 pela empresa Intel, curiosamente para fins acadêmicos e timidanente foi conquistando seu espaço no mercado de Deep Learning e também de Machine Learning.

Além de ser gratuita ela oferece uma série de benefícios para seus usuários. Conheça alguns deles:

  • Promove maior acessibilidade ao público em geral, sejam profissionais da área e até mesmo leigos;
  • Mais de 2000 algoritmos disponíveis para uso;
  • Até a escrita deste artigo, mais de 500 funções estavam disponíveis para uso;
  • Grande variedade de linguagens de programação que podem utilizar o OpenCV, como C++, Java e Python;
  • Comunidade ativa de usuários;
  • Capacidade de análise de grande quantidade de imagens, vídeos, reconhecimento facial, dentre outras maneiras que fazem uso de análise de imagens;
  • Você pode usar a biblioteca OpenCV em diversas plataformas como: Windows, Linux, macOS, Android, Ios, Raspberry Pie e até na Nuvem.

Como você pode perceber usar a OpenCV representa um ganho significativo na produtividade pela sua capacidade de ser utilizado em diversos casos de uso diferentes. Por isso, é amplamente utilizada e divulgada, além de ser uma ótima maneira de se utilizar a linguagem Python para criar projetos de reconhecimento facial com IA.

Como usar a Biblioteca OpenCV no Google Colab?

Para utilizar a OpenCV você precisa instalar em sua máquina essa biblioteca, no entanto para facilitar seu uso, neste artigo vamos te ensinar a utilizar no Google Colab do Google, uma ferramenta gratuita e online, assim você não precisa instalar nada na sua máquina física e pode usar os benefícios da nuvem para armazenar seus projetos. O Colab é como um caderno para escrever seus códigos, porém, com recursos interativos que permite aos programadores executar seus projetos sem consumir recursos de seu computador, já que o desenvolvimento pode ser feito online, pelo navegador.

Para instalar a biblioteca OpenCV no Google Colab, você precisa:

  1. Ter uma conta de e-mail do Google, conhecida como gmail;
  2. Se você não tem uma conta gmail é muito simples de criar, acesse o site: <https://www.gmail.com/> e clique em "criar uma conta", é grátis;
  3. Depois você precisa escolher se será uma conta pessoal para você, para seu filhos ou filha e também existe a opção de criar uma conta para seu negócio, neste caso, você deve escolher uma conta pessoal;
  4. Você deve preencher seus dados pessoais, criar um nome de usuário e senha e depois de ter feito isso, clique em "próximo" alguns dados adicionais podem ser pedidos para garantir sua segurança e outras informações importantes para manter sua conta ativa;
  5. Após concluir a etapa anterior, você terá que clicar em "próximo" mais uma vez, leia os termos de serviço e clique em aceite, sua conta gmail foi criada e agora você pode usar o Google Colab;
  6. Acesse o site: <https://colab.research.google.com/> e faça login com sua conta do gmail, que você acabou de aprender a criar;
  7. Na tela que abrir clique em "novo notebook" para começar a criar seus primeiros projetos.
  8. Pronto, você já está preparado para criar seu primeiro projeto de reconhecimento facial usando a biblioteca OpenCV e o código Python!

Instalando OpenCV no Google Colab

Para instalar a biblioteca OpenCV no Colab, você precisa realizar o seguintes passos:

  • Abra o notebook que você criou no passo anterior, se você tiver fechado o arquivo;
  • Por padrão Colab já possui algumas bibliotecas instaladas, incluindo OpenCV, para testar se este é o caso, você pode fazer o seguinte:

digite o comando:

import cv2
print(cv2.__version__)
  • Clique no player que está ao lado da palavra import cv2, ou pressione as teclas do seu teclado shift + enter, caso apareça uma mensagem com a versão que está instalada no seu notebook, issso significa que a biblioteca já está instalada e você pode começar a criar seus primeiros projetos.
  • Se esse não for o caso, não se preocupe, a instalação é bem simples. Basta digitar o seguinte comando:
pip install opencv-python

E pronto! A biblioteca estará instalada! Para verificar se a instalação foi feita de maneira correta, basta repetir o comando que aprendemos antes de instalar a biblioteca manualmente.

Mão na Massa: Primeiros Projetos de Reconhecimento Facial

Com a biblioteca OpenCV instalada, podemos colocar a mão na massa e criar nosso primeiro projeto de reconhecimento facial, que combina, Python, OpenCV e Google Colab. Vamos começar agora mesmo!

O primeiro passo será enviar uma imagem qualquer para que, seja possível testar se é possível fazer o reconhecimento de rostos. Para isso, digite o seguinte código:

from google.colab import files

uploaded = files.upload()

Esse código vai permitir que você envie uma imagem com rostos de sua preferência direto do seu computador, se você não tem nenhuma imagem disponível na sua máquina pode baixar uma em sites como o freepik ou pixabay, existe ainda a possibilidade de usar ferramentas de IA para gerar imagens, o importante é que tenha o rosto bem nítido. No exemplo eu utilizei uma imagem simples do Bill Gates.

Após esse passo, você precisa inserir o seguinte código, que está escrito na linguagem de programação Python:

import cv2

from matplotlib import pyplot as plt

 

# Nome da imagem enviada

imagem_nome = list(uploaded.keys())[0]

 

# Carrega a imagem que você enviou

img = cv2.imread(imagem_nome)

 
#  Realiza a conversão para escala de cinza (procedimento necessário para que o classificador funcione corretamente)

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

 

# Carrega o classificador de rostos do OpenCV (pré-treinado com Haar cascades)

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

 

# Detecta os rostos na imagem que foi enviada por você

faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)

 

# Desenha retângulos em volta dos rostos

for (x, y, w, h) in faces:

  cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)

 

# Converte de BGR (OpenCV) para RGB (matplotlib)

img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

 

# Exibe a imagem

plt.imshow(img_rgb)

plt.axis('off')

plt.title('Rostos detectados')

plt.show()

image

Explicação Detalhada do Código

O código acima funciona da seguinte maneira:

import cv2

Faz a importação da biblioteca cv2 da OpenCV, ela é muito utilizada para processar imagens.

from matplotlib import pyplot as plt

Aqui é feito uma importação da biblioteca matplotlib, de maneira bem resumida, sua função é utilizada para exibir imagens e gráficos, é bastante útil em uma ampla gama de projetos.

imagem_nome = list(uploaded.keys())[0]

Agora podemos ver uma função chamada "imagem_nome" que recebe justamente o nome da imagem que você enviou. Após essa etapa, list irá "pegar" o primeiro arquivo que aparecer graças ao dicionário uploaded que terá o mesmo nome do arquivo enviado.

img = cv2.imread(imagem_nome)

Nessa parte a imagem será lida no formato BGR, que é um padrão estabelecido, quando estamos utilizando OpenCV.

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

Realiza a conversão da cor da imagem para a cor cinza, porque o classificador Haar não requer cores, somente o contraste de forma para detectar rostos corretamente.

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

Nessa parte do código, temos a disposição um modelo pré-pronto para reconhercer rostos, que foi aprendido graças ao machine learning. Seu nome é Haar Features.

faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)

Nessa parte do código temos que usar gray para deixar a imagem cinza e facilitar o reconhecimento, logo após o scaleFactor=1.1 fará com que a imagem cresça 10% para cada detecção e por fim, temos minNeightbors=5, para representar a quantidade de vizinhos para tornar a resposta válida, é importante ressaltar que maior mais difícil será de identificar. É importante lembrar que o resultado de faces será exibido em x,y,w,h, em que cada uma das letras representa um rosto.

for (x, y, w, h) in faces:
  cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)

Essa parte do código é responsável por fazer um desenho de um retângulo em cada rosto que for encontrado. A cor do retângulo encontrado é verde no seu redor.

img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

Outra parte imporante do código é a realização da conversão de BGR para RGB, já que a biblioteca Matplotlib, usa RGB.

plt.imshow(img_rgb)
plt.axis('off')
plt.title('Rostos detectados')
plt.show()

A última parte do código. Ela vai exibir os rostos que foram encontrados na imagem. Cada rosto terá um retângulo verde destacando ele.

Detectando Rostos em Vídeos

Agora que você aprendeu a detectar rostos em imagens, vamos aprender também em vídeos. É um processo parecido com o detector de imagens. Confira o código abaixo:

from google.colab import files
uploaded = files.upload()

Você deve digitar o comando acima para fazer o upload do vídeo. Após isso, digite o código abaixo.

import cv2
import matplotlib.pyplot as plt
from IPython.display import display, clear_output
import time
 
# Nome do vídeo enviado
video_name = list(uploaded.keys())[0]
 
# Carrega o classificador de rostos
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
 
# Abre o vídeo
cap = cv2.VideoCapture(video_name)
 
while cap.isOpened():
  ret, frame = cap.read()
  if not ret:
      break
 
  gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  faces = face_cascade.detectMultiScale(gray, 1.1, 4)
 
  for (x, y, w, h) in faces:
      cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
 
  frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
  plt.imshow(frame_rgb)
  plt.axis('off')
  display(plt.gcf())
  clear_output(wait=True)
  time.sleep(0.05)
 

No processo de detecção de rostos em vídeos, temos algumas diferenças em relação a detecção em imagens. Por exemplo, é preciso usar o módulo IPython.display realizar atualização das imagens. e importamos time para criar um pequeno intervalo de tempo entre os quadros, para facilitar o processo de reconhecimento facial. Logo após é criado um loop com while enquanto o vídeo permanecer aberto. Após essa etapa o código segue seu processo como conversão em cinza e depois adaptação e facilitar o reconhecimento dos rostos, fazendo um processo semelhante ao reconhecimento das imagens, com poucas mudanças importantes.

image

IMPORTANTE: O reconhecimento facial em vídeos pode demorar mais do que em imagens, por isso escolha vídeos curtos, com uma boa resolução para que os rostos sejam detectados mais rapidamente.

Desafios de Segurança

Apesar de ser considerada uma biblioteca poderosa, não podemos nos esquecer nos riscos envolvidos em seu uso. Para isso, precisamos ficar atentos em alguns pontos principais:

  • Uso de dados sensíveis: alguns dados capturados pela biblioteca podem ser sensíveis e por isso é preciso estar atento a política de privacidade dos dados de cada país ou região para evitar problemas futuros;
  • Vazamento de dados: hackers podem invadir os bancos de dados contendo imagens capturadas, o que pode gerar problemas futuros. O desafio é garantir a segurança dessas informações para que elas não fiquem a disposição de cibercriminosos;
  • Imagens Falsas: atualmente a geração de deep fakes e outros tipos de falsificação de imagens, podem ser um desafio enorme para quem usa OpenCV. É preciso desenvolver soluções capazes de detectar essas imagens para atualizar os modelos para que não cometam enganos e confusões;
  • Viés: um outro problema está relacionado ao viés, que pode prejudicar pessoas de acordo com sua cor da pele, causando discriminação. É preciso estar atento a este ponto, para não deixar as pessoas constrangidas.
  • Falta de autenticação: em alguns casos é possível utilizar OpenCV sem nenhum tipo de autorização, assim com o acesso facilitado, o uso para fins ilícitos pode ser facilitado;
  • Código malicioso: usuários mal intencionados podem enviar arquivos maliciosos, com capacidade de danificar sistemas, por isso é preciso ficar atento ao tipo de arquivo que está sendo enviado para não ser prejudicado.

Dessa forma, apesar de uma série de benefícios, ao utilizar o OpenCV, você precisa estar atento para não ter problemas com uso de imagens sensíveis sem autorização, proteção de dados e também ataques hackers que podem expor pessoas sem a necessidade, a questão do viés também é fundamental e merece total atenção para não discriminar nenhuma pessoa.

Uso no Cotidiano

O Reconhecimento facial utilizando OpenCV pode ser aplicado em diversas situações em nossa sociedade atual. Veja abaixo, alguns exemplos:

  • As empresas Apple e Samsung disponibilizam reconhecimento facial em seus smartphones para desbloquear a tela, por exemplo;
  • Carros autônomos da Tesla, usam a biblioteca da OpenCV para reconhecimento de objetos e semáforos;
  • Filtros Faciais em redes sociais como Instagram e Tiktok fazem uso de OpenCV para modificar os rostos dos usuários;
  • A Medicina tem se beneficiado também da OpenCV para detectar alterações na saúde dos pacientes e prevenir doenças com maior rapidez;
  • O Controle de qualidade de empresas de manufatura também é outra área importante que é ajudada. Assim, evita que os produtos sejam produzidos com defeitos;
  • Transformação de imagem em texto é outro benefício que pode ser utilizado. Isso facilita o processo de digitalização de documentos importantes, impedindo perda de dados e ainda ajuda o meio ambiente com soluções mais sustentáveis.

Essas são apenas algumas das muitas aplicações da biblioteca OpenCV no dia a dia. Por isso é tão importante aprender cada dia mais, como criar soluções robustas e enriquecer seu portfólio de projetos com soluções para diversos setores, como você pode ver nos exemplos.

Considerações Finais

Após a leitura desse artigo, você entendeu melhor sobre o que é visão computacional e sua importância, além disso, conheceu a biblioteca OpenCV e como ela pode ser utilizada para realizar o reconhecimento facial. Viu também que Python é a linguagem principal para desenvolver códigos para criar soluções e ainda teve a oportunidade de entender quais os benefícios e riscos para segurança das pessoas ao usar esse tipo de ferramenta.

Acredito que a evolução de bibliotecas robustas como o caso do OpenCV é somente um caminho para que o reconhecimento facial seja feito da maneira mais assertiva possível em um menor tempo. Por isso é preciso aprender cada vez mais a dominar linguagens como Python, principalmente para aplicar em IA e também conhecer as bibliotecas que podem acelerar na criação de soluções que tragam benefícios para a vida de todos.

Dessa maneira, você deve assumir o papel de protagonista da sua carreira, buscando conhecimento e trocando experiências com seus colegas. Leia artigos, participe ativamente da comunidade e tenho certeza que você irá colher bons frutos!

Bons estudos!

Referências

AWS. O que é visão computacional? Disponível em: https://aws.amazon.com/pt/what-is/computer-vision/. Acesso em: 14 maio 2025.

GOOGLE RESEARCH. Perguntas frequentes sobre o Colaboratory. Disponível em: https://research.google.com/colaboratory/intl/pt-BR/faq.html. Acesso em: 14 maio 2025.

MARQUES, Rogério. OpenCV: uma breve introdução à visão computacional com Python. Cedro Technologies, 3 out. 2018. Atualizado em 29 mar. 2023. Disponível em: https://www.cedrotech.com/blog/opencv-uma-breve-introducao-visao-computacional-com-python/. Acesso em: 14 maio 2025.

OPEN SOURCE COMPUTER VISION FOUNDATION. OpenCV: Open Source Computer Vision Library. Disponível em: https://opencv.org/. Acesso em: 14 maio 2025.

OPENCV. OpenCV Applications in 2023. Disponível em: https://opencv.org/blog/opencv-applications-in-2023/. Acesso em: 14 maio 2025.

TIOBE SOFTWARE. TIOBE Index. Disponível em: https://www.tiobe.com/tiobe-index/. Acesso em: 14 maio 2025.

Compartilhe
Comentários (0)