অঙ্গভঙ্গি স্বীকৃতি টাস্ক গাইড

হাতের একটি অঙ্গভঙ্গি যা থাম্বস আপ দেখাচ্ছে এবং মডেল কর্তৃক ৬৩% আত্মবিশ্বাসের সাথে একটি থাম্বস আপ অঙ্গভঙ্গি হিসেবে চিহ্নিত।

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

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

চেষ্টা করে দেখুন!

শুরু করুন

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

কাজের বিবরণ

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

বৈশিষ্ট্য

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

কনফিগারেশন বিকল্পগুলি

এই টাস্কটির নিম্নলিখিত কনফিগারেশন অপশনগুলো রয়েছে:

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

IMAGE: একক ছবি ইনপুটের মোড।

ভিডিও: কোনো ভিডিওর ডিকোড করা ফ্রেমগুলোর মোড।

লাইভস্ট্রিম: ক্যামেরা থেকে প্রাপ্ত ইনপুট ডেটার লাইভস্ট্রিমের মোড। এই মোডে, অ্যাসিঙ্ক্রোনাসভাবে ফলাফল গ্রহণ করার জন্য একটি লিসেনার সেট আপ করতে resultListener অবশ্যই কল করতে হবে।
{ IMAGE, VIDEO, LIVE_STREAM } IMAGE
num_hands GestureRecognizer এর মাধ্যমে সর্বাধিক সংখ্যক হাত শনাক্ত করা যায়। Any integer > 0 1
min_hand_detection_confidence পাম ডিটেকশন মডেলে হাত শনাক্তকরণ সফল বলে বিবেচিত হওয়ার জন্য ন্যূনতম কনফিডেন্স স্কোর। 0.0 - 1.0 0.5
min_hand_presence_confidence হ্যান্ড ল্যান্ডমার্ক ডিটেকশন মডেলে হাতের উপস্থিতি নির্ণয়ের সর্বনিম্ন কনফিডেন্স স্কোর। জেসচার রিকগনাইজারের ভিডিও মোড এবং লাইভ স্ট্রিম মোডে, যদি হ্যান্ড ল্যান্ডমার্ক মডেল থেকে প্রাপ্ত হাতের উপস্থিতি নির্ণয়ের কনফিডেন্স স্কোর এই থ্রেশহোল্ডের নিচে থাকে, তবে এটি পাম ডিটেকশন মডেলকে সক্রিয় করে। অন্যথায়, পরবর্তী ল্যান্ডমার্ক ডিটেকশনের জন্য হাতের অবস্থান নির্ধারণ করতে একটি লাইটওয়েট হ্যান্ড ট্র্যাকিং অ্যালগরিদম ব্যবহার করা হয়। 0.0 - 1.0 0.5
min_tracking_confidence হ্যান্ড ট্র্যাকিং সফল বলে বিবেচিত হওয়ার জন্য ন্যূনতম কনফিডেন্স স্কোর। এটি হলো বর্তমান ফ্রেম এবং শেষ ফ্রেমের হাতগুলোর মধ্যেকার বাউন্ডিং বক্স IoU থ্রেশহোল্ড। জেসচার রিকগনাইজারের ভিডিও মোড এবং স্ট্রিম মোডে, ট্র্যাকিং ব্যর্থ হলে জেসচার রিকগনাইজার হ্যান্ড ডিটেকশন চালু করে। অন্যথায়, হ্যান্ড ডিটেকশন এড়িয়ে যাওয়া হয়। 0.0 - 1.0 0.5
canned_gestures_classifier_options পূর্বনির্ধারিত অঙ্গভঙ্গি ক্লাসিফায়ারের আচরণ কনফিগার করার বিকল্পসমূহ। পূর্বনির্ধারিত অঙ্গভঙ্গিগুলো হলো ["None", "Closed_Fist", "Open_Palm", "Pointing_Up", "Thumb_Down", "Thumb_Up", "Victory", "ILoveYou"]
  • প্রদর্শিত নামের লোকেল: যদি থাকে, তবে TFLite মডেল মেটাডেটার মাধ্যমে নির্দিষ্ট করা প্রদর্শিত নামের জন্য ব্যবহৃত লোকেল।
  • সর্বোচ্চ ফলাফল: সর্বোচ্চ স্কোরপ্রাপ্ত শ্রেণিবিন্যাস ফলাফলের সর্বাধিক সংখ্যা যা ফেরত দেওয়া হবে। যদি < ০ হয়, তাহলে সমস্ত উপলব্ধ ফলাফল ফেরত দেওয়া হবে।
  • স্কোর থ্রেশহোল্ড: যে স্কোরের নিচে ফলাফল বাতিল করা হয়। এটি ০-তে সেট করা হলে, উপলব্ধ সমস্ত ফলাফল ফেরত দেওয়া হবে।
  • ক্যাটাগরি অনুমোদিত তালিকা: ক্যাটাগরির নামগুলোর অনুমোদিত তালিকা। যদি এটি খালি না থাকে, তবে যে ক্লাসিফিকেশন ফলাফলগুলোর ক্যাটাগরি এই সেটে নেই, সেগুলো ফিল্টার করে বাদ দেওয়া হবে। এটি বাতিল তালিকার (denylist) সাথে পারস্পরিকভাবে বর্জনীয়।
  • ক্যাটাগরি ডিনাইলিস্ট: ক্যাটাগরির নামগুলোর ডিনাইলিস্ট। যদি এটি খালি না থাকে, তবে যে ক্লাসিফিকেশন ফলাফলগুলোর ক্যাটাগরি এই সেটের অন্তর্ভুক্ত, সেগুলো ফিল্টার করে বাদ দেওয়া হবে। এটি অ্যালাওলিস্টের সাথে পারস্পরিকভাবে বর্জনীয়।
    • নাম প্রদর্শনের স্থান: any string
    • সর্বোচ্চ ফলাফল: any integer
    • স্কোরের সীমা: 0.0-1.0
    • ক্যাটাগরি অনুমোদিত তালিকা: vector of strings
    • ক্যাটাগরি ডিনাইলিস্ট: vector of strings
    • নাম প্রদর্শনের স্থান: "en"
    • সর্বোচ্চ ফলাফল: -1
    • স্কোরের ন্যূনতম সীমা: 0
    • ক্যাটাগরি অনুমোদিত তালিকা: খালি
    • ক্যাটাগরি ডিনাইলিস্ট: খালি
    custom_gestures_classifier_options কাস্টম জেসচার ক্লাসিফায়ারের আচরণ কনফিগার করার বিকল্পসমূহ।
  • প্রদর্শিত নামের লোকেল: যদি থাকে, তবে TFLite মডেল মেটাডেটার মাধ্যমে নির্দিষ্ট করা প্রদর্শিত নামের জন্য ব্যবহৃত লোকেল।
  • সর্বোচ্চ ফলাফল: সর্বোচ্চ স্কোরপ্রাপ্ত শ্রেণিবিন্যাস ফলাফলের সর্বাধিক সংখ্যা যা ফেরত দেওয়া হবে। যদি < ০ হয়, তাহলে সমস্ত উপলব্ধ ফলাফল ফেরত দেওয়া হবে।
  • স্কোর থ্রেশহোল্ড: যে স্কোরের নিচে ফলাফল বাতিল করা হয়। এটি ০-তে সেট করা হলে, উপলব্ধ সমস্ত ফলাফল ফেরত দেওয়া হবে।
  • ক্যাটাগরি অনুমোদিত তালিকা: ক্যাটাগরির নামগুলোর অনুমোদিত তালিকা। যদি এটি খালি না থাকে, তবে যে ক্লাসিফিকেশন ফলাফলগুলোর ক্যাটাগরি এই সেটে নেই, সেগুলো ফিল্টার করে বাদ দেওয়া হবে। এটি বাতিল তালিকার (denylist) সাথে পারস্পরিকভাবে বর্জনীয়।
  • ক্যাটাগরি ডিনাইলিস্ট: ক্যাটাগরির নামগুলোর ডিনাইলিস্ট। যদি এটি খালি না থাকে, তবে যে ক্লাসিফিকেশন ফলাফলগুলোর ক্যাটাগরি এই সেটের অন্তর্ভুক্ত, সেগুলো ফিল্টার করে বাদ দেওয়া হবে। এটি অ্যালাওলিস্টের সাথে পারস্পরিকভাবে বর্জনীয়।
    • নাম প্রদর্শনের স্থান: any string
    • সর্বোচ্চ ফলাফল: any integer
    • স্কোরের সীমা: 0.0-1.0
    • ক্যাটাগরি অনুমোদিত তালিকা: vector of strings
    • ক্যাটাগরি ডিনাইলিস্ট: vector of strings
    • নাম প্রদর্শনের স্থান: "en"
    • সর্বোচ্চ ফলাফল: -1
    • স্কোরের ন্যূনতম সীমা: 0
    • ক্যাটাগরি অনুমোদিত তালিকা: খালি
    • ক্যাটাগরি ডিনাইলিস্ট: খালি
    result_callback যখন জেসচার রিকগনাইজার লাইভ স্ট্রিম মোডে থাকে, তখন ক্লাসিফিকেশনের ফলাফল অ্যাসিঙ্ক্রোনাসভাবে গ্রহণ করার জন্য রেজাল্ট লিসেনারকে সেট করে। এটি শুধুমাত্র তখনই ব্যবহার করা যাবে যখন রানিং মোড LIVE_STREAM এ সেট করা থাকে। ResultListener প্রযোজ্য নয় প্রযোজ্য নয়

    মডেল

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

    মডেলের নাম ইনপুট আকৃতি কোয়ান্টাইজেশন টাইপ মডেল কার্ড সংস্করণ
    হাতের অঙ্গভঙ্গি শ্রেণিবিন্যাসকারী ১৯২ x ১৯২, ২২৪ x ২২৪ ভাসুন ১৬ তথ্য সর্বশেষ

    এই টাস্কটি মডেল মেকার ব্যবহার করে মডেল বান্ডেল পরিবর্তন করাও সমর্থন করে। এই টাস্কের জন্য মডেল কাস্টমাইজ করতে মডেল মেকার ব্যবহারের বিষয়ে আরও তথ্যের জন্য, “ কাস্টমাইজ মডেলস ফর জেসচার রিকগনাইজার” পৃষ্ঠাটি দেখুন।

    হাতের ল্যান্ডমার্ক মডেল বান্ডেল

    হ্যান্ড ল্যান্ডমার্ক মডেল বান্ডেলটি শনাক্তকৃত হাতের অঞ্চলগুলোর মধ্যে ২১টি হাতের গাঁটের স্থানাঙ্কের কীপয়েন্ট অবস্থান নির্ণয় করে। মডেলটিকে প্রায় ৩০ হাজার বাস্তব ছবির পাশাপাশি বিভিন্ন পটভূমির উপর বসানো বেশ কয়েকটি রেন্ডার করা কৃত্রিম হাতের মডেলের উপর প্রশিক্ষণ দেওয়া হয়েছিল। নিচে ২১টি ল্যান্ডমার্কের সংজ্ঞা দেখুন:

    হাতের নির্দিষ্ট ল্যান্ডমার্ক পয়েন্টের জন্য কোড

    হ্যান্ড ল্যান্ডমার্কার মডেল বান্ডেলটিতে পাম ডিটেকশন মডেল এবং হ্যান্ড ল্যান্ডমার্কস ডিটেকশন মডেল অন্তর্ভুক্ত রয়েছে। পাম ডিটেকশন মডেলটি সম্পূর্ণ ইনপুট ইমেজ থেকে হাতের অঞ্চলটি শনাক্ত করে, এবং হ্যান্ড ল্যান্ডমার্কস ডিটেকশন মডেলটি পাম ডিটেকশন মডেল দ্বারা সংজ্ঞায়িত ক্রপ করা হাতের ইমেজের উপর ল্যান্ডমার্কগুলো খুঁজে বের করে।

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

    অঙ্গভঙ্গি শ্রেণিবিন্যাস মডেল বান্ডেল

    জেসচার ক্লাসিফিকেশন মডেল বান্ডেলটি এই সাধারণ হাতের অঙ্গভঙ্গিগুলো শনাক্ত করতে পারে:

    0 - Unrecognized gesture, label: Unknown
    1 - Closed fist, label: Closed_Fist
    2 - Open palm, label: Open_Palm
    3 - Pointing up, label: Pointing_Up
    4 - Thumbs down, label: Thumb_Down
    5 - Thumbs up, label: Thumb_Up
    6 - Victory, label: Victory
    7 - Love, label: ILoveYou
    

    যদি মডেলটি হাত শনাক্ত করে কিন্তু কোনো অঙ্গভঙ্গি চিনতে না পারে, তাহলে অঙ্গভঙ্গি শনাক্তকারী "None" ফলাফল প্রদান করে। যদি মডেলটি হাত শনাক্ত না করে, তাহলে অঙ্গভঙ্গি শনাক্তকারী খালি ফলাফল প্রদান করে।

    জেসচার ক্লাসিফিকেশন মডেল বান্ডেলটিতে একটি জেসচার এমবেডিং মডেল এবং তারপরে একটি জেসচার ক্লাসিফিকেশন মডেল সহ দুই ধাপের নিউরাল নেটওয়ার্ক পাইপলাইন রয়েছে। আরও বিস্তারিত তথ্যের জন্য জেসচার ক্লাসিফিকেশন মডেল কার্ড দেখুন।

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

    পূর্বনির্ধারিত এবং কাস্টম উভয় জেসচার ক্লাসিফায়ার সহ জেসচার রিকগনাইজারটি কাস্টম জেসচারটিকেই প্রাধান্য দেয়, যদি উভয় ক্লাসিফায়ারই তাদের নিজ নিজ ক্যাটাগরিতে একই জেসচার শনাক্ত করে। যদি কেবল একটি জেসচার ক্লাসিফায়ার জেসচারটি শনাক্ত করে, তবে জেসচার রিকগনাইজারটি সরাসরি শনাক্তকৃত জেসচারটি আউটপুট হিসেবে দেখায়।

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

    উপরে উল্লিখিত প্রি-ট্রেইনড মডেলগুলোর উপর ভিত্তি করে সম্পূর্ণ পাইপলাইনের টাস্ক বেঞ্চমার্ক নিচে দেওয়া হলো। ল্যাটেন্সি ফলাফলটি হলো পিক্সেল ৬-এ সিপিইউ / জিপিইউ ব্যবহার করে প্রাপ্ত গড় ল্যাটেন্সি।

    মডেলের নাম সিপিইউ লেটেন্সি জিপিইউ লেটেন্সি
    অঙ্গভঙ্গি শনাক্তকারী ১৬.৭৬ মিলিসেকেন্ড ২০.৮৭ মিলিসেকেন্ড

    কাস্টম মডেল

    আপনি যদি এই টাস্কে প্রদত্ত মডেলগুলির কার্যক্ষমতা উন্নত বা পরিবর্তন করতে চান, তাহলে বিদ্যমান মডেলগুলি পরিবর্তন করার জন্য আপনি মডেল মেকার ব্যবহার করতে পারেন। মিডিয়াপাইপের সাথে ব্যবহৃত কাস্টম মডেলগুলি অবশ্যই .task ফরম্যাটে থাকতে হবে, যা একটি মডেল বান্ডেল ফাইল। আপনার নিজের মডেল তৈরি করার আগে, এই টাস্কের জন্য প্রদত্ত মডেলগুলি পরিবর্তন করতে মডেল মেকার ব্যবহার করার কথা বিবেচনা করা উচিত।

    এই কাজের জন্য একটি মডেল কাস্টমাইজ করার বিষয়ে আরও তথ্যের জন্য, “জেসচার রিকগনাইজারের জন্য মডেল কাস্টমাইজ করুন” দেখুন।