Обновить
87.44

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

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

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

Руководство начинающего программиста графических шейдеров

Время на прочтение8 мин
Охват и читатели50K
Умение писать графические шейдеры открывает перед вами всю мощь современных GPU, которые сегодня уже содержат в себе тысячи ядер, способных выполнять ваш код быстро и параллельно. Программирование шейдеров требует несколько иного взгляда на некоторые вещи, но открывающийся потенциал стоит некоторых затрат времени на его изучение.

Практически каждая современная графическая сцена являет собой результат работы некоторого кода, написанного специально для GPU — от реалистичных эффектов освещения в новейших ААА-играх до 2D-эффектов и симуляции жидкости.

image
Сцена в Minecraft до и после применения нескольких шейдеров.

Цель этой инструкции


Программирование шейдеров иногда кажется загадочной черной магией. Тут и там можно встретить отдельные куски кода шейдеров, которые обещают вам невероятные эффекты и, возможно, вправду способны их обеспечить — но при этом совершенно не объясняют, что именно они делают и как добиваются столь впечатляющих результатов. Данная статья попробует закрыть этот пробел. Я сфокусируюсь на базовых вещах и терминах, касающихся написания и понимания шейдерного кода, так что впоследствии вы сами сможете менять код шейдеров, комбинировать их или писать свои собственные с нуля.
Читать дальше →

Изменение размера изображения с учётом содержимого

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

Изменение размера изображения с учётом содержимого (Content Aware Image Resize), жидкое растяжение (liquid resizing), ретаргетинг (retargeting) или вырезание шва (seam carving) относятся к методу изменения размера изображения, где можно вставлять или удалять швы, или наименее важные пути, для уменьшения или наращивания изображения. Об этой идее я узнал из ролика на YouTube, от Shai Avidan и Ariel Shamir.


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


Для подопытной картинки, я поискал по запросу1 "sample image", и нашел её2:


image

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

Common Bird Census, или биоинформатика в орнитологии. Проект в хорошие руки

Время на прочтение8 мин
Охват и читатели3.7K
Всем доброго времени, друзья.

Введение


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

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

КДПВ:



Кого заинтересовал — прошу под кат.
Читать дальше →

Фильтрация изображения на FPGA

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


Данная статья является продолжением моей предыдущей статьи о детектировании движения на ПЛИС. В ней я хочу рассмотреть реализацию трёх алгоритмов фильтрации изображения, один из которых является наиболее важным при разработке детектора движения.
Читать дальше →

Еще один алгоритм для восстановления смазанных изображений

Время на прочтение5 мин
Охват и читатели19K
Доброго времени суток. Уже столько сказано о методах деконволюции изображений, кажется добавить больше нечего. Однако всегда найдется алгоритм лучше и новее предыдущих. Не так давно был описан итерационный алгоритм, имеющий линейную скорость сходимости при малых затратах памяти, стабильный и хорошо распараллеливаемый. А через некоторое время он был улучшен еще и до квадратичной сходимости. Встречайте: (Fast) Iterative Shrinkage-Thresholding Algorithm.


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

LIFT: Learned Invariant Feature Transform

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

image


Введение


В последние годы вездесущие нейронные сети находят все больше и больше применений в различных областях знаний, вытесняя классические алгоритмы, использовавшиеся многие годы. Не стала исключением и область компьютерного зрения, где год за годом все больше и больше задач решаются при помощи современных нейронных сетей. Настало время написать об еще одном павшем бойце в войне "Традиционное зрение vs. Глубокое Обучение". Долгие годы на задаче поиска локальных особенностей изображений (так называемых ключевых точек) безраздельно властвовал алгоритм SIFT(Scale-invariant Feature Transform), предложеный в далеком 1999 году, многие сложили головы в попытках превзойти его, но удалось это лишь Deep Learning'у. Итак, встречайте, новый алгоритм поиска локальных особенностей — LIFT (Learned Invariant Feature Transform).

Урок photoshop. Как вырезать сложный объект из фона

Время на прочтение1 мин
Охват и читатели13K
На базе создания одной иллюстрации, заснял серию обучающих уроков, надеюсь, некоторым будет в помощь.

Pix2Pix: Как работает генератор кошечек

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

Вы все, наверное, уже видели сверх-реалистичных кошечек, которых можно рисовать вот тут.


image


Давайте разбираться, что же там внутре.

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

Распознавание образов и научное знание

Время на прочтение3 мин
Охват и читатели12K
Последние достижения в распознавании образов впечатляют. Достаточно вспомнить результаты соревнований на базе ImageNet. Сразу же возникает вопрос, что дальше? Как мы можем использовать полученные достижения?

Что-то важное началось, когда Fei-Fei стартовала ImageNet проект. Похоже на революцию.
Читать дальше →

Умная кормушка: Machine Learning, Raspberry Pi, Telegram, немножко магии обучения + инструкция по сборке

Время на прочтение15 мин
Охват и читатели41K
Всё началось с того, что жена захотела повесить кормушку для птиц. Идея мне понравилась, но сразу захотелось оптимизировать. Световой день зимой короткий — сидеть днём и смотреть на кормушку времени нет. Значит нужно больше Computer Vision!



Идея была простой: прилетает птичка — вжуууух — она оказывается на телефоне. Осталось придумать как это сделать и реализовать.
В статье:
  • Запуск Caffe на Raspberry Pi B+ (давно хотел это сделать)
  • Построение системы сбора данных
  • Выбор нейронной сети, оптимизация архитектуры, обучение
  • Оборачивание, выбор и приделывание интерфейса

Все исходники открыты + описан полный порядок развёртывания получившейся конструкции.
Читать дальше →

Технология JPEG: анализ пространства решений

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

Изображения в формате JPEG, помимо собственно файлов с расширением .jpg, можно встретить внутри PDF-файлов и TIFF-файлов.


Стейкхолдеров технологии JPEG можно, наверное, разделить на следующие группы:


  • разработчики фотоаппаратов и сканеров;
  • фотографы (большие фотографии в хорошем разрешении с высокими требованиями к качеству);
  • соцсети и CDN'ы типа imgix, которые раздают залитые фоточки неконтролируемого UGC-происхождения, количества и размера в пережатом виде;
  • вебмастеры, которые управляют умеренным количеством не-UGC картинок с контролируемым качеством;
  • любители отсканированных бумажных книг и прочих исторических источников;

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

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

Нейронные сети: практическое применение

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


Наталия Ефремова погружает публику в специфику практического использования нейросетей. Это — расшифровка доклада Highload++.

Добрый день, меня зовут Наталия Ефремова, и я research scientist в компании NtechLab. Сегодня я буду рассказывать про виды нейронных сетей и их применение.

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

Первая часть моего доклада будет направлена тем, кто незнаком с нейронными сетями. Я занимаюсь непосредственно deep learning. В этой области я работаю более 10 лет. Хотя она появилась чуть меньше, чем десятилетие назад, раньше были некие зачатки нейронных сетей, которые были похожи на систему deep learning.

MWC-2017. Новые технологии для мобильного распознавания (3 видео + ссылки на демо в App store и Google play)

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

На следующей неделе в Барселоне состоится крупнейшее событие в мире мобильной индустрии — международная выставка Mobile World Congress 2017 (с 27 февраля по 2 марта 2017 г.). Команда Smart Engines покажет новые разработки по распознаванию и обработке видеопотока на мобильных устройствах: распознавание ID различных стран, детекция голограмм и динамическое панорамирование документов.



Мы подготовили небольшой обзор новых технологий (+ видео), которые покажем в Барселоне. Добро пожаловать под кат!

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

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

Как я сделал самый быстрый ресайз изображений. Часть 1, общие оптимизации

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

В пилотной части я рассказал о задаче как можно подробнее. Рассказ получился долгим и беспредметным — в нем не было ни одной строчки кода. Но без понимания задачи очень сложно заниматься оптимизацией. Конечно, некоторые техники можно применять, имея на руках только код. Например, кешировать вычисления, сокращать ветвления. Но мне кажется, что некоторые вещи без понимания задачи просто никогда не сделать. Это и отличает человека от оптимизирующего компилятора. Поэтому ручная оптимизация все еще играет огромную роль: у компилятора есть только код, а у человека есть понимание задачи. Компилятор не может принять решение, что значение "4" достаточно случайно, а человек может.



Напомню, что речь пойдет об оптимизации операции ресайза изображения методом сверток в реально существующей библиотеке Pillow. Я буду рассказывать о тех изменениях, что я делал несколько лет назад. Но это не будет повторение слово-в-слово: оптимизации будут описаны в порядке, удобном для повествования. Для этих статей я сделал в репозитории отдельную ветку от версии 2.6.2 — именно с этого момента и будет идти повествование.

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

Создаём нейронную сеть InceptionV3 для распознавания изображений

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


Привет, Хабр! Под катом пойдёт речь о реализации свёрточной нейронной сети архитектуры InceptionV3 с использованием фреймворка Keras. Статью я решил написать после ознакомления с туториалом "Построение мощных моделей классификации с использованием небольшого количества данных". С одобрения автора туториала я немного изменил содержание своей статьи. В отличие от предложенной автором нейронной сети VGG16, мы будем обучать гугловскую глубокую нейронную сеть Inception V3, которая уже предустановлена в Keras.

Вы научитесь:

  1. Импортировать нейронную сеть Inception V3 из библиотеки Keras;
  2. Настраивать сеть: загружать веса, изменять верхнюю часть модели (fc-layers), таким образом, приспосабливая модель под бинарную классификацию;
  3. Проводить тонкую настройку нижнего свёрточного слоя нейронной сети;
  4. Применять аугментацию данных при помощи ImageDataGenerator;
  5. Обучать сеть по частям для экономии ресурсов и времени;
  6. Оценивать работу модели.

При написании статьи я ставил перед собой задачу представить максимально практичный материал, который раскроет некоторые интересные возможности фреймворка Keras.
Читать дальше →

Простая технология классификации распознанных страниц деловых документов на основе метода Template Matching

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

image


Задача классификации хорошо известна: требуется отнести произвольный объект из некоторой выборки к одному или нескольким классам из заранее определенного множества классов.

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

Как я сделал самый быстрый ресайз изображений. Часть 0

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

Здравствуйте, меня зовут Саша, я написал самый быстрый ресайз изображений для современных х86 процессоров. Я так утверждаю, поскольку все остальные библиотеки, которые я сумел найти и протестировать, оказались медленнее. Я занялся этой задачей, когда работал над оптимизацией ресайза картинок на лету в Uploadcare. Мы решили открыть код и в результате появился проект Pillow-SIMD. Любой желающий с легкостью может использовать его в приложении на языке Python.


Любой код выполняется на конкретном железе и хорошей оптимизации можно добиться, только понимая его архитектуру. Всего я планирую выпустить 4 или 5 статей, в которых расскажу как применять знание архитектуры железа для оптимизации реальной задачи. Своим примером я хочу побудить вас оптимизировать другие прикладные задачи. Первые две статьи выйдут в течение недели, остальные — по мере готовности.

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

Детектор движения на основе биоинспирированного модуля OpenCV

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

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

Kaggle и Linux. Digit Recognizer for analysts (для начинающих аналитиков)

Время на прочтение3 мин
Охват и читатели7.5K
Для тех, кто только познает сферу анализа многомерных данных, хочу поделиться опытом, как почувствовать себя мини информационным аналитиком.

Кто еще не знаком с сайтом Kaggle.com (англоязычный), рекомендую не полениться и провести там пару часов для общего ознакомления с данным ресурсом.


На данном сайте уже как 4 года идет конкурс на самый лучший анализатор изображений. Принять участие может каждый. Изначально конкурс был до 31.12.16, но сейчас он продлен до 2019 года.

На Хабре уже был описан способ, как написать программу и поучаствовать, но там далеко не для новичков: «Как начать работу в Kaggle: руководство для новичков в Data Science».

Я решил попробовать свои силы, и при этом не писать программу.
Читать дальше →

Анализ и перевод языка пришельцев с помощью Wolfram Language

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


А что если пришельцы действительно захотят посетить Землю? Будут ли мировые лидеры способствовать изучению их языка? Когда Дени Вильнёв начал работать над научно-фантастическим фильмом “Прибытие”, ему и его команде пришлось обратиться к настоящим ученым Стивену и Кристоферу Вольфрамам, дабы представить подлинную науку на большом экране. Кристоферу была поставлена задача анализа и написания кода для вымышленного нелинейного, визуального языка.
Читать дальше →

Вклад авторов