Syntidata
Главная / Блог / Компьютерное зрение / Компьютерное зрение на edge-устройствах

Компьютерное зрение на edge-устройствах

Компьютерное зрение

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

Компьютерное зрение на edge-устройствах

Что значит edge и когда он оправдан

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

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

  • Нет стабильного канала. Склад, карьер, транспорт, удалённые объекты. Видеопоток просто нечем передавать.
  • Критична задержка. Решение нужно принять за десятки миллисекунд: остановить конвейер, затормозить манипулятор. Круг до облака и обратно слишком долгий.
  • Много камер. Сотня камер по пять мегабит каждая загрузит любую сеть, а передача только результатов почти не нагружает её.
  • Ограничения по данным. Кадры с людьми или конфиденциальной продукцией лучше не выводить за пределы объекта.

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

Из чего состоит бюджет устройства

Любое встраиваемое устройство ограничено по нескольким ресурсам одновременно. Прежде чем выбирать модель, выпишите бюджет.

РесурсЧто ограничивает
Вычислительная мощностьСколько кадров в секунду можно обработать
ПамятьРазмер модели, буферы кадров, промежуточные тензоры
ЭнергопотреблениеВремя работы от аккумулятора, нагрев, требования к корпусу
ТеплоотводУстойчивость скорости при длительной нагрузке
СтоимостьЦена устройства при тиражировании

Важная деталь: скорость, измеренная на коротком прогоне, часто не совпадает со скоростью после получаса нагрузки. Многие модули при перегреве снижают частоту, и производительность падает на десятки процентов. Тест на длительную нагрузку обязателен.

Выбор архитектуры под железо

Универсального ответа нет, но есть правила, которые экономят недели экспериментов.

Начинайте с лёгких семейств

Для детекции на краю обычно берут компактные варианты популярных архитектур: нано- и малые версии YOLO, лёгкие SSD на основе мобильных сетей, EfficientDet нижних размеров. Для классификации и сегментации существуют специальные мобильные архитектуры, спроектированные с учётом числа операций и обращений к памяти.

Смотрите на операции, а не на параметры

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

Разрешение входа

Скорость примерно квадратично зависит от разрешения. Снижение входа с 640 на 416 пикселей по стороне ускоряет модель примерно в два раза, но мелкие объекты могут пропасть. Правило выбора простое: определите минимальный размер объекта в пикселях, который нужно находить, и подберите разрешение так, чтобы он оставался заметным после уменьшения. Для мелких деталей иногда выгоднее резать кадр на плитки или использовать область интереса, чем увеличивать вход целиком.

Как сжимают модели

Когда подходящая архитектура выбрана, а скорости всё равно мало, в ход идут методы сжатия.

Квантизация

Самый эффективный и популярный приём: вместо 32-битных чисел с плавающей точкой используются 16-битные или 8-битные числа. Модель уменьшается в два-четыре раза, а на ускорителях с целочисленными блоками ускоряется ещё сильнее. Бывает два пути:

  1. Пост-тренировочная квантизация. Берётся уже обученная модель и калибруется на небольшом наборе репрезентативных кадров. Быстро, но возможна потеря точности.
  2. Обучение с учётом квантизации. Квантизация имитируется прямо в процессе обучения, и модель подстраивается под пониженную точность. Дольше, зато точность обычно сохраняется лучше.

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

Прунинг и дистилляция

Прунинг удаляет наименее значимые связи или целые каналы. Без аппаратной поддержки разреженности выигрыш в скорости бывает скромным, а вот структурный прунинг (удаление каналов) действительно уменьшает вычисления. Дистилляция обучает маленькую модель повторять поведение большой: «ученик» получает не только жёсткие метки, но и мягкие вероятности «учителя». Это часто даёт прирост точности небольшой сети на несколько пунктов.

Конвертация и оптимизация графа

Перед запуском модель переводят в формат целевого рантайма. Среди распространённых промежуточных форматов — ONNX, а дальше используются специализированные движки производителей ускорителей. Движок объединяет соседние слои, убирает лишние операции и подбирает оптимальные ядра. Прирост от одной лишь конвертации нередко составляет полтора-два раза.

Данные для edge-моделей: нюансы

Маленькая модель обладает меньшей «ёмкостью», чем большая, поэтому она сильнее зависит от качества и подбора обучающих данных. Крупная сеть может прощать шум в разметке и недостаточное разнообразие, лёгкая — нет.

Что из этого следует на практике:

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

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

Проверка на реальном устройстве

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

  1. Прогнать контрольную реальную выборку через итоговую модель на самом устройстве и посчитать те же метрики, что и до сжатия.
  2. Измерить задержку на кадр: среднюю, 95-й процентиль и максимум. Для систем реального времени важен именно хвост распределения.
  3. Измерить пропускную способность и стабильность за час работы.
  4. Зафиксировать энергопотребление и температуру.
  5. Проверить поведение при пропаже кадров, плохом освещении, засветке объектива.

Потеря точности после сжатия, превышающая один-два пункта mAP, повод вернуться и разобраться: чаще всего виноваты калибровка или неподдерживаемый оператор. Как правильно читать такие метрики, подробно разобрано в статье Метрики детекции: mAP, IoU, precision и recall без путаницы.

Эксплуатация: то, о чём забывают

Запустить модель на одном устройстве просто. Сложности начинаются на сотне.

Обновления

Нужен механизм безопасного удалённого обновления модели с возможностью отката. Хорошая практика — раскатка сначала на малой доле устройств и сравнение метрик с прежней версией.

Мониторинг

Следите не только за доступностью, но и за качеством: распределением уверенности предсказаний, долей кадров без детекций, средним числом объектов. Резкий сдвиг этих величин часто означает, что камеру повернули, загрязнили объектив или изменилось освещение. В нашей практике такие метрики складываются в отчёты с помощью автоматизации процессов.

Сбор сложных примеров

Устройство может сохранять и отправлять кадры, на которых модель неуверенна. Это бесплатный источник данных для дообучения: самые полезные примеры приходят сами. Только заранее проговорите вопросы приватности и объём передаваемых данных.

Правило, которое экономит бюджет: сначала определите минимально достаточную точность и допустимую задержку, затем выбирайте самое дешёвое железо, которое их обеспечивает. Обратный порядок приводит к дорогому устройству, мощность которого простаивает.

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


Читайте также