Inhoudsopgave:

Cambus - Systeem voor gegevensverzameling op stadsbus - Ajarnpa
Cambus - Systeem voor gegevensverzameling op stadsbus - Ajarnpa

Video: Cambus - Systeem voor gegevensverzameling op stadsbus - Ajarnpa

Video: Cambus - Systeem voor gegevensverzameling op stadsbus - Ajarnpa
Video: Nieuw: M-Bus Extension | Loxone 2024, November
Anonim
Cambus - Systeem voor gegevensverzameling op stadsbussen
Cambus - Systeem voor gegevensverzameling op stadsbussen

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

Installeer Linaro in Dragonboard 410c
Installeer Linaro in Dragonboard 410c
Installeer Linaro in Dragonboard 410c
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

Stap 2: Installeer bibliotheken en download de broncode van GitHub
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

AWS IoT Core, DynamoDB instellen
AWS IoT Core, DynamoDB instellen
AWS IoT Core, DynamoDB instellen
AWS IoT Core, DynamoDB instellen
AWS IoT Core, DynamoDB instellen
AWS IoT Core, DynamoDB instellen

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

Twilio- en Dweet-API's instellen
Twilio- en Dweet-API's instellen
Twilio- en Dweet-API's instellen
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: