|
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
|
Ура, наконец все работает на улице...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |