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