Pose Detection: এটি কী, মডেল এবং কাজের নীতি

লেখক: IT Sectr প্রকাশিত: 2026-07-19 পড়ার সময়: 9 মিনিট

Pose Detection একটি কম্পিউটার ভিশন প্রযুক্তি যা মূল পয়েন্ট (landmarks) দ্বারা মানব দেহের অবস্থান নির্ধারণ করে: মাথা, কাঁধ, কনুই, কব্জি, নিতম্ব, হাঁটু, গোড়ালি। প্রতিটি পয়েন্টের 2D স্পেসে (x, y) স্থানাঙ্ক রয়েছে এবং উন্নত মডেল (MediaPipe BlazePose 3D) গভীরতার জন্য z-স্থানাঙ্ক যোগ করে। মোবাইল অ্যাপ্লিকেশনে, Pose Detection ফিটনেস ট্র্যাকার, যোগা অ্যাপ, AR ফিল্টার, পুনর্বাসন প্রোগ্রাম এবং ক্রীড়া বিশ্লেষণ সিস্টেমে ব্যবহৃত হয়। Google ML Kit, 2025 অনুসারে, অন-ডিভাইস Pose Detection 94% PCK নির্ভুলতার সাথে প্রতি সেকেন্ডে 30 ফ্রেম পর্যন্ত প্রক্রিয়া করে।

মূল বিষয়

  • Pose Detection — একটি চিত্র থেকে দেহের মূল পয়েন্ট (landmarks) শনাক্তকরণ
  • ML Kit Pose Detection — 33 landmarks, 30 FPS, 94% PCK নির্ভুলতা
  • MediaPipe BlazePose — 33 landmarks + 3D, GPU তে 60 FPS পর্যন্ত
  • MoveNet Lightning — 17 keypoints (COCO), 30+ FPS, 8 MB, INT8
  • অন-ডিভাইস — গোপনীয়তা, রিয়েল-টাইম, সার্ভারে ভিডিও না পাঠিয়ে

Pose Detection কী: মৌলিক বিষয় এবং মেট্রিক্স

Pose Detection (Pose Estimation ও বলা হয়) একটি চিত্র বা ভিডিও থেকে মানব দেহের শব্দার্থিক মূল পয়েন্ট নির্ধারণের কাজকে বোঝায়। Top-down পদ্ধতি প্রথমে ব্যক্তিকে সনাক্ত করে (Object Detection), তারপর তাদের ভঙ্গি নির্ধারণ করে। Bottom-up পদ্ধতি চিত্রের সমস্ত landmarks খুঁজে বের করে, তারপর সেগুলিকে ব্যক্তি অনুসারে গ্রুপ করে (OpenPose)। মোবাইল ডিভাইসের জন্য bottom-up ব্যবহার করা হয় — এটি ফ্রেমে একাধিক লোকের সাথে দ্রুততর। ML Kit এবং BlazePose একক-পদক্ষেপ পদ্ধতি ব্যবহার করে — এক পাসে সনাক্তকরণ + ভঙ্গি।

COCO Keypoints — 17 পয়েন্টের একটি মানক সেট: নাক, চোখ (2), কান (2), কাঁধ (2), কনুই (2), কব্জি (2), নিতম্ব (2), হাঁটু (2), গোড়ালি (2)। MediaPipe BlazePose 33 পয়েন্ট ব্যবহার করে, যোগ করে: পায়ের আঙুল, গোড়ালি, ধড়ের কেন্দ্র, মুখের পয়েন্ট। যত বেশি পয়েন্ট, ভঙ্গি বিশ্লেষণ তত নির্ভুল, কিন্তু গণনামূলক লোড তত বেশি। ফিটনেস অ্যাপের জন্য, 17–20 পয়েন্ট যথেষ্ট। সম্পূর্ণ বিশ্লেষণের জন্য (যোগা, নৃত্য) — 33 পয়েন্ট। AR ফিল্টারের জন্য — 33 পয়েন্ট + 468 মুখের পয়েন্ট (MediaPipe Face Mesh)।

PCK (Percentage of Correct Keypoints) — Pose Detection নির্ভুলতা মেট্রিক। এটি গ্রাউন্ড ট্রুথ থেকে একটি দূরত্বের মধ্যে ভবিষ্যদ্বাণী করা পয়েন্টের অনুপাত গণনা করে (সাধারণত ব্যক্তির বাউন্ডিং বক্স আকারের 0.05–0.15)। ML Kit Pose Detection: 94% PCK@0.1. BlazePose Full: 96% PCK@0.1. MoveNet Lightning: 91% PCK@0.1. OKS (Object Keypoint Similarity) — COCO তে ব্যবহৃত একটি মেট্রিক, যা ব্যক্তির স্কেল এবং পয়েন্টের কঠিনতা বিবেচনা করে। mAP@OKS — বেঞ্চমার্কের জন্য মানক মেট্রিক।

মডেলLandmarksPCK@0.1লেটেন্সি (GPU)আকার
ML Kit Pose Acc3394%15–30 ms14 MB
BlazePose Full33 + 3D96%10–20 ms12 MB
BlazePose Lite3391%5–10 ms5 MB
MoveNet Lightning1791%8–15 ms8 MB
MoveNet Thunder1795%25–40 ms13 MB

Keypoint Visibility: প্রতিটি landmark এর একটি স্কোর (0..1) রয়েছে যা নির্দেশ করে মডেলটি পয়েন্ট সম্পর্কে কতটা আত্মবিশ্বাসী এবং এটি দৃশ্যমান কিনা। স্কোর < 0.5 পয়েন্টগুলি অদৃশ্য বলে বিবেচিত হয় (অবরুদ্ধ, ফ্রেমের বাইরে)। ভঙ্গি বিশ্লেষণের জন্য, শুধুমাত্র দৃশ্যমান পয়েন্ট ব্যবহার করুন। সারিবদ্ধকরণ মূল্যায়নের জন্য — কনফিডেন্স-ওয়েটেড দূরত্ব গণনা করুন, যেখানে কম স্কোরের পয়েন্টগুলির মেট্রিকে কম ওজন থাকে।

Android এবং iOS এ ML Kit Pose Detection

ML Kit Pose Detection — অন-ডিভাইস ভঙ্গি সনাক্তকরণের জন্য গুগলের একটি লাইব্রেরি। 33 landmarks সমর্থন করে, যার মধ্যে মুখের পয়েন্ট, পায়ের আঙুল এবং গোড়ালি অন্তর্ভুক্ত। মোড: Accurate Mode (14 MB মডেল, 15–30 ms, উচ্চ নির্ভুলতা) এবং Streaming Mode (5 MB, 5–10 ms, রিয়েল-টাইমের জন্য)। Streaming Mode ট্র্যাকিং সহ একটি লাইটওয়েট মডেল ব্যবহার করে — প্রথম ফ্রেমের পরে, সঠিক অবস্থান পুনরায় সনাক্ত না করেই গতি ট্র্যাক করে, যা 60 FPS পর্যন্ত অর্জন করে।

ML Kit Pose Detection API: PoseDetector (বিকল্প: setDetectorMode, setPerformanceMode) → InputImage → Pose (List<PoseLandmark>)। প্রতিটি PoseLandmark এ রয়েছে: landmarkType (38 প্রকার), position (PointF3D), inFrameLikelihood (0..1)। Pose এছাড়াও প্রদান করে: ব্যক্তির boundingBox, landmarks এর তালিকা, getLandmark(type) পদ্ধতি। ভঙ্গি শ্রেণীবিভাগের জন্য, হাড়ের মধ্যে কোণ ব্যবহার করুন: shoulderAngle, elbowAngle, hipAngle — সংলগ্ন landmarks এর মধ্যে Vector3D এর মাধ্যমে গণনা করা হয়।

kotlin
val options = PoseDetectorOptions.Builder()
    .setDetectorMode(PoseDetectorOptions.STREAM_MODE)
    .setPerformanceMode(PoseDetectorOptions.PERFORMANCE_MODE_FAST)
    .build()

val detector = PoseDetection.getClient(options)

detector.process(inputImage)
    .addOnSuccessListener { pose ->
        val leftElbow = pose.getLandmark(PoseLandmark.LEFT_ELBOW)
        val leftShoulder = pose.getLandmark(PoseLandmark.LEFT_SHOULDER)
        val leftWrist = pose.getLandmark(PoseLandmark.LEFT_WRIST)
        val elbowAngle = calculateAngle(
            leftShoulder.position, leftElbow.position, leftWrist.position
        )
    }

iOS এ ML Kit: Pose Detection ML Kit CocoaPods এর মাধ্যমে উপলব্ধ। API Android এর অনুরূপ: PoseDetector → UIImage → Pose → PoseLandmark। iOS এ, ML Kit Core ML এবং ANE (A12+) ব্যবহার করে, যা iPhone 15 Pro তে Accurate Mode এ 10–20 ms লেটেন্সি অর্জন করে। Streaming Mode — 3–8 ms, 120 FPS পর্যন্ত। iOS এ, ML Kit Pose Detection MediaPipe BlazePose এর চেয়ে দ্রুত (Core ML ত্বরণ), কিন্তু পুরনো ডিভাইসে (iPhone X–11) FPS এ BlazePose এর থেকে পিছিয়ে।

MediaPipe BlazePose: আর্কিটেকচার এবং 3D

MediaPipe BlazePose — Google Research এর Pose Detection এর জন্য একটি উচ্চ-কার্যক্ষমতা সম্পন্ন মডেল। একটি হাইব্রিড আর্কিটেকচার ব্যবহার করে: MobileNetV2 + Feature Pyramid Network ভিত্তিক detector-decoder পাইপলাইন। BlazePose Full: 33 landmarks + 3D স্থানাঙ্ক (গভীরতা z)। BlazePose Lite: 33 landmarks (2D) গভীরতা ছাড়া। উভয় মডেল Android, iOS, Python এবং Web এ MediaPipe Tasks Vision এ উপলব্ধ। BlazePose Full GPU তে 30–60 FPS প্রক্রিয়া করে, Lite — 60+ FPS।

BlazePose এর সাথে 3D ভঙ্গি অনুমান: মডেল প্রতিটি landmark এর জন্য z-স্থানাঙ্ক ভবিষ্যদ্বাণী করে, যা স্টিরিও ক্যামেরা ছাড়াই গভীরতা অনুমান (অঙ্গের নিকটে/দূরে) সক্ষম করে। Z-স্থানাঙ্ক ক্যামেরার সাপেক্ষে মেট্রিক স্পেসে (মিটার) গণনা করা হয়। BlazePose 3D নির্ভুলতা: পাবলিক বেঞ্চমার্কে 37 mm MPJPE (Mean Per Joint Position Error) — ফিটনেস এবং AR এর জন্য যথেষ্ট, চিকিৎসা নির্ণয়ের জন্য অপর্যাপ্ত। ARKit/ARFoundation এর জন্য, BlazePose 3D প্রাকৃতিক গভীরতা প্রদান করে।

kotlin
// MediaPipe Pose Detection Tasks Vision
val options = PoseLandmarkerOptions.Builder()
    .setBaseOptions(BaseOptions.builder()
        .setModelAssetPath("pose_landmarker_full.task")
        .build())
    .setDelegate(Delegate.GPU)
    .build()

val landmaker = PoseLandmarker.createFromOptions(context, options)

val result = landmaker.detect(MPImage.fromBitmap(bitmap))
result.landmarks.forEach { pose ->
    pose.forEach { landmark ->
        drawLandmark(landmark.x, landmark.y, landmark.z)
    }
}

BlazePose বনাম ML Kit Pose Detection: BlazePose দ্রুততর (60+ FPS বনাম 30 FPS), 3D স্থানাঙ্ক সমর্থন করে, MediaPipe এর মাধ্যমে ক্রস-প্ল্যাটফর্ম কাজ করে। ML Kit একীভূত করা সহজ (MediaPipe SDK প্রয়োজন নেই), উচ্চ নির্ভুলতার সাথে পূর্ব-প্রশিক্ষিত মডেল অন্তর্ভুক্ত। iOS-নেটিভ প্রকল্পের জন্য — ML Kit Pose Detection (সেরা ANE অপ্টিমাইজেশন)। ক্রস-প্ল্যাটফর্ম প্রকল্পের (Flutter, React Native) জন্য — MediaPipe BlazePose (সমস্ত প্ল্যাটফর্মের জন্য একীভূত মডেল)। চাহিদাপূর্ণ দৃশ্যে নির্ভুলতার জন্য — উভয় মডেল তুলনীয়।

MoveNet: TensorFlow এর Lightning এবং Thunder

MoveNet — TensorFlow এর Pose Detection মডেলের একটি পরিবার, TFLite এর জন্য অপ্টিমাইজ করা। Lightning (8 MB, INT8 — 4 MB): 17 COCO keypoints, 91% PCK, 8–15 ms লেটেন্সি, 30+ FPS। Thunder (13 MB, INT8 — 6 MB): 17 keypoints, 95% PCK, 25–40 ms লেটেন্সি, 20+ FPS। MoveNet CenterNet আর্কিটেকচার + উচ্চ-রেজোলিউশন হিটম্যাপের জন্য bilinear interpolation ব্যবহার করে। MoveNet মাল্টি-পোজ সনাক্তকরণ (6 জন পর্যন্ত) সমর্থন করে। মডেলগুলি TensorFlow Hub এ উপলব্ধ।

MoveNet Lightning বনাম Thunder: Lightning — উচ্চ FPS (ফিটনেস, AR ফিল্টার) সহ রিয়েল-টাইম অ্যাপ্লিকেশনের জন্য। Thunder — GPU সম্বলিত ডিভাইসে সঠিক ভঙ্গি বিশ্লেষণ (পুনর্বাসন, ক্রীড়া বিশ্লেষণ) এর জন্য। উভয় মডেল iOS এর জন্য tf-coreml এর মাধ্যমে Core ML এ রূপান্তরিত হয়। MoveNet TFLite Task Vision PoseLandmarker API এর মাধ্যমেও উপলব্ধ। সুপারিশ: Lightning দিয়ে শুরু করুন, যদি নির্ভুলতা অপর্যাপ্ত হয় — Thunder এ স্যুইচ করুন (শুধুমাত্র +15 ms লেটেন্সি ওভারহেড)।

java
// TFLite এর সাথে MoveNet অনুমান
Interpreter interpreter = new Interpreter(loadModel(context));
TensorImage image = TensorImage.fromBitmap(bitmap);
image.load(Bitmap.createScaledBitmap(bitmap, 192, 192, true));

float[][] output = new float[1][51];
interpreter.run(image.getTensorBuffer(), output);

float[] keypoints = output[0];
for (int i = 0; i < 17; i++) {
    float y = keypoints[i * 3];
    float x = keypoints[i * 3 + 1];
    float score = keypoints[i * 3 + 2];
    drawKeypoint(x, y, score);
}

MoveNet মাল্টি-পোজ: ফ্রেমে 6 জন পর্যন্ত সনাক্তকরণ। মানক হিটম্যাপ পদ্ধতির পরিবর্তে, MoveNet ব্যক্তি সনাক্তকরণ + ভঙ্গি পরিশোধন ব্যবহার করে: প্রথমে ব্যক্তি সনাক্ত করে (সেন্ট্রয়েড-ভিত্তিক), তারপর প্রতিটি ভঙ্গি অনুমান করে। মাল্টি-পোজ মোড সিঙ্গেল-পোজের চেয়ে 2–3x ধীর: Lightning — 25–50 ms (6 জন)। একক ব্যবহারকারীর সাথে ফিটনেস অ্যাপের জন্য, সিঙ্গেল-পোজ ব্যবহার করুন। গ্রুপ কার্যকলাপের (যোগা, ক্রসফিট) জন্য — ব্যাটারি বাঁচাতে ফ্রেম রেট সীমিত করে মাল্টি-পোজ।

ভঙ্গি শ্রেণীবিভাগ: পয়েন্ট থেকে কর্ম পর্যন্ত

Pose Classification — সনাক্তকরণের পরের পর্যায়: landmarks কে শব্দার্থিক কর্মে (দাঁড়িয়ে, বসা, হাত তোলা, স্কোয়াট) রূপান্তর করা। পদ্ধতি: Rule-based (ম্যানুয়াল নিয়ম — হাড়ের মধ্যে কোণ), ML-based (landmark ভেক্টরে লজিস্টিক রিগ্রেশন বা Random Forest), DL-based (ফ্রেম জুড়ে ভঙ্গি অনুক্রমের LSTM শ্রেণীবিভাগ)। Rule-based — 50–80% নির্ভুলতা, সরল এবং দ্রুত। ML-based — 200+ লেবেলযুক্ত উদাহরণ সহ 85–95% নির্ভুলতা। LSTM — টাইম সিরিজে (ভিডিও) 90–98% নির্ভুলতা।

হাড়ের মধ্যে কোণ: প্রতিটি পয়েন্টের জন্য, প্রতিবেশী পয়েন্টের সাথে কোণ গণনা করা হয়। উদাহরণ: ডান কনুই কোণ (কাঁধ → কনুই → কব্জি), ডান হাঁটু কোণ (নিতম্ব → হাঁটু → গোড়ালি), ধড় কোণ (কাঁধের মধ্যবিন্দু → নিতম্বের মধ্যবিন্দু)। কোণগুলি ব্যক্তির স্কেল এবং স্ক্রিন অবস্থানের প্রতি অপরিবর্তনীয়। কোণগুলিকে [0, 1] রেঞ্জে স্বাভাবিকীকরণ একটি সরল থ্রেশহোল্ড নিয়মের সাথে ভঙ্গি শ্রেণীবিভাগ সক্ষম করে: যদি elbowAngle < 30° — হাত বাঁকানো, যদি > 150° — প্রসারিত।

kotlin
// নিয়ম-ভিত্তিক স্কোয়াট শ্রেণীবিভাগকারী
fun classifySquat(pose: Pose): SquatPhase {
    val kneeAngle = angle(
        pose.getLandmark(PoseLandmark.LEFT_HIP),
        pose.getLandmark(PoseLandmark.LEFT_KNEE),
        pose.getLandmark(PoseLandmark.LEFT_ANKLE)
    )
    return when {
        kneeAngle > 140f -> SquatPhase.STANDING
        kneeAngle < 90f  -> SquatPhase.SQUAT
        else           -> SquatPhase.TRANSITION
    }
}

MediaPipe Pose Classification — MediaPipe Tasks এ অন্তর্ভুক্ত পূর্ব-প্রশিক্ষিত শ্রেণীবিভাগকারী: স্কোয়াট, পুশ-আপ, প্ল্যাঙ্ক, লেগ রেইজ। শ্রেণীবিভাগকারী landmarks এর একটি তালিকা নেয় এবং কর্ম + কনফিডেন্স ফেরত দেয়। এতে টেম্পোরাল স্মুথিং (অস্থায়ী ফিল্টার) অন্তর্ভুক্ত: ভঙ্গির মধ্যে মসৃণ রূপান্তরের জন্য HED (Holt Exponential Double Smoothing)। কাস্টম কর্মের জন্য — MediaPipe Model Maker (TensorFlow Lite + মেটাডেটা) এর মাধ্যমে 100–500 উদাহরণে একটি শ্রেণীবিভাগকারী প্রশিক্ষণ দিন।

ফিটনেস এবং পুনর্বাসনে Pose Detection এর প্রয়োগ

কৌশল সংশোধন সহ ফিটনেস ট্র্যাকার — অ্যাপ ব্যায়ামের সময় ব্যবহারকারীর ভঙ্গি বিশ্লেষণ করে এবং ভয়েস নির্দেশনা প্রদান করে: "নিতম্ব নিচু করুন", "ধড় সামনে ঝুঁকবেন না"। ML Kit Pose Detection + রুল-বেসড শ্রেণীবিভাগকারী পুনরাবৃত্তি গণনা করে এবং গুণমান মূল্যায়ন করে। স্কোয়াট: হাঁটু কোণ < 90° — সঠিক স্কোয়াট, পিঠের কোণ < 45° — বিপজ্জনক ধড় ঝুঁক। পুশ-আপ: নিম্ন বিন্দুতে কনুই কোণ < 90° — সম্পূর্ণ পুশ-আপ। পুল-আপ: বারের স্তরের উপরে চিবুক।

পুনর্বাসন এবং ফিজিওথেরাপি — Pose Detection শারীরিক থেরাপি ব্যায়ামের দূরবর্তী পর্যবেক্ষণের জন্য ব্যবহৃত হয়। একজন ডাক্তার একটি রেফারেন্স ভঙ্গি নির্ধারণ করেন (যেমন, 45° এ কাঁধ অপহরণ), অ্যাপ বর্তমান কোণ এবং বিচ্যুতি পরিমাপ করে। BlazePose 3D কোণ নির্ভুলতা ±3° প্রদান করে — ক্লিনিকাল মূল্যায়নের জন্য যথেষ্ট। ফ্রিকোয়েন্সি: প্রতি 3–5 সেকেন্ডে 1 ফ্রেম (ব্যাটারি সাশ্রয়)। অন-ডিভাইস — রোগীর চিকিৎসা ডেটার গোপনীয়তা। স্ট্রোক পরবর্তী পুনর্বাসন: হাত-থেকে-কাঁধ, কনুই-প্রসারণ, নিতম্ব-নমন ট্র্যাকিং।

AR ফিল্টার এবং প্রভাব — Pose Detection সামাজিক নেটওয়ার্ক (TikTok, Instagram, Snapchat) এ AR ফিল্টারের ভিত্তি। মাথা, কাঁধ এবং হাতের landmarks মাস্ক, অ্যানিমেশন, আলংকারিক উপাদান ওভারলে করার জন্য ব্যবহৃত হয়। MediaPipe BlazePose Full + Face Mesh (468 পয়েন্ট) ফ্ল্যাগশিপ ডিভাইসে 120+ FPS প্রদান করে। ARKit/ARCore Face Tracking + Pose Detection — পূর্ণ-শরীর AR এর জন্য একটি সমন্বয়। প্রয়োজনীয়তা: FPS > 30, motion-to-photon লেটেন্সি < 20 ms।

swift
// ভঙ্গি landmarks সহ AR ফিল্টার
let request = VNDetectHumanBodyPoseRequest { req, _ in
    guard let observation = req.results?.first as? VNHumanBodyPoseObservation else { return }
    let keypoints = try observation.recognizedPoints(.all)
    let rightShoulder = keypoints[VNHumanBodyPoseObservation.JointName.rightShoulder]
    DispatchQueue.main.async {
        arView.placeFilter(at: rightShoulder?.location ?? .zero)
    }
}

ক্রীড়া বিশ্লেষণ — পেশাদার কৌশল মূল্যায়ন: দৌড়ের বায়োমেকানিকাল বিশ্লেষণ (ক্যাডেন্স, স্ট্রাইড দৈর্ঘ্য, বাহু দোলনের সমতা), সাঁতার (বডি রোল, স্ট্রোকের সময় কনুই কোণ), টেনিস (কাঁধ ঘূর্ণন, কব্জি স্ন্যাপ)। MoveNet Thunder পোস্ট-প্রসেসিং সহ অ-পেশাদার বিশ্লেষণের জন্য যথেষ্ট নির্ভুলতা প্রদান করে। পেশাদার ক্রীড়ায় 3D মোশন ক্যাপচার (Vicon, OptiTrack) প্রয়োজন, কিন্তু ফোন-ভিত্তিক PoseDetection গণবাজারের জন্য একটি সাশ্রয়ী বিকল্প। ফ্রেমের মধ্যে কোণ সিঙ্ক্রোনাইজেশন একটি মূল উপাদান।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

ক্যামেরা কাঁপলে Pose Detection কীভাবে স্থিতিশীল করবেন?

টেম্পোরাল স্মুথিং ব্যবহার করুন: One Euro Filter (1€ ফিল্টার) — প্রতিটি landmark এর জন্য আলাদাভাবে কনফিগারযোগ্য কাট-অফ ফ্রিকোয়েন্সি, বাস্তব গতি (কম লেটেন্সি) সংরক্ষণ করে উচ্চ-ফ্রিকোয়েন্সি শব্দ (কাঁপুনি) দমন করে। MediaPipe BlazePose এ বিল্ট-ইন HED (Holt Exponential Double Smoothing) অন্তর্ভুক্ত — গতি পূর্বাভাস সহ অভিযোজিত স্মুথিং। ML Kit এর জন্য, 1€ ফিল্টার নিজেই বাস্তবায়ন করুন: ফিল্টারের দুটি প্যারামিটার রয়েছে — beta (গতি) এবং minCutoff (ফ্রিকোয়েন্সি থ্রেশহোল্ড)। প্রস্তাবিত: beta = 0.04, minCutoff = 0.5 (Android)।

Pose Detection একটি ফ্রেমে কতজন লোক সনাক্ত করতে পারে?

ML Kit Pose Detection — একজন ব্যক্তি (সিঙ্গেল-পোজ)। MoveNet Lightning — 6 জন পর্যন্ত (মাল্টি-পোজ)। MediaPipe BlazePose — MediaPipe Tasks এর মাধ্যমে 2–3 জন পর্যন্ত (মাল্টি-পোজ)। গ্রুপ কার্যকলাপ অ্যাপের জন্য, MoveNet Lightning বা BlazePose ব্যবহার করুন। একজন ব্যবহারকারীর সাথে ফিটনেস অ্যাপের জন্য — ML Kit (সহজ একীকরণ, উচ্চ সিঙ্গেল-পোজ নির্ভুলতা)। AR ফিল্টার সহ ভিডিও কলের জন্য — মাল্টি-পোজ (উচ্চ FPS) সহ BlazePose Lite যথেষ্ট।

ভঙ্গি শ্রেণীবিভাগের জন্য হাড়ের মধ্যে কোণ কীভাবে গণনা করবেন?

দুটি হাড়ের মধ্যে কোণ: তিনটি landmarks নিন — জয়েন্ট A, জয়েন্ট B (কোণের শীর্ষ), জয়েন্ট C। ভেক্টর BA = (A - B) এবং BC = (C - B) গণনা করুন। কোণ = atan2(cross(BA, BC), dot(BA, BC))। Math.toDegrees(acos(dot(BA, BC) / (len(BA) * len(BC))))। কোণ 0–180° রেঞ্জে। ত্রি-মাত্রিক স্থানাঙ্কের (BlazePose 3D) জন্য Vector3D ব্যবহার করুন। ML শ্রেণীবিভাগকারীর জন্য কোণগুলিকে [0,1] রেঞ্জে স্বাভাবিকীকরণ করুন।

একসাথে উভয় হাত ট্র্যাক করা যায়?

হ্যাঁ, সমস্ত প্রধান মডেল (ML Kit, BlazePose, MoveNet) একসাথে উভয় হাতের landmarks সনাক্ত করে: LEFT_SHOULDER, LEFT_ELBOW, LEFT_WRIST, RIGHT_SHOULDER, RIGHT_ELBOW, RIGHT_WRIST। অতিরিক্ত হাত ট্র্যাকিংয়ের জন্য, Pose Detection + Hand Landmarker (প্রতি হাতে 21 পয়েন্ট) একত্রিত করুন। MediaPipe Hands + BlazePose পূর্ণ-শরীর + হাতের জন্য মানক সমন্বয়। iOS এ — VNDetectHumanHandPoseRequest + VNDetectHumanBodyPoseRequest।

Pose Detection এর জন্য ফ্রেমে ব্যক্তির ন্যূনতম আকার কত?

ML Kit Pose Detection: ন্যূনতম ব্যক্তি বাউন্ডিং বক্স — 100x100 পিক্সেল (আকৃতি অনুপাত ~1:1)। MoveNet Lightning: 120x120 পিক্সেল। BlazePose: 80x160 পিক্সেল (উল্লম্ব বাউন্ডিং বক্স)। ক্যামেরা থেকে 3 মিটার দূরত্বে পূর্ণ-উচ্চতার ব্যক্তির জন্য (1920x1080) — প্রায় 250x600 px, যা যথেষ্ট। > 5 মিটার দূরত্বে, নির্ভুলতা কমে যায় — মাল্টি-পোজ + উচ্চ-রেজোলিউশন ইনপুট ব্যবহার করুন। দূরবর্তী বস্তুর জন্য, Object Detection + Pose Estimation (দ্বি-পর্যায়) ভাল।

সারাংশ

  • Pose Detection — 91–96% PCK নির্ভুলতা সহ 17–33 দেহের মূল পয়েন্ট সনাক্তকরণ
  • ML Kit Pose Detection — 33 landmarks, 30 FPS পর্যন্ত, সরল API, GPU/ANE তে
  • BlazePose (MediaPipe) — 33 landmarks + 3D, 60 FPS পর্যন্ত, ক্রস-প্ল্যাটফর্ম
  • MoveNet Lightning/Thunder — 17 COCO keypoints, 30+ FPS, TFLite, মাল্টি-পোজ
  • Pose Classification — রুল-বেসড বা ML এর মাধ্যমে landmarks থেকে কর্ম পর্যন্ত
  • অন-ডিভাইস — গোপনীয়তা, রিয়েল-টাইম, 3 ms–30 ms লেটেন্সি
  • প্রয়োগ — ফিটনেস, পুনর্বাসন, AR ফিল্টার, ক্রীড়া বিশ্লেষণ

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন