Kazalo:

Cambus - Sistem zbiranja podatkov o mestnem avtobusu: 8 korakov
Cambus - Sistem zbiranja podatkov o mestnem avtobusu: 8 korakov

Video: Cambus - Sistem zbiranja podatkov o mestnem avtobusu: 8 korakov

Video: Cambus - Sistem zbiranja podatkov o mestnem avtobusu: 8 korakov
Video: Высокая плотность 2022 2024, November
Anonim
Cambus - Sistem zbiranja podatkov na mestnem avtobusu
Cambus - Sistem zbiranja podatkov na mestnem avtobusu

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

Namestite Linaro v Dragonboard 410c
Namestite Linaro v Dragonboard 410c
Namestite Linaro v Dragonboard 410c
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

Korak: Namestite knjižnice in prenesite izvorno kodo iz GitHub -a
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

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

Nastavitev API -jev Twilio in Dweet
Nastavitev API -jev Twilio in Dweet
Nastavitev API -jev Twilio in Dweet
Nastavitev API -jev 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: