Obsah:

Cambus - systém zberu údajov o mestskej zbernici: 8 krokov
Cambus - systém zberu údajov o mestskej zbernici: 8 krokov

Video: Cambus - systém zberu údajov o mestskej zbernici: 8 krokov

Video: Cambus - systém zberu údajov o mestskej zbernici: 8 krokov
Video: Машинное обучение для разработчиков Java: переход на стек технологий ИИ. 2024, November
Anonim
Cambus - systém zberu údajov o mestskej zbernici
Cambus - systém zberu údajov o mestskej zbernici

Medzi problémami a ťažkosťami známymi vo verejnej doprave chýba obyvateľstvu informácie v reálnom čase a s najmenšou asertivitou. Preplnenosť autobusov mestskej hromadnej dopravy odháňa používateľov, ktorí uprednostňujú používanie vlastných vozidiel, napriek tomu, že sú v prevádzke hodiny. Ak sú používateľovi ľahko dostupné informácie v reálnom čase, ako napríklad počet autobusov, môže si vybrať, či bude čakať na ďalší autobus alebo sa bude pohybovať autobusom alebo použije vlastné vozidlo. Vďaka možnosti výberu je verejná doprava pre užívateľa atraktívnejšou možnosťou.

Počítanie alebo odhadovanie ľudí v interiéri je možné vykonať mnohými spôsobmi, z ktorých najčastejšie sa používajú:

  • Termálne obrazy;
  • Počítačové videnie;
  • Počítadlo tváre;

Medzi niekoľko ťažkostí odhadnúť ľudí v prostredí pomocou počítačového videnia patrí medzi hlavné tieto:

  • Oklúzie ľudí;
  • Invertujúce osvetlenie;
  • Statická oklúzia, to znamená ľudia za predmetmi;
  • Uhol kamery voči prostrediu;

Výzvou pre tento projekt je poznať správny uhol kamery, ktorý najlepšie pomôže pri odčítaní pozadia obrázku, ako aj premenlivej svietivosti počas dňa v autobuse.

Hlavným cieľom návrhu je vytvoriť robustný a konfigurovateľný model na odhad preplnenosti a sprístupnenie výsledkov obyvateľstvu prostredníctvom smartfónov.

Krok 1: Materiály

Materiál potrebný na projekt je nasledujúci:

1 x Dragon Board 410c;

1 x USB kamera;

1 x smartphone pre Android;

Krok 2: Nainštalujte Linaro do Dragonboard 410c

Nainštalujte Linaro do Dragonboard 410c
Nainštalujte Linaro do Dragonboard 410c
Nainštalujte Linaro do Dragonboard 410c
Nainštalujte Linaro do Dragonboard 410c

Nainštalujte Linaro 17.09 na DragonBoard 410c podľa pokynov v nižšie uvedenom odkaze. Odporúčame nainštalovať Linaro 17.09 na podporu jadra pre GPS.

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

Krok 3: Krok 2: Nainštalujte si knižnice a stiahnite si zdrojový kód z GitHub

Krok 2: Nainštalujte si knižnice a stiahnite si zdrojový kód z GitHub
Krok 2: Nainštalujte si knižnice a stiahnite si zdrojový kód z GitHub

Cambus má modulárnu architektúru a návrh kódu. Je možné kódovať vlastný algoritmus strojového učenia, prejsť na inú cloudovú službu a vytvárať si vlastné používateľské aplikácie.

Na spustenie projektu cambus si najskôr musíte stiahnuť zdrojový kód z github (https://github.com/bmonteiro00/cambus). Nainštalujte python (Cambus bol režim, ktorý bežal na verzii 2.7 a> 3.x) a nasledujúce knižnice pomocou 'pip' (sudo apt-get install python-pip). Bude potrebné nainštalovať veľa knižníc do systému Linaro (Tiež sa odporúča vytvoriť virtuálne prostredie - pip install virtualenv - aby sa izoloval systém Cambus od SO). Nainštalujte prosím nasledujúce knižnice:

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

Hlavný program bol rozdelený do tried:

  • CamBus - hlavná trieda;
  • Senzor - trieda na získavanie údajov, ako je poloha GPS, teplota, CO2.
  • Counter - trieda s algoritmom spracovania obrazu.

Uistite sa, že sú nainštalované všetky knižnice, a spustite python CamBus_v1.py.

Krok 4: Nastavenie AWS IoT Core, DynamoDB

Nastavenie AWS IoT Core, DynamoDB
Nastavenie AWS IoT Core, DynamoDB
Nastavenie AWS IoT Core, DynamoDB
Nastavenie AWS IoT Core, DynamoDB
Nastavenie AWS IoT Core, DynamoDB
Nastavenie AWS IoT Core, DynamoDB

Jadro AWS IoT sme použili ako brokera MQTT s protokolmi TLS a X509 a NoSQL a DynamoDB na zaznamenávanie údajov. Na https://aws.amazon.com/free si budete musieť vytvoriť účet.) Ďalej budete musieť pri vytváraní veci a integrácii s Dynamom vykonať nasledujúce kroky:

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

Krok 5: Nastavte rozhrania API Twilio a Dweet

Nastavte rozhrania API Twilio a Dweet
Nastavte rozhrania API Twilio a Dweet
Nastavte rozhrania API Twilio a Dweet
Nastavte rozhrania API Twilio a Dweet

Bola zriadená aj služba Twilio SMS. Pokyny na dokončenie tohto kroku nájdete na nižšie uvedenej adrese URL:

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

Integrácia medzi aplikáciou pre Android a systémom sa uskutočnila prostredníctvom platformy REST, ktorá používa platformu Dweet. Nie je potrebná žiadna registrácia.

dweet.io/

Krok 6: Výzvy

Počas nášho vývoja sme čelili mnohým výzvam, od techník OpenCV po platformu AWS. Rozhodli sme sa kódovať v Pythone, aby sme ušetrili čas pri vývoji v C/C ++. Počas nášho vývoja len základné metódy Opencv, ako napríklad:

• cv2. GaussianBlur (..)

• cv2.threshold (..)

• cv2.morphologyEx (..)

• cv2.contourArea (..)

• cv2.findContours (..)

Tieto základné metódy nestačili na dosiahnutie dobrej kvality pri zisťovaní osôb. Použili sa scenáre s trasúcim sa videom ML (Machine Learning). Preto sme sa rozhodli použiť knižnicu strojového učenia OpenCV a dostali sme ďalší problém, pretože nájsť dobrý vstup údajov pre algoritmus ML bol problém, ktorý sme strávili mnoho dní. Použili sme algoritmus OpenCV SVM, ale nefungoval. Použili sme OpenCV Naive Bayses a tento fungoval dobre. Pokúsili sme sa použiť neurónové siete Tensorflow a CNN, ale zatiaľ sa nám to nepodarilo. CNN používa veľa výpočtového výkonu, čo sme nemali. Použitie OpenCV ML a základov metód OpenCV nám pomohlo dosiahnuť dobrú mieru detekcie ľudí. Napriek tomu pre každý typ videa musíme prispôsobiť parametre OpenCV, aby sme dosiahli dobrú mieru detekcie ľudí a vyhli sa falošným pozitívam. V polovici týchto dvoch mesiacov sme vyvinuli našu prvú myšlienku vytvoriť centrum zberu údajov, nie iba počet pasažierov a poloha GPS. Rozhodli sme sa nezhromažďovať údaje pomocou iných senzorov, ako je teplota a podobne. Vytvorili sme súbor.ini na parametrizáciu aplikácie a jej konfiguráciu. Na súbore Cambus.ini môžete aplikáciu nakonfigurovať mnohými spôsobmi.

Krok 7: Výsledky a budúca práca

Ako vidíte na videu, počítadlo funguje presne. Modré čiary označujú vstupný limit a červené čiary výstupný limit. V tomto prípade bolo na simuláciu použité video, pretože sme ho nemohli nasadiť do autobusu.

Majte na pamäti, že je potrebné vykonať určité zmeny vo vašich podmienkach týkajúcich sa veľkosti videa, uhla kamery, svetelnosti atď. Každý typ videa musí mať prispôsobenie svojim vlastným parametrom, ako napríklad pozadie odsávania jadra opencv atď.

Zmeňte tiež premenné na cambus.ini, ktoré označujú makléra MQTT a podobne.

V budúcich implementáciách uvažujeme o pridaní senzorov, napríklad teploty, vlhkosti a CO2 do systému. Cieľom je získať údaje o mestách a sprístupniť ich komunite.

Nasleduje zoznam ďalších krokov, ktoré môžete zlepšiť projekt:

  • Opíšte kód pomocou C/C ++;
  • Vylepšiť algoritmus ML;
  • Zopakujte faktor pythonového kódu;
  • Nasadenie do autobusu;

Radi by sme poďakovali spoločnostiam Embarcados a Qualcomm za všetku poskytnutú podporu.

Spolupracovníci:

Bruno Monteiro - [email protected]

Kleber Drobowok - [email protected]

Vinicius de Oliveira - [email protected]

Krok 8: Referencie

[1]

[2]

[3]

[4]

[5]

Odporúča: