O OpenStreetMap é uma fonte de dados incrível. O esforço coletivo de milhares de voluntários criou um rico conjunto de informações que abrange quase todos os locais do planeta.

Há um grande número de problemas em que as informações do mapa podem ser úteis:

  • Urbanismo
  • Infraestrutura de transporte público
  • Campanhas de marketing
  • Pontos críticos de crimes e tráfego

No entanto, para cada problema individual, há uma quantidade significativa de pensamento que precisa ser decidida sobre como transformar os dados usados ​​para criar o mapa em recursos úteis para a tarefa em questão. Para cada tarefa, é preciso entender os recursos disponíveis e escrever código para extrair esses recursos do banco de dados do OpenStreetMap.

Uma alternativa a essa abordagem manual de engenharia de recursos seria usar redes convolucionais nos tiles renderizados do mapa.

1. Como as redes convolucionais poderiam ser usadas?

Se houver um relacionamento forte o suficiente entre as imagens do mapa (tiles) e a variável de resposta, uma rede convolucional poderá aprender os componentes visuais do mapa que são úteis para cada problema. Os designers do OpenStreetMap fizeram um ótimo trabalho ao garantir que a renderização do mapa expusesse tanta informação quanto o sistema visual pudesse compreender. E as redes de convolução provaram ser muito capazes de imitar o desempenho do sistema visual – por isso, é viável uma rede convolucional poder aprender quais recursos extrair das imagens – algo que seria demorado programar para cada domínio de problema específico.

2. Testando a hipótese

Para testar se redes convolucionais podem aprender recursos úteis do mapa, foi escolhido um problema simples: Estimar a população de um determinado bloco do mapa. O censo dos EUA fornece dados sobre o número da população no nível do setor censitário, e é possível usar a informação de população dos setores para aproximar com as informações de população do mapa.

As etapas envolvidas:

  • Faça o download dos dados da população no nível do setor censitário do Census Bureau.
  • Para um determinado nível de zoom, identifique os tiles do OpenStreetMap que se cruzam com 1 ou mais setores censitários.
  • Faça o download dos tiles de uma instância local do OpenMapTiles.
  • Soma a população dos tratos dentro de cada tile, e adicione as populações fracionárias para trechos que se cruzam com o tile.

Visualizando os setores censitários que se sobrepõem aos 3 tiles de exemplo

Isso nos dá:

  • Entrada X : uma representação de bitmap (RGB) do tile do OpenStreetMap
  • Meta Y : uma população estimada do tile

Para reiterar, as únicas informações usadas pela rede para prever a população são os valores RGB dos tiles do OpenStreetMap.

Para este experimento, gerou um conjunto de dados da Califórnia, mas o mesmo processo pode ser feito para todos os estados dos EUA.

3. Resumo

Desempenho da rede ao prever a população de um determinado ladrilho

No exemplo de estimativa da população, há informações suficientes nos tiles do OpenStreetMap para superar significativamente um estimador ingênuo de população.
Para problemas com um sinal forte o suficiente, os tiles do OpenStreetMap podem ser usados ​​como uma fonte de dados sem a necessidade de engenharia manual de recursos.

Este post foi traduzido e adaptado do original escrito por Robert Kyle do site Towards Data Science.