כלי פיתוח לאנדרואיד

TensorFlow Lite מספק מספר כלים לשילוב דגמים באפליקציות אנדרואיד. דף זה מתאר כלי פיתוח לשימוש בבניית אפליקציות עם Kotlin, Java ו-C++, כמו גם תמיכה בפיתוח TensorFlow Lite ב-Android Studio.

כדי להתחיל בכתיבת קוד אנדרואיד במהירות, עיין ב- Quickstart עבור Android

כלים לבנייה עם Kotlin ו-Java

הסעיפים הבאים מתארים כלי פיתוח עבור TensorFlow Lite המשתמשים בשפות Kotlin ו-Java.

ספריית המשימות של TensorFlow Lite

ספריית המשימות TensorFlow Lite מכילה קבוצה של ספריות עוצמתיות וקלות לשימוש ספציפיות למשימות עבור מפתחי אפליקציות לבנות עם TensorFlow Lite. הוא מספק ממשקי מודל אופטימליים מחוץ לקופסה למשימות פופולריות של למידת מכונה, כגון סיווג תמונה, שאלה ותשובה וכו'. ממשקי הדגם תוכננו במיוחד עבור כל משימה כדי להשיג את הביצועים והשימושיות הטובים ביותר. ספריית המשימות פועלת בפלטפורמות שונות ונתמכת ב-Java ו-C++.

כדי להשתמש בספריית המשימות באפליקציית Android שלך, השתמש ב-AAR מ-MavenCentral עבור ספריית Task Vision , ספריית טקסט משימות ו- Task Audio Library , בהתאמה.

אתה יכול לציין זאת בתלות build.gradle שלך ​​באופן הבא:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-task-vision:+'
    implementation 'org.tensorflow:tensorflow-lite-task-text:+'
    implementation 'org.tensorflow:tensorflow-lite-task-audio:+'
}

אם אתה משתמש בצילומי מצב ליליים, וודא שאתה מוסיף את מאגר תמונות המצב של Sonatype לפרויקט שלך.

ראה את ההקדמה בסקירת ספריית המשימות של TensorFlow Lite לפרטים נוספים.

ספריית TensorFlow Lite

השתמש בספריית TensorFlow Lite באפליקציית Android שלך על ידי הוספת ה- AAR המתארח ב-MavenCentral לפרויקט הפיתוח שלך.

אתה יכול לציין זאת בתלות build.gradle שלך ​​באופן הבא:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:+'
}

אם אתה משתמש בצילומי מצב ליליים, וודא שאתה מוסיף את מאגר תמונות המצב של Sonatype לפרויקט שלך.

AAR זה כולל קבצים בינאריים עבור כל ABI של אנדרואיד . אתה יכול להקטין את גודל הקובץ הבינארי של היישום שלך רק על ידי הכללת ABIs שאתה צריך לתמוך.

אלא אם כן אתה מכוון לחומרה ספציפית, עליך להשמיט את ה-ABI של x86 , x86_64 ו- arm32 ברוב המקרים. אתה יכול להגדיר זאת עם תצורת Gradle הבאה. הוא כולל ספציפית רק armeabi-v7a ו- arm64-v8a , ואמור לכסות את רוב מכשירי האנדרואיד המודרניים.

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

למידע נוסף על abiFilters , ראה ABIs של Android בתיעוד Android NDK.

ספריית התמיכה של TensorFlow Lite

ספריית התמיכה של TensorFlow Lite ל-Android מקלה על שילוב דגמים באפליקציה שלך. הוא מספק ממשקי API ברמה גבוהה המסייעים להפוך נתוני קלט גולמיים לצורה הנדרשת על ידי המודל, ולפרש את הפלט של המודל, תוך הפחתת כמות הקוד הנדרש.

הוא תומך בפורמטים נפוצים של נתונים עבור קלט ופלט, כולל תמונות ומערכים. הוא מספק גם יחידות עיבוד לפני ואחרי המבצעות משימות כמו שינוי גודל וחיתוך תמונה.

השתמש בספריית התמיכה באפליקציית Android שלך על ידי הכללת ספריית התמיכה של TensorFlow Lite AAR המתארחת ב-MavenCentral .

אתה יכול לציין זאת בתלות build.gradle שלך ​​באופן הבא:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-support:+'
}

אם אתה משתמש בצילומי מצב ליליים, וודא שאתה מוסיף את מאגר תמונות המצב של Sonatype לפרויקט שלך.

להוראות כיצד להתחיל, עיין בספריית התמיכה של TensorFlow Lite Android .

מינימום גרסאות Android SDK לספריות

סִפְרִיָה minSdkVersion דרישות המכשיר
tensorflow-לייט 19 שימוש ב-NNAPI דורש API 27+
tensorflow-lite-gpu 19 GLES 3.1 או OpenCL (בדרך כלל זמין רק ב-API 21+
tensorflow-lite-משושה 19 -
tensorflow-lite-תמיכה 19 -
tensorflow-lite-task-vision 21 API הקשור ל-android.graphics.Color דורש API 26+
tensorflow-lite-task-text 21 -
tensorflow-lite-task-audio 23 -
tensorflow-lite-metadata 19 -

שימוש ב-Android Studio

בנוסף לספריות הפיתוח המתוארות לעיל, אנדרואיד סטודיו מספק גם תמיכה בשילוב דגמי TensorFlow Lite, כמתואר להלן.

אנדרואיד סטודיו ML כריכת דגם

תכונת ML Model Binding של Android Studio 4.1 ואילך מאפשרת לך לייבא קבצי מודל .tflite לתוך אפליקציית Android הקיימת שלך, וליצור מחלקות ממשק כדי להקל על שילוב הקוד שלך עם דגם.

כדי לייבא דגם TensorFlow Lite (TFLite):

  1. לחץ לחיצה ימנית על המודול שבו תרצה להשתמש במודל TFLite או לחץ על קובץ > חדש > אחר > דגם TensorFlow Lite .

  2. בחר את המיקום של קובץ TensorFlow Lite שלך. שימו לב שהכלים מגדירים את התלות של המודול עם כריכת ML Model ומוסיפים אוטומטית את כל התלות הנדרשת לקובץ build.gradle של מודול האנדרואיד שלכם.

  3. לחץ על Finish כדי להתחיל בתהליך הייבוא. בסיום הייבוא, הכלי מציג מסך המתאר את הדגם, כולל טנסור הקלט והפלט שלו.

  4. כדי להתחיל להשתמש במודל, בחר Kotlin או Java, העתק והדבק את הקוד בקטע קוד לדוגמה .

אתה יכול לחזור למסך מידע הדגם על ידי לחיצה כפולה על דגם TensorFlow Lite תחת ספריית ml ב-Android Studio. למידע נוסף על שימוש בתכונת ה-Modle Binding של Android Studio, עיין בהערות הגרסה של Android Studio. לסקירה כללית של השימוש בכריכת מודלים ב-Android Studio, עיין בהוראות לדוגמה קוד.

כלים לבנייה עם C ו-C++

ספריות C ו-C++ עבור TensorFlow Lite מיועדות בעיקר למפתחים המשתמשים בערכת הפיתוח המקורית של Android (NDK) לבניית האפליקציות שלהם. יש שתי דרכים להשתמש ב-TFLite דרך C++ אם אתה בונה את האפליקציה שלך עם ה-NDK:

API של TFLite C

שימוש ב-API זה הוא הגישה המומלצת למפתחים המשתמשים ב-NDK. הורד את TensorFlow Lite AAR המתארח בקובץ MavenCentral , שנה את השם ל- tensorflow-lite-*.zip ופתח אותו. עליך לכלול את ארבעת קבצי הכותרות בתיקיות headers/tensorflow/lite/ ו- headers/tensorflow/lite/c/ ואת הספרייה הדינמית הרלוונטית libtensorflowlite_jni.so בתיקייה jni/ בפרויקט ה-NDK שלך.

קובץ הכותרת c_api.h מכיל תיעוד בסיסי על השימוש ב-TFLite C API.

API של TFLite C++

אם אתה רוצה להשתמש ב-TFLite דרך C++ API, אתה יכול לבנות את הספריות המשותפות C++:

32bit armeabi-v7a:

bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so

64bit arm64-v8a:

bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so

נכון לעכשיו, אין דרך פשוטה לחלץ את כל קבצי הכותרות הדרושים, לכן עליך לכלול את כל קבצי הכותרות ב- tensorflow/lite/ ממאגר TensorFlow. בנוסף, תזדקק לקבצי כותרות מ- FlatBuffers ו- Abseil .