أداة تحليل مجموعة تعلّم الآلة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
توفِّر حزمة تعلُّم الآلة من 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.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# ML Kit Analyzer\n\nGoogle's [ML Kit](https://developers.google.com/ml-kit/guides) provides on-device machine learning Vision APIs for detecting\nfaces, scanning barcodes, labeling images, and more. ML Kit Analyzer makes it\neasier to integrate ML Kit with your CameraX app.\n\nML Kit Analyzer is an implementation of the [`ImageAnalysis.Analyzer`](/reference/androidx/camera/core/ImageAnalysis.Analyzer) interface. It overrides the [default target resolution](/reference/androidx/camera/core/ImageAnalysis.Analyzer#getDefaultTargetResolution())\n(if needed) to optimize for ML Kit usage, handles the coordinate transformations,\nand passes the frames to ML Kit, which returns the aggregated analysis results.\n\nImplement ML Kit Analyzer\n-------------------------\n\nTo implement ML Kit Analyzer, we recommend using the [`CameraController`](/reference/androidx/camera/view/CameraController) class, which works with [`PreviewView`](/reference/androidx/camera/view/PreviewView) to display UI elements. When implemented using `CameraController`, ML Kit Analyzer\nhandles the coordinate transformations between the original `ImageAnalysis`\nstream and `PreviewView` for you. It receives the target coordinate system from\nCameraX, calculates the coordinate transformation,\nand forwards it to ML Kit's [`Detector`](https://developers.google.com/android/reference/com/google/mlkit/vision/interfaces/Detector) class for analysis.\n\nTo use ML Kit Analyzer with `CameraController`, call [`setImageAnalysisAnalyzer()`](/reference/androidx/camera/view/CameraController#setImageAnalysisAnalyzer(java.util.concurrent.Executor,androidx.camera.core.ImageAnalysis.Analyzer)) and pass it\na new ML Kit Analyzer object with the following in its constructor:\n\n- A list of ML Kit `Detector`s, which CameraX invokes sequentially in order.\n- The target coordinate system that determines the coordinates of the ML Kit output:\n\n - [`COORDINATE_SYSTEM_VIEW_REFERENCED`](/reference/androidx/camera/view/CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED()): the transformed `PreviewView` coordinates.\n - [`COORDINATE_SYSTEM_ORIGINAL`](/reference/androidx/camera/core/ImageAnalysis#COORDINATE_SYSTEM_ORIGINAL()): the original `ImageAnalysis` stream coordinates.\n- An [`Executor`](/reference/java/util/concurrent/Executor) that invokes the Consumer callback and delivers\n the [`MlKitAnalyzer.Result`](/reference/androidx/camera/mlkit/vision/MlKitAnalyzer.Result), or the aggregated ML Kit result of a camera frame, to the app.\n\n- A [`Consumer`](/reference/androidx/core/util/Consumer), which CameraX invokes when there is new ML Kit output.\n\nThe following code implements ML Kit Analyzer using `CameraController` to set up\na [`BarcodeScanner`](https://developers.google.com/android/reference/com/google/mlkit/vision/barcode/BarcodeScanner) to detect QR codes: \n\n### Kotlin\n\n```kotlin\n// create BarcodeScanner object\nval options = BarcodeScannerOptions.Builder()\n .setBarcodeFormats(Barcode.FORMAT_QR_CODE)\n .build()\nval barcodeScanner = BarcodeScanning.getClient(options)\n\ncameraController.setImageAnalysisAnalyzer(\n ContextCompat.getMainExecutor(this),\n MlKitAnalyzer(\n listOf(barcodeScanner),\n COORDINATE_SYSTEM_VIEW_REFERENCED,\n ContextCompat.getMainExecutor(this)\n ) { result: MlKitAnalyzer.Result? -\u003e\n // The value of result.getResult(barcodeScanner) can be used directly for drawing UI overlay.\n }\n)\n```\n\n### Java\n\n```java\n// create BarcodeScanner object\nBarcodeScannerOptions options = new BarcodeScannerOptions.Builder()\n .setBarcodeFormats(Barcode.FORMAT_QR_CODE)\n .build();\nBarcodeScanner barcodeScanner = BarcodeScanning.getClient(options);\n\ncameraController.setImageAnalysisAnalyzer(executor,\n new MlKitAnalyzer(List.of(barcodeScanner), COORDINATE_SYSTEM_VIEW_REFERENCED,\n executor, result -\u003e {\n // The value of result.getResult(barcodeScanner) can be used directly for drawing UI overlay.\n });\n```\n\nIn the code sample above, ML Kit Analyzer passes the following to\n`BarcodeScanner`'s `Detector` class:\n\n- The transformation [Matrix](/reference/android/graphics/Matrix) based on `COORDINATE_SYSTEM_VIEW_REFERENCED` that represents the target coordinate system.\n- The camera frames.\n\nIf `BarcodeScanner` runs into any issues, then its `Detector` [throws an error](/reference/androidx/camera/mlkit/vision/MlKitAnalyzer.Result#getThrowable(com.google.mlkit.vision.interfaces.Detector%3C?%3E)),\nand ML Kit Analyzer propagates it to your app. If successful, then ML Kit Analyzer returns [`MLKitAnalyzer.Result#getValue()`](/reference/androidx/camera/mlkit/vision/MlKitAnalyzer.Result#getValue(com.google.mlkit.vision.interfaces.Detector%3CT%3E)), which\nin this case is the [`Barcode`](https://developers.google.com/android/reference/com/google/mlkit/vision/barcode/common/Barcode) object.\n\nYou can also implement ML Kit Analyzer using the [`ImageAnalysis`](/reference/androidx/camera/core/ImageAnalysis) class that is part of `camera-core`. However, because `ImageAnalysis`\nis not integrated with `PreviewView`,\nyou must manually handle the coordinate transformations. For more information,\nsee the [ML Kit Analyzer](/reference/androidx/camera/mlkit/vision/MlKitAnalyzer) reference documentation.\n\nAdditional resources\n--------------------\n\nFor a working camera app with ML Kit Analyzer functionality,\nsee the [CameraX-MLKit](https://github.com/android/camera-samples/tree/main/CameraX-MLKit) sample."]]