Gần đây chủ đề AI và lập trình ứng dụng di động khá hot. Vì vậy, mình muốn chia sẻ với các bạn cách xây dựng ứng dụng ứng dụng AI trên di động.
Nội dung chính
- 1 Chuẩn bị Model
- 2 Tạo ứng dụng Android
- 2.1 Cài đặt Android Studio
- 2.2 Cài đặt NDK để chạy mã bên trong Android:
- 2.3 Thêm các phụ thuộc trong Android
- 2.4 Thêm một bố cục cơ bản để tải và hiển thị giao diện trên Android
- 2.5 Copy model ResNet vào ứng dụng Android
- 2.6 Thiết lập đầu ra của mô hình
- 2.7 Các hàm chính trong Main Activity
- 2.8 Kiểm tra hoạt động của Ứng dụng
Chuẩn bị Model
Chúng tôi sẽ sử dụng mô hình ResNet18 được đào tạo trước cho hướng dẫn này. ResNet18 là mô hình thị giác máy tính hiện đại với 1000 lớp để phân loại.Cài đặt thư viện Torchvision
pip install torchvisionTải model Resnet18
Chúng ta cần thực hiện các lệnh sau để tạo input và load model về máy import torch import torchvision resnet18 = torchvision.models.resnet18(pretrained=True) resnet18.eval() example_inputs = torch.rand(1, 3, 224, 224) resnet18_traced = torch.jit.trace(resnet18, example_inputs = example_inputs) resnet18_traced.save(“resnet18_traced.pt”)Tạo ứng dụng Android
Tải xuống và cài đặt Android Studio nếu bạn chưa cài đặt trong khi cài đặt, hãy nói CÓ để tải xuống và cài đặt SDK. Liên kết: https://developer.android.com/studioCài đặt Android Studio
Sau khi đã cài đặt Android Studio chúng ta lần lượt làm theo các bước sau: – Chọn Empty Activity- Điền tên Project
Cài đặt NDK để chạy mã bên trong Android:
Cài đặt NDK để chạy mã gốc bên trong Android: Chuyển đến Công cụ> Trình quản lý SDK. Nhấp vào Công cụ SDK. Chọn hộp bên cạnh NDK (Cạnh nhau).Thêm các phụ thuộc trong Android
Bên trong build.gradle (Mô-đun: ứng dụng). Thêm phần sau vào bên trong các dependencies . dependencies { implementation fileTree(dir: ‘libs’, include: [‘*.jar’]) implementation ‘androidx.appcompat:appcompat:1.0.2’ implementation ‘androidx.constraintlayout:constraintlayout:1.1.3’ implementation ‘org.pytorch:pytorch_android:1.3.0’ implementation ‘org.pytorch:pytorch_android_torchvision:1.3.0’ }Thêm một bố cục cơ bản để tải và hiển thị giao diện trên Android
Đi tới app> res> layout> activity_main.xml và thêm mã bên dướiBạn sẽ có kết quả như sau:
Chúng ta cần đặt quyền để đọc các kho ảnh trên thiết bị.
Đi tới app> manifests> AndroidManifest.xml và thêm mã bên dưới vào bên trong thẻ tệp kê khai.
Nhận quyền khi tải ứng dụng (Điều này chỉ được yêu cầu cho đến khi bạn cấp quyền).
Đi tới MainActivity java. Thêm mã bên dưới vào bên trong phương thức onCreate ().
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[] {android.Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
Copy model ResNet vào ứng dụng Android
Bây giờ là lúc chúng ta sao chép mô hình mà chúng ta đã tạo bằng cách sử dụng tập lệnh python.
Mở ứng dụng của bạn từ File Explorer / Finder.
Đi tới ứng dụng> src> main.
Tạo một thư mục chứa các nội dung được đặt tên
Sao chép mô hình của bạn trong thư mục này.
Khi mở ra, bạn sẽ thấy trong Android Studio của mình, bạn sẽ thấy như trong hình dưới đây. (Nếu không, nhấp chuột phải vào thư mục ứng dụng và nhấp vào Đồng bộ hóa ứng dụng).
Thiết lập đầu ra của mô hình
Chúng ta cần liệt kê các lớp đầu ra của mô hình. Đi tới app > java. Bên trong thư mục đầu tiên tạo một tên lớp Java mới là ModelClasses. Xác định danh sách các lớp là (Danh sách đầy đủ là 1000 lớp, vì vậy, có thể sao chép tất cả ở Link bên dưới, hãy kiểm tra Json hoặc kiểm tra Git. Để biết danh sách đầy đủ và sao chép bên trong danh sách bên dưới): public static String [] MODEL_CLASSES = new String [] { “tench, Tinca tinca”, “cá vàng, Carassius auratus”Các hàm chính trong Main Activity
Kiểm tra hoạt động của Ứng dụng
Bây giờ là lúc để kiểm tra ứng dụng. Có hai cách để làm điều đó: – Chạy trên Trình giả lập, mình thường hay chạy trên BlueStack – Sử dụng thiết bị Android. (Để làm được điều này, bạn cần bật USB Debugging Sau khi bạn chạy ứng dụng của mình, nó sẽ hoạt động giống như ứng dụng dưới đây:Link app example: https://play.google.com/store/apps/details?id=com.nhunguet.objectdetectordemo&fbclid=IwAR1MEp0bQI3J06-w5w5jLyrn5vxGQNuHzzz5xDUSTar55ngYlDe8QMTSwz0
ad ơi cho mình hỏi, làm sao để tải và cài đặt phần mềm lập trìnha android ạ?
Chao ban,
Ban su dung link nay nhe:
https://developer.android.com/