Hola Habr!
Siéntate, hazte una gaviota, porque escribo un poco apretado y por la oreja derecha. Entonces, ¿estás listo? Bien, entonces comencemos.
ATENCION! ¡La información que se describe a continuación está escrita solo para fines de investigación y no está destinada a ser utilizada para beneficio personal !
Comenzaré, tal vez, con el fondo. Es decir, con el desarrollo de una unidad de red, cuyos sectores están en la nube. La esencia de esta tecnología hizo posible crear uno de los mismos Yandex.Disk de 10 Gb de varias cuentas (bueno, alrededor de 100 o 1k cuentas) del mismo Yandex.Disk cada uno (puede cambiar en el momento de la lectura), digamos 10Tb. Aqui ...
Lo tomé, eso significa, para el desarrollo de este programa hace un par de años (todavía escribí el programa, pero sobre esto en otro artículo) y surgió la pregunta: cómo presentar YaCaptcha.
Aquí hay algunos ejemplos: Así que miré este captcha, busqué en Google un poco y creo que sería necesario usar TensorFlow y luego transferirlo a FANN. Molesto, por supuesto, un poco, pero nada que hacer. Déjame pensar que descargaré algunas imágenes (~ 100k) para que luego puedas entrenar las neuronas, pero por ahora recordaré la segmentación de U-net. Bueno, dibujé un par de líneas de código en Delphi + Synapase, lo lancé y busqué en Google la neurona. Lo descargué durante la búsqueda, debo decir, antes ... mucho, en general. Y aquí comienza la diversión.
Entré, es decir, estoy en un papá con fotos y veo, ¡solo se repite! Sí, sí, había muchas fotos repetidas. Bueno, creo que esto no funcionará, y descargué el primer programa que parecía eliminar los mismos archivos (parece que, si la memoria no cambia, clonespy ). Lo lancé, pero me acosté en la estufa para dormir. Por la mañana, miré las estadísticas y pensé: de 100k imágenes, se eliminaron 76k repeticiones, y no solo son similares, ¡son 100% idénticas! ¿Qué significa esto, preguntas? Te lo explicaré ahora.
Si toma una neurona, puede obtener reconocimiento en algún lugar ~ 18%, como escribe nuestro amigo (bueno, me parece, puede exprimir hasta 45-50% si lo desea). Pero incluso si es así, no olvidemos cuánto alboroto con métodos similares (se deben crear bases de datos, ingrese manualmente dox ... una gran cantidad de captcha, entonces todavía necesita sistematizar todo y esperar hasta que todo se junte) y cuánto espacio tomará, y el tiempo rendimiento ni decir que el programa será genial.
¿Es posible ir de otra manera? - usted pregunta Y aquí propongo contar: tenemos 100k imágenes, de las cuales 76k repeticiones, es decir Si obturamos la base de datos de estas imágenes (por ejemplo, tomamos el hash de la suma), obtenemos un porcentaje de reconocimiento de hasta el 76%, que es más alto que la neurona, y el peso de la base de datos es aproximadamente el mismo (si no menos) que la tabla de peso de TensorFlow. Al mismo tiempo, este método funcionará en todas partes y no necesita un montón de bibliotecas.
Obtenemos que Yandex es tan robusto que crearon tan pocas variaciones de captcha. Y gracias a esto, puedes escribir un programa sobre el que escribí anteriormente. ¿No es esto una vulnerabilidad visual del sistema? ¿O crees que más de 100Tb de espacio en el disco duro es barato?
Gracias por mirar!