ML Kit এর সাহায্যে টেক্সট এবং ফেসিয়াল ফিচার চিনুন: Android

1. ভূমিকা

ML Kit হল একটি মোবাইল SDK যা Android এবং iOS অ্যাপগুলিতে Google-এর মেশিন লার্নিং দক্ষতাকে একটি শক্তিশালী কিন্তু সহজেই ব্যবহারযোগ্য প্যাকেজে নিয়ে আসে। আপনি নতুন বা মেশিন লার্নিংয়ে অভিজ্ঞ যাই হোন না কেন, আপনি কেবল কয়েকটি লাইন কোডের মাধ্যমে আপনার প্রয়োজনীয় কার্যকারিতা সহজেই বাস্তবায়ন করতে পারেন। শুরু করার জন্য নিউরাল নেটওয়ার্ক বা মডেল অপ্টিমাইজেশন সম্পর্কে গভীর জ্ঞান থাকার প্রয়োজন নেই।

এই কোডল্যাবটি ব্যবহার করার সময় যদি আপনার কোনও সমস্যা (কোড বাগ, ব্যাকরণগত ত্রুটি, অস্পষ্ট শব্দ ইত্যাদি) দেখা দেয়, তাহলে অনুগ্রহ করে কোডল্যাবের নীচের বাম কোণে "একটি ভুল রিপোর্ট করুন" লিঙ্কের মাধ্যমে সমস্যাটি রিপোর্ট করুন।

এটা কিভাবে কাজ করে?

ML Kit আপনার অ্যাপগুলিতে ML কৌশল প্রয়োগ করা সহজ করে তোলে, Google এর ML প্রযুক্তি, যেমন Mobile Vision এবং TensorFlow Lite , কে একটি একক SDK-তে একত্রিত করে। আপনার Mobile Vision-এর অন-ডিভাইস মডেলগুলির রিয়েল-টাইম ক্ষমতার প্রয়োজন হোক বা কাস্টম TensorFlow Lite মডেলগুলির নমনীয়তার প্রয়োজন হোক, ML Kit আপনাকে সব কিছুর জন্য প্রস্তুত করে।

এই কোডল্যাবটি আপনাকে আপনার নিজস্ব অ্যান্ড্রয়েড অ্যাপ তৈরির পথ দেখাবে যা স্বয়ংক্রিয়ভাবে একটি ছবিতে টেক্সট এবং মুখের বৈশিষ্ট্য সনাক্ত করতে পারে।

তুমি কী তৈরি করবে

এই কোডল্যাবে, আপনি ML Kit ব্যবহার করে একটি অ্যান্ড্রয়েড অ্যাপ তৈরি করতে যাচ্ছেন। আপনার অ্যাপটি হবে:

  • ছবিতে টেক্সট শনাক্ত করতে ML Kit Text Recognition API ব্যবহার করুন
  • ছবিতে মুখের বৈশিষ্ট্য সনাক্ত করতে ML Kit Face Contour API ব্যবহার করুন

তুমি কি শিখবে

  • টেক্সট রিকগনিশন এবং ফেসিয়াল ফিচার ডিটেকশনের মতো উন্নত মেশিন লার্নিং ক্ষমতা সহজেই যোগ করার জন্য ML Kit SDK কীভাবে ব্যবহার করবেন

তোমার যা লাগবে

  • অ্যান্ড্রয়েড স্টুডিওর একটি সাম্প্রতিক সংস্করণ (v3.0+)
  • অ্যান্ড্রয়েড স্টুডিও এমুলেটর অথবা একটি বাস্তব অ্যান্ড্রয়েড ডিভাইস
  • নমুনা কোড
  • জাভাতে অ্যান্ড্রয়েড ডেভেলপমেন্টের প্রাথমিক জ্ঞান
  • মেশিন লার্নিং মডেলগুলির প্রাথমিক ধারণা

এই কোডল্যাবটি এমএল কিটের উপর দৃষ্টি নিবদ্ধ করে। অপ্রাসঙ্গিক ধারণা এবং কোড ব্লকগুলিকে গ্লস করা হয়েছে এবং আপনার জন্য কেবল কপি এবং পেস্ট করার জন্য সরবরাহ করা হয়েছে।

2. সেট আপ করা

কোডটি ডাউনলোড করুন

এই কোডল্যাবের সমস্ত কোড ডাউনলোড করতে নিচের লিঙ্কে ক্লিক করুন:

ডাউনলোড করা জিপ ফাইলটি আনপ্যাক করুন। এটি আপনার প্রয়োজনীয় সমস্ত রিসোর্স সহ একটি রুট ফোল্ডার ( mlkit-android-master ) আনপ্যাক করবে। এই কোডল্যাবের জন্য, আপনার কেবল vision সাবডিরেক্টরিতে থাকা রিসোর্সগুলির প্রয়োজন হবে।

mlkit-android-master সংগ্রহস্থলের vision সাবডিরেক্টরিতে দুটি ডিরেক্টরি রয়েছে:

  • android_studio_folder.png সম্পর্কে স্টার্টার — এই কোডল্যাবে আপনি যে কোডের উপর ভিত্তি করে তৈরি করবেন তা হল স্টার্টিং কোড।
  • android_studio_folder.png সম্পর্কে চূড়ান্ত — সমাপ্ত নমুনা অ্যাপের জন্য সম্পূর্ণ কোড।

৩. এমএল কিটের নির্ভরতা পরীক্ষা করুন

এমএল কিটের নির্ভরতা যাচাই করুন

আপনার প্রকল্পের app ডিরেক্টরিতে build.gradle ফাইলের শেষে নিম্নলিখিত লাইনগুলি ইতিমধ্যেই যোগ করা উচিত (নিশ্চিত করতে চেক করুন):

বিল্ড.গ্রেডল

dependencies {
  // Face features
  implementation 'com.google.mlkit:face-detection:16.0.0'

  // Text features
  implementation 'com.google.android.gms:play-services-mlkit-text-recognition:16.0.0'
}

এই কোডল্যাবের বৈশিষ্ট্যগুলি বাস্তবায়নের জন্য আপনার যে নির্দিষ্ট ML কিট নির্ভরতাগুলির প্রয়োজন তা হল এগুলি।

৪. স্টার্টার অ্যাপটি চালান

এখন আপনি অ্যান্ড্রয়েড স্টুডিওতে প্রকল্পটি আমদানি করেছেন এবং এমএল কিটের জন্য নির্ভরতা পরীক্ষা করেছেন, আপনি প্রথমবারের মতো অ্যাপটি চালানোর জন্য প্রস্তুত। অ্যান্ড্রয়েড স্টুডিও এমুলেটরটি শুরু করুন এবং রান ( এক্সিকিউট.পিএনজি ) অ্যান্ড্রয়েড স্টুডিও টুলবারে।

অ্যাপটি আপনার এমুলেটরে চালু হওয়া উচিত। এই মুহুর্তে, আপনি একটি মৌলিক লেআউট দেখতে পাবেন যার একটি ড্রপ ডাউন ফিল্ড রয়েছে যা আপনাকে 3টি ছবির মধ্যে নির্বাচন করতে দেয়। পরবর্তী বিভাগে, আপনি ছবির মধ্যে টেক্সট সনাক্ত করার জন্য আপনার অ্যাপে টেক্সট রিকগনিশন যোগ করবেন।

৫. ডিভাইসে টেক্সট রিকগনিশন যোগ করুন

এই ধাপে, আমরা আপনার অ্যাপে ছবিতে টেক্সট চিনতে কার্যকারিতা যুক্ত করব।

একটি ছবিতে ডিভাইসে টেক্সট রিকগনিশন সেট আপ এবং চালান

MainActivity ক্লাসের runTextRecognition পদ্ধতিতে নিম্নলিখিতটি যোগ করুন:

মেইনঅ্যাক্টিভিটি.জাভা

private void runTextRecognition() {
   InputImage image = InputImage.fromBitmap(mSelectedImage, 0);
   TextRecognizer recognizer = TextRecognition.getClient();
   mTextButton.setEnabled(false);
   recognizer.process(image)
           .addOnSuccessListener(
                   new OnSuccessListener<Text>() {
                       @Override
                       public void onSuccess(Text texts) {
                           mTextButton.setEnabled(true);
                           processTextRecognitionResult(texts);
                       }
                   })
           .addOnFailureListener(
                   new OnFailureListener() {
                       @Override
                       public void onFailure(@NonNull Exception e) {
                           // Task failed with an exception
                           mTextButton.setEnabled(true);
                           e.printStackTrace();
                       }
                   });
}

উপরের কোডটি টেক্সট রিকগনিশন ডিটেক্টর কনফিগার করে এবং প্রতিক্রিয়া সহ ফাংশন processTextRecognitionResult কে কল করে।

টেক্সট শনাক্তকরণ প্রতিক্রিয়া প্রক্রিয়া করুন

ফলাফলগুলি বিশ্লেষণ করতে এবং আপনার অ্যাপে প্রদর্শন করতে MainActivity ক্লাসে processTextRecognitionResult এ নিম্নলিখিত কোডটি যোগ করুন।

মেইনঅ্যাক্টিভিটি.জাভা

private void processTextRecognitionResult(Text texts) {
   List<Text.TextBlock> blocks = texts.getTextBlocks();
   if (blocks.size() == 0) {
       showToast("No text found");
       return;
   }
   mGraphicOverlay.clear();
   for (int i = 0; i < blocks.size(); i++) {
       List<Text.Line> lines = blocks.get(i).getLines();
       for (int j = 0; j < lines.size(); j++) {
           List<Text.Element> elements = lines.get(j).getElements();
           for (int k = 0; k < elements.size(); k++) {
               Graphic textGraphic = new TextGraphic(mGraphicOverlay, elements.get(k));
               mGraphicOverlay.add(textGraphic);

           }
       }
   }
}

এমুলেটরে অ্যাপটি চালান।

এখন রান ক্লিক করুন ( এক্সিকিউট.পিএনজি ) অ্যান্ড্রয়েড স্টুডিও টুলবারে। অ্যাপটি লোড হয়ে গেলে, নিশ্চিত করুন যে ড্রপ ডাউন ফিল্ডে Test Image 1(Text) নির্বাচন করা আছে এবং FIND TEXT বোতামে ক্লিক করুন।

আপনার অ্যাপটি এখন নীচের ছবির মতো দেখাবে, যেখানে টেক্সট রিকগনিশন ফলাফল এবং মূল ছবির উপরে ওভারলে করা বাউন্ডিং বাক্সগুলি দেখানো হবে।

10b12d0e8822eaf5.png সম্পর্কে

ছবি: কাই শ্রেইবার/উইকিমিডিয়া কমন্স/সিসি বাই-এসএ 2.0

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

৬. ডিভাইসে ফেস কনট্যুর সনাক্তকরণ যোগ করুন

এই ধাপে, আমরা আপনার অ্যাপে ছবিতে মুখের রূপরেখা চিনতে কার্যকারিতা যোগ করব।

একটি ছবিতে ডিভাইসে ফেস কনট্যুর সনাক্তকরণ সেট আপ করুন এবং চালান

MainActivity ক্লাসের runFaceContourDetection পদ্ধতিতে নিম্নলিখিতটি যোগ করুন:

মেইনঅ্যাক্টিভিটি.জাভা

private void runFaceContourDetection() {
   InputImage image = InputImage.fromBitmap(mSelectedImage, 0);
   FaceDetectorOptions options =
           new FaceDetectorOptions.Builder()
                   .setPerformanceMode(FaceDetectorOptions.PERFORMANCE_MODE_FAST)
                   .setContourMode(FaceDetectorOptions.CONTOUR_MODE_ALL)
                   .build();

   mFaceButton.setEnabled(false);
   FaceDetector detector = FaceDetection.getClient(options);
   detector.process(image)
           .addOnSuccessListener(
                   new OnSuccessListener<List<Face>>() {
                       @Override
                       public void onSuccess(List<Face> faces) {
                           mFaceButton.setEnabled(true);
                           processFaceContourDetectionResult(faces);
                       }
                   })
           .addOnFailureListener(
                   new OnFailureListener() {
                       @Override
                       public void onFailure(@NonNull Exception e) {
                           // Task failed with an exception
                           mFaceButton.setEnabled(true);
                           e.printStackTrace();
                       }
                   });

}

উপরের কোডটি ফেস কনট্যুর ডিটেক্টর কনফিগার করে এবং প্রতিক্রিয়া সহ ফাংশন processFaceContourDetectionResult কল করে।

মুখের কনট্যুর সনাক্তকরণ প্রতিক্রিয়া প্রক্রিয়া করুন

ফলাফলগুলি বিশ্লেষণ করতে এবং আপনার অ্যাপে প্রদর্শন করতে MainActivity ক্লাসে processFaceContourDetectionResult এ নিম্নলিখিত কোডটি যোগ করুন।

মেইনঅ্যাক্টিভিটি.জাভা

private void processFaceContourDetectionResult(List<Face> faces) {
   // Task completed successfully
   if (faces.size() == 0) {
       showToast("No face found");
       return;
   }
   mGraphicOverlay.clear();
   for (int i = 0; i < faces.size(); ++i) {
       Face face = faces.get(i);
       FaceContourGraphic faceGraphic = new FaceContourGraphic(mGraphicOverlay);
       mGraphicOverlay.add(faceGraphic);
       faceGraphic.updateFace(face);
   }
}

এমুলেটরে অ্যাপটি চালান।

এখন রান ক্লিক করুন ( এক্সিকিউট.পিএনজি ) অ্যান্ড্রয়েড স্টুডিও টুলবারে। অ্যাপটি লোড হয়ে গেলে, নিশ্চিত করুন যে ড্রপ ডাউন ফিল্ডে Test Image 2 (Face) নির্বাচন করা আছে এবং FIND FACE CONTOUR বোতামে ক্লিক করুন।

আপনার অ্যাপটি এখন নীচের ছবির মতো দেখাবে, যেখানে মুখের কনট্যুর সনাক্তকরণের ফলাফল দেখানো হবে এবং মূল ছবির উপরে বিন্দু হিসেবে মুখের কনট্যুরগুলি দেখানো হবে।

f9ff2fcbf63f0f3b.png

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

৭. অভিনন্দন!

আপনার অ্যাপে উন্নত মেশিন লার্নিং ক্ষমতা সহজেই যোগ করার জন্য আপনি সফলভাবে ML Kit ব্যবহার করেছেন।

আমরা যা কভার করেছি

  • আপনার অ্যান্ড্রয়েড অ্যাপে এমএল কিট কীভাবে যুক্ত করবেন
  • ছবিতে টেক্সট খুঁজে পেতে ML Kit-এ ডিভাইসে টেক্সট রিকগনিশন কীভাবে ব্যবহার করবেন
  • ছবিতে মুখের বৈশিষ্ট্যগুলি সনাক্ত করতে ML Kit-এ ডিভাইসের মুখের কনট্যুর কীভাবে ব্যবহার করবেন

পরবর্তী পদক্ষেপ

  • আপনার নিজস্ব অ্যান্ড্রয়েড অ্যাপে এমএল কিট ব্যবহার করুন!

আরও জানুন