Sisukord:

Cambus - linnabussi andmete kogumise süsteem: 8 sammu
Cambus - linnabussi andmete kogumise süsteem: 8 sammu

Video: Cambus - linnabussi andmete kogumise süsteem: 8 sammu

Video: Cambus - linnabussi andmete kogumise süsteem: 8 sammu
Video: Renoveerimine eelvalmistatud lisasoojustuselementidega 2024, November
Anonim
Cambus - linnabussi andmete kogumise süsteem
Cambus - linnabussi andmete kogumise süsteem

Ü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

Installige Linaro Dragonboard 410c -sse
Installige Linaro Dragonboard 410c -sse
Installige Linaro Dragonboard 410c -sse
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

Samm: installige teegid ja laadige GitHubist alla lähtekood
Samm: installige teegid ja laadige GitHubist alla lähtekood

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

AWS IoT Core seadistamine, DynamoDB
AWS IoT Core seadistamine, DynamoDB
AWS IoT Core seadistamine, DynamoDB
AWS IoT Core seadistamine, DynamoDB
AWS IoT Core seadistamine, DynamoDB
AWS IoT Core seadistamine, 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

Seadistage Twilio ja Dweet API -d
Seadistage Twilio ja Dweet API -d
Seadistage Twilio ja Dweet API -d
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: