Это просто идеи, которые я думал о проблеме, никогда не пробовал, но мне нравится думать о таких проблемах!
Перед тем, как начать
Рассмотрим нормализацию изображения, если один более высокое разрешение, чем другой, рассмотреть вариант, что один из них представляет собой сжатую версию другого, поэтому масштабирование разрешения вниз может обеспечить более точные результаты.
Рассмотрите возможность сканирования различных перспективных областей изображения, которые могут представлять увеличенные части изображения и различные положения и вращения. Это начинает усложняться, если одно из изображений является перекошенной версией другого, это те ограничения, которые вы должны идентифицировать и компрометировать.
Matlab - отличный инструмент для тестирования и оценки изображений.
Тестирование алгоритмов
Вы должны проверить (как минимум) большой человек проанализированные набор тестовых данных, где матчи известны заранее. Если, например, в ваших тестовых данных есть 1000 изображений, в которых 5% из них совпадают, у вас теперь есть достаточно надежный бенчмарк. Алгоритм, который находит 10% положительных результатов, не так хорош, как тот, который находит 4% положительных результатов в наших тестовых данных. Однако один алгоритм может найти все совпадения, но также иметь большую 20% ложноположительную скорость, поэтому есть несколько способов оценить ваши алгоритмы.
Данные испытаний должны быть спроектированы таким образом, чтобы охватить как можно больше типов динамики, которые вы ожидаете найти в реальном мире.
Важно отметить, что каждый полезный алгоритм должен работать лучше, чем случайное угадывание, иначе оно бесполезно для нас!
Затем вы можете применить свое программное обеспечение в реальном мире контролируемым образом и начать анализировать полученные результаты. Это своего рода программный проект, который может продолжаться бесконечно, всегда есть твики и улучшения, которые вы можете сделать, важно помнить об этом при проектировании, так как легко попасть в ловушку бесконечного проекта.
Цвет Ковши
С двумя изображениями, сканировать каждый пиксель и сосчитать цвета. Например, вы могли бы иметь «ведра»:
white
red
blue
green
black
(Очевидно, что вы имели бы более высокое разрешение счетчиков). Каждый раз, когда вы находите «красный» пиксель, вы увеличиваете красный счетчик. Каждое ведро может представлять собой спектр цветов, более высокое разрешение - более точное, но вы должны поэкспериментировать с приемлемой разницей.
Как только у вас есть итоговые значения, сравните их с итогами для второго изображения. Вы можете обнаружить, что каждое изображение имеет довольно уникальный след, достаточный для определения совпадений.
обнаружения края
Как об использовании Edge Detection. alt text http://upload.wikimedia.org/wikipedia/en/thumb/8/8e/EdgeDetectionMathematica.png/500px-EdgeDetectionMathematica.png
С двумя аналогичными изображениями обнаружение края должно предоставить вам полезную и достаточно надежную уникальную площадь.
Сделайте обе фотографии и примените обнаружение края. Может измерять среднюю толщину ребер, а затем вычислять вероятность масштабирования изображения и при необходимости масштабировать. Ниже приведен пример применения Gabor Filter (тип обнаружения края) при различных поворотах.
Сравните фотографии пиксель за пикселем, сосчитать матчи и необработанного матчи. Если они находятся в определенном пороге ошибки, у вас есть совпадение. В противном случае вы можете попытаться уменьшить разрешение до определенной точки и посмотреть, улучшится ли вероятность совпадения.
Регионы интересов
Некоторые изображения могут иметь отличительные сегментов/регионах, представляющих интерес. Эти регионы, вероятно, очень сильно отличаются от остальной части изображения и являются хорошим предметом для поиска на других изображениях, чтобы найти совпадения. Возьмите это изображение, например:
alt text http://meetthegimp.org/wp-content/uploads/2009/04/97.jpg
Строительство работник в синем является областью интереса и может быть использован в качестве объекта поиска. Есть, вероятно, несколько способов извлечь свойства/данные из этой интересующей области и использовать их для поиска вашего набора данных.
Если у вас есть более 2 областей интереса, вы можете измерить расстояния между ними. Возьмите этот упрощенный пример:
alt text http://www.per2000.eu/assets/images/3_dots_black_03.jpg
У нас есть 3 четких областей, представляющих интерес. Расстояние между областями 1 и 2 может составлять 200 пикселей, от 1 до 3 400 пикселей и 2 и 3 200 пикселей.
Искать другие изображения для аналогичных регионов интереса, нормализовать значения расстояния и посмотреть, есть ли у вас потенциальные совпадения. Этот метод может хорошо работать для повернутых и масштабированных изображений. Чем больше интересующих вас регионов, тем больше вероятность совпадения с каждым измерением расстояния.
Важно подумать о контексте вашего набора данных. Если, например, ваш набор данных - это современное искусство, то области интереса будут работать достаточно хорошо, так как представляющие интерес области, вероятно, были , разработанный, чтобы стать фундаментальной частью окончательного изображения. Если, однако, вы имеете дело с изображениями строительных площадок, интересующие области могут быть истолкованы незаконным копиром как уродливые и могут быть обрезаны/отредактированы либерально. Имейте в виду общие черты вашего набора данных и пытайтесь использовать эти знания.
морфинг
Morphing два изображения является процесс превращения одного изображения в другое через множество этапов:
Заметим, что это отличается от выцветания одного изображения в другое !
Существует множество программных пакетов, которые могут преобразовывать изображения. Это традиционно используется как переходный эффект, два изображения не превращаются во что-то наполовину обычно, одна крайность превращается в другую крайность как конечный результат.
Почему это может быть полезно? В зависимости от используемого алгоритма морфинга может существовать взаимосвязь между подобием изображений и некоторыми параметрами алгоритма морфинга.
В упрощенном примере один алгоритм может выполняться быстрее, когда есть меньше изменений.Затем мы знаем, что существует большая вероятность того, что эти два изображения обмениваются свойствами друг с другом.
Эта техника может хорошо работает для повернутых, искаженных, перекошенных, увеличенных, всех типов скопированных изображений. Опять же, это просто идея, которую я имел, это не основано на каких-либо научных исследованиях, насколько мне известно (я не очень стараюсь), поэтому для вас может быть очень много работы с ограниченными результатами.
Архивирование
ответ OW в этом вопросе отлично, я помню, как читал об этих рода методов изучения ИИ. Это довольно эффективно при сравнении лексиконов корпусов.
Одна интересная оптимизация при сравнении корпусов заключается в том, что вы можете удалить слова, которые считаются слишком распространенными, например «The», «A», «And» и т. Д. Эти слова разбавляют наш результат, мы хотим выяснить, два корпуса, поэтому они могут быть удалены перед обработкой. Возможно, есть похожие общие сигналы в изображениях, которые можно удалить до сжатия? Возможно, стоит посмотреть.
Коэффициент сжатия - очень быстрый и разумно эффективный способ определения того, насколько похожи два набора данных. Если вы читаете около how compression works, вы получите хорошее представление, почему это может быть настолько эффективным. Для быстрого выхода алгоритма это, вероятно, будет хорошей отправной точкой.
Прозрачность
Опять я не уверен, как данные прозрачность сохраняется для определенных типов изображений, GIF PNG и т.д., но это будет извлекаемые и будет служить эффективным упрощена вырезать сравнить с наборами ваши данные прозрачности ,
Инвертирование Сигналы
изображение просто сигнал. Если вы играете шум от динамика, и вы играете противоположный шум в другом громкоговорителе в идеальной синхронизации с одинаковым громкостью, они отменяют друг друга.
alt text http://www.themotorreport.com.au/wp-content/uploads/2008/07/noise-cancellation.gif
Обратить на изображения, а также добавить его на свой другой образ. Периодически масштабируйте его/петлю, пока не найдете результирующее изображение, где достаточное количество пикселей белого (или черного? Я буду называть его нейтральным холстом), чтобы обеспечить вам положительное совпадение или частичное совпадение.
Однако рассмотрим два изображения, которые равны, за исключением одного из них имеет эффект скрасить примененных к нему:
инвертирующий один из них, а затем добавить его в другой не приведет в нейтральный холст, к которому мы стремимся. Однако, сравнивая пиксели с обоими исходными изображениями, мы можем четко видеть четкую взаимосвязь между ними.
Я не изучал цвет в течение нескольких лет, и не уверен, если спектр цвета находится в линейном масштабе, но если вы определили средний коэффициент разницы цветов между обоими изображениями, вы можете использовать это значение для нормализации данных перед обработкой этой методикой.
структуры дерева данных
Сначала это, кажется, не подходят для этой проблемы, но я думаю, что они могли бы работать.
Вы можете подумать об извлечении определенных свойств изображения (например, цветовых ящиков) и создать huffman tree или аналогичную структуру данных. Вы могли бы сравнить два дерева для сходства. Это плохо работает для фотографических данных, например, с большим спектром цветов, но мультфильмы или другие изображения с уменьшенным набором цветов могут работать.
Возможно, это не сработает, но это идея. trie datastructure отлично подходит для хранения лексиконов, например, dictionarty. Это дерево префиксов. Возможно, можно построить эквивалент изображения лексикона (опять же я могу думать только о цветах), чтобы построить trie. Если вы уменьшили, скажем, изображение 300x300 в квадраты 5x5, затем разложите каждый квадрат 5x5 в последовательность цветов, вы можете построить trie из полученных данных. Если квадрат 2х2 содержит:
FFFFFF|000000|FDFD44|FFFFFF
Мы имеем довольно уникальный код, который проходит TRIE 24 уровней, увеличение/уменьшение уровней (IE уменьшения/увеличения размера нашей суб площади) может дать более точные результаты.
Сравнение трех деревьев должно быть достаточно простым и могло бы обеспечить эффективные результаты.
Больше идеи
я наткнулся accross интересной статьи Краткой информации о classification of satellite imagery, то контурах:
Texture мера относятся: совместное нахождение матрица, различие уровня серого, анализ текстура тон, особенности полученных из спектра Фурье и фильтров Габора. Было обнаружено, что некоторые функции Фурье и некоторые фильтры Габора являются хорошим выбором, в частности, когда для классификации использовалась одна частотная полоса.
Возможно, стоит более подробно изучить эти измерения, хотя некоторые из них могут не иметь отношения к вашему набору данных.
Другие вещи, чтобы рассмотреть
Есть, вероятно, много работ на такого рода вещи, поэтому чтение некоторых из них должно помочь, хотя они могут быть очень техничный. Это чрезвычайно сложная область в области вычислительной техники, в которой много бесплодных часов работы, проведенных многими людьми, которые пытаются сделать подобные вещи. Сохранение его простоты и построение на этих идеях было бы лучшим способом. Должна быть довольно сложная задача создать алгоритм с более высокой, чем случайный коэффициент соответствия, и начать улучшаться, что действительно очень сложно достичь.
Каждый метод, вероятно, необходимо будет тщательно протестировать и тщательно настроить, если у вас есть какая-либо информация о типе изображения, который вы также будете проверять, это было бы полезно. Например, реклама, многие из них будут иметь текст в них, поэтому распознавание текста будет простым и, вероятно, очень надежным способом поиска совпадений, особенно в сочетании с другими решениями. Как упоминалось ранее, попытайтесь использовать общие свойства вашего набора данных.
Объединение альтернативных измерений и методов, каждый из которых может иметь взвешенное голосование (в зависимости от их эффективности), будет одним из способов создания системы, которая дает более точные результаты.
Если использовать несколько алгоритмов, как упоминалось в начале этого ответа, можно найти все положительные значения, но иметь ложную положительную скорость 20%, было бы интересно изучить свойства/сильные/слабые стороны других алгоритмов поскольку другой алгоритм может быть эффективен в устранении ложных срабатываний, возвращаемых из другого.
Будьте осторожны, чтобы не попасть в попытку завершить бесконечный проект, удачи!
Как вы определяете, какой из них является оригиналом? – jfs 2008-08-23 03:50:21
Я предполагаю, что у него есть оригинал, и ему необходимо проверить, является ли иностранный файл преобразованной копией или не связан с оригиналом. – unfa 2016-12-21 08:19:22