Skip to content
Code and models for the CVPR 2017 paper "DeepNav: Learning to Navigate Large Cities"
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
common
ml
python
src
utils
vis
.gitignore
CMakeLists.txt
README.md

README.md

DeepNav: Learning to Navigate Large Cities

  • Most of the code exists to collect data and label it
  • Actual training code is minimal (you will find prototxt files for all 3 DeepNav networks in the 'ml' directory)
  • For implementing the geographically weighted loss functions, use the SoftmaxWeightedLoss and EuclideanWeightedLoss layers from my fork of caffe.
  • Unfortunately I haven't had the time to extensively document everything, but here's what the important executables do:
    • test_graph_maker makes a city graph given the dataset
    • test_search demonstrates A* search
    • test_dataset_maker generates labels for a city and stores them in the city's directory
    • test_tester applies the learned model for navigating in a city graph
    • test_eval evaluates the learned model
  • Data directory structure:
    • Each city has its own directory in data/dataset e.g. data/dataset/new_york
    • The data collection script stores the images, nodes and links in this directory
    • Once that is done, the test_dataset_maker executable generates labels in caffe-readable format in a subdirectory e.g. new_york/pair for DeepNav-pair, new_york/distance for DeepNav-distance etc.
    • You will have to collect your own data but I have provided some sample labels in data/dataset/small so that you can understand the format of training data
    • Each dataset folder (e.g. /data/dataset/san_francisco) should have a box.txt. box.txt has 2 lines: first line is top left limit of the city in latitude, longitude format and second line is bottom right limit of the city in latitude, longitude format. You can use Google Maps to figure out these limits for your city/area. For example, data/dataset/small/box.txt is for San Francisco.
    • The python/combine_datasets.py script can be used to combine the labels of multiple cities for large experiments

Trained models

Citation

@InProceedings{Brahmbhatt_2017_CVPR,
author = {Brahmbhatt, Samarth and Hays, James},
title = {DeepNav: Learning to Navigate Large Cities},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {July},
year = {2017}
}
You can’t perform that action at this time.