Pull to refresh

«Выглядит похоже». Как работает перцептивный хэш

Reading time 6 min
Views 116K
Image processing *
Translation
За последние несколько месяцев несколько человек спросили меня, как работает TinEye и как в принципе работает поиск похожих картинок.

По правде говоря, я не знаю, как работает поисковик TinEye. Он не раскрывает деталей используемого алгоритма(-ов). Но глядя на поисковую выдачу, я могу сделать вывод о работе какой-то формы перцептивного хэш-алгоритма.
Читать дальше →
Total votes 149: ↑145 and ↓4 +141
Comments 46

Старт! Первый пост

Reading time 1 min
Views 1.8K
Digital Cloud Tecnologies corporate blog
Мы рады приветствовать Хабра жителей!

C большим удовольствием начинаем вести свой блог на одной из лучших IT-площадок РУНЕТА.

image

Мы — молодая, целеустремленная, профессиональная, амбициозная, креативная команда, для которой важно движение только вперед!

На сегодняшний день мы сделали много интересных проектов. У нас есть ряд собственных приложений – мы с удовольствием расскажем как они были разработаны и какие решения в них были применены.

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

Нашими ключевыми компетенциями являются: WP7, W8, Kinect, Облачные технологии, MS SQL, ASP.NET MVC и Silverlight.

Наша компания поддерживает сообщество разработчиков UNETA (http://uneta.ua) и проводит ежегодную международную конференцию UNETA+.

Среди планируемых тем, которые мы будем освещать — Kinect, WP7, XNA, Silverlight, MS SQL, Windows 8 App., MetroStyle App., Azure, AWS, ASP.NET MVC, HTML5, JavaScript, NOSQL.

Мы уверены, что наше общение на Хабре будет позитивным, интересным и эффективным.

Следите за нашим Хабра-блогом и вы получите море полезной информации.
Total votes 27: ↑5 and ↓22 -17
Comments 5

Быстрое сжатие изображений по алгоритму JPEG на CUDA

Reading time 13 min
Views 19K
High performance *GPGPU *Image processing *
Краткое содержание: Создан быстрый кодер FVJPEG для сжатия изображений по алгоритму JPEG на видеокартах NVIDIA. Значительное ускорение получено при распараллеливании алгоритма, его реализации и оптимизации с помощью технологии CUDA. По скорости сжатия кодер FVJPEG превосходит все существующие в настоящее время программные и аппаратные решения для компрессии изображений по алгоритму Baseline JPEG.
Читать дальше →
Total votes 74: ↑59 and ↓15 +44
Comments 49

Первое украинское приложение на Windows Store

Reading time 3 min
Views 4.5K
Digital Cloud Tecnologies corporate blog
28 марта вышло первое приложение, написанное украинскими разработчиками под Windows 8 — Euro Cup 2012. Приложение является первым украинским приложением в Windows Store. Разработчиком приложения стала компания Digital Cloud Technologies.
image
Я являюсь одним из разработчиков этого приложения и хочу рассказать немного о процессе его создания, о проблемах, которые возникали при его выпуске.
Команда состояла из 5 разработчиков под руководством Сергея Лутая — MVP Silverlight, соавтора первой в мире книге по разработке на C# под Windows 8 и Дениса Резника MVP SQL Server.
У разработчиков не было опыта работы с платформой, за исключением курсов, проводимых Майкрософт в Москве, в которых некоторым из нас посчастливилось поучаствовать. Архитектура приложения основана на паттерне MVVM — это нам значительно помогло, но и доставило несколько серьезных проблем.
Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Comments 15

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

Reading time 6 min
Views 69K
Image processing *
В этой статье пойдет речь о том, как решалась небольшая задачка поиска дубликатов по фрагменту или кропу картинки.



Читать дальше →
Total votes 129: ↑118 and ↓11 +107
Comments 39

Изобретаем JPEG

Reading time 28 min
Views 167K
Algorithms *Image processing *
Tutorial

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.

Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →
Total votes 356: ↑354 and ↓2 +352
Comments 70

Распознавание речи для чайников

Reading time 9 min
Views 164K
Programming *Algorithms *
Tutorial

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

Читать дальше →
Total votes 71: ↑61 and ↓10 +51
Comments 20

Как бороться с репостами или пара слов о перцептивных хешах

Reading time 11 min
Views 29K
Programming *Image processing *
Sandbox
В этой публикации речь пойдет о подходах к построению перцептивный хешей изображения и возможностях их использования (например, поиск дубликатов).

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

Если хэши отличаются, значит, данные разные. Если хэши совпадают, то данные, скорее всего, одинаковые (поскольку существует вероятность коллизий, то одинаковые хэши не гарантируют совпадения данных). В этой статье речь пойдет о нескольких популярных методах построения перцептивный хешей изображения, а также о простом способе борьбы с коллизиями. Всем кому интересно, прошу под кат.
Читать дальше →
Total votes 55: ↑54 and ↓1 +53
Comments 26

Кодек нового поколения AV1: корректирующий направленный фильтр CDEF

Reading time 19 min
Views 11K
Working with video *Algorithms *Image processing *
Translation


Автор: Monty (monty@xiph.org, cmontgomery@mozilla.com). Опубликовано 28 июня 2018 года.

Если кто не читал предыдущую статью… AV1 — это новый универсальный видеокодек, разработанный Альянсом за открытые медиа (Alliance for Open Media). Альянс взял за основу кодек VPX от Google, Thor от Cisco и Daala от Mozilla/Xiph.Org. Кодек AV1 превосходит по производительности VP9 и HEVC, что делает его кодеком не завтрашнего, а послезавтрашнего дня. Формат AV1 свободен от любых роялти и навсегда останется таковым с разрешительной лицензией.

Эта статья задумывалась как вторая в серии статей, которые подробно описывают функциональность AV1 и новых технологий, которые лежат в его основе и впервые используются в продакшне. Предыдущая статья на Xiph.org объясняла функцию прогнозирования яркости Chroma from Luma (CfL). Сегодня мы расскажем об ограниченном направленном корректирующем фильтр (Constrained Directional Enhancement Filter). Если вы всегда задавались вопросом, что нужно для написания кодека, пристегните ремни и приготовьтесь к образованию!
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 3

Исследование многократного перезалива JPEG

Reading time 6 min
Views 114K
Algorithms *Image processing *
Tutorial

В VK есть группа со следующим описанием:


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

Слева исходная картинка, загруженная 7 июня 2012, справа — какая она сейчас.


КДПВ


Видео

Такая разница очень подозрительна. Попробуем разобраться, что происходило в течение этих 7 лет. Для ознакомления есть статья на Медузе про эту группу, но нас будет интересовать только техническая сторона.

Total votes 219: ↑213 and ↓6 +207
Comments 99

Создание и проверка подписей образов контейнеров: Интеграция Notary V1 и Connaisseur в Kubernetes

Reading time 18 min
Views 2.4K
DevOps *Kubernetes *
Sandbox

В статье представлен пример использования системы создания и проверки подписей образов Docker Content Trust и интеграции в Kubernetes с использованием сервера Notary и специализированного Admission Controller - Connaisseur.

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

Читать далее
Total votes 8: ↑8 and ↓0 +8
Comments 0

Земля круглая, вода мокрая, JPEG шакалит, небо голубое… Или нет?

Reading time 11 min
Views 15K
Programming *Algorithms *Image processing *Mathematics *

Вы можете сказать, что один факт выбивается из этого ряда в заголовке, потому что он не так очевиден, как остальные. Еще лет 10-15 назад я бы никогда не подумал, что тут могут быть возражения, а сейчас уже и не удивляюсь, что приходится объяснять простые истины: дело в том, что планеты обладают очень большой массой, поэтому гравитация стремится придать им форму шара. Вот и все! Хотел бы на этом закончить статью и поблагодарить за внимание.

Читать далее
Total votes 139: ↑139 and ↓0 +139
Comments 46