stas84 2 Опубликовано: 14 января 2020 Рассказать Опубликовано: 14 января 2020 Через доп. поле формата изображение гружу картинки на сервер, но уже не помню какие картинки грузил, а какие нет. Есть ли какое платное или бесплатное решение чтобы, допустим при загрузке фото через доп поле шла проверка по похожести изображения? Подскажите пожалуйста, очень нужно. Готов рассмотреть любой вариант. Цитата Ссылка на сообщение Поделиться на других сайтах
mr. Freeman 11 Опубликовано: 14 января 2020 Рассказать Опубликовано: 14 января 2020 Написать маленькую нейросеть на DLE, отличная идея. Цитата Ссылка на сообщение Поделиться на других сайтах
stas84 2 Опубликовано: 15 января 2020 Рассказать Опубликовано: 15 января 2020 Автор Мне кажется вы усложняете задачу. ImageMagick Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 943 Опубликовано: 15 января 2020 Рассказать Опубликовано: 15 января 2020 15.01.2020 в 04:53, stas84 сказал: Мне кажется вы усложняете задачу. ImageMagick Расширить Он не усложняет, он бабок хочет. Что ты хочешь от профессионального флудера Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 168 Опубликовано: 15 января 2020 Рассказать Опубликовано: 15 января 2020 Есть несколько разных вариантов https://habr.com/ru/company/io/blog/259549/ но все требует именно написания персонального плагина и установки на сервер доп. по. Готового вы вряд ли найдете, такие вещи как правило только на заказ делаются под конкретный проект. Цитата Ссылка на сообщение Поделиться на других сайтах
stas84 2 Опубликовано: 15 января 2020 Рассказать Опубликовано: 15 января 2020 (изменено) Автор <!DOCTYPE html> <?php $im1 = new Imagick('1.jpg'); $im2 = new Imagick('2.jpg'); $res = $im1->compareImages($im2, Imagick::METRIC_MEANSQUAREERROR); $d = round($res[1]*1000); // приводим значение разности к удобному виду echo $d; ?> Я поставил imagick и выполнил этот код, он сравнивает две картинки, похоже работает. Теперь вопрос, кто сможет написать модуль, который будет искать похожие картинки по базе или при добавлении сравнивать каждый раз. При добавлении новой новости я так понимаю сравнение может быть долгим если много картинок, так что возможно лучшее решение что-то типа обслуживания базы. Изменено 15 января 2020 пользователем stas84 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 168 Опубликовано: 15 января 2020 Рассказать Опубликовано: 15 января 2020 15.01.2020 в 05:55, stas84 сказал: Теперь вопрос, кто сможет написать модуль, который будет искать похожие картинки по базе или при добавлении сравнивать каждый раз. Расширить Картинки не в базе. Это файлы. Перебирать каждый раз все файлы, ваш сервер ляжет как бобик и сдо... Вам не подойдет этот вариант. Я бы вам рекомендовал смотреть в сторону libpuzzle и при загрузке делать подпись сохранять подписи в базе, а потом по базе делать сравнение уже расхождение в подписях. Тоже неплохо по нагрузке получится, но уже лучше. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
MSK 290 Опубликовано: 15 января 2020 Рассказать Опубликовано: 15 января 2020 15.01.2020 в 06:04, celsoft сказал: при загрузке делать подпись сохранять подписи в базе, а потом по базе делать сравнение уже расхождение в подписях. Расширить Совершенно верно, а если нет возможности добавить библиотеку, то хранить, например, md5 содержания файла и тогда только полностью одинаковые картинки можно будет отсекать. Цитата Ссылка на сообщение Поделиться на других сайтах
stas84 2 Опубликовано: 15 января 2020 Рассказать Опубликовано: 15 января 2020 (изменено) Автор А нельзя сделать задержку при сканировании всех изображений чтобы не повесить сервер? Если это будет как модуль в админке, то запустил его и всё, ждешь когда он закончит искать похожие картинки. С md5 тоже думал, но не совсем понимаю как оно пойдет, ведь картинки в основном тянуться с интернета и они могут иметь разный md5 например если размер картинки был изменен. Вариант с md5 хорош если имеется своя какая-то постоянная коллекция картинок. Изменено 15 января 2020 пользователем stas84 Цитата Ссылка на сообщение Поделиться на других сайтах
crafic 34 Опубликовано: 15 января 2020 Рассказать Опубликовано: 15 января 2020 я делал такой модуль для одного сайта обои на рабочий стол. реализовал через phash https://habr.com/ru/post/120562/ скорость примерно 0.1 - 0.3сек . картинок около 5000 Цитата Ссылка на сообщение Поделиться на других сайтах
MSK 290 Опубликовано: 15 января 2020 Рассказать Опубликовано: 15 января 2020 15.01.2020 в 07:50, stas84 сказал: А нельзя сделать задержку при сканировании всех изображений чтобы не повесить сервер? Расширить Можно сделать все, но сканирование каждый раз всех картинок это бесполезная трата процессорного времени и ресурса накопителя. Цитата Ссылка на сообщение Поделиться на других сайтах
mr. Freeman 11 Опубликовано: 16 января 2020 Рассказать Опубликовано: 16 января 2020 15.01.2020 в 05:10, alex32 сказал: Он не усложняет, он бабок хочет. Что ты хочешь от профессионального флудера Расширить Не преувеличивайте всё таки, главный флудераст форума тут явно вы. 15.01.2020 в 05:50, celsoft сказал: Есть несколько разных вариантов https://habr.com/ru/company/io/blog/259549/ но все требует именно написания персонального плагина и установки на сервер доп. по. Готового вы вряд ли найдете, такие вещи как правило только на заказ делаются под конкретный проект. Расширить Ещё это потребует глубокой переделки структуры хранения изображений в DLE (для тех же хэшей), что в будущем будет вызывать много дискомфорта по переписыванию кода под новые версии, в которых наверника будет что то добавлятся и менятся в структуре данных касательно изображений. Из коробки пора бы уже сделать хранение изображений на стораджах + проверку дубликатов и не хранить одно и тоже по 1*N раз. 15.01.2020 в 05:55, stas84 сказал: <!DOCTYPE html> <?php $im1 = new Imagick('1.jpg'); $im2 = new Imagick('2.jpg'); $res = $im1->compareImages($im2, Imagick::METRIC_MEANSQUAREERROR); $d = round($res[1]*1000); // приводим значение разности к удобному виду echo $d; ?> Я поставил imagick и выполнил этот код, он сравнивает две картинки, похоже работает. Теперь вопрос, кто сможет написать модуль, который будет искать похожие картинки по базе или при добавлении сравнивать каждый раз. При добавлении новой новости я так понимаю сравнение может быть долгим если много картинок, так что возможно лучшее решение что-то типа обслуживания базы. Расширить Вы уверены что вам подойдёт автоматический анализ? Как правило он вам может и подпоритить вполне нормальные изображения, которые похожи, но не то же самое. Лучше уж делать ставку на полные дубликаты, это и в реализации проще. 15.01.2020 в 07:45, MSK сказал: Совершенно верно, а если нет возможности добавить библиотеку, то хранить, например, md5 содержания файла и тогда только полностью одинаковые картинки можно будет отсекать. Расширить Но не md5, а что то более уникальное, что бы уменьшить вероятность коллизий. 15.01.2020 в 07:50, stas84 сказал: А нельзя сделать задержку при сканировании всех изображений чтобы не повесить сервер? Если это будет как модуль в админке, то запустил его и всё, ждешь когда он закончит искать похожие картинки. С md5 тоже думал, но не совсем понимаю как оно пойдет, ведь картинки в основном тянуться с интернета и они могут иметь разный md5 например если размер картинки был изменен. Вариант с md5 хорош если имеется своя какая-то постоянная коллекция картинок. Расширить В архитектуре DLE вам так и так будет сложно это сделать, т.к. у DLE изображения в самих новостях привязываются по путям к изображениями, а не по условному ID записи в БД, что заставит вас во первых менять логику загрузчика, во вторых добавлять те же хэши в _images, и уже при загрузке проходиться по таблице _images в поисках дубликата, но это всё равно не решает проблему, когда изображение будет удалятся из первой новости, но при этом используясь в других новостях, для обхода этого уже по сути нужно садится и городить ещё большие костыли, или переписывать всю систему хранения изображений, что впринципе представляется сомнительной затеей. 15.01.2020 в 13:42, MSK сказал: Можно сделать все, но сканирование каждый раз всех картинок это бесполезная трата процессорного времени и ресурса накопителя. Расширить Можно перефразировать, при объёмах изображений не равных десяткам и сотням террабайтов, это вообще сомнительная затея. Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 943 Опубликовано: 16 января 2020 Рассказать Опубликовано: 16 января 2020 16.01.2020 в 01:43, mr. Freeman сказал: Не преувеличивайте всё таки, главный флудераст форума тут явно вы. 15.01.2020 в 05:50, celsoft сказал: Расширить Да нет дружок, по флуды ты явно рекорд побил. На форуме всего ничего, а нафлудил уже на пару лет вперед Цитата Ссылка на сообщение Поделиться на других сайтах
mr. Freeman 11 Опубликовано: 16 января 2020 Рассказать Опубликовано: 16 января 2020 16.01.2020 в 02:14, alex32 сказал: Да нет дружок, по флуды ты явно рекорд побил. На форуме всего ничего, а нафлудил уже на пару лет вперед Расширить Вот тут можно посмотреть ваш бесполезный флуд: https://forum.dle-news.ru/profile/71164-alex32/content/?type=forums_topic_post&change_section=1 Чуть ли не большая часть бесполезный копипаст или ещё чего, так что уже можете успокоить свою пятую точку, тем более что по мимо флуда были и оскорбления, и мат, и чего только не было. Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 943 Опубликовано: 16 января 2020 Рассказать Опубликовано: 16 января 2020 16.01.2020 в 02:34, mr. Freeman сказал: Чуть ли не большая часть бесполезный копипаст или ещё чего, так что уже можете успокоить свою пятую точку, тем более что по мимо флуда были и оскорбления, и мат, и чего только не было Расширить Обтекай :) Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 168 Опубликовано: 16 января 2020 Рассказать Опубликовано: 16 января 2020 16.01.2020 в 01:43, mr. Freeman сказал: Ещё это потребует глубокой переделки структуры хранения изображений в DLE (для тех же хэшей), что в будущем будет вызывать много дискомфорта по переписыванию кода под новые версии, в которых наверника будет что то добавлятся и менятся в структуре данных касательно изображений. Из коробки пора бы уже сделать хранение изображений на стораджах + проверку дубликатов и не хранить одно и тоже по 1*N раз. Расширить В принципе не соответствует действительности. Причем здесь хранение информации о картинках в DLE. Для хешей создается отдельная таблица, никак не привязанная к структуре DLE, где хранится хеш и id новости. Все. Не нужно лезть туда куда не следует и нет надобности, а именно в таблицы DLE и в структуру хранения картинок DLE, эта задача этого не требует в принципе. Если писать правильно, то работать будет на любой версии DLE и всегда. В дистрибутиве этого не будет, потому как задача специфическая и требует специфического серверного ПО. Цитата Ссылка на сообщение Поделиться на других сайтах
mr. Freeman 11 Опубликовано: 16 января 2020 Рассказать Опубликовано: 16 января 2020 16.01.2020 в 10:29, celsoft сказал: В принципе не соответствует действительности. Причем здесь хранение информации о картинках в DLE. Для хешей создается отдельная таблица, никак не привязанная к структуре DLE, где хранится хеш и id новости. Все. Не нужно лезть туда куда не следует и нет надобности, а именно в таблицы DLE и в структуру хранения картинок DLE, эта задача этого не требует в принципе. Если писать правильно, то работать будет на любой версии DLE и всегда. В дистрибутиве этого не будет, потому как задача специфическая и требует специфического серверного ПО. Расширить Что нам даст хеш и id новости без привязки к конкретному изображению? Не забываем о том что нам нужно не только собрать базу хешей, но и знать какой хеш какому изображению принадлежит. И заодно чистить хеши нужно при удалении изображений, а это уже не подпадает под "не нужно лезть туда куда не следует и нет надобности" и лезть нужно будет во многие места кода. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 168 Опубликовано: 17 января 2020 Рассказать Опубликовано: 17 января 2020 16.01.2020 в 14:12, mr. Freeman сказал: Что нам даст хеш и id новости без привязки к конкретному изображению? Не забываем о том что нам нужно не только собрать базу хешей, но и знать какой хеш какому изображению принадлежит. И заодно чистить хеши нужно при удалении изображений, а это уже не подпадает под "не нужно лезть туда куда не следует и нет надобности" и лезть нужно будет во многие места кода. Расширить Использовать имя картинки в этой же таблице где и хеш и id религия не позволяет? Зачем лезть в структуру DLE? Высасываете проблему там где ее нет, либо не видите в голове полной картины построения структуры модуля. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.