Как стать автором
Обновить
40.84

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

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

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

Цветовая деконволюция на Wolfram Mathematica

Время на прочтение4 мин
Количество просмотров6.2K
На написание этой заметки меня вдохновила недавняя статья про кишочки обезьян. Поскольку чукча не читатель, чукча — писатель, то решил пробовать сделать подобное самому. Тем более задача не кажется сложной и много кода не потребуется.

image

Простейший алгоритм, который приходит в голову, выглядит так:
  • Определяем несколько базовых цветов картинки. RGB компоненты этих цветов будем использовать как базисные вектора.
  • Цвет каждого пикселя разлагаем в линейную комбинацию базисных.
  • Выводим изображение для каждого базисного цвета.
  • Самооценка автоматически повышается.

Далее, более подробно по каждому пункту.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии7

Метод широкополосного сигнала (библиотека классов)

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

Предисловие


(из статьи КОМПЬЮТЕРНАЯ СТЕГАНОГРАФИЯ ВЧЕРА, СЕГОДНЯ, ЗАВТРА. Технологии информационной безопасности 21 века. /Барсуков В. С., к.т.н., Романцов А.П./1998/)
Задача надежной защиты информации от несанкционированного доступа является одной из древнейших и не решенных до настоящего времени проблем. Способы и методы скрытия секретных сообщений известны с давних времен, причем, данная сфера человеческой деятельности получила название стеганография. Это слово происходит от греческих слов steganos (секрет, тайна) и graphy (запись) и, таким образом, означает буквально “тайнопись”, хотя методы стеганографии появились, вероятно, раньше, чем появилась сама письменность (первоначально использовались условные знаки и обозначения).
В дальнейшем для защиты информации стали использоваться более эффективные на время создания методы кодирования и криптографии.
Как известно, цель криптографии состоит в блокировании несанкционированного доступа к информации путем шифрования содержания секретных сообщений. Стеганография имеет другую задачу, и ее цель — скрыть сам факт существования секретного сообщения. При этом, оба способа могут быть объединены и использованы для повышения эффективности защиты информации (например, для передачи криптографических ключей).
Как и любые инструменты, стеганографические методы требуют к себе внимания и осторожного обращения, так как могут быть использованы как для целей защиты, так и для целей нападения.

Алгоритм


В соответствии с методом широкополосного сигнала, каждый бит данных кодируется последовательностью изменённых яркостей пикселей в соответствии со значениями бит псевдослучайной последовательности.
Метод широкополосного сигнала предполагает возможность выработки у отправляемой и принимающих сторон одинаковой псевдослучайной последовательности или, по крайней мере, псевдослучайных последовательностей со статистическими характеристиками эквивалентными равным.
При этом в качестве контейнера для размещения данных может выступать не только само изображение, но и обратимое преобразование этого изображения, например, спектр, получаемый в результате Фурье преобразований. Наличие большого числа библиотек, реализующих Фурье преобразований (во всевозможных вариантах быстрых версий), делает реализацию алгоритмов не очень сложной задачей для программирования.
Читать дальше →
Всего голосов 15: ↑11 и ↓4+7
Комментарии0

Как разобрать обезьяньи кишки на составные части. Изучаем цветовую деконволюцию

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

Как многие помнят, я работаю в лаборатории, где мы работаем с живыми и не очень организмами. Науку двигаем, короче. Обычно вперед. Иногда в качестве образцов нам достаются мертвые обезьяны, ткани которых потом идут на экспериментальные задачи. Выглядит обычно это крайне жизнерадостно. Раздается звонок в 11 часов вечера, и тебе сообщают, что в питомнике обезьянка убилась. Почти не поврежденная, соседи только сердце съели. Вздыхаем, лезем в расписание рейсов и едем в аэропорт. На месте тебе выдают нужные запчасти убиенной и складывают в прозрачный контейнер с консервационным раствором. В аэропорт с этим тащиться уже нельзя, так как ограничен провоз жидкостей. Идем на ж/д вокзал на экспресс до Краснодара. Милые девушки на контроле как правило приобретают восхитительный салатовый оттенок при виде медленно кружащихся органов в нежно-розовом растворе.
В-общем, привезли, нарезали все, что нужно ломтиками, покрасили… Но тут оказывается, что полученные исходники нужно обработать и посчитать в автоматическом режиме… Сразу хочу уточнить, что я врач-исследователь, а не профессиональный программист или математик. Поэтому, если что-то покажется ошибочным — буду рад правкам.
Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии51

Фурье-обработка цифровых изображений

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

Предисловие


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

Формула таких алгоритмов будет выглядеть следующим образом:
  1. Z=FFT(X) – прямое двухмерное преобразование Фурье
  2. Z′=T(Z) – применение функции или транспаранта к Фурье-образу изображения
  3. Y=BFT(Z′) – обратное двухмерное преобразование Фурье

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

Примеры реализации


  • Алгоритм размытия изображения
  • Алгоритм повышения резкости изображения
  • Алгоритм масштабирования изображения

Реализованные алгоритмы являются частью библиотеки с открытым исходным кодом FFTTools. Интернет-адрес: github.com/dprotopopov/FFTTools
Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии22

Истории

Промышленное видеонаблюдение: снимаем технологические данные с камер и предсказываем аварийные ситуации

Время на прочтение6 мин
Количество просмотров50K
Очень далеко за МКАДом, где бродят только геологи и редкие медведи (забегая вперёд — они те ещё токсикоманы), есть производственный комплекс. На вход приходит добытая руда, на выходе — концентрат, который позже может и жахнуть.


Если при определённых условиях в эту зону зайдёт рабочий, его семье выплатят страховку

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


Это цветной кадр с одной из камер. Всё, вообще всё покрыто серой пылью.

В отличие от тёплых и прельстивых офисов и стерильных ЦОДов, на этом объекте постоянно нехило шарашит электромагнитное излучение от кабелей с ногу толщиной, помехи от пусков разного оборудования. И ещё тут отличная пыль, которая накапливается по сантиметру в сутки.
Читать дальше →
Всего голосов 77: ↑77 и ↓0+77
Комментарии15

Идентификация материальных объектов с помощью оптического маркера

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


Для идентификации материальных объектов придумано немало различных методов. Их можно разделить на две основные группы:
  1. Методы, использующие свойство уникальности присущих объектам признаков, которые тем или иным образом поддаются регистрации/измерению и остаются неизменными в течение заданного промежутка времени в пределах допустимой погрешности.
    К этой группе можно отнести методы биометрической идентификации, оптическую идентификацию, идентификацию по пространственным координатам, «утиный» тест и т.д.
  2. Методы, основанные на маркировке объектов идентификационной информацией, которая наносится на поверхность объекта различными способами: в виде надписи и\или изображения, приклеивания этикетки с штрихкодом, привязывания бирки с номером и т.д., и последующей идентификация объектов с помощью этой информации.

Рассматриваемый в данной публикации новый метод идентификации объектов с помощью оптического маркера, по формальным признакам можно отнести ко второй группе, однако в нем также можно найти и признаки первой группы методов.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии12

Стабилизация таймлапс-видео на калькуляторе (IPython+OpenCV)

Время на прочтение6 мин
Количество просмотров13K
Подобно многим стихийным и сезонным любителям астрофотографии, в этом августе я ловил ночью Персеиды. Улов небольшой есть, но сейчас не о нём, а о том, что побочным результатом такого лова стала серия фотографий, которые напрашивались на то, чтобы сделать из них таймлапс. Но вот незадача: установка камеры оказалась не столь уж жесткой, как хотелось бы, и между кадрами появилось небольшое смещение. Попытался исправить его плагином дешейкинга в VirtualDub, но результаты не порадовали. Тогда было решено сделать свой велосипед: подробнее о результатах и том как они получены — под катом.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии0

Аугментация (augmentation, “раздутие”) данных для обучения нейронной сети на примере печатных символов

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

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

Если вам интересно узнать про все это — добро пожаловать под кат.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии11

Упрощаем работу с алгоритмами компьютерного зрения при помощи пакета OpenCV Intel INDE

Время на прочтение3 мин
Количество просмотров10K
Не так давно лучшим ресурсом для ознакомления с алгоритмами компьютерного зрения был сайт библиотеки алгоритмов компьютерного зрения с открытым исходным кодом OpenCV. Эти алгоритмы приходилось создавать и настраивать самостоятельно, попутно осваивая CMake и другие межплатформенные инструменты. Итоговый результат мог не подойти нужной платформе. В этом случае необходимо было тщательно изучить алгоритм и настроить его для собственной системы — а это означало освоить OpenCL и его оптимизацию для своей платформы. Не то чтобы это было плохо…



Теперь приступить к работе с алгоритмами компьютерного зрения можно при помощи программного пакета Intel INDE, последнее обновление которого включает в себя готовую версию OpenCV, подходящую для устройств Windows и Android с процессорами Intel с графическим ядром Intel.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии1

Об ограничениях в применимости метрики Минковского в цифровой обработке данных

Время на прочтение8 мин
Количество просмотров19K
Как-то давным-давно я наткнулся на вот статью на хабре, в которой народ пишет как все круто и как хорошо работает метрика Минковского. Время шло и шло, а я все хотел и хотел. Наконец подвернулась задача к которой я захотел применить сие чудо, и вот что вышло:

image
Читать дальше →
Всего голосов 28: ↑18 и ↓10+8
Комментарии11

«Весь Толстой в один клик»: как мы это делали

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


Некоторое время назад мы организовали оцифровку 90-томного собрания сочинений Льва Николаевича Толстого, в этом нам помогали более 3 тысяч волонтеров. Публикаций об этом краудсорсинговом проекте было много, но ни одна из них не касалась технической части – именно о ней и пойдет речь в этой статье.

Итак, перед нами стояла задача перевести в форматы электронных книг (ePub, fb2, html, mobi), а также в PDF с текстовым слоем самое полное собрание сочинений Толстого. Оно выпускалось в течение 30 лет: с 1928 по 1958 год, каждый том выходил тиражом 5 тыс. экземпляров. До выпуска электронного издания это собрание сочинений не переиздавалось и уже стало труднодоступным раритетом. В 90-томник входят: художественные произведения (1–45 тома), дневники и записные книжки (46–58 тома), письма (59–90 тома). Был ещё секретный 91-й том, который состоял целиком из указателей и поэтому доставил нашим редакторам много бессонных ночей поводов проявить профессионализм. Конечно, многие творения классика существовали в электронном виде и раньше, но далеко не все.
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии17

Ускорение обработки изображений в Android

Время на прочтение29 мин
Количество просмотров16K
image Центральные процессоры и графические ядра современных устройств, работающих под управлением Android, способны на многое. Например, их вычислительную мощность можно направить на обработку изображений.

Для того чтобы это сделать, стоит обратить внимание на технологии OpenCL и RenderScript.

В этом материале рассмотрен пример Android-приложения, в котором показаны методики высокопроизводительной обработки изображений с использованием языков программирования OpenCL и RenderScript. Эти технологии разработаны с прицелом на возможности графического аппаратного обеспечения, рассчитанного на параллельную обработку данных (шейдерных блоков). Они позволяют ускорить работу со значительными объёмами данных и решение задач, предусматривающих большое число повторов команд. Хотя, для ускорения обработки графики в Android-приложениях, вы можете воспользоваться другими технологиями, в этом материале рассматриваются примеры построения инфраструктуры приложения и реализации графических алгоритмов на OpenCL и RenderScript. Здесь так же рассмотрен класс-обёртка для OpenCL API, который позволяет упростить создание и исполнение приложений, работающих с графикой и использующих OpenCL. Использование исходного кода этого класса в ваших проектах не требует лицензирования.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии3

Шпионские штучки в Wolfram Language, или как спрятать в картинке всё что угодно

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

Перевод поста Джона Маклуна (Jon McLoone) "Doing Spy Stuff with Mathematica".
Код, приведенный в статье, можно скачать здесь.
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе.

Я читал о IT проблемах недавно арестованных, как заявлялось, русских шпионов. Говорилось, что они пользовались не самыми надёжными инструментами цифровой стеганографии (вики). И мне стало интересно — насколько быстро я смогу реализовать стеганографию через цифровые изображения в Mathematica, используя метод, известный как "вставка младшего бита" (least significant bit insertion).

Идея стеганографии основывается на том, чтобы спрятать сообщения в какой-то другой информации таким образом, чтобы никто факта коммуникации не заметил. Само слово происходит от латино-греческий комбинации, означающей «скрытное письмо»; данным термином назывался процесс нанесения секретного сообщения на лысую голову человека, на которой затем отрастали волосы и, тем самым, прятали сообщение. В случае цифровой стеганографии всё делается посредством математики.
Читать дальше →
Всего голосов 27: ↑23 и ↓4+19
Комментарии3

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

Почему непросто показать все цвета в одномерном пространстве, и сколько раз это можно сделать

Время на прочтение7 мин
Количество просмотров41K
Яндекс умеет подсказывать цвета по их названию и находить близкие к ним. Некоторое время назад эту подсказку (внутри себя мы называем такие штуки «колдунщиками») пришлось переделывать, чтобы она соответствовала виду поисковых результатов после их редизайна. И мы воспользовались этим поводом, чтобы поработать над ним всерьёз, — ведь оказалось, что расположить цвета линейно — очень нетривиальная задача.







В этом посте я хочу рассказать, какую интересную алгоритмическую задачу, которая потребовала погружения в теорию цвета, нам пришлось решать почти всем Яндексом, чтобы сделать новый колдунщик таким, каким его задумала команда.
Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Комментарии31

Как устроен цвет

Время на прочтение1 мин
Количество просмотров57K
Почему формальное определение цвета то ли есть, то ли нет, и связано ли это с тем, что его дал тот самый Шрёдингер? Что имел в виду Вейнберг, когда назвал свою революционную статью «Геометрия цветов»? Почему у цветового треугольника два угла, хотя интуитивно кажется, что должен быть один? Почему обычный детский рисунок показывает, что у автора всё в порядке с цветовосприятием, и зачем художник-академист всю жизнь учится его отключать? Почему в цветовом пространстве находятся кластеры, но они не находятся? Почему любая женщина знает о явлении метамерии окрасок, а ученые всё время забывают? Сколько должно быть цветовых каналов у хорошего фотоаппарата? А у монитора? А почему ответ разный? А красок у принтера?

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



Лектор — Дмитрий Николаев, заведующий сектором зрительных систем в Институте проблем передачи информации им. А.А. Харкевича РАН. Кандидат физико-математических наук, защитил диссертацию на тему «Алгоритмы цветовой сегментации, применимые в условиях сложного освещения сцены».
Читать дальше →
Всего голосов 71: ↑63 и ↓8+55
Комментарии31

Сервис распознавания котов

Время на прочтение5 мин
Количество просмотров59K
Проблемой распознавания котов на изображениях нельзя пренебрегать. Как вариант, для её решения можно создать и обучить свой собственный классификатор, для чего потребуются десятки тысяч пушистых фотографий и несколько месяцев работы по подготовке набора данных и, собственно, само обучение. Жаль только, что готового классификатора, обученного именно на котов, на просторах сети найти не удалось.

Да и вообще, можно ли создать сервис, уверенно распознающий котов с учётом присущего последним стремления принять самую неожиданную позу? Давайте попробуем.


Читать дальше →
Всего голосов 100: ↑96 и ↓4+92
Комментарии44

Материалы Третьей конференции «Технологии Wolfram» (СПбГЭУ, 2015)

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

9 июня 2015 года в Санкт-Петербургском государственном экономическом университете (СПбГЭУ) прошла Третья конференция «Технологии Wolfram», которую посетило более 250 человек. Мы рады представить вам ее материалы: это большое количество записей выступлений докладчиков, а также их презентации, которые вы можете скачать и подробно изучить, а также использовать все коды, приведенные в докладах, в своей работе или хобби.

На конференции было рассмотрено огромное количество областей знаний: облачные вычисления, корпоративные решения, система моделирования и симуляции, вычислительные финансы, образовательные технологии, машинное обучение, вычислительная геометрия, наука о данных, визуализация, изображения, звук и обработка сигналов, высокопроизводительные вычисления, издательское дело и образование.
Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Сборка Tesseract OCR под MinGW

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

В одном из своих проектов мне потребовалось распознавание символов и мой выбор остановился на tesseract ocr. На Хабре уже была подобная статья, но на данный момент она не актуальна, во время установки не получилось в точности повторить инструкции автора. В данной статье рассказывается о процессе установке Tesseract OCR под MinGW.
Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии3

Как нейронные сети рисуют картины

Время на прочтение3 мин
Количество просмотров167K
Умные алгоритмы уже умеют находить и распознавать лица, определять главную часть картинки, узнавать различные предметы. А нейронные сети пошли дальше и даже могут самостоятельно создавать произведения искусства.

Недавно Google на своем блоге опубликовали интересный способ использования нейронных сетей, распознающих картинки. Далее свободный перевод публикации.

image
Читать дальше →
Всего голосов 79: ↑75 и ↓4+71
Комментарии38

«Галоп пикселя — часть вторая» — перспектива, цвет, анатомия и прикладные упражнения

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


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)линк)

Первая статья данного цикла была воспринята тепло, вследствие чего затягивать с продолжением не имело никакого смысла, но, увы – это произошло. Зимнее наступление захлебнулось и плавно переросло в летнюю кампанию. В конце статьи я объясню почему, не хотелось бы вас огорчать с самых первых строк. Итак. Публика выразила желание ознакомиться с предметом глубже, чем предполагалось изначально. Большое количество писем пришло на почту, наряду с регулярными тычками в социальных сетях. В этом месте мне вспоминается одна фраза – «будьте осторожны в своих желаниях».

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

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


Лопатить пиксели
Всего голосов 112: ↑110 и ↓2+108
Комментарии27

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