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

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

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

Во-первых, мы использовали веб-скрапинг для сбора изображений ковров из Интернета. Для этого мы использовали библиотеки Python Selenium и Beautiful Soup. В результате мы собрали 1500 изображений ковров из разных регионов, таких как Турция, Средняя Азия, Азербайджан и арабские страны. Естественно, данные веб-скрейпинга были разных размеров, и модель GAN, которую мы использовали, могла работать только с изображениями 1:1. Поэтому мы изменили размер изображений на 1:1 с разрешением 512x512 с помощью следующего кода:

!python resize_images.py — raw-dir «путь» — save-dir «путь» — ext jpg — target-size «(512 512)»

После процесса изменения размера наши данные были применимы к модели.

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

! stylegan2_pytorch — данные «путь» — aug-prob 0.25 — results_dir «путь» — models_dir «путь»

! stylegan2_pytorch — генерировать — загружать из 149 — results_dir «путь»

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

! stylegan2_pytorch — генерировать интерполяцию — загружать из 147 — количество шагов интерполяции 100 — сохранять кадры — results_dir «путь»

Затем мы приступили к этапу проектирования проекта. Наша концепция на этом этапе заключалась в том, чтобы представить красивый дизайн ковров нашего ИИ в более трехмерном подходе, с движениями и абстрактными иллюзиями на коврах. Когда наша команда приступила к этапу дизайна, они черпали вдохновение в тех самых геометрических узорах, которые присутствуют во многих коврах из многих регионов — таких как Турция, Азербайджан, Средняя Азия и арабские страны.

Cinema 4D был нашей основной программой для этого творческого процесса. Мы создали в программе несколько 3D-моделей и отразили на них изображения наших ковров. Основываясь на нашем геометрическом вдохновении, мы нашли способы показать работу нашего ИИ в аналогичных объемах — комбинациях кирпичей, кубов, шестиугольников, плиток и пирамид. Кроме того, мы поиграли с изображениями ковров и их сопоставлением с моделями, чтобы выявить большее количество перспектив ковров. Мы соединили части моделей с различными типами движений, предусмотренными в Cinema 4D, такими как — деформаторы коллизий, поля линейного масштабирования, морфинг, задержки, клонеры, масштабирование вытеснителей и коллайдеры — для получения интересных движений и иллюзий в дизайне, а также для подчеркните трехмерность работы.

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

Такова была наша часть разработки Cinema 4D. Процесс был беспокойным, но приятным, и мы рады будущим результатам нашей команды.