Obsah:

Cambus - systém sběru dat v městské autobusové dopravě: 8 kroků
Cambus - systém sběru dat v městské autobusové dopravě: 8 kroků

Video: Cambus - systém sběru dat v městské autobusové dopravě: 8 kroků

Video: Cambus - systém sběru dat v městské autobusové dopravě: 8 kroků
Video: Edge Server Computing Demystified: IT Admins and the Network Revolution 2024, Listopad
Anonim
Cambus - systém sběru dat v městské autobusové dopravě
Cambus - systém sběru dat v městské autobusové dopravě

Mezi problémy a obtížemi známými ve veřejné dopravě chybí obyvatelstvu informace v reálném čase a s nejmenší asertivitou. Přeplněnost autobusů veřejné dopravy odhání uživatele, kteří dávají přednost používání vlastních vozidel, přestože jsou stále v provozu celé hodiny. Pokud jsou uživateli v reálném čase k dispozici informace v reálném čase, například počet autobusů, může si vybrat, zda bude čekat na další autobus, nebo se bude pohybovat autobusem nebo použije vlastní vozidlo. Díky možnosti volby je veřejná doprava pro uživatele atraktivnější volbou.

Počítání nebo odhadování lidí v interiéru lze provádět mnoha způsoby, mezi nejčastěji používané patří:

  • Termální obrazy;
  • Počítačové vidění;
  • Čítač obličeje;

Mezi několik obtíží při odhadování lidí v prostředí využívajícím počítačové vidění patří tyto hlavní:

  • Okluze lidí;
  • Invertující osvětlení;
  • Statická okluze, tedy lidé za objekty;
  • Úhel kamery vůči prostředí;

Úkolem pro tento projekt je znát správný úhel kamery, který nejlépe pomůže při odečítání pozadí obrázku, stejně jako proměnné světelnosti během dne uvnitř autobusu.

Hlavním cílem návrhu je vytvořit robustní a konfigurovatelný model pro odhad přeplněnosti a zpřístupnění výsledků obyvatelstvu prostřednictvím chytrých telefonů.

Krok 1: Materiály

Materiál potřebný pro projekt je následující:

1 x Dragon Board 410c;

1 x USB kamera;

1 x chytrý telefon Android;

Krok 2: Nainstalujte Linaro do Dragonboard 410c

Nainstalujte Linaro do Dragonboard 410c
Nainstalujte Linaro do Dragonboard 410c
Nainstalujte Linaro do Dragonboard 410c
Nainstalujte Linaro do Dragonboard 410c

Podle pokynů na níže uvedeném odkazu nainstalujte Linaro 17.09 na DragonBoard 410c. Pro podporu jádra pro GPS doporučujeme nainstalovat Linaro 17.09.

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

Krok 3: Krok 2: Nainstalujte si knihovny a stáhněte si zdrojový kód z GitHubu

Krok 2: Nainstalujte si knihovny a stáhněte si zdrojový kód z GitHubu
Krok 2: Nainstalujte si knihovny a stáhněte si zdrojový kód z GitHubu

Cambus má modulární architekturu a návrh kódu. Je možné kódovat vlastní algoritmus strojového učení, přejít na jinou cloudovou službu a vytvářet vlastní uživatelské aplikace.

Chcete -li spustit projekt cambus, musíte si nejprve stáhnout zdrojový kód z github (https://github.com/bmonteiro00/cambus). Nainstalujte python (Cambus byl režim pro verison 2.7 a> 3.x) a následující knihovny pomocí 'pip' (sudo apt-get install python-pip). Bude nutné nainstalovat spoustu knihoven v systému Linaro (Také se doporučuje vytvořit virtuální prostředí - pip install virtualenv - za účelem izolace systému Cambus od SO). Nainstalujte si prosím následující knihovny:

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

Hlavní program byl rozdělen do tříd:

  • CamBus - hlavní třída;
  • Senzor - třída pro získávání dat, jako je poloha GPS, teplota, Co2.
  • Counter - třída s algoritmem zpracování obrazu.

Ujistěte se, že jsou nainstalovány všechny knihovny, a spusťte python CamBus_v1.py.

Krok 4: Nastavení AWS IoT Core, DynamoDB

Nastavení AWS IoT Core, DynamoDB
Nastavení AWS IoT Core, DynamoDB
Nastavení AWS IoT Core, DynamoDB
Nastavení AWS IoT Core, DynamoDB
Nastavení AWS IoT Core, DynamoDB
Nastavení AWS IoT Core, DynamoDB

Pro protokolování dat jsme použili jádro AWS IoT jako broker MQTT s TLS a X509 a NoSQL a DynamoDB. Budete si muset vytvořit účet na https://aws.amazon.com/free.). Dále budete muset při vytváření věci a integraci s Dynamem provést následující kroky:

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

Krok 5: Nastavení rozhraní Twilio a Dweet API

Nastavte rozhraní Twilio a Dweet API
Nastavte rozhraní Twilio a Dweet API
Nastavte rozhraní Twilio a Dweet API
Nastavte rozhraní Twilio a Dweet API

Byla také zřízena služba Twilio SMS. Pokyny k dokončení tohoto kroku naleznete na níže uvedené adrese URL:

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

Integrace mezi aplikací pro Android a systémem proběhla prostřednictvím platformy REST využívající platformu Dweet. Není nutná registrace.

dweet.io/

Krok 6: Výzvy

Během našeho vývoje jsme čelili mnoha výzvám, počínaje technikami OpenCV až po platformu AWS. Rozhodli jsme se kódovat pomocí Pythonu, abychom ušetřili čas při vývoji v C/C ++. Během našeho vývoje byly použity pouze základní metody Opencv, jako například:

• cv2. GaussianBlur (..)

• cv2.threshold (..)

• cv2.morphologyEx (..)

• cv2.contourArea (..)

• cv2.findContours (..)

Tyto základní metody nestačily k dosažení dobré kvality při detekci osob. Byly použity scénáře s roztřeseným videem ML (Machine Learning). Rozhodli jsme se tedy použít knihovnu strojového učení OpenCV a máme další problém, protože najít dobrý vstup dat pro algoritmus ML byl problém, který jsme strávili mnoho dní. Použili jsme algoritmus OpenCV SVM, ale nefungoval. Použili jsme OpenCV Naive Bayses a tento fungoval dobře. Zkoušeli jsme použít neurální sítě Tensorflow a CNN, ale prozatím se nám to nepodařilo. CNN využívá mnoho výpočetního výkonu, což jsme neměli. Použití OpenCV ML a základů metod OpenCV nám pomohlo dosáhnout dobré míry detekce lidí. Nicméně pro každý typ videa musíme přizpůsobit parametry OpenCV, abychom dosáhli dobré míry detekce lidí a vyhnuli se falešným poplachům. V polovině těchto dvou měsíců jsme vyvinuli naši první myšlenku udělat centrum pro sběr dat, nikoli pouze počet cestujících a poloha GPS. Rozhodli jsme se, že nebudeme shromažďovat data pomocí jiných senzorů, jako je teplota atd. Vytvořili jsme soubor.ini, který umožňuje parametrizaci aplikace a její konfiguraci. Na souboru Cambus.ini můžete aplikaci konfigurovat mnoha způsoby.

Krok 7: Výsledky a budoucí práce

Jak vidíte na videu, počítadlo funguje přesně. Modré čáry označují vstupní limit a červené čáry výstupní limit. V tomto případě bylo pro simulaci použito video, protože jsme jej nemohli nasadit do autobusu.

Uvědomte si, že ve vašem stavu musí být provedena určitá změna týkající se velikosti videa, úhlu kamery, světelnosti atd. Každý typ videa musí mít přizpůsobení vlastních parametrů, jako je pozadí odsávání jádra opencv atd.

Změňte prosím také proměnné na cambus.ini, označující brokera MQTT a tak dále.

V budoucích implementacích uvažujeme o přidání senzorů, například teploty, vlhkosti a CO2 do systému. Cílem je získat data po městech a zpřístupnit je komunitě.

Následuje výčet dalších kroků, které můžete pro vylepšení projektu:

  • Přepište kód pomocí C/C ++;
  • Vylepšit algoritmus ML;
  • Znovu faktorujte kód pythonu;
  • Nasazení do autobusu;

Chtěli bychom poděkovat Embarcados a Qualcomm za veškerou poskytnutou podporu.

Spolupracovníci:

Bruno Monteiro - [email protected]

Kleber Drobowok - [email protected]

Vinicius de Oliveira - [email protected]

Krok 8: Reference

[1]

[2]

[3]

[4]

[5]

Doporučuje: