ইমেজ এম্বেডিং টাস্ক গাইড

MediaPipe ইমেজ এমবেডার টাস্ক আপনাকে একটি ইমেজের একটি সাংখ্যিক উপস্থাপনা তৈরি করতে দেয়, যা বিভিন্ন ML-ভিত্তিক ইমেজ টাস্কগুলি সম্পন্ন করতে কার্যকর। এই কার্যকারিতাটি প্রায়শই গাণিতিক তুলনা কৌশল যেমন কোসাইন সাদৃশ্য ব্যবহার করে দুটি চিত্রের সাদৃশ্য তুলনা করতে ব্যবহৃত হয়। এই কাজটি একটি মেশিন লার্নিং (ML) মডেলের সাথে স্ট্যাটিক ডেটা বা একটি অবিচ্ছিন্ন স্ট্রিম হিসাবে ইমেজ ডেটার উপর কাজ করে এবং উচ্চ-মাত্রিক বৈশিষ্ট্য ভেক্টরগুলির একটি তালিকা হিসাবে চিত্র ডেটার একটি সাংখ্যিক উপস্থাপনা আউটপুট করে, যেটি এম্বেডিং ভেক্টর নামেও পরিচিত, হয় ভাসমান অবস্থায়। -পয়েন্ট বা কোয়ান্টাইজড ফর্ম।

এটা চেষ্টা করুন!

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

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

টাস্কের বিবরণ

এই বিভাগটি এই কাজের ক্ষমতা, ইনপুট, আউটপুট এবং কনফিগারেশন বিকল্পগুলি বর্ণনা করে।

বৈশিষ্ট্য

  • ইনপুট ইমেজ প্রসেসিং - প্রসেসিং এর মধ্যে রয়েছে ইমেজ রোটেশন, রিসাইজ, নরমালাইজেশন এবং কালার স্পেস কনভার্সন।
  • আগ্রহের অঞ্চল - পুরো চিত্রের পরিবর্তে চিত্রের একটি অঞ্চলে এম্বেডিং সম্পাদন করে৷
  • এমবেডিং সাদৃশ্য গণনা - দুটি বৈশিষ্ট্য ভেক্টরের মধ্যে কোসাইন সাদৃশ্য গণনা করার জন্য অন্তর্নির্মিত ইউটিলিটি ফাংশন
  • কোয়ান্টাইজেশন - বৈশিষ্ট্য ভেক্টরের জন্য স্কেলার কোয়ান্টাইজেশন সমর্থন করে।
টাস্ক ইনপুট টাস্ক আউটপুট
ইনপুট নিম্নলিখিত ডেটা প্রকারগুলির মধ্যে একটি হতে পারে:
  • স্থিরচিত্রসমূহ
  • ডিকোডেড ভিডিও ফ্রেম
  • লাইভ ভিডিও ফিড
ইমেজ এমবেডার এম্বেডিংয়ের একটি তালিকা আউটপুট করে যার মধ্যে রয়েছে:
  • এমবেডিং: বৈশিষ্ট্য ভেক্টর নিজেই, হয় ফ্লোটিং-পয়েন্ট আকারে বা স্কেলার-কোয়ান্টাইজড।
  • হেড সূচক: মাথার জন্য সূচক যা এই এমবেডিং তৈরি করেছে।
  • মাথার নাম (ঐচ্ছিক): মাথার নাম যেটি এই এমবেডিং তৈরি করেছে।

কনফিগারেশন অপশন

এই কাজের নিম্নলিখিত কনফিগারেশন বিকল্প আছে:

বিকল্পের নাম বর্ণনা মান পরিসীমা ডিফল্ট মান
running_mode টাস্কের জন্য চলমান মোড সেট করে। তিনটি মোড আছে:

IMAGE: একক ইমেজ ইনপুট জন্য মোড.

ভিডিও: একটি ভিডিওর ডিকোড করা ফ্রেমের মোড।

লাইভ_স্ট্রিম: ইনপুট ডেটার লাইভস্ট্রিমের মোড, যেমন ক্যামেরা থেকে। এই মোডে, ফলাফল শ্রোতাকে অ্যাসিঙ্ক্রোনাসভাবে ফলাফল পেতে একটি শ্রোতা সেট আপ করতে কল করতে হবে।
{ IMAGE, VIDEO, LIVE_STREAM } IMAGE
l2_normalize L2 আদর্শের সাথে প্রত্যাবর্তিত বৈশিষ্ট্য ভেক্টরকে স্বাভাবিক করতে হবে কিনা। এই বিকল্পটি ব্যবহার করুন শুধুমাত্র যদি মডেলটিতে ইতিমধ্যে একটি নেটিভ L2_NORMALIZATION TFLite Op না থাকে৷ বেশিরভাগ ক্ষেত্রে, এটি ইতিমধ্যেই হয় এবং এইভাবে এই বিকল্পের প্রয়োজন ছাড়াই TFLite অনুমানের মাধ্যমে L2 স্বাভাবিককরণ অর্জন করা হয়। Boolean False
quantize প্রত্যাবর্তিত এমবেডিং স্কেলার কোয়ান্টাইজেশনের মাধ্যমে বাইটে পরিমাপ করা উচিত কিনা। এমবেডিংগুলিকে পরোক্ষভাবে ইউনিট-নর্ম হিসাবে ধরে নেওয়া হয় এবং তাই যে কোনও মাত্রা [-1.0, 1.0]-এ একটি মান থাকার নিশ্চয়তা দেওয়া হয়। যদি এটি না হয় তবে l2_normalize বিকল্পটি ব্যবহার করুন। Boolean False
result_callback ইমেজ এমবেডার যখন লাইভ স্ট্রিম মোডে থাকে তখন অ্যাসিঙ্ক্রোনাসভাবে এম্বেডিং ফলাফল পেতে ফলাফল শ্রোতাকে সেট করে। চলমান মোড LIVE_STREAM এ সেট করা থাকলেই কেবল ব্যবহার করা যাবে৷ N/A সেট না

মডেল

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

MobileNetV3 মডেল

এই মডেল পরিবার একটি MobileNet V3 আর্কিটেকচার ব্যবহার করে এবং ইমেজনেট ডেটা ব্যবহার করে প্রশিক্ষিত হয়েছিল। এই মডেলটি সঠিকতা-লেটেন্সি ট্রেড অফ টিউন করতে কনভোলিউশনাল লেয়ারে গভীরতার (বৈশিষ্ট্যের সংখ্যা) জন্য 0.75 এর গুণক ব্যবহার করে। উপরন্তু, MobileNet V3 দুটি ভিন্ন আকারে আসে, ছোট এবং বড়, নেটওয়ার্কটিকে কম বা উচ্চ সম্পদ ব্যবহারের ক্ষেত্রে মানিয়ে নিতে।

ণশড ইনপুট আকৃতি কোয়ান্টাইজেশন টাইপ সংস্করণ
MobileNet-V3 (ছোট) 224 x 224 কোনটিই নয় (float32) সর্বশেষ
MobileNet-V3 (বড়) 224 x 224 কোনটিই নয় (float32) সর্বশেষ

টাস্ক বেঞ্চমার্ক

উপরের পূর্ব-প্রশিক্ষিত মডেলগুলির উপর ভিত্তি করে পুরো পাইপলাইনের জন্য টাস্ক বেঞ্চমার্কগুলি এখানে রয়েছে৷ CPU/GPU ব্যবহার করে Pixel 6-এর গড় বিলম্বিততার ফলাফল হল লেটেন্সি।

ণশড CPU লেটেন্সি GPU লেটেন্সি
MobileNet-V3 (ছোট) 3.94ms 7.83ms
MobileNet-V3 (বড়) 9.75ms 9.08ms