Como explicar o que é fotogrametria para qualquer um

Os modelos 3D são cada vez mais presentes em todas as áreas do conhecimento humano justamente porque eles permitem criar bonecos e maquetes virtuais que podem ser manipulados das mais diversas maneiras, criando ambientes de testes que custariam verdadeiras fortunas na vida real. Por exemplo, você não precisa mais construir um avião inteiro para testar a carga que as asas suportam. Isso pode ser feito utilizando métodos de simulação computacional. Seria necessário realizar um teste caro desses somente uma única vez, ao final do processo, como etapa de validação.

Esse exemplo cobre bem a importância dos modelos 3D hoje em dia. Mais ainda, essa tecnologia permitiu que qualquer um com um computador e mais que uns 90 pontos de Q.I. pudesse fazer simulações complexas, mesmo sem nem saber o que se passa sob o capô de um software como o Autodesk Inventor, ou qualquer outro do gênero. Assim, hoje já não há mais desculpas para se executar as coisas sem fazer um projeto detalhado antes.

Porém, as maquetes 3D precisam ser feitas e, dependendo do caso, pode ser extremamente complicado. Imagine um objeto como esse da figura abaixo. Como você faria para pegar todas as medidas, inclusive das partes mais altas e internas, para poder fazer o modelo. Complicado, né? E isso que nesse aí as coisas são mais ou menos acessíveis do solo. Imagine, então, algo que esteja num lugar enfiado no meio do mato, ou que seja muito mais alto, ou muito mais perigoso, etc.

Há uns 80 anos, alguém que provavelmente estava pensando nisso, teve a idéia de usar fotografias para extrair essas medidas. Daí já temos dois terços do nome da técnica: foto e metria, que não precisa ser nenhum gênio para suspeitar o que signifique. Porém, ainda falta ‘gra’, mas ele tem a ver com geometria do objeto. Assim, a fotogrametria permite extrair medidas e informações das formas dos objetos. Uma definição mais precisa é a seguinte:

Fotogrametria é uma técnica matemática que reconstrói informações do espaço tridimensional a partir de um conjunto de fotografias.

Como funciona a fotogrametria

A idéia por trás da fotogrametria é bem simples, na verdade. Tudo começa com o conceito de feição. Uma feição é qualquer coisa que existe em uma imagem e que possa ser detectada em outra. Por exemplo, na imagem abaixo, escolhi três pontos que parecem interessantes para mim. A escolha é arbitrária, evidentemente, mas existem métodos para se escolher essas feições de maneira mas consistente. Além disso, estou usando uma imagem com uma topologia bem rústica para ficar mais claro o que quero dizer.

Agora, vamos dar uma giradinha nesse macaco e marcar novamente as feições. Acho que deu pra notar bem claramente que as distâncias entre as feições variam bastante entre uma foto e outra. Então, o que a gente faz agora é mapear essas variações, ou seja, criar uma lista com as distâncias entre as feições correspondentes no par de fotos.

É claro que com duas fotos e três feições não iremos muito longe, é preciso de um pouco mais de informação para reconstruir algo concreto. Então, o primeiro passo é tirar um número grande fotos que cubra a maioria das feições no objeto como um todo. Note que as feições que estão na parte de trás da cabeça do modelo não aparecem nas fotos. Então, precisaríamos de algumas fotos da nuca para completarmos o modelo. O número de fotos depende do tamanho do modelo, do nível de detalhamento e da área digitalizada. Porém, um modelo basicão precisa de pelo menos umas 50, enquanto coisas ais sofisticadas podem precisar de dezenas de milhares.

Parâmetros intrínsecos e extrínsecos da câmera

Além da informação contida nas fotos em si, é preciso saber alguma coisa a respeito da câmera usada. Até agora, todas as nossas medidas usam o pixel como unidade de medida. Para saber quanto vale cada pixel e, a partir disso, estimar as posições das câmeras, precisamos saber o tamanho do pixel e o comprimento focal da lente. Esses são os chamados parâmetros intrínsecos da câmera, e dizem respeito ao equipamento em si. Note que o comprimento focal da lente pode ser diferente entre um quadro e outro. Normalmente, esses parâmetros são extraídos dos metadados das próprias fotos e depois são refinados pelo software. Esses parâmetros permitem dizer quanto os comprimentos de uma foto equivalem em outra foto, mas não indicam o tamanho dos objetos no mundo real.

Já os parâmetros extrínsecos dizem respeito à pose da câmera, que nada mais é do que a posição e o ângulo entre a câmera e o objeto. Os parâmetros extrínsecos são obtidos a partir das relações entre as feições.

Uma coisa importante a saber é que todas as medidas são resolvidas matematicamente, exceto o fator de escala. O que isso quer dizer é que o modelo não sai com a escala calibrada. Por exemplo, um objeto de 1 metro na vida real pode ter um valor qualquer no modelo, como 0,4 unidades, por exemplo. Porém, o fator de escala é o mesmo no modelo todo. Então um objeto com 2 metros na vida real apareceria com 0,8 unidades no modelo fotogramétrico. Portanto, para calibrar as dimensões, basta multiplicar todas as distâncias por um fator de calibração, que pode ser determinado através de distâncias conhecidas dentro do próprio modelo.

Reconstrução

Agora que já temos um monte de informação, como as feições, as correspondências entre as feições em pares de fotos e os parâmetros da câmera, podemos começar a fazer triangulações entre os pares de fotos para encontrar as relações geométricas entre eles. O que o algoritmo faz é pegar um par inicial e usar como refer6encia. Depois, ele pega uma outra foto que faz par com uma das fotos do par inicial e repete o processo. Note que agora temos uma espécie de caminho com três câmeras posicionadas. Podemos, então, pegar uma quarta foto e fazer a triangulação com uma das que já foram trianguladas, e assim por diante.

Deste modo, o modelo vai sendo reconstruído foto por foto, encontrando a pose correspondente de cada uma das câmeras e localizando cada uma das feições no modelo. Agora, sabendo as distâncias entre as feições em cada foto e as posições trianguladas entre as fotos, podemos pegar cada feição, transformar num ponto e localizá-lo no espaço. Fazendo isso com todos os pontos do modelo, obtemos a famosa nuvem de pontos. Abaixo está uma nuvem de pontos com as posições da câmera, neste caso, um drone.

Nesta etapa, o modelo já está praticamente formado e, na verdade, dependendo da aplicação, poderíamos até parar por aqui. Daqui por diante o que se faz é o aprimoramento do modelo 3D, dependendo da finalidade. Por exemplo, a nuvem de pontos pode ser transformada numa superfície 3D criando um mesh, ou seja, uma rede que conecta os pontos da nuvem. Depois disso, ainda, as fotos podem ser projetadas sobre a superfície par criar um modelo texturizado e foto-realista.

Porém, isso tudo já foge do assunto e pode ficar para um outro artigo. Se você gostou da fotogrametria e quer tentar em casa, pode começar por esse tutorial aqui

Um abraço e até a próxima.

Fábio Ardito

Pelo mundo atrás de treta.

Deixe um comentário