Pose Detection: คืออะไร โมเดลและหลักการทำงาน

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-07-19 เวลาอ่าน: 9 นาที

Pose Detection เป็นเทคโนโลยีคอมพิวเตอร์วิทัศน์ที่กำหนดตำแหน่งของร่างกายมนุษย์โดยใช้จุดสำคัญ (landmarks): ศีรษะ, ไหล่, ข้อศอก, ข้อมือ, สะโพก, หัวเข่า, ข้อเท้า แต่ละจุดมีพิกัด (x, y) ในพื้นที่ 2D และโมเดลขั้นสูง (MediaPipe BlazePose 3D) เพิ่มพิกัด z สำหรับความลึก ในแอปพลิเคชันมือถือ Pose Detection ถูกใช้ในตัวติดตามฟิตเนส, แอปโยคะ, ฟิลเตอร์ AR, โปรแกรมฟื้นฟูสมรรถภาพ และระบบวิเคราะห์กีฬา ตามข้อมูลจาก Google ML Kit, 2025, Pose Detection บนอุปกรณ์ประมวลผลได้ถึง 30 เฟรมต่อวินาทีด้วยความแม่นยำ 94% PCK

ประเด็นสำคัญ

  • Pose Detection — การระบุจุดสำคัญของร่างกาย (landmarks) จากภาพ
  • ML Kit Pose Detection — 33 จุดอ้างอิง, 30 FPS, ความแม่นยำ 94% PCK
  • MediaPipe BlazePose — 33 จุดอ้างอิง + 3D, สูงสุด 60 FPS บน GPU
  • MoveNet Lightning — 17 จุดสำคัญ (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 คำนวณสัดส่วนของจุดที่ทำนายภายในระยะห่างจาก ground truth (ปกติ 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 — เมทริกมาตรฐานสำหรับเกณฑ์วัด

โมเดลจุดอ้างอิงPCK@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

การมองเห็นจุดสำคัญ: แต่ละ landmark มีคะแนน (0..1) ที่บ่งชี้ว่าโมเดลมั่นใจในจุดนั้นเพียงใดและมองเห็นได้หรือไม่ จุดที่มีคะแนน < 0.5 ถือว่ามองไม่เห็น (ถูกบดบัง, อยู่นอกเฟรม) สำหรับการวิเคราะห์ท่าทาง ให้ใช้เฉพาะจุดที่มองเห็นเท่านั้น สำหรับการประเมินการจัดแนว — คำนวณระยะทางที่ถ่วงน้ำหนักด้วยความเชื่อมั่น โดยจุดที่มีคะแนนต่ำจะมีน้ำหนักน้อยกว่าในเมทริก

ML Kit Pose Detection บน Android และ iOS

ML Kit Pose Detection — ไลบรารีจาก Google สำหรับการตรวจจับท่าทางบนอุปกรณ์ รองรับ 33 จุดอ้างอิง รวมถึงจุดบนใบหน้า, นิ้วเท้าและส้นเท้า โหมด: Accurate Mode (โมเดล 14 MB, 15–30 ms, ความแม่นยำสูง) และ Streaming Mode (5 MB, 5–10 ms, สำหรับเวลาจริง) Streaming Mode ใช้โมเดลน้ำหนักเบาพร้อมการติดตาม — หลังจากเฟรมแรก จะติดตามการเคลื่อนไหวโดยไม่ตรวจจับตำแหน่งที่แน่นอนซ้ำ ทำให้ได้สูงสุด 60 FPS

API ของ ML Kit Pose Detection: PoseDetector (ตัวเลือก: setDetectorMode, setPerformanceMode) → InputImage → Pose (List<PoseLandmark>) แต่ละ PoseLandmark มี: landmarkType (38 ชนิด), position (PointF3D), inFrameLikelihood (0..1) Pose ยังให้: boundingBox ของบุคคล, รายการ landmarks, เมธอด getLandmark(type) สำหรับการจำแนกท่าทาง ให้ใช้มุมระหว่างกระดูก: shoulderAngle, elbowAngle, hipAngle — คำนวณผ่าน Vector3D ระหว่าง landmarks ที่อยู่ติดกัน

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
        )
    }

ML Kit บน iOS: Pose Detection พร้อมใช้งานผ่าน ML Kit CocoaPods API เหมือนกับ Android: PoseDetector → UIImage → Pose → PoseLandmark บน iOS ML Kit ใช้ Core ML และ ANE (A12+) ทำให้มีความหน่วง 10–20 ms ในโหมด Accurate Mode บน iPhone 15 Pro Streaming Mode — 3–8 ms, สูงสุด 120 FPS บน iOS ML Kit Pose Detection เร็วกว่า MediaPipe BlazePose (การเร่ง Core ML) แต่ด้อยกว่า BlazePose ในด้าน FPS บนอุปกรณ์รุ่นเก่า (iPhone X–11)

MediaPipe BlazePose: สถาปัตยกรรมและ 3D

MediaPipe BlazePose — โมเดลประสิทธิภาพสูงสำหรับ Pose Detection จาก Google Research ใช้สถาปัตยกรรมแบบไฮบริด: ท่อส่ง detector-decoder บนพื้นฐาน MobileNetV2 + Feature Pyramid Network BlazePose Full: 33 จุดอ้างอิง + พิกัด 3D (ความลึก z) BlazePose Lite: 33 จุดอ้างอิง (2D) ไม่มีความลึก ทั้งสองโมเดลพร้อมใช้งานใน MediaPipe Tasks Vision บน Android, iOS, Python และ Web BlazePose Full ประมวลผล 30–60 FPS บน GPU, Lite — 60+ FPS

การประมาณท่าทาง 3D ด้วย BlazePose: โมเดลทำนายพิกัด z สำหรับแต่ละ landmark ทำให้สามารถประมาณความลึก (การเข้าใกล้/ถอยห่างของแขนขา) โดยไม่ต้องใช้กล้องสเตอริโอ พิกัด z คำนวณในพื้นที่เมตริก (เมตร) สัมพันธ์กับกล้อง ความแม่นยำของ BlazePose 3D: 37 มม. 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: Lightning และ Thunder โดย TensorFlow

MoveNet — ตระกูลโมเดล Pose Detection จาก TensorFlow ที่ปรับให้เหมาะสมสำหรับ TFLite Lightning (8 MB, INT8 — 4 MB): 17 จุดสำคัญ COCO, 91% PCK, เวลาแฝง 8–15 ms, 30+ FPS Thunder (13 MB, INT8 — 6 MB): 17 จุดสำคัญ, 95% PCK, เวลาแฝง 25–40 ms, 20+ FPS MoveNet ใช้สถาปัตยกรรม CenterNet + การประมาณค่าแบบทวิภาคสำหรับแผนที่ความร้อนความละเอียดสูง MoveNet รองรับการตรวจจับหลายท่าทาง (สูงสุด 6 คน) โมเดลพร้อมใช้งานบน TensorFlow Hub

MoveNet Lightning เทียบกับ Thunder: Lightning — สำหรับแอปพลิเคชันเวลาจริงที่มี FPS สูง (ฟิตเนส, ฟิลเตอร์ AR) Thunder — สำหรับการวิเคราะห์ท่าทางที่แม่นยำ (การฟื้นฟูสมรรถภาพ, การวิเคราะห์กีฬา) บนอุปกรณ์ที่มี GPU ทั้งสองโมเดลแปลงเป็น Core ML ผ่าน tf-coreml สำหรับ iOS MoveNet ยังพร้อมใช้งานผ่าน API TFLite Task Vision PoseLandmarker คำแนะนำ: เริ่มต้นด้วย Lightning หากความแม่นยำไม่เพียงพอ — เปลี่ยนเป็น Thunder (ค่าใช้จ่ายเวลาแฝงเพิ่มเพียง +15 ms)

java
// การอนุมาน MoveNet ด้วย TFLite
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 ใช้การตรวจจับบุคคล + การปรับแต่งท่าทาง: ขั้นแรกตรวจจับบุคคล (แบบ centroid-based) จากนั้นประมาณท่าทางแต่ละคน โหมดหลายท่าทางช้ากว่าโหมดเดี่ยว 2–3 เท่า: Lightning — 25–50 ms (6 คน) สำหรับแอปฟิตเนสที่มีผู้ใช้คนเดียว ให้ใช้โหมดเดี่ยว สำหรับกิจกรรมกลุ่ม (โยคะ, ครอสฟิต) — หลายท่าทางพร้อมจำกัดอัตราเฟรมเพื่อประหยัดแบตเตอรี่

การจำแนกท่าทาง: จากจุดสู่การกระทำ

Pose Classification — ขั้นตอนหลังการตรวจจับ: การแปลง landmarks ไปสู่การกระทำเชิงความหมาย (ยืน, นั่ง, ยกมือ, หมอบ) วิธีการ: Rule-based (กฎ manual — มุมระหว่างกระดูก), ML-based (การถดถอยโลจิสติกหรือ Random Forest บนเวกเตอร์ landmark), DL-based (ตัวจำแนก LSTM ของลำดับท่าทางข้ามเฟรม) Rule-based — ความแม่นยำ 50–80%, ง่ายและรวดเร็ว ML-based — ความแม่นยำ 85–95% ด้วยตัวอย่างที่มีป้ายกำกับ 200+ ตัวอย่าง 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) สำหรับการเปลี่ยนผ่านระหว่างท่าทางอย่างราบรื่น สำหรับการกระทำที่กำหนดเอง — ฝึกตัวจำแนกด้วย 100–500 ตัวอย่างผ่าน MediaPipe Model Maker (TensorFlow Lite + ข้อมูลเมตา)

การประยุกต์ใช้ Pose Detection ในฟิตเนสและการฟื้นฟูสมรรถภาพ

ตัวติดตามฟิตเนสพร้อมการแก้ไขเทคนิค — แอปวิเคราะห์ท่าทางของผู้ใช้ระหว่างการออกกำลังกายและให้คำแนะนำด้วยเสียง: “ลดสะโพกลง”, “อย่าเอนลำตัวไปข้างหน้า” ML Kit Pose Detection + ตัวจำแนกตามกฎนับจำนวนครั้งและประเมินคุณภาพ สควอท: มุมเข่า < 90° — สควอทถูกต้อง, มุมหลัง < 45° — การเอียงลำตัวที่เป็นอันตราย วิดพื้น: มุมข้อศอก < 90° ที่จุดต่ำสุด — วิดพื้นเต็มที่ ดึงข้อ: คางเหนือระดับบาร์

การฟื้นฟูสมรรถภาพและกายภาพบำบัด — Pose Detection ใช้สำหรับการติดตามระยะไกลของการออกกำลังกายกายภาพบำบัด แพทย์กำหนดท่าอ้างอิง (เช่น การกางไหล่ที่ 45°), แอปวัดมุมปัจจุบันและค่าเบี่ยงเบน BlazePose 3D ให้ความแม่นยำของมุม ±3° — เพียงพอสำหรับการประเมินทางคลินิก ความถี่: 1 เฟรมต่อ 3–5 วินาที (ประหยัดแบตเตอรี่) บนอุปกรณ์ — ความเป็นส่วนตัวของข้อมูลทางการแพทย์ของผู้ป่วย การฟื้นฟูหลังโรคหลอดเลือดสมอง: การติดตาม มือ-ถึง-ไหล่, การเหยียดข้อศอก, การงอสะโพก

ฟิลเตอร์ AR และเอฟเฟกต์ — Pose Detection เป็นพื้นฐานของฟิลเตอร์ AR ในโซเชียลเน็ตเวิร์ก (TikTok, Instagram, Snapchat) จุดอ้างอิงของศีรษะ, ไหล่และมือใช้สำหรับซ้อนทับหน้ากาก, อนิเมชัน, องค์ประกอบตกแต่ง MediaPipe BlazePose Full + Face Mesh (468 จุด) ให้ 120+ FPS บนอุปกรณ์เรือธง ARKit/ARCore Face Tracking + Pose Detection — การรวมกันสำหรับ AR เต็มตัว ข้อกำหนด: FPS > 30, เวลาแฝง motion-to-photon < 20 ms

swift
// ฟิลเตอร์ 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) แต่ Pose Detection บนโทรศัพท์เป็นทางเลือกที่ประหยัดสำหรับตลาดมวลชน การซิงโครไนซ์มุมระหว่างเฟรมเป็นองค์ประกอบสำคัญ

คำถามที่พบบ่อย

จะทำให้ 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 — สูงสุด 2–3 คนผ่าน MediaPipe Tasks (หลายท่าทาง) สำหรับแอปกิจกรรมกลุ่ม ให้ใช้ MoveNet Lightning หรือ BlazePose สำหรับแอปฟิตเนสที่มีผู้ใช้คนเดียว — ML Kit (บูรณาการง่ายกว่า, ความแม่นยำโหมดเดี่ยวสูงกว่า) สำหรับการโทรวิดีโอด้วยฟิลเตอร์ AR — BlazePose Lite แบบหลายท่าทาง (FPS สูง) เพียงพอ

จะคำนวณมุมระหว่างกระดูกเพื่อจำแนกท่าทางได้อย่างไร?

มุมระหว่างกระดูกสองชิ้น: นำสาม 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 ทำให้มุมเป็นปกติในช่วง [0,1] สำหรับตัวจำแนก ML

สามารถติดตามมือทั้งสองข้างพร้อมกันได้หรือไม่?

ใช่ โมเดลหลักทั้งหมด (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 — การระบุ 17–33 จุดสำคัญของร่างกายด้วยความแม่นยำ 91–96% PCK
  • ML Kit Pose Detection — 33 จุดอ้างอิง, สูงสุด 30 FPS, API ง่าย, บน GPU/ANE
  • BlazePose (MediaPipe) — 33 จุดอ้างอิง + 3D, สูงสุด 60 FPS, ข้ามแพลตฟอร์ม
  • MoveNet Lightning/Thunder — 17 จุดสำคัญ COCO, 30+ FPS, TFLite, หลายท่าทาง
  • Pose Classification — จาก landmarks สู่การกระทำผ่านกฎหรือ ML
  • บนอุปกรณ์ — ความเป็นส่วนตัว, เวลาจริง, เวลาแฝง 3 ms–30 ms
  • การประยุกต์ใช้ — ฟิตเนส, การฟื้นฟูสมรรถภาพ, ฟิลเตอร์ AR, การวิเคราะห์กีฬา

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม