ابزارهای توسعه برای اندروید

LiteRT تعدادی ابزار برای ادغام مدل ها در برنامه های اندروید ارائه می دهد. در این صفحه ابزارهای توسعه برای استفاده در ساختن برنامه ها با Kotlin، جاوا، و C++ و همچنین پشتیبانی از توسعه LiteRT در Android Studio توضیح داده شده است.

ابزارهای ساخت با کاتلین و جاوا

بخش‌های زیر ابزارهای توسعه LiteRT را که از زبان‌های Kotlin و Java استفاده می‌کنند، توضیح می‌دهد.

کتابخانه LiteRT

با افزودن AAR میزبانی شده در MavenCentral به پروژه توسعه خود، از کتابخانه LiteRT در برنامه اندروید خود استفاده کنید.

شما می توانید این را در وابستگی های build.gradle خود به صورت زیر مشخص کنید:

dependencies {
    ...
    implementation 'com.google.ai.edge.litert:+'
}

repositories {
    ...
    google()
}

اگر از عکس های فوری شبانه استفاده می کنید، مطمئن شوید که مخزن عکس فوری Sonatype را به پروژه خود اضافه کرده اید.

این AAR شامل باینری ها برای همه ABI های Android است. شما می توانید اندازه باینری برنامه خود را تنها با گنجاندن ABI هایی که باید پشتیبانی کنید، کاهش دهید.

مگر اینکه سخت افزار خاصی را هدف قرار دهید، در بیشتر موارد باید ABI های x86 ، x86_64 و arm32 را حذف کنید. شما می توانید این را با پیکربندی Gradle زیر پیکربندی کنید. این به طور خاص فقط شامل armeabi-v7a و arm64-v8a است و باید اکثر دستگاه‌های اندرویدی مدرن را پوشش دهد.

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

برای کسب اطلاعات بیشتر در مورد abiFilters ، ABI های Android را در مستندات Android NDK ببینید.

کتابخانه پشتیبانی LiteRT

کتابخانه پشتیبانی اندروید LiteRT ادغام مدل ها را در برنامه شما آسان تر می کند. APIهای سطح بالایی را ارائه می دهد که به تبدیل داده های ورودی خام به فرم مورد نیاز مدل کمک می کند و خروجی مدل را تفسیر می کند و مقدار کد دیگ مورد نیاز را کاهش می دهد.

از فرمت های داده رایج برای ورودی و خروجی، از جمله تصاویر و آرایه ها پشتیبانی می کند. همچنین واحدهای پیش و پس از پردازش را فراهم می کند که وظایفی مانند تغییر اندازه و برش تصویر را انجام می دهند.

با گنجاندن LiteRT Support Library AAR میزبانی شده در MavenCentral از کتابخانه پشتیبانی در برنامه Android خود استفاده کنید.

شما می توانید این را در وابستگی های build.gradle خود به صورت زیر مشخص کنید:

dependencies {
    implementation 'com.google.ai.edge.litert:litert-support:+'
}

اگر از عکس های فوری شبانه استفاده می کنید، مطمئن شوید که مخزن عکس فوری Sonatype را به پروژه خود اضافه کرده اید.

برای دستورالعمل‌های نحوه شروع، به کتابخانه پشتیبانی Android LiteRT مراجعه کنید.

با استفاده از اندروید استودیو

علاوه بر کتابخانه های توسعه که در بالا توضیح داده شد، Android Studio همچنین از یکپارچه سازی مدل های LiteRT پشتیبانی می کند، همانطور که در زیر توضیح داده شده است.

Android Studio ML Model Binding

ویژگی ML Model Binding Android Studio نسخه 4.1 و بالاتر به شما امکان می‌دهد فایل‌های مدل .tflite را در برنامه Android موجود خود وارد کنید و کلاس‌های رابط ایجاد کنید تا ادغام کد خود با یک مدل آسان‌تر شود.

برای وارد کردن یک مدل LiteRT:

  1. روی ماژولی که می‌خواهید از مدل LiteRT استفاده کنید راست کلیک کنید یا روی File > New > Other > LiteRT Model کلیک کنید.

  2. محل فایل LiteRT خود را انتخاب کنید. توجه داشته باشید که ابزار، وابستگی ماژول را با ML Model binding پیکربندی می کند و به طور خودکار همه وابستگی های مورد نیاز را به فایل build.gradle ماژول اندروید شما اضافه می کند.

  3. برای شروع فرآیند واردات، روی Finish کلیک کنید. وقتی وارد کردن به پایان رسید، ابزار صفحه‌ای را نمایش می‌دهد که مدل را شامل تانسورهای ورودی و خروجی آن توصیف می‌کند.

  4. برای شروع استفاده از مدل، Kotlin یا Java را انتخاب کنید، کد را در قسمت Sample Code کپی و پیست کنید.

می‌توانید با دوبار کلیک کردن روی مدل TensorFlow Lite زیر فهرست ml در Android Studio به صفحه اطلاعات مدل بازگردید. برای اطلاعات بیشتر در مورد استفاده از ویژگی Modle Binding Android Studio، به یادداشت‌های انتشار Android Studio مراجعه کنید. برای مروری بر استفاده از مدل binding در Android Studio، دستورالعمل‌های نمونه کد را ببینید.

ابزارهایی برای ساخت با C و C++

کتابخانه های C و C++ برای LiteRT در درجه اول برای توسعه دهندگانی است که از کیت توسعه بومی Android (NDK) برای ساخت برنامه های خود استفاده می کنند. اگر برنامه خود را با NDK بسازید، دو راه برای استفاده از LiteRT از طریق ++C وجود دارد:

LiteRT C API

استفاده از این API رویکرد توصیه شده برای توسعه دهندگانی است که از NDK استفاده می کنند. LiteRT AAR میزبانی شده در فایل MavenCentral را دانلود کنید، نام آن را به tensorflow-lite-*.zip تغییر دهید و آن را از حالت فشرده خارج کنید. شما باید چهار فایل هدر را در headers/tensorflow/lite/ و headers/tensorflow/lite/c/ و کتابخانه پویا libtensorflowlite_jni.so را در پوشه jni/ در پروژه NDK خود وارد کنید.

فایل هدر c_api.h حاوی اسناد اولیه در مورد استفاده از LiteRT C API است.

LiteRT C++ API

اگر می‌خواهید از LiteRT از طریق C++ API استفاده کنید، می‌توانید کتابخانه‌های مشترک 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 نیاز دارید.