Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Поиск изображения в базе данных / 25 сообщений из 43, страница 1 из 2
03.01.2018, 15:11
    #39578980
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Приветствую!
Подскажите, какую базу и поле какого формата удобнее использовать, чтобы осуществлять поиск по содержимому изображения.

Есть приложение, на вход которого будет подаваться изображение небольшого размера. Нужно будет конвертировать изображение, например, в Base64 (это предположительно) и искать в базе данных есть ли такое изображение: если нет, сохранить в базу данных, если есть - выдать сообщение о существовании.

Спасибо!
...
Рейтинг: 0 / 0
03.01.2018, 15:17
    #39578983
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Уточните. Если сравнивать по байтам, то задача сводится к сравнению и индексированию двочиных файлов и изображения тут не при чем. Но вы делаете акцент на изображении. Хотите ли вы сравнивать именно то что изображено, а не то что находится в файле?
...
Рейтинг: 0 / 0
03.01.2018, 17:00
    #39579021
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Изначальная задача стоит сравнение именно изображений. Но в будущем, может задача видоизменится, все может быть. Если не сложно, можете подсказать для обоих случаев?
Спасибо!
...
Рейтинг: 0 / 0
03.01.2018, 17:18
    #39579031
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Вообще если речь идёт о поиске части изображения в большем изображении,то задача не тривиальная и базируется на высшей математике (в частности детерминант(определитель) матрицы).
...
Рейтинг: 0 / 0
03.01.2018, 17:33
    #39579036
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
irbis_alВообще если речь идёт о поиске части изображения в большем изображении,то задача не тривиальная и базируется на высшей математике (в частности детерминант(определитель) матрицы).
Нет, сохранятся будет все изображение и нужен поиск в БД по существующим
...
Рейтинг: 0 / 0
03.01.2018, 18:56
    #39579070
azsx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
По условию изображение вы кодируете base64, из него вычисляйте хеш, например, sha1 -- этот хеш и храните в БД в виде строки. По этому хешу и ищите. Профит.
...
Рейтинг: 0 / 0
03.01.2018, 19:21
    #39579081
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
...
Рейтинг: 0 / 0
03.01.2018, 19:22
    #39579082
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
qi_ipirbis_alВообще если речь идёт о поиске части изображения в большем изображении,то задача не тривиальная и базируется на высшей математике (в частности детерминант(определитель) матрицы).
Нет, сохранятся будет все изображение и нужен поиск в БД по существующим
Тогда...согласен с предыдущими ораторами :-) Высчитываем некий хеш и по нему ищем.
(А способы получения этого хэша ...тут на любителя)
Я бы просто высчитал контрольную сумму(сложение всех байт) Количество байт контрольной суммы сами определите.(Так чтоб соблюсти уникальность)..и там посмотрел...нужен ли мне алгоритм хеша посложнее.
...
Рейтинг: 0 / 0
03.01.2018, 19:41
    #39579092
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
qi_ipИзначальная задача стоит сравнение именно изображений. Но в будущем, может задача видоизменится, все может быть. Если не сложно, можете подсказать для обоих случаев?
Спасибо!
если речь идет о изображении как о наборе байтов, то можно сохранять в базе хэши этих байтараев и по хэшам искать как по простому тексту. база любая. хоть скл хоть носкл. т.к. тут по-сути банальный селект по полному содержимому поля.

если же по куску изображения и мы там дальше говорим (не вдаваясь в работу анализаторов) как о наборе байтов, типа содержится ли в таком-то байтаррае вот такой то байтаррай поменьше - то там кмк что-нить из носкл было бы побыстрее. но здесь уже речь о том как вообще оформлен документ изображения, жпег там тиф или че еще. может в жпеге мужик с носом будет один бинарный байтарай, а нос от мужика - другой, который своей частью вообще никак не будет совпадать с полной картинкой мужика с носом )) думаю, на эту тему уже есть скорее всего что-то готовое.
...
Рейтинг: 0 / 0
03.01.2018, 19:55
    #39579099
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Usmanazsxsha1 https://ru.wikipedia.org/wiki/SHA-1#Реальный_взлом:_SHAttered_(нахождение_коллизий)

автор23 февраля 2017 года специалисты из Google и CWI объявили о практическом взломе алгоритма, опубликовав 2 PDF-файла с одинаковой контрольной суммой SHA-1. Это потребовало перебора 9*1018 вариантов, что заняло бы 110 лет на 1 GPU [7]
...
Рейтинг: 0 / 0
03.01.2018, 23:48
    #39579159
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Вот хорошая статья на хабре была https://habrahabr.ru/post/120562/

Может автору пригодится.
...
Рейтинг: 0 / 0
04.01.2018, 05:55
    #39579188
azsx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Usman, Hett -- каюсь. Я не занимаюсь "ерундой". Для меня коллизия в sha1 -- это по сути нулевая вероятность. Но, если это для ТС критично, можно поступить как google взять sha 256 или ваще 512, чтобы быть круче гугла.
Кстати два вопроса:
1. читали ли вы в вики
авторХотя теоретически SHA-1 считается взломанным (количество вычислительных операций сокращено в 280-63 = 131 072 раза), на практике подобный взлом неосуществим, так как займёт пять миллиардов лет.
2. 2^35 = 34_359_738_368. Как бы вы предложили хранить 34 млрд записей с селектом на идентичность и добавлением новых, если ничего не найдено?
...
Рейтинг: 0 / 0
04.01.2018, 09:25
    #39579201
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
"Взлом" SHA-1 это очень громкая фраза. Что за этим стоит? С точки зрения гугла.

Искусственная генерация двух pdf-документов специально нацеленная на
совпадения хешей? Что это доказывает?

Какова информационная ценность этих синтетических документов?

Грозит-ли такая ситуация автору?
...
Рейтинг: 0 / 0
04.01.2018, 12:31
    #39579285
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
maytonГрозит-ли такая ситуация автору?Какая разница - грозит или нет?
SHA1 - устаревший алгоритм хэширования, который надо выводить из эксплуатации и разработки.
Эрго: если SHA1 не является критичным (на другом хэше просто не работает) - не использовать. Dixi.
...
Рейтинг: 0 / 0
04.01.2018, 12:55
    #39579310
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
да что докопались до этого sha1, azsx изначально написал " например , sha1", все остальное зависит от пожеланий автора, может ему и crc32 сойдет, может это курсовой проект.
...
Рейтинг: 0 / 0
04.01.2018, 13:45
    #39579338
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Написал бы "например - sha256" - претензий бы не было.
...
Рейтинг: 0 / 0
04.01.2018, 14:37
    #39579367
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Да без разницы. В любом случае любые хэши используются только для того, чтобы отсечь заведомо несовпадающие данные для уменьшения последующего объёма сравнений.
...
Рейтинг: 0 / 0
05.01.2018, 04:54
    #39579529
azsx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
авторSHA1 - устаревший алгоритм хэширования, который надо выводить из эксплуатации и разработки.
Апогей хайп мышления.
Нет, моё мнение, для задачи вычисления хеша изображений в размерах более чем 32*32*256 -- алгоритма используемого в sha1 достаточно. Риск получить коллизию практически равен нулю. Напомню, что торрент построен на md5 и коллизии встречаются крайне редко (практически никогда).
авторНаписал бы "например - sha256" - претензий бы не было.
Отвечу длинно.
1. К счастью для многих, с таким мышлением как у Вас бывают начальники. Золотые люди, работнику достаточно читать по пол часа вечером хабр и гиктаймс и говорить с начальником о прочитанном. И повышается рейтинг специалиста в глазах руководителя.
2. Как известно в усечённом варианте sha2 коллизии были найдены ещё в 2008 году. Таким образом странно ваше желание продвигать именно этот алгоритм, логичнее продвигать sha3.
3. Например, мне доверили писать софт для марсохода, я использую хеши и меня предупредили, если в наборе хешов будут выявлены коллизии, марсоход сломается, а меня лишат зарплаты на три месяца вперёд, чтоб я понял. Если на чаше весов будет моя зарплата, то я для "надёжности" использую два разных алгоритма хеширования одновременно, например, md5 и sha1. Вкратце, я хочу писать софт для марсохода или потусоваться рядом с кнопкой запускающей ядерную ракету. Ну просто...
4. Последнее. Я весьма слаб в понимании хешей. Ну знаю я, что sha -- это общее название сертифицированных в сша алгоритмов, могу найти их описание, почитать. Но если Вы хотите со мной поговорить об этом, ну его нафиг, я ничо не понимаю в этих математиках.
...
Рейтинг: 0 / 0
05.01.2018, 05:40
    #39579532
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Dimitry SibiryakovВ любом случае любые хэши используются только для того, чтобы отсечь заведомо несовпадающие данные для уменьшения последующего объёма сравнений.Если бы - "прям здесь" порываются использовать "два разных хэша".
...
Рейтинг: 0 / 0
05.01.2018, 08:42
    #39579545
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Если хотят использовать алгоритмы быстрого поиска (по сути - кластеризации) то используют хеши.
Если хотят гарантии уникальности ключа - то безут из базы sequence.nextval.

А вообще мне кажется что мы все куда-то не туда зашли и обсуждаем вопросы не релевантные
по отношению к тому что спрашивал автор. Это что? Что болит - о том и говорим?
...
Рейтинг: 0 / 0
05.01.2018, 10:09
    #39579560
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Почему бы автору не искать в базе похожие куски музыкальных файлов?
Или ноты в файлах?
Задача странная.
...
Рейтинг: 0 / 0
05.01.2018, 10:47
    #39579569
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Почему? Задача очень востребованная. Особенно если ввести условие что
С изображением работали. Корректировали цветовые кривые. Делали crop e.t.c
...
Рейтинг: 0 / 0
05.01.2018, 11:02
    #39579576
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
mayton,
Да)).
Она просто другого порядка. А какого, ТС и сам пока не знает.
...
Рейтинг: 0 / 0
05.01.2018, 13:20
    #39579650
Partisan M
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Не понял, что имеется ввиду под поиском изображения.

Если нужно искать по точному совпадению, то хранить изображения в виде BLOB или внешних файлов (в базе хранятся ссылки на них), а для индексации использовать хеши.

Но возможно, имелся ввиду поиск изображений по сходству. Например, распознавание глупых рож или автомобильных номеров, то это задача решённая, но воспользоваться решением непросто: это тема "машинное обучение". Есть библиотеки и обширная литература, так что программировать надо мало, но трудно понять, как этим пользоваться. В общем, с непривычки отвести решению задачи до полугода. Большая часть времени уйдёт на изучение темы. Непосредственно к базам это не относится, разве что для базы Oracle 12c есть модуль Machine Learning and Advanced Analytics, реализующий популярные алгоритмы машинного обучения, с возможность доступа из PL/SQL. Но пользоваться именно этой библиотекой необязательно.
...
Рейтинг: 0 / 0
05.01.2018, 14:29
    #39579709
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск изображения в базе данных
Partisan MНе понял, что имеется ввиду под поиском изображения.
Да. Повторюсь, что диапазон ТЗ огромен.
От ID до ИИ.
Поэтому вопрос ТС преждевременный и новогодний))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Поиск изображения в базе данных / 25 сообщений из 43, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]