{"id":7974,"date":"2019-02-25T13:05:55","date_gmt":"2019-02-25T16:05:55","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=7974"},"modified":"2019-02-25T13:05:55","modified_gmt":"2019-02-25T16:05:55","slug":"usando-tiles-do-openstreetmap-para-machine-learning","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2019\/02\/25\/usando-tiles-do-openstreetmap-para-machine-learning\/","title":{"rendered":"Usando tiles do OpenStreetMap para Machine Learning"},"content":{"rendered":"<p><a href=\"https:\/\/www.openstreetmap.org\/\" rel=\"noopener\" target=\"_blank\">O OpenStreetMap<\/a> \u00e9 uma fonte de dados incr\u00edvel. O esfor\u00e7o coletivo de milhares de volunt\u00e1rios criou um rico conjunto de informa\u00e7\u00f5es que abrange quase todos os locais do planeta.<\/p>\n<p>H\u00e1 um grande n\u00famero de problemas em que as informa\u00e7\u00f5es do mapa podem ser \u00fateis:<\/p>\n<ul>\n<li>Urbanismo<\/li>\n<li>Infraestrutura de transporte p\u00fablico<\/li>\n<li>Campanhas de marketing<\/li>\n<li>Pontos cr\u00edticos de crimes e tr\u00e1fego<\/li>\n<\/ul>\n<p>No entanto, para cada problema individual, h\u00e1 uma quantidade significativa de pensamento que precisa ser decidida sobre como transformar os dados usados \u200b\u200bpara criar o mapa em recursos \u00fateis para a tarefa em quest\u00e3o. Para cada tarefa, \u00e9 preciso entender os recursos dispon\u00edveis e escrever c\u00f3digo para extrair esses recursos do banco de dados do OpenStreetMap.<\/p>\n<p>Uma alternativa a essa abordagem manual de engenharia de recursos seria usar redes convolucionais nos tiles renderizados do mapa.<\/p>\n<p><strong>1. Como as redes convolucionais poderiam ser usadas?<\/strong><\/p>\n<p>Se houver um relacionamento forte o suficiente entre as imagens do mapa (tiles) e a vari\u00e1vel de resposta, uma rede convolucional poder\u00e1 aprender os componentes visuais do mapa que s\u00e3o \u00fateis para cada problema. Os designers do OpenStreetMap fizeram um \u00f3timo trabalho ao garantir que a renderiza\u00e7\u00e3o do mapa expusesse tanta informa\u00e7\u00e3o quanto o sistema visual pudesse compreender. E as redes de convolu\u00e7\u00e3o provaram ser muito capazes de imitar o desempenho do sistema visual &#8211; por isso, \u00e9 vi\u00e1vel uma rede convolucional poder aprender quais recursos extrair das imagens &#8211; algo que seria demorado programar para cada dom\u00ednio de problema espec\u00edfico.<\/p>\n<p><strong>2. Testando a hip\u00f3tese<\/strong><\/p>\n<p>Para testar se redes convolucionais podem aprender recursos \u00fateis do mapa, foi escolhido um problema simples: Estimar a popula\u00e7\u00e3o de um determinado bloco do mapa. O censo dos EUA fornece dados sobre o n\u00famero da popula\u00e7\u00e3o no n\u00edvel do setor censit\u00e1rio, e \u00e9 poss\u00edvel usar a informa\u00e7\u00e3o de popula\u00e7\u00e3o dos setores para aproximar com as informa\u00e7\u00f5es de popula\u00e7\u00e3o do mapa.<\/p>\n<p>As etapas envolvidas:<\/p>\n<ul>\n<li>Fa\u00e7a o download dos dados da popula\u00e7\u00e3o no n\u00edvel do setor censit\u00e1rio do <a href=\"https:\/\/www.census.gov\/geo\/reference\/centersofpop.html\" rel=\"noopener\" target=\"_blank\">Census Bureau<\/a>.<\/li>\n<li>Para um determinado n\u00edvel de zoom, identifique os tiles do OpenStreetMap que se cruzam com 1 ou mais setores censit\u00e1rios.<\/li>\n<li>Fa\u00e7a o download dos tiles de uma inst\u00e2ncia local do <a href=\"https:\/\/openmaptiles.org\/\" rel=\"noopener\" target=\"_blank\">OpenMapTiles<\/a>.<\/li>\n<li>Soma a popula\u00e7\u00e3o dos tratos dentro de cada tile, e adicione as popula\u00e7\u00f5es fracion\u00e1rias para trechos que se cruzam com o tile.<\/li>\n<\/ul>\n<div id=\"attachment_7979\" style=\"width: 954px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7979\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_tiles.png\" alt=\"\" width=\"944\" height=\"946\" class=\"size-full wp-image-7979\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_tiles.png 944w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_tiles-150x150.png 150w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_tiles-300x300.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_tiles-768x770.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_tiles-144x144.png 144w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_tiles-600x601.png 600w\" sizes=\"auto, (max-width: 944px) 100vw, 944px\" \/><p id=\"caption-attachment-7979\" class=\"wp-caption-text\">Visualizando os setores censit\u00e1rios que se sobrep\u00f5em aos 3 tiles de exemplo<\/p><\/div>\n<p>Isso nos d\u00e1:<\/p>\n<ul>\n<li>Entrada X : uma representa\u00e7\u00e3o de bitmap (RGB) do tile do OpenStreetMap<\/li>\n<li>Meta Y : uma popula\u00e7\u00e3o estimada do tile<\/li>\n<\/ul>\n<p>Para reiterar, as \u00fanicas informa\u00e7\u00f5es usadas pela rede para prever a popula\u00e7\u00e3o s\u00e3o os valores RGB dos tiles do OpenStreetMap.<\/p>\n<p>Para este experimento, gerou um conjunto de dados da Calif\u00f3rnia, mas o mesmo processo pode ser feito para todos os estados dos EUA.<\/p>\n<p><strong>3. Resumo<\/strong><\/p>\n<div id=\"attachment_7985\" style=\"width: 1237px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7985\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_predict.png\" alt=\"\" width=\"1227\" height=\"1247\" class=\"size-full wp-image-7985\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_predict.png 1227w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_predict-295x300.png 295w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_predict-768x781.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_predict-1008x1024.png 1008w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_predict-945x960.png 945w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/02\/census_predict-600x610.png 600w\" sizes=\"auto, (max-width: 1227px) 100vw, 1227px\" \/><p id=\"caption-attachment-7985\" class=\"wp-caption-text\">Desempenho da rede ao prever a popula\u00e7\u00e3o de um determinado ladrilho<\/p><\/div>\n<p>No exemplo de estimativa da popula\u00e7\u00e3o, h\u00e1 informa\u00e7\u00f5es suficientes nos tiles do OpenStreetMap para superar significativamente um estimador ing\u00eanuo de popula\u00e7\u00e3o.<br \/>\nPara problemas com um sinal forte o suficiente, os tiles do OpenStreetMap podem ser usados \u200b\u200bcomo uma fonte de dados sem a necessidade de engenharia manual de recursos.<\/p>\n<p><em>Este post foi traduzido e adaptado do original escrito por <a href=\"https:\/\/towardsdatascience.com\/using-openstreetmap-tiles-for-machine-learning-4a3e41bb3ea6\" rel=\"noopener\" target=\"_blank\">Robert Kyle do site Towards Data Science<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O OpenStreetMap \u00e9 uma fonte de dados incr\u00edvel. O esfor\u00e7o coletivo de milhares de volunt\u00e1rios criou um rico conjunto de informa\u00e7\u00f5es que abrange quase todos os locais do planeta. H\u00e1 um grande n\u00famero de problemas em que as informa\u00e7\u00f5es do&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2019\/02\/25\/usando-tiles-do-openstreetmap-para-machine-learning\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":7975,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[322,166],"class_list":["post-7974","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-machine-learning","tag-openstreetmap"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=7974"}],"version-history":[{"count":11,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7974\/revisions"}],"predecessor-version":[{"id":7989,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7974\/revisions\/7989"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/7975"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=7974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=7974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=7974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}