এটা নিশ্চিত যে আমরা উদাহরণ দিয়ে শেখার এবং তাদের পারিপার্শ্বিক অবস্থা অনুধাবন করার জন্য আমাদের সহজাত ক্ষমতা দিয়ে রোবটগুলিকে আবদ্ধ করতে পেরেছি। মৌলিক চ্যালেঞ্জ হল যারা কম্পিউটারকে মানুষের মতো "দেখতে" শেখায় তাদের অনেক বেশি সময় এবং প্রচেষ্টার প্রয়োজন হবে।
যাইহোক, যখন আমরা ব্যবহারিক মূল্য বিবেচনা করি যে এই দক্ষতা বর্তমানে সংস্থা এবং উদ্যোগগুলিকে প্রদান করে, তখন প্রচেষ্টা সার্থক। এই নিবন্ধে, আপনি চিত্রের শ্রেণিবিন্যাস, এটি কীভাবে কাজ করে এবং এর ব্যবহারিক বাস্তবায়ন সম্পর্কে শিখবেন। চল শুরু করি.
ইমেজ শ্রেণীবিভাগ কি?
একটি মধ্যে একটি ছবি খাওয়ানোর কাজ স্নায়বিক নেটওয়ার্ক এবং এটি সেই ছবির জন্য কিছু ধরণের লেবেল আউটপুট করে যা ইমেজ স্বীকৃতি হিসাবে পরিচিত। নেটওয়ার্কের আউটপুট লেবেল একটি পূর্ব-সংজ্ঞায়িত ক্লাসের সাথে সঙ্গতিপূর্ণ হবে।
ছবির জন্য অনেক ক্লাস বরাদ্দ করা হতে পারে, বা কেবল একটি। যখন শুধুমাত্র একটি শ্রেণী থাকে, তখন "স্বীকৃতি" শব্দটি প্রায়শই ব্যবহৃত হয়, যখন একাধিক শ্রেণী থাকে, তখন "শ্রেণীবিভাগ" শব্দটি প্রায়শই ব্যবহৃত হয়।
বস্তু সনাক্তকরণ ছবির শ্রেণীবিভাগের একটি উপসেট যেখানে বস্তুর নির্দিষ্ট দৃষ্টান্তগুলি প্রাণী, যানবাহন বা মানুষের মতো একটি নির্দিষ্ট শ্রেণীর অন্তর্গত হিসাবে সনাক্ত করা হয়।
ইমেজ শ্রেণীবিভাগ কিভাবে কাজ করে?
পিক্সেল আকারে একটি চিত্র একটি কম্পিউটার দ্বারা বিশ্লেষণ করা হয়। এটি চিত্রটিকে ম্যাট্রিক্সের সংগ্রহ হিসাবে বিবেচনা করে এটি সম্পাদন করে, যার আকার চিত্র রেজোলিউশন দ্বারা নির্ধারিত হয়। সহজভাবে বলতে গেলে, ছবির শ্রেণীবিভাগ হল কম্পিউটারের দৃষ্টিকোণ থেকে অ্যালগরিদম ব্যবহার করে পরিসংখ্যানগত ডেটার অধ্যয়ন।
ডিজিটাল ইমেজ প্রসেসিং-এ পিক্সেলকে পূর্বনির্ধারিত গোষ্ঠী বা "ক্লাস"-এ গোষ্ঠীবদ্ধ করে চিত্র শ্রেণীবিভাগ সম্পন্ন করা হয়। অ্যালগরিদমগুলি ইমেজটিকে উল্লেখযোগ্য বৈশিষ্ট্যগুলির ধারাবাহিকতায় বিভক্ত করে, যা চূড়ান্ত শ্রেণীবিভাগের জন্য বোঝা হ্রাস করে।
এই গুণাবলী শ্রেণীবিভাগকারীকে চিত্রের অর্থ এবং সম্ভাব্য শ্রেণীবিভাগ সম্পর্কে অবহিত করে। যেহেতু একটি ছবির শ্রেণীবিন্যাস করার বাকি প্রক্রিয়াগুলি এটির উপর নির্ভর করে, চরিত্রগত নিষ্কাশন পদ্ধতিটি সবচেয়ে গুরুত্বপূর্ণ পর্যায়।
সার্জারির তথ্য প্রদান ইমেজ শ্রেণীবিভাগ, বিশেষ করে তত্ত্বাবধানে শ্রেণীবিভাগের ক্ষেত্রেও অ্যালগরিদম অত্যন্ত গুরুত্বপূর্ণ। শ্রেণী এবং নিম্ন ছবি এবং টীকা মানের উপর ভিত্তি করে ডেটা ভারসাম্যহীনতার সাথে একটি ভয়ানক ডেটাসেটের তুলনায়, একটি ভাল-অপ্টিমাইজ করা শ্রেণীবিভাগ ডেটাসেট প্রশংসনীয়ভাবে কাজ করে।
Python-এ Tensorflow এবং Keras ব্যবহার করে ছবির শ্রেণীবিভাগ
আমরা ব্যবহার করা হবে সিআইএফএআর -10 ডেটাসেট (যার মধ্যে রয়েছে বিমান, বিমান, পাখি এবং অন্যান্য ৭টি জিনিস)।
1. ইনস্টলেশনের প্রয়োজনীয়তা
নীচের কোডটি সমস্ত পূর্বশর্ত ইনস্টল করবে।
2. আমদানি নির্ভরতা
পাইথনে একটি train.py ফাইল তৈরি করুন। নীচের কোডটি টেনসরফ্লো এবং কেরাস নির্ভরতা আমদানি করবে।
3. প্রাথমিক পরামিতি
CIFAR-10-এ মাত্র 10টি ছবির বিভাগ রয়েছে, তাই সংখ্যক ক্লাস কেবল শ্রেণীবদ্ধ করার জন্য বিভাগের সংখ্যা উল্লেখ করে।
4. ডেটাসেট লোড হচ্ছে
ডেটাসেট লোড করার জন্য ফাংশনটি টেনসরফ্লো ডেটাসেট মডিউল ব্যবহার করে এবং আমরা এটি সম্পর্কে কিছু তথ্য পেতে তথ্যের সাথে সত্য সেট করি। ক্ষেত্রগুলি এবং তাদের মানগুলি কী তা দেখতে আপনি এটি প্রিন্ট আউট করতে পারেন এবং আমরা প্রশিক্ষণ এবং পরীক্ষার সেটগুলিতে নমুনার সংখ্যা পুনরুদ্ধার করতে তথ্যটি ব্যবহার করব৷
5. মডেল তৈরি করা
এখন আমরা তিনটি স্তর তৈরি করব, প্রতিটিতে সর্বোচ্চ-পুলিং এবং ReLU অ্যাক্টিভেশন ফাংশন সহ দুটি কনভনেট থাকবে, তারপরে একটি সম্পূর্ণ সংযুক্ত 1024-ইউনিট সিস্টেম থাকবে। ResNet50 বা Xception এর তুলনায়, যা অত্যাধুনিক মডেল, এটি একটি তুলনামূলকভাবে ছোট মডেল হতে পারে।
6. মডেল প্রশিক্ষণ
আমি প্রতিটি যুগে নির্ভুলতা এবং ক্ষতি পরিমাপ করার জন্য টেনসরবোর্ড ব্যবহার করেছি এবং ডেটা আমদানি এবং মডেল তৈরি করার পরে আমাদের একটি সুন্দর প্রদর্শন প্রদান করেছি। নিম্নলিখিত কোড চালান; আপনার CPU/GPU এর উপর নির্ভর করে, প্রশিক্ষণে কয়েক মিনিট সময় লাগবে।
টেনসরবোর্ড ব্যবহার করতে, শুধুমাত্র টার্মিনালে নিম্নলিখিত কমান্ডটি টাইপ করুন বা বর্তমান ডিরেক্টরিতে কমান্ড প্রম্পটে:
আপনি দেখতে পাবেন যে বৈধতা ক্ষতি হ্রাস পাচ্ছে এবং নির্ভুলতা প্রায় 81% এ বাড়ছে। সেটা চমৎকার!
মডেল পরীক্ষা
প্রশিক্ষণ সমাপ্ত হলে, চূড়ান্ত মডেল এবং ওজনগুলি ফলাফল ফোল্ডারে সংরক্ষিত হয়, যা আমাদের একবার প্রশিক্ষণ দিতে এবং যখনই আমরা পছন্দ করি তখন ভবিষ্যদ্বাণী করতে দেয়। test.py নামে একটি নতুন পাইথন ফাইলে কোডটি অনুসরণ করুন।
7. পরীক্ষার জন্য ইউটিলিটি আমদানি করা
8. একটি পাইথন ডিরেক্টরি তৈরি করা
একটি পাইথন অভিধান তৈরি করুন যা প্রতিটি পূর্ণসংখ্যার মানকে ডেটাসেটের উপযুক্ত লেবেলে অনুবাদ করে:
9. পরীক্ষার ডেটা এবং মডেল লোড হচ্ছে
নিম্নলিখিত কোড পরীক্ষার ডেটা এবং মডেল লোড করবে।
10. মূল্যায়ন এবং পূর্বাভাস
নিচের কোডটি ব্যাঙের ছবিগুলোর মূল্যায়ন করবে এবং ভবিষ্যদ্বাণী করবে।
11। ফলাফল
মডেলটি 80.62% নির্ভুলতার সাথে ব্যাঙের ভবিষ্যদ্বাণী করেছে।
উপসংহার
ঠিক আছে, আমরা এই পাঠটি শেষ করেছি। যদিও 80.62% সামান্য CNN-এর জন্য ভাল নয়, আমি দৃঢ়ভাবে আপনাকে মডেল পরিবর্তন করার পরামর্শ দিই বা ভাল ফলাফলের জন্য ResNet50, Xception, বা অন্যান্য আধুনিক মডেলগুলি দেখুন৷
এখন যেহেতু আপনি কেরাসে আপনার প্রথম চিত্র সনাক্তকরণ নেটওয়ার্ক তৈরি করেছেন, বিভিন্ন পরামিতিগুলি কীভাবে এর কার্যকারিতাকে প্রভাবিত করে তা আবিষ্কার করতে আপনার মডেলটি পরীক্ষা করা উচিত।
নির্দেশিকা সমন্ধে মতামত দিন