验证码识别技术API对接有哪些注意事项?

      有很多“程序猿”自己写验证码识别模块,他们自己写的时候是这样的,当然不一定大家都这样写,肯定有更好的算法。


1、遍历所有像素点(像PHP就是先getimagesize,获取i和j,然后用imagecolorat进行两重循环,就可以得到所有像素点的RGB值数据),然后二值化【比如判断RGB值小于#FFFFFF的(即非白色)时候标记为1,大于等于#FFFFFF(即白色)的标记为0,存进二维数组】,最后得到一个19*7的二维数组;


2、删除干扰的点、线(干扰像素的特点是不连续,占用的像素点少,可以很容易地设计算法容易过滤,如果干扰像素采用了和验证码正文明显不同的颜色,则可以在第一步二值化中直接去掉。这个例子里没有干扰点、干扰线)


3、把数组里连续的字符切割成一个个独立的字符(像下面这个,最右边一列都是0,就可以判断是图像边缘,然后切开,最后可以得到三个类似这样的6*6二维数组。实际切开的话,最右边一列是没有整列都是0的情况的,这里是我特地加上的。)如果字符有旋转的,还得根据边缘把它再给摆直




4、然后直接循环匹配已有的所有的同字体的数据(同样是二值化数据,这些数据是哪里来的呢?一般是先作完前面3步,然后把那些二值化数据一个个全部复制下来,多刷新十几次获取样本,运气好的话[A-Z],[0-9]就都有了),达到一定的相似度(不要求完全匹配),就认定这个验证码的其中这个字符是2。除了这种比较外,还有根据概率、机器学习等等大量方法来做这最后一步。现在验证码的设计难点主要是放在防止字符被切割上。


     有些“程序猿”可能自己不会写验证码识别技术模块,他们就会要找像答题吧验证码识别这样的平台来进行对接,以便于更好的完成这项工作。具体如下:


对接这个接口具体的注意事项如下:

注意事项

1.开发时需要修改HTTP请求默认超时时间,具体数值需要大于任务超时的timeout参数。

2.特殊题如:中文、选择、类型较难完成的请把任务超时(timeout参数)设置大于100秒,以便满足任务重新分配机制。

3.网络环境中HTTP劫持会影响使用结果。

4.任务执行中切勿断拨或切断网络,否则无法接收结果。

返回结果 <div "="" style="margin: 0px; padding: 0px; list-style-type: none; line-height: 21.6000003814697px; font-family: helvetica, arial, verdana, sans-serif; font-size: 15px;">

正确返回

JSON:{"Result":"答题结果","id":"题目Id(报错使用)"}

错误返回

文本消息

开发建议

推荐各开发者JSON方式为数据返回,为了代码运行更加健壮数据返回后先判断Result和Id两个分支是否存在,如果返回数据没有这两个分支就完全可以当错误返回处理。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值