Street navigation environment for agent training, based on Street View images
Top 87.8% on sourcepulse
This repository provides the StreetLearn C++ engine and Python environment for training navigation agents in real-world Google Street View imagery. It enables research into goal-driven navigation, instruction following, and spatial reasoning for AI agents, building upon prior work in deep reinforcement learning.
How It Works
StreetLearn utilizes a C++ engine to efficiently load, cache, and project Google Street View panoramas. It models the urban environment as a graph of interconnected panoramas, allowing agents to navigate by moving between adjacent views. The Python interface exposes this engine, adhering to OpenAI Gym specifications, and supports various game modes like coin collection, goal-based navigation, and instruction following. Agents are trained using TensorFlow, leveraging architectures like IMPALA for scalable distributed deep reinforcement learning.
Quick Start & Requirements
g++
, cmake
, python-virtualenv
, tensorflow-gpu
, and pygame
.bazel run
commands to launch agents (e.g., bazel run streetlearn/python/ui:human_agent -- --dataset_path=<dataset_path>
).scalable_agent
repository are provided for detailed understanding.Highlighted Details
coin_game
, courier_game
, curriculum_courier_game
, and various instruction-following games.view_image
, graph_image
, latlng
, instructions
, and ground_truth_direction
.human_agent
, oracle_agent
) for testing and visualization.Maintenance & Community
This project is associated with Google DeepMind. No specific community channels (like Discord/Slack) or active maintenance indicators are mentioned in the README.
Licensing & Compatibility
The project's core components and dependencies (like Abseil C++) are licensed under the Apache License. However, the use of Google Street View data may be subject to separate terms. Compatibility with closed-source applications is not explicitly detailed.
Limitations & Caveats
The build process is complex and has only been tested on Ubuntu 18.04, requiring specific versions of dependencies like Bazel and OpenCV. Obtaining and integrating the Street View datasets is a necessary prerequisite. The project is not an officially supported Google product.
5 years ago
Inactive