微软/Hotmail验证码识别97%识别率方案

11 篇文章 1 订阅
11 篇文章 1 订阅

如图所示,微软Hotmail的验证码与我们往常所见的验证码略有不同,他是 【双层粘结】 的验证码,这对于我们识别有什么影响呢?
在这里插入图片描述

我们先来看CTC算法的TimeStep在语音识别中的表示:
在这里插入图片描述
因为位数不固定,一般通过端到端做验证码识别的话会采用LSTM+CTC的方法,而根据上图所示,CTC的TimeStep对图像识别而言相当于水平方向的切片。

在这里插入图片描述
显而易见,无法同时识别多行文字内容,每一个时间片所对应的标签内容只能是一个,这导致了一般的训练法方法无法训练这种图示的验证码。那么该怎么训练呢?

解决方案:
我们经常看到验证码超过边界以外,即使只有一半,比如这样:
在这里插入图片描述
是否也不影响我们理解图片的内容?方法其实很简单,其实只要训练的时候对图片进行水平拼接就可以实现了,笔者使用的是github的captcha_trainer项目直接支持的水平拼接训练方法:
在这里插入图片描述

测试结果:
在这里插入图片描述
在这里插入图片描述
挂上一天测试大概有97%识别率。

对训练工具感兴趣的可以 github 搜索 captcha_trainer

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的python代码,用于识别垃圾邮件: ```python import re def is_spam(email): # 匹配常见的垃圾邮件关键词 spam_words = ['buy now', 'make money fast', 'earn money', 'cash prize', 'click below', 'double your income'] for word in spam_words: if re.search(word, email, re.IGNORECASE): return True # 判断邮件是否来自不可信的发件人 trusted_senders = ['gmail.com', 'yahoo.com', 'hotmail.com'] sender = re.search(r'@[\w.]+', email).group() if sender not in trusted_senders: return True # 判断邮件中是否包含多个感叹号或问号 exclamation_marks = email.count('!') question_marks = email.count('?') if exclamation_marks + question_marks > 3: return True # 如果以上条件都不符合,则认为邮件不是垃圾邮件 return False ``` 在上面的代码中,我们首先定义了一些常见的垃圾邮件关键词,然后使用正则表达式在邮件中查找这些关键词。如果邮件中包含任何一个关键词,我们就认为这是一封垃圾邮件。 接下来,我们判断邮件是否来自可信的发件人。在这个例子中,我们假设来自gmail.com、yahoo.com和hotmail.com的邮件是可信的。如果邮件来自其他域名,我们就认为它是垃圾邮件。 最后,我们还判断邮件中是否包含多个感叹号或问号。这是因为垃圾邮件通常会使用这些符号来吸引读者的注意力。 当我们使用这个函数来判断一封邮件是否是垃圾邮件时,只需要将邮件的内容作为参数传递给函数即可。例如: ```python email = "Congratulations, you have won a cash prize! Click below to claim your prize now!" if is_spam(email): print("This is a spam email.") else: print("This is not a spam email.") ``` 在这个例子中,我们的函数会返回True,因为邮件中包含了垃圾邮件关键词和感叹号。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值