Обновить
128K+

Обработка изображений *

Работаем с фото и видео

77,3
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Восстанавливаем детальную геометрию объектов для более точной валидации ассортимента

Время на прочтение2 мин
Охват и читатели2.4K
Занимаясь вопросами качества поиска, рано или поздно приходится столкнуться с задачей визуальной валидации продуктов. Опустим простые задачи, с которыми справится обычный классификатор, сосредоточившись на случаях, которые требуют более или менее точной геометрии объекта:



Предположим, необходимо отобрать только хорошие фотографии тех или иных объектов, для последующего использования в e-commerce. Под хорошими будем подразумевать фотографии без лишних деталей с доминирующим основным объектом.
Читать дальше →

Программный модуль оцифровки поврежденных документов

Время на прочтение6 мин
Охват и читатели5.5K

Оптическое распознавание символов (OCR) — это процесс получения печатных текстов в оцифрованном формате. Если вы прочитали классический роман на цифровом устройстве или попросили врача поднять старые медицинские записи через компьютерную систему больницы, вы, вероятно, воспользовались OCR.


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


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


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


image


Для обучения использовалось 144 картинки. Размер может быть разным, но желательно должен быть в пределах разумного. Картинки должны иметь формат PNG. После считывании изображения используется бинаризация – процесс преобразования цветного изображения в черно-белое, то есть каждый пиксель нормализуется в диапазон от 0 до 255, где 0 – это черный, 255 – белый.


Чтобы обучить сверточную сеть, нужно больше изображений, чем имеется. Было принято решение разделить изображения на части. Так как обучающая выборка состоит из картинок разного размера, каждое изображение было сжато до 448х448 пикселей. В результате получилось 144 изображения в разрешении 448х448 пикселей. После чего все они были нарезаны на неперекрывающиеся окна размером 112x112 пикселей.

Читать дальше →

Эти новые уловки пока ещё способны перехитрить видеоролики от Deepfake

Время на прочтение7 мин
Охват и читатели31K


Несколько недель специалист по информатике Сывей Люй [Siwei Lyu] наблюдал за роликами deepfake, созданными его командой, с терзающим беспокойством. Эти поддельные фильмы, созданные при помощи алгоритма машинного обучения, показывали знаменитостей, занимающихся такими вещами, которыми бы они не стали заниматься. Они казались ему странно пугающими, и не только потому, что он знал, что они поддельные. «Они неправильно выглядят, — вспоминает он свои мысли, — но очень сложно точно определить, из-за чего складывается такое впечатление».

Но однажды в его мозгу возникло детское воспоминание. Как и многие другие дети, он играл с детьми в «гляделки». «Я всегда проигрывал такие состязания, — говорит он, — потому что, когда я смотрел на их немигающие лица, мне становилось очень не по себе».

Он понял, что эти поддельные фильмы вызывали у него схожий дискомфорт: он проигрывал гляделки этим звёздам кино, поскольку те не открывали и не закрывали глаза с такой частотой, как это делают реальные люди.
Читать дальше →

Вариационные автокодировщики: теория и рабочий код

Время на прочтение11 мин
Охват и читатели25K


Вариационный автокодировщик (автоэнкодер) — это генеративная модель, которая учится отображать объекты в заданное скрытое пространство.

Когда-нибудь задавались вопросом, как работает модель вариационного автокодировщика (VAE)? Хотите знать, как VAE генерирует новые примеры, подобные набору данных, на котором он обучался? Прочитав эту статью, вы получите теоретическое представление о внутренней работе VAE, а также сможете реализовать его самостоятельно. Затем я покажу рабочий код VAE, обученный на наборе рукописных цифр, и мы немного повеселимся, генерируя новые цифры!
Читать дальше →

Как создать процедуральный арт менее чем за 100 строк кода

Время на прочтение6 мин
Охват и читатели26K


Generative art (генеративное или процедуральное искусство) может отпугнуть, если вы никогда с ним раньше не сталкивались. Если коротко, то это концепция искусства, которое буквально создает само себя и не требует хардкорных знаний программирования для первого раза. Поэтому я решил немного разбавить нашу ленту, погнали.
Читать дальше →

Создание GIF-анимации с помощью OpenCV

Время на прочтение16 мин
Охват и читатели14K


Из этого туториала вы узнаете, как создавать анимированные GIF-файлы с помощью OpenCV, Python и ImageMagick. Затем объедините эти методы, чтобы создать генератор мемов с OpenCV!

Нам всем нужно время от времени посмеяться. И, возможно, лучший способ найти лулзы — это мемы. Некоторые из моих любимых:

  • Лягушка Кермит: «Но это не мое дело»
  • Сварливый кот
  • Эпик фейл
  • Хороший парень Грег

Но лично для меня ни один из этих мемов не сравнится с мемом ”Deal With It" («Смирись с этим» или «Разбирайся сам»), пример которого приведён в начале статьи.
Читать дальше →

Нейронные сети против цензуры хентая

Время на прочтение3 мин
Охват и читатели109K


От переводчика: Этот забавный репозиторий уже с неделю находится в трендах гитхаба, и сейчас у него фееричное количество из 5000 звёздочек и 400 форков — поэтому я подумал, что было бы интересно перевести про него статью, хотя она короткая, да и тематика для хабра не очень стандартная.
Если интересно, в оригинале статьи (ссылка около заголовка) есть ссылки на примеры работы программы.
Читать дальше →

DeOldify: программа для раскрашивания чёрно-белых изображений

Время на прочтение7 мин
Охват и читатели54K
Если вкратце, задача этого проекта — раскрашивать и восстанавливать старые снимки. Я немного углублюсь в детали, но сначала давайте посмотрим фотографии! Кстати, большинство исходных изображений взято из подреддита r/TheWayWeWere, благодарю всех за такие качественные большие снимки.

Это лишь немногие примеры, и они вполне типичные!

Мария Андерсон в роли Маленькой феи и её паж Любовь Рябцова в балете «Спящая красавица» в Императорском театре, Санкт-Петербург, Россия, 1890


Читать дальше →

Дорисовывание лиц с помощью машинного обучения

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

Первый столбец изображений показывает настоящие лица. Следующие столбцы иллюстрируют, как деревья (extremely randomized trees), метод k-ближайших соседей (k nearest neighbors/K-nn), линейная регрессия (linear regression) и RidgeCV (ridge regression complete) завершают нижнюю половину этих лиц.

Читать дальше →

Генерация произвольных реалистичных лиц с помощью ИИ

Время на прочтение10 мин
Охват и читатели54K
Контролируемый синтез и редактирование изображений с использованием новой модели TL-GAN


Пример контролируемого синтеза в моей модели TL-GAN (transparent latent-space GAN, генеративно-состязательная сеть с прозрачным скрытым пространством)

Весь код и онлайн-демо доступны на странице проекта.
Читать дальше →

Играем в Mortal Kombat с помощью TensorFlow.js

Время на прочтение18 мин
Охват и читатели20K
Экспериментируя с улучшениями для модели прогнозирования Guess.js, я стал присматриваться к глубокому обучению: к рекуррентным нейронным сетям (RNN), в частности, LSTM из-за их «необоснованной эффективности» в той области, где работает Guess.js. В то же время я начал играться с свёрточными нейросетями (CNN), которые тоже часто используются для временных рядов. CNN обычно используют для классификации, распознавания и обнаружения изображений.


Управление MK.js с помощью TensorFlow.js

Исходный код для этой статьи и МК.js лежат у меня на GitHub. Я не выложил набор данных для обучения, но можете собрать свои собственные и обучить модель, как описано ниже!
Читать дальше →

Нейросети не понимают, что такое оптические иллюзии

Время на прочтение3 мин
Охват и читатели24K

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




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

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

Сами по себе иллюзии интересны тем, что дают представление о природе зрительной системы и восприятия. Поэтому будет очень полезно придумать способ находить новые иллюзии, которые помогут изучить ограничения этой системы.
Читать дальше →

Laplace Blur — Можно ли блюрить Лапласом вместо Гаусса, во сколько раз это быстрее, и стоит ли того потеря 1/32 точности

Время на прочтение7 мин
Охват и читатели12K
image

«Блюр» в простонародье — эффект размытия, в цифровой обработке изображений. Бывает очень эффектен и сам по себе, и как составляющее анимаций интерфейса, или более сложных производных эффектов (bloom/focusBlur/motionBlur). При всем этом честный блюр в лоб довольно медленен. И часто реализации встроенные в целевую платформу оставляют желать лучшего. То скорость печальна, то артефакты режут глаза. Ситуация рождает множество компромиссных реализаций, лучше или хуже подходящих для определенных условий. Оригинальная реализация с хорошим качеством достоверности и высочайшей скоростью, при этом нижайшей зависимостью от аппаратной части ждет вас под катом. Приятного аппетита!
Читать дальше →

Ближайшие события

Следование линии на основе OpenCV

Время на прочтение4 мин
Охват и читатели19K
Сейчас очень популярны курсы по созданию автопилотов для машин. Вот эта нано-степень от Udacity — самый наверное известный вариант.

Много людей по нему учатся и выкладывают свои решения. Я тоже не смог пройти мимо и увлекся.

Разница в том, что курс предполагает разработку алгоритма на основе предоставляемых данных, а я делал все для своего робота.
Читать дальше →

Преобразование цветовой температуры (K) в RGB: алгоритм и пример кода

Время на прочтение7 мин
Охват и читатели20K


Если вы не знаете, что такое цветовая температура, начните отсюда.

Работая над инструментом «Цветовая температура» для PhotoDemon, я целый вечер пытался определить простой и понятный алгоритм преобразования между значениями температуры (в Кельвинах) и RGB. Я думал, что такой алгоритм будет просто найти, ведь во многих фоторедакторах есть инструменты для коррекции цветовой температуры, а в каждой современной камере, включая смартфоны, есть регулировка баланса белого на основе условий освещения.
Читать дальше →

Посмотри на тень

Время на прочтение2 мин
Охват и читатели3.7K


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

Хочу сделать небольшой обзор на эту тему. Думаю что будет познавательно и интересно.
Читать дальше →

Работа с изображениями на Python

Время на прочтение18 мин
Охват и читатели114K
Тема сегодняшнего разговора — чему же научился Python за все годы своего существования в работе с изображениями. И действительно, кроме старичков родом из 1990 года ImageMagick и GraphicsMagick, есть современные эффективные библиотеки. Например, Pillow и более производительная Pillow-SIMD. Их активный разработчик Александр Карпинский (homm) на MoscowPython сравнил разные библиотеки для работы с изображениями на Python, представил бенчмарки и рассказал о неочевидных особенностях, которых всегда хватает. В этой статье расшифровка доклада, который поможет вам выбрать библиотеку под свое приложение, и сделать так, чтобы она работало максимально эффективно.


О спикере: Александр Карпинский работает в компании Uploadcare и занимается сервисом быстрой модификации изображений на лету. Участвует в разработке Pillow — популярной библиотеки для работы с изображениями на Python, развивает собственный форк этой библиотеки — Pillow-SIMD, который использует современные инструкции процессоров для наибольшей производительности.

Решение проблемы обнаружения центральной линии сосуда

Время на прочтение9 мин
Охват и читатели9.9K

Суть задачи


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


Одна из задач врача — найти стенозы и оценить, насколько они опасны. Задача же разработчика, как обычно, облегчить работу конечного пользователя. Для этого необходимо построить полную 3D модель стенок сосуда и провести их первичный анализ. Это является большой и интересной задачей, однако, в её основе лежит более простая и известная проблема — построение центральной линии сосуда.
Читать дальше →

iPhone XS: почему это совершенно новая камера

Время на прочтение9 мин
Охват и читатели44K
Отчёт стартапа, занимающегося приложением для улучшения фотосъёмки с iPhone



iPhone XS против iPhone X – изменения в камере на уровне железа

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

Проведя анализ, мы можем выдать более подробный обзор того, что нового можно увидеть в камере iPhone XS, и больше подробностей о её технических возможностях, чем Apple пожелала раскрыть на презентации.

Это именно спецификации железа – притом, что Apple в основном концентрировалась на таких программных улучшениях, как Smart HDR и новый портретный режим.
Читать дальше →

Посылка на луну

Время на прочтение2 мин
Охват и читатели3.5K
Фонд Arch Mission в сотрудничестве с Microsoft, Вашингтонским университетом и компанией Twist Bioscience включит 10 000 изображений, текст 20 книг и другую информацию, закодированную на синтетических молекулах ДНК, в Lunar Library («Лунную библиотеку»).

Любой желающий может предложить свое изображение для кодирования в ДНК и отправки на Луну на сайте.

Читать дальше →