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

LiteRT cung cấp một số công cụ để tích hợp các mô hình vào Android của chúng tôi. Trang này mô tả các công cụ phát triển để sử dụng khi tạo ứng dụng bằng Kotlin, Java và C++, cũng như việc hỗ trợ phát triển LiteRT trong Android Studio.

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

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

thư viện LiteRT

Sử dụng thư viện LiteRT trong ứng dụng Android của bạn bằng cách thêm AAR được lưu trữ tại MavenCentral đối với 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 'com.google.ai.edge.litert:+'
}

repositories {
    ...
    google()
}

Nếu bạn sử dụng ảnh chụp nhanh hàng đêm, đừng quên thêm ảnh chụp nhanh Sonatype kho lưu trữ vào dự án của bạn.

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

Trừ phi bạn đang nhắm mục tiêu đến phần cứng cụ thể, bạn nên bỏ qua x86, x86_64, và arm32 ABI trong hầu hết các trường hợp. Bạn có thể định cấu hình điều này bằng Gradle sau . Cụ thể, mã này chỉ bao gồm armeabi-v7aarm64-v8a, và sẽ 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 Android ABI trong Android NDK tài liệu.

Thư viện hỗ trợ LiteRT

Thư viện hỗ trợ Android LiteRT giúp bạn tích hợp các mô hình dễ dàng hơn vào ứng dụng của bạn. Công cụ này cung cấp các API cấp cao giúp chuyển đổi dữ liệu đầu vào thô dữ liệu sang dạng yêu cầu của mô hình 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 đầu vào và đầu ra, bao gồm cả hình ảnh và mảng. Nó cũng cung cấp các bộ xử lý trước và hậu xử lý để thực hiện các công việc như 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 của bạn bằng cách thêm LiteRT Thư viện hỗ trợ AAR đượ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 'com.google.ai.edge.litert:litert-support:+'
}

Nếu bạn sử dụng ảnh chụp nhanh hàng đêm, đừng quên thêm ảnh chụp nhanh Sonatype kho lưu trữ vào dự án của bạn.

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

Sử dụng Android Studio

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

Liên kết mô hình học máy 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 để giúp tích hợp mã của bạn với một mô hình dễ dàng hơn.

Cách nhập mô hình LiteRT:

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

  2. Chọn vị trí cho tệp LiteRT của bạn. Lưu ý rằng công cụ định cấu hình phần phụ thuộc của mô-đun bằng liên kết Mô hình học máy và tự động thêm tất cả các 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 quá trình nhập hoàn tất, công cụ hiển thị một màn hình mô tả mô hình, bao gồm cả dữ liệu đầu vào và đầu ra của mô hình tensor.

  4. Để bắt đầu sử dụng mô hình này, hãy chọn Kotlin hoặc Java, sao chép và dán mã vào phần 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 TensorFlow Mô hình thu gọn trong thư mục ml trong Android Studio. Để biết thêm thông tin về bằng tính năng Liên kết Modle của Android Studio, hãy xem Android Studio bản phát hành lưu ý. Để 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 mã ví dụ hướng dẫn.

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

Thư viện C và C++ cho LiteRT chủ yếu dành cho nhà phát triển sử dụng Bộ phát triển mã gốc Android (NDK) để tạo ứng dụng của họ. Có hai cách để sử dụng LiteRT thông qua C++ nếu bạn tạo ứng dụng bằng NDK:

LiteRT C API

Sử dụng API này là phương pháp được đề xuất dành cho các nhà phát triển sử dụng NDK. Tải xuống LiteRT AAR được lưu trữ tại MavenCentral tệp, đổi tên thành tensorflow-lite-*.zip rồi giải nén tệp đó. Bạn phải bao gồm 4 tệp tiêu đề trong headers/tensorflow/lite/headers/tensorflow/lite/c/ và thư viện động libtensorflowlite_jni.so có liên quan trong Thư mục jni/ trong 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 LiteRT C API.

API LiteRT C++

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

armeabi-v7a 32 bit:

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

arm64-v8a 64 bit:

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, nên bạn phải đưa tất cả các tệp tiêu đề trong tensorflow/lite/ từ TensorFlow kho lưu trữ. Ngoài ra, bạn cần có các tệp tiêu đề từ FlatBuffersVị trí.