أداة تحليل مجموعة تعلّم الآلة

توفّر حزمة تعلّم الآلة من Google واجهات برمجة تطبيقات Vision API لتعلُّم الآلة على الجهاز فقط من أجل رصد الوجوه ومسح الرموز الشريطية ضوئيًا وتصنيف الصور والمزيد. تسهّل أداة ML Kit Analyzer دمج حزمة تعلّم الآلة مع تطبيق CameraX.

"محلّل حزمة تعلّم الآلة" هو تنفيذ لواجهة ImageAnalysis.Analyzer. وتتجاوز الدقة المستهدَفة التلقائية (إذا لزم الأمر) لتحسين استخدام "حزمة تعلّم الآلة"، وتتعامل مع عمليات تحويل الإحداثيات، وتمرّر اللقطات إلى "حزمة تعلّم الآلة" التي تعرض نتائج التحليل المجمّعة.

تنفيذ محلّل "حزمة تعلّم الآلة"

لتنفيذ حزمة تعلّم الآلة Analyzer، ننصحك باستخدام الفئة CameraController التي تعمل مع PreviewView لعرض عناصر في واجهة المستخدم. عند تنفيذ ذلك باستخدام CameraController، يتولّى محلّل حزمة تعلّم الآلة عمليات تحويل الإحداثيات بين بث ImageAnalysis الأصلي وPreviewView نيابةً عنك. يتلقّى نظام الإحداثيات المستهدَف من CameraX، ويحسب تحويل الإحداثيات، ويعيد توجيهه إلى فئة Detector في "حزمة تعلّم الآلة" لتحليله.

لاستخدام ML Kit Analyzer مع CameraController، يمكنك استدعاء setImageAnalysisAnalyzer() وتمرير عنصر ML Kit Analyzer جديد مع ما يلي في الدالة الإنشائية:

  • قائمة بميزات Detector في "حزمة تعلّم الآلة" التي تستدعيها CameraX بالتسلسل حسب الترتيب
  • نظام الإحداثيات المستهدَف الذي يحدّد إحداثيات مخرجات "حزمة تعلّم الآلة":

  • ‫Executor يستدعي دالة الاستدعاء Consumer callback ويعرض MlKitAnalyzer.Result أو نتيجة "حزمة تعلّم الآلة" المجمّعة لإطار الكاميرا في التطبيق.

  • ‫Consumer، والتي تستدعيها CameraX عندما يكون هناك ناتج جديد من "حزمة تعلّم الآلة"

تنفّذ التعليمة البرمجية التالية محلّل "حزمة تعلّم الآلة" باستخدام CameraController لإعداد BarcodeScanner لرصد رموز الاستجابة السريعة:

// create BarcodeScanner object.
val options = BarcodeScannerOptions.Builder()
    .setBarcodeFormats(Barcode.FORMAT_QR_CODE)
    .build()
val barcodeScanner = BarcodeScanning.getClient(options)

cameraController.setImageAnalysisAnalyzer(
    ContextCompat.getMainExecutor(this),
    MlKitAnalyzer(
        listOf(barcodeScanner),
        COORDINATE_SYSTEM_VIEW_REFERENCED,
        ContextCompat.getMainExecutor(this)
    ) { result: MlKitAnalyzer.Result? ->
        // The value of result.getResult(barcodeScanner) can be used directly for drawing UI overlay.
    }
)

في عينة التعليمات البرمجية أعلاه، يمرّر "محلّل حزمة تعلّم الآلة" ما يلي إلى فئة Detector في BarcodeScanner:

  • مصفوفة التحويل استنادًا إلى COORDINATE_SYSTEM_VIEW_REFERENCED التي تمثّل نظام الإحداثيات المستهدَف
  • إطارات الكاميرا

إذا واجهت ميزة "BarcodeScanner" أي مشاكل، سيظهر خطأ في Detector، وسترسله أداة ML Kit Analyzer إلى تطبيقك. وإذا نجحت العملية، ستعرض أداة ML Kit Analyzer القيمة MLKitAnalyzer.Result#getValue()، وهي في هذه الحالة عنصر Barcode.

يمكنك أيضًا تنفيذ ML Kit Analyzer باستخدام فئة ImageAnalysis التي تشكّل جزءًا من camera-core. ومع ذلك، نظرًا لعدم دمج ImageAnalysis مع PreviewView، يجب التعامل مع عمليات تحويل الإحداثيات يدويًا. لمزيد من المعلومات، يُرجى الاطّلاع على المستندات المرجعية حول محلّل حزمة تعلّم الآلة.

مراجع إضافية

للحصول على تطبيق كاميرا يعمل مع وظيفة ML Kit Analyzer، يُرجى الاطّلاع على نموذج CameraX-MLKit.