1. Pengantar
ML Kit adalah SDK seluler yang menghadirkan keahlian machine learning Google ke aplikasi Android dan iOS dalam paket yang canggih dan mudah digunakan. Baik sebagai pemula atau berpengalaman dalam machine learning, Anda dapat dengan mudah mengimplementasikan fungsi yang diperlukan hanya dalam beberapa baris kode. Tidak perlu memiliki pengetahuan mendalam tentang jaringan neural atau pengoptimalan model untuk memulai.
Jika Anda mengalami masalah (bug kode, kesalahan gramatikal, susunan kata yang tidak jelas, dll.) saat mengerjakan codelab ini, laporkan masalah tersebut melalui link Laporkan kesalahan di pojok kiri bawah codelab.
Bagaimana cara kerjanya?
ML Kit memudahkan penerapan teknik ML di aplikasi Anda dengan menyatukan teknologi ML Google, seperti Mobile Vision, dan TensorFlow Lite, bersama-sama dalam satu SDK. Baik Anda memerlukan kemampuan real-time model di perangkat Mobile Vision, atau fleksibilitas model TensorFlow Lite kustom, ML Kit dapat membantu Anda.
Codelab ini akan memandu Anda dalam membuat aplikasi Android yang dapat otomatis mendeteksi fitur teks dan wajah dalam gambar.
Yang akan Anda buat
Dalam codelab ini, Anda akan membangun aplikasi Android dengan ML Kit. Aplikasi Anda akan:
|
Yang akan Anda pelajari
- Cara menggunakan ML Kit SDK untuk menambahkan kemampuan Machine Learning lanjutan dengan mudah seperti pengenalan teks dan deteksi fitur wajah
Yang Anda butuhkan
- Versi terbaru Android Studio (v3.0+)
- Emulator Android Studio atau perangkat Android fisik
- Kode contoh
- Pengetahuan dasar tentang pengembangan Android di Java
- Pemahaman dasar tentang model machine learning
Codelab ini berfokus pada ML Kit. Konsep dan blok kode yang tidak relevan akan dibahas sekilas dan disediakan, jadi Anda cukup menyalin dan menempelkannya.
2. Mempersiapkan
Download Kode
Klik link berikut untuk mendownload semua kode untuk codelab ini:
Ekstrak file ZIP yang didownload. Tindakan ini akan mengekstrak folder root (mlkit-android-master
) dengan semua resource yang Anda perlukan. Untuk codelab ini, Anda hanya memerlukan resource di subdirektori vision
.
Subdirektori vision
di repositori mlkit-android-master
berisi dua direktori:
- starter—Memulai kode yang Anda bangun di codelab ini.
- final—Kode lengkap untuk aplikasi contoh yang telah selesai.
3. Memeriksa dependensi untuk ML Kit
Memverifikasi dependensi untuk ML Kit
Baris berikut seharusnya sudah ditambahkan ke akhir file build.gradle di direktori app
project Anda (periksa untuk mengonfirmasi):
build.gradle
dependencies {
// Face features
implementation 'com.google.mlkit:face-detection:16.0.0'
// Text features
implementation 'com.google.android.gms:play-services-mlkit-text-recognition:16.0.0'
}
Berikut adalah dependensi ML Kit tertentu yang Anda perlukan untuk menerapkan fitur dalam codelab ini.
4. Menjalankan aplikasi awal
Setelah mengimpor project ke Android Studio dan memeriksa dependensi untuk ML Kit, Anda siap menjalankan aplikasi untuk pertama kalinya. Mulai emulator Android Studio, lalu klik Run ( ) di toolbar Android Studio.
Aplikasi akan diluncurkan di emulator Anda. Pada tahap ini, Anda akan melihat tata letak dasar yang memiliki kolom drop-down yang memungkinkan Anda memilih di antara 3 gambar. Di bagian berikutnya, Anda akan menambahkan pengenalan teks ke aplikasi untuk mengidentifikasi teks dalam gambar.
5. Tambahkan pengenalan teks di perangkat
Pada langkah ini, kita akan menambahkan fungsi ke aplikasi Anda untuk mengenali teks dalam gambar.
Menyiapkan dan menjalankan pengenalan teks di perangkat pada gambar
Tambahkan kode berikut ke metode runTextRecognition
dari class MainActivity
:
MainActivity.java
private void runTextRecognition() {
InputImage image = InputImage.fromBitmap(mSelectedImage, 0);
TextRecognizer recognizer = TextRecognition.getClient();
mTextButton.setEnabled(false);
recognizer.process(image)
.addOnSuccessListener(
new OnSuccessListener<Text>() {
@Override
public void onSuccess(Text texts) {
mTextButton.setEnabled(true);
processTextRecognitionResult(texts);
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Task failed with an exception
mTextButton.setEnabled(true);
e.printStackTrace();
}
});
}
Kode di atas mengonfigurasi detektor pengenalan teks dan memanggil fungsi processTextRecognitionResult
dengan respons.
Memproses respons pengenalan teks
Tambahkan kode berikut ke processTextRecognitionResult
di class MainActivity
untuk mengurai hasil dan menampilkannya di aplikasi Anda.
MainActivity.java
private void processTextRecognitionResult(Text texts) {
List<Text.TextBlock> blocks = texts.getTextBlocks();
if (blocks.size() == 0) {
showToast("No text found");
return;
}
mGraphicOverlay.clear();
for (int i = 0; i < blocks.size(); i++) {
List<Text.Line> lines = blocks.get(i).getLines();
for (int j = 0; j < lines.size(); j++) {
List<Text.Element> elements = lines.get(j).getElements();
for (int k = 0; k < elements.size(); k++) {
Graphic textGraphic = new TextGraphic(mGraphicOverlay, elements.get(k));
mGraphicOverlay.add(textGraphic);
}
}
}
}
Menjalankan aplikasi di emulator
Sekarang, klik Run ( ) di toolbar Android Studio. Setelah aplikasi dimuat, pastikan Test Image 1(Text)
dipilih di kolom drop-down lalu klik tombol FIND TEXT
.
Sekarang aplikasi Anda akan terlihat seperti gambar di bawah ini, yang menampilkan hasil pengenalan teks dan kotak pembatas yang ditempatkan di atas gambar asli.
Foto: Kai Schreiber / Wikimedia Commons / CC BY-SA 2.0
Selamat, Anda baru saja menambahkan pengenalan teks di perangkat ke aplikasi Anda menggunakan ML Kit! Pengenalan teks di perangkat sangat cocok untuk banyak kasus penggunaan karena berfungsi bahkan saat aplikasi tidak memiliki konektivitas internet dan cukup cepat untuk digunakan pada gambar diam serta frame video live.
6. Tambahkan deteksi kontur wajah di perangkat
Pada langkah ini, kita akan menambahkan fungsi ke aplikasi Anda untuk mengenali kontur wajah dalam gambar.
Menyiapkan dan menjalankan deteksi kontur wajah di perangkat pada gambar
Tambahkan kode berikut ke metode runFaceContourDetection
dari class MainActivity
:
MainActivity.java
private void runFaceContourDetection() {
InputImage image = InputImage.fromBitmap(mSelectedImage, 0);
FaceDetectorOptions options =
new FaceDetectorOptions.Builder()
.setPerformanceMode(FaceDetectorOptions.PERFORMANCE_MODE_FAST)
.setContourMode(FaceDetectorOptions.CONTOUR_MODE_ALL)
.build();
mFaceButton.setEnabled(false);
FaceDetector detector = FaceDetection.getClient(options);
detector.process(image)
.addOnSuccessListener(
new OnSuccessListener<List<Face>>() {
@Override
public void onSuccess(List<Face> faces) {
mFaceButton.setEnabled(true);
processFaceContourDetectionResult(faces);
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Task failed with an exception
mFaceButton.setEnabled(true);
e.printStackTrace();
}
});
}
Kode di atas mengonfigurasi detektor kontur wajah dan memanggil fungsi processFaceContourDetectionResult
dengan respons.
Memproses respons deteksi kontur wajah
Tambahkan kode berikut ke processFaceContourDetectionResult
di class MainActivity
untuk mengurai hasil dan menampilkannya di aplikasi Anda.
MainActivity.java
private void processFaceContourDetectionResult(List<Face> faces) {
// Task completed successfully
if (faces.size() == 0) {
showToast("No face found");
return;
}
mGraphicOverlay.clear();
for (int i = 0; i < faces.size(); ++i) {
Face face = faces.get(i);
FaceContourGraphic faceGraphic = new FaceContourGraphic(mGraphicOverlay);
mGraphicOverlay.add(faceGraphic);
faceGraphic.updateFace(face);
}
}
Menjalankan aplikasi di emulator
Sekarang, klik Run ( ) di toolbar Android Studio. Setelah aplikasi dimuat, pastikan Test Image 2 (Face)
dipilih di kolom drop-down lalu klik tombol FIND FACE CONTOUR
.
Sekarang aplikasi Anda akan terlihat seperti gambar di bawah ini, yang menunjukkan hasil deteksi kontur wajah dan menampilkan kontur wajah sebagai titik yang ditempatkan di atas gambar asli.
Selamat, Anda baru saja menambahkan deteksi kontur wajah di perangkat ke aplikasi Anda menggunakan ML Kit! Deteksi kontur wajah di perangkat sangat cocok untuk banyak kasus penggunaan karena fitur ini berfungsi bahkan saat aplikasi tidak memiliki konektivitas internet dan cukup cepat untuk digunakan pada gambar diam serta frame video live.
7. Selamat!
Anda telah berhasil menggunakan ML Kit untuk menambahkan kemampuan machine learning canggih ke aplikasi Anda dengan mudah.
Yang telah kita bahas
- Cara menambahkan ML Kit ke aplikasi Android Anda
- Cara menggunakan pengenalan teks di perangkat pada ML Kit untuk menemukan teks dalam gambar
- Cara menggunakan kontur wajah di perangkat dalam ML Kit untuk mengidentifikasi fitur wajah pada gambar
Langkah Berikutnya
- Gunakan ML Kit di aplikasi Android Anda sendiri!