-
-
[讨论]某某程序答题简单分析
-
发表于:
2010-1-5 12:05
6089
-
最近在研究某程序的答题系统,题目形式是:带有字母和数字的图片,并给出4个候选答案,从中选出正确的一个。虽然没有噪点,但是字母和数字中加入了干扰线,并且被扭曲和变形,
而且字母之间连在一起,人眼识别有时都会错。
图像识别啥的只是知道些名词,其它的一窍不通。只能先从建立数据库入手了。
最开始我天真的认为图库在本地,从网络传来对应的图库的索引或ID之类的,同时可能这些索引被加密,在客户端进行变形扭曲的处理后形成最终的图片。用户选择其中一个答案后,服务
器判断答题是否正确。
方法:如果是这样的话自己分析这个图片库,然后再建立个数据库来实现自动答题。
结果:失败。虽然能得到图片和相应的4个候选答案,但是图片根本不在本地,而是从服务器传递过来的。
图片在服务器,服务器可能是从它的图形库中取出对应的字母等图片,然后进行扭曲加干扰线等算法的处理。最后形成图片,传给客户端。
虽然可以写个自动采集题库的功能,但是26个字母+10个数字,从中任意选出3个组合应该有 36*35*34种组合吧(排列组合没学好,可能是错的哦),再加上它每个字母字体不同,字形不同,
干扰线,扭曲变形,可能会超过上百万种可能。即使我写个软件能让它1天采集几万个题库估计也需要好几十天才能完成吧。更变态的是即使采集完了,那100多万个图片人工识别估计也大概需要
1年的时间吧。 哈哈,如果1年之后换题了。。。。。。。
或者采用一个折中的方法,采集1万个左右的图片。然后从中切割出26个字母和10个数字的各种形状。形成数据库。当题目出来的时候,根据给出的4个候选答案,从图库中取出相应每一个字
母或数字的图片,从题目图片中查找与候选答案最相似的就为正确答案。如果采用这个方法,首先需要点图形识别之类的东西,而且要考虑识别的正确率。
最后膜拜大牛weolar的“【公开源代码】完美、诛仙等游戏验证码答题反外挂系统的初级识别程序 ”
下面是一副答题的图片:
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!