AI-распознавание сцен для умного дома: мобильная автоматизация

Реализация AI-распознавания сцен для автоматизации умного дома в мобильном приложении Типичная ситуация: вы запускаете умный дом с камерой, и автоматизация срабатывает только когда пользователь заходит в комнату, но не реагирует на более тонкие сцены — например, приглушение света при просмотре ки

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

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

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

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

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

Часто задаваемые вопросы

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

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    896
  • 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
    1003
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

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

Типичная ситуация: вы запускаете умный дом с камерой, и автоматизация срабатывает только когда пользователь заходит в комнату, но не реагирует на более тонкие сцены — например, приглушение света при просмотре кино. Ошибка в том, что облачные ML-сервисы добавляют латентность 200–500ms и рискуют приватностью. Локальная классификация на устройстве — единственный путь для сценариев реального времени. Это снижает операционные затраты на облачные вычисления, особенно при работе с несколькими камерами. Мы реализовали более 10 таких интеграций и знаем все грабли: от ложных срабатываний при плохом освещении до конфликтов с App Store Review Guidelines. Опыт показывает, что правильная архитектура экономит ресурсы и время.

Почему локальная обработка критична для умного дома?

Отправлять кадры с камеры на сервер для классификации — плохая идея для домашней автоматизации. Латентность неприемлема, плюс пользователь теряет контроль над данными. Всё должно работать локально. Например, на iOS мы используем Apple Vision и CoreML, которые выполняют классификацию на чипе A14+ за <30ms.

iOS: CoreML + Vision framework

Apple Vision Scene Classification — встроенная модель VNClassifyImageRequest. Работает офлайн, выдаёт VNClassificationObservation с confidence score. Для умного дома достаточно ~20 категорий из 3000+ встроенных. Документация Apple (Apple Vision Scene Classification) рекомендует такой подход.

import Vision import CoreML class SceneClassifier { private lazy var request: VNClassifyImageRequest = { let r = VNClassifyImageRequest { [weak self] request, error in self?.handleResults(request.results as? [VNClassificationObservation]) } return r }() func classify(pixelBuffer: CVPixelBuffer) { let handler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, options: [:]) try? handler.perform([request]) } private func handleResults(_ results: [VNClassificationObservation]?) { guard let top = results?.filter({ $0.confidence > 0.6 }).first else { return } // top.identifier: "bedroom", "kitchen", "living_room", "bathroom" SmartHomeAutomation.shared.triggerScene(top.identifier) } } 

Фильтруем по confidence > 0.6 и по списку релевантных идентификаторов. Не трогать кадры чаще чем раз в 2–3 секунды — так экономим батарею и процессор. Для кастомных сценариев используем Create ML с MobileNetV3, экспорт в .mlpackage, размер ~4 МБ.

Android: ML Kit Scene Detection + TFLite

ML Kit Subject Segmentation и Scene Detection работают офлайн на устройстве:

val image = InputImage.fromMediaImage(mediaImage, rotation) val labeler = ImageLabeling.getClient( ImageLabelerOptions.Builder() .setConfidenceThreshold(0.65f) .build() ) labeler.process(image) .addOnSuccessListener { labels -> val sceneLabel = labels.firstOrNull { it.text in SMART_HOME_SCENES } sceneLabel?.let { automationEngine.trigger(it.text, it.confidence) } } 

SMART_HOME_SCENES — множество из "bedroom", "kitchen", "living room", "bathroom", "office". Для кастомных моделей — TFLite Interpreter с .tflite файлом, оптимизированным через TensorFlow Model Maker. Персонализированная модель на 500–1000 фото на класс, Fine-tuning MobileNetV2, Export в INT8 quantized — размер модели ~2 МБ, inference <50ms на Snapdragon 778G.

Как реализовать debounce для смены сцены?

Распознавание сцены — это только триггер. Дальше нужна логика автоматизации без ложных срабатываний. Паттерн: изменение сцены засчитывается только если одна категория доминирует 3 секунды подряд с confidence > 0.7.

class SceneDebouncer(private val windowMs: Long = 3000) { private var currentScene: String? = null private var firstSeenAt: Long = 0 fun process(scene: String, confidence: Float): String? { if (confidence < 0.7f) return null val now = System.currentTimeMillis() if (scene != currentScene) { currentScene = scene firstSeenAt = now return null } return if (now - firstSeenAt >= windowMs) scene else null } } 

Как управлять IoT через MQTT или Matter?

После подтверждения сцены публикуем команду в MQTT-брокер или отправляем через Matter controller:

// MQTT mqttClient.publish( "home/automation/scene", MqttMessage("""{\"scene\":\"bedroom\",\"timestamp\":${System.currentTimeMillis()}}""".toByteArray()), qos = 1, retained = false ) // Matter SDK (через Google Home Mobile SDK) val deviceController = ChipDeviceController() deviceController.sendCommand( nodeId = lightbulbNodeId, endpointId = 1, clusterId = OnOffCluster.CLUSTER_ID, commandId = OnOffCluster.Commands.On.ID, tlvData = byteArrayOf() ) 

Расписание и контекст

Автоматизация по сцене должна учитывать время суток: "bedroom" в 23:00 → приглушить свет, "bedroom" в 7:00 → разбудить шторы. Контекст добавляется через TimeOfDay фильтр в правилах на уровне приложения.

Сравнение CoreML vs TFLite

Параметр CoreML (iOS) TFLite (Android)
Встроенная модель VNClassifyImageRequest (3000+ классов) ML Kit Scene Detection (5+ классов)
Дообучение Create ML (MobileNetV3) TensorFlow Model Maker (MobileNetV2)
Размер кастомной модели ~4 MB ~2 MB (INT8 quantized)
Inference time <30 ms (Apple A14+) <50 ms (Snapdragon 778G)
Приватность Полностью локально Полностью локально

CoreML на 40% быстрее на сопоставимых устройствах, но TFLite даёт большую гибкость при кросс-платформенной разработке.

Пошаговая инструкция по интеграции распознавания сцен

  1. Определите целевые сцены (например, "bedroom", "kitchen") и IoT-устройства.
  2. Выберите платформу: CoreML для iOS, TFLite для Android или общий Flutter/RN.
  3. Интегрируйте ML-модель и настройте локальный классификатор.
  4. Реализуйте debounce-логику для избежания ложных срабатываний.
  5. Подключите MQTT или Matter для отправки команд.
  6. Протестируйте при разных условиях освещения и углах камеры.
Подробнее о кастомных моделях

Для дообучения модели используйте Transfer Learning: заморозьте первые слои MobileNetV2/V3, добавьте голову под свои классы. На каждую сцену нужно 200–500 размеченных кадров. Оптимизация через Quantization Aware Training уменьшает модель в 2 раза без потери точности.

Почему приватность важна при использовании камеры умного дома?

Приложение с постоянным доступом к камере — красный флаг для пользователей и модераторов App Store/Google Play. Правила:

  • Классификация только когда пользователь явно включил режим «Scene Detection»
  • Никакие кадры не сохраняются и не покидают устройство
  • На iOS — NSCameraUsageDescription с явным объяснением локальной обработки
  • Privacy manifest в iOS 17+ с декларацией NSPrivacyAccessedAPICategoryCamera

App Store reject по 4.3 Spam или privacy violations — реальный риск. Описание в App Privacy Report должно быть честным.

Что входит в разработку

  • Аудит требований: целевые устройства, IoT-протоколы (MQTT, Matter, Zigbee через хаб, HomeKit), набор триггерных сцен.
  • Разработка модели классификации: встроенная или кастомная с дообучением.
  • Интеграция с MQTT-брокером или Matter SDK.
  • Реализация логики debounce и автоматизации.
  • Тестирование в реальных условиях — разное освещение, углы камеры, смешанные сцены.
  • Документация и передача исходного кода.
  • Поддержка после запуска.

Гарантируем надежность и стабильность решения, основанную на многолетнем опыте. Стоимость рассчитывается индивидуально, но мы гарантируем прозрачный бюджет без скрытых платежей.

Этапы и сроки

Этап Срок
Аудит и согласование ТЗ 3–5 дней
Разработка модели (встроенная) 1–2 недели
Интеграция с IoT-протоколом 1–3 недели
Логика автоматизации и тестирование 1–2 недели
Полный цикл с кастомной ML-моделью 2–3 месяца

Базовое распознавание с 5–10 сценами и MQTT-командами: 2–4 недели. Кастомная ML-модель с дообучением + полная интеграция с Matter/HomeKit: 2–3 месяца. Стоимость рассчитывается индивидуально, в зависимости от количества поддерживаемых IoT-протоколов и сложности логики автоматизации.

Закажите разработку под ключ — мы оценим ваш проект за 1 день и предложим оптимальное решение. Свяжитесь с нами, чтобы обсудить детали.