|
|
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Приветствую! Подскажите, какую базу и поле какого формата удобнее использовать, чтобы осуществлять поиск по содержимому изображения. Есть приложение, на вход которого будет подаваться изображение небольшого размера. Нужно будет конвертировать изображение, например, в Base64 (это предположительно) и искать в базе данных есть ли такое изображение: если нет, сохранить в базу данных, если есть - выдать сообщение о существовании. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 15:11 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Уточните. Если сравнивать по байтам, то задача сводится к сравнению и индексированию двочиных файлов и изображения тут не при чем. Но вы делаете акцент на изображении. Хотите ли вы сравнивать именно то что изображено, а не то что находится в файле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 15:17 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Изначальная задача стоит сравнение именно изображений. Но в будущем, может задача видоизменится, все может быть. Если не сложно, можете подсказать для обоих случаев? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:00 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Вообще если речь идёт о поиске части изображения в большем изображении,то задача не тривиальная и базируется на высшей математике (в частности детерминант(определитель) матрицы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:18 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
irbis_alВообще если речь идёт о поиске части изображения в большем изображении,то задача не тривиальная и базируется на высшей математике (в частности детерминант(определитель) матрицы). Нет, сохранятся будет все изображение и нужен поиск в БД по существующим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:33 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
По условию изображение вы кодируете base64, из него вычисляйте хеш, например, sha1 -- этот хеш и храните в БД в виде строки. По этому хешу и ищите. Профит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:56 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
qi_ipirbis_alВообще если речь идёт о поиске части изображения в большем изображении,то задача не тривиальная и базируется на высшей математике (в частности детерминант(определитель) матрицы). Нет, сохранятся будет все изображение и нужен поиск в БД по существующим Тогда...согласен с предыдущими ораторами :-) Высчитываем некий хеш и по нему ищем. (А способы получения этого хэша ...тут на любителя) Я бы просто высчитал контрольную сумму(сложение всех байт) Количество байт контрольной суммы сами определите.(Так чтоб соблюсти уникальность)..и там посмотрел...нужен ли мне алгоритм хеша посложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 19:22 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
qi_ipИзначальная задача стоит сравнение именно изображений. Но в будущем, может задача видоизменится, все может быть. Если не сложно, можете подсказать для обоих случаев? Спасибо! если речь идет о изображении как о наборе байтов, то можно сохранять в базе хэши этих байтараев и по хэшам искать как по простому тексту. база любая. хоть скл хоть носкл. т.к. тут по-сути банальный селект по полному содержимому поля. если же по куску изображения и мы там дальше говорим (не вдаваясь в работу анализаторов) как о наборе байтов, типа содержится ли в таком-то байтаррае вот такой то байтаррай поменьше - то там кмк что-нить из носкл было бы побыстрее. но здесь уже речь о том как вообще оформлен документ изображения, жпег там тиф или че еще. может в жпеге мужик с носом будет один бинарный байтарай, а нос от мужика - другой, который своей частью вообще никак не будет совпадать с полной картинкой мужика с носом )) думаю, на эту тему уже есть скорее всего что-то готовое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 19:41 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Usmanazsxsha1 https://ru.wikipedia.org/wiki/SHA-1#Реальный_взлом:_SHAttered_(нахождение_коллизий) автор23 февраля 2017 года специалисты из Google и CWI объявили о практическом взломе алгоритма, опубликовав 2 PDF-файла с одинаковой контрольной суммой SHA-1. Это потребовало перебора 9*1018 вариантов, что заняло бы 110 лет на 1 GPU [7] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 19:55 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Usman, Hett -- каюсь. Я не занимаюсь "ерундой". Для меня коллизия в sha1 -- это по сути нулевая вероятность. Но, если это для ТС критично, можно поступить как google взять sha 256 или ваще 512, чтобы быть круче гугла. Кстати два вопроса: 1. читали ли вы в вики авторХотя теоретически SHA-1 считается взломанным (количество вычислительных операций сокращено в 280-63 = 131 072 раза), на практике подобный взлом неосуществим, так как займёт пять миллиардов лет. 2. 2^35 = 34_359_738_368. Как бы вы предложили хранить 34 млрд записей с селектом на идентичность и добавлением новых, если ничего не найдено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2018, 05:55 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
"Взлом" SHA-1 это очень громкая фраза. Что за этим стоит? С точки зрения гугла. Искусственная генерация двух pdf-документов специально нацеленная на совпадения хешей? Что это доказывает? Какова информационная ценность этих синтетических документов? Грозит-ли такая ситуация автору? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2018, 09:25 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
maytonГрозит-ли такая ситуация автору?Какая разница - грозит или нет? SHA1 - устаревший алгоритм хэширования, который надо выводить из эксплуатации и разработки. Эрго: если SHA1 не является критичным (на другом хэше просто не работает) - не использовать. Dixi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2018, 12:31 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
да что докопались до этого sha1, azsx изначально написал " например , sha1", все остальное зависит от пожеланий автора, может ему и crc32 сойдет, может это курсовой проект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2018, 12:55 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Написал бы "например - sha256" - претензий бы не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2018, 13:45 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Да без разницы. В любом случае любые хэши используются только для того, чтобы отсечь заведомо несовпадающие данные для уменьшения последующего объёма сравнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2018, 14:37 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
авторSHA1 - устаревший алгоритм хэширования, который надо выводить из эксплуатации и разработки. Апогей хайп мышления. Нет, моё мнение, для задачи вычисления хеша изображений в размерах более чем 32*32*256 -- алгоритма используемого в sha1 достаточно. Риск получить коллизию практически равен нулю. Напомню, что торрент построен на md5 и коллизии встречаются крайне редко (практически никогда). авторНаписал бы "например - sha256" - претензий бы не было. Отвечу длинно. 1. К счастью для многих, с таким мышлением как у Вас бывают начальники. Золотые люди, работнику достаточно читать по пол часа вечером хабр и гиктаймс и говорить с начальником о прочитанном. И повышается рейтинг специалиста в глазах руководителя. 2. Как известно в усечённом варианте sha2 коллизии были найдены ещё в 2008 году. Таким образом странно ваше желание продвигать именно этот алгоритм, логичнее продвигать sha3. 3. Например, мне доверили писать софт для марсохода, я использую хеши и меня предупредили, если в наборе хешов будут выявлены коллизии, марсоход сломается, а меня лишат зарплаты на три месяца вперёд, чтоб я понял. Если на чаше весов будет моя зарплата, то я для "надёжности" использую два разных алгоритма хеширования одновременно, например, md5 и sha1. Вкратце, я хочу писать софт для марсохода или потусоваться рядом с кнопкой запускающей ядерную ракету. Ну просто... 4. Последнее. Я весьма слаб в понимании хешей. Ну знаю я, что sha -- это общее название сертифицированных в сша алгоритмов, могу найти их описание, почитать. Но если Вы хотите со мной поговорить об этом, ну его нафиг, я ничо не понимаю в этих математиках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 04:54 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВ любом случае любые хэши используются только для того, чтобы отсечь заведомо несовпадающие данные для уменьшения последующего объёма сравнений.Если бы - "прям здесь" порываются использовать "два разных хэша". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 05:40 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Если хотят использовать алгоритмы быстрого поиска (по сути - кластеризации) то используют хеши. Если хотят гарантии уникальности ключа - то безут из базы sequence.nextval. А вообще мне кажется что мы все куда-то не туда зашли и обсуждаем вопросы не релевантные по отношению к тому что спрашивал автор. Это что? Что болит - о том и говорим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 08:42 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Почему бы автору не искать в базе похожие куски музыкальных файлов? Или ноты в файлах? Задача странная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 10:09 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Почему? Задача очень востребованная. Особенно если ввести условие что С изображением работали. Корректировали цветовые кривые. Делали crop e.t.c ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 10:47 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
mayton, Да)). Она просто другого порядка. А какого, ТС и сам пока не знает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 11:02 |
|
||
|
Поиск изображения в базе данных
|
|||
|---|---|---|---|
|
#18+
Не понял, что имеется ввиду под поиском изображения. Если нужно искать по точному совпадению, то хранить изображения в виде BLOB или внешних файлов (в базе хранятся ссылки на них), а для индексации использовать хеши. Но возможно, имелся ввиду поиск изображений по сходству. Например, распознавание глупых рож или автомобильных номеров, то это задача решённая, но воспользоваться решением непросто: это тема "машинное обучение". Есть библиотеки и обширная литература, так что программировать надо мало, но трудно понять, как этим пользоваться. В общем, с непривычки отвести решению задачи до полугода. Большая часть времени уйдёт на изучение темы. Непосредственно к базам это не относится, разве что для базы Oracle 12c есть модуль Machine Learning and Advanced Analytics, реализующий популярные алгоритмы машинного обучения, с возможность доступа из PL/SQL. Но пользоваться именно этой библиотекой необязательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 13:20 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39579070&tid=2122355]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 184ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...