Indholdsfortegnelse:
- Trin 1: Materialer
- Trin 2: Installer Linaro i Dragonboard 410c
- Trin 3: Trin 2: Installer biblioteker og download kildekoden fra GitHub
- Trin 4: Opsætning af AWS IoT Core, DynamoDB
- Trin 5: Konfigurer Twilio og Dweet API'er
- Trin 6: Udfordringer
- Trin 7: Resultater og fremtidigt arbejde
- Trin 8: Referencer
Video: Cambus - System for dataindsamling på bybus: 8 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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
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
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
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
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:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
EKG Logger - en bærbar hjerteovervågning til langsigtet dataindsamling og analyse: 3 trin
EKG Logger - en bærbar hjerteovervågning til langsigtet dataindsamling og analyse: Første udgivelse: oktober 2017 Seneste version: 1.6.0Status: Stabil Problemer: Høj Forudsætning: Arduino, Programmering, Hardwareopbygning Unikt arkiv: SF (se links nedenfor) Support: Kun forum, ingen PMECG Logger er en bærbar hjerteovervågning til lang
Dataindsamling og datavisualiseringssystem til en MotoStudent elektrisk racercykel: 23 trin
Dataindsamling og datavisualiseringssystem til en MotoStudent elektrisk racercykel: Et dataindsamlingssystem er en samling hardware og software, der arbejder sammen for at indsamle data fra eksterne sensorer, gemme og behandle det bagefter, så det kan visualiseres grafisk og analyseres, giver ingeniører mulighed for at lave
Temperatur- og fugtighedsvisning og dataindsamling med Arduino og behandling: 13 trin (med billeder)
Temperatur- og fugtighedsvisning og dataindsamling med Arduino og behandling: Intro: Dette er et projekt, der bruger et Arduino -kort, en sensor (DHT11), en Windows -computer og et bearbejdningsprogram (et gratis downloadbart) til at vise temperatur, luftfugtighedsdata i digital og søjlediagramform, vis tid og dato, og kør en optællingstid