Индекс по изображениям для доступа к данным в базе данных - PullRequest
0 голосов
/ 10 апреля 2009

У нас есть структура Trie для эффективного доступа к данным, когда ключом этого набора данных является строка. Какой будет наилучший индекс, если ключом к набору данных является изображение?

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

Помогает ли хеширование в этом случае? Я имею в виду хеширование изображения в уникальное число, в зависимости от значений пикселей.

Пожалуйста, поделитесь любыми указателями на это.

ура

Ответы [ 3 ]

2 голосов
/ 10 апреля 2009

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

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

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

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

1 голос
/ 10 апреля 2009

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

Если вы реализуете что-то, для чего вы хотите сравнить два изображения или быстро найти похожие изображения в дереве, вы можете рассмотреть возможность использования заголовка изображения в формате GIF или JPEG в качестве начала ключа. Это приведет к тому, что изображения с аналогичным типом, размером, индексными цветами и т. Д. Будут сгруппированы рядом друг с другом в структуре Trie. Затем вы можете вычислить хеш для изображения, только если произошло столкновение (то есть несколько изображений в Trie с одинаковым заголовком).

1 голос
/ 10 апреля 2009

Я не уверен на 100%, что вы пытаетесь сделать, но хеширование должно дать вам уникальную строку для идентификации изображения. Вы не указали свой язык, но у большинства есть функция для хеширования данных всего файла, так что вы можете просто запустить файл изображения через него. (Например, PHP имеет md5_file())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...