Sadržaj:

Cambus - Sistem prikupljanja podataka o gradskim autobusima: 8 koraka
Cambus - Sistem prikupljanja podataka o gradskim autobusima: 8 koraka

Video: Cambus - Sistem prikupljanja podataka o gradskim autobusima: 8 koraka

Video: Cambus - Sistem prikupljanja podataka o gradskim autobusima: 8 koraka
Video: Машинное обучение для разработчиков Java: переход на стек технологий ИИ. 2024, Novembar
Anonim
Cambus - Sistem prikupljanja podataka na gradskim autobusima
Cambus - Sistem prikupljanja podataka na gradskim autobusima

Među problemima i poteškoćama poznatim u javnom prijevozu, stanovništvu nedostaju informacije u stvarnom vremenu i s najmanje asertivnosti. Prenapučenost autobusa za javni prijevoz tjera korisnike koji više vole koristiti vlastita vozila, iako su i dalje satima u prometu. Ako su korisniku lako dostupne informacije u stvarnom vremenu, poput broja autobusa, on može izabrati hoće li čekati sljedeći autobus ili će se kretati autobusom ili koristiti vlastito vozilo. Snaga izbora čini javni prijevoz privlačnijom opcijom za korisnika.

Brojanje ili procjena ljudi u zatvorenom prostoru može se izvršiti na mnogo načina, među kojima su najčešće zaposleni:

  • Toplinske slike;
  • Računalni vid;
  • Brojač lica;

Među nekoliko poteškoća u procjeni ljudi u okruženju pomoću računarskog vida, glavne su:

  • Okluzije ljudi;
  • Invertirajuća rasvjeta;
  • Statička okluzija, odnosno ljudi iza objekata;
  • Ugao kamere prema okolini;

Izazov za ovaj projekt je poznavanje ispravnog ugla kamere koji će najbolje pomoći u oduzimanju pozadine slike, kao i promjenjivoj svjetlini tokom dana u autobusu.

Glavni cilj prijedloga je stvoriti robustan i konfigurabilan model za procjenu prenapučenosti i učiniti rezultate dostupnim stanovništvu putem pametnih telefona.

Korak 1: Materijali

Za projekt je potreban sljedeći materijal:

1 x Dragon Board 410c;

1 x USB kamera;

1 x pametni telefon Android;

Korak 2: Instalirajte Linaro u Dragonboard 410c

Instalirajte Linaro u Dragonboard 410c
Instalirajte Linaro u Dragonboard 410c
Instalirajte Linaro u Dragonboard 410c
Instalirajte Linaro u Dragonboard 410c

Slijedite upute na donjoj vezi za instaliranje Linara 17.09 na DragonBoard 410c. Preporučujemo instaliranje Linaro 17.09 za podršku jezgre za GPS.

www.96boards.org/documentation/consumer/dr…

Korak 3: Korak 2: Instalirajte biblioteke i preuzmite izvorni kod sa GitHub -a

Korak 2: Instalirajte biblioteke i preuzmite izvorni kod s GitHub -a
Korak 2: Instalirajte biblioteke i preuzmite izvorni kod s GitHub -a

Cambus ima modularnu arhitekturu i dizajn koda. Moguće je kodirati vlastiti algoritam strojnog učenja, preći na drugu uslugu u oblaku i stvoriti vlastite korisničke aplikacije.

Da biste pokrenuli cambus projekt, prvo morate preuzeti izvorni kod s github -a (https://github.com/bmonteiro00/cambus). Instalirajte python (Cambus je bio način rada na verzijama 2.7 i> 3.x) i sljedeće biblioteke koristeći 'pip' (sudo apt-get install python-pip). Bit će potrebno instalirati hrpu biblioteka u Linaro sistem (Također, preporučuje se stvaranje virtualnog okruženja - pip install virtualenv - kako bi se izolirao Cambus sistem od SO -a). Molimo instalirajte sljedeće biblioteke:

  • pip install paho-mqtt
  • pip install numpy
  • pip install opencv-python
  • pip install opencv-contrib-python
  • pip install twilio
  • pip install matplotlib

Glavni program bio je podijeljen u klase:

  • CamBus - glavna klasa;
  • Senzor - klasa za dobijanje podataka kao što su GPS položaj, temperatura, Co2.
  • Counter -class sa algoritmom za obradu slike.

Provjerite jesu li sve biblioteke instalirane i pokrenite python CamBus_v1.py.

Korak 4: Postavljanje AWS IoT Core, DynamoDB

Postavljanje AWS IoT Core, DynamoDB
Postavljanje AWS IoT Core, DynamoDB
Postavljanje AWS IoT Core, DynamoDB
Postavljanje AWS IoT Core, DynamoDB
Postavljanje AWS IoT Core, DynamoDB
Postavljanje AWS IoT Core, DynamoDB

Koristili smo AWS IoT jezgru kao MQTT posrednik sa TLS -om i X509 i NoSQL -om i DynamoDB -om za evidentiranje podataka. Morat ćete stvoriti račun na https://aws.amazon.com/free.). Zatim ćete morati slijediti donje korake za stvaranje stvari i integraciju s Dynamom:

docs.aws.amazon.com/iot/latest/developergu…

Korak 5: Postavite Twilio i Dweet API

Postavljanje Twilio i Dweet API -ja
Postavljanje Twilio i Dweet API -ja
Postavljanje Twilio i Dweet API -ja
Postavljanje Twilio i Dweet API -ja

Postavljena je i usluga Twilio SMS. Pogledajte donji URL za upute za dovršetak ovog koraka:

www.twilio.com/docs/iam/api/account

Integracija između android aplikacije i sistema izvršena je putem REST -a na platformi Dweet. Nije potrebna registracija.

dweet.io/

Korak 6: Izazovi

Tijekom našeg razvoja suočili smo se s mnogim izazovima, počevši od OpenCV tehnika do AWS platforme. Odlučili smo kodirati s Pythonom kako bismo uštedjeli vrijeme na razvoju u C/C ++. Tokom našeg razvoja samo su osnovne metode Opencv -a, kao što su:

• cv2. GaussianBlur (..)

• cv2.threshold (..)

• cv2.morphologyEx (..)

• cv2.contourArea (..)

• cv2.findContours (..)

Ove osnovne metode nisu bile dovoljne za postizanje dobre kvalitete u otkrivanju ljudi. Korišteni su scenariji s klimavim videom ML (Machine Learning). Stoga smo odlučili koristiti biblioteku mašinskog učenja OpenCV -a i dobili smo još jedan problem jer je pronalaženje dobrog unosa podataka za ML algoritam bio problem na koji smo proveli mnogo dana. Koristili smo OpenCV SVM algoritam, ali nije uspio. Koristili smo OpenCV Naive Bayses i ovaj je radio OK. Pokušali smo koristiti Tensorflow i CNN neuronske mreže, ali to za sada nismo uspjeli. CNN koristi mnogo procesorske snage, nešto što mi nismo imali. Korištenje OpenCV ML i osnova OpenCV metoda pomoglo nam je da dosegnemo dobru stopu otkrivanja ljudi. Ipak, za svaku vrstu videa moramo prilagoditi parametre OpenCV -a kako bismo postigli dobru stopu otkrivanja ljudi i izbjegli lažno pozitivne rezultate. Sredinom ova dva mjeseca razvili smo našu prvu ideju da centar prikupljanja podataka ne samo broj putnika i GPS lokacija. Odlučili smo ne prikupljati podatke pomoću drugih senzora poput temperature i tako dalje. Napravili smo.ini datoteku za parametrizaciju aplikacije i njenu konfiguraciju. Na datoteci Cambus.ini aplikaciju možete konfigurirati na mnogo načina.

Korak 7: Rezultati i budući rad

Kao što možete vidjeti u videu, brojač radi tačno. Plave linije označavaju ulaznu granicu, a crvena liniju izlaznu granicu. U ovom slučaju, video je korišten za simulaciju jer ga nismo mogli postaviti na sabirnicu.

Imajte na umu da se u vaše stanje moraju unijeti neke promjene u pogledu veličine videa, ugla kamere, svjetline itd. Svaka vrsta videozapisa mora biti prilagođena vlastitim parametrima, poput pozadine suktracije jezgre opencv, itd.

Molimo također promijenite varijable na cambus.ini, označavajući MQTT brokera itd.

U budućim implementacijama razmatramo dodavanje senzora, na primjer, temperature, vlažnosti i CO2 u sistem. Ideja je doći do podataka po gradovima i učiniti ih dostupnim zajednici.

Slijedi nabrajanje sljedećih koraka koje možete učiniti kako biste poboljšali projekt:

  • Ponovo napišite kod koristeći C/C ++;
  • Poboljšati algoritam pranja novca;
  • Ponovite faktor python koda;
  • Raspoređivanje u autobus;

Ovim putem zahvaljujemo Embarcados -u i Qualcomm -u na svoj podršci.

Saradnici:

Bruno Monteiro - [email protected]

Kleber Drobowok - [email protected]

Vinicius de Oliveira - [email protected]

Korak 8: Reference

[1]

[2]

[3]

[4]

[5]

Preporučuje se: