توفّر حزمة تعلّم الآلة من Google واجهات برمجة تطبيقات رؤية تستند إلى تقنية تعلُّم الآلة على الجهاز لرصد الوجوه ومسح الرموز الشريطية وتصنيف الصور وغير ذلك. تسهّل أداة تحليل أدوات تعلّم الآلة دمج أدوات تعلّم الآلة مع تطبيق CameraX.
أداة تحليل أدوات تعلّم الآلة هي تنفيذ لواجهة ImageAnalysis.Analyzer
. تلغي هذه السياسة دقة الاستهداف التلقائية
(إذا لزم الأمر) لتحسين استخدام أدوات تعلّم الآلة، ومعالجة عمليات تحويل الإحداثيات،
وتمرير الإطارات إلى أدوات تعلّم الآلة التي تعرض نتائج التحليل المجمَّعة.
استخدام أداة تحليل أدوات تعلُّم الآلة
لاستخدام أداة تحليل أدوات تعلّم الآلة، ننصحك باستخدام الفئة CameraController
التي تعمل مع PreviewView
لعرض عناصر واجهة المستخدم. عند تطبيق أداة تحليل تعلّم الآلة باستخدام CameraController
، تعالج هذه الأداة
عمليات تحويل الإحداثيات بين بث ImageAnalysis
الأصلي وPreviewView
نيابةً عنك. تتلقى الأداة نظام الإحداثيات المستهدف من CameraX، وتحتسب تحويل الإحداثيات، ثم تعيد توجيهه إلى فئة Detector
في ML Kit للتحليل.
لاستخدام أداة تحليل أدوات تعلّم الآلة مع CameraController
، استدعِ setImageAnalysisAnalyzer()
واضبطه
كائن "أداة تحليل أدوات تعلّم الآلة" جديد مع الدالة التالية في الدالة الإنشائية له:
- قائمة بأدوات تعلّم الآلة
Detector
التي تستدعيها CameraX بشكل تسلسلي بالترتيب نظام الإحداثيات الهدف الذي يحدّد إحداثيات مُخرجات تعلّم الآلة:
COORDINATE_SYSTEM_VIEW_REFERENCED
: إحداثياتPreviewView
التي تم تحويلها.COORDINATE_SYSTEM_ORIGINAL
: إحداثيات تدفقImageAnalysis
الأصلية
تمثّل هذه السمة
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.