войти зарегистрироваться

Обработка изображенийViola Jones на собственной шкуре, часть 1. Настройка проекта под OpenCV

Привет, друзья мои! Дорогие Хабраюзеры и Хабрачитатели, предлагаю Вам окунуться в дебри разработки программы распознавания эмоций по материалам предыдущих моих статей.

Обработка изображенийСборка OpenCV с поддержкой изображений с широким динамическим диапазоном формата EXR из песочницы

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

На данный момент OpenCV (я рассматриваю непосредственно текущую версию 2.3.1) позволяет работать с HDR-изображениями, хранящимися в формате .exr. Но по некоторым причинам этот функционал не только недоступен в базовой сборке, но и не содержится в папке сторонних подключаемых модулей в исходниках. Директория ilmimf в 3rdparty содержит только не особо интересный license и невнятный readme, ввиду чего простое включение галочки, установленной, собственно, по умолчанию, ничего не даёт.

ПрограммированиеPSNR и SSIM или как работать с изображениями под С из песочницы

imageВ данной статье я коснусь базовых принципов, как работать с изображениями. Для этого я выбрал библиотеку OpenCV. Она распространяется бесплатно, так что скачать ее не составит труда.
Когда мне на учебе дали задание написать две метрики для оценки различия двух картинок, в частности качества видоизмененной от исходной, меня это конечно все это немного смутило. Знания в программировании были, мягко говоря, не очень большими, как-никак был только на первом курсе. Благо, какую библиотеку выбрать сказали заранее, так что с этим труда не возникло. А вот как ее использовать это было уже на порядок сложнее, все, что я в основном смог нарыть в интернете, было на английском, хоть я его и знаю на уровне, что могу читать тех. литературу, вследствие огромности самой библиотеки, подходило мало. Отлично, что удалось, какие функции и как использовать, я смог потом уточнить у преподавателя. А требовалось только понять как обращаться к самой картинке, в частности к отдельным пикселям изображения. Кого заинтересовало, добро пожаловать под кат.

Обработка изображенийСистема учета на базе OCR системы из песочницы

Пролог


По ходу своей трудовой деятельности получил задачу придумать и реализовать систему учета рекламной информации. Учет заключался в проверке наличия нужной информации на нужном рекламном щите. Щит и полиграфия пронумерованы.
В качестве исходной информации для системы предлагалось использовать фото. После торговли согласования с дизайнерами было оговорено, что оба номера будут располагаться внутри одной рамки. Единственное, что рамка могла быть в любом месте щита.
Собственно на этом постановка задачи заканчивается и начинается повествование о реализации.
Задача решается в три действия:
  1. Нахождение нужного прямоугольника на изображении.
  2. Распознавание текста.
  3. Проверка правильности распознавания.

Обработка изображенийКонтурный анализ

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

АлгоритмыОпубликован код алгоритма Predator

Хотя сам Зденек Катал был против, но исходные коды его алгоритма отслеживания объектов в видеопотоке Tracking-Learning-Detection (aka Predator) всё-таки попали в открытый доступ. Судя по всему, они были какое-то время выложены на сайте автора и кто-то успел сделать копию. А поскольку код публиковался под лицензией GPL 2.0, то не осталось никаких препятствий для его дальнейшего распространения.

Проект TLD на github: 1, 2, 3, 4, 5

Основная часть сделана на Matlab и его относительно легко можно транслировать в C за пару дней.

Сам трекинг осуществляется методом Лукаса-Канаде и с помощью OpenCV.

Обработка изображенийРаспознавание некоторых современных CAPTCHA из песочницы

Именно так называлась работа, представленная мной на Балтийском научно-инженерном конкурсе, и принёсшая мне очаровательную бумажку с римской единичкой, а также новенький ноутбук.

Работа заключалась в распознавании CAPTCHA, используемых крупными операторами сотовой связи в формах отправки SMS, и демонстрации недостаточной эффективности применяемого ими подхода. Чтобы не задевать ничью гордость, будем называть этих операторов иносказательно: красный, жёлтый, зелёный и синий.

Данный текст распространяется на условиях лицензии CC BY-SA.

Обработка изображенийИзмерение расстояния до объекта и его скорости из песочницы

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

Кроме самого метода в статье рассмотрена его реализация на языке Python с использованием библиотеки OpenCV, а также рассмотрены особенности получения изображений с вебкамер в Linux, используя video4linux2 API.


АлгоритмыUnLogo, или как избежать маркетинга

Хочется представить хабрасообществу интересный проект, который, пока что не освещался на хабре.

UnLogo

По словам разрабочиков: UnLogo это веб-сервис, который избавляет ваше видео от логотипов и прочей корпоративной атрибутики.

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

Видео под катом.

АлгоритмыАвтоматизация очистки снимков документов с помощью Sikuli

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

Проблема


Основная задача, которую будем решать в рамках данного топика — подготовка сканов и фотографий письменных источников (книг, лекций и т.п.) для их печати, компактного хранения, упаковки в djvu и т.п.
Photoshop и FineReader рассматривать не будем. Хотя они и предоставляют ряд полезных инструментов, но стоят денег, вообще говоря.
При наличии сканера обычно всё просто: получаются изображения достаточно хорошего качества, чтобы можно было обойтись минимальной обработкой.
С фотографиями интереснее: добавляются проблемы с освещением и геометрические искажения. Увы, исправление геометрических искажений автоматизировать, как минимум, сложно. А вот с освещением и фоном вполне можно побороться. Чем и займёмся.