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

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

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

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

נתיבי ההתקנה הנתמכים לכל 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.

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

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

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

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

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

למה חלק מממשקי ה-API מציעים מודלים שהורדתם באופן דינמי

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