Вход | Регистрация
 
О жизни... :: Хобби

OFF: Кто занимался сканерами отпечатков пальцев?

OFF: Кто занимался сканерами отпечатков пальцев?
Я
   vde69
 
07.11.20 - 21:32
Хочу сделать себе некую самоделку, для этого купил датчик отпечатка пальца вот такой
https://www.banggood.com/ru/R503-Capacitive-Fingerprint-Module-Sensor-Scanner-Circular-Round-Two-Color-Ring-Indicator-LED-Control-DC3_3V-MX1_0-6pin-p-1696220.html?rmmds=buy&ID=6285855&cur_warehouse=CN

пишу к нему типа драйвера (на самом деле подключил его к ардуинке, но это не важно),

основной принцип его работы такой
1. скан
2. векторизация
3. сравнение с некими моделями в библиотеки

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

Если кто в теме
   Кирпич
 
1 - 07.11.20 - 22:21
так они и работают так. то распознают то нет. у меня на ноуте через раз срабатыват
   vde69
 
2 - 07.11.20 - 22:22
(1) ну у меня на телефоне работает идеально, и очень быстро и на 100% доставерно
   Юрий Лазаренко
 
3 - 07.11.20 - 22:38
(0) А в каком формате в итоге получается "описание" отпечатка? Это строка, массив, структура данных? Можно пример?
   ChMikle
 
4 - 07.11.20 - 23:01
(0) давно это было, там картинка разбивалась на пиксели и каждый пиксель имел характеристику: заполнение, яркость и т.п. соответственно при сканировании картинка билась на пиксели и сравнивались характеристики каждого пикселя, задавалось % совпадения характеристик и если при сравнении % был выше или равен заданному порогу, то отпечаток совпадает.
   ChMikle
 
5 - 07.11.20 - 23:06
И фишка была в том , что картинка отпечатка в базе не хранилась, хранились значения пикселей
   NorthWind
 
6 - 07.11.20 - 23:13
Как я понимаю, хранится некое значение функции, хэш. Хранить сам битмап отпечатка не позволяют законодательства многих стран.
При сканировании вычисляется еще один, и выполняется функция, которая определяет подобие одного другому.
   vis_tmp
 
7 - 07.11.20 - 23:15
(0)Фиксин занимался.
   NorthWind
 
8 - 07.11.20 - 23:15
* значение функции от аргумента, которым является растр отпечатка.
   NorthWind
 
9 - 07.11.20 - 23:22
(2) это потому что пользователей мало - скорее всего, один. В целом система распознавания людей по отпечаткам пальцев работает так себе. Насколько я понял, нормальное качество распознавания - 92-97% распознанных отпечатков. А в случае со всеми остальными - отпечатки меняются со временем, влияет масса факторов - авитаминоз, прием лекарств, механические повреждения, взаимодействие с химическими веществами или наоборот пребывание рук в перчатках, где кожа "не дышит". В итоге приходится все это пересканировать по многу раз.
   Юрий Лазаренко
 
10 - 07.11.20 - 23:49
По-хорошему надо отдавать распознавание нейросетям, задача для них классическая. Таких готовых и бесплатных в интернете найти можно. Согласно документации, сканер на выходе дает матрицу. Она переводится в одну строку и в таком виде хранится в библиотеке. Далее при сканировании сеть сравнивает результат с библиотекой и находит совпадения.
   vde69
 
11 - 07.11.20 - 23:57
(3) хранение внутри самого датчика, вытащить можно но это будут двоичные данные без описания формата
   vde69
 
12 - 08.11.20 - 00:04
вот из описания
----------------------
The chip has an image buffer and six feature file buffers,all buffer contents are not saved afterpower failure.A template can be composed of 2-6 feature files,the more characteristic files the compositetemplate has, the better the quality of the fingerprint template,At least 3 template synthesis features are recommended.
----------------------

но в описании команды формирования слепка сказано
----------------------
Description: To combine information of character files from CharBuffer1 and CharBuffer2 and
generate a template which is stroed back in both CharBuffer1 and CharBuffer2.
Input Parameter:none
Return Parameter:Confirmation code (1 byte)
---------------------

то есть я не понимаю кому верить и что является правдой, то-ли можно из 6 сканов строить то-ли только из 2х
   vde69
 
13 - 08.11.20 - 00:07
кому интересно вот ссылка на тех информацию http://myosuploads3.banggood.com/products/20200617/20200617011838R503fingerprintmoduleusermanual.pdf
   Вяйнемейнен
 
14 - 08.11.20 - 00:50
(0)
Да, обработка отпечатков примерно так и работает:
1 От сканера, или из любого другого источника, получается изображение.
2 Далее изображение преобразуется в вектор для определения ключевых точек.
3 Потом получаются ключевые точки - это все места где линия папиллярного рисунка начинает ветвиться, то есть одна линия раздваивается.
4 Затем по ключевым точкам строится хитрый шаблон - учитывается только взаимное расположение ключевых точек, чтобы угол отпечатка не имел значения, а также избыточность, потому что каждый раз отпечаток получается неидеальный, но ключевых точек обычно всегда хватает для корректной идентификации.
5 Далее полученный шаблон сравнивается с имеющейся базой - обычно варианта сравнения два: идентификация (максимально быстро найти в базе шаблон соответствующий текущему) и верификация (установить, соответствует ли текущий отпечаток конкретному шаблону).
Алгоритм построения шаблона, и поиска и идентификации по базе самому писать проблематично - есть разные платные SDK, которые реализуют эту логику. Я покупал лет 15 назад SDK от Биолинк и Griaule - первый стоил около 1000$ плюс 50$ на каждый сканер, второй был анлим по устройствам но стоил около 8000$. Были разные бесплатные и условно бесплатные SDK - но обычно с очень урезанным функционалом - либо ограничение на количество шаблонов в базе отпечатков, либо с замедленным поиском.
   Вяйнемейнен
 
15 - 08.11.20 - 01:31
Если сканер не отдает изображение, а только двоичный шаблон, построение которого реализовано у него в чипе, то вряд ли что-то универсальное можно с ним сделать.
   Вяйнемейнен
 
16 - 08.11.20 - 01:37
(12) Судя по описанию шаблон можно построить минимум из 2 файлов максимум из 6, рекомендуется минимум из 3. Чем больше, тем качество шаблона лучше
   palsergeich
 
17 - 08.11.20 - 02:50
(7) Фискин не этим занимался.
Он судя по описанию тупо ВК - TCP сервер написал, который ловил данные от анвиза.
Но там уже приходит ИД распознанный.
   vde69
 
18 - 08.11.20 - 11:07
(16) так собственно и вопрос - как построить шаблон по 5 файлам когда команда объединяет только 2
   vde69
 
19 - 09.11.20 - 23:04
вроде все нюансы решил, добился примерно 98% корректной верификации пальца при отсутствии ложных верификаций, скорость примерно 1.5 сек.


кому интересно код и схему выложил сюда
http://arduino.ru/forum/proekty/kalitka-na-skanere-otpechatkov-paltsev-crow-r503
   vde69
 
20 - 15.11.20 - 20:29
Ура, наконец все работает на улице...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.