Você sabia que é possível fazer uma reconstrução 3D de uma cidade inteira com técnicas de Visão Computacional a partir de fotos encontradas na internet? Eu digo, fotos que outras pessoas publicaram por aí em redes sociais como Flickr, Instagram, entre outras.
Os resultados experimentais publicados no paper “Building Rome in a Day” demonstrou que é possível reconstruir algumas cidades inteiras, com até 150.000 imagens, em menos de um dia, usando um cluster com 500 núcleos de computação. Se você quer aprender mais sobre essa técnica de Visão Computacional, acompanhe a minha análise neste nosso post!
Reconstrução 3D de Cidades com Visão Computacional
Em 2009, na conferência International Conference on Computer Vision, da IEEE (Instituto de Engenheiros Elétricos e Eletrônicos), foi publicado o artigo “Building Rome in a Day” (Construindo Roma em um Dia). Nele, foi apresentado um método inovador que utiliza visão computacional para criar modelos 3D de alta resolução de cidades inteiras a partir de imagens coletadas de fontes disponíveis na internet (2D).
Os autores demonstram a eficácia do sistema em várias cidades, incluindo Roma, por isso o nome do artigo. Utilizando um grande número de imagens coletadas na internet, o método proposto foi capaz de reconstruir automaticamente modelos 3D detalhados das cidades.
Em comparação a outros métodos de modelagem 3D, o método proposto pelos autores tem várias vantagens. A primeira, por ser totalmente automatizado e poder lidar com grandes conjuntos de dados de imagens de alta resolução de maneira eficiente, o que significa que pode ser usado para modelar cidades inteiras com relativamente pouco esforço humano. Além disso, a abordagem de fotogrametria automatizada é menos intrusiva do que outras técnicas de coleta de dados 3D, como a varredura a laser, o que pode ser importante em áreas sensíveis ou históricas.
O sistema utiliza uma série de algoritmos paralelos e distribuídos de correspondência e reconstrução, projetados para maximizar o paralelismo em cada etapa do processo e minimizar gargalos de serialização. Essa abordagem permite escalar de forma eficiente tanto com o tamanho do problema quanto com a quantidade de recursos computacionais disponíveis.
A reconstrução 3D em escala de cidade já foi explorada anteriormente na literatura de visão computacional e é amplamente empregada em plataformas como Google Earth e Microsoft’s Virtual Earth. No entanto, os sistemas de estrutura a partir do movimento (SfM) em grande escala existentes operam com dados provenientes de fontes estruturadas, como fotografias aéreas tiradas por aeronaves de levantamento ou imagens capturadas por veículos em movimento. Esses sistemas se baseiam em fotografias tiradas com câmeras calibradas e, geralmente, utilizam outros sensores, como GPS e unidades de navegação inercial, simplificando significativamente os cálculos envolvidos.
Por outro lado, as imagens coletadas da web não possuem essas características simplificadoras. Elas são tiradas com diferentes câmeras, sob condições de iluminação variáveis, e muitas vezes não possuem informações geográficas ou de calibração da câmera. Essa variabilidade torna as coleções de fotos mais difíceis de trabalhar para fins de SfM, mas também as torna uma fonte extremamente rica de informações sobre o mundo. Essas imagens capturam aspectos interessantes e dignos de serem fotografados, incluindo interiores e artefatos, além de exteriores.
Em função dessas características, o artigo apresenta um avanço significativo na construção de modelos 3D de cidades e tem implicações importantes em certas áreas, como cartografia, turismo virtual e planejamento urbano.
Entendendo a Metodologia para Reconstrução 3D de Cidades
Há três etapas na reconstrução 3D de cidades, em ordem: captura de imagens, correspondência de imagens e reconstrução 3D. O processo começa com a captura de um grande número de imagens da cidade que se deseja modelar. No caso, os autores testaram seu método na cidade de Roma e usaram mais de 150.000 imagens do Flickr.
Essas imagens são então carregadas em um software que usa a técnica de correspondência de recursos (algoritmos de correspondência de imagem) para encontrar pontos comuns em cada imagem e construir uma rede de pontos de interesse. Esses pontos são usados para calcular a posição e orientação da câmera em cada imagem e para criar uma nuvem de pontos 3D aproximada da cena.
Em seguida, o software usa as imagens e a nuvem de pontos aproximada para gerar uma malha 3D densa da cena, que representa a superfície da cidade com detalhes precisos. Para fazer isso, o método proposto pelos autores utiliza uma técnica chamada “stereo matching”, que encontra correspondências entre as imagens usando a geometria epipolar e as diferenças de luminância entre as imagens.
Por fim, os autores aplicam uma técnica de texturização para adicionar detalhes de cor e textura à malha 3D. Isso é feito automaticamente, utilizando as imagens originais para extrair informações de cor e textura e projetá-las na malha 3D. O resultado final é um modelo 3D altamente detalhado e realista da cidade, que pode ser usado para visualização, planejamento urbano, simulações de desastres naturais, entre outros fins.
O processo de reconstrução 3D de cidades a partir de imagens pode ser dividido em várias etapas, como segue:
- Captura de imagens: o primeiro passo é capturar imagens da cidade de diferentes ângulos e posições usando câmeras de mão ou carros equipados com câmeras. É importante capturar imagens suficientes para cobrir toda a área da cidade que se deseja reconstruir.
- Calibração da câmera: antes de processar as imagens, é necessário calibrar a câmera para determinar seus parâmetros intrínsecos e extrínsecos. Os parâmetros intrínsecos incluem a distância focal e o ponto principal da câmera, enquanto os parâmetros extrínsecos incluem a posição e orientação da câmera em relação à cena. A calibração pode ser feita usando padrões de calibração ou técnicas de auto calibração.
- Correspondência de recursos: em seguida, as imagens são processadas para encontrar correspondências entre pontos de interesse em pares de imagens. Isso pode ser feito usando técnicas de correspondência de recursos, como SIFT (Scale-Invariant Feature Transform) ou SURF (Speeded Up Robust Features), que identificam pontos de interesse em cada imagem e encontram correspondências entre eles em pares de imagens.
- Triangulação: depois de encontrar as correspondências, os pontos 3D correspondentes podem ser estimados usando a triangulação. A triangulação é um método para encontrar a posição 3D de um ponto a partir de sua projeção em duas ou mais imagens. Esses pontos 3D são geralmente imprecisos e ruidosos, mas formam uma nuvem de pontos aproximada da cena.
- Otimização da nuvem de pontos: a nuvem de pontos estimada pode ser refinada usando técnicas de otimização, como a minimização de energia ou a otimização de gráfico, para melhorar a precisão da posição 3D de cada ponto.
- Geração da malha 3D: depois de obter uma nuvem de pontos 3D refinada, é possível gerar uma malha 3D da cidade usando técnicas de triangulação ou Delaunay, que conectam os pontos 3D vizinhos para formar uma superfície 3D contínua.
- Texturização da malha 3D: por fim, a malha 3D pode ser texturizada usando as imagens de entrada, para criar uma representação visualmente realista da cidade reconstruída.
Aplicações diversas da Reconstrução 3D
A reconstrução 3D de cidades tem revolucionado diversas áreas de atuação, abrindo portas para novas possibilidades e aplicações práticas. Desde o planejamento urbano até a indústria do turismo e a arqueologia, esta tecnologia tem proporcionado avanços significativos e soluções inovadoras. Nesta seção, discutiremos algumas das principais aplicações da reconstrução 3D de cidades e como elas estão transformando diversos setores.
A tecnologia de reconstrução 3D de cidades tem sido amplamente usada em diversos setores, conforme a lista exemplificativa abaixo.
- Planejamento urbano e arquitetura: as reconstruções 3D podem ajudar arquitetos e urbanistas a projetar construções de acordo com as características da área e das estruturas existentes. Por exemplo, as autoridades municipais podem usar a tecnologia para visualizar como novas construções afetarão o visual e o tráfego da cidade, bem como para identificar áreas de risco de inundação ou desastres naturais.
- Análise de dados geoespaciais: os modelos tridimensionais podem ser integrados com outras fontes de dados, como mapas e dados de satélite, para fornecer insights sobre o tráfego, o uso do solo e a densidade populacional.
- Arqueologia e patrimônio cultural: a reconstrução 3D de cidades pode ser utilizada para fins de preservação histórica e cultural, sendo possível criar modelos tridimensionais precisos de edifícios antigos ou sítios arqueológicos, permitindo que eles sejam estudados e preservados virtualmente, mesmo que já tenham sido demolidos ou danificados;
- Simulação e modelagem: os modelos 3D podem ser usados para simular e modelar cenários urbanos e ajudar os pesquisadores a entender como as cidades evoluem ao longo do tempo;
- Aprendizado de máquina e visão computacional: os modelos 3D podem ser usados para treinar algoritmos de aprendizado de máquina e visão computacional para reconhecer objetos e padrões em ambientes urbanos.
- Turismo: essa tecnologia pode ser usada na indústria do turismo para criar experiências imersivas e educativas. Por exemplo, um museu pode criar um tour virtual de uma cidade histórica, permitindo que os visitantes vejam como a cidade era no passado. Da mesma forma, as agências de turismo podem criar guias turísticos interativos que ajudam os visitantes a explorar a cidade e seus pontos turísticos.
- Jogos: a reconstrução 3D de cidades é frequentemente usada na indústria de jogos para criar ambientes realistas. Por exemplo, um jogo pode usar uma reconstrução 3D de uma cidade existente como base para a criação de um mundo virtual para os jogadores explorarem. Da mesma forma, um jogo histórico pode usar uma reconstrução 3D de uma cidade antiga para criar um ambiente autêntico.
- Segurança: usada em planejamento de emergência e resposta a desastres, permitindo que as equipes de resgate visualizem os locais afetados e planejem as operações de salvamento de forma mais eficiente. Os modelos tridimensionais podem ser usados para prever como os desastres afetariam diferentes áreas da cidade e quais seriam as rotas de fuga mais seguras. Assim como pode ajudar a melhorar a segurança pública, permitindo que as autoridades monitorem e analisem padrões de tráfego, fluxo de pedestres e atividades criminosas em áreas urbanas.
- Orçamento público: planejar o uso de recursos públicos, como na iluminação pública, no monitoramento de tráfego e no gerenciamento de resíduos.
Em suma, a tecnologia de reconstrução 3D de cidades tem um impacto profundo em várias áreas, possibilitando análises mais detalhadas, planejamento eficiente e experiências imersivas. À medida que a tecnologia avança e se torna mais acessível, espera-se que o uso da reconstrução 3D de cidades se expanda ainda mais, abrangendo novos setores e aplicações. Sem dúvida, a reconstrução 3D de cidades está remodelando o mundo à nossa volta, criando novas oportunidades e abrindo portas para inovações futuras.
Desafios e limitações
Evidentemente, toda tecnologia possui suas limitações e desafios a serem ultrapassados. As limitações da tecnologia usada na reconstrução 3D de cidades estão muito vinculadas às imagens, do ponto de vista numérico e qualitativo.
Para modelar uma cidade inteira com detalhes, é necessário capturar um grande número de imagens de diferentes ângulos e posições, o que pode ser um desafio logístico e de custo. Também há dependência de fotos de boa qualidade (o que é difícil logística e economicamente em áreas remotas), capturadas com boas condições de iluminação e clima para obter bons resultados. Além disso, a qualidade do modelo final pode ser afetada pela calibração da câmera, a qual, se incorreta, pode levar a erros na determinação da posição e orientação da câmera em cada imagem, o que afeta diretamente a precisão da modelagem final.
A privacidade é uma preocupação importante quando se trata de coletar imagens aéreas ou terrestres de áreas urbanas. Porque as imagens podem conter informações pessoais, como matrículas de carros, rostos de pessoas e até mesmo a disposição interna de prédios, o que pode comprometer a segurança e a privacidade dos cidadãos. Assim, é importante que as empresas e instituições envolvidas na criação de reconstruções 3D de cidades estabeleçam diretrizes claras para o uso ético dos dados e protejam a privacidade das pessoas.
Perspectivas e oportunidades
A reconstrução 3D de cidades é uma área em rápida evolução e com um futuro promissor, com muitas oportunidades para avanços tecnológicos e novas aplicações. Algumas das principais perspectivas e oportunidades estão listadas abaixo.
- Aumento da resolução e precisão: com o avanço da tecnologia de imagem, espera-se que as câmeras e sensores se tornem mais poderosos, permitindo a coleta de dados de alta resolução e maior precisão. Isso permitirá a criação de reconstruções 3D ainda mais detalhadas e precisas.
- Uso de drones e robôs: a utilização de drones e robôs para coleta de dados pode tornar o processo de reconstrução 3D mais eficiente e preciso, especialmente em áreas difíceis de alcançar ou perigosas.
- Aprendizado de máquina e inteligência artificial: o uso de técnicas de aprendizado de máquina e inteligência artificial pode ajudar a automatizar o processo de reconstrução 3D, permitindo a coleta e processamento de grandes quantidades de dados de forma mais rápida e eficiente.
- Integração com outras tecnologias: a reconstrução 3D de cidades pode ser integrada com outras tecnologias, como realidade aumentada e virtual, permitindo que os usuários interajam com as cidades de uma forma ainda mais imersiva e envolvente.
- Aplicações em áreas emergentes: a reconstrução 3D de cidades tem grande potencial para ser usada em áreas emergentes, como planejamento urbano, monitoramento ambiental, prevenção de desastres naturais e avaliação de riscos.
Conclusão
A reconstrução 3D e a visão computacional estão se tornando ferramentas cada vez mais valiosas na análise e preservação do passado. À medida que a tecnologia continua a avançar, é provável que vejamos ainda mais aplicações e inovações nesse campo, ajudando a desvendar os mistérios das civilizações antigas e a proteger nosso patrimônio histórico para as gerações futuras.
E para aqueles que desejam se aprofundar na reconstrução 3D, eu definitivamente recomendo ler o meu tutorial completo sobre ORB-SLAM, onde eu ensino o passo a passo para você aprender a transformar imagens e vídeos em mapas 3d.