Содержание
Нейросеть рисует: 5 способов сгенерировать картины онлайн
Сервисы для генерации картинок с помощью искусственного интеллекта набирают популярность: многие видят в них новый источник креатива для дизайна и рекламы. Некоторые приложения бесплатны и доступны всем желающим
Возможности искусственного интеллекта используют не только в серьезных, но и в развлекательных целях. Существует целый ряд сервисов, которые способны сгенерировать картинки по текстовому описанию. РБК Тренды подготовили подборку таких сервисов и протестировали их, попросив нарисовать одно и то же. Запрос выглядел так: «space dolphin earth pink blue metaverse music» («космос дельфин Земля розовый синий метавселенная музыка»).
Содержание:
- DALL-E Mini
- ruDALL-E Kandinsky
- Midjourney
- Starryai
- Dream by WOMBO
DALL-E Mini
Как попробовать:
- зайти на официальный сайт Dall-E Mini через ресурс Hugging Face;
- найти раздел dall-e;
- ввести текстовое описание на английском языке, разделяя слова пробелами;
- нажать Run;
- когда изображение будет сгенерировано, понадобится сделать снимок экрана, чтобы сохранить всю подборку, или сохранить каждую картинку по отдельности.
Нейросеть в начале 2021 года представила компания Илона Маска OpenAI. Разработчики обучили ее создавать изображения из коротких текстовых подписей. Приложение работает на основе другой модели генерации текста от OpenAI — GPT-3. Она обучена на 12 млн параметров и способна создавать антропоморфные версии животных и объектов, объединять в картинке несвязанные концепции, подбирать текст для существующих изображений. Название программы отсылает к художнику-сюрреалисту Сальвадору Дали и персонажу Wall-E из одноименного мультфильма. В 2022 году команда выпустила версию DALL-E 2, которая генерирует реалистичные изображения, но пока она недоступна широкому кругу пользователей и компаний.
ruDALL-E Kandinsky
Как попробовать ruDALL-E Kandinsky:
- зайти на официальный сайт нейросети;
- выбрать «Попробовать»;
- ввести текстовое описание в окне через пробелы на русском языке;
- ввести код подтверждения;
- скачать готовую картинку или поделиться ею в соцсетях через специальную кнопку.
Также можно посмотреть варианты сгенерированных для других пользователей картинок по похожим запросам (по нашему таких не нашлось).
Картинка по описанию ruDALL-E Kandinsky
Нейросеть в 2021 году разработало подразделение SberAI совместно со SberDevices, Самарским университетом, AIRI и SberCloud. Оно работает на базе программного обеспечения DALL-E, но генерирует картинки по описанию на русском языке. В открытом доступе уже есть модели генератора — ruDALL-E Malevich (XL), которая генерирует картинки в стиле Малевича; Sber VQ-GAN, которая генерирует изображения в хорошем разрешении; ruCLIP Small для ранжирования изображений и подписей, а также Super Resolution (Real ESRGAN) для генерации в супервысоком разрешении.
В 2022 году SberAI выпустила большую модель ruDALL-E Kandinsky, обученную на 12 млрд параметров. Она доступна в приложении «Салют» от SberDevices и в боте Discord. По словам разработчиков, генерация изображений учитывает точное описание желаемого и создает уникальные изображения, которые раньше не существовали. Их можно использовать для иллюстраций статей, а также в копирайтинге и рекламе.
Midjourney
Как попробовать:
- зарегистрироваться на платформе для геймеров Discord;
- зайти на официальный сайт Midjourney и авторизоваться через Discord;
- перейти в один из ботов newbie и ввести в поле для отправки сообщения команду /imagine;
- ввести описание на английском языке в плашке Prompt;
- кликнуть «Отправить»;
- появятся четыре картинки, после этого можно воспользоваться кнопкой U, чтобы улучшить разрешение одной из них, или кнопкой V, чтобы создать еще четыре вариации выбранной картинки;
- нажать на понравившуюся картинку и выбрать «Открыть оригинал», а затем сохранить ее, также можно сохранить весь коллаж.
Эту нейросеть разработала одноименная американская компания, которую основал ученый и бывший сотрудник Института Макса Планка Дэвид Хольц. В середине июля 2022-го Midjourney вышла в фазу бета-тестирования и стала доступной для пользователей по всему миру. В бесплатной версии можно сгенерировать 25 сетов в низком разрешении или меньше, так как попытки улучшить изображения засчитываются как новая попытка генерации. По сравнению с конкурентами Midjourney обеспечивает более высокое разрешение итоговых картинок и большую детализацию в соответствии с текстовым запросом.
Starryai
Как попробовать:
- перейти на сайт Starryai, кликнуть «Start Creating»;
- пройти верификацию через Google или Apple;
- выбрать опцию Altair или Orion;
- в окне Prompt ввести текстовое описание на английском языке;
- в окне появится картинка, которая будет преобразовываться прямо на глазах;
- кликнуть на готовое изображение и выбрать Download, также можно поделиться картинкой в соцсетях или даже создать из нее анимацию.
Нейросеть создает картинки на основе текстового описания, но с дополнениями. В режиме Altair можно создать сказочное изображение, которое будет представлять собой более абстрактные художественные рендеры ИИ. В режиме Orion можно создавать более сложные и кинематографичные изображения, смешивая до трех стилей. Для генерации используется система кредитов, которые можно не только купить за деньги, но и заработать — посмотреть рекламу или поделиться работой в соцсетях. Для уже готового изображения доступна опция увеличения разрешения за дополнительные кредиты.
Dream by WOMBO
Как попробовать:
- зайти на сайт Dream;
- в окне Prompt вбить текстовое описание на английском языке;
- выбрать стиль картинки и кликнуть Create;
- нажать Save, также можно повторить попытку генерации, нажав Generate Again.
Сервис от канадского стартапа WOMBO позволяет создавать вертикальные обложки. При этом можно выбрать режим («Мистический», «Барокко», «Фэнтези» и так далее) и прикрепить картинку-референс, а также собственный NFT (невзаимозаменяемый токен). Нейросеть выдает абстрактные результаты. Генерация картинки происходит в режиме реального времени. Веб-версия сервиса бесплатна.
В мае 2022 года Google также показала свою нейросеть Imagen, которая генерирует изображения на основе текста методом диффузии: начинает со схематичного изображения и улучшает его. Сначала Imagen создает изображение 64×64 пикселя, но потом доводит его до 1024×1024 пикселя. В итоге картинка получает настолько высокую детализацию, что ее можно принять за фотоснимок.
Картинка, сгенерированная Imagen / Google AI
Сначала Google открыла свой сервис для ограниченного бета-тестирования, но теперь оно, похоже, закрыто. Видимо, в ближайшем будущем Imagen станет общедоступным.
21 сайт, где можно протестировать работу нейросетей — Machine learning на vc.ru
Среди них — генерирование котов, создание рисунков из каракулей, поиск ответов в Библии и озвучка голосами знаменитостей.
591 938
просмотров
Отретушировать изображение — Nvidia InPainting
На сайте пользователь может отретушировать фотографию с помощью «умной» кисти. Алгоритмы умеют заменять изображения или убирать ненужные детали на фотографии. Для этого нужно загрузить фотографию и с помощью кисти создать маску нужного объекта.
Сгенерировать человека — ThisPersonDoesNotExist
Нейросеть создаёт реалистичное изображение человеческого лица. Новое изображение появляется при каждом открытии или обновлении страницы. В основе алгоритма лежит генеративная нейросеть StyleGAN от Nvidia.
Разработчик — сотрудник Uber Филипп Ван.
Создать кота — ThisCatDoesNotExist
Искусственный интеллект генерирует изображение кота на основе знаний, который он получил, анализируя настоящие изображения животных. Чтобы получить изображение кота, достаточно обновить страницу сайта.
Этот сервис тоже создал сотрудник Uber Филипп Ван.
Поиграть в тетрис — Sematris
Мини-игра от Google работает двумя способами: вдумчивый тетрис или интенсивная аркада.
В первом случае нужно написать родственное слово к одному из представленных в списке, и нейросеть попробует угадать, к какому из этих слов оно подходит.
Во втором — подобрать близкое по смыслу слово к варианту, предложенному алгоритмом. Например, сопоставить слово «спать» со словом «кровать». Чем больше совпадений, тем больше очков получает пользователь. Правильное слово между блоками приводит к удалению блока.
Создать рисунок из каракулей — AutoDraw
Искусственный интеллект и машинное обучение помогают превратить неаккуратные наброски в чёткие прорисованные изображения. Пользователю достаточно нарисовать несколько линий на холсте, чтобы алгоритм подсказал запланированный рисунок. Искусственный интеллект сравнивает изображения из обширной базы данных и выбирает подходящие варианты.
Нарисовать реалистичное изображение — Smart Sketch
Сервис демонстрирует работу нейросети GauGAN от Nvidia, которая превращает схематичные рисунки в реалистичные изображения. Кроме того, если два пользователя создадут один и тот же эскиз с одинаковыми настройками, то встроенные в проект случайные числа гарантируют, что приложение выдаст разные результаты.
Разработку называли «Paint эпохи искусственного интеллекта». Однако на момент написания заметки сайт приложения не работал.
Распознать рисунок — Quick, Draw!
Пользователь создаёт рисунки и предлагает алгоритмам Google угадать, что он имел в виду. Модель обучения улучшается с ростом количества угаданных изображений.
Все данные остаются в публичном доступе.
Описать фотографию — CaptionBot
Сервис от Microsoft составляет описание к любой фотографии. В его основе лежит три отдельных алгоритма: Computer Vision API, Bing Image Search API и Emotion API. Если на изображении есть лица, сервис показывает эмоции людей с помощью эмоджи. После анализа приложение предлагает оценить, насколько точно он составил описание.
С помощью рейтингов нейросеть обучается, и теоретически со временем подписи должны становиться лучше.
Поговорить с книгой — Talk to Books
Приложение работает на базе алгоритмов Google AI. Нейросеть отвечает на вопросы пользователя цитатами из книг. Она умеет обрабатывать абстрактные вопросы, например, «в чём смысл жизни?» и «что значит быть человеком?».
Сервис не распознаёт вопросы на русском языке.
Создать резюме — This resume does not exist
Нейросеть использует шаблоны для резюме, созданные Enhancv для своих клиентов. Фотографии генерируются с помощью алгоритма StyleGAN от Nvidia, а тексты — TextgenRNN. Источником данных послужила информация с портала Indeed, где опубликовано 120 млн резюме. Создать новое резюме можно каждые 10 секунд.
Сервис создали разработчики болгарского сервиса по созданию резюме Enhancv.
Сделать логотип — Logojoy
Чтобы создать логотип, пользователю нужно ввести название компании, выбрать её специализацию, понравившиеся логотипы, цветовые гаммы и изображения.
Сервис использует алгоритмы TensorFlow от Google.
Написать стихотворение — «Яндекс.Автопоэт»
Алгоритм «Яндекса» составляет собственные стихи из заголовков «Яндекс.Новостей». Сервис автоматически определяет стихотворный размер фразы по чередованию ударных и безударных слогов, составляет фонетические транскрипции и рифмует созвучные фразы.
Также приложение читает собственные произведения с помощью технологии SpeechKit.
Превратить фотографию в портрет из стихов — PoemPortraits
Проект — результат сотрудничества Google Arts и Culture Lab. На старте пользователю необходимо ввести любое слово, которое будет содержаться в стихотворении. Затем — предоставить доступ к камере и сфотографироваться, после чего нейросеть наложит стихи на фотографию.
The Verge
Чтобы создать изображение, нужно загрузить фотографию и выбрать стиль. Готовый результат сервис присылает на электронную почту — такую необходимость он объясняет тем, что обработка занимает несколько минут и на сервисе длинная очередь. Среднее время ответа — около 10 минут.
Удалить фон с фотографии — remove.bg
Сервис позволяет за пять секунд удалить фон с фотографии без использования графических редакторов. С помощью алгоритмов приложение выделяет объекты на переднем плане и убирает лишнее.
Раскрасить чёрно-белую фотографию — Colorize
Приложение разработано российской компанией G-Core Labs. В его основе — проект с открытым исходным кодом DeOldify. Бесплатно пользователь может загрузить до 50 фотографий, на каждой из них будет написано «Создано с помощью Colorize.cc». Чтобы получить фото, нужно оставить электронный адрес. Время ожидания — от 30 секунд.
Платная версия стоит $10, она убирает надпись и увеличивает лимит до 10 тысяч загрузок.
Найти ответ в Библии — Digital Bible
Сервис использует искусственный интеллект, чтобы найти в Библии стихи по ключевому слову или концепции. Например, можно напечатать «месть» или «Ной», и приложение отобразит все стихи из Библии, которые содержат упоминания слов. Сервис находит не только текстовые совпадения, но и смысловые.
Сайт работает на английском языке.
Озвучить текст голосом знаменитости — Voices by Headliner
Приложение преобразовывает текст на английском языке в речь и затем предлагает создать видео. Оно работает на базе Microsoft Custom Voice.
Среди вариантов озвучки — голоса Марка Цукерберга, Дональда Трампа, Моргана Фримена, Ким Кардашьян, Тейлор Свифт и других знаменитостей.
Lol, internet
(made with https://www.producthunt.com/posts/voices-by-headliner)
Заменить лицо на фотографии — Reflect
Сервис, основанный на работе состязательно-генеративной нейросети, автоматически заменяет лицо на фотографии на другое. Пользователь может загрузить собственные изображения или использовать готовые.
Приложение не просто копирует и подставляет лицо, но и сохраняет выражение лица, его цвет и другие характеристики. Изменять лица можно на картинах, рисунках, статуях и изображениях персонажей видеоигра и фильмов.
В планах сервиса — заменять тела и лица на видео.
Обучить нейросеть — Teachable Machine
Google создала приложение, которое поможет людям понять, как работают нейросети. Для эксперимента понадобится устройство с веб-камерой. Совершая разные движения на камеру, сервис запоминает их и отвечает на жесты GIF-изображением, звуком или речью.
Нарисовать портрет — AI Portraits
С помощью генеративно-состязательной сети сайт сканирует фотографию и создаёт похожее изображение, накладывая миллион фотографий актёров. Чтобы получить наилучшее из возможных изображений, советуют загрузить фотографию лица крупным планом без лишних деталей.
десять сервисов — Сервисы на vc.ru
{«id»:13670,»url»:»\/distributions\/13670\/click?bit=1&hash=f5e899763388765d38486e688109a6eed4d57404960b7eb7627a67dfefa6f1d9″,»title»:»\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u0438 \u0432 21 \u0432\u0435\u043a\u0435: \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0434\u0430\u0451\u043c \u0434\u0435\u043d\u044c\u0433\u0438 \u0440\u043e\u0431\u043e\u0442\u0430\u043c»,»buttonText»:»\u0427\u0438\u0442\u0430\u0442\u044c»,»imageUuid»:»f51d1df3-c90f-5d41-a4ff-0d0fa66a34ac»,»isPaidAndBannersEnabled»:false}
Что делать, если картинка плохая и всё размыто — бесплатно и платно.
740 281
просмотров
Zyro AI Image Upscaler
Полностью бесплатный сервис компании Zyro позволяет обрабатывать фотографии с помощью глубоких свёрточных нейросетей. Сайт не разрешает самому выбрать настройки улучшения изображения и увеличивает качество в автоматическом режиме в два раза.
Zyro AI Image Upscaler
Waifu2x
Бесплатный онлайн-сервис для повышения качества не только фотографий, но и рисунков. ПО на основе глубоких свёрточных нейросетей позволяет убрать шумы и увеличить размер изображений в два раза без потери качества. При обработке снимка предлагается выбрать его тип: рисунок или фотография.
Waifu2x
Let’s Enhance
Онлайн-сервис улучшает качество фотографий до 16 раз с помощью технологий искусственного интеллекта. При обработке изображений Let’s Enhance корректирует их цвет и тон, а также убирает шумы. На сайт можно загрузить сразу несколько изображений и запустить их одновременную обработку.
Разработчики утверждают, что Let’s Enhance работает на основе глубоких свёрточных нейросетей. В бесплатной версии пользователи могут улучшить до четырёх раз качество пяти фото. Подписка на неограниченную обработку 100 изображений стоит $9 в месяц, за обработку 300 фотографий придётся заплатить $24, а за 500 — $34.
Let’s Enhance
AI Image Enlarger
Сайт предоставляет пользователям шесть онлайн-инструментов на основе ИИ:
- для улучшения качества до восьми раз;
- повышения резкости;
- удаления шумов;
- улучшения цвета и контрастности;
- ретуши лиц;
- удаления фона.
В бесплатной версии AI Image Enlarger позволяет обработать до восьми изображений в месяц. Премиальная подписка стоит $9, корпоративный пакет — $19.
AI Image Enlarger
Deep Image
Онлайн-сервис, в котором можно обработать сразу несколько изображений одновременно. В бесплатной версии сайт позволяет улучшить качество пяти снимков до четырёх раз. Ежемесячная подписка на обработку 100 изображений обойдётся пользователю в $9, на 500 и 1000 — в $39 и $69 соответственно.
Изображения после обработки доступны в разрешениях 6250 x 4000 px, 12020 x 2080 px и 5000 x 5000 px.
Deep Image
Vance AI Image Enlarger
Разработчики утверждают, что Image Enlarger может улучшить качество изображения с помощью ИИ до восьми раз без потери качества. Все загруженные на сайт фотографии удаляются спустя 24 часа после обработки.
В сервисе можно бесплатно улучшить качество трёх фотографий. Подписка стоит $9,9 за 200 изображений и $19,9 за 500 изображений.
Vance AI Image Enlarger
icons8 AI Image Upscaler
Сайт увеличивает фотографии в два-четыре раза и предоставляет доступ к своему API по цене от $250 за месяц. Сервис можно бесплатно использовать для обработки трёх изображений, дальше придётся платить по $0,2 за один снимок. За $9 можно обработать 100 изображений в месяц, за $99 — неограниченное количество фото.
icons8 AI позволяет увеличивать фотографии до разрешения 3000×3000 px.
icons8 AI Image Upscaler
Crea8tiveAI Photo Refiner
Онлайн-сервис предлагает улучшить качество изображений до 16 раз за счёт увеличения пикселей в четыре раза по вертикали и горизонтали с помощью ИИ. Photo Refiner также очищает фотографий от шума. На обработку снимков сервису требуется 10 секунд.
Улучшения качества одной фотографии в Photo Refiner стоит $4,99. У сервиса есть несколько вариантов подписки:
- 200 снимков в месяц за $48;
- 500 снимков в месяц за $98;
- 3000 снимков в месяц за $297;
- 5000 снимков в месяц за $450;
- 10 тысяч снимков в месяц за $8000.
При подписке пользователь получит доступ к другим средствам обработки изображений от Crea8tiveAI.
Crea8tiveAI
Upscale Pics
Этот онлайн-сервис позволяет бесплатно увеличивать снимки до восьми раз, убирать шум с фотографий и сжимать изображения. При оплате подписки Upscale Pics разрешает пользователю загружать сразу несколько файлов для обработки и улучшать разрешение до 20000 x 20000 px.
Подписка стоит $10 в месяц или $60 в год.
Upscale Pics
Topaz Gigapixel AI
Сервис для обработки изображений с помощью технологий искусственного интеллекта, который может работать как отдельная программа или плагин для Adobe Photoshop. В основе сервиса лежат нейронные сети, обученные на «миллионах изображений» разных видов — от пейзажей и портретов до архитектуры. Gigapixel AI стоит $99,99, на сайте можно ознакомиться с бесплатной демо-версией перед покупкой.
Topgaz Gigapixel AI
Распознавание изображений с помощью глубокого обучения и нейронных сетей
Время чтения: 10 минут
Приятно осознавать, что нам, людям, удалось заставить машины работать с нашими естественными способностями: учиться на собственном примере и воспринимать окружающий мир. Единственная проблема заключается в том, что требуется значительно больше времени и усилий, чтобы научить компьютеры «видеть», как мы. Но если мы подумаем о практической цели, которую эта возможность уже приносит организациям и предприятиям, усилия окупятся.
В этой статье вы узнаете, что такое распознавание изображений и как оно связано с компьютерным зрением. Вы также узнаете, что такое нейронные сети и как они учатся распознавать то, что изображено на изображениях. Наконец, мы обсудим некоторые варианты использования этой технологии в разных отраслях.
Что такое распознавание изображений и компьютерное зрение?
Распознавание изображений (или классификация изображений) — это задача идентификации изображений и их классификации в одном из нескольких предопределенных отдельных классов. Таким образом, программное обеспечение и приложения для распознавания изображений могут определить, что изображено на картинке, и отличить один объект от другого.
Область исследования, направленная на обеспечение машин такой способностью, называется компьютерное зрение . Являясь одной из задач компьютерного зрения (CV), классификация изображений служит основой для решения различных задач CV, в том числе:
Классификация изображений с локализацией – помещение изображения в заданный класс и рисование ограничивающей рамки вокруг объекта для показать, где он находится на изображении.
Классификация изображений и классификация изображений с локализацией. Источник: KDnuggets
Обнаружение объектов — категоризация нескольких различных объектов на изображении и отображение местоположения каждого из них с помощью ограничительных рамок. Итак, это вариация классификации изображений с задачами локализации множества объектов.
Объектная (семантическая) сегментация – идентификация конкретных пикселей, принадлежащих каждому объекту на изображении, вместо рисования ограничивающих рамок вокруг каждого объекта, как при обнаружении объектов.
Сегментация экземпляра – дифференциация нескольких объектов (экземпляров), принадлежащих к одному классу (каждого человека в группе).
Разница между обнаружением объектов, семантической сегментацией и сегментацией экземпляров. Источник: Условные случайные поля и глубокие нейронные сети для семантической сегментации
Исследователи могут использовать модели глубокого обучения для решения задач компьютерного зрения. Глубокое обучение — это метод машинного обучения, который фокусируется на обучении машин обучению на примерах. Поскольку в большинстве методов глубокого обучения используются архитектуры нейронных сетей, модели глубокого обучения часто называют глубокими нейронными сетями.
Глубокие нейронные сети: «как» распознавание изображений и другие методы компьютерного зрения
Распознавание изображений — одна из задач, в которых глубоких нейронных сетей (ГНС) преуспевают. Нейронные сети — это вычислительные системы, предназначенные для распознавания закономерностей. Их архитектура вдохновлена структурой человеческого мозга, отсюда и название. Они состоят из трех типов слоев: входных, скрытых слоев и выходных. Входной слой получает сигнал, скрытый слой обрабатывает его, а выходной слой принимает решение или прогноз относительно входных данных. Каждый сетевой уровень состоит из 9 взаимосвязанных0025 узлов (искусственные нейроны ), которые выполняют вычисления.
Для визуальных типов — посмотрите наше видео, объясняющее технические особенности распознавания изображений
Что делает нейронную сеть глубокой? Количество скрытых слоев: в то время как традиционные нейронные сети имеют до трех скрытых слоев, глубокие сети могут содержать их сотни.
Архитектура нейронной сети, каждый слой состоит из узлов. Количество скрытых слоев не является обязательным. Источник: MathWorks
Как нейронные сети учатся распознавать закономерности
Как понять, знакомый это человек или незнакомец (осложнения вроде близорукости не учитываются)? Мы смотрим на них, подсознательно анализируем их внешность, и если какие-то врожденные черты — форма лица, цвет глаз, прическа, телосложение, походка или даже выбор одежды — совпадают с конкретным знакомым нам человеком, мы узнаём этого человека. Эта мозговая работа занимает всего мгновение.
Итак, чтобы иметь возможность распознавать лица, система должна сначала изучить их особенности. Его необходимо научить предсказывать, является ли объект X или Z. Модели глубокого обучения изучают эти характеристики иначе, чем модели машинного обучения (ML). Вот почему подходы к обучению моделей также различаются.
Обучение моделей глубокого обучения (таких как нейронные сети)
Чтобы построить модель машинного обучения, которая может, например, прогнозировать отток клиентов, специалисты по данным должны указать, какие входные характеристики (свойства проблемы) модель будет учитывать при прогнозировании результата. Это может быть образование клиента, доход, этап жизненного цикла, характеристики продукта или используемые модули, количество взаимодействий со службой поддержки клиентов и их результаты. Процесс построения признаков с использованием предметной области называется 9.0025 Особенности проектирования.
Если бы мы обучили модель глубокого обучения видеть разницу между собакой и кошкой с помощью инженерии признаков… Что ж, представьте себе сбор характеристик миллиардов кошек и собак, живущих на этой планете. Мы не можем построить точные функции, которые будут работать для каждого возможного изображения, учитывая такие сложности, как изменчивость объекта в зависимости от точки обзора, фоновые помехи, условия освещения или деформация изображения. Должен быть другой подход, и он существует благодаря природе нейронных сетей.
Нейронные сети изучают признаки непосредственно из данных, на которых они обучаются, поэтому специалистам не нужно извлекать признаки вручную.
«Сила нейронных сетей заключается в их способности изучать представление в ваших обучающих данных и в том, как лучше всего связать их с выходной переменной, которую вы хотите предсказать. В этом смысле нейронные сети изучают отображение. Математически они способны изучать любую функцию отображения, и было доказано, что они являются универсальными алгоритмами аппроксимации».0026 отмечает Джейсона Браунли в Ускоренном курсе по многослойным нейронным сетям персептрона .
Обучающие данные в данном случае представляют собой большой набор данных, содержащий множество примеров каждого класса изображений. Когда мы говорим о большом наборе данных, мы действительно имеем в виду это. Например, набор данных ImageNet содержит более 14 миллионов аннотированных человеком изображений, представляющих 21 841 концепцию (наборы синонимов или синсеты в соответствии с иерархией WordNet), в среднем по 1000 изображений на концепцию.
Каждое изображение аннотировано (помечено) категорией, к которой оно принадлежит – кошка или собака. Алгоритм исследует эти примеры, изучает визуальные характеристики каждой категории и в конечном итоге учится распознавать каждый класс изображений. Этот модельный стиль тренировок называется контролируемое обучение .
Иллюстрация того, как нейронная сеть распознает собаку на изображении. Источник: TowardsDataScience
Каждый слой узлов обучается на выходе (наборе признаков), созданном предыдущим слоем. Таким образом, узлы в каждом последующем слое могут распознавать более сложные детализированные функции — визуальные представления того, что изображено на изображении. Такая «иерархия возрастающей сложности и абстракции» известна как иерархия признаков 9.0026 .
Пример иерархии признаков, изученной с помощью модели глубокого обучения на лицах Lee et al. (2009). Источник: ResearchGate.net
Итак, чем больше уровней в сети, тем выше ее предсказательная способность.
Ведущей архитектурой, используемой для задач распознавания и обнаружения изображений, являются сверточные нейронные сети (CNN). Сверточные нейронные сети состоят из нескольких слоев с небольшими наборами нейронов, каждый из которых воспринимает небольшие части изображения. Результаты всех коллекций в слое частично перекрываются, чтобы создать полное представление изображения. Затем нижний слой повторяет этот процесс для нового представления изображения, позволяя системе узнать о композиции изображения.
История глубоких CNN восходит к началу 1980-х годов. Но только в 2010-х исследователям удалось добиться высокой точности решения задач распознавания изображений с помощью глубоких сверточных нейронных сетей. Как? Они начали обучать и развертывать CNN с использованием графических процессоров (GPU), которые значительно ускоряют сложные системы на основе нейронных сетей. Количество обучающих данных — фото или видео — также увеличилось, потому что камеры мобильных телефонов и цифровые камеры начали быстро развиваться и стали доступными.
Варианты использования распознавания изображений
Теперь вы знаете о распознавании изображений и других задачах компьютерного зрения, а также о том, как нейронные сети учатся назначать метки изображению или нескольким объектам на изображении. Давайте обсудим несколько реальных применений этой технологии.
Бренды отслеживают текстовые сообщения в социальных сетях с упоминанием своего бренда, чтобы узнать, как потребители воспринимают, оценивают, взаимодействуют с их брендом, а также что они говорят о нем и почему. Это называется социальным прослушиванием. Тип социального прослушивания, который фокусируется на наблюдении за разговорами, основанными на визуальном образе, называется (барабанная дробь, пожалуйста)… визуальным прослушиванием.
Тот факт, что более 80 процентов изображений в социальных сетях с логотипом бренда не имеют названия компании в подписи, усложняет визуальное прослушивание. Как получить представление об этом случае? С обнаружением логотипа.
Стартап Meerkat провел эксперимент, чтобы показать, как обнаружение логотипа может помочь визуальному прослушиванию. В течение полугода стартаперы собирали твиты со словами, часто употребляемыми в контексте пива, например, пиво , cerveza, барбекю, бар и другие. Они обучили систему распознавать логотипы популярных пивных брендов: Heineken, Budweiser, Corona, Bud Light, Guinness и Stella Artois. И они использовали его для анализа изображений из твитов, содержащих логотипы брендов.
Логотип Heineken в различных контекстах. Источник: Meerkat’s Medium
Специалисты проиндексировали метаданные твитов, чтобы получить представление о доле каждого бренда на рынке и его потребителях.
Сначала они сравнили количество постов с логотипами каждого бренда с их долей рынка и выяснили, что эти два параметра не взаимосвязаны. Затем специалисты извлекли географические координаты почти 73% изображений, размещенных в Твиттере, чтобы оценить присутствие бренда в разных регионах. Затем они нанесли на график процентное соотношение каждого сорта пива для пяти ведущих стран в наборе данных. Например, Bud Light наиболее популярен в США, в то время как у Heineken есть поклонники в разных странах с наибольшей долей в США и Великобритании. Команда также проанализировала изображения с лицами, чтобы определить пол любителей пива. Разница была незначительной: фотографии разместили на 1,34% больше мужчин.
Это не только измерение узнаваемости бренда. Предприятия используют обнаружение логотипа для расчета рентабельности инвестиций от спонсирования спортивных мероприятий или для определения того, был ли их логотип использован не по назначению.
Анализ медицинских изображений
Программное обеспечение на основе моделей глубокого обучения помогает радиологам справляться с огромным объемом работы по интерпретации различных медицинских изображений: компьютерной томографии (КТ) и ультразвукового сканирования, магнитно-резонансной томографии (МРТ) или рентгена. IBM подчеркивает, что радиолог отделения неотложной помощи должен ежедневно осматривать до 200 пациентов. Кроме того, некоторые медицинские исследования содержат до 3000 изображений. Неудивительно, что на медицинские изображения приходится почти 90 процентов всех медицинских данных.
Рентгенологические инструменты на основе ИИ не заменяют врачей, но помогают им принимать решения. Они отмечают острые аномалии, выявляют пациентов с высоким риском или тех, кто нуждается в срочном лечении, чтобы рентгенологи могли расставлять приоритеты в своих рабочих списках.
Исследовательское подразделение IBM в Хайфе, Израиль, работает над программой Cognitive Radiology Assistant для анализа медицинских изображений. Система анализирует медицинские изображения, а затем объединяет полученные данные с информацией из медицинских карт пациента и представляет результаты, которые рентгенологи могут учитывать при планировании лечения.
Демонстрация инструмента IBM Eyes of Watson для обнаружения рака молочной железы, использующего компьютерное зрение и машинное обучение. Источник: IBM Research
Ученые из этого подразделения также разработали специализированную глубокую нейронную сеть для выявления аномальных и потенциально раковых тканей молочной железы.
Компания Aidoc предлагает еще одно решение, использующее глубокое обучение для сканирования медицинских изображений (в частности, компьютерной томографии) и определения приоритетов в списках пациентов. Решение получило разрешение Управления по санитарному надзору за качеством пищевых продуктов и медикаментов США (FDA), Therapeutic Goods of Australia (TGA) и маркировку CE Европейского Союза для обозначения трех опасных для жизни состояний: легочной эмболии, перелома шейного отдела позвоночника и внутричерепного кровоизлияния.
В число клиентов компании входят мемориальный медицинский центр UMass в Вустере, штат Массачусетс, больница Монтефиоре Найак в округе Рокленд, штат Нью-Йорк, и центр визуализации Global Diagnostics Australia.
Приложения для распознавания произведений искусства
Magnus — это основанное на распознавании изображений приложение, которое ведет любителей искусства и коллекционеров «через художественные джунгли». Как только пользователь фотографирует произведение искусства, приложение предоставляет такие данные, как автор, название, год создания, размеры, материал и, самое главное, текущую и историческую цену. В приложении также есть карта с галереями, музеями и аукционами, а также выставленные в настоящее время произведения искусства.
Магнус получает информацию из базы данных, содержащей более 10 миллионов изображений произведений искусства; информация о товарах и ценах собирается из краудсорсинга. Интересный факт: Леонардо ДиКаприо инвестировал в приложение, говорит Магнус на своей странице в Apple Store.
Посетители музеев могут утолить жажду знаний с помощью таких приложений, как Smartify. Smartify — это путеводитель по музеям, который вы можете использовать в десятках всемирно известных художественных мест, таких как Метрополитен-музей в Нью-Йорке, Смитсоновская национальная портретная галерея в Вашингтоне, Лувр в Париже, Рейксмузеум в Амстердаме, Королевская академия художеств в Лондон, Государственный Эрмитаж в Санкт-Петербурге и другие.
Как работает Smartify. Источник: Smartify
Чтобы раскрыть детали произведения искусства, приложение сопоставляет отсканированные произведения искусства с цифровыми изображениями в базе данных, которая на 2017 год содержала почти 50 000 произведений искусства. Соучредитель Smartify Анна Лоу объясняет, как работает приложение. таким образом: «Мы сканируем произведения искусства, используя фотографии или цифровые изображения, а затем создаем цифровые отпечатки произведений искусства, что означает, что они сводятся к набору цифровых точек и линий».
Распознавание лиц для улучшения обслуживания в аэропорту
Распознавание лиц становится популярным среди авиакомпаний, которые используют его для облегчения посадки и регистрации. Есть два основных направления этих обновлений: следовать тенденциям самообслуживания и этой биометрической технологии и сделать работу в аэропорту более безопасной и быстрой. Чем меньше шагов должны сделать пассажиры и персонал, чтобы продолжить предполетную подготовку, тем лучше.
Посадочное оборудование сканирует лица путешественников и сопоставляет их с фотографиями, хранящимися в базах данных органов пограничного контроля (например, Таможенно-пограничной службы США), чтобы подтвердить их личность и данные о рейсе. Это могут быть фотографии с удостоверений личности, виз или других документов.
American Airlines, например, начала использовать распознавание лиц у выходов на посадку терминала D в международном аэропорту Даллас/Форт-Уэрт, штат Техас. Вместо того, чтобы использовать посадочные талоны, путешественники сканируют свое лицо. Единственное, что не изменилось, так это то, что для прохождения досмотра по-прежнему необходимо иметь паспорт и талон. Биометрический интернат работает на добровольной основе.
Биометрическая посадка для пассажиров American Airlines. Источник: Далласские утренние новости 9.0026
В 2018 году компания American в течение 90 дней тестировала биометрические данные в Терминале 4 международного аэропорта Лос-Анджелеса с идеей расширить использование технологий, если испытание пройдет успешно.
Многие авиакомпании используют распознавание лиц в качестве дополнительной опции при посадке: JetBlue, British Airways, AirAsia, Lufthansa или Delta. Последний из них установил систему самообслуживания для сдачи багажа в аэропорту Миннеаполис-Стрит. Paul International Airport в 2017 году.
Визуальный поиск товаров
Границы между онлайн- и офлайн-покупками исчезли с момента появления в игре визуального поиска. Например, в приложении Urban Outfitters есть функция Scan + Shop, благодаря которой потребители могут отсканировать товар, который они нашли в обычном магазине или распечатали в журнале, получить его подробное описание и сразу же заказать. Визуальный поиск также повышает удобство покупок в Интернете.
Приложения с этой возможностью работают на основе нейронных сетей. НС обрабатывают загружаемые пользователями изображения и генерируют описания изображений (теги), например, тип одежды, ткань, стиль, цвет. Описания изображений сопоставляются с товарами на складе вместе с соответствующими тегами. Результаты поиска представлены на основе оценки сходства.
Мы посвятили раздел визуальному поиску в статье о том, как ритейлеры используют ИИ. Там вы также можете прочитать о том, как технологии распознавания изображений и лиц превратили в реальность такие безкассовые магазины, как Amazon Go, а также о том, как они обеспечивают работу систем наблюдения или персонализацию в магазине.
Работа продолжается
Во второй половине 20-го века исследователи подсчитали, что для решения проблемы компьютерного зрения, среди прочего, потребуется относительно короткое время. В 1966 году математик и бывший содиректор лаборатории компьютерных наук и искусственного интеллекта Массачусетского технологического института Сеймур Пейперт координировал проект Summer Vision. У исследователей был амбициозный план: за одно лето построить значительную часть системы с возможностями компьютерного зрения, какими мы их знаем сегодня. «Основной целью проекта является создание системы программ, которые будут делить видекторное изображение на области, такие как вероятные объекты, вероятные фоновые области и хаос», — говорится в описании проекта.
Ну, это заняло гораздо больше времени. Современное программное обеспечение может распознавать большое количество повседневных объектов, человеческие лица, печатный и рукописный текст на изображениях и другие объекты (ознакомьтесь с нашей статьей об API-интерфейсах распознавания изображений). Но работа продолжается, и мы продолжим наблюдать, как все больше и больше все больше предприятий и организаций внедряют распознавание изображений и другие задачи компьютерного зрения, чтобы выделиться среди конкурентов и оптимизировать операции.
Как обучить нейронные сети классификации изображений — Часть 1 | Сэнди Ли
Классификация изображений — горячая тема в науке о данных, и за последние несколько лет во многих областях произошли огромные улучшения. Везде куча приложений, но как это делается?.
Фото Алины Грубняк на Unsplash
Глубокая нейронная сеть — это сеть искусственных нейронов, организованных в слои (с помощью программного обеспечения). Каждый слой соединен со следующим, и каждое соединение имеет вес, который помогает определить, насколько активен искусственный нейрон. Это срабатывание помогает определить, насколько сильны связи между слоями, и в целом нейроны, которые активируются вместе, имеют более сильные связи. Как и в случае с биологическими нейронами.
Насколько сильны эти соединения, определяется тем, как сеть обучается на данных, которые вы в нее вкладываете. Эти сети обучаются с помощью процесса, называемого обратным распространением, который работает для передачи данных в сеть, а затем измеряет производительность сети. Эта ошибка измеряется с помощью функции потерь.
Обратное распространение работает с использованием градиентного спуска для измерения скорости изменения функции потерь по отношению к весу каждого соединения, а шаг градиентного спуска используется, чтобы убедиться, что частота ошибок для каждого соединения снижается как можно ближе к ноль по возможности. В конечном итоге сеть должна прийти к решению, при котором общая ошибка минимизируется.
Скорость обучения сети называется скоростью обучения, и это еще один гиперпараметр, который можно настраивать при обучении нейронных сетей. Если скорость обучения слишком мала, сети может потребоваться слишком много времени, чтобы прийти к решению, и наоборот, если скорость обучения слишком велика, сеть будет «прыгать» и никогда не сойдется к оптимальному решению.
В нейронных сетях есть разные типы слоев, и каждый из них по-своему преобразует данные. Самый простой тип — это плотный слой, в котором соединены все нейроны. Другие типы включают сверточные слои, которые в основном используются для задач обработки изображений, и рекуррентные слои, которые используются для обработки данных временных рядов. Есть и другие, но это самые распространенные типы.
В этой статье я сосредоточусь на том, как реализовать простой классификатор изображений, используя серию плотных слоев в Python, используя Keras как часть Tensorflow. Как упоминалось выше, сверточные нейронные сети обычно лучше подходят для задач классификации изображений, и я расскажу о них во второй части этой серии. Поскольку моя основная область интересов — поисковая оптимизация, я свяжу все это воедино в части 3 о том, как нейронные сети используются в поиске.
Нейронные сети — это увлекательно, и если вам интересна эта тема, я бы посоветовал вам посмотреть этот отличный плейлист на YouTube на канале Deep Lizard. У них отличный и доступный контент по нейронным сетям и глубокому обучению.
Если вас больше интересует реализация с использованием Python с Keras, я бы посоветовал вам взглянуть на Практическое машинное обучение с помощью Scikit-Learn, Keras и Tensorflow от Аурелиона Герона. Это отличная книга, написанная бывшим сотрудником Google и рецензированная автором Keras. Я очень рекомендую это.
Начало работы с Keras и TensorFlow
Keras — это высокоуровневый API глубокого обучения на Python, который позволяет легко создавать и обучать модели глубокого обучения. Он был запущен в 2016 году и завоевал популярность в сообществе специалистов по данным благодаря простоте использования, поскольку его синтаксис очень похож на Scikit-Learn.
TensorFlow — это библиотека, созданная командой Google Brain для задач машинного обучения, которая часто конкурировала с PyTorch (созданной Facebook) за долю рынка, но не смогла этого сделать, поскольку ее документация была не так доступна. Чтобы исправить это, Google выпустил TensorFlow 2, который содержал множество улучшений, особенно в отношении кросс-совместимости с моделями, поддержки графического процессора и графических утилит.
С выпуском TensorFlow 2 Keras теперь объединен с Tensorflow, а отдельная версия больше не поддерживается. Если вы хотите установить Keras и TensorFlow, то это просто. Просто зайдите в свою среду Python (я рекомендую использовать виртуальную среду/менеджер пакетов, например pipenv) и используйте любой менеджер пакетов Python, который вам нравится:
python -m pip install TensorFlow
Обязательно используйте 64-битную версию Python, чтобы это работало. Получить поддержку графического процессора в Windows немного сложно, но это видео на YouTube покажет вам, как это сделать. Тем не менее, вам, вероятно, не понадобится это для этого урока. Вы можете взглянуть на Google Colab, поскольку у него есть графические процессоры, доступные без настройки.
Вы можете проверить установку в блокноте Jupyter следующим образом:
импортировать TensorFlow как tf
из tensorflow import keras
print(tf.__version__)
print(keras.__version__)
Если все это заработало, то на момент написания вы должны увидеть что-то вроде:
2.3.0
2.4.0
Когда вы получили Keras и TensorFlow работают, вы должны быть готовы к созданию классификатора изображений с помощью нейронной сети.
Импорт набора данных
Для большинства простых задач классификации изображений популярно использовать набор данных MNIST, который состоит из 60 000 фотографий рукописных чисел. Однако для этой задачи мы собираемся использовать набор данных MNIST Fashion, который состоит из 60 000 изображений в градациях серого 28 x 28 изображений модных статей Zalando, классифицированных по 10 различным классам. Причина этого в том, что классификаторы изображений, как правило, находят это более сложным.
У Keras есть служебные функции, помогающие импортировать этот набор данных, поэтому его довольно просто использовать (аналогично Sklearn). Работайте в блокноте Jupyter и начните с того, что убедитесь, что у нас есть все необходимые импорты: будет работать с массивами NumPy и отображать их с помощью Matplotlib, поэтому вам необходимо убедиться, что они доступны в вашей среде. Как только это будет сделано, вы можете импортировать набор данных:
fashion_mnist = keras.datasets.fashion_mnist
(X_train_full, y_train_full), (X_test, y_test) = fashion_mnist.load_data()
тест). Данные по оси X — это изображения, а данные по оси Y — это метки. Чтобы сделать это более полезным для работы, также рекомендуется создать набор данных проверки, чтобы мы могли убедиться, что модель не переоснащена:
X_valid, X_train = X_train_full[:5000] X_train_full[5000:]
y_valid, y_train = y_train_full[:5000], y_train_full[5000:]
Данные оси Y представляют собой просто ряд чисел, связанных с каждой меткой класса, поэтому нам нужно определить метки классов вручную:
class_names = [ «Футболка/топ», «Брюки», «Пуловер», «Платье», «Пальто», «Сандалии», «Рубашка», «Кроссовки», «Сумка», «Ботильоны» ]
Получить представление о том, что на самом деле представляет собой набор данных, мы можем использовать простой цикл и Matplotlib:
plt. figure(figsize=(10,10))
для i в диапазоне (25):
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow( X_train_full[i], cmap=plt.cm.binary)
plt.xlabel(class_names[y_train_full[i]])
plt.show()
Отсюда вы увидите примерно следующее:
Первые 25 записей из Набор данных Fashion MNIST
Как видите, несмотря на то, что классов всего 10 (аналогично набору данных MNIST), изображения для каждого класса разные, поэтому работать с этим набором данных сложнее.
Нормализация набора данных
Первым шагом в работе с нейронными сетями является нормализация набора данных, в противном случае сети может потребоваться намного больше времени, чтобы прийти к решению.
Обычный способ нормализации набора данных заключается в масштабировании признаков, и это делается путем вычитания среднего из каждого признака и деления на стандартное отклонение. Это поместит функции в одинаковую шкалу где-то между 0 — 1.
Поскольку мы работаем с массивами NumPy 28 x 28, представляющими каждое изображение, и каждый пиксель в массиве имеет интенсивность где-то между 1 — 255, более простой способ получить всех этих изображений по шкале от 0 до 1 — разделить каждый массив на 255.
X_valid, X_train = X_valid / 255., X_train / 255.
X_test = X_test / 255.
Отсюда мы можем приступить к построению нейронной сети с плотным слоем и обучению ее на нашем наборе данных.
Построение нейросетевого классификатора изображений
Чтобы построить модель, мы должны указать ее структуру, используя синтаксис Keras. Как упоминалось выше, он очень похож на Scikit-Learn, поэтому он должен быть узнаваем, если вы знакомы с этим пакетом. Код для построения модели следующий:
модель = keras.models.Sequential([keras.layers.Flatten(input_shape = [28, 28]),
keras.layers.Dense(300, активация = «relu»),
keras.layers.Dense(100 , активация = «relu»),
keras.layers. Dense(100, активация = «relu»),
keras.layers.Dense(100, активация = «relu»),
keras.layers.Dense(10, активация = «softmax» )])
Чтобы объяснить этот код:
- Первая строка создает модель Sequential , и это самый простой тип структуры данных в Keras, который в основном представляет собой последовательность связанных слоев в сети
- Первый слой в модели — это сглаженный слой , он предназначен для предварительной обработки данных и сам по себе не поддается обучению. Это берет каждый массив NumPy 28 x 28 для каждого изображения и сглаживает его в массив 1 x 784, с которым сеть может работать
- . Затем мы добавляем скрытый слой Dense с 300 нейронами. Он будет использовать функцию активации ReLU. Каждый слой Dense управляет собственной матрицей весов, содержащей все веса соединений между нейронами и их входами
- Далее добавляем еще 3 слоя Dense по 100 нейронов в каждом. Отдача от добавления новых слоев уменьшается, и это то, что нам нужно проверить при построении и оптимизации сети. , мы используем функцию активации softmax
Чтобы получить полное представление о структуре модели, мы можем использовать:
model.summary()
И это даст нам вывод полной структуры сети:
Модель: «sequential_2» _________________________________________________________________ Слой (тип) Параметр формы вывода # ================= =============================================== flatten_2 ( Flatten) (Нет, 784) 0 ________________________________________________________________ плотности_10 (Плотность) (Нет, 300) 235500 _________________________________________________________________ плотности_11 (Плотность) (Нет, 100) 30100 _________________________________________________________________ плотности_12 (Плотность) (Нет, 100) 10100 _________________________________________________________________ плотности_13 (Плотность) (Нет, 100 ) 10100 ________________________________________________________________ плотно_14 (Плотное) (Нет, 10) 1010 =================================== ============================ Всего параметров: 286 810 Обучаемых параметров: 286 810 Необучаемых параметров: 0 ________________________________________________ _____________________________
Как видно, эта сеть имеет в общей сложности 286 810 обучаемых параметров (состоящих из весов между нейронами и смещений), и это дает сети большую гибкость, но это также означает, что ей будет очень легко переобучиться, поэтому нам нужно быть осторожными.
Прежде чем мы сможем обучить сеть, нам нужно ее скомпилировать, и это делается с помощью следующего кода: )
В этой строке мы указываем 3 вещи:
i) Используемая функция потерь. В этом случае мы используем разреженную категориальную перекрестную энтропию — это потому, что у нас есть индекс исключительных (разреженных) меток, которые мы пытаемся предсказать по сравнению с
ii) Оптимизатор , который мы собираемся использовать для оптимизации модель против функции потерь стохастический градиентный спуск и это обеспечит сходимость модели к оптимальному решению, т.е. Keras будет использовать метод обратного распространения, описанный выше
iii) Наконец, мы указываем показатель, который будем использовать в дополнение к потерям, чтобы дать нам представление о том, насколько хорошо работает наша модель. В этом случае мы используем точность , которая дает представление о том, насколько хорошо работает наша модель, давая процент того, сколько прогнозов соответствует фактическому классу для модели, которую мы обучаем
Обучение сети
Обучение сети сеть проста после того, как она была скомпилирована. Все, что вам нужно сделать, это вызвать метод подгонки модели (например, Sklearn) следующим образом:0003
history = model.fit(X_train,
y_train,
эпох = 10,
validation_data = (X_valid, y_valid))
Сначала мы передаем данные, на которых хотим обучить сеть, в данном случае X_train — это изображения, а y_train — это массив, содержащий метки. Мы также указываем количество эпох, с которыми мы хотим обучать модель (эпоха определяется тем, сколько раз мы хотим передавать данные обучения через сеть в целях обучения).
Keras также позволяет указать необязательный аргумент validation_data , в который мы передаем набор данных проверки. Если мы это сделаем, то в конце каждой эпохи Keras будет проверять производительность сети на проверочном наборе данных. Это хороший способ убедиться, что модель не переобучен, однако он не влияет на само обучение.
По ходу обучения вы увидите примерно следующее:
Эпоха 1/10 1719/1719 [=========================== ===] — 5 с 3 мс/шаг — потеря: 0,7698 — точность: 0,7385 — val_loss: 0,5738 — val_accuracy: 0,7962
Эпоха 2/10 1719/1719 [============================ ==] — 5 с 3 мс/шаг — потери: 0,4830 — точность: 0,8283 — val_loss: 0,4570 — val_accuracy: 0,8404
Эпоха 3/10 1719/1719 [================= =============] — 5 с 3 мс/шаг — потери: 0,4261 — точность: 0,8480 — val_loss: 0,4121 — val_accuracy: 0,8522
Эпоха 4/10 1719/1719 [====== =======================] — 5s 3ms/шаг — потери: 0,3932 — точность: 0,8582 — val_loss: 0,3951 — val_accuracy: 0,8566
Эпоха 5/10 1719/1719 [==============================] — 5 с 3 мс/шаг — потери: 0,3708 — точность: 0,8660 — val_loss: 0,3597 — val_accuracy: 0,8682
Эпоха 6/10 1719/1719 [============================== ] — 5 с 3 мс/шаг — потери: 0,3518 — точность: 0,8728 — val_loss: 0,3397 — val_accuracy: 0,8756
Эпоха 7/10 1719/1719 [=================== ===========] — 5 с 3 мс/шаг — потери: 0,3369 — точность: 0,8779 — val_loss: 0,3506 — val_accuracy: 0,8738
Эпоха 8/10 1719/1719 [======== ======================] — 5 с 3 мс/шаг — потери: 0,3243 — точность: 0,8814 — val_loss: 0,3343 — val_accuracy: 0,8774
Эпоха 9/10 1719/1719 [==============================] — 4 с 3 мс/шаг — потери: 0,3128 — точность: 0,8861 — val_loss: 0,3415 — val_accuracy: 0,8794
Эпоха 10/10 1719/1719 [============================== ] — 4 с 2 мс/шаг — потери: 0,3019 — точность: 0,8888 — val_loss: 0,3265 — val_accuracy: 0,8822
и наборы данных проверки. Значение точность — это простая процентная мера того, сколько элементов сеть обработала правильно. Значение loss — это кросс-энтропийная потеря.
После обучения модели можно вызвать ее метод history , чтобы получить словарь потерь и любых других показателей, необходимых на каждом этапе обучения. Мы можем поместить их в Pandas DataFrame и построить их следующим образом: (0, 1)
plt.show() Потери и точность для нашей модели
Как видно выше, чем меньше потерь, тем выше точность. На этом графике выделяются еще две вещи:
- Вероятно, мы могли бы обучать эту модель дольше, поскольку не похоже, что потери достигли минимума
- Точность набора данных для обучения выше, чем для проверочного набора (что нормально), но не сильно отличается от набора данных проверки. Это означает, что нет переобучения
Оценка производительности нейронной сети
Оценка производительности сети проста и соответствует передовым методам обработки данных. Мы вызываем метод модели evalute на наборе тестовых данных, чтобы увидеть, как он работает. Помните, что тестовый набор данных не использовался в обучении, и сеть не видела эти данные раньше. Мы должны выполнить этот шаг только один раз , чтобы мы могли получить точное представление о производительности модели.
model.evalute(X_test, y_test)
Это запустит модель на наборе тестовых данных, и результат должен выглядеть примерно так:
313/313 [======================= =======] — 0 с 2 мс/шаг — потери: 0,3802 — точность: 0,8858
Вы получите вывод потерь и любых других показателей, указанных при компиляции модели. Здесь мы видим, что эта модель верна в 88% случаев, что неплохо для простой сети с таким сложным набором данных.
Следующие шаги
В следующей части этой серии я расскажу о том, как реализовать описанное выше с помощью сверточной нейронной сети, и покажу, как и почему они лучше подходят для задач классификации изображений.
Вы можете получить код, который я использовал для этой работы, на моем Github здесь. Спасибо за чтение.
DALL·E: создание изображений из текста
Прочитать код paperView
DALL·E — это версия GPT-3 с 12 миллиардами параметров, обученная генерировать изображения из текстовых описаний с использованием набора данных пар текст-изображение. Мы обнаружили, что он обладает разнообразным набором возможностей, включая создание антропоморфных версий животных и объектов, правдоподобное объединение несвязанных концепций, рендеринг текста и применение преобразований к существующим изображениям.
См. также: DALL·E 2, который создает более реалистичные и точные изображения с 4-кратным увеличением разрешения.
Текстовая подсказка
Иллюстрация редиски дайкон в балетной пачке, выгуливающей собаку
Сгенерированные AI
изображений . . . .
Создано искусственным интеллектом
изображений
Подсказка редактирования или просмотра дополнительных изображений
Текстовая подсказка
витрина магазина, на которой написано слово «openai». . . .
Создано AI
изображений
Подсказка для редактирования или просмотра других изображений больше изображений
GPT-3 показал, что язык можно использовать для указания большой нейронной сети выполнять различные задачи по генерации текста. Image GPT показал, что тот же тип нейронной сети можно использовать для создания изображений с высокой точностью. Мы расширили эти результаты, чтобы показать, что манипулирование визуальными понятиями с помощью языка теперь доступно.
Обзор
Как и GPT-3, DALL·E представляет собой языковую модель преобразователя. Он получает и текст, и изображение как единый поток данных, содержащий до 1280 токенов, и обучается с использованием максимальной вероятности для генерации всех токенов один за другим. [1] Эта обучающая процедура позволяет DALL·E не только генерировать изображение с нуля, но и регенерировать любую прямоугольную область существующего изображения, простирающуюся до нижнего правого угла, таким образом, чтобы это соответствовало тексту. быстрый.
Мы понимаем, что работа с генеративными моделями может иметь значительные социальные последствия. В будущем мы планируем проанализировать, как такие модели, как DALL·E, связаны с социальными проблемами, такими как экономическое влияние на определенные рабочие процессы и профессии, потенциальная систематическая ошибка в результатах модели и долгосрочные этические проблемы, связанные с этой технологией.
Возможности
Мы обнаружили, что DALL·E может создавать правдоподобные образы для самых разных предложений, исследующих композиционную структуру языка. Мы проиллюстрируем это с помощью серии интерактивных изображений в следующем разделе. Образцы, показанные для каждой подписи в визуальных элементах, получены путем выбора 32 лучших из 512 после повторного ранжирования с помощью CLIP, но мы не используем никакого ручного выбора, кроме миниатюр и отдельных изображений, которые появляются снаружи. [2]
Управление атрибутами
Мы проверяем способность DALL·E изменять несколько атрибутов объекта, а также количество его появления.
Нажмите, чтобы отредактировать текстовую подсказку или просмотреть больше изображений, созданных искусственным интеллектом
зеленые пятиугольные часы. зеленые часы в форме пятиугольника.
navigationdownwide
navigationupwide
Текстовая подсказка
Генерируемые AI
изображения
Мы обнаружили, что DALL·E может отображать знакомые объекты в многоугольных формах, которые иногда вряд ли встречаются в реальном мире. Для некоторых объектов, таких как «рамка для картины» и «тарелка», DALL·E может надежно нарисовать объект любой из многоугольных форм, кроме семиугольника. Для других объектов, таких как «крышка люка» и «знак остановки», вероятность успеха DALL·E для более необычных форм, таких как «пятиугольник», значительно ниже.
Мы обнаружили, что для некоторых изображений в этом посте повтор подписи, иногда с альтернативными формулировками, улучшает согласованность результатов.
navigationupwide
куб из дикобраза. куб с текстурой дикобраза.
navigationdownwide
navigationupwide
Текстовая подсказка
изображений, созданных искусственным интеллектом
Мы обнаружили, что DALL·E может отображать текстуры различных растений, животных и других объектов на трехмерных телах. Как и в предыдущем изображении, мы обнаружили, что повторение подписи с альтернативной формулировкой улучшает согласованность результатов.
navigationupwide
коллекция очков лежит на столе
navigationdownwide
navigationupwide
Текстовая подсказка
Созданные ИИ
изображений сделать это, но не может надежно сосчитать до трех. Когда предлагается нарисовать существительные, для которых есть несколько значений, таких как «стаканы», «чипсы» и «чашки», он иногда рисует обе интерпретации, в зависимости от используемой формы множественного числа.
navigationupwide
Рисование нескольких объектов
Одновременное управление несколькими объектами, их атрибутами и их пространственными отношениями представляет собой новую задачу. Например, рассмотрим фразу «ежик в красной шапке, желтых перчатках, синей рубашке и зеленых штанах». Чтобы правильно интерпретировать это предложение, DALL·E должен не только правильно скомпоновать каждый предмет одежды с животным, но и сформировать ассоциации (шапка, красный), (перчатки, желтый), (рубашка, синий) и (штаны, зеленый). ), не смешивая их. [3] Мы проверяем способность DALL·E делать это для относительного позиционирования, укладки объектов и управления несколькими атрибутами.
маленький красный блок, расположенный на большом зеленом блоке
navigationdownwide
navigationupwide
Текстовая подсказка
Созданные AI
изображения
Мы обнаружили, что DALL·E правильно реагирует на некоторые типы относительных положений, но не на другие. Варианты «сидеть на» и «стоять впереди» иногда работают, а «сидеть внизу», «стоять позади», «стоять слева» и «стоять справа» — нет. DALL·E также имеет более низкий уровень успеха, когда его просят нарисовать большой объект, расположенный поверх меньшего, по сравнению с наоборот.
navigationupwide
стек из 3 кубов. красный куб находится сверху, сидя на зеленом кубе. зеленый куб находится посередине, сидя на синем кубе. синий куб находится внизу.
navigationdownwide
navigationupwide
Текстовая подсказка
Созданные ИИ
изображений
Мы обнаружили, что DALL·E обычно генерирует изображение с одним или двумя объектами, имеющими правильные цвета. Однако только в нескольких образцах для каждой настройки обычно имеется ровно три объекта, окрашенных точно так, как указано.
navigationupwide
эмодзи пингвиненка в синей шапке, красных перчатках, зеленой рубашке и желтых штанах обычно создает изображение с двумя или тремя предметами одежды, имеющими правильные цвета. Однако лишь немногие из образцов для каждого окружения, как правило, имеют все четыре предмета одежды указанных цветов.
navigationupwide
Хотя DALL·E предлагает некоторый уровень контроля над атрибутами и позициями небольшого числа объектов, вероятность успеха может зависеть от того, как сформулирован заголовок. По мере того, как вводится больше объектов, DALL·E склонен путать ассоциации между объектами и их цветами, и вероятность успеха резко снижается. Мы также отмечаем, что DALL·E хрупок в отношении перефразирования подписи в этих сценариях: альтернативные, семантически эквивалентные подписи часто не дают правильной интерпретации.
Визуализация перспективы и трехмерности
Мы обнаружили, что DALL·E также позволяет управлять точкой обзора сцены и трехмерным стилем, в котором визуализируется сцена.
очень крупный план водосвинки, сидящей в поле
navigationdownwide
navigationupwide
Текстовое сообщение разные взгляды. Некоторые из этих видов, такие как «вид сверху» и «вид сзади», требуют знания внешнего вида животного с необычных ракурсов. Другие, такие как «крайний план», требуют знания мелких деталей кожи или меха животного.
navigationupwide
водосвинка, сделанная из вокселей, сидящая в поле животных в соответствии с выбранным 3D-стилем, таким как «глиняный» и «сделанный из вокселей», и визуализировать сцену с правдоподобным затенением в зависимости от положения солнца. «Рентгеновский» стиль не всегда работает надежно, но он показывает, что DALL·E иногда может ориентировать кости внутри животного в правдоподобных (хотя и не анатомически правильных) конфигурациях.
navigationupwide
Чтобы продвинуться дальше, мы проверяем способность DALL·E многократно рисовать голову известной фигуры под каждым углом из последовательности равноотстоящих углов и обнаруживаем, что можем восстановить плавную анимацию вращения глава.
фотография бюста Гомера
navigationdownwide
navigationupwide
Текстовая подсказка
Подсказка с изображением
Созданные AI
изображений
Мы подсказываем DALL·E с подписью и описанием известной фигуры область изображения, показывающая шляпу, нарисованную под определенным углом. Затем мы просим DALL·E завершить оставшуюся часть изображения с учетом этой контекстной информации. Мы делаем это неоднократно, каждый раз поворачивая шляпу еще на несколько градусов, и обнаруживаем, что можем восстановить плавную анимацию нескольких хорошо известных фигур, при этом каждый кадр соответствует точным спецификациям угла и окружающего освещения.
navigationupwide
DALL·E может применять некоторые типы оптических искажений к сценам, как мы видим с параметрами «вид объектива «рыбий глаз»» и «сферическая панорама». Это побудило нас исследовать его способность генерировать отражения.
простой белый куб, смотрящий на свое отражение в зеркале. простой белый куб, смотрящий на себя в зеркало.
navigationdownwide
navigationupwide
Текстовое приглашение
Графическое приглашение
изображений, созданных искусственным интеллектом
Подобно тому, что было сделано ранее, мы предлагаем DALL·E заполнить нижние правые углы последовательности кадров, каждый из которых содержит зеркало и отражающий пол. Хотя отражение в зеркале обычно напоминает объект за его пределами, оно часто не передает отражение физически правильным образом. Напротив, отражение объекта, нарисованного на отражающем полу, обычно более правдоподобно.
navigationupwide
Визуализация внутренней и внешней структуры
Образцы в стиле «крайний крупный план» и «рентген» позволили нам дополнительно изучить способность DALL·E визуализировать внутреннюю структуру с помощью поперечных сечений и внешнюю структуру с помощью макрофотографий.
вид грецкого ореха в разрезе
navigationdownwide
navigationupwide
Текстовая подсказка
AI-сгенерированные
изображения
Мы обнаружили, что DALL·E может рисовать внутренности нескольких различных видов объектов.
navigationupwide
макрофотография мозгового коралла
navigationdownwide
navigationupwide
Текстовая подсказка объекты. Эти детали видны только при близком рассмотрении объекта.
navigationupwide
Определение контекстных деталей
Задача преобразования текста в изображения недостаточно конкретизирована: одна подпись обычно соответствует бесконечному количеству правдоподобных изображений, поэтому изображение не определяется однозначно. Например, рассмотрим подпись «картина с изображением капибары, сидящей в поле на восходе солнца». В зависимости от ориентации водосвинки может возникнуть необходимость нарисовать тень, хотя эта деталь никогда не упоминается явно. Мы изучаем способность DALL·E устранять недочеты в трех случаях: изменение стиля, обстановки и времени; рисование одного и того же объекта в различных ситуациях; и создание изображения объекта с написанным на нем определенным текстом.
рисунок водосвинки, сидящей в поле на восходе солнца
navigationdownwide
navigationupwide
Текстовая подсказка
изображений, созданных искусственным интеллектом стилей и может адаптировать освещение, тени и окружающую среду в зависимости от времени суток или времени года.
navigationupwide
витраж с изображением синей клубники
navigationdownwide
navigationupwide
Текстовое приглашение
Сгенерированные AI
изображения
Мы обнаружили, что DALL·E может гибко адаптировать представление объекта в зависимости от среды, на которой он рисуется. Для «фрески», «банки содовой» и «чашки» DALL·E должен изменить способ рисования объекта в зависимости от угла и кривизны поверхности рисования. Для «витража» и «неоновой вывески» он должен изменить внешний вид объекта по сравнению с тем, каким он обычно выглядит.
navigationupwide
витрина магазина, на которой написано слово «openai». фасад магазина, на котором написано слово «openai». фасад магазина, на котором написано слово «openai». Фасад магазина «Опенай».
navigationdownwide
navigationupwide
Текстовая подсказка
Генерируемые AI
изображения
Мы обнаружили, что DALL·E иногда может отображать текст и адаптировать стиль письма к контексту, в котором он появляется. Например, «пакет чипсов» и «номерной знак» требуют разных типов шрифтов, а «неоновая вывеска» и «надпись в небе» требуют изменения внешнего вида букв.
Как правило, чем длиннее строка, которую DALL·E предлагается записать, тем ниже вероятность успеха. Мы обнаружили, что вероятность успеха повышается, когда части подписи повторяются. Кроме того, вероятность успеха иногда повышается по мере снижения температуры выборки изображения, хотя образцы становятся проще и менее реалистичными.
navigationupwide
С различной степенью надежности DALL·E обеспечивает доступ к подмножеству возможностей механизма 3D-рендеринга с помощью естественного языка. Он может независимо контролировать атрибуты небольшого числа объектов и в ограниченной степени, сколько их и как они расположены по отношению друг к другу. Он также может управлять положением и углом, с которого визуализируется сцена, и может генерировать известные объекты в соответствии с точными спецификациями угла и условий освещения.
В отличие от механизма 3D-рендеринга, чьи входные данные должны быть указаны однозначно и во всех подробностях, DALL·E часто может «заполнить пробелы», когда заголовок подразумевает, что изображение должно содержать определенную деталь, которая явно не указана.
Применение предыдущих возможностей
Далее мы рассмотрим использование предыдущих возможностей для моды и дизайна интерьера.
Композиционная природа языка позволяет нам объединять концепции для описания как реальных, так и воображаемых вещей. Мы обнаружили, что DALL·E также может комбинировать разрозненные идеи для синтеза объектов, некоторые из которых вряд ли существуют в реальном мире. Мы исследуем эту способность в двух случаях: перенос качеств различных концепций на животных и создание продуктов, черпая вдохновение из несвязанных концепций.
улитка из арфы. улитка с текстурой арфы.
navigationdownwide
navigationupwide
Текстовая подсказка
Генерируемые AI
изображения
Мы обнаружили, что DALL·E может генерировать животных, синтезированных из различных понятий, включая музыкальные инструменты, продукты питания и предметы домашнего обихода. Хотя это и не всегда удается, мы обнаруживаем, что DALL·E иногда принимает во внимание формы двух объектов, решая, как их объединить. Например, когда ему предлагается нарисовать «улитку, сделанную из арфы», он иногда связывает столб арфы со спиралью раковины улитки.
В предыдущем разделе мы видели, что чем больше объектов вводится в сцену, тем чаще DALL·E путает ассоциации между объектами и их заданными атрибутами. Здесь мы видим другой тип ошибки: иногда вместо того, чтобы привязать какой-либо атрибут заданного понятия (скажем, «кран») к животному (скажем, «улитке»), ДАЛЛ·И просто рисует их как отдельные предметы.
navigationupwide
Иллюстрации животных
В предыдущем разделе мы исследовали способность DALL·E комбинировать несвязанные концепции при создании изображений объектов реального мира. Здесь мы исследуем эту способность в контексте искусства для трех видов иллюстраций: антропоморфные версии животных и предметов, химеры животных и смайлики.
иллюстрация редиски дайкон в балетной пачке, выгуливающей собаку
Мы обнаружили, что DALL·E иногда может передавать некоторые виды человеческой деятельности и предметы одежды животным и неодушевленным предметам, таким как продукты питания. Мы включили «пикачу» и «владение синим световым мечом», чтобы изучить способность DALL·E использовать популярные медиа.
Нам интересно, как DALL·E адаптирует части человеческого тела к животным. Например, когда его просят нарисовать редис дайкон, сморкающийся, потягивающий латте или катающийся на одноколесном велосипеде, ДАЛЛ·И часто рисует платок, руки и ноги в правдоподобных местах.
navigationupwide
Профессиональная высококачественная иллюстрация химеры черепахи-жирафа. жираф, имитирующий черепаху. жираф из черепахи.
navigationdownwide
navigationupwide
Текстовая подсказка
Генерируемые AI
изображения
Мы обнаружили, что DALL·E иногда может комбинировать различных животных правдоподобным образом. Мы включаем «пикачу», чтобы исследовать способность DALL·E использовать знания популярных медиа, и «робот», чтобы исследовать его способность создавать животных-киборгов. Как правило, черты второго животного, упомянутого в подписи, имеют тенденцию быть доминирующими.
Мы также обнаружили, что вставка фразы «профессиональное высокое качество» перед словами «иллюстрация» и «эмодзи» иногда улучшает качество и согласованность результатов.
navigationupwide
профессиональные высококачественные смайлики влюбленной чашки боба
navigationdownwide
navigationupwide
Текстовая подсказка
Созданные AI
изображения
и неодушевленные предметы, такие как продукты питания. Как и в предыдущем изображении, мы обнаружили, что вставка фразы «профессиональное высокое качество» перед «эмодзи» иногда улучшает качество и согласованность результатов.
navigationupwide
Zero-Shot Visual Reasoning
GPT-3 может быть проинструктирован выполнять многие виды задач исключительно на основе описания и подсказки для получения ответа, предоставленного в его подсказке, без какого-либо дополнительного обучения. Например, на запрос фразы «вот предложение «человек, выгуливающий свою собаку в парке», переведенное на французский язык:», GPT-3 отвечает: «un homme qui promène son chien dans le parc». Эта способность называется рассуждениями с нулевым выстрелом. Мы обнаружили, что DALL·E расширяет эту возможность до визуальной области и может выполнять несколько видов задач преобразования изображения в изображение при правильном запросе.
точно такой же кот вверху, как и набросок внизу
navigationdownwide
navigationupwide
Текстовое приглашение
Графическое приглашение
Созданные AI
изображений
Мы обнаружили, что DALL·E может применять несколько видов преобразования изображений к фотографиям животных с разной степенью надежности. Самые простые из них, такие как «фотография, окрашенная в розовый цвет» и «фотография, отраженная вверх ногами», также, как правило, являются наиболее надежными, хотя фотография часто не копируется или не отражается точно. Преобразование «животное в очень крупном плане» требует, чтобы DALL·E распознал породу животного на фотографии и воспроизвел ее с соответствующими деталями. Это работает менее надежно, и для некоторых фотографий DALL·E генерирует правдоподобные завершения только в одном или двух случаях.
Другие трансформации, такие как «животное в солнечных очках» и «животное в галстуке-бабочке», требуют размещения аксессуара на нужной части тела животного. Те, которые изменяют только цвет животного, такие как «животное окрашено в розовый цвет», менее надежны, но показывают, что DALL·E иногда способен отделить животное от фона. Наконец, трансформации «набросок животного» и «чехол для мобильного телефона с животным» исследуют использование этой возможности для иллюстраций и дизайна продукта.
navigationupwide
точно такой же чайник сверху с надписью «gpt» снизу E может применять несколько различных видов преобразования изображений к фотографиям чайников с разной степенью надежности. Помимо возможности изменять цвет чайника (например, «синий цвет») или его рисунок (например, «с полосами»), DALL·E также может отображать текст (например, «с надписью «gpt» на нем» ) и расположите буквы на изогнутой поверхности чайника правдоподобным образом. С гораздо меньшей надежностью может вытянуть и чайник меньшего размера (для варианта «малюсенький») и в разбитом состоянии (для варианта «разбитый»).
navigationupwide
Мы не ожидали, что эта возможность появится, и не вносили никаких изменений в нейронную сеть или процедуру обучения, чтобы поощрять ее. Вдохновленные этими результатами, мы измеряем способность ДАЛЛ-И решать задачи на рассуждения по аналогии, проверяя ее на прогрессивных матрицах Равена — визуальном тесте IQ, который широко использовался в 20-м веке.
последовательность геометрических фигур.
navigationdownwide
navigationupwide
Текстовое приглашение
Пример подсказки изображения
Сгенерированные ИИ
изображений
Вместо того, чтобы рассматривать IQ-тест как задачу с множественным выбором, как предполагалось изначально, мы просим DALL·E заполнить нижний правый угол каждого изображения, используя выборку argmax, и считаем его завершение правильным, если оно близко визуально соответствует заданному. оригинал.
DALL·E часто может решать матрицы, которые включают в себя непрерывные простые шаблоны или базовые геометрические рассуждения, например, в наборах B и C. Иногда он может решать матрицы, которые включают в себя распознавание перестановок и применение логических операций, таких как те, что в наборах B и C. набор D. Экземпляры в наборе E, как правило, самые сложные, и DALL·E почти ни один из них не дает правильного ответа.
Для каждого из наборов мы измеряем производительность DALL·E как на исходных изображениях, так и на изображениях с инвертированными цветами. Инверсия цветов не должна создавать дополнительных трудностей для человека, но в целом ухудшает работу DALL·E, предполагая, что его возможности могут быть непредсказуемыми.
navigationupwide
Географические знания
Мы обнаружили, что DALL·E узнал о географических фактах, достопримечательностях и районах. Его знание этих понятий удивительно точно в одних отношениях и ошибочно в других.
фото китайской кухни
navigationdownwide
navigationupwide
Текстовое приглашение
изображений, созданных искусственным интеллектом Хотя DALL·E успешно отвечает на многие из этих вопросов, например, о национальных флагах, он часто отражает поверхностные стереотипы в отношении таких вариантов выбора, как «еда» и «дикая природа», в отличие от представления всего разнообразия, встречающегося в реальном мире.
navigationupwide
фотография площади Аламо, Сан-Франциско, с улицы ночью некоторых мест в Сан-Франциско. Для мест, знакомых авторам, таких как Сан-Франциско, они вызывают чувство дежа вю — жуткие симулякры улиц, тротуаров и кафе, которые напоминают нам об очень конкретных местах, которых не существует.
navigationupwide
фотография моста «Золотые ворота» в Сан-Франциско
navigationdownwide
navigationupwide
Текстовая подсказка
Подсказки к изображениям На самом деле, мы даже можем указать, когда была сделана фотография, указав первые несколько рядов неба. Например, когда небо темное, DALL·E распознает ночь и включает свет в зданиях.
navigationupwide
Знание времени
В дополнение к изучению знаний DALL·E о понятиях, которые меняются в пространстве, мы также изучаем его знания о понятиях, которые меняются во времени.
фотография телефона 20-х годов
navigationdownwide
navigationupwide
Текстовая подсказка
Подсказка с изображением десятилетия. Технологические артефакты, по-видимому, проходят через периоды взрывного изменения, резко меняясь в течение десятилетия или двух, а затем меняясь постепенно, совершенствуясь и совершенствуясь.
navigationupwide
Резюме подхода и предыдущей работы
DALL·E — это простой преобразователь только для декодера, который получает и текст, и изображение как единый поток из 1280 токенов — 256 для текста и 1024 для изображения — и моделирует все из них авторегрессивно. Маска внимания на каждом из 64 слоев внутреннего внимания позволяет каждому маркеру изображения уделять внимание всем текстовым маркерам. DALL·E использует стандартную причинно-следственную маску для текстовых токенов и разреженное внимание для токенов изображения со строкой, столбцом или сверточным шаблоном внимания, в зависимости от слоя. Мы предоставляем более подробную информацию об архитектуре и процедуре обучения в нашей статье.
Синтез текста в изображение был активной областью исследований со времен новаторской работы Reed et. al, чей подход использует GAN, основанный на встраивании текста. Вложения создаются кодировщиком, предварительно обученным с использованием контрастных потерь, мало чем отличающихся от CLIP. StackGAN и StackGAN++ используют многомасштабные GAN для увеличения разрешения изображения и улучшения визуальной точности. AttnGAN объединяет внимание между текстовыми и графическими функциями и предлагает контрастную характеристику текста и изображения, соответствующую потере, в качестве вспомогательной цели. Это интересно сравнить с нашей переоценкой с помощью CLIP, которая выполняется в автономном режиме. Другая работа включает в себя дополнительные источники наблюдения во время обучения для улучшения качества изображения. Наконец, работа Nguyen et. аль и Чо и др. al исследует основанные на выборке стратегии для генерации изображений, в которых используются предварительно обученные мультимодальные дискриминационные модели.
Подобно выборке отклонения, используемой в VQVAE-2, мы используем CLIP для переранжирования 32 лучших выборок из 512 для каждой подписи во всех интерактивных визуальных элементах.