Smart Car Park Surveillance: Machine Learning - Based Object Detection in Shopping Parking Space ๐๐ข
Welcome to Smart Car Park Surveillance: Machine Learning - Based Object Detection in Shopping Parking Spaces project repository! This is my degree project showcasing a cutting-edge solution for urban parking management. Our platform is designed to assist city planners, drivers, and sustainability advocates by optimizing parking spaces through intelligent surveillance. With features like real-time car detection, parking availability insights, and congestion reduction tools, our system is your one-stop solution for enhancing urban mobility and promoting sustainable urban development.
This project leverages machine learning, image processing, and urban planning to optimize urban parking lot management using intelligent surveillance systems. The system employs the YOLOv8 algorithm for real-time object detection, enabling efficient identification of available parking spaces.
- Detection and Analysis: Utilizing the YOLOv8 algorithm, the system performs real-time image object recognition to accurately identify available parking spaces. This speeds up the parking process, reduces congestion, and enhances the user experience.
- Extensive Data Collection and Preparation: The project collected over 10,000 images, which were cleaned and pre-processed to ensure high-quality data for training and analysis.
- Sustainable Urban Development: By optimizing parking infrastructure, this project contributes to Sustainable Development Goal 9 by promoting innovative and sustainable urban technologies.
- Programming Language: Python
- Object Detection Algorithm: YOLOv8
- Libraries: OpenCV, NumPy, Ultralytics YOLOv8, etc
- Eases urban congestion by reducing the time required to find parking.
- Minimizes environmental impacts through efficient space utilization.
- Encourages smarter, more sustainable urban mobility.
- Provides a scalable and resilient solution for future urban challenges.
Follow these steps to set up and run this Python project on your vccode:
- Install Python Make sure Python is installed on your system.
- If Python is not installed, download and install it from Python.
- Install the Python Extension for VS Code
- Open VS Code.
- Go to the Extensions view by clicking on the Extensions icon in the Activity Bar or pressing Ctrl+Shift+X / Cmd+Shift+X.
- Search for โPythonโ and install the extension by Microsoft.
- Clone the Repository
- Open VSCode and go to Terminal > New Terminal.
- Run the following command to clone your repository:
git clone https://github.com/your-username/urban-parking-management.git
cd urban-parking-management
- Replace your-username with your actual GitHub username.
- Set Up the Python Environment
- Create a Virtual Environment
- Itโs best to use a virtual environment for Python projects to manage dependencies separately.
- Open VSCodeโs integrated terminal (if not already open) and run the following command to create a virtual environment:
python -m venv venv
- Activate the virtual environment:
source venv/bin/activate
- Once the virtual environment is activated, you should see (venv) at the beginning of the terminal prompt.
- Run the following command to install the required dependencies:
pip install -r requirements.txt
- Download YOLOv8 weights and download the YOLOv8 pre-trained weights:
- Install the ultralytics package:
pip install ultralytics
- Verify Dataset
- Ensure that your dataset is in the proper folder (e.g., data/images/ for the image files and data/labels/ for the label files). The dataset should be configured correctly in your project (likely in a YAML file or similar).
- Run the app.py Script
- Run it directly from the terminal by typing:
python app.py
- Access the Application
- If app.py is running a web-based application (e.g., using Flask or FastAPI), you should be able to open a browser and go to the address http://localhost:5000/ (or whatever port your app is configured to run on). This should bring up the interface where you can interact with the parking management system.
- If your project uses something like a GUI or a different interface, follow the on-screen instructions to interact with the system.