การตรวจจับท่าทาง

ML Kit Pose Detection API เป็นโซลูชันอเนกประสงค์น้ำหนักเบาสำหรับให้นักพัฒนาแอปใช้ตรวจจับท่าทางของร่างกายในแบบเรียลไทม์จากวิดีโอต่อเนื่องหรือภาพนิ่ง ท่าทางอธิบายตำแหน่งของร่างกาย ณ ช่วงเวลาหนึ่งพร้อมกับชุดจุดที่เป็นรูปโครงกระดูก จุดสังเกตต่างๆ สอดคล้องกับส่วนต่างๆ ของร่างกาย เช่น ไหล่และสะโพก การใช้ตำแหน่งเปรียบเทียบของจุดสังเกตสามารถใช้แยกท่าทางต่างๆ ออกจากกัน

iOS Android

การตรวจจับท่าทางของ ML Kit สร้างการจับคู่แบบโครงร่าง 33 จุดทั้งร่างกายซึ่งรวมถึงจุดสังเกตบนใบหน้า (หู ตา ปาก และจมูก) รวมถึงจุดบนมือและเท้า รูปที่ 1 ด้านล่างแสดงจุดสังเกตเมื่อมองผู้ใช้ผ่านกล้อง จึงเป็นภาพสะท้อน ด้านขวาของผู้ใช้จะปรากฏทางด้านซ้ายของรูปภาพ

รูปที่ 1 จุดสังเกต

การตรวจจับท่าทางของ ML Kit ไม่จำเป็นต้องใช้อุปกรณ์พิเศษหรือความเชี่ยวชาญด้าน ML เพื่อผลลัพธ์ที่ยอดเยี่ยม เทคโนโลยีนี้ช่วยให้นักพัฒนาสามารถสร้างประสบการณ์ ที่ไม่เหมือนใครสำหรับผู้ใช้ด้วยโค้ดเพียงไม่กี่บรรทัด

ต้องมีใบหน้าของผู้ใช้เพื่อตรวจจับท่าทาง การตรวจจับท่าทางทำงานได้ดีที่สุดเมื่อมองเห็นร่างกายทั้งตัวในเฟรม แต่ก็ยังตรวจจับท่าทางบางส่วนของร่างกายได้ ในกรณีนี้ ระบบจะกำหนดพิกัดที่ไม่รู้จักให้กับจุดสังเกตนอกรูปภาพ

ความสามารถหลัก

  • การสนับสนุนข้ามแพลตฟอร์ม ใช้งานได้เหมือนเดิมทั้งบน Android และ iOS
  • การติดตามทั้งตัว โมเดลนี้จะแสดงจุดสำคัญที่เป็นโครงกระดูก 33 จุด รวมถึงตำแหน่งของมือและเท้า
  • คะแนน InFrameLikelihood สำหรับจุดสังเกตแต่ละรายการ เป็นการวัดที่แสดงถึงความน่าจะเป็นที่จุดสังเกตอยู่ในเฟรมรูปภาพ คะแนนมีช่วงตั้งแต่ 0.0 ถึง 1.0 โดย 1.0 หมายถึงมีความมั่นใจสูง
  • SDK ที่เพิ่มประสิทธิภาพ 2 แบบ SDK พื้นฐานทำงานแบบเรียลไทม์ในโทรศัพท์รุ่นใหม่อย่าง Pixel 4 และ iPhone X โดยจะแสดงผลลัพธ์ที่อัตราประมาณ 30 และ ~45 FPS ตามลำดับ อย่างไรก็ตาม ความแม่นยำของพิกัดจุดสังเกตอาจแตกต่างกันไป SDK ที่ถูกต้องจะแสดงผลลัพธ์ในอัตราเฟรมที่ช้าลง แต่สร้างค่าพิกัดที่แม่นยำยิ่งขึ้น
  • Z ประสานงานสำหรับการวิเคราะห์ความลึก ค่านี้ช่วยระบุได้ว่าส่วนต่างๆ ของร่างกายของผู้ใช้อยู่ด้านหน้าหรือด้านหลังสะโพกของผู้ใช้ สำหรับข้อมูลเพิ่มเติม โปรดดูหัวข้อพิกัด Z ด้านล่าง

Pose Detection API นั้นคล้ายกับ Facial Recognition API ตรงที่จะแสดงชุดจุดสังเกตและตำแหน่งของจุดดังกล่าว อย่างไรก็ตาม แม้ว่าการตรวจจับใบหน้าจะพยายามจดจำฟีเจอร์ต่างๆ เช่น ปากที่กำลังยิ้มหรือตาอ้าตาอยู่ การตรวจจับท่าทางไม่ได้แนบความหมายใดๆ ไว้กับจุดสังเกตในท่าทางหรือการโพสท่านั้น คุณสามารถสร้างอัลกอริทึมของคุณเอง เพื่อตีความท่าทาง โปรดดูตัวอย่างในเคล็ดลับการจัดประเภทท่าทาง

การตรวจหาท่าทางจะตรวจจับบุคคลในรูปภาพได้เพียง 1 คนเท่านั้น หากมี 2 คนอยู่ในรูปภาพ โมเดลจะกำหนดจุดสังเกตให้กับบุคคลที่ตรวจพบด้วยความมั่นใจสูงสุด

พิกัด Z

พิกัด Z เป็นค่าทดลองที่คำนวณสำหรับจุดสังเกตทุกแห่ง ซึ่งจะวัดเป็น "พิกเซลภาพ" เช่น พิกัด X และ Y แต่ไม่ใช่ค่า 3 มิติที่แท้จริง แกน Z ตั้งฉากกับกล้องและข้ามระหว่างสะโพกของวัตถุ จุดเริ่มต้นของแกน Z คือจุดศูนย์กลางระหว่างสะโพก (ซ้าย/ขวาและด้านหน้า/ด้านหลังสัมพันธ์กับกล้อง) ค่าลบ Z จะอยู่ใกล้กับกล้อง ส่วนค่าบวกจะอยู่นอกค่า พิกัด Z ไม่มีขอบเขตบนหรือล่าง

ผลลัพธ์ตัวอย่าง

ตารางต่อไปนี้แสดงพิกัดและ InFrameLikelihood สำหรับจุดสังเกตบางรายการในโพสทางด้านขวา โปรดทราบว่าพิกัด Z สำหรับมือซ้ายของผู้ใช้เป็นค่าลบ เนื่องจากพิกัดดังกล่าวอยู่ด้านหน้าตรงกลางของสะโพกและหันเข้าหากล้อง

สถานที่สำคัญTypeอันดับInFrameLikelihood
11LEFT_SHOULDER(734.9671, 550.7924, -118.11934)0.9999038
12 RIGHT_SHOULDER (391.27032, 583.2485, -321.15836) 0.9999894
13 LEFT_ELBOW (903.83704, 754.676, -219.67009) 0.9836427
14 RIGHT_ELBOW (322.18152, 842.5973, -179.28519) 0.99970156
15 LEFT_WRIST (1073.8956, 654.9725, -820.93463) 0.9737737
16 RIGHT_WRIST (218.27956, 1015.70435, -683.6567) 0.995568
17 LEFT_PINKY (1146.1635, 609.6432, -956.9976) 0.95273364
18 RIGHT_PINKY (176.17755, 1065.838, -776.5006) 0.9785348

กลไกภายใน

ดูรายละเอียดเพิ่มเติมเกี่ยวกับการใช้งานโมเดล ML ที่สำคัญสำหรับ API นี้ได้ที่บล็อกโพสต์ AI ของ Google

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับแนวทางปฏิบัติด้านความเป็นธรรมของ ML และวิธีฝึกโมเดล โปรดดูการ์ดโมเดล