Depuis quelques années, le trafic cycliste augmente grâce à de nombreux facteurs (pandémie, VAE (vélo à assistance électrique), amélioration des infrastructures) sans pour autant qu’il n’y ait d’étude étayée à ce sujet. L’objectif est de créer une borne de compteur cycliste miniature et autonome afin de déployer à moindre coût un grand nombre de ces appareils.
Ces compteurs sont un projet open source, et seront à destination :
- Des collectivités d’étudier l’impact des évolutions de leurs infrastructures
- Des associations ayant pour but de promouvoir le vélo (2 pieds 2 roues, AF3V, …)
- Ou encore à but commercial sur les itinéraires longues distances tels que les voies EuroVelo afin d’inciter des commerçants à se lancer dans le tourisme cycliste
Pour chaque personne, on essayera de récupérer les données suivantes :
- heure de passage
- sens de circulation
- mode de transport (piéton, cycliste, trottinette, vélo couché…)
- le vélo est-il chargé ?
- la personne porte-t-elle des équipements de protection ?
Prérequis
Pour faire fonctionner ce projet, il faut avoir au maximum une version de python égale à 3.9.13. Pour vérifier la version de python installée, il faut lancer la commande suivante :python --version
# Python 3.9.13
Lien pour l'installation de python 3.9.13 : https://www.python.org/downloads/release/python-3913/
Installation
Dans un terminal, lancer la commande suivante :git clone https://github.com/Drosscend/MiniBox # clone
cd MiniBox
Pour les utilisateurs de windows
py -m venv .mémoire # création de l'environnement virtuel
.mémoire\Scripts\activate # activation de l'environnement virtuel
Pour les utilisateurs de Linux
python3 -m venv .mémoire # création de l'environnement virtuel
source .mémoire/bin/activate # activation de l'environnement virtuel
Installation des dépendances du projet
pip install -r requirements.txt
Si vous voulez utilser la carte graphique pour accélérer le calcul, vous devez :
- Exécuter la commande suivante :
pip3 install -U torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
- Changer la valeur de
device
à0
dans le fichierconfig.ini
Site de PyTorch : https://pytorch.org/get-started/locally/.
Main
Pour lancer le programme de détection, il faut lancer la commande suivante :
python main.py
Le programme sera lancé avec les paramètres par défaut.
- source = 0 (webcam)
- classes de détection = 1 (vélo)
- intervalle de détection = 0
- affichage de la vidéo = False
- affichage des fps = False
- débug = False
- enregistrement dans le csv = True
Lancement avec paramètres personalisés
Pour lancer le programme avec des paramètres personnalisés, modifiez le fichier config.ini
Si vous voulez avoir plusieurs fichiers de configuration créer un nouveau fichier .ini
en vous basant sur le fichier config.ini
et lancer le programme avec l'option -c
ou --config
suivi du chemin vers le fichier de configuration.
Vous pouvez fournir un fichier de configuration personnalisé en utilisant l'option -c ou --config :
python main.py -c custom_config.ini
Lancement des tests
Pour lancer les tests, il faut lancer la commande suivante :
pytest Test/
Le site MiniBox WebGraphique permet de passer dans un formulaire un fichier .csv des données de détection, et d'afficher un graphique grâce à ces données.
Avant de lancer le site, il vous faudra ajouter un fichier nommé config.json dans le répertoire www/WebGraph. Ce fichier contiendra votre secret key django et sera structuré comme ci-dessous :
{
"SECRET_KEY": "votre secret key"
}
Par la suite, exécutez les commandes suivantes :
python www/WebGraph/manage.py migrate
python www/WebGraph/manage.py runserver
Le site est donc lancé en local et vous pouvez l'ouvrir avec l'URL suivante : http://127.0.0.1:8000/
Etudiants de l'APSIO de l'Université de Toulouse :
- Kévin Véronési @Drosscend
- Noémie Tandol @NoemieT82
Encadrants :
- Yahn Formanczak
Le projet est sous licence GPL-3.0 License. Pour plus d'informations, veuillez consulter le fichier LICENSE.
Pour faire remonter des bugs ou des demandes de fonctionnalités, veuillez consulter GitHub Issues.
- Ultralytics Utilisation de YOLOV5 pour la détection d'objets dans une vidéo
- Norfair Utilisation de Norfair pour le suivi d'objets dans une vidéo
Réalisé avec contributors-img.