Բովանդակություն:

Cambus - Քաղաքային ավտոբուսի տվյալների հավաքագրման համակարգ. 8 քայլ
Cambus - Քաղաքային ավտոբուսի տվյալների հավաքագրման համակարգ. 8 քայլ

Video: Cambus - Քաղաքային ավտոբուսի տվյալների հավաքագրման համակարգ. 8 քայլ

Video: Cambus - Քաղաքային ավտոբուսի տվյալների հավաքագրման համակարգ. 8 քայլ
Video: 05.09.23 Special Board of Education Meeting 2024, Նոյեմբեր
Anonim
Cambus - Քաղաքային ավտոբուսի տվյալների հավաքագրման համակարգ
Cambus - Քաղաքային ավտոբուսի տվյալների հավաքագրման համակարգ

Հասարակական տրանսպորտում հայտնի խնդիրների և դժվարությունների շարքում բնակչությունը չունի իրական ժամանակի տեղեկատվություն և նվազագույն ինքնահաստատմամբ: Հասարակական տրանսպորտի ավտոբուսների գերբնակեցումը վանում է այն օգտվողներին, ովքեր նախընտրում են օգտվել սեփական տրանսպորտային միջոցներից, չնայած նրանք դեռ ժամերով երթևեկի մեջ են: Եթե իրական ժամանակի տեղեկատվությունը, օրինակ ՝ ավտոբուսների քանակը, օգտվողին հեշտությամբ հասանելի է, նա կարող է ընտրել ՝ սպասե՞լ հաջորդ ավտոբուսին, թե՞ ավտոբուսով շրջել, թե՞ օգտագործել իր սեփական տրանսպորտը: Ընտրության ուժը հանրային տրանսպորտը դարձնում է ավելի գրավիչ տարբերակ օգտվողի համար:

Ներսում մարդկանց հաշվելը կամ գնահատելը կարող է իրականացվել բազմաթիվ եղանակներով, որոնցից ամենատարածվածներն են.

  • Theերմային պատկերներ;
  • Համակարգչային տեսողություն;
  • Դեմքի հաշվիչ;

Համակարգչային տեսլականն օգտագործող միջավայրում մարդկանց գնահատելու մի քանի դժվարությունների շարքում հիմնականներն են.

  • Մարդկանց խցանումներ;
  • Շրջադարձային լուսավորություն;
  • Ստատիկ խցանում, այսինքն ՝ մարդիկ առարկաների հետևում.
  • Տեսախցիկի անկյունը շրջակա միջավայրի նկատմամբ;

Այս նախագծի մարտահրավերն է տեսախցիկի ճիշտ անկյունը իմանալը, որը լավագույնս կօգնի պատկերի ֆոնի հանումին, ինչպես նաև ավտոբուսի ներսում օրվա ընթացքում փոփոխական լուսավորությանը:

Առաջարկի հիմնական նպատակն է ստեղծել կայուն և կազմաձևվող մոդել `գերբնակեցումը գնահատելու և արդյունքները հասանելի դարձնելու բնակչությանը սմարթֆոնների միջոցով:

Քայլ 1: Նյութեր

Նախագծի համար անհրաժեշտ նյութը հետևյալն է.

1 x Dragon Board 410c;

1 x USB տեսախցիկ;

1 x սմարթֆոն Android;

Քայլ 2: Տեղադրեք Linaro- ն Dragonboard 410c- ում

Տեղադրեք Linaro- ն Dragonboard 410c- ում
Տեղադրեք Linaro- ն Dragonboard 410c- ում
Տեղադրեք Linaro- ն Dragonboard 410c- ում
Տեղադրեք Linaro- ն Dragonboard 410c- ում

Հետևեք ստորև բերված հղման հրահանգներին ՝ Linaro 17.09 -ը DragonBoard 410c- ում տեղադրելու համար: GPS- ի միջուկի աջակցության համար խորհուրդ ենք տալիս տեղադրել Linaro 17.09 -ը:

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

Քայլ 3: Քայլ 2. Տեղադրեք գրադարաններ և ներբեռնեք աղբյուրի կոդը GitHub- ից

Քայլ 2: Տեղադրեք գրադարաններ և ներբեռնեք աղբյուրի կոդը GitHub- ից
Քայլ 2: Տեղադրեք գրադարաններ և ներբեռնեք աղբյուրի կոդը GitHub- ից

Cambus- ն ունի մոդուլային ճարտարապետություն և ծածկագրերի ձևավորում: Հնարավոր է կոդավորել ձեր սեփական մեքենայական ուսուցման ալգորիթմը, անցնել այլ ամպային ծառայության և ստեղծել ձեր սեփական օգտագործողի ծրագրերը:

Cambus նախագիծը գործարկելու համար նախ անհրաժեշտ է ներբեռնել աղբյուրի կոդը github- ից (https://github.com/bmonteiro00/cambus): Տեղադրեք python (Cambus- ը գործարկվեց verison 2.7 և> 3.x- ով) և հետևյալ գրադարանները `օգտագործելով« pip »(sudo apt-get install python-pip): Լինարո համակարգում անհրաժեշտ կլինի տեղադրել մի քանի գրադարաններ (Բացի այդ, խորհուրդ է տրվում ստեղծել վիրտուալ միջավայր - pip install virtualenv - Cambus համակարգը SO- ից մեկուսացնելու համար): Տեղադրեք հետևյալ գրադարանները.

  • pip տեղադրել paho-mqtt
  • pip տեղադրել numpy
  • pip տեղադրել opencv-python
  • pip տեղադրել opencv-contrib-python
  • pip տեղադրել twilio
  • pip տեղադրել matplotlib

Հիմնական ծրագիրը բաժանված էր դասերի.

  • CamBus - հիմնական դասարան;
  • Սենսոր - այնպիսի տվյալների ստացման դաս, ինչպիսիք են GPS դիրքը, ջերմաստիճանը, Co2:
  • Հաշվիչ դաս `պատկերի մշակման ալգորիթմով:

Համոզվեք, որ բոլոր գրադարանները տեղադրված են, և գործարկեք python CamBus_v1.py- ն:

Քայլ 4. AWS IoT Core- ի, DynamoDB- ի կարգավորում

AWS IoT Core- ի, DynamoDB- ի կարգավորում
AWS IoT Core- ի, DynamoDB- ի կարգավորում
AWS IoT Core- ի, DynamoDB- ի կարգավորում
AWS IoT Core- ի, DynamoDB- ի կարգավորում
AWS IoT Core- ի, DynamoDB- ի կարգավորում
AWS IoT Core- ի, DynamoDB- ի կարգավորում

Մենք օգտագործել ենք AWS IoT միջուկը ՝ որպես MQTT բրոքեր ՝ TLS և X509 և NoSQL և DynamoDB տվյալների մուտքագրման համար: Դուք պետք է հաշիվ ստեղծեք https://aws.amazon.com/free հասցեով): Հաջորդը, դուք կունենաք հետևյալ քայլերը ՝ ինչ -որ բան ստեղծելու և Դինամոյի հետ ինտեգրվելու համար.

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

Քայլ 5: Կարգավորեք Twilio և Dweet API- ները

Կարգավորեք Twilio և Dweet API- ները
Կարգավորեք Twilio և Dweet API- ները
Կարգավորեք Twilio և Dweet API- ները
Կարգավորեք Twilio և Dweet API- ները

Ստեղծվեց նաև Twilio SMS ծառայությունը: Այս քայլը կատարելու հրահանգների համար տես ստորև բերված URL- ը:

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

Android հավելվածի և համակարգի միջև ինտեգրումը կատարվել է REST- ի միջոցով ՝ օգտագործելով Dweet հարթակը: Գրանցում չի պահանջվում:

dweet.io/

Քայլ 6: Մարտահրավերներ

Մեր զարգացման ընթացքում մենք հանդիպեցինք բազմաթիվ մարտահրավերների ՝ սկսած OpenCV տեխնիկայից մինչև AWS հարթակ: Մենք որոշեցինք ծածկագրել Python- ի հետ `C/C ++ - ում զարգացող ժամանակը խնայելու համար: Մեր զարգացման ընթացքում միայն Opencv- ի հիմնական մեթոդները, ինչպիսիք են.

• cv2. GaussianBlur (..)

• cv2. Շեմ (..)

• cv2.morphologyEx (..)

• cv2.contourArea (..)

• cv2.findContours (..)

Այս հիմնական մեթոդները բավարար չէին մարդկանց հայտնաբերելու լավ որակի հասնելու համար: Օգտագործվել են ML (մեքենայական ուսուցում) ցնցող տեսանյութով սցենարներ: Այսպիսով, մենք որոշեցինք օգտագործել OpenCV մեքենայական ուսուցման գրադարանը և ստացանք մեկ այլ խնդիր, քանի որ ML ալգորիթմի համար տվյալների լավ մուտքագրումը խնդիր էր, որը մենք անցկացրել էինք շատ օրեր: Մենք օգտագործել ենք OpenCV SVM ալգորիթմը, բայց չենք աշխատել: Մենք օգտագործեցինք OpenCV Naive Bayses- ը, և այս մեկը լավ աշխատեց: Մենք փորձել ենք օգտագործել Tensorflow և CNN նյարդային ցանցերը, սակայն առայժմ դա չիրականացրինք: CNN- ն օգտագործում է շատ մշակման հզորություն, մի բան, որը մենք չունեինք: OpenCV ML- ի և հիմնական OpenCV մեթոդների օգտագործումը մեզ օգնեց մարդկանց հայտնաբերելու լավ տեմպերի հասնել: Այնուամենայնիվ, վիդեոյի յուրաքանչյուր տեսակի համար մենք պետք է հարմարեցնենք OpenCV- ի պարամետրերը, որպեսզի հասնենք մարդկանց հայտնաբերման և կեղծ դրականից խուսափելու լավ տեմպերի: Այս երկու ամսվա կեսերին մենք ձևավորեցինք մեր առաջին գաղափարը ՝ տվյալների հավաքագրման կենտրոն չկատարելու համար: միայն ուղևորների թիվը և GPS տեղադրությունը: Մենք որոշեցինք ոչ թե տվյալներ հավաքել ՝ օգտագործելով այլ սենսորներ, ինչպիսիք են ջերմաստիճանը և այլն: Մենք ստեղծեցինք.ini ֆայլ `դիմումը պարամետրավորելու և այն կարգավորելի դարձնելու համար: Cambus.ini ֆայլում դուք կարող եք կարգավորել ծրագիրը բազմաթիվ եղանակներով:

Քայլ 7: Արդյունքներ և ապագա աշխատանք

Ինչպես տեսնում եք տեսանյութում, հաշվիչը ճշգրիտ է աշխատում: Կապույտ գծերը նշում են մուտքի սահմանը, իսկ կարմիր գիծը ՝ ելքի սահմանը: Այս դեպքում տեսանյութը օգտագործվեց մոդելավորման համար, քանի որ մենք չկարողացանք այն տեղադրել ավտոբուսում:

Նկատի ունեցեք, որ որոշ փոփոխություններ պետք է կատարվեն ձեր վիճակի վերաբերյալ ՝ տեսանյութի չափի, տեսախցիկի անկյունի, լուսավորության և այլն:

Խնդրում ենք նաև փոփոխել փոփոխականները cambus.ini- ում ՝ նշելով MQTT միջնորդը և այլն:

Մենք ապագայում կիրառում ենք սենսորների ավելացում, օրինակ `ջերմաստիճանի, խոնավության և CO2 համակարգում: Գաղափարն այն է, որ տվյալներ ձեռք բերվեն քաղաքների շուրջ ՝ դրանք հասանելի դարձնելով համայնքին:

Հետևում մենք թվարկում ենք հաջորդ քայլերը, որոնք կարող եք կատարելագործել նախագիծը.

  • Կրկին գրել կոդը ՝ օգտագործելով C/C ++;
  • Բարելավել ML ալգորիթմը;
  • Կրկին գործոնային պիթոնի ծածկագիր;
  • Տեղավորում ավտոբուս;

Մենք ցանկանում ենք շնորհակալություն հայտնել Embarcados- ին և Qualcomm- ին ՝ ցուցաբերած աջակցության համար:

Համագործակիցներ.

Բրունո Մոնտեյրո - [email protected]

Kleber Drobowok - [email protected]

Վինիսիուս դե Օլիվեյրա - [email protected]

Քայլ 8: Հղումներ

[1]

[2]

[3]

[4]

[5]

Խորհուրդ ենք տալիս: