Table des matières:
- Étape 1: Matériaux
- Étape 2: Installer Linaro dans Dragonboard 410c
- Étape 3: Étape 2: Installer les bibliothèques et télécharger le code source depuis GitHub
- Étape 4: configuration d'AWS IoT Core, DynamoDB
- Étape 5: Configurer les API Twilio et Dweet
- Étape 6: Défis
- Étape 7: Résultats et travaux futurs
- Étape 8: Références
Vidéo: Cambus - Système de Collecte de Données sur Bus Urbain : 8 Étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Parmi les problèmes et difficultés connus dans les transports en commun, la population manque d'informations en temps réel et avec le moins d'assurance. La surpopulation des bus des transports en commun éloigne les usagers, qui préfèrent utiliser leur propre véhicule, même s'ils sont encore dans la circulation pendant des heures. Si des informations en temps réel, telles que le nombre de bus, sont facilement accessibles à un utilisateur, il peut choisir d'attendre le prochain bus ou de se déplacer en bus ou d'utiliser son propre véhicule. Le pouvoir de choix fait des transports publics une option plus attrayante pour l'usager.
Le comptage ou l'estimation des personnes à l'intérieur peut être effectué de plusieurs manières, parmi lesquelles les plus couramment utilisées sont:
- Images thermiques;
- Vision par ordinateur;
- Compteur de visages;
Parmi les nombreuses difficultés pour estimer les personnes dans un environnement utilisant la vision par ordinateur, les principales sont:
- Occlusions de personnes;
- Inverser l'éclairage;
- Occlusion statique, c'est-à-dire des personnes derrière des objets;
- Angle de la caméra par rapport à l'environnement;
Un défi pour ce projet est de connaître l'angle correct de la caméra qui aidera le mieux à soustraire le fond de l'image, ainsi que la luminosité variable pendant la journée à l'intérieur du bus.
L'objectif principal de la proposition est de créer un modèle robuste et configurable pour estimer la surpopulation et rendre les résultats disponibles à la population via les smartphones.
Étape 1: Matériaux
Le matériel nécessaire au projet est le suivant:
1 x Dragon Board 410c;
1 caméra USB;
1 x Smartphone Android;
Étape 2: Installer Linaro dans Dragonboard 410c
Suivez les instructions sur le lien ci-dessous pour installer Linaro 17.09 sur la DragonBoard 410c. Nous vous recommandons d'installer Linaro 17.09 pour la prise en charge du noyau pour GPS.
www.96boards.org/documentation/consumer/dr…
Étape 3: Étape 2: Installer les bibliothèques et télécharger le code source depuis GitHub
Cambus a une architecture modulaire et une conception de code. Il est possible de coder votre propre algorithme d'apprentissage automatique, de passer à un autre service cloud et de créer vos propres applications utilisateur.
Pour exécuter le projet cambus, vous devez d'abord télécharger le code source depuis github (https://github.com/bmonteiro00/cambus). Installez python (Cambus était en mode pour s'exécuter sur les versions 2.7 et > 3.x) et les bibliothèques suivantes en utilisant 'pip' (sudo apt-get install python-pip). Il sera nécessaire d'installer un tas de bibliothèques dans le système Linaro (en outre, il est recommandé de créer un environnement virtuel - pip install virtualenv - afin d'isoler le système Cambus du SO). Veuillez installer les bibliothèques suivantes:
- pip installer paho-mqtt
- pip installer numpy
- pip installer opencv-python
- pip installer opencv-contrib-python
- pip installer twilio
- pip installer matplotlib
Le programme principal était divisé en classes:
- CamBus - la classe principale;
- Capteur - une classe pour obtenir des données telles que la position GPS, la température, le Co2.
- Compteur - classe avec algorithme de traitement d'image.
Assurez-vous que toutes les bibliothèques ont été installées et exécutez python CamBus_v1.py.
Étape 4: configuration d'AWS IoT Core, DynamoDB
Nous avons utilisé le noyau AWS IoT en tant que courtier MQTT avec TLS et X509 et NoSQL et DynamoDB pour enregistrer les données. Vous devrez créer un compte sur https://aws.amazon.com/free.). Ensuite, vous devrez suivre les étapes ci-dessous pour créer un objet et l'intégrer à Dynamo:
docs.aws.amazon.com/iot/latest/developergu…
Étape 5: Configurer les API Twilio et Dweet
Le service SMS Twilio a également été mis en place. Consultez l'URL ci-dessous pour obtenir des instructions pour effectuer cette étape:
www.twilio.com/docs/iam/api/account
L'intégration entre l'application Android et le système a été effectuée via REST utilisé la plate-forme Dweet. Aucune inscription requise.
dweet.io/
Étape 6: Défis
Au cours de notre développement, nous avons été confrontés à de nombreux défis, des techniques OpenCV à la plate-forme AWS. Nous avons décidé de coder avec Python afin de gagner du temps sur le développement en C/C++. Au cours de notre développement, seules les méthodes Opencv de base telles que:
• cv2. Flou gaussien(..)
• cv2.seuil(..)
• cv2.morphologieEx(..)
• cv2.contourArea(..)
• cv2.findContours(..)
Ces méthodes de base n'étaient pas suffisantes pour atteindre une bonne qualité dans la détection des personnes. Des scénarios avec une vidéo tremblante ML (Machine Learning) ont été utilisés. Nous avons donc décidé d'utiliser la bibliothèque d'apprentissage automatique OpenCV et nous avons eu un autre problème car trouver une bonne entrée de données pour l'algorithme ML était un problème que nous avons passé plusieurs jours. Nous avons utilisé l'algorithme OpenCV SVM mais n'a pas fonctionné. Nous avons utilisé OpenCV Naive Bayses et celui-ci a bien fonctionné. Nous avons essayé d'utiliser les réseaux de neurones Tensorflow et CNN, mais nous n'y sommes pas parvenus pour le moment. CNN utilise beaucoup de puissance de traitement, ce que nous n'avions pas. L'utilisation d'OpenCV ML et des méthodes de base OpenCV nous a aidés à atteindre un bon taux de détection des personnes. Néanmoins, pour chaque type de vidéo, nous devons adapter les paramètres d'OpenCV afin d'atteindre un bon taux de détection des personnes et d'éviter les faux positifs. Au milieu de ces deux mois, nous avons développé notre première idée de faire un centre de collecte de données non uniquement le nombre de passagers et la localisation GPS. Nous avons décidé de ne pas collecter de données en utilisant d'autres capteurs comme la température, etc. Nous avons créé un fichier.ini pour paramétrer l'application et la rendre configurable. Sur le fichier Cambus.ini, vous pouvez configurer l'application de plusieurs manières.
Étape 7: Résultats et travaux futurs
Comme vous pouvez le voir dans la vidéo, le compteur fonctionne correctement. Les lignes bleues marquent la limite d'entrée et la ligne rouge la limite de sortie. Dans ce cas, une vidéo a été utilisée pour simuler car nous ne pouvions pas la déployer dans un bus.
N'oubliez pas que certains changements doivent être apportés à votre condition concernant la taille de la vidéo, l'angle de la caméra, la luminosité, etc. Chaque type de vidéo doit être adapté à ses propres paramètres, tels que l'arrière-plan d'aspiration du noyau opencv, etc.
Veuillez également modifier les variables sur cambus.ini, en indiquant le courtier MQTT, etc.
Nous envisageons dans les futures implémentations d'ajouter des capteurs, par exemple, la température, l'humidité et le CO2 dans le système. L'idée est d'obtenir des données autour des villes pour les rendre disponibles à la communauté.
Nous énumérons ci-dessous les prochaines étapes que vous pouvez pour améliorer le projet:
- Réécrivez le code en utilisant C/C++;
- Améliorer l'algorithme ML;
- Re-factoriser le code python;
- Déploiement dans un bus;
Nous tenons à remercier Embarcados et Qualcomm pour tout le soutien apporté.
Collaborateurs:
Bruno Monteiro - [email protected]
Kléber Drobowok - [email protected]
Vinicius de Oliveira - [email protected]
Étape 8: Références
[1]
[2]
[3]
[4]
[5]
Conseillé:
Antenne radio amateur sur le toit urbain : 8 étapes (avec photos)
Antenne radio amateur sur le toit urbain : j'ai récemment installé une antenne radio amateur sur mon toit afin d'obtenir un meilleur signal à l'intérieur de mon appartement, qui n'est pas situé à un étage élevé. En tant qu'ultra débutant sans beaucoup d'investissement dans le hobby, il était parfaitement acceptable de devoir grimper sur le toit t
EAL - Collecte de données GPS de l'industrie 4.0 sur une voiture Rc : 4 étapes
EAL - Collecte de données GPS de l'industrie 4.0 sur une voiture Rc : dans ce Instructable, nous allons parler de la façon dont nous avons configuré un module GPS sur une voiture RC et publié les données collectées sur une page Web pour un contrôle facile. Nous avons déjà fait une instructable sur la façon dont nous avons fait notre voiture RC, qui peut être trouvée ici. Ceci utilise e
Comment récupérer des données à partir d'une base de données Firebase sur NodeMCU : 7 étapes
Comment récupérer des données à partir d'une base de données Firebase sur NodeMCU : pour cette instruction, nous allons récupérer les données d'une base de données dans Google Firebase et les récupérer à l'aide d'un NodeMCU pour une analyse ultérieure. EXIGENCES DU PROJET : 1) NodeMCU ou ESP8266 Controller2) G-Mail compte pour créer une base de données Firebase.3) Téléchargez le
Affichage de la température et de l'humidité et collecte de données avec Arduino et traitement : 13 étapes (avec images)
Affichage de la température et de l'humidité et collecte de données avec Arduino et traitement : introduction : il s'agit d'un projet qui utilise une carte Arduino, un capteur (DHT11), un ordinateur Windows et un programme de traitement (téléchargeable gratuitement) pour afficher les données de température, d'humidité en numérique et sous forme de graphique à barres, afficher l'heure et la date et exécuter un compte à rebours
Centre de collecte de données de capteurs IoT avec ESP8266 et PubNub : 9 étapes (avec images)
Centre de collecte de données de capteurs activé par l'IoT avec ESP8266 et PubNub : la plupart des didacticiels sur ESP8266 sont soit au niveau débutant (clignotant à distance une led) soit trop complexes pour quelqu'un qui cherche quelque chose à améliorer et à mettre à niveau sur ses compétences de clignotant led.Ceci instructable vise à combler cet écart pour créer