অপটিক্যাল ক্যারেক্টার রিকগনিশন (OCR)

অপটিক্যাল ক্যারেক্টার রিকগনিশন (OCR) হল কম্পিউটার ভিশন এবং মেশিন লার্নিং কৌশল ব্যবহার করে ছবি থেকে অক্ষর শনাক্ত করার প্রক্রিয়া। এই রেফারেন্স অ্যাপটি ডেমো করে কিভাবে OCR করতে TensorFlow Lite ব্যবহার করতে হয়। এটি পাঠ্য অক্ষর সনাক্ত করতে একটি OCR পাইপলাইন হিসাবে পাঠ্য সনাক্তকরণ মডেল এবং একটি পাঠ্য সনাক্তকরণ মডেলের সংমিশ্রণ ব্যবহার করে।

এবার শুরু করা যাক

আপনি যদি TensorFlow Lite-এ নতুন হয়ে থাকেন এবং Android-এর সাথে কাজ করেন, তাহলে আমরা আপনাকে শুরু করতে সাহায্য করতে পারে এমন নিম্নলিখিত উদাহরণের অ্যাপ্লিকেশনটি অন্বেষণ করার পরামর্শ দিই।

অ্যান্ড্রয়েড উদাহরণ

আপনি যদি অ্যান্ড্রয়েড ছাড়া অন্য কোনো প্ল্যাটফর্ম ব্যবহার করেন, বা আপনি ইতিমধ্যেই TensorFlow Lite API- এর সাথে পরিচিত, আপনি TF Hub থেকে মডেলগুলি ডাউনলোড করতে পারেন।

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

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

কর্মক্ষমতা বেঞ্চমার্ক

পারফরম্যান্স বেঞ্চমার্ক নম্বর এখানে বর্ণিত টুল দিয়ে তৈরি করা হয়।

ণশড মডেলের আকার যন্ত্র সিপিইউ জিপিইউ
পাঠ্য সনাক্তকরণ 45.9 Mb Pixel 4 (Android 10) 181.93ms* 89.77ms*
টেক্সট রিকগনিশন 16.8 Mb Pixel 4 (Android 10) 338.33ms* না/এ**

* 4টি থ্রেড ব্যবহার করা হয়েছে।

** এই মডেলটি GPU প্রতিনিধি ব্যবহার করতে পারেনি কারণ এটি চালানোর জন্য আমাদের TensorFlow অপারেশন প্রয়োজন৷

ইনপুট

পাঠ্য সনাক্তকরণ মডেল ইনপুট হিসাবে (1, 320, 320, 3) এর একটি 4-D float32 টেনসর গ্রহণ করে।

পাঠ্য শনাক্তকরণ মডেল ইনপুট হিসাবে (1, 31, 200, 1) এর একটি 4-D float32 টেনসর গ্রহণ করে।

আউটপুট

টেক্সট শনাক্তকরণ মডেল একটি 4-D float32 আকৃতির টেনসর (1, 80, 80, 5) বাউন্ডিং বক্স হিসাবে এবং একটি 4-D float32 আকৃতির টেনসর (1,80, 80, 5) সনাক্তকরণ স্কোর হিসাবে প্রদান করে।

টেক্সট রিকগনিশন মডেলটি বর্ণমালা তালিকা '0123456789abcdefghijklmnopqrstuvwxyz'-এ ম্যাপিং সূচক হিসাবে আকৃতির একটি 2-D float32 টেনসর (1, 48) প্রদান করে

সীমাবদ্ধতা

  • বর্তমান পাঠ্য শনাক্তকরণ মডেলটি ইংরেজি অক্ষর এবং সংখ্যা সহ সিন্থেটিক ডেটা ব্যবহার করে প্রশিক্ষিত, তাই শুধুমাত্র ইংরেজি সমর্থিত।

  • মডেলগুলি বন্য অঞ্চলে OCR-এর জন্য যথেষ্ট সাধারণ নয় (বলুন, কম আলোর অবস্থায় স্মার্টফোন ক্যামেরা দ্বারা তোলা এলোমেলো ছবি)।

তাই আমরা 3টি Google পণ্যের লোগো বেছে নিয়েছি শুধুমাত্র TensorFlow Lite দিয়ে OCR কিভাবে করতে হয় তা প্রদর্শন করার জন্য। আপনি যদি ব্যবহার করার জন্য প্রস্তুত প্রোডাকশন-গ্রেড OCR পণ্য খুঁজছেন, তাহলে আপনার Google ML Kit বিবেচনা করা উচিত। ML কিট, যা নীচে TFLite ব্যবহার করে, বেশিরভাগ OCR ব্যবহারের ক্ষেত্রে যথেষ্ট হওয়া উচিত, কিন্তু কিছু ক্ষেত্রে আপনি TFLite এর সাথে আপনার নিজস্ব OCR সমাধান তৈরি করতে চাইতে পারেন। কিছু উদাহরণ হল:

  • আপনার নিজস্ব পাঠ্য সনাক্তকরণ/স্বীকৃতি TFLite মডেল রয়েছে যা আপনি ব্যবহার করতে চান
  • আপনার বিশেষ ব্যবসায়িক প্রয়োজনীয়তা রয়েছে (অর্থাৎ, উল্টাপাল্টা পাঠ্যগুলি সনাক্ত করা) এবং ওসিআর পাইপলাইন কাস্টমাইজ করতে হবে
  • আপনি ML Kit দ্বারা আচ্ছাদিত নয় এমন ভাষাগুলিকে সমর্থন করতে চান৷
  • আপনার টার্গেট ব্যবহারকারী ডিভাইসে Google Play পরিষেবাগুলি ইনস্টল করা আবশ্যক নয়৷

তথ্যসূত্র