Smart Life - Monitoring parking lots

This project aims to monitor a parking lot with computer vision and provide a mobile phone based interface for communicating availability of parking space.

Project State

Public Project

Licences

Software Licence: GPL v.3
Hardware Licence: Project has no hardware

Project Tags

Admins

twenty_twenty

Members

Does this project pique your interest?

Login or register to join or follow this project.

Introduction The idea for this project comes from a real life problem. In my suburban neighbourhood most people don't have have their own driveway. Instead there are a couple of small parking lots scattered around. Coming home from work sometimes means circling round for a free parking spot. This is a nuisance that I hope to fix with this project. While this specific situation is the inspiration, the project should be adaptable to suit different situations and purposes.

Goal Monitor the number of free parking spaces in a public parking lot. This number is stored on a server and can be accessed by mobile phone.

Conclusion This project is functional, it does what is stated in the goal. In that sense this project is a success. However, it is more a rough proof of concept than a deploy-able package. I have been in a bit over my head here, since this stuff is pretty new to me. I lost a lot of time learning basics and chasing dead ends, so the current status is far less than what I aimed for. I am not done though, more is to come. And since the contest is now over, I feel free to invite the community to participate. Most importantly, I learned a lot en had great fun. I hope others can use this project in their learning process.

Method The basic method I used is described here. I used lots of code comments to provide more detailed information. Specific instructions about recreating the project are in the Github-repository.

The current number of cars in the parking lot is stored in a database running on a Flask web server. Visiting the server returns this car count. Analysis is done on video images from a camera that is aimed at the entry of a parking lot. The background is subtracted, so only moving objects remain. The resulting image is noisy, therefor it is cleaned up. The moving objects are tracked to determine whether it is moving into or out of the parking lot. Analysis on the moving object is done to determine whether it is a car. If a car is detected moving in or out of the parking lot, a query is sent to the database increasing / decrease the car count. The app sends requests to the server, and displays the information. The number can also but retrieved with a browser.

Footage I found a video with a lot of really good edge cases that I could never produce myself. Therefore I decided to develop using this video and then try it for real near my house. I did not manage this within the time of the contest.

What's next? There is plenty left to do. First off I want to rework the car detection. I currently use a HAAR-cascade with a feature file that is trained on the backside of cars. However, it is not very good. In the sample video one car is not detected, probable because it is from the front. It did search for other options, but these where not feasible in time I had left. Next up is adding a timed update and an audio response to the app. Maybe a GPS-trigger. After that, increasing web security by switching to POST-request and adding a password. Then the options of the app can be increased with the option to set/correct the number in the database and a request for the last frame from the camera.

Lastly A HUGE 'Thank you' to the folks at Imaginghub, Basler and UP-Board for providing the UP Embedded Vision Starter Kit. I used it to developed this project.

GitHub Repository

https://github.com/twenty-twenty/parkinglot_monitor

Commits

twenty-twenty
pushed 07d5e5653340cac11357655d2df8510bdfbbcf4c
Add files via upload
2018-11-30 08:16:17 UTC
twenty-twenty
pushed 1b7597bc8e064647a89e89bb71d6b935ff38efbd
Delete App_Lot_Empty.JPG
2018-11-30 08:16:07 UTC
twenty-twenty
pushed 554bd375674bcb7bcfa59c99ef4dae94cca81c51
All states of app
2018-11-30 08:12:45 UTC
twenty-twenty
pushed 58a9890839806903e9e47abd587e6d7de74effbc
final change
2018-11-30 08:06:38 UTC
twenty-twenty
pushed bedf0cfa084db10982150b2f0e5e77140bf816cf
Delete VideoProcessor.py
2018-11-30 08:06:14 UTC
twenty-twenty
pushed 79b8aa7b3a532022f64b4db9386084ae3e636612
Delete ParkingLotMonitor.db
2018-11-30 08:05:55 UTC
twenty-twenty
pushed fb4eaa632b2c2098ce53cdf503597664d1ffd9d4
Add files via upload
2018-11-30 00:58:24 UTC
twenty-twenty
pushed 2255a8242025af5bad153d4c34f8a25d024e4385
Update README.md
2018-11-30 00:58:09 UTC
twenty-twenty
pushed 4764a37f32956058b3a5d2d172c5b0ae9fcf0d1d
Update README.md
2018-11-30 00:57:27 UTC
twenty-twenty
pushed 4c3b575af570bb593b37eb2cfe5e2b6db6d9e652
Update README.md
2018-11-30 00:54:51 UTC
twenty-twenty
pushed f1f1fb98e24e3260106b2c6658a4365a5c669cda
Update README.md
2018-11-30 00:54:08 UTC
twenty-twenty
pushed bb4834fa5afa60c672c605b91034725e3649b868
Update README.md
2018-11-30 00:53:53 UTC
twenty-twenty
pushed 999df4f2a7acb6ea4ed5b061f0b4dc78a9ed3c8c
Add files via upload
2018-11-30 00:53:07 UTC
twenty-twenty
pushed e25f524811e46bf73917f4a9c6e00af11426d568
Update README.md
2018-11-30 00:45:45 UTC
twenty-twenty
pushed e4cc77970b70c07131da54abdd2d51e6e2436035
Update README.md
2018-11-30 00:45:01 UTC
twenty-twenty
pushed c8448d61702e00f4107b868e046a7cb4f5d30f36
Image of project in action
2018-11-30 00:43:54 UTC
twenty-twenty
pushed 26504cf8de2b57d0d835b0ff5ffcc3a05d2d76b2
Update README.md
2018-11-30 00:34:53 UTC
twenty-twenty
pushed 6ceb45844103b86da4eeb13bc8c4c5adc3f1ecf7
Update README.md
2018-11-30 00:34:33 UTC
twenty-twenty
pushed db780c59769f9b87768f33689994f07c50974dac
Update README.md
2018-11-30 00:33:41 UTC
twenty-twenty
pushed 161e4b24451bc29ba3de453f25dbef6ac9ac2a7f
Update README.md
2018-11-30 00:32:52 UTC
twenty-twenty
pushed e053109c0d569b60e2ed93aa5b4ee278d1088ddc
Update README.md
2018-11-30 00:32:23 UTC
twenty-twenty
pushed a841076ec80857e570aeb30497358f45ca476091
Update README.md
2018-11-30 00:32:00 UTC
twenty-twenty
pushed b1f3c3ded0888d1d0104dfbbb6bc95e03d2305a4
Update README.md
2018-11-30 00:31:42 UTC
twenty-twenty
pushed d93450b26d1586013fa8d0f033cf14047c512c9a
Update README.md
2018-11-30 00:29:29 UTC
twenty-twenty
pushed 699f21623a51160567fdc75a688a5925bbfe76e6
Create UP-BOARD.md
2018-11-30 00:23:56 UTC
twenty-twenty
pushed fe62a46b78df9fc975418b54b8f5147025b2fe17
Update README.md
2018-11-30 00:10:43 UTC
twenty-twenty
pushed cbb6e30bc6adb16e42e025ebda6e3863ded98d47
Rename README to README.md
2018-11-29 23:24:54 UTC
twenty-twenty
pushed e7e961d921b3919c1a3377fc9b0d74b472e7d7d8
Update README.md
2018-11-29 23:23:28 UTC
twenty-twenty
pushed e34f9fb7a5d923fae022cbea35475503df009fd4
Update README.md
2018-11-29 23:22:13 UTC
twenty-twenty
pushed ec7589a673ac7162e52f0ef7c6e4f5075bd053ca
Rename README to README.md
2018-11-29 23:20:23 UTC
Title Description Format
ParkingLotMonitor1 Project in action jpg
ParkingLotMonitor2 Project in action jpg
ParkingLotMonitorApp App interface jpg
App_Update_Failed JPG
App_Update_Success JPG
App_Lot_Full JPG
Task Owner Creation Date
Change car detection
twenty_twenty
2018-11-29
And time-interval and audio to app
twenty_twenty
2018-11-29
Try the set up for real
twenty_twenty
2018-11-29

Comments

Your comments, please!

Want to comment this ... Show more