↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы

у меня есть 90 тысяч тайлов карты такого вида https://files.catbox.moe/w1xifl.png и координаты каждого тайла на глобальной карте;
нужно по аплоаду подобного тайла от юзера находить этот тайл среди 90 тысяч и, таким образом, сообщать координаты;
дело в том, что тайл от юзера может немного отличаться от тайла на глобальной карте, а значит вместо обычных хешей нужен locality sensitive hash;
взял https://github.com/trendmicro/tlsh
у них в пдфке сказано, что по очевидным причинам любые заенкоженные файлы сравниваются плохо, в случае картинок надо сравнивать битмапы;
но у пользователя тайл в png, а значит нужно прямо в бравзере конвертировать в битмпап - нашёл такую ерунду с канвасом https://stackoverflow.com/a/29652507
и уже вроде всё заработало, но в разных бравзерах канвас даёт разные результаты (при этом визуально тайлы выглядят одинаково) и там, где в форефоксе разница между двумя тайлами ноль, в хрёме разница оказывается 150+, что гораздо больше, чем разница с другими, гораздо более визуально отличающимися тайлами;

бнвач, подскажи, что проще - искать способ конвертации пнг в бмп без канваса? держать таблицы хешей для каждого бравзера? у каких ещё бравзеров канвас работает отлично от хрома и фаерфокса?

Рекомендовали: @kuro
#IAOIXU / @kogda / 1931 день назад

подскажу: занимаешься какой-то хуйнёй
#IAOIXU/4RT / @anonymous / 1931 день назад

конвертации пнг в бмп

Что за херотень? Слово «bitmap» означает сами данные изображения, а не формат файла .BMP. Хешируй и сравнивай сами массивы данных, раз они всегда одного размера.

#IAOIXU/YUT / @ceyt / 1931 день назад
ГАГАГА
#IAOIXU/RY7 / @l29ah / 1931 день назад

@ceyt сорь, тут https://github.com/trendmicro/tlsh/blob/master/DFRWS_Similarity_Digests.pdf речь именно о формате .bmp
https://files.catbox.moe/fks1z2.png
как раз из-за неудовлетворительных результатов от хеширования байтиков у png начал читать пдфки в репе

#IAOIXU/0GC / @kogda --> #IAOIXU/YUT / 1931 день назад

@kogda Тебе не байтики в PNG нужны, а байтики декодированного изображения из этого файла. BMP они используют только из-за того, что это один из фиксированных несжатых форматов представления этих байтиков.

#IAOIXU/D87 / @ceyt --> #IAOIXU/0GC / 1931 день назад

@ceyt да, это я затупил, спасибо; но для декодирования изображения мне всё равно необходим канвас, так? а он даёт разные результаты в разных браузерах

#IAOIXU/C0D / @kogda --> #IAOIXU/D87 / 1930 дней назад

@kogda Если ты берёшь ImageData с одними и теми же размерами, то логично предположить, что незначительная разница в цветах пикселей из-за разных библиотек цветокоррекции будет мало отражаться на хэше. (Или нет.)

Можешь декодировать файл без canvas через pngjs, можешь использовать специальные алгоритмы сравнения изображений, а не универсальные.

#IAOIXU/LWL / @ceyt --> #IAOIXU/C0D / 1930 дней назад

@ceyt Я бы порекомендовал второе, потому что не уверен, что то, что есть, понимает, что нужно сохранять относительные зависимости между пикселями.

#IAOIXU/T1W / @ceyt --> #IAOIXU/LWL / 1930 дней назад

@ceyt спасибо, сделал с pngjs - именно то, что искал

#IAOIXU/YPB / @kogda --> #IAOIXU/T1W / 1930 дней назад
Ты рожаешь какую-то дичь. Её будет больно рожать, поэтому вот, держи: https://www.pyimagesearch.com/2017/11/27/image-hashing-opencv-python/ http://phash.org/ https://gist.github.com/ksimonyan/211839e770f7b538e2d8 только softmax открути https://pytorch.org/docs/stable/torchvision/models.html
#IAOIXU/GBG / @stiletto / 1930 дней назад

@stiletto спасибо за ссылки! я искал простейший способ делать вот это всё прямо в браузере на страничке с гитхабпейджес

https://www.pyimagesearch.com/2017/11/27/image-hashing-opencv-python/ - написание своей хеш-функции, которая ресайзит картинку до 9*8 и сравнивает яркость соседних пикселей 64 раза, получая 64 бита хеша; интересно читать, но звучит слишком просто, надо сравнивать с результатами других решений;
http://phash.org/ - не разобрался, в чём разница между tlsh, phash и ctph (у ssdeep) и что лучше работает для какой задачи: там математика, а я тупой;
вариант с нейронками ещё более трудоёмкий, ссылки схоронил.

#IAOIXU/MU1 / @kogda --> #IAOIXU/GBG / 1930 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.