Статья является вводной в проблему компьютерного зрения. Разумеется, в рамках одной статьи невозможно подробно рассказать об инструментах и научить ими пользоваться, однако целью ставится введение в задачу реализации компьютерного зрения, зачем оно нужно и где применяется на данный момент, а где планируется.
Строго говоря, компьютерное зрение — теория и технология создания машин (алгоритмов), которые могут производить обнаружение, отслеживание и классификацию объектов.
Для лучшего понимания проблемы, встающей перед исследователями, начнем с простого примера: одной из базовых задач компьютерного зрения – классификации. Взгляните на изображение, и определите класс объекта, изображенного на нем.
Очевидно, что для человека такая задача не является сложной, несмотря на огромную размерность входных данных.
Теперь же сформулируем задачу по-другому: ниже представлены два изображения (собака и кошка), необходимо сформулировать строгий алгоритм для классификации.
Весьма вероятно, что сформулировать такой алгоритм у вас не получится, что прекрасно демонстрирует одну из ключевых проблем компьютерного зрения: для большинства актуальных задач отсутствуют формализуемые алгоритмы решения.
Зачем нужно компьютерное зрение?
Идея компьютерного зрения в основе своей идею автоматизации — замену человеческого труда трудом машины. И естественно, первое место, где компьютерное зрение начало широко применяться – это различного рода производства, в частности на участках контроля качества. И если в начале целью было заменить человека, исключив лишь человеческий фактор, то по мере внедрения оказалось, что в задаче визуального контроля качества машина за счет высокой повторяемости и высокого разрешения способна значительно повысить качество и скорость контроля: машина не устает, и может работать быстрее человека.
В целом, с развитием компьютерного зрения, камера становится полноправным датчиком для систем управления и измерительных системы. Так, с помощью компьютерного зрения вполне успешно в промышленных системах решаются следующие задачи:
- Автоматический поиск дефектов путем сравнения с образцом или классификации
- Построение 3-х мерных моделей, как объектов, так и местности;
- Автоматический контроль и учет (как правило, посредством штрих-кодов или других кодовых маркировок);
- Системы безопасности (датчики движения, распознавание лиц, дактилоскопические датчики);
- и много другое.
Значительная часть этих задач решается не на базе нейросетевых моделей, и работает достаточно стабильно в силу возможности фиксации параметров как окружающего освещения, так и параметров самой камеры и успешно применяется в промышленных системах. Однако, сложный анализ изображения в быстро изменяющихся условиях повседневного мира все еще находится на переднем фронте науки и техники.
Среди актуальных задач можно выделить:
- Распознавание объектов, лиц, позы
- Дополненная реальность
- Различные системы улучшения изображения (помимо фильтрации шумов и цветокоррекции)
- Измерительные системы на базе видеокамер, в том числе в медицинских и исследовательских целях.
Стоит отметить, что большинство подходов, используемые не в промышленных условиях (для сложных задач) основываются на нейросетевых моделях, в силу большей их робастности к изменениям окружающей среды и параметрам камеры.
Подводя итог по областям применения компьютерного зрения стоит отметить, что все задачи можно разделить на следующие группы или их комбинации:
- Классификация
- Локализация
- Детектирование
- Сегментация
- Распознавание позы (формы)
Практическая часть
- Компьютерное зрение. Машинное обучение без нейронных сетей (scikit-learn)
- Компьютерное зрение. Машиное обучение с использовнием нейронных сетей (Keras)
- Использование предобученных сетей в задаче детектирования (Coco dataset)
Уведомление: Состязательные (Adversarial) атаки с помощью Keras и TensorFlow | Digiratory