Cuprins:
- Pasul 1: Materiale
- Pasul 2: Instalați Linaro în Dragonboard 410c
- Pasul 3: Pasul 2: Instalați bibliotecile și descărcați codul sursă din GitHub
- Pasul 4: Configurarea AWS IoT Core, DynamoDB
- Pasul 5: Configurați API-urile Twilio și Dweet
- Pasul 6: Provocări
- Pasul 7: Rezultate și lucrări viitoare
- Pasul 8: Referințe
Video: Cambus - Sistem de colectare a datelor pe autobuzul urban: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Printre problemele și dificultățile cunoscute în transportul public, populația nu are informații în timp real și cu cea mai mică asertivitate. Supraaglomerarea autobuzelor de transport public îi alungă pe utilizatori, care preferă să-și folosească propriile vehicule, chiar dacă sunt încă în trafic ore în șir. Dacă informațiile în timp real, cum ar fi numărul de autobuze, sunt ușor accesibile unui utilizator, acesta poate alege dacă să aștepte următorul autobuz sau să se deplaseze cu autobuzul sau să folosească un vehicul propriu. Puterea de alegere face ca transportul public să fie o opțiune mai atractivă pentru utilizator.
Numărarea sau estimarea persoanelor în interior se poate face în mai multe moduri, printre care cei mai frecvent angajați sunt:
- Imagini termice;
- Viziune computerizată;
- Contor de față;
Printre diferitele dificultăți de a estima oamenii într-un mediu care utilizează viziunea pe computer, principalele sunt:
- Ocluziile oamenilor;
- Iluminare inversă;
- Ocluzia statică, adică oamenii din spatele obiectelor;
- Unghiul camerei cu mediul;
O provocare pentru acest proiect este de a cunoaște unghiul corect al camerei care va ajuta cel mai bine la scăderea fundalului imaginii, precum și luminozitatea variabilă în timpul zilei în interiorul autobuzului.
Obiectivul principal al propunerii este de a crea un model robust și configurabil pentru a estima supraaglomerarea și a pune la dispoziția populației rezultatele prin intermediul smartphone-urilor.
Pasul 1: Materiale
Materialul necesar proiectului este următorul:
1 x Dragon Board 410c;
1 x cameră USB;
1 x smartphone Android;
Pasul 2: Instalați Linaro în Dragonboard 410c
Urmând instrucțiunile de pe linkul de mai jos pentru a instala Linaro 17.09 pe DragonBoard 410c. Vă recomandăm să instalați Linaro 17.09 pentru suportul kernel pentru GPS.
www.96boards.org/documentation/consumer/dr…
Pasul 3: Pasul 2: Instalați bibliotecile și descărcați codul sursă din GitHub
Cambus are o arhitectură modulară și design de cod. Este posibil să vă codificați propriul algoritm de învățare automată, să treceți la alt serviciu cloud și să creați propriile aplicații de utilizator.
Pentru a rula proiectul cambus, mai întâi trebuie să descărcați codul sursă de pe github (https://github.com/bmonteiro00/cambus). Instalați python (Cambus era modul să ruleze pe versiunea 2.7 și> 3.x) și următoarele biblioteci folosind „pip” (sudo apt-get install python-pip). Va fi necesar să instalați o grămadă de biblioteci în sistemul Linaro (De asemenea, se recomandă crearea unui mediu virtual - pip install virtualenv - pentru a izola sistemul Cambus de SO). Vă rugăm să instalați următoarele biblioteci:
- pip instala paho-mqtt
- pip instalează numpy
- pip instalează opencv-python
- pip instalează opencv-contrib-python
- pip instalează twilio
- pip instalează matplotlib
Programul principal a fost împărțit în clase:
- CamBus - clasa principală;
- Senzor - o clasă pentru a obține date precum poziția GPS, temperatura, Co2.
- Contor - clasă cu algoritm de procesare a imaginilor.
Asigurați-vă că toate bibliotecile au fost instalate și executați python CamBus_v1.py.
Pasul 4: Configurarea AWS IoT Core, DynamoDB
Am folosit nucleul AWS IoT ca broker MQTT cu TLS și X509 și NoSQL și DynamoDB pentru a înregistra date. Va trebui să creați un cont la https://aws.amazon.com/free.). Apoi, veți urma pașii de mai jos pentru a crea un lucru și a vă integra cu Dynamo:
docs.aws.amazon.com/iot/latest/developergu…
Pasul 5: Configurați API-urile Twilio și Dweet
De asemenea, a fost înființat serviciul Twilio SMS. Consultați adresa URL de mai jos pentru instrucțiuni pentru a finaliza acest pas:
www.twilio.com/docs/iam/api/account
Integrarea dintre aplicația Android și sistem a fost făcută prin intermediul REST, a folosit platforma Dweet. Nu este necesară înscrierea.
dweet.io/
Pasul 6: Provocări
În timpul dezvoltării noastre, ne-am confruntat cu multe provocări, începând de la tehnicile OpenCV până la platforma AWS. Am decis să codificăm cu Python pentru a economisi timp dezvoltând în C / C ++. În timpul dezvoltării noastre, numai metodele de bază Opencv, cum ar fi:
• cv2. GaussianBlur (..)
• cv2.threshold (..)
• cv2.morphologyEx (..)
• cv2.contourArea (..)
• cv2.findContours (..)
Aceste metode de bază nu au fost suficiente pentru a atinge o calitate bună în detectarea oamenilor. S-au folosit scenarii cu ML video instabil (Machine Learning). Deci, am decis să folosim biblioteca OpenCV de învățare automată și am primit o altă problemă deoarece găsirea unei date de intrare bune pentru algoritmul ML a fost o problemă pe care am petrecut-o multe zile. Am folosit algoritmul OpenCV SVM, dar nu am funcționat. Am folosit OpenCV Naive Bayses și acesta a funcționat OK. Am încercat să folosim rețelele neuronale Tensorflow și CNN, totuși nu am reușit să se întâmple pentru moment. CNN folosește multă putere de procesare, ceva ce nu aveam. Folosirea OpenCV ML și metodele de bază OpenCV ne-au ajutat să atingem o rată bună de detectare a oamenilor. Cu toate acestea, pentru fiecare tip de video trebuie să adaptăm parametrii OpenCV pentru a atinge o rată bună de detectare a persoanelor și pentru a evita falsurile pozitive. La mijlocul acestor două luni am dezvoltat prima noastră idee de a face un centru de colectare a datelor, nu numai numărul de pasageri și locația GPS. Am decis să nu colectăm date folosind alți senzori precum temperatura și așa mai departe. Am creat un fișier.ini pentru a parametrica aplicația și a o face configurabilă. Pe fișierul Cambus.ini puteți configura aplicația în mai multe moduri.
Pasul 7: Rezultate și lucrări viitoare
După cum puteți vedea în videoclip, contorul funcționează cu precizie. Liniile albastre marchează limita de intrare și linia roșie limita de ieșire. În acest caz, un videoclip a fost folosit pentru a simula, deoarece nu am putut să-l implementăm pe un autobuz.
Rețineți că trebuie făcute unele modificări ale stării dvs. în ceea ce privește dimensiunea videoclipului, unghiul camerei, luminozitatea etc. Fiecare tip de videoclip trebuie să fie adaptarea parametrilor proprii, cum ar fi fundalul de aspirare a nucleului opencv și așa mai departe.
Vă rugăm, de asemenea, să modificați variabilele la cambus.ini, indicând brokerul MQTT și așa mai departe.
Avem în vedere implementările viitoare să adăugăm senzori, de exemplu, temperatura, umiditatea și CO2 în sistem. Ideea este de a obține date în jurul orașelor, punându-le la dispoziția comunității.
În continuare enumerăm următorii pași pe care îi puteți face pentru a îmbunătăți proiectul:
- Re-scrieți codul folosind C / C ++;
- Îmbunătățiți algoritmul ML;
- Re-factorizați codul python;
- Implementarea într-un autobuz;
Dorim să mulțumim Embarcados și Qualcomm pentru tot sprijinul acordat.
Colaboratori:
Bruno Monteiro - [email protected]
Kleber Drobowok - [email protected]
Vinicius de Oliveira - [email protected]
Pasul 8: Referințe
[1]
[2]
[3]
[4]
[5]
Recomandat:
Spălați-vă mașina cu terminalul Wio și autobuzul CAN: 7 pași
Hack Your Car With Wio Terminal and CAN Bus: Dacă aveți o oarecare înțelegere a programării CAN Bus și Arduino și doriți să vă hackați mașina, atunci aceste instrumente vă pot oferi o soluție. nu știu, dar acesta este într-adevăr un lucru interesant. Acest pr
Norul înnorat te vindecă (Robotul care evită obstacolele cu funcția de colectare): 8 pași
Norul înnorat te vindecă (Robotul de a evita obstacolele cu funcția de colectare): o mașină inutilă - Arduino Robot
Experiență îmbunătățită cu autobuzul pentru persoanele cu deficiențe de vedere, cu imprimare Arduino și 3D: 7 pași
Experiență îmbunătățită cu autobuzul pentru persoanele cu deficiențe de vedere cu imprimare Arduino și 3D: Cum se poate face transportul public mai simplu pentru persoanele cu deficiențe de vedere? persoanele cu deficiențe de vedere. T
Achiziționarea datelor și sistemul de vizualizare a datelor pentru o bicicletă electrică MotoStudent: 23 de pași
Achiziționarea datelor și sistemul de vizualizare a datelor pentru o bicicletă electrică MotoStudent: un sistem de achiziție de date este o colecție de hardware și software care lucrează împreună pentru a colecta date de la senzori externi, a le stoca și a le procesa ulterior, astfel încât să poată fi vizualizate grafic și analizate, permițând inginerilor să facă
Centrul de colectare a datelor senzorului activat IoT cu ESP8266 și PubNub: 9 pași (cu imagini)
Centrul de colectare a datelor senzorului activat IoT cu ESP8266 și PubNub: Majoritatea tutorialelor de pe ESP8266 sunt fie la nivel de începător (intermitent de la distanță cu un led), fie prea complex pentru cineva care caută ceva de îmbunătățit și actualizat în funcție de abilitățile sale intermitente de led. scopul instructabil de a acoperi acest decalaj la creat