Рубрика «обработка изображений» - 76

В продолжение серии статей о веб-разработке на Java на платформе Google App Engine / Google Cloud Endpoints рассмотрим сервис для облачного хранения файлов Google Cloud Storage.

В целом схема выглядит следующим образом: сервер на бэкэнде генерирует временную ссылку (адрес) для передачи файла в определенный контейнер (bucket) нашего хранилища, которая на фронтэнде вставляется в форму для передачи файла. Пользователь на указанный адрес посылает POST HTTP-request с одним или несколькими файлами в теле запроса, файлы принимаются и размещаются в хранилище, и HTTP-request вместе с данными о размещенных файлах принимается сервлетом, который обработав информацию о размещенных файлах, возвращает пользователю HTTP response: JSON или text/html, или в общем что пожелаем.

Файлы сохраняются в хранилище, у сервлета есть в распоряжении ключ который дает возможность доступа к файлу, в частности можно выдать файл пользователю с помощью другого сервлета либо создать «статичную» ссылку (https://).
Доступ к хранилищу также доступен через веб-интерфейс, и из командной строки с помощью утилиты gsutil.
Читать полностью »

Постановка задачи компьютерного зрения - 1
Последние лет восемь я активно занимаюсь задачами, связанными с распознаванием образов, компьютерным зрением, машинным обучением. Получилось накопить достаточно большой багаж опыта и проектов (что-то своё, что-то в ранге штатного программиста, что-то под заказ). К тому же, с тех пор, как я написал пару статей на Хабре, со мной часто связываются читатели, просят помочь с их задачей, посоветовать что-то. Так что достаточно часто натыкаюсь на совершенно непредсказуемые применения CV алгоритмов.
Но, чёрт подери, в 90% случаев я вижу одну и ту же системную ошибку. Раз за разом. За последние лет 5 я её объяснял уже десяткам людей. Да что там, периодически и сам её совершаю…

В 99% задач компьютерного зрения то представление о задаче, которое вы сформулировали у себя в голове, а тем более тот путь решения, который вы наметили, не имеет с реальностью ничего общего. Всегда будут возникать ситуации, про которые вы даже не могли подумать. Единственный способ сформулировать задачу — набрать базу примеров и работать с ней, учитывая как идеальные, так и самые плохие ситуации. Чем шире база-тем точнее поставлена задача. Без базы говорить о задаче нельзя.

Тривиальная мысль. Но все ошибаются. Абсолютно все. В статье я приведу несколько примеров таких ситуаций. Когда задача поставлена плохо, когда хорошо. И какие подводные камни вас ждут в формировании ТЗ для систем компьютерного зрения.
Читать полностью »

GIF изнутри - 1
Вам когда-нибудь было интересно, как устроены gif-ки? В данной статье попробуем разобраться с внутренним строением GIF-формата и методом сжатия LZW.

Структура GIF

Файл в формате GIF состоит из фиксированной области в начале файла, за которой располагается переменное число блоков, и заканчивается файл завершителем изображения.

GIF изнутри - 2

Основные характеристики формата GIF:

  • Изображение в формате GIF хранится построчно, поддерживается только формат с индексированной палитрой цветов;
  • Поддерживается 256-цветовая палитра;
  • Этот формат позволяет хранить несколько изображений в одном файле;
  • GIF поддерживает анимационные изображения;

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

  • Поддерживает «прозрачность»;

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

  • Используется универсальный алгоритм сжатия без потерь LZW.

Читать полностью »

Нет, игр не будет

Автомобильный суперкомпьютер Drive PX 2 от Nvidia для автономного вождения - 1Год назад на Международной выставке потребительской электроники CES 2015 производитель видеоускорителей Nvidia показал свой продукт для беспилотных автомобилей. Это был компьютер Drive PX. В этом году на CES 2016 глава Nvidia Жэнь-Сунь Хуан рассказал о обновлении этого продукта. Новый компьютер носит название Drive PX 2, обладает тепловыделением 250 ватт и системой жидкостного охлаждения.
Читать полностью »

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

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

Пример реализации представлен в виде Android приложения, а исходным изображением является скриншот текста, с введенным ключевым словом, для решения задачи применяются различные алгоритмы обработки и распознавания изображений.
Читать полностью »

Работа над дизайном космических рептилоидов: блуждание по лабиринтам возможностей - 1

Обычная такая рептилоидная раса, возникающая из пучин глубокого космоса. Бац-бац из лазерного оружия со всех бортов! Потом сближение и абордаж, в завершение нападения кровавая резня на борту захваченного судна. Рептилоиды – люди слова: сказали «всех порежем», значит всех порежут, кто б сомневался. И растворяются в морозной черноте, только их видели.

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

Точные координаты базирования цивилизации Учча-Та неизвестны. Принято считать, что это планета Дрро-Адда (так называемая Планета-Мать) планетарной системы в районе W-Девы (звездное скопление TDD67, тип «распластанная медуза», спектральный класс неизвестен).

Итак, местопребывание установлено: после пиратских нападении на мирные корабли рептилоиды скрываются на родной Планетоматери.

И что это дает мне как арт-директору в смысле намеков на дизайн персонажа? А ничего.
Читать полностью »

Сегментация фона в Intel RealSense SDK - 1
В этом документе описывается, как разработчики могут использовать сегментацию фона (background segmentation, BGS) в Intel RealSense SDK для создания новых увлекательных приложений для совместной работы. Описывается предполагаемое поведение программ и их производительность в разных сценариях, оговариваются ограничения, о которых следует помнить разработчикам перед поставкой продуктов клиентам. Основная аудитория этой статьи — группы разработки, использующие BGS, и ОЕМ-производители.
На КДПВ — приложение Cyberlink YouCam RX как пример применения BGS.
Читать полностью »

Как мы сделали ABBYY FineReader, или история, произошедшая 20 лет назад - 1ABBYY FineReader – программа для распознавания текстов, которая в России известна многим ещё со студенческих времён. В этом году FineReader исполняется 22 года, он немного моложе нашего словаря Lingvo. Как так вышло, что вместе со словарём молодые программисты из BIT Software (в то время ABBYY называлась именно так) занялись распознаванием текстов? И что помогло Файну стать одной из самых узнаваемых на рынке программ?

На самом деле, всё очень логично. Если бы не Lingvo, FineReader’а могло бы и не быть. Началось всё с масштабного и амбициозного комплекса под названием Lingvo Systems. С его помощью человек мог отсканировать текст на одном языке, пропустить его через программу и получить перевод, правда, черновой, но для понимания смысла его было достаточно.Читать полностью »

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

Под катом много картинок, аккуратнее с траффиком.
Читать полностью »

Однажды в студеную зимнюю пору… ровно год назад, у нас появилась нетривиальная задача. Есть экран на электронных чернилах, есть процессор 16МГц (да-да, во встраиваемой электронике, особенно сверхнизкого энергопотребления, встречаются и такие) и совсем нет памяти. Ну, т.е. килобайтов 8 RAM и 256 Flash. Килобайтов, Карл. И в эти унылые килобайты необходимо запихнуть несколько изображений 800х600 в четырех оттенках серого. Быстро перемножив в уме 800 на 600 и на 2 бита на пиксель получаем 120 тысяч байтов. Несколько не влезает. Надо сжимать.

Так перед нами появилась задача: «как сжать плоского кота»? Почему кота? Да потому, что на котиках тестировали, на чем же еще черно-белые картинки проверять. Не на долларовых банкнотах же.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js