Kazalo:
- 1. korak: Materiali
- Korak: Namestite Linaro v Dragonboard 410c
- 3. korak: 2. korak: Namestite knjižnice in prenesite izvorno kodo iz GitHub -a
- 4. korak: Nastavitev AWS IoT Core, DynamoDB
- 5. korak: Namestite API Twilio in Dweet
- 6. korak: Izzivi
- 7. korak: Rezultati in prihodnje delo
- 8. korak: Reference
Video: Cambus - Sistem zbiranja podatkov o mestnem avtobusu: 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Med težavami in težavami, ki so znane v javnem prevozu, prebivalstvu primanjkuje informacij v realnem času in z najmanj asertivnosti. Prenatrpanost avtobusov javnega prevoza odžene uporabnike, ki raje uporabljajo lastna vozila, čeprav so še vedno ure v prometu. Če so uporabniku v realnem času na primer informacije o številu avtobusov na voljo, se lahko odloči, ali bo počakal na naslednji avtobus ali se bo z avtobusom premikal ali uporabil svoje vozilo. Moč izbire naredi javni prevoz privlačnejšo možnost za uporabnika.
Štetje ali ocenjevanje ljudi v zaprtih prostorih je mogoče na različne načine, med katerimi so najpogosteje zaposleni:
- Toplotne slike;
- Računalniški vid;
- Števec obrazov;
Med več težavami pri ocenjevanju ljudi v okolju z računalniškim vidom so glavne:
- Okluzije ljudi;
- Obrnjena razsvetljava;
- Statična okluzija, torej ljudje za predmeti;
- Kot kamere glede na okolje;
Izziv za ta projekt je poznavanje pravilnega kota kamere, ki bo najbolje pomagal pri odštevanju ozadja slike, pa tudi spremenljive svetilnosti podnevi v avtobusu.
Glavni cilj predloga je ustvariti robusten in nastavljiv model za oceno prenatrpanosti in dati rezultate na voljo prebivalstvu prek pametnih telefonov.
1. korak: Materiali
Za projekt je potreben naslednji material:
1 x Dragon Board 410c;
1 x USB kamera;
1 x pametni telefon Android;
Korak: Namestite Linaro v Dragonboard 410c
Sledite navodilom na spodnji povezavi za namestitev Linara 17.09 na DragonBoard 410c. Za podporo jedra za GPS priporočamo namestitev Linaro 17.09.
www.96boards.org/documentation/consumer/dr…
3. korak: 2. korak: Namestite knjižnice in prenesite izvorno kodo iz GitHub -a
Cambus ima modularno arhitekturo in kodno zasnovo. Možno je kodirati lasten algoritem strojnega učenja, preiti na drugo storitev v oblaku in ustvariti lastne uporabniške aplikacije.
Če želite zagnati projekt cambus, morate najprej prenesti izvorno kodo iz github (https://github.com/bmonteiro00/cambus). Namestite python (Cambus je bil način delovanja za različice 2.7 in> 3.x) in naslednje knjižnice z uporabo 'pip' (sudo apt-get install python-pip). V sistem Linaro bo treba namestiti kup knjižnic (priporočljivo je tudi ustvariti virtualno okolje - pip install virtualenv - za izolacijo sistema Cambus od SO). Prosimo, namestite naslednje knjižnice:
- pip install paho-mqtt
- pip install numpy
- pip namestite opencv-python
- pip namestite opencv-contrib-python
- pip install twilio
- pip install matplotlib
Glavni program je bil razdeljen na razrede:
- CamBus - glavni razred;
- Senzor - razred za pridobivanje podatkov, kot so položaj GPS, temperatura, Co2.
- Protirazred z algoritmom za obdelavo slik.
Prepričajte se, da so nameščene vse knjižnice, in izvedite python CamBus_v1.py.
4. korak: Nastavitev AWS IoT Core, DynamoDB
Za beleženje podatkov smo uporabili jedro AWS IoT kot posrednika MQTT s TLS in X509 ter NoSQL in DynamoDB. Ustvariti morate račun na naslovu https://aws.amazon.com/free.). Nato boste morali za ustvarjanje stvari in integracijo z Dynamom slediti spodnjim korakom:
docs.aws.amazon.com/iot/latest/developergu…
5. korak: Namestite API Twilio in Dweet
Nastavljena je bila tudi storitev Twilio SMS. Za navodila za dokončanje tega koraka glejte spodnji URL:
www.twilio.com/docs/iam/api/account
Integracija med aplikacijo Android in sistemom je bila izvedena s pomočjo REST -a, ki je uporabljal platformo Dweet. Prijava ni potrebna.
dweet.io/
6. korak: Izzivi
Med razvojem smo se soočali s številnimi izzivi, od tehnik OpenCV do platforme AWS. Odločili smo se za kodiranje s Pythonom, da prihranimo čas pri razvoju v C/C ++. Med našim razvojem samo osnovne metode Opencv, kot so:
• cv2. GaussianBlur (..)
• cv2.threshold (..)
• cv2.morphologyEx (..)
• cv2.contourArea (..)
• cv2.findContours (..)
Te osnovne metode niso bile dovolj za doseganje dobre kakovosti pri odkrivanju ljudi. Uporabljeni so bili scenariji s tresočim se videom ML (Machine Learning). Zato smo se odločili za uporabo knjižnice strojnega učenja OpenCV in imeli smo še eno težavo, saj smo našli veliko dobrih dni za iskanje dobrega vnosa podatkov za algoritem ML. Uporabili smo algoritem OpenCV SVM, vendar ni deloval. Uporabili smo OpenCV Naive Bayses in ta je deloval v redu. Poskušali smo uporabiti nevronska omrežja Tensorflow in CNN, vendar nam tega za zdaj ni uspelo. CNN uporablja veliko procesorsko moč, česar nismo imeli. Uporaba OpenCV ML in osnove metod OpenCV so nam pomagale doseči dobro stopnjo odkrivanja ljudi. Kljub temu moramo za vsako vrsto videa prilagoditi parametre OpenCV -ja, da dosežemo dobro stopnjo odkrivanja ljudi in se izognemo lažno pozitivnim rezultatom. Sredi teh dveh mesecev smo razvili prvo idejo, da centra zbiranja podatkov ne samo število potnikov in lokacija GPS. Odločili smo se, da ne zbiramo podatkov z drugimi senzorji, kot je temperatura itd. Ustvarili smo datoteko.ini, ki je parametrizirala aplikacijo in jo naredila nastavljivo. V datoteki Cambus.ini lahko aplikacijo konfigurirate na več načinov.
7. korak: Rezultati in prihodnje delo
Kot lahko vidite v videoposnetku, števec deluje natančno. Modre črte označujejo vhodno mejo, rdeča pa izhodno mejo. V tem primeru je bil za simulacijo uporabljen videoposnetek, ker ga nismo mogli uvesti na vodilo.
Upoštevajte, da je treba nekoliko spremeniti vaše stanje glede velikosti videa, kota kamere, svetilnosti itd. Vsaka vrsta videoposnetka mora biti prilagojena lastnim parametrom, kot je ozadje jedra opencv itd.
Spremenite tudi spremenljivke na cambus.ini, ki označujejo posrednika MQTT itd.
V prihodnjih izvedbah razmišljamo o dodajanju senzorjev, na primer temperature, vlažnosti in CO2 v sistem. Ideja je pridobiti podatke po mestih in jih dati na voljo skupnosti.
Sledijo naslednji koraki, ki jih lahko izboljšate za izboljšanje projekta:
- Ponovno napišite kodo z uporabo C/C ++;
- Izboljšajte algoritem ML;
- Ponovno faktorjanje kode python;
- Uvedba v avtobus;
Zahvaljujemo se podjetju Embarcados in Qualcomm za vso podporo.
Sodelavci:
Bruno Monteiro - [email protected]
Kleber Drobowok - [email protected]
Vinicius de Oliveira - [email protected]
8. korak: Reference
[1]
[2]
[3]
[4]
[5]
Priporočena:
Para Parama GPS (zapisovalnik podatkov EEPROM): 5 korakov
GPS Para Norma (Datalogger EEPROM): Enostaven zapisovalnik podatkov za hišne ljubljenčke GPS, ki temelji na zapisih arduino in EEPROM ================================ ======================== Sencillo datalogger GPS za maskote basado en arduino y grabacion in memory EEPROM
Kako povezati NodeMCU ESP8266 z bazo podatkov MySQL: 7 korakov
Kako povezati NodeMCU ESP8266 z bazo podatkov MySQL: MySQL je široko uporabljan sistem za upravljanje relacijskih baz podatkov (RDBMS), ki uporablja strukturiran jezik poizvedb (SQL). V nekem trenutku boste morda želeli naložiti podatke senzorja Arduino/NodeMCU v bazo podatkov MySQL. V tem navodilu bomo videli, kako povezati
Kako narediti snemalnik podatkov o vlažnosti in temperaturi v realnem času z Arduino UNO in kartico SD - Simulacija zapisovalnika podatkov DHT11 v Proteusu: 5 korakov
Kako narediti snemalnik podatkov o vlažnosti in temperaturi v realnem času z Arduino UNO in kartico SD | Simulacija zapisovalnika podatkov DHT11 v Proteusu: Uvod: zdravo, to je Liono Maker, tukaj je povezava YouTube. Z Arduinom ustvarjamo projekt in delamo na vgrajenih sistemih. Data-Logger: Zapisovalnik podatkov (tudi zapisovalnik podatkov ali zapisovalnik podatkov) je elektronska naprava, ki sčasoma beleži podatke z
Oblačen oblak vas zdravi (robot za preprečevanje ovir s funkcijo zbiranja): 8 korakov
Oblačen oblak vas zdravi (robot za preprečevanje ovir s funkcijo zbiranja): neuporaben stroj - Arduino robot
EAM-Industri4.0-RFID zbirka podatkov do baze podatkov: 10 korakov (s slikami)
EAM-Industri4.0-RFID podatkovno razvrščanje podatkovnih zbirk v zbirko podatkov: Dette projekt omhandler opsamling af v æ gtdata, register up identiteter vha. RFID, zaostajanje podatkov v bazi podatkov MySQL vha. node-RED, samostojno obnašanje in ravnanje z opsamlede podatki v programu et C#, ki se oblikujejo v aplikaciji Windows Form.