Coder Social home page Coder Social logo

kpz-2024-traffic_lights's Introduction

KPZ 2024: intelligent traffic lights

This repository contains project for the kpz.pwr.edu.pl 2024 during which our team was tasked with creating an intelligent traffic lights system for pedestrians.

Repository contents

Besides holding the code behind the traffic lights system, the repository will also contain records or benchmarks and other tests that were made along the way for the purpose of guidance in the later project stages which will require fine tuning of used AI model.

Under the report/ directory, there will be files used for generation of the report for the university course of what we have accomplished. All reports for given stage of the project will also be available under the releases section of the github page.

kpz-2024-traffic_lights's People

Contributors

lukasz825700516 avatar iamhexi avatar dawid-sz22 avatar

Stargazers

 avatar Mateusz Mędrek avatar Michał Rudowicz avatar

Watchers

 avatar

kpz-2024-traffic_lights's Issues

Experiment versioning

Reason

Experiment versioning allows us to find the best parameters and dataset for the NN. We need a server to receive and store experiment data.

Objective

  • Set up a MLFlow server.
  • Introduce authentication.

Requires

None

Write down requirements.txt

Reason

We have to have a complete list of requirements including system-wide and Python packages that are require to run the project. It will let the team to conduct training in the cloud.

Objective

  • - list Python packages used in scripts
  • - list Linux packages required by the script

Requires

None

Noise removal

Reason

With video input, our model may not detect some objects on every frame they appear, it may complicate timings stuff.

Objective

Interpret the output from the neural network as samples that have to be averaged or something. Number of samples to take into account should not introduce into the system significant delay.

Pylint fails almost all the time

Reason

Automatic linter tests on the new pull requests should work only on files that are subject to given language linter.

Objective

  • run linting on every new commit in pull request
  • run linting only if the python file has changed
  • fix pylint failing if no python files has changed

Requires

None

Changelog is missing

Reason

Change logs make it easier to describe what we have done since last meeting, and they look nice.

Objective

Fix changelog in CD

Requires

None

Examine quantization

Reason

The quantized model and the original model may have vastly different performance. To know, whether transporting the model to the embedded device, is worth the effort, we have to test it.

Objective

Compare the model's performance before and after quantization. Steps:

  • choose metrics (accuracy, false positives, false negatives, etc) for the comparison
  • test performance before quantization
  • test performance after quantization
  • compare the results in a report

Requires

Dataset merger broken on redownload

Reason

image

After having datasets downloaded manually in Datasets directory, I ran python scripts/merge_datasets.py ./Datasets and this happened.

Objective

Fix this

Requires

None

Cannot test dataset import process

Reason

I cannot test if the dataset gets imported correctly.
image

Objective

Make the script work, no matter in which directory the user currently is. To ensure best practices, do not use cd.

  • fix path problems
  • do NOT use cd or Python's equivalent
  • mend the issue visible in the screenshot

Requires

Nothing

Real time object detection

Reason

This system will have to work with real time video feed for it to make sense.

Objetive

Create demo with object detection that works based on webcam input.

Requires

Cleanup

Reason

We have too many unnecessary or outdated scripts and/or files in the repository.

Objective

Remove all scripts/files that we are not being used anymore.

Requires

None

Training script

Reason

To make a pipeline a training script is required.

Objective

Write a training script that will constitute a foundation to build upon. It should (now or later) include an option to choose local or remote training (on the Estigiti's server), and log hyperparameters and results to results management framework (MLFlow, ML Clear, Weights & Biases, ...).

Requires

None

Getcamera input

Reason

The system will have to work with real time camera feed.

Objective

Prepare some ground work for accessing webcam input in python

Automate deployment

Reason

Make deployment process fully automated.

Objective

Ensure setup (a setup script), starting a training script with different parameters and handle communication with MLFlow server (authentication).

Requires

Find dataset with prams

Reason

Currently we are not detecting any prams in our model, which are way more common to see near the zebra crossings than wheelchairs.

Objective

  • Find dataset with prams
  • Modify merging script to also include this new dataset

Enforce conventional commits

Reason

Conventional commits seem to be useful.

Objective

Add automatic check on each PR for conventional commit format

Requires

None

Apply quantization

Reason

The final model is expected to run on an embedded device. Its capabilities are limited so quantization is required.

Objective

Apply quantization to the current model and return the version running only on 8-bit integers.

Requires

None

Graphical Demo

Reason

Graphical Demo in Python would make debugging easier, and work as a backup plan, in case a built-in timer failed.

Objective

Implement a graphical application in Python, which displays the color of a light with a timer. Preferably written in PyGame.

Requires

  • None

Fix class names

Reason

Adult and child classes are swapped.

Objective

Remove confusion from swapped classes.

Dataset images are being tracked

Reason

Changes to the training dataset as new images or stuff are inconsequential to us. This repository should only contain the logic behind the usage of this data, and not data itself.

Objective

  • remove datasets from repository (rebase 😨)
  • add script pulling the datasets from somewhere (roboflow?)

Requires

None

Repo gets easily cluterred with binary blobs

Reason

We now need to store somewhere binary blob of the pretrained model.

Objective

Define some place in repo where some specific blobs could be stored.

  • Check if LFS will be good for that
  • Implement something

Requires

None

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.