1. مقدمة
ML Kit هي حزمة SDK للأجهزة الجوّالة توفِّر خبرة تكنولوجيا تعلُّم الآلة من Google لتطبيقات Android وiOS في حزمة قوية وسهلة الاستخدام. سواء كنت مبتدئًا أو متمرّسًا في مجال تعلُّم الآلة، يمكنك بسهولة تنفيذ الوظائف التي تحتاجها من خلال بضعة أسطر من الرموز البرمجية. ليست هناك حاجة إلى معرفة عميقة بالشبكات العصبونية أو تحسين النماذج للبدء.
إذا واجهت أي مشاكل (أخطاء في الرموز أو أخطاء نحوية أو صياغة غير واضحة أو غير ذلك) أثناء حلّ هذا الدرس التطبيقي حول الترميز، يُرجى الإبلاغ عن المشكلة من خلال رابط الإبلاغ عن خطأ في أسفل يمين الدرس التطبيقي حول الترميز.
كيف تعمل هذه الميزة؟
تُسهِّل عليك حزمة تعلّم الآلة تطبيق تقنيات تعلُّم الآلة في تطبيقاتك من خلال دمج تقنيات تعلُّم الآلة من Google، مثل Mobile Vision وTensorFlow Lite، معًا في حزمة تطوير برامج واحدة. سواء كنت بحاجة إلى الإمكانات في الوقت الفعلي لطُرز Mobile Vision المتوفّرة على الجهاز أو إلى المرونة في نماذج TensorFlow Lite المخصّصة، ستجد في هذه الأدوات ما تحتاجه من أدوات تعلّم الآلة.
سترشدك هذه الدروس التطبيقية حول الترميز خلال عملية إنشاء تطبيقك على Android الذي يمكنه التعرّف تلقائيًا على النص وملامح الوجه في أي صورة.
ما ستقوم بإنشائه
في هذا الدرس التطبيقي حول الترميز، ستنشئ تطبيق Android باستخدام ML Kit. سينفّذ تطبيقك ما يلي:
|
المعلومات التي ستطّلع عليها
- كيفية استخدام حزمة تطوير البرامج (SDK) لحزمة تعلّم الآلة لإضافة إمكانات تعلُّم الآلة المتقدّمة بسهولة، مثل التعرّف على النص ورصد ملامح الوجه
المتطلبات
- إصدار حديث من "استوديو Android" (الإصدار 3.0 أو الإصدارات الأحدث)
- محاكي "استوديو Android" أو جهاز Android فعلي
- نموذج الرمز
- معرفة أساسية بتطوير Android باستخدام Java
- فهم أساسي لنماذج تعلُّم الآلة
يركّز هذا الدرس التطبيقي حول الترميز على أدوات تعلُّم الآلة. يتم مسح المفاهيم غير ذات الصلة وكتل الرموز ويتم توفيرها لك لنسخها ولصقها ببساطة.
2. بدء الإعداد
تنزيل الرمز
انقر على الرابط التالي لتنزيل جميع الرموز الخاصة بهذا الدرس التطبيقي حول الترميز:
فك ضغط ملف ZIP الذي تم تنزيله. سيؤدي هذا الإجراء إلى فك ضغط المجلد الجذر (mlkit-android-master
) الذي يتضمّن كل الموارد اللازمة. بالنسبة إلى هذا الدرس التطبيقي، ستحتاج فقط إلى الموارد المتوفّرة في الدليل الفرعي vision
.
يحتوي الدليل الفرعي vision
في مستودع mlkit-android-master
على دليلَين:
إجراء التفعيل: بدء الرمز البرمجي الذي اعتمدته في هذا الدرس التطبيقي حول الترميز
أخير: رمز برمجي مكتمل لنموذج التطبيق المكتمل.
3- التحقّق من اعتماديات ML Kit
التحقّق من اعتماديات ML Kit
من المفترض إضافة الأسطر التالية إلى نهاية ملف Build.gradle في دليل app
الخاص بمشروعك (يُرجى وضع علامة في المربّع للتأكيد):
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'
}
في ما يلي تبعيات ML Kit المحددة التي تحتاج إليها لتنفيذ الميزات الواردة في هذا الدرس التطبيقي حول الترميز.
4. تشغيل تطبيق إجراء التفعيل
بعد أن استوردت المشروع إلى "استوديو Android" وراجعت اعتماديات ML Kit، أصبحت جاهزًا لتشغيل التطبيق لأول مرة. ابدأ تشغيل محاكي "استوديو Android" وانقر على تشغيل ( ) في شريط أدوات "استوديو Android".
من المفترض أن يتم تشغيل التطبيق على المحاكي. في هذه المرحلة، يُفترض أن يظهر لك تخطيط أساسي يحتوي على حقل قائمة منسدلة يسمح لك بالاختيار من بين 3 صور. في القسم التالي، ستضيف ميزة التعرّف على النص في تطبيقك لتحديد النص في الصور.
5- إضافة ميزة التعرّف على النص على الجهاز فقط
في هذه الخطوة، سنضيف الوظيفة إلى تطبيقك للتعرّف على النص في الصور.
إعداد ميزة التعرّف على النص في صورة وتشغيلها على الجهاز فقط
أضِف ما يلي إلى طريقة runTextRecognition
لفئة 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();
}
});
}
يقوم الرمز البرمجي أعلاه بإعداد أداة رصد التعرّف على النص واستدعاء الدالة processTextRecognitionResult
مع الاستجابة.
معالجة استجابة التعرّف على النص
أضِف الرمز التالي إلى processTextRecognitionResult
في الفئة MainActivity
لتحليل النتائج وعرضها في تطبيقك.
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);
}
}
}
}
تشغيل التطبيق على المحاكي
انقر الآن على تشغيل ( ) في شريط أدوات "استوديو Android". بعد تحميل التطبيق، يُرجى التأكّد من اختيار
Test Image 1(Text)
في حقل القائمة المنسدلة والنقر على الزر FIND TEXT
.
يُفترض أن يبدو تطبيقك الآن مثل الصورة أدناه، وتعرض نتائج التعرف على النص ومربعات الإحاطة متراكبة فوق الصورة الأصلية.
الصورة: كاي شرايبر / ويكيميديا كومنز / CC BY-SA 2.0
تهانينا، لقد أضفت ميزة التعرّف على النص على الجهاز فقط إلى تطبيقك باستخدام حزمة تعلُّم الآلة. تُعدّ ميزة "التعرّف على النص" على الجهاز فقط مناسبة للعديد من حالات الاستخدام، لأنّها تعمل حتى في حال عدم اتصال التطبيق بالإنترنت، كما أنّها سريعة بما يكفي لاستخدامها مع الصور الثابتة وإطارات الفيديو المباشر.
6- إضافة ميزة "التعرّف على الوجه" على الجهاز فقط
في هذه الخطوة، سنضيف وظيفة إلى تطبيقك تتيح التعرّف على أشكال الوجوه في الصور.
إعداد ميزة "التعرّف على الوجه" وضبطها على الجهاز في إحدى الصور
أضِف ما يلي إلى طريقة runFaceContourDetection
لفئة 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();
}
});
}
يقوم الرمز الموجود أعلاه بإعداد أداة رصد تحديد الوجه واستدعاء الدالة processFaceContourDetectionResult
مع الاستجابة.
معالجة استجابة ميزة "التعرّف على الوجه"
أضِف الرمز التالي إلى processFaceContourDetectionResult
في الفئة MainActivity
لتحليل النتائج وعرضها في تطبيقك.
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);
}
}
تشغيل التطبيق على المحاكي
انقر الآن على تشغيل ( ) في شريط أدوات "استوديو Android". بعد تحميل التطبيق، يُرجى التأكّد من اختيار
Test Image 2 (Face)
في حقل القائمة المنسدلة والنقر على الزر FIND FACE CONTOUR
.
من المفترض أن يظهر تطبيقك الآن على النحو الموضّح في الصورة أدناه، حيث تعرض نتائج التعرّف على تحديد الوجه ومخططات الوجه كنقاط مركّبة أعلى الصورة الأصلية.
تهانينا، لقد أضفت للتو ميزة "رصد تحديد الوجه" على الجهاز فقط إلى تطبيقك باستخدام مجموعة أدوات تعلُّم الآلة. إنّ ميزة "رصد تحديد مناطق الوجه" على الجهاز فقط مناسبة للعديد من حالات الاستخدام لأنّها تعمل حتى إذا لم يتوفّر اتصال بالإنترنت في التطبيق، كما أنّها سريعة بما يكفي لاستخدامها مع الصور الثابتة وإطارات الفيديو المباشر.
7. تهانينا!
لقد استخدمتَ بنجاح حزمة تعلّم الآلة لإضافة إمكانات تعلُّم الآلة المتقدّمة إلى تطبيقك بسهولة.
النقاط التي تناولناها
- كيفية إضافة حزمة تعلُّم الآلة إلى تطبيق Android
- طريقة استخدام ميزة التعرّف على النص على الجهاز فقط في أدوات تعلُّم الآلة للعثور على النص في الصور
- كيفية استخدام ميزة "تحديد الوجه" على الجهاز في "مجموعة أدوات تعلُّم الآلة" للتعرّف على ملامح الوجه في الصور
الخطوات التالية
- استخدام حزمة تعلُّم الآلة في تطبيق Android