INHOUDSOPGAWE:

Cambus - stelsel van data -insameling op stedelike bus: 8 stappe
Cambus - stelsel van data -insameling op stedelike bus: 8 stappe

Video: Cambus - stelsel van data -insameling op stedelike bus: 8 stappe

Video: Cambus - stelsel van data -insameling op stedelike bus: 8 stappe
Video: Nursing Student's Last Moments Recorded On Video - The Murder of Michelle Le | DEEP DIVE 2024, November
Anonim
Cambus - stelsel van data -insameling op stedelike bus
Cambus - stelsel van data -insameling op stedelike bus

Onder die probleme en probleme wat met openbare vervoer bekend is, ontbreek die bevolking inligting oor real -time en met die minste selfgeldigheid. Die oorvol busse met openbare vervoer dryf gebruikers weg, wat verkies om hul eie voertuie te gebruik, al is hulle nog ure lank in die verkeer. As intydse inligting, soos die aantal busse, maklik vir 'n gebruiker beskikbaar is, kan hy kies of hy vir die volgende bus wil wag, of om met die bus te ry of 'n eie voertuig te gebruik. Die keuse van die keuse maak openbare vervoer 'n aantrekliker opsie vir die gebruiker.

Om mense binne te tel of te skat, kan op baie maniere gedoen word, waaronder die algemeenste:

  • Termiese beelde;
  • Rekenaarvisie;
  • Gesigsteller;

Onder die verskeie probleme om mense in 'n omgewing te skat wat rekenaarvisie gebruik, is die belangrikste:

  • Afsluitings van mense;
  • Omgekeerde beligting;
  • Statiese okklusie, dit wil sê mense agter voorwerpe;
  • Kamerahoek na omgewing;

'N Uitdaging vir hierdie projek is om die regte hoek van die kamera te ken wat die beste sal help met die aftrekking van die agtergrond van die beeld, sowel as die veranderlike helderheid gedurende die dag in die bus.

Die hoofdoel van die voorstel is om 'n robuuste en konfigureerbare model te skep om oorbevolking te skat en die resultate deur slimfone aan die bevolking beskikbaar te stel.

Stap 1: materiaal

Die materiaal wat nodig is vir die projek is die volgende:

1 x Dragon Board 410c;

1 x USB -kamera;

1 x Android -slimfoon;

Stap 2: Installeer Linaro in Dragonboard 410c

Installeer Linaro in Dragonboard 410c
Installeer Linaro in Dragonboard 410c
Installeer Linaro in Dragonboard 410c
Installeer Linaro in Dragonboard 410c

Volg die instruksies op die onderstaande skakel om Linaro 17.09 op die DragonBoard 410c te installeer. Ons beveel aan dat u Linaro 17.09 installeer vir kernondersteuning vir GPS.

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

Stap 3: Stap 2: Installeer biblioteke en laai die bronkode af van GitHub

Stap 2: Installeer biblioteke en laai die bronkode af van GitHub
Stap 2: Installeer biblioteke en laai die bronkode af van GitHub

Cambus het 'n modulêre argitektuur en kode -ontwerp. Dit is moontlik om u eie algoritme vir masjienleer te kodeer, na 'n ander wolkdiens oor te skakel en u eie gebruikersprogramme te skep.

Om die cambus -projek uit te voer, moet u eers die bronkode aflaai van github (https://github.com/bmonteiro00/cambus). Installeer python (Cambus werk af op weergawe 2.7 en> 3.x) en die volgende biblioteke met 'pip' (sudo apt-get install python-pip). Dit sal nodig wees om 'n klomp biblioteke in die Linaro -stelsel te installeer (dit word ook aanbeveel om 'n virtuele omgewing te skep - pip install virtualenv - om die Cambus -stelsel van die SO te isoleer). Installeer asseblief die volgende biblioteke:

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

Die hoofprogram was verdeel in klasse:

  • CamBus - die hoofklas;
  • Sensor - 'n klas om data te verkry, soos GPS -posisie, temperatuur, Co2.
  • Teenklas met beeldverwerkingsalgoritme.

Maak seker dat alle biblioteke geïnstalleer is en voer python CamBus_v1.py uit.

Stap 4: Stel AWS IoT Core, DynamoDB op

Stel AWS IoT Core, DynamoDB op
Stel AWS IoT Core, DynamoDB op
Stel AWS IoT Core, DynamoDB op
Stel AWS IoT Core, DynamoDB op
Stel AWS IoT Core, DynamoDB op
Stel AWS IoT Core, DynamoDB op

Ons het die AWS IoT -kern gebruik as 'n MQTT -makelaar met TLS en X509 en NoSQL en DynamoDB om data aan te meld. U sal 'n rekening moet skep op https://aws.amazon.com/free.) Volgende moet u die onderstaande stappe volg om 'n ding te skep en met Dynamo te integreer:

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

Stap 5: Stel Twilio en Dweet API's op

Stel Twilio en Dweet API's op
Stel Twilio en Dweet API's op
Stel Twilio en Dweet API's op
Stel Twilio en Dweet API's op

Die Twilio SMS -diens is ook opgestel. Sien die onderstaande URL vir instruksies om hierdie stap te voltooi:

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

Die integrasie tussen die Android -app en die stelsel is deur middel van REST op die Dweet -platform gedoen. Geen aanmelding nodig nie.

dweet.io/

Stap 6: Uitdagings

Tydens ons ontwikkeling het ons baie uitdagings gehad, van OpenCV -tegnieke tot AWS -platform. Ons het besluit om met Python te kodeer om tyd te bespaar om in C/C ++ te ontwikkel. Tydens ons ontwikkeling is slegs die basiese Opencv -metodes soos:

• cv2. GaussianBlur (..)

• cv2.drempel (..)

• cv2.morphologyEx (..)

• cv2.contourArea (..)

• cv2.findContours (..)

Hierdie basiese metodes was nie genoeg om 'n goeie kwaliteit te bereik om mense op te spoor nie. Scenario's met wankelrige video ML (Machine Learning) is gebruik. Ons het besluit om die OpenCV -masjienleerbiblioteek te gebruik, en ons het nog 'n probleem, want om 'n goeie data -invoer vir ML -algoritme te vind, was 'n probleem wat ons baie dae deurgebring het. Ons het OpenCV SVM -algoritme gebruik, maar dit het nie gewerk nie. Ons het OpenCV Naive Bayses gebruik en hierdie een het goed gewerk. Ons het probeer om Tensorflow- en CNN -neurale netwerke te gebruik, maar ons het dit vir eers nie laat gebeur nie. CNN gebruik baie verwerkingskrag, iets wat ons nie gehad het nie. Met behulp van OpenCV ML en die basiese beginsels van OpenCV -metodes het ons gehelp om 'n goeie opsporingstempo te bereik. Nietemin moet ons vir elke tipe vídeo die parameters van OpenCV aanpas om 'n goeie opsporingstempo te bereik en vals positiewe te vermy. In die middel van hierdie twee maande het ons ons eerste idee ontwikkel om 'n sentrum van data -insameling te doen. slegs die aantal passasiers en GPS -ligging. Ons het besluit om nie data te versamel met behulp van ander sensors soos temperatuur ensovoorts. Ons het 'n.ini -lêer geskep om die toepassing te parameteriseer en konfigureerbaar te maak. Op die Cambus.ini -lêer kan u die toepassing op baie maniere instel.

Stap 7: Resultate en toekomstige werk

Soos u in die video kan sien, werk die toonbank akkuraat. Die blou lyne dui die invoerlimiet aan en die rooi lyn die uitsetlimiet. In hierdie geval is 'n video gebruik om te simuleer omdat ons dit nie in 'n bus kon plaas nie.

Hou in gedagte dat daar 'n paar veranderinge aan u toestand aangebring moet word ten opsigte van die videogrootte, kamerahoek, helderheid, ens. Elke tipe video moet sy eie parameters aanpas, soos opencv kern -suig agtergrond, ensovoorts.

Verander ook veranderlikes op cambus.ini, wat aandui dat MQTT -makelaar en so meer.

Ons oorweeg dit in die toekoms om sensors by te voeg, byvoorbeeld temperatuur, humiditeit en CO2 in die stelsel. Die idee is om data in die stede te kry wat dit vir die gemeenskap beskikbaar stel.

Hierna gee ons 'n opsomming van die volgende stappe om die projek te verbeter:

  • Skryf die kode weer met behulp van C/C ++;
  • ML algoritme te verbeter;
  • Herfaktor luislangkode;
  • Ontplooiing in 'n bus;

Ons bedank Embarcados en Qualcomm vir al die ondersteuning.

Medewerkers:

Bruno Monteiro - [email protected]

Kleber Drobowok - [email protected]

Vinicius de Oliveira - [email protected]

Stap 8: Verwysings

[1]

[2]

[3]

[4]

[5]

Aanbeveel: