Công cụ phát triển dành cho Android

TensorFlow Lite cung cấp một số công cụ để tích hợp mô hình vào ứng dụng Android. Trang này mô tả các công cụ phát triển dùng để xây dựng ứng dụng bằng Kotlin, Java và C++, cũng như tính năng hỗ trợ phát triển TensorFlow Lite trong Android Studio.

Các công cụ để tạo ứng dụng bằng Kotlin và Java

Các phần sau đây mô tả các công cụ phát triển cho TensorFlow Lite sử dụng ngôn ngữ Kotlin và Java.

Thư viện TensorFlow Lite

Sử dụng thư viện TensorFlow Lite trong ứng dụng Android bằng cách thêm AAR được lưu trữ tại MavenCentral vào dự án phát triển của bạn.

Bạn có thể chỉ định mã này trong các phần phụ thuộc build.gradle như sau:

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

Nếu bạn sử dụng ảnh chụp nhanh hằng đêm, hãy nhớ thêm kho lưu trữ ảnh chụp nhanh Sonatype vào dự án.

AAR này bao gồm các tệp nhị phân cho tất cả ABI Android. Bạn có thể giảm kích thước tệp nhị phân của ứng dụng bằng cách chỉ thêm các ABI mà bạn cần hỗ trợ.

Trừ phi bạn đang nhắm đến một phần cứng cụ thể, trong hầu hết trường hợp, bạn nên bỏ qua các ABI x86, x86_64arm32. Bạn có thể định cấu hình đối tượng này bằng cấu hình Gradle sau. Thuộc tính này đặc biệt chỉ bao gồm armeabi-v7aarm64-v8a, đồng thời phải bao gồm hầu hết các thiết bị Android hiện đại.

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

Để tìm hiểu thêm về abiFilters, hãy xem ABI Android trong tài liệu về Android NDK.

Thư viện hỗ trợ TensorFlow Lite

Thư viện hỗ trợ Android TensorFlow Lite giúp bạn dễ dàng tích hợp các mô hình vào ứng dụng. Thư viện này cung cấp các API cấp cao giúp chuyển đổi dữ liệu đầu vào thô thành dạng mà mô hình yêu cầu và diễn giải kết quả của mô hình, giảm số lượng mã nguyên mẫu cần thiết.

API này hỗ trợ các định dạng dữ liệu phổ biến cho dữ liệu đầu vào và đầu ra, bao gồm cả hình ảnh và mảng. API này cũng cung cấp các đơn vị tiền xử lý và hậu kỳ để thực hiện các thao tác như đổi kích thước và cắt hình ảnh.

Sử dụng Thư viện hỗ trợ trong ứng dụng Android bằng cách thêm Thư viện hỗ trợ AAR của TensorFlow Lite được lưu trữ tại MavenCentral.

Bạn có thể chỉ định mã này trong các phần phụ thuộc build.gradle như sau:

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

Nếu bạn sử dụng ảnh chụp nhanh hằng đêm, hãy nhớ thêm kho lưu trữ ảnh chụp nhanh Sonatype vào dự án.

Để biết hướng dẫn về cách bắt đầu, hãy xem Thư viện hỗ trợ Android của TensorFlow Lite.

Phiên bản SDK Android tối thiểu cho thư viện

Thư viện minSdkVersion Yêu cầu về thiết bị
tensorflow-lite 21 -
tensorflow-lite-gpu 21 GLES 3.1 hoặc OpenCL (thường chỉ có trên API 21 trở lên)
tensorflow-lite-support 21 -
tensorflow-lite-metadata 21 -

Sử dụng Android Studio

Ngoài các thư viện phát triển như mô tả ở trên, Android Studio cũng hỗ trợ tích hợp các mô hình TensorFlow Lite như mô tả dưới đây.

Liên kết mô hình học máy của Android Studio

Tính năng Liên kết mô hình học máy của Android Studio 4.1 trở lên cho phép bạn nhập các tệp mô hình .tflite vào ứng dụng Android hiện có và tạo các lớp giao diện để dễ dàng tích hợp mã hơn với mô hình.

Cách nhập mô hình TensorFlow Lite (TFLite):

  1. Nhấp chuột phải vào mô-đun mà bạn muốn sử dụng mô hình TFLite hoặc nhấp vào File > New > Other > TensorFlow Lite Model (Tệp > Mới > Khác > Mô hình TensorFlow Lite).

  2. Chọn vị trí của tệp TensorFlow Lite. Xin lưu ý rằng công cụ này sẽ định cấu hình phần phụ thuộc của mô-đun với tính năng liên kết mô hình học máy và tự động thêm mọi phần phụ thuộc bắt buộc vào tệp build.gradle của mô-đun Android.

  3. Nhấp vào Finish để bắt đầu quá trình nhập. Khi nhập xong, công cụ này sẽ hiển thị một màn hình mô tả mô hình, bao gồm cả tensor đầu vào và đầu ra của mô hình.

  4. Để bắt đầu sử dụng mô hình, hãy chọn Kotlin hoặc Java, sao chép và dán mã vào phần Sample Code (Mã mẫu).

Bạn có thể quay lại màn hình thông tin về mô hình bằng cách nhấp đúp vào mô hình TensorFlow Lite trong thư mục ml của Android Studio. Để biết thêm thông tin về cách sử dụng tính năng Liên kết Modle của Android Studio, hãy xem ghi chú phát hành của Android Studio. Để biết thông tin tổng quan về cách sử dụng tính năng liên kết mô hình trong Android Studio, hãy xem instructions ví dụ về mã.

Công cụ xây dựng bằng C và C++

Thư viện C và C++ cho TensorFlow Lite chủ yếu dành cho những nhà phát triển sử dụng Bộ phát triển gốc Android (NDK) để xây dựng ứng dụng. Nếu tạo ứng dụng bằng NDK, có hai cách để sử dụng TFLite thông qua C++:

API TFLite C

Sử dụng API này là phương pháp nên dùng đối với các nhà phát triển sử dụng NDK. Tải tệp TensorFlow Lite AAR được lưu trữ tại Maven Central, đổi tên thành tensorflow-lite-*.zip rồi giải nén. Bạn phải đưa 4 tệp tiêu đề vào các thư mục headers/tensorflow/lite/headers/tensorflow/lite/c/ và thư viện động libtensorflowlite_jni.so có liên quan vào thư mục jni/ của dự án NDK.

Tệp tiêu đề c_api.h chứa tài liệu cơ bản về cách sử dụng API C TFLite.

API TFLite C++

Nếu muốn sử dụng TFLite thông qua API C++, bạn có thể tạo thư viện dùng chung C++:

Armeabi-v7a 32 bit:

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

Hiện tại, không có cách đơn giản nào để trích xuất tất cả các tệp tiêu đề cần thiết. Vì vậy, bạn phải đưa tất cả các tệp tiêu đề vào tensorflow/lite/ từ kho lưu trữ TensorFlow. Ngoài ra, bạn sẽ cần các tệp tiêu đề từ FlatBuffersAbseil.