Sisällysluettelo:
- Vaihe 1: Materiaalit
- Vaihe 2: Asenna Linaro Dragonboard 410c: hen
- Vaihe 3: Vaihe 2: Asenna kirjastot ja lataa lähdekoodi GitHubista
- Vaihe 4: AWS IoT Core, DynamoDB: n käyttöönotto
- Vaihe 5: Asenna Twilio- ja Dweet -sovellusliittymät
- Vaihe 6: Haasteet
- Vaihe 7: Tulokset ja tuleva työ
- Vaihe 8: Viitteet
Video: Cambus - Tiedonkeruujärjestelmä kaupunkibussissa: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Joukkoliikenteessä tunnetuista ongelmista ja vaikeuksista väestöllä ei ole reaaliaikaista tietoa ja vähiten vakuuttavaa. Julkisen liikenteen linja -autojen ruuhkautuminen ajaa pois käyttäjät, jotka haluavat mieluummin käyttää omia ajoneuvojaan, vaikka ne ovat edelleen liikenteessä tuntikausia. Jos reaaliaikaiset tiedot, kuten linja-autojen määrä, ovat käyttäjän helposti saatavilla, hän voi valita, odottavatko seuraavat bussit vai liikkuvatko bussilla vai käyttävätkö omaa ajoneuvoa. Valinnanvara tekee julkisesta liikenteestä houkuttelevamman vaihtoehdon käyttäjälle.
Ihmisten laskeminen tai arvioiminen sisätiloissa voidaan tehdä monin tavoin, joista yleisimmin työskentelevät ovat:
- Lämpökuvat;
- Konenäkö;
- Face laskuri;
Tärkeimpiä niistä monista vaikeuksista on arvioida ihmisiä ympäristössä tietokonenäön avulla:
- Ihmisten tukokset;
- Käänteinen valaistus;
- Staattinen tukos, eli ihmiset esineiden takana;
- Kameran kulma ympäristöön nähden;
Tämän projektin haasteena on tietää kameran oikea kulma, joka auttaa parhaiten vähentämään kuvan taustaa, sekä vaihteleva kirkkaus päivän aikana väylän sisällä.
Ehdotuksen päätavoitteena on luoda vankka ja konfiguroitava malli ylikuormituksen arvioimiseksi ja tulosten saattamiseksi väestön saataville älypuhelimien kautta.
Vaihe 1: Materiaalit
Hankkeessa tarvittava materiaali on seuraava:
1 x Dragon Board 410c;
1 x USB -kamera;
1 x älypuhelin Android;
Vaihe 2: Asenna Linaro Dragonboard 410c: hen
Asenna Linaro 17.09 DragonBoard 410c -laitteeseen noudattamalla alla olevan linkin ohjeita. Suosittelemme Linaro 17.09: n asentamista GPS -ytimen tukemiseen.
www.96boards.org/documentation/consumer/dr…
Vaihe 3: Vaihe 2: Asenna kirjastot ja lataa lähdekoodi GitHubista
Cambuksella on modulaarinen arkkitehtuuri ja koodisuunnittelu. On mahdollista koodata oma koneoppimisalgoritmi, vaihtaa toiseen pilvipalveluun ja luoda omia käyttäjäsovelluksia.
Jos haluat suorittaa cambus -projektin, sinun on ensin ladattava lähdekoodi githubista (https://github.com/bmonteiro00/cambus). Asenna python (Cambus oli tilassa, jossa se toimi verison 2.7 ja> 3.x) ja seuraavat kirjastot käyttämällä 'pip' (sudo apt-get install python-pip). Se on asennettava joukko kirjastoja Linaro -järjestelmään (On myös suositeltavaa luoda virtuaalinen ympäristö - pip install virtualenv - Cambus -järjestelmän eristämiseksi väitetiedoksiannosta). Asenna seuraavat kirjastot:
- pip asenna paho-mqtt
- pip asenna numpy
- pip asenna opencv-python
- pip asenna opencv-contrib-python
- pip asenna twilio
- pip asenna matplotlib
Pääohjelma jaettiin luokkiin:
- CamBus - pääluokka;
- Anturi - luokka, jolla saadaan tietoja, kuten GPS -sijainti, lämpötila, hiilidioksidi.
- Laskuri - luokka kuvankäsittelyalgoritmilla.
Varmista, että kaikki kirjastot on asennettu, ja suorita python CamBus_v1.py.
Vaihe 4: AWS IoT Core, DynamoDB: n käyttöönotto
Käytimme AWS IoT -ydintä MQTT -välittäjänä TLS: n ja X509: n sekä NoSQL: n ja DynamoDB: n kanssa tietojen kirjaamiseen, sinun on luotava tili osoitteessa https://aws.amazon.com/free.). Seuraavaksi sinun on luotava asia ja integroitava se Dynamoon seuraavasti:
docs.aws.amazon.com/iot/latest/developergu…
Vaihe 5: Asenna Twilio- ja Dweet -sovellusliittymät
Myös Twilio -tekstiviestipalvelu perustettiin. Katso ohjeet tämän vaiheen suorittamiseen alla olevasta URL -osoitteesta:
www.twilio.com/docs/iam/api/account
Android -sovelluksen ja järjestelmän välinen integraatio tehtiin RESTin avulla Dweet -alustalla.
dweet.io/
Vaihe 6: Haasteet
Kehityksemme aikana kohtasimme monia haasteita, alkaen OpenCV -tekniikoista AWS -alustaan. Päätimme koodata Pythonilla säästääksemme aikaa C/C ++: n kehittämisessä. Kehityksemme aikana vain perus Opencv -menetelmät, kuten:
• cv2. GaussianBlur (..)
• cv2.kynnys (..)
• cv2.morphologyEx (..)
• cv2.contourArea (..)
• cv2.findContours (..)
Nämä perusmenetelmät eivät riittäneet hyvään laatuun ihmisten havaitsemisessa. Käytettiin skenaarioita, joissa oli värisevä video ML (Machine Learning). Joten päätimme käyttää OpenCV -koneoppimiskirjastoa ja saimme uuden ongelman, koska hyvän datatulon löytäminen ML -algoritmille oli ongelma, jonka vietimme monta päivää. Olemme käyttäneet OpenCV SVM -algoritmia, mutta emme toimineet. Käytimme OpenCV Naive Baysesia ja tämä toimi OK. Olemme yrittäneet käyttää Tensorflow- ja CNN -hermoverkkoja, mutta emme saaneet sitä aikaan. CNN käyttää paljon prosessointitehoa, mitä meillä ei ollut. Jokaisen videotyypin kohdalla meidän on kuitenkin mukautettava OpenCV: n parametreja, jotta ihmiset voidaan tunnistaa hyvin ja välttää vääriä positiivisia tuloksia. Näiden kahden kuukauden puolivälissä kehitimme ensimmäisen ajatuksemme tehdä tiedonkeruukeskus vain matkustajamäärä ja GPS -sijainti. Päätimme kerätä tietoja ei käyttämällä muita antureita, kuten lämpötilaa ja niin edelleen. Cambus.ini -tiedostossa voit määrittää sovelluksen monin tavoin.
Vaihe 7: Tulokset ja tuleva työ
Kuten videosta näkyy, laskuri toimii tarkasti. Siniset viivat merkitsevät tulorajan ja punainen viiva ulostulorajan. Tässä tapauksessa videota käytettiin simulointiin, koska emme voineet ottaa sitä väylään.
Muista, että olosuhteisiisi on tehtävä muutoksia videon koon, kamerakulman, kirkkauden jne. Suhteen. Jokaisen videotyypin on oltava sen omien parametrien mukauttaminen, kuten opencv -ytimen imutausta ja niin edelleen.
Muuta myös muuttujia osoitteessa cambus.ini, mikä osoittaa MQTT -välittäjän ja niin edelleen.
Harkitsemme tulevissa toteutuksissa antureiden, kuten lämpötilan, kosteuden ja CO2: n, lisäämistä järjestelmään. Ajatuksena on saada tietoa kaupungeista ympäri ja asettaa ne yhteisön saataville.
Seuraavassa luetellaan seuraavat vaiheet, joilla voit parantaa projektia:
- Kirjoita koodi uudelleen käyttämällä C/C ++;
- Paranna ML -algoritmia;
- Re-factor python -koodi;
- Käyttöönotto linja -autoon;
Haluamme kiittää Embarcadosia ja Qualcommia kaikesta tuesta.
Yhteistyökumppanit:
Bruno Monteiro - [email protected]
Kleber Drobowok - [email protected]
Vinicius de Oliveira - [email protected]
Vaihe 8: Viitteet
[1]
[2]
[3]
[4]
[5]
Suositeltava:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen