国税验证码识别

国税发票查验的验证码识别率垄断了2年,目前识别率97.5%,从未被超越。

测试接口


在这里插入图片描述

识别速度如上图所示5毫秒左右,机器配置如下图:
在这里插入图片描述

可见,低配1核CPU足以支撑业务日调用1.7千万级别的负载调用,加之识别率一直是全网最高,业内不少头部的财税服务提供商都是使用笔者的版本,因保密协议不得透露合作关系,在此不举例,毕竟大多数公司都会说自己并非使用爬虫技术实现查验功能,行内人应该都知道的,可自行查证。敢在合同上写下识别率指标的不存在一丝丝水分。

测试地址:http://152.136.207.29:19812/preview?model_name=TAX

使用方法本篇博客就不赘述了,从官网保存验证码原图,选择需要识别的颜色,上传图片识别即可。

本接口防止白嫖设立了一定的风控,如有商业合作意愿可联系本人QQ(27009583)或合伙人QQ(1095085167),获取文本接口测试。

发票查验服务

https://inv.gouzai.pw/

image.png

提供全票种秒查询的服务,查验服务若有商业合作可以联系我的合伙人。可为高端用户提供毫秒级的查验效率,快至200毫秒以内(光这个200基本上没有对手,需要联系合伙人QQ:1095085167,才提供测试)可高速并发(依赖高质代理IP),搭配97.5%识别率验证码识别服务,
连续查验失败的概率低至10亿分之9,可以说失败率为0,大型银行年查验数大约千万量级,换算一下大约100年中将发生9次查验失败。稳定性不用多说,实力在这里,放马过来测试比对。


image.png

目标客户:大型财税公司首选,或者想一跃成为行业头部的公司首选,可直接对标市面上的任何一家公司的查验服务,言尽于此。不喜犹豫不决拖拖拉拉的客户,加了好友不回消息的直接拉黑,屌丝勿扰。

6.19 更新(训练和部署源码+JS逆向思路)

有人说我文章没有干货只有思路,这里我分享一下源码,训练及部署的教程:
https://blog.csdn.net/kerlomz/article/details/86706542

至于国税总局的发票查验平台JS这块的逆向可以参考:
https://blog.csdn.net/qq_35228149/article/details/106818057


识别思路

首先有几条道路可以通向罗马,这里不分先后优劣一一讲述。

  1. 颜色提取的思路,可以采用HSV/K-means聚类进行颜色的分离提取:效果如下:
    1.png

弊端显而易见,会有较大的特征丢失,识别率有较大的提升瓶颈,经过测试,中英文+汉字的识别率在90%左右。

  1. 不分离颜色的思路,该方案有两种处理方法:
    (1)同时预测颜色和字符内容,这种方法看起来比较正统,但是成本较高,需要标注每张图的颜色字符内容,这个要求有多高呢,一般的打码平台是无法提供这样的结果的,打码平台只返回对应颜色的内容,只能人工标注,那么需要多少样本呢?笔者训练的识别率98的模型用了100w左右的样本。一张这样的样本标注假设需要0.1元,那么100w样本需要10w标注费用,假设0.01元,也要1w的标注费用。但是验证码高质量的人工标注几乎是不存在的,因为很多样本,人眼的识别率是不如机器的,总体标注的准确率大概也只能在85左右。看起来并不可取,有一种节约成本的办法,可以通过算法生成样本,但是呢,生成的识别率英文数字还可以,中文的识别率就低的可怜了。附上生成方法:https://www.jianshu.com/p/da1b972e24f2
    (2)每个颜色分别训练一个模型, 这种方法看起来有点蠢,但是确实比较合适有效的办法了,可以轻松借助打码平台的返回结果标注样本。需要的颜色可以通过官网提供的字段取到,返回结果通过打码平台识别得到,这样一组合,样本就有了。这种方法的成本相对较低,样本数不变的前提下,打码价格低于人工标注的成本。但是笔者训练的是一种颜色的样本用了100w。每个颜色分别训练这样成本还是下不来。四种颜色就是500w样本。官网的每次获取图片的时候颜色随机出现的概率也不一定是1/4。
    2.png

(3)把所有颜色都通过颜色变换为一种颜色,整体思路同(2)。如下图,笔者将黑色转换为红色。我们只需要训练红色的图片:蓝转红、黄转红、黑转红,样本成本只有采集一种颜色的成本。看起来是目前位置最佳的方案了,事实也是如此的。但是呢,100w的样本对于普通人来说也是一笔不小的花销,即便有了样本能做出来也需要花费不少的时间和精力。

有些算法工作者可能会低估样本的实际需求量,3.6k分类,中文字体小,容易混淆相似的字多,不同的角度重叠干扰都会大大增加,过于复杂的网络对性能的要求也高,为了平衡性能和准确率,足够数量的样本支撑是必须的,100w样本量其实不大,一点都不要惊讶

不过采集样本不是单纯的接打码平台就完事了,需要经过官网判断,只有通过验证,正确的样本才保存下来。这样有效的样本对提高识别率才有帮助。


3.png

实验成果

image.png

image.png

笔者实时对接官网对实验模型进行检验,结果如上图,测试了200+次,识别率达到98%以上,识别速度的话,CPU本地识别一次大概5-8毫秒左右,(腾讯云1核1G低配机器约10ms-15ms)模型大小约3mb。

附上接口仅供测试,为了防止滥用,接口每天只支持请求500次(此接口已不返回文本识别结果,采用图片结果代替,请在上面提供的测试页面中测试):

http://152.136.207.29:19812/preview

请求地址 Content-Type 参数形式 请求方法
http://152.136.207.29:19812/captcha/v1 application/json JSON POST

注:如若超过限制可联系作者获取备用接口。


请勿恶意使用,若超出当日限制将返回:
{'uid': "9b5a6a34-9693-11ea-b6f9-525400a21e62", 'message': '超出当日请求限制,请联系作者QQ:27009583', 'success': False, 'code': -555}


具体参数:

参数名 必选 类型 说明
image Yes String Base64 编码
param_key No String 颜色,red\blue\black\yellow

请求为JSON格式,形如:
{"image": "iVBORw0KGgoAAAANSUhEUgAAAFoAAAAjCAIAAA...base64编码后的图像二进制流", "param_key ": "blue"}


注意:图片只能是 90x35 尺寸的原图,请勿截图

请勿 使用 模拟浏览器截图 获取,如果不知道如何使用协议获取验证码,可以参考这个文章的方法:
https://blog.csdn.net/kerlomz/article/details/106793781
若对最新的JS逆向感兴趣可以关注作者。

若以上方法都不清楚,可以【另存为图片】,本模型针对【原图】训练。
截图无法识别,不理解的可以先了解下深度学习 图像识别原理 ,或咨询 作者


返回结果:

参数名 类型 说明
message String 识别结果或错误消息
code String 状态码
success String 是否请求成功

该返回为JSON格式,形如:
{'uid': "9b5a6a34-9693-11ea-b6f9-525400a21e62", "message": "xxxx", "code": 0, "success": true}

Python示例:

import requests
import base64

with open(r"C:\1.png", "rb") as f:
    b = f.read()

# param_key: black-全黑色,red-红色,blue-蓝色,yellow-黄色
r = requests.post("http://152.136.207.29:19812/captcha/v1", json={
    "image": base64.b64encode(b).decode(), "param_key": "yellow"
})
print(r.json())

关键字:
|国税 验证码识别|国税验证码识别|国税验证码|国税 验证码|发票查验验证码|发票查验 验证码|发票查验验证码识别|发票查验 验证码识别|

有问题可以联系作者QQ:27009583

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容