点选式图片验证码的一种实现效果
Posted bohu83
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了点选式图片验证码的一种实现效果相关的知识,希望对你有一定的参考价值。
一背景
人机识别,反爬虫等,相信去关注这块的,诉求比较明确。
通常来说,市面上很多这种,腾讯的验证码,网易的盾,还有极验这种专做这块的。好处是:验证方式多样,申请key,调用api 即可,不用去开发。可快速上线,缺点:花钱。不可控。比如我想让用户回答个问题,这个做不到。
二 为什么选择点选式图片验证码?
网上常见的是滑块式的。而且关于破解方式也是很多了。相对容易吧。反过来对于开发来说:
你得找图,复杂在于:还得扣图,包括滑块,缺口图等。就算你做完这些,前端也需要挺多工作量。而且初期没啥数据积累的情况下,只判断滑块与缺口图的偏移量也不够。轨迹行为数据需要慢慢积累分析。
所以找个相对容易的点选式图片验证码。
说到图片验证码,少不了关于OCR识别。这里没有亲自动手验证。贴个结果:
- 对于宋体,白色背景,非倾斜等,像素大于等于300dpi—识别率%100
- 英文和数字,识别率超过90%
- 特殊字符识别率不高
- 像素太低,识别率急剧下降
- 多种背景颜色变化,识别率极低
- 字体换成草书等,识别率大幅降低
- 电影屏幕字幕和网页截图识别率较低
- 扫描件如果字体太淡,太小,完全识别不出来
- 提高识别率,需要自己做训练集,工作量巨大的体力活(简体汉字最少6753个,混合一些复杂的,至少要10000个字符;不同字体要重新做,因为本质上是图形几何计算,国内科研院所和开源的做的不多)
详情参见大佬文章:https://www.cnblogs.com/NaughtyCat/p/tika-support-Tesseract-OCR-with-source-code-and-test-data.html
既然前辈做过,我们可以参照去实现
图片是网上随便找个图,不是纯色背景那种,有些复杂线条。这样OCR做灰化后也增加复杂性。
另外字体不要用宋体那种方方正正的,换个稍微复杂点的。
在线OCR识别效果:
当然我也试过百度的OCR识别效果,还不如讯飞的好。
不要以为这样就高枕无忧了,毕竟所有的验证码在AI还有人肉打码平台面前不堪一击的。
以上是关于点选式图片验证码的一种实现效果的主要内容,如果未能解决你的问题,请参考以下文章