Përmbajtje:

Cambus - Sistemi i Grumbullimit të të Dhënave në Autobusin Urban: 8 Hapa
Cambus - Sistemi i Grumbullimit të të Dhënave në Autobusin Urban: 8 Hapa

Video: Cambus - Sistemi i Grumbullimit të të Dhënave në Autobusin Urban: 8 Hapa

Video: Cambus - Sistemi i Grumbullimit të të Dhënave në Autobusin Urban: 8 Hapa
Video: Bazat e vleresimit dhe ekzaminimit: "Shenjat Jetesore" 2024, Nëntor
Anonim
Cambus - Sistemi i Grumbullimit të të Dhënave në Urban Bus
Cambus - Sistemi i Grumbullimit të të Dhënave në Urban Bus

Ndër problemet dhe vështirësitë e njohura në transportin publik, popullsisë i mungon informacioni në kohë reale dhe me më pak pohim. Mbipopullimi i autobusëve të transportit publik i largon përdoruesit, të cilët preferojnë të përdorin automjetet e tyre, edhe pse janë ende në trafik për orë të tëra. Nëse një informacion në kohë reale, siç është numri i autobusëve, është lehtësisht i disponueshëm për një përdorues, ai mund të zgjedhë nëse do të presë për autobusin tjetër ose do të lëvizë me autobus ose do të përdorë një automjet të tijin. Fuqia e zgjedhjes e bën transportin publik një opsion më tërheqës për përdoruesit.

Numërimi ose vlerësimi i njerëzve brenda shtëpisë mund të bëhet në shumë mënyra, ndër të cilat më të punësuarit janë:

  • Imazhe termike;
  • Vizion kompjuterik;
  • Sportel për fytyrën;

Ndër vështirësitë e shumta për të vlerësuar njerëzit në një mjedis që përdorin vizionin kompjuterik, ato kryesore janë:

  • Mbylljet e njerëzve;
  • Ndriçim përmbysës;
  • Mbyllja statike, domethënë njerëzit pas objekteve;
  • Këndi i kamerës ndaj mjedisit;

Një sfidë për këtë projekt është njohja e këndit të saktë të kamerës që do të ndihmojë më së miri në zbritjen e sfondit të imazhit, si dhe shkëlqimin e ndryshueshëm gjatë ditës brenda autobusit.

Objektivi kryesor i propozimit është të krijojë një model të fuqishëm dhe të konfigurueshëm për të vlerësuar mbipopullimin dhe t'i bëjë rezultatet të disponueshme për popullatën përmes telefonave inteligjentë.

Hapi 1: Materialet

Materiali i nevojshëm për projektin është i mëposhtëmi:

1 x Bordi i Dragoit 410c;

1 x kamera USB;

1 x Smartphone Android;

Hapi 2: Instaloni Linaro në Dragonboard 410c

Instaloni Linaro në Dragonboard 410c
Instaloni Linaro në Dragonboard 410c
Instaloni Linaro në Dragonboard 410c
Instaloni Linaro në Dragonboard 410c

Duke ndjekur udhëzimet në lidhjen më poshtë për të instaluar Linaro 17.09 në DragonBoard 410c. Ne rekomandojmë instalimin e Linaro 17.09 për mbështetjen e kernelit për GPS.

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

Hapi 3: Hapi 2: Instaloni Bibliotekat dhe Shkarkoni Kodin Burimor Nga GitHub

Hapi 2: Instaloni bibliotekat dhe shkarkoni kodin burimor nga GitHub
Hapi 2: Instaloni bibliotekat dhe shkarkoni kodin burimor nga GitHub

Cambus ka një arkitekturë modulare dhe dizajn kodesh. It'sshtë e mundur të kodoni algoritmin tuaj të mësimit të makinerisë, të ndryshoni në shërbimin tjetër cloud dhe të krijoni aplikacionet tuaja të përdoruesit.

Për të drejtuar projektin cambus, së pari duhet të shkarkoni kodin burimor nga github (https://github.com/bmonteiro00/cambus). Instaloni python (Cambus ishte në gjendje të funksiononte në verison 2.7 dhe> 3.x) dhe bibliotekat e mëposhtme duke përdorur 'pip' (sudo apt-get install python-pip). Do të jetë e nevojshme të instaloni një bandë bibliotekash në sistemin Linaro (Gjithashtu, Rekomandohet të krijoni një mjedis virtual - pip install virtualenv - në mënyrë që të izoloni sistemin Cambus nga SO). Ju lutemi, instaloni bibliotekat e mëposhtme:

  • pip instaloni paho-mqtt
  • pip instaloni numpy
  • pip instaloni opencv-python
  • pip instaloni opencv-contrib-python
  • pip instalo twilio
  • pip instaloni matplotlib

Programi kryesor u nda në klasa:

  • CamBus - klasa kryesore;
  • Sensori - një klasë për të marrë të dhëna të tilla si pozicioni GPS, temperatura, Co2.
  • Klasë e kundërt me algoritëm të përpunimit të imazhit.

Sigurohuni që të gjitha bibliotekat janë instaluar dhe ekzekutoni python CamBus_v1.py.

Hapi 4: Vendosja e AWS IoT Core, DynamoDB

Konfigurimi i AWS IoT Core, DynamoDB
Konfigurimi i AWS IoT Core, DynamoDB
Vendosja e AWS IoT Core, DynamoDB
Vendosja e AWS IoT Core, DynamoDB
Konfigurimi i AWS IoT Core, DynamoDB
Konfigurimi i AWS IoT Core, DynamoDB

Ne përdorëm thelbin AWS IoT si një ndërmjetës MQTT me TLS dhe X509 dhe NoSQL dhe DynamoDB për të regjistruar të dhënat. Ju do të duhet të krijoni një llogari në https://aws.amazon.com/free.). Tjetra, do të keni hapat e mëposhtëm për të krijuar një gjë dhe për t'u integruar me Dynamo:

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

Hapi 5: Vendosni API -të Twilio dhe Dweet

Vendosni API -të Twilio dhe Dweet
Vendosni API -të Twilio dhe Dweet
Vendosni API -të Twilio dhe Dweet
Vendosni API -të Twilio dhe Dweet

Shërbimi SMS Twilio u krijua gjithashtu. Shikoni URL -në më poshtë për udhëzime për të përfunduar këtë hap:

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

Integrimi midis aplikacionit android dhe sistemit u bë me anë të REST duke përdorur platformën Dweet. Nuk kërkohet regjistrim.

dweet.io/

Hapi 6: Sfidat

Gjatë zhvillimit tonë u përballëm me shumë sfida, duke filluar nga teknikat OpenCV e deri te platforma AWS. Ne vendosëm të kodojmë me Python në mënyrë që të kursejmë kohë duke u zhvilluar në C/C ++. Gjatë zhvillimit tonë, përdoren vetëm metodat themelore të Opencv, të tilla si:

• cv2. GaussianBlur (..)

• cv2. Pragu (..)

• cv2.morphologyEx (..)

• cv2.contourArea (..)

• cv2.findContours (..)

Këto metoda themelore nuk ishin të mjaftueshme për të arritur një cilësi të mirë në zbulimin e njerëzve. U përdorën skenarë me video lëkundëse ML (Machine Learning). Kështu, ne vendosëm të përdorim bibliotekën e mësimit të makinës OpenCV dhe patëm një problem tjetër sepse gjetja e një hyrjeje të mirë të të dhënave për algoritmin ML ishte një problem që kaluam shumë ditë. Ne kemi përdorur algoritmin OpenCV SVM por nuk kemi punuar. Ne përdorëm OpenCV Naive Bayses dhe ky funksionoi mirë. Ne jemi përpjekur të përdorim rrjetet nervore Tensorflow dhe CNN, megjithatë nuk e bëmë të ndodhë tani për tani. CNN përdor shumë fuqi përpunuese, diçka që ne nuk e kishim. Përdorimi i OpenCV ML dhe metodat bazë të OpenCV na ndihmuan të arrijmë një shkallë të mirë të zbulimit të njerëzve. Sidoqoftë, për secilin lloj video duhet të përshtatim parametrat e OpenCV në mënyrë që të arrijmë një shkallë të mirë të zbulimit të njerëzve dhe të shmangim pozitivët e rremë. Në mes të këtyre dy muajve ne evoluuam idenë tonë të parë për të bërë një qendër të mbledhjes së të dhënave jo vetëm numrin e udhëtarëve dhe vendndodhjen GPS. Ne vendosëm të mbledhim jo të dhëna duke përdorur sensorë të tjerë si temperatura dhe kështu me radhë. Ne krijuam një skedar.ini për të parametruar aplikacionin dhe për ta bërë atë të konfigurueshëm. Në skedarin Cambus.ini mund të konfiguroni aplikacionin në shumë mënyra.

Hapi 7: Rezultatet dhe puna në të ardhmen

Siç mund ta shihni në video, sporteli po punon me saktësi. Linjat blu shënojnë kufirin e hyrjes dhe vija e kuqe kufirin e daljes. Në këtë rast, një video u përdor për të simuluar sepse ne nuk mund ta vendosnim atë në një autobus.

Mbani në mend se disa ndryshime duhet të bëhen në gjendjen tuaj në lidhje me madhësinë e videos, këndin e kamerës, shkëlqimin etj. Çdo lloj video duhet të jetë përshtatja e parametrave të saj, siç është sfondi i thithjes së kernelit opencv dhe kështu me radhë.

Ju lutemi gjithashtu ndryshoni variablat në cambus.ini, duke treguar ndërmjetësin MQTT dhe kështu me radhë.

Ne konsiderojmë në zbatimet e ardhshme shtimin e sensorëve, për shembull, temperaturën, lagështinë dhe CO2 në sistem. Ideja është që të merren të dhëna nëpër qytete duke i bërë ato të disponueshme për komunitetin.

Në vijim ne rendisim hapat e ardhshëm që mund të bëni për të përmirësuar projektin:

  • Rishkruani kodin duke përdorur C/C ++;
  • Përmirësimi i algoritmit ML;
  • Kodi python i ri-faktorit;
  • Vendosja në autobus;

Ne dëshirojmë të falënderojmë Embarcados dhe Qualcomm për të gjithë mbështetjen e dhënë.

Bashkëpunëtorët:

Bruno Monteiro - [email protected]

Kleber Drobowok - [email protected]

Vinicius de Oliveira - [email protected]

Hapi 8: Referencat

[1]

[2]

[3]

[4]

[5]

Recommended: