מדריכים ספציפיים לפלטפורמה
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
ממשקי ה-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 אלפיות השנייה.
- כדי למנוע חסימה של שרשור UI, מוסיפים תמונות ב-Thread עובד.
- לחלופין, אם אפשר, מוסיפים תמונות בזמן הקימפול באמצעות הכלי
arcoreimgשכלול ב-ARCore SDK.
- אם אתם יודעים מה הגודל הפיזי הצפוי של תמונה, ציינו אותו. המידע הזה משפר את הביצועים של הזיהוי והמעקב, במיוחד לגבי תמונות פיזיות גדולות (מעל 75 ס"מ).
- כדאי להימנע משמירה של הרבה תמונות שלא נמצאות בשימוש במסד הנתונים, כי זה עלול להשפיע מעט על ביצועי המערכת בגלל השימוש המוגבר במעבד.
טיפים לאופטימיזציה של המעקב
- אם התמונה לא תזוז מהמיקום הראשוני שלה (לדוגמה, פוסטר שמודבק לקיר), אפשר לצרף עוגן לתמונה כדי לשפר את יציבות המעקב.
- התמונה הפיזית צריכה לתפוס לפחות 25% מהתמונה במצלמה כדי שהמערכת תוכל לזהות אותה. אתם יכולים להנחות את המשתמשים להתאים את התמונה הפיזית למסגרת המצלמה.
- אל תשתמשו בהערכות של התנוחה והגודל של התמונה עד שמצב המעקב של התמונה יהיה מעקב מלא. כש-ARCore מזהה תמונה בפעם הראשונה ולא צוין גודל פיזי צפוי, מצב המעקב שלה מושהה. המשמעות היא ש-ARCore זיהה את התמונה, אבל לא אסף מספיק נתונים כדי להעריך את המיקום שלה במרחב תלת-ממדי.