В последнее время пользователи все чаще получают изображения документов при помощи фотокамер или мобильных устройств, прибегая к помощи сканера изредка, в особых случаях. В то же время, для изображений, получаемых фотокамерами, характерны следующие недостатки: геометрические искажения (о них мы говорили в статье про автоматическое выделение документа), неравномерность освещения (часто можно видеть тени или засветки при использовании вспышки), падение контраста, расфокусировка, смаз, цифровой шум при недостаточном освещении. Постараемся избавиться от этих недостатков, применяя некоторые преобразования к исходному изображению, чтобы приблизить его вид к отсканированному.
Представить все в виде малых комбинируемых компонентов
Избежать неявного копирования и предпочтительно использовать ленивые вычисления
Использовать шаблоны для улучшения производительности и эффективности написания кода
Начиная с первой версии, все компонеты пакета обработки изображений были параметризированы типом цвета. Это не стандартный способ реализации графических библиотек — большинство абстрагируют конкретный тип цвета изображения через ООП интерфейс, или просто конвертируют все изображения в единый формат пикселей, с которыми далее работают в памяти. Однако для большинства случаев это является тратой памяти и времени, обычно разработчики заранее знают в каком конкретно формате будет представлено изображение, за исключением приложений, где графические данные вводятся пользователем (например, граф. редакторы). Вместо этого моя библиотека объявляет все типы изображений как шаблоны с типом-параметром для цвета.
Я весьма доволен результатами работы над библиотекой, поэтому я хочу поделиться несколькими интересными моментами в данном посте.
В мире обработки цифровых изображений «Макинтоши» традиционно стоят особняком. Издревле так повелось, что продукция Apple во многом выверяется с учётом интересов графических дизайнеров, художников, фотографов и книгоиздателей. В былинные времена, когда Apple работали на процессорах PowerPC, особенным был и парк программного обеспечения для них.
Но скоро уже десять лет, как аппаратная уникальность яблочных продуктов потеряна, и взаимопроникновение различных программ в условиях монополии Intel-совместимых процессоров значительно ускорилось. Как результат, типичный профессиональный фотограф или «продвинутый» любитель использует сейчас и на Apple традиционную в мире Windows связку для обработки графических файлов: Adobe Lightroom (а то и плагин Adobe Camera Raw) плюс Adobe Photoshop.
Доброго времени суток уважаемые хабравчане. На просторах интернета мне повстречался один миниатюрный и очень интересный Bash скрипт. С помощью ImageMagick он потрясающим образом обрабатывает фотографии белой учебной доски, очищая «содержимое» от всего лишнего:
34 ученых из Allen Institute for Brain Science в Сиэтле завершили создание первой всеобъемлющей карты мозга млекопитающих, о чем они объявили 2 апреля в журнале Nature Neuroscience. Карта детально отображает взаимосвязи между клетками мозга мыши – нейроны, которых у нее около 71 миллиона.
Речь сегодня пойдёт о генерации изображений с картой расстояний (Signed Distance Field). Данный вид изображений примечателен тем, что фактически позволяет получить «векторную» графику на видеоускорителе, причём даром. Одной из первых данный метод растеризации предложила компания Valve в игре Team Fortress 2 для масштабируемых декалей в 2007 году, но до сих пор он не пользуется особой популярностью, хотя позволяет рендерить прекрасного качества шрифты, используя текстуру всего 256х256 точек. Данный метод прекрасно подходит для современных экранов высокой чёткости и позволяет серьёзно сэкономить на текстурах в играх, он не требователен к железу и прекрасно работает на смартфонах.
Хитрость заключается в создании такой специально подготовленной карты расстояний, что при использовании простейшего шейдера получается идеальная векторная картинка. Более того, с помощью шейдеров можно получить эффекты тени, свечения, объёма и т. п.
Как же создавать такие изображения? Очень просто, ImageMagick позволяет сделать это одной командой:
На этом можно было бы поставить точку, но так полноценного топика не получится. Что ж, под катом — описание быстрого алгоритма расчёта SDF, пример на C++ и немного шейдеров для OpenGL.
Добрый день, cегодняшний блогпост я хочу посвятить обзору нового модуля для 3D визуализации Viz в библиотеке OpenCV, в проектировании и реализации которого я участвовал. Наверное тут мне стоит представиться, меня зовут Анатолий Бакшеев, я работаю в компании Itseez, использую библиотеку OpenCV вот уже 7 лет, и вместе с коллегами разрабатываю и развиваю ее.
Какое же отношение имеет 3D визуализация к компьютерному зрению, спросите вы, и зачем нам вообще потребовался подобный модуль? И будете правы, если смотреть на компьютерное зрение как на область, работающую с изображениями. Но мы живем в 21-м веке, и область применения компьютерного зрения вышла далеко за пределы просто обработки изображений, выделения границ объектов или распознавания лиц. Наука и техника уже научились в более или менее приемлемом качестве измерять наш трехмерный мир. Этому многим поспособствовало и появление несколько лет назад на рынке дешевых сенсоров типа Kinect, позволивших на то время с хорошей точностью и скоростью получать представление сцены в виде трехмерного цветного облака точек, и прогресс в области реконструкции 3D мира данных по серии изображений, и даже уход в мобильные технологии, где интегрированный гироскоп и акселерометр значительно упрощает задачу оценки передвижения камеры мобильного устройства в 3D мире, а значит и точность реконструкции сцены.
Недавеча столкнулся с одной интересной задачкой для мобильного “коня” на Android’e- необходимо определить контуры людей на фотографиях (если таковы там были, естественно). После поиска в интернете, было решено использовать open source проект OpenCV, который может работать на платформе Android.
О нем уже было много написано, но данный сабж мной найден не был и был собран из нескольких источников и личных наблюдений.
Для свободной кроссплатформенной библиотеки компьютерного зрения CCV разработан новый классификатор изображений, обученный в свёрточной нейроной сети. Впервые классификатор такого уровня и модели (детектор лиц, детектор автомобилей, детектор пешеходов) выпущены под свободной лицензией.
После первой нашей публикации минуло немало времени и произошло несколько важных событий. Теперь мы будем писать чаще, а пока подведем некоторые итоги прошедших месяцев.
Во-первых, мы закрыли посевной раунд с участием TMT Investments и iDealMachine.
TMT — инвестиционная компания со штаб-квартирой в Лондоне, вложившаяся в том числе в ShareThis и приобретенный Yahoo Astrid. Акции TMT торгуются на Лондонской бирже, в команде — сооснователи холдинга РБК: Герман Каплун, Артем Инютин и Александр Моргульчик.
iDealMachine — венчурный фонд и стартап-акселератор, инвестировавший в нас на предпосевной стадии и давший дорогу в мир предпринимательства. В портфеле iDM несколько отличных проектов, например Miiix — платформа для взаимодействия поставщиков и интернет-магазинов (победитель премии «Стартап года»), Prixel — репродукция живописи на 3D-принтере, Smart Museum – интерактивный гид по музееям и xTurion – мобильные роботы для мониторинга.
Во-вторых, в обществах слепых началось тестирование первой версии нашего устройства. Oriense-1 позволяет безопасно перемещаться, предупреждая о препятствиях и подсказывая пути обхода. Помимо голосовых сообщений, для передачи информации используется «аудио 3D-карта» — пространственные звуковые маркеры, которыми помечаются препятствия и другие важные объекты сцены. Это позволяет оперативно воспринимать пространство на слух. Аналогичный принцип используется в аудио-играх для незрячих (Audio Quake, Shades of Doom), да и в целом незрячие ориентируются именно так, «слыша» препятствия. Все препятствия при этом услышать невозможно, и тут то и должно приходить на помощь наше устройство. Сенсорная замена вообще достаточно распространенный подход в устройствах помощи незрячим, самая известная подобная система, vOICe, преобразует изображение с камеры в звуковой образ: высота пикселя передается тоном, а яркость – громкостью. Для восприятия такого образа требуется длительное обучение, а использование предполагает крепкие нервы – послушайте ролик.
В предыдущих статьях я поднимал тему о возможности эффективного использования связки RAWTherapee + GIMP в практике фотолюбителя, не желающего связываться со взломанными продуктами или переплачивать за отчасти ненужную функциональность Adobe Photoshop. Применение RAWTherapee во многих случаях предпочтительнее, чем использование встроенной утилиты Adobe Camera Raw, и во всех известных мне случаях обеспечивает более быстрый и как минимум не менее качественный результат, чем поставляемые с камерами конвертеры. (Исключением является здесь, пожалуй, Olympus Viewer, чудовищно медленный, но зато способный в полной мере дать пользователю прочувствовать знаменитую «магию фирменных цветов Olympus». О том, как этого достигнуть с использованием RAWTherapee, будет сказано чуть ниже.)
Доброго времени суток!
Недавно я искал способы повышения скорости работы детектора Виолы-Джонса и натолкнулся на интересную статью 2013 года «RASW: a Run-time Adaptive Sliding Windowto Improve Viola-Jones Object Detection». В ней представлен эффективный подход к улучшению работы детекторов, основанных на принципе сканирующего окна и каскадных классификаторах. Я не нашел описания данного подхода на русском языке и решил восполнить этот пробел. В данном переводе я опустил описание алгоритма Виолы-Джонса, так как о нём уже много рассказано, в том числе и на хабре habrahabr.ru/post/133826.
Ура! Организаторы Google Summer of Code приняли проект OpenCV для участия в Google Summer of Code 2014! С 10 марта начался приём заявок от студентов-участников. Давайте разберёмся, что это такое – GSoC, что за проект OpenCV и при чём здесь Itseez. А для начала – мотивирующее видео с результатами прошлого лета.
При написании собственного «инстаграма» появилась необходимость в наложении фильтров на изображение при аплоаде. Изначально, чтобы особо не нагружать сервер, было решено вынести процесс преобразования картинки на клиентскую сторону. Основная идея – загрузка изображения в канву, манипуляции над ним и выгрузка потока байт (результирующего изображения) на сервер. Для реализации была выбрана js-библиотека CamanJS , которая может работать как в браузере, так и на стороне сервера через NodeJS. Однако пришлось от нее отказаться из-за трех причин:
Материалы этого поста задержались с выходом в свет на 4 месяца. Мы — молодая команда разработчиков, и только учимся нарушать dead-лайны, но кажется, что получается уже неплохо. Предыстория в этой статье, где мы и обещали выложить продолжение. Рассказ пойдёт о том, как же наше приложение работает (или не работает, решать читателю).
Какое приложение? Мы — команда проекта Viewaide (бывший EyeDoc) и пишем софт, который при помощи веб-камеры определяет параметры усталости глаз и выводит уведомления, задача которых снизить риск ухудшения зрения вследствие долгой работы у монитора. Чем 100 раз услышать, лучше 1 раз увидеть.
Скачать и попробовать можно по этой ссылке, как говорится, “бесплатно, без смс”. Кроме софта, у нас имеется ещё и часть web-сервиса, но обо всём по порядку.
На сайте TopCoder размещён новый конкурс NASA Asteroid Grand Challenge Series. Задача конкурса — помочь в решении проблемы астероидов, которые могут врезаться в Землю и уничтожить человеческую расу. Конкретно, от программистов требуется разработать новые алгоритмы распознавания астероидов на изображениях с земных телескопов.
На Хабре как-то несколько раз публиковались новости, касающиеся оригинальной фотокамеры Lytro. Стоит напомнить, что эта камера позволяет получать изображения, у которых фокус можно изменять, при помощи ПО от компании-производителя. Вот подробнейшая статья о том, как все это работает.
Так вот, у нового смартфона от HTC теперь появилась сдвоенная тыловая фотокамера, которая позволяет использовать многие приемы Lytro.
Недавно передо мной встала задача обрезать около сотни огромных картинок из фотобанка под несколько десятков разных размеров. Эти готовые картинки потом будут использоваться клиентами CMS для оформления своих сайтов. Прикинув сколько времени займет этот процесс в Фотошопе, я пригорюнился — встретить следующий Новый год за обрезкой картинок не входит в мои планы.
В одной из наших статей мы рассказывали о том, как можно использовать функции входящей почты в SharePoint 2010 для приема и обработки документов, содержащих отсканированные талоны. При выполнении этого проекта нам пришлось решить несколько интересных задач. И сейчас мы хотим подробнее остановиться на одном моменте.
Итак, одна из задач сводилась к распознаванию номеров на листе скана талонов. Стоит обратить внимание, что талонов может быть несколько, и располагаться на листе они могут как вертикально, так и горизонтально.
То, что мы увидели на сканах талонов, сильно напоминало штрих-код Codabar, с которым нам уже приходилось сталкиваться на других проектах.
Речь здесь не о проекте Google Earth, название было указано в заголовке для того, чтобы дать общее представление о содержании заметки. Речь вообще о возможностях картографических сервисов уже недалекого будущего. К примеру, что скажете о видео-наблюдении за поверхностью Земли в режиме реального времени?
Звучит, как фантастика, но сразу несколько стартапов работают над подобными проектами. Об одном из таких проектов еще в декабре прошлого года писали на Хабре, и сейчас компания SkyBox, работающая над этим проектом, показала новые результаты своих наработок.