Реализация AI-виртуальной примерки одежды в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Реализация AI-виртуальной примерки одежды в мобильном приложении
Сложный
~2-4 недели
Часто задаваемые вопросы

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

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Реализация AI-виртуальной примерки одежды в мобильном приложении

Виртуальная примерка — это наложение одежды на фотографию или живое видео с камеры. Звучит просто, но технически задача включает сегментацию тела, оценку позы, деформацию текстуры одежды под анатомию конкретного человека и реалистичное освещение. Ни одна из этих частей не тривиальна по отдельности.

Два режима: фото и real-time AR

Фото-примерка — пользователь загружает своё фото, выбирает одежду, получает результат через несколько секунд. Качество выше, модели тяжелее, серверный инференс оправдан.

Real-time AR — камера в реальном времени, одежда «надета» прямо на превью. Требует строгого бюджета 30+ fps. На устройстве — только лёгкие модели или mesh-based подход через pose estimation.

Архитектура фото-примерки

Пайплайн состоит из четырёх этапов:

  1. Human parsing — сегментируем части тела (верх, низ, рукава, воротник, фон). Модели: Self-Correction Human Parsing (SCHP), CDGNet.
  2. Pose estimation — 17–33 ключевые точки тела. MediaPipe Pose на устройстве, OpenPose на сервере.
  3. Warping — деформируем изображение одежды под позу и форму тела. TPS (Thin Plate Spline) warping на основе соответствий ключевых точек.
  4. Try-on synthesis — финальная генерация с учётом теней, складок, освещения. Модели: VITON-HD, HR-VITON, LaDI-VTON.

На мобиле этапы 1 и 2 — on-device (MediaPipe), этапы 3 и 4 — на сервере.

On-device: pose и парсинг через MediaPipe

// MediaPipe Pose Landmarker
let options = PoseLandmarkerOptions()
options.baseOptions.modelAssetPath = Bundle.main.path(forResource: "pose_landmarker_full", ofType: "task")!
options.numPoses = 1
options.minPoseDetectionConfidence = 0.5
options.minPosePresenceConfidence = 0.5
options.minTrackingConfidence = 0.5

let poseLandmarker = try PoseLandmarker(options: options)

// Из фото
let mpImage = try MPImage(uiImage: sourcePhoto)
let result = try poseLandmarker.detect(image: mpImage)

// result.landmarks[0] — массив из 33 NormalizedLandmark
// Ключевые точки: LEFT_SHOULDER (11), RIGHT_SHOULDER (12), LEFT_HIP (23), RIGHT_HIP (24)

Human parsing на устройстве — через конвертированную в Core ML/TFLite модель SCHP. Размер модели ~15 МБ после квантизации. На iPhone 13 — 300–500 мс на изображение 512×512.

// Android: human parsing через TFLite
val interpreter = Interpreter(
    FileUtil.loadMappedFile(context, "schp_parsing.tflite"),
    Interpreter.Options().apply { addDelegate(GpuDelegate()) }
)

val input = Array(1) { Array(512) { Array(512) { FloatArray(3) } } }
val output = Array(1) { Array(512) { Array(512) { FloatArray(20) } } }  // 20 классов

interpreter.run(input, output)
// output[0][y][x] — вектор вероятностей для каждого класса (upper-body, lower-body, etc.)

Серверный try-on: HR-VITON

HR-VITON — state-of-the-art для фото-примерки, работает с разрешением до 1024×768. Принимает: фото человека + фото одежды (на белом фоне или с маской) + human parsing маску + позу.

API на стороне сервера (FastAPI + PyTorch):

@app.post("/tryon")
async def virtual_tryon(
    person_image: UploadFile,
    clothing_image: UploadFile
):
    person = load_image(await person_image.read())
    clothing = load_image(await clothing_image.read())

    # Parsing и pose — предварительно вычислены или считаем здесь
    parse_map = run_human_parsing(person)
    keypoints = run_pose_estimation(person)

    # HR-VITON inference
    result = hrviton_model(person, clothing, parse_map, keypoints)

    return StreamingResponse(image_to_bytes(result), media_type="image/jpeg")

Время генерации на A10 GPU — 1.5–3 секунды. На CPU (для тестирования) — 15–30 секунд.

Real-time AR: mesh-based подход

Для real-time без тяжёлого GAN — упрощённый mesh warping:

  1. MediaPipe Pose в реальном времени (30+ fps on-device).
  2. Строим 2D-меш тела из ключевых точек (треугольники через Delaunay триангуляцию).
  3. Деформируем текстуру одежды на меш через Metal.
// Metal vertex shader для warping одежды
vertex VertexOut clothingWarpVertex(
    uint vid [[vertex_id]],
    constant float2 *clothingUVs [[buffer(0)]],  // UV координаты на исходной одежде
    constant float2 *bodyPositions [[buffer(1)]] // Позиции на экране (из pose landmarks)
) {
    VertexOut out;
    out.position = float4(bodyPositions[vid], 0, 1);
    out.texCoord = clothingUVs[vid];
    return out;
}

Качество — значительно ниже GAN-based подхода: нет реалистичных складок, теней, не учитываются объёмные формы тела. Зато работает в 30 fps даже на iPhone 11.

Управление каталогом одежды

Каждый элемент одежды в каталоге требует специальной подготовки: фото на белом фоне, маска силуэта, категория (upper, lower, dress). Это пайплайн на стороне контента: загрузка → авто-сегментация через RemBG → валидация маски → сохранение в CDN.

Мобильное приложение загружает только превью-изображения (сжатые JPEG), полные данные для try-on передаются серверу напрямую.

Процесс

Аудит каталога одежды и требований к качеству, выбор архитектуры (фото vs AR), настройка серверного пайплайна с HR-VITON или аналогом, on-device компоненты (pose, parsing), UI потока примерки, кэширование результатов.

Ориентиры по срокам

Фото-примерка с серверным инференсом, одна платформа — 4–6 недель. Полная реализация с AR real-time, обе платформы, каталожный пайплайн — 10–16 недель.