Память процессора... Как обратиться? Заполнить? Освободить?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение AlexVinS » 13.06.2012 06:08:43

Объясняю для художников Целевая функция для изображения - это ... художественный замысел автора изображения. Ваша задача выразить его ... числом. Это число и будет хешем изображения.
Аватара пользователя
AlexVinS
новенький
 
Сообщения: 95
Зарегистрирован: 27.01.2009 01:18:01

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение vitaly_l » 13.06.2012 14:38:54

AlexVinS писал(а):Ваша задача выразить его ... числом. Это число и будет хешем изображения.

Так значит всё таки число?...

Ох уж эти программисты, ох уж эти сказочники...
Есть изображение 32х32 px...
Если я правильно понял то.., если изображение пропустить через функцию md5 - то получится хэш изображения... Правильно???
И вот тут наступает кульминация, которую художники понять не могут...

Когда md5 проверяется на: true или false - художникам понятно, а когда сравниваются md5 изображений, что сравнивается???
Можно сравнивать кол-во чёрных и белых пикселей... Это безусловно отбросит 55-77% итераций... Это делается хэшем???
Или там действительно хитрое число-функция??? Есть кто знает???



.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение Mr.Smart » 13.06.2012 15:08:46

vitaly_l, читать будете?
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение vada » 13.06.2012 15:17:25

Если вы будете тупо по цветовым битам получать хеш и его сравнивать, то вы получите среднюю температуру по больнице.
Приведу пример. У вас картинка есть 32х32. есть для нее хеш. Вы ее взяли и в графическом редакторе осветлили чуток. А потом вычислили хеш и этот новый хеш сравнили со старым. И чудо! ОНИ РАЗНЫЕ!!!!!! Для вас картинка осталась та же самая, да и осветленная от старой на глаз не отличается. Хоть двое очков надень. А вот для компьютера они разные.
Вот тут и вопрос: - Вам шашечки или ехать? Вам надо определить одно ли и тоже изображено на картинке, или они одним битом отличаются? Если битом отличается, то mb5 вас устроит. Если надо определить что на картинках изображены совсем разные люди, то это совсеееееем другое... И определение хеша тут будет на порядок сложнее чем алгоритм md5.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение vitaly_l » 13.06.2012 19:11:06

Mr.Smart писал(а):читать будете?

прочитал - хэш стал проясняться...... алгоритм Луна - понравился (простой и понятный)... Но не про картинки он...
vada писал(а):определение хеша тут будет на порядок сложнее чем алгоритм md5

Суть в том что, все алгоритмы (которые мне удалось анализировать) возвращают: среднюю температуру по больнице...
vada писал(а): хеш сравнили со старым. И чудо! ОНИ РАЗНЫЕ!!!!!! Для вас картинка осталась та же самая

:P :arrow: Так хэш позволяет идентифицировать только 99.99% совпадение???!...
:roll: (если да то тогда хэш туфта) Суть в том что, изображения чуть отличаются... (могут сдвинуться на N пикселей или цвет поменять) :wink:

:cry: :arrow: А касаемо хэш, мне всё равно не понятно как хитро-умные и мудрые программисты делают кэш из хэш для быстрого поиска текста???


...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение alexey38 » 14.06.2012 09:29:03

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

Отсюда существенные критерии различности нужно использовать для вычисления контрольного хэша или нескольких хэшей.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение vitaly_l » 14.06.2012 09:47:07

alexey38 писал(а):Если требуется поиск подобия - то совершенно другие алгоритмы.

Ага - это прогресс. (в смысле: хэш - умный и может выбирать подобия...)

alexey38 писал(а):Например, при поиске смыслового подобия русского текста слова вычищаются до корней, и далее разделяются по их значимости (существительные, прилагательные, глаголы, подлежащие, сказуемое и т.п.).

Ого себе... так сложно... я думал там всё проще... круто... СПАСИБО.

Но мне ещё хочется понять суть... т.к. даже если разложить слова до корня, то всё равно мне не понятно как делают кэш из хэш??? Там в кэш, указывают хэш из корня - для каждого слова??? Ну... хорошо... верю... так поиск - сработает много быстрее...

:? :arrow: :roll: А у картинки где корень??? :cry:


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение alexey38 » 14.06.2012 10:14:06

Про картинки и их сравнение. Сканер и фотоаппарат дают разную цветовую гамму. Соответственно первое преобразование - это приведение к единой цветовой гамме. Например, на примере функций фотошопа делает "авто уровни" (Auto level) и переводит в оттенки серого, также переводиться к единому разрешению. Можно попробовать в обратном порядке (уже не помню, как лучше, давно этим занимался).

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

Сама по себе функция хэша может быть разная. Термин не дает строгой формулы. При хешировании лиц можно вычислять массив чисел: пропорции ширины и высоты лица, положения глаз, носа, рта, некие другие пропорции, как по размерам, так и по расположению. Имея массив чисел можно вычислить некую сумму этих чисел.

Принципиальное значение - это нужно искать похожие или нужно различать похожие. Так как точного поиска сделать нельзя, важно решить, что лучше найти несколько похожих и дальше уже привлечь пользователя к окончательному выбору из небольшого перечня вариантов. Или лучше не найти ничего, чем дать ложное совпадение. Эти два подхода требуют разных хэш функций. В одном случае хэш похожих должен быть близким. А в другом хэш похожих должен быть максимально разнесен.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение vitaly_l » 14.06.2012 10:30:50

alexey38 писал(а):В одном случае хэш похожих должен быть близким. А в другом хэш похожих должен быть максимально разнесен.

Это мне понятно,

мне непонятно:
:cry: как производятся вычисления (или запись) по сложению контрольных сумм массива???
Там априори получается слишком много коллизий(совпадений)...

А потом непонятно как происходит сравнение, т.к. разброс сумм, грубо говоря, при инвертации 100% - противоположный.
авто уровни - кстати, меняют изображения противоположно оч. сильно, и это зависит от буквально от одного пикселя...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение alexey38 » 14.06.2012 11:01:19

vitaly_l писал(а):мне непонятно:
:cry: как производятся вычисления (или запись) по сложению контрольных сумм массива???
Там априори получается слишком много коллизий(совпадений)...


1. У Вас должны быть сформулированы четкие критерии сходства и различия. Пока этого нет, нельзя предложить и формулу.
2. Примером хэш функции для идентификации людей может быть дата их рождения в формате дд.мм.гг, это легко кодируется в 16 битное число (5 бит на деть, 4 бита на месяц, и 7 бит на год). Вот Вам и хэш. А если добавить рост и вес, и получить 32 битное число, то коллизий можно сократить до минимума.
3. Используя пример хэша из п.2. меняя расположение битов при кодировке можно сделать так, что одногодки будут рядом или разбросаны. Если Вы отбираете танкистов по росту, то рост будет в самой старшей части, если хотите поздравить с днем рождения, то месяц будет на самом старшем месте.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение vitaly_l » 14.06.2012 11:34:04

alexey38 писал(а):то рост будет в самой старшей части, если хотите поздравить с днем рождения, то месяц будет на самом старшем месте

Это у меня более менее прорисовывается(осознаётся)...

alexey38 писал(а):У Вас должны быть сформулированы четкие критерии сходства и различия. Пока этого нет, нельзя предложить и формулу.

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



.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение alexey38 » 14.06.2012 11:50:43

vitaly_l писал(а):Мне не нужна формула... Мне нужно понять(осознать) как это работает... или точнее, что уже придумывали в этом плане программисты? Примеры хэшей из преобразования в хэш слов - дают понятие как работает хэш... однако, на изображение такие преобразования наложить нереально...


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

Если Вам нужны общие советы, то ответ находится не в области программирования, а в Вашей предметной области. Вы должны вначале сформулировать четкие критерии различий и сходства, а уже программисты Вам после смогут посоветовать как набор критериев свести в некое значение хэш функции. По сути у Вас должен быть некий ручной алгоритм решения задачи, и по ее алгоритмизации Вы можете задавать вопросы и получать ответы. А пока Вы пытаетесь зайти с совершенно другой стороны. Вы вначале привязались к оптимизации кэш-памяти процессора, сейчас привязались к хэшу. Для общего развития это полезно. Но для решения конкретной задачи нужно играть от задачи, а не от оторванных от задачи технологий.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Память процессора... Как обратиться? Заполнить? Освободи

Сообщение vitaly_l » 14.06.2012 12:04:49

alexey38 писал(а):Вы вначале привязались к оптимизации кэш-памяти процессора, сейчас привязались к хэшу.

Я изучаю...

:!: :roll: :arrow: :P СПАСИБО ВСЕМ, свершилось чудо... художники - поняли как устроен хэш и как его готовить... :arrow: (наверное-поняли) :cry:



.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 230

Рейтинг@Mail.ru