ভিডিও শ্রেণীবিভাগ

ভিডিও শ্রেণীবিভাগ হল একটি ভিডিও কী প্রতিনিধিত্ব করে তা সনাক্ত করার মেশিন লার্নিং কাজ। একটি ভিডিও শ্রেণীবিভাগ মডেলকে একটি ভিডিও ডেটাসেটে প্রশিক্ষিত করা হয় যাতে বিভিন্ন ক্রিয়া বা নড়াচড়ার মতো অনন্য ক্লাসের একটি সেট থাকে। মডেলটি ইনপুট হিসাবে ভিডিও ফ্রেমগুলি গ্রহণ করে এবং ভিডিওতে প্রতিনিধিত্ব করা প্রতিটি শ্রেণীর সম্ভাব্যতা আউটপুট করে।

ভিডিও শ্রেণীবিভাগ এবং চিত্র শ্রেণীবিভাগ মডেল উভয়ই পূর্বনির্ধারিত শ্রেণীর অন্তর্গত সেই চিত্রগুলির সম্ভাব্যতার পূর্বাভাস দিতে ইনপুট হিসাবে চিত্রগুলি ব্যবহার করে। যাইহোক, একটি ভিডিও শ্রেণীবিভাগ মডেল একটি ভিডিওতে ক্রিয়াগুলি সনাক্ত করতে সন্নিহিত ফ্রেমের মধ্যে স্থান-কালের সম্পর্কগুলিকেও প্রক্রিয়া করে।

উদাহরণস্বরূপ, একটি ভিডিও অ্যাকশন রিকগনিশন মডেলকে দৌড়ানো, হাততালি দেওয়া এবং নাড়ানোর মতো মানুষের ক্রিয়া সনাক্ত করতে প্রশিক্ষণ দেওয়া যেতে পারে। নিম্নলিখিত চিত্রটি Android এ একটি ভিডিও শ্রেণীবিভাগ মডেলের আউটপুট দেখায়।

Android এর উদাহরণের স্ক্রিনশট

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

আপনি যদি Android বা Raspberry Pi ব্যতীত অন্য কোনো প্ল্যাটফর্ম ব্যবহার করেন, অথবা আপনি যদি ইতিমধ্যেই TensorFlow Lite API- এর সাথে পরিচিত হন, তাহলে স্টার্টার ভিডিও শ্রেণিবিন্যাস মডেল এবং সমর্থনকারী ফাইলগুলি ডাউনলোড করুন। এছাড়াও আপনি TensorFlow Lite Support Library ব্যবহার করে আপনার নিজস্ব কাস্টম ইনফারেন্স পাইপলাইন তৈরি করতে পারেন।

মেটাডেটা সহ স্টার্টার মডেল ডাউনলোড করুন

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

অ্যান্ড্রয়েড

অ্যান্ড্রয়েড অ্যাপ্লিকেশনটি ক্রমাগত ভিডিও শ্রেণীবিভাগের জন্য ডিভাইসের পিছনের ক্যামেরা ব্যবহার করে। TensorFlow Lite Java API ব্যবহার করে অনুমান করা হয়। ডেমো অ্যাপ ফ্রেম শ্রেণীবদ্ধ করে এবং রিয়েল টাইমে পূর্বাভাসিত শ্রেণীবিভাগ প্রদর্শন করে।

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

রাস্পবেরি পাই

রাস্পবেরি পাই উদাহরণটি ক্রমাগত ভিডিও শ্রেণীবিভাগ সম্পাদন করতে পাইথনের সাথে টেনসরফ্লো লাইট ব্যবহার করে। রিয়েল-টাইম ভিডিও শ্রেণীবিভাগ সম্পাদন করতে রাস্পবেরি পাইকে Pi ক্যামেরার মতো একটি ক্যামেরায় সংযুক্ত করুন। ক্যামেরা থেকে ফলাফল দেখতে, রাস্পবেরি পাই এর সাথে একটি মনিটর সংযুক্ত করুন এবং Pi শেল অ্যাক্সেস করতে SSH ব্যবহার করুন (Pi-তে একটি কীবোর্ড সংযোগ এড়াতে)।

শুরু করার আগে, রাস্পবেরি পাই ওএসের সাথে আপনার রাস্পবেরি পাই সেট আপ করুন (বাস্টারে আপডেট করা হয়)।

রাস্পবেরি পাই উদাহরণ

মডেলের বিবরণ

মোবাইল ভিডিও নেটওয়ার্ক ( MoViNets ) হল মোবাইল ডিভাইসের জন্য অপ্টিমাইজ করা দক্ষ ভিডিও শ্রেণীবিভাগ মডেলের একটি পরিবার৷ MoViNets বিভিন্ন বৃহৎ-স্কেল ভিডিও অ্যাকশন রিকগনিশন ডেটাসেটে অত্যাধুনিক নির্ভুলতা এবং দক্ষতা প্রদর্শন করে, যা তাদেরকে ভিডিও অ্যাকশন শনাক্তকরণ কাজের জন্য উপযুক্ত করে তোলে।

TensorFlow Lite-এর জন্য MoviNet মডেলের তিনটি রূপ রয়েছে: MoviNet-A0 , MoviNet-A1 , এবং MoviNet-A2 ৷ এই বৈকল্পিকগুলিকে 600টি বিভিন্ন মানব ক্রিয়া সনাক্ত করার জন্য Kinetics-600 ডেটাসেটের সাথে প্রশিক্ষণ দেওয়া হয়েছিল। MoviNet-A0 হল সবচেয়ে ছোট, দ্রুততম এবং সবচেয়ে কম সঠিক। MoviNet-A2 হল সবচেয়ে বড়, ধীরগতির এবং সবচেয়ে সঠিক। MoviNet-A1 হল A0 এবং A2 এর মধ্যে একটি আপস৷

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

প্রশিক্ষণের সময়, একটি ভিডিও শ্রেণীবিভাগ মডেল ভিডিও এবং তাদের সংশ্লিষ্ট লেবেল প্রদান করা হয়। প্রতিটি লেবেল একটি স্বতন্ত্র ধারণা, বা শ্রেণীর নাম, যা মডেল চিনতে শিখবে। ভিডিও অ্যাকশন শনাক্তকরণের জন্য, ভিডিওগুলি মানুষের ক্রিয়াকলাপের হবে এবং লেবেলগুলি সংশ্লিষ্ট অ্যাকশন হবে৷

ভিডিও শ্রেণীবিভাগ মডেলটি ভবিষ্যদ্বাণী করতে শিখতে পারে যে নতুন ভিডিওগুলি প্রশিক্ষণের সময় প্রদত্ত যেকোন ক্লাসের অন্তর্গত কিনা। এই প্রক্রিয়াটিকে অনুমান বলা হয়। আপনি একটি পূর্ব-বিদ্যমান মডেল ব্যবহার করে ভিডিওর নতুন ক্লাস সনাক্ত করতে স্থানান্তর শিক্ষা ব্যবহার করতে পারেন।

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

কর্ম সম্ভাব্যতা
বর্গক্ষেত্র নাচ 0.02
থ্রেডিং সুই 0.08
নড়বড়ে আঙ্গুল 0.23
হাত নেড়ে 0.67

আউটপুটে প্রতিটি ক্রিয়া প্রশিক্ষণ ডেটার একটি লেবেলের সাথে মিলে যায়। সম্ভাব্যতা বোঝায় যে ভিডিওতে ক্রিয়াটি প্রদর্শিত হচ্ছে।

মডেল ইনপুট

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

  • MoviNet-A0 : 172 x 172 5 fps এ
  • MoviNet-A1 : 172 x 172 5 fps এ
  • MoviNet-A1 : 224 x 224 5 fps এ

সাধারণ ইমেজ ইনপুট কনভেনশন অনুসরণ করে ইনপুট ভিডিওগুলির রঙের মান 0 এবং 1 এর মধ্যে থাকবে বলে আশা করা হচ্ছে।

অভ্যন্তরীণভাবে, মডেলটি পূর্ববর্তী ফ্রেমে সংগৃহীত তথ্য ব্যবহার করে প্রতিটি ফ্রেমের প্রসঙ্গ বিশ্লেষণ করে। এটি মডেল আউটপুট থেকে অভ্যন্তরীণ অবস্থা গ্রহণ করে এবং আসন্ন ফ্রেমের জন্য এটিকে মডেলে ফিরিয়ে দিয়ে সম্পন্ন করা হয়।

মডেল আউটপুট

মডেলটি লেবেলের একটি সিরিজ এবং তাদের সংশ্লিষ্ট স্কোর প্রদান করে। স্কোর হল লগিট মান যা প্রতিটি শ্রেণীর জন্য ভবিষ্যদ্বাণী উপস্থাপন করে। softmax ফাংশন ( tf.nn.softmax ) ব্যবহার করে এই স্কোরগুলিকে সম্ভাব্যতায় রূপান্তর করা যেতে পারে।

    exp_logits = np.exp(np.squeeze(logits, axis=0))
    probabilities = exp_logits / np.sum(exp_logits)

অভ্যন্তরীণভাবে, মডেল আউটপুটে মডেল থেকে অভ্যন্তরীণ অবস্থাও অন্তর্ভুক্ত থাকে এবং আসন্ন ফ্রেমের জন্য এটিকে মডেলে ফিরিয়ে দেয়।

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

কর্মক্ষমতা বেঞ্চমার্ক নম্বর বেঞ্চমার্কিং টুল দিয়ে তৈরি করা হয়। MoviNets শুধুমাত্র CPU সমর্থন করে।

হার্ডওয়্যারের প্রদত্ত অংশে একটি মডেলের অনুমান চালানোর জন্য যে সময় লাগে তার দ্বারা মডেলের কার্যকারিতা পরিমাপ করা হয়। কম সময় একটি দ্রুত মডেল বোঝায়। মডেলটি কত ঘন ঘন একটি ভিডিওতে একটি ক্লাসকে সঠিকভাবে শ্রেণীবদ্ধ করে তার দ্বারা নির্ভুলতা পরিমাপ করা হয়।

ণশড আকার সঠিকতা * যন্ত্র সিপিইউ **
MoviNet-A0 (পূর্ণসংখ্যা পরিমাপকৃত) 3.1 এমবি 65% পিক্সেল 4 5 মি.সে
পিক্সেল 3 11 মি.সে
MoviNet-A1 (পূর্ণসংখ্যা পরিমাপকৃত) 4.5 MB 70% পিক্সেল 4 8 ms
পিক্সেল 3 19 এমএস
MoviNet-A2 (পূর্ণসংখ্যা পরিমাপকৃত) 5.1 এমবি 72% পিক্সেল 4 15 মি.সে
পিক্সেল 3 36 ms

* গতিবিদ্যা-600 ডেটাসেটে টপ-1 নির্ভুলতা পরিমাপ করা হয়েছে।

** 1-থ্রেড সহ CPU-তে চলাকালীন লেটেন্সি পরিমাপ করা হয়।

মডেল কাস্টমাইজেশন

পূর্ব-প্রশিক্ষিত মডেলগুলি কাইনেটিক্স-600 ডেটাসেট থেকে 600টি মানুষের ক্রিয়া সনাক্ত করতে প্রশিক্ষিত। আপনি মূল সেটে নেই এমন মানুষের ক্রিয়াগুলি সনাক্ত করতে একটি মডেলকে পুনরায় প্রশিক্ষণ দেওয়ার জন্য স্থানান্তর শিক্ষা ব্যবহার করতে পারেন। এটি করার জন্য, আপনি মডেলটিতে অন্তর্ভুক্ত করতে চান এমন প্রতিটি নতুন ক্রিয়াকলাপের জন্য আপনার প্রশিক্ষণ ভিডিওগুলির একটি সেট প্রয়োজন৷

কাস্টম ডেটাতে ফাইন-টিউনিং মডেল সম্পর্কে আরও জানতে, MoViNets রেপো এবং MoViNets টিউটোরিয়াল দেখুন

আরও পড়া এবং সম্পদ

এই পৃষ্ঠায় আলোচনা করা ধারণা সম্পর্কে আরও জানতে নিম্নলিখিত সংস্থানগুলি ব্যবহার করুন: