Signature_pad: Снятие биометрических данных со знаком

Созданный на 20 янв. 2017  ·  52Комментарии  ·  Источник: szimek/signature_pad

Привет.

Можно ли получить биометрические данные, связанные со знаком? Я говорю, скорость письма, количество строк и т. д. Мне нужно быть уверенным, что пользователь не отвергает подлинность собственного знака в юридических целях. Этот компонент - единственный, который я видел, который пишет гладкий знак, поэтому я предполагаю, что данные перехватываются. Конечная цель — получить знак конечного пользователя + биометрическую информацию, связанную с этим знаком + правовую отметку времени третьей стороны; затем, кодируя весь пак, и отправляя в базу данных. Возможно ли это в любом случае?

Большое спасибо.

enhancement

Самый полезный комментарий

есть обновления по этой теме?

Все 52 Комментарий

Это зависит от того, какие именно данные вы имеете в виду, но я думаю, что это было бы возможно. Существует ISO/IEC 19794-7:2014 , который «определяет форматы обмена данными для данных о поведении подписи/знака, захваченных в виде многомерного временного ряда_», поэтому было бы здорово использовать этот стандарт вместо того, чтобы придумывать собственный . К сожалению, у меня нет доступа к этому документу и я не знаю, как на самом деле выглядит формат :/

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

Эль 21/01/2017 10:21, "Szymon Nowak" уведомления@github.com описание:

Это зависит от того, какие именно данные вы имеете в виду, но я думаю, что это было бы
возможный. Есть ISO/IEC 19794-7:2014.
http://www.iso.org/iso/catalogue_detail.htm?csnumber=55938 , где " указываетсяформаты обмена данными для данных о поведении подписи/знака, захваченных ввиде многомерного временного ряда », поэтому было бы здорово
использовать этот стандарт вместо того, чтобы придумывать собственный. К сожалению, я не
имеют доступ к этому документу и не знают, как на самом деле выглядит формат
как :/


Вы получаете это, потому что вы создали тему.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/szimek/signature_pad/issues/213#issuecomment-274250329 ,
или заглушить тему
https://github.com/notifications/unsubscribe-auth/APdPAIzn5SZW2nwNKDD3evH4ijb_1Mk7ks5rUc4wgaJpZM4LphIH
.

@kalihos Вы также можете попробовать последнюю бета-версию (1.6.0-beta.1), в которой есть метод #toData , который возвращает все точки, сгруппированные в строки, но в настоящее время он возвращает только координаты времени, x и y для каждая точка. Было бы довольно легко добавить к нему скорость и ускорение, но я не думаю, что мы сможем зафиксировать что-то еще.

Вы можете попробовать эту бета-версию на демо-странице — просто нарисуйте что-нибудь, а затем вызовите signaturePad.toData() в консоли инструментов разработчика.

Конечно, заснять скорость и ускорение было бы здорово, и достаточно
чтобы юридически гарантировать, что подписывающая сторона не может отказаться от полномочий. В любом случае,
новый метод #toData - отличное замечание для меня. попробую и отпишусь
ты.

Большое спасибо!

22.01.2017, 14:35 по Гринвичу + 01:00, Шимон Новак, [email protected] :

@kalihos https://github.com/kalihos Вы также можете попробовать последнюю версию
бета-версия (1.6.0-beta.1), в которой есть метод #toData, возвращающий все
точки сгруппированы в строки, но в настоящее время он возвращает только время, x и y
координаты каждой точки. Было бы довольно легко добавить скорость и
ускорение до него, но я не думаю, что мы сможем захватить что-то еще.

Вы можете попробовать эту бета-версию на демо-странице
https://szimek.github.io/signature_pad/ — просто нарисуйте что-нибудь, а затем
вызовите signalPad.toData() в консоли инструментов разработчика.


Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/szimek/signature_pad/issues/213#issuecomment-274331306 ,
или заглушить тему
https://github.com/notifications/unsubscribe-auth/APdPAH0oBwyertm7moGPS24Fubi33MKOks5rU1sJgaJpZM4LphIH
.

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

Кстати, мне нравится бета. Я немного протестировал его, и я с нетерпением жду возможности хранить необработанные данные в БД в будущем. Отличный материал! 👍

@JD-Роббс

Кстати, мне нравится бета.

Спасибо! :)

Я немного протестировал его, и я с нетерпением жду возможности хранить необработанные данные в БД в будущем.

Именно поэтому я бы предпочел использовать какой-то существующий стандарт для хранения этого материала. Как только люди начнут хранить его в своей БД, будет сложно изменить его в следующих версиях. Первоначально он должен был быть закрытым и использоваться только для рисования SVG и помощи в модульных тестах.

Мне просто интересно, какой должна быть скорость и ускорение для первой точки в каждой строке - 0 или null/undefined ?

Я попробовал вашу прекрасную бета-версию, и она отлично работает! Как вы сказали, было бы здорово иметь вдобавок скорость и ускорение. С юридической точки зрения, я думаю, что не имеет значения наличие 0 или null/undefined для первой точки, потому что это будет использоваться только для сравнения знака с другим ранее сохраненным, поэтому любой может проверить, является ли это тот же человек, который подписал оба раза . Но, с технической точки зрения, может быть, было бы лучше установить ускорение для первой точки на 0. Я думаю, было бы проще хранить весь массив, потому что 0 всегда легче экспортировать в файл... иначе мы бы store "null-5-3-7-2...", и, на мой взгляд, это звучит немного запутанно...

Уважение к стандарту, как я уже сказал, я пытаюсь получить подробную информацию о нем, но высокие юридические различия в сложности между разными странами совершенно не помогают... Например, в Испании нет юридической сертификации о такой "цифровой-рукописный" знак, но он принят. Но, в отличие от традиционного рукописного знака или знака с цифровым сертификатом, здесь вы тот, кто должен продемонстрировать, что ваш процесс в порядке, и вы можете гарантировать подлинность знака, но на основе испанского правопорядка (http:// noticias.juridicas.com/base_datos/Admin/l59-2003.html — извините, только испанский).

Привет еще раз!

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

Большое спасибо!

Я думаю, что если у точки уже есть скорость и ускорение, то ей больше не нужно время. Я постараюсь обновить его, хотя это может занять некоторое время. Может быть, кто-то хочет создать PR? 😉

@szimek

Именно поэтому я бы предпочел использовать какой-то существующий стандарт для хранения этого материала. Как только люди начнут хранить его в своей БД, будет сложно изменить его в следующих версиях. Первоначально он должен был быть закрытым и использоваться только для рисования SVG и помощи в модульных тестах.

Это очень хороший момент — я даже не думал об этом со всем своим волнением (хотя я все еще буду хранить BLOB-объекты, неплохо иметь и необработанную биометрическую информацию). Я предполагаю, что любая будущая версия по-прежнему будет основываться на базовой информации о координатах и ​​времени, поэтому, я думаю, всегда может быть путь обновления/преобразования, если что-то изменится (например, меры/масштабы). Но опять же, я не совсем в курсе того, как все реализовано.

Мне просто интересно, какая скорость и ускорение должны быть для первой точки в каждой строке - 0 или null/undefined?

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

Я думаю, что если у точки уже есть скорость и ускорение, то ей больше не нужно время. Я постараюсь обновить его, хотя это может занять некоторое время. Может быть, кто-то хочет создать PR? 😉

В качестве альтернативы я думаю, что поведение toData и fromData может просто остаться как есть (просто для того, чтобы свести требуемые данные к минимуму).

Вместо этого, возможно, в прототипе может быть дополнительный метод, который может преобразовать вывод toData в {x: number, y: number, time: number, velocity: number, acceleration: number}[] .

Возможно, вы правы. Я мог вывести эту информацию, начиная со времени,
думал, что может быть проще сравнить два знака. Но да, это будет перегружать
объект без необходимости. Я буду работать с вашей текущей бета-версией.
Он идеален как есть!

Эль 24/01/2017 18:20, "Szymon Nowak" уведомления@github.com описание:

Я предполагаю, что если точка уже имеет скорость и ускорение, то это не так.
действительно нужно больше времени. Я постараюсь обновить его, хотя это может занять некоторое время.
пока. Может быть, кто-то хочет создать PR? 😉


Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/szimek/signature_pad/issues/213#issuecomment-274872842 ,
или заглушить тему
https://github.com/notifications/unsubscribe-auth/APdPAG5bKRA4vv9_uqT563KiR1eqpZ_hks5rVjLCgaJpZM4LphIH
.

+1 по этому поводу.
Это хорошая информация для выполнения ISO 19794-7.

@javenosa Есть ли у вас какая-либо информация о том, какие данные / формат на самом деле указывает ISO 19794-7?

Координата X от пера (увеличивается при перемещении вправо)
Координата Y от пера (увеличивается при перемещении вверх)
Координата Z от пера (увеличение при перемещении подъемника между устройством и ручкой, здесь это не применяется)
Горизонтальная скорость (разность скоростей)
Вертикальная скорость (разность скоростей)
Горизонтальное ускорение
Вертикальное ускорение
Время
Разница во времени
Давление
Угол (здесь это не применимо)

С вашим плагином вы можете получить большинство элементов из этого списка.

https://image.slidesharecdn.com/onlinesignaturerecognition-130201011136-phpapp02/95/online-signature-recognition-16-638.jpg?cb=1359681345

@javenosa Спасибо! Если есть кто-то, кто хочет сделать PR, чтобы добавить горизонтальные и вертикальные скорости, ускорения и разницу во времени, это было бы здорово 😉 Как вы сказали, мы не можем получить координату Z, давление или угол.

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

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

Я думаю, что давление можно получить на правильном устройстве (конечно, с поддержкой давления, iPhone 6s, iPhone 6s Plus, iPhone 7, iPhone 7 Plus и т. д.).

Я понятия не имел, что можно получить эти значения в JS, это довольно круто.

Хотя просмотр исходного кода https://pressurejs.com не кажется тривиальным для реализации, и я не уверен, что дополнительный код стоит того, поэтому, возможно, его можно отложить на данный момент и в конечном итоге добавить в следующих версиях.

Да, pressjs — одна из альтернатив (я просто копирую версию для iphone с их сайта, хахах).
Я понимаю вашу точку зрения, здравая логика.

Я тестировал pressurejs, и, кажется, всегда говорит, что устройство не поддерживается (я пробовал с обычным трекпадом Macbook, iPhone...). В любом случае, глядя на информацию о спецификациях от @javenosa , я думаю, что в настоящее время мы сохраняем всю необходимую информацию в БД с помощью метода toData, за исключением, возможно, давления (трудно получить без устройства Wacom или аналогичного) и угла (аналогично предыдущему) . В настоящее время я использую ваш отличный плагин в своем приложении, и он отлично работает. И, если мне позже понадобится проанализировать какую-либо подпись, я могу считать биометрическую информацию и получить дополнительные данные, такие как скорость или ускорение. Я думаю, что нет необходимости хранить избыточную информацию...

@kalihos Если мы решим пока пропустить давление, то вы правы в том, что все остальные данные (например, скорости и ускорения) могут быть получены из времени. Возможно, на данный момент было бы проще просто вернуть только время и предоставить скрипт в файле README, который может преобразовать его во что-то, что имеет эти дополнительные данные.

Мне просто интересно, нужно ли нам также возвращать размер холста (или, может быть, лучше максимальные/минимальные координаты X и Y), чтобы можно было изменить координаты Y (0 внизу против 0 вверху).

@szimek Рекомендуется указать максимальные / минимальные координаты X и Y. Но учтите, что при сохранении в SVG такая информация может сбить с толку из-за возможности изменения размера. Не кажется ли вам, что было бы лучше хранить подпись только в формате PNG, если вы хотите сохранить максимум X/Y?

С уважением к сценарию в файле README, да, это еще одна хорошая идея. Необходимо было бы только обеспечить корректное сравнение в юридических целях (юридический иск).

@kalihos Я думал о сохранении макс / мин X и Y только для того, чтобы можно было изменить Y для биометрических данных. Как упоминалось ранее @javenosa , в спецификации 0 находится внизу, а на холсте 0 - вверху. Если мы хотим следовать спецификации, мне нужен какой-то способ «обратить» координаты Y. Конечно, max/min X и Y также можно получить путем перебора всех точек, возвращаемых методом #toData , поэтому его не обязательно возвращать самим #toData .

@szimek Это хороший вариант для хранения максимальных / минимальных значений X и Y, чтобы вы могли восстановить весь холст и выполнить спецификацию. В любом случае, я не думаю, что полностью необходимо воспринимать спецификацию буквально, если вы можете гарантировать подлинность подписи... но правильно хранить ее, чтобы она была более "чистой" ;)

Есть новости по этому поводу?
Ускорение и скорость были бы замечательной особенностью метода "toData".

Спасибо

@javenosa В настоящее время я сосредоточен на выпуске 1.6 с поддержкой SVG, но у меня мало свободного времени, поэтому работа продвигается довольно медленно.

если вы хотите увидеть это в 1.6, приветствуются PR ;) Кроме того, должно быть довольно легко написать простой скрипт, который берет вывод из toData и добавляет скорости и ускорения - все, что вам нужно для их расчета, это время diffs, которые уже возвращены.

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

velocity = change in distance / change in time
acceleration = change in velocity / change in time

Есть Point#velocityFrom(point) , которые дадут вам скорость между двумя точками, и как только вы это сделаете, вы сможете использовать почти тот же код для расчета ускорения:

// This one already exists
Point.prototype.velocityFrom = function (start) {
  return (this.time !== start.time) ? this.distanceTo(start) / (this.time - start.time) : 1;
};

// This one should be added
Point.prototype.accelerationFrom = function (start) {
  return (this.time !== start.time) ? this.velocityFrom(start) / (this.time - start.time) : 1;
};

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

Интересный проект! Стандарт биометрии ISO — это двоичный стандарт с кодировкой ASN-1, который мы собирались внедрить. К счастью для нас, в 2015 году была выпущена XML-версия, которую намного проще реализовать.

Что касается поста от javenosa, то стоит отметить, что большинство каналов (в стандарте ISO они называются каналами) являются необязательными. Требуются только x, y и t, а остальные необязательны. Таким образом, может быть неплохо иметь давление или Z-координаты, угол и т. д., но это не обязательно для полностью совместимого набора биометрических данных. Кроме того, многие другие значения могут быть вычислены позже из существующих значений x, y и t, таких как (скорость, ускорение и т. д.). Итак, я бы начал с самого простого набора данных: x, y, t...

@Lonzak Если кто-нибудь может предоставить информацию о том, как именно должна выглядеть структура данных по сравнению с тем, как она выглядит сейчас, было бы здорово. Поскольку в настоящее время метод #toData возвращает координаты x, y и время, я предполагаю, что это просто вопрос преобразования текущей структуры в соответствии со стандартом ISO.

Да, нет проблем: взгляните на схему и предоставленный пример. Для преобразования XML<->JS вы можете использовать jsonix . Но, как уже упоминалось, это более новый стандарт, основанный на XML, более старая версия на основе ASN-1 намного сложнее для создания кодировщика imho (DER, BER с поддержкой инструкций кодирования. Мы не нашли ни одного кодировщика/декодера с открытым исходным кодом, который бы поддерживал тот)...

@szimek потрясающая библиотека, использующая ее в нативном проекте, и она гладкая, как масло!
@kalihos знаете ли вы хороший SDK для распознавания/сопоставления подписей?

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

Эль 21.09.2017 23:21, "Марк Вайнгриб" [email protected] , описание:

@szimek https://github.com/szimek потрясающая библиотека, использующая ее в реакции
родной проект и все гладко как по маслу!
@kalihos https://github.com/kalihos знаете ли вы хорошую подпись
распознавание/сопоставление SDK?


Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/szimek/signature_pad/issues/213#issuecomment-331285500 ,
или заглушить тему
https://github.com/notifications/unsubscribe-auth/APdPANXnge-rnI2TRuV9w-uqdp8kn_nbks5sktNEgaJpZM4LphIH
.

@mgierw Спасибо! Однако теперь, когда есть SignaturePad#toData , можно (вероятно) написать крошечный скрипт, который берет вывод этой функции и преобразует его в формат, ожидаемый этим стандартом. Это даже не должно быть частью этой библиотеки.

Что-то типа:

const data = convertToISO(signaturePad.toData());

Если кто-то придумает такую ​​библиотеку, я бы добавил информацию о ней в файл README.

Привет,
этот разговор действительно интересен!
кто-нибудь пробовал внедрить стандарт ISO?
я хотел бы помочь

Есть новости по этому поводу?

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

@Springrbua v3 этой библиотеки поддерживает события указателя, которые могут предоставлять такую ​​информацию, если ее предоставляет устройство. Так что это должно быть возможно, но я не планирую его для первого релиза 3.0.0 из-за нехватки времени и устройств для тестирования.

Спасибо за быстрый ответ. Недавно я открыл для себя pressjs, поэтому мне было любопытно, можно ли его использовать и для цифровых подписей.

@szimek потрясающая библиотека, использующая ее в нативном проекте, и она гладкая, как масло!

@mvayngrib Как именно вам удалось заставить его работать с RN?

@ntelkedzhiev Я использую react -native-signature-pad , который является оболочкой для этой библиотеки. Вернее, я использую форк этой оболочки, так как хотел вернуть ширину/высоту вместе с URL-адресом данных (https://github.com/tradle/react-native-signature-pad)

@mvayngrib Спасибо, что сообщили мне! Я делаю то же самое. Я также попытался обновить https://github.com/kevinstumpf/react-native-signature-pad , чтобы использовать новую обновленную версию этого репозитория, но это займет больше времени, чем сейчас. Я думаю, что все модули должны быть помещены в один файл, и они должны быть в формате CJS/UMD.

есть обновления по этой теме?

Привет, я нашел стандарт реализации биометрии.
https://github.com/biosignin/bsi-core
Это немного устарело, но может стоить отправной точки

Привет! Это было бы отличным дополнением к проекту. Есть новости об этом?

вы имеете в виду пульс, артериальное давление, расширение зрачков, температуру тела?

Во вторник, 15 сентября 2020 г., в 01:24 [email protected] написал:

Привет! Это было бы отличным дополнением к проекту. Есть новости об этом?


Вы получаете это, потому что подписаны на эту тему.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/szimek/signature_pad/issues/213#issuecomment-692553010 ,
или отписаться
https://github.com/notifications/unsubscribe-auth/AK7MVVQPIVBQFFOLU3NGV4TSF4QCBANCNFSM4C5GCIDQ
.

--
вот моя подпись

вы имеете в виду пульс, артериальное давление, расширение зрачков, температуру тела?

Во вторник, 15 сентября 2020 г., в 1:24 corrrso @ . * > писал(а): Привет! Это было бы отличным дополнением к проекту. Есть новости об этом? — Вы получаете это, потому что подписаны на эту тему. Ответьте на это письмо напрямую, просмотрите его на GitHub < # 213 (комментарий) > или отмените подписку https://github.com/notifications/unsubscribe-auth/AK7MVVQPIVBQFFOLU3NGV4TSF4QCBANCNFSM4C5GCIDQ .
-- вот моя подпись

Он означает давление хода, ускорение, скорость и т. д., как определено в спецификациях ISO 19794-7.
Это считается биометрическими данными, полезными для юридической проверки подписи, одного только изображения подписи недостаточно в некоторых странах, таких как Италия и, возможно, Испания.

вы имеете в виду пульс, артериальное давление, расширение зрачков, температуру тела?

Во вторник, 15 сентября 2020 г., в 1:24 corrrso _ @ _. * > писал(а): Привет! Это было бы отличным дополнением к проекту. Есть новости об этом? — Вы получаете это, потому что подписаны на эту тему. Ответьте на это письмо напрямую, просмотрите его на GitHub < # 213 (комментарий) > или отмените подписку https://github.com/notifications/unsubscribe-auth/AK7MVVQPIVBQFFOLU3NGV4TSF4QCBANCNFSM4C5GCIDQ .
-- вот моя подпись

Он означает давление хода, ускорение, скорость и т. д., как определено в спецификациях ISO 19794-7.
Это считается биометрическими данными, полезными для юридической проверки подписи, одного только изображения подписи недостаточно в некоторых странах, таких как Италия и, возможно, Испания.

Да. Это правда, что в Испании есть требование для расширенной цифровой подписи.

Я пытаюсь сделать в https://github.com/javyxx/signature_pad простую модификацию для снижения давления

https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/давление

Привет...

Если кому-то интересно, я сделал в своем форке базовую реализацию для захвата давления, когда это возможно, а также реализовал функцию для преобразования захваченных данных в спецификацию ISO 19794-7.

Любые комментарии, тесты, исправления или улучшения приветствуются.

В любом случае, может быть очень интересно объединиться с этим проектом.

Я разветвил ваш репозиторий, чтобы обновить последние изменения в оригинальном репозитории szimek.
Думаю, будет интересно добавить ускорения AX и AY, которые можно вычислять как скорость. (Приращение скорости / приращение времени)
Каково твое мнение?

Каково твое мнение?

Привет Сертифирм...

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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги