• Português (Brasil) Português (Brasil)
  • English English
  • Español Español
Acessibilidade
Ir para o conteúdo (1/4) 1Ir para o menu (2/4) 2Ir para a busca (3/4) 3Ir para o rodapé (4/4) 4
Acesso Rápido
EmpresaInsightsPrivacidadeSuporteDownload e SoftwareImprensaContatoÁrea do clienteAcesso à informação Loja Serpro
Área do cliente
Serpro, impulsionado pelos próximos 60 anos
Provendo soluções inteligentes para transformação e inclusão digital
Redefinir Cookies
Serpro
Institucional
  • Quem somos
  • Marca Serpro
  • Iniciativas Sociais
  • Privacidade
  • Eventos
    • 3ª Semana Serpro de Privacidade e Proteção de Dados
    • Hackathon - Compras Governamentais
    • Hackathon Rede +Brasil
    • Desafio Fiscal Inovador
  • Governança
  • Ética e integridade
  • Acesso à informação
Soluções
  • Insights e notícias
  • Loja Serpro
  • Inovação aberta
Suporte
  • Ajuda ao cliente
  • Central de Serviços Serpro
  • Atendimento Gestão de Consignação
  • Transformação Digital da Justiça
  • Download & Software
    • Assinador digital
    • Certificado Digital
    • Emulador HOD
    • SAR - Acesso remoto
    • Drivers de token
  • Central de Ajuda
Sustentabilidade
  • ESG Serpro
  • Conheça nosso trabalho
  • Objetivos de Desenvolvimento Sustentável
  • Jornada Ser ESG
  • Notícias e artigos
Contato
  • Fale conosco
  • Imprensa
  • Endereços
  • Ouvidoria
  • Fala BR
Consultas públicas Prestação de Contas
Redes Sociais
Serpro Sede - SGAN Quadra 601 Módulo "V" Brasília - DF CEP: 70836-900
Horário de atendimento: 8h às 18h
Você está aqui: Página Inicial  ›  Menu  ›  Notícias  ›  Notícias 2020  ›  Visão computacional: O que é? Como funciona?
Info

Notícias

notícias

Artigo

Artigo

Visão computacional: O que é? Como funciona?

Uma breve explicação sobre os sistemas artificiais que permitem que computadores "enxerguem"
Composição digital de um olho humano
  • Facebook
  • Linkedin
  • Twitter
  • Whatsapp
por Loreane Brandizzi — 07 de abril de 2020

Com diversas aplicações na solução de problemas reais, as tecnologias voltadas à visão computacional têm se proliferado em diversas áreas. Um dos usos populares destas tecnologias está na medicina, nas tarefas de diagnóstico por meio da extração de informações das imagens de radiografias, ultrassonografias, ressonâncias etc.

Outros cases conhecidos sobre visão computacional são os carros autônomos, que são capazes de reconhecer as sinalizações das vias por meio do processamento das imagens das placas em tempo real, obtendo assertividade até maior que a humana. Tais soluções são usadas inclusive na exploração espacial em veículos autônomos como o usado na Mars Exploration Rover, da NASA.

Imagem1Artigo.png
Imagem 1 - 
Fonte

As aplicações não param por aí: a indústria utiliza esses métodos para análise de qualidade de produtos; a agronomia aplica a visão computacional na irrigação das plantações; os sistemas de reconhecimento facial identificam pessoas univocamente etc.

Uma questão intrigante é: como o computador consegue "ver" se ele não é detentor das complexas fisiologias dos seres vivos?

De fato a visão computacional não é trivial e só foi possível graças ao trabalho de diversos pesquisadores que estudaram intensivamente a aplicação de Redes Neurais Convolucionais (CNN) em tarefas reais.

Uma das primeiras demonstrações ocorreu nos anos 90, quando o cientista de computação francês Yann LeCun construiu uma CNN para reconhecimento de caracteres manuscritos da famosa base de dados MNIST.

Outro famoso desafio de aplicação das CNN é no reconhecimento dos objetos da eclética base de dados ImageNet que possui mais de 14 milhões de imagens. Em 2011, a taxa de erro obtida nessas competições era em torno de 25%, já em 2012, um modelo de CNN chamado AlexNet conseguiu uma taxa menor, de 16%. Em 2017, a acuracia obtida pela maioria dos times da competição era maior que 95%.

A tecnologia por trás do processamento e classificação de imagens não é simples, entretanto é composta por modelos muito interessantes que vale a pena compreender.

Este artigo traz uma visão introdutória sobre as CNN. Para um entendimento mais aprofundado, é necessário uma leitura mais técnica e completa.

Visão Humana x Visão Computacional

De forma resumida, na visão humana a imagem é captada pela retina e enviada para os neurônios responsáveis por compreendê-la e classificá-la.

Uma bicicleta, por exemplo, é classificada como bicicleta pelo cérebro por possuir características específicas de bicicletas como: rodas, quadro, manopla, selim, pedais, entre outros.

Caso a bicicleta esteja sem uma roda, por exemplo, mesmo assim o sistema humano consegue realizar a correta classificação, visto que pode abstrair a falta de alguma parte ou alguma diferença estética ou estrutural.

No treinamento de uma CNN, acontece algo semelhante, as Redes neurais convolucionais recebem imagens (que para o computador são matrizes de pixeis referentes às cores da imagem) e aplicam filtros, que possibilitam a extração de características. Após essa extração, utilizam a camada de rede neural para classificar a imagem.

Como não se trata de um processo trivial, abaixo estão minimamente detalhadas algumas das etapas e requisitos desse processamento.

Seleção das imagens para treinamento da CNN

Para que o treinamento da rede seja eficiente, é imprescindível que o dataset de imagens que serão usadas para treinamento seja extenso e possua fotos do objeto em diferentes posições, cores, iluminação, perspectiva.

A base ImageNet, por exemplo, possui mais de 1800 fotos de Gatos. A MNIST possui também uma grande quantidade de imagens do mesmo caractere manuscrito.

Imagem2Artigo.png
Imagem 2 - Fonte


Caso não se possua um dataset extenso o bastante para trazer maior generalização para o algoritmo, pode-se usar técnicas para rotacionar e entortar as imagens e com isso, gerar novas imagens do objeto.

As imagens precisam ser tratadas a fim de possuírem a mesma dimensão. Essas imagens são compreendidas pelo computador como matrizes. No exemplo abaixo, da base MNIST, é possível observar matriz da imagem referente ao 4 manuscrito. Observe que se trata de uma matriz de 28 x 28 pixels, onde os pixels responsáveis por representar a letra estão em tons de cinza.

Imagem3Artigo.png
Imagem 3 - Fonte

Extração de características

Na visão humana, há o reconhecimento de características que classificam um objeto, já as CNN realizam esse procedimento por meio de aplicação de filtros.

Os filtros são matrizes menores que percorrem os pixels da imagem de entrada e geram novas imagens (Feature map). Na aplicação dos filtros, é realizada uma operação matemática entre a matriz da Imagem de Entrada (I) e Filtro (K), gerando os Feature Maps (I*K). Esse processo é denominado Convolução.

Imagem4Artigo.png
Imagem 4 - Fonte

Na prática, o filtro (Kernel) percorre toda a imagem de entrada e gera um mapa resultante deste processamento.

Imagem5Artigo.png
Imagem 5 - Fonte

O processo de convolução pode ser executado seguidas vezes, até se obter Feature Maps adequados.

Imagem6Artigo.png
Imagem 6 - Fonte

Nesse processo, podem ser aplicadas técnicas de pooling, padding, ativação e outras funções que permitem à rede extrair boas features da imagem. Um dos grandes desafios do Cientista de Dados é configurar essas camadas de forma a obter a maior eficiência no processo de classificação.

Flattening

Uma vez que os mapas foram extraídos, aplica-se a técnica de flattening para transformação da matriz resultante das convoluções em um vetor com 1 coluna e N linhas, que dará entrada na camada densa da rede, responsável por classificar a imagem.

Imagem7Artigo.png
Imagem 7 - Fonte

Camada Densa

Esta camada é uma rede neural que será treinada para classificar os vetores resultantes do processo de Flattening.

Ela possuirá uma quantidade razoável de neurônios que receberão como entrada o vetor. Esta rede poderá possuir diferentes camadas e utilizar algumas técnicas específicas como DropOut, para aprimorar os resultados.

Imagem8Artigo.png
Imagem 8 - Fonte

As redes neurais utilizam a técnica de Backpropagation para atualização dos seus pesos com o objetivo de alcançar a menor taxa de erro na camada de saída, que classificará o objeto.

Dada a importância desta técnica, pode-se dizer que o backpropagation é o algoritmo mais importante das redes neurais, pois sem ele seria impossível realizar o treinamento das redes com a eficiência obtida atualmente. Esse algoritmo possui duas fases: Forward Pass quando há a propagação dos valores da entrada através da rede e Backward Pass onde é calculado o gradiente da função de perda da camada final e aplicada recursivamente a regra da cadeia (derivadas parciais compostas) para atualização dos pesos. Com isso, a rede neural consegue aprender os melhores pesos e se adaptar para classificação do objeto.

De forma didática e resumida, sem a pretensão de demonstrar toda a complexidade do processo, pode-se observar que a Rede Neural Convolucional possui a seguinte estrutura:

Imagem9Artigo.png
Imagem 9 - Fonte

Após o treinamento dessa rede, é gerado um modelo de classificação que poderá ser utilizado nos processos de classificação de uma aplicação específica, podendo ser um carro autônomo lendo placas da cidade, uma câmera identificando pessoas pela face, um equipamento de irrigação diferenciando as plantas...

Essa é uma explicação bem sintética e despretensiosa de uma das mais populares tecnologias aplicadas na visão computacional. É importante mencionar o imenso arcabouço matemático, estatístico e tecnológico que permitiu a criação e aplicação desta incrível tecnologia.

Infraestrutura para visão computacional

As técnicas de backpropagation, ativação, cálculos entre matrizes, e outros, são problemas estudados há décadas pelos matemáticos que só puderam ser aplicados com o advento de computadores capazes de realizar esse complexo e pesado processamento.

Apesar de servidores com processadores tradicionais do tipo CPU (Unidades de Processamento Central) serem utilizados nessas tarefas, o reconhecimento de imagens por meio de CNN ganhou fôlego com a utilização dos chips GPU’s (Unidades de Processamento Gráfico).

As GPU’s são processadores para computação gráfica altamente otimizados para processamento de operações repetitivas, como o treinamento destes algoritmos, pois são capazes de efetuar cálculos matemáticos de forma veloz e paralelizada.

Implementação de CNN

Outro fator que tornou o uso das CNN mais acessível foi o lançamento de diversas bibliotecas que abstraem boa parte da complexidade matemática dessas redes, tornando o treinamento e geração de modelos CNN muito mais simples, tais como Keras, Torch, TensorFlow.

Apesar desse estado da arte, é importante mencionar que o desenvolvimento desses modelos não é trivial, pois há diversas decisões estratégicas durante a montagem dos algoritmos e na análise dos resultados que dependem de conhecimentos matemáticos, estatísticos, computacionais e de negócio. O Cientista de Dados precisa estar apto a realizar essas análises, o que torna esse profissional muito valioso para as organizações.


Loreane Brandizzi


Loreane Evelyn Nazareth Brandizzi é pós-graduada em Gestão Estratégica de TI pela FGV, graduada em Computação pela Universidade de Brasília e estudante de Ciência de Dados. Trabalha no Serpro desde 2011 como analista de negócios, e hoje atua como consultora de negócios na Superintendência de Relacionamento com o Cliente Ministério da Economia.

Contato

  • Quero Adquirir uma Solução
  • Problemas com uma Solução
  • Assessoria de Imprensa
  • Ouvidoria
  • Outro Assunto
Serpro
Soluções
Loja Serpro
Inovação aberta
Insights e Notícias
Suporte
Ajuda ao cliente
Central de Ajuda
Central de Serviços
Consignatárias
Transformação Digital da Justiça
Downloads
Institucional
Quem Somos
Marca Serpro
Iniciativas Sociais – Programa Agora
Governança
Ética e Integridade
Acesso à Informação
Privacidade
Contato
Endereços
Fale conosco
Imprensa
Ouvidoria
Fala BR
Empregados
Intranet
PAS Serpro
Plano Odontológico
SOS RS
Carreira
SUSTENTABILIDADE
ESG
Jornada Ser ESG
Objetivos de desenvolvimento Sustentável
Redes Sociais
Acesso àInformação
Serpro - Ministério da Fazenda - Governo Federal
Serpro Sede - SGAN Quadra 601 Módulo "V" Brasília - DF CEP: 70836-900
Horário de atendimento: 8h às 18h

Doormat

Soluções

Por Público
Por Linha de Negócio
Proteção de Dados

Suporte

Central de Ajuda
Central de Serviços
Acesso Remoto (SAR)
Consignatários
Downloads

Institucional

Quem Somos
Integridade
Transparência
Carreiras
Simplifique
Marca Serpro

Contato

Contatos
Imprensa

Empregado

Intra Serpro
PAS Serpro
Plano Odontológico