অ্যান্ড্রয়েডের জন্য কুইকস্টার্ট

এই টিউটোরিয়ালটি আপনাকে দেখায় কিভাবে টেনসরফ্লো লাইট ব্যবহার করে একটি লাইভ ক্যামেরা ফিড বিশ্লেষণ করতে এবং ন্যূনতম পরিমাণ কোড ব্যবহার করে একটি মেশিন লার্নিং মডেল ব্যবহার করে বস্তু শনাক্ত করতে একটি অ্যান্ড্রয়েড অ্যাপ তৈরি করতে হয়। আপনি যদি একটি বিদ্যমান প্রজেক্ট আপডেট করেন তাহলে আপনি কোড নমুনাটিকে রেফারেন্স হিসেবে ব্যবহার করতে পারেন এবং আপনার প্রজেক্ট পরিবর্তন করার জন্য নির্দেশাবলীতে এগিয়ে যেতে পারেন।

মেশিন লার্নিং দিয়ে অবজেক্ট ডিটেকশন

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

সেটআপ এবং রান উদাহরণ

এই টিউটোরিয়ালের প্রথম অংশের জন্য, GitHub থেকে নমুনাটি ডাউনলোড করুন এবং Android Studio ব্যবহার করে চালান। এই টিউটোরিয়ালের নিম্নলিখিত বিভাগগুলি কোড উদাহরণের প্রাসঙ্গিক বিভাগগুলি অন্বেষণ করে, যাতে আপনি সেগুলি আপনার নিজের Android অ্যাপগুলিতে প্রয়োগ করতে পারেন৷ আপনার এই সরঞ্জামগুলির নিম্নলিখিত সংস্করণগুলি ইনস্টল করা দরকার:

  • অ্যান্ড্রয়েড স্টুডিও 4.2.2 বা উচ্চতর
  • Android SDK সংস্করণ 31 বা উচ্চতর

উদাহরণ কোড পান

উদাহরণ কোডের একটি স্থানীয় অনুলিপি তৈরি করুন। আপনি অ্যান্ড্রয়েড স্টুডিওতে একটি প্রকল্প তৈরি করতে এবং নমুনা অ্যাপ্লিকেশন চালানোর জন্য এই কোডটি ব্যবহার করবেন।

উদাহরণ কোড ক্লোন এবং সেটআপ করতে:

  1. git সংগ্রহস্থল
    git clone https://github.com/android/camera-samples.git
    
    ক্লোন করুন
  2. স্পার্স চেকআউট ব্যবহার করতে আপনার গিট ইনস্ট্যান্স কনফিগার করুন, তাই আপনার কাছে অবজেক্ট ডিটেকশন উদাহরণ অ্যাপের জন্য শুধুমাত্র ফাইল আছে:

    cd camera-samples
    git sparse-checkout init --cone
    git sparse-checkout set CameraXAdvanced
    

আমদানি করুন এবং প্রকল্প চালান

ডাউনলোড করা উদাহরণ কোড থেকে একটি প্রকল্প তৈরি করুন, প্রকল্পটি তৈরি করুন এবং তারপরে এটি চালান।

উদাহরণ কোড প্রকল্প আমদানি এবং নির্মাণ করতে:

  1. অ্যান্ড্রয়েড স্টুডিও শুরু করুন।
  2. অ্যান্ড্রয়েড স্টুডিও ওয়েলকাম পেজ থেকে, ইমপোর্ট প্রজেক্ট বেছে নিন বা ফাইল > নতুন > ইমপোর্ট প্রজেক্ট নির্বাচন করুন।
  3. build.gradle ফাইল ( .../android/camera-samples/CameraXAdvanced/build.gradle ) ধারণকারী উদাহরণ কোড ডিরেক্টরিতে নেভিগেট করুন এবং সেই ডিরেক্টরিটি নির্বাচন করুন।

আপনি সঠিক ডিরেক্টরি নির্বাচন করলে, অ্যান্ড্রয়েড স্টুডিও একটি নতুন প্রকল্প তৈরি করে এবং এটি তৈরি করে। আপনার কম্পিউটারের গতির উপর নির্ভর করে এবং আপনি যদি অন্যান্য প্রকল্পের জন্য অ্যান্ড্রয়েড স্টুডিও ব্যবহার করেন তবে এই প্রক্রিয়াটি কয়েক মিনিট সময় নিতে পারে। বিল্ড সম্পূর্ণ হলে, অ্যান্ড্রয়েড স্টুডিও বিল্ড আউটপুট স্ট্যাটাস প্যানেলে একটি BUILD SUCCESSFUL বার্তা প্রদর্শন করে।

ঐচ্ছিক: Android প্লাগইন সংস্করণ আপডেট করে বিল্ড ত্রুটিগুলি ঠিক করতে:

  1. প্রকল্প ডিরেক্টরিতে build.gradle ফাইলটি খুলুন।
  2. নিম্নলিখিত হিসাবে অ্যান্ড্রয়েড টুল সংস্করণ পরিবর্তন করুন:

    // from:
    classpath 'com.android.tools.build:gradle:4.2.2'
    // to:
    classpath 'com.android.tools.build:gradle:4.1.2'
    
  3. নির্বাচন করে প্রকল্পটি সিঙ্ক করুন: ফাইল > গ্রেডল ফাইলের সাথে প্রকল্প সিঙ্ক করুন

প্রকল্প চালানোর জন্য:

  1. অ্যান্ড্রয়েড স্টুডিও থেকে, রান > রান… এবং ক্যামেরা অ্যাক্টিভিটি নির্বাচন করে প্রকল্পটি চালান।
  2. অ্যাপটি পরীক্ষা করতে ক্যামেরা সহ একটি সংযুক্ত Android ডিভাইস নির্বাচন করুন।

পরবর্তী বিভাগগুলি আপনাকে রেফারেন্স পয়েন্ট হিসাবে এই উদাহরণ অ্যাপটি ব্যবহার করে আপনার নিজের অ্যাপে এই কার্যকারিতা যোগ করতে আপনার বিদ্যমান প্রকল্পে যে পরিবর্তনগুলি করতে হবে তা দেখায়।

প্রকল্প নির্ভরতা যোগ করুন

আপনার নিজের অ্যাপ্লিকেশনে, আপনাকে অবশ্যই TensorFlow Lite মেশিন লার্নিং মডেলগুলি চালানোর জন্য নির্দিষ্ট প্রকল্প নির্ভরতা যোগ করতে হবে এবং ইউটিলিটি ফাংশনগুলি অ্যাক্সেস করতে হবে যা ডেটা রূপান্তর করে যেমন চিত্রগুলিকে একটি টেনসর ডেটা ফর্ম্যাটে যা আপনি যে মডেলটি ব্যবহার করছেন তার দ্বারা প্রক্রিয়া করা যেতে পারে৷

উদাহরণ অ্যাপটি অবজেক্ট ডিটেকশন মেশিন লার্নিং মডেল কার্যকর করতে বেশ কয়েকটি টেনসরফ্লো লাইট লাইব্রেরি ব্যবহার করে:

  • TensorFlow Lite প্রধান লাইব্রেরি - প্রয়োজনীয় ডেটা ইনপুট ক্লাস, মেশিন লার্নিং মডেলের এক্সিকিউশন এবং মডেল প্রসেসিং থেকে আউটপুট ফলাফল প্রদান করে।
  • টেনসরফ্লো লাইট সাপোর্ট লাইব্রেরি - এই লাইব্রেরিটি ক্যামেরা থেকে TensorImage ইমেজ ডেটা অবজেক্টে অনুবাদ করার জন্য একটি সহায়ক ক্লাস প্রদান করে যা মেশিন লার্নিং মডেল দ্বারা প্রক্রিয়া করা যেতে পারে।
  • TensorFlow Lite GPU লাইব্রেরি - এই লাইব্রেরিটি ডিভাইসে GPU প্রসেসর ব্যবহার করে মডেল এক্সিকিউশন ত্বরান্বিত করতে সহায়তা প্রদান করে, যদি সেগুলি উপলব্ধ থাকে।

নিম্নলিখিত নির্দেশাবলী ব্যাখ্যা করে কিভাবে আপনার নিজের Android অ্যাপ প্রকল্পে প্রয়োজনীয় প্রকল্প এবং মডিউল নির্ভরতা যোগ করতে হয়।

মডিউল নির্ভরতা যোগ করতে:

  1. TensorFlow Lite ব্যবহার করে এমন মডিউলে, নিম্নলিখিত নির্ভরতাগুলি অন্তর্ভুক্ত করতে মডিউলের build.gradle ফাইলটি আপডেট করুন। উদাহরণ কোডে, এই ফাইলটি এখানে অবস্থিত: .../android/camera-samples/CameraXAdvanced/tflite/build.gradle ( কোড রেফারেন্স )

    ...
    dependencies {
    ...
        // Tensorflow lite dependencies
        implementation 'org.tensorflow:tensorflow-lite:2.8.0'
        implementation 'org.tensorflow:tensorflow-lite-gpu:2.8.0'
        implementation 'org.tensorflow:tensorflow-lite-support:2.8.0'
    ...
    }
    
  2. অ্যান্ড্রয়েড স্টুডিওতে, নির্বাচন করে প্রকল্প নির্ভরতা সিঙ্ক করুন: ফাইল > গ্রেডল ফাইলের সাথে প্রকল্প সিঙ্ক করুন

এমএল মডেল ইন্টারপ্রেটার শুরু করুন

আপনার অ্যান্ড্রয়েড অ্যাপে, মডেলের সাথে ভবিষ্যদ্বাণী চালানোর আগে আপনাকে অবশ্যই প্যারামিটার সহ TensorFlow Lite মেশিন লার্নিং মডেল ইন্টারপ্রেটারকে আরম্ভ করতে হবে। এই প্রারম্ভিকতা পরামিতিগুলি আপনি যে মডেলটি ব্যবহার করছেন তার উপর নির্ভরশীল, এবং চিহ্নিত অবজেক্ট ক্লাসের জন্য পূর্বাভাসের জন্য ন্যূনতম নির্ভুলতা থ্রেশহোল্ড এবং লেবেলের মতো সেটিংস অন্তর্ভুক্ত করতে পারে।

একটি TensorFlow Lite মডেলে মডেল কোড সহ একটি .tflite ফাইল অন্তর্ভুক্ত থাকে এবং প্রায়শই মডেল দ্বারা ভবিষ্যদ্বাণী করা ক্লাসগুলির নাম সম্বলিত একটি লেবেল ফাইল অন্তর্ভুক্ত থাকে। বস্তু সনাক্তকরণের ক্ষেত্রে, শ্রেণী হল বস্তু যেমন একজন ব্যক্তি, কুকুর, বিড়াল বা গাড়ি। মডেলগুলি সাধারণত প্রাথমিক মডিউলের src/main/assets ডিরেক্টরিতে সংরক্ষণ করা হয়, যেমন কোড উদাহরণে:

  • CameraXAdvanced/tflite/src/main/assets/coco_ssd_mobilenet_v1_1.0_quant.tflite
  • CameraXAdvanced/tflite/src/main/assets/coco_ssd_mobilenet_v1_1.0_labels.txt

সুবিধা এবং কোড পঠনযোগ্যতার জন্য, উদাহরণটি একটি সহচর বস্তু ঘোষণা করে যা মডেলের সেটিংস সংজ্ঞায়িত করে।

আপনার অ্যাপে মডেলটি শুরু করতে:

  1. মডেলের জন্য সেটিংস সংজ্ঞায়িত করতে একটি সহচর বস্তু তৈরি করুন: ( কোড রেফারেন্স )

    companion object {
       private val TAG = CameraActivity::class.java.simpleName
    
       private const val ACCURACY_THRESHOLD = 0.5f
       private const val MODEL_PATH = "coco_ssd_mobilenet_v1_1.0_quant.tflite"
       private const val LABELS_PATH = "coco_ssd_mobilenet_v1_1.0_labels.txt"
    }
    
  2. একটি TensorFlow Lite Interpreter অবজেক্ট তৈরি করতে এই অবজেক্টের সেটিংস ব্যবহার করুন যাতে মডেলটি রয়েছে: ( কোড রেফারেন্স )

    private val tflite by lazy {
       Interpreter(
           FileUtil.loadMappedFile(this, MODEL_PATH),
           Interpreter.Options().addDelegate(nnApiDelegate))
    }
    

হার্ডওয়্যার অ্যাক্সিলারেটর কনফিগার করুন

আপনার অ্যাপ্লিকেশনে একটি টেনসরফ্লো লাইট মডেল শুরু করার সময়, আপনি মডেলের পূর্বাভাস গণনার গতি বাড়ানোর জন্য হার্ডওয়্যার ত্বরণ বৈশিষ্ট্য ব্যবহার করতে পারেন। উপরের কোড উদাহরণটি মডেল এক্সিকিউশনের হার্ডওয়্যার ত্বরণ পরিচালনা করতে NNAPI প্রতিনিধি ব্যবহার করে:

Interpreter.Options().addDelegate(nnApiDelegate)

TensorFlow Lite প্রতিনিধি হল সফ্টওয়্যার মডিউল যেগুলি একটি মোবাইল ডিভাইসে বিশেষায়িত প্রসেসিং হার্ডওয়্যার, যেমন GPUs, TPUs, বা DSPs ব্যবহার করে মেশিন লার্নিং মডেলগুলির সম্পাদনকে ত্বরান্বিত করে৷ TensorFlow Lite মডেল চালানোর জন্য প্রতিনিধিদের ব্যবহার করার পরামর্শ দেওয়া হয়, কিন্তু প্রয়োজন হয় না।

TensorFlow Lite এর সাথে প্রতিনিধিদের ব্যবহার সম্পর্কে আরও তথ্যের জন্য, TensorFlow Lite প্রতিনিধি দেখুন।

মডেলের ডেটা প্রদান করুন

আপনার অ্যান্ড্রয়েড অ্যাপে, আপনার কোডটি বিদ্যমান ডেটা যেমন চিত্রগুলিকে একটি টেনসর ডেটা ফর্ম্যাটে রূপান্তর করে ব্যাখ্যা করার জন্য মডেলকে ডেটা সরবরাহ করে যা আপনার মডেল দ্বারা প্রক্রিয়া করা যেতে পারে। একটি টেনসরের ডেটাতে অবশ্যই নির্দিষ্ট মাত্রা বা আকৃতি থাকতে হবে যা মডেলকে প্রশিক্ষণ দেওয়ার জন্য ব্যবহৃত ডেটার বিন্যাসের সাথে মেলে।

একটি মডেলের জন্য প্রয়োজনীয় টেনসর আকৃতি নির্ধারণ করতে:

  • আপনার মডেল দ্বারা ব্যবহৃত টেনসরের আকৃতি নির্ধারণ করতে ইনিশিয়ালাইজড ইন্টারপ্রেটার অবজেক্ট ব্যবহার করুন, যেমনটি নীচের কোড স্নিপেটে দেখানো হয়েছে: ( কোড রেফারেন্স )

    private val tfInputSize by lazy {
       val inputIndex = 0
       val inputShape = tflite.getInputTensor(inputIndex).shape()
       Size(inputShape[2], inputShape[1]) // Order of axis is: {1, height, width, 3}
    }
    

উদাহরণ কোডে ব্যবহৃত অবজেক্ট ডিটেকশন মডেলটি 300 বাই 300 পিক্সেলের আকারের বর্গাকার ছবি আশা করে।

আপনি ক্যামেরা থেকে ছবিগুলি প্রদান করার আগে, আপনার অ্যাপটিকে অবশ্যই ছবিটি নিতে হবে, এটিকে প্রত্যাশিত আকারের সাথে সামঞ্জস্য করতে হবে, এর ঘূর্ণন সামঞ্জস্য করতে হবে এবং ছবির ডেটা স্বাভাবিক করতে হবে৷ একটি টেনসরফ্লো লাইট মডেলের সাথে ছবিগুলি প্রক্রিয়া করার সময়, আপনি এই ডেটা প্রাক-প্রসেসিং পরিচালনা করতে টেনসরফ্লো লাইট সাপোর্ট লাইব্রেরি ইমেজপ্রসেসর ক্লাস ব্যবহার করতে পারেন, যেমনটি নীচে দেখানো হয়েছে।

একটি মডেলের জন্য ইমেজ ডেটা রূপান্তর করতে:

  1. আপনার মডেল ভবিষ্যদ্বাণী চালানোর জন্য ব্যবহার করতে পারে এমন একটি বিন্যাসে চিত্র ডেটা রূপান্তর করার জন্য একটি বস্তু তৈরি করতে সহায়তা লাইব্রেরি ইমেজপ্রসেসর ব্যবহার করুন: ( কোড রেফারেন্স )

    private val tfImageProcessor by lazy {
       val cropSize = minOf(bitmapBuffer.width, bitmapBuffer.height)
       ImageProcessor.Builder()
           .add(ResizeWithCropOrPadOp(cropSize, cropSize))
           .add(ResizeOp(
               tfInputSize.height, tfInputSize.width, ResizeOp.ResizeMethod.NEAREST_NEIGHBOR))
           .add(Rot90Op(-imageRotationDegrees / 90))
           .add(NormalizeOp(0f, 1f))
           .build()
    }
    
  2. অ্যান্ড্রয়েড ক্যামেরা সিস্টেম থেকে ইমেজ ডেটা কপি করুন এবং আপনার ইমেজপ্রসেসর অবজেক্টের সাথে বিশ্লেষণের জন্য প্রস্তুত করুন: ( কোড রেফারেন্স )

    // Copy out RGB bits to the shared buffer
    image.use { bitmapBuffer.copyPixelsFromBuffer(image.planes[0].buffer)  }
    
    // Process the image in Tensorflow
    val tfImage =  tfImageProcessor.process(tfImageBuffer.apply { load(bitmapBuffer) })
    

ভবিষ্যদ্বাণী চালান

আপনার অ্যান্ড্রয়েড অ্যাপে, একবার আপনি সঠিক বিন্যাসে ইমেজ ডেটা সহ একটি TensorImage অবজেক্ট তৈরি করলে, আপনি একটি ভবিষ্যদ্বাণী বা অনুমান তৈরি করতে সেই ডেটার বিপরীতে মডেলটি চালাতে পারেন। এই টিউটোরিয়ালের উদাহরণ কোডটি একটি ObjectDetectionHelper ক্লাস ব্যবহার করে যা এই কোডটিকে একটি predict() পদ্ধতিতে এনক্যাপসুলেট করে।

ইমেজ ডেটার একটি সেটে একটি ভবিষ্যদ্বাণী চালানোর জন্য:

  1. আপনার পূর্বাভাস ফাংশনে ইমেজ ডেটা পাস করে ভবিষ্যদ্বাণী চালান: ( কোড রেফারেন্স )

    // Perform the object detection for the current frame
    val predictions = detector.predict(tfImage)
    
  2. ভবিষ্যদ্বাণী তৈরি করতে ইমেজ ডেটা সহ আপনার tflite অবজেক্ট ইনস্ট্যান্সে রান পদ্ধতিতে কল করুন: ( কোড রেফারেন্স )

    fun predict(image: TensorImage): List<ObjectPrediction> {
       tflite.runForMultipleInputsOutputs(arrayOf(image.buffer), outputBuffer)
       return predictions
    }
    

টেনসরফ্লো লাইট ইন্টারপ্রেটার অবজেক্ট এই ডেটা গ্রহণ করে, এটিকে মডেলের বিপরীতে চালায় এবং ভবিষ্যদ্বাণীগুলির একটি তালিকা তৈরি করে। মডেল দ্বারা ডেটা ক্রমাগত প্রক্রিয়াকরণের জন্য, runForMultipleInputsOutputs() পদ্ধতিটি ব্যবহার করুন যাতে দোভাষী বস্তুগুলি তৈরি না হয় এবং তারপরে প্রতিটি ভবিষ্যদ্বাণী চালানোর জন্য সিস্টেম দ্বারা সরানো হয়।

মডেল আউটপুট হ্যান্ডেল

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

যে কোনো প্রদত্ত TensorFlow Lite মডেলের আউটপুট এটি তৈরি করা ভবিষ্যদ্বাণীর সংখ্যা (এক বা একাধিক) এবং প্রতিটি ভবিষ্যদ্বাণীর জন্য বর্ণনামূলক তথ্যের পরিপ্রেক্ষিতে পরিবর্তিত হয়। একটি অবজেক্ট ডিটেকশন মডেলের ক্ষেত্রে, ভবিষ্যদ্বাণীতে সাধারণত একটি বাউন্ডিং বাক্সের ডেটা অন্তর্ভুক্ত থাকে যা নির্দেশ করে যে ছবিতে একটি বস্তু কোথায় সনাক্ত করা হয়েছে। উদাহরণ কোডে, প্রত্যাবর্তিত ডেটা অবজেক্ট প্রেডিকশন অবজেক্টের একটি তালিকা হিসাবে ফর্ম্যাট করা হয়েছে, যেমনটি নীচে দেখানো হয়েছে: ( কোড রেফারেন্স )

val predictions get() = (0 until OBJECT_COUNT).map {
   ObjectPrediction(

       // The locations are an array of [0, 1] floats for [top, left, bottom, right]
       location = locations[0][it].let {
           RectF(it[1], it[0], it[3], it[2])
       },

       // SSD Mobilenet V1 Model assumes class 0 is background class
       // in label file and class labels start from 1 to number_of_classes + 1,
       // while outputClasses correspond to class index from 0 to number_of_classes
       label = labels[1 + labelIndices[0][it].toInt()],

       // Score is a single value of [0, 1]
       score = scores[0][it]
   )
}

বস্তু সনাক্তকরণ স্ক্রিনশট এই উদাহরণে ব্যবহৃত মডেলের জন্য, প্রতিটি ভবিষ্যদ্বাণীতে অবজেক্টের জন্য একটি বাউন্ডিং বক্সের অবস্থান, বস্তুর জন্য একটি লেবেল এবং ভবিষ্যদ্বাণীর আত্মবিশ্বাসের প্রতিনিধিত্বকারী ফ্লোট হিসাবে 0 এবং 1-এর মধ্যে একটি ভবিষ্যদ্বাণী স্কোর অন্তর্ভুক্ত রয়েছে, 1 সর্বোচ্চ আত্মবিশ্বাসের রেটিং। . সাধারণভাবে, 50% (0.5) এর নিচে স্কোর সহ ভবিষ্যদ্বাণীগুলিকে সিদ্ধান্তহীন বলে মনে করা হয়। যাইহোক, আপনি কীভাবে কম-মূল্যের পূর্বাভাসের ফলাফলগুলি পরিচালনা করবেন তা আপনার এবং আপনার আবেদনের প্রয়োজনের উপর নির্ভর করে।

একবার মডেলটি একটি ভবিষ্যদ্বাণী ফলাফল ফেরত দিলে, আপনার অ্যাপ্লিকেশনটি আপনার ব্যবহারকারীর কাছে ফলাফল উপস্থাপন করে বা অতিরিক্ত যুক্তি প্রয়োগ করে সেই ভবিষ্যদ্বাণীতে কাজ করতে পারে। উদাহরণ কোডের ক্ষেত্রে, অ্যাপ্লিকেশনটি চিহ্নিত বস্তুর চারপাশে একটি বাউন্ডিং বক্স আঁকে এবং স্ক্রিনে শ্রেণির নাম প্রদর্শন করে। বিস্তারিত জানার জন্য উদাহরণ কোডে CameraActivity.reportPrediction() ফাংশন পর্যালোচনা করুন।

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

  • উদাহরণগুলিতে টেনসরফ্লো লাইটের বিভিন্ন ব্যবহার অন্বেষণ করুন।
  • মডেল বিভাগে টেনসরফ্লো লাইটের সাথে মেশিন লার্নিং মডেল ব্যবহার করার বিষয়ে আরও জানুন।
  • TensorFlow Lite ডেভেলপার গাইডে আপনার মোবাইল অ্যাপ্লিকেশনে মেশিন লার্নিং বাস্তবায়ন সম্পর্কে আরও জানুন।