أدوات التطوير لنظام Android

يوفر TensorFlow Lite عددًا من الأدوات لدمج النماذج في تطبيقات Android. توضح هذه الصفحة أدوات التطوير المستخدمة في إنشاء التطبيقات باستخدام Kotlin وJava وC++، بالإضافة إلى دعم تطوير TensorFlow Lite في Android Studio.

للبدء بسرعة في كتابة تعليمات برمجية لنظام Android، راجع Quickstart لنظام Android

أدوات للبناء باستخدام Kotlin وJava

تصف الأقسام التالية أدوات تطوير TensorFlow Lite التي تستخدم لغتي Kotlin وJava.

مكتبة المهام TensorFlow لايت

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

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

يمكنك تحديد ذلك في تبعيات 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 لايت

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

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

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

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

يتضمن AAR ثنائيات لجميع واجهات Android ABI . يمكنك تقليل حجم الملف الثنائي لتطبيقك من خلال تضمين واجهات برمجة التطبيقات (ABI) التي تحتاج إلى دعمها فقط.

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

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

لمعرفة المزيد حول abiFilters ، راجع واجهات برمجة تطبيقات Android في وثائق Android NDK.

مكتبة دعم TensorFlow Lite

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

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

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

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

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

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

للحصول على إرشادات حول كيفية البدء، راجع مكتبة دعم TensorFlow Lite Android .

الحد الأدنى من إصدارات Android SDK للمكتبات

مكتبة minSdkVersion متطلبات الجهاز
Tensorflow-lite 19 يتطلب استخدام NNAPI API 27+
Tensorflow-lite-GPU 19 GLES 3.1 أو OpenCL (متوفر عادةً فقط على API 21+
Tensorflow-lite-hexagon 19 -
Tensorflow-lite-support 19 -
Tensorflow-lite-task-vision 21 تتطلب واجهة برمجة التطبيقات ذات الصلة بـ android.graphics.Color واجهة برمجة التطبيقات API 26+
Tensorflow-lite-task-text 21 -
Tensorflow-lite-task-audio 23 -
Tensorflow-lite-data 19 -

باستخدام أندرويد ستوديو

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

ربط نموذج Android Studio ML

تتيح لك ميزة ML Model Binding في Android Studio 4.1 والإصدارات الأحدث استيراد ملفات نموذج .tflite إلى تطبيق Android الحالي الخاص بك، وإنشاء فئات الواجهة لتسهيل دمج التعليمات البرمجية الخاصة بك مع النموذج.

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

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

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

  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 Native Development Kit (NDK) لإنشاء تطبيقاتهم. هناك طريقتان لاستخدام TFLite من خلال C++ إذا قمت بإنشاء تطبيقك باستخدام NDK:

واجهة برمجة تطبيقات تيفلايت سي

يعد استخدام واجهة برمجة التطبيقات هذه هو الأسلوب الموصى به للمطورين الذين يستخدمون 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.

واجهة برمجة تطبيقات TFLite C++

إذا كنت تريد استخدام TFLite من خلال C++ API، فيمكنك إنشاء مكتبات C++ المشتركة:

32 بت ارميابي-v7a:

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

64 بت الذراع 64-v8a:

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

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