Картинка лучше тысячи слов
Это мой первый блог из серии - Использование компьютерного зрения и глубокого обучения для улучшения фотографии.
Лучший способ создать ценность в 21 веке - соединить творчество с технологиями, - Стив Джобс.
Самые большие последние достижения в области фотоаппаратов связаны с искусственным интеллектом, а не с датчиками и линзами. За последние пару лет технологии позволили ошеломляюще продвинуться в фотографии. ИИ меняет как способ съемки фотографий, так и их редактирование.
Поскольку «компьютерное зрение» становится важной частью других новых технологий, таких как беспилотные автомобили, ИИ будет становиться все более изощренным, когда дело доходит до интерпретации и понимания содержания наших изображений.
Как увлеченный фотограф, я всегда стремлюсь автоматизировать ручные задачи, чтобы сосредоточиться на создании творческого контента. В этом проекте я расскажу, как за несколько простых шагов создать и настроить облако слов, используя свои собственные изображения.
Цель: превратить фотографии в типографику с помощью облака слов в Python.
Одна картинка стоит тысячи слов. Буквально! На этой картинке более 2200 слов. 😱
Типографика. Это искусство визуально расположить текст. Он направлен на то, чтобы вызвать определенные эмоции и передать определенные сообщения.
В какой-то момент люди буквально брали буквы и символы и размещали их в физическом пространстве. В этом проекте я покажу, как мы можем использовать возможности облака слов в Python, чтобы сделать эту форму искусства масштабируемой и создать ее за несколько минут.
Облако слов. Облако слов - это метод визуализации данных, используемый для представления текстовых данных, в которых размер каждого слова указывает его частоту или важность. Облака слов широко используются для анализа данных с веб-сайтов социальных сетей для анализа настроений.
Для создания облака слов в Python необходимы модули: matplotlib, OpenCV и wordcloud.
Вот шаги:
1. Сбор соответствующих данных (веб-скрейпинг)
2. Очистка данных и обработка естественного языка (NLP)
3. Создание масок из изображения и создание облаков слов.
- Сбор релевантных данных:
Для этого проекта, чтобы получить список самых популярных слов в области фотографии, я убрал названия 836 курсов фотографии (например, Advanced Portrait Editing Techniques) с популярного сайта фотографии KelbyOne. Я удалил данные с 70 страниц с помощью модуля Python Scrapy. Эти курсы были загружены с 2006 года.
2. Предварительная обработка текста:
Я использовал модуль Python Spacy для выполнения обработки естественного языка (NLP)
- Токенизация
Это процесс разделения строки на составляющие ее токены. Эти знаки могут быть словами или знаками препинания.
Название курса: «Что за вспышка? Управляя своим светом »
Жетоны: [«Что», «То», «Вспышка», »?», «Контролирующий», «Ваш», «Свет»]
- Лемматизация
Преобразуйте слово в его базовую форму:
Например. такие слова, как сокращение, сокращение, сокращение, сокращение, будут преобразованы в сокращение.
- Методы очистки текста:
Удаление ненужных пробелов, знаков препинания, специальных символов (чисел, смайликов и т. Д.) И неалфавитных маркеров (например, D750)
- Запрещенные слова
Слова, которые встречаются очень часто и не добавляют особого смысла предложению.
Например. Артикли (a, the и т. Д.), Быть глаголами (is, am и т. Д.), Местоимениями (he, she и т. Д.)
После обработки у нас есть в общей сложности 3558 слов в данных и 1133 уникальных слова, все слова в данных используются при создании облака слов.
В облаке слов наиболее частые слова более заметны (чем больше частота, тем больше размер шрифта).
3. Создание масок из изображения и создание облаков слов
Я создал 2 маски изображения в фотошопе и применил облако слов отдельно в каждой из них. Текст заполняет черную часть маски. Каждая маска заполнена всеми 1100+ уникальными словами.
Замаскируйте облако 1 слова:
Я оставил черный фон и белый текст для маски 1, чтобы выделить объект и арку памятника.
Текстовая строка всех 3558 слов (из которых 1133 слова уникальны) передается в функцию wordcloud.
Фрагмент кода:
import cv2 from wordcloud import WordCloud import matplotlib.pyplot as plt#White text Black Background image = cv2.imread("D:/Photography/Typography/mask1.jpg", 1) wordcloud = WordCloud(background_color='black', mask=image, mode="RGB", color_func=lambda *args, **kwargs: "white", width=1000 , max_words=100, height=1000, random_state=1).generate(text)fig = plt.figure(figsize=(25,25)) plt.imshow(wordcloud, interpolation='bilinear') plt.tight_layout(pad=0) plt.axis("off") plt.show()
Я создал несколько облаков слов и сохранил лучшее. Изменение значения аргумента «random_state» приводит к разным результатам.
Вы также можете настроить количество слов в облаке слов, изменив значение аргумента «max_words».
Аргумент «интерполяция = билинейная» используется для того, чтобы изображение выглядело более гладким.
Облако слов маски 2:
Я оставил белый фон и текст в цвете для маски 2, чтобы добавить деталей и интереса к типографике.
Фрагмент кода:
#Colored text white Background image = cv2.imread("D:/Photography/Typography/mask2.jpg", 1) wordcloud = WordCloud(background_color='white', mask=image, mode="RGB", max_words=1200, width=1000 , height=1000, random_state=2).generate(text)fig = plt.figure(figsize=(25,25)) plt.imshow(wordcloud, interpolation='bilinear') plt.tight_layout(pad=0) plt.axis("off") plt.show()
Я объединил каждое облако слов с маской, чтобы получить следующий результат:
Окончательный результат после их объединения в фотошопе.
Облако слов может быть создано при любом разрешении, что делает его очень актуальным для печати в большом размере. Я изучаю, как я могу вставлять слова по порядку из стихов или рассказов, чтобы это искусство было более значимым. В моем следующем блоге из этой серии я буду говорить о передаче художественного стиля, рисовании трехмерных изображений и многом другом.
Я применил эту технику в своих фотоработах, и результаты потрясающие!
Спасибо за чтение! Надеюсь, вам понравилась статья. Если вы хотите быть в курсе моих статей, подписывайтесь на меня.
Я поделился изображениями (я сохраняю за собой права на все изображения, использованные в этой статье, они сняты мной) и масками, так что вы можете поэкспериментировать с этим самостоятельно.
Ссылка: https://drive.google.com/open?id=13cf8Vna9Fc0VgEh7H9ZarXRadgTJL2OU
Читайте другие мои блоги:
Использованная литература:
Https://www.kaggle.com/aashita/word-clouds-of-various-shapes
Https://www.datacamp.com/community/tutorials/wordcloud-python
Https://amueller.github.io/word_cloud/generated/wordcloud.WordCloud.html