Привет, Хабр! Эта статья написана по мотивам доклада реверс-инженера Дмитрия Ильина для прикладной конференции по Data Sience Ai Conf 2025. В нём Дмитрий расскаПривет, Хабр! Эта статья написана по мотивам доклада реверс-инженера Дмитрия Ильина для прикладной конференции по Data Sience Ai Conf 2025. В нём Дмитрий расска

Edge AI: почти всё о видеокамерах с искусственным интеллектом. Часть 1

2026/02/26 14:00
9м. чтение
a2bada8c51b1a89e603b1001d5a37d86.png

Привет, Хабр! Эта статья написана по мотивам доклада реверс-инженера Дмитрия Ильина для прикладной конференции по Data Sience Ai Conf 2025. В нём Дмитрий рассказывает о своём многолетнем хобби, которое родилось на стыке реверс-инжиниринга, софта и железа. Это проект OpenIPC, где IPC — это аббревиатура от IP-камера. Изначально он задумывался как специализированный дистрибутив Linux для IP-камер, но со временем превратился в большое комьюнити любителей опенсорса, каждый из которых является носителем уникального кусочка знаний.

Это будет материал из двух частей. В первой Дмитрий объясняет, как работать с видеоаналитикой, какие есть проблемы в области Computer Vision и какие нестандартные решения можно найти сегодня.

Традиционная видеоаналитика

Обычно система видеонаблюдения состоит из следующих компонентов:

  • видеокамеры;

  • устройства для хранения видео;

  • мониторы для сотрудников охраны (опционально);

  • приложение для пользователей, которые пользуются этой системой удалённо (тоже опционально);

  • сети передачи данных.

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

Сжатое видео разбивается на датаграммы примерно по 1,5 Kb и отправляется по IP-сети на специальный сервер, в который подключено много жёстких дисков. Какое-то время он хранит эти кадры и затем перезаписывает новыми данными.

8895f787ff7af6c8db3eaa0d05917e80.png

В этот специальный сервер кроме жёстких дисков стали добавлять ещё одну или несколько GPU. Появилась возможность распаковывать поступившие на сервер видео обратно в изображение, применять инференс CV-моделей, которые могут распознавать объекты, номерные знаки, сопоставлять лица по базе данных и многое другое.

Один такой сервер, в зависимости от конфигурации и используемых моделей, может тянуть много видеопотоков. Но обычно его мощность ограничена возможностью декодировать видеопотоки в real-time и сильно зависит от поколения GPU, разрешения и частоты кадров в секунду. Если пересчитать стоимость самого сервера и GPU, то окажется, что такая видеоаналитика стоит гораздо дороже традиционного подхода к хранению видео.

Что есть кроме GPU

c26df07e2ed0e5475902e95b07323cbb.png

Сейчас NVIDIA предлагает специализированные решения, которые подходят для задач инференса в Computer Vision. Например, недавно начались поставки нового устройства Jetson Orin Nano Super, с заявленным перформансом 67 TOPS (Tera Operations Per Second) и выгодного с точки зрения и денег, и энергопотребления. Значительный плюс устройства, что под капотом находится всем знакомая CUDA и инженер может начать работу с ним, вообще не переписывая свой код с топовой GPU. Однако, чтобы получить максимум перформанса от этой системы, придётся потратить время на изучение тулинга, поэкспериментировать с режимами энергопотребления для конкретного случая использования. Но, как обычно, есть ложка дёгтя.

df5a19a84cb4ce688a6c268c999a4e6d.jpeg

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

Но есть китайская альтернатива на основе доступных чипов для Android-устройств и плат формата Raspberry Pi. Производитель этих плат выпустил на рынок бюджетные варианты с ускорителем искусственного интеллекта внутри. Количество TOPS здесь меньше, чем у аналогичного железа от NVIDIA, но и цена за конечное решение начинается примерно от 30 долларов.

7ee601f3f899e3d23e73a6b3e808a9f5.jpeg

Эти чипы имеют на борту обратное ускорение декодирования видео вплоть до разрешения 8К. А так как по бенчмаркам модель YOLO на них работает со скоростью больше 125 кадров в секунду, то их стали использовать для установки в телекоммуникационную стойку и приспособили под дешёвую видеоаналитику.

3538da9c66341fd9f34d6dbc81d3f6e0.jpeg

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

Cloud AI vs Edge AI

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

09c445e2ca6561d242981e11d9ec46a8.jpeg

Давайте посмотрим на эти устройства с точки зрения как железа, так и разработчиков приложений с применением нейросетей.

Как устроена IP-камера

Заглянем под капот любой современной IP-камеры. Под объективом находится сенсор (иногда его называют матрицей), который состоит из нескольких миллионов отдельных пикселей. Они накапливают энергию фотонов и затем через высокоскоростной интерфейс передают их в соседний чип.

Можно представить сенсор как аналог обычной оперативной памяти, где значения, хранятся в строках и столбцах. Но в отличие от оперативной памяти, мы не можем записать информацию в сенсор, так как она там появляется сама за счёт электрического эффекта. Если в памяти измеряют заряд каждой ячейки и понимают это как 0 и 1, в случае сенсора это будет аналоговый уровень яркости. Его оцифровывают уже в значении от 10 до 20 бит в зависимости от точности, которую нужно получить.

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

Например, вот спецификация одного из сенсоров Sony.

55f1965443453125bd887c3354c938f0.jpeg

Производитель предлагает выбирать между 10 и 12 битами на пиксель, подстраивать частоту кадров в секунду, количество физических дифференциальных линий, по которым эти данные передаются, и так далее. Если взять за разрешение этого сенсора стандарт Full HD (2 мегапикселя), умножить это количество на частоту 25 кадров в секунду и добавить служебные биты внутри протокола, то получится, что такой простой сенсор будет выдавать порядка 1 ГБ данных в секунду. Это очень большой объём, обычно его сжимают при передаче потребителю сигнала.

Что касается оптики, то не стоит на ней экономить. Среди профессиональных фотографов существует поверье, что она должна стоить в несколько раз больше, чем корпус камеры. Для IP-камеры это замечание тоже справедливо. Например, простая замена штатного объектива на такой же, но светочувствительный, улучшает точность распознавания на десятки процентов. Главный совет здесь — возьмите несколько разных объективов и посмотрите на разницу.

Свет, который проходит через объектив, попадает на специальные светофильтры внутри сенсора, и дальше сырой поток яркости в каждом пикселе по отдельной высокоскоростной шине направляется в находящийся рядом второй чип — «сердце» IP-камеры. Там его ожидает большой пайплайн обработки.

В чипе находится процессор Image Signal Processing (красный блок на схеме). Вы можете менять настройки IP-камеры (контрастность, яркость и так далее) через интерфейс. Эти значения передаются в ISP, и он регулирует их. Если у вас есть доступ к SDK-вендору, то список настроек, на которые вы можете влиять, гораздо больше.

7b55171e4984a87454aace3a43fef161.jpeg

В чипе производитель закладывает много разных функций, в том числе аппаратную детекцию движения, традиционное сжатие видео, обмен данными с внешним миром по сети. Обычно производитель камеры не разрабатывает эти опции сам, а покупает готовые IP-блоки, или IP-cores, от других вендоров как интеллектуальную собственность.

Сам готовый чип называется System on Chip (SoC). Он выполняет обработку видео и обеспечивает работу маленького сервера с Linux внутри, который занимается обменом данных, запускает прикладное ПО, обновление прошивок и так далее. Обычно на современных камерах это такой же чип на базе архитектуры ARM, который стоит в мобильных телефонах.

Появляется идея: если в чипе есть ARM и обычный Linux, значит, мы можем написать код, скомпилировать его под этот процессор и запустить внутри камеры. Этим кодом может быть как библиотека OpenCV, так и ваш собственный алгоритм, который написан вручную.

Пример такого чипа — флагманский SoC от китайской компании Rockchip, который стоит в некоторых Android-телефонах и планшетах.

8461c97b0deb1427187e20e3d31c4317.jpeg

В структуре любого SoC есть разные IP-блоки или компоненты, из которых состоит чип. В некоторых даже есть встроенный мобильный GPU, что вызывает у ML-инженеров идею запустить на нём нейронки. Однако такой GPU обычно поддерживает упрощённую версию OpenGL ES и заточен на рендеринг графики, а не на параллельные вычисления.

В других чипах камер нет GPU, но есть блок Neural Processor Unit (NPU). Он устроен так, чтобы максимально энергоэффективно обрабатывать операции матричного умножения, и позволяет проводить инференс в embedded-устройствах. Последние несколько лет такой блок добавляется даже в обычные процессоры от Intel и AMD.

Окончательный подход, каким должен быть NPU, ещё не сформирован, и большинство производителей до сих пор экспериментируют. Например, NVIDIA в своих Jetson используют собственный дизайн NPU, который даже лучше, чем CUDA, работает со свёрточными сетями.

4c4d58f1ff152337553607604f3a0285.jpeg

После того как в NVIDIA разработали NPU, они выложили его дизайн в свободный доступ на GitHub, благодаря чему у других разработчиков есть хорошая возможность узнать, как системы подобного класса делают топовые производители. Например, компания Rockchip взяла готовый дизайн NPU от NVIDIA и доработала под свой запрос.

ed6a86550c3fd7832888ee49acb9bfe8.jpeg

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

При этом разработчику при проектировании NPU не нужно ничего знать об embedded-разработке, так как на современном железе применяют Linux, который можно использовать так же, как когда вы пишете бэкенд. Например, у Rockchip есть специализированное API, которое называется RKNN (Rockchip Neural Network).

49583bd2ab9a701fa4869576550a5308.jpeg

Он имеет две части. Первая обычно запускается в Docker на машине разработчика из командной строки, Python-кода или из CI. Фактически она является компилятором модели, то есть берёт файл с моделью в распространённых форматах TensorFlow и PyTorch, делает из него другой бинарный файл, который уже будет использоваться на железе.

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

0791fdaa8473b33d0044bd9315c9b583.png

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

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

b318dfaa2f2d26282af349d89180089d.jpeg

В этом году первой задала тренд компания Ultralytics, которая стоит за моделью YOLO. Инженеры команды очень хорошо знают, как работает их модель, и самостоятельно адаптируют её для NPU. Пользователю нужно только взять готовый файл и подключить в своём приложении.

Кроме топового процессора, у компании Rockchip есть целая линейка SoC на все случаи жизни.

018a906e6910f83ab905107022406d58.jpeg

У Rockchip все новые процессоры идут с NPU, и, возможно, для ваших задач подойдёт более специализированный чип. Например, недавно появились бюджетные процессоры, которые устанавливаются в камерах с искусственным интеллектом. Встроенный NPU помогает делать локальные инференсы на устройства, благодаря чему нет необходимости передавать видеопотоки по сети на сервер.

Так открывается новая парадигма для массовой видеоаналитики. Например, можно вместо видео передавать метаданные о нём: вместо фото человека передавать его ID, скорость и направление движения. Можно сэкономить как на железе, так и на каналах передачи данных.

Одна из таких маленьких умных камер называется Luckfox Pico и сделана на базе как раз свежего миниатюрного чипа от Rockchip. Розничная стоимость платы составляет примерно 7 долларов (чуть больше 500 рублей).

a8ba2f994801d432b06d36d3f985bf64.jpeg

В следующей части статьи мы поговорим об Edge Paradigm в контексте проблем видеоаналитики и вариантов решения, разберём конкретные кейсы, как использовать автономность камер с ИИ и недостатки таких девайсов.

Скрытый текст

А пока не упустите шанс зарегистрироваться на крупнейшую независимую конференцию по Data Science AI Conf 2026! На конференции развития мы разберём ключевые темы, которые интересуют нас (и всех участников рынка) больше всего: роботы и автономный транспорт, LLM, оптимизация железа, сбор Dataset, продуктизация Ai-решений, классический ML и Ai-инструменты для жизни.

Источник

Возможности рынка
Логотип Ucan fix life in1day
Ucan fix life in1day Курс (1)
$0.0007009
$0.0007009$0.0007009
+2.92%
USD
График цены Ucan fix life in1day (1) в реальном времени
Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу crypto.news@mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.