Аббревиатура GECCO расшифровывается как «
The Genetic and Evolutionary Computation Conference» — конференция по генетическим и эволюционным вычислениям. Для меня это первое подобное выступление, поэтому весь процесс подготовки — от написания и вычитки статьи до ожидания результатов жюри — был вновинку.
Мое исследование посвящено эволюционной векторизации изображений. Тему предложила моя научная руководительница Валерия Ефимова, с которой я работаю, начиная с бакалавриата [Егор окончил программу «Прикладная математика и информатика» (кафедра КТ) в 2022 году. — Прим. ред.].
Что вообще такое векторизация изображений? Это преобразование растровой картинки (состоящей из пикселей) в векторную (состоящей из геометрических фигур, которые заданы математически). Векторные изображения повсеместно используются в архитектуре, дизайне и проектировании, потому что их можно масштабировать без потери качества.
Раньше для векторизации использовались два основных подхода. Первый — это машинное обучение, алгоритмы типа DiffVG и LIVE. Также сейчас некоторые нейронные сети умеют векторизовать изображения просто с помощью TML. Второй подход — это детерминированные алгоритмы, например, SVG Tracer. Есть готовые библиотеки, которые на основании трассировки получают векторные изображения. У обоих этих подходов есть свои плюсы и минусы. Эволюционная векторизация, которую я исследовал, сочетает достоинства обоих методов. Это привело к абсолютно новому, третьему подходу, и в результате экспериментов он оказался в определенных аспектах лучше.
Мой метод называется EvoVec. Он работает так: сначала с помощью детерминированного алгоритма генерируется изображение. Затем эта исходная популяция шаг за шагом улучшается с помощью разработанных мутаций и кроссоверов. Мутации есть трех видов. Первые — удаление лишних путей или сегментов. Вторые — градиентное слияние, когда мы несколько путей объединяем в один. И третий вид мутаций — это мутация изменения, когда мы просто меняем координату и смотрим, стало изображение лучше или нет.
После определенного количества итераций получается финальное векторное изображение. EvoVec работает быстрее, чем алгоритмы на основе машинного обучения, и генерирует меньше путей, чем детерминированные алгоритмы. Также из-за работы с цветовым градиентом (чего не умеют другие подходы) визуальное сходство с исходным изображением выше. В прошлом году мы с коллегами по лаборатории компьютерных технологий выпустили
библиотеку на GitHub, где в том числе есть и мой алгоритм. Еще больше подробностей о подходе можно найти в
нашей статье.