ইমেজ সেগমেন্টেশন গাইড

MediaPipe ইমেজ সেগমেন্টার টাস্ক আপনাকে পূর্বনির্ধারিত বিভাগের উপর ভিত্তি করে চিত্রগুলিকে অঞ্চলে ভাগ করতে দেয়। আপনি নির্দিষ্ট বস্তু বা টেক্সচার সনাক্ত করতে এই কার্যকারিতা ব্যবহার করতে পারেন, এবং তারপর পটভূমি ঝাপসা করার মতো ভিজ্যুয়াল প্রভাব প্রয়োগ করতে পারেন। এই টাস্কটিতে বেশ কিছু মডেল রয়েছে যা বিশেষভাবে প্রশিক্ষিত ব্যক্তিদের এবং চিত্র ডেটার মধ্যে তাদের বৈশিষ্ট্যগুলিকে বিভক্ত করার জন্য প্রশিক্ষিত, যার মধ্যে রয়েছে:

  • ব্যক্তি এবং পটভূমি
  • শুধুমাত্র ব্যক্তির চুল
  • ব্যক্তির চুল, মুখ, ত্বক, পোশাক এবং আনুষাঙ্গিক

এই টাস্কটি মেশিন লার্নিং (ML) মডেল সহ একক চিত্র বা একটি অবিচ্ছিন্ন ভিডিও স্ট্রিম সহ ইমেজ ডেটার উপর কাজ করে। এটি আপনার চয়ন করা মডেলের উপর নির্ভর করে একটি চিত্রের বস্তু বা অঞ্চলগুলিকে প্রতিনিধিত্ব করে বিভক্ত অঞ্চলগুলির একটি তালিকা আউটপুট করে।

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

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

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

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

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

বৈশিষ্ট্য

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

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

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

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

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

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

লাইভ_স্ট্রিম: ইনপুট ডেটার লাইভস্ট্রিমের মোড, যেমন ক্যামেরা থেকে। এই মোডে, ফলাফল শ্রোতাকে অ্যাসিঙ্ক্রোনাসভাবে ফলাফল পেতে একটি শ্রোতা সেট আপ করতে কল করতে হবে।
{ IMAGE, VIDEO, LIVE_STREAM } IMAGE
output_category_mask যদি True তে সেট করা হয়, আউটপুটে একটি uint8 ইমেজ হিসাবে একটি সেগমেন্টেশন মাস্ক অন্তর্ভুক্ত থাকে, যেখানে প্রতিটি পিক্সেল মান বিজয়ী বিভাগের মান নির্দেশ করে। { True, False } False
output_confidence_masks যদি True তে সেট করা হয়, আউটপুটে একটি ফ্লোট মান চিত্র হিসাবে একটি সেগমেন্টেশন মাস্ক অন্তর্ভুক্ত থাকে, যেখানে প্রতিটি ফ্লোট মান বিভাগের আত্মবিশ্বাস স্কোর মানচিত্র উপস্থাপন করে। { True, False } True
display_names_locale টাস্কের মডেলের মেটাডেটাতে প্রদত্ত প্রদর্শন নামের জন্য ব্যবহার করার জন্য লেবেলের ভাষা সেট করে, যদি উপলব্ধ থাকে। ইংরেজির জন্য ডিফল্ট হল en । আপনি TensorFlow Lite Metadata Writer API ব্যবহার করে একটি কাস্টম মডেলের মেটাডেটাতে স্থানীয় লেবেল যোগ করতে পারেন স্থানীয় কোড en
result_callback ইমেজ সেগমেন্টার লাইভ স্ট্রীম মোডে থাকলে অ্যাসিঙ্ক্রোনাসভাবে সেগমেন্টেশন ফলাফল পেতে ফলাফল শ্রোতাকে সেট করে। চলমান মোড LIVE_STREAM এ সেট করা থাকলেই কেবল ব্যবহার করা যাবে৷ N/A N/A

মডেল

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

সেলফি সেগমেন্টেশন মডেল

এই মডেলটি একজন ব্যক্তির প্রতিকৃতিকে ভাগ করতে পারে এবং একটি চিত্রের পটভূমি প্রতিস্থাপন বা পরিবর্তন করার জন্য ব্যবহার করা যেতে পারে। মডেল আউটপুট দুটি বিভাগ, সূচক 0-এ ব্যাকগ্রাউন্ড এবং সূচক 1-এ ব্যক্তি। এই মডেলটিতে বর্গাকার সংস্করণ এবং একটি ল্যান্ডস্কেপ সংস্করণ সহ বিভিন্ন ইনপুট আকার সহ সংস্করণ রয়েছে যা অ্যাপ্লিকেশনগুলির জন্য আরও কার্যকর হতে পারে যেখানে ইনপুট সর্বদা সেই আকারে থাকে, যেমন ভিডিও কল .

ণশড ইনপুট আকৃতি কোয়ান্টাইজেশন টাইপ মডেল কার্ড সংস্করণ
সেলফি সেগমেন্টার (বর্গক্ষেত্র) 256 x 256 ভাসা 16 তথ্য সর্বশেষ
সেলফি সেগমেন্টার (ল্যান্ডস্কেপ) 144 x 256 ভাসা 16 তথ্য সর্বশেষ

চুলের বিভাজন মডেল

এই মডেলটি একজন ব্যক্তির একটি চিত্র নেয়, তাদের মাথার চুলগুলি সনাক্ত করে এবং তাদের চুলের জন্য একটি চিত্র বিভাজন মানচিত্র আউটপুট করে৷ আপনি এই মডেলটি চুল পুনরায় রঙ করার জন্য বা অন্যান্য চুলের প্রভাব প্রয়োগ করতে ব্যবহার করতে পারেন। মডেলটি নিম্নলিখিত বিভাজন বিভাগগুলিকে আউটপুট করে:

0 - background
1 - hair
ণশড ইনপুট আকৃতি কোয়ান্টাইজেশন টাইপ মডেল কার্ড সংস্করণ
হেয়ার সেগমেন্টার 512 x 512 কোনটিই নয় (float32) তথ্য সর্বশেষ

মাল্টি-ক্লাস সেলফি সেগমেন্টেশন মডেল

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

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
ণশড ইনপুট আকৃতি কোয়ান্টাইজেশন টাইপ মডেল কার্ড সংস্করণ
সেলফি মাল্টিকলাস (256 x 256) 256 x 256 কোনটিই নয় (float32) তথ্য সর্বশেষ

DeepLab-v3 মডেল

এই মডেলটি ব্যাকগ্রাউন্ড, ব্যক্তি, বিড়াল, কুকুর এবং পাত্রযুক্ত উদ্ভিদ সহ বেশ কয়েকটি বিভাগের জন্য বিভাগগুলিকে চিহ্নিত করে৷ মডেলটি দীর্ঘ পরিসরের তথ্য ক্যাপচার করার জন্য অ্যাট্রাস স্থানিক পিরামিড পুলিং ব্যবহার করে। আরও তথ্যের জন্য, DeepLab-v3 দেখুন।

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

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

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

ণশড CPU লেটেন্সি GPU লেটেন্সি
সেলফি সেগমেন্টার (বর্গক্ষেত্র) 33.46ms 35.15 মি
সেলফি সেগমেন্টার (ল্যান্ডস্কেপ) 34.19ms 33.55ms
হেয়ার সেগমেন্টার 57.90ms 52.14ms
সেলফি মাল্টিকলাস (256 x 256) 217.76 মি 71.24ms
DeepLab-V3 123.93ms 103.30ms