GithubHelp home page GithubHelp logo

shouryade / parkin Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 52.92 MB

Automated Parking Surveillance System using YOLOv4-Tiny. Hack Submission for WCE ACM and hackCBS 5 hackathon

Shell 0.01% Python 99.95% HTML 0.04% CSS 0.01% Dockerfile 0.01%

parkin's Introduction

Logo

Problem Statement

Currently unauthorized parking detection systems mostly rely on the manual way of verification and the generation of parking tickets. There is no centralized way of keeping track of fines and vehicles in the database. Hence, a modern solution is urgently required to address the shortcomings of current systems.


parkIn by Team Moisture Bois

Our initiative, parkIn aims to combine video surveillance and efficient parking using CNN (Convolutional Neural Network) through YOLOv4-tiny. Using the concept of distributed systems, we aim to channel the live feed from the CCTV cameras to a processing server where our algorithm will detect if the vehicle is parked correctly or not in the right area. The processing server will relay feedback and will alert the authorities and the owner using SMS/email. A web-app is designed where the vehicle owners can check their fines and dues for wrong/unauthorised parking.

Contributions

Backend and ML model deployment done by team leader Shourya De.
Frontend and UI developed by team member Ansh Midha.
CNN models and training done by team member Rochak Ranjan.

Environment Variables

To run this project, rename the .env.example file to .env

  • Create and deploy a database on MongoDB Atlas. Get the connection URI from the MongoDB console. Put the connection URI in the .env file at MONGODB_CONNECTION_URI.

  • Get an APP Password for your Gmail ID at your Google Account. (See Signing in to Google). Put the app password in the .env file at SMTP_PASSWORD.

  • Register for an SMS account in the Twilio website and get you Authorisation token and Account SID. Put it in the .env file.

Local Development

Install Python,pip and pipenv (pip install pipenv).
Clone this repository.

  git clone https://github.com/shouryade/parkIn.git

Install the required packages for the project.

  cd parkIn
  pipenv shell
  pipenv install

Uncomment the line 39 in app.py to create an Admin account. (Comment it back later once created) Run the following command.

  python app.py

Navigate to http://localhost:5000.

Video Processing Server

  cd yolov4-deepsort

Add a capture of a parking video in the yolov4-deepsort/data/video directory and modify line number 66 in object_tracker.py.

  python3 object_tracker.py

Run using Docker

The following command would create and start the container from the image created.

  chmod +x run.sh
  ./run.sh

After creation of backend and deployment on VM using Docker

Create a file parkin in /etc/nginx/sites-available

Copy the following contents and paste in it

server {
    listen 80;
    server_name parkin.ml;
    location / {
        proxy_pass http://localhost:5390;
    }
}

We need to enable the site in nginx so execute the following commands

sudo ln -s /etc/nginx/sites-available/parkin /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx

In DNS Section of Cloudflare, create an A record to root of site pointing to IPv4 address of the VM's IP.

parkin's People

Contributors

am0312 avatar pyrosama07 avatar shouryade avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

pyrosama07

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.