Обновить
87.64

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

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

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

Как оптимизировать игру с помощью полигональных атласов

Время на прочтение5 мин
Охват и читатели31K
Как всем известно, жизнь разработчика мобильных игр непроста. Он должен найти свой путь на очень узкой дорожке. С одной ее стороны — требования гейм-дизайнеров, уверенно устремляющиеся к бесконечности. Больше функционала, больше красивой графики, больше эффектов, больше анимаций, больше звуков. А с другой стороны — ограниченные ресурсы мобильного устройства. И раньше всего, как правило, заканчивается оперативная память.

Например, iPad 2 — всего в нем 512 Мб RAM. Однако приложению доступно только примерно 275 Мб. Когда занимаемая приложением память будет приближаться к этой границе, операционная система пришлет так называемое «Memory warning» — мягко, но настойчиво предложит освободить память. И если лимит все же будет превышен, операционная система остановит приложение. Пользователь будет думать, что ваша игра упала и побежит писать гневное письмо в саппорт.



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

TerraServer бесполезный сервис или упущенная возможность?

Время на прочтение6 мин
Охват и читатели19K
Еще до Google Maps в 1998 году у пользователей сети Интернет была возможность посетить другой город, страну или континент, не выходя из дома. Это был первый крупнейший в мире онлайн атлас, который сочетал в себе как спутниковые, так и топографические снимки Земли. Проект носил название TerraServer и содержал в себе более 8 ТБ данных с изображениями от Геологической службы Соединенных Штатов (USGS) и СПИН-2 (SPIN-2), которые обрабатывались базой данных SQL. У данного проекта была всего одна цель и она заключалась вовсе не в том, чтобы помогать пользователям сидя перед монитором «перелетать» через горизонт. Нет, задачей TerraServer была демонстрация возможностей Microsoft: программное обеспечение компании могло обрабатывать самую большую базу данных без каких-либо проблем.

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

Переход от режима Hand в Intel RealSense SDK R4 (v6.0) к режиму Cursor в Intel RealSense SDK 2016 R1

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

После появления камеры Intel RealSense SR300 и пакета Intel RealSense SDK 2016 R1 появился новый режим взаимодействия с помощью жестов — режим указателя (Cursor), доступный только при использовании камеры SR300. В этом учебном руководстве описываются изменения кода, необходимые для задействования этой новой функциональности.
Читать дальше →

Один пиксель вместо тысячи слов

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


Пару месяцев назад, отдыхая от реализации новых возможностей вроде q_auto и g_auto, я прикалывался в нашем командном чате по поводу того, как различные форматы хранения изображений будут сжимать однопиксельную картинку. В ответ Orly, редактор блога, попросила меня написать пост об этом. Я сказал: «Конечно, почему бы и нет. Но это будет очень короткий пост. Ведь что можно рассказать про один пиксель».

Похоже, я был сильно неправ.

Что можно сделать с одним пикселем?


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

В отзывчивом веб-дизайне однопиксельные картинки используются как временные заглушки в ожидании загрузки страницы. Большинство браузеров не поддерживают HTTP Client Hints, поэтому некоторые варианты с отзывчивыми изображениями ждут полной загрузки страницы, чтобы подсчитать актуальный размер картинок, а затем заменяют однопиксельные картинки нужными изображениями при помощи JavaScript.


Сломанная картинка
Читать дальше →

Оптимизация обработки изображений с использованием GPU на примере Медианной фильтрации

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

Введение


Издавна графические ускорители (ГПУ) были созданы для обработки изображения и видео. В какой то момент ГПУ стали использоваться для вычислений общего назначения. Но развитие центральных процессоров тоже не стояло на месте: компания Intel ведет активные разработки в сторону развития векторных расширений (AVX256, AVX512, AVX1024). В итоге, появляются разные процессоры — Core, Xeon, Xeon Phi. Обработку изображений можно отнести к такому классу алгоритмов, которые легко векторизуются.
Но как показывает практика, несмотря на довольно высокий уровень компиляторов и технологичность центральных процессоров и сопроцессоров Xeon Phi, сделать обработку изображения с использованием векторных инструкций не так просто, так как современные компиляторы плохо справляются с автоматической векторизацией, а использовать векторные intrinsic функции достаточно трудоемко. Также возникает вопрос о совмещении векторизованного вручную кода и скалярных участков.

Стоит ли использовать GPU, вместо AVX? ответ далее

Свободный формат Lepton сжимает файлы JPEG на 22% без потерь

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

Арифметическое кодирование по образцу Pied Piper



Предсказание коэффициентов дискретного косинусного преобразования в соседних 64-битных блоках JPEG

Компания Dropbox опубликовала исходный код нового формата потокового сжатия изображений Lepton (репозиторий на Github). Исходный код Lepton опубликован под свободной лицензией Apache. Всех желающих приглашают оптимизировать новый свободный алгоритм.

Lepton демонстрирует средний коэффициент компрессии 22% на файлах JPEG, предсказывая коэффициенты ДКП в JPEG-блоках и учитывая эти коэффициенты в качестве контекста для арифметического кодера, то есть кодируя дельту коэффициентов в соседних блоках.
Читать дальше →

Вышел GIMP 2.9.4

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

Отчёт о новых функциях свободного графического редактора


Мы только что выпустили вторую dev-версию GIMP в серии 2.9.x, ставшую результатом полугода работы. GIMP 2.9.4 представляет собой мощное обновление:

  • обновленный интерфейс;
  • серьёзные улучшения в управлении цветом;
  • готовый к использованию инструмент MyPaint Brush;
  • симметричное рисование;
  • сплит-превью для фильтров на GEGL.

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

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

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

Время на прочтение5 мин
Охват и читатели16K
Новейшая история денежного обращения в Бразилии – это череда деноминаций, первая из которых была проведена в 1942 году, а последняя – в 1994 году. К 1994 году национальная валюта Бразилии – крузейро – была настолько слабой, что в магазинах цены назначались в условных единицах, рядом с цифрами писали слово “real” – «настоящая» цена. В 1994 от лишних нулей решили избавиться, а слово “real”, к которому все привыкли, стало названием новой валюты – реал (впрочем, точно так же называлась денежная единица Бразилии до 1942 года).

Сегодня мы расскажем, как один из наших продуктов – ABBYY FineReader Engine помог крупнейшему частному бразильскому банку справиться с последствиями деноминации. Не представляете, как такое может быть? Добро пожаловать под кат.
Читать дальше →

Распознавание паспорта РФ на платформе Эльбрус. Часть 1

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

В этой статье мы продолжим рассказывать о похождениях нашей программы распознавания паспорта: теперь паспорт отправится на Эльбрус!



Итак, что же мы знаем про архитектуру Эльбрус?


Эльбрус — высокопроизводительная и энергоэффективная архитектура процессоров, отличающаяся высокой безопасностью и надежностью. Современные процессоры архитектуры Эльбрус могут применяться в качестве серверов, настольных компьютеров и даже встраиваемых вычислителей. Они способны удовлетворить повышенным требованиям по информационной безопасности, рабочему диапазону температур и длительности жизненного цикла продукции. Процессоры архитектуры Эльбрус, как говорят нам публикации МЦСТ [1, 2], предназначены для решения задач обработки сигналов, математического моделирования, научных расчетов, а также других задач с повышенными требованиями к вычислительной мощности.


Мы в Smart Engines попробовали убедиться, правда ли производительности Эльбруса достаточно, чтобы реализовать распознавание паспорта без значительных потерь в скорости работы.

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

Об относительной яркости, или насколько живучим бывает легаси

Время на прочтение6 мин
Охват и читатели43K
Я уверен, что многим программистам знакома формула:

Y = 0.299 R + 0.587 G + 0.114 B

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

Вычисляет она относительную яркость цвета (relative luminance или в некоторых контекстах luma; не путать с lightness и brightness) и широко применяется для преобразования цветного RGB-изображения в Grayscale и связанных с этим задач.

Формула растиражирована и процитирована в тысячах статей, форумных обсуждений и ответов на StackOverflow… Но дело в том, что единственно-правильное её место — на свалке истории. Использовать её нельзя. Однако же используют.

Но почему нельзя? И откуда же взялись именно такие коэффициенты?
Мини-экскурс в историю

Дополненная реальность и социализация людей на новом уровне

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


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

Сравнение камер переднего обзора Intel RealSense SR300 и F200

Время на прочтение7 мин
Охват и читатели12K
Камера SR300 — камера переднего обзора Intel RealSense второго поколения, поддерживающая операционную систему Microsoft Windows* 10. Как и в камере F200, в модели SR300 используется технология цветового кодирования глубины для создания высококачественного трехмерного видеопотока глубины на небольшом расстоянии. Камера SR300 включает источник инфракрасной (ИК) подсветки, высокоскоростную ИК-камеру с разрешением VGA и обычную цветную двухмегапиксельную камеру со встроенным цифровым процессором изображений.


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

Нейронная сеть как предиктор для кодирования изображений формата 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 мин
Охват и читатели16K
В 2012 году на Хабре уже была моя статья про быстрое сжатие в JPEG на видеокарте. С тех пор прошло уже довольно много времени и мне хотелось бы в общих чертах рассказать про результаты, которые были получены по этой теме. Надеюсь, многим будет интересно узнать, какой уровень производительности можно получить на современных видеокартах NVIDIA при решении практических задач на CUDA.
Читать дальше →

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

Время на прочтение2 мин
Охват и читатели5.5K
Увидела свет новая версия комплекса средств для разработки ПО кодирования и воспроизведения медиа контента 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.3K
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 мин
Охват и читатели47K
Буду потихоньку дорассказывать про Inception.
Предыдущая часть здесь — https://habrahabr.ru/post/302242/.
Мы остановились на том, Inception-v3 не выиграл Imagenet Recognition Challange в 2015-м, потому что появились ResNets (Residual Networks).

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


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

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

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

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

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


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

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

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

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

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