שילוב ARKit ב-iOS: מעקב, חסימה, מעקב פנים

מציאות רבודה ב-iOS דורשת כיוונון מדויק של מעקב והסתרה, אחרת חוויית המשתמש קורסת. אנחנו בונים אינטגרציות ARKit ו-RealityKit, ומבטיחים ביצועים יציבים עם Face Tracking ו-LiDAR. הצוות שלנו מספק את הפרויקט במפתח מלא—מהקונספט ועד לתמיכה—מותאם לתרחיש שלך.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

אלה הם רק חלק מסוגי היישומים הניידים שאנו עובדים איתם, ולכל אחד מהם עשויים להיות מאפיינים ופונקציונליות ספציפיים משלו, המותאמים לצרכים ולמטרות הספציפיות של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
שילוב ARKit ב-iOS: מעקב, חסימה, מעקב פנים
מורכב
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

שילוב ARKit: ממעקב אחר תנועה ועד מעקב פנים

שילוב יעיל של ARKit דורש הבנה של מעקב, חסימה (Occlusion) ואיזון בין ביצועים. בניסיון שלנו, ARKit אינו רק הצבת אובייקטים תלת-ממדיים על המצלמה. זהו שילוב של סורק LiDAR, חיישן אינרציאלי חזותי (Visual Inertial Odometry) ומודלים של רשתות עצביות להבנת הסצנה. שימוש לא נכון מוביל למעקב לא יציב, חסימות שגויות וקריסות ARSession ברקע. להלן נפרט בעיות מרכזיות ופתרונות המבוססים על ניסיון עם פיתוח ARKit בפרויקטים אמיתיים.

מדוע המעקב נכשל בסצנות חשוכות?

המעקב מתדרדר בתאורה חלשה. ARWorldTrackingConfiguration בונה מפה מנקודות ייחוס — בחדרים חשוכים או על משטחים אחידים, המעקב יורד ל-ARCamera.TrackingState.limited(.insufficientFeatures). התעלמות ממצב זה מסוכנת: אם לא מבקשים מהמשתמש להאיר את הסצנה, העוגנים נסחפים והאובייקט התלת-ממדי "בורח". הגישה הנכונה היא להירשם ל-session(_:cameraDidChangeTrackingState:) ולהציג הוראות מתאימות.

האצת זיהוי משטחים

זיהוי משטחים כולל עיכוב. ARPlaneDetection.horizontal מוצא את הרצפה תוך 2–4 שניות בתאורה טובה. אם המשתמש מנסה להציב אובייקט מוקדם יותר, הוא מפספס. פתרון נפוץ: הפיכת זיהוי המשטחים לאופציונלי והוספת raycast נגד ARMeshAnchor עם LiDAR — באייפון 12 Pro ומעלה, זה נותן דיוק של כ-1 ס"מ ללא המתנה. השוואה: raycast יציב ב-40% יותר מ-hitTest המיושן ומהיר פי 10 במתן תוצאה.

מה עושים עם חסימה (Occlusion) ללא LiDAR?

חסימה דורשת LiDAR. ARView.environment.sceneUnderstanding.options עם .occlusion — רק במכשירים עם LiDAR (סדרת Pro מאייפון 12). באייפונים ללא LiDAR, האובייקט תמיד נשאר מעל העולם האמיתי. יש לבדוק ARWorldTrackingConfiguration.supportsSceneReconstruction(.mesh) בעת ההפעלה ולהוריד ביצועים בצורה חלקה: לבטל חסימה ולהשתמש בצללים שקופים למחצה.

הגדרת מעקב תמונות

ARImageTrackingConfiguration עם maximumNumberOfTrackedImages = 4 — ל-AR מבוסס סמנים. טעינת תמונות ייחוס מ-ARReferenceImage עם גודל פיזי. physicalWidth הוא קריטי — ARKit משתמש בו כדי לחשב מרחק וקנה מידה. גודל שגוי פירושו שהאובייקט יופיע במקום הלא נכון.

let referenceImage = ARReferenceImage(
    cgImage,
    orientation: .up,
    physicalWidth: 0.15 // 15 см в реальном мире
)
config.trackingImages = [referenceImage]

שימוש במעקב פנים עם ARKit

let referenceImage = ARReferenceImage( cgImage, orientation: .up, physicalWidth: 0.15 // 15 см в реальном мире ) config.trackingImages = [referenceImage] עובד רק במכשירים עם מצלמת TrueDepth (Face ID). הוא מספק 52 מקדמי blend shape דרך ARFaceTrackingConfiguration — מ-ARFaceAnchor.blendShapes ועד .jawOpen. זה מאפשר ניסוי וירטואלי, אווטארים ב-AR וזיהוי חיוניות (Liveness Detection).

func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) {
    guard let faceAnchor = anchors.first as? ARFaceAnchor else { return }
    let jawOpen = faceAnchor.blendShapes[.jawOpen]?.floatValue ?? 0
    // Управляем анимацией персонажа
}

שיפור ביצועי אפליקציות AR

ARKit + RealityKit מעמיסים גם על GPU וגם על CPU בו-זמנית. כלי אבחון: Xcode Reality Composer Pro לתצוגה מקדימה של סצנות, GPU Frame Capture לניתוח קריאות ציור, ו-Metal System Trace ב-Instruments לזיהוי "בועות" GPU.

צווארי בקבוק אופייניים:

  • USDZ עם יותר מ-100K פוליגונים במכשירים בינוניים — קצב הפריימים יורד ל-30 FPS.
  • מספר ModelEntity ללא instancing משכפל גיאומטריה בזיכרון (צריכת הזיכרון עולה ב-50%).
  • arView.renderOptions — השבתת .eyeBlinkLeft ו-func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) { guard let faceAnchor = anchors.first as? ARFaceAnchor else { return } let jawOpen = faceAnchor.blendShapes[.jawOpen]?.floatValue ?? 0 // Управляем анимацией персонажа } נותנת +15% FPS במכשירים ישנים.

השוואת תצורות מעקב

סוג מעקב תצורה דרישות מכשיר דיוק
מעקב עולם ARWorldTrackingConfiguration A9+ (אייפון 6s+) גבוה (עם LiDAR ~1 ס"מ)
מעקב תמונות ARImageTrackingConfiguration A9+ תלוי בסמן
מעקב פנים ARFaceTrackingConfiguration TrueDepth (Face ID) 52 blend shapes
מעקב גוף ARBodyTrackingConfiguration A12+ (אייפון XS+) שלד עם 19 מפרקים

אופטימיזציות ביצועים

אופטימיזציה רווח ב-FPS תנאים
השבתת Depth of Field +15% אייפון XR ומטה
השבתת Motion Blur +10% כל המכשירים
שימוש ב-instancing -50% זיכרון הרבה אובייקטים זהים

הצבת אובייקטים שלב אחר שלב

  1. התחלת סשן .disableDepthOfField עם .disableMotionBlur ו-ARWorldTrackingConfiguration מופעלים.
  2. המתנה ל-planeDetection או ביצוע raycast ממרכז המסך.
  3. יצירת environmentTexturing מתוצאת ה-raycast.
  4. טעינת מודל USDZ דרך session(_:didAdd:).
  5. יצירת ARAnchor המקושר לעוגן.
  6. הוספת ה-ModelEntity.loadModel לסצנה.

דוגמת קוד להצבה עם Raycast

let query = arView.makeRaycastQuery(
    from: arView.center,
    allowing: .estimatedPlane,
    alignment: .horizontal
)
if let query = query, let result = arView.session.raycast(query).first {
    let anchor = ARAnchor(name: "placed-object", transform: result.worldTransform)
    arView.session.add(anchor: anchor)
    let modelEntity = try! ModelEntity.loadModel(named: "model.usdz")
    let anchorEntity = AnchorEntity(anchor: anchor)
    anchorEntity.addChild(modelEntity)
    arView.scene.addAnchor(anchorEntity)
}

מה כולל שילוב ARKit

  • בדיקת דרישות ותאימות מכשירים (דגמי יעד, זמינות LiDAR).
  • תכנון ארכיטקטורת AR עם ירידה חלקה בביצועים במכשירים ישנים.
  • פיתוח ליבת AR: סשן, עוגנים, זיהוי משטחים/תמונות/פנים.
  • שילוב תוכן תלת-ממדי: המרה ל-USDZ, הגדרת חומרי PBR.
  • בדיקות על מכשירים פיזיים (מינימום 5 דגמים).
  • אופטימיזציית ביצועים למכשירי יעד.
  • מסירת קוד מקור, תיעוד והדרכת צוות.

לוחות זמנים ועלות שילוב

שילוב בסיסי עם הצבת אובייקט USDZ על משטח: 3–5 ימים (החל מ-$1,500). מעקב תמונות עם סמנים והצגת תוכן: 4–7 ימים (החל מ-$3,000). פתרון מקיף עם מעקב פנים, חסימת LiDAR ו-shaders מותאמים ב-Metal: 3–6 שבועות (החל מ-$12,000). העלות מחושבת באופן אישי לפי מורכבות התוכן התלת-ממדי ודרישות תמיכה במכשירים. אנו מבטיחים תוצאות באיכות גבוהה עם ניסיון של למעלה מ-5 שנים ויותר מ-20 פרויקטי AR שהושלמו.

למה לבחור בשילוב ARKit שלנו? הצוות שלנו מוסמך על ידי Apple בתחום ARKit וסיפק פתרונות AR חזקים לקמעונאות, חינוך וארגונים. אנו מספקים אחריות ביצועים ל-30 יום על כל השילובים.

אנו מפתחים אפליקציות iOS כבר למעלה מ-5 שנים והשלמנו יותר מ-20 פרויקטי AR בתעשיות שונות. אם ברצונכם ליישם מציאות רבודה באפליקציה שלכם, צרו קשר — נבחן את הפרויקט שלכם ונציע את הפתרון האופטימלי. בחנו את הפרויקט שלכם ליכולות AR — קבלו ייעוץ מהמהנדס שלנו.