ওপেনসিভি + পাইথনে ইমেজ প্রসেসিং # ১ – শুরুর কথা

ওপেনসিভি + পাইথনে ইমেজ প্রসেসিং

শুরুর কথা

ইমেজ প্রসেসিং নিয়ে ঘাটাঘাটি করছি খুব বেশিদিন হয়নি । বলতে গেলে ইউনিভার্সিটিতে ইলেক্টিভ ট্রেইলের কোর্স করতে গিয়ে ইমেজ প্রসেসিং এর প্রতি আগ্রহ জন্মেছিলো । ইমেজ তো সবাই ব্যবহার করি প্রতিদিন। আয়নার সামনে যখন দাঁড়াই, আয়না আমাদের কে নিজের ইমেজ দেখায়। ফোনের ক্যামেরা দিতে ধুপধাপ ইমেজ তুলি। কেউ বা তুলি DSLR দিয়ে মানুষের প্রোফাইল পিকচার / ইমেজ তুলে দেয় (না ভাই পচাই নাই, শান্তি!)

এই যে এত শত ইমেজ তুলি, কখনো কি ভেবে দেখেছি যে ক্যামেরার বাটন ক্লিক করার পরে সেটা কীভাবে মেমোরিতে যায়? কিংবা, এই যে সুন্দর সুন্দর ফিল্টার দিয়ে আমরা ছবিকে ভালো বানানোর চেষ্টা করি সেগুলো কীভাবে কাজ করে? ফটোশপ নিয়ে এত হাহাকার? সেটা কী কী এলগোরিদমে চলে?

এইবার একটু কুল জিনিস নিয়ে কথা বলি। হয়তো আপনি নড়েচড়ে বসতে পারেন। আমি যদি বলি যে,

  • একটা ছবিতে কয়জন লোক আছে সেটা প্রোগ্রাম লিখে গুণে ফেলা সম্ভব
  • ছবিতে কেমন ধরণের জিনিস আছে সেটা প্রোগ্রাম লিখে বের করা সম্ভব
  • হয়তো কেউ ঘোলা ব্যাকগ্রাউন্ডের ফটো চেয়েছিল । দূর্ভাগ্যবশত ফোকাস হয়নি । ব্লার হয়ে গেছে। শার্প করলে ছবিটা ঠিক হবে । কিন্তু শার্প কতদূর করবেন সেটা জানার উপায় কি? সহজ ব্যাপার । প্রোগ্রাম আছে না! আবার উল্টো কেসের জন্যও একই সমাধান! স্মুথনেসের পরিমাণ বের করে নিলেই চলবে।

এবং ইত্যাদি ইত্যাদি।

এগুলো টিজার। ইমেজ প্রসেসিং এ এর ট্রেইলার এবং ফুল মুভি সব নিয়েই কাজ করা যায় ।

তা এত ল্যাংগুয়েজ থাকতে পাইথন কেন? আর ওপেনসসিভি ই বা কেন?

কারণ আমরা জাতি হিসেবে বড়ই অলস। কম পরিশ্রমে বেশি কাজ হলে বেশি খাটবো কেন বাপু?

ইউনিভার্সিটিতে এবং অন্যান্য জায়গাতেও ইমেজ প্রসেসিং শেখানো এবং কাজ করার জন্য জাতীয় ল্যাংগুয়েজ হচ্ছে Matlab.কারণ ম্যাটল্যাবে কম্পিউটার ভিশনআর ইমেজ প্রসেসিং এর জন্য যা যা লাগে তার সবই পাওয়া যায়।

আমি নিজেই শুরু করেছিলাম ম্যাটল্যাব দিয়ে । কিন্তু ম্যাটল্যাবে স্বাচ্ছন্দ্য বোধ করিনি কখনো । তাছাড়া ম্যাটল্যাব ফ্রি তে আসেনা। ওপেন সোর্স এ ভালো জিনিস থাকলে কি দরকার ম্যাটল্যাব নিয়ে মারামারি করার? OpenCV ওপেন সোর্স ফ্রেমওয়ার্ক। Python, Java, C++, Scala, Objective-C ইত্যাদি বহু ল্যাঙ্গুয়েজে OpenCV নিয়ে কাজ করা যায়। তাছাড়া এন্ড্রয়েড এবং iOS অ্যাপ্লিকেশন ডেভেলপমেন্টেও এর বেশ জনপ্রিয়তা রয়েছে । ( এত শত ফিল্টার ওয়ালা অ্যাপ স্টোরে, এমনি এমনি কি আসে নাকি? 😉 )

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

শুরু করতে যা যা লাগবে

  • একটা কম্পিউটার
  • Anaconda Python3 (ওপেনসিভি সোর্স থেকে বিল্ড করা অনেক প্যাঁড়া, অ্যানাকন্ডাতে ইজিলি সব প্যাকেজ পাওয়া যায়)
  • আপনার পছন্দের এডিটর বা IDE
  • পাইথন সম্পর্কে বেসিক নলেজ। (লুপ, ফাংশন, কন্ট্রোল স্টেটমেন্ট এগুলো জানলেও কাজ চালিয়ে নিতে পারবেন)
  • ভালো হয় যদি বেশি CUDA কোর ওয়ালা NVIDIA জিপিউ থাকে । ম্যান্ডেটরি কিছু না । থাকলে ভালো । প্যারালাল ওয়ার্কলোড দিয়ে ভারী প্রসেস গুলো দ্রুত শেষ করা যাবে আরকি।
  • অপারেটিং সিস্টেম – যেহেতু Anaconda দিয়ে কাজ করছি , আপনার যেটা ভালো লাগে সেটাই চালান।
  • ইন্টারনেট সংযোগ থাকলে ভালো । পাইথনের প্যাকেজ ইন্সটল করতে লাগবে ।
  • কমান্ড লাইন ব্যবহার করা লাগবে। সো একটু সাইজ করে নিয়েন।
  • আর অনেক কফি আর ধৈর্য মজুদ করে রাখবেন। এটা বেশি জরুরি।

ডাউনলোড করার লিংক

  • [x] Anaconda => anaconda 4.2.0
    অ্যানাকন্ডার 4.3 ভার্শন এখনো সব প্যাকেজের জন্য কম্প্যাটিবল না । ল্যাটেস্ট দেখে ইন্সটল করতে গেলে ধরা খাওয়ার সমূহ সম্ভাবনা আছে।

  • যদি macOS ইউজার হন তাহলে .pkg এক্সটেনশনের

  • উইন্ডোজ ইউজার হলে ৩২ / ৬৪ বিট অনুযায়ী ইন্সটলার প্যাকেজ
  • আর কোন Linux Distro ইউজার হলে .sh এক্সটেনশনের ফাইলটা নামাবেন

  • [x] Pycharm Community Edition => Pycharm Community Edition

  • [x] Atom => Atom
  • [x] Visual Studio Code => VS Code

তো পয়লা পোস্টের ইতি টানলাম। বিস্তারিত পরের অধ্যায়ে জানাবো ।

print("দেখা হবে পরের অধ্যায়ে।")

দেখা হবে পরের অধ্যায়ে।

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s