Marcela Carvalho
👤 SpeakerAppearances Over Time
Podcast Appearances
E Marcelo, trocando um pouquinho de assunto, dentro, claro, ainda de visão computacional, a gente viu nos últimos anos a aceleração toda de investimento, pesquisa em agenda inativa, o boom dos LLMs, e um campo que a gente tem escutado cada vez mais falar a respeito é o Division Language Models. E queria saber se você consegue contar pra gente um pouquinho o que esses modelos estão trazendo de novo, o que não dava pra fazer antes, as possibilidades que eles abrem.
A gente falou um pouquinho sobre o Samtree. O Samtree, ele é um visual language model. O que esses modelos fazem é, eles colocam no mesmo espaço semântico o texto e a imagem. Então, eles conseguem comparar esses dois e gerar um output.
Pensando muito rápido em nuvem de pontos, o que a gente tem ali, é como se eu falasse assim, eu quero detectar os extintores de incêndio. Extintor de incêndio é o texto, e aí eu tenho todo o meu, a nuvem de pontos, eu levo os dois para um espaço semântico, espaço latente, só que esse espaço latente é compatível, e eu vou comparar meus vetorzinhos do texto com o meu vetor ali da nuvem de pontos, e vou encontrar onde eles mais se aproximam, porque eu estou procurando o que tem...
mais parecido do texto com o que veio da nuvem de pontos isso aí é o que é interessante do video language model agora misturei com a nuvem de pontos, mas é o que eu faço com o sem2 para 2D então eu pego várias imagens da nuvem de pontos, passo pelo sem2 procurando extintores de incêndio ou qualquer coisa assim, encontro todas as instâncias, faço uma mascarazinha e depois eu faço a unprojection para 3D
E aí, esse crescimento das Video Language Models, o que é interessante para a gente foi o desenvolvimento maior com algo que é o vocabulário aberto, que a gente não vai precisar retreinar cada modelo no nosso dataset, anotar tudo. O que é interessante é isso, eu poder pegar o modelo, usar nas nossas imagens e dar certo.
Foi o que aconteceu com a gente. E aí eu posso só pegar também um modelo e fazer um treinamentozinho a mais, um fine tuningzinho, que ele vai funcionar melhor no nosso tipo de dados. A facilidade disso é você conseguir essa generalização, né? Extrair mais informação das imagens, ligando o contexto. Em vez de ter que sair escrevendo para cada extintor de incêndio, cada coisinha, isso para cada classe diferente que você queira introduzir o seu modelo.
O treinamento todo é local. Caramba. É porque a gente não coloca... Mas é aí que a gente entra na parte de... Como que a gente coloca os dados dentro dos modelos, né? E aí é essa parte que a gente falou um pouquinho do...
Utilização de voxel pra você reduzir. Em vez de colocar todos os pontos, você vai fazer um downsampling. Então, você vai usar um voxelzinho. Eu falei de dois centímetros, mas se eu colocar um de três e eu só tiver o centro ali, então, em três centímetros de caixinha, cabem muito mais pontos. Então, você vai colocando menos pontos, mas você vai perdendo resolução e vai colocando mais pontos. E aí, mais possível colocar dentro do modelo. Ou isso, ou o que a gente também faz é pra ter uma resolução maior de...
Cada objeto, né? Porque imagina, 20, 30, 50 centímetros, já perdeu uma válvulazinha. E aí vai ser um ponto só, não tem significado sinântico nenhum. A gente pode usar voxels menores ou não usar voxels, mas a gente vai selecionar só aquele objeto. E aí a gente tem também algoritmos como fazer, como retirar amostras do nosso nuvem de pontos que tenham...
até X número de pontos, que é o que entra no modelo, por exemplo, e de forma significativa. Então, a gente às vezes roda uma coisinha antes para procurar quais são os objetos, qual o número de pontos daqueles objetos, qual a dimensão daquele objeto, será que dá para fazer um downsampling para colocar no modelo. E depois, na hora da inferência, o que a gente faz é isso. Digamos que a gente tem milhares de pontos. A gente vai fazer dois ou três tipos de inferência. A gente vai fazer com voxels de tamanho 2 centímetros e voxels de 7 centímetros.
Os voxels de 7 a 10 centímetros, eles vão ter uma informação global muito melhor da cena, mas depois a gente vai fusionar, vai fazer um merge com as informações de objetos pequenos. Então, às vezes a gente vê containers muito grandes que são detectados pelos modelos grandes e depois a gente vai fazer um merge para os objetos pequenininhos que foram detectados
Quando a gente fez o passe de novo daquele modelo com uma resolução maior, dando 20 pontos. Só que a gente fez por patches. A gente cortou aquela 90 pontos e depois a gente vai fazendo como se a gente tivesse... A gente corta com overlap, né? Então, a gente faz com a probabilidadezinha. Imagina duas imagenzinhas, a gente faz uma imagem muito grande. Isso é um tema para quem trabalha muito com satélites.
imagens de satélites são muito grandes. E eles fazem isso também. Então, você tira vários patches diferentes com um certo overlap e você depois sai utilizando, por exemplo, uma gaussiana. Aí você dá mais importância para os pixels que estão lá no meio ou os pontos que estão no centro de uma caixinha e menos para os que estão nas bordas. E aí você vai somando isso ali e vai conseguindo o seu resultado. Às vezes, sai uma bagunça.
E aí é esse problema que a gente tem com os limites... Porque a gente não consegue ter o objeto todo... Então a gente também baseia... Na parte geométrica... E aí na parte de inferência... Primeiro a gente roda essa parte do modelo... De machine learning... E depois a gente vem ver a consistência geométrica... Dos objetos... A pipeline é bem complexa... Tem vários filtros dentro... Porque esse desafio de ter uma planta muito grande... Dificulta muito o trabalho... Não dá para entender muito bem a cena...
É difícil conseguir informação 3D, mais cenas para trabalhar. Então, essa parte da generalização é difícil e acaba sendo uma pipeline até longa. Mas, normalmente, digamos assim, temos um novo cliente. A gente conseguiu a planta em 3D, RGB XYZ, uma noite, no outro dia ele vai ter o resultado dele. Mais ou menos isso. Não me lembro exatamente quantas horas demora por sítio industrial, mas de um dia para o outro ele vai ter o resultado. Mas é assim, é por partes.
Eu só vi passar... Não cheguei a mexer... Nem ler o paper... Só vi artigos sobre... Eu estou assistindo como... Aquela espectadora que... Está doida para testar...
Se sair alguma coisa que vale a pena, vou testar. Mas eu assisto... É como a evolução de pessoas maiores, empresas maiores que têm mais financiamento que eu. Ver o que eles estão fazendo para a gente tentar acompanhar. Essa é a minha forma de ver.
E dentro dessa, minha última pergunta para você é que você dedicou a sua carreira inteira até aqui no segmento de engenharia de aprendizado de máquina, visão computacional, o que quer dizer que você já tinha pelo menos algumas das ferramentas para não ter que partir do zero para entender como tirar proveito, moldar o que tem aparecido nos últimos anos?
Mas tirando essa parte de que, claro, todo mundo em tecnologia tem que se atualizar o tempo inteiro, como é que tem sido pra você o desafio, essa tarefa e a intensidade do quanto você tem que se atualizar todo dia, estudos, você acabou de falar sobre estudos, né? Pra acompanhar e até tentar ficar à frente do que tá acontecendo, considerando que você já tem a sua carreira inteira construída nisso.
Com certeza. Olha, Marcos, é uma pergunta muito boa. A gente tem a impressão que quem está... A minha impressão, quando eu vejo pessoas em empresas como a Meta, que eu considero um engenheiro que eu admire muito, eu tenho a impressão que aquela pessoa é um gênio. Aquela pessoa já sabe tudo. Mas, na verdade, aquela pessoa tem a capacidade de todo dia estar se atualizando. E eu acho que foi um dos decliques para mim. Do último emprego que eu tive para o novo emprego,