Innehållsförteckning:

Cambus - System för datainsamling på stadsbuss: 8 steg
Cambus - System för datainsamling på stadsbuss: 8 steg

Video: Cambus - System för datainsamling på stadsbuss: 8 steg

Video: Cambus - System för datainsamling på stadsbuss: 8 steg
Video: Lunchklubben: Ride the future - ett forskningsprojekt på hjul - föreläsning 2024, November
Anonim
Cambus - System för datainsamling på stadsbuss
Cambus - System för datainsamling på stadsbuss

Bland de problem och svårigheter som är kända inom kollektivtrafiken saknar befolkningen information i realtid och med minst självförtroende. Överbeläggningen av kollektivtrafikbussar driver bort användare, som föredrar att använda sina egna fordon, trots att de fortfarande är i trafik i timmar. Om information i realtid, till exempel antalet bussar, är lättillgänglig för en användare kan han välja om han ska vänta på nästa buss eller att ta sig runt med buss eller använda ett eget fordon. Valmöjligheten gör kollektivtrafiken till ett mer attraktivt alternativ för användaren.

Att räkna eller uppskatta människor inomhus kan göras på många sätt, bland vilka de vanligaste är:

  • Termiska bilder;
  • Datorsyn;
  • Ansiktsräknare;

Bland de många svårigheterna att uppskatta personer i en miljö som använder datorsyn är de viktigaste:

  • Tillslutningar av människor;
  • Inverterande belysning;
  • Statisk ocklusion, det vill säga människor bakom objekt;
  • Kameravinkel till miljö;

En utmaning för detta projekt är att känna till kamerans rätta vinkel som bäst hjälper till att subtrahera bildens bakgrund, liksom den variabla ljusstyrkan under dagen inne i bussen.

Förslagets huvudsyfte är att skapa en robust och konfigurerbar modell för att uppskatta överbeläggning och göra resultaten tillgängliga för befolkningen via smartphones.

Steg 1: Material

Materialet som behövs för projektet är följande:

1 x Dragon Board 410c;

1 x USB -kamera;

1 x Smartphone Android;

Steg 2: Installera Linaro i Dragonboard 410c

Installera Linaro i Dragonboard 410c
Installera Linaro i Dragonboard 410c
Installera Linaro i Dragonboard 410c
Installera Linaro i Dragonboard 410c

Följ instruktionerna på länken nedan för att installera Linaro 17.09 på DragonBoard 410c. Vi rekommenderar att du installerar Linaro 17.09 för kärnstöd för GPS.

www.96boards.org/documentation/consumer/dr…

Steg 3: Steg 2: Installera bibliotek och ladda ner källkoden från GitHub

Steg 2: Installera bibliotek och ladda ner källkoden från GitHub
Steg 2: Installera bibliotek och ladda ner källkoden från GitHub

Cambus har en modulär arkitektur och koddesign. Det är möjligt att koda din egen maskininlärningsalgoritm, byta till annan molntjänst och skapa egna användarprogram.

För att köra cambus -projektet måste du först ladda ner källkoden från github (https://github.com/bmonteiro00/cambus). Installera python (Cambus var läge att köra på version 2.7 och> 3.x) och följande bibliotek med 'pip' (sudo apt-get install python-pip). Det kommer att behövas för att installera ett gäng bibliotek i Linaro -systemet (Det rekommenderas också att skapa ett virtuellt miljö - pip install virtualenv - för att isolera Cambus -systemet från SO). Installera följande bibliotek:

  • pip installera paho-mqtt
  • pip installera numpy
  • pip installera opencv-python
  • pip installera opencv-contrib-python
  • pip installera twilio
  • pip installera matplotlib

Huvudprogrammet var indelat i klasser:

  • CamBus - huvudklassen;
  • Sensor - en klass för att erhålla data som GPS -position, temperatur, Co2.
  • Motklass med bildbehandlingsalgoritm.

Se till att alla bibliotek har installerats och kör python CamBus_v1.py.

Steg 4: Konfigurera AWS IoT Core, DynamoDB

Konfigurera AWS IoT Core, DynamoDB
Konfigurera AWS IoT Core, DynamoDB
Konfigurera AWS IoT Core, DynamoDB
Konfigurera AWS IoT Core, DynamoDB
Konfigurera AWS IoT Core, DynamoDB
Konfigurera AWS IoT Core, DynamoDB

Vi använde AWS IoT -kärnan som en MQTT -mäklare med TLS och X509 och NoSQL och DynamoDB för att logga data. Du måste skapa ett konto på https://aws.amazon.com/free.). Därefter måste du följa stegen nedan för att skapa en sak och integrera med Dynamo:

docs.aws.amazon.com/iot/latest/developergu…

Steg 5: Konfigurera Twilio och Dweet API: er

Konfigurera Twilio och Dweet API: er
Konfigurera Twilio och Dweet API: er
Konfigurera Twilio och Dweet API: er
Konfigurera Twilio och Dweet API: er

Twilio SMS -tjänsten inrättades också. Se webbadressen nedan för instruktioner för att slutföra detta steg:

www.twilio.com/docs/iam/api/account

Integrationen mellan Android -appen och systemet gjordes via REST med hjälp av Dweet -plattformen. Ingen registrering krävs.

dweet.io/

Steg 6: Utmaningar

Under vår utveckling mötte vi många utmaningar, från OpenCV -tekniker till AWS -plattform. Vi bestämde oss för att koda med Python för att spara tid på att utvecklas i C/C ++. Under vår utveckling endast de grundläggande Opencv -metoderna som:

• cv2. GaussianBlur (..)

• cv2.tröskel (..)

• cv2.morphologyEx (..)

• cv2.contourArea (..)

• cv2.findContours (..)

Dessa grundläggande metoder var inte tillräckligt för att uppnå en bra kvalitet för att upptäcka människor. Scenarier med skakig video ML (Machine Learning) användes. Så vi bestämde oss för att använda OpenCV -maskininlärningsbiblioteket och vi fick ett annat problem för att hitta en bra datainmatning för ML -algoritmen var ett problem som vi tillbringade många dagar. Vi har använt OpenCV SVM -algoritm men inte fungerat. Vi använde OpenCV Naive Bayses och den här fungerade OK. Vi har försökt använda Tensorflow och CNN neurala nätverk, men vi fick det inte att hända för tillfället. CNN använder mycket processorkraft, något som vi inte hade. Att använda OpenCV ML och grunderna i OpenCV -metoder hjälpte oss att nå en bra upptäcktshastighet. Ändå måste vi för varje typ av vídeo anpassa parametrarna för OpenCV för att nå en bra upptäcktsfrekvens och undvika falska positiva effekter. I mitten av dessa två månader utvecklade vi vår första idé att göra ett centrum för datainsamling inte endast antalet passagerare och GPS -plats. Vi bestämde oss för att inte samla in data med andra sensorer som temperatur och så vidare. Vi skapade en.ini -fil för att parametrisera applikationen och göra den konfigurerbar. På filen Cambus.ini kan du konfigurera programmet på många sätt.

Steg 7: Resultat och framtida arbete

Som du kan se i videon fungerar räknaren exakt. De blå linjerna markerar ingångsgränsen och den röda linjen utgångsgränsen. I det här fallet användes en video för att simulera eftersom vi inte kunde distribuera den till en buss.

Tänk på att vissa förändringar måste göras i ditt tillstånd om videostorlek, kameravinkel, ljusstyrka etc. Varje typ av video måste vara dess egna parametrar anpassning såsom opencv -kärnans sugningsbakgrund och så vidare.

Ändra även variabler på cambus.ini, vilket indikerar MQTT -mäklare och så vidare.

Vi överväger i framtida implementeringar att lägga till sensorer, till exempel temperatur, luftfuktighet och CO2 i systemet. Tanken är att få data runt städerna som gör dem tillgängliga för samhället.

Följande räknar vi upp nästa steg som du kan för att förbättra projektet:

  • Skriv om koden med C/C ++;
  • Förbättra ML -algoritmen;
  • Omfaktor pythonkod;
  • Utplacering i en buss;

Vi vill tacka Embarcados och Qualcomm för allt stöd som ges.

Samarbetspartners:

Bruno Monteiro - [email protected]

Kleber Drobowok - [email protected]

Vinicius de Oliveira - [email protected]

Steg 8: Referenser

[1]

[2]

[3]

[4]

[5]

Rekommenderad: