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

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

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

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

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

בטבלה הבאה אפשר לראות אילו נתיבי התקנה של מודלים נתמכים בכל מאפיין של MLKit:

לא בחבילה חבילה הורדה דינמית
זיהוי טקסט גרסה 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. מעדכנים את קובץ GRid של האפליקציה כדי להשתמש בספריית הלקוח העדכנית של תכונת 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 שפות, ולא תמיד צריך לכלול כל שפה בפיצ'ר במהלך ההתקנה. לשם כך, אנחנו מספקים את אפשרות ההתקנה השלישית, שבה מתבצעת הורדה של מודלים לפי דרישה לאחר ההתקנה. נכון לעכשיו, האפשרות הזו זמינה רק בזיהוי דיו דיגיטלי, תרגום וחילוץ ישויות.