এমএল কিট বিশ্লেষক

Google-এর ML কিট মুখ সনাক্তকরণ, বারকোড স্ক্যান করা, ছবি লেবেল করা এবং আরও অনেক কিছুর জন্য অন-ডিভাইস মেশিন লার্নিং ভিশন API প্রদান করে। ML কিট বিশ্লেষক আপনার CameraX অ্যাপের সাথে ML কিট সংহত করা সহজ করে তোলে।

এমএল কিট বিশ্লেষক হল ImageAnalysis.Analyzer ইন্টারফেসের একটি বাস্তবায়ন। এটি এমএল কিট ব্যবহারের জন্য অপ্টিমাইজ করার জন্য ডিফল্ট টার্গেট রেজোলিউশন (যদি প্রয়োজন হয়) ওভাররাইড করে, স্থানাঙ্ক রূপান্তরগুলি পরিচালনা করে এবং ফ্রেমগুলিকে এমএল কিটে পাস করে, যা সমষ্টিগত বিশ্লেষণের ফলাফল প্রদান করে।

এমএল কিট বিশ্লেষক প্রয়োগ করুন

এমএল কিট বিশ্লেষক প্রয়োগ করার জন্য, আমরা CameraController ক্লাস ব্যবহার করার পরামর্শ দিই, যা UI উপাদানগুলি প্রদর্শন করার জন্য PreviewView এর সাথে কাজ করে। CameraController ব্যবহার করে বাস্তবায়িত হলে, এমএল কিট বিশ্লেষক আপনার জন্য মূল ImageAnalysis স্ট্রীম এবং PreviewView মধ্যে সমন্বয় রূপান্তর পরিচালনা করে। এটি ক্যামেরাএক্স থেকে টার্গেট কোঅর্ডিনেট সিস্টেম গ্রহণ করে, স্থানাঙ্কের রূপান্তর গণনা করে এবং বিশ্লেষণের জন্য এটিকে এমএল কিটের Detector ক্লাসে ফরোয়ার্ড করে।

CameraController এর সাথে ML কিট বিশ্লেষক ব্যবহার করতে, setImageAnalysisAnalyzer() কল করুন এবং এটির কন্সট্রাক্টরে নিম্নলিখিতগুলি সহ একটি নতুন ML কিট বিশ্লেষক অবজেক্ট পাস করুন:

  • ML কিট Detector একটি তালিকা, যা CameraX ক্রমানুসারে আহ্বান করে।
  • টার্গেট কোঅর্ডিনেট সিস্টেম যা এমএল কিট আউটপুটের স্থানাঙ্ক নির্ধারণ করে:

  • একজন Executor যে কনজিউমার কলব্যাককে আহ্বান করে এবং অ্যাপে MlKitAnalyzer.Result বা ক্যামেরা ফ্রেমের সমষ্টি ML কিট ফলাফল প্রদান করে।

  • একটি Consumer , যাকে ক্যামেরাএক্স আহ্বান করে যখন নতুন এমএল কিট আউটপুট থাকে।

QR কোড সনাক্ত করতে একটি BarcodeScanner সেট আপ করতে CameraController ব্যবহার করে নিম্নলিখিত কোডটি এমএল কিট বিশ্লেষক প্রয়োগ করে:

কোটলিন

// 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 কিট বিশ্লেষক নিম্নলিখিতটি BarcodeScanner Detector ক্লাসে পাস করে:

  • COORDINATE_SYSTEM_VIEW_REFERENCED এর উপর ভিত্তি করে রূপান্তর ম্যাট্রিক্স যা লক্ষ্য স্থানাঙ্ক সিস্টেমকে প্রতিনিধিত্ব করে।
  • ক্যামেরার ফ্রেম।

যদি BarcodeScanner কোনো সমস্যায় পড়ে, তাহলে এর Detector একটি ত্রুটি ছুড়ে দেয় এবং ML কিট বিশ্লেষক এটি আপনার অ্যাপে প্রচার করে। সফল হলে, ML Kit Analyzer MLKitAnalyzer.Result#getValue() ফেরত দেয়, যা এই ক্ষেত্রে Barcode অবজেক্ট।

এছাড়াও আপনি camera-core অংশ ImageAnalysis ক্লাস ব্যবহার করে এমএল কিট বিশ্লেষক প্রয়োগ করতে পারেন। যাইহোক, যেহেতু ImageAnalysis PreviewView এর সাথে একীভূত নয়, তাই আপনাকে অবশ্যই স্থানাঙ্কের রূপান্তরগুলি ম্যানুয়ালি পরিচালনা করতে হবে। আরও তথ্যের জন্য, এমএল কিট বিশ্লেষক রেফারেন্স ডকুমেন্টেশন দেখুন।

অতিরিক্ত সম্পদ

ML কিট বিশ্লেষক কার্যকারিতা সহ একটি কার্যকরী ক্যামেরা অ্যাপের জন্য, CameraX-MLKit নমুনা দেখুন।