נתיבים להתקנת מודלים של ML Kit ב-Android

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

ניתן להתקין מודלים בממשקי API של ML Kit באחת משלוש דרכים:

  1. לא בחבילה: הורדה וניהול של דגמים מתבצעת באמצעות Google Play Services.
  2. חבילה: המודלים מקושרים באופן סטטי לאפליקציה בזמן ה-build.
  3. הורדה דינמית: הורדת מודלים של מודלים מתבצעת לפי דרישה.

נתיבי התקנה נתמכים לכל API

הטבלה הבאה מציגה אילו נתיבי התקנה של מודלים נתמכים על ידי כל תכונת ערכת ML:

לא בחבילה חבילה הורדה דינמית
זיהוי טקסט גרסה 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.

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

איך מעדכנים מודלים

כדי לעדכן את המודלים כשמשתמשים במודל החבילה או באפשרות של המודלים שהורדתם באופן דינמי:

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

    dependencies {
      implementation 'com.google.mlkit:barcode-scanning: 17.2.0' // The latest version number of the API
    }
    
  2. יוצרים מחדש את האפליקציה.

מדוע ממשקי API מסוימים מציעים מודלים בהורדה דינמית

בחלק מה-ML Kit API יש יותר מדי אפשרויות מודל לקיבוץ. לדוגמה, זיהוי דיו דיגיטלי תומך ביותר מ-300 שפות, ולא תמיד צריך להכניס כל שפה לתכונה במהלך ההתקנה. לשם כך, אנחנו מספקים את אפשרות ההתקנה השלישית, שבה מתבצעת הורדה של מודלים לפי דרישה לאחר ההתקנה. האפשרות הזו זמינה כרגע רק באפשרויות זיהוי דיו דיגיטלי, תרגום וחילוץ ישויות.