Innholdsfortegnelse:
- Trinn 1: Materialer
- Trinn 2: Installer Linaro i Dragonboard 410c
- Trinn 3: Trinn 2: Installer biblioteker og last ned kildekoden fra GitHub
- Trinn 4: Konfigurere AWS IoT Core, DynamoDB
- Trinn 5: Sett opp Twilio og Dweet APIer
- Trinn 6: Utfordringer
- Trinn 7: Resultater og fremtidig arbeid
- Trinn 8: Referanser
Video: Cambus - System for datainnsamling på bybuss: 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Blant problemene og vanskelighetene som er kjent i offentlig transport, mangler befolkningen informasjon i sanntid og med minst selvsikkerhet. Overbefolkningen av kollektivbusser driver brukere bort, som foretrekker å bruke egne kjøretøyer, selv om de fremdeles er i trafikk i flere timer. Hvis sanntidsinformasjon, for eksempel antall busser, er lett tilgjengelig for en bruker, kan han velge om han skal vente på neste buss eller komme seg rundt med buss eller bruke et eget kjøretøy. Valgmakten gjør offentlig transport til et mer attraktivt alternativ for brukeren.
Å telle eller estimere mennesker innendørs kan gjøres på mange måter, blant dem er de mest brukte:
- Termiske bilder;
- Datamaskin syn;
- Ansiktsteller;
Blant de mange vanskelighetene med å estimere mennesker i et miljø som bruker datasyn, er de viktigste:
- Okklusjoner av mennesker;
- Inverterende belysning;
- Statisk okklusjon, det vil si mennesker bak gjenstander;
- Kameravinkel til miljø;
En utfordring for dette prosjektet er å kjenne den riktige vinkelen på kameraet som best vil hjelpe til med å trekke bakgrunnen til bildet, så vel som den variable lysstyrken i løpet av dagen inne i bussen.
Hovedformålet med forslaget er å lage en robust og konfigurerbar modell for å estimere overbefolkning og gjøre resultatene tilgjengelige for befolkningen gjennom smarttelefoner.
Trinn 1: Materialer
Materialet som trengs for prosjektet er det neste:
1 x Dragon Board 410c;
1 x USB -kamera;
1 x smarttelefon Android;
Trinn 2: Installer Linaro i Dragonboard 410c
Følg instruksjonene på lenken nedenfor for å installere Linaro 17.09 på DragonBoard 410c. Vi anbefaler å installere Linaro 17.09 for kjernestøtte for GPS.
www.96boards.org/documentation/consumer/dr…
Trinn 3: Trinn 2: Installer biblioteker og last ned kildekoden fra GitHub
Cambus har en modulær arkitektur og kodedesign. Det er mulig å kode din egen maskinlæringsalgoritme, bytte til andre skytjenester og lage dine egne brukerprogrammer.
For å kjøre cambus -prosjektet må du først laste ned kildekoden fra github (https://github.com/bmonteiro00/cambus). Installer python (Cambus var modus for å kjøre på versjon 2.7 og> 3.x) og følgende biblioteker ved hjelp av 'pip' (sudo apt-get install python-pip). Det vil være nødvendig å installere en haug med biblioteker i Linaro -systemet (Det anbefales også å lage et virtuelt miljø - pip install virtualenv - for å isolere Cambus -systemet fra SO). Vennligst installer 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 ble delt inn i klasser:
- CamBus - hovedklassen;
- Sensor - en klasse for å skaffe data som GPS -posisjon, temperatur, Co2.
- Motklasse med bildebehandlingsalgoritme.
Kontroller om alle bibliotekene er installert og kjør python CamBus_v1.py.
Trinn 4: Konfigurere AWS IoT Core, DynamoDB
Vi brukte AWS IoT -kjernen som en MQTT -megler med TLS og X509 og NoSQL og DynamoDB for å logge data. Du må opprette en konto på https://aws.amazon.com/free.). Deretter må du følge trinnene nedenfor for å lage en ting og integrere med Dynamo:
docs.aws.amazon.com/iot/latest/developergu…
Trinn 5: Sett opp Twilio og Dweet APIer
Twilio SMS -tjenesten ble også satt opp. Se nettadressen nedenfor for instruksjoner for å fullføre dette trinnet:
www.twilio.com/docs/iam/api/account
Integrasjonen mellom Android -appen og systemet ble gjort ved hjelp av REST ved bruk av Dweet -plattformen. Ingen registrering nødvendig.
dweet.io/
Trinn 6: Utfordringer
Under utviklingen stod vi overfor mange utfordringer, fra OpenCV -teknikker til AWS -plattform. Vi bestemte oss for å kode med Python for å spare tid på utvikling i C/C ++. Under vår utvikling bare de grunnleggende Opencv -metodene som:
• cv2. GaussianBlur (..)
• cv2.terskel (..)
• cv2.morphologyEx (..)
• cv2.contourArea (..)
• cv2.findContours (..)
Disse grunnleggende metodene var ikke nok til å oppnå en god kvalitet på å oppdage mennesker. Scenarier med rystende video ML (Machine Learning) ble brukt. Så vi bestemte oss for å bruke OpenCV -maskinlæringsbiblioteket, og vi fikk et annet problem, for å finne en god datainngang for ML -algoritmen var et problem vi brukte mange dager. Vi har brukt OpenCV SVM -algoritme, men har ikke fungert. Vi brukte OpenCV Naive Bayses, og denne fungerte OK. Vi har prøvd å bruke Tensorflow og CNN nevrale nettverk, men vi fikk det ikke til nå. CNN bruker mye prosessorkraft, noe vi ikke hadde. Ved å bruke OpenCV ML og grunnleggende OpenCV -metoder hjalp vi oss med å nå en god hastighet for å oppdage mennesker. Likevel må vi for hver type vídeo tilpasse parameterne til OpenCV for å nå en god hastighet for å oppdage mennesker og unngå falske positiver. I midten av disse to månedene utviklet vi vår første idé om å gjøre et senter for datainnsamling ikke bare antall passasjerer og GPS -posisjon. Vi bestemte oss for å ikke samle inn data ved hjelp av andre sensorer som temperatur og så videre. Vi opprettet en.ini -fil for å parameterisere applikasjonen og gjøre den konfigurerbar. På filen Cambus.ini kan du konfigurere programmet på mange måter.
Trinn 7: Resultater og fremtidig arbeid
Som du kan se i videoen, fungerer telleren nøyaktig. De blå linjene markerer inngangsgrensen og den røde linjen utgangsgrensen. I dette tilfellet ble en video brukt til å simulere fordi vi ikke kunne distribuere den til en buss.
Husk at det må gjøres noen endringer i tilstanden din om videostørrelse, kameravinkel, lysstyrke osv. Hver type video må være dens egne parametere tilpasning, slik som opencv -kjernesugningsbakgrunn og så videre.
Endre også variabler på cambus.ini, som angir MQTT -megler og så videre.
Vi vurderer i fremtidige implementeringer å legge til sensorer, for eksempel temperatur, fuktighet og CO2 i systemet. Tanken er å få data rundt byene som gjør dem tilgjengelige for samfunnet.
Følgende oppregner vi de neste trinnene du kan gjøre for å forbedre prosjektet:
- Skriv koden på nytt med C/C ++;
- Forbedre ML -algoritmen;
- Re-faktor python-kode;
- Distribusjon i buss;
Vi vil takke Embarcados og Qualcomm for all støtten som er gitt.
Samarbeidspartnere:
Bruno Monteiro - [email protected]
Kleber Drobowok - [email protected]
Vinicius de Oliveira - [email protected]
Trinn 8: Referanser
[1]
[2]
[3]
[4]
[5]
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Slik laster du fôr til kyr: 9 trinn
Slik laster du fôr til kyr: Alt som lever trenger mat for å overleve. I vinter- og vårmånedene er det ikke gress for kyr å beite på. Dette gjør det veldig viktig at kuene blir matet skikkelig slik at de produserer sunne kalver. I de følgende trinnene vil pr
EKG -logger - en bærbar hjerteovervåkning for langsiktig datainnsamling og analyse: 3 trinn
EKG -logger - en bærbar hjertemonitor for langsiktig datainnsamling og analyse: Første utgivelse: oktober 2017 Siste versjon: 1.6.0 Status: Stabil Vanskelighet: Høy Forutsetning: Arduino, Programmering, Maskinvarebygging Unikt depot: SF (se lenker nedenfor) Støtte: Kun forum, ingen PMECG Logger er en bærbar hjerteovervåkning for lang
Datainnsamling og datavisualiseringssystem for en MotoStudent elektrisk racersykkel: 23 trinn
Datainnsamling og datavisualiseringssystem for en MotoStudent elektrisk racersykkel: Et datainnsamlingssystem er en samling av maskinvare og programvare som jobber sammen for å samle inn data fra eksterne sensorer, lagre og behandle dem etterpå slik at de kan visualiseres grafisk og analyseres, slik at ingeniørene kan lage
Temperatur og fuktighet Display og datainnsamling med Arduino og prosessering: 13 trinn (med bilder)
Temperatur- og fuktighetsvisning og datainnsamling med Arduino og prosessering: Intro: Dette er et prosjekt som bruker et Arduino -kort, en sensor (DHT11), en Windows -datamaskin og et behandlingsprogram (et gratis nedlastbart program) for å vise temperatur, fuktighetsdata i digital og stolpediagramform, vis tid og dato og kjør en opptellingstid