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

מערכת קמרה מודעת רמקולים (SPACS): 8 שלבים
מערכת קמרה מודעת רמקולים (SPACS): 8 שלבים

וִידֵאוֹ: מערכת קמרה מודעת רמקולים (SPACS): 8 שלבים

וִידֵאוֹ: מערכת קמרה מודעת רמקולים (SPACS): 8 שלבים
וִידֵאוֹ: Бернардо Каструп и Джон Верваке о метасознании 2024, נוֹבֶמבֶּר
Anonim
Image
Image
חומרה - הדפסה תלת מימדית
חומרה - הדפסה תלת מימדית

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

שלב 1: חומרים

Adafruit Feather nRF52840 Express X 1

www.adafruit.com/product/4062

מגבר מיקרופון אלקטרט - MAX4466 X 2

www.adafruit.com/product/1063

מנוע מיקרו סרוו X 1

www.adafruit.com/product/169

סמארטפון אנדרואיד X 1

שלב 2: חומרה - הדפסה תלת מימדית

חומרה - הדפסה תלת מימדית
חומרה - הדפסה תלת מימדית
חומרה - הדפסה תלת מימדית
חומרה - הדפסה תלת מימדית

לצורך יישום מהיר, החלטנו להדפיס תלת מימד את המארזים הדרושים לנו. ישנם שני מרכיבים עיקריים למארזים; פטיפון ומעמד לסמארטפון. השתמשנו בפטיפון מהקישור הזה (https://www.thingiverse.com/thing:141287), שם הוא מספק מארז Arduino בתחתית ושולחן מסתובב שניתן לחבר אותו באמצעות מנוע סרוו. השתמשנו במעמד לסמארטפון מהקישור הזה (https://www.thingiverse.com/thing:2673050), שהוא מתקפל ומתכוונן כך שהוא מאפשר לנו לכייל את הזווית בנוחות. האיור שלהלן מציג את החלקים המודפסים בתלת מימד המורכבים יחד.

שלב 3: חומרה - רכיבים אלקטרוניים

חומרה - רכיבים אלקטרוניים
חומרה - רכיבים אלקטרוניים
חומרה - רכיבים אלקטרוניים
חומרה - רכיבים אלקטרוניים

ישנם ארבעה רכיבים קווית; Adafruit Feather, שני מיקרופונים ומנוע. לאריזה הקומפקטית הלחמנו (עיגולים אפורים) את החוטים מבלי להשתמש בלוח לחם. להלן מתואר תרשים המעגל והממצא האמיתי.

שלב 4: תוכנה

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

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

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

תוכנת SPACS נמצאת בכתובת

שלב 5: תוכנה - סאונד

תוכנה - סאונד
תוכנה - סאונד

צליל (YH)

כדי לאתר את מקור הצליל הנכנס, ניסינו תחילה להשתמש בהפרש הזמן בין שני המיקרופונים. אך הוא לא היה מדויק כפי שציפינו מכיוון שקצב הדגימה (~ 900 הרץ) של Arduino Leopard, שם בדקנו את אותות הקול, היה איטי כך שהוא לא יכול להבחין בהפרשי הזמן בין מיקרופונים בני 10 סנטימטר זה מזה.

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

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

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

שלב 6: תוכנה - זיהוי פנים ודיבור

לזיהוי פנים השתמשנו ב- ML Kit for Firebase שהוציאה Google (https://firebase.google.com/docs/ml-kit). ML Kit מספק את ממשק ה- API לזיהוי פנים המחזיר את הקופסה הגובלת של כל פנים ואת ציוני הדרך שלה, כולל עיניים, אף, אוזניים, לחיים ונקודות שונות על הפה. לאחר זיהוי פנים, האפליקציה עוקבת אחר תנועת הפה כדי לקבוע אם האדם מדבר. אנו משתמשים בגישה פשוטה המבוססת על סף שמניבה ביצועים אמינים. מינופנו את העובדה שתנועת הפה גדלה הן באופקית והן במאונך כאשר אדם מדבר. אנו מחשבים את המרחק האנכי והאופקי של הפה ומחשבים את סטיית התקן עבור כל מרחק. המרחק מנורמל לגודל הפנים. סטיית תקן גדולה יותר מעידה על דיבור. לגישה זו יש את המגבלה שכל פעילות כרוכה בתנועת הפה, כולל אכילה, שתייה או פיהוק, יכולה להיות מוכרת כדוברת. אבל, יש לו שיעור שלילי שווא נמוך.

שלב 7: תוכנה - מנוע מסתובב

תוכנה - מנוע מסתובב
תוכנה - מנוע מסתובב

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

שלב 8: שיפורים עתידיים

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

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

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

מוּמלָץ: