Coder Social home page Coder Social logo

artvandelay / street-addresses Goto Github PK

View Code? Open in Web Editor NEW

This project forked from facebookresearch/street-addresses

0.0 2.0 0.0 549 KB

Robocodes: Towards Generative Street Addresses from Satellite Imagery

License: Other

Python 10.57% CMake 0.17% C++ 89.26%

street-addresses's Introduction

Robocodes: Towards Generative Street Addresses from Satellite Imagery

This repo contains the code for creating generative street addresses from OSM input, as presented in our paper at the CVPR - EarthVision 2017. The naming procedure inputs .osm files, or geotiffs; and outputs new maps with hierarchical and linear addressing scheme.

Requirements

  1. Install OpenCV => 2.4.8 C++ bindings for road_segmentor module.

Useful links for OpenCV installation:

  1. Install python dependencies (Python 2.7).

pip install -r requirements.txt

Building Robocodes

  1. Clone the repo.

$ git clone https://github.com/facebookresearch/street-addresses.git

  1. Change directory to ${ROBOCODE}/road_segmentor and build. (Cmake => 2.8)
$ cmake .
$ make

Generated binary will be stored in ${ROBOCODE}/road_segmentor/bin

  1. Run the following command to change the library paths.

$ install_name_tool -add_rpath /<open_cv_lib_path>/ bin/RoadConnectionLabelling

  1. Check the permissions of the main python scripts run_end2end.py and gen_robocode.py.

Examples

You can check additional functionalities with $ ./run_end2end.py --help. Below are some examples for easy robocode generation.

OSM Example: Running the script when the input is an OSM file. Creates an output osm file and additional query structure in the specified directory.

$ ./run_end2end.py \
 --xml ${ROBOCODE}/example/nashik.osm \
--out_dir /<output_dir>/ \
--roadSeg_bin ${ROBOCODE}/road_segmentor/bin/RoadConnectionLabelling 

Additional OSM files can be exported from OpenStreetMap: https://www.openstreetmap.org

TIFF Example: Running the script when the input is a GeoTiff file containing binary road masks. Creates an output osm file and additional query structure in the specified directory.

$ ./run_end2end.py \
--input_tiff ${ROBOCODE}/example/nashik.tif \
--out_dir /<output_dir>/ \
--roadSeg_bin ${ROBOCODE}/road_segmentor/bin/RoadConnectionLabelling

Geocoding Example: Generating Robocode when lat/lon is input.

$ ./gen_robocode.py \
-path /<input_dir>/ \
-lat 20.0226957656 \
-lon 73.7834041609 \
-city NASHIK

Adress: 388A.NA104.NASHIK

PS: your lat and lon input should be within range of (minlat, maxlat) and (minlon,maxlon) respectively as per your input OSM or Geotiff input.

Reverse Geocoding Example: Generating lat/lon when Robocode is input.

$ ./gen_robocode.py \
-path /<input_dir>/ \
-meter 374 \
-block B \
-street NA104 \
-city NASHIK

Lat, Lon: 20.0230511115, 73.7822889019

References

Please cite our CVPR 2017 - EarthVision Workshop paper below when using the code. https://research.fb.com/publications/robocodes-towards-generative-street-addresses-from-satellite-imagery/

@inproceedings{RobocodesCVPREV2017,
    title     = {Robocodes: Towards Generative Street Addresses from Satellite Imagery},
    author    = {Ilke Demir, Forest Hughes, Aman Raj, Kleovoulos Tsourides, Divyaa Ravichandran, Suryanarayana Murthy,
                 Kaunil Dhruv, Sanyam Garg, Jatin Malhotra, Barrett Doo, Grace Kermani, Ramesh Raskar},
    booktitle = {IEEE International Conference on Computer Vision and Pattern Recognition, EARTHVISION Workshop},
    year      = {2017} \
}

License

Robocodes project is licenced under CC-by-NC, see the LICENSE file for details.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.