בכל התכונות של ML Kit נעשה שימוש כברירת מחדל במודלים של למידת מכונה שאומנו על ידי Google (המכונים מודלים בסיסיים). המדריך הזה רלוונטי רק למודלים בסיסיים. כאן מפורטות הנחיות לגבי מודלים מותאמים אישית.
ניתן להתקין מודלים של ממשקי API של ML Kit באחת משלוש דרכים:
- לא מקובצים: ניתן להוריד ולנהל מודלים באמצעות Google Play Services.
- חבילה: המודלים מקושרים באופן סטטי לאפליקציה בזמן ה-build.
- הורדה דינמית: הורדת מודלים מתבצעת על פי דרישה.
נתיבי התקנה נתמכים לכל ממשק API
בטבלה הבאה אפשר לראות אילו נתיבי התקנה של מודלים נתמכים על ידי כל תכונה של ערכת ML Kit:
לא מקובצת | חבילה | הורדה דינמית | |
זיהוי טקסט גרסה 2 | ✅ | ✅ | |
זיהוי פנים | ✅ | ✅ | |
זיהוי רשת פנים | ✅ | ||
זיהוי דופק | ✅ | ||
פילוח תמונות סלפי | ✅ | ||
סריקת ברקודים | ✅ | ✅ | |
הוספת תוויות לתמונות | ✅ | ✅ | |
זיהוי אובייקטים ומעקב | ✅ | ||
זיהוי דיו דיגיטלי | ✅ | ||
פילוח לפי נושא | ✅ | ||
סורק הקודים של Google | ✅ | ||
זיהוי שפה | ✅ | ✅ | |
תרגום | ✅ | ||
תשובה מהירה | ✅ | ✅ | |
חילוץ ישות | ✅ |
במדריכים הספציפיים ל-API אפשר לראות אילו אפשרויות התקנה זמינות ל-API הנתון.
הבדלים עיקריים בין אפשרויות ההתקנה
לא מקובצות | חבילה | הורדה דינמית | |
איפה נשמרים המודלים? | מגורים ב-Google Play Services ולא נחשב כחלק מנפח האחסון שהאפליקציה משתמשת בו | נשמר באחסון ספציפי לאפליקציה אחרי ההתקנה | נשמר באחסון ספציפי לאפליקציה אחרי הורדת המודל |
איך גודל המודל משפיע על גודל האפליקציה? | לא משפיע על גודל האפליקציה | השפעה ישירה על גודל האפליקציה | הגדרה זו לא משפיעה על גודל האפליקציה, אלא מגדילה את נפח האחסון הספציפי לאפליקציה |
מתי המודלים מעודכנים? | מתעדכן באופן אוטומטי כאשר מפורסמת גרסה חדשה יותר | נדרשים עדכונים באפליקציה כדי לעדכן את המודל | נדרשים עדכונים באפליקציה כדי לעדכן את המודל |
מתי מתבצעת ההורדה של המודלים? | צריך להוריד את המודלים לפני השימוש | כל הדגמים והתכונות כלולים לאחר התקנת האפליקציה, כך שאפשר להשתמש בהם באופן מיידי | צריך לנהל באופן ידני הורדות, עדכונים ומחיקות של מודלים באמצעות ה-API של RemoteModelManager |
מתי מסירים את המודלים מהמכשיר? | Google Play Services תסיר את המודל מהאחסון רק אם יוסרו כל האפליקציות שתלויות במודל | המודלים מוסרים מאחסון ספציפי לאפליקציה כשמסירים את האפליקציה | מודלים שהורדו יוסרו מנפח האחסון של האפליקציה אחרי הסרת האפליקציה. |
איך לבחור בין 'חבילה' ל'לא מקובצות'
אם ממשק API תומך גם באפשרות ההתקנה הארוזה וגם באפשרויות ההתקנה המרוכזות:
כדאי להשתמש באפשרות של קיבוץ הודעות אם חשוב לכם לבחור:
- השלמת הפונקציונליות של התכונה מיד לאחר התקנת האפליקציה
- פונקציונליות של התכונה ללא חיבור לרשת לאחר התקנת האפליקציה
כדאי להשתמש באפשרות 'לא מקובצות' אם ניתנת עדיפות ל:
- אפליקציה קטנה יותר
- עדכונים אוטומטיים של מודלים באמצעות Google Play Services
איך מורידים מודלים
כשמשתמשים באפשרות של מודלים לא מקובצים, אפשר לציין את אופן ההורדה של מודלים למכשיר:
כדי להפעיל הורדות של מודלים בזמן ההתקנה, צריך להוסיף הצהרה לקובץ
AndroidManifest.xml
של האפליקציה. לדוגמה, קטע הקוד הבא מראה כיצד להגדיר את האפליקציה להורדה אוטומטית של מודל סריקת הברקוד לאחר התקנת האפליקציה מחנות Play:<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode" > <!-- To use multiple models: android:value="barcode,model2,model3" --> </application>
אתם יכולים לבקש הורדה מפורשת דרך ModuleInstallClient API של Google Play Services.
אם לא תפעילו הורדות של מודלים בזמן ההתקנה או תבקשו הורדה מפורשת, תתבצע הורדה של המודל בפעם הראשונה שתפעילו את התכונה. עד שההורדה תסתיים, הבקשות להסקת מסקנות ייכשלו.
איך מעדכנים מודלים
כדי לעדכן את המודלים כשמשתמשים במודל החבילה או באפשרות של המודלים שהורדתם באופן דינמי:
צריך לעדכן את קובץ הציונים של האפליקציה כדי להשתמש בספריית הלקוח העדכנית של התכונה ML Kit.
dependencies { implementation 'com.google.mlkit:barcode-scanning: 17.2.0' // The latest version number of the API }
בונים מחדש את האפליקציה.
למה ממשקי API מסוימים מציעים מודלים של הורדה דינמית
בחלק מה-ML Kit API יש יותר מדי אפשרויות של מודלים לקיבוץ. לדוגמה, השירות זיהוי דיו דיגיטלי תומך ביותר מ-300 שפות, ולא תמיד צריך לכלול את כל השפות בתוך הפיצ'ר במהלך ההתקנה. לשם כך, אנחנו מספקים את אפשרות ההתקנה השלישית, שבה אפשר להוריד מודלים לפי דרישה לאחר ההתקנה. נכון לעכשיו, האפשרות זמינה רק לזיהוי דיו דיגיטלי, לתרגום ולחילוץ ישויות.