Google-এর ML Kit ফেস শনাক্তকরণ, বারকোড স্ক্যান করা, ছবিতে লেবেল লাগানো এবং আরও অনেক কিছুর জন্য অন-ডিভাইস মেশিন লার্নিং ভিশন API প্রদান করে। ML Kit Analyzer আপনার CameraX অ্যাপের সাথে ML Kit ইন্টিগ্রেট করা আরও সহজ করে তোলে।
ML Kit Analyzer হল ImageAnalysis.Analyzer ইন্টারফেসের একটি ইমপ্লিমেন্টেশন। এটি ML Kit ব্যবহারের জন্য অপ্টিমাইজ করতে ডিফল্ট টার্গেট রেজোলিউশন ওভাররাইড করে
(প্রয়োজন হলে), কোঅর্ডিনেট ট্রান্সফর্মেশন ম্যানেজ করে
এবং ফ্রেমগুলি ML Kit-এ পাস করে, যা একত্রিত বিশ্লেষণের ফলাফল রিটার্ন করে।
ML Kit Analyzer প্রয়োগ করা
ML Kit Analyzer প্রয়োগ করতে, আমরা CameraController ক্লাস ব্যবহার করার সাজেশন দিই, যা UI এলিমেন্ট দেখানোর জন্য 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, যা নতুন ML Kit আউটপুট থাকলে CameraX ইনভোক করে।
নিম্নলিখিত কোডটি CameraController ব্যবহার করে ML Kit Analyzer প্রয়োগ করে যাতে
QR কোড শনাক্ত করার জন্য 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. } )
জাভা
// 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 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 স্যাম্পেল দেখুন।