لدي سؤال؟ تواصل مع المجتمع في منتدى زيارة منتدى TensorFlow

Android Quickstart

لبدء استخدام TensorFlow Lite على نظام Android ، نوصي باستكشاف المثال التالي.

مثال على تصنيف صور Android

اقرأ تصنيف صور TensorFlow Lite Android للحصول على شرح لكود المصدر.

يستخدم هذا التطبيق المثال تصنيف الصور لتصنيف كل ما يراه من الكاميرا الخلفية للجهاز بشكل مستمر. يمكن تشغيل التطبيق إما على الجهاز أو المحاكي.

يتم إجراء الاستدلال باستخدام TensorFlow Lite Java API ومكتبة دعم TensorFlow Lite Android . يصنف التطبيق التجريبي الإطارات في الوقت الفعلي ، ويعرض أهم التصنيفات المحتملة. يسمح للمستخدم بالاختيار بين النقطة العائمة أو النموذج الكمي ، وتحديد عدد الخيوط ، وتحديد ما إذا كان سيتم تشغيله على وحدة المعالجة المركزية أو وحدة معالجة الرسومات أو عبر NNAPI .

بناء في Android Studio

لإنشاء المثال في Android Studio ، اتبع التعليمات الموجودة في README.md .

قم بإنشاء تطبيق Android الخاص بك

لبدء كتابة رمز Android الخاص بك بسرعة ، نوصي باستخدام مثال تصنيف صور Android الخاص بنا كنقطة بداية.

تحتوي الأقسام التالية على بعض المعلومات المفيدة للعمل مع TensorFlow Lite على Android.

استخدم Android Studio ML Model Binding

لاستيراد نموذج TensorFlow Lite (TFLite):

  1. انقر بزر الماوس الأيمن فوق الوحدة التي ترغب في استخدام نموذج TFLite أو انقر فوق File ، ثم New > Other > TensorFlow Lite Model انقر بزر الماوس الأيمن فوق القوائم للوصول إلى وظيفة استيراد TensorFlow Lite

  2. حدد موقع ملف TFLite الخاص بك. لاحظ أن الأدوات ستقوم بتكوين تبعية الوحدة نيابة عنك من خلال ربط ML Model وإدراج جميع التبعيات تلقائيًا في ملف build.gradle الخاص بوحدة Android.

    اختياري: حدد خانة الاختيار الثانية لاستيراد TensorFlow GPU إذا كنت تريد استخدام تسريع GPU . حوار الاستيراد لنموذج TFLite

  3. انقر فوق " Finish .

  4. ستظهر الشاشة التالية بعد نجاح الاستيراد. لبدء استخدام النموذج ، حدد Kotlin أو Java ، وانسخ الكود والصقه تحت قسم Sample Code . يمكنك العودة إلى هذه الشاشة بالنقر المزدوج على نموذج TFLite أسفل دليل ml في Android Studio. صفحة تفاصيل النموذج في Android Studio

استخدم مكتبة مهام TensorFlow Lite

تحتوي مكتبة المهام TensorFlow Lite على مجموعة من المكتبات القوية وسهلة الاستخدام الخاصة بالمهام لمطوري التطبيقات لإنشاء تجارب تعلم تعلم مع TFLite. إنه يوفر واجهات نموذجية محسّنة خارج الصندوق لمهام التعلم الآلي الشائعة ، مثل تصنيف الصور ، والسؤال والجواب ، وما إلى ذلك. تم تصميم واجهات النموذج خصيصًا لكل مهمة لتحقيق أفضل أداء وإمكانية استخدام. تعمل مكتبة المهام عبر الأنظمة الأساسية ويتم دعمها على Java و C ++ و Swift (قريبًا).

لاستخدام مكتبة الدعم في تطبيق Android الخاص بك ، نوصي باستخدام AAR المستضافة في MavenCentral لمكتبة Task Vision ومكتبة Task Text ، على التوالي.

يمكنك تحديد ذلك في تبعيات build.gradle على النحو التالي:

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

لاستخدام اللقطات الليلية ، تأكد من إضافة مستودع لقطات Sonatype .

راجع المقدمة في نظرة عامة على مكتبة مهام TensorFlow Lite لمزيد من التفاصيل.

استخدم مكتبة دعم Android TensorFlow Lite

تسهل مكتبة دعم Android TensorFlow Lite دمج النماذج في تطبيقك. إنه يوفر واجهات برمجة تطبيقات عالية المستوى تساعد في تحويل بيانات الإدخال الأولية إلى النموذج المطلوب بواسطة النموذج ، وتفسير مخرجات النموذج ، مما يقلل من مقدار التعليمات البرمجية المعيارية المطلوبة.

وهو يدعم تنسيقات البيانات الشائعة للمدخلات والمخرجات ، بما في ذلك الصور والمصفوفات. كما أنه يوفر وحدات المعالجة المسبقة واللاحقة التي تؤدي مهام مثل تغيير حجم الصورة والقص.

لاستخدام مكتبة الدعم في تطبيق Android الخاص بك ، نوصي باستخدام مكتبة دعم TensorFlow Lite المستضافة في MavenCentral .

يمكنك تحديد ذلك في تبعيات build.gradle على النحو التالي:

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

لاستخدام اللقطات الليلية ، تأكد من إضافة مستودع لقطات Sonatype .

للبدء ، اتبع التعليمات الموجودة في مكتبة دعم Android TensorFlow Lite .

استخدم TensorFlow Lite AAR من MavenCentral

لاستخدام TensorFlow Lite في تطبيق Android الخاص بك ، نوصي باستخدام TensorFlow Lite AAR المستضاف في MavenCentral .

يمكنك تحديد ذلك في تبعيات build.gradle على النحو التالي:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly-SNAPSHOT'
}

لاستخدام اللقطات الليلية ، تأكد من إضافة مستودع لقطات Sonatype .

يتضمن هذا AAR ثنائيات لجميع Android ABIs . يمكنك تقليل حجم الملف الثنائي للتطبيق الخاص بك عن طريق تضمين ABI فقط التي تحتاج إلى دعمها.

نوصي معظم المطورين بحذف x86 و x86_64 و arm32 ABI. يمكن تحقيق ذلك من خلال تهيئة Gradle التالية ، والتي تتضمن على وجه التحديد armeabi-v7a و arm64-v8a ، والتي يجب أن تغطي معظم أجهزة Android الحديثة.

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

لمعرفة المزيد حول abiFilters ، راجع NdkOptions في وثائق Android Gradle.

أنشئ تطبيق Android باستخدام C ++

هناك طريقتان لاستخدام TFLite من خلال C ++ إذا أنشأت تطبيقك باستخدام NDK:

استخدم TFLite C API

هذا هو النهج الموصى به . قم بتنزيل TensorFlow Lite AAR المستضاف في MavenCentral ، وأعد تسميته إلى tensorflow-lite-*.zip ، وقم بفك ضغطه. يجب عليك تضمين ملفات الرأس الأربعة في headers/tensorflow/lite/ and headers/tensorflow/lite/c/ folder libtensorflowlite_jni.so الديناميكية ذات الصلة libtensorflowlite_jni.so في مجلد jni/ في مشروع NDK الخاص بك.

يحتوي ملف الرأس c_api.h على وثائق أساسية حول استخدام TFLite C API.

استخدم TFLite C ++ API

إذا كنت ترغب في استخدام TFLite من خلال واجهة برمجة تطبيقات C ++ ، فيمكنك إنشاء مكتبات مشتركة C ++:

32 بت armeabi-v7a:

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

64 بت arm64-v8a:

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

حاليًا ، لا توجد طريقة مباشرة لاستخراج جميع ملفات الرأس المطلوبة ، لذلك يجب عليك تضمين جميع ملفات الرأس في tensorflow/lite/ من مستودع TensorFlow. بالإضافة إلى ذلك ، ستحتاج إلى ملفات رأس من FlatBuffers و Abseil .