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