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

توفّر حزمة تعلّم الآلة من Google واجهات برمجة تطبيقات رؤية تستند إلى تقنية تعلُّم الآلة على الجهاز لرصد الوجوه ومسح الرموز الشريطية وتصنيف الصور وغير ذلك. تسهّل أداة تحليل أدوات تعلّم الآلة دمج أدوات تعلّم الآلة مع تطبيق CameraX.

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

استخدام أداة تحليل أدوات تعلُّم الآلة

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

لاستخدام أداة تحليل أدوات تعلّم الآلة مع CameraController، استدعِ setImageAnalysisAnalyzer() واضبطه كائن "أداة تحليل أدوات تعلّم الآلة" جديد مع الدالة التالية في الدالة الإنشائية له:

  • قائمة بأدوات تعلّم الآلة Detector التي تستدعيها CameraX بشكل تسلسلي بالترتيب
  • نظام الإحداثيات الهدف الذي يحدّد إحداثيات مُخرجات تعلّم الآلة:

  • تمثّل هذه السمة Executor التي تستدعي معاودة الاتصال بالمستهلك وتعرض MlKitAnalyzer.Result، أو نتيجة تعلّم الآلة المجمّعة لإطار الكاميرا، إلى التطبيق.

  • تمثّل هذه السمة Consumer التي تستدعيها CameraX عند توفُّر مخرجات ML Kit جديدة.

يُطبِّق الرمز التالي "أداة تحليل أدوات تعلّم الآلة" باستخدام CameraController لإعداد BarcodeScanner لرصد رموز الاستجابة السريعة:

Kotlin

// 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.
    }
)

Java

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

cameraController.setImageAnalysisAnalyzer(executor,
    new MlKitAnalyzer(List.of(barcodeScanner), COORDINATE_SYSTEM_VIEW_REFERENCED,
    executor, result -> {
   // The value of result.getResult(barcodeScanner) can be used directly for drawing UI overlay.
 });

في نموذج الرموز أعلاه، ترسل أداة تحليل أدوات تعلّم الآلة ما يلي إلى فئة Detector الخاصة بـ BarcodeScanner:

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

إذا واجه BarcodeScanner أي مشاكل، يعرض Detector رسالة خطأ، وستنشر أداة تحليل أدوات تعلّم الآلة في تطبيقك. وفي حال نجاحها، تعرض أداة تحليل حزمة تعلّم الآلة MLKitAnalyzer.Result#getValue()، الذي في هذه الحالة يكون الكائن Barcode.

يمكنك أيضًا استخدام "أداة تحليل أدوات تعلّم الآلة" باستخدام الفئة ImageAnalysis التي تشكّل جزءًا من camera-core. مع ذلك، بما أنّ السمة ImageAnalysis غير مُدمَجة مع PreviewView، عليك معالجة عمليات تحويل الإحداثيات يدويًا. لمزيد من المعلومات، راجِع المستندات المرجعية أداة تحليل أدوات تعلّم الآلة.

مراجع إضافية

للحصول على تطبيق كاميرا يعمل باستخدام وظيفة "محلل ML Kit"، اطّلِع على نموذج cameraX-MLKit.