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

מצלמת AI ל- Raspberry Pi/Arduino: 7 שלבים
מצלמת AI ל- Raspberry Pi/Arduino: 7 שלבים

וִידֵאוֹ: מצלמת AI ל- Raspberry Pi/Arduino: 7 שלבים

וִידֵאוֹ: מצלמת AI ל- Raspberry Pi/Arduino: 7 שלבים
וִידֵאוֹ: Leap Motion SDK 2024, נוֹבֶמבֶּר
Anonim
Image
Image

אם עקבתם אחר החדשות לאחרונה, אירע התפוצצות של חברות סטארט-אפ שפיתחו שבבים להאיצת מסקנות ואימון אלגוריתמים של ML (מכונת למידה). עם זאת רוב השבבים האלה עדיין בפיתוח ולא ממש משהו שהיצרנית הממוצעת שלך יכולה לשים עליו יד. החריג המשמעותי היחיד עד כה היה Intel Movidius Neural Compute Stick, הזמין לרכישה ומגיע עם SDK טוב. יש לו כמה חסרונות משמעותיים - כלומר המחיר (בסביבות 100 דולר) והעובדה שהוא מגיע בפורמט מקל USB. זה נהדר אם אתה רוצה להשתמש בו עם מחשב נייד או פטל PI, אבל מה אם אתה רוצה לעשות כמה פרויקטים לזיהוי תמונות עם Arduino? או Raspberry Pi Zero?

שלב 1: Sipeed MAix: AI at the Edge

Sipeed MAix: AI at the Edge
Sipeed MAix: AI at the Edge

לפני לא כל כך הרבה זמן קיבלתי את ידי על לוח הפיתוח של Sipeed M1w K210, בעל מעבד RISC-V 64bit בעל ליבה כפולה ומתהדר ב- KPU (מעבד רשת עצבי) המשולב, המיועד במיוחד להאיץ CNN לעיבוד תמונה. תוכל לקרוא פרטים נוספים כאן.

המחיר של הלוח הזה הדהים אותי בכנות, זה רק 19 דולר ללוח פיתוח מלא AI על הקצה עם תמיכה ב- Wi-Fi! עם זאת, ישנה סייג (כמובן שיש): קושחת המיקרופייתון ללוח עדיין בפיתוח, ובסך הכל היא לא ידידותית למשתמש כרגע. הדרך היחידה לגשת לכל הפונקציות שלה כרגע היא לכתוב קוד C משובץ משלך או לשנות כמה הדגמות קיימות.

הדרכה זו מסבירה כיצד להשתמש במודל זיהוי מחלקה של Mobilenet 20 כדי לזהות את האובייקטים ולשלוח את קוד האובייקט שזוהה באמצעות UART, משם הוא יכול להתקבל על ידי Arduino/Raspberry Pi.

כעת, הדרכה זו מניחה שאתה מכיר את לינוקס ואת היסודות של עריכת קוד C. אם שמיעת הביטוי הזה עשתה לך קצת סחרחורת:) אז פשוט דלג לשלב 4, שם אתה מעלה את הבינארי הבנוי שלי ל- Sipeed M1 ומדלג על ההרכבה.

שלב 2: הכינו את הסביבה שלכם

הכינו את הסביבה שלכם
הכינו את הסביבה שלכם

השתמשתי באובונטו 16.04 לאסוף ולהעלות קוד קוד. אפשר לעשות את זה ב- Windows, אבל אני עצמי לא ניסיתי את זה.

הורד את שרשרת הכלים של RISC-V GNU, התקן את כל התלות הדרושות.

שיבוט git-רקורסיבי

sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev

העתק את שרשרת הכלים שהורדת לספריית /opt. לאחר מכן הפעל את הפקודות

./configure --prefix =/opt/kendryte-toolchain-with-cmodel = medany

עשה

הוסף/opt/kendryte-toolchain/bin ל- PATH שלך כעת.

עכשיו אתה מוכן לקמפל את הקוד!

שלב 3: הידור הקוד

ערכו את הקוד
ערכו את הקוד

הורד את הקוד ממאגר github שלי.

הורד SDK עצמאי של Kendryte K210

העתק /תיקיית kpu ממאגר github שלי לתיקיית /src ב- SDK.

הפעל את הפקודות הבאות בתיקיית SDK (לא /תיקיית src!)

mkdir build && build build

cmake.. -DPROJ = project_name -DTOOLCHAIN =/opt/kendryte -toolchain/bin && make

כאשר project_name הוא שם הפרויקט שלך (תלוי בך) ו- -DTOOLCHAIN = אמור להצביע על המיקום של שרשרת הכלים שלך ב- risc -v (הורדת אותו בשלב הראשון, זוכר?)

גדול! עכשיו אני מקווה שתראה את האוסף סיים ללא שגיאות ויש לך קובץ.bin שאתה יכול להעלות.

שלב 4: העלאת קובץ.bin

העלאת קובץ.bin
העלאת קובץ.bin

כעת חבר את Sipeed M1 שלך למחשב ומתוך התיקיה /build הפעל את הפקודה הבאה

sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu.bin

כאשר kpu.bin הוא שם קובץ ה-.bin שלך

ההעלאה אורכת בדרך כלל 2-3 דקות, לאחר שתסיים תראה את הלוח שמריץ 20 שיעורים. השלב האחרון מבחינתנו הוא לחבר אותו ל- Arduino mega או ל- Raspberry Pi.

!!! אם רק הגעת משלב 2 !

הפעל את הפקודה הבאה מהתיקייה שבה שיבצת את מאגר github שלי

sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu_bin.bin

ההעלאה אורכת בדרך כלל 2-3 דקות, לאחר שתסיים תראה את הלוח מריץ 20 שיעורים. השלב האחרון מבחינתנו הוא לחבר אותו ל- Arduino mega או ל- Raspberry Pi.

שלב 5: התחברות ל- Arduino

מתחבר לארדואינו
מתחבר לארדואינו
מתחבר לארדואינו
מתחבר לארדואינו
מתחבר לארדואינו
מתחבר לארדואינו

השתמשתי ב- Arduino Mega עם Seeed Studio Mega Shield, זו הסיבה שהלחמתי מחבר Grove ללוח Sipeed M1. עם זאת אתה יכול פשוט להשתמש בחוטי מגשר ולחבר את Sipeed M1 ישירות ל- Arduino Mega, בהתאם לתרשים החיווט הזה.

לאחר מכן העלה את הסקיצה של camera.ino ופתח את הצג הסידורי. כאשר אתה מכוון את המצלמה לאובייקטים שונים (רשימת 20 המחלקות נמצאת בסקיצה) היא אמורה להוציא את שם המחלקה במסך הטורי!

מזל טוב! כעת יש לך מודול זיהוי תמונות עובד עבור Arduino שלך!

שלב 6: התחברות ל- Raspberry Pi

מתחבר ל- Raspberry Pi
מתחבר ל- Raspberry Pi
מתחבר ל- Raspberry Pi
מתחבר ל- Raspberry Pi

השתמשתי ב- Grove Pi+ כובע עבור Raspberry Pi 2B, אבל שוב, כמו בארדואינו אתה יכול פשוט לחבר ישירות את Sipeed M1 לממשק UART של Raspberry Pi בעקבות תרשים החיווט הזה.

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

שלב 7: סיכום

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

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

מוּמלָץ: