Indholdsfortegnelse:

Cambus - System for dataindsamling på bybus: 8 trin
Cambus - System for dataindsamling på bybus: 8 trin

Video: Cambus - System for dataindsamling på bybus: 8 trin

Video: Cambus - System for dataindsamling på bybus: 8 trin
Video: New Greyhound Bus Rules | How Will It Affect Bus Drivers? 2024, November
Anonim
Cambus - System for dataindsamling på bybus
Cambus - System for dataindsamling på bybus

Blandt de problemer og vanskeligheder, man kender inden for offentlig transport, mangler befolkningen information i realtid og med den mindste selvsikkerhed. Overfyldningen af offentlige transportbusser driver brugere væk, der foretrækker at bruge deres egne køretøjer, selvom de stadig er i trafik i timevis. Hvis oplysninger i realtid, f.eks. Antallet af busser, er let tilgængelige for en bruger, kan han vælge, om han vil vente på den næste bus eller komme rundt med bus eller bruge et eget køretøj. Valgmuligheden gør offentlig transport til en mere attraktiv mulighed for brugeren.

At tælle eller estimere mennesker indendørs kan udføres på mange måder, blandt hvilke de mest almindeligt anvendte er:

  • Termiske billeder;
  • Computer vision;
  • Ansigtstæller;

Blandt de mange vanskeligheder med at estimere mennesker i et miljø ved hjælp af computersyn er de vigtigste:

  • Lukninger af mennesker;
  • Omvendt belysning;
  • Statisk okklusion, det vil sige mennesker bag genstande;
  • Kameravinkel til miljøet;

En udfordring for dette projekt er at kende den korrekte vinkel på kameraet, der bedst hjælper med at fratrække billedets baggrund, samt den variable lysstyrke i løbet af dagen inde i bussen.

Forslagets hovedformål er at skabe en robust og konfigurerbar model til at estimere overbelægning og gøre resultaterne tilgængelige for befolkningen via smartphones.

Trin 1: Materialer

Det nødvendige materiale til projektet er det næste:

1 x Dragon Board 410c;

1 x USB -kamera;

1 x Smartphone Android;

Trin 2: Installer Linaro i Dragonboard 410c

Installer Linaro i Dragonboard 410c
Installer Linaro i Dragonboard 410c
Installer Linaro i Dragonboard 410c
Installer Linaro i Dragonboard 410c

Følg instruktionerne på nedenstående link for at installere Linaro 17.09 på DragonBoard 410c. Vi anbefaler at installere Linaro 17.09 til kernestøtte til GPS.

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

Trin 3: Trin 2: Installer biblioteker og download kildekoden fra GitHub

Trin 2: Installer biblioteker og download kildekoden fra GitHub
Trin 2: Installer biblioteker og download kildekoden fra GitHub

Cambus har en modulær arkitektur og kodedesign. Det er muligt at kode din egen maskinlæringsalgoritme, skifte til andre cloud -tjenester og oprette dine egne brugerapplikationer.

For at køre cambus -projektet skal du først downloade kildekoden fra github (https://github.com/bmonteiro00/cambus). Installer python (Cambus var tilstand til at køre på version 2.7 og> 3.x) og følgende biblioteker ved hjælp af 'pip' (sudo apt-get install python-pip). Det vil være nødvendigt at installere en masse biblioteker i Linaro -systemet (Det anbefales også at oprette et virtuelt miljø - pip install virtualenv - for at isolere Cambus -systemet fra SO). Installer venligst følgende biblioteker:

  • pip installer paho-mqtt
  • pip installer numpy
  • pip installer opencv-python
  • pip installer opencv-contrib-python
  • pip installere twilio
  • pip installer matplotlib

Hovedprogrammet var opdelt i klasser:

  • CamBus - hovedklassen;
  • Sensor - en klasse til at opnå data som GPS -position, temperatur, Co2.
  • Modklasse med billedbehandlingsalgoritme.

Sørg for, om alle biblioteker blev installeret, og kør python CamBus_v1.py.

Trin 4: Opsætning af AWS IoT Core, DynamoDB

Opsætning af AWS IoT Core, DynamoDB
Opsætning af AWS IoT Core, DynamoDB
Opsætning af AWS IoT Core, DynamoDB
Opsætning af AWS IoT Core, DynamoDB
Opsætning af AWS IoT Core, DynamoDB
Opsætning af AWS IoT Core, DynamoDB

Vi brugte AWS IoT -kernen som en MQTT -mægler med TLS og X509 og NoSQL og DynamoDB til at logge data. Du bliver nødt til at oprette en konto på https://aws.amazon.com/free.). Dernæst skal du følge trinene herunder for at oprette en ting og integrere med Dynamo:

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

Trin 5: Konfigurer Twilio og Dweet API'er

Opsæt Twilio og Dweet API'er
Opsæt Twilio og Dweet API'er
Opsæt Twilio og Dweet API'er
Opsæt Twilio og Dweet API'er

Twilio SMS -tjenesten blev også oprettet. Se webadressen herunder for at få vejledning i at fuldføre dette trin:

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

Integrationen mellem Android -appen og systemet blev udført via REST ved hjælp af Dweet -platformen. Ingen tilmelding påkrævet.

dweet.io/

Trin 6: Udfordringer

Under vores udvikling stod vi over for mange udfordringer, startende fra OpenCV -teknikker til AWS -platform. Vi besluttede at kode med Python for at spare tid på at udvikle sig i C/C ++. Under vores udvikling kun de grundlæggende Opencv -metoder som:

• cv2. GaussianBlur (..)

• cv2.grænse (..)

• cv2.morphologyEx (..)

• cv2.contourArea (..)

• cv2.findContours (..)

Disse grundlæggende metoder var ikke nok til at nå en god kvalitet til at opdage mennesker. Scenarier med rystende video ML (Machine Learning) blev brugt. Så vi besluttede at bruge OpenCV maskinlæringsbiblioteket, og vi fik et andet problem, fordi at finde et godt datainput til ML -algoritme var et problem, som vi brugte mange dage. Vi har brugt OpenCV SVM -algoritme, men ikke fungeret. Vi brugte OpenCV Naive Bayses, og denne fungerede OK. Vi har forsøgt at bruge Tensorflow og CNN neurale netværk, men vi fik det ikke til at ske for nu. CNN bruger meget processorkraft, noget vi ikke havde. Ved hjælp af OpenCV ML og de grundlæggende OpenCV -metoder hjalp vi med at nå en god opdagelsesrate. Ikke desto mindre skal vi for hver type vídeo tilpasse parametrene for OpenCV for at nå en god hastighed til at opdage mennesker og undgå falske positiver. I midten af disse to måneder udviklede vi vores første idé til at lave et center for dataindsamling ikke kun antallet af passagerer og GPS -placering. Vi besluttede at indsamle ikke data ved hjælp af andre sensorer som temperatur osv. Vi oprettede en.ini -fil for at parametre applikationen og gøre den konfigurerbar. På filen Cambus.ini kan du konfigurere applikationen på mange måder.

Trin 7: Resultater og fremtidigt arbejde

Som du kan se i videoen, fungerer tælleren præcist. De blå linjer markerer inputgrænsen og den røde linje outputgrænsen. I dette tilfælde blev en video brugt til at simulere, fordi vi ikke kunne distribuere den til en bus.

Husk, at der skal foretages en vis ændring i din tilstand omkring videostørrelse, kameravinkel, lysstyrke osv. Hver type video skal være dens egne parametre tilpasning såsom opencv kernel suctraction baggrund og så videre.

Skift også variabler på cambus.ini, hvilket angiver MQTT -mægler og så videre.

Vi overvejer i fremtidige implementeringer at tilføje sensorer, f.eks. Temperatur, fugtighed og CO2 i systemet. Ideen er at få data rundt i byerne, der gør dem tilgængelige for samfundet.

Følgende opregner vi de næste trin, du kan for at forbedre projektet:

  • Skriv koden igen ved hjælp af C/C ++;
  • Forbedre ML -algoritmen;
  • Omfaktor python-kode;
  • Implementering i en bus;

Vi vil gerne takke Embarcados og Qualcomm for al støtten.

Samarbejdspartnere:

Bruno Monteiro - [email protected]

Kleber Drobowok - [email protected]

Vinicius de Oliveira - [email protected]

Trin 8: Referencer

[1]

[2]

[3]

[4]

[5]

Anbefalede: