Sisukord:
- Samm: materjalid
- Samm: installige Linaro Dragonboard 410c -sse
- Samm: installige teegid ja laadige lähtekood alla GitHubist
- Samm: seadistage AWS IoT Core, DynamoDB
- Samm: seadistage Twilio ja Dweet API -d
- 6. samm: väljakutsed
- 7. samm: tulemused ja tulevane töö
- 8. samm: viited
Video: Cambus - linnabussi andmete kogumise süsteem: 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Ühistranspordis teadaolevate probleemide ja raskuste hulgas puudub elanikkonnal reaalajas teave ja kõige vähem enesekindlalt. Ühistranspordibusside ülerahvastatus ajab eemale kasutajad, kes eelistavad kasutada oma sõidukeid, kuigi nad on endiselt tundide kaupa liikluses. Kui reaalajas teave, näiteks busside arv, on kasutajale kergesti kättesaadav, saab ta valida, kas oodata järgmist bussi või liikuda bussiga või kasutada oma sõidukit. Valikuvõimalus muudab ühistranspordi kasutaja jaoks atraktiivsemaks.
Siseruumides olevate inimeste loendamist või hindamist saab teha mitmel viisil, millest kõige sagedamini kasutatakse järgmist:
- Soojuspildid;
- Arvuti nägemine;
- Näo loendur;
Arvutinägemist kasutavas keskkonnas olevate inimeste hindamise mitmete raskuste hulgas on peamised järgmised:
- Inimeste oklusioonid;
- Pöördvalgustus;
- Staatiline oklusioon, see tähendab inimesed objektide taga;
- Kaamera nurk keskkonna suhtes;
Selle projekti jaoks on väljakutseks teada kaamera õiget nurka, mis aitab kõige paremini pildi tausta lahutada, ning muutuvat heledust bussi sees päevas.
Ettepaneku peamine eesmärk on luua tugev ja konfigureeritav mudel, et hinnata ülerahvastatust ja teha tulemused elanikkonnale nutitelefonide kaudu kättesaadavaks.
Samm: materjalid
Projekti jaoks on vaja järgmist materjali:
1 x Dragon Board 410c;
1 x USB -kaamera;
1 x nutitelefon Android;
Samm: installige Linaro Dragonboard 410c -sse
Linaro 17.09 installimiseks DragonBoard 410c -le järgige alloleval lingil toodud juhiseid. GPS -i kerneli toeks soovitame installida Linaro 17.09.
www.96boards.org/documentation/consumer/dr…
Samm: installige teegid ja laadige lähtekood alla GitHubist
Cambusel on modulaarne arhitektuur ja koodidisain. Võimalik on kodeerida oma masinõppe algoritm, vahetada muu pilveteenuse vastu ja luua oma kasutajarakendusi.
Cambuse projekti käivitamiseks peate esmalt alla laadima lähtekoodi saidilt github (https://github.com/bmonteiro00/cambus). Installige python (Cambus oli režiimis versioonis 2.7 ja> 3.x) ja järgmised teegid, kasutades 'pip' (sudo apt-get install python-pip). Seda on vaja paigaldada hunnik raamatukogusid Linaro süsteemi (samuti on soovitatav luua virtuaalne keskkond - pip install virtualenv - et eraldada Cambuse süsteem vastuväidetest). Palun installige järgmised teegid:
- pip install paho-mqtt
- pip install numpy
- pip install opencv-python
- pip install opencv-contrib-python
- pip install twilio
- pip install matplotlib
Põhiprogramm jagunes klassideks:
- CamBus - põhiklass;
- Andur - klass selliste andmete saamiseks nagu GPS -asukoht, temperatuur, CO2.
- Loendusklass pilditöötlusalgoritmiga.
Veenduge, et kõik teegid oleks installitud, ja käivitage python CamBus_v1.py.
Samm: seadistage AWS IoT Core, DynamoDB
Andmete logimiseks kasutasime AWS IoT tuuma MQTT maaklerina koos TLS ja X509 ning NoSQL ja DynamoDB -ga. Peate looma konto aadressil https://aws.amazon.com/free.) Järgmisena peate asja loomiseks ja Dynamoga integreerimiseks toimima järgmiselt.
docs.aws.amazon.com/iot/latest/developergu…
Samm: seadistage Twilio ja Dweet API -d
Seadistati ka Twilio SMS -teenus. Selle sammu lõpuleviimiseks vaadake allolevat URL -i:
www.twilio.com/docs/iam/api/account
Androidi rakenduse ja süsteemi integreerimine toimus RESTi kaudu, kasutades Dweeti platvormi. Registreerumine pole vajalik.
dweet.io/
6. samm: väljakutsed
Arendamise ajal seisime silmitsi paljude väljakutsetega, alustades OpenCV tehnikast ja lõpetades AWS platvormiga. Otsustasime Pythoniga koodida, et säästa aega C/C ++ arendamisel. Meie arendamise ajal kasutati ainult põhilisi Opencv meetodeid, näiteks:
• cv2. GaussianBlur (..)
• cv2.lävi (..)
• cv2.morphologyEx (..)
• cv2.contourArea (..)
• cv2.findContours (..)
Nendest põhimeetoditest ei piisanud inimeste tuvastamise hea kvaliteedi saavutamiseks. Kasutati väriseva video ML (Machine Learning) stsenaariume. Niisiis otsustasime kasutada OpenCV masinõppe teeki ja saime veel ühe probleemi, sest ML -algoritmi jaoks hea andmesisendi leidmine oli probleem, mida veetsime mitu päeva. Oleme kasutanud OpenCV SVM algoritmi, kuid pole töötanud. Kasutasime OpenCV Naive Bayses ja see töötas hästi. Oleme proovinud kasutada Tensorflow ja CNN närvivõrke, kuid me ei teinud seda praegu. CNN kasutab palju töötlemisvõimsust, mida meil polnud. OpenCV ML -i ja põhiliste OpenCV -meetodite kasutamine aitas meil jõuda inimeste tuvastamise heale tasemele. Sellegipoolest peame iga videotüübi puhul kohandama OpenCV parameetreid, et jõuda inimeste tuvastamise tasemeni ja vältida valepositiivseid tulemusi. Nende kahe kuu keskel arendasime välja oma esimese idee teha andmekogumiskeskus mitte ainult reisijate arv ja GPS -i asukoht. Otsustasime koguda mitte andmeid, kasutades teisi andureid, näiteks temperatuuri ja nii edasi. Lõime rakenduse parameetrite muutmiseks ja konfigureeritavaks.ini -faili. Failis Cambus.ini saate rakendust mitmel viisil konfigureerida.
7. samm: tulemused ja tulevane töö
Nagu videost näha, töötab loendur täpselt. Sinised jooned tähistavad sisendpiiri ja punased jooned väljundpiiri. Sel juhul kasutati simuleerimiseks videot, kuna me ei saanud seda bussi juurutada.
Pidage meeles, et teie seisundis tuleb muuta video suurust, kaamera nurka, heledust jne. Igat tüüpi videod peavad olema kohandatud oma parameetritega, näiteks opencv kerneli imemise taust ja nii edasi.
Palun muutke ka muutujaid aadressil cambus.ini, näidates MQTT maaklerit ja nii edasi.
Kaalume tulevastes rakendustes andurite, näiteks temperatuuri, niiskuse ja CO2 lisamist süsteemi. Idee on hankida andmeid linnade ümber, muutes need kogukonnale kättesaadavaks.
Järgnevalt loetleme järgmised sammud projekti täiustamiseks:
- Kirjutage kood uuesti, kasutades C/C ++;
- ML algoritmi täiustamine;
- Pythoni koodi ümberfaktorimine;
- Bussi paigutamine;
Soovime tänada Embarcados ja Qualcommi kogu antud toetuse eest.
Kaasautorid:
Bruno Monteiro - [email protected]
Kleber Drobowok - [email protected]
Vinicius de Oliveira - [email protected]
8. samm: viited
[1]
[2]
[3]
[4]
[5]
Soovitan:
MagicBiti andmete visualiseerimine AWS -is: 5 sammu
MagicBiti andmete visualiseerimine AWSis: Magicbitiga ühendatud anduritelt kogutud andmed avaldatakse AWS IOT tuuma kaudu MQTT kaudu, et neid saaks reaalajas graafiliselt visualiseerida. Selles projektis, mis põhineb ESP32 -l, kasutame arendusplaadina magicbitit. Seetõttu on iga ESP32 d
Tagasiside kogumise süsteem: 4 sammu
Tagasiside kogumise süsteem: alati on huvitav koguda tagasisidet pärast üritusi ja töötubasid. Selle probleemi lahendamiseks oleme loonud arduino-põhise tagasiside kogumise süsteemi. Selles projektis valmistame elektroonikaseadme, mis kogub tagasisidet ühe nupuvajutusega
Prügi kogumise robotite prototüüpimine: 10 sammu
Prügi kogumise robotite prototüüpide koostamine: eluruumides elavate üliõpilastena oleme avastanud, et meie ühiselamud on sageli koduks räpane tudengitele, kes elavad esimest korda iseseisvalt. Need õpilased on üldiselt liiga laisad või vastutustundetud, et oma asju kätte saada või puhastada
Andmete hankimise ja andmete visualiseerimise süsteem MotoStudent elektrilise võidusõiduratta jaoks: 23 sammu
Andmete hankimise ja andmete visualiseerimise süsteem MotoStudent Electric Racing Bike jaoks: Andmete kogumise süsteem on riist- ja tarkvara kogum, mis töötab koos, et koguda andmeid välisanduritelt, salvestada ja töödelda neid hiljem, et neid oleks võimalik graafiliselt visualiseerida ja analüüsida, võimaldades inseneridel teha
EAL-Industri4.0-RFID andmete kogumise andmebaas: 10 sammu (koos piltidega)
EAL-Industri4.0-RFID Dataopsamling Til Andmebaas: Dette projekt omhandler opsamling af v æ gtdata, registreering af identiteter vha. RFID, kurnavad andmed ja en MySQL andmebaas vha. sõlme-PUNANE, samaväärne ja käitumine andmete edastamise ja C# programmiga, mis on vormis Windows Form Application