Visão computacional e 10 bases de dados para desenvolver seu portfólio

Mariane Neiva — @maribneiva
4 min readDec 14, 2021

Diferente de dados tabulares, imagens e vídeos são dados não estruturados e, portanto, exigem metodologias diferentes de manipulações.

Nesse post, vamos falar sobre como o computador enxerga as imagens e os vídeos, um exemplo de manipulação e 10 projetos para o seu portfólio de visão computacional!

Para o computador, o que é uma imagem?

Imagens são matrizes! Sua cores são representadas por um ou mais números, dependendo do espaço de cores utilizado.

No espaço RGB, por exemplo, as imagens são um conjunto de três números R, G e B. A figura abaixo, apresenta um exemplo de como a imagem é vista pelo computador.

Source: https://www.researchgate.net/figure/RGB-matrix-representation-of-a-cover-image_fig2_261421805
Exemplo de matriz de imagem. Source

Aumento de brilho

Manipular uma imagem significa manipular números, onde, em escala de cinza:

0 = preto

255 = branco

Se você quer aumentar o brilho da imagem, por exemplo, basta adicionar um valor x em todos os valores da imagem. Quando maior x, mais brilho a imagem terá (limitando a soma a 255).

De forma lógica, o processo de aumento de brilho em 100 pontos de intensidade funciona da seguinte forma:

- leia a imagem I
- para cada pixel y da imagem I, adicione 100.
- mostre a imagem

Na prática, em python podemos utilizar a biblioteca opencv de forma simplificada no Google Colab:

#importe as bibliotecas necessárias#opencv
import cv2
#necessárias para mostrar a imagem
from google.colab.patches import cv2_imshow
#necessária para criar a imagem de brilho
import numpy as np

#caminho da imagem
imagePath = 'Fruit-Vegetable-Processing.jpg'
#link para a imagem utilizar - https://www.jbtc.com/foodtech/wp-content/uploads/sites/2/2021/08/Fruit-Vegetable-Processing.jpg

#lendo a imagem
image = cv2.imread(imagePath)
#criando image imagem do mesmo tamanho para ser o 'brilho'
bright = np.zeros_like(image);
#adicionaremos um brilho de 100 em cada pixel
bright[:,:] = [100,100,100]; # (b,g,r)
#some 100 em cada pixel da imagem
brilho = cv2.add(image, bright);
#caso a soma ultrapasse 255 (máximo), limite-o a 255 (branco)
brilho[brilho > 255] = 255
#mostre a imagem original
cv2_imshow(image)
#mostre a imagem de brilho
cv2_imshow(brilho)
#espere um comando
cv2.waitKey()

Resultado:

Imagem original (esquerda) e com alteração de brilho (direita)

Link para o colab

E vídeos, o que são?

Vídeos são apenas uma sequência de imagens!

Quando vemos 60fps, significa que temos 60 imagens por segundo no vídeo.

Vídeos em câmera lenta têm, em geral, 240 fps, ou seja, são tiradas 240 fotos por segundo.

A figura abaixo mostra um exemplo de imagens por segundo para cada ‘frame rate’

Source: https://www.ioforth.com/youtube-videos/best-frame-rate-for-youtube.htm
Source

Visão computacional

Quando falamos sobre inteligência artificial, lembramos de máquinas imitando o poder humano em todos os sentidos.

A visão é um deles! Isso significa, não apenas enxergar e exibi-las, mas também processá-las. Compreender o que está contido e, em muito casos, tomar decisões.

O carro autonomo é um exemplo de sistema inteligente. O veículo deve ser capaz de:

  • enxergar através de cêmeras e sensores 3D
  • identificar os itens no cenário e
  • decidir qual a próxima posição tomar.
Source: https://pt.ufrjnautilus.com/post/vis%C3%A3o-computacional-e-carros-aut%C3%B4nomos
Source

Agora que você aprendeu os principais conceitos da visão computacional, vamos a alguns dados/projetos para construir seu portfólio?

10 Projetos de visão computacional para montar seu porfólio:

1. Face Mask detection

2. Capa de invisibilidade

https://www.hindustantimes.com/science/harry-potter-invisibility-cloaks-closer-to-reality-scientists-say/story-6MMMO6FGVnpUFDuxsltI7O.html

3. Face recognition

https://github.com/raoqiyu/FaceDetection
Image source

4. CT scans for COVID detection

https://www.nature.com/articles/s41598-021-87523-1

5. Análise de dados geospaciais do INPE

http://www.inpe.br/noticias/noticia.php?Cod_Noticia=5725

6. Reconhecimento de gestos

https://github.com/avidLearnerInProgress/hand-gesture-recognition

7. Detecção — OCR

https://www.instructables.com/OCR-With-Opencv-Python/

8. Detecção de carro

https://github.com/tejaslodaya/car-detection-yolo

9. Detecção de pose

Fonte

10. Detecção de roupas (Fashion MNIST)

Fonte

Gostou? Não deixe de seguir o blog para mais!

Conecte-se comigo: Instagram and LinkedIn

--

--

Mariane Neiva — @maribneiva

Woman in tech, researcher @University of Sao Paulo. Passionate by artificial intelligence, innovation, scientific communication and programming.