Цифровая реставрация объектов монументального искусства с применением методов компьютерного зрения и машинного обучения

Автор: А. А. Грейс, И. В. Ковалев, А. А. Ворошилова

Журнал: Современные инновации, системы и технологии.

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

Статья в выпуске: 4 (4), 2024 года.

Бесплатный доступ

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

Еще

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

Короткий адрес: https://sciup.org/14131314

IDR: 14131314   |   DOI: 10.47813/2782-2818-2024-4-4-0254-0277

Текст статьи Цифровая реставрация объектов монументального искусства с применением методов компьютерного зрения и машинного обучения

DOI:

С точки зрения теоретического подхода к исследованию ценностных ориентаций историко – культурное наследие является одной из основных форм сохранения социальной идентичности, национальной культуры и исторических ориентиров, транслирующей эвристический и репродукционный опыт, распространение и освоение культурных ценностей. В свою очередь концепция цифрового наследия представляет собой практический подход к сохранению, актуализации и репрезентации историко – культурного наследия, основанный на использовании современных информационно – коммуникационных и цифровых технологий. Данный подход направлен на виртуализацию и иммерсиализацию объектов, первоначально имеющих бинарное представление или преобразованных в цифровую форму из существующих аналоговых объектов, понимаемых как совокупность материальных и нефизических форм представления объектов реального мира [1-4].

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

На сегодняшний день одним из наиболее перспективных решений, используемых для работы с объектами историко – культурного наследия, являются системы принятия решений, в основе которых – технологии искусственного интеллекта (в частности, компьютерное зрение и машинное обучение), ключевыми направлениями которого являются обработка, анализ и интерпретация текстовой и визуальной информации, цифровая реконструкция, реставрация и виртуализация объектов в цифровых и иммерсивных форматах [1, 9-10].

МЕТОДЫ АНАЛИЗА И ОБРАБОТКИ ИЗОБРАЖЕНИЙ

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

Компьютерное зрение

Компьютерное зрение (Computer Vision, CV) – направление искусственного интеллекта, которое занимается разработкой методов, алгоритмов и технологий анализа, изменения и обработки визуальных данных с целью интерпретации содержащейся в них информации [11-12]. Основная цель компьютерного зрения в таких системах – обеспечение автоматического обнаружения, распознавания и классификации объектов с целью предоставления информации для принятия решений для их дальнейшей обработки.

К основным методам компьютерного зрения для оценки и анализа состояния объектов на изображениях относятся сегментация изображений, экстракция признаков, обнаружение и распознавание объектов, а также кластеризация [13-14].

Сегментация – разделение цифрового изображения по заданным критериям однородности на сегменты, состоящие из связной группы объектов (элементов) изображения и имеющие общие визуальные характеристики. К основным этапам сегментации относятся разбиение изображения на суперпиксели (группы пикселей), присвоение меток и/или классов суперпикселям на основе критериев однородности, упрощение и изменение представления изображения, выделение границ (контуров) объектов. Сегментация позволяет извлекать признаки, характеризующие сегмент – объект, используемые в дальнейшем для обучения модели, распознавания и анализа объектов [15-16].

Экстракция признаков – абстрактное выделение визуальных индикаторов (цвет, текстура, границы/края, линии/сегменты, форма) и/или атрибутов изображения, которое позволяет сократить размерность данных исходного изображения до управляемых групп признаков (атрибутов). Извлеченные признаки являются достаточными для точного и полного описания исходных данных и позволяют перейти от исходных пиксельных данных к более абстрактным представлениям, которые могут быть использованы для решения задач анализа, распознавания объектов и классификации. Извлеченные признаки используются для формирования детекторов и дескрипторов [17-18].

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

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

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

Рисунок 1. Детекторы объектов на основе признаков.

Figure 1. Evidence-based object detectors.

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

Рисунок 2. Гистограмма направленных градиентов.

Figure 2. Histogram of directional gradients.

Детекторы на основе краев (к примеру, детектор границ Канни) основаны на выделении резких изменений яркости или цвета, которые соответствуют переходам между различными областями объектов на изображении.

в градациях серого

Рисунок 3. Детектор границ Канни.

Figure 3. Canny edge detector.

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

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

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

Машинное и глубокое обучение

Машинное обучение (Machine Learning, ML) – направление искусственного интеллекта, изучающее использование алгоритмов и методов (основанных на математических моделях данных) для обучения систем без непосредственных инструкций. При машинном обучении с помощью алгоритмов и методов выявляются закономерности, на основе которых создается модель данных для прогнозирования [2123].

Глубокое обучение (Deep Learning, DL) – раздел машинного обучения, который использует нейронные сети с множеством слоев для извлечения высокоуровневых признаков из входных данных. В отличие от классических алгоритмов машинного обучения, которые требуют ручного задания требуемых признаков, глубокое обучение позволяет модели извлекать иерархические признаки автоматически на разных уровнях абстракции. Основная особенность – использование глубоких нейронных сетей, таких как глубокие сверточные нейронные сети (Сonvolutional Neural Network, CNN), рекуррентные нейронные сети (Recurrent Neural Network, RNN) и их различные комбинации, способные обучатся на больших объемах данных и автоматически выявлять сложные закономерности и паттерны, что позволяет им решать задачи детекции и классификации объектов на изображениях.

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

Сверточные нейронные сети (ConvNet/CNN) – класс глубоких нейронных сетей, специализирующихся на обработке и анализе визуальных данных. CNN основаны на принципе свертки, который позволяет автоматически извлекать иерархические признаки из входных данных с минимальной предварительной обработкой. CNN состоят из разных видов слоев: сверточные (convolutional) слои, субдискретизирующие (subsampling, подвыборка) слои и слои «обычной» нейронной сети – персептрона. Сверточные слои используются для обработки входных изображений: изображение сканируется с использованием фильтров (ядер) для выделения ключевых признаков. Слои подвыборки уменьшают размер изображения, сохраняя ключевые признаки, что снижает количество параметров модели и улучшает ее обобщающую способность. Результаты подвыборки подаются на полносвязные слои, которые выполняют классификацию объектов на основе извлеченных признаков. Эти слои используются для объединения информации из всех предыдущих слоев и принятия окончательного решения о классе объекта. К преимуществам CNN относится автоматическое извлечение признаков из входных данных без необходимости их ручного определения, иерархическая обработка, которая позволяет CNN адаптироваться к сложным и разнообразным структурам объектов, высокую точность при классификации объектов и применимость к различным визуальных типам данных. Примеры конволюционных нейронных сетей: AlexNet, VGGNet, ResNet и Inception (GoogLeNet) [24-26].

Рекуррентные нейронные сети (Recurrent Neural Network, RNN) – класс нейронных сетей / модель глубокого обучения, которая обучена обрабатывать и преобразовывать последовательный набор входных данных в последовательный набор выходных данных. Последовательным набором данных называют данные, в которых компоненты имеют строгую упорядоченность и взаимосвязи на основе сложной семантики и синтаксических правил. RNN предназначены для работы с данными, в которых каждый элемент имеет зависимость от предыдущих элементов, что позволяет им учитывать контекст и последовательность данных при выполнении задач. Принцип работы RNN заключается в том, что на каждом временном шаге RNN принимает входные данные и текущее состояние (предыдущий выход), обрабатывает их и выдает выход и состояние для следующего временного шага, что позволяет моделировать зависимости между элементами последовательности [27-28].

Глубокие байесовские сети (Deep Belief Networks, DBN) представляют собой класс нейронных сетей, состоящих из множества слоев, каждый из которых использует вероятностные методы для представления данных и извлечения признаков. DBN объединяют в себе концепции глубоких нейронных сетей и байесовских сетей, что позволяет им работать с неопределенностью в данных и моделировать сложные зависимости между признаками. DBN состоят из множества слоев, включая видимые и скрытые слои, что делает их глубокими моделями. DBN используют вероятностные методы для моделирования данных, что позволяет учитывать неопределенность и адаптироваться к различным условиям данных. DBN способны автоматически извлекать иерархические признаки из входных данных, начиная с простых характеристик на нижних уровнях до более абстрактных на верхних уровнях [29-30].

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

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

ЭТАПЫ ЦИФРОВОЙ РЕСТАВРАЦИИ

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

В таблице 1 приведено описание этапов цифровой реставрации.

Таблица 1. Этапы цифровой реставрации.

Table 1. Stages of digital restoration.

Наименование этапа

Операции этапа

1

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

Загрузка изображения, проверка валидности типа и расширения файла, изменение размеров и разрешения, удаление шумов с применением методов фильтрации, коррекция яркости и контрастности изображения, гистограммное выравнивание, пороговая обработка для преобразования в бинарное изображение

2

Сегментация изображений

Разделение изображения на отдельные сегменты для идентификации объектов с целью анализа, изменения и обработки визуальных данных и метаданных

3

Удаление и исправление дефектов, восстановление утраченных фрагментов (элементов)

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

4

Коррекция цветов и тонов, текстур

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

5

Улучшение четкости и детализации

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

6

Восстановление

геометрии и перспективы

Коррекция изображений перспективы, интерполяция и растяжение, коррекция виньетирования, выравнивание горизонтальных и вертикальных линий, коррекция радиальных искажений

7

Векторизация

Преобразование растрового изображения в векторное изображение (выделение контуров, создание векторных объектов, оптимизация векторных данных, добавление атрибутов и метаданных)

8

Финальная обработка и сохранение

Оценка качества обработки, устранение ошибок, экспорт изображения в директорию пользователя

КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ПРОГРАММЫ

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

Концептуальная модель программы включает в себя следующие компоненты, отраженные в таблице 2.

Таблица 2. Структура модулей программы.

Table 2. Structure of program modules.

Наименование модуля

Функционал

Модуль пользовательского интерфейса

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

Модуль загрузки

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

Модуль предварительной обработки

Обеспечивает пре-подготовку изображений к дальнейшей обработке в других модулях. Модуль запускается в автоматическом режиме после импорта изображения.

Модуль реставрации

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

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

Модуль визуализации

Модуль визуализации результатов отображает результаты обработки изображений в пользовательском интерфейсе и

предоставляет сравнительный анализ исходных и обработанных изображений для оценки эффективности примененных методов.

Модуль сохранения

Модуль сохранения изображений позволяет пользователю сохранить обработанные изображения в выбранной директории.

Модуль «О программе»

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

АСПЕКТЫ ПРИМЕНЕНИЯ CV, ML И DL

Библиотеки, предназначенные для работы с алгоритмами компьютерного зрения, машинного (глубокого) обучения и предварительной обработки изображений, реализованы на различных языках программирования. В Python паттерны компьютерного зрения представлены в ряде таких библиотек, как OpenCV, scikit-image, TensorFlow, PyTorch, Dlib, Mahotas. ML и DL – Scikit-learn, Pandas, NumPy, SciPy, TensorFlow, Keras, PyTorch, YOLO, U-Net и Fastai.

Графическая оболочка

Рисунок 5. Модуль пользовательского интерфейса программы.

Figure 5. User interface module of the program.

Загрузка изображений

Для определения типа и расширения загружаемого файла изображения используется комбинация функций модулей pillow (для обработки изображений), python-magic (для идентификации типов файлов libmagic) и os.path (для работы с путями файловой системы). Для открытия файла используется функция Image.open(), идентификация типа и MIME-типа осуществляется при использовании функций magic.from_file(), get_file_mime() и get_file_type_buffer(), для извлечения информации о расширении файла используется функции os.path.splitext(), обработка возможных ошибок при открытии файла – функция img.verify(). MIME-тип файла – изображение (image), допустимые расширения – png, jpeg (jpg). Запуск – кнопка «Загрузить изображение».

Рисунок 6. Загрузка изображения и проверка валидности.

Figure 6. Image upload and validity check.

Для выполнения операций, связанных с загрузкой изображений в рабочее пространство программы и обработкой, используется cv2 – основной модуль библиотеки OpenCV. Модуль, отвечающий за загрузку изображения из файлового хранилища в рабочее пространство программы и его визуализацию (после проверки валидности файла), реализуется функциями cv2.imread(), cv2.imshow(), cv2.waitKey(), cv2.destroyAllWindows().

Пре-обработка (очистка) файла

Предварительная обработка направлена на интеллектуальную подготовку изображения для дальнейшей работы, в частности, изменение размеров и разрешения с сохранением пропорций (cv2.resize(), удаление шумов с применением методов фильтрации (cv2.GaussianBlur(), cv2.medianBlur(), cv2.bilateralFilter()), коррекция яркости и контрастности изображения (cv2.cvtColor(), cv2.convertScaleAbs, cv2.addWeighted, cv2.equalizeHist), увеличение резкости (cv2.filter2D() и другие операции, направленные на улучшение качественных характеристик и детализации изображения для дальнейшей работы.

Сегментация и распознавание объектов.

На данном этапе происходит разделение изображения на сегменты, которые содержат объекты, а затем их распознавание и идентификация. Для сегментации изображений в программе используются модули OpenCV, Scikit-learn, Scikit-image, NumPy, SciPy, Matplotlib.

Применяемые методы сегментации в программе.

Таблица 3. Методы сегментации.

Table 3. Segmentation methods.

Название

Описание метода

1

Пороговая сегментация

Метод, который основывается на выборе порогового значения для интенсивности или цвета пикселей, чтобы разделить изображение на две или более областей. В Python реализуется функциями cv2.threshold, cv2.adaptiveThreshold, skimage.filters.threshold_otsu, skimage.filters.threshold_local, skimage.filters.threshold_otsu.

2

Методы на основе регионов

Методы, которые сегментируют изображение, объединяя соседние пиксели со схожими свойствами (в один регион). В Python реализуется функциями skimage.segmentation.random_walker, skimage.segmentation.watershed, scipy.ndimage.label.

3

Методы сегментации на основе границ

Методы, которые используют границы объектов на изображении для выделения различных областей. К таким методам относятся оператор Собеля, Кэнни, Лапласа и Прюитта. В Python реализуется функциями cv2.Canny, cv2.Sobel, cv2.Laplacian, kimage.feature.canny, skimage.filters.sobel, skimage.filters.prewitt, skimage.filters.roberts, skimage.filters.laplace, scipy.ndimage.sobel, scipy.ndimage.prewitt, scipy.ndimage.laplace.

4

Методы на основе кластеризации

Методы, которые используют алгоритмы кластеризации для группировки пикселей в кластеры схожих свойств. К таким методам относятся K-Means Clustering, Mean Shift, DBSCAN. В Python реализуется функциями sklearn.cluster.KMeans, sklearn.cluster.MeanShift, sklearn.cluster.DBSCAN.

5

Сегментация на основе активного контура

Метод, который использует кривые, называемые контурами, для выделения объектов на изображении. В Python реализуется функцией skimage.segmentation.active_contour.

Методы на основе глубокого обучения

Методы, в которых применяются сверточные нейронные сети для сегментации изображений. Обучение нейронных сетей происходит на больших наборах данных с размеченными изображениями. U-Net, Mask R-CNN и Panoptic FPN наиболее часто используются для сегментации.

Использование графа для

7   представления

изображения

В этих методах находится минимальный разрез в графе, что позволяет разделить изображение на несколько областей: Normalized Cut, Max-Flow/Min-Cut, Random Walks.

В качестве примера приведем реализацию глобальной бинаризации и автоматического выбора порога методом Оцу – функция cv2.threshold из библиотеки

OpenCV.

Исходное изображение

Применение cv2.threshold

Рисунок 7. Пороговая (глобальная) бинаризация.

Figure 7. Threshold (global) binarization.

Анализ изображений

Проводится анализ выделенных объектов (областей) с целью определения характеристик их состояния и степени повреждения и последующей обработки поврежденных участков. В Python для анализа выделенных объектов (областей) с целью определения характеристик их состояния и степени повреждения, а также для последующей обработки поврежденных участков, используются различные методы и инструменты, включая анализ текстур, формы, цветовых характеристик и других параметров объектов. Библиотека Scikit-image: skimage.feature.greycomatrix (вычисление матрицы совместного появления для анализа текстуры), skimage.feature.greycoprops (вычисление характеристик текстур), skimage.measure.regionprops (вычисление свойств регионов), skimage.color.rgb2hsv (преобразование изображения из RGB в HSV для анализа цветовых характеристик), skimage.color.rgb2lab (преобразование изображения из

RGB в Lab для анализа цвета). В OpenCV для анализа изображений и обработки выделенных объектов используется cv2.haralick (вычисление текстурных характеристик с использованием метода Харалика), cv2.contourArea (вычисление площади контура), cv2.arcLength (вычисление длины контура). В TensorFlow и Keras используются tf.keras.applications (предварительно обученные модели VGG, ResNet) для классификации изображений и извлечения признаков.

Обработка изображений

Для выполнения операций обработки, к которым относятся удаление и исправление дефектов, восстановление утраченных фрагментов (элементов), коррекция цветов и тонов, текстур, улучшение четкости и детализации, восстановление геометрии и перспективы) используются библиотеки OpenCV, scikit-image, Pillow. Для удаления и исправления дефектов, восстановления утраченных фрагментов предназначены методы cv2.inpaint, skimage.restoration.inpaint.inpaint_biharmonic. Коррекция цветов и тонов, текстур осуществляется с применением cv2.cvtColor, cv2.equalizeHist, cv2.applyColorMap, skimage.color.rgb2hsv, skimage.color.hsv2rgb, skimage.exposure.equalize_hist, skimage.filters.rank.enhance_contrast, ImageEnhance.Color, ImageEnhance.Contrast, ImageEnhance.Brightness, ImageEnhance.Sharpness.

Улучшение четкости и детализации cv2.GaussianBlur, cv2.medianBlur, cv2.bilateralFilter — билинейное фильтрование для сохранения краев. Восстановление геометрии и перспективы: cv2.getPerspectiveTransform, cv2.warpPerspective, cv2.getAffineTransform, skimage.transform.warp. Векторизация за счет применения cv2.findContours, cv2.approxPolyDP, cv2.drawContours.

АПРОБАЦИЯ ПРОГРАММЫ

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

Рисунок 8. Результат выполнения программы.

Figure 8. Result of program execution.

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

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

OpenCV обладает широким спектром функций и алгоритмов для обработки изображений, включая фильтрацию, сегментацию, детекцию объектов, коррекцию цвета и многое другое, что позволяет реставраторам проводить различные операции для восстановления и улучшения качества старых или поврежденных изображений. OpenCV является проектом с открытым исходным кодом, что позволяет специалистам в области реставрации свободно использовать его в своих проектах. Благодаря этому, разработчики могут изменять и дополнять функциональность OpenCV в соответствии с конкретными потребностями. OpenCV поддерживается на различных платформах, включая Windows, macOS, Linux и мобильные устройства, что обеспечивает гибкость в использовании инструментов реставрации на различных устройствах и в различных средах. OpenCV может легко интегрироваться с другими библиотеками и фреймворками машинного обучения, такими как TensorFlow, PyTorch и Keras, что позволяет использовать современные методы машинного обучения для решения задач цифровой реставрации.

Статья