অ্যাপ্লিকেশনে টেক্সট রিকগনিশন — এটি কী, OCR এবং Vision

লেখক: IT Sectr প্রকাশিত: 2026-07-18 পড়ার সময়: 10 মিনিট

টেক্সট রিকগনিশন (OCR — অপটিক্যাল ক্যারেক্টার রিকগনিশন) একটি প্রযুক্তি যা ছবি এবং ভিডিও স্ট্রিম থেকে মুদ্রিত বা হাতের লেখা টেক্সট বের করে। মোবাইল ডেভেলপমেন্টে, টেক্সট রিকগনিশন ডকুমেন্ট ডিজিটাইজ করা, লাইসেন্স প্লেট চিহ্নিত করা, বিজনেস কার্ড পড়া এবং রিয়েল-টাইম টেক্সট অনুবাদের জন্য ব্যবহৃত হয়। প্রধান মোবাইল OCR সমাধানগুলি হল: ML Kit Text Recognition (Google), Vision Framework (Apple), Tesseract OCR (ওপেন-সোর্স)। Google ML Kit, 2025 অনুসারে, Text Recognition V2 10–30 ms-এ একটি ফ্রেম প্রক্রিয়া করে যার নির্ভুলতা ল্যাটিনে 96% এবং সিরিলিকে 91%।

মূল বিষয়

  • টেক্সট রিকগনিশন — ছবি এবং ভিডিও থেকে টেক্সট বের করা (OCR)
  • ML Kit Text Recognition — 45+ ভাষা, 96% নির্ভুলতা (ল্যাটিন), 10–30 ms
  • Apple Vision — VNRecognizeTextRequest, 13+ ভাষা, নেটিভ iOS
  • Tesseract — ওপেন-সোর্স OCR, 100+ ভাষা, 50–200 ms, CPU
  • রিয়েল-টাইম — আধুনিক ডিভাইসে CameraX/AVFoundation-এর সাথে 30 FPS পর্যন্ত

টেক্সট রিকগনিশন কী: OCR নীতি

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

OCR-এর প্রকার: মুদ্রিত টেক্সট (printed text) — ডকুমেন্ট, সাইন, স্ক্রিন থেকে টাইপ করা টেক্সট শনাক্তকরণ — নির্ভুলতা 95–99%; হাতের লেখা (handwriting) — হাতের লেখা ইনপুট শনাক্তকরণ — ল্যাটিনে 80–90%, সিরিলিকে 70–80% নির্ভুলতা; দৃশ্য টেক্সট (scene text) — প্রাকৃতিক দৃশ্যে টেক্সট: বাড়ির নম্বর, রাস্তার সাইন, দোকানের নাম — দৃষ্টিকোণ বিকৃতি এবং ঝলকের কারণে সবচেয়ে কঠিন।

CRNN + CTC Loss — আধুনিক OCR মডেলে ব্যবহৃত আর্কিটেকচার। কনভোলিউশনাল রিকারেন্ট নিউরাল নেটওয়ার্ক (CNN + LSTM) ইমেজ বৈশিষ্ট্য বের করে, যখন কানেকশনিস্ট টেম্পোরাল ক্লাসিফিকেশন পূর্ব সেগমেন্টেশনের প্রয়োজন ছাড়াই অক্ষর ক্রম ডিকোড করে। CRNN যেকোনো দৈর্ঘ্যের টেক্সটের সাথে কাজ করে এবং বক্রতা ও বিকৃতির প্রতি প্রতিরোধী। arXiv (2025) অনুসারে, CRNN মডেল ICDAR 2019 বেঞ্চমার্কে 97.5% নির্ভুলতা অর্জন করে।

OCR সমাধাননির্ভুলতাগতিভাষাপ্ল্যাটফর্ম
ML Kit V296%10–30 ms45+Android, iOS
Apple Vision95%10–40 ms13+iOS, macOS
Tesseract 590%50–200 ms100+ক্রস-প্ল্যাটফর্ম
Google Cloud Vision98%500–1000 ms200+সার্ভার (API)

মোবাইল ডিভাইসের জন্য CRNN — ML Kit INT8 কোয়ান্টাইজেশন সহ MobileNetV2 + CRNN মডেল ব্যবহার করে। মডেলটি 2–5 MB (লেটেন্ট) এবং TFLite Delegate-এর মাধ্যমে GPU/NPU-তে চলে। Tesseract (ক্লাসিক পাইপলাইন) এর বিপরীতে, নিউরাল নেটওয়ার্ক OCR-এ আলাদা অক্ষর সেগমেন্টেশনের প্রয়োজন হয় না এবং এটি শব্দের প্রতি বেশি প্রতিরোধী। ত্রুটি: রিয়েল-টাইমের জন্য GPU বা NPU প্রয়োজন — শুদ্ধ CPU-তে গতি 5–10 FPS-এ নেমে যায়।

Android এবং iOS-এ ML Kit Text Recognition

ML Kit Text Recognition মোবাইল অ্যাপ্লিকেশনের জন্য প্রধান OCR টুল। এটি দুটি সংস্করণে উপলব্ধ: V2 (ল্যাটিন-ভিত্তিক — ল্যাটিন, সিরিলিক, অঙ্কের জন্য অপ্টিমাইজড) এবং V1 (ল্যাটিন + CJK — জাপানি, চীনা, কোরিয়ান, কিন্তু ধীর)। V2 একটি এন্ড-টু-এন্ড CRNN মডেল ব্যবহার করে, V1 একটি পুরানো CNN + LSTM ব্যবহার করে। Google CJK শনাক্তকরণের প্রয়োজন ছাড়া সব ক্ষেত্রেই V2-এর সুপারিশ করে।

ML Kit ফলাফলের কাঠামো: Text → TextBlock → Line → Element (Word/Symbol)। প্রতিটি স্তরে বাউন্ডিং বক্স, কনফিডেন্স (0..1) এবং শনাক্ত টেক্সট থাকে। Text হল রুট অবজেক্ট যাতে fullText (সমস্ত শনাক্ত টেক্সট এক লাইনে) থাকে। TextBlock হল টেক্সটের একটি লজিক্যাল ব্লক (প্যারাগ্রাফ, কলাম)। Line হল টেক্সটের একটি লাইন। Element হল একটি শব্দ বা প্রতীক। ভুল শনাক্তকরণ ফিল্টার করতে confidence ব্যবহার করুন।

kotlin
// ML Kit Text Recognition V2
val recognizer = TextRecognition.getClient(
    TextRecognizerOptions.DEFAULT_OPTIONS
)

recognizer.process(inputImage)
    .addOnSuccessListener { text ->
        val fullText = text.text
        text.textBlocks.forEach { block ->
            val blockText = block.text
            val blockRect = block.boundingBox
            block.lines.forEach { line ->
                line.elements.forEach { element ->
                    val word = element.text
                    val confidence = element.confidence
                }
            }
        }
    }
    .addOnFailureListener { error -> /* error */ }

iOS-এ টেক্সট রিকগনিশন ML Kit-এর মাধ্যমে: API Android-এর মতো কিন্তু InputImage-এর পরিবর্তে UIImage/CVPixelBuffer ব্যবহার করে। ML Kit স্বয়ংক্রিয়ভাবে Core ML Delegate-এর মাধ্যমে A12+-এ Apple Neural Engine ব্যবহার করে। iOS-এর জন্য, ML Kit Text Recognition V2 iPhone 15 Pro-তে 15–30 ms গতি দেখায়। সর্বোচ্চ পারফরম্যান্সের জন্য, পাস করার আগে UIImage-কে CVPixelBuffer-এ রূপান্তর করুন — এটি রূপান্তর ওভারহেড কমায়।

Apple Vision Framework: VNRecognizeTextRequest

Apple Vision Framework VNRecognizeTextRequest (iOS 13+) এর মাধ্যমে নেটিভ OCR প্রদান করে। Vision OCR Apple Neural Engine (ANE) ব্যবহার করে এবং অতিরিক্ত SDK-এর প্রয়োজন হয় না। 13টি ভাষা সমর্থন করে (EN, FR, IT, DE, ES, PT, ZH, JP, KO, RU, AR, TH, VI)। Vision স্বয়ংক্রিয়ভাবে টেক্সটের ভাষা সনাক্ত করে (ভাষা সংশোধন) এবং একটি ফ্রেমে একাধিক ভাষা সমর্থন করে। গতি — A16+ এ 10–40 ms।

Vision OCR বৈশিষ্ট্য: recognitionLevel (দ্রুত বনাম নির্ভুল), automaticLanguageDetection, customWords (নির্দিষ্ট শব্দ যোগ করা), supportsTop candidates (ঝাপসা টেক্সটের জন্য একাধিক শনাক্তকরণ বিকল্প)। ফাস্ট মোড 10–20 ms-এ 90% নির্ভুলতা দেয়, অ্যাকিউরেট মোড 30–50 ms-এ 95% দেয়। প্রোডাকশনের জন্য, confidence >= 0.5 দিয়ে ফিল্টার করে অ্যাকিউরেট ব্যবহার করুন।

swift
import Vision

let request = VNRecognizeTextRequest { request, error in
    guard let observations = request.results as? [VNRecognizedTextObservation] else { return }
    for observation in observations {
        let topCandidate = observation.topCandidates(1).first
        let text = topCandidate?.string ?? ""
        let confidence = topCandidate?.confidence ?? 0
        let boundingBox = observation.boundingBox
    }
}
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true

let handler = VNImageRequestHandler(cgImage: cgImage, orientation: .up)
try handler.perform([request])

iOS-এ Vision বনাম ML Kit: Vision পুরনো ডিভাইসে (iPhone X–13) বিল্ট-ইন ANE-এর কারণে দ্রুততর। ML Kit জটিল দৃশ্যে (বিকৃতি, বক্রতা, ঝলক) Google-এর মডেলের কারণে বেশি নির্ভুল যা লক্ষ লক্ষ scene text ইমেজে প্রশিক্ষিত। Vision পৃথক অক্ষরের জন্য confidence সমর্থন করে না (শুধু শব্দের জন্য), যা ফিল্টারিং সীমিত করে। ডকুমেন্টের জন্য — Vision (দ্রুত), scene text-এর জন্য — ML Kit (বেশি নির্ভুল)।

Tesseract OCR: ওপেন-সোর্স বিকল্প

Tesseract OCR একটি ওপেন-সোর্স টেক্সট রিকগনিশন ইঞ্জিন যা HP (1985–1998) দ্বারা তৈরি এবং Google (2006+) দ্বারা রক্ষণাবেক্ষিত। Tesseract 5 (LSTM-ভিত্তিক) CRNN নিউরাল নেটওয়ার্ক আর্কিটেকচার ব্যবহার করে, যা Tesseract 4 (ক্লাসিক + LSTM) এর তুলনায় উল্লেখযোগ্য নির্ভুলতা বৃদ্ধি দেয়। Tesseract 100+ ভাষা সমর্থন করে, যার মধ্যে সিরিলিক, আরবি, হিব্রু এবং CJK অন্তর্ভুক্ত। Android-এর জন্য — tess-two (ফর্ক), iOS-এর জন্য — swift-tesseract।

Tesseract-এর ত্রুটি: গতি 50–200 ms প্রতি ফ্রেম (শুধু CPU, GPU ত্বরণ নেই), ইঞ্জিনে পাস করার আগে ইমেজ প্রিপ্রসেসিং (বাইন্যারাইজেশন, ডিস্কিউ, ওরিয়েন্টেশন ডিটেকশন) প্রয়োজন, কোনো বিল্ট-ইন টেক্সট ডিটেকশন নেই — ইমেজ অঞ্চল পাস করতে হয় (প্রায়ই OpenCV Text Detection বা EAST-এর সাথে)। Tesseract পরিষ্কার ডকুমেন্টে 90% এবং scene text-এ ~70% নির্ভুলতা অর্জন করে।

কখন Tesseract বেছে নেবেন: যদি অ্যাপ Google Play ছাড়া ডিভাইসে (Huawei) চলে, বিরল ভাষার (সংস্কৃত, হিব্রু) সমর্থন প্রয়োজন, বা সম্পূর্ণ OCR পাইপলাইন কাস্টমাইজেশন (কাস্টম ফন্টে প্রশিক্ষণ) প্রয়োজন। অন্যান্য সব ক্ষেত্রে, ML Kit বা Vision দ্রুততর, বেশি নির্ভুল এবং কম কোড প্রয়োজন। Tesseract শুধুমাত্র তখনই ন্যায্য যখন তৃতীয়-পক্ষ SDK-তে সীমাবদ্ধতা থাকে।

kotlin
// Tesseract OCR via tess-two
val tess = TessBaseAPI()
tess.init(dataPath, "rus+eng")
tess.pageSegMode = TessBaseAPI.PageSegMode.PSM_AUTO

val bitmap = BitmapFactory.decodeResource(resources, R.drawable.text)
val gray = Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.ARGB_8888)
OpenCV.process(bitmap, gray) // বাইন্যারাইজেশন + ডিস্কিউ

tess.setImage(gray)
val result = tess.utF8Text
tess.recycle()

Tesseract-এর জন্য প্রিপ্রসেসিং বাধ্যতামূলক: গ্রেস্কেলে রূপান্তর, বাইন্যারাইজেশন (Otsu বা Adaptive), ডিস্কিউ, শব্দ অপসারণ (median blur)। প্রিপ্রসেসিং ছাড়া, Tesseract-এর নির্ভুলতা 50–60% এ নেমে যায়। প্রিপ্রসেসিংয়ের জন্য OpenCV ব্যবহার করুন: Imgproc.cvtColor → Imgproc.threshold → Imgproc.erode/dilate → Core.rotate (deskew)। সমান পটভূমির ডকুমেন্টের জন্য বাইন্যারাইজেশন যথেষ্ট, scene text-এর জন্য সম্পূর্ণ পাইপলাইন প্রয়োজন।

OCR-এর জন্য ইমেজ প্রিপ্রসেসিং

ইমেজের গুণমান OCR নির্ভুলতার প্রধান কারণ। ML Kit এবং Vision-এ বিল্ট-ইন প্রিপ্রসেসিং আছে, কিন্তু কঠিন ক্ষেত্রে (গাঢ় ছবি, ঝাপসা, ওভারএক্সপোজার) অতিরিক্ত প্রসেসিং নির্ভুলতা 10–15% বাড়ায়। মূল কৌশল: কনট্রাস্ট বর্ধন (CLAHE), শার্পনিং (unsharp mask), দৃষ্টিকোণ সংশোধন (perspective transform), ছায়া এবং ঝলক অপসারণ।

CLAHE (কনট্রাস্ট লিমিটেড অ্যাডাপ্টিভ হিস্টোগ্রাম ইকুয়ালাইজেশন) — অ্যাডাপ্টিভ হিস্টোগ্রাম ইকুয়ালাইজেশন যা স্থানীয় অঞ্চলে কনট্রাস্ট উন্নত করে। CLAHE অসম আলোযুক্ত ডকুমেন্টের ছবির জন্য কার্যকর (আংশিক ছায়া, আংশিক আলো)। OpenCV Core.createCLAHE clipLimit=2.0 এবং tileGridSize=(8,8) সহ OCR-এর জন্য সর্বোত্তম ফলাফল দেয়। CLAHE-এর পর, গাঢ় ডকুমেন্টে ML Kit-এর নির্ভুলতা 70% থেকে 88% এ বৃদ্ধি পায়।

দৃষ্টিকোণ সংশোধন — কোণে তোলা ডকুমেন্টের ছবির জন্য বাধ্যতামূলক। ডকুমেন্ট সারিবদ্ধ করতে OpenCV findHomography + warpPerspective ব্যবহার করুন। স্বয়ংক্রিয় ডকুমেন্ট সীমানা সনাক্তকরণের জন্য, Canny edge detection + findContours + approxPolyDP ব্যবহার করুন। দৃষ্টিকোণ সংশোধনের পর, >30° কোণে তোলা ছবির জন্য OCR নির্ভুলতা 20–30% বৃদ্ধি পায়।

kotlin
// CLAHE + OpenCV প্রিপ্রসেসিং
val mat = Mat()
Utils.bitmapToMat(bitmap, mat)
Imgproc.cvtColor(mat, mat, Imgproc.COLOR_RGB2GRAY)

val clahe = Imgproc.createCLAHE(2.0, Size(8.0, 8.0))
clahe.apply(mat, mat)

Imgproc.GaussianBlur(mat, mat, Size(3.0, 3.0), 0.0)
Imgproc.threshold(mat, mat, 0.0, 255.0, Imgproc.THRESH_BINARY or Imgproc.THRESH_OTSU)

val processedBitmap = Bitmap.createBitmap(mat.cols(), mat.rows(), Bitmap.Config.ARGB_8888)
Utils.matToBitmap(mat, processedBitmap)

OCR-এর আগে টেক্সট ডিটেকশন — scene text-এর জন্য, OCR-এ পাস করার আগে EAST (এফিশিয়েন্ট অ্যাকিউরেট সিন টেক্সট ডিটেক্টর) বা CRAFT (ক্যারেক্টার রিজিয়ন অয়ারনেস ফর টেক্সট ডিটেকশন) ব্যবহার করুন। EAST 5–15 ms-এ দৃশ্যে টেক্সট বাউন্ডিং বক্স সনাক্ত করে। CRAFT বেশি নির্ভুল (97%) কিন্তু ধীর (50–100 ms)। টেক্সট ডিটেকশন টেক্সটবিহীন এলাকা ফিল্টার করতে এবং শুধু প্রাসঙ্গিক অঞ্চল OCR-এ পাস করতে দেয়, যা সামগ্রিক প্রসেসিং দ্রুত করে।

মোবাইল অ্যাপে OCR-এর ব্যবহার

ডকুমেন্ট স্ক্যানিং — OCR-এর সবচেয়ে ব্যাপক ব্যবহার। স্ক্যানিং অ্যাপ (CamScanner, Adobe Scan, Google Drive) ডকুমেন্টের ছবি থেকে টেক্সট শনাক্ত করতে ML Kit বা Vision ব্যবহার করে। সাধারণ পাইপলাইন: ডকুমেন্ট সীমানা সনাক্তকরণ → দৃষ্টিকোণ সংশোধন → CLAHE প্রসেসিং → OCR → ফরম্যাটিং (PDF, DOCX)। ML Kit Text Recognition V2 এটি প্রতি A4 পৃষ্ঠায় 100–200 ms-এ পরিচালনা করে।

রিয়েল-টাইম টেক্সট অনুবাদ — OCR এবং মেশিন অনুবাদের সমন্বয়। Google Translate, Microsoft Translator, Yandex Translate ক্যামেরা থেকে টেক্সট শনাক্ত করতে ML Kit বা Vision ব্যবহার করে এবং মূল টেক্সটের ওপর অনুবাদ প্রদর্শন করে (AR অনুবাদ)। প্রয়োজন: আরামদায়ক UX-এর জন্য লেটেন্সি < 200 ms। ML Kit V2 + NNAPI প্রতি ফ্রেমে 30–80 ms দেয়, অনুবাদ এবং রেন্ডারিংয়ের জন্য জায়গা রাখে।

স্বয়ংক্রিয় ডেটা এন্ট্রি — বিজনেস কার্ড, ব্যাংক কার্ড, আইডি থেকে ডেটা বের করার জন্য OCR। ML Kit টেক্সট শনাক্ত করে, তারপর পোস্ট-প্রসেসিং কাঠামো পার্স করে: নাম, ফোন, ইমেল (বিজনেস কার্ড) বা কার্ড নম্বর, মেয়াদ, CVV (পেমেন্ট কার্ড)। বিজনেস কার্ডের জন্য, OCR-এর পরে রেগুলার এক্সপ্রেশন ব্যবহার করুন। ব্যাংক কার্ডের জন্য — বিশেষায়িত ML মডেল (পেইড, ~99% নির্ভুলতা)।

swift
// OCR + AR অনুবাদ (সরলীকৃত)
let request = VNRecognizeTextRequest { req, _ in
    guard let results = req.results as? [VNRecognizedTextObservation] else { return }
    for observation in results {
        let text = observation.topCandidates(1).first?.string ?? ""
        let rect = observation.boundingBox
        // অনুবাদ এবং আয়তক্ষেত্রে AR রেন্ডারিং
        DispatchQueue.main.async {
            overlayView.showTranslation(text, at: rect)
        }
    }
}
request.recognitionLevel = .fast
request.usesLanguageCorrection = false

দৃষ্টি প্রতিবন্ধী ব্যবহারকারীদের জন্য OCR — সহায়ক প্রযুক্তি: অ্যাপগুলি প্যাকেজ, মেনু, সাইন থেকে টেক্সট জোরে পড়ে। তারা ML Kit OCR + টেক্সট-টু-স্পিচ (Android TTS / iOS AVSpeechSynthesizer) ব্যবহার করে। মূল প্রয়োজন — কম লেটেন্সি (< 100 ms) সহ রিয়েল-টাইম। Seeing AI (Microsoft) এবং Envision AI এই পদ্ধতি ব্যবহার করে। অ্যাক্সেসিবিলিটি অ্যাপের জন্য, ফাস্ট রিকগনিশন মোড ব্যবহার করুন এবং confidence অনুযায়ী ফিল্টার করবেন না — যেকোনো টেক্সট ব্যবহারকারীর জন্য মূল্যবান।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

মোবাইল অ্যাপ্লিকেশনে টেক্সট রিকগনিশন (OCR) কী?

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

Android-এর জন্য কোন OCR ভাল: ML Kit নাকি Tesseract?

ML Kit Text Recognition Android-এর জন্য সেরা পছন্দ: 96% নির্ভুলতা, 10–30 ms গতি, 45 ভাষা, NNAPI-এর মাধ্যমে GPU ত্বরণ, যেকোনো ওরিয়েন্টেশনে টেক্সট খুঁজে পায়। Tesseract একটি ওপেন-সোর্স বিকল্প (90% নির্ভুলতা, 100+ ভাষা, CPU), Google Play ছাড়া ডিভাইস বা বিরল ভাষার জন্য উপযুক্ত। 95% প্রকল্পের জন্য, ML Kit বেছে নিন — এটি দ্রুততর, বেশি নির্ভুল এবং ইমেজ প্রিপ্রসেসিং প্রয়োজন হয় না।

মোবাইল ডিভাইসে OCR-এর জন্য ইন্টারনেট প্রয়োজন কি?

না, ML Kit Text Recognition, Apple Vision এবং Tesseract সম্পূর্ণ ডিভাইসে কাজ করে। ML Kit প্রথম লঞ্চে মডেল ডাউনলোড করতে পারে (ডাউনলোডেড মোড), তারপর অফলাইনে কাজ করে। Apple Vision iOS-এ নির্মিত এবং ইন্টারনেটের প্রয়োজন হয় না। Tesseract সম্পূর্ণ অফলাইন। ক্লাউড OCR (Google Cloud Vision, AWS Textract) ইন্টারনেটের মাধ্যমে কাজ করে কিন্তু মোবাইল রিয়েল-টাইম অ্যাপ্লিকেশনে ব্যবহৃত হয় না।

ML Kit Text Recognition কোন ভাষা সমর্থন করে?

ML Kit Text Recognition V2 ল্যাটিন এবং সিরিলিক গ্রুপের 45+ ভাষা সমর্থন করে: ইংরেজি, রুশ, জার্মান, ফ্রেঞ্চ, স্প্যানিশ, ইতালিয়ান, পর্তুগিজ, পোলিশ, ইউক্রেনীয়, রোমানিয়ান, তুর্কি এবং অন্যান্য। V1 (CJK) অতিরিক্তভাবে চীনা, জাপানি, কোরিয়ান সমর্থন করে। সম্পূর্ণ তালিকা — TextRecognizerOptions ডকুমেন্টেশনে। আরবি বা হিব্রু শনাক্ত করতে, Tesseract (>100 ভাষা) ব্যবহার করুন।

ডকুমেন্টের ছবিতে OCR নির্ভুলতা কীভাবে উন্নত করবেন?

মূল পদ্ধতি: ডকুমেন্ট সারিবদ্ধকরণ (OpenCV-এর মাধ্যমে দৃষ্টিকোণ সংশোধন), কনট্রাস্ট বর্ধন (CLAHE), শার্পনিং (unsharp mask), ভাল আলো (নিরবচ্ছিন্ন অটো-এক্সপোজার), ক্যামেরা স্থিতিশীলকরণ (OIS/EIS)। ML Kit মৌলিক বিকৃতি নিজে সামলায়, কিন্তু দৃষ্টিকোণ বিকৃতি (>30°)যুক্ত ডকুমেন্টের জন্য, প্রিপ্রসেসিং নির্ভুলতা 20–30% বাড়ায়। ভিডিওর জন্য ফাস্ট রিকগনিশন মোড ব্যবহার করুন।

সারসংক্ষেপ

  • টেক্সট রিকগনিশন — মোবাইল ডিভাইসে OCR: মুদ্রিত, হাতের লেখা, দৃশ্য টেক্সট
  • ML Kit V2 — 96% নির্ভুলতা, 45+ ভাষা, 10–30 ms, GPU/NPU ত্বরণ
  • Apple Vision — নেটিভ iOS OCR (iOS 13+), 13 ভাষা, ANE-এর মাধ্যমে
  • Tesseract 5 — ওপেন-সোর্স, 100+ ভাষা, 50–200 ms (CPU), Huawei-এর জন্য বিকল্প
  • প্রিপ্রসেসিং — CLAHE, ডিস্কিউ, দৃষ্টিকোণ সংশোধন নির্ভুলতা 10–30% বাড়ায়
  • রিয়েল-টাইম — ML Kit বা Vision-এর সাথে CameraX/AVFoundation-এর মাধ্যমে 30 FPS পর্যন্ত
  • অন-ডিভাইস — সমস্ত গণনা স্থানীয়ভাবে, ডেটা গোপনীয়তা নিশ্চিত

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন