תוכן עניינים:

קמבוס - מערכת איסוף נתונים באוטובוס עירוני: 8 שלבים
קמבוס - מערכת איסוף נתונים באוטובוס עירוני: 8 שלבים

וִידֵאוֹ: קמבוס - מערכת איסוף נתונים באוטובוס עירוני: 8 שלבים

וִידֵאוֹ: קמבוס - מערכת איסוף נתונים באוטובוס עירוני: 8 שלבים
וִידֵאוֹ: מתמטיקה לכיתה י׳ - נגזרת? 2024, נוֹבֶמבֶּר
Anonim
קמבוס - מערכת איסוף נתונים באוטובוס עירוני
קמבוס - מערכת איסוף נתונים באוטובוס עירוני

בין הבעיות והקשיים הידועים בתחבורה הציבורית, האוכלוסייה חסרה מידע בזמן אמת ועם הפחות אסרטיביות. הצפיפות באוטובוסים של תחבורה ציבורית מרחיקה משתמשים, שמעדיפים להשתמש ברכבים משלהם, למרות שהם עדיין בתנועה במשך שעות. אם מידע בזמן אמת, כגון מספר האוטובוסים, זמין למשתמש בקלות, הוא יכול לבחור אם לחכות לאוטובוס הבא או להתנייד באוטובוס או להשתמש ברכב משלו. כוח הבחירה הופך את התחבורה הציבורית לאופציה אטרקטיבית יותר עבור המשתמש.

ניתן לספור או לאמוד אנשים בתוך הבית בדרכים רבות, ביניהן המועסקים הנפוצים ביותר הם:

  • תמונות תרמיות;
  • ראייה ממוחשבת;
  • מונה פנים;

בין מספר הקשיים לאמוד אנשים בסביבה באמצעות ראייה ממוחשבת, העיקריים שבהם הם:

  • חסימות של אנשים;
  • תאורה הפוכה;
  • חסימה סטטית, כלומר אנשים מאחורי אובייקטים;
  • זווית מצלמה לסביבה;

האתגר לפרויקט זה הוא לדעת את הזווית הנכונה של המצלמה שתסייע בצורה הטובה ביותר בחיסור הרקע של התמונה, כמו גם בהירות המשתנה במהלך היום בתוך האוטובוס.

המטרה העיקרית של ההצעה היא ליצור מודל חזק וניתן להגדרה לאמוד הצפיפות ולהפוך את התוצאות לזמינות לאוכלוסייה באמצעות סמארטפונים.

שלב 1: חומרים

החומר הדרוש לפרויקט הוא הבא:

1 x לוח דרקון 410c;

1 x מצלמת USB;

1 x טלפון חכם אנדרואיד;

שלב 2: התקן את Linaro ב- Dragonboard 410c

התקן את Linaro ב- Dragonboard 410c
התקן את Linaro ב- Dragonboard 410c
התקן את Linaro ב- Dragonboard 410c
התקן את Linaro ב- Dragonboard 410c

עקוב אחר ההוראות בקישור למטה להתקנת Linaro 17.09 ב- DragonBoard 410c. אנו ממליצים להתקין את Linaro 17.09 לתמיכה בגרעינים עבור GPS.

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

שלב 3: שלב 2: התקן ספריות והורד קוד מקור מ- GitHub

שלב 2: התקן ספריות והורד קוד מקור מ- GitHub
שלב 2: התקן ספריות והורד קוד מקור מ- GitHub

לקמבוס ארכיטקטורה מודולרית ועיצוב קוד. אפשר לקודד אלגוריתם למידת מכונה משלך, לשנות לשירות ענן אחר וליצור יישומי משתמש משלך.

כדי להפעיל את פרויקט cambus, תחילה עליך להוריד את קוד המקור מ- github (https://github.com/bmonteiro00/cambus). התקן פייתון (Cambus היה מצב להפעלה בגרסה 2.7 ו-> 3.x) והספריות הבאות באמצעות 'pip' (sudo apt-get install python-pip). יהיה צורך להתקין חבורה של ספריות במערכת Linaro (כמו כן, מומלץ ליצור סביבה וירטואלית - pip install virtualenv - על מנת לבודד את מערכת ה- Cambus מה- SO). אנא התקן את הספריות הבאות:

  • pip התקן paho-mqtt
  • pip להתקין numpy
  • pip התקן opencv-python
  • pip התקן opencv-contrib-python
  • pip להתקין twilio
  • pip להתקין matplotlib

התוכנית העיקרית חולקה לכיתות:

  • CamBus - המעמד הראשי;
  • חיישן - מחלקה להשגת נתונים כגון מיקום GPS, טמפרטורה, Co2.
  • מעמד נגד עם אלגוריתם לעיבוד תמונה.

ודא אם כל הספריות הותקנו והפעל את פייתון CamBus_v1.py.

שלב 4: הגדרת Core IoT AWS, DynamoDB

הגדרת Core IoT של AWS, DynamoDB
הגדרת Core IoT של AWS, DynamoDB
הגדרת Core IoT של AWS, DynamoDB
הגדרת Core IoT של AWS, DynamoDB
הגדרת Core IoT של AWS, DynamoDB
הגדרת Core IoT של AWS, DynamoDB

השתמשנו בליבת AWS IoT כמתווך MQTT עם TLS ו- X509 ו- NoSQL ו- DynamoDB כדי לרשום נתונים. יהיה עליך ליצור חשבון בכתובת https://aws.amazon.com/free.). לאחר מכן, עליך לבצע את השלבים הבאים כדי ליצור דבר ולהשתלב עם Dynamo:

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

שלב 5: הגדר ממשקי API של Twilio ו- Dweet

הגדר ממשקי API של Twilio ו- Dweet
הגדר ממשקי API של Twilio ו- Dweet
הגדר ממשקי API של Twilio ו- Dweet
הגדר ממשקי API של Twilio ו- Dweet

כמו כן הוקם שירות ה- SMS של טוויליו. עיין בכתובת האתר למטה להנחיות להשלמת שלב זה:

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

האינטגרציה בין אפליקציית האנדרואיד למערכת נעשתה באמצעות REST באמצעות פלטפורמת Dweet. אין צורך בהרשמה.

dweet.io/

שלב 6: אתגרים

במהלך הפיתוח שלנו התמודדנו עם אתגרים רבים, החל מטכניקות OpenCV ועד פלטפורמת AWS. החלטנו לקודד עם פייתון על מנת לחסוך זמן בפיתוח ב- C/C ++. במהלך הפיתוח שלנו רק שיטות Opencv הבסיסיות כגון:

• cv2. GaussianBlur (..)

• cv2.threshold (..)

• cv2.morphologyEx (..)

• cv2.contourArea (..)

• cv2.findContours (..)

שיטות בסיסיות אלה לא הספיקו כדי להגיע לאיכות טובה באיתור אנשים. נעשה שימוש בתרחישים עם וידאו רעוע ML (Machine Learning). אז החלטנו להשתמש בספריית למידת מכונות OpenCV וקיבלנו בעיה נוספת מכיוון שמציאת קלט נתונים טוב לאלגוריתם ML הייתה בעיה שהעברנו ימים רבים. השתמשנו באלגוריתם OpenCV SVM אך לא עבדנו. השתמשנו ב- OpenCV Naive Bayses וזה עבד בסדר. ניסינו להשתמש ברשתות עצביות Tensorflow ו- CNN, אולם בינתיים לא גרמנו לזה לקרות. CNN משתמשת בכוח עיבוד רב, דבר שלא היה לנו. שימוש ב- OpenCV ML ובשיטות OpenCV הבסיסיות עזר לנו להגיע לקצב טוב של גילוי אנשים. עם זאת, עבור כל סוג של וידיאו עלינו להתאים את הפרמטרים של OpenCV על מנת להגיע לקצב טוב של גילוי אנשים ולהימנע ממצבים חיוביים כוזבים. באמצע החודשיים הללו פיתחנו את הרעיון הראשון שלנו לעשות מרכז איסוף נתונים לא רק מספר הנוסעים ומיקום ה- GPS. החלטנו לאסוף נתונים באמצעות חיישנים אחרים כמו טמפרטורה וכן הלאה. יצרנו קובץ.ini כדי לפרמט את היישום ולהגדיר אותו. בקובץ Cambus.ini אתה יכול להגדיר את היישום בדרכים רבות.

שלב 7: תוצאות ועבודה עתידית

כפי שניתן לראות בסרטון, המונה פועל בצורה מדויקת. הקווים הכחולים מסמנים את מגבלת הקלט והקו האדום את מגבלת הפלט. במקרה זה, סרטון שימש כדי לדמות כיוון שלא יכולנו לפרוס אותו לאוטובוס.

זכור כי יש לבצע שינוי כלשהו במצבך לגבי גודל הווידאו, זווית המצלמה, הבהירות וכו '. כל סוג וידאו חייב להיות התאמת הפרמטרים שלו, כגון רקע שאיבת גרעיני opencv וכן הלאה.

אנא שנה גם משתנים ב- cambus.ini, המציין מתווך MQTT וכן הלאה.

אנו שוקלים ביישומים עתידיים להוסיף חיישנים, למשל, טמפרטורה, לחות ו- CO2 במערכת. הרעיון הוא לקבל נתונים ברחבי הערים ולהפוך אותם לזמינים לקהילה.

בהמשך אנו מונים את השלבים הבאים שתוכל לשפר את הפרויקט:

  • כתוב מחדש את הקוד באמצעות C/C ++;
  • שיפור אלגוריתם ML;
  • קוד פייתון מחדש;
  • פריסה לאוטובוס;

ברצוננו להודות לאמברקדו ולקוואלקום על כל התמיכה הניתנת.

משתפי פעולה:

ברונו מונטיירו - [email protected]

קלבר דרובוק - [email protected]

ויניסיוס דה אוליביירה - [email protected]

שלב 8: הפניות

[1]

[2]

[3]

[4]

[5]

מוּמלָץ: