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

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

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

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

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

יכולות

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

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

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

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

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

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

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

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

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

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

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

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

דרישות

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

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

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

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

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

בהתאם לתכונות של 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 אלפיות השנייה.
    • מוסיפים תמונות בשרשור עבודה כדי למנוע חסימה של שרשור ממשק המשתמש.
    • לחלופין, אם אפשר, מוסיפים תמונות בזמן הידור באמצעות הכלי arcoreimg שכלול ב-ARCore SDK.
  • אם אתם יודעים מה הגודל הפיזי הצפוי של התמונה, ציינו אותו. המידע הזה משפר את הביצועים של הזיהוי והמעקב, במיוחד לגבי תמונות פיזיות גדולות (מעל 75 ס"מ).
  • מומלץ לא לאחסן במסד הנתונים הרבה תמונות שלא בשימוש, כי יש להן השפעה קלה על ביצועי המערכת עקב ניצול מוגבר של המעבד.

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

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