Как раскрасить черно белую фотографию автоматически: Автоматическое раскрашивание фотографий
Как раскрасить черно-белую фотографию | hotcon2020
Прилетела как-то на днях реклама одной программы по раскраске черно-белых фотографий. Не то, чтобы мне этот функционал особенно нужен. Но и черно-белые фотографии в архиве имеются (и свои, и родных начиная так с 20-х годов XX столетия). Решил попробовать. Но программу, устанавливать не стал (ознакомительная версия урезана, коммерческая мне не нужна ни по работе, ни по увлечениям, «крякнутые» программы стараюсь не ставить — нет ни одной на моем компьютере).
Но так как давно являюсь поклонником разного рода онлайн решений, решил поискать в этом направлении. Очень быстро нашел несколько импортных и несколько от российских разработчиков. Все они показали (более менее сопоставимый) достойный уровень. Кратко резюмирую, чем выше качество исходной черно-белой фотографии, тем выше конечный результат. Лично меня порадовал сервис от mail.ru. Достоинства: а) доступ в браузере, б) очень простой и понятный интерфейс, в) сохранение результатов на жесткий диск, можно отправить по почте, сохраняется также и в самом сервисе. Сервис от mail.ru появился давно, но как-то прошел незамеченным для меня (незамеченным на момент появления). Появился он к очередной годовщине — Дню Победы, но работает сервис до сих пор и позволяет раскрашивать любые фотографии, не только исторические военные. И адрес у сервиса соответствующий: https://9may.mail.ru/restoration/
На стартовой странице вы загружаете черно-белое фото.
Стартовая страница сервиса — все что нужно, — это загрузить фотоСтартовая страница сервиса — все что нужно, — это загрузить фото
Вся «магия» преображения в цветную фотографию происходит в автоматическом режиме.
Процесс преображения в цветное фото происходит в автоматическом режимеПроцесс преображения в цветное фото происходит в автоматическом режиме
Через короткое время вы на экране увидите полученный результат. Результат можно сохранить на жестком диске своего компьютера, отправить по почте или сохранить в свое облако.
Есть возможность сохранить полученный результат на свой компьютерЕсть возможность сохранить полученный результат на свой компьютер
Далее, вы можете приступить к обработке следующего фото.
Для эксперимента я взял фото бабушки и дедушки моей мамы: Муравьевых Вениамина Федоровича и Глафиры Степановны. Фото предположительно сделано в 1908-1909 гг.
Муравьевы Вениамин Федорович и Глафира Степановна, фото 1908-1909 гг.Муравьевы Вениамин Федорович и Глафира Степановна, фото 1908-1909 гг.
А вот какой я получил результат:
Фото раскрашено автоматически сервисом https://9may.mail.ru/restoration/Фото раскрашено автоматически сервисом https://9may.mail.ru/restoration/
Фото моих родителей, снятые в 50-е и 60-е годы на бытовые фотоаппараты сегодня в худшем состоянии, чем те — начала века. И результат «послабее»:
Фото моей мамы, Стрельниковой (Леонтьевой) Вильгельмины Михайловны, предположительно 1952-1953 гг.Фото моей мамы, Стрельниковой (Леонтьевой) Вильгельмины Михайловны, предположительно 1952-1953 гг.
Фото моей мамы после обработки сервисом https://9may.mail.ru/restoration/Фото моей мамы после обработки сервисом https://9may.mail.ru/restoration/
Итог, сервис понравился. Спасибо mail.ru. Спасибо вам, что дочитали до конца. Надеюсь, кому-нибудь будет полезна эта информация.
4 лучших бесплатных онлайн-инструмента для преобразования черно-белых фотографий в цветные
Фотографии – цветные или черно-белые – связаны с множеством воспоминаний. В большинстве случаев цветные фотографии выглядят лучше и вызывают больше эмоций по сравнению с черно-белыми. Это потому, что цветные фотографии выглядят естественно. Следовательно, многие люди хотят превратить черно-белую фотографию в цветную.
Возможно, вы пробовали несколько онлайн-инструментов или программного обеспечения, но результаты не были бы удовлетворительными. Или процесс занял бы много времени.
Чтобы этого избежать, мы представляем вам четыре онлайн-инструмента, которые автоматически раскрашивают черно-белые фотографии. Поскольку это веб-сайты, вы можете превратить черно-белую фотографию в цветную без Photoshop.
Давайте проверим их.
1. Алгоритмия
Если вы ищете онлайн-инструмент, который автоматически раскрашивает ваши черно-белые изображения, вам следует проверить Algorithmia.
Веб-сайт прост в использовании. Вы можете загрузить изображение со своего компьютера или добавить URL-адрес. Затем нажмите кнопку «Раскрасить». Подождите, пока сайт раскрасит вашу картинку.
По завершении процесса вы увидите, что только половина вашего изображения раскрашена. Это не так. Сайт делает это, чтобы вы могли сравнить фотографии до и после. Перетащите ползунок посередине в левую сторону, чтобы просмотреть полностью цветное изображение.
Нажмите «Загрузить раскрашенное изображение» под фотографией, чтобы сохранить ее на своем компьютере. Если вы хотите загрузить картинку, имеющую как цветные, так и черно-белые части (сравнительное изображение), нажмите Скачать сравнение.
Плюсы:
Минусы:
Посетить Algorithmia
2.
ColouriseSGColouriseSG, как и Algorithmia, использует технологию глубокого обучения для преобразования черно-белых фотографий в цветные. Он распознает человеческие фигуры и природные пейзажи, чтобы точно их раскрасить. На этом веб-сайте единственный способ добавить фотографии – это вставить их со своего компьютера. Он не поддерживает вставку ссылок.
Чтобы раскрасить фотографии, откройте веб-сайт и нажмите кнопку «Попробуйте сами». Или прокрутите вниз сами.
Затем проверьте капчу. После проверки вы получите кнопку «Выбрать фото». Добавьте с его помощью свою фотографию и подождите несколько секунд, чтобы веб-сайт сделал свою работу.
Вы увидите два варианта изображения рядом. Используйте ползунок для просмотра цветного изображения. Сохраните изображение на свой компьютер с помощью кнопки «Загрузить результат».
Минусы:
- Не могу добавить фото по ссылке
Посетить ColouriseSG
3.
Раскрасить фотоЭтот веб-сайт отличается от упомянутых выше, потому что вам придется раскрашивать изображения вручную. Теперь вам может быть интересно, что в этом особенного. Любой веб-сайт может это сделать. Что ж, здесь вам нужно добавить эталонное изображение, а затем выбрать цвет из изображения. Затем вам нужно нарисовать этот цвет на вашем черно-белом изображении. Вы должны сделать это для всех необходимых цветов. Вы можете настроить размер, жесткость и непрозрачность кисти.
Когда вы откроете изображение, у вас будет портретное изображение с правой стороны для справки. Если вы хотите раскрасить портрет, вы можете использовать только эту картинку. Чтобы изменить эталонное изображение, нажмите «Открыть в настоящем» в правом поле, а чтобы изменить черно-белое изображение, нажмите «Открыть» в левом поле.
Когда у вас есть оба изображения, нажмите на нужный цвет на изображении справа. При необходимости измените параметры кисти. Затем нарисуйте его на изображении слева.
Используйте кнопку Сохранить вверху, чтобы загрузить изображение.Плюсы:
Минусы:
Посетить Colorizephoto
Горсть цветов
Мы надеемся, что вам понравились перечисленные выше онлайн-инструменты. Если результаты не соответствуют вашим ожиданиям, важно отметить, что все инструменты делают все возможное, чтобы раскрасить изображения в соответствии с их возможностями. В конце концов, это онлайн-инструменты. Однако они не могут восстановить исходные цвета изображений, что практически невозможно. Так что относитесь к результатам с долей скепсиса.
Следующий: Хотите сделать картинку в форме сердца? Вы можете обрезать его с помощью онлайн-инструментов. Ознакомьтесь с лучшими инструментами для формирования урожая.
Как хорошо раскрасить черно-белую фотографию
Как сделать черно-белое фото цветным? Можно ли вернуть фотографии настоящий цвет, как будто она всегда такой и была? Многие считают, что раскрашенная фотография выглядит хуже черно-белой, видя неудачные примеры, и отказываются от колоризации, и напрасно, ведь если превратить черно белое фото в цветное правильно, то оно становится неотличимо от цветного, и даже намного лучше.
Как выглядит хорошее раскрашивание.Реалистичность. Идеально раскрашенная фотография получается как обычная цветная. На ней не заметно следов раскраски и наложенного цвета.
Естественность. Лицо имеет натуральный здоровый оттенок и выглядит живым, а не плоским или нарисованным. Несколько лиц не выглядят однотипно, каждое обладает индивидуальностью.
Объем. Правильно раскрашенная фотография выглядит всегда объемней черно-белой. Если объекты и лица стали более плоскими, чем на черно-белом снимке, значит что-то сделано не так.
Историческая достоверность. Особенно важно попасть в нужный оттенок, когда нужно восстановить цвета военной формы, наград или оружия. На таких фотографиях цвет нужен не только для красоты, он несет информацию.
Цветовая гармония. Основная цель раскрашивания фотографии — не формальное наличие какого-нибудь цвета. Цвет должен делать фотографию выразительней и нравиться. Цвет – это целая наука, а не простое «разукрашивание». Слишком броские цвета и сочетания или наоборот тусклые и унылые, неправильные сочетания – все это создает общее отрицательное впечатление, которое человек без художественных навыков описывает словами «не нравится». Когда цвет подобран правильно, фотография вызывает положительные впечатления и эмоции.
Аккуратность. Цвета находятся на своем месте и не выдают своего искусственного происхождения, границы перехода цветов не выделяются, не резкие и не размытые.
Как сделать из черно-белого фото цветное. Какие способы раскраски существуют, их достоинства и недостатки.Существует миф, что вернуть фотографии цвет можно нажатием одной кнопки «сделать цветным». И это так же просто и доступно любому, как цветную фотографию сделать черно-белой. Но нет, такой кнопки пока не изобрели, вернуть цвета так же легко, как убрать, не получится. При черно-белой съемке информация о цвете и оттенках теряется безвозвратно, поэтому вернуть их обратно непросто.
Фильтры, приложения и программы. Сама по себе ни одна программа не способна вернуть цвета, о чем умалчивают их создатели. Все известные на сегодняшний день программы или фильтры работают по одинаковому принципу — примитивное наложение цвета поверх черно-белого изображения. Цвет, полученный таким способом, получается плоским и заметно отличается от настоящего. Чтобы цвета стали реалистичными, всегда требуется ручная доработка.
Бесплатные удаленные сервисы. Они бывают автоматическими и ручными. Из триады быстро-дешево-качественно последний пункт исключается, и в этом их сходство. В первом случае всю работу делает живой человек. Поскольку он делает работу бесплатно, его способности и время обычно ограничены, а результат бывает неожиданным. Автоматические сервисы, или так называемый искусственный интеллект подбирает цвета на основе единого алгоритма. Результат обработки выглядит усреднено и довольно уныло, зато предсказуемо и без сюрпризов, потому что цвета накладывает программа, а не индивид с дальтонизмом или особым восприятием мира. Вторая отличительная особенность работы искусственного интеллекта – цветовые пятна слишком размытые и не попадают в нужное место, что особенно заметно при увеличении.
Уроки и пошаговые инструкции. Уроки в открытом доступе дают только приемы без фундаментальных знаний о цвете. Держать кисть с красками в руках еще не значит уметь рисовать. Так же и формальное наложение цвета на черно-белую основу не делает ее цветной. Научить реально только тому, что автор урока умеет делать сам. О пользе урока нетрудно узнать, если заглянуть в его конец и посмотреть результат. Выглядит ли фотография как раскрашенная или как будто всегда была цветной?
1- обычное раскрашивание по инструкции, 2- искусственный интеллект, 3 — художественное раскрашивание вручную
Ручное раскрашивание фото на заказ художником. Настоящее восстановление невозможно без художественных навыков, развитого чувства цвета и специальной техники обработки. Восстановление цвета на фотографии – это не механическое наложение цвета поверх серых тонов, а искусство.
Именно поэтому автоматические сервисы и плагины так плохо справляются с задачей. Наличие цвета еще не означает, что изображение стало таким же, как в реальности. И уж конечно не делает автоматически лучше черно-белого.Есть ли разница между цветной и раскрашенной фотографией? Как вернуть настоящие цвета.Раскрашивание фотографии выходит за рамки реставрации, потому что информация о цвете полностью утрачена, и художник-реставратор воссоздает ее заново, с нуля. Если такой информации нет, значит, ее надо откуда-то взять, чтобы достичь точного попадания в цвета. Чтобы цвет стал настоящим и естественным, а не имитацией, требуется проделать большую работу.
Живые, настоящие лица. Чтобы восстановить цвета одежды, глаз и волос берутся другие цветные фотографии человека. Если таких фотографий нет, то по памяти и по описанию родственника -владельца фотографии.
Если такой информации нет, то цвета подбираются тоже не наугад, а определенным образом.
Как восстановить цвета военной формы. Главное в восстановлении формы – историческая достоверность и точное попадание в цвет. Для этого надо знать воинское звание, время и место службы. После этого находятся цветные образы формы и ее элементов, по ним ведется восстановление и проверка цветов.
Почему раскрашенная фотография выглядит хуже черно-белой?Интернет заполнен неудачными примерами раскрашивания, и у людей с развитым вкусом складывается впечатление, что колоризация только портит черно-белое изображение. Это верно только для фото, раскрашенных неправильным способом. Если восстановление цвета выполнено правильно, качественно и опытным мастером, то результат получается намного лучше, чем на настоящей цветной.
Способ же раскраски, выбранный по принципу быстро-дешево дает соответствующий результат.
Признаки некачественной работы с цветом:
- лица на фотографии неживые, плоские, однотипные
- оттенок кожи выглядит странным или болезненным
- цвета выглядят ненатурально, и заметно, что фото раскрашено
- пропал объем и выразительность
- цветовые сочетания слишком бросаются в глаза или просто не нравятся
Чтобы цветная фотография стала объемной и выразительной, требуются базовые художественные навыки и знания основ колористики и цветовой гармонии. Чтобы лицо осталось живым и сохранило индивидуальность — знание цветотипов внешности. Ну и наконец, чувство вкуса и цвета, его отсутствие обычно выражается в том, что раскрашенное изображение просто не нравится.
Не будем касаться в этой статье отдельной темы, где черно-белый цвет выступает как художественный прием и выражает идею автора, а цвет разрушает особый авторский замысел. Когда для того, чтобы фотография приобрела особый смысл или художественную ценность, требуется изменить или совсем убрать цвета. В остальных случаях цветные фотографии только выигрывают.
1. черно-белый вариант 2. цвета выбраны владельцем фото 3. вариант художника
1. черно-белый вариант 2. цвета выбраны владельцем фото 3. вариант художника
Далее: отправить фото на раскрашивание >>
Понравился материал? Поделись с друзьями!
Так родился мой небольшой урок о том, как раскрасить фотографию в программе Adobe Photoshop. Раскраска фотографий дело интересное и увлекательное… иногда можно увлечься так, что человека на фотографии будет очень тяжело узнать! Чтобы такого не получилось, нужно постоянно контролировать свои действия, уменьшать изображение и смотреть «издалека». Не помешают небольшие перерывы между раскраской фотографии. После того, как глаза отдохнут минут 5, и вы снова взгляните на картинку, результат вас может удивить или даже шокировать. Ну да ладно, хватит трепаться, поехали!
Раньше, по своей глупости я использовала фильтр «Пыль и царапины», теперь я его так разлюбила, что забыла, где он находится. Я поняла, что размывать фотографию это практически самое страшное, что можно сделать. В крайнем случае могу убрать данным фильтром скопление очень мелкой пыли где-нибудь в таком месте, где размытие будет совершенно не заметно. Итак, наша фотография подготовлена. Теперь можно приступить к раскраске. Я начинаю раскраску фотографии с цвета лица, наверное, этим я не открыла Америку. Для меня есть три основных варианта, как раскрасить черно-белую фотографию:
Обычно я комбинирую эти способы, так как для каждой части есть определенные тонкости. Лицо и губы я раскрашу первым способом. Создаю слой «Цветовой тон/насыщенность», ставлю галочку «Тонирование» и кручу первый ползунок до тех пор, пока не найду нечто похожее на цвет лица: Потом инвертирую белую маску в черную, чтобы полностью скрыть выбранный мною цвет и белой, мягкой кистью, можно не со 100%-ой прозрачностью прорисовываю цвет лица.
Первая нам поможет справиться с нашей «пережаренностью». Зажимаем alt и мышкой берем часть ползунка в тенях. Все еще с зажатым alt тащим его от темного к светлому. В это время наблюдая как с лица исчезает ненужная насыщенность. Я оставила значение 184. Для каждого изображения, конечно все будет индивидуально, смотрите сами. Раскрашиваю все остальное, что считаю подходящим для раскраски корректирующим слоем «Цветовой тон/насыщенность»… Теперь о некоторых тонкостях раскраски лица:
Перехожу к раскраске с помощью корректирующих слоев «Кривые». С их помощью я раскрашу волосы, так они будут объемные и больше напоминать живые, чем раскрашенные, и блузку, так как это попросту быстрее, чем я буду раскрашивать каждую загогулинрку вручную. Здесь этого не требуется. Создаю корректирующий слой «Кривые», в синем и красном канале, в тенях поднимаю точку, в светах,наоборот, опускаю. Тем самым тени (т.е. темные загогулины) окрашиваются в фиолетовый, света (светлые загогулины) в желто-зеленый. Таким образом можно получить практически любое сочетание. Просто и быстро. Прокрашиваю по маске наряд… Вообще, «Кривые» очень мощный и полезный инструмент.
Таким положением кривых я раскрасила волосы и снизила непрозрачность слоя до 68%. А то что-то слишком ядрено! Ну и раскрасила фон, у меня он в большинстве случаев голубой. Хотела сделать красный (мол, занавес) да как-то не очень. Голубой как всегда спас! С раскраской покончено. Теперь буду шлифовать то, что у меня получилось. Добавлю серый слой (клик по иконке создания нового слоя с зажатой клавишей alt, режим наложения Мягкий свет и галочка Выполнить заливку 50% серым… ) и прорисую немного объема осветлителем и затемнителем для того, чтобы портрет смотрелся естественней. Заодним уберу некрасивые тени, немного разгладив лицо, сделав его аккуратнее. Еще в начале статьи я писала о том, что размывать фотографии не люблю, но здесь именно тот случай, когда мне захотелось убрать лишний шум.
Командой alt+ctrl+shift+E слепляю видимые слои в один и применяю к нему фильтр… Выкручиваю все ползунки по максимуму, для данной фотографии меня такой результат устраивает. Заодним убирается и мелкая пыль. Кстати, чем еще хорошо применение этого фильтра: если я где то перестаралась с цветом, этот фильтр его «прибирает», делает его не таким насыщенным. В данном случае я перестаралась с цветом глаз (на картинке этого не видно, но мне было прекрасно видно!). Жму окей. Теперь добавляю черную маску на слой с убранным шумом (alt+клик по значку маски) и белой кистью прорисовываю там, где мне нужно сгладить. Маски всегда получаются странноватые, моя не исключение! Там, где черное — шум оставлен, там, где белое — шум убран. Такой принцип работы масок в фотошопе. И последний штрих, я размою фон. Немного, но заметно.
Все, работа закончена, теперь меня все устраивает. Надеюсь, что через час я не кинусь переделывать! С удовольствием раскрашу для Вас фотографии! Обращайтесь! |
Как раскрасить черно-белое изображение в фотошопе
Раскрасить черно-белое изображение кажется простым делом — бери кисть и рисуй цветом. К сожалению, действуя таким образом, вы добавите цвет, но и скроете все детали, как показано на примере ниже:
До:
После неудачной попытки добавления цвета:
Не помогло даже добавление прозрачности для слоя с краской, чтобы хоть как то было видно детали кузова автомобиля.
Совет
Перед тем, как начать расцвечивать черно-белое изображение, откройте подменю Изображение — Режим и убедитесь, что в нем выбран пункт RGB. Если будет выбран режим Градации серого, то программа фотошоп не добавит цвет, как бы вы ни старались.
К счастью, добавить цвет и одновременно сохранить детали изображения можно, используя режимы наложения. Вот как это сделать:
Шаг 1
Так как вы не хотите испортить исходное изображение, рисуя непосредственно на нем, нужно добавить новый слой и перетащить его мышью на самый верх списка слоев.
Совет
Перед добавление нового цвета создавайте каждый раз новый слой, чтобы было его проще редактировать при расцвечивании, не затрагивая другие цвета.
Шаг 2
Измените режим наложения слоя с краской на Цветность. Это можно сделать в раскрывающемся списке в верхней части палитры слоев (подробнее о режимах наложения и взаимодействия слоев смотрите здесь). Цветность не только сохраняет яркость серых тонов фотографии, но и добавляет цветовой тон и насыщенность, в результате чего детали изображения проступают через краску.
Шаг 3Выберите инструмент Кисть и задайте цвет в меню палитры цветов, которым начнете раскрашивать свою черно-белую фотографию.
Шаг 4Закрасьте часть изображения, которую вы хотите расцветить. Если необходимо, увеличьте или уменьшите масштаб (самый удобный прием — комбинация клавиш Ctrl + — или Ctrl + +. Подробнее о масштабе.)
Шаг 5 Исправьте допущенные ошибки, используя инструмент Ластик.
Совет
Нажмите и удерживайте клавишу Е, чтобы на время выбрать инструмент Ластик. Сотрите лишнее и отпустите клавишу Е, чтобы снова выбрать кисточку.
Шаг 6 Смотрим на получившийся результат:
Если вам кажется, что какой-либо цвет все равно выглядит слишком ярко и насыщенно, вы можете убавить его силу, изменив Непрозрачность слоя. Напомню, что эта настройка находится в верхнем правом углу палитры слоев.
Заметили ошибку в тексте — выделите ее и нажмите Ctrl + Enter. Спасибо!
Как сделать фото цветным в Фотошопе
Сегодня мы научимся превращать не цветную фотографию в цветную. Сразу оговорюсь, для тех, кто ищет в этой статье кнопку «сделать фото цветным». Увы такой кнопки пока не изобрели. Обесцветить фотографию можно одним кликом, но раскрасить этим же кликом не получится, ведь черно белая фотография не имеет информации о цвете. Так что придется поработать руками и наполнить наше черно-белое изображение цветной информацией в самом прямом смысле. С колоризацией фотографий неплохо справляются некоторые плагины для Фотошопа, но мы сейчас не будем обсуждать какие-то плагины, которые не пойми откуда взять. Поговорим о том, что имеется для колоризации в самом Фотошопе. А имеется в нем много.
Метод раскрашивания фотографии прост и примитивен. Освоить его может пятилетний ребенок за 10 минут. Я расскажу о всех способах раскрашивания фотографии, а также покажу как эту простую операцию можно вывести на новый более профессиональный уровень. Итак, приступим.
Самый простой способ сделать фото цветным (blend color)
Чтобы колоризировать фотографию вам понадобится уметь пользоваться инструментом Brush Tool, а также иметь представления о работе других инструментов Фотошопа. Не помешает умение выделять области фотографии и начальное знание о слоях и масках, которое вы можете почерпнуть из моей статьи Маски в Фотошопе. В этом уроке вы на практике увидите, как можно автоматизировать работу в фотошопе при помощи масок, и иметь полный контроль к настройкам цвета.
Я позаимствовал фотографию из коллекции моего знакомого фотографа. Черно белые фотографии выглядят таинственно и концептуально, но что будет если мы слегка раскрасим её? Создайте новый слой поверх фотографии Layer > New > Layer или кникните по небольшой пиктограмме слоя в палитре слоев Windows > Layers
Теперь выберите инструмент Brush Tool, кисть с мягкими краями, сделайте её побольше и проведите мышкой по новому слою каким-нибудь красным цветом. Закономерный результат — красная мазня на мастерски сделанной фотографии. Нам это не подходит. Чтобы красный цвет раскрашивал необходимо изменить настройки самого слоя. Настройки эти называются настройками наложения Color Mode. Найти их можно только на палитре слоев Layers, над самими слоями. Кликните по этому выпадающему меню, вы увидите целый список различных режимов наложения. Смысл в том, что изменив режим наложения цвета, мы устанавливаем новые правила, по которым цвет слоя взаимодействует с цветами слоев, которые находятся ниже. Нужный нам режим наложения называется Color, и смысл его прост — он окрашивает изображение в нужный нам цвет, сохраняя при этом естественность цветов. Установите режим Color, выберите необходимый вам цвет, и разукрасьте волосы девушки.
Вот и все. Весьма просто не так ли? Избавьте меня от необходимости растягивать этот процесс на 10 страниц и демонстрировать, как я, поэтапно раскрашу, кожу, перчатки, глаза, и так далее. Раскраска зависит от вашей фантазии, а реалистичность, от качества работы и естественности подобранных цветов. Работайте кистью, подбирайте размер, настраивайте параметры невидимости opasity и заливки fill, которые вы найдете в меню настроек кисти Windows > Options
Вот такую я набросал за пару минут работы. Режим смешивания слоев Normal. Надеюсь вы убедились что сделать фото цветной в Фотошопе весьма просто.
И вот, что получается если изменить настройки смешивания слоя на Color.
Окрашивание фотографии через стили слоя (layer style)
А теперь начнем углубляться и усложнять процесс. Усложнение, оно не для того, чтобы работать стало сложнее, а для того, чтобы работать стало проще. Знаете, все эти кали мали на одном слое конечно прекрасно, но подходит скорее личностям творческим, тем кто любит сидеть и часами накручивать глиняный горшок на каталке. Намазывать на этот слой один цвет и другой возможно удобно художникам из академии, которых забанили в Гугле, поэтому они до сих пор не слышали про Фотошоп. Увы, но даже мультики рисуют на компьютере, 1000 рисунков на бумаге, которые затем быстро перелистывают остались в 20-том веке. Лично мне, как дизайнеру, хотелось бы иметь больший контроль за цветом и настройками. Я хотел бы эффективно и быстро подкручивать цвета через меню, а не перерисовывать слой.
Как бы нам внести больший контроль за изображением? Для начала неплохо бы разделить один слой, на несколько слоев. Давайте создадим действительно много слоев. И каждый слой будет отвечать за свой участок. Создайте слой «волосы», слой «глаза», «перчатки», «ногти» и другие. Я начал раскрашивать фотографию сам, создав для этого тематические слои. Теперь процесс управления более управляем, по крайней мере раскраска не находится на одном слое. Любую часть раскрашивания можно приглушить, отключить, иначе говоря, проделать с ней все, что можно проделать с слоем. Другие слои с раскраской останутся не тронутыми.
Но все это по прежнему не имеет особого смысла. Цвет всех слоев по прежнему остается произвольным. На слое «Волосы» вы можете как и раньше рисовать и синим цветом, и красным. Иначе говоря по прежнему кали мали, но более управляемые кали мали, разбитые на сектора. А мне хотелось бы контролировать и цвет. Я хочу менять весь цвет одним кликом, а не ваять кистью постоянно переделывая результат руками. Я покажу как это можно сделать через стили слоя layer style.
Создайте слой и назовите его «Волосы». Разукрасьте волосы любым цветом, хоть зеленым. Перейдите к палитре слоев и установите заливку Fill на 0% Таким образом то, что вы нарисовали станет невидимым.
Грубо говоря мы создаем некую растровую область, отключаем заливку наполнения и применим к области стили слоя. Сама область не становится невидимой, как в случае с Opasity. Невидимым становится содержание области, но не сама область. Поэтому применяемые стили слоя будут видны. А вот если бы мы поставили Opasity 0%, невидимым стал бы весь слой вместе с стилями. Мы зададим области определенный стиль, но, так как для раскрашивания нам все равно придется применить смешивание слоя, оригинальный цвет необходимо убрать, выставив Fill на 0%, иначе при смешивании он станет просвечиваться и мы не получим требуемый результат.
Теперь создадим к слою стиль Layer > Layer Style > Color Overlay В меню смешивания Blend mode поставьте режим Color. А в окошке с цветом выставите нужный нам цвет.
Если вы забыли поставить заливку на 0% то это можно сделать в этом же окне, во вкладке настроек смешивания Blending Options. Если же вы сделали это в палитре слоев Layers, то заливка уже будет установлена как надо.
Вот теперь у нас имеется полный контроль за цветом. Задайте каждому слою свой стиль. Двойной клик по слою автоматически вызовет Стили слоя, где вы одним кликом сможете изменить цвет волос. Вам не придется все перемазывать по 100 раз, цвет меняется за одну секунду, при этом вы видите результат в он лаин режиме. Выбрать цвет стало намного проще.
Вот что я называю контролем за цветом. А теперь углубимся еще сильнее.
Окрашивание фотографий через слои заливки (fill lyers)
Знаете что я думаю. Вот эти потуги на контроль за изображением конечно круто, но как то сложно. А если надо изменить цвет? Приходится постоянно щелкать по слою, вызывать окно стилей, лезть во вкладку Color Overlay и там что-то менять. Не такой уж быстрый процесс, если хочется быстро поменять цвета слоев. Конечно если у нас 2 слоя это не сложно, а если бы у нас было 102 слоя? Надо бы сделать этот процесс ещё проще. Вот где начинается настоящая работа со слоями. Сейчас я покажу как сделать фото цветным при помощи слоев заливки.
Создайте новый слой заливки Layers > New Fill Layers > Solid Color Слой заливки полностью перекрывает фотографию, заливая всю рабочую поверхность. Это нам как раз не нужно. Как видно из палитры слоев, слой заливки создается с готовой пустой маской. Белую маску нам надо перекрасить в черную маску, что бы скрыть весь слой заливки целиком. Можете кликнуть по пиктограмме маски и выбрать Delete.
Или выбрать иконку маски и сделать тоже самое из меню Layer > Layer Mask > Delete. Теперь создайте маску с нуля, но не пустую, а скрывающую. Мы проделывали это в моей статье Маски в Фотошопе. Выберите Layer > Layer Mask > Hide All
А можно пойти другим путем. Маска — это такая же рабочая поверхность, как и сам слой. Маску можно рисовать вручную любыми инструментами рисования. Например кистью Brush Tool. Только в отличии от слоя, маска создается в градации от черного к белому, где белое — видимая часть, а черное — скрывающая часть. Кликните по пиктограмме маски в палитре слоя. Маска должна быть выделена, что бы на ней можно было рисовать. Затем выберите ведро заливки Paint Bucket Toll и черный цвет. Кликните по рабочей поверхности. Пустая маска, стала скрывающей маской.
А теперь выберите обычную кисть Brush Tool и белый цвет. Создайте маску волос, рисуя поверх маски точно также, как вы рисовали бы на слое. Вы можете пользоваться всеми благами настроек кисти. Делать её прозрачной, менять размеры, мягкие края. Все это будет лишь влиять на то, на сколько видима наша маска. И конечно, не забудьте выставить в режиме смешивания слоя Color, что бы сразу видеть результат закрашивания. Мы могли бы пойти другим путем. Например оставить маску белой, а всю область вокруг волос закрасить черным. Но согласитесь, это несколько утомительно, замазывать 70% рабочей области. И конечно не забудьте, чтобы работать на маске, маска должна быть выделена. Это можно сделать простым кликом по её пиктограмме в палитре слоев.
В итоге у вас должен получиться слой заливки, с маской волос. Преимущество этого способа в том, что вам не нужно каждый раз копаться в настройках цвета, которые непонятно где. Один простой клик по заливке слоя вызывает окно с выбором цвета.
Таким же образом закрасьте и другие области фотографии. В некоторых областях, где цвет не терпит мягких переходов, вам понадобится создать области выделения. Например в случае с ногтями, я создавал выделения инструментом Magic Wand Tool и Polygonal Lasso Toll. В остальных же случаях я обошелся сменой размеров кисти и переключением между мягкими краями и твердыми краями.
Когда вы создадите все слои с областями фотографии, вы сможете создавать другие оттеночные слои, создающие оттенки волос, переливы и прочие световые эффекты. Это и есть профессиональный результат. А теперь рассмотрим альтернативные варианты окрашивания фотографии.
Сделать фото цветным через слои коррекции (adjustments layers)
Вот еще один способ как сделать фотографию цветной. Воспользуемся настройками цветокоррекции adjustiments. Я уже представляю как вы открываете знакомые всем Image > Adjustiments, выделяете область и предаетесь эффектам. Нет, мы так делать конечно не будем. У нас получится та же самая каля маля. Конечно, выделить область, применить цветокоррекцию, выделить новую область, опять применить цветокоррекцию — вариант. Только вариант этот унылый, без всякой возможность подкрутить и изменить результаты.
Поэтому мы воспользуемся цветокорректирующими слоями Layer > New Adjustiment Layer. Цветокорректирующий слой — это та же самая цветокоррекция, только применяется она не к слою с графикой а сама является слоем. Представьте что фотография это наш слой. А поверх мы положили красное стекло, которое изменило цвет фотографии. Красное стекло и есть цветокорректирующий слой. Его можно убрать, сделать невидимым, применить слои, маску и не только.
Какие же из цветокоррекций подойдут для раскрашивания? На мой взгляд лучше всего подойдет цветокоррекция Photo Filter. Выберите Layer > New Adjustiment Layer > Photo Filter Или создайте цветокорректирующий слой через меню палитры слоев Layers.
Теперь я хочу чтобы вы проделали все то, что я описывал для раскрашивания фотографий через слои заливки. Создайте маску, залейте её черным и обычной кистью нанесите фильтр на нужную вам область. Вот что у вас должно получиться:
При этом вы в любой момент можете перенастроить цвет фильтра, изменить цвет и подкорректировать маску. Просто кликните по слою цветокоррекции и в палитре Adjustiments настройте цвет. Если вы не знаете где находится эта палитра, вызовите её через Windows > Ajustments Вы убедитесь сами, что через цветокоррекцию сделать фото цветным также просто, как через слои заливки, но мне лично по душе последнее.
Надеюсь что демонстрировать поэтапное раскрашивание нет необходимости. Вы уже поняли, что аналогичным способом надо раскрасить все области фотографии. Приведу окончательный вариант раскраски фото и пожелаю вам успешных экспериментов в Фотошопе. Теперь вы знаете как можно сделать фото цветным.
Автор:
Clrzr — приложение для раскраски черно-белых снимков с помощью нейронных сетей
Меня зовут Максим, мне 22. Три года я участвую в создании стартапов — в качестве помощника и сопроводителя, а иногда — инициатора и создателя. Проект, о котором пойдет речь, от начала и до конца создавался мной и моими друзьями.
Для работы над этим проектом собралось трое ребят: я, iOS-разработчик и менеджер проекта, мой друг Android-разработчик и одна девушка, которой поручили работать над интерфейсом, иконками и маркетингом.
Идея
Идея приложения появилась случайно. Мы работаем с продуктами клиентов, и не всегда можем выделить время для личных проектов, но в свободные вечера нам нравится предлагать и обсуждать идеи, некоторые из которых в итоге получают право на жизнь.
В один из таких свободных вечеров мы подумали: что, если бы у нас появилась возможность быстро и просто раскрашивать старые семейные или новые черно-белые фотографии? Сейчас набирают популярность развлекательные сервисы и приложения для обработки фото и видео, принцип работы которых основан на нейросетях (яркий пример — Prisma). Мы не удержались и тоже сделали приложение, работающее на нейронных сетях. Так появился Clrzr.
Как работает
Для сервера, на который загружаются фото для обработки нейронной сетью, мы решили взять уже готовый алгоритм, который нашли в открытом доступе на GitHub. Спустя неделю борьбы с занятостью и ленью у нас появился тестовый вариант приложения — с названием, симпатичным дизайном, простым интерфейсом и рабочим кодом.
Суть итогового продукта исходит из названия: Clrzr — сокращенно от colorizer — приложение, позволяющее раскрасить ваши черно-белые фото с помощью нейросетей.
Одна фотография обрабатывается в среднем 5−7 секунд, после чего пользователь либо сохраняет ее себе в галерею, либо делится ей в социальных сетях. Мы не ограничились русскоязычной аудиторией и запустили приложение одновременно на русском и английском языках, на платформах Andriod и iOS.
Планы
Приложение работает в демо-режиме. Мы собираем аналитику, отзывы о продукте — хотим выяснить, нравится ли приложение людям. Уже есть задачи для улучшения продукта: загруженные фото приходят с сервера после обработки в меньшем размере — это требует доработки. Сейчас мы планируем заняться поиском средств на собственный мощный сервер — это поможет обрабатывать изображение в полном разрешении.
Этот инструмент автоматически раскрашивает ваши черно-белые фотографии
Несколько лет назад мы рассказывали вам о новой технологии под названием Algorithmia, которая может автоматически угадывать точные цвета для черно-белых изображений. Хотя программа была классной, результаты часто были далеки от идеала. Теперь доступен новый инструмент под названием Colourise.sg, который пока кажется более точным, чем программа Algorithmia.
Исходное изображение снято на черно-белую пленку Kodak Tri-X. Stan HoraczekColourise.sg был разработан в Сингапуре компанией GovTech во время январского хакатона. По словам создателей проекта, Algorithmia создала раскрашенное изображение без яркости, из-за чего конечный продукт выглядел неаутентичным. Целью Colourise было создание программы, специально обученной раскрашивать старые сингапурские фотографии. Создатели сделали это, обучив инструмент историческим снимкам из Сингапура. В отличие от этого, алгоритм обучения был обучен с использованием 1.3 миллиона изображений из ImageNet, базы данных, которую исследователи из Стэнфорда и Принстона часто используют специально для обучения ИИ.
Раскрашенная версия фотографии в интерпретации Algorithmia. Stan HoraczekХотя оригинальный инструмент отлично отличал людей от природы, он часто использовал цвет с очень грубыми границами. Также казалось, что он лучше справляется с человеческими объектами, когда они выглядят довольно большими в кадре. Нам было любопытно посмотреть, как Colourise.sg интерпретирует эти же изображения.
Раскрашенная версия в интерпретации Colourise.sg. Как видите, новая программа отлично справилась с заливкой всего изображения цветом. Ненасыщенные цвета создают впечатление, будто снимок сделан на старый рулон цветной пленки. Stan HoraczekColourise.sg намного лучше заполняет все изображение цветом — вы не найдете грубых границ на выходе изображения. Цвета имеют тенденцию быть ненасыщенными, из-за чего изображения выглядят так, как будто они были сняты на просроченной пленке.Изображения, обработанные с помощью Colourise, также имеют более холодный тон, чем изображения, обработанные с помощью Algorithmia.
СВЯЗАННЫЕ: Вы должны проявить свою собственную черно-белую пленку. Вот как.
Исходное черно-белое изображение загружено на сайт. Он был преобразован (с использованием очень простого черно-белого преобразования) в Lightroom. Стэн Хорачек Как Algorithmia интерпретирует цвета в сцене. Stan HoraczekColourise также, кажется, лучше справляется с распознаванием людей, даже если они маленькие в кадре.Когда мы отправили черно-белую версию вышеуказанной фотографии через Algorithmia, она полностью пропустила человека, занимающегося йогой, и окрасила ее в тот же серый цвет, что и камни.
Colourise лучше, чем Algorithmia, опознала женщину, занимающуюся йогой, в нижней части кадра. Stan HoraczekВ версии Colourise тон ее кожи действительно выглядит немного зеленоватым, но она обрабатывается в цветах, отличных от ее фона. Ознакомьтесь с исходным цифровым цветным файлом ниже, чтобы сравнить его результаты.
Оригинальное цветное фото для сравнения, снятое на Canon EOS 5D Mark III. Stan HoraczekЭто классный инструмент, и интересно посмотреть, как эта технология искусственного интеллекта продвинулась вперед всего за несколько лет. Хотя подобные инструменты никоим образом не заменят важную работу, выполняемую профессионалами, приятно видеть, как он быстро анализирует эти сцены и то, как они могли бы выглядеть, если бы были сняты в цвете. Убедитесь сами.
Используйте Adobe Sensei, чтобы легко раскрашивать черно-белые фотографии в Photoshop CC
Знаете ли вы, что с помощью волшебства искусственного интеллекта Adobe Sensei, Photoshop CC теперь могут раскрашивать ваши черно-белые фотографии всего за несколько кликов? Что ж, узнайте, как это сделать и как сделать небольшую настройку, чтобы сделать реалистичные раскрашенные изображения из ваших черно-белых фотографий.
Используя новые нейронные фильтры Adobe Photoshop CC, мы можем ускорить процесс раскрашивания черно-белых фотографий. Бета-версия функции Colorize в нейронных фильтрах Photoshop CC поддерживается Adobe Sensei и отлично справляется с раскрашиванием черно-белых изображений. Но ему действительно нужна небольшая помощь, поэтому после запуска нового инструмента я проведу вас через несколько дополнительных шагов, чтобы усовершенствовать процесс раскрашивания.
Начать с нейронного фильтра
Первым делом мы воспользуемся новейшей функцией Photoshop CC: нейронными фильтрами.Перейдите в Фильтр> Нейронные фильтры, и вы увидите, что есть шесть бета-инструментов на выбор. Мы перейдем к инструменту Colorize, щелкнув по нему. На этом этапе Photoshop CC вызывает Adobe Sensei, чтобы запустить сканирование вашего изображения и обработать автоматический процесс раскрашивания черно-белого изображения. Впечатляюще, это фантастическая работа по раскрашиванию фотографии.
Как вы можете видеть на скриншоте выше, куртка в основном окрашена в синий цвет, оттенок кожи на лице довольно близок, а камень сзади также реалистично бежевый.Это дает нам 50% пути к выбору цветов и оттенков для нашей сцены, но, как вы можете видеть, есть много областей, которые можно улучшить, например, нижний правый угол куртки, который имеет пурпурный и желтый цвета. Лицо тоже выглядит не совсем правильным, и на каменной кладке позади нашего объекта есть пятна. Но с фильтром Colorize вы можете сделать больше.
Набор селективных штифтов
На миниатюре в правой части окна мы видим возможность сбросить булавки на фото.Отсюда мы можем выбрать цвет, который будет соответствовать каждой выпавшей булавке (с полем образца цвета), и ползунок размера (для определения распространения пораженной области, где находится булавка). Некоторое время я вставлял четыре булавки: одну к пиджаку, другую к лицу, а затем пару булавок на камне по обе стороны от нашего объекта.
Анализируйте результаты
После нажатия OK Photoshop запускает процесс и возвращает вас к исходному документу. Теперь у нас есть исходный черно-белый слой под только что раскрашенным слоем.На этом этапе стоит сделать шаг назад и посмотреть на фотографию, чтобы решить, как еще улучшить ситуацию. Если вы хотите остановиться на этом, ничего страшного, программное обеспечение отлично справилось с раскрашиванием этого черно-белого снимка всего за несколько щелчков мышью, но я могу выделить здесь несколько проблем, которые необходимо решить.
Обесцветить белую одежду
К сожалению, я не был достаточно избирательным с булавками, и рубашка имеет пурпурный оттенок. Итак, я собираюсь продублировать раскрашенный слой и обесцветить его (Ctrl + Shift + U или Cmd + Shift + U на Mac).Затем я добавлю маску слоя, чтобы показать только белую рубашку и белый цветок на лацкане нашего объекта.
Уклоняйся от волос
Волосам не хватает тональной глубины: светлые и темные участки переходят в полутона. Чтобы исправить это, я создал новый слой и объединил все видимые слои в один (Ctrl + Alt + Shift + E), затем использовал инструмент затемнения, установленный на 50%, и выделил, чтобы затемнить затененные участки волос. Я также использовал инструмент Dodge со значением 20% и выделил яркие участки волос.
Изменить глаза
Присмотревшись к портрету, я замечаю, что в процессе раскрашивания глаза остались того же цвета, что и остальная кожа нашего объекта. Я продублировал слой, снова обесцветил его и нанёс маску на 75%, чтобы обнажить только белки глаз. Я не замаскировал его полностью, потому что в глаза будет попадать естественный свет, добавляющий какой-то цвет.
Закрасить зазоры
Также не хватало цвета сбоку головы, поэтому я использовал инструмент «Пипетка», чтобы выделить розовато-коричневый тон брови моего объекта, а затем создал новый слой (Ctrl + Shift + N или Cmd + Shift + N на Mac) и закрасил кистью эту область.Затем я установил режим наложения слоя на Color, чтобы область стала насыщенной.
Раскрась глаза
Я не совсем закончил работу с глазами, потому что после быстрого телефонного звонка я обнаружил, что радужная оболочка моего объекта была не коричневой, а на самом деле стальной синей. Поэтому я использовал ту же технику, что и на предыдущем шаге, где я создал новый слой и добавил немного слабого серого с оттенком пурпурного. Я применил режим наложения цветного слоя и снизил непрозрачность до 71%.
Горящие тени
Чтобы улучшить затенение лица, я решил объединить все видимые слои в новый слой и использовать набор инструментов для мягкого затемнения до 50% и подсветки.Затем я приступил к выжиганию затененных участков лица, включая складки вокруг глаз. Мне показалось, что это придает фотографии гораздо больше объемности и более реалистично имитирует затенение в пиджаке и каменной кладке сзади.
Кисть фиолетового цвета
Ни одно лицо не всегда одного цвета, поэтому выглядит странно, что у нашего объекта один сплошной приглушенный оранжевый цвет. Итак, я создал новый слой, чтобы нарисовать цвет на затененной стороне. Тень обычно намного синее, чем область, освещенная прямым солнцем, и зная, что оттенок кожи нашего объекта уже немного теплее, я решил смешать немного синего и красного, чтобы создать фиолетовый.Я закрасил это мягкой кистью, а затем изменил режим наложения на Color и снизил непрозрачность до 25%.
Правильные зубы
Следуя моей теме обесцвечивания в предыдущих шагах, я продублировал объединенный слой и использовал инструмент Цветовой тон / Насыщенность, чтобы раскрасить фотографию до серовато-коричневого цвета. Затем я добавил маску слоя и выделил только зубы, чтобы они выглядели более реалистично, чем существующий оранжевый цвет.
Найдите ошибки
После тщательного осмотра всей фотографии я заметил, что есть несколько участков, лишенных цвета.Это было ошибкой из-за того, что ранее использовался фильтр Colorize, который не улавливал все на снимке. В основном это происходило в областях с низким контрастом, таких как сторона лица здесь. Поэтому я скопировал свою более раннюю технику рисования кистью в цвете и установил режим наложения на Color.
Баланс цветов
Вся фотография теперь действительно начинает складываться, и она выглядит намного лучше, чем то, с чего я начал. Но я все еще не был уверен, что цвета подходящие.Я добавил корректирующий слой и скорректировал средние тона до +9 на синем слайдере. Это потому, что я могу легко сказать, что объект находится в тени, благодаря мягкому, обволакивающему свету на его лице и куртке.
Я также увеличил голубой (-7) и желтый (-4) в тенях, чтобы добавить немного больше тепла объекту, так как предыдущий шаг сделал его слишком холодным и синим. Думаю, мне удалось найти хороший баланс между оттенками кожи, курткой, каменной кладкой на спине и каштановыми волосами.Почти готово.
Регулировка уровней
Еще одна последняя корректировка, которую я хотел сделать, — это ввести корректировку уровней с небольшим добавлением теней и светов для повышения контрастности. Это сделало портрет немного темнее, чем я хотел, поэтому я скорректировал полутона до 0,96, чтобы немного осветлить объекты. Я определенно мог бы потратить гораздо больше времени на точную настройку портрета, и я думаю, что хотел бы поэкспериментировать с большей прорисовкой кожи и глаз, чтобы представить сложные цвета и тона, которые присутствуют в реальной жизни.Тем не менее, я чувствую баланс между быстрой окраской благодаря новому фильтру и небольшим временем, потраченным на точную настройку портрета, сделало реалистичную окраску исходной черно-белой фотографии и преобразует ее в совершенно новый свет.
Основное изображение, иллюстрация Sykes Office, используется в рамках Creative Commons
Добавить фильтры и раскрасить черно-белые фотографии
Редактировать фотографии после сканирования очень просто, и это может быть отличным способом улучшить ваши фотографии, помимо функции автоматического улучшения приложения.У вас есть возможность добавлять фильтры и даже раскрашивать черно-белые фотографии до тех пор, пока они не будут соответствовать вашим стандартам. Вот как.
Добавление цветных фильтров
Приложение автоматически корректирует блеклые цвета при сканировании фотографий, но вы всегда можете добавить дополнительные цветовые фильтры на свой вкус (к тому же их весело опробовать). Просто следуйте этим шагам.
- Откройте фотографию, над которой хотите поработать, и коснитесь значка волшебной палочки внизу фотографии. Это откроет полный набор фотофильтров.
- Попробуйте фильтры, нажимая их по очереди, чтобы увидеть, как они влияют на цвет фотографии. Когда вы увидите фильтр, который вас устраивает, нажмите на значок галочки, чтобы применить его и сохранить новую цветную фотографию.
Раскрашивание черно-белых фотографий
Вы когда-нибудь задумывались, как выглядят ваши старые черно-белые фотографии в цвете? Приложение включает интеллектуальный автоматический процесс превращения ваших черно-белых фотографий в яркие красочные воспоминания.Выполните следующие действия, чтобы убедиться в этом сами.
- Выберите черно-белое фото в одном из своих альбомов и коснитесь его, чтобы просмотреть его в полноэкранном режиме.
- Коснитесь значка кисти в верхней части экрана (приложение автоматически определяет черно-белые фотографии и будет показывать этот значок всякий раз, когда вы просматриваете такие фотографии).
- Не видите значок кисти? Коснитесь меню параметров с тремя точками в правом нижнем углу, затем выберите пункт меню Раскрасить черно-белую фотографию .
- Затем появится всплывающее окно с объяснением. После того, как вы нажмете красную кнопку, приложение совершит магию раскраски. Подождите несколько секунд, а затем увидите раскрашенное фото прямо у вас на глазах!
Раскрашенная версия фотографии будет храниться в приложении как дополнительная копия исходной черно-белой фотографии.
Нужна помощь и / или есть вопросы? Свяжитесь с нашей службой поддержки для получения дополнительной помощи.
—
Последнее обновление страницы: декабрь 2020
Раскрашивание фотографий в Photoshop Elements
Одна из последних тенденций в фотографии — создание черно-белых фотографий.Конечно, в эту цифровую эпоху фотографии сначала цветные, а затем цвет удаляется какой-то программой или приложением для создания ч / б версии. Взгляните на этот пример от SmugMug.
Раскраска фотографий вручную
Кажется, не так давно, на заре фотографии, до изобретения цветной фотографии, люди передавали цветные фотографии, чтобы они казались более реалистичными. На самом деле раскрашивание рук началось вскоре после рождения фотографии. Интересно читать историю.Посмотрите здесь . Мне нравится этот пример из c. 1850 г., раскрашенная вручную фотография ребенка.
Портрет ребенка, гр. 1850 г., Дж. Пол, собрание группы научного музея.Перенесемся в конец 20-го -го -го века, и вам не нужно было выяснять, какой носитель лучше всего использовать для какого типа фотографии. Вы можете раскрасить фотографию с помощью компьютера. А в 21, и веке, такие программы, как Adobe Photoshop и Photoshop Elements (PSE), автоматически раскрашивают фотографию одним нажатием кнопки или щелчком мыши.
Одношаговое решение
Хорошо, честно говоря, версии с одним щелчком требуют небольшой помощи. Итак, вот как мы используем функцию Colorize Photo в Photoshop Element. Сначала откройте черно-белое фото. Затем в строке меню выберите «Улучшение»> «Раскрасить фото».
Откроется диалоговое окно с автоматически раскрашенными для вас четырьмя версиями фотографии. Нажмите на них, чтобы просмотреть в большом окне предварительного просмотра. Если вам нравится один из этих вариантов, нажмите «ОК», и все готово.Проще простого.
Многоступенчатое решение
Бывают моменты, когда одношагового решения будет недостаточно, и вам захочется еще немного отрегулировать изображение. В этих случаях нажмите кнопку «Авто / Ручной» в правом верхнем углу, чтобы перейти в ручной режим. В диалоговом окне с правой стороны появятся некоторые инструкции.
Первый шаг — выбрать область, которую нужно изменить или раскрасить. В этом примере (да, невеста — моя мама) лицо подружки невесты в центре не было раскрашено так сильно, как другие.Итак, давайте исправим это, выделив эту часть тела. Вы можете выбрать инструмент «Быстрое выделение» или инструмент «Волшебная палочка». Я предпочитаю использовать инструмент «Быстрое выделение» (значок слева).
Щелкните и перетащите указатель мыши на область, PSE попытается выбрать то, что, по ее мнению, вы хотите изменить, и вокруг области появится пунктирный контур выделения. Вы можете использовать кнопки добавления / вычитания под инструментом выбора в сочетании с перетаскиванием мыши для изменения области. На изображении ниже я выбрал лицо, которое хотел изменить.
Когда у вас есть хороший выбор, переходите к шагу 2. Нажмите кнопку инструмента «Капля» и щелкните где-нибудь внутри выделения. На изображении появится значок капли.
На шаге 3 вы выбираете цвет. Если ни один из цветов не является тем, что вы хотите использовать, а обычно это не так, щелкните значок пипетки. Затем наведите указатель мыши на область изображения с цветом, который вы хотите использовать. Так как я хочу, чтобы лицо выглядело как у других подружек невесты, я нажимаю на светлую часть одного из других лиц.Это может занять секунду или две, но PSE закрасит лицо новым цветом. Если вам не нравится результат, нажмите на другую область. Вы можете продолжать отбирать образцы и менять цвет лица, пока не будете довольны. Ниже представлены две версии.
Изменить несколько областей
Перейдите к каждой области, которую хотите раскрасить, и начните заново с шага 1. Перед тем, как выбрать новую часть фотографии, обязательно нажмите кнопку «Создать» (простой белый прямоугольник). Я выбрала часть одного из платьев.Если один из подходящих цветов выглядит правильным, щелкните по нему. Или прокрутите список цветов, сдвинув один из белых треугольников по обе стороны от длинной цветной полосы справа. Цвета слева позволяют точно настроить цвет. Щелкните один из цветов, и PSE заполнит ваш выбор.
Продолжайте процесс выбора различных областей, которые вы хотите раскрасить. В приведенном ниже примере я начал раскрашивать растения на заднем плане. Кстати, если эти значки в виде капель мешают вам, вы можете отключить их, нажав кнопку «Показать капли» в левом нижнем углу.Когда закончите, нажмите ОК. PSE закроет диалоговое окно и вернет вас в экспертный режим, где вы можете сохранить файл. Обязательно дайте цветному файлу новое имя при сохранении, чтобы не перезаписать оригинал. И да, мне все еще нужно раскрасить все эти платья в синий цвет!
Есть много других способов раскрасить фотографии в PSE. Если вы хотите узнать больше, подумайте о том, чтобы записаться на один из наших курсов PSE. Мы снова начнем работу в феврале 2021 года. Нажмите здесь для получения дополнительной информации.
Легкое преобразование черно-белых фотографий в цветные
Старые фотографии или недавно сделанные черно-белые фотографии могут ожить, если их раскрасить. Добавление цвета к монохромным фотографиям раньше было сложным процессом, который требовал от вас внимания, чтобы каждый пиксель на фотографии находился на своем месте, но за последние несколько лет этот процесс стал намного проще. Онлайн-инструменты, приложения и программное обеспечение для редактирования фотографий могут сделать процесс раскрашивания фотографии настолько простым, что это сможет сделать даже ребенок.
Если вы ищете лучшие фоторедакторы для восстановления ваших старых фотографий, попробуйте Лучшее программное обеспечение для восстановления фотографий для восстановления старых фотографий в 2018 году. Перед восстановлением напечатанных старых фотографий вам может потребоваться сначала отсканировать старые фотографии.
В этой статье мы покажем вам, как раскрасить вашу черно-белую фотографию, и предложим инструменты, которые вы можете использовать для достижения наилучших результатов. Давайте рассмотрим различные способы раскрашивания монохромных фотографий.
Часть 1. Раскрашивайте черно-белые фотографии с помощью онлайн-инструментов
Редактирование фотографий в Интернете — это эффективный способ избежать использования бесчисленных опций, предоставляемых программами редактирования фотографий, поскольку вы редактируете фотографию за короткий промежуток времени.Вот как вы можете раскрасить фотографию с помощью онлайн-инструмента.
1. Раскрасьте его
Люди, которым нужен автоматический способ добавления цвета к черно-белой фотографии, будут хорошо проводить время с помощью микросервиса Colorize It, предоставляемого Algorithmia. Все, что вам нужно сделать, это загрузить свою фотографию или вставить URL-адрес из того места в Интернете, куда вы уже загрузили свою фотографию, и нажать кнопку «Раскрасить». Затем алгоритм автоматически добавит цвет к вашей фотографии, и после завершения раскрашивания вы сможете увидеть фотографии до и после.
Сервис Colorize It получает информацию из миллионов изображений, которые он анализирует, и продолжает развиваться с помощью глубокого обучения — метода машинного обучения, который позволяет ИИ со временем совершенствоваться. Однако на данном этапе вряд ли можно ожидать, что Colorize It создаст реалистичные цвета на каждом обрабатываемом изображении, поэтому результаты, которые вы получаете, могут варьироваться от фотографии к фотографии.
2. Онлайн-конвертер Colorize Photo
В отличие от сервиса Colorize It, который автоматически обрабатывает изображения, Colorize Photo Online Converter позволяет вручную добавлять цвет к вашим черно-белым фотографиям.Этот онлайн-конвертер фотографий позволяет копировать и добавлять цвета с фотографии в цвете на фотографию, которую вы хотите раскрасить. Такие инструменты, как «Размер», «Непрозрачность» и «Жесткость» можно использовать для настройки курсора, который вы используете для добавления цвета к черно-белой фотографии, а функции «Размер» и «Цвет» позволяют выбрать область, из которой вы копируете цвет. Пользователи Colorize Photo Online Converter могут контролировать, какие области черно-белой фотографии будут раскрашены, а также могут выбирать интенсивность применяемого цвета.
Добавление цвета к каждой детали на фотографии может быть утомительной задачей, на выполнение которой уходит часы, а иногда даже день, поэтому этот онлайн-инструмент вряд ли можно назвать быстрым способом раскрашивания фотографий. С другой стороны, Colorize Photos Online Converter обеспечивает высокий уровень точности, и раскрашенные с его помощью фотографии выглядят реалистично.
Часть 2: Раскрашивание с помощью программного обеспечения для редактирования фотографий
Несмотря на то, что большинство программ для редактирования фотографий для ПК или Mac могут выполнять практически любую задачу редактирования фотографий, каждое программное обеспечение требует определенного уровня знаний и навыков.Вот лучшие варианты, если вы хотите раскрасить свои фотографии с помощью программного обеспечения для редактирования фотографий.
1. Лучший выбор для опытных фоторедакторов: используйте PhotoShop или GIMP.
Adobe Photoshop — это всемогущий инструмент, который позволяет делать с фотографиями все, что угодно, если вы знаете, как это сделать. Хотя раскрашивание фотографии в Photoshop занимает не более получаса, это довольно сложная задача для тех, кто никогда раньше не использовал эту программу. Кроме того, Photoshop не является бесплатным, поэтому, если вы не планируете карьеру в редактировании фотографий, GIMP может быть лучшим выбором для раскрашивания фотографий.
GIMP — это программа для редактирования фотографий с открытым исходным кодом, которая включает почти все возможности Photoshop. Какую бы из этих программ вы ни выбрали, вам нужно знать, как изменить режим на CMYK, а опыт работы с несколькими слоями, безусловно, поможет вам сэкономить много времени. Более того, чтобы раскрасить черно-белую фотографию, вам потребуется значительный уровень навыков в тонкой настройке тонов и цветов, но этот процесс может показаться трудным только в первый раз, потому что со временем и практикой он становится почти непростым. рутинная работа.Лучший способ раскрасить фотографию — использовать программное обеспечение для редактирования фотографий, и если вам нужна помощь, вы можете щелкнуть здесь и следовать этому пошаговому руководству.
Даже если вы являетесь высококвалифицированным фоторедактором, вам все равно понадобится некоторое время, чтобы добавить цвет к черно-белому фото, но такое программное обеспечение, как Fotophire, может помочь людям, которые хотели бы раскрасить фотографию, всего за несколько кликов.Программное обеспечение для редактирования фотографий Wondershare содержит множество фотофильтров, которые можно применить к фотографии одним щелчком мыши. Такие фильтры, как Blue Wash или Cross Process, могут добавить цвет к вашей фотографии за секунды. Стоит отметить, что после применения фотофильтра цвет будет применен ко всей фотографии, поэтому результат, который вы получите, может не быть фотографией с реалистичными цветами.
Однако после того, как вы применили фильтр, вы можете перейти в меню настроек, где вы можете попытаться добиться более реалистичного вида фотографии, повозившись с параметрами температуры, оттенка или кривой тона.Обилие функций, предлагаемых Fotophire, позволит вам точно решить, какие цвета вы хотите добавить к своим фотографиям, а также вы можете точно настроить интенсивность цветов. Эта программа настолько проста в использовании, что вы можете легко раскрасить фотографию, даже если вы никогда этого не делали раньше. После раскрашивания черно-белых фотографий вы можете воспользоваться преимуществами Fotophire Slideshow Maker , простого в использовании средства для создания слайд-шоу фотографий, чтобы создать отличное слайд-шоу из фотографий или видео за 3 простых шага.
Часть 3. Раскрашивание черно-белых фотографий на смартфонах
Добавление цвета к черно-белым фотографиям — довольно простой процесс, который не требует от вас навыков редактирования фотографий, поскольку большинство смартфонов предлагают предустановки или фильтры, которые автоматически добавят цвет к любой фотографии.
1. Раскрашивайте черно-белые фотографии на iPhone.
iPhone предлагает множество встроенных фотофильтров, которые позволят вам раскрасить фотографию за доли секунды, но если вы хотите использовать приложение, разработанное специально для раскрашивания фотографий, вы можете попробовать использовать такое приложение, как Wondershare Filmora.
Источник изображения: Интернет
Это бесплатное приложение предоставляет пользователям множество функций, которые позволяют им управлять цветом так, как они хотят. Параметр «Перекрасить» позволяет вам изменить цвет любой детали на фотографии, и его можно эффективно использовать для раскрашивания черно-белых фотографий. Однако функция Recolor не бесплатна, и если вы хотите ее использовать, вам придется приобрести ее за 3,99 доллара.
2. Раскрашивайте черно-белые фотографии на телефонах Android.
Источник изображения: Интернет
Старые семейные фотографии или любое другое черно-белое фото можно легко раскрасить на любом современном телефоне Android.Вы можете использовать некоторые фильтры, предлагаемые вашим телефоном, но результаты, которые вы получите, могут быть не впечатляющими, поэтому такое приложение, как Polychrome, может помочь вам правильно раскрасить ваши фотографии. В приложении используется машинное обучение, и с каждой раскрашиваемой фотографией оно становится лучше. Процесс добавления цвета к вашим черно-белым фотографиям является автоматическим, поэтому все, что вам нужно сделать, это выбрать фотографию, которую вы хотите раскрасить, и дождаться, пока приложение сделает свое волшебство.
Заключение
Фотографии часто захватывают воспоминания, и со временем эти воспоминания превращаются в черно-белые, каждый из методов раскрашивания фотографий, которые мы описали, вернет ваши воспоминания в яркие цвета.Мы хотели бы услышать, какая техника раскрашивания фотографий вам нравится больше всего, поэтому не стесняйтесь делиться своими мыслями с нами в комментариях.
Вам также могут понадобиться: 10 лучших приложений для создания черно-белых фотографий для смартфонов iOS и Android.
.Google Фото для раскрашивания черно-белых фотографий с помощью ИИ
Google выходит на сцену конференции разработчиков Google I / O на этой неделе, чтобы продемонстрировать свои новые продукты и технологии, одной из которых является новая версия Google Фото на базе искусственного интеллекта.Новое приложение будет содержать множество новых интеллектуальных функций, в том числе возможность раскрашивать черно-белые фотографии одним касанием.
Инструмент «Раскрашивание» использует искусственный интеллект для «лучшего предположения» о том, как могла бы выглядеть цветная версия старой монохромной фотографии.
В то время как нейронная сеть хороша в определенных предметах, таких как превращение травы в зеленый, другие, например, придание оттенка кожи людям, намного сложнее. Итак, Google работает над улучшением этой функции и не будет запускать ее, пока она не станет «действительно правильной», — сообщает компания TechCrunch .
Пример раскрашивания до и после, показанный на Google I / O 2018.Окрашивание традиционно выполняется экспертами Photoshop, которые час за часом исследуют цвета и скрупулезно конвертируют небольшие части фотографий за раз. Но исследователи добились огромных успехов в обучении ИИ раскрашиванию изображений, изучая примеры. Также появились простые приложения и веб-сайты, обеспечивающие автоматическое раскрашивание.
Тем не менее, благодаря обширным библиотекам изображений Google, исследователям и разработчикам мирового класса и искусному интеллекту, мы можем вскоре увидеть некоторые результаты раскраски, которые расширят границы возможного.
Google также внедряет в Google Фото множество других функций на базе искусственного интеллекта, включая автоматическое создание контента (коллажи, анимацию, фильмы), автоматическое улучшение фотографий (например, осветление темных фотографий, поворот и обесцвечивание фона портретов) и лица. признание (например, распознавание людей на фотографиях и вопрос, не хотите ли вы поделиться с ними).
Цветовой эффект обесцвечивает фон, оставляя объекты в цвете. Обмен фотографиями с людьми, идентифицированными на фотографиях, одним касанием.Работать с фотографиями в @googlephotos проще, чем когда-либо. При развертывании сегодня вы можете увидеть предложения по осветлению, архивированию, публикации или повороту фотографий прямо на изображении. # io18 pic.twitter.com/NPT0l0GuBy
— Google (@Google) 8 мая 2018 г.
Вы можете посмотреть, как генеральный директор Google Сундар Пичаи представил эти новые функции Google Фото вчера во время основного выступления Google I / O в этом видео (оно начинается в 1:33:15):
Вы можете начать использовать некоторые из этих мощных новых функций уже сегодня, загрузив последнюю версию Google Фото для iOS и Android.
Раскрашивание черно-белых фотографий с помощью нейронных сетей
Готовы создавать, обучать и развертывать ИИ?
Начните работу с совместной платформой искусственного интеллекта FloydHub бесплатно
Попробовать FloydHub бесплатно
Ранее в этом году Амир Авни использовал нейронные сети для троллинга subreddit / r / Colorization — сообщества, в котором люди вручную раскрашивают исторические черно-белые изображения с помощью Photoshop. Они были удивлены ботом Амира для глубокого обучения — то, что могло занять до месяца ручного труда, теперь можно было сделать всего за несколько секунд.
Я был очарован нейронной сетью Амира, поэтому воспроизвел ее и задокументировал процесс. Прежде всего, давайте посмотрим на некоторые результаты / неудачи моих экспериментов (прокрутите вниз, чтобы увидеть окончательный результат).
Сегодня раскрашивание выполняется вручную в программе Photoshop. Чтобы оценить всю тяжелую работу, стоящую за этим процессом, взгляните на это великолепное видео с полосами памяти о раскрашивании. Короче говоря, на раскрашивание картинки может уйти до одного месяца. Это требует обширных исследований.Одно только лицо должно иметь до 20 слоев розового, зеленого и синего оттенков, чтобы получилось правильно.
Эта статья предназначена для начинающих. Тем не менее, если вы новичок в терминологии глубокого обучения, вы можете прочитать два моих предыдущих сообщения [1] [2] и посмотреть лекцию Андрея Карпати, чтобы узнать больше.
Я покажу вам, как создать собственную нейронную сеть для раскрашивания в три этапа.
Первый раздел раскрывает основную логику. Мы создадим простую нейронную сеть из 40 строк в качестве бота для раскрашивания «Альфа».В этом фрагменте кода не так много волшебства — он полезен для ознакомления с синтаксисом.
Следующим шагом будет создание нейронной сети, которая может обобщать — нашу «бета-версию». Мы сможем раскрашивать изображения, которых бот еще не видел.
Для нашей «окончательной» версии мы объединим нашу нейронную сеть с классификатором. Мы будем использовать Inception Resnet V2, который был обучен на 1,2 миллиона изображений. Чтобы раскрашивание получилось ярким, мы обучим нашу нейронную сеть на портретах из Unsplash.
Если вы хотите заглянуть в будущее, то вот блокнот Jupyter с альфа-версией нашего бота. Вы также можете ознакомиться с тремя версиями на FloydHub и GitHub, а также с кодом для всех экспериментов, которые я проводил на облачных графических процессорах FloydHub.
Базовая логика
В этом разделе я расскажу, как визуализировать изображение, основы цифровых цветов и основную логику нашей нейронной сети.
Черно-белые изображения могут быть представлены сеткой пикселей. Каждый пиксель имеет значение, соответствующее его яркости.Значения варьируются от 0 до 255, от черного до белого.
Цветные изображения состоят из трех слоев: красного, зеленого и синего. Это может показаться вам нелогичным. Представьте себе разделение зеленого листа на белом фоне на три канала. Интуитивно можно подумать, что растение присутствует только в зеленом слое.
Но, как вы видите ниже, лист присутствует во всех трех каналах. Слои определяют не только цвет, но и яркость.
Например, для получения белого цвета необходимо равномерное распределение всех цветов.Добавляя равное количество красного и синего, он делает зеленый ярче. Таким образом, цветное изображение кодирует цвет и контраст с помощью трех слоев:
Как и в случае с черно-белыми изображениями, каждый слой цветного изображения имеет значение от 0 до 255. Значение 0 означает, что в этом слое нет цвета. Если значение 0 для всех цветовых каналов, то пиксель изображения черный.
Как вы, возможно, знаете, нейронная сеть создает связь между входным значением и выходным значением.Чтобы быть более точным с нашей задачей окраски, сеть должна найти черты, которые связывают изображения в оттенках серого с цветными.
Итак, мы ищем функции, которые связывают сетку значений оттенков серого с тремя цветовыми сетками.
Альфа-версия
Мы начнем с создания простой версии нашей нейронной сети для раскрашивания изображения женского лица. Таким образом, вы можете познакомиться с основным синтаксисом нашей модели по мере того, как мы добавляем в нее функции.
Имея всего 40 строк кода, мы можем сделать следующий переход.Среднее изображение сделано с помощью нашей нейронной сети, а изображение справа — это исходная цветная фотография. Сеть обучается и тестируется на одном образе — мы вернемся к этому во время бета-версии.
Цветовое пространство
Сначала мы воспользуемся алгоритмом для изменения цветовых каналов с RGB на Lab. L означает легкость, а a и b — цветовые спектры зеленый – красный и сине – желтый.
Как вы можете видеть ниже, изображение, закодированное в Lab, имеет один слой для оттенков серого и три цветовых слоя упакованы в два. Это означает, что мы можем использовать исходное изображение в градациях серого в нашем окончательном прогнозе. Кроме того, нам нужно всего два канала для прогнозирования.
Научный факт — 94% клеток нашего глаза определяют яркость. Остается только 6% наших рецепторов, которые действуют как сенсоры цвета. Как вы можете видеть на изображении выше, изображение в оттенках серого намного резче, чем цветные слои.Это еще одна причина сохранить изображение в градациях серого в нашем окончательном прогнозе.
От черно-белого к цветному
Наш окончательный прогноз выглядит так. У нас есть слой оттенков серого для ввода, и мы хотим спрогнозировать два цветовых слоя: ab в Lab . Чтобы создать окончательное цветное изображение, мы включим изображение L / оттенки серого, которое мы использовали для ввода, таким образом, создав изображение Lab .
Чтобы превратить один слой в два, мы используем сверточные фильтры.Думайте о них как о сине-красных фильтрах в 3D-очках. Каждый фильтр определяет то, что мы видим на картинке. Они могут что-то выделить или удалить, чтобы извлечь информацию из изображения. Сеть может либо создать новое изображение из фильтра, либо объединить несколько фильтров в одно изображение.
Для сверточной нейронной сети каждый фильтр автоматически настраивается для достижения желаемого результата. Мы начнем с того, что сложим сотни фильтров и сузим их до двух слоев: a и b .
Прежде чем мы подробно рассмотрим, как это работает, давайте запустим код.
Развертывание кода на FloydHub
Если вы новичок в FloydHub, выполните их 2-минутную установку, посмотрите мой 5-минутный видеоурок или пошаговое руководство — это лучший (и самый простой) способ обучения моделей глубокого обучения на облачных графических процессорах.
Альфа-версия
После установки FloydHub используйте следующие команды:
git clone https://github.com/emilwallner/Coloring-greyscale-images-in-Keras
Откройте папку и запустите FloydHub.
cd Coloring-greyscale-images-in-Keras / floydhub
floyd init colornet
В вашем браузере откроется веб-панель управления FloydHub, и вам будет предложено создать новый проект FloydHub под названием colornet
. Как только это будет сделано, вернитесь к своему терминалу и выполните ту же команду init
.
floyd init colornet
Хорошо, давайте запустим нашу работу:
floyd run --data emilwallner / datasets / colornet / 2: data --mode jupyter --tensorboard
Небольшие заметки о нашей работе:
- Мы смонтировали общедоступный набор данных на FloydHub (который я уже загрузил) в каталог
data
с--data
emilwallner / datasets / colornet / 2: data
.Вы можете изучить и использовать этот набор данных (и многие другие общедоступные наборы данных), просмотрев его на FloydHub . - Мы включили Tensorboard с
--tensorboard
- Мы выполнили задание в режиме Jupyter Notebook с
--mode jupyter
- Если у вас есть кредит на GPU, вы также можете добавить к своей команде флаг GPU
--gpu
— это ускорит его примерно в 50 раз
Перейдите в свой блокнот Jupyter на вкладке «Задания» на веб-сайте FloydHub, щелкните ссылку Блокнот Jupyter и перейдите к этому файлу: floydhub / Alpha version / working_floyd_pink_light_full.ipynb
. Откройте его и нажмите Shift + Enter во всех ячейках.
Постепенно увеличивайте значение эпохи, чтобы почувствовать, как обучается нейронная сеть.
model.fit (x = X, y = Y, batch_size = 1, epochs = 1)
Начните со значения эпохи 1 и увеличьте его до 10, 100, 500, 1000 и 3000. Значение эпохи указывает, сколько раз нейронная сеть учится на изображении. Вы найдете изображение img_result.png
в основной папке после обучения нейронной сети.
# Получить изображения
image = img_to_array (load_img ('woman.png'))
изображение = np.array (изображение, dtype = float)
# Импортировать изображения карты в цветовое пространство лаборатории
X = rgb2lab (1.0 / 255 * изображение) [:,:, 0]
Y = rgb2lab (1.0 / 255 * изображение) [:,:, 1:]
Y = Y / 128
X = X.reshape (1, 400, 400, 1)
Y = Y.reshape (1, 400, 400, 2)
model = Последовательный ()
model.add (InputLayer (input_shape = (Нет, Нет, 1)))
# Построение нейронной сети
model = Последовательный ()
model.add (InputLayer (input_shape = (Нет, Нет, 1)))
model.add (Conv2D (8, (3, 3), Activation = 'relu', padding = 'same', strides = 2))
модель.add (Conv2D (8, (3, 3), Activation = 'relu', padding = 'same'))
model.add (Conv2D (16, (3, 3), Activation = 'relu', padding = 'same'))
model.add (Conv2D (16, (3, 3), Activation = 'relu', padding = 'same', strides = 2))
model.add (Conv2D (32, (3, 3), Activation = 'relu', padding = 'same'))
model.add (Conv2D (32, (3, 3), Activation = 'relu', padding = 'same', strides = 2))
model.add (UpSampling2D ((2, 2)))
model.add (Conv2D (32, (3, 3), Activation = 'relu', padding = 'same'))
model.add (UpSampling2D ((2, 2)))
model.add (Conv2D (16, (3, 3), Activation = 'relu', padding = 'same'))
модель.добавить (UpSampling2D ((2, 2)))
model.add (Conv2D (2, (3, 3), Activation = 'tanh', padding = 'same'))
# Готовая модель
model.compile (optimizer = 'rmsprop', loss = 'mse')
# Обучаем нейронную сеть
model.fit (x = X, y = Y, batch_size = 1, эпохи = 3000)
print (model.evaluate (X, Y, batch_size = 1))
# Выходные раскраски
output = model.predict (X)
вывод = вывод * 128
холст = np.zeros ((400, 400, 3))
холст [:,:, 0] = X [0] [:,:, 0]
холст [:,:, 1:] = вывод [0]
imsave ("img_result.png", lab2rgb (cur))
imsave ("img_gray_scale.png", rgb2gray (lab2rgb (cur)))
Команда FloydHub для запуска этой сети:
floyd run --data emilwallner / datasets / colornet / 2: data --mode jupyter --tensorboard
Техническое объяснение
Напомним, что входом является сетка, представляющая черно-белое изображение.Он выводит две сетки со значениями цвета. Между входными и выходными значениями мы создаем фильтры, чтобы связать их вместе, сверточную нейронную сеть.
При обучении сети мы используем цветные изображения. Мы конвертируем цвета RGB в цветовое пространство Lab. Черно-белый слой — это наш вход, а два цветных слоя — выход.
Слева у нас есть черно-белый ввод или фильтры и прогноз от нашей нейронной сети.
Мы сопоставляем прогнозируемые значения и реальные значения в пределах одного и того же интервала.Таким образом, мы можем сравнить значения. Интервал изменяется от -1 до 1. Чтобы отобразить предсказанные значения, мы используем функцию активации Tanh. Для любого значения, которое вы дадите функции Tanh, она вернет от -1 до 1.
Значения истинного цвета изменяются от -128 до 128, это интервал по умолчанию в цветовом пространстве Lab. Разделив их на 128, они тоже попадают в интервал от -1 до 1. Это позволяет нам сравнить ошибку с нашим прогнозом.
После вычисления окончательной ошибки сеть обновляет фильтры, чтобы уменьшить общую ошибку.Сеть остается в этом цикле до тех пор, пока ошибка не станет настолько низкой, насколько это возможно.
Давайте проясним синтаксис во фрагменте кода.
X = rgb2lab (1.0 / 255 * изображение) [:,:, 0]
Y = rgb2lab (1.0 / 255 * изображение) [:,:, 1:]
1.0 / 255, указывает, что мы используем 24-битное цветовое пространство RGB. Это означает, что мы используем числа от 0 до 255 для каждого цветового канала. Это стандартный размер цветов, который дает 16,7 миллиона цветовых комбинаций. Поскольку люди могут воспринимать только 2-10 миллионов цветов, нет смысла использовать большее цветовое пространство.
Y = Y / 128
Цветовое пространство Lab имеет другой диапазон по сравнению с RGB. Цветовой спектр ab в Lab изменяется от -128 до 128. Разделив все значения в выходном слое на 128, мы устанавливаем диапазон между -1 и 1. Мы сопоставляем его с нашей нейронной сетью, которая также возвращает значения между -1 и 1.
После преобразования цветового пространства из rgb2lab () , мы выбираем слой оттенков серого с помощью: [:,:, 0] . Это наш ввод для нейронной сети. [:,:, 1:] выбирает два цветовых слоя: зеленый-красный и сине-желтый.
После обучения нейронной сети мы делаем окончательный прогноз, который преобразуем в картинку.
output = model.predict (X)
вывод = вывод * 128
Здесь мы используем изображение в градациях серого в качестве входных данных и пропускаем его через нашу обученную нейронную сеть. Мы берем все выходные значения от -1 до 1 и умножаем их на 128. Это дает нам правильный цвет в цветовом спектре Lab.
холст = нп.нули ((400, 400, 3))
холст [:,:, 0] = X [0] [:,:, 0]
холст [:,:, 1:] = вывод [0]
Наконец, мы создаем черный холст RGB, заполняя его тремя слоями нулей. Затем мы копируем слой с оттенками серого из нашего тестового изображения. Затем мы добавляем наши два цветных слоя на холст RGB. Затем этот массив значений пикселей преобразуется в изображение.
Выводы из альфа-версии
- Тяжело читать исследовательские работы . Как только я суммировал основные характеристики каждой статьи, стало легче просматривать статьи.Это также позволило мне поместить детали в контекст.
- Простой запуск — ключ к успеху . Большинство реализаций, которые я смог найти в Интернете, содержат от 2 до 10 тысяч строк. Это затрудняло понимание основной логики проблемы. Когда у меня появилась barebone-версия, стало легче читать реализацию кода, а также исследовательские статьи.
- Изучите общественные проекты. Чтобы получить общее представление о том, что кодировать, я просмотрел 50–100 проектов по раскрашиванию на Github.
- Вещи не всегда работают должным образом. Вначале он мог создавать только красный и желтый цвета. Сначала у меня была функция активации Relu для финальной активации. Поскольку он отображает только числа в положительные цифры, он не может создавать отрицательные значения, синий и зеленый спектры. Это исправлено добавлением функции активации Tanh и отображением значений Y.
- Понимание> Скорость. Многие реализации, которые я видел, были быстрыми, но с ними было сложно работать. Я выбрал оптимизацию для скорости инноваций, а не для скорости кода.
Бета-версия
Чтобы понять слабые места альфа-версии, попробуйте раскрасить изображение, на котором она не была обучена. Если вы попробуете, то увидите, что это неудачная попытка. Это потому, что сеть запомнила информацию. Он не научился раскрашивать изображение, которого раньше не видел. Но вот что мы сделаем в бета-версии — научим нашу сеть обобщать.
Ниже приведен результат раскраски проверочных изображений нашей бета-версией.
Вместо использования Imagenet я создал общедоступный набор данных на FloydHub с изображениями более высокого качества. Изображения взяты с Unsplash — общих снимков профессиональных фотографов. Он включает 9,5 тыс. Обучающих изображений и 500 проверочных изображений.
Наша нейронная сеть находит характеристики, которые связывают полутоновые изображения с их цветными версиями.
Представьте, что вам нужно раскрасить черно-белые изображения — но с ограничением, что вы можете видеть только девять пикселей за раз.Вы можете сканировать каждое изображение сверху слева направо и пытаться предсказать, какого цвета должен быть каждый пиксель.
Например, эти девять пикселей — край ноздри женщины чуть выше. Как вы понимаете, создать хорошую раскраску практически невозможно, поэтому разбейте ее на шаги.
Сначала вы ищите простые шаблоны: диагональную линию, все черные пиксели и так далее. Вы ищете одинаковый точный узор в каждом квадрате и удаляете пиксели, которые не совпадают.Вы генерируете 64 новых изображения из своих 64 мини-фильтров.
Если вы отсканируете изображения еще раз, вы увидите те же мелкие узоры, которые вы уже обнаружили. Чтобы получить более высокий уровень понимания изображения, вы уменьшите размер изображения вдвое.
У вас по-прежнему есть только фильтр три на три для сканирования каждого изображения. Но, комбинируя свои новые девять пикселей с фильтрами более низкого уровня, вы можете обнаруживать более сложные шаблоны. Комбинация из одного пикселя может образовывать полукруг, маленькую точку или линию.Опять же, вы многократно извлекаете один и тот же узор из изображения. На этот раз вы создаете 128 новых отфильтрованных изображений.
После нескольких шагов полученные отфильтрованные изображения могут выглядеть примерно так:
Как уже упоминалось, вы начинаете с низкоуровневых функций, таких как ребро. Слои, расположенные ближе к выходу, объединяются в узоры, затем в детали и в конечном итоге трансформируются в лицо. Если это сложно понять, то посмотрите этот видеоурок.
Этот процесс похож на большинство нейронных сетей, работающих со зрением, известных как сверточные нейронные сети.Свертка похожа на слово комбинировать, вы объединяете несколько отфильтрованных изображений, чтобы понять контекст изображения.
Нейронная сеть работает методом следа и ошибок. Сначала он делает случайный прогноз для каждого пикселя. Основываясь на ошибке для каждого пикселя, он работает в обратном направлении по сети, чтобы улучшить извлечение признаков.
Начинается корректировка ситуаций, в которых возникают наибольшие ошибки. В данном случае — раскрашивать или нет и находить разные объекты.Затем он окрашивает все объекты в коричневый цвет. Это цвет, который больше всего похож на все другие цвета, что дает наименьшую ошибку.
Поскольку большая часть обучающих данных очень похожа, сеть изо всех сил пытается различать разные объекты. Он отрегулирует различные оттенки коричневого, но не сможет создать более тонкие цвета. Это то, что мы рассмотрим в полной версии.
Ниже приведен код бета-версии, за которым следует техническое объяснение кода.
# Получить изображения
X = []
для имени файла в os.listdir ('../ Поезд /'):
X.append (img_to_array (load_img ('../ Train /' + имя файла)))
X = np.array (X, dtype = float)
# Настроить тренировочные и тестовые данные
split = int (0,95 * len (X))
Xtrain = X [: split]
Xtrain = 1.0 / 255 * Xtrain
# Дизайн нейронной сети
model = Последовательный ()
model.add (InputLayer (input_shape = (256, 256, 1)))
model.add (Conv2D (64, (3, 3), Activation = 'relu', padding = 'same'))
model.add (Conv2D (64, (3, 3), Activation = 'relu', padding = 'same', strides = 2))
model.add (Conv2D (128, (3, 3), Activation = 'relu', padding = 'same'))
модель.add (Conv2D (128, (3, 3), Activation = 'relu', padding = 'same', strides = 2))
model.add (Conv2D (256, (3, 3), Activation = 'relu', padding = 'same'))
model.add (Conv2D (256, (3, 3), Activation = 'relu', padding = 'same', strides = 2))
model.add (Conv2D (512, (3, 3), Activation = 'relu', padding = 'same'))
model.add (Conv2D (256, (3, 3), Activation = 'relu', padding = 'same'))
model.add (Conv2D (128, (3, 3), Activation = 'relu', padding = 'same'))
model.add (UpSampling2D ((2, 2)))
model.add (Conv2D (64, (3, 3), Activation = 'relu', padding = 'same'))
модель.добавить (UpSampling2D ((2, 2)))
model.add (Conv2D (32, (3, 3), Activation = 'relu', padding = 'same'))
model.add (Conv2D (2, (3, 3), Activation = 'tanh', padding = 'same'))
model.add (UpSampling2D ((2, 2)))
# Готовая модель
model.compile (optimizer = 'rmsprop', loss = 'mse')
# Преобразователь изображений
datagen = ImageDataGenerator (
shear_range = 0,2,
zoom_range = 0,2,
Rotation_range = 20,
horizontal_flip = Истина)
# Создание обучающих данных
batch_size = 50
def image_a_b_gen (размер_пакета):
для партии в датагене.поток (Xtrain, batch_size = batch_size):
lab_batch = rgb2lab (партия)
X_batch = lab_batch [:,:,:, 0]
Y_batch = lab_batch [:,:,:, 1:] / 128
yield (X_batch.reshape (X_batch.shape + (1,)), Y_batch)
# Модель поезда
TensorBoard (log_dir = '/ output')
model.fit_generator (image_a_b_gen (batch_size), steps_per_epoch = 10000, epochs = 1)
# Тестовые изображения
Xtest = rgb2lab (1.0 / 255 * X [split:]) [:,:,:, 0]
Xtest = Xtest.reshape (Xtest.shape + (1,))
Ytest = rgb2lab (1.0 / 255 * X [split:]) [:,:,:, 1:]
Ytest = Ytest / 128
модель печати.оценить (Xtest, Ytest, batch_size = batch_size)
# Загрузить черно-белые изображения
color_me = []
для имени файла в os.listdir ('../ Test /'):
color_me.append (img_to_array (load_img ('../ Test /' + имя файла)))
color_me = np.array (color_me, dtype = float)
color_me = rgb2lab (1.0 / 255 * color_me) [:,:,:, 0]
color_me = color_me.reshape (color_me.shape + (1,))
# Тестовая модель
output = model.predict (color_me)
вывод = вывод * 128
# Выходные раскраски
для i в диапазоне (len (вывод)):
cur = np.zeros ((256, 256, 3))
cur [:,:, 0] = color_me [i] [:,:, 0]
cur [:,:, 1:] = вывод [i]
imsave ("результат / img _" + str (i) + ".png ", lab2rgb (cur))
Вот команда FloydHub для запуска нейронной сети Beta:
floyd run --data emilwallner / datasets / colornet / 2: data --mode jupyter --tensorboard
Технические пояснения
Основное отличие от других визуальных сетей — важность расположения пикселей. В раскрашивающих сетях размер или соотношение изображений остаются неизменными во всей сети. В других сетях изображение искажается по мере приближения к последнему слою.
Уровни максимального объединения в классификационных сетях увеличивают плотность информации, но также искажают изображение. Он ценит только информацию, но не макет изображения. В раскрашивании сетей мы вместо этого используем шаг 2, чтобы уменьшить ширину и высоту вдвое. Это также увеличивает плотность информации, но не искажает изображение.
Еще два отличия — это повышающая дискретизация слоев и сохранение соотношения сторон изображения. Классификационные сети заботятся только об окончательной классификации.Поэтому они продолжают уменьшать размер и качество изображения по мере его прохождения по сети.
Раскрашивающие сети сохраняют пропорции изображения. Это делается путем добавления белого отступа, как на визуализации выше. В противном случае каждый сверточный слой обрезает изображения. Это делается с помощью параметра * padding = 'same' *
. **
Чтобы удвоить размер изображения, сеть раскраски использует слой с повышающей дискретизацией. [Документация]
для имени файла в os.listdir ('/ Color_300 / Train /'):
ИКС.добавить (img_to_array (load_img ('/ Color_300 / Test' + имя файла)))
Этот цикл for
сначала подсчитывает все имена файлов в каталоге. Затем он выполняет итерацию по каталогу изображений, преобразует изображения в массив пикселей и объединяет их в гигантский вектор.
datagen = ImageDataGenerator (
shear_range = 0,2,
zoom_range = 0,2,
Rotation_range = 20,
horizontal_flip = Истина)
В ImageDataGenerator
мы настраиваем настройку для нашего генератора изображений.Таким образом, одно изображение никогда не будет прежним, что улучшит процесс обучения. shear_range
наклоняет изображение влево или вправо, а другие настройки не требуют пояснений. [Документация]
batch_size = 50
def image_a_b_gen (размер_пакета):
для партии в datagen.flow (Xtrain, batch_size = batch_size):
lab_batch = rgb2lab (партия)
X_batch = lab_batch [:,:,:, 0]
Y_batch = lab_batch [:,:,:, 1:] / 128
yield (X_batch.reshape (X_batch.shape + (1,)), Y_batch)
Мы используем изображения из нашей папки Xtrain, генерируя изображения на основе указанных выше настроек.Затем мы извлекаем черный и белый слой для X_batch
и два цвета для двух цветных слоев.
model.fit_generator (image_a_b_gen (batch_size), steps_per_epoch = 1, epochs = 1000)
Чем мощнее ваш графический процессор, тем больше изображений вы в него поместите. При такой настройке вы можете использовать 50–100 изображений. steps_per_epoch
вычисляется путем деления количества обучающих изображений на размер вашего пакета. Например, 100 изображений с размером пакета 50, равным 2 шагам на эпоху.Количество эпох определяет, сколько раз вы хотите тренировать все изображения. 10К изображений с 21 эпохой займут около 11 часов на графическом процессоре Tesla K80.
Выводы
- Проведите множество экспериментов с небольшими партиями, прежде чем делать большие серии. Даже после 20-30 экспериментов все равно находил ошибки. То, что он работает, не означает, что он работает. Ошибки в нейронной сети часто более сложны, чем традиционные ошибки программирования. Одной из самых странных была моя икота Адама.
- Более разнообразный набор данных делает изображения коричневыми. Если у вас есть очень похожие изображения, вы можете получить достойный результат без более сложной архитектуры. Но они также хуже умеют обобщать.
- Формы, формы и формы. Размер каждого изображения должен быть точным и оставаться пропорциональным во всей сети. Вначале я использовал размер изображения 300, разделив его пополам три раза, вы получите 150, 75 и 35,5. Таким образом, теряется половина пикселя.Это привело ко многим «хитростям», пока я не понял, что лучше использовать степень двойки: 2, 8, 16, 32, 64, 256 и так далее.
- Создание наборов данных
Полная версия
Наша последняя версия нейронной сети раскрашивания состоит из четырех компонентов. Мы разделили ранее существовавшую сеть на кодировщик и декодер. Между ними мы будем использовать слой слияния. Если вы новичок в классификационных сетях, я бы порекомендовал бегло взглянуть на это руководство.
Параллельно с кодировщиком входные изображения также проходят через один из самых мощных на сегодняшний день классификаторов — inception resnet v2 — сеть, обученную на 1.2M изображений. Мы извлекаем слой классификации и объединяем его с выходными данными кодировщика.
Вот более подробное изображение из оригинальной статьи.
Перенося обучение из классификатора в раскрашивающую сеть, сеть может получить представление о том, что изображено на картинке. Таким образом, позволяя сети сопоставлять представление объекта со схемой окраски.
Вот некоторые из проверочных изображений, использующих только 20 изображений для обучения сети.
Большинство изображений оказались плохими, но мне удалось найти несколько достойных из-за большого набора для проверки (2500 изображений). Тренировка на большем количестве изображений дала более стабильный результат, но большинство из них получилось коричневатым. Вот полный список экспериментов, которые я проводил, включая проверочные изображения [1] [2].
Вот наиболее распространенные архитектуры из предыдущего исследования:
Архитектура
- Добавление небольших цветных точек на изображение вручную для направления нейронной сети [1]
- Найдите подходящее изображение и перенесите раскраску [1] [2] [3]
- Остаточный кодер и объединяющие уровни классификации [1]
- Объединение гиперстолбцов из классифицирующей сети [1] [2]
- Объединение окончательной классификации кодера и декодера [1] [2]
Цветовые пространства
Lab, YUV, HSV и LUV [1] [2] [3] [4]
Убыток
Среднеквадратичная ошибка, классификация, взвешенная классификация [1] [2] [3]
Я выбрал E, — с фьюжн-слоем.Он дает одни из лучших результатов, и его легко понять и воспроизвести в Керасе. Хотя это не самая сильная цветовая схема, она идеальна для начала. Это отличная архитектура для понимания динамики проблемы окраски.
Я использовал дизайн нейронной сети из этой статьи (Baldassarre alt el., 2017) с моей собственной интерпретацией в Керасе.
Примечание: в приведенном ниже коде я переключаюсь с последовательной модели Keras на их функциональный API. [Документация]
# Получить изображения
X = []
для имени файла в os.listdir ('/ data / images / Train /'):
X.append (img_to_array (load_img ('/ data / images / Train /' + имя_файла)))
X = np.array (X, dtype = float)
Xtrain = 1.0 / 255 * X
# Вес груза
inception = InceptionResNetV2 (веса = Нет, include_top = True)
inception.load_weights ('/ data / inception_resnet_v2_weights_tf_dim_ordering_tf_kernels.h5')
inception.graph = tf.get_default_graph ()
embed_input = Вход (форма = (1000,))
#Encoder
encoder_input = Вход (форма = (256, 256, 1,))
encoder_output = Conv2D (64, (3,3), Activation = 'relu', padding = 'same', strides = 2) (encoder_input)
encoder_output = Conv2D (128, (3,3), активация = 'relu', padding = 'same') (encoder_output)
encoder_output = Conv2D (128, (3,3), Activation = 'relu', padding = 'same', strides = 2) (encoder_output)
encoder_output = Conv2D (256, (3,3), активация = 'relu', padding = 'same') (encoder_output)
encoder_output = Conv2D (256, (3,3), Activation = 'relu', padding = 'same', strides = 2) (encoder_output)
encoder_output = Conv2D (512, (3,3), активация = 'relu', padding = 'same') (encoder_output)
encoder_output = Conv2D (512, (3,3), активация = 'relu', padding = 'same') (encoder_output)
encoder_output = Conv2D (256, (3,3), активация = 'relu', padding = 'same') (encoder_output)
#Слияние
fusion_output = RepeatVector (32 * 32) (embed_input)
fusion_output = Изменить форму (([32, 32, 1000])) (fusion_output)
fusion_output = concatenate ([encoder_output, fusion_output], ось = 3)
fusion_output = Conv2D (256, (1, 1), активация = 'relu', padding = 'same') (fusion_output)
# Декодер
decoder_output = Conv2D (128, (3,3), активация = 'relu', padding = 'same') (fusion_output)
decoder_output = UpSampling2D ((2, 2)) (decoder_output)
decoder_output = Conv2D (64, (3,3), активация = 'relu', padding = 'same') (decoder_output)
decoder_output = UpSampling2D ((2, 2)) (decoder_output)
decoder_output = Conv2D (32, (3,3), активация = 'relu', padding = 'same') (decoder_output)
decoder_output = Conv2D (16, (3,3), активация = 'relu', padding = 'same') (decoder_output)
decoder_output = Conv2D (2, (3, 3), Activation = 'tanh', padding = 'same') (decoder_output)
decoder_output = UpSampling2D ((2, 2)) (decoder_output)
model = Модель (входы = [encoder_input, embed_input], output = decoder_output)
#Create embedding
def create_inception_embedding (grayscaled_rgb):
grayscaled_rgb_resized = []
для i в grayscaled_rgb:
i = resize (i, (299, 299, 3), mode = 'constant')
grayscaled_rgb_resized.добавить (я)
grayscaled_rgb_resized = np.array (grayscaled_rgb_resized)
grayscaled_rgb_resized = preprocess_input (grayscaled_rgb_resized)
с inception.graph.as_default ():
embed = inception.predict (grayscaled_rgb_resized)
возврат встраивать
# Преобразователь изображений
datagen = ImageDataGenerator (
shear_range = 0,4,
zoom_range = 0,4,
диапазон_ вращения = 40,
horizontal_flip = Истина)
# Создать данные для обучения
batch_size = 20
def image_a_b_gen (размер_пакета):
для партии в датагене.поток (Xtrain, batch_size = batch_size):
grayscaled_rgb = gray2rgb (rgb2gray (партия))
embed = create_inception_embedding (grayscaled_rgb)
lab_batch = rgb2lab (партия)
X_batch = lab_batch [:,:,:, 0]
X_batch = X_batch.reshape (X_batch.shape + (1,))
Y_batch = lab_batch [:,:,:, 1:] / 128
yield ([X_batch, create_inception_embedding (grayscaled_rgb)], Y_batch)
# Модель поезда
tenorboard = TensorBoard (log_dir = "/ output")
model.compile (optimizer = 'adam', loss = 'mse')
модель.fit_generator (image_a_b_gen (batch_size), callbacks = [tensorboard], epochs = 1000, steps_per_epoch = 20)
# Сделайте прогноз по невидимым изображениям
color_me = []
для имени файла в os.listdir ('../ Test /'):
color_me.append (img_to_array (load_img ('../ Test /' + имя файла)))
color_me = np.array (color_me, dtype = float)
color_me = 1.0 / 255 * color_me
color_me = gray2rgb (rgb2gray (color_me))
color_me_embed = create_inception_embedding (color_me)
color_me = rgb2lab (color_me) [:,:,:, 0]
color_me = color_me.reshape (color_me.shape + (1,))
# Тестовая модель
выход = модель.предсказать ([color_me, color_me_embed])
вывод = вывод * 128
# Выходные раскраски
для i в диапазоне (len (вывод)):
cur = np.zeros ((256, 256, 3))
cur [:,:, 0] = color_me [i] [:,:, 0]
cur [:,:, 1:] = вывод [i]
imsave ("результат / img _" + str (i) + ". png", lab2rgb (cur))
Вот команда FloydHub для запуска полной нейронной сети:
floyd run --data emilwallner / datasets / colornet / 2: data --mode jupyter --tensorboard
Технические пояснения
Функциональный APIKeras идеально подходит, когда мы объединяем или объединяем несколько моделей.
Сначала мы загружаем нейронную сеть inception resnet v2 и загружаем веса. Поскольку мы будем использовать две модели параллельно, нам нужно указать, какую модель мы используем. Это делается в Tensorflow, бэкэнде для Keras.
inception = InceptionResNetV2 (веса = None, include_top = True)
inception.load_weights ('/ data / inception_resnet_v2_weights_tf_dim_ordering_tf_kernels.h5')
inception.graph = tf.get_default_graph ()
Для создания нашей партии мы используем измененные изображения.Мы превращаем их в черно-белые и проходим через начальную модель resnet.
grayscaled_rgb = gray2rgb (rgb2gray (пакет))
embed = create_inception_embedding (grayscaled_rgb)
Во-первых, мы должны изменить размер изображения, чтобы оно соответствовало исходной модели. Затем мы используем препроцессор для форматирования значений пикселей и цвета в соответствии с моделью. На последнем этапе мы пропускаем его через начальную сеть и извлекаем последний слой модели.
def create_inception_embedding (grayscaled_rgb):
grayscaled_rgb_resized = []
для i в grayscaled_rgb:
i = resize (i, (299, 299, 3), mode = 'constant')
grayscaled_rgb_resized.добавить (я)
grayscaled_rgb_resized = np.array (grayscaled_rgb_resized)
grayscaled_rgb_resized = preprocess_input (grayscaled_rgb_resized)
с inception.graph.as_default ():
embed = inception.predict (grayscaled_rgb_resized)
возврат встраивать
Возвращаемся к генератору. Для каждого пакета мы генерируем 20 изображений в формате ниже. На графическом процессоре Tesla K80 это занимает около часа. С этой моделью он может делать до 50 изображений одновременно без проблем с памятью.
yield ([X_batch, create_inception_embedding (grayscaled_rgb)], Y_batch)
Это соответствует нашему формату модели colornet.
model = Модель (входы = [encoder_input, embed_input], output = decoder_output)
encoder_input
подается в нашу модель Encoder, затем выходные данные модели Encoder объединяются с embed_input
в слое слияния; результат слияния затем используется в качестве входных данных в нашей модели декодера, которая затем возвращает окончательный результат, decoder_output
.
fusion_output = RepeatVector (32 * 32) (embed_input)
fusion_output = Изменить форму (([32, 32, 1000])) (fusion_output)
fusion_output = concatenate ([fusion_output, encoder_output], ось = 3)
fusion_output = Conv2D (256, (1, 1), активация = 'relu') (fusion_output)
В слое слияния мы сначала умножаем уровень категории 1000 на 1024 (32 * 32).Таким образом, мы получаем 1024 строки с последним слоем из начальной модели. Затем его форма преобразуется из 2D в 3D, сетка 32 x 32 с столбцами 1000 категорий. Затем они связываются вместе с выходными данными модели кодировщика. Мы применяем сверточную сеть с фильтром 254 с ядром 1X1, конечным результатом слоя слияния.
Выводы
- Терминология исследования была сложной. Я потратил три дня на поиски способов реализации «модели Fusion» в Керасе.Поскольку это звучало сложно, я не хотел сталкиваться с проблемой. Вместо этого я обманом заставил себя искать короткие пути.
- Я задавал вопросы онлайн. У меня не было ни одного комментария в Slack-канале Keras, и Stack Overflow удалил мои вопросы. Но, публично разобрав проблему, чтобы упростить ответ, он заставил меня изолировать ошибку, приблизив меня к решению.
- Написать людям. Хотя форумы могут быть холодными, людей волнует, если вы связываетесь с ними напрямую.Обсуждение цветовых пространств по Skype с незнакомым исследователем вдохновляет.
- Отложив решение проблемы слияния, я решил собрать все компоненты, прежде чем сшивать их вместе. Вот несколько экспериментов, которые я использовал, чтобы разрушить слой слияния.
- Когда у меня появилось что-то, что, как я думал, будет работать, я не решился запустить это. Хотя я знал, что основная логика в порядке, я не верил, что она сработает. После чашки чая с лимоном и долгой прогулки — запустил.После первой строчки в моей модели возникла ошибка. Но через четыре дня, несколько сотен ошибок и несколько тысяч поисковых запросов в Google появилась «Эпоха 1/22» по моей модели.
Следующие шаги
Раскрашивание изображений — очень интересная проблема. Это такая же научная проблема, как и художественная. Я написал эту статью, чтобы вы быстро научились раскрашивать и продолжить с того места, где я остановился. Вот несколько советов для начала:
- Реализуйте это с другой предварительно обученной моделью
- Другой набор данных
- Повышение точности сети с большим количеством изображений
- Создайте усилитель в цветовом пространстве RGB.Создайте модель, аналогичную раскрашивающей сети, которая принимает насыщенное цветное изображение на входе и правильное цветное изображение на выходе.
- Внедрить взвешенную классификацию
- Используйте классификационную нейронную сеть как функцию потерь. Изображения, которые классифицируются как поддельные, вызывают ошибку. Затем он решает, насколько каждый пиксель повлиял на ошибку.
- Примените его к видео. Не беспокойтесь о раскраске, но переключайтесь между изображениями последовательно. Вы также можете сделать что-то подобное для больших изображений, разместив меньшие по размеру.
Вы также можете легко раскрасить свои собственные черно-белые изображения с помощью трех моих версий нейронной сети раскраски с использованием FloydHub.
- Для альфа-версии просто замените файл
woman.jpg
своим файлом с тем же именем (размер изображения 400×400 пикселей). - Для бета-версии и полной версии добавьте изображения в папку
Test
перед запуском команды FloydHub. Вы также можете загрузить их прямо из записной книжки в папку «Тест» во время работы записной книжки.Обратите внимание, что эти изображения должны быть ровно 256×256 пикселей. Кроме того, вы можете загружать все тестовые изображения в цвете, потому что это автоматически преобразует их в черно-белые.
Если вы что-то построите или застрянете, напишите мне в твиттер: emilwallner. Я хотел бы увидеть, что вы создаете.
Огромное спасибо Федерико Бальдассарре за ответы на уточняющие вопросы и их предыдущую работу по раскрашиванию. Также спасибо Muthu Chidambaram, который повлиял на реализацию ядра в Keras, сообществу Unsplash за предоставленные изображения.Также спасибо Марин Хазиза, Валдемарасу Репсис, Цинпин Хоу, Чарли Харрингтону, Сай Соундарарадж, Яннесу Клаасу, Клаудио Кабралу, Алену Демене и Игнасио Тоноли за чтение черновиков этого текста.
Подъем штанги
Готовы вывести раскрашивание на новый уровень ?! Пожалуйста, поприветствуйте DeOldify: основанный на GAN подход к раскрашиванию и восстановлению старых изображений и фильмов.
Приглашение FloydHub для авторов ИИ
Хотите писать потрясающие статьи, как Эмиль, и сыграть свою роль на долгом пути к общему искусственному интеллекту? Мы ищем увлеченных писателей, чтобы создать лучший в мире блог для практического применения новаторского А.I. техники. FloydHub имеет большой охват в сообществе ИИ, и с вашей помощью мы можем вдохновить новую волну ИИ. Подайте заявку сейчас и присоединяйтесь к команде!
Об Эмиле Валлнер
Это третья часть серии блогов, состоящих из нескольких частей, от Эмиля, как он изучает глубокое обучение.