Skip to content

Complete repository on creating a sidewalk inventory with the help of aerial imagery for any city using AWS and GIS tools.

License

Notifications You must be signed in to change notification settings

ASUCICREPO/CurbPHX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CurbPHX

Index Description
Overview See the motivation behind this project.
Description Learn more about the problem, implemented solution and challenges faced.
Deployment Guide How to install CurbPHX architecture.
VPN Connection Accessing through VPN.
AWS Rekognition How to use AWS Rekognition.
How to Use Instructions to use CurbPHX.
Future Enhancements Limitations and next steps which can be taken.
Credits Meet the team behind this.
License License details.

Overview

The City of Phoenix - Street Transportation Department and the Arizona State University Smart City Cloud Innovation Center Power by AWS(ASU CIC) are coming together to develop a tool that can build a complete sidewalk data inventory. A sidewalk inventory is a data bank with a collection of attributes about the sidewalk. In this project, we tackle the problem of identifying the different types of sidewalk which are attached sidewalks, detached sidewalks and places where there are no sidewalks. The City of Phoenix - Street Transportation department will use this data to better understand pedestrian mobility, safety and to improve sidewalk management.

Description

Problem

As one of the the fastest growing cities in the United States, Phoenix has a constant need to update its sidewalk inventory to include new developments. The City has the opportunity to expand the data sets used to understand the location and condition of sidewalks. Access to sidewalk data makes it possible to identify and prioritize funding for infrastructure investments. A sidewalk data layer would help identify areas of need, measure the impact of projects on City's sidewalk network and prioritize funding for infrastructure investments.

Approach

Working together, the City of Phoenix and the CIC envisioned a new solution: CurbPHX. CurbPHX is a comprehensive digital inventory of all sidewalks in the city.

An initial data set composed of images of sidewalk will be constructed with the help of aerial drone imagery provided by third party vendors such as Eagleview. These images are then processed with AWS Rekognition using our cloud infrastructure to create the sidewalk inventory which can be viewed on our Google Maps Overlay and ArcGIS. The ASU CIC envisions a machine learning and geographic information system (GIS) framework that can process the high amounts of data. With the ability to collect, analyze, and store data on Phoenix’s sidewalk network, the City of Phoenix will be able to effectively identify areas that need repair and improve pedestrian safety and mobility.

Architecture Diagram

High-level overview of the application Process Flow Chart

Detailed Architectural diagram Architectural diagram

Functionality

Given a set of aerial imagery, which is uploaded through an Amazon S3 bucket, a image recognition model is trained using a subset of high quality feature rich images to detect types of sidewalks such as attached, detached and no sidewalk regions.

Every dataset contains the possibility of duplicate features, which must be removed in order to reduce processing costs, time complexity, and improve efficiency. As a result, our initial step after receiving the imageset is to remove any photographs that cover the same area of the city. This is accomplished by constructing a grid of equal-sized rectangles based on the dataset limits. For each cell, we choose an image that has the maximum overlap with it, allowing us to pick images that cover the entire city while having few duplication among them.

Image bounding box plotted on to the grid

Images on the grid Grid

Images after filtering

Images after filtering

Because an aerial photograph of a city area has a high resolution, it must be broken down into smaller parts so that it may be processed faster and more efficiently. We divided an image into 9 chunks before interpolating the spatial coordinates for all four corners of each piece. The algorithm consumes these chunks one at a time and uses them to generate a sidewalk inventory that includes detached, attached, and no sidewalk regions.

Splitting an image into segments

Image split

In this way, we generate an inventory for sidewalks for the given city by filtering, parsing and extracting features out of the imageset using Amazon Web Services. The final output is rendered on google maps overlay and as a shapefile to use on ArcGIS pro.

Technologies

Using Python as our base language, we used the following technology stack to implement our system.

  1. Amazon Web Services ->
  2. GIS ->
  3. Exploratory Data Analysis using Python Notebooks

Assumptions

Except that fact that this system was designed, built and tested on Amazon Web Services, following are the requirements:

  1. User should have access to at least 500 images with 250 images (High resolution preferred such as 4096x2048) per label to train an AWS Rekognition model, these images can be obtained from Google Streetview or Aerial imagery providers (Eagleview, NearMap, etc.)
  2. Images are uploaded on to a public S3 bucket
  3. A metadata file, in XML format needs to be included, if your Image provider was Eagleview, they will provide you this out of the box but if you're using a different provider, you might want to generate your own version.
  4. Image metadata XML tree should have the following structure: root -> "Block" -> "Photo" (one for each image included in the bucket) -> "Id", "ImagePath" (it is the filename), "ProjectedCorners" (latitude and longitude coordinates in ECEF system )(EPSG:4978), "Pose" (Rotation metrics, not mandatory).

Deployment

Refer to following documents for each deployment steps:

  1. General Deployment guidelines
  2. AWS Lambda Deployment Guide

VPN

Check this doc on how to configure your own vpn connection and connecting to it for privacy of your service.

AWS Rekognition

Check this doc for instructions on how to use Rekognition for training and evaluation of the model.

How to use

  1. Home page

Page1

  1. Allows user to select between Google Streetview feature or Eagleview which allows user to upload new images and run it across AWS Rekognition

Page2

  1. After Eagleview is select, the user has to specify the S3 upload links for images and a xml which contains metadata

Page3

  1. Once the images and xml file have been uploaded the images will be processed. If the links are not valid or if there is any issues

Page3-fail

If the links are valid and all the process are successfull the download button will appear

Page3-pass

  1. There are three options to view the data, either by using the Google Street View overlay, .shp files that can be used with ArcGIS or .kml file

Page4

The data in Google Street View:

The user can download the files by clicking on the respective download buttons

Future Enhancements

  1. Make the system scalable, more efficient and cost friendly. Right now, the bottleneck of the application is AWS Lambda, as it is designed to work for smaller processes. We need to use a service which can do time-consuming tasks faster and for less cost such as AWS Batch, AWS Simple Work Flows or AWS Fargate
  2. Implement image segmentation instead of bounding boxes for better edge detection
  3. Improve the dashboard to incorporate more control over the backend which provides the ability to pause/resume/abort the processing loop, display the database information, ability to move/delete items from the backend database, etc

Limitations

  1. The crux of our system is AWS Lambda, which is designed for short-term jobs and hence there is a limit of 15 minutes. To work around this, we upload up to 10 images everytime the process is run, which then splits up into 9 smaller parts per image which are then consumed by the image recognition service
  2. Moving to an Auto-scalable infrastructure will increase performance and reduce time complexity of the application
  3. Drawing the sidewalks detected on the image to a map accurately and smoothly is a challenge, keeping in mind to remove the false positives, an expertise in GIS can solve this problem

Credits

"CurbPHX" is an open source software. The following people have contributed to this project.

Developers:
Soham Sahare Krishna Teja Kalaparty Yug Gulati

UI Designer: Nilo Exar Sarah Vue

Sr. Program Manager, AWS: Jubleen Vilku

Digital Innovation Lead, AWS: Jason Whittet

General Manager, ASU: Ryan Hendrix

This project is designed and developed with guidance and support from the ASU Cloud Innovation Center and the City of Phoenix, Arizona teams.

License

This project is distributed under the Apache License, Version 2.0.

About

Complete repository on creating a sidewalk inventory with the help of aerial imagery for any city using AWS and GIS tools.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •