Есть ли какой-либо код или алгоритм распознавания подписи?
Мои пользователи рисуют свою подпись в моем приложении, используя события касания, и я конвертирую его в растровое изображение. Я хочу извлечь уникальные спецификации каждой подписи и сравнить ее по своим спецификациям, хранящимся на главном сервере.
Как я могу это сделать?
Каков основной и корпоративный алгоритм для извлечения уникальных функций подписи?
Спасибо заранее,
Ответы
Ответ 1
Я не эксперт по компьютерному видению, но, как студент-градиент, который звучал, похоже, что особенность - это то, что вы ищете. Первое, что приходит на ум, - SIFT (Масштаб-инвариантное преобразование функций). Этот алгоритм позволит вам сравнить сохраненные функции оригинальной подписи с копиями и идентифицировать соответствие с высокой степенью точности даже в тех случаях, когда образец масштабируется или поворачивается.
С помощью простого поиска Google вы можете найти ряд научных статей, например этот или этот, который специально связан с использованием алгоритма для подписи/биометрии.
Обсуждается использование OpenCV с SIFT в этой статье.
Если есть лучшие алгоритмы зрения, о которых я не подозреваю, особенно хорошо подходят для этой проблемы, я призываю сообщество перезвонить.
Ответ 2
Попробуйте этот ресурс, который использует нейронную сеть для распознавания рукописного ввода. Попробуйте найти этот ресурс тоже, который показывает вам, как распознавать ручные цифры. Оба проекта имеют полный исходный код.
Ответ 3
Существует аналогичный вопрос: Сравнение битмапа (подписи) в С#
Я также нашел одну статью в канале9 http://channel9.msdn.com/coding4fun/blog/Contour-Analysis-for-Image-Recognition-in-C
Требуется создание сложной логики, существуют различные продукты для проверки и распознавания подписи, я нашел следующий код, написанный на vb 6.0, который может быть полезен:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=38215&lngWId=1
В двух словах это требует больших усилий, поэтому вы можете спросить клиента, если, указав какой-то уникальный код или задав вопрос, может быть выполнено требование "сопоставление подписи".
Ответ 4
Ну, вы можете преобразовать изображение в массив байтов, отправить его на свой сервер и делать все, что хотите.
Далее я поставлю несколько советов и трюков с помощью методов декодирования и кодирования, которые вы можете использовать
Здесь возникает вопрос Декодировать массив байтов в растровое изображение, сжатое в Java, о том, как декодировать массив байтов
И чтобы создать массив байтов из вашего растрового изображения, используя следующие советы: http://www.anddev.org/advanced-tutorials-f21/how-to-convert-bitmap-to-byte-array-in-android-t12985.html
Надеюсь, это поможет,
Arkde