הוספת מימד לתמונות

מדריכים ספציפיים לפלטפורמות

ממשקי ה-API של תמונות משופרות ב-ARCore מאפשרים ליצור אפליקציות AR שיכולות לזהות תמונות דו-ממדיות בסביבת המשתמש ולשפר אותן, כמו פוסטרים או אריזות של מוצרים.

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

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

יכולות

ARCore יכול לעקוב אחרי עד 20 תמונות בו-זמנית. ‏ARCore לא תזהה או תעקוב בו-זמנית אחרי כמה מופעים של אותה תמונה.

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

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

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

  • אם לא מציינים את הגודל הפיזי, ARCore מעריכה את הגודל ומעדכנת את האומדן הזה לאורך זמן.

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

ARCore יכול להגיב לתמונות ולעקוב אחריהן אם הן:

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

  • תמונות נעות, כמו מודעה באוטובוס חולף או תמונה על אובייקט שטוח שהמשתמש מחזיק בזמן שהוא מזיז את הידיים.

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

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

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

דרישות

התמונות חייבות:

  • כדי שהמכשיר יזהה אתכם בהתחלה, אתם צריכים למלא לפחות 25% ממסגרת המצלמה.

  • להיות שטוח (למשל, לא מקומט או עטוף סביב בקבוק).

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

שיקולים לגבי ניצול מעבדים וביצועים

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

למידע נוסף, ראו שיקולים לגבי הביצועים.

שיטות מומלצות

טיפים לבחירת תמונות עזר

  • רזולוציית התמונה צריכה להיות לפחות 300 x 300 פיקסלים. שימוש בתמונות ברזולוציה גבוהה לא משפר את הביצועים.
  • אפשר לספק תמונות עזר בפורמט קובץ PNG או JPEG.
  • לא נעשה שימוש בנתוני הצבע. גם תמונות צבעוניות וגם תמונות בגווני אפור מקבילות יכולות לשמש כתמונות עזר או כתמונות על ידי המשתמשים בזמן הריצה.
  • הימנעו משימוש בתמונות עם דחיסת נתונים חזקה, כי היא מפריעה לחילוץ המאפיינים.
  • הימנעו משימוש בתמונות שמכילות מספר גדול של תכונות גיאומטריות או מעט מאוד תכונות (למשל: ברקודים, קודי QR, סמלי לוגו וגרפיקה לינארית אחרת), כי הן עלולות לגרום לביצועים נמוכים של זיהוי ומעקב.
  • מומלץ להימנע משימוש בתמונות עם תבניות שחוזרות על עצמן, כי הפעולה הזו עלולה גם לגרום לבעיות בזיהוי ובמעקב.
  • משתמשים בכלי arcoreimg שכלול ב-ARCore SDK כדי לקבל ציון איכות בין 0 ל-100 לכל תמונה. מומלץ לציון האיכות להיות לפחות 75. להלן שתי דוגמאות:

    תמונה לדוגמה 1 תמונה לדוגמה 2
    ניקוד: 0 ניקוד: 100
    מכיל מאפיינים גיאומטרים שחוזרים על עצמם רזולוציה מספקת; מכיל תכונות ייחודיות רבות

טיפים ליצירת מסד הנתונים של התמונות

  • משתמשים בכלי arcoreimg ל-Android כדי ליצור קובץ של מסד נתונים של תמונות. הכלי הזה זמין רק לפיתוח של Android ו-Android NDK. הוא מובנה ב-Unity SDK ובפלאגין של ARCore ל-Unreal.
  • במסד הנתונים מאוחסן ייצוג דחוס של המאפיינים שחולצו מנתוני האפור בתמונות העזר. כל רשומה של תמונה תופסת כ-6KB.
  • הוספת תמונה למסד הנתונים בזמן הריצה נמשכת כ-30 אלפיות השנייה.
    • כדי לא לחסום את ה-thread של ממשק המשתמש, כדאי להוסיף תמונות בשרשור של עובדים.
    • לחלופין, אם אפשר, מוסיפים תמונות בזמן הידור באמצעות הכלי arcoreimg שכלול ב-ARCore SDK.
  • אם אתם יודעים מה הגודל הפיזי הצפוי של תמונה, ציינו אותו. המידע הזה משפר את הביצועים של הזיהוי והמעקב, במיוחד לגבי תמונות פיזיות גדולות (יותר מ-75 ס"מ).
  • מומלץ לא לאחסן במסד הנתונים הרבה תמונות שלא בשימוש, כי יש להן השפעה קלה על ביצועי המערכת עקב עלייה בשימוש במעבד.

טיפים לאופטימיזציה של המעקב

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