רקע וירטואלי מבוסס בינה מלאכותית לשיחות וידאו במובייל

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

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

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
רקע וירטואלי מבוסס בינה מלאכותית לשיחות וידאו במובייל
מורכב
~1-2 שבועות

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

שאלות נפוצות

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

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

בעת פיתוח אפליקציית מובייל לשיחות וידאו, לקוחות נתקלים לא פעם בבעיה: היישום הסטנדרטי של רקע וירטואלי דרך השרת גורם לעיכובים ולפגמים. בפרויקט אחד, הלקוח השתמש ב-AI ענני של AWS Rekognition — כל פריים נשלח לענן וחזר לאחר 60–80 אלפיות השנייה. כתוצאה מכך, קו המתאר רעד, ומשתמשים התלוננו על איכות.

פתרנו זאת על ידי העברת הסגמנטציה למכשיר. עיבוד בצד השרת מוסיף 40–80 אלפיות השנייה לכל פריים, מה שב-30 פריימים לשנייה גורם לשבירה ניכרת בקו המתאר ולאפקט 'רפאים' בתנועות מהירות. סגמנטציה על המכשיר מסתיימת ב-8–28 אלפיות השנייה, וחוסכת עד 80% מהזמן בהשוואה לעיבוד ענני. היתרון המרכזי הוא סגמנטציה על המכשיר, לא בענן. זה לא רק מפחית עלויות תשתית אלא גם מבטיח פרטיות למשתמש. בכל פריים של זרם הווידאו, הרשת הנוירונית מחלצת את קווי המתאר של האדם, מחילה את הרקע (תמונה, וידאו או טשטוש), ומחזירה את התוצאה לצינור הקידוד — הכל ללא העברת נתונים לשרת. תקציב הזמן האופייני הוא 33 אלפיות השנייה לפריים, והפתרון על המכשיר נכנס בקלות. למכשירים תקציביים, אנו משתמשים במודלים קלים ומפחיתים את קצב הפריימים ל-24 פריימים לשנייה, מה שמבטיח פעולה יציבה ללא התחממות.

מה היתרונות של רקע וירטואלי מבוסס AI על המכשיר?

המשימה היא לחלץ את קווי המתאר של האדם בכל פריים של זרם וידאו (30 פריימים לשנייה), להחיל את הרקע, ולהחזיר את התוצאה לצינור לפני הקידוד.这意味着 תקציב של ~33 אלפיות השנייה לפריים כולל לכידה, הרצת מודל, עיבוד לאחר ורינדור.

צד שרת: לכידה → שליחה → חיזוי → תגובה → רינדור. אפילו עם רשת אידיאלית, הסיבוב מוסיף 40–80 אלפיות השנייה. בפועל, זה אומר רעידות בקו המתאר ואפקט 'רפאים' בזמן תנועה.

על המכשיר: לכידה → חיזוי → רינדור. הכל בצינור אחד. עלויות התשתית גבוהות בגישת השרת — נדרשים שרתי GPU. הגישה על המכשיר מבטלת עלויות אלה לחלוטין. החיסכון במחשוב GPU בשרת יכול להגיע ל-$2,000 לחודש עבור אפליקציה עם 10,000 משתמשים פעילים. בפרויקט אחר, החיסכון היה $3,000 לחודש על ידי ויתור על מופעי GPU יקרים. עבור פרויקט טיפוסי, ההשקעה נעה בין $5,000 ל-$25,000 בהתאם למורכבות.

תהליך הסגמנטציה על המכשיר

אנו משתמשים ברשתות נוירוניות המותאמות לשבבים ניידים (Neural Engine, GPU, DSP). החיזוי רץ מקומית; אין נתונים שעוזבים את המכשיר — זה פותר בו זמנית בעיות פרטיות וזמן אחזור.

iOS: MLKit + CoreImage או Vision

ב-iOS אנו משתמשים במסגרת Vision עם מודל Vision. אפל הוסיפה אותו ב-iOS 15 ומאוחר יותר — הוא רץ על ה-Neural Engine ללא טעינת מודל מפורשת. הדיוק טוב למצלמה הקדמית, אך הוא יכול לייצר קווי מתאר משוננים עם תסרוקות מורכבות ואלמנטים שקופים של ביגוד.

// Настройка сегментации
let request = VNGeneratePersonSegmentationRequest()
request.qualityLevel = .balanced // .accurate даёт лучший контур, но тяжелее
request.outputPixelFormat = kCVPixelFormatType_OneComponent8

// В обработчике кадров AVFoundation
let handler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, options: [:])
try handler.perform([request])
guard let mask = request.results?.first?.pixelBuffer else { return }
// mask — CVPixelBuffer 8-bit, применяем через CIBlendWithMask

VNGeneratePersonSegmentationRequest עם // Настройка сегментации let request = VNGeneratePersonSegmentationRequest() request.qualityLevel = .balanced // .accurate даёт лучший контур, но тяжелее request.outputPixelFormat = kCVPixelFormatType_OneComponent8 // В обработчике кадров AVFoundation let handler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, options: [:]) try handler.perform([request]) guard let mask = request.results?.first?.pixelBuffer else { return } // mask — CVPixelBuffer 8-bit, применяем через CIBlendWithMask — רינדור ב-Metal, הימנעות מהמרת מרחב צבע. ללא זה, כל פריים מוסיף ~5 אלפיות השנייה רק להמרה.

לסגמנטציה באיכות גבוהה יותר, אנו ממירים מודל TFLite כמו DeepLab v3 או MediaPipe SelfieSegmentation ל-Core ML דרך CIBlendWithMask וטוענים אותו דרך CIContext(options: [.workingColorSpace: NSNull()]). MediaPipe נותן קו מתאר יציב אפילו בקצוות מטושטשים. Apple Vision VNGeneratePersonSegmentationRequest

Android: MLKit Selfie Segmentation

val segmenter = Segmentation.getClient(
    SelfieSegmenterOptions.Builder()
        .setDetectorMode(SelfieSegmenterOptions.STREAM_MODE) // оптимизировано для видео
        .enableRawSizeMask()
        .build()
)

// В обработчике CameraX ImageAnalysis
override fun analyze(imageProxy: ImageProxy) {
    val inputImage = InputImage.fromMediaImage(imageProxy.image!!, imageProxy.imageInfo.rotationDegrees)
    segmenter.process(inputImage)
        .addOnSuccessListener { segmentationMask ->
            val mask = segmentationMask.buffer
            // Применяем фон через RenderScript или Vulkan compute shader
            applyBackground(mask, imageProxy)
        }
        .addOnCompleteListener { imageProxy.close() }
}

coremltools הוא קריטי — הוא שומר על מצב פנימי בין פריימים ורץ מהר יותר מ-MLModel. ב-Pixel 6 עם Tensor G2, החיזוי לוקח 8–12 אלפיות השנייה. במכשירים תקציביים (Snapdragon 695) — 20–28 אלפיות השנייה. לעיבוד לאחר של המסכה, אנו משתמשים ב-val segmenter = Segmentation.getClient( SelfieSegmenterOptions.Builder() .setDetectorMode(SelfieSegmenterOptions.STREAM_MODE) // оптимизировано для видео .enableRawSizeMask() .build() ) // В обработчике CameraX ImageAnalysis override fun analyze(imageProxy: ImageProxy) { val inputImage = InputImage.fromMediaImage(imageProxy.image!!, imageProxy.imageInfo.rotationDegrees) segmenter.process(inputImage) .addOnSuccessListener { segmentationMask -> val mask = segmentationMask.buffer // Применяем фон через RenderScript или Vulkan compute shader applyBackground(mask, imageProxy) } .addOnCompleteListener { imageProxy.close() } } (מופחת ב-API 31+) או ב-STREAM_MODE דרך RenderEffect ב-Android 12+. MLKit Selfie Segmentation

השוואת מודלי סגמנטציה

מודל פלטפורמה זמן אחזור (אלפיות השנייה) איכות קו מתאר
Vision (Apple) iOS 12–20 טובה
MLKit Selfie Segmentation Android 8–12 מצוינת
MediaPipe חוצה פלטפורמות 15–25 ממוצעת
Core ML (DeepLab) iOS 20–30 גבוהה

השוואת גישות: שרת לעומת מכשיר

פרמטר סגמנטציה בשרת סגמנטציה על המכשיר
זמן אחזור 150–300 אלפיות השנייה (סיבוב) 8–28 אלפיות השנייה (חיזוי)
תלות ברשת קריטית אין
פרטיות נתונים נשלחים לשרת נתונים נשארים על המכשיר
דיוק גבוה (מודל גדול) טוב (מודלים מותאמים)
עלות תשתית גבוהה (שרתי GPU) אפס (תוכנה בלבד)

יישום רקע: שלוש אפשרויות

תמונה סטטית — המקרה הפשוט ביותר. SINGLE_IMAGE_MODE ב-iOS, מיזוג PorterDuff ב-Android.

טשטוש — פילטר RenderScript עם רדיוס 12–20 המוחל על הפריים המקורי, ואז המסכה בוחרת בין המקורי למטושטש. ב-Android — Vulkan compute shader (API 31+) או טשטוש מותאם אישית דרך Vulkan.

רקע וידאו — דורש מפענח מסונכרן עם תזמון שיחת הווידאו. ב-iOS — CIBlendWithMask + טקסטורת Metal. כבד בזיכרון: חיץ רקע וידאו + חיץ מצלמה + חיץ מסכה + תוצאה. ב-iPhone 12 עם 4 GB זה בסדר, ב-iPhone SE דור 2 (3 GB) אנו זקוקים לשימוש חוזר אגרסיבי בחוצצים.

כיצד לשלב החלפת רקע בצינור WebRTC?

רוב פתרונות השיחות הניידים מבוססים על WebRTC — דרך LiveKit, Daily.co, Agora או WebRTC מקורי. כולם מספקים מנגנון VideoSource/VideoProcessor מותאם אישית למניפולציה של פריימים לפני הקידוד.

ב-LiveKit SDK ל-iOS זה הפרוטוקול CIGaussianBlur:

class BackgroundReplacementProcessor: VideoProcessor {
    func process(frame: RTCVideoFrame) -> RTCVideoFrame? {
        // Сегментация + применение фона
        // Возвращаем новый RTCVideoFrame с обработанным буфером
    }
}

room.localParticipant?.videoTracks.first?.processor = BackgroundReplacementProcessor()

חשוב: RenderEffect.createBlurEffect עובד עם AVPlayerItemVideoOutput בפורמט LiveKit. המרה ל-RGB לחיזוי ML ובחזרה גורמת לאובדן. אם המודל מקבל YUV, אנו שומרים על הפורמט ללא שינוי.

קריטריונים לבחירת מודל סגמנטציה

בחירת המודל תלויה במכשירי היעד ובדרישות האיכות. ל-iOS עם A12+, Vision מתאים — מודל מובנה, אין צורך במשאבים נוספים. ל-Android עם Tensor G2 או Snapdragon 8 Gen 1, MLKit נותן את האיכות הטובה ביותר. במכשירים חלשים (Snapdragon 695, A11) אנו משתמשים ב-MediaPipe או מפחיתים את קצב הפריימים.

אופטימיזציה למכשירים נמוכים

במכשירים מוגבלי משאבים אנו מפחיתים את קצב הפריימים ל-24 פריימים לשנייה ומשתמשים במודלים קלים (MediaPipe). אנו גם מיישמים קנה מידה דינמי של פריים הקלט: הפחתת רזולוציה ל-480p לפני החיזוי, ואז הגדלת המסכה. זה מקצר את זמן העיבוד ב-30-40% ללא אובדן איכות ניכר.

תוצרים

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

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

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

  1. ביקורת על מחסנית ה-WebRTC הנוכחית וצינור הפריימים.
  2. בחירת מודל סגמנטציה לפי איכות/מהירות (Vision, MLKit, Core ML, MediaPipe).
  3. פיתוח אב טיפוס עם מדידת ביצועים על 10+ מכשירים.
  4. שילוב בצינור ה-WebRTC הקיים דרך VideoProcessor.
  5. אופטימיזציה של עיבוד לאחר המסכה (אנטי-aliasing, feathering).
  6. בדיקות על מקרי קצה (רקע מורכב, תנועות מהירות).
  7. תיעוד והדרכה של צוות הלקוח.

הערכות לוח זמנים

יישום בסיסי עם טשטוש רקע (פלטפורמה אחת) — 2–3 שבועות, בדרך כלל בעלות של $5,000-$10,000. יישום מלא עם תמיכה בתמונות סטטיות ורקעי וידאו, שתי הפלטפורמות, שילוב במחסנית WebRTC קיימת — 5–8 שבועות, בעלות של $15,000-$25,000.

יש לנו ניסיון של 8+ שנים בפיתוח מובייל והשלמנו 50+ פרויקטים עם תכונות וידאו ו-AI. אנו מבטיחים פעולה יציבה במכשירים בני יותר מחמש שנים.

צור קשר להערכת פרויקט וקבל ייעוץ מהנדס.