Все потоки
Поиск
Написать публикацию
Обновить
54.01

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

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

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

Нейронная сеть как предиктор для кодирования изображений формата PNG

Время на прочтение5 мин
Количество просмотров15K
Предлагаю вашему вниманию перевод статьи Neural Network As Predictor For Image Coding (PNG). Блог автора находится здесь.

Тема исследования


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

Сжатие


Классически PNG-компрессия делится на два шага:

  1. Предварительная фильтрация (с использованием предикторов);
  2. Компрессия (с помощью DEFLATE).

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

ComputerVision (Ruby & OpenCV)

Время на прочтение9 мин
Количество просмотров14K

Автор: Людмила Дежкина, Senior Full Stack developer

OpenCV — известная библиотека компьютерного зрения широкого назначения с открытым исходным кодом. Я расскажу, что можно делать с помощью OpenCV, как работает библиотека, как ее использовать на Ruby. Я успела поучаствовать в двух проектах, где она применялась. В обоих случаях мы использовали в конечном варианте не Ruby, но именно Ruby очень удобен на первом этапе, когда требуется создать прототип будущей системы, чтобы просто посмотреть, как OpenCV будет выполнять требуемые задачи. Если все в порядке, после этого приложение пишется с этим же алгоритмом на другом языке. А чтобы использовать OpenCV именно на Ruby, есть соответствующий гем.

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

  • интерпретация изображений;
  • калибровка камеры по эталону;
  • устранение оптических искажений;
  • определение сходства;
  • анализ перемещения объекта;
  • определение формы объекта и слежение за объектом;
  • 3D-реконструкция;
  • сегментация объекта;
  • распознавание жестов.


Сейчас OpenCV используется во многих сферах. Вот несколько интересных примеров:

  1. Google:
    1. Google self-driving car — в беспилотных автомобилях Google OpenCV используется для разработки прототипа распознавания окружающей обстановки;
      (сегодня построенная система основывается преимущественно на LIDAR — в связи с трудностями распознавания при плохом освещении)
    2. Google Glass — в этих очках 3D-реконструкция изображения построена на OpenCV;
    3. Google Mobile;

  2. Робототехника и Arduino;
  3. Промышленное производство — иногда какой-нибудь завод делает на OpenCV систему подсчета деталей или что-то вроде того.

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

Ещё раз про быстрый JPEG на CUDA

Время на прочтение3 мин
Количество просмотров15K
В 2012 году на Хабре уже была моя статья про быстрое сжатие в JPEG на видеокарте. С тех пор прошло уже довольно много времени и мне хотелось бы в общих чертах рассказать про результаты, которые были получены по этой теме. Надеюсь, многим будет интересно узнать, какой уровень производительности можно получить на современных видеокартах NVIDIA при решении практических задач на CUDA.
Читать дальше →

Intel Media SDK 2016 R2 — что нового?

Время на прочтение2 мин
Количество просмотров5.4K
Увидела свет новая версия комплекса средств для разработки ПО кодирования и воспроизведения медиа контента Intel Media SDK 2016. Обновление содержит ряд существенных изменений:

  • Добавлена поддержка процессоров Intel Core седьмого поколения (Kabylake);
  • Улучшена работа Media RAW Accelerator для обеспечения гибкости и производительности;
  • Добавлены новые возможности при кодировании AVC/H.264 для видеоконференций и облачных игровых сервисов;
  • Добавлены новые VPP-фильтры и улучшены существующие;
  • Внедрена новая версия API c улучшениями в управлении памятью и функционалом запроса платформы;
  • Внедрена поддержка Windows Redstone Preview.

Под катом — краткий обзор текущей функциональности Intel Media SDK 2016.
Читать дальше →

Инструменты Intel для создателей видео кодеков

Время на прочтение3 мин
Количество просмотров6.2K
imageНа Хабре в блоге Intel регулярно появляются статьи с описанием технологий и инструментов, созданных в стенах Intel. Многие из них так или иначе связаны с обработкой и анализом видео и изображений. Это такие продукты как, например, Intel Media Server Studio или Intel RealSense. Однако, существует набор инструментов, не так широко представленных в медиа пространстве, но не менее значимых для такой категории разработчиков, как создатели медиа кодеков. Именно этот пробел мы и попытаемся восполнить в данном топике. Речь пойдет про Intel Video Pro Analyzer (Intel VPA) и Intel Stress Bitstreams and Encoder (Intel SBE), а также про те возможности, что скрываются за этими названиями.

Для начала определимся с предметом, сущностью, с которой работают вышеназванные инструменты. Это битовые стримы. Битовый стрим – это то, что получается после того, как отработал видео энкодер. Битовый стрим – это поток битов, отвечающий спецификации того или иного кодека. Если мы заглянем в спецификацию большинства кодеков, то увидим, что этот битстрим представляет из себя ничто иное как набор синтаксических элементов данного кодека различной длины. Это, к примеру, ширина и высота картинки, профиль кодирования, коэффициенты трансформации, различные битовые флаги и т.д. Для стандарта HEVC это сотни синтаксических элементов. После кодирования эти битовые стримы доходят до пользователей, помещенные в различные медиа контейнеры – avi, mp4, mpeg ts и т.д. Но разработчики кодеков в основном работают именно с битовыми стримами. Разработчики ПО, дизайнеры, инженеры – электронщики, тестеры имеют свои инструменты для работы. Почему же разработчикам кодеков их не иметь?
Читать дальше →

Эволюция нейросетей для распознавания изображений в Google: Inception-ResNet

Время на прочтение5 мин
Количество просмотров46K
Буду потихоньку дорассказывать про Inception.
Предыдущая часть здесь — https://habrahabr.ru/post/302242/.
Мы остановились на том, Inception-v3 не выиграл Imagenet Recognition Challange в 2015-м, потому что появились ResNets (Residual Networks).

Что такое вообще ResNets?


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

Система распознавания отображаемых данных объекта

Время на прочтение11 мин
Количество просмотров23K
СИСТЕМА РАСПОЗНАВАНИЯ ОТОБРАЖАЕМЫХ ДАННЫХ ОБЪЕКТА

ВВЕДЕНИЕ
Разработанная система предназначена для бесконтактного распознавания данных объекта выводимых на его дисплей. Система является частью средств для тестирования объекта по данным диалога между объектом и пользователем.
Тестирование систем, имеющих доступ к программным или аппаратным каналам вывода информации пользователя не требует распознавания данных. Однако, когда такое подключение к данным объекта отсутствует, его можно выполнить при помощи бесконтактной системы распознавания, которая может обеспечить длительное наблюдение за состоянием объекта в автоматическом режиме.
В этой работе обсуждаются средства распознавания МатЛАБ без использования нейронных сетей, эффективность которых, в значительной мере, зависит от результатов обучения.
Особенности разработанной системы показаны на примере распознавания данных дайв-компьютера компании Open Safety Equipment Ltd.
Статья содержит следующие разделы.
• Библиотечные функции обработки изображений МатЛАБ
• Характеристики используемой веб камеры, подключение камеры к среде МатЛАБ, настройка режимов камеры.
• Распознавание символов с использованием корреляционных функций.
• Интерфейс пользователя системы распознавания и результаты распознавания

БИБЛИОТЕЧНЫЕ ФУНКЦИИ ОБРАБОТКИ ИЗОБРАЖЕНИЙ МАТЛАБ
MatLAB имеет библиотеки функций для работы с графическими файлами и видеосигналами. Ниже даны используемые варианты библиотечных функций.
Считывание изображения графического файла
>> pct = imread('DC_OS.jpg');


Рис. 1. RGB изображение [1] JPG файла в формате <196x259x3 uint8>
Читать дальше →

Повышение производительности мультимедиа приложений с помощью аппаратного ускорения

Время на прочтение7 мин
Количество просмотров13K

Архитектура процессоров Intel становится все более ориентированной на ГП, что открывает удивительные возможности для резкого повышения производительности просто за счет разгрузки обработки мультимедиа с ЦП на ГП. Существует немало инструментов, доступных разработчикам для повышения производительности мультимедиа приложений. В числе этих инструментов есть бесплатные и простые в использовании.
В этой публикации вы найдете:
  • Обзор вычислительных архитектур и текущие возможности ГП Intel
  • Реализацию аппаратного ускорения с помощью FFmpeg
  • Реализацию аппаратного ускорения с помощью Intel Media SDK или аналогичного компонента Intel Media Server Studio (в зависимости от целевой платформы)
Читать дальше →

Эволюция нейросетей для распознавания изображений в Google: Inception-v3

Время на прочтение4 мин
Количество просмотров41K

Продолжаю рассказывать про жизнь Inception architecture — архитеткуры Гугла для convnets.
(первая часть — вот тут)
Итак, проходит год, мужики публикуют успехи развития со времени GoogLeNet.
Вот страшная картинка как выглядит финальная сеть:
image
Что же за ужас там происходит?

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

Рисуйте, рисуйте, рисуйте: скоро выйдет Inkscape 0.92

Время на прочтение3 мин
Количество просмотров14K
Статья про предыдущую версию Inkscape была очень тепло принята, что в связи с ближайшим выходом новой версии Inkscape 0.92 сподвигло меня описать ключевые особенности грядущего релиза. Сам релиз состоится в ближайшее время — во всяком случае пререлиз под *.nix уже тут.

Немного истории: пользователь ДевианАрт flutterguy317 форкнул Inkscape и пытался построить свой редактор Ponyscape с дружбой и магией до 4 февраля 2013 г., после чего проект был заморожен навсегда. И вот теперь, в версии Inkscape 0.92, появилась импортированная из Ponyscape иерархия документа. В связи с этим в иллюстрировании статьи будет немного арта из сообщества Ponyscape Vectors а так же много дружбы и магии.


Иллюстрация основана на работах flutterguy317 «Ponyscape» и Ambassad0r «No Time To Explain»
Читать дальше →

Structure from motion

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

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

Pillow-SIMD

Время на прочтение5 мин
Количество просмотров14K

Ускорение операций в 2.5 раза по сравнению с Pillow и в 10 по сравнению с ImageMagick



Pillow-SIMD — это «форк-последователь» библиотеки работы с изображениями Pillow (которая сама является форком библиотеки PIL, ныне покойной). «Последователь» означает, что проект не становится самостоятельным, а будет обновляться вместе с Pillow и иметь ту же нумерацию версий, только с суффиксом. Я надеюсь более-менее оперативно выпускать версии Pillow-SIMD сразу после выхода версий Pillow.


Почему SIMD


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


  1. Можно использовать более хорошие алгоритмы, которые дают такой же результат.
  2. Можно сделать более быструю реализацию существующего алгоритма.
  3. Можно подключить больше вычислительных ресурсов для решения той же задачи: дополнительные ядра CPU, GPU.
Читать дальше →

Совсем не нейронные сети

Время на прочтение9 мин
Количество просмотров49K


Недавно ZlodeiBaal писал о достижениях в сверточных нейронных сетях (CNN) (и, кстати, тут же успешно настроил и обучил сеть для поиска области автомобильного номера).
А я хочу рассказать про принципиально иную и, наверное, более сложную модель, которую сейчас развивает Алексей Редозубов (@AlexeyR), и про то, как мы, конечно проигнорировав некоторые важные элементы, и ее применили для распознавания автомобильных регистрационных знаков!

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

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

Разведка и инженерное дело: 3D-модели зданий, развязок и карьеров по фото

Время на прочтение6 мин
Количество просмотров36K


В какой-то момент у нас на пороге появился человек в штатском с целым жёстким диском фотографий одного инженерного объекта (назовём его для определённости путепроводом через железную дорогу). Задача сводилась к традиционному «когда-то давно строили, а потом потеряли исходную документацию», и нужно восстановить проект с погрешностью в сантиметр-два.

Чтобы понять, насколько хорошую точность можно получить в архитектуре и инженерных изысканиях подобного рода, мы решили отснять свой 11-этажный офис и создать 3D-модель. В конце работы мы получили модель здания и замерили по ней пару окон. Потом пошли и измерили эти же окна в реальном мире — среднее расхождение было в пределах сантиметра, максимум — двух.

Кстати, в чём-то похожая задача была у одного из наших партнёров — нужно было снять карьер площадью 470 Га и:
  1. Определить объёмы выработки породы.
  2. Подсчитать объём склада продукции.
  3. Получить поверхность для уточнения уровня гидроотвала.
  4. Получить 3D-модель всей территории.



Часть маршрутов

Её решили с помощью беспилотника, длинных гвоздей, GPS-приёмника и двух пачек пластиковых тарелок за 5 рублей за штуку.
Читать дальше →

Распознаем лица на фото с помощью Python и OpenCV

Время на прочтение6 мин
Количество просмотров169K

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

Что нам понадобится:
• Установленный Python 2.7 с библиотеками NumPy и PIL
• OpenCV 2-й версии

Здесь ссылка на материал по установке всех необходимых компонентов. Установка всего необходимого не составит труда.
Читать дальше →

Эволюция нейросетей для распознавания изображений в Google: GoogLeNet

Время на прочтение3 мин
Количество просмотров42K

У меня тут синхронизируется VM надолго, поэтому есть время рассказать про то, что я недавно читал.
Например, про GoogLeNet.
GoogLeNet — это первая инкарнация так называемой Inception architecture, которая референс всем понятно на что:


image
(кстати, ссылка на него идет первой в списке референсов статьи, чуваки жгут)


Она выиграла ImageNet recognition challenge в 2014-м году с результатом 6.67% top 5 error. Напомню, top 5 error — метрика, в которой алгоритм может выдать 5 вариантов класса картинки и ошибка засчитывается, если среди всех этих вариантов нет правильного. Всего в тестовом датасете 150K картинок и 1000 категорий, то есть задача крайне нетривиальна.


Чтобы понять зачем, как и почему устроен GoogLeNet, как обычно, немного контекста.

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

Готическое распознавание: как мы помогали оцифровывать Национальную библиотеку Латвии

Время на прочтение4 мин
Количество просмотров13K


Сегодня мы хотим рассказать, как оцифровывали издания Национальной библиотеки Латвии. Если вы следите за нашим блогом, вы наверняка читали, как наши технологии помогают оцифровать литературное наследие разных библиотек, а также статьи, посвященные отдельным проектам — оцифровке в Сахалинской библиотеке, королевском ботаническом саду Эдинбурга и библиотеке Хартли. Сегодня история о том, как это было в Риге. Итак, Национальная библиотека Латвии – крупнейшая в стране, основана в 1919 году, обладает 4,5-миллионным собранием книг и документов, в том числе на латышском языке в уникальном готическом написании.
Читать дальше →

«Таких моментов я не то что не помню, а даже не припоминаю!»

Время на прочтение5 мин
Количество просмотров5.7K
Как мы написали сервис, который принесет демократию в мир спорта, пива и телевизора



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

Комментирование у нас можно назвать национальным видом спорта. Неспроста среди героев «Нашей Раши» появился Сергей Юрьевич Беляков, житель Таганрога, который очень любит разговаривать с телевизором — тоже, своего рода, «виртуальный комментатор». Вспомните также Ивангая — видеоблоггера родом из украинского села, который дурачится перед камерой и эмоционально комментирует геймплей. Число просмотров его роликов перевалило 1,5 млрд!

Мы верим, спорт будет всегда (и киберспорт тоже), комментаторов-самородков множество, и сервисы для них — очень перспективная штука.
Читать дальше →

Сжатие и передача потокового видео по TCP с помощью OpenCV

Время на прочтение3 мин
Количество просмотров16K
По работе я занимаюсь разработкой алгоритмов обработки изображений и в частности алгоритмами автоматического слежения за объектами на видео для специального применения. Недавно понадобилось сделать модель алгоритма, управляемую с удаленного компьютера для отладки логики работы в сложной системе. Раньше такая задача не стояла, т.к. все алгоритмы реализовывались в итоге на FPGA. Давно работаю с OpenCV и, потерев руки, подошел к написанию программы. Но энтузиазм быстро погас, когда столкнулся непосредственно с передачей видео по сети.

Задача заключалась в следующем:

1. Написать программу сервер, которая загружает видео из файла, сжимает в JPEG и передает по протоколу TCP программе клиенту.
2. Написать программу клиент, которая принимает видео по TCP, декодирует и отображает.
Читать дальше →

Давайте соберем клеща-мозгоеда под микроскопом или focus-stacking фотографий из консоли

Время на прочтение10 мин
Количество просмотров26K


Надеюсь, данный пост не станет причиной ночных кошмаров у особо чувствительных хабрачитателей. В этом посте я постараюсь рассказать о простом способе увеличения ГРИП. Это весьма актуальная проблема для тех, кто работает с микроскопом и занимается макрофотографией. Суть проблемы в том, что на больших увеличениях размытие удаленных от точки фокуса предметов становится большой проблемой. Это в традиционной портретной съемке размытие фона позволяет подчеркнуть объект. В научной микрофотографии это чаще всего негативный эффект. Радует, что есть методика focus-stacking, которая позволяет сшить в единую резкую картинку стопку фотографий с разной точкой фокусировки. Но хватит рассуждать об абстрактном. Внесите клеща в студию!
Читать дальше →

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