Имя: Пароль:
LIFE
 
OFF: Кто занимался сканерами отпечатков пальцев?
,
0 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
так они и работают так. то распознают то нет. у меня на ноуте через раз срабатыват
2 vde69
 
07.11.20
22:22
(1) ну у меня на телефоне работает идеально, и очень быстро и на 100% доставерно
3 Юрий Лазаренко
 
07.11.20
22:38
(0) А в каком формате в итоге получается "описание" отпечатка? Это строка, массив, структура данных? Можно пример?
4 ChMikle
 
07.11.20
23:01
(0) давно это было, там картинка разбивалась на пиксели и каждый пиксель имел характеристику: заполнение, яркость и т.п. соответственно при сканировании картинка билась на пиксели и сравнивались характеристики каждого пикселя, задавалось % совпадения характеристик и если при сравнении % был выше или равен заданному порогу, то отпечаток совпадает.
5 ChMikle
 
07.11.20
23:06
И фишка была в том , что картинка отпечатка в базе не хранилась, хранились значения пикселей
6 NorthWind
 
07.11.20
23:13
Как я понимаю, хранится некое значение функции, хэш. Хранить сам битмап отпечатка не позволяют законодательства многих стран.
При сканировании вычисляется еще один, и выполняется функция, которая определяет подобие одного другому.
7 vis_tmp
 
07.11.20
23:15
(0)Фиксин занимался.
8 NorthWind
 
07.11.20
23:15
* значение функции от аргумента, которым является растр отпечатка.
9 NorthWind
 
07.11.20
23:22
(2) это потому что пользователей мало - скорее всего, один. В целом система распознавания людей по отпечаткам пальцев работает так себе. Насколько я понял, нормальное качество распознавания - 92-97% распознанных отпечатков. А в случае со всеми остальными - отпечатки меняются со временем, влияет масса факторов - авитаминоз, прием лекарств, механические повреждения, взаимодействие с химическими веществами или наоборот пребывание рук в перчатках, где кожа "не дышит". В итоге приходится все это пересканировать по многу раз.
10 Юрий Лазаренко
 
07.11.20
23:49
По-хорошему надо отдавать распознавание нейросетям, задача для них классическая. Таких готовых и бесплатных в интернете найти можно. Согласно документации, сканер на выходе дает матрицу. Она переводится в одну строку и в таком виде хранится в библиотеке. Далее при сканировании сеть сравнивает результат с библиотекой и находит совпадения.
11 vde69
 
07.11.20
23:57
(3) хранение внутри самого датчика, вытащить можно но это будут двоичные данные без описания формата
12 vde69
 
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х
13 vde69
 
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. Чем больше, тем качество шаблона лучше
17 palsergeich
 
08.11.20
02:50
(7) Фискин не этим занимался.
Он судя по описанию тупо ВК - TCP сервер написал, который ловил данные от анвиза.
Но там уже приходит ИД распознанный.
18 vde69
 
08.11.20
11:07
(16) так собственно и вопрос - как построить шаблон по 5 файлам когда команда объединяет только 2
19 vde69
 
09.11.20
23:04
вроде все нюансы решил, добился примерно 98% корректной верификации пальца при отсутствии ложных верификаций, скорость примерно 1.5 сек.


кому интересно код и схему выложил сюда
http://arduino.ru/forum/proekty/kalitka-na-skanere-otpechatkov-paltsev-crow-r503
20 vde69
 
15.11.20
20:29
Ура, наконец все работает на улице...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший