Технологии
Задачи компьютерного зрения: классификация, детекция, сегментация, OCR
Когда заказчик говорит «хочу, чтобы камера всё понимала», за фразой почти всегда прячется одна-две конкретные задачи. «Всё» не бывает — бывает «посчитать людей на входе», «поймать каску» или «отбраковать скол». И это разные задачи, с разными моделями, точностью и ценой ошибки.
Понимать, на какой класс задач раскладывается ваша проблема, полезно ещё до разговора с подрядчиком: вы не закажете дорогую сегментацию там, где хватит классификации, и не удивитесь, почему «детекция» сама по себе не считает объекты. Ниже — основные задачи компьютерного зрения без академической мути: что это, чем отличается и какой бизнес-сценарий закрывает.
Классификация: что в кадре целиком
Самая простая задача. Модель смотрит на картинку и выдаёт ярлык: «брак / не брак», «есть огонь / нет огня», «помидор спелый / зелёный». Не «где», а «что» — про кадр целиком.
Классификация дешева и быстра, потому что от модели требуется один ответ на изображение. Если на конвейере одна деталь в кадре и вопрос бинарный — годная она или нет, — этого часто достаточно.
Где работает:
- сортировка на линии: годное/негодное, сорт А/Б/В;
- определение состояния — пустой стеллаж или с товаром, чистая поверхность или загрязнённая;
- предварительный фильтр перед более тяжёлой моделью: сначала классификатор отсеивает «тут точно ничего нет», и только подозрительные кадры идут на детальный разбор.
Честная оговорка: классификация молчит про координаты. Она скажет «в кадре есть человек без каски», но не покажет, где он. Если в кадре пять человек, а каски нет у одного — простой классификатор тут уже пасует, нужна детекция.
Детекция и локализация: что и где
Детекция отвечает на два вопроса сразу — что находится в кадре и где именно. Результат — прямоугольные рамки (bounding box) вокруг каждого объекта с подписью: «человек», «каска», «автомобиль», «коробка».
Это рабочая лошадка прикладного зрения. Большинство задач видеоаналитики — это детекция: найти все объекты нужного типа и понять их положение.
Где работает:
- охрана периметра — детектор находит человека, пересёкшего линию, и игнорирует кошку или качающуюся ветку;
- контроль СИЗ — модель находит и человека, и каску по отдельности, а потом проверяет, надета ли одна на другого;
- подсчёт — сначала надо детектировать каждый объект, потом считать (об этом ниже);
- распознавание номеров начинается с детекции — сперва найти на кадре сам номерной знак, потом уже читать символы. Это база для распознавания номеров.
Детекция тяжелее классификации и требует больше размеченных данных: каждый объект на обучающих кадрах нужно обвести рамкой вручную. Но именно она открывает большинство сценариев.
Сегментация: точные границы объекта
Сегментация идёт дальше детекции. Вместо грубой рамки она размечает объект попиксельно — точный контур, повторяющий форму. Не «где-то в этом прямоугольнике корова», а ровно те пиксели, которые корова.
Это нужно, когда важны форма и точные границы:
- замер площади — какой процент поверхности занят ржавчиной, плесенью, разливом;
- медицинские снимки — обвести опухоль или орган по контуру, а не рамкой;
- разделение слипшихся объектов — две детали вплотную детектор обведёт одной рамкой, а сегментация разрежет по границе.
Сегментация — самая дорогая в разметке задача: контуры руками размечать долго. Поэтому её берут только там, где рамки реально не хватает. «Есть скол или нет» — это классификация. «Какой площади скол» — уже сегментация.
Распознавание: номера, лица, текст
Под «распознаванием» обычно понимают задачи, где надо не просто найти объект, а идентифицировать его — прочитать или сопоставить с базой.
- Номера. Найти знак (детекция), выровнять, прочитать символы (OCR), сверить с базой. На этом стоят парковки, КПП, учёт транспорта. Детали — распознавание номеров.
- Лица. Найти лицо, превратить его в числовой «отпечаток» (эмбеддинг) и сравнить с базой сотрудников. Так работает доступ по лицу и учёт рабочего времени — карту можно передать, лицо нет. Подробнее — распознавание лиц.
- Текст (OCR). Прочитать дату на этикетке, номер партии, код маркировки, показания аналогового прибора. OCR на промышленной съёмке капризен: смятая этикетка, блик, наклон — и символ читается неверно. Поэтому к голому OCR добавляют проверку по формату: дата должна быть датой, код — нужной длины.
Распознавание лиц и номеров — связка задач подряд: сначала детекция, потом идентификация. Ошибка на первом шаге губит весь конвейер: не нашли знак — нечего читать.
Трекинг: один объект во времени
Детекция работает по одному кадру. Трекинг связывает кадры между собой: понимает, что человек в углу на кадре 100 и человек в центре на кадре 130 — это один и тот же человек, а не два разных.
Зачем это нужно:
- чтобы не посчитать одного человека десять раз, пока он идёт через зону;
- чтобы измерить время — сколько фура простояла под разгрузкой, сколько посетитель провёл у витрины;
- чтобы строить маршруты — как покупатель ходит по залу, не нарушает ли погрузчик траекторию.
Без трекинга подсчёт превращается в кашу: камера на каждом кадре видит «человек есть», и наивная система насчитает тысячи там, где прошёл один.
Подсчёт: сколько объектов
Подсчёт кажется простым — детектируй и считай. На практике дьявол в деталях: люди перекрывают друг друга, объекты входят и выходят из кадра, в толпе рамки сливаются.
Где это деньги:
- трафик в ритейле — сколько вошло, сколько вышло, в какие часы пик, какая конверсия в покупку;
- контроль скоплений — слишком много людей в опасной зоне;
- логистика — сколько коробок на паллете, сколько машин в очереди.
Для разреженных сцен (десяток людей) работает «детекция плюс трекинг». Для плотных толп (стадион, площадь) используют отдельные модели оценки плотности, которые считают не по головам, а по «массе» в кадре.
Оценка позы: что делает тело
Оценка позы (pose estimation) находит ключевые точки тела — суставы, и по их взаимному положению понимает, что человек делает: стоит, наклонился, упал, поднял руку.
Прикладные сценарии:
- детекция падения человека — на производстве, в доме престарелых, на безлюдном объекте;
- контроль действий — правильно ли оператор выполняет сборку, не сунул ли руку в опасную зону станка;
- эргономика и спорт — анализ движений.
Поза различает не наличие человека, а его состояние. Но она и чувствительнее к ракурсу и перекрытиям.
Обнаружение аномалий и дефектов
Отдельный и коварный класс. Все предыдущие задачи обучаются на примерах: покажи модели тысячу касок, и она научится их находить. С дефектами так не выходит — заранее собрать примеры всех возможных царапин, сколов и трещин невозможно, дефекты непредсказуемы.
Поэтому логику часто переворачивают: модель учат на одних «хороших» изделиях, а всё, что от эталона отклоняется, помечают как аномалию. Не «вот так выглядит брак», а «вот так выглядит норма, остальное — на проверку».
Где работает:
- визуальный контроль качества на конвейере — скол, царапина, непропай, кривой шов, посторонний предмет;
- контроль упаковки и маркировки — смятая пачка, недопечать, нет даты.
Это самый частый промышленный запрос — и самый тонкий по точности. Граница «дефект / не дефект» бывает размытой даже для контролёров-людей, поэтому такие системы строят итеративно: запустили, накопили спорные случаи, доразметили, дообучили. Как это устроено на линии — в материале про контроль качества продукции.
Как это собирается в систему
Реальный сценарий почти никогда не состоит из одной задачи. Учёт транспорта на въезде — это детекция знака плюс OCR плюс трекинг (въезд-выезд по одному номеру). Контроль СИЗ — детекция человека, детекция каски, проверка их взаимного положения.
Поэтому, формулируя задачу подрядчику, полезно разложить её на кирпичи: что найти, надо ли это идентифицировать, важны ли точные границы, нужно ли следить во времени. Чем точнее разложите — тем дешевле и предсказуемее результат. Готовые сценарии под типовые задачи собраны в разделе про видеоаналитику.
И главная отрезвляющая мысль: компьютерное зрение не «понимает» картинку как человек. Оно решает узкую задачу, на которую обучено, и за её пределами слепо. Система, идеально считающая каски, не заметит пожар — её этому не учили. Сила приходит не от «умной камеры», а от точно поставленной задачи под конкретную боль бизнеса.
// связанные услуги
Хотите так же на вашем объекте?
Покажем видеоаналитику на ваших камерах и рассчитаем окупаемость. Бесплатно.