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

הכינו מסווג Pi Trash עם ML !: 8 שלבים (עם תמונות)
הכינו מסווג Pi Trash עם ML !: 8 שלבים (עם תמונות)

וִידֵאוֹ: הכינו מסווג Pi Trash עם ML !: 8 שלבים (עם תמונות)

וִידֵאוֹ: הכינו מסווג Pi Trash עם ML !: 8 שלבים (עם תמונות)
וִידֵאוֹ: РИМ, Италия — Прогулка под дождем - Путеводитель (с комментарием)【4K】☂️ 🇮🇹 2024, נוֹבֶמבֶּר
Anonim
הכינו מסווג פי אשפה עם ML!
הכינו מסווג פי אשפה עם ML!
הכינו מסווג פי אשפה עם ML!
הכינו מסווג פי אשפה עם ML!

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

פרויקט זה משתמש במודל Machine Learning (ML) שהוכשר באונה, בונה דגמי ML ידידותי למתחילים (ללא קוד!) כדי לזהות אם אובייקט נכנס לאשפה, למיחזור, לקומפוסט או לפסולת מסוכנת. לאחר מכן הטעינה של המודל על מחשב Raspberry Pi 4 כדי שיהיה שימושי בכל מקום בו תמצא פחי אשפה!

הדרכה זו מלווה אותך כיצד ליצור פרויקט משלך לאשפה על פטל פטל ממודל Lobe TensorFlow ב- Python3.

קושי: ++ מתחילים (קצת ידע עם מעגלים וקידוד מועיל)

זמן קריאה: 5 דקות

זמן בנייה: 60 - 90 דקות

עלות: $ 70 (כולל Pi 4)

אספקה:

תוכנה (בצד המחשב האישי)

  • אוּנָה
  • WinSCP (או שיטת העברת קבצים מסוג SSH אחרת, יכולה להשתמש ב- CyberDuck עבור Mac)
  • מָסוֹף
  • חיבור שולחן עבודה מרוחק או RealVNC

חוּמרָה

  • פטל פאי, כרטיס SD וספק כוח USB-C (5V, 2.5A)
  • מצלמת פי
  • לחץ על הכפתור
  • 5 נוריות (4 נוריות חיווי ו- LED 1 סטטוס)

    • LED צהוב: זבל
    • LED כחול: מיחזור
    • LED ירוק: קומפוסט
    • LED אדום: פסולת מסוכנת
    • LED לבן: סטטוס
  • 6 נגדים של 220 אוהם
  • 10 חוטי מגשר של M-to-M
  • קרש לחם, בגודל חצי

אם תבחר הלחמה:

  • מחבר JST אחד, נקבה נקבה בלבד
  • 2 חוטי מגשר M-F
  • 10 חוטי מגשר F-to-F
  • PCB

קַרפִּיף

  • מארז פרויקט (למשל קופסת קרטון, עץ או פלסטיק, כ 6 "x 5" x 4 ")
  • ריבוע פלסטיק שקוף בגודל 2 אינץ 'x 2 ס מ

    לְמָשָׁל. ממכסה מיכל מזון מפלסטיק

  • סקוטש

כלים

  • מספרי תיל
  • סכין דיוק (למשל סכין מדויקת) ומחצלת חיתוך
  • מגהץ הלחמה (אופציונלי)
  • כלי התכה חם (או דבק לא מוליך אחר-אפוקסי עובד מצוין אך הוא קבוע)

שלב 1: לפני שנתחיל

לפני שאנחנו מתחילים
לפני שאנחנו מתחילים

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

זה גם עוזר להכיר קצת את הדברים הבאים:

  1. הכרות עם ה- Raspberry Pi

    • לפניכם מדריך שימושי לתחילת העבודה!
    • מועיל גם: תחילת העבודה עם מצלמת ה- Pi
  2. קריאה ועריכה של קוד פייתון (לא תצטרך לכתוב תוכנית, רק ערוך)

    היכרות עם פייתון עם פטל הפטל

  3. קריאת תרשימי חיווט Fritzing
  4. שימוש בלוח לחם

    כיצד להשתמש במדריך לוח

גלה לאן האשפה שלך הולכת

לכל עיר ברחבי ארה ב (ואני מניח שכדור הארץ) יש זבל משלה/מיחזור/קומפוסט/וכו '. מערכת איסוף. המשמעות היא שכדי ליצור מסווג אשפה מדויק, נצטרך 1) לבנות דגם ML מותאם אישית (נעסוק בזה בשלב הבא - אין קוד!) ו- 2) לדעת לאן כל פיסת אשפה הולכת.

מכיוון שלא תמיד ידעתי את הפח המתאים לכל פריט שהשתמשתי בו כדי לאמן את הדגם שלי, השתמשתי בכרטיס השירות של סיאטל (תמונה 1), וגם ב"לאן זה הולך? "הנוח הזה. כלי חיפוש לעיר סיאטל! בדוק אילו משאבים זמינים בעיר שלך על ידי חיפוש בכלי איסוף האשפה של העיר שלך ועיון באתר שלה.

שלב 2: צור דגם ML מותאם אישית באונה

צור דגם ML מותאם אישית באונה
צור דגם ML מותאם אישית באונה
צור דגם ML מותאם אישית באונה
צור דגם ML מותאם אישית באונה
צור דגם ML מותאם אישית באונה
צור דגם ML מותאם אישית באונה
צור דגם ML מותאם אישית באונה
צור דגם ML מותאם אישית באונה

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

להלן סקירה מהירה על אופן השימוש באונה:

1. פתח את תוכנית האונה וצור פרוייקט חדש.

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

ישנן שתי דרכים לייבא תמונות:

  1. צלם תמונות של פריטים ישירות ממצלמת האינטרנט של המחשב שלך, או
  2. ייבא תמונות מתיקיות קיימות במחשב שלך.

    זכור כי שם תיקיית התמונות ישמש כשם תווית הקטגוריה, לכן ודא שהוא תואם לתוויות קיימות

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

3. השתמש בתכונה "הפעלה" כדי לבדוק את דיוק הדגם. שנה מרחקים, תאורה, תנוחות ידיים וכו 'כדי לזהות היכן הדגם נמצא ואינו מדויק. הוסף תמונות נוספות לפי הצורך. (תמונות 3-4)

4. כשתהיה מוכן, ייצא את דגם ה- Lobe ML בפורמט TensorFlow (TF) Lite.

טיפים:

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

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

  • כלול קטגוריה של "לא אשפה" הכוללת תמונות של כל דבר אחר בתמונה (למשל הידיים והזרועות שלך, הרקע וכו ')
  • במידת האפשר, צלם תמונות ממצלמת ה- Pi וייבא לאונה. זה ישפר מאוד את הדיוק של המודל שלך!
  • צריכים עוד תמונות? עיין במערכות נתונים של קוד פתוח על Kaggle, כולל מערך תמונות זה של סיווג האשפה!
  • צריך עוד עזרה? התחבר לקהילת האונה ב- Reddit!

שלב 3: בנה אותו: חומרה

בנה את זה: חומרה!
בנה את זה: חומרה!
בנה את זה: חומרה!
בנה את זה: חומרה!
בנה את זה: חומרה!
בנה את זה: חומרה!

1. חבר בזהירות את מצלמת ה- Pi ל- Pi (בקר במדריך ההתחלה של קרן Pi למידע נוסף). (תמונה 1)

2. עקוב אחר תרשים החיווט לחיבור כפתור הלדים והנורות לפינים של פי GPIO.

  • כפתור לחיצה: חבר רגל אחת של לחצן הסיכה ל- GPIO 2. חבר את השנייה, באמצעות נגד, לסיכת GPIO GND.
  • נורית צהובה: חבר את הרגל החיובית (הארוכה) לסיכת GPIO 17. חבר את הרגל השנייה, באמצעות נגד, לסיכת GPIO GND.
  • נורית כחולה: חבר את הרגל החיובית לסיכת GPIO 27. חבר את הרגל השנייה, באמצעות נגד, לסיכת GPIO GND.
  • נורית ירוקה: חבר את הרגל החיובית לסיכת GPIO 22. חבר את הרגל השנייה, באמצעות נגד, לסיכת GPIO GND.
  • נורית אדומה: חבר את הרגל החיובית לסיכת GPIO 23. חבר את הרגל השנייה, באמצעות נגד, לסיכת GPIO GND.
  • LED לבן: חבר את הרגל החיובית לסיכת GPIO 24. חבר את הרגל השנייה, באמצעות נגד, לסיכת GPIO GND.

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

שלב 4: קוד זה: תוכנה

קוד זה: תוכנה!
קוד זה: תוכנה!
קוד זה: תוכנה!
קוד זה: תוכנה!

1. במחשב האישי שלך, פתח את WinSCP והתחבר ל- Pi שלך. צור תיקיית Lobe בספריית הבית של ה- Pi שלך וצור תיקיית דגם בספרייה זו.

2. גרור את תוכן תיקיית Lobe TF שהתקבל אל ה- Pi. שימו לב לנתיב הקובץ:/home/pi/Lobe/model

3. ב- Pi, פתח מסוף והורד את ספריית האונה-פייתון עבור Python3 על-ידי הפעלת פקודות bash הבאות:

pip3 להתקין

האונה להתקנת pip3

4. הורד את קוד מסווג האשפה (rpi_trash_classifier.py) ממאגר זה אל ה- Pi (לחץ על כפתור "קוד" כפי שמוצג בתמונה 1).

  • מעדיפים להעתיק/להדביק? קבל את הקוד הגולמי כאן.
  • מעדיפים להוריד למחשב? הורד את הריפו/קוד למחשב שלך ולאחר מכן העבר את קוד ה- Python ל- Pi באמצעות WinSCP (או תוכנית העברת הקבצים המרוחקת המועדפת עליך).

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

  • קו 29: נתיב פילה לדגם האונה TF
  • שורות 47 ו -83: נתיב פילים לתמונות שצולמו באמצעות מצלמת פי

6. במידת הצורך, עדכן את תוויות הדגם בקוד כך שיתאימו בדיוק לתוויות בדגם האונה שלך (כולל רישיות, סימני פיסוק וכו '):

  • שורה 57: "זבל"
  • שורה 60: "מיחזור"
  • שורה 63: "קומפוסט"
  • קו 66: "מתקן פסולת מסוכנת"
  • שורה 69: "לא אשפה!"

7. הפעל את התוכנית באמצעות Python3 בחלון הטרמינל:

python3 rpi_trash_classifier.py

שלב 5: בדוק את זה: הפעל את התוכנית

בדוק את זה: הפעל את התוכנית!
בדוק את זה: הפעל את התוכנית!
בדוק את זה: הפעל את התוכנית!
בדוק את זה: הפעל את התוכנית!
בדוק את זה: הפעל את התוכנית!
בדוק את זה: הפעל את התוכנית!

סקירה כוללת

כאשר תפעיל את התוכנית בפעם הראשונה, ייקח קצת זמן לטעון את ספריית TensorFlow ואת מודל ה- Lobe ML. כאשר התוכנית מוכנה לצלם תמונה, נורית הסטטוס (נורית לבנה) תפעם.

לאחר שצילמת תמונה, התוכנית תשווה את התמונה למודל Lobe ML ותפיק את התחזית המתקבלת (שורה 83). הפלט קובע איזה אור נדלק: צהוב (זבל), כחול (מיחזור), ירוק (קומפוסט) או אדום (פסולת מסוכנת).

אם אף אחת מנורות החיווי לא נדלקת ונורית הסטטוס חוזרת למצב דופק, המשמעות היא שהתמונה שצולמה הייתה "לא אשפה", במילים אחרות, צלם שוב את התמונה!

לכידת תמונה

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

כדי לאפשר למשתמש זמן למקם את האובייקט וכדי להתאים את רמות האור של המצלמה, לוקח בערך 5 שניות ללכוד תמונה במלואה. אתה יכול לשנות הגדרות אלה בקוד (שורות 35 ו -41), אך זכור כי קרן Pi ממליצה על מינימום 2 שניות להתאמת רמת האור.

פתרון תקלות

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

כמה דברים שכדאי לשים לב אליהם:

  • ספרית TensorFlow תזרק ככל הנראה כמה הודעות אזהרה - הדבר אופייני לגרסה המשמשת בקוד לדוגמה זה.
  • תוויות החיזוי חייבות להיות בדיוק כפי שנכתבו בפונקציה led_select (), כולל רישיות, סימני פיסוק ומרווח. הקפד לשנות אלה אם יש לך דגם אחר של האונה.
  • ה- Pi דורש ספק כוח יציב. נורית ההפעלה של ה- Pi צריכה להיות בהירה, אדומה.
  • אם נורית אחת או יותר אינן נדלקות כמצופה, בדוק על ידי כפייתן באמצעות הפקודה:

red_led.on ()

שלב 6: (אופציונלי) בנה אותו: סיים את המעגל שלך

(אופציונלי) בנה אותו: סיים את המעגל שלך!
(אופציונלי) בנה אותו: סיים את המעגל שלך!
(אופציונלי) בנה אותו: סיים את המעגל שלך!
(אופציונלי) בנה אותו: סיים את המעגל שלך!
(אופציונלי) בנה אותו: סיים את המעגל שלך!
(אופציונלי) בנה אותו: סיים את המעגל שלך!

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

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

הערה מהירה על בחירות העיצוב שלי (תמונה 1):

  • בחרתי בחוטי מגשר נקבה עבור נוריות ה- LED ו- Pi GPIO מכיוון שהם מאפשרים לי להסיר נוריות LED ולהחליף צבעים או להזיז אותן במידת הצורך. אתה יכול לדלג על אלה אם אתה רוצה להפוך את החיבורים לצמיתות.
  • באופן דומה בחרתי במחבר JST ללחצן הלחיצה.

הלאה לבנייה

1. חותכים כל אחד מחוטי המגשר הנשיים לשניים (כן, כולם!). בעזרת חשפנות תיל, הסר בערך 1/4 אינץ '(2 ס מ) מבידוד החוט.

2. עבור כל אחת מהנוריות, הלחם נגד 220Ω לרגל השלילית (הקצרה). (תמונה 2)

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

4. הכנס כל LED לזוג חוטי מגשר נקבה. (תמונה 4)

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

6. לאחר מכן, השתמש בחוט מגשר נקבה (חתוך) לחיבור כל נורית לפין ה- GPIO שלו בהתאמה. הלחמה ותייגו חוט מגשר כך שהמתכת החשופה מתחברת לרגל ה- LED החיובית באמצעות הלוח המודרני. (תמונה 5)

הערה: מקום הלחמת החוט הזה יהיה תלוי בפריסת ה- PCB שלך. אתה יכול גם להלחם חוט זה ישירות בחוט המגשר החיובי LED.

7. הלחם נגד 220Ω לקצה השלילי (השחור) של מחבר JST. (תמונה 6)

8. הלחם את מחבר ה- JST ואת הנגד ללחצן. (תמונה 6)

9. חבר את חוטי המגשר M-to-F בין מחבר הכפתור לסיכות GPIO (תזכורת: שחור הוא GND).

10. חיבורי מעיל PCB בדבק חם או אפוקסי לחיבור מאובטח יותר.

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

שלב 7: (אופציונלי) בנה אותו: מארז

(אופציונלי) בנה אותו: מארז!
(אופציונלי) בנה אותו: מארז!
(אופציונלי) בנה אותו: מארז!
(אופציונלי) בנה אותו: מארז!
(אופציונלי) בנה אותו: מארז!
(אופציונלי) בנה אותו: מארז!
(אופציונלי) בנה אותו: מארז!
(אופציונלי) בנה אותו: מארז!

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

  1. בחלק העליון של קופסת הקרטון הקטנה, עקוב אחר מיקומי הלחצן, נורית המצב, נורות המזהה וחלון מצלמת ה- pi (תמונה 1).

    הערה: חלון המצלמה של Pi צריך להיות בערך 3/4 "x 1/2"

  2. חותכים את העקבות בעזרת הסכין המדויקת שלך.

    הערה: ייתכן שתרצה לבדוק את הגדלים תוך כדי תנועה (תמונה 1)

  3. אופציונלי: צבע את המארז! בחרתי בצבע ריסוס:)
  4. גזרו מכסה "חלון" מלבני עבור מצלמת הפי (תמונה 4) והדביקו את החלק הפנימי של הקופסה
  5. לבסוף, חתכו את החריץ לכבל החשמל של Pi.

    מומלץ להתקין תחילה את כל מוצרי האלקטרוניקה כדי לאתר את המקום הטוב ביותר עבור חריץ כבל החשמל

שלב 8: התקן ופרס

התקן ופרס!
התקן ופרס!

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

הולך קדימה

  • שתף את הפרויקטים והרעיונות שלך עם אנשים אחרים דרך קהילת Lobe Reddit!
  • עיין במאגר Lobe Python GitHub לקבלת סקירה כללית על אופן השימוש ב- Python לפריסת מגוון רחב יותר של פרויקטים של האונה.
  • שאלות או בקשות לפרויקט? השאר הערה על הפרויקט הזה או פנה אלינו ישירות: [email protected]

מוּמלָץ: