Google की एमएल किट, डिवाइस पर मशीन लर्निंग के विज़न एपीआई उपलब्ध कराती है, ताकि पता लगाया जा सके चेहरे, बारकोड स्कैन करना, इमेज को लेबल करना वगैरह. ML Kit विश्लेषक इसे बनाता है इससे ML किट को आपके CameraX ऐप्लिकेशन के साथ आसानी से इंटिग्रेट किया जा सकता है.
ML Kit विश्लेषक, ImageAnalysis.Analyzer
इंटरफ़ेस को लागू किया गया है. यह डिफ़ॉल्ट टारगेट रिज़ॉल्यूशन को बदल देता है
(अगर ज़रूरी हो) एमएल किट के इस्तेमाल को ऑप्टिमाइज़ करने के लिए, कोऑर्डिनेट ट्रांसफ़ॉर्मेशन को हैंडल करता है,
और ML Kit को फ़्रेम पास करता है, जो एग्रीगेट किए गए विश्लेषण के नतीजे देता है.
एमएल किट ऐनालाइज़र को लागू करना
एमएल किट ऐनालाइज़र को लागू करने के लिए, हम CameraController
क्लास का इस्तेमाल करने का सुझाव देते हैं. यह क्लास PreviewView
के साथ काम करती है, ताकि यूज़र इंटरफ़ेस (यूआई) एलिमेंट दिखाए जा सकें. जब CameraController
का इस्तेमाल करके लागू किया जाता है, तो एमएल किट ऐनालाइज़र
यह ओरिजनल ImageAnalysis
के बीच कोऑर्डिनेट ट्रांसफ़ॉर्मेशन को हैंडल करता है
स्ट्रीम और PreviewView
आपके लिए. इसे टारगेट कोऑर्डिनेट सिस्टम से मिलता है
CameraX, निर्देशांक बदलाव की गणना करता है,
और उसे विश्लेषण के लिए एमएल किट की Detector
क्लास को फ़ॉरवर्ड करता है.
CameraController
के साथ एमएल किट ऐनालाइज़र का इस्तेमाल करने के लिए, setImageAnalysisAnalyzer()
को कॉल करें और उसे पास करें
एक नया ML Kit Analytics ऑब्जेक्ट, जिसके कंस्ट्रक्टर में नीचे दिया गया है:
- एमएल किट
Detector
की सूची, जिसे CameraX क्रम से लागू करता है. टारगेट कोऑर्डिनेट सिस्टम, जो एमएल किट आउटपुट के निर्देशांक तय करता है:
COORDINATE_SYSTEM_VIEW_REFERENCED
: बदले गएPreviewView
निर्देशांक.COORDINATE_SYSTEM_ORIGINAL
:ImageAnalysis
स्ट्रीम के ओरिजनल निर्देशांक.
एक
Executor
जो उपभोक्ता कॉलबैक को शुरू करता है और डिलीवरी करता हैMlKitAnalyzer.Result
या कैमरे के फ़्रेम से एग्रीगेट किया गया एमएल किट मिला, ऐप्लिकेशन के लिए.एक
Consumer
, जिसे नया ML Kit आउटपुट होने पर CameraX शुरू करता है.
नीचे दिया गया कोड, मशीन लर्निंग किट ऐनालाइज़र को सेट अप करने के लिए 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. });
ऊपर दिए गए कोड सैंपल में, ML Kit Attributesr ये पास करती है:
BarcodeScanner
की Detector
क्लास:
- ट्रांसफ़ॉर्मेशन मैट्रिक्स
COORDINATE_SYSTEM_VIEW_REFERENCED
पर आधारित है जो टारगेट कोऑर्डिनेट सिस्टम को दिखाता है. - कैमरे के फ़्रेम.
अगर BarcodeScanner
में कोई समस्या आती है, तो इसके Detector
से गड़बड़ी होती है,
और ML Kit Analytics, इसे आपके ऐप्लिकेशन पर लागू करता है. कामयाब होने पर, ML किट ऐनालाइज़र MLKitAnalyzer.Result#getValue()
लौटाता है, जो
इस मामले में, Barcode
ऑब्जेक्ट होगा.
camera-core
का हिस्सा होने वाली ImageAnalysis
क्लास का इस्तेमाल करके भी एमएल किट ऐनालाइज़र को लागू किया जा सकता है. हालांकि, क्योंकि ImageAnalysis
को PreviewView
के साथ इंटिग्रेट नहीं किया गया है,
आपको कोऑर्डिनेट ट्रांसफ़ॉर्मेशन को मैन्युअल तौर पर मैनेज करना होगा. ज़्यादा जानकारी के लिए,
ML Kit Analytics से जुड़ा रेफ़रंस दस्तावेज़ देखें.
अन्य संसाधन
एमएल किट ऐनालाइज़र की सुविधा वाले कैमरा ऐप्लिकेशन के लिए, CameraX-MLKit सैंपल देखें.