יישום מעקב ידיים ביישומי AR
מעקב ידיים — מעקב ללא סמנים אחר ידיים ואצבעות באמצעות מצלמה. ממשקי AR בשליטה עצמית, כלי נגינה וירטואליים, יישומי אימון כירורגיים או מכניים — בכל מקום שבו הידיים הופכות לבקר, נדרש זיהוי מדויק של 21 מפרקים לכל יד. מאתגר טכנית: תנועות מהירות, חסימת אצבעות, אובדן מעקב בתאורה חלשה. הניסיון שלנו של 5+ שנים ו-30+ פרויקטי AR שסופקו מאפשרים לפתור בעיות אלו עם פתרונות מקוריים ופלטפורמות חוצות, תוך הפחתת עלויות פיתוח בעד 40% על ידי ניצול ספריות מוכנות. אנו מבטיחים ביצועים יציבים ומספקים תעודת התאמה עם המסירה.
מדוע מעקב ידיים מורכב טכנית?
לכל יד יש 21 מפרקים (ב-MediaPipe) או 26 (ב-ARKit) שיש לעקוב אחריהם בזמן אמת עם חביון נמוך. בעיות: חסימה עצמית (צביטה כשהאגודל חופף לאצבע), אובדן מעקב בתאורה חלשה (<200 לוקס), ועומס GPU גבוה. פתרונות מודרניים משלבים למידת מכונה ואלגוריתמים גיאומטריים ללכידה יציבה.
נוף הפלטפורמות: iOS ואנדרואיד
iOS: מאז גרסאות iOS האחרונות, ARKit Hand Tracking מספק API ציבורי עם 26 מפרקים. עבור מעקב ידיים ב-iOS, זו הבחירה המקורית. אנדרואיד: ARCore חסר מעקב ידיים, ולכן MediaPipe Hands עם 21 מפרקים הפך לסטנדרט, ועובד גם ב-iOS לעקביות חוצת פלטפורמות. עבור מעקב ידיים באנדרואיד, MediaPipe הוא הסטנדרט. שניהם מתמודדים עם חסימת אצבעות באמצעות גישת 2.5D: תחילה זיהוי תיבה תוחמת, ולאחר מכן חידוד מפרקים. ARKit מנצל עומק LiDAR במכשירי Pro לדיוק טוב יותר; MediaPipe משתמש רק ב-RGB. המומחיות שלנו כוללת סיווג מחוות ידיים באמצעות מודלי ML מותאמים אישית ליישומים שונים. מאמר זה דן ביישומי מעקב ידיים ב-AR ובשירותי פיתוח AR.
יישום מעקב ידיים ב-iOS (Swift)
// Последние версии iOS, RealityKit
let session = ARKitSession()
let handTrackingProvider = HandTrackingProvider()
Task {
try await session.run([handTrackingProvider])
for await update in handTrackingProvider.anchorUpdates {
let handAnchor = update.anchor
guard handAnchor.isTracked else { continue }
// Позиция кончика указательного пальца
if let indexTip = handAnchor.skeleton.joint(named: .indexFingerTip) {
let worldTransform = handAnchor.originFromAnchorTransform * indexTip.anchorFromJointTransform
// Привязать объект к кончику пальца
}
}
} מתי מעקב ידיים של MediaPipe מוצדק?
MediaPipe Hands הוא חינמי, חוצה פלטפורמות, ומתאים למכשירים ישנים יותר או לקוד בסיס אחיד. דוגמה ב-Kotlin:
// Android
val handLandmarker = HandLandmarker.createFromOptions(
context,
HandLandmarkerOptions.builder()
.setBaseOptions(
BaseOptions.builder()
.setModelAssetPath("hand_landmarker.task")
.build()
)
.setNumHands(2)
.setMinHandDetectionConfidence(0.5f)
.setMinTrackingConfidence(0.5f)
.build()
)
val result = handLandmarker.detect(mpImage)
// result.landmarks() — List<List<NormalizedLandmark>>
// 21 точка на каждую руку в нормализованных координатах [0..1]
21 מפרקים ב-MediaPipe: WRIST, THUMB_CMC .. THUMB_TIP, INDEX_FINGER_MCP .. INDEX_FINGER_TIP, ובאופן דומה לאצבעות אחרות. לחיבור AR בתלת-ממד: קואורדינטות 2D מנורמלות → ביטול השלכה דרך פרמטרי מצלמה + עומק.
השוואה: ARKit לעומת MediaPipe
| קריטריון | ARKit Hand Tracking | MediaPipe Hands |
|---|---|---|
| פלטפורמות | iOS, visionOS | iOS, אנדרואיד |
| מספר מפרקים | 26 | 21 |
| חביון (iPhone 15) | 15-20 אלפיות שנייה | 20-30 אלפיות שנייה (iOS) |
| חביון (אנדרואיד בינוני) | — | 35-45 אלפיות שנייה |
| חינמי | כן (חלק מהפלטפורמה) | כן |
| דיוק בחסימה | גבוה יותר | נמוך יותר |
ARKit עולה משמעותית על MediaPipe בחביון (15-20 אלפיות שנייה לעומת 35-45 אלפיות שנייה), מה שהופך אותו לטוב יותר ליישומי זמן אמת.
בחירה בין ARKit ל-MediaPipe
אם היעד שלך הוא iOS בלבד, השתמש ב-ARKit לביצועים הטובים ביותר. עבור חוצה פלטפורמות, MediaPipe מפחית כפילות קוד למרות חביון גבוה יותר.זיהוי מחוות ואינטראקציה עם אובייקטים
מחוות בסיסיות ללא ML: צביטה (מרחק אגודל-אצבע < סף), כף יד פתוחה (קצות אצבעות מעל MCP), אגרוף (קצות אצבעות מתחת ל-MCP), סימן ניצחון (אצבע ואמה למעלה). מחוות מורכבות (אלפבית ASL) דורשות מודלים מותאמים אישית של CreateML או TensorFlow Lite. לאינטראקציה עם אובייקטים: הקרנת קרניים מהאצבע/כף היד לאיסוף, צביטה לאחיזה, שחרור להנחה. שתי ידיים מאפשרות קנה מידה וסיבוב. סימולציה כירורגית משתמשת בהתנגשויות קצות אצבעות.
מגבלות ושיקולים בעולם האמיתי
חסימת אצבעות נותרה מאתגרת; שני המסגרות משתמשות ב-2.5D. תאורה חלשה (<200 לוקס) מפחיתה ביטחון. חביון: MediaPipe באנדרואיד בינוני 35-45 אלפיות שנייה, ARKit ב-iPhone 15-20 אלפיות שנייה. לכלי נגינה, ההבדל מורגש. בדוק בתנאים מגוונים.
תוכנית יישום ולוחות זמנים
- ניתוח דרישות ובחירת פלטפורמה.
- שילוב ספריה והגדרה.
- פיתוח לוגיקת מחוות.
- יישום אינטראקציה עם אובייקטי AR.
- בדיקה על מכשירים אמיתיים.
- אופטימיזציית ביצועים.
מעקב ידיים בסיסי עם זיהוי מחוות צביטה/כף פתוחה ב-iOS: 1 עד 2 שבועות. חוצה פלטפורמות ב-MediaPipe: 2 עד 3 שבועות. מסווג מחוות מותאם אישית: 2-3 שבועות נוספים. אינטראקציה אינטראקטיבית יד-אובייקט: 2-4 שבועות נוספים. עלות מוערכת בנפרד, החל מ-$8,000 ליישום בסיסי. עלות פרויקט טיפוסית נעה בין $8,000 ל-$20,000 בהתאם למורכבות. עם 5+ שנים ב-AR ו-30+ פרויקטים, אנו מבטיחים איכות ועמידה בלוחות זמנים.
מה כלול ביישום שלנו
- תיעוד טכני והתייחסות API
- גישה לקוד מקור ולבקרת גרסאות
- הדרכת מפתחים (עד 4 שעות)
- 30 ימי תמיכה לאחר השקה
- דוח אופטימיזציית ביצועים ובדיקות
אמון: אנו מספקים ערבות למעקב יציב והסמכה לעמידה בתקני התעשייה. הניסיון שלנו מפחית סיכונים ומאיץ את זמן ההגעה לשוק שלך.







