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

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

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

تنفيذ أداة تحليل أدوات تعلُّم الآلة

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

لاستخدام أداة تحليل معدّات تعلُّم الآلة مع CameraController، يُرجى الاتصال بالرقم setImageAnalysisAnalyzer() وتمريره. كائن "أداة تحليل مجموعة أدوات تعلُّم الآلة" الجديد مع ما يلي في الدالة الإنشائية:

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

  • Executor الذي يستدعي معاودة الاتصال بالمستهلك ويقدِّم MlKitAnalyzer.Result، أو نتيجة حزمة تعلُّم الآلة المجمَّعة لإطار الكاميرا

  • A Consumer، الذي يستدعيه CameraX عند توفّر ناتج جديد من حزمة تعلّم الآلة.

ينفذ الرمز التالي أداة تحليل تعلّم الآلة باستخدام CameraController لإعداد a 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.
 });

في عينة التعليمات البرمجية أعلاه، تمرر ML Kit Analysis ما يلي إلى الصف Detector الخاص بـ "BarcodeScanner":

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

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

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

مصادر إضافية

إذا كان تطبيق الكاميرا يعمل ويتضمّن وظيفة "أداة تحليل معدّات تعلُّم الآلة" يمكنك الاطّلاع على نموذج cameraX-MLKit.