2012-01-18 6 views
16

Mis usuarios dibujan su firma en mi aplicación usando eventos táctiles y la convierto en un mapa de bits. Quiero extraer especificaciones únicas de cada firma y compararla con sus especificaciones almacenadas en el servidor principal.¿Hay algún código o algoritmo para el reconocimiento de firmas?

¿Cómo puedo hacer eso?

¿Cuál es el algoritmo principal y empresarial para extraer características únicas de una firma?

Gracias de antemano,

Respuesta

0

bien que se puede transformar la imagen en una matriz de bytes, que enviará a su servidor y hacer lo que quiera.

A continuación voy a poner algunos consejos y trucos con los métodos de codificación y decodificación puede utilizar

Hay una pregunta aquí Decode byte array to bitmap that has been compressed in Java sobre cómo decodificar bytes gama

Y para crear la matriz de bytes de su mapa de bits utilizando este consejos: http://www.anddev.org/advanced-tutorials-f21/how-to-convert-bitmap-to-byte-array-in-android-t12985.html

Espero que esto ayude, Arkde

+0

Quiero almacenar esas especificaciones en mi base de datos para trabajar fuera de línea. Así que convertir una imagen a una matriz de bytes no es mi solución y almacenar una imagen grande en la base de datos no es una buena solución para un dispositivo de bolsillo. Tengo que hacer mis operaciones en mi dispositivo. – breceivemail

+0

almacenar bien las imágenes en la base de datos puede no ser una buena solución. Intente mantenerlo en/sdcard y su ruta en la base de datos podría serlo. También puede almacenar localmente partes de la imagen, como una matriz de bytes, y compararla con otra matriz de bytes desde la imagen que compara. – Arkde

+0

detección de firmas es algo así como la detección de huellas dactilares. no es una comparación de píxel a píxel. – breceivemail

19

no soy un experto en la visión por ordenador, sino como un estudiante graduado que se salpicó, suena como la función de exacción es lo que estás buscando. Lo primero que me viene a la mente es SIFT (Transformación de característica invariante de escala). Este algoritmo le permitirá comparar las características almacenadas de una firma original con las copias e identificar una coincidencia con un alto nivel de precisión, incluso en los casos en que la muestra se escala o gira.

Con una simple búsqueda en Google, puede encontrar una serie de documentos académicos, por ejemplo, this one o this one, que están específicamente relacionados con el uso del algoritmo para firmas/biométrica.

Hay una discusión sobre el uso de OpenCV con SIFT en este Stack Overflow Article.

Si hay mejores algoritmos de visión que estoy al tanto de que están particularmente bien adaptados a este problema aliento a la comunidad a meter su cuchara.

+2

Hice un poco más de investigación sobre el tema esta noche por mi propia curiosidad. Hay sorprendentemente poco material sobre 'reconocimiento de firmas', pero si amplía su búsqueda a la escritura a mano, encontrará algunas soluciones comerciales como esta [Cedar Fox] (http://www.cedartech.com/products_cedarfox.html#image_proc) y [Neuro Script] (http://www.neuroscript.net/forensics.php). Ambos tienen demostraciones gratuitas que probablemente puedas usar para tener una idea de su proceso. Todavía estoy un poco sorprendido de que no haya nada de código abierto que lo haga de la caja ... – vpiTriumph

+1

Si va a considerar SIFT, también debería considerar SURF y ORB. Algoritmos similares, también implementados en opencv, pero que se ejecutan más rápido. –

3

Trate de mirar this resource que utiliza una red neuronal para hacer el reconocimiento de escritura. Intente mirar this resource too que le muestra cómo reconocer dígitos escritos a mano. Ambos proyectos tienen un código fuente completo.

1

Hay una pregunta similar le preguntó: Bitmap (of a signature) comparison in c#

También he encontrado un artículo en Channel9 http://channel9.msdn.com/coding4fun/blog/Contour-Analysis-for-Image-Recognition-in-C

Se requiere una lógica compleja para ser creado, hay varios productos disponibles para la verificación de firmas y el reconocimiento, me han encontrado el siguiente código escrito en vb 6.0 que podría ser de alguna ayuda: http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=38215&lngWId=1

En pocas palabras, se requieren muchos esfuerzos, por lo que puede preguntar al cliente si especificando algún código único o pregunta el requisito "coincidencia de firma" se puede cumplir.

Cuestiones relacionadas