Почему мне интересен этот проект

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

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

Есть несколько способов сделать работу

  1. Конвертировать изображения с помощью Photoshop

Преимущество

  • Вы можете точно настроить свой рисунок, пока он не станет правильным. Кроме того, это как ластик для реальной жизни!

Недостаток

  • Очень дорого

2. Конвертировать с помощью python с простой трансформацией

Преимущество

  • Бесплатно
  • Преобразование с размером пакета

Недостаток

  • Трудно настроить
  • Некоторые фотографии работают плохо

3. С помощью ИИ конвертировать из интернета

Преимущество

  • Легко использовать

Недостаток

  • Не могу контролировать результат
  • Нужно заплатить за это.

Посмотрим на результат конвертации с помощью OpenCV

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

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

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

Обучение модели CNN

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

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

Несмотря на то, что это было легкое фото новообращенного, обучение модели все еще производит на меня впечатление!

Мне интересно, внес ли я некоторые пользовательские изменения в тренировочный набор, он работает лучше?

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

Пока набора данных недостаточно. Я решаю тренироваться больше, чем одно время

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

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

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

Передача нейронного стиля

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

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

Сравнивая результаты, становится очевидным, что, хотя перенос стиля может улавливать контуры, он, как правило, пропускает более мелкие детали, такие как прожилки на изображении. Кроме того, вены часто принимают характеристики стиля изображения. Кроме того, в зависимости от конкретных объектов рисунок может также включать в себя текстуру этих объектов. Учитывая эти факторы, кажется, что использование модели CNN может быть более подходящим вариантом.

Краткое содержание

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