Машинное и глубокое обучение для встраиваемых систем

Мы адаптируем, оптимизируем и внедряем модели машинного и глубокого обучения для встраиваемых систем, работающих в реальном времени на современных вычислительных платформах.

Наш фокус — быстрое применение лучших универсальных архитектур под ограничения конкретного устройства: задержку, энергопотребление, объем памяти, пропускную способность и доступные аппаратные ресурсы.

Мы работаем с задачами обнаружения объектов, классификации, сегментации, оценки глубины, анализа сцены, обработки изображений, машинного зрения и объединения данных от разных датчиков.

Основные направления

Адаптация универсальных моделей

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

Работа включает:

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

Цель — использовать сильные готовые архитектуры и довести их до практического применения на конечном устройстве.

Квантование и восстановление точности

Для встраиваемых систем важно уменьшить размер модели и ускорить вычисления без существенной потери качества.

Мы выполняем:

  • квантование весов и активаций;
  • подбор точности вычислений для разных частей модели;
  • анализ чувствительности слоев к снижению точности;
  • оценку потери качества после квантования;
  • дообучение для восстановления точности;
  • проверку результата на реальных сценах.

Такой подход позволяет сохранить качество исходной модели, но сделать ее достаточно компактной и быстрой для работы в продукте.

Оптимизация аппаратных ресурсов

Мы оптимизируем выполнение модели с учетом всей системы, а не только скорости отдельного вычислительного блока.

Учитываются:

  • загрузка центрального процессора;
  • загрузка графических и специализированных вычислительных блоков;
  • объем используемой памяти;
  • пропускная способность памяти и внутренних шин;
  • задержка передачи данных между этапами обработки;
  • энергопотребление;
  • параллельная работа нескольких алгоритмов;
  • устойчивость при длительной нагрузке.

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

Интеграция с обработкой изображений и машинным зрением

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

Мы интегрируем модели с:

  • конвейером обработки изображения;
  • алгоритмами улучшения качества изображения;
  • сжатием и передачей видеопотока;
  • моно- и стереозрением;
  • системами кругового обзора;
  • трехмерной реконструкцией;
  • оценкой глубины и расстояний;
  • обнаружением и сопровождением объектов;
  • объединением данных от камер, лидаров, радаров и ультразвуковых датчиков.

Такой подход позволяет оптимизировать весь путь данных: от сенсора до итогового решения автоматической системы.

Быстрая адаптация новых алгоритмов

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

Работа может включать:

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

Это позволяет быстро проверять перспективные подходы без полной переработки всей системы.

Обучение, дообучение и собственные данные

Мы выполняем дообучение моделей под конкретную задачу заказчика и реальные условия эксплуатации. Для этого используем как стандартные открытые наборы данных, так и собственные или проектные базы, собранные под конкретный продукт.

Мы имеем опыт полного цикла работы с данными:

  • планирование сценариев сбора данных;
  • подготовка требований к обучающей и проверочной выборке;
  • сбор данных с камер и дополнительных датчиков;
  • запись данных в лаборатории и реальных условиях;
  • отбор полезных сцен;
  • очистка данных от дублей, брака и нерелевантных фрагментов;
  • разметка изображений, видео и данных датчиков;
  • контроль качества разметки;
  • согласование правил разметки под задачу заказчика;
  • формирование обучающей, проверочной и тестовой выборок;
  • анализ баланса классов и покрытия редких сценариев.

Собственные данные особенно важны, когда стандартные наборы не отражают реальные условия продукта: конкретную камеру, объектив, сенсор, инфракрасную подсветку, геометрию установки, погодные условия, загрязнение оптики, слабое освещение, блики, шумы или редкие классы объектов.

Мы помогаем не только дообучить модель, но и построить воспроизводимый процесс работы с данными: от сбора и разметки до проверки качества модели на независимой выборке.

Метрики и проверка качества

Мы оцениваем модели по объективным метрикам, связанным с конечной задачей и ограничениями устройства.

В зависимости от проекта оцениваются:

  • точность классификации;
  • точность обнаружения объектов;
  • число ложных срабатываний и пропусков;
  • качество сегментации;
  • ошибка оценки глубины или расстояния;
  • устойчивость сопровождения объектов;
  • потеря точности после квантования;
  • задержка обработки;
  • частота обработки кадров;
  • объем памяти;
  • загрузка вычислительных блоков;
  • энергопотребление;
  • стабильность результата во времени.

Модели проверяются на подготовленных базах данных, в лабораторных условиях и в реальных сценариях эксплуатации. Это позволяет связать численные метрики с поведением системы в продуктовых условиях.

Работа в реальном времени

Для встраиваемых систем модель должна быть точной, быстрой, компактной и стабильной.

Мы оптимизируем решения с учетом:

  • задержки выполнения;
  • частоты обработки кадров;
  • объема входных данных;
  • объема памяти;
  • пропускной способности;
  • энергопотребления;
  • распределения вычислений между аппаратными блоками;
  • длительной устойчивой работы без перегрузки системы.

Цель — получить модель, которая работает в реальном времени и эффективно использует ресурсы устройства.

Для каких задач

Наши услуги подходят для проектов, где требуется локальная автоматическая обработка данных:

  • мобильные и промышленные роботы;
  • автономная навигация;
  • складская автоматизация;
  • городское видеонаблюдение и анализ;
  • системы безопасности;
  • промышленный контроль качества;
  • многокамерные системы;
  • системы с камерами, лидарами, радарами и ультразвуковыми датчиками.

Что получает заказчик

Результатом работы является оптимизированная модель или набор моделей, готовых к интеграции в продукт.

Мы можем подготовить:

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

Наш подход

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

Наш подход основан на трех принципах:

  1. Адаптация лучших моделей — используем сильные универсальные архитектуры и доводим их до практического применения на целевой платформе.
  2. Эффективное использование ресурсов — оптимизируем точность, задержку, память, энергопотребление и загрузку аппаратных блоков.
  3. Интеграция в систему — модель работает как часть общего конвейера обработки данных, а не как отдельный демонстрационный модуль.