Реалізація сегментації зображень у мобільному додатку

Реалізація сегментації зображень у мобільному додатку Ми не раз стикалися із завданням: клієнт хоче реалізувати сегментацію зображень у мобільному додатку, але не знає, з чого почати. Сегментація — найбільш обчислювально затратна з задач комп'ютерного зору на мобільному пристрої. Якщо детекція по

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація сегментації зображень у мобільному додатку
Складний
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Реалізація сегментації зображень у мобільному додатку

Ми не раз стикалися із завданням: клієнт хоче реалізувати сегментацію зображень у мобільному додатку, але не знає, з чого почати. Сегментація — найбільш обчислювально затратна з задач комп'ютерного зору на мобільному пристрої. Якщо детекція повертає прямокутник, сегментація повертає маску попіксельно. На зображенні 512×512 це 262 144 пікселі, кожен з класом, і все це потрібно обробити та відобразити за 33 мс для 30 FPS. Без правильного вибору моделі та рендерингу real-time недосяжний. Ми накопичили досвід на 10+ проєктах з комп'ютерним зором і гарантуємо стабільну роботу рішення.

Яку сегментацію вибрати: семантичну чи інстанс?

Семантична сегментація — кожен піксель отримує один клас (небо, людина, дорога). Всі люди в кадрі — один клас «person». Моделі: DeepLabV3+, MobileNetV3 Segmentation. TFLite-версія DeepLabV3+ з входом 257×257 працює за 22–35 мс на сучасних Android.

Інстанс-сегментація — кожен екземпляр об'єкта має окрему маску. Три людини = три маски. Моделі: Mask R-CNN, YOLOv8-seg. Значно важчі: YOLOv8n-seg на TFLite — 80–120 мс на мобільному пристрої. Реальний real-time з такою моделлю — тільки на флагманах з GPU-делегатом.

Для більшості споживчих кейсів (видалення фону, розмиття фону на фото) достатньо семантичної сегментації класу «person» або «background». Це закривається ML Kit Selfie Segmentation — on-device, 30 FPS, окрема нейромережа, навчена саме під цей кейс. Наш досвід показує: ML Kit у 2–3 рази швидше універсальних моделей при порівнянній якості.

Порівняємо основні підходи:

Модель Тип FPS (iPhone 13) FPS (Pixel 6) Застосування
DeepLabV3+ (TFLite) Семантична 28 22 Універсальна сегментація
YOLOv8n-seg (TFLite) Інстанс 8 10 Детальне виділення
ML Kit Selfie Segm. Семантична 30 28 Портрет / фон

How-to: як інтегрувати ML Kit Selfie Segmentation за 5 днів?

Інтеграція займає 5–7 днів, якщо працювати за нашим чеклистом:

  1. Підключіть SDK через Gradle (Android) або CocoaPods (iOS).
  2. Створіть екземпляр SelfieSegmenterOptions з STREAM_MODE.
  3. Передавайте кадри в segmenter.process() (кожен кадр з камери).
  4. Отримайте маску, накладіть через GPU (Metal/OpenGL).
  5. Оптимізуйте: використовуйте enableRawSizeMask() для якості.
Приклад коду для Android
val segmenter = Segmentation.getClient( SelfieSegmenterOptions.Builder() .setDetectorMode(SelfieSegmenterOptions.STREAM_MODE) .enableRawSizeMask() .build() ) 

Як досягти real-time накладання маски?

Маска сегментації — це ByteArray або FloatArray з індексами класів. Накласти її на відеопотік за 33 мс — задача для GPU.

На iOS використовуємо Metal для блендингу: маска конвертується в CIImage через CIFilter.pixellate або кастомний Metal kernel, потім накладається на оригінальний кадр через CIBlendWithMask. Весь рендеринг в Metal уникає копіювання даних між CPU і GPU через MTLBuffer з shared storage mode.

На Android — RenderScript (deprecated API 31+) або Vulkan/OpenGL ES через SurfaceView. Для нових проєктів: AGSL (Android Graphics Shading Language) починаючи з Android 13, або Canvas.drawBitmap з Paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_IN) для простих випадків.

Часта помилка: генерувати Bitmap з маски на CPU в циклі для кожного кадру. На Pixel 6 це ~18 мс тільки для алокації + copy — вбиває всі 33 мс бюджету. Правильно: використовувати Bitmap.copyPixelsFromBuffer з попередньо алокованим ByteBuffer або передавати маску безпосередньо в шейдер.

ML Kit Selfie Segmentation на практиці

Найшвидший шлях для «розмиття фону» у відеодзвінках або фоторедакторах — використання ML Kit. Кейс: корпоративний додаток для відеопрезентацій, віртуальний фон на iOS. Core Image CIBlendWithMask + ML Kit Selfie Segmentation (iOS SDK): 28 мс на iPhone 13 mini при 720p. На iPhone SE 2nd gen — 41 мс, що при 30 FPS призводило до dropped frames кожні 2–3 секунди. Рішення: знизили роздільну здатність обробки до 540p, маску upscale через білінійну інтерполяцію — 24 мс, dropped frames зникли.

Що входить в нашу роботу по сегментації

  • Аналіз вимог та вибір оптимальної моделі (ML Kit / кастомна / OpenCV).
  • Проектування пайплайну (захоплення кадру → сегментація → накладання → рендеринг) з урахуванням цільового FPS.
  • Реалізація: кодування на Swift/Kotlin, інтеграція TFLite/Metal/OpenGL.
  • Тестування на реальних пристроях (від iPhone SE до флагманів Android).
  • Оптимізація під конкретну задачу: профілювання, зменшення latency.
  • Документація з інтеграції та навчання команди замовника.

Терміни та вартість

Інтеграція ML Kit Selfie Segmentation з накладанням ефекту — 5–7 днів. Кастомна сегментаційна модель з рендерингом через Metal/OpenGL на реальному відеопотоці — 2–3 тижні. Вартість розраховується індивідуально. Ми працюємо на ринку більше 5 років, виконали 15+ проєктів з комп'ютерним зором. Замовте розробку сегментації під ключ — отримайте готове рішення. Отримайте консультацію щодо вашого проєкту.