Что такое компьютерное зрение простыми словами
Компьютерное зрение (computer vision) — раздел искусственного интеллекта, который учит программу понимать изображения и видео. Программа получает кадр и отвечает на вопросы о нём: что здесь есть, где это находится, что изменилось с прошлого кадра.
Для компьютера картинка — это таблица чисел. У каждой точки, пикселя, есть яркость и цвет. Человек смотрит на кадр и сразу видит рабочего в каске. Программе нужно пройти путь от миллионов чисел к словам «человек» и «каска» и к тому, что каска надета именно на этого человека.
На выходе получаются факты, с которыми можно работать: «на площадке пять человек, один без каски».
На чём основаны технологии компьютерного зрения
Раньше признаки описывали вручную: искали на кадре границы, углы, пятна нужного цвета, сравнивали с шаблоном. Такие правила работают при постоянном свете и ракурсе, например над конвейером, и часто ломаются на улице.
Сейчас в основе компьютерного зрения лежит машинное обучение. Нейросеть сама находит признаки, если показать ей много кадров с правильными ответами. Поэтому компьютерное зрение и машинное обучение обычно идут вместе: первое говорит, какую задачу решаем, второе даёт способ её решить.
Компьютерное, машинное и техническое зрение: в чём разница
Термины часто путают, и граница между ними условная. Обычно их различают так.
| Термин | О чём обычно говорят | Пример |
|---|---|---|
| Обработка изображений | Меняют саму картинку: убирают шум, повышают резкость, выравнивают свет | Фильтр в фоторедакторе |
| Компьютерное зрение | Понимают, что на картинке, когда свет и ракурс заранее не заданы | Найти людей без касок на записи стройки |
| Машинное и техническое зрение | Зрение для производства и роботов, где свет, ракурс и задача заданы заранее | Проверить детали на конвейере, навести робота на деталь |
| Обработка естественного языка | Понимают текст, в том числе речь, переведённую в текст | Чат-бот отвечает на вопрос клиента |
Компьютерное зрение и обработка естественного языка — две разные области ИИ. Есть модели, которые понимают и картинку, и текст: описывают фото словами или отвечают на вопрос о схеме. Их называют мультимодальными. О выборе моделей под задачу рассказано в статье какую нейросеть выбрать.
Основные задачи компьютерного зрения
Почти любую систему можно разложить на несколько типовых задач. Каждая отвечает на свой вопрос о кадре.
| Задача | На какой вопрос отвечает | Пример |
|---|---|---|
| Классификация | Что на кадре или в его части | Легковая машина, грузовик или скорая |
| Детекция | Где каждый объект | Рамка вокруг каждого человека на площадке |
| Сегментация | Какие точки кадра к чему относятся | Точный контур дороги, зоны или дефекта |
| Трекинг | Тот же ли это объект, что на прошлом кадре | Один посетитель не считается дважды |
| Распознавание текста (OCR) | Какие символы на изображении | Номер машины, скан договора |
| Поза человека | Как расположены части тела | Человек лежит или поднял руки |
| Распознавание лиц | Кто это | Проход по лицу |
| Поиск аномалий | Отличается ли кадр от нормы | Брак на детали |
Несколько пояснений к таблице.
- Сегментация. Чаще всего различают два вида сегментации. Семантическая отмечает одинаково все точки одного класса, например всех людей сразу. Сегментация экземпляров отделяет каждого человека от соседа. Вторая нужна, когда объекты стоят вплотную.
- Трекинг связывает рамки на соседних кадрах в один путь. Без него не посчитать посетителей и не понять, сколько времени машина стоит у ворот.
- Распознавание текста работает и с документами, и с номерами машин. Подробности в статьях про распознавание документов и про систему распознавания номеров.
Реальная задача, как правило, собирается из нескольких. Чтобы найти человека без каски, система обычно находит людей, находит каски и сопоставляет одно с другим. У Flexvision Стройнадзор нарушение привязано к конкретному человеку в кадре.
- Найти людей
- Найти каски
- СопоставитьЧья каска и у кого её нет
- НарушениеУ конкретного человека в кадре
Бывает, что хватает одной задачи. Режим «Спецтранспорт» у Flexvision Шлагбаум узнаёт 18 типов техники по виду машины, без базы номеров, и это классификация. Режим пока пилотный.
Как устроена система компьютерного зрения: от камеры до события
Нейросеть только одна из частей системы. Вот что происходит с одним кадром.
- Кадр. Камера передаёт видеопоток, обычно по RTSP, и система берёт из него кадры с нужной частотой.
- Подготовка. Кадр уменьшают до размера, с которым работает модель, и приводят числа к нужному виду.
- Модель. Нейросеть выдаёт ответ с оценкой уверенности: «человек, 0,97» и рамку вокруг него.
- Порог. Ответы с низкой уверенностью отбрасывают. От порога зависит, будет система шуметь или пропускать события.
- Событие. Рамки связывают между кадрами и проверяют условия, например «вошёл в зону» или «нет каски». Если условие сработало, в журнале появляется запись со временем, камерой и кадром.
Как настраивают правила для каждой камеры и что попадает в журнал, разобрано в статье про видеоаналитику для бизнеса.
Модель работает там, где стоит вычислитель. У Flexvision это мини-компьютер у камер, ваш сервер с видеокартой или сервер Designflex, в зависимости от продукта и объекта. Если анализ идёт у камер или на сервере в здании, видео наружу не уходит. Когда система стоит на объекте, анализ и журнал там продолжают работать и без связи.
- Мини-компьютер у камерВидео не уходит с объекта
- Ваш сервер с видеокартойNVIDIA от 16 ГБ видеопамяти
- Сервер DesignflexНапример, для Стройнадзора, журнал и отчёты в браузере
Как модель компьютерного зрения учится
Модель учится на примерах. Порядок обычно такой.
- Собрать кадры. Нужны кадры из тех условий, где модель будет работать: день и ночь, дождь, разные ракурсы.
- Разметить. Люди обводят объекты рамками или контурами и подписывают: «каска», «жилет», «человек». Ошибки разметки модель выучит вместе с остальным.
- Обучить. Модель много раз прогоняют по размеченным кадрам, и она подстраивает свои параметры, чтобы ошибаться реже.
- Проверить на новых кадрах. Качество считают на кадрах, которых модель не видела при обучении. Иначе цифра обычно выходит завышенной.
- Дообучить. Для частых объектов, например людей и машин, есть готовые модели. Под вашу спецодежду, упаковку или необычный ракурс их дообучают на ваших кадрах.
Модель видит только то, чему её научили, поэтому модели обновляют и после запуска. У Flexvision обновления и дообучение моделей идут по подписке на облако.
Где применяют компьютерное зрение: бизнес, город, производство
Компьютерное зрение применяют там, где есть камера и повторяющийся вопрос к картинке.
| Где | Что делает компьютерное зрение |
|---|---|
| Стройка | Находит людей без касок и жилетов, проход в опасную зону, простой техники. Пример: Flexvision Стройнадзор |
| Въезд на территорию | Распознаёт номер и тип машины и решает, открыть ли шлагбаум |
| Торговые и бизнес-центры | Считает посетителей, показывает, куда они идут, проверяет обходы охраны и уборки. Пример: Flexvision ТЦ и БЦ |
| Город и учреждения | Считает посетителей спортобъектов, проверяет обходы охраны в школах и уборку, помогает контролировать подрядчиков по уже установленным камерам. Пример: Flexvision для города |
| Наружная реклама | Flexvision Наружная реклама оценивает, сколько людей прошло в зоне видимости носителя и сколько из них повернулись к рекламе |
| Производство | Средства защиты, опасные зоны, простой, брак на линии |
| Документы | Читает сканы и фотографии документов |
| Роботы и транспорт | Помогает роботу найти деталь, а машине заметить препятствие |
Какой из примеров относится к компьютерному зрению
Простое правило: если система понимает изображение или видео, это компьютерное зрение. Телефон узнаёт владельца по лицу, камера на входе считает посетителей, программа читает номер машины, приложение распознаёт паспорт по фотографии: всё это примеры компьютерного зрения. Голосовой помощник понимает команду с помощью распознавания речи, переводчик работает с текстом, советы магазина по истории покупок даёт рекомендательная система, и к зрению они не относятся. Датчик движения, который включает свет, тоже не относится: изображение он не разбирает.
- Относится
- Телефон узнаёт владельца по лицу
- Камера на входе считает посетителей
- Программа читает номер машины
- Приложение распознаёт паспорт по фотографии
- Не относится
- Голосовой помощник понимает команду
- Переводчик переводит текст
- Магазин советует товар по истории покупок
- Датчик движения включает свет
Ограничения и ошибки компьютерного зрения
Система ошибается двумя способами: подаёт ложный сигнал или пропускает событие. Как связаны эти ошибки и как их считать, объяснено в разделе про точность и полноту в статье про видеоаналитику. Здесь о том, откуда ошибки берутся.
Чаще всего виноваты условия съёмки и данные. Ночью, против солнца или фар картинка теряет детали. Мелкому объекту не хватает пикселей: например, у Flexvision ТЦ и БЦ человек должен занимать в кадре не меньше 80 пикселей для подсчёта посетителей и 50 для обходов. Полностью закрытый объект модель не увидит, а частично закрытый может пропустить. Снегопад, новая форма охраны или необычная техника могут оказаться тем, чего модель не видела при обучении. Если камеру задели или повернули, зоны и линии остаются старыми. Наконец, сильно сжатый поток теряет мелкие детали, а при малой частоте кадров пропадают быстрые движения.
С большей частью этого справляются обычными средствами: ИК-подсветкой и WDR для входа против света, камерой ближе или другим ракурсом, иногда второй камерой на ту же зону, дообучением на кадрах с ваших камер и новой разметкой зон после сдвига камеры.
- Ночь и свет в объективИК-подсветка, WDR для входа против света
- Объект мелкий в кадреКамера ближе или другой ракурс
- Объект закрыт другимиИногда вторая камера на ту же зону
- Модель не видела таких кадровДообучение на кадрах с ваших камер
- Камеру сдвинулиНовая разметка зон и линий
Модель не понимает намерений. Она видит человека у забора, а нарушитель это или ремонтник, решают правила и человек. Поэтому заранее задают, что система делает при сомнении. Flexvision Шлагбаум, например, при сомнении не открывает, если это не спецтехника, а проезд сохраняет в журнале с кадром и видеофрагментом.
Отдельный вопрос — лица. Распознавание лиц относится к биометрии, и к нему свои требования. Для подсчёта людей или проверки касок лица не нужны: в ТЦ и БЦ Flexvision считает людей обезличенно, лица не распознаются и не хранятся. О законе и данных подробнее в статье про нейросети и персональные данные.
Как начать с камер, которые уже стоят
Для первого шага новые камеры обычно не нужны. Начинают с записи.
- Назовите вопрос к картинке. Например, «люди без касок в зоне крана» или «пропущенный обход охраны». Сразу решите, кто получит сигнал.
- Соберите записи. Фрагменты с нужных камер днём, ночью и в плохую погоду.
- Проверьте на записи. Прогон покажет, что система находит и подходит ли ракурс. С этого начинается запуск Flexvision: вы присылаете фрагмент с камеры и видите, что система на нём нашла.
- Запустите пилот на нескольких камерах. Заранее договоритесь, что считать верным срабатыванием.
- Замерьте точность на контрольной выборке с ваших камер. Цифры из презентации получены на чужих данных.
Если своего сервера нет, железо подбирают под объект: мини-узел у камер или сервер на здание. Стройнадзор можно запустить и на сервере Designflex, тогда журнал и отчёты смотрят в браузере. Если есть сервер с видеокартой NVIDIA от 16 ГБ видеопамяти, Flexvision разворачивают на нём.
Какая камера нужна для компьютерного зрения
Обычно подходит IP-камера с RTSP-потоком, часто та, что уже висит на объекте. Марка важна меньше, чем то, как камера видит объект. Для касок и жилетов человек должен занимать в кадре достаточно места, для шлагбаума Flexvision нужен поток 1080p на линию проезда, для подсчёта посетителей — камера над входом. Часы камер сверяют по NTP, иначе время в журнале разойдётся с записью.
Когда звать подрядчика и что он должен сделать
Вопрос к картинке и записи вы подготовите сами. Подрядчик нужен, когда задачу надо довести до ежедневной работы: подобрать или дообучить модель, поставить вычислитель, разметить зоны на каждой камере, связать события с вашими системами.
Что он должен сделать:
- показать результат на записи с ваших камер до договора;
- согласовать критерии пилота и посчитать точность на контрольной выборке;
- объяснить, где идёт анализ и уходит ли видео с объекта;
- рассказать, как обновляют модели и кто перенастраивает камеры после изменений на объекте.
Так устроен запуск Flexvision: сначала ваша запись, потом пилот или запуск и замер точности на ваших данных.



