Обновить
128K+

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

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

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

Картинки как коробки — что внутри? Доклад в Яндексе

Время на прочтение19 мин
Охват и читатели12K
Картинки и видео — это «чёрные ящики», внутри которых лежит много интересного и непонятного. Но можно заглянуть внутрь некоторых форматов, всё там поменять и посмотреть, что из этого получится.

Полина Гуртовая из компании «Злые марсиане» выступила на нашей конференции «Я  Фронтенд» в феврале. При помощи эксперимента Полина разобралась, как превращать простые картинки в «эффективные изображения» с метриками. Инструменты, которые могут делать это за нас, Полина рассмотрела ближе к концу доклада. Получился большой экскурс во внутренности и принципы работы разных форматов: от PNG и JPEG до AV1 и экзотики.


— Всем привет. Меня зовут Полина, я фронт в компании «Злые марсиане».
Читать дальше →

Вычисление центра масс за O(1) с помощью интегральных изображений

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


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

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

В этой статье я расскажу:

  • Что за задача такая, о которой идет речь;
  • Подробнее об интегральных изображениях;
  • Как использовать интегральные изображения для приближенного решения гравитационной задачи N тел применительно к дискретному полю импульсов (масс-скоростей);
  • Какой недостаток имеет это решение и как его исправить;
  • И, наконец, как за константное время вычислить центр масс для произвольного региона.
Читать дальше →

Рубрика «Читаем статьи за вас». Январь — Февраль 2020

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


Привет, Хабр! Продолжаем публиковать рецензии на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество!


Представлены обзоры 11 статей по Computer Vision, Natural Language Processing, Reinforcement learning и другим темам.

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

Как мы создавали галерею нейросетевого искусства и почему не даём копировать картины

Время на прочтение3 мин
Охват и читатели12K
Мы сегодня запустили виртуальную галерею, где все картины созданы нейронной сетью. Её особенность в том, что каждую картину в полном размере может забрать себе только один человек. Почти как в настоящей галерее.

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


На чем тестировать алгоритмы распознавания и обработки документов, удостоверяющих личность?

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

Как известно, мы в Smart Engines занимаемся системами компьютерного зрения и распознавания документов, а также научными исследованиями в этой области. В течение нескольких лет в фокусе нашего внимания находились системы распознавания документов, удостоверяющих личность. Одной из критичных проблем, возникающих при подготовке научных статей, является отсутствие открытых датасетов, на которых можно демонстрировать сообществу разработанные нами алгоритмы и подходы. В связи с этим два года назад мы начали работу над серией открытых пакетов изображений и видеоклипов ID-документов, предназначенных, главным образом, для исследователей, и о результатах этой работы хотели бы рассказать вам под катом.


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

Ваша первая нейронная сеть на графическом процессоре (GPU). Руководство для начинающих

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

В этой статье я расскажу как за 30 минут настроить среду для машинного обучения, создать нейронную сеть для распознавания изображений a потом запустить ту же сеть на графическом процессоре (GPU).

Для начала определим что такое нейронная сеть.

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

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

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

Оборудование


Сначала разберемся с оборудованием. Нам необходим сервер с установленной на нем операционной системой Linux. Оборудование для работы систем машинного обучения требуется достаточно мощное и как следствие дорогое. Тем, у кого нет под рукой хорошей машины, рекомендую обратить внимание на предложение облачных провайдеров. Необходимый сервер можно получить в аренду быстро и платить только за время использования.
Читать дальше →

Трансформация цвета: поиски в прореженном столе

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

Это обзор функциональности, появившейся в Pillow 5.2: применение трехмерных таблиц поиска (3D lookup tables, 3D LUT) для трансформации цвета. Эта техника широко распространена в обработке видео и 3D-играх, однако мало графических библиотек могли похвастаться 3D LUT трансформациями до этого.


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


from PIL import Image, ImageFilter

def washout(r, g, b):
    h, s, v = _rgb_to_hsv(r, g, b)
    if 0.3 < h < 0.7:
        s = 0
    return _hsv_to_rgb(h, s, v)

im = Image.open('./Puffins.jpg')
im = im.filter(ImageFilter.Color3DLUT.generate(17, washout))

Функция, полностью написанная на Пайтоне, применяется к 16,6-мегапиксельной картинке за 75ms.



Работа с изображениями и так ресурсоемка, поэтому я обожаю алгоритмы, которые позволяют убрать сложность от входных параметров. Пять лет назад я реализовал в Pillow гауссово размытие, работающее за одинаковое время для любого радиуса. Не так давно я рассказал как можно уменьшить изображение за константное время с минимальной потерей качества. Сегодня я покажу для каких задач можно применять 3D LUT, какие у нее ограничения и похвастаюсь достигнутой производительностью в Pillow-SIMD.

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

Как мы забрали у человека сито и помогли мельнице

Время на прочтение7 мин
Охват и читатели7.3K
Пользу от ИИ (и всех связанных с ним технологий) сложно переоценить. Правильно обученные нейросети способны и подогреть интерес к самой технологии, например, создавая маски для социальных сетей или сгенерированные песни в стилистике любимых исполнителей, и показать практическую пользу в реальных делах — от предсказания событий на производстве до поиска пропавших людей.

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



В 1949 году советский пилот-геологоразведчик Михаил Сургутанов пролетал над одной из территорий Казахстана (урочище Сарбай) и, взглянув на компас, заметил, что стрелка стала игнорировать Север и зажила своей жизнью. Да, как в кино при обнаружении каких-то магнитных аномалий.
Читать дальше →

Охота за полярным сиянием: слабые суббури

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели26K
image

Не первый год занимаюсь фотографией в жанре ночной пейзаж, живу в Санкт-Петербурге. В темноте все выглядит более таинственно и необычно, часто на моих фотографиях можно встретить северные сияния, не смотря на то, что съемки бывают круглый год, и зимой, и летом. Многим становится интересно, каким образом фотографии из Ленинградской области пестрят яркими небесными огнями, многие думают, что я рисую их сама, многие считают, что умею пользоваться фотошопом, одно другому конечно никак не мешает, но больше всего мне хочется поделиться отличным хобби, в котором сочетается куча разных умений.

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

Использование библиотеки OpenCV для распознавания эллиптических дуг на 2D сечениях 3D облаков точек

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

В связи с все более широким распространением доступных лазерных сканеров (лидаров), способных получать 3D облака точек (3dОТ) и все более широким применением этой технологии в различных областях (от машиностроения до безопасности, от нефтяной промышленности до архитектуры), оживился интерес к алгоритмам обработки облаков точек.

Одно из востребованных применений 3dОТ в промышленности — это создание конструкторской документации на только возводимое, старое или переделанное оборудование, которое обычно представляет из себя трубопроводы и другие конструкции цилиндрической геометрии.

Для детектирования геометрических примитивов в 3dОТ обычно применяются специализированные 3D библиотеки, например Microsoft PCL. У подхода с использованием готовых библиотек наряду с достоинствами есть и недостатки. Например, трудно включить их в уже существующие кадовские схемы обработки, которые обычно имеют 2D размерность.

Рассмотрим, как можно было бы обрабатывать 3dОТ, например насосной станции, начав с 2D сечений и используя весь арсенал 2D обработки, который есть в надежных и оптимизированных библиотеках обработки изображений, например OpenCV.


Рисунок 1. 3D ОТ модель насосной станции

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

Как DLP-система и модуль OCR помешали сотрудникам подделывать сканы паспортов

Время на прочтение6 мин
Охват и читатели12K
Помните историю с утечкой паспортных данных у 500 млн клиентов сети отелей Marriott? Данные могли оказаться у злоумышленников, и гостиничная группа даже обещала оплатить пострадавшим постояльцам расходы на смену паспортов. Подобных случаев происходит немало. Понятно, почему: на сегодняшний день более 50% компаний хранит больше половины своих документов в виде сканов, скриншотов, PDF. Еще три года назад таких документов в организациях было не более трети. По данным нового исследования «СёрчИнформ», 51% компаний отметили, что количество документов в формате изображений увеличилось.

В последнее время чаще всего утечкам в виде изображений подвергаются юридически значимые документы, например, договоры. На втором месте в «группе риска» — финансовые документы: бухгалтерские балансы, отчеты о прибылях и убытках и так далее. Потеря таких данных не только грозит репутационными рисками для компании, но и может привести к срыву сделок. Чтобы уберечь важные данные от посторонних и злоумышленников, в информационные системы компаний устанавливают DLP – системы предотвращения утечек информации.

Мы уже рассказывали на Хабре о том, как работает «СёрчИнформ Контур информационной безопасности» (КИБ) и модуль OCR на базе технологического продукта ABBYY FineReader Engine. Теперь вместе с сотрудниками отдела внедрения продуктов «СёрчИнформ» мы собрали четыре истории об утечках разных видов данных через корпоративные и личные почтовые ящики. И разобрались в том, как их выявить с помощью DLP-системы с модулем OCR.



В одной туристической компании сотрудник пересылал на личную почту файлы в графическом формате.
Читать дальше →

Медицинская маска больше не спасает от распознавания лица

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


Если вы думали, что медицинская маска обманет камеры распознавания лиц, то для вас есть две плохие новости. Во-первых, исследователям удалось значительно усовершенствовать системы машинного зрения, так что теперь распознавание достаточно надёжно выполняется по половине лица или по области глаз (по половине лица уровень успешного распознавания составляет 90%).

Вторая плохая новость, что вспышка коронавируса подтолкнула китайских производителей SenseTime, FaceGo, Minivision внедрять технологии распознавания частично закрытых лиц в коммерческие модели видеокамер. Из-за вспышки Covid-19 много граждан стали выходить на улицы в масках — поэтому приходится модернизировать системы видеонаблюдения.
Читать дальше →

Нужен ли нам такой формат?.. и немного статистики

Время на прочтение5 мин
Охват и читатели3.4K
Несколько месяцев в свободное время занимался разработкой нового формата изображений.

Акценты сделаны на:
1. Сжатие без потерь
2. Хорошая векторизация одноцветных объектов
3. Более быстрое ДЕкодирование, чем у других форматов
4. Несколько шаблонов кодирования при едином шаблоне декодирования в зависимости от того, что нужно 1, 2, 3 или что-то среднее
5. Сжатие любых векторных изображений (с потерями, но можно указать до какого масштаба необходима абсолютная точность)
6. Стилизация (главным образом для придания уникальности изображению + видеоэффекты и т.д.)
7. Также возможна прогрессивность (отображение по ходу загрузки) при установке неполного сжатия или в 27% случаев
8. Имитация рисования изображения
9. Добавление возможностей с обратной совместимостью


А вот подробная презентация формата:


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

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

Smart Engines вошёл в тройку лидеров в рейтинге FWCI среди базовых организаций Физтеха

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


Сегодня публикуем краткую заметку, которая, честно признаемся, поразила нас прямо в сердце, тронула до самой глубины души! По результатам 2019 года Smart Engines занимает 3 место среди базовых организаций Физтеха по числу публикаций и их средней нормализованной цитируемости — индексу FWCI — с показателем 3,3. Осознаете мощь?
Читать дальше →

Как объяснить роботу свою точку зрения

Время на прочтение5 мин
Охват и читатели4.4K
Когда-нибудь задумывались зачем сегодня нужны роботы? С детства мне казалось, что роботы стоят где-то на современных фабриках, что это где-то далеко от нас. Или в фантастике.
Но уже нет. Роботы на сегодня — это автоматизация любого рутинного процесса. Их могут ставить и на фермах, и в автомастерских.


Если раньше цена такой автоматизации была огромной, то сейчас она падает. Становятся доступны более сложные технологические манипуляции. Роборуки — это по сути такой универсальный манипулятор, который не нужно проектировать под каждую задачу, => снижение цены внедрения, ускорение внедрения (хотя роборука может быть дороже чем кусок конвейера, который делает аналогичную операцию).

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

Видео с облачным детектором объектов на Raspberry Pi

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

Пролог


По сети сейчас гуляет видео — как автопилот Теслы видит дорогу.

У меня давно чесались руки транслировать видео, обогащенное детектором, да и в реальном времени.



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

Измерение расстояния до объектов с помощью RealSense D435

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

Результаты обнаружения объекта могут быть дополнены информацией о том, насколько далеко расположен данный объект. Задачу измерения расстояния можно решить с помощью камеры глубины Intel RealSense D435, измеряющей глубину в каждой точке.

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

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

Отложенный Alpha blending

Время на прочтение6 мин
Охват и читатели12K
В этой статье я хочу поговорить о методах смешивания растеризуемой геометрии. Классические модели смешивания полупрозрачных объектов — Alpha, Additive, Multiplicative — объединяет один и тот же принцип отрисовки: последовательно рисуем один примитив за другим, смешивая получаемые на выходе фрагментного шейдера пиксели с тем, что находится в текущем буфере. Каждый новый примитив обновляет область буфера, в которую рисуется; в случае с альфа-смешиванием объекты, которые находятся выше, заслоняют ранее отрисованные. Но что если хочется что-то сделать с группой объектов, рисуемых поверх сцены, — например, обрезать их по маске или подсветить? Тут сразу в голову приходят два решения: или внести изменения в их материал (т.е. изменить шейдер, расширить набор текстур), к примеру, добавив проекцию еще одной текстуры, которая будет отвечать за маску прозрачности. Однако если у нас много разношерстных объектов, менять каждый уникальный материал неудобно и чревато ошибками. Второй вариант — нарисовать все интересующие нас объекты в отдельный полноэкранный таргет и рисовать уже его на финальную сцену. Тут мы можем сделать с его содержимым все, что захотим, но это требует выделения лишней памяти и, что самое неприятное, — переключения рендер таргетов. Это не самая «дешевая» операция на мобильных устройствах, которую будет необходимо выполнить дважды. А если захочется вот так работать с несколькими слоями?


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

Как заработать на распознавании эмоций

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

Расскажу о сабже на примере одного из проектов, которым занимался в 2019-м году, когда я ещё работал в одной известной онлайн-школе английского языка.


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


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

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

Рисуем муравьями: процедурные изображения при помощи алгоритмов оптимизации муравьиной колонии

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

Почему мне захотелось рисовать муравьями


Я хотела создать произведение искусства, исследующее сложность проектирования программного обеспечения. Когда я представляю огромную кодовую базу, то думаю о её самостоятельно возникающей сложности и о её переплетённых, взаимосвязанных частях. Её общая форма, если так можно выразиться, возникает из действий множества отдельных личностей.

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