Как работает компьютерное зрение в автоматических системах: кратко для любознательных

112
views

Эта статья посвящена рассмотрению основных алгоритмов обработки графической информации, применяемых в системах управления, основанных на технологиях компьютерного зрения.

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

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

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

Основной целью предварительной обработки информации является создание условий, способствующих повышению эффективности и качества анализа изображения. Выбор конкретного метода предобработки зависит от особенностей используемых данных. На этом этапе решаются как относительно простые задачи (фильтрация шума, выделение контуров, сегментация, коррекция яркости и контрастности), так и более сложные задачи (генерация изображений, кодирование, поиск и сегментация объектов).

Классификация основных типов задач обработки информации в области компьютерного зрения

В настоящем исследовании выделено четыре фундаментальных направления обработки информации (см. рис. 1), напрямую связанных с областью компьютерного зрения и реализуемых в рамках программно-аппаратных систем, основанных на данной технологии.

1. Сжатие:

Исходная графическая информация характеризуется значительным объемом данных (размерность соответствует произведению количества каналов, ширины и длины изображения). Поэтому актуальной задачей является минимизация объема данных посредством применения различных алгоритмов:

  • изменение размера изображения;
  • выделение и удаление цветовых каналов (преобразование в оттенки серого или
  • черно-белую цветовую палитру);
  • сжатие с использованием нейронных сетей типа автоэнкодеров или вейвлет-преобразований, сохраняющих ключевые признаки изображений.
2. Поиск:

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

  • сегментирования;
  • обнаружения объектов и их классификации;
  • трекинга (отслеживания);
  • поиска ключевых точек объектов.
3. Восстановление:

Данный класс задач включает в себя повышение качества исходных изображений посредством:

  • увеличения динамического диапазона и резкости;
  • увеличения разрешения кадра;
  • восстановления поврежденных участков (дорисовки изображения);
  • удаления шумов и артефактов (капель, грязи, тумана и т.д.).
4. Преобразование:

Включает в себя применение:

  • различных эффектов;
  • изменение цветовых схем;
  • создание новых изображений на основе исходных кадров с добавлением стилевых эффектов;
  • генерацию следующего кадра на основе предыдущих с использованием рекуррентных и сверточных нейронных сетей.

Для перечисленных задач обработки графических данных проведен сравнительный анализ, результаты которого представлены в таблице 1. В данной таблице под X понимается исходная графическая информация, а Y – выходные данные. Знак «+» в i-м столбце обозначает, что данное свойство выполняется для i-й задачи, а знак «–» – что указанное свойство в i-й категории задач отсутствует либо не выполняется.

Рис. 1. Классификация задач обработки информации

Сравнение задач генерации данных в области компьютерного зрения

Рассмотрим характеристики, представленные в вышеприведенной таблице.

  • Свойство «|Y| > |Х|»: Означает, что размерность выходных данных (|Y|) превосходит размерность входных данных (|Х|). В контексте задачи 3 это означает преобразование неполной или поврежденной информации (например, с пропусками значений, фрагментами или меньшим разрешением) во полноценное изображение.
  • Свойство «|Y| < |Х|»: Размерность выходных данных меньше размерности входных данных. Такая ситуация характерна для задач сжатия данных или создания новых информационных объектов меньшего размера.
  • Свойство «|Y| = |Х|»: Размерность выходных и входных данных совпадает. Данное свойство реализуется в задачах 3-4, где требуется восстановление изображения от шумов, его преобразование или прогнозирование следующего кадра. В этих случаях ожидается графическая информация исходной размерности.
  • Свойство «Y задан»: Определяет необходимость наличия размеченных выходных данных для успешного решения задачи. В задаче 1 это не требуется, поскольку в качестве выходных данных используются исходные входные данные. В задачах поиска и восстановления необходимо провести маркировку кадра (обозначить ключевые точки, сегменты, указать классы объектов) или задать ожидаемый кадр без потерь или в высоком разрешении соответственно. В четвертой задаче выходные данные могут как обрабатываться на основе заданных алгоритмов, так и требоваться изначально, например, для прогнозирования или извлечения стиля.

Следующим шагом будет формулировка алгоритмов решения для обозначенных классов задач обработки графической информации.

Алгоритмы Обработки Графической Информации: Формальное Описание

В настоящем документе предлагается общий алгоритм для решения задач обработки графической информации, которые были сформулированы ранее. Данный алгоритм условно подразделяется на три основных блока:

1. Предварительная обработка изображения:

На данном этапе осуществляется чтение данных из файла изображения, определение исходных размеров, количества цветовых каналов, нормализация значений интенсивности цвета (перевод из целочисленного диапазона 0…255 в вещественный 0…1), выравнивание и преобразование размеров кадра под заданный формат (соотношение сторон, размеры, количество цветовых каналов). Результатом данного этапа является формирование массива численных значений исходного изображения размера X×Y×C (ширина, высота, цветовые каналы).

2. Основной этап обработки изображения:

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

3. Сохранение итогового изображения:

Полученный на втором этапе массив информации преобразуется в графический файл требуемого размера, цветовой схемы, битности и формата, после чего сохраняется на накопителе.

Первый и третий этапы являются стандартными в области обработки изображений и реализуются с помощью программных библиотек выбранного языка программирования. Наиболее интересным является второй этап из-за специфики каждого класса рассмотренных задач. В рамках данного документа будут разработаны алгоритмы решения задач для каждого из классов. В качестве инструмента для решения задач будет использоваться язык программирования Python, библиотеки обработки изображений, машинного обучения и компьютерного зрения.

На рисунке 2 представлена блок-схема, иллюстрирующая реализацию основного этапа обработки изображений в контексте задач сжатия данных. Выбор конкретных программных библиотек для реализации данного этапа определяется спецификой подзадачи сжатия.

Рис. 2. Алгоритм решения задачи сжатия графической информации

Методы сжатия изображений

Изменение размерности изображения

В рамках задачи изменения размерности изображения предлагается рассмотреть четыре метода, реализуемых с помощью библиотеки Pillow:

  • Изменение размера: Метод основан на аффинных преобразованиях (поворот, растяжение/сжатие, сдвиг), позволяющих изменить геометрические параметры изображения.
  • Преобразование в оттенки серого: Данный метод сокращает количество информации об объектах, представляя изображение в черно-белой палитре. Это повышает скорость вычислений и снижает потребление ресурсов.
  • Преобразование в черно-белый формат: Более радикальный вариант преобразования, использующий только два цвета – черный и белый. Позволяет выделить объекты и удалить избыточную информацию.
  • Обрезание изображения (crop): Метод выделения нужной области изображения с отбрасыванием остальной части.
Сжатие изображения автоэнкодером

Автоэнкодер – это нейронная сеть, состоящая из двух частей: кодера и декодера. Кодер сжимает изображение в компактное скрытое представление, а декодер восстанавливает исходное изображение из этого представления.

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

Выделение ключевых признаков

Существует множество методов выделения ключевых признаков:

  • Спектральный анализ (преобразование Фурье): Представление спектральной функции в виде суммы тригонометрических функций с определенными амплитудами и фазами.
  • Вейвлет-преобразования: Методы кодирования изображений с использованием двумерных функций-вейвлетов, позволяющие анализировать данные по частотным компонентам и усиливать резкие перепады яркости (выделение контуров).
  • Метод главных компонент (PCA): Аппроксимация n-размерного количества признаков до эллипсоида, полуоси которого представляют собой главные компоненты. Применяется для сокращения числа признаков и выявления их взаимосвязей.
  • Дискретное косинус-преобразование (DCT): Разбиение изображения на блоки и преобразование их в набор коэффициентов косинусных функций с возрастающими частотами.

Поиск информации на изображении

В направлении поиска информации на изображении (рис. 3) выделены три подзадачи: сегментация и определение ключевых точек, классификация объектов и трекинг объектов.

Рис. 3. Алгоритм решения задачи поиска информации на изображении

Сегментация и определение ключевых точек

Цель сегментации – упрощение представления изображения для облегчения анализа. Для выделения объектов и границ на изображениях используются нейронные сети, например, библиотека Media Pipe Hands. Она состоит из двух модулей: один распознает объект, другой распределяет ключевые точки вдоль него.

Классификация объектов

Для классификации объектов используется сверточная нейронная сеть. Этот алгоритм глубокого обучения получает изображение на вход, определяет степень важности различных аспектов/объектов и различает их друг от друга.

Трекинг объектов

Библиотека OpenCV предлагает множество реализаций для трекинга объектов: BOOSTING, MIL, KCF, CSRT, MedianFlow, MOSSE, GOTURN. Выбор алгоритма зависит от конкретных требований.

Два часто используемых способа – CSRT и KCF.
  • CSRT (Discriminative Correlation Filter with Channel and Spatial Reliability) обеспечивает высокую точность отслеживания, но с низкой скоростью кадров в секунду. Этот алгоритм использует карты пространственной надежности для настройки фильтра на выделенную область из кадра, что позволяет увеличить область поиска и отслеживать непрямоугольные объекты.
  • KCF (Kernelized Correlation Filters) обеспечивает высокую пропускную способность FPS, но с меньшей точностью отслеживания. Этот метод комбинирует алгоритмы BOOSTING и MIL из OpenCV. Корреляционная фильтрация, примененная к перекрывающимся областям, позволяет с высокой точностью отслеживать перемещение объекта.

Для трекинга движущихся объектов можно использовать функцию absdiff библиотеки OpenCV. Эта функция вычитает каждый следующий кадр из предыдущего, а разница изображений будет являться движущейся целью.

Восстановление и Преобразование Графической Информации с Помощью Нейронных Сетей

Следующий этап работы с изображениями посредством нейронных сетей посвящен задачам класса “Восстановление” (рис. 4).

Рис. 4. Алгоритм решения задачи восстановления графической информации.

В рамках этой темы рассмотрим подзадачи удаления шумов и артефактов, а также восстановление потерянных данных.

Для удаления шумов и артефактов предлагаются следующие методы:

  • Удаление шумов: Функция fastNlMeansDenoisingColored из библиотеки OpenCV реализует алгоритм, основанный на поиске и усреднении похожих участков изображения для сглаживания.
  • Удаление дымки: Нейронная сеть DehazeNet принимает затуманенное изображение и выводит карту среднего пропускания, которая используется для восстановления изображения без дымки.
  • Удаление артефактов: Автоэнкодер принимает изображение на вход, преобразует его в функцию и восстанавливает исходные данные по этой функции.

Для восстановления потерянных данных предлагается использовать библиотеки нейронных сетей, такие как TensorFlow, Keras, PyTorch. В качестве примера рассмотрим Keras. Для обучения нейронной сети необходимо сравнивать зашумленные и чистые данные. С помощью Image Data Generator создаётся модель, изменяющая исходное изображение. Затем сеть обучается путем подачи исходного и зашумленного изображений.

Улучшение качества изображения может быть достигнуто с помощью класса Super Resolution из библиотеки OpenCV. Он повышает качество изображения методами масштабирования или улучшения деталей. Для увеличения размера изображения используются 4 метода: EDSR, ESPCN, FSRCNN, LapSRN.

Рис. 5. Алгоритм преобразования графической информации.

Преобразование графических данных является одним из ключевых направлений в этой области. Рассмотрим применение эффектов:

  • Функция filter модуля Image Filter предоставляет набор фильтров: BLUR, CONTOUR, DETALL, EDGE_ENHANCE, EDGE_EHANCE_MORE, EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN.
  • Функция cvtColor позволяет преобразовывать изображение из одного цветового пространства в другое.

Преобразование стиля изображений и прогнозирование

Существует два подхода к обработке изображений: изменение стиля изображения и прогнозирования.

Изменение стиля изображения:

Для изменения стиля изображения используется библиотека TensorFlow Hub, а именно метод Neural Style Transfer. Данный метод, основанный на глубоком обучении, позволяет объединить содержание одного изображения с стилем другого. Для решения задачи применяются глубокие нейронные сети, например, модель VGG-19. В ходе процесса обучения изображение-содержание и изображение-стиль используются для генерации нового изображения, которое изначально инициализируется как шум.

Прогнозирование изображений:

Для прогнозирования изображений используются различные методы. Один из них – нейронная сеть ESRGAN из библиотеки OpenCV, которая способна повышать разрешение изображений (Super Resolution). Другой метод – функция filter2D библиотеки OpenCV, которая изменяет интенсивность пикселей изображения на основе значений соседних пикселей. Это позволяет улучшить или удалить определенные характеристики изображения.

Применение алгоритмов обработки изображения в системах управления

Данный текст рассматривает применение алгоритмов обработки изображений в системах управления, базирующихся на компьютерном зрении.

Авторы приводят примеры успешного внедрения данных алгоритмов:

  • Разработка автопилотов: В автомобилях и летательных аппаратах используется цепочка алгоритмов для обнаружения движущихся объектов, выделения контуров, удаления шума и тумана, а также распознавания и классификации объектов. Полученная информация используется для управления траекторией и скоростью движения.
  • Автоматизация промышленных процессов: В промышленности компьютерное зрение применяется в системах управления конвейерами, станками и сборочными роботами. Алгоритмы обработки изображений позволяют оценить состояние деталей, их размеры и класс, а также осуществлять компоновку деталей в изделие. Кроме того, компьютерное зрение используется для мониторинга качества продукции, отслеживания износа оборудования и предупреждения о потенциальных аварийных ситуациях.
  • Мониторинг и управление в сельском хозяйстве: Алгоритмы обработки изображений используются для отслеживания состояния сельскохозяйственных культур, управления роботизированными комплексами по сбору урожая, повышения точности позиционирования сельскохозяйственной техники и автоматизации сельскохозяйственных процессов с помощью автопилотов.

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

Выводы

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

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

Литература

  1. Tong X., Ye Z., Xu Y. [et al.] Image Registration with Fourier-Based Image Correlation: A Comprehensive Review of Developments and Applications, IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2019, vol. 12, no. 10, pp. 4062-4081, doi: 10.1109/JSTARS.2019.2937690
  2. Shleymovich M.P., Kirpichnikov A.P., Lyasheva S.A., Medvedev M.V. [Boundary detection on images based on the model of energy features of the wavelet transform], Vestnik Kazanskogo tekhnologicheskogo universiteta [Bulletin of the Kazan Technological University], 2017, vol. 20, no, 21, pp. 103-107. (In Russ.)
  3. Kurita T. Computer Vision: A Reference Guide, Springer, Cham., 2021, pp. 1013-1016.
  4. Shen X., Yang J., Wei C. [et al.] Dct-Mask: Discrete Cosine Transform Mask Representation for Instance Segmentation, Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2021, pp. 8720-8729.
  5. Sirota A.A., Mitrofanova Ye.Yu., Milovanova A.I. [Analysis of object search algorithms in images using various modifications of convolutional neural networks], Vestnik Voronezhskogo gosudarstvennogo universiteta. Seriya: Sistemnyy analiz i informatsionnyye tekhnologii [Bulletin of the Voronezh State University. Series: System Analysis and Information Technologies], 2019, no. 3, pp. 123-137. (In Russ., abstract in Eng.)
  6. Lukezic A., Vojir T., Cehovin Zajc L., Matas J., Kristan M. Discriminative Correlation Filter TracNer with Channel and Spatial Reliability, International Journal of Computer Vision, 2018, vol. 126, no. 7, pp. 671-688, doi: 10.1007/s11263-017-1061-3
  7. Henriques J.F., Caseiro R., Martins P., Batista J. High-Speed Tracking with Kernelized Correlation Filters, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2014, vol. 37, no. 3, pp. 583-596, doi: 10.1109/TPAMI. 2014.2345390
  8. Lim B., Son S., Kim H., Nah S., Lee K.M. Enhanced Deep Residual Networks for Single Image Super-Resolution, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops, 2017, pp. 136-144.
  9. Shi W., Caballero J., Huszár F. [et al.] Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016, pp. 1874-1883.
  10. Dong C., Loy C.C., Tang X. Accelerating the Super-Resolution Convolutional Neural Network, European Conference on Computer Vision, 2016, pp. 391-407.
  11. Lai W.S., Huang J.B., Ahuja N., Yang M.H. Fast and Accurate Image Super-Resolution with Deep Laplacian Pyramid Networks, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018, vol. 41, no. 11, pp. 2599-2613.
  12. Gatys L.A., Ecker A.S., Bethge M.A. A Neural Algorithm of Artistic Style, Journal of Vision, 2016, vol. 16, no. 12, pp. 1-16, doi: 10.1167/16.12.326
  13. Wang X., Yu K., Wu S. [et al.] Esrgan: Enhanced Super-Resolution Generative Adversarial Networks, Proceedings of the European Conference on Computer Vision
    (ECCV) Workshops, 2018, pp. 1-16.