Nano Hash - криптовалюты, майнинг, программирование

самый быстрый способ сопоставить отпечатки пальцев?

Я пытаюсь проверить, существует ли/совпадает ли отпечаток пальца в огромной коллекции отпечатков пальцев (100 000 отпечатков пальцев). Последовательный поиск совпадений займет больше времени. есть ли лучший способ поиска соответствия? можно ли организовать отпечатки пальцев в виде двоичного дерева, чтобы можно было уменьшить количество сравнений? если да, то как мы можем это сделать? было бы полезно, если бы ответы были в перспективе Java.

редактировать:

У меня есть все отпечатки пальцев в виде изображений .gif. как я могу преобразовать изображения отпечатков пальцев в данные?

Спасибо.


  • Как выглядит отпечаток пальца? Каков его тип данных? 21.01.2011
  • @mhaller: я отредактировал свой вопрос. пожалуйста, обратитесь к нему. 21.01.2011
  • Вам нужно показать каждый отпечаток на экране последовательно, и для каждого вы выводите большой красный знак НЕТ СОВПАДЕНИЯ, достаточно длинный, чтобы человек мог прочитать и сказать хммм... пока нет совпадения, пока не будет совпадения. Так это делается во всех фильмах. 21.01.2011
  • Ваш вопрос говорит о том, что вы уже знаете, как сравнивать изображение с существующей базой данных. Как вы это делаете в настоящее время? Вы предполагаете, что изображение, которое вы ищете, будет идентично уже сохраненному (как обычно, я бы подумал, что у вас есть проблемы с ориентацией и неидентичные изображения). Если вы уже можете это сделать, какие данные доступны из вашего существующего метода сравнения? 21.01.2011
  • @Chris Walton: существующее изображение и отсканированное изображение не будут точно такими же. это моя проблема! 21.01.2011
  • Этот вопрос what-does-fingerprint-data-look-like кажется актуальным. . 21.01.2011

Ответы:


1

1) Вам необходимо использовать алгоритм сжатия вейвлета для кодирования отпечатка пальца в последовательности параметров сжатия вейвлета:

0, -1, 2.4, 5.6.7.7, 32.-1.5, e.t.c.

2) Вам нужно определить функцию сопоставления, которая будет находить некоторые сходства, есть два варианта:

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

Плюсы:

алгоритм сопоставления пикселей с аппаратным ускорением (SSE), нормализация всех отпечатков пальцев к стандартной основе с использованием аффинного преобразования, например. в квадрат 512x512 пикселей

Минусы:

Высокая чувствительность к качеству отпечатка пальца (если часть искомого отпечатка полностью опущена)

-топологический подход (связность линий, дуг, точек разрыва, взаимное расположение друг друга)

Плюсы:

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

Минусы:

Низкая скорость анализа, сильно зависящая от качества функции классификации,

3) Вам нужно определить какой-то генетический алгоритм для обучения функции оценки на известном наборе отпечатков пальцев.

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

21.01.2011
  • Сравните отпечатки пальцев, сравнив изображение отпечатка пальца: это шутка !!! Вы знаете, что такое мелочи? 27.05.2016

  • 2

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

    Вот слайд-шоу с кратким описанием: http://www.slideshare.net/alessandrobaffa/fingerprints-recognition-using-neural-networks

    Последний слайд содержит дополнительные ссылки.

    Удачи!

    /Томас Кан

    21.01.2011
  • Мне понравилась эта презентация, она заполняет пробелы (пропущенные) в моем ответе. Я предполагаю, что нейронные сети идеально подходят для обнаружения и классификации, например, в байесовской классификации, но не ограничиваются алгоритмом размера пикселя. Я действительно думаю, что алгоритм вейвлет-сжатия может найти сходство в двух отпечатках пальцев, потому что он новый, совершенно новый, и я думаю, что это аффинный инвариант (скорость сжатия не чувствительна к вращению/зеркальному отражению и передискретизации) 25.01.2011
  • @Artur Mustafin: Как я уже сказал, я веб-разработчик, поэтому я никогда не сталкиваюсь с такими проблемами в своей повседневной работе. Мой ответ был выстрелом от бедра. Я упомянул об этом только потому, что провел с ним несколько экспериментов и нашел его полезным для распознавания символов. Но я понимаю, что распознавать отпечатки пальцев гораздо сложнее, чем распознавать символы, и я уверен, что есть специальные методы анализа отпечатков пальцев, превосходящие их по скорости и точности. 26.01.2011

  • 3

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

    Я поискал в Google fingerprint encoding standard и нашел несколько интересных результатов, в том числе Энциклопедию биометрии, в которой упоминается «качество в различных стандартах кодирования отпечатков пальцев», и статья, рассказывающая о стандарте кодирования изображений ФБР (среди прочего)

    21.01.2011

    4

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

    Есть несколько поставленных вопросов: 1) Есть ли способ как можно быстрее найти совпадение отпечатков пальцев для крупномасштабных баз данных?

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

    Ссылка, созданная Питером Ковеси ниже, содержит код для поля ориентации и извлечения мелочей для сопоставления: - http://www.csse.uwa.edu.au/~pk/research/matlabfns/#fingerprints Обнаружение особых точек и поля ориентации помогают в идентификации классов. Его можно найти по ссылке.

    2) Как можно преобразовать изображения отпечатков пальцев в данные? Ответ: Хорошо, формат изображения не имеет значения, я использую tiff. Вы должны знать, что отпечатки пальцев состоят из гребней и впадин. Хребты представлены более темной линией. Вам нужно применить что-то, называемое сегментацией гребней, чтобы отбросить фон и извлечь только гребни. Это хранится в маске.

    3) «существующее изображение и отсканированное изображение не будут точно такими же. это моя проблема»

    Ответ: Влияет ли на него шум, вращение, перемещение и т. д. Уменьшая шум, используйте методы улучшения. Для вращения используйте опорные точки и выравнивайте отпечатки пальцев.

    Я знаю, что это краткий обзор, однако я надеюсь, что он укажет вам правильное направление. Удачи!

    22.06.2015

    5

    Я не могу комментировать наилучший подход «сделай сам», но у меня есть большой опыт в этой области. Все большие (дорогие!) коммерческие продукты имеют 2 или более алгоритмов для сопоставления отпечатков пальцев с большими наборами данных. Есть некоторые, которые используют классы отпечатков пальцев (loop, whirl и т. д.) для предварительной фильтрации, но в целом отпечатки пальцев не очень хорошо индексируются, вам придется использовать их с умом. Вот где несколько алгоритмов вступают в игру.

    Существует несколько классов алгоритмов, которые могут выполнять очень быстрое сравнение отпечатков пальцев (форма гребня), но очень восприимчивы к ошибкам, поэтому сами по себе недостаточно точны для нормальной идентификации в базах данных разумного размера. Таким образом, эти алгоритмы обычно развертываются на первом этапе. Если алгоритм вызывает сомнения, он переходит к следующему этапу. Это может быть какой-то алгоритм «среднего класса», например. спектральные мелочи или «медленный и точный» алгоритм, например. что-то, что на самом деле сравнивает все мелочи. Чистый эффект заключается в том, что вторичные этапы обычно исправляют большинство ложных допущений первого этапа. Единственная безвозвратная потеря – это ложные отбраковки на первом (и втором) этапе. В зависимости от домена приложения это может быть незначительным или довольно высоким. Это компромисс между точностью и производительностью. В нашей собственной тестовой среде мы наблюдали скорость сравнения более 100 000 000 отпечатков пальцев в секунду на одном (мощном) рабочем столе, решая исходную проблему примерно за 1 мс. Однако это сложная, дорогая и очень специализированная часть программного обеспечения.

    07.09.2015

    6

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

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

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

    Биометрические алгоритмы не идеальны, и их производительность измеряется их коэффициентом ложного принятия (FAR) и коэффициентом ложного отклонения (FRR). Эти две меры обратно пропорциональны друг другу, а это означает, что по мере увеличения безопасности (уменьшения FAR) вы увеличиваете FRR.

    26.05.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..