Разное

Проверка изображения на уникальность: Онлайн проверка картинок на уникальность

02.07.2023

Содержание

Проверка картинки на уникальность для поисковиков

19 декабря 2014      Интернет-маркетинг, Контент, Копирайтинг, Полезные советы, Продвижение сайтов

Каждый владелец сайта знает: поисковики любят уникальные тексты и очень сердятся на те, которые вы откуда-то скопировали. Так сердятся, что понижают ваши позиции в выдаче. Но оказывается, уникальность картинок тоже важна! О том, как проверить картинки на уникальность и можно ли сделать «рерайтинг» изображений:) – в этой статье.

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

Проще всего воспользоваться поиском по изображениям Гугла images.google.ru или Яндекса images.yandex.ru. Увидите, есть ли что-то похожее в Интернете.

Больше информации даёт сервис tineye.com (бесплатный). Можно выбрать для проверки файл с компьютера или уже размещённый в Сети. Tineye даст информацию об аналогичных или очень похожих картинках со ссылками на источники.

Где взять уникальную картинку?

Проще и надёжнее всего, разумеется, создать самостоятельно: нарисовать или сфотографировать.

Но если такой возможности нет, а проверка картинки показала низкую уникальность? Вы можете “поработать” над чужим изображением с помощью любого графического редактора. Чаще всего это Фотошоп, но можно и пользоваться онлайн-редакторами, о некоторых из которых я рассказывала ЗДЕСЬ.

Загрузили изображение в редактор – что с ним делаем? Есть разные способы уникализации картинок. Например:

  • Отзеркальте картинку и сохраните как новый файл.
  • Поверните изображение под углом не менее 10-15 градусов.
  • Обрежьте края (все или по отдельности). Неплохой эффект даёт принтскрин части большого изображения.
  • Деформируйте картинку: растяните или сожмите по горизонтали или вертикали.
  • Добавьте надпись или водяной знак (например, ваш собственный логотип или адрес сайта).
  • Вставьте изображение в рамку.
  • Замените фон: если у вас на картинке объект на однородном фоне, это не трудно.
  • Измените оттенок с помощью команды Hue/Saturation.
  • Измените размер или разрешение, можно просто уменьшить, используя опять же онлайн-сервисы.
  • Поменяйте расширение: например, jpeg на gif или png.
  • Обязательно переименуйте, измените название файла.

Нельзя с уверенностью утверждать, что каждый из предложенных способов сразу сделает изображение уникальным. Можно пробовать и тестировать. Проверено, что лучший эффект даёт поворот на 10-15 градусов, отзеркаливание и различного рода деформации, а также замена фона, оттенка. А для закрепления результата можно сочетать эти способы.

У вас есть какие-то свои проверенные приёмы уникализации картинок? Или, возможно, вы знаете другие способы проверить картинку на уникальность? Поделитесь в комментариях.

 

Мария Губина, автор проекта “Маркетинг с Азов”, тренер, бизнес-консультант
Спасибо seo-специалисту Владимиру Дичёву за помощь и консультацию.

 

 

В соцсети нас уже больше 20 тыс. Присоединяйтесь, чтобы получать советы по развитию бизнеса и полезные ссылки


* В случае упоминания в тексте социальных сетей Facebook, Instagram, уведомляем: деятельность компании Meta (Facebook, Instagram) признана экстремистской и на территории РФ запрещена.

Как сделать изображение уникальным | Инфоник

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

Photo by Daniel Korpai on Unsplash

Подпишитесь на нас в Facebook, Telegram, Twitter или Instagram, чтобы ничего не пропустить!

Фотографии и рисунки, размещенные внутри текста, не сильно влияют на ранжирование – гораздо важнее наличие уникального текстового материала – но все же могут стать дополнительным плюсом для сайта  при индексации поисковыми роботами.

Если же картинка является инструментом привлечения трафика через Google Images, ее уникальность становится обязательным фактором и скопированные изображения не принесут пользы сайту.

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

Помните, используя чужие изображения, необходимо ссылаться на первоисточник. Но если в материале используется не одно и не два заимствованных фото, размещение большого количества ссылок, даже с тегом nofollow, может включить фильтры поисковых систем.

Ситуации бывают разные. И если у вас есть изображение, но нет уверенности в его уникальности, для начала его стоит проверить.

Проверка уникальности изображения

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

Проверка уникальности с помощью Google

Открыв поисковик Google, находим под адресной строкой кнопку «Картинки».

Кликаем, открывая поиск по изображениям.

В строке поиска находим иконку с изображением фотоаппарата.

Кликнув на него, видим две кнопки: «Вставьте URL-адрес картинки» и «Загрузить изображение» и либо вставляем ссылку на фото, найденное в Интернете, либо загружаем изображение из компьютера.

Результат поиска выдает полные копии проверяемой картинки и изображения, в разной степени напоминающие заданное и не считающиеся копиями.

Если при проверке абсолютных совпадений было не найдено, можно считать изображение уникальным.

Проверка изображения в Яндекс проводится аналогичным образом.

Уникализация изображений

Для начала перечислим неработающие методы, часто ошибочно считающиеся эффективными:

  • Нельзя повысить уникальность картинки, изменив имя файла. При поиске копий алгоритмы поисковиков анализируют внутреннее содержимое файлов, и имя никак не повлияет на уникальность.
  • Также не добавит уникальности смена формата изображения, по той же причине. Если вы измените формат с jpg на png, или любой другой, изображение не станет уникальным.
  • Добавление вотермарки или различного вида рамок также относятся к неработающим способам повышения уникальности изображения. Добавление элементов не помешает поисковику воспринимать изображение как копию.
  • Создание коллажа из нескольких фотографий, кадрирование, изменение цвета или размера – также являются нерабочими способами уникализации – поисковик считает совпадения пикселей и файл будет признан копией.

Со временем и совершенствованием алгоритмов поисковых систем число неработающих методов уникализации будет увеличиваться. Пока же поговорим о работающих методах.

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

Способы уникализации изображений

Главным правилом работающих методов уникализации изображения является изменение последовательности расположения пикселей.

1. Отзеркаливание изображения

Это наиболее простой, но наименее эффективный способ, поскольку кто-то ранее уже мог им воспользоваться. Его можно использовать в комбинации с другими методами. Для этого в Photoshop выбираем: Edit – Transform – Flip Horizontal.

2. Поворот

Оптимальным углом поворота считается 6 и более градусов, правда не стоит поворачивать картинку слишком сильно, чтобы сохранить ее читаемость. Поворот на 6-9 градусов практически не замечается человеческим глазом. В случае создания коллажа можно использовать и больший угол поворота, это будет восприниматься как художественное решение. Чтобы воспользоваться этим инструментом выбираем в Adobe Photoshop: Edit – Transform – Rotate.

3. Искажение частей изображения

В графическом редакторе Adobe Photoshop есть фильтр с названием Искажение, содержащий различные инструменты, изменяющие изображение. Чтобы воспользоваться фильтром идем по пути: Filter – Distort – и далее выбираем из списка и пробуем различные варианты.

Этот метод дает прекрасные результаты, но далеко не всегда приемлем.

4. Изменение пропорций

Этот метод сам по себе не очень эффективен, но может пригодится как вспомогательное средство, в сочетании с другими. В Adobe Photoshop изменить пропорции можно с помощью одного из видов трансформации – Перспективы: Edit – Transform – Perspective, или горячие клавиши: Ctrl+T и далее, зажав клавишу Alt, курсором менять положение ключевых точек, создавая изменения изображения. При использовании этого инструмента меняется изначальное соотношение сторон изображения, прямоугольное изображение превращается в трапецию.

Здесь также важно не переборщить с углом корректировки, чтобы не повлиять на визуальное восприятие изображения.

Выбирая изображение лучше остановить выбор на менее популярных вариантах. Это позволит сэкономить время на обработке.

5. Скриншот

Сам по себе скриншот не сделает изображение уникальным, но если сделать скриншот кадра из видео, например, то вполне можно получить оригинальное изображение.

Чтобы сделать скриншот нужно:

  • развернуть окно видео на весь экран для получения лучшего качества изображения;
  • нажать PrtSc на клавиатуре;
  • открыть в Adobe Photoshop новый документ и вставить в него скриншот: Ctr + V;
  • кадрировать изображение под нужный размер, отрезав лишнее.

Если вам повезло, и никто до вас не сделал скриншот именно этого кадра, вы получите полностью уникальное изображение.

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

Оставить комментарий

Изучение уникальности изображения с помощью документации FiftyOne — FiftyOne 0.20.1

Содержание

При обучении модели наилучшие результаты будут получены при обучении на уникальных выборках данных

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

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

Мы рассмотрим следующие концепции:

  • Загрузка набора данных из FiftyOne Dataset Zoo

  • Применение метода уникальности FiftyOne к набору данных

  • Запуск приложения FiftyOne и визуализация/исследование данных

  • Выявление дубликатов и почти дубликатов изображений в наборе данных

  • Определение наиболее уникальных/репрезентативных изображений в наборе данных

Итак, что на вынос?

В этом учебном пособии показано, как FiftyOne может автоматически находить и удалять практически дублирующиеся изображения в ваших наборах данных и рекомендовать самые уникальные образцы в ваших данных, что позволит вам сразу начать обучение модели с помощью высококачественного загруженного обучающего набора.

Установка

Установите FiftyOne: 9, если вы еще этого не сделали.0003

 !pip установить пятьдесят один
 

Для этого руководства требуются наборы данных Torchvision или наборы данных TensorFlow для загрузки набора данных CIFAR-10, используемого ниже.

Вы можете, например, установить PyTorch следующим образом:

 !pip install torch torchvision
 

Часть 1. Поиск повторяющихся и почти повторяющихся изображений

Распространенной проблемой при создании наборов данных является дублирование данных. Хотя это можно обнаружить с помощью хеширования файлов — как в пошаговом руководстве image_dedupplication — это менее вероятно, если в данных произошли небольшие манипуляции. Еще более важным для рабочих процессов, связанных с обучением модели, является необходимость максимально возможного извлечения мощности из каждой выборки данных; почти дубликаты, которые образцы, которые исключительно похожи друг на друга, по своей сути менее ценны для учебного сценария. Давайте посмотрим, сможем ли мы найти такие дубликаты и почти дубликаты в общем наборе данных: CIFAR-10.

Загрузить набор данных

Для начала откройте оболочку Python. Мы будем использовать набор данных CIFAR-10, который доступен в зоопарке наборов данных FiftyOne:

 импортировать пятьдесят один как fo
импортировать пятьдесят один.  зоопарк как foz
# Загружаем тестовый сплит CIFAR-10
# Загружает набор данных из Интернета, если это необходимо
набор данных = foz.load_zoo_dataset("cifar10", split="test")
 
Сплит-тест уже загружен
Загрузка сплит-теста cifar10
 100% |█████████████| 10000/10000 [прошло 9,6 с, осталось 0 с, 1,0 тыс. отсчетов/с]
Создан набор данных cifar10-test.
 

Набор данных содержит метки истинности земли в поле Ground_truth :

 печать (набор данных)
 
Название: cifar10-тест
Тип носителя: изображение
Количество образцов: 10000
Постоянный: Ложь
Теги: ['тест']
Примеры полей:
    путь к файлу: пятьдесят один.core.fields.StringField
    теги: пятьдесят один.ядро.поля.СписокПоле(пятьдесятодин.ядро.поля.StringField)
    метаданные: Fiftyone.core.fields.EmbeddedDocumentField(fiftyone.core.metadata.Metadata)
    Ground_truth: пятьдесят один.core.fields.EmbeddedDocumentField(fiftyone.core.labels.Classification)
 
 печать (набор данных.первый())
 
<Пример: {
    «идентификатор»: «6066448c7d373b861836bba8»,
    'media_type': 'изображение',
    'filepath': '/home/ben/fiftyone/cifar10/test/data/000001.
jpg', 'теги': BaseList(['test']), «метаданные»: нет, 'ground_truth': <Классификация: { «идентификатор»: «6066448c7d373b861836bba7», 'теги': BaseList([]), «этикетка»: «кошка», «уверенность»: нет, «логиты»: нет, }>, }>

Давайте запустим приложение FiftyOne и воспользуемся графическим интерфейсом для визуального изучения набора данных, прежде чем двигаться дальше:

 сеанс = fo.launch_app(набор данных)
 

Вычислить уникальность

Теперь мы можем обработать весь набор данных на уникальность. Это довольно дорогая операция, но она должна завершиться максимум через несколько минут. Мы обрабатываем все выборки в наборе данных, а затем строим представление, которое связывает выборки друг с другом. Наконец, мы анализируем это представление, чтобы вывести оценки уникальности для каждой выборки.

 импортировать пятьдесят один мозг как брелок
fob.compute_uniqueness (набор данных)
 
Создание вложений. ..
   0% ||-------------| 16/10000 [95,0 мс прошло, 59,3 с осталось, 168,5 выборок/с] 100% |█████████████| 10000/10000 [прошло 1,2 м, осталось 0 с, 166,0 выборок/с]
Вычисление уникальности...
Вычисление уникальности завершено
 

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

 # Теперь образцы имеют поле «уникальность» на них.
печать (набор данных)
 
Название: cifar10-тест
Тип носителя: изображение
Количество образцов: 10000
Постоянный: Ложь
Теги: ['тест']
Примеры полей:
    путь к файлу: пятьдесят один.core.fields.StringField
    теги: пятьдесят один.ядро.поля.СписокПоле(пятьдесятодин.ядро.поля.StringField)
    метаданные: Fiftyone.core.fields.EmbeddedDocumentField(fiftyone.core.metadata.Metadata)
    Ground_truth: пятьдесят один.core.fields.EmbeddedDocumentField(fiftyone.core.labels.Classification)
    уникальность: пятьдесят один. core.fields.FloatField
 
 печать (набор данных.первый())
 
<Пример: {
    «идентификатор»: «6066448c7d373b861836bba8»,
    'media_type': 'изображение',
    'filepath': '/home/ben/fiftyone/cifar10/test/data/000001.jpg',
    'теги': BaseList(['test']),
    «метаданные»: нет,
    'ground_truth': <Классификация: {
        «идентификатор»: «6066448c7d373b861836bba7»,
        'теги': BaseList([]),
        «этикетка»: «кошка»,
        «уверенность»: нет,
        «логиты»: нет,
    }>,
    «уникальность»: 0,4978482190810026,
}>
 

Визуализация для поиска повторяющихся и почти повторяющихся изображений

Теперь давайте визуально проверим наименее уникальные изображения в наборе данных, чтобы увидеть, есть ли в нашем наборе данных какие-либо проблемы:

 # Сортировать в порядке возрастания уникальности (сначала наименее уникальные)
dups_view = набор данных.sort_by("уникальность")
# Открыть вид в приложении
session.view = dups_view
 

Вы легко увидите несколько дубликатов в приложении. Нас удивило, что в CIFAR-10 тоже есть дубликаты!

Конечно, в этом сценарии почти дубликаты определяются при визуальном осмотре. Итак, как нам получить информацию из FiftyOne и вернуть ее в вашу рабочую среду? Легкий! 9Переменная 0065 session обеспечивает двунаправленный мост между приложением и вашей средой Python. В этом случае мы будем использовать мост session.selected . Итак, в приложении выберите несколько дубликатов и почти дубликатов. Затем выполните следующий код в оболочке Python.

 # Получить выбранные изображения из приложения
dup_ids = сессия.выбрано
# Отметить как дубликаты
dups_view = набор данных.select(dup_ids)
dups_view.tag_samples("дубликаты")
# Визуализировать только дубликаты в приложении
session.view = dups_view
 

Теперь приложение будет показывать только эти образцы. Конечно, мы можем программно получить доступ к путям к файлам и другой информации об этих образцах, чтобы вы могли действовать в соответствии с выводами. Но давайте сделаем это в конце части 2 ниже!

Часть 2. Начальная загрузка набора данных уникальных выборок

При построении набора данных важно создать разнообразный набор данных с уникальными и репрезентативными выборками. Здесь мы исследуем способность FiftyOne идентифицировать самые уникальные образцы в наборе необработанных данных.

Загрузить несколько изображений

В этом пошаговом руководстве будет обработан каталог изображений и вычислена их уникальность. Первое, что нам нужно сделать, это получить несколько изображений. Давайте возьмем несколько изображений с Flickr, чтобы было интересно!

Для этого вам понадобится ключ Flickr API. Если у вас уже есть ключ Flickr API, пропустите следующие шаги.

  1. Перейдите на https://www.flickr.com/services/apps/create/

  2. Нажмите «Запросить ключ API». (https://www.flickr.com/services/apps/create/apply/) Вам нужно будет войти в систему (создайте учетную запись, если необходимо, бесплатно).

  3. Нажмите «Некоммерческий ключ API» (это только для тестового использования) и заполните информацию на следующей странице. Вам не нужно быть очень описательным; ваш API автоматически появится на следующей странице.

  4. Установите Flickr API:

 !pip установить flickrapi
 

Вам также потребуется включить поддержку хранилища ETA для запуска этого скрипта, если вы еще этого не сделали:

 !pip install voxel51-eta[storage]
 

Далее давайте загрузим три набора изображений для совместной обработки. Я предлагаю использовать три различных объектных существительных, таких как «барсук», «росомаха» и «котенок». Для фактической загрузки мы будем использовать предоставленный скрипт query_flickr.py:

 из query_flickr import query_flickr
# Ваши учетные данные здесь
КЛЮЧ = "ХХХХХХХХХХХХХХХХХХХХХХХХ"
СЕКРЕТ = "ХХХХХХХХХХХХХ"
query_flickr (КЛЮЧ, СЕКРЕТ, «барсук»)
query_flickr (КЛЮЧ, СЕКРЕТ, «росомаха»)
query_flickr (КЛЮЧ, СЕКРЕТ, «котенок»)
 

В оставшейся части этого пошагового руководства предполагается, что вы загрузили несколько изображений на локальный . data/ каталог.

Загрузка данных в FiftyOne

Теперь давайте поработаем над получением этих данных в FiftyOne и работой с ними.

 импортировать пятьдесят один как fo
набор данных = fo.Dataset.from_images_dir («данные», рекурсивный = True, имя = «flickr-images»)
печать (набор данных)
печать (набор данных. первый ())
 
 100% |█████████████████| 167/167 [прошло 160,7 мс, осталось 0 с, 1,0 тыс. отсчетов/с]
Название: flickr-images
Тип носителя: изображение
Количество образцов: 167
Постоянный: Ложь
Теги: []
Примеры полей:
    путь к файлу: пятьдесят один.core.fields.StringField
    теги: пятьдесят один.ядро.поля.СписокПоле(пятьдесятодин.ядро.поля.StringField)
    метаданные: Fiftyone.core.fields.EmbeddedDocumentField(fiftyone.core.metadata.Metadata)
<Пример: {
    «идентификатор»: «606647127d373b86183757ea»,
    'media_type': 'изображение',
    'filepath': '/home/ben/code/fiftyone/docs/source/tutorials/data/badger/14271824861_122dfd2788_c.jpg',
    'теги': BaseList([]),
    «метаданные»: нет,
}>
 

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

Обратите внимание, что изображения не загружаются с диска, поэтому эта операция выполняется быстро. Первый аргумент — это путь к каталогу изображений на диске, а третий — имя набора данных.

С набором данных, загруженным в FiftyOne, мы можем легко запустить приложение и визуализировать его:

 сеанс = fo.launch_app(набор данных)
 

Дополнительные сведения о полезных функциях, которые можно выполнять с набором данных и приложением, см. в руководстве пользователя.

Вычисление уникальности и анализ

Теперь давайте проанализируем данные. Например, мы можем захотеть понять, какие изображения являются наиболее уникальными среди данных, поскольку они могут информировать или навредить обучению модели; мы можем захотеть обнаружить дубликаты или избыточные образцы.

Продолжая работу в той же оболочке Python, давайте вычислим и визуализируем уникальность.

 импортировать пятьдесят один мозг как брелок
fob.compute_uniqueness (набор данных)
# Теперь образцы имеют поле "уникальность"
печать (набор данных)
 
Создание вложений. ..
 100% |█████████████████| 167/167 [прошло 1,8 с, осталось 0 с, 94,6 выборки/с]
Вычисление уникальности...
Вычисление уникальности завершено
Название: flickr-images
Тип носителя: изображение
Количество образцов: 167
Постоянный: Ложь
Теги: []
Примеры полей:
    путь к файлу: пятьдесят один.core.fields.StringField
    теги: пятьдесят один.ядро.поля.СписокПоле(пятьдесятодин.ядро.поля.StringField)
    метаданные: Fiftyone.core.fields.EmbeddedDocumentField(fiftyone.core.metadata.Metadata)
    уникальность: пятьдесят один.core.fields.FloatField
 
 печать (набор данных.первый())
 
<Пример: {
    «идентификатор»: «606647127d373b86183757ea»,
    'media_type': 'изображение',
    'filepath': '/home/ben/code/fiftyone/docs/source/tutorials/data/badger/14271824861_122dfd2788_c.jpg',
    'теги': BaseList([]),
    «метаданные»: нет,
    «уникальность»: 0,3202661340134384,
}>
 
 # Сортировать по уникальности (сначала самые уникальные)
rank_view = dataset.sort_by («уникальность», reverse = True)
# Визуализация в приложении
session. view = rank_view
 

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

 # Убедитесь, что самый уникальный образец имеет максимальную уникальность 1.0
печать (rank_view.first())
# Извлечь пути к 10 самым уникальным образцам
ten_best = [x.filepath для x в rank_view.limit(10)]
для пути к файлу в ten_best:
    печать (путь к файлу.split('/')[-1])
# Тогда вы можете делать с ними что хотите.
# Вывод в csv или json, отправка изображений вашей команде аннотаторов, поиск дополнительных
# подобные данные и т.д.
 

2428280852_6c77fe2877_c. jpg
49733688496_b6fc5cde41_c.jpg
2843545851_6e1dc16dfc_c.jpg
7466201514_0a3c7d615a_c.jpg
6176873587_d0744926cb_c.jpg
33891021626_4cfe3bf1d2_c.jpg
8303699893_a7c14c04d3_c.jpg
388994554_34d60d1b18_c.jpg
5880167199_906172bc50_c.jpg
8538740443_a587bfe75c_c.jpg
 

Кроме того, вы можете просто пометить наиболее уникальные образцы и сохранить набор данных, чтобы вернуться к нему позже в FiftyOne.

 rank_view.limit(10).tag_samples("уникальный")
набор данных.постоянный = Истина
 
 session.freeze() # скриншот активного приложения для обмена
 
Алгоритм

. Поиск пикселей, которые делают изображение уникальным в списке, можете ли вы улучшить грубую силу?

Предположим, у меня есть список строк, где каждая строка имеет длину

  • ровно 4 символа и
  • уникальных в списке.

Для каждой из этих строк я хочу определить положение символов в строке, которые делают строку уникальной.

Итак, для списка из трех строк

 abcd
abcc
bbcb
 

Для первой строки я хочу идентифицировать символ на 4-й позиции d , поскольку d не появляется на 4-й позиции ни в одной другой строке.

Для второй строки я хочу идентифицировать символ в 4-й позиции c .

Для третьей строки я хочу идентифицировать символ в 1-й позиции b И символ в 4-й позиции, также b .

Это можно кратко представить как

 abcd -> ...d
абсс -> ... с
bbcb -> b..b
 

= 0110

, что я могу интерпретировать как означающее, что в этом случае 2-й и 3-й биты (чтение слева направо) уникальны между этими двумя двоичными числами. Этот метод может быть отвлекающим маневром, если его каким-то образом нельзя распространить на более широкий список.

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

Итак, список

 abcd
abcc
bbcb
 

Я бы начал с

 abcd
 

и перебрать вертикальные срезы

 abcc
bbcb
 

, где эти вертикальные срезы будут

 a | б | с | с
б | б | с | б
 

или в виде списка, «ab», «bb», «cc», «cb».

Это приведет к четырем сравнениям

 a : ab -> . (а не уникален)
б : бб -> . (b не уникален)
с : копия -> . (c не уникален)
d : cb -> d (d уникален)
 

или сокращенно

 abcd -> ...d
 

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

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

Можно ли улучшить грубую силу?

Редактировать Подход, к которому я склоняюсь, заключается в построении карты пикселей для изображений

 sprawl[Tuple] => {
 изображение17,
 изображение23,
 .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *