50
Finding good parking in a city is one of the most frustrating experiences you can have. Change my mind.

New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Finding good parking in a city is one of the most frustrating experiences you can have.

Change my mind.

Page 2: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

You’re welcome.

Page 3: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

proudly presents

Spark

Page 4: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation
Page 5: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

So how did we do it?

Page 6: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Computer VisionOpenCV

Page 7: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Cameras

● Pointed to the street or parking with or without marked parking spots

Page 8: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Flow

Where are the cars located?

Pixel coordinates of detected cars

Free zones between cars + all detected cars

Page 9: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Flow

● Camera○ Takes picture every minute○ Detects vehicles using YOLO Real -Time Object

Detection○ Sends coordinates of detections to server○ Images stay local

Page 10: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Flow

● Python server○ Predicts where cars can park (and where they can’t)○ Measures distance between cars○ Saves all cars and free zones in MongoDB database

Page 11: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Camera calibration

● One time● Calculate homography● Calculate meter per pixel● Determine geolocation of reference point● Locate north (azimut)

Page 12: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Homography (transformation matrix)Transformation needed to transform ground plane to birds eye view.

Page 13: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Projective transformation

Page 14: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

● Using OpenCV○ Op e n CV fin d s ch e ssb oa rd○ Ca lcu la t e t ra n sfo rm a t ion

1 (0;0)

2

3

4

2

3 4

1 (0;0)X

Y

Page 15: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

● Calculate meter per pixel○ Size o f o n e sq u a re in re a l w o rld is kn o w○ re a l w o rld s ize / p ixe l s ize = m e t e r p e r p ixe l

Page 16: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Geolocation● Determine geolocation of

reference point● Where is the north?

(azimut) X

Y

Noorden

Ref. punt

Page 17: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Camera● Finds all the vehicles

Page 18: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Camera● Sends data to server● Images stay local

Page 19: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Server● Transforms detection to birds eye view using camera

homography● Saves ALL detected vehicles to database

Page 20: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

System is now learning● Server will collect and saves X vehicles● Server determines where cars park and finds a cluster for

each zone

Page 21: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Learning simulation

Page 22: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Learning simulation

Page 23: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Finding Clusters● Finds clusters using DBSCAN algorithm● Calculates trendline for each cluster

Page 24: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Works in several situations

Page 25: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Works in several situations

Page 26: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Works in several situations

Page 27: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Learning period is now over

Page 28: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Finding free zones● Assign detected cars to a zone● Sort cars in each zone from left to right (or top to bottom)● Determine pixel distance between cars on birds eye view● Convert pixel distance to meters● Includes outer cars ever detected in zone● Free zones found!

Page 29: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Simulation

Page 30: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Determine geolocation

● Reference point● True course (where is

the north?)● Distance from ref. point

→ Formula

X

Y

Noorden

Ref. punt

Page 31: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Server● Save free zones to database● Compare previous free zones to new free zones and

update last detection date of already existing● Save old free zones in archive for data analytics

Page 32: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Demo

Page 33: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

BackendREST API

Page 34: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

What is a free parking spot?● Distance between detected cars● Capacity = total length / car length

Page 35: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

API Endpoint● GET /search

Parameters:> lat : Latitude of destination> lng : Longitude of destination> radius : Maximum distance from destination in km.> car_length : Length of your vehicle in m.> sort : Sort by distance, price or capacity

Page 36: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Seeding

Seeding database with open data

Parking meters -> camera positions

Parking areas -> free and occupied spots

Page 37: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Parking meters

Page 38: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Parking areas

Page 39: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

FrontendReact Native

Page 40: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Design philosophy● Human Centered Design● Familiar look● User friendly UX● Inspired by Material Design by Google

Page 41: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Design goals● Empathic design● Understanding the wants & needs of our users

Is the product you’re designing truly relevant for the people that are supposed to use it?

Page 42: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Design choices● Color and Buttons

Page 43: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Input● Search bar at top of screen

○ Search history and suggestions

Page 44: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Output● 3 cards suggesting nearby spots

○ Opens Google Maps withdirections

Page 45: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Options● Search options● Custom locations● Homepage

Page 46: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Redux & persisted state● No account required● Search history● Custom locations● Display preferences● Stored in Native AsyncStorage

Page 47: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Google maps & Places API● Places

○ Autocomplete search bar○ Option to pick current location○ Display custom locations

● Maps○ Map with marker on destination

Page 48: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Potential features● Park & ride● Custom locations● Push notifications● Voice input/output● Possible public transport● Payment integration

Page 49: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Try out SparkInstall Expo from the Play Store

Page 50: New Finding good parking in a city is one of the most frustrating …parkspot.azurewebsites.net/documentation/2 stuttgart team... · 2019. 5. 14. · eye view. Projective transformation

Thank you!