Visão Computacional
para Não Cientistas
Dr. Ahirton Lopes
Head of Data
Professor de MBA @ FIAP
Dr. Ahirton Lopes
Head of Data
Professor de MBA, Corporate e PSE @ FIAP
5x Most Valuable Professional – AI @Microsoft
Google Developer Expert – Machine Learning
LinkedIn Top Voice
Doutor em Engenharia Elétrica e Computação pela
Universidade Presbiteriana Mackenzie (UPM)
Pesquisador em Machine e Deep Learning
TÓPICOS
Introdução a Visão
Computacional
Como uma máquina pode
“enxergar”? Casos de uso e
problemas comuns na área.
Do Deep Learning a IA
Generativa
Estrutura e modelagem – Quais
técnicas usamos?
Demonstrações
Usos em GenAI para Visão
Computacional.
Progresso em Modelos
Generativos
Atenção e Transformers
para Não Cientistas.
- Soluções, do OpenCV ao Gemini, e funcionamento base;
- Casos de uso – O que são Atenção e Visual Transformers;
- Desafios e soluções comuns (em atualização!)
1N73L163NC14 3 4
H481L1D4D3 D3 53
4D4P74R 4
MUD4NÇ4
5
Programa
Entrada
Saída
Desenvolvedor
Programação
6
Machine
Learning
Entrada
Saída
Esperada
Cientista
de Dados
Programa
Aprendizagem de Máquina (ML)
7
Entrada
Saída
Programa
Execução
Descoberta de conhecimento
Um caso prático
Um caso prático
Um caso prático
Visão Computacional – Como uma
máquina “enxerga”?
Machine vs. Deep Learning
Machine vs. Deep Learning
Por que Deep Learning?
Deep Learning
- Uma rede neural profunda consiste em uma hierarquia de camadas, em que cada
camada transforma os dados de entrada em representações mais abstratas (por
exemplo, borda -> nariz -> face).
- A camada de saída combina esses recursos para fazer previsões.
Deep Learning
- Cada camada é representada como uma série de neurônios e, progressivamente, extrai recursos de maior
e maior nível da entrada até que a camada final faça essencialmente uma decisão sobre o que a entrada
mostra;
- Quanto mais camadas a rede tiver, maiores serão as características que ela aprenderá.
Exemplo
Exemplo
Deep Learning
- Ou seja, a rede acaba gerando um sinal de erro que mede a diferença entre as previsões da rede e os
valores desejados e, em seguida, usa-se este sinal de erro para alterar os pesos (ou parâmetros) para que as
previsões fiquem cada vez mais precisas.
Labrador ou frango frito?
PROBLEMAS COMPLEXOS
MODELOS GENERATIVOS (GenAI)
Visão Computacional
Processamento de Linguagem Natural Robótica
TTS – STT – Fala Computacional
Qual o desafio?
O entendimento de entradas não estruturadas e complexos
Generative Adversarial Networks
Richard Feynman: “O que eu não consigo criar, eu não entendo”
Modelagem Generativa: “O que eu entendo, eu consigo criar!”
Como gerar imagens mais naturais com um computador?
Nossos modelos terão estruturas similares (generativo + inferência)
Geração Inferência
Modelagem Generativa:
Computação Gráfica
Cubo(cor=azul, posição=(x,y,z), tamanho=…)
Cilindro(cor=vermelho, posição=(x’,y’,z’), tamanho=..)
Descrição de
alto nível
Saídas
sensoriais
brutas
Modelos generativos estatísticos são construídos a partir de dados
Conhecimento anterior é necessário, mas há um espectro
Prior Knowledge
(e.g., physics, materials, ..)
+
Data
(e.g., images of bedrooms)
Modelos Generativos Estatísticos
…
Um modelo estatístico generativo é uma distribuição de probabilidade p(x)
• Dados: amostras (por exemplo, imagens de quartos) ;
• Conhecimento prévio: forma paramétrica (por exemplo, gaussiana?), função de perda
(por exemplo, máxima verossimilhança - likelihood), algoritmo de otimização, etc.
É generativo porque a amostragem de p(x) gera novas imagens
Modelos Generativos Estatísticos
probabilidade p(x)
Uma distribuição
de probabilidade
p(x)
Imagem x
…
Discriminativos vs. Generativos
A imagem X é dada.
Objetivo: limite de decisão, via distribuição condicional sobre o
rótulo Y
Ex: regressão logística, rede convolucional etc.
Borda Decisória
Discriminativo: classificar quarto vs. sala de jantar Generativo: gerar X
A entrada X não é dada. Requer
um modelo da distribuição
conjunta sobre X e Y
… …
Y=B , X=
Y=B , X=
Y=D , X=
Y=D , X=
Y=B , X= Y=D , X=
Atenção
PROGRESSO EM MODELOS GENERATIVOS
Progresso em Modelos Generativos
Progresso em Problemas Inversos
Menon et al, 2020 Liu al, 2018
P(high resolution | low resolution) P(full image| mask)
P(color image| greyscale)
Antic, 2020
Progresso em Problemas Inversos
Imagens e Texto
P(image | caption)
Visual Prompting
Visual RAG (Retrieval Augmented Generation)
A Visual Model Fine Tuning
VISUAL TRANSFORMERS
• Os ViTs representam imagens
como uma sequência de
patches. Um patch é uma
pequena região retangular de
uma imagem. O tamanho do
patch é normalmente 16x16
pixels.
• Depois que a imagem for dividida
em patches, cada patch é
representado como um vetor. O
vetor representa os recursos do
patch. Os recursos são
normalmente extraídos usando
uma rede neural convolucional
(CNN).
• A CNN aprende a extrair
características importantes para a
classificação de imagens.
• Os vetores de cada patch são
então alimentados em um
codificador Transformer.
• O codificador Transformer é uma
pilha de camadas de autoatenção.
A autoatenção é um mecanismo
que permite ao modelo aprender
dependências de longo alcance
entre os patches.
• Isto é importante para a
classificação de imagens, pois
permite ao modelo aprender
como as diferentes partes de uma
imagem contribuem para o seu
rótulo geral.
VISUAL TRANSFORMERS
• A saída do codificador Transformer é uma sequência de
vetores. Esses vetores representam as características da
imagem. Os recursos são então usados para classificar a
imagem.
VISUAL TRANSFORMERS
VISUAL TRANSFORMERS
• ViTs podem aprender
características globais de
imagens. Isso porque
eles são capazes de
atender qualquer parte
da imagem,
independente de sua
localização.
• Particularmente útil para
tarefas como
classificação de imagens,
detecção de objetos e
compreensão de cenas.
VISUAL TRANSFORMERS
• Os ViTs não são tão sensíveis ao aumento de dados
quanto os CNNs. Isso significa que eles podem ser
treinados em conjuntos de dados menores;
• ViTs são computacionalmente caros para treinar.
Isso ocorre porque eles possuem um grande
número de parâmetros;
• Os ViTs não são tão eficientes quanto os CNNs no
processamento de imagens. Isso porque eles
precisam atender a cada parte da imagem, mesmo
que não seja importante para a tarefa em questão;
• Os ViTs não são tão interpretáveis quanto os CNNs.
Isso significa que é difícil entender como eles fazem
previsões.
VISUAL TRANSFORMERS
• O ViT usa um conjunto fixo de
recursos de entrada e um atraso
de tempo variável;
• O ViT foi projetado para
processar os dados de entrada
em uma janela de tempo fixa;
• O ViT é bastante útil para o
propósito de processar dados
sequenciais.
VISUAL TRANSFORMERS
• O ViT usa um conjunto fixo de
recursos de entrada e um atraso
de tempo variável;
• O ViT foi projetado para
processar os dados de entrada
em uma janela de tempo fixa;
• O ViT é bastante útil para o
propósito de processar dados
sequenciais.
DEMOS
• O que queremos para o futuro em nossos sistemas de
Visão Computacional?
• Inteligibilidade;
• Conscientização sobre Dados (Data Awareness);
• Acontabilidade;
• Proteção aos Direitos Humanos;
• Segurança.
OBRIGADO
ahirtonlopes@gmail.com

Palestra - CodeCon Visao Computacional.pptx

  • 1.
    Visão Computacional para NãoCientistas Dr. Ahirton Lopes Head of Data Professor de MBA @ FIAP
  • 2.
    Dr. Ahirton Lopes Headof Data Professor de MBA, Corporate e PSE @ FIAP 5x Most Valuable Professional – AI @Microsoft Google Developer Expert – Machine Learning LinkedIn Top Voice Doutor em Engenharia Elétrica e Computação pela Universidade Presbiteriana Mackenzie (UPM) Pesquisador em Machine e Deep Learning
  • 3.
    TÓPICOS Introdução a Visão Computacional Comouma máquina pode “enxergar”? Casos de uso e problemas comuns na área. Do Deep Learning a IA Generativa Estrutura e modelagem – Quais técnicas usamos? Demonstrações Usos em GenAI para Visão Computacional. Progresso em Modelos Generativos Atenção e Transformers para Não Cientistas. - Soluções, do OpenCV ao Gemini, e funcionamento base; - Casos de uso – O que são Atenção e Visual Transformers; - Desafios e soluções comuns (em atualização!)
  • 4.
    1N73L163NC14 3 4 H481L1D4D3D3 53 4D4P74R 4 MUD4NÇ4
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
    Visão Computacional –Como uma máquina “enxerga”?
  • 13.
  • 14.
  • 15.
    Por que DeepLearning?
  • 16.
    Deep Learning - Umarede neural profunda consiste em uma hierarquia de camadas, em que cada camada transforma os dados de entrada em representações mais abstratas (por exemplo, borda -> nariz -> face). - A camada de saída combina esses recursos para fazer previsões.
  • 17.
    Deep Learning - Cadacamada é representada como uma série de neurônios e, progressivamente, extrai recursos de maior e maior nível da entrada até que a camada final faça essencialmente uma decisão sobre o que a entrada mostra; - Quanto mais camadas a rede tiver, maiores serão as características que ela aprenderá.
  • 18.
  • 19.
  • 20.
    Deep Learning - Ouseja, a rede acaba gerando um sinal de erro que mede a diferença entre as previsões da rede e os valores desejados e, em seguida, usa-se este sinal de erro para alterar os pesos (ou parâmetros) para que as previsões fiquem cada vez mais precisas.
  • 21.
    Labrador ou frangofrito? PROBLEMAS COMPLEXOS
  • 22.
  • 23.
    Visão Computacional Processamento deLinguagem Natural Robótica TTS – STT – Fala Computacional Qual o desafio? O entendimento de entradas não estruturadas e complexos
  • 24.
  • 25.
    Richard Feynman: “Oque eu não consigo criar, eu não entendo” Modelagem Generativa: “O que eu entendo, eu consigo criar!”
  • 26.
    Como gerar imagensmais naturais com um computador? Nossos modelos terão estruturas similares (generativo + inferência) Geração Inferência Modelagem Generativa: Computação Gráfica Cubo(cor=azul, posição=(x,y,z), tamanho=…) Cilindro(cor=vermelho, posição=(x’,y’,z’), tamanho=..) Descrição de alto nível Saídas sensoriais brutas
  • 27.
    Modelos generativos estatísticossão construídos a partir de dados Conhecimento anterior é necessário, mas há um espectro Prior Knowledge (e.g., physics, materials, ..) + Data (e.g., images of bedrooms) Modelos Generativos Estatísticos …
  • 28.
    Um modelo estatísticogenerativo é uma distribuição de probabilidade p(x) • Dados: amostras (por exemplo, imagens de quartos) ; • Conhecimento prévio: forma paramétrica (por exemplo, gaussiana?), função de perda (por exemplo, máxima verossimilhança - likelihood), algoritmo de otimização, etc. É generativo porque a amostragem de p(x) gera novas imagens Modelos Generativos Estatísticos probabilidade p(x) Uma distribuição de probabilidade p(x) Imagem x …
  • 29.
    Discriminativos vs. Generativos Aimagem X é dada. Objetivo: limite de decisão, via distribuição condicional sobre o rótulo Y Ex: regressão logística, rede convolucional etc. Borda Decisória Discriminativo: classificar quarto vs. sala de jantar Generativo: gerar X A entrada X não é dada. Requer um modelo da distribuição conjunta sobre X e Y … … Y=B , X= Y=B , X= Y=D , X= Y=D , X= Y=B , X= Y=D , X=
  • 30.
  • 31.
  • 32.
  • 33.
    Progresso em ProblemasInversos Menon et al, 2020 Liu al, 2018 P(high resolution | low resolution) P(full image| mask) P(color image| greyscale) Antic, 2020
  • 34.
  • 35.
  • 36.
  • 37.
    Visual RAG (RetrievalAugmented Generation)
  • 38.
    A Visual ModelFine Tuning
  • 39.
    VISUAL TRANSFORMERS • OsViTs representam imagens como uma sequência de patches. Um patch é uma pequena região retangular de uma imagem. O tamanho do patch é normalmente 16x16 pixels. • Depois que a imagem for dividida em patches, cada patch é representado como um vetor. O vetor representa os recursos do patch. Os recursos são normalmente extraídos usando uma rede neural convolucional (CNN). • A CNN aprende a extrair características importantes para a classificação de imagens. • Os vetores de cada patch são então alimentados em um codificador Transformer. • O codificador Transformer é uma pilha de camadas de autoatenção. A autoatenção é um mecanismo que permite ao modelo aprender dependências de longo alcance entre os patches. • Isto é importante para a classificação de imagens, pois permite ao modelo aprender como as diferentes partes de uma imagem contribuem para o seu rótulo geral.
  • 40.
    VISUAL TRANSFORMERS • Asaída do codificador Transformer é uma sequência de vetores. Esses vetores representam as características da imagem. Os recursos são então usados para classificar a imagem.
  • 41.
  • 42.
    VISUAL TRANSFORMERS • ViTspodem aprender características globais de imagens. Isso porque eles são capazes de atender qualquer parte da imagem, independente de sua localização. • Particularmente útil para tarefas como classificação de imagens, detecção de objetos e compreensão de cenas.
  • 43.
    VISUAL TRANSFORMERS • OsViTs não são tão sensíveis ao aumento de dados quanto os CNNs. Isso significa que eles podem ser treinados em conjuntos de dados menores; • ViTs são computacionalmente caros para treinar. Isso ocorre porque eles possuem um grande número de parâmetros; • Os ViTs não são tão eficientes quanto os CNNs no processamento de imagens. Isso porque eles precisam atender a cada parte da imagem, mesmo que não seja importante para a tarefa em questão; • Os ViTs não são tão interpretáveis quanto os CNNs. Isso significa que é difícil entender como eles fazem previsões.
  • 44.
    VISUAL TRANSFORMERS • OViT usa um conjunto fixo de recursos de entrada e um atraso de tempo variável; • O ViT foi projetado para processar os dados de entrada em uma janela de tempo fixa; • O ViT é bastante útil para o propósito de processar dados sequenciais.
  • 45.
    VISUAL TRANSFORMERS • OViT usa um conjunto fixo de recursos de entrada e um atraso de tempo variável; • O ViT foi projetado para processar os dados de entrada em uma janela de tempo fixa; • O ViT é bastante útil para o propósito de processar dados sequenciais.
  • 46.
  • 49.
    • O quequeremos para o futuro em nossos sistemas de Visão Computacional? • Inteligibilidade; • Conscientização sobre Dados (Data Awareness); • Acontabilidade; • Proteção aos Direitos Humanos; • Segurança.
  • 51.

Notas do Editor

  • #23 Problema: dar sentido a entradas sensoriais complexas e não estruturadas. Imagens, fala, texto, vídeo, etc
  • #26 Computação gráfica: Produzir imagens plausíveis Você escolhe modelos, condições, parâmetros de imagem, etc. Visão: Dadas imagens com ruído, estime as quantidades físicas (problema mal colocado) Construir um modelo generativo não é toda a história. A inferência (por exemplo, visão) ainda é difícil. Portanto, não é inteiramente verdade que, se podemos criar, entendemos. Mas é um passo útil
  • #27 Estamos preocupados com modelos estatísticos generativos Gráficos: puramente baseados em conhecimento prévio. Difícil escalar. Desenvolver o campo levou muito tempo. Ainda não totalmente resolvido, área ativa de pesquisa. Motivação: Reduzir a quantidade de conhecimento prévio e usar dados. (aprendizado de máquina)
  • #28 Estamos preocupados com modelos estatísticos generativos Gráficos: puramente baseados em conhecimento prévio. Difícil escalar. Desenvolver o campo levou muito tempo. Ainda não totalmente resolvido, área ativa de pesquisa. Motivação: Reduzir a quantidade de conhecimento prévio e usar dados. (aprendizado de máquina) Nota: não é possível fazer algo puramente baseado em dados. Resultados de impossibilidade conhecidos. Mesmo em espaços discretos, o escalonamento da complexidade da amostra seria duplamente exponencial.
  • #30 Suponha que queremos identificar a raça do cachorro nesta imagem. Quando olhamos para os pixels vermelhos, tendemos a prestar mais atenção aos pixels relevantes que são mais semelhantes ou relevantes a eles, que podem ser os da caixa amarela. Removemos quase completamente a neve do fundo e a roupa humana para esta tarefa. No entanto, quando começamos a olhar para o plano de fundo na tentativa de identificar o que está nele, vamos esmaecer os pixels do cachorro porque eles são irrelevantes para a tarefa atual.
  • #49 Queremos basicamente a mesma coisa: Inteligibilidade: Processos e contratos compreensíveis; Conscientização sobre Dados (Data Awareness): Onde (e como) ele será utilizado? Acontabilidade: Quem é o dono do dado? O que pode fazer? É respos’vaiel por eventuais vazamentos? Direitos Humanos: As tecnologias de uso de dados devem preserver os aspectos de direitos humanos; Segurança: Segurança e privacidade por design.