Хранилище обратного поиска изображений в реляционной базе данных
Итак, этот вопрос похож на то, что мне нужно, но ответы там не совсем совпадают. Я ищу способ взять набор дескрипторов SURF и сохранить их в базе данных MySQL, чтобы я мог взять изображение от пользователя и быстро выполнить поиск в обратном направлении.
Что я делаю сейчас
На данный момент я беру список дескрипторов, данных мне jOpenSurf, перебираю их и преобразую в две строки по 64 символа. Благодаря этому я могу очень легко запрашивать и находить точные совпадения, но я не просто хочу точных совпадений, я бы хотел сравнить функции.
Что (я думаю) мне нужно сделать
После небольшого онлайн-исследования и просмотра кода сравнения, предоставленного jOpenSurf, я думаю, что мне нужно сохранить векторное значение каждой интересующей точки в базе данных, чтобы я мог сравнить это. Но вот где я застрял.
С чем мне нужна помощь
Как в мире я могу сохранить векторное значение в базе данных MySQL, чтобы я мог сделать сравнение на соответствие сходства на изображениях?
1 ответ
Я не знаю ничего в mysql, которое позволило бы исходное сравнение векторов - некоторые люди задавались вопросом, позволит ли это геопространственный модуль, но единого мнения не было (например, функция косинуса на векторах).
Вам нужно будет оценить оценки сходства за пределами базы данных и сохранить их в базе данных после оценки (например, сохранить 5 лучших совпадений на изображение в базе данных). Предполагая, что вы используете алгоритм симметричного скоринга, вам нужно всего лишь обновить базу данных максимум для N изображений, чтобы управлять N подобными изображениями для каждого нового оцениваемого изображения.
Существует некоторая интересная работа, использующая базу данных обратного индекса (например, поисковую систему) для обеспечения поиска релевантности изображения на основе как функций изображения, так и дополнительных метаданных или текста, если вы этого пожелаете: http://www.mendeley.com/research/lire-lucene-image-retrieval-an-extensible-java-cbir-library/