Inhoudsopgave:
- Stap 1: Materialen
- Stap 2: Installeer Linaro in Dragonboard 410c
- Stap 3: Stap 2: Installeer bibliotheken en download de broncode van GitHub
- Stap 4: AWS IoT Core instellen, DynamoDB
- Stap 5: Twilio- en Dweet-API's instellen
- Stap 6: Uitdagingen
- Stap 7: Resultaten en toekomstig werk
- Stap 8: Referenties
Video: Cambus - Systeem voor gegevensverzameling op stadsbus - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Van de problemen en moeilijkheden die bekend zijn in het openbaar vervoer, ontbreekt het de bevolking aan realtime informatie en met de minste assertiviteit. De overbevolking van OV-bussen jaagt gebruikers weg, die liever met hun eigen auto rijden, ook al staan ze nog uren in het verkeer. Als realtime informatie, zoals het aantal bussen, gemakkelijk beschikbaar is voor een gebruiker, kan hij kiezen of hij wil wachten op de volgende bus, zich met de bus wil verplaatsen of een eigen voertuig wil gebruiken. De keuzekracht maakt het openbaar vervoer aantrekkelijker voor de gebruiker.
Het tellen of schatten van mensen binnenshuis kan op vele manieren, waaronder de meest gebruikte zijn:
- Thermische beelden;
- Computer visie;
- Gezicht teller;
Onder de verschillende moeilijkheden om mensen in een omgeving in te schatten met behulp van computervisie, zijn de belangrijkste:
- Occlusies van mensen;
- Inverterende verlichting;
- Statische occlusie, dat wil zeggen, mensen achter objecten;
- Camerahoek tot omgeving;
Een uitdaging voor dit project is om de juiste hoek van de camera te kennen die het beste helpt bij het aftrekken van de achtergrond van het beeld, evenals de variabele lichtsterkte gedurende de dag in de bus.
Het belangrijkste doel van het voorstel is om een robuust en configureerbaar model te creëren om de overbevolking te schatten en de resultaten via smartphones beschikbaar te maken voor de bevolking.
Stap 1: Materialen
Het materiaal dat nodig is voor het project is het volgende:
1 x Drakenbord 410c;
1 x USB-camera;
1 x Android-smartphone;
Stap 2: Installeer Linaro in Dragonboard 410c
Volg de instructies op de onderstaande link om Linaro 17.09 op de DragonBoard 410c te installeren. We raden aan om Linaro 17.09 te installeren voor kernelondersteuning voor GPS.
www.96boards.org/documentation/consumer/dr…
Stap 3: Stap 2: Installeer bibliotheken en download de broncode van GitHub
Cambus heeft een modulaire architectuur en codeontwerp. Het is mogelijk om uw eigen machine learning-algoritme te coderen, over te stappen naar een andere cloudservice en uw eigen gebruikersapplicaties te maken.
Om het cambus-project uit te voeren, moet je eerst de broncode downloaden van github (https://github.com/bmonteiro00/cambus). Installeer python (Cambus was modus om te draaien op versie 2.7 en > 3.x) en de volgende bibliotheken met 'pip' (sudo apt-get install python-pip). Het zal nodig zijn om een aantal bibliotheken in het Linaro-systeem te installeren (het wordt ook aanbevolen om een virtuele omgeving te creëren - pip install virtualenv - om het Cambus-systeem te isoleren van de SO). Installeer alstublieft de volgende bibliotheken:
- pip installeer paho-mqtt
- pip installeer numpy
- pip installeer opencv-python
- pip installeer opencv-contrib-python
- pip installeer twilio
- pip matplotlib installeren
Het hoofdprogramma was onderverdeeld in klassen:
- CamBus - de hoofdklasse;
- Sensor - een klasse om gegevens te verkrijgen zoals GPS-positie, temperatuur, Co2.
- Teller - klasse met beeldverwerkingsalgoritme.
Zorg ervoor dat alle bibliotheken zijn geïnstalleerd en voer python CamBus_v1.py uit.
Stap 4: AWS IoT Core instellen, DynamoDB
We gebruikten de AWS IoT-kern als een MQTT-makelaar met TLS en X509 en NoSQL en DynamoDB om gegevens te loggen. U moet een account maken op https://aws.amazon.com/free.). Vervolgens moet u de onderstaande stappen volgen om iets te maken en te integreren met Dynamo:
docs.aws.amazon.com/iot/latest/developergu…
Stap 5: Twilio- en Dweet-API's instellen
Ook werd de Twilio sms-dienst opgezet. Zie de onderstaande URL voor instructies om deze stap te voltooien:
www.twilio.com/docs/iam/api/account
De integratie tussen de Android-app en het systeem gebeurde door middel van REST op het Dweet-platform. Aanmelden is niet nodig.
dweet.io/
Stap 6: Uitdagingen
Tijdens onze ontwikkeling zijn we veel uitdagingen tegengekomen, van OpenCV-technieken tot AWS-platform. We hebben besloten om met Python te coderen om tijd te besparen bij het ontwikkelen in C/C++. Tijdens onze ontwikkeling alleen de basis Opencv methoden zoals:
• cv2. Gaussiaans vervagen(..)
• cv2.drempel(..)
• cv2.morphologyEx(..)
• cv2.contourArea(..)
• cv2.findContours(..)
Deze basismethoden waren niet voldoende om een goede kwaliteit te bereiken bij het opsporen van mensen. Scenario's met wankele video ML (Machine Learning) werden gebruikt. Dus besloten we om de OpenCV machine learning-bibliotheek te gebruiken en we kregen een ander probleem omdat het vinden van een goede gegevensinvoer voor het ML-algoritme een probleem was waar we vele dagen mee bezig waren. We hebben het OpenCV SVM-algoritme gebruikt, maar dat werkte niet. We gebruikten OpenCV Naive Bayses en deze werkte goed. We hebben geprobeerd om neurale netwerken van Tensorflow en CNN te gebruiken, maar dat is voorlopig niet gelukt. CNN gebruikt veel verwerkingskracht, iets wat we niet hadden. Het gebruik van OpenCV ML en de basisprincipes van OpenCV-methoden heeft ons geholpen om een goed percentage mensen te detecteren. Desalniettemin moeten we voor elk type video de parameters van OpenCV aanpassen om een goede detectie van mensen te bereiken en valse positieven te voorkomen. In het midden van deze twee maanden ontwikkelden we ons eerste idee om een centrum voor gegevensverzameling te doen dat niet alleen het aantal passagiers en de GPS-locatie. We hebben besloten om geen gegevens te verzamelen met behulp van andere sensoren zoals temperatuur enzovoort. We hebben een.ini-bestand gemaakt om de toepassing te parametriseren en configureerbaar te maken. Op het Cambus.ini-bestand kunt u de toepassing op vele manieren configureren.
Stap 7: Resultaten en toekomstig werk
Zoals je in de video kunt zien, werkt de teller nauwkeurig. De blauwe lijnen markeren de invoerlimiet en de rode lijn de uitvoerlimiet. In dit geval werd een video gebruikt om te simuleren omdat we deze niet op een bus konden implementeren.
Houd er rekening mee dat er enige verandering moet worden aangebracht in uw toestand over videogrootte, camerahoek, helderheid enz. Elk type video moet zijn eigen parameters aanpassen, zoals opencv-kernelaanzuigingsachtergrond enzovoort.
Wijzig ook de variabelen op cambus.ini, met vermelding van MQTT-broker enzovoort.
We overwegen bij toekomstige implementaties om sensoren voor bijvoorbeeld temperatuur, luchtvochtigheid en CO2 toe te voegen aan het systeem. Het idee is om gegevens over de steden te verzamelen en deze beschikbaar te maken voor de gemeenschap.
Hierna sommen we de volgende stappen op die u kunt nemen om het project te verbeteren:
- Herschrijf de code met C/C++;
- Verbeter ML-algoritme;
- Re-factor python-code;
- Inzet in een bus;
We willen Embarcados en Qualcomm bedanken voor alle steun.
Medewerkers:
Bruno Monteiro - [email protected]
Kleber Drobobok - [email protected]
Vinicius de Oliveira - [email protected]
Stap 8: Referenties
[1]
[2]
[3]
[4]
[5]
Aanbevolen:
Installatie voor externe Bluetooth GPS-provider voor Android-apparaten: 8 stappen
Installatie voor externe Bluetooth GPS-provider voor Android-apparaten: deze instructable legt uit hoe u uw eigen externe Bluetooth-compatibele GPS voor uw telefoon kunt maken, wat dan ook voor ongeveer $ 10. Materiaallijst: NEO 6M U-blox GPSHC-05 bluetooth-module Kennis van interface Blutooth Low energy-modulesArdui
ECG-logger - een draagbare hartmonitor voor gegevensverzameling en -analyse op lange termijn: 3 stappen
ECG Logger - een draagbare hartmonitor voor gegevensverzameling en -analyse op lange termijn: Eerste release: oktober 2017 Laatste versie: 1.6.0 Status: stabiel Moeilijkheidsgraad: hoog Vereiste: Arduino, programmeren, hardware bouwen Unieke opslagplaats: SF (zie onderstaande links) Ondersteuning: alleen forum, geen PMECG Logger is een draagbare hartmonitor voor langdurig
Idee voor doe-het-zelf-activiteit voor weerstations voor 12+ jaar: 4 stappen
Idee voor doe-het-zelf-weerstationactiviteit voor 12-plussers: in deze activiteit zullen deelnemers hun weerstation opzetten, de lucht in sturen en de opnames (licht, temperatuur, vochtigheid) in realtime volgen via de Blynk-app. Bovendien leert u hoe u de geregistreerde waarden publiceert
Relaisbord voor Arduino voor minder dan $8: 5 stappen
Relaisbord voor Arduino voor minder dan $8.: Hallo vrienden, vandaag ga ik je vertellen hoe je een relaisbord voor Arduino maakt voor minder dan $8. In dit circuit gaan we geen IC of transistor gebruiken. Dus laten we het doen
3.3V Mod voor ultrasone sensoren (bereid HC-SR04 voor 3.3V Logic op ESP32/ESP8266, Particle Photon, enz.): 4 stappen
3.3V Mod voor ultrasone sensoren (bereid HC-SR04 voor 3.3V Logic op ESP32/ESP8266, Particle Photon, enz.): TL;DR: Knip op de sensor het spoor naar de Echo-pin en sluit het opnieuw aan met een spanningsdeler (Echo trace -> 2.7kΩ -> Echo pin -> 4.7kΩ -> GND). Bewerken: Er is enige discussie geweest over de vraag of de ESP8266 daadwerkelijk 5V-tolerant is op GPIO in