עבודה עם ערכת המפתחים של Kinect של Azure

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

Azure Kinect הוא צאצא ישיר ממודולי Kinect מהדור השני שנשלחו עם ה- Xbox One, אך במקום לספק תשומות בעולם האמיתי למשחקים, הוא מכוון למשתמשים ויישומים ארגוניים. כוונתה לעבוד עם שירותי הקוגניטיב של Azure, ערכת המפתחים הראשונה של Azure Kinect החלה להישלח בסוף 2019 בארצות הברית, והוסיפה כמה מדינות נוספות בתחילת 2020.

פתיחת התיבה

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

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

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

לחוש את העולם

עם התקנת ה- SDK אתה מקבל גישה לחיישני המכשיר מהקוד שלך. ישנם שלושה SDK: אחד לגישה ברמה נמוכה לכל חיישני המצלמה, אחד לשימוש בתכונות המעקב הגופניות המוכרות של Kinect, ואחד לקישור מערך המיקרופונים של המצלמה לשירותי הדיבור של Azure. אפליקציית Kinect Viewer שנבנתה מראש מציגה את תצוגות המצלמה הזמינות ומעבירה נתונים מחיישני המכשיר. אתה מקבל גישה למצלמת ה- RGB רחבת הזווית, לתצוגת מצלמת עומק ולתמונה מהמצלמה האינפרא אדום של חיישן העומק. ערכות SDK זמינות הן עבור Windows והן עבור Linux, במיוחד מהדורת 18.04 LTS של אובונטו 18.04 של Canonical, וניתן להוריד אותן ישירות ממיקרוסופט או מ- GitHub.

מומלץ להקדיש זמן למשחק עם Kinect Viewer. זה מאפשר לך לראות כיצד מצבי המצלמה העומקים השונים פועלים, ועוזרים לך לבחור שדה ראייה צר או רחב. אתה יכול לראות נתונים מחיישני המיקום, הן ממד התאוצה והן מג'ירוסקופ וממערך המיקרופונים. עם ערכת המפתחים של Azure Kinect המחוברת למחשב פיתוח ועובדת, אתה יכול להתחיל לכתוב קוד עבורה. ניתן להשתמש באפליקציית מקליט שורת פקודה כדי ללכוד נתונים להפעלה במציג, לאחסון מידע עומק בקובץ בפורמט MKV (Matroska Video).

בניית היישום הראשון שלך לחישה עומק

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

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

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

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

למרות שחומרת Azure Kinect לוכדת נתונים רבים, פונקציות ה- SDK עוזרות להפוך אותן לצורה שמישה; למשל, הוספת נתוני עומק לתמונת RGB כדי לייצר תמונות RGB-D שהופכות לנקודת המבט של מצלמת ה- RGB (ולהיפך). מכיוון ששני החיישנים אינם פעילים, הדבר דורש עיוות של רשת תמונה כדי למזג את נקודות המבט של שתי המצלמות, באמצעות ה- GPU של המחשב האישי שלך. טרנספורמציה נוספת מייצרת ענן נקודה, המאפשר לך לקבל נתוני עומק עבור כל פיקסל בלכידה שלך. אפשרות שימושית אחת ב- SDK היא היכולת ללכוד זרמי וידאו ונתונים בקובץ בפורמט Matroska. גישה זו מאפשרת למכשירים המוגבלים על רוחב הפס לאצווה נתונים ולהעביר אותם, למשל, למכשירי Azure Stack Edge עם מכלי Cognitive Services לעיבוד אצווה.

מעקב אחר גוף שלד דיגיטלי

החומרה המקורית של Kinect הציגה מעקב גוף, עם מודל שלד שניתן להשתמש בו כדי להעריך במהירות את היציבה והמחוות. אותה גישה ממשיכה ב- Azure Kinect Body Tracking SDK, המשתמש בטכנולוגיית עיבוד מקבילה CUDA GPU של Nvidia לעבודה עם נתוני תמונה תלת-ממד מחיישן העומק של המכשיר שלך. אפליקציית דוגמה מקובצת מציגה כמה מהתכונות של ה- SDK, כולל היכולת לעקוב אחר יותר מאדם אחד בכל פעם. 

ה- SDK Tracking Body בונה על ה- Azure Kinect SDK ומשתמש בו להגדרת תצורה וחיבור למכשיר. נתוני התמונה שנלכדו מעובדים על ידי הגשש ומאחסנים נתונים במבנה נתונים של מסגרת גוף. זה מכיל אוסף של מבני שלד לגופים מזוהים, מפת אינדקס דו-ממדי שתעזור להמחיש את הנתונים שלך, יחד עם התמונות הבסיסיות של 2-D ו -3 D ששימשו לבניית נתוני המעקב. ניתן להשתמש בכל מסגרת לבניית אנימציות או להזנת מידע לכלי למידת מכונה שיכולים לסייע בעיבוד מיקומים במעקב ביחס למפת החדר או למיקומים אידיאליים.

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