Что такое компьютерное зрение простыми словами

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

Для компьютера картинка — это таблица чисел. У каждой точки, пикселя, есть яркость и цвет. Человек смотрит на кадр и сразу видит рабочего в каске. Программе нужно пройти путь от миллионов чисел к словам «человек» и «каска» и к тому, что каска надета именно на этого человека.

На выходе получаются факты, с которыми можно работать: «на площадке пять человек, один без каски».

На чём основаны технологии компьютерного зрения

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

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

Компьютерное, машинное и техническое зрение: в чём разница

Термины часто путают, и граница между ними условная. Обычно их различают так.

ТерминО чём обычно говорятПример
Обработка изображенийМеняют саму картинку: убирают шум, повышают резкость, выравнивают светФильтр в фоторедакторе
Компьютерное зрениеПонимают, что на картинке, когда свет и ракурс заранее не заданыНайти людей без касок на записи стройки
Машинное и техническое зрениеЗрение для производства и роботов, где свет, ракурс и задача заданы заранееПроверить детали на конвейере, навести робота на деталь
Обработка естественного языкаПонимают текст, в том числе речь, переведённую в текстЧат-бот отвечает на вопрос клиента

Компьютерное зрение и обработка естественного языка — две разные области ИИ. Есть модели, которые понимают и картинку, и текст: описывают фото словами или отвечают на вопрос о схеме. Их называют мультимодальными. О выборе моделей под задачу рассказано в статье какую нейросеть выбрать.

Основные задачи компьютерного зрения

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

ЗадачаНа какой вопрос отвечаетПример
КлассификацияЧто на кадре или в его частиЛегковая машина, грузовик или скорая
ДетекцияГде каждый объектРамка вокруг каждого человека на площадке
СегментацияКакие точки кадра к чему относятсяТочный контур дороги, зоны или дефекта
ТрекингТот же ли это объект, что на прошлом кадреОдин посетитель не считается дважды
Распознавание текста (OCR)Какие символы на изображенииНомер машины, скан договора
Поза человекаКак расположены части телаЧеловек лежит или поднял руки
Распознавание лицКто этоПроход по лицу
Поиск аномалийОтличается ли кадр от нормыБрак на детали

Несколько пояснений к таблице.

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

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

Как система обычно находит человека без каски
  1. Найти людей
  2. Найти каски
  3. СопоставитьЧья каска и у кого её нет
  4. НарушениеУ конкретного человека в кадре

Бывает, что хватает одной задачи. Режим «Спецтранспорт» у Flexvision Шлагбаум узнаёт 18 типов техники по виду машины, без базы номеров, и это классификация. Режим пока пилотный.

Как устроена система компьютерного зрения: от камеры до события

Нейросеть только одна из частей системы. Вот что происходит с одним кадром.

  1. Кадр. Камера передаёт видеопоток, обычно по RTSP, и система берёт из него кадры с нужной частотой.
  2. Подготовка. Кадр уменьшают до размера, с которым работает модель, и приводят числа к нужному виду.
  3. Модель. Нейросеть выдаёт ответ с оценкой уверенности: «человек, 0,97» и рамку вокруг него.
  4. Порог. Ответы с низкой уверенностью отбрасывают. От порога зависит, будет система шуметь или пропускать события.
  5. Событие. Рамки связывают между кадрами и проверяют условия, например «вошёл в зону» или «нет каски». Если условие сработало, в журнале появляется запись со временем, камерой и кадром.

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

Модель работает там, где стоит вычислитель. У Flexvision это мини-компьютер у камер, ваш сервер с видеокартой или сервер Designflex, в зависимости от продукта и объекта. Если анализ идёт у камер или на сервере в здании, видео наружу не уходит. Когда система стоит на объекте, анализ и журнал там продолжают работать и без связи.

Где идёт анализ
  • Мини-компьютер у камерВидео не уходит с объекта
  • Ваш сервер с видеокартойNVIDIA от 16 ГБ видеопамяти
  • Сервер DesignflexНапример, для Стройнадзора, журнал и отчёты в браузере
Вариант зависит от продукта и объекта.

Как модель компьютерного зрения учится

Модель учится на примерах. Порядок обычно такой.

  1. Собрать кадры. Нужны кадры из тех условий, где модель будет работать: день и ночь, дождь, разные ракурсы.
  2. Разметить. Люди обводят объекты рамками или контурами и подписывают: «каска», «жилет», «человек». Ошибки разметки модель выучит вместе с остальным.
  3. Обучить. Модель много раз прогоняют по размеченным кадрам, и она подстраивает свои параметры, чтобы ошибаться реже.
  4. Проверить на новых кадрах. Качество считают на кадрах, которых модель не видела при обучении. Иначе цифра обычно выходит завышенной.
  5. Дообучить. Для частых объектов, например людей и машин, есть готовые модели. Под вашу спецодежду, упаковку или необычный ракурс их дообучают на ваших кадрах.

Модель видит только то, чему её научили, поэтому модели обновляют и после запуска. У Flexvision обновления и дообучение моделей идут по подписке на облако.

Где применяют компьютерное зрение: бизнес, город, производство

Компьютерное зрение применяют там, где есть камера и повторяющийся вопрос к картинке.

ГдеЧто делает компьютерное зрение
СтройкаНаходит людей без касок и жилетов, проход в опасную зону, простой техники. Пример: Flexvision Стройнадзор
Въезд на территориюРаспознаёт номер и тип машины и решает, открыть ли шлагбаум
Торговые и бизнес-центрыСчитает посетителей, показывает, куда они идут, проверяет обходы охраны и уборки. Пример: Flexvision ТЦ и БЦ
Город и учрежденияСчитает посетителей спортобъектов, проверяет обходы охраны в школах и уборку, помогает контролировать подрядчиков по уже установленным камерам. Пример: Flexvision для города
Наружная рекламаFlexvision Наружная реклама оценивает, сколько людей прошло в зоне видимости носителя и сколько из них повернулись к рекламе
ПроизводствоСредства защиты, опасные зоны, простой, брак на линии
ДокументыЧитает сканы и фотографии документов
Роботы и транспортПомогает роботу найти деталь, а машине заметить препятствие

Какой из примеров относится к компьютерному зрению

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

Что относится к компьютерному зрению
  • Относится
    • Телефон узнаёт владельца по лицу
    • Камера на входе считает посетителей
    • Программа читает номер машины
    • Приложение распознаёт паспорт по фотографии
  • Не относится
    • Голосовой помощник понимает команду
    • Переводчик переводит текст
    • Магазин советует товар по истории покупок
    • Датчик движения включает свет

Ограничения и ошибки компьютерного зрения

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

Чаще всего виноваты условия съёмки и данные. Ночью, против солнца или фар картинка теряет детали. Мелкому объекту не хватает пикселей: например, у Flexvision ТЦ и БЦ человек должен занимать в кадре не меньше 80 пикселей для подсчёта посетителей и 50 для обходов. Полностью закрытый объект модель не увидит, а частично закрытый может пропустить. Снегопад, новая форма охраны или необычная техника могут оказаться тем, чего модель не видела при обучении. Если камеру задели или повернули, зоны и линии остаются старыми. Наконец, сильно сжатый поток теряет мелкие детали, а при малой частоте кадров пропадают быстрые движения.

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

Что мешает и что делают
Что мешает
Что делают
  • Ночь и свет в объектив
    ИК-подсветка, WDR для входа против света
  • Объект мелкий в кадре
    Камера ближе или другой ракурс
  • Объект закрыт другими
    Иногда вторая камера на ту же зону
  • Модель не видела таких кадров
    Дообучение на кадрах с ваших камер
  • Камеру сдвинули
    Новая разметка зон и линий

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

Отдельный вопрос — лица. Распознавание лиц относится к биометрии, и к нему свои требования. Для подсчёта людей или проверки касок лица не нужны: в ТЦ и БЦ Flexvision считает людей обезличенно, лица не распознаются и не хранятся. О законе и данных подробнее в статье про нейросети и персональные данные.

Как начать с камер, которые уже стоят

Для первого шага новые камеры обычно не нужны. Начинают с записи.

  1. Назовите вопрос к картинке. Например, «люди без касок в зоне крана» или «пропущенный обход охраны». Сразу решите, кто получит сигнал.
  2. Соберите записи. Фрагменты с нужных камер днём, ночью и в плохую погоду.
  3. Проверьте на записи. Прогон покажет, что система находит и подходит ли ракурс. С этого начинается запуск Flexvision: вы присылаете фрагмент с камеры и видите, что система на нём нашла.
  4. Запустите пилот на нескольких камерах. Заранее договоритесь, что считать верным срабатыванием.
  5. Замерьте точность на контрольной выборке с ваших камер. Цифры из презентации получены на чужих данных.

Если своего сервера нет, железо подбирают под объект: мини-узел у камер или сервер на здание. Стройнадзор можно запустить и на сервере Designflex, тогда журнал и отчёты смотрят в браузере. Если есть сервер с видеокартой NVIDIA от 16 ГБ видеопамяти, Flexvision разворачивают на нём.

Какая камера нужна для компьютерного зрения

Обычно подходит IP-камера с RTSP-потоком, часто та, что уже висит на объекте. Марка важна меньше, чем то, как камера видит объект. Для касок и жилетов человек должен занимать в кадре достаточно места, для шлагбаума Flexvision нужен поток 1080p на линию проезда, для подсчёта посетителей — камера над входом. Часы камер сверяют по NTP, иначе время в журнале разойдётся с записью.

Когда звать подрядчика и что он должен сделать

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

Что он должен сделать:

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

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