Recognize Image with TensorFlow 2.0 on Android – Part 1 of 2

tensorflow-image-recognition

Part 1 : Train data with TensorFlow 2.0 & Convert to tflite model

টেনসরফ্লো দিয়ে ডেটা ট্রেনিং করা এবং tflite model এ কনভার্ট করা

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

আমাদের হোমব্রু প্যাকেজ ম্যানেজার লাগবে যাতে সহজেই পাইথন ইনস্টল করতে পারি।

টার্মিনাল ওপেন করে-

$ brew -v

লিখে এন্টার চাপলে হোমব্রু এর ভার্সন দেখাবে। আর ইনস্টল করা না থাকলে নিচের লিংক থেকে ইনস্টল করে নিন।

Install home brew:  from here:  https://brew.sh/

এবার ভার্সন চেক করে দেখুন, ইনস্টল হলে ভার্সন দেখাবে।

এরপর

$ python3 --version

লিখে এন্টার চাপুন। ইনস্টল করা না থাকলে অথবা 3.6 যদি না থাকে তবে 3.6 ইনস্টল করতে হবে। শুধু 3.7 হলে হবে না।

প্রথমে পাইথনের লেটেস্ট ভার্সনটা ইনস্টল করে নিতে হবে কারন pip3 আমাদের লাগবে। পাইথন 3.7 এ pip3 আছে।

নিচের কমান্ড গুলো রান করুন:

 $ brew install python3
 $ brew postinstall python3 

এখন নিচের কমান্ড দিন যাতে লেটেস্ট পাইথনের ব্যবহার বন্ধ থাকে:

$ brew unlink python

এবার 3.6.* ইনস্টল করুন নিচের কমান্ড দিয়ে: সহায়ক লিংক: install python 3.6.5

$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

কাজ শেষে আবার লেটেস্ট ভার্সনে ফেরত যেতে; এখন এটা রান করবেন না:

$ brew switch python 3.7.0

আবার ৩.৬ ভার্সন পেতে উপরের কমান্ড রান না করালে এটা রান করার দরকার নেই:

$ brew switch python 3.6.5_1

৩.৬ ভার্সনটি আমাদের লাগবে।

তারপর টেনসরফ্লো ২.০ ইনস্টল করতে নিচের কমান্ড দিন:

$ pip3 install tensorflow==2.0.0-beta1 

ভিজুয়াল তথ্য দেখার জন্য পাইথনের প্লটিং লাইব্রেরি ইনস্টল করতে নিচের কমান্ড দিন:

$ python3 -m pip install matplotlib

আমাদের পাইথনের পিলো লাইব্রেরি লাগবে:

$ pip3 install pillow

পিলো ভার্সন দেখতে পাইথন রান করে ভার্সন দেখতে পারেন:

Pillow Version:

 python3
 >>> print(PIL.__version__) 

সিম্বলিক ম্যাথমেটিক্স এর পাইথন লাইব্রেরি (sympy) ইনস্টলের জন্য:

$ python3 -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose

এবার আমাদের লাগবে জুপিটার নোটবুক – এটি ব্রাউজার ভিত্তিক কোড এডিটর:

এটা ইনস্টল করতে নিচের কমান্ড চাপুন:

$ pip install jupyterlab

জুপিটার চালানোর আগে আমাদের একটি ফাইল লাগবে যা নিচের লিংক থেকে নামিয়ে নিন:

গিট লিংক –

https://raw.githubusercontent.com/TouhidApps/Machine-Learning-And-Deep-Learning/master/Tensorflow-Image-Training-tflite/TFLiteImageTraining.ipynb

ফাইলটির এক্সটেন্শন হলো .ipynb (IPython Notebook) যা জুপিটারের ফাইল।

ফাইলটি পছন্দমত কোন ফোল্ডারে রাখুন যেখান ফাইলটি নিয়ে কাজ করতে চান, ডাউনলোড, ডকুমেন্ট অথবা ডেস্কটপে একটি ফোল্ডার করে নিন আর তাতে ডাউনলোড করা ফাইলটি রাখুন।

এবার জুপিটার ওপেন করুন নিচের কমান্ড দিয়ে:

$ jupyter-notebook

কমান্ড দেয়ার পর ব্রাউজারে ওপেন হবে, উপরে ডানদিকে New মেনুতে ক্লিক করে দেখুন Python 3 আছে কিনা। না থাকলে নিচের কমান্ড দিন থাকলে পরের ধাপে চলে যান:

 $ python3 -m pip install ipykernel
 $ python3 -m ipykernel install --user

ব্রাউজারে জুপিটারের ভিতরে ফোল্ডারের লিস্ট দেখাবে সেখান থেকে ডাউনলোড করা .ipynb ফাইলটি ওপেন করুন।

উপরের ডান কোনায় Python 3 আছে কি না নিশ্চিত হয়ে নিন। না থাকলে বা Python 2 থাকলে নতুন ফাইল নিন: File -> New Notebook -> Python 3

নতুন ফাইলে সব কোড কপি পেষ্ট করুন।

এবার টুল বারের রান আইকনে ক্লিক করে রান করুন।

রান দেয়ার পর যদি দরকারি কোন লাইব্রেরি ইনস্টল না থাকে তবে তা দেখাবে।

ইরর না থাকলে গুগলের সার্ভার থেকে কিছু কম্প্রেস করা ইমেজ ফাইল ডাউনলোড করবে এবং তা এক্সট্রাক্ট করবে।

ফাইলগুলো বিভিন্ন ফুলের নামে ফোল্ডার করে রাখা। একেকটা ফোল্ডারে অনেকগুলো করে ফুলের ছবি দেয়া। যেমন: roses ফোল্ডারে অনেক রকমের গোলাপ ফুলের ছবি রাখা।

তারপর তা ট্রেনিং করাবে আপনাকে ভিজুয়াল কিছু ডাটা দেখাবে।

শেষে tflite এক্সটেন্শনের একটা ফাইল (model.tflite) সেই যায়গায় পাবেন যেখানে আপনি ডাউনলোড করা জুপিটার ফাইলটা(.ipynb) রেখেছিলেন।

আরো একটা ফাইল (labels.txt) পাবেন যাতে সব ডিরেক্টরিগুলোর নাম আছে।

এই দুটি ফাইল দিয়ে পরের ধাপে আমরা এন্ড্রয়েড এ্যাপ তৈরি করব যা ক্যামেরার সাহায্যে কোনটা কোন ফুলের ছবি তা বুঝতে পারবে, যেহেতু উদাহরণে আমরা কিছু ফুলের ছবি ব্যবহার করেছি। আপনি চাইলে জুপিটারে ওপেন করা ফাইলের কোডে ফাইল ডাউনলোড করা অংশটি বাদ দিয়ে base_dir তে নিজের দরকার মত ইমেজ ডিরেক্টরি দেখিয়ে দিতে পারেন এতে আপনার পছন্দমত ছবি চিনতে পারবে।

দ্বিতীয় অংশ দেখুন এখানে

Reference:

https://colab.research.google.com/github/tensorflow/examples/blob/master/community/en/flowers_tf_lite.ipynb#scrollTo=z4gTv7ig2vMh

https://codelabs.developers.google.com/codelabs/recognize-flowers-with-tensorflow-on-android/#0

  •  
  •  
  •  
  •  
  •  

3 thoughts on “Recognize Image with TensorFlow 2.0 on Android – Part 1 of 2

  1. আজ গরীব বলে আমার ম্যাকবুক নাই বলে আমার কি প্রজেক্ট রান করবে না স্যার 🙁

Leave a Reply

Your email address will not be published. Required fields are marked *