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

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

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

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

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

יכולות

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

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

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

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

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

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

ARCore יכול להגיב לתמונות מהסוגים הבאים:

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

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

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

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

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

דרישות

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

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

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

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

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

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

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

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

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

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

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

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