জেনারেটিভ ডেটা ইন্টেলিজেন্স

অ্যামাজন সেজমেকার গ্রাউন্ড ট্রুথ ব্যবহার করে কঙ্কাল-ভিত্তিক পোজ টীকা লেবেলিং | আমাজন ওয়েব সার্ভিসেস

তারিখ:

ভঙ্গি অনুমান হল একটি কম্পিউটার ভিশন কৌশল যা ছবি বা ভিডিওর মধ্যে বস্তুর (যেমন মানুষ বা যানবাহন) বিন্দুর একটি সেট সনাক্ত করে। খেলাধুলা, রোবোটিক্স, নিরাপত্তা, বর্ধিত বাস্তবতা, মিডিয়া এবং বিনোদন, চিকিৎসা অ্যাপ্লিকেশন এবং আরও অনেক কিছুতে ভঙ্গি অনুমান বাস্তব-বিশ্বের অ্যাপ্লিকেশন রয়েছে। ভঙ্গি অনুমান মডেলগুলিকে এমন চিত্র বা ভিডিওগুলিতে প্রশিক্ষিত করা হয় যা একটি রিগ দ্বারা সংজ্ঞায়িত পয়েন্টগুলির একটি সামঞ্জস্যপূর্ণ সেট (সমন্বয়) দিয়ে টীকা করা হয়। সঠিক পোজ অনুমান মডেল প্রশিক্ষণের জন্য, আপনাকে প্রথমে টীকাযুক্ত চিত্রগুলির একটি বড় ডেটাসেট অর্জন করতে হবে; অনেক ডেটাসেটে দশ বা কয়েক হাজার টীকাযুক্ত ছবি থাকে এবং এটি নির্মাণের জন্য উল্লেখযোগ্য সংস্থান নেয়। লেবেলিং ভুলগুলি সনাক্ত করা এবং প্রতিরোধ করা গুরুত্বপূর্ণ কারণ পোজ অনুমান মডেলগুলির মডেলের কার্যকারিতা লেবেলযুক্ত ডেটা গুণমান এবং ডেটা ভলিউম দ্বারা ব্যাপকভাবে প্রভাবিত হয়।

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

উচ্চ-মানের ডেটার গুরুত্ব এবং লেবেলিং ত্রুটিগুলি হ্রাস করা

শক্তিশালী এবং নির্ভরযোগ্য পোজ অনুমান মডেল প্রশিক্ষণের জন্য উচ্চ-মানের ডেটা মৌলিক। এই মডেলগুলির নির্ভুলতা প্রতিটি পোজ কীপয়েন্টে বরাদ্দকৃত লেবেলগুলির সঠিকতা এবং নির্ভুলতার সাথে সরাসরি আবদ্ধ, যা ঘুরেফিরে, টীকা প্রক্রিয়ার কার্যকারিতার উপর নির্ভর করে। উপরন্তু, প্রচুর পরিমাণে বৈচিত্র্যময় এবং সু-টীকাযুক্ত ডেটা থাকা নিশ্চিত করে যে মডেলটি বিভিন্ন বাস্তব-বিশ্বের অ্যাপ্লিকেশন জুড়ে উন্নত সাধারণীকরণ এবং কর্মক্ষমতার দিকে পরিচালিত করে, ভঙ্গি, বৈচিত্র এবং পরিস্থিতির বিস্তৃত পরিসর শিখতে পারে। এই বৃহৎ, টীকাযুক্ত ডেটাসেটগুলির অধিগ্রহণে মানব টীকাকারীরা জড়িত যারা পোজ তথ্যের সাথে চিত্রগুলিকে যত্ন সহকারে লেবেল করে। চিত্রের মধ্যে আগ্রহের পয়েন্ট লেবেল করার সময়, টীকাকারকে চাক্ষুষ নির্দেশিকা প্রদান করার জন্য লেবেল করার সময় বস্তুর কঙ্কালের গঠন দেখতে দরকারী। এটি লেবেল ত্রুটিগুলিকে বাম-ডান অদলবদল বা ভুল লেবেল (যেমন একটি কাঁধ হিসাবে একটি পা চিহ্নিত করার মতো) ডেটাসেটে অন্তর্ভুক্ত করার আগে শনাক্ত করার জন্য সহায়ক। উদাহরণস্বরূপ, নীচের উদাহরণে তৈরি করা বাম-ডান অদলবদলের মতো একটি লেবেল ত্রুটি সহজেই কঙ্কাল রিগ লাইনের ক্রসিং এবং রঙের অমিল দ্বারা চিহ্নিত করা যেতে পারে। এই চাক্ষুষ সংকেত লেবেলারদের ভুল শনাক্ত করতে সাহায্য করে এবং এর ফলে লেবেলগুলির একটি পরিষ্কার সেট তৈরি হবে।

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

সমাধান ওভারভিউ

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

নিম্নে সামগ্রিক স্থাপত্যের একটি চিত্র দেওয়া হল।

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

নিম্নলিখিত স্ক্রিনশটটি UI এর একটি উদাহরণ।

লেবেলার UI ব্যবহার করে ছবিতে নির্দিষ্ট কীপয়েন্ট চিহ্নিত করতে পারে। কীপয়েন্টগুলির মধ্যে লাইনগুলি স্বয়ংক্রিয়ভাবে ব্যবহারকারীর জন্য একটি কঙ্কাল রিগ সংজ্ঞার উপর ভিত্তি করে আঁকা হবে যা UI ব্যবহার করে। UI অনেকগুলি কাস্টমাইজেশনের অনুমতি দেয়, যেমন নিম্নলিখিত:

  • কাস্টম কীপয়েন্ট নাম
  • কনফিগারযোগ্য কীপয়েন্ট রং
  • কনফিগারযোগ্য রিগ লাইন রং
  • কনফিগারযোগ্য কঙ্কাল এবং রিগ কাঠামো

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

সেজমেকার গ্রাউন্ড ট্রুথ

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

ক্লাউডফ্রন্ট বিতরণ

এই সমাধানের জন্য, লেবেলিং UI-এর জন্য একটি কাস্টম-বিল্ট জাভাস্ক্রিপ্ট উপাদান প্রয়োজন যাকে ক্রাউড-2ডি-কঙ্কাল উপাদান বলা হয়। এই উপাদান পাওয়া যাবে GitHub আমাজনের ওপেন সোর্স উদ্যোগের অংশ হিসেবে। ক্লাউডফ্রন্ট ডিস্ট্রিবিউশনটি হোস্ট করতে ব্যবহার করা হবে crowd-2d-skeleton.js, যা সেজমেকার গ্রাউন্ড ট্রুথ UI-এর প্রয়োজন। ক্লাউডফ্রন্ট ডিস্ট্রিবিউশনকে একটি অরিজিন অ্যাক্সেস আইডেন্টিটি বরাদ্দ করা হবে, যা ক্লাউডফ্রন্ট ডিস্ট্রিবিউশনকে S2 বালতিতে থাকা crowd-3d-skeleton.js অ্যাক্সেস করার অনুমতি দেবে। S3 বালতিটি ব্যক্তিগত থাকবে এবং এই বালতিতে অন্য কোনো বস্তু ক্লাউডফ্রন্ট ডিস্ট্রিবিউশনের মাধ্যমে পাওয়া যাবে না কারণ আমরা একটি বালতি নীতির মাধ্যমে মূল অ্যাক্সেসের পরিচয়ে সীমাবদ্ধতা রাখি। এটি সর্বনিম্ন বিশেষাধিকার নীতি অনুসরণ করার জন্য একটি প্রস্তাবিত অনুশীলন।

Amazon S3 বালতি

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

প্রাক-টীকা Lambda ফাংশন

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

পোস্ট-টীকা Lambda ফাংশন

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

পোস্ট-টীকা Lambda ফাংশন ভূমিকা

আমরা একটি ব্যবহার এডাব্লুএস আইডেন্টিটি এবং অ্যাক্সেস ম্যানেজমেন্ট (IAM) ভূমিকা S3 বালতিতে পোস্ট-টীকা Lambda ফাংশন অ্যাক্সেস দিতে। আউটপুট ম্যানিফেস্ট ফাইলে চূড়ান্ত ফলাফল লেখার আগে টীকা ফলাফল পড়তে এবং কোনো পরিবর্তন করার জন্য এটি প্রয়োজন।

সেজমেকার গ্রাউন্ড ট্রুথ ভূমিকা

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

পূর্বশর্ত

এই ওয়াকথ্রুটির জন্য, আপনার নিম্নলিখিত পূর্বশর্তগুলি থাকা উচিত:

এই সমাধানের জন্য, আমরা আর্কিটেকচার স্থাপন করতে AWS CDK ব্যবহার করি। তারপরে আমরা একটি নমুনা লেবেলিং কাজ তৈরি করি, লেবেলিং কাজের চিত্রগুলিকে লেবেল করতে টীকা পোর্টাল ব্যবহার করি এবং লেবেলিংয়ের ফলাফলগুলি পরীক্ষা করি৷

AWS CDK স্ট্যাক তৈরি করুন

আপনি সমস্ত পূর্বশর্তগুলি সম্পূর্ণ করার পরে, আপনি সমাধানটি স্থাপন করতে প্রস্তুত৷

আপনার সম্পদ সেট আপ করুন

আপনার সম্পদ সেট আপ করতে নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. থেকে উদাহরণ স্ট্যাক ডাউনলোড করুন গিটহুব রেপো.
  2. সংগ্রহস্থলে পরিবর্তন করতে cd কমান্ডটি ব্যবহার করুন।
  3. আপনার পাইথন পরিবেশ তৈরি করুন এবং প্রয়োজনীয় প্যাকেজ ইনস্টল করুন (আরো বিশদ বিবরণের জন্য সংগ্রহস্থল README.md দেখুন)।
  4. আপনার পাইথন পরিবেশ সক্রিয় হলে, নিম্নলিখিত কমান্ডটি চালান:
  5. AWS CDK স্থাপন করতে নিম্নলিখিত কমান্ডটি চালান:
    cdk deploy

  6. পোস্ট-ডিপ্লয়মেন্ট স্ক্রিপ্ট চালানোর জন্য নিম্নলিখিত কমান্ডটি চালান:
    python scripts/post_deployment_script.py

একটি লেবেলিং কাজ তৈরি করুন

আপনি আপনার সংস্থানগুলি সেট আপ করার পরে, আপনি একটি লেবেলিং কাজ তৈরি করতে প্রস্তুত৷ এই পোস্টের উদ্দেশ্যে, আমরা সংগ্রহস্থলে প্রদত্ত উদাহরণ স্ক্রিপ্ট এবং চিত্রগুলি ব্যবহার করে একটি লেবেলিং কাজ তৈরি করি।

  1. সিডি মধ্যে scripts সংগ্রহস্থলে ডিরেক্টরি।
  2. নিম্নলিখিত কোডটি চালিয়ে ইন্টারনেট থেকে উদাহরণ চিত্রগুলি ডাউনলোড করুন:
    python scripts/download_example_images.py

এই স্ক্রিপ্টটি 10টি চিত্রের একটি সেট ডাউনলোড করে, যা আমরা আমাদের উদাহরণ লেবেল করার কাজে ব্যবহার করি। আমরা এই পোস্টে পরে আপনার নিজস্ব কাস্টম ইনপুট ডেটা কীভাবে ব্যবহার করব তা পর্যালোচনা করব।

  1. নিম্নলিখিত কোডে দৌড়ানোর মাধ্যমে একটি লেবেলিং কাজ তৈরি করুন:
    python scripts/create_example_labeling_job.py <Labeling Workforce ARN>

এই স্ক্রিপ্টটি একটি সেজমেকার গ্রাউন্ড ট্রুথ প্রাইভেট ওয়ার্কফোর্স ARN কে একটি যুক্তি হিসাবে গ্রহণ করে, যেটি এমন একটি কর্মীবাহিনীর জন্য ARN হওয়া উচিত যে অ্যাকাউন্টে আপনি এই আর্কিটেকচারটি স্থাপন করেছেন। স্ক্রিপ্টটি আমাদের লেবেলিং কাজের জন্য ইনপুট ম্যানিফেস্ট ফাইল তৈরি করবে, এটি Amazon S3 এ আপলোড করবে এবং একটি SageMaker Ground Truth কাস্টম লেবেলিং কাজ তৈরি করবে। আমরা এই পোস্টে পরে এই স্ক্রিপ্টের বিশদ বিবরণে গভীরভাবে ডুব দেব।

ডেটাসেট লেবেল করুন

আপনি উদাহরণ লেবেল করার কাজটি চালু করার পরে, এটি SageMaker কনসোলে পাশাপাশি কর্মশক্তি পোর্টালে প্রদর্শিত হবে।

কর্মশক্তি পোর্টালে, লেবেলিং কাজ নির্বাচন করুন এবং নির্বাচন করুন কাজ শুরু কর.

আপনাকে উদাহরণ ডেটাসেট থেকে একটি চিত্র উপস্থাপন করা হবে। এই মুহুর্তে, আপনি চিত্রগুলি টীকা করতে কাস্টম ক্রাউড-2d-কঙ্কাল UI ব্যবহার করতে পারেন। আপনি উল্লেখ করে crowd-2d-skeleton UI এর সাথে নিজেকে পরিচিত করতে পারেন ইউজার ইন্টারফেস ওভারভিউ. আমরা থেকে রিগ সংজ্ঞা ব্যবহার COCO কীপয়েন্ট সনাক্তকরণ ডেটাসেট চ্যালেঞ্জ মানুষের ভঙ্গি রিগ হিসাবে. পুনরাবৃত্তি করার জন্য, আপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে পয়েন্টগুলি সরাতে বা যোগ করতে আমাদের কাস্টম UI উপাদান ছাড়াই এটি কাস্টমাইজ করতে পারেন।

আপনি একটি ইমেজ টীকা করা শেষ হলে, নির্বাচন করুন জমা দিন. সমস্ত ছবি লেবেল না হওয়া পর্যন্ত এটি আপনাকে ডেটাসেটের পরবর্তী ছবিতে নিয়ে যাবে।

লেবেলিং ফলাফল অ্যাক্সেস করুন

যখন আপনি লেবেলিং কাজের সমস্ত ইমেজ লেবেল করা শেষ করবেন, তখন সেজমেকার গ্রাউন্ড ট্রুথ পোস্ট-টীকা Lambda ফাংশন চালু করবে এবং সমস্ত টীকা সমেত একটি output.manifest ফাইল তৈরি করবে। এই output.manifest S3 বালতিতে সংরক্ষণ করা হবে। আমাদের ক্ষেত্রে, আউটপুট ম্যানিফেস্টের অবস্থান S3 URI পাথ অনুসরণ করা উচিত s3://<bucket name> /labeling_jobs/output/<labeling job name>/manifests/output/output.manifest. output.manifest ফাইল হল একটি JSON লাইন ফাইল, যেখানে প্রতিটি লাইন একটি একক চিত্র এবং লেবেলিং কর্মশক্তি থেকে এর টীকাগুলির সাথে মিলে যায়৷ প্রতিটি JSON লাইন আইটেম অনেক ক্ষেত্র সহ একটি JSON অবজেক্ট। আমরা যে ক্ষেত্রে আগ্রহী তা বলা হয় label-results. এই ক্ষেত্রের মান হল একটি বস্তু যার মধ্যে নিম্নলিখিত ক্ষেত্র রয়েছে:

  • dataset_object_id - ইনপুট ম্যানিফেস্ট আইটেমের আইডি বা সূচক
  • data_object_s3_uri - ছবিটির Amazon S3 URI
  • চিত্র_ফায়াল_নাম - ছবির ফাইলের নাম
  • image_s3_অবস্থান – ছবিটির অ্যামাজন এস৩ ইউআরএল
  • মূল_টীকা - মূল টীকা (যদি আপনি একটি প্রাক-টীকা ওয়ার্কফ্লো ব্যবহার করেন তবেই কেবল সেট এবং ব্যবহার করা হয়)
  • আপডেট করা_টীকা - ছবির জন্য টীকা
  • worker_id – কর্মীবাহিনীর কর্মী যিনি টীকা তৈরি করেছেন
  • কোন_পরিবর্তনের_প্রয়োজন নেই – কোন পরিবর্তনের প্রয়োজন নেই চেক বক্স নির্বাচন করা হয়েছে কিনা
  • ছিল_পরিবর্তিত - টীকা ডেটা মূল ইনপুট ডেটা থেকে আলাদা কিনা
  • মোট_সময়_সেকেন্ডে – ইমেজ টীকা করতে কর্মী কর্মীদের সময় লেগেছে

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

আপনার নিজস্ব লেবেলিং কাজ তৈরি করুন

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

আমরা থেকে কোড স্নিপেট কভার create_example_labeling_job.py স্ক্রিপ্ট অবস্থিত GitHub সংগ্রহস্থল. স্ক্রিপ্ট শুরু হয় ভেরিয়েবল সেট আপ করে যা পরে স্ক্রিপ্টে ব্যবহৃত হয়। কিছু ভেরিয়েবল সরলতার জন্য হার্ড-কোডেড, যেখানে অন্যগুলি, যা স্ট্যাক নির্ভর, আমাদের AWS CDK স্ট্যাক থেকে তৈরি মানগুলি নিয়ে রানটাইমে গতিশীলভাবে আমদানি করা হবে৷

# Setup/get variables values from our CDK stack
s3_upload_prefix = "labeling_jobs"
image_dir = 'scripts/images'
manifest_file_name = "example_manifest.txt"
s3_bucket_name = read_ssm_parameter('/crowd_2d_skeleton_example_stack/bucket_name')
pre_annotation_lambda_arn = read_ssm_parameter('/crowd_2d_skeleton_example_stack/pre_annotation_lambda_arn')
post_annotation_lambda_arn = read_ssm_parameter('/crowd_2d_skeleton_example_stack/post_annotation_lambda_arn')
ground_truth_role_arn = read_ssm_parameter('/crowd_2d_skeleton_example_stack/sagemaker_ground_truth_role')
ui_template_s3_uri = f"s3://{s3_bucket_name}/infrastructure/ground_truth_templates/crowd_2d_skeleton_template.html"
s3_image_upload_prefix = f'{s3_upload_prefix}/images'
s3_manifest_upload_prefix = f'{s3_upload_prefix}/manifests'
s3_output_prefix = f'{s3_upload_prefix}/output'

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

  • source-ref - আপনি যে ইমেজটি লেবেল করতে চান তাতে Amazon S3 URI।
  • টীকা - টীকা অবজেক্টের একটি তালিকা, যা প্রাক-টীকা ওয়ার্কফ্লোগুলির জন্য ব্যবহৃত হয়। দেখুন ভিড়-2d-কঙ্কাল ডকুমেন্টেশন প্রত্যাশিত মান সম্পর্কে আরো বিস্তারিত জানার জন্য।

স্ক্রিপ্ট কোডের নিম্নলিখিত বিভাগটি ব্যবহার করে চিত্র ডিরেক্টরিতে প্রতিটি চিত্রের জন্য একটি ম্যানিফেস্ট লাইন তৈরি করে:

# For each image in the image directory lets create a manifest line
manifest_items = []
for filename in os.listdir(image_dir):
    if filename.endswith('.jpg') or filename.endswith('.png'):
        img_path = os.path.join(
            image_dir,
            filename
        )
        object_name = os.path.join(
            s3_image_upload_prefix,
            filename
        ).replace("", "/")

        # upload to s3_bucket
        s3_client.upload_file(img_path, s3_bucket_name, object_name)
f
        # add it to manifest file
        manifest_items.append({
            "source-ref": f's3://{s3_bucket_name}/{object_name}',
            "annotations": [],
        })

আপনি যদি বিভিন্ন চিত্র ব্যবহার করতে চান বা একটি ভিন্ন চিত্র ডিরেক্টরিতে নির্দেশ করতে চান তবে আপনি কোডের সেই বিভাগটি পরিবর্তন করতে পারেন। অতিরিক্তভাবে, আপনি যদি একটি প্রাক-টীকা ওয়ার্কফ্লো ব্যবহার করেন, তাহলে আপনি অ্যারে এবং এর সমস্ত টীকা অবজেক্ট সমন্বিত একটি JSON স্ট্রিং সহ অ্যানোটেশন অ্যারে আপডেট করতে পারেন। এই অ্যারের বিন্যাসের বিশদ বিবরণ এতে নথিভুক্ত করা হয়েছে ভিড়-2d-কঙ্কাল ডকুমেন্টেশন.

ম্যানিফেস্ট লাইন আইটেমগুলি এখন তৈরি করে, আপনি আগে তৈরি করা S3 বাকেটটিতে ম্যানিফেস্ট ফাইল তৈরি এবং আপলোড করতে পারেন:

# Create Manifest file
manifest_file_contents = "n".join([json.dumps(mi) for mi in manifest_items])
with open(manifest_file_name, "w") as file_handle:
    file_handle.write(manifest_file_contents)

# Upload manifest file
object_name = os.path.join(
    s3_manifest_upload_prefix,
    manifest_file_name
).replace("", "/")
s3_client.upload_file(manifest_file_name, s3_bucket_name, object_name)

এখন আপনি একটি ম্যানিফেস্ট ফাইল তৈরি করেছেন যেখানে আপনি যে ছবিগুলি লেবেল করতে চান, আপনি একটি লেবেল কাজ তৈরি করতে পারেন৷ আপনি প্রোগ্রাম্যাটিকভাবে ব্যবহার করে লেবেলিং কাজ তৈরি করতে পারেন Python (Boto3) এর জন্য AWS SDK. একটি লেবেলিং কাজ তৈরি করার কোডটি নিম্নরূপ:

# Create labeling job
client = boto3.client("sagemaker")
now = int(round(datetime.now().timestamp()))
response = client.create_labeling_job(
    LabelingJobName=f"crowd-2d-skeleton-example-{now}",
    LabelAttributeName="label-results",
    InputConfig={
        "DataSource": {
            "S3DataSource": {"ManifestS3Uri": f's3://{s3_bucket_name}/{object_name}'},
        },
        "DataAttributes": {},
    },
    OutputConfig={
        "S3OutputPath": f"s3://{s3_bucket_name}/{s3_output_prefix}/",
    },
    RoleArn=ground_truth_role_arn,
    HumanTaskConfig={
        "WorkteamArn": workteam_arn,
        "UiConfig": {"UiTemplateS3Uri": ui_template_s3_uri},
        "PreHumanTaskLambdaArn": pre_annotation_lambda_arn,
        "TaskKeywords": ["example"],
        "TaskTitle": f"Crowd 2D Component Example {now}",
        "TaskDescription": "Crowd 2D Component Example",
        "NumberOfHumanWorkersPerDataObject": 1,
        "TaskTimeLimitInSeconds": 28800,
        "TaskAvailabilityLifetimeInSeconds": 2592000,
        "MaxConcurrentTaskCount": 123,
        "AnnotationConsolidationConfig": {
            "AnnotationConsolidationLambdaArn": post_annotation_lambda_arn
        },
    },
)
print(response)

এই কোডের দিকগুলো আপনি পরিবর্তন করতে চান LabelingJobName, TaskTitle, এবং TaskDescription. দ্য LabelingJobName লেবেলিং কাজের অনন্য নাম যা SageMaker আপনার কাজের উল্লেখ করতে ব্যবহার করবে। এটি সেই নাম যা সেজমেকার কনসোলে উপস্থিত হবে। TaskTitle একটি অনুরূপ উদ্দেশ্য পরিবেশন করে, কিন্তু অনন্য হওয়ার প্রয়োজন নেই এবং কর্মশক্তি পোর্টালে প্রদর্শিত কাজের নাম হবে। আপনি কি লেবেল করছেন বা লেবেল করার কাজটি কিসের জন্য আপনি এগুলিকে আরও নির্দিষ্ট করতে চাইতে পারেন। অবশেষে, আমরা আছে TaskDescription ক্ষেত্র এই ক্ষেত্রটি কর্মশক্তি পোর্টালে উপস্থিত হয় যাতে লেবেলারদের টাস্কটি কী, যেমন টাস্কের জন্য নির্দেশাবলী এবং নির্দেশিকা প্রদান করা হয়। এই ক্ষেত্রগুলির পাশাপাশি অন্যদের সম্পর্কে আরও তথ্যের জন্য, পড়ুন তৈরি_লেবেলিং_জব ডকুমেন্টেশন.

UI এ সামঞ্জস্য করুন

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

  • আপনি কোন কী পয়েন্ট লেবেল করা যেতে পারে তা নির্ধারণ করতে পারেন। এতে কীপয়েন্টের নাম এবং এর রঙ অন্তর্ভুক্ত রয়েছে।
  • আপনি কঙ্কালের গঠন পরিবর্তন করতে পারেন (যা কীপয়েন্ট সংযুক্ত)।
  • আপনি নির্দিষ্ট কীপয়েন্টের মধ্যে নির্দিষ্ট লাইনের জন্য লাইনের রঙ পরিবর্তন করতে পারেন।

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

<crowd-2d-skeleton
        imgSrc="{{ task.input.image_s3_uri | grant_read_access }}"
        keypointClasses='<keypoint classes>'
        skeletonRig='<skeleton rig definition>'
        skeletonBoundingBox='<skeleton bounding box size>'
        initialValues="{{ task.input.initial_values }}"
>

পূর্ববর্তী কোড উদাহরণে, আপনি উপাদানটিতে নিম্নলিখিত বৈশিষ্ট্যগুলি দেখতে পারেন: imgSrc, keypointClasses, skeletonRig, skeletonBoundingBox, এবং intialValues. আমরা নিম্নলিখিত বিভাগে প্রতিটি বৈশিষ্ট্যের উদ্দেশ্য বর্ণনা করি, তবে UI কাস্টমাইজ করা এই বৈশিষ্ট্যগুলির মান পরিবর্তন করা, টেমপ্লেট সংরক্ষণ করা এবং পুনরায় চালু করার মতোই সহজ post_deployment_script.py আমরা আগে ব্যবহার করেছি।

imgSrc বৈশিষ্ট্য

সার্জারির imgSrc অ্যাট্রিবিউট লেবেল করার সময় UI-তে কোন ছবি দেখাতে হবে তা নিয়ন্ত্রণ করে। সাধারণত, প্রতিটি ম্যানিফেস্ট লাইন আইটেমের জন্য একটি ভিন্ন চিত্র ব্যবহার করা হয়, তাই এই বৈশিষ্ট্যটি প্রায়শই বিল্ট-ইন ব্যবহার করে গতিশীলভাবে পপুলেট করা হয় তরল টেমপ্লেটিং ভাষা। আপনি আগের কোড উদাহরণে দেখতে পারেন যে বৈশিষ্ট্য মান সেট করা হয়েছে {{ task.input.image_s3_uri | grant_read_access }}, যা লিকুইড টেমপ্লেট ভেরিয়েবল যা বাস্তবের সাথে প্রতিস্থাপিত হবে image_s3_uri মান যখন টেমপ্লেট রেন্ডার করা হচ্ছে। রেন্ডারিং প্রক্রিয়া শুরু হয় যখন ব্যবহারকারী টীকাটির জন্য একটি চিত্র খোলে। এই প্রক্রিয়াটি ইনপুট ম্যানিফেস্ট ফাইল থেকে একটি লাইন আইটেম দখল করে এবং এটিকে প্রাক-টীকা ল্যাম্বডা ফাংশনে পাঠায় event.dataObject. প্রাক-টীকা ফাংশন লাইন আইটেম থেকে প্রয়োজনীয় তথ্য নেয় এবং একটি প্রদান করে taskInput অভিধান, যা তারপর লিকুইড রেন্ডারিং ইঞ্জিনে পাস করা হয়, যা আপনার টেমপ্লেটের যেকোনো লিকুইড ভেরিয়েবল প্রতিস্থাপন করবে। উদাহরণস্বরূপ, ধরুন আপনার কাছে নিম্নলিখিত লাইন সহ একটি ম্যানিফেস্ট ফাইল রয়েছে:

{"source-ref": "s3://my-bucket/exmaple.jpg", "annotations": []}

এই ডেটা প্রাক-টীকা ফাংশনে প্রেরণ করা হবে। নিম্নলিখিত কোড দেখায় কিভাবে ফাংশন ইভেন্ট অবজেক্ট থেকে মান বের করে:

def lambda_handler(event, context):
    print("Pre-Annotation Lambda Triggered")
    data_object = event["dataObject"]  # this comes directly from the manifest file
    annotations = data_object["annotations"]

    taskInput = {
        "image_s3_uri": data_object["source-ref"],
        "initial_values": json.dumps(annotations)
    }
    return {"taskInput": taskInput, "humanAnnotationRequired": "true"}

এই ক্ষেত্রে ফাংশন থেকে ফিরে আসা বস্তুটি নিম্নলিখিত কোডের মত দেখাবে:

{
  "taskInput": {
    "image_s3_uri": "s3://my-bucket/exmaple.jpg",
    "annotations": "[]"
  },
  "humanAnnotationRequired": "true"
}

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

<crowd-2d-skeleton
        imgSrc="s3://my-bucket/exmaple.jpg" <-- This was “injected” into template
        keypointClasses='<keypoint classes>'
        skeletonRig='<skeleton rig definition>'
        skeletonBoundingBox='<skeleton bounding box size>'
        initialValues="[]"
>

keypointClasses বৈশিষ্ট্য

সার্জারির keypointClasses বৈশিষ্ট্য সংজ্ঞায়িত করে কোন কীপয়েন্টগুলি UI-তে প্রদর্শিত হবে এবং টীকাকারদের দ্বারা ব্যবহার করা হবে। এই বৈশিষ্ট্যটি অবজেক্টের একটি তালিকা ধারণকারী JSON স্ট্রিং নেয়। প্রতিটি বস্তু একটি কীপয়েন্ট প্রতিনিধিত্ব করে। প্রতিটি কীপয়েন্ট অবজেক্টে নিম্নলিখিত ক্ষেত্র থাকা উচিত:

  • id - সেই কীপয়েন্ট সনাক্ত করার জন্য একটি অনন্য মান।
  • রঙ - কীপয়েন্টের রঙ একটি HTML হেক্স রঙ হিসাবে উপস্থাপিত।
  • লেবেল - নাম বা কীপয়েন্ট ক্লাস।
  • x - এই ঐচ্ছিক বৈশিষ্ট্যটি শুধুমাত্র তখনই প্রয়োজন যদি আপনি UI-তে ড্র কঙ্কাল কার্যকারিতা ব্যবহার করতে চান। এই অ্যাট্রিবিউটের মান হল কঙ্কালের বাউন্ডিং বাক্সের সাপেক্ষে কীপয়েন্টের x অবস্থান। এই মান সাধারণত দ্বারা প্রাপ্ত হয় কঙ্কাল রিগ ক্রিয়েটর টুল. আপনি যদি কীপয়েন্ট টীকাগুলি করছেন এবং একবারে একটি সম্পূর্ণ কঙ্কাল আঁকতে হবে না, আপনি এই মানটি 0 এ সেট করতে পারেন।
  • y - এই ঐচ্ছিক বৈশিষ্ট্যটি x এর অনুরূপ, তবে উল্লম্ব মাত্রার জন্য।

সম্পর্কে আরও তথ্যের জন্য keypointClasses বৈশিষ্ট্য, দেখুন keypointClasses ডকুমেন্টেশন.

skeletonRig বৈশিষ্ট্য

সার্জারির skeletonRig বৈশিষ্ট্য নিয়ন্ত্রণ করে কোন কীপয়েন্টের মধ্যে লাইন টানা উচিত। এই বৈশিষ্ট্যটি একটি JSON স্ট্রিং নেয় যাতে কীপয়েন্ট লেবেল জোড়ার একটি তালিকা থাকে। প্রতিটি জোড়া UI কে জানায় কোন কীপয়েন্টগুলির মধ্যে লাইন আঁকতে হবে৷ উদাহরণ স্বরূপ, '[["left_ankle","left_knee"],["left_knee","left_hip"]]' এর মধ্যে লাইন আঁকতে UI কে জানায় "left_ankle" এবং "left_knee" এবং মধ্যে লাইন আঁকুন "left_knee" এবং "left_hip". এই দ্বারা উত্পন্ন করা যেতে পারে কঙ্কাল রিগ ক্রিয়েটর টুল.

skeletonBoundingBox বৈশিষ্ট্য

সার্জারির skeletonBoundingBox বৈশিষ্ট্য ঐচ্ছিক এবং শুধুমাত্র প্রয়োজন যদি আপনি UI-তে ড্র কঙ্কাল কার্যকারিতা ব্যবহার করতে চান। ড্র কঙ্কাল কার্যকারিতা হল একটি একক টীকা ক্রিয়া সহ সমগ্র কঙ্কাল টীকা করার ক্ষমতা। আমরা এই পোস্টে এই বৈশিষ্ট্যটি কভার করি না। এই বৈশিষ্ট্যের মান হল কঙ্কালের আবদ্ধ বাক্সের মাত্রা। এই মান সাধারণত দ্বারা প্রাপ্ত হয় কঙ্কাল রিগ ক্রিয়েটর টুল. আপনি যদি কীপয়েন্ট টীকা করছেন এবং একবারে একটি সম্পূর্ণ কঙ্কাল আঁকতে হবে না, আপনি এই মানটিকে নাল সেট করতে পারেন। এই মান পেতে Skeleton Rig Creator টুল ব্যবহার করার পরামর্শ দেওয়া হয়।

intialValues ​​বৈশিষ্ট্য

সার্জারির initialValues অ্যাট্রিবিউট অন্য প্রক্রিয়া (যেমন অন্য লেবেলিং কাজ বা মেশিন লার্নিং মডেল) থেকে প্রাপ্ত টীকা সহ UI-কে প্রাক-পপুলেট করতে ব্যবহৃত হয়। সমন্বয় বা পর্যালোচনা কাজ করার সময় এটি দরকারী। এই ক্ষেত্রের ডেটা সাধারণত এর জন্য একই বিবরণে গতিশীলভাবে পপুলেট করা হয় imgSrc বৈশিষ্ট্য আরো বিস্তারিত পাওয়া যাবে ভিড়-2d-কঙ্কাল ডকুমেন্টেশন.

পরিষ্কার কর

ভবিষ্যতের চার্জ এড়াতে, আপনার S3 বাকেটের বস্তুগুলি মুছে ফেলা উচিত এবং আপনার AWS CDK স্ট্যাক মুছে ফেলা উচিত। আপনি Amazon SageMaker কনসোল বা এর মাধ্যমে আপনার S3 অবজেক্ট মুছে ফেলতে পারেন এডাব্লুএস কমান্ড লাইন ইন্টারফেস (AWS CLI)। আপনি বালতির সমস্ত S3 অবজেক্ট মুছে ফেলার পরে, আপনি নিম্নলিখিত কোডটি চালিয়ে AWS CDK ধ্বংস করতে পারেন:

cdk destroy

এটি আপনার আগে তৈরি করা সংস্থানগুলিকে সরিয়ে দেবে।

বিবেচ্য বিষয়

আপনার কর্মপ্রবাহ উৎপাদন করতে অতিরিক্ত পদক্ষেপের প্রয়োজন হতে পারে। আপনার সংস্থার ঝুঁকি প্রোফাইলের উপর নির্ভর করে এখানে কিছু বিবেচনা রয়েছে:

  • অ্যাক্সেস এবং অ্যাপ্লিকেশন লগিং যোগ করা হচ্ছে
  • একটি ওয়েব অ্যাপ্লিকেশন ফায়ারওয়াল যোগ করা হচ্ছে (WAF)
  • ন্যূনতম বিশেষাধিকার অনুসরণ করার জন্য IAM অনুমতিগুলি সামঞ্জস্য করা

উপসংহার

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

আমরা আপনাকে আপনার লেবেলিং কার্যগুলির জন্য এই সমাধানটি ব্যবহার করতে এবং কাস্টম লেবেলিং কার্যপ্রবাহ সম্পর্কিত সহায়তা বা অনুসন্ধানের জন্য AWS-এর সাথে জড়িত হতে উত্সাহিত করি৷


লেখক সম্পর্কে

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

বেন ফেনকার তিনি AWS প্রফেশনাল সার্ভিসেস-এর একজন সিনিয়র ডেটা সায়েন্টিস্ট এবং খেলাধুলা থেকে শুরু করে স্বাস্থ্যসেবা থেকে উৎপাদন পর্যন্ত শিল্পে ML সলিউশন তৈরি ও স্থাপনে গ্রাহকদের সাহায্য করেছেন। তিনি পিএইচডি করেছেন। টেক্সাস এএন্ডএম বিশ্ববিদ্যালয় থেকে পদার্থবিজ্ঞানে এবং 6 বছরের শিল্প অভিজ্ঞতা। বেন বেসবল, পড়া এবং তার বাচ্চাদের বড় করা উপভোগ করেন।

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

স্পট_আইএমজি

সর্বশেষ বুদ্ধিমত্তা

স্পট_আইএমজি