國(guó)稅驗(yàn)證碼識(shí)別

國(guó)稅發(fā)票查驗(yàn)的驗(yàn)證碼識(shí)別率壟斷了2年杀狡,目前識(shí)別率97.5%,從未被超越酪夷。

測(cè)試接口


在這里插入圖片描述

識(shí)別速度如上圖所示5毫秒左右榴啸,機(jī)器配置如下圖:
在這里插入圖片描述

可見,低配1核CPU足以支撐業(yè)務(wù)日調(diào)用1.7千萬(wàn)級(jí)別的負(fù)載調(diào)用晚岭,加之識(shí)別率一直是全網(wǎng)最高鸥印,業(yè)內(nèi)不少頭部的財(cái)稅服務(wù)提供商都是使用筆者的版本,因保密協(xié)議不得透露合作關(guān)系腥例,在此不舉例辅甥,畢竟大多數(shù)公司都會(huì)說(shuō)自己并非使用爬蟲技術(shù)實(shí)現(xiàn)查驗(yàn)功能,行內(nèi)人應(yīng)該都知道的燎竖,可自行查證。敢在合同上寫下識(shí)別率指標(biāo)的不存在一絲絲水分要销。

測(cè)試地址:http://152.136.207.29:19812/preview?model_name=TAX

使用方法本篇博客就不贅述了构回,從官網(wǎng)保存驗(yàn)證碼原圖,選擇需要識(shí)別的顏色疏咐,上傳圖片識(shí)別即可纤掸。

本接口防止白嫖設(shè)立了一定的風(fēng)控,如有商業(yè)合作意愿可聯(lián)系本人QQ(27009583)或合伙人QQ(1095085167)浑塞,獲取文本接口測(cè)試借跪。

發(fā)票查驗(yàn)服務(wù)

https://inv.gouzai.pw/

image.png

提供全票種秒查詢的服務(wù),查驗(yàn)服務(wù)若有商業(yè)合作可以聯(lián)系我的合伙人酌壕√统睿可為高端用戶提供毫秒級(jí)的查驗(yàn)效率歇由,快至200毫秒以內(nèi)(光這個(gè)200基本上沒有對(duì)手,需要聯(lián)系合伙人QQ:1095085167果港,才提供測(cè)試)可高速并發(fā)(依賴高質(zhì)代理IP)沦泌,搭配97.5%識(shí)別率驗(yàn)證碼識(shí)別服務(wù),
連續(xù)查驗(yàn)失敗的概率低至10億分之9辛掠,可以說(shuō)失敗率為0谢谦,大型銀行年查驗(yàn)數(shù)大約千萬(wàn)量級(jí),換算一下大約100年中將發(fā)生9次查驗(yàn)失敗萝衩。穩(wěn)定性不用多說(shuō)回挽,實(shí)力在這里,放馬過(guò)來(lái)測(cè)試比對(duì)猩谊。


image.png

目標(biāo)客戶:大型財(cái)稅公司首選千劈,或者想一躍成為行業(yè)頭部的公司首選,可直接對(duì)標(biāo)市面上的任何一家公司的查驗(yàn)服務(wù)预柒,言盡于此队塘。不喜猶豫不決拖拖拉拉的客戶,加了好友不回消息的直接拉黑宜鸯,屌絲勿擾憔古。

6.19 更新(訓(xùn)練和部署源碼+JS逆向思路)

有人說(shuō)我文章沒有干貨只有思路,這里我分享一下源碼淋袖,訓(xùn)練及部署的教程:
https://blog.csdn.net/kerlomz/article/details/86706542

至于國(guó)稅總局的發(fā)票查驗(yàn)平臺(tái)JS這塊的逆向可以參考:
https://blog.csdn.net/qq_35228149/article/details/106818057


識(shí)別思路

首先有幾條道路可以通向羅馬鸿市,這里不分先后優(yōu)劣一一講述。

  1. 顏色提取的思路即碗,可以采用HSV/K-means聚類進(jìn)行顏色的分離提妊媲椤:效果如下:
    1.png

弊端顯而易見,會(huì)有較大的特征丟失剥懒,識(shí)別率有較大的提升瓶頸内舟,經(jīng)過(guò)測(cè)試,中英文+漢字的識(shí)別率在90%左右初橘。

  1. 不分離顏色的思路验游,該方案有兩種處理方法:
    (1)同時(shí)預(yù)測(cè)顏色和字符內(nèi)容,這種方法看起來(lái)比較正統(tǒng)保檐,但是成本較高耕蝉,需要標(biāo)注每張圖的顏色字符內(nèi)容,這個(gè)要求有多高呢夜只,一般的打碼平臺(tái)是無(wú)法提供這樣的結(jié)果的垒在,打碼平臺(tái)只返回對(duì)應(yīng)顏色的內(nèi)容,只能人工標(biāo)注扔亥,那么需要多少樣本呢场躯?筆者訓(xùn)練的識(shí)別率98的模型用了100w左右的樣本谈为。一張這樣的樣本標(biāo)注假設(shè)需要0.1元,那么100w樣本需要10w標(biāo)注費(fèi)用推盛,假設(shè)0.01元峦阁,也要1w的標(biāo)注費(fèi)用。但是驗(yàn)證碼高質(zhì)量的人工標(biāo)注幾乎是不存在的耘成,因?yàn)楹芏鄻颖纠莆簦搜鄣淖R(shí)別率是不如機(jī)器的,總體標(biāo)注的準(zhǔn)確率大概也只能在85左右瘪菌∪龌幔看起來(lái)并不可取,有一種節(jié)約成本的辦法师妙,可以通過(guò)算法生成樣本诵肛,但是呢,生成的識(shí)別率英文數(shù)字還可以默穴,中文的識(shí)別率就低的可憐了怔檩。附上生成方法:http://www.reibang.com/p/da1b972e24f2
    (2)每個(gè)顏色分別訓(xùn)練一個(gè)模型, 這種方法看起來(lái)有點(diǎn)蠢蓄诽,但是確實(shí)比較合適有效的辦法了薛训,可以輕松借助打碼平臺(tái)的返回結(jié)果標(biāo)注樣本。需要的顏色可以通過(guò)官網(wǎng)提供的字段取到仑氛,返回結(jié)果通過(guò)打碼平臺(tái)識(shí)別得到乙埃,這樣一組合,樣本就有了锯岖。這種方法的成本相對(duì)較低介袜,樣本數(shù)不變的前提下,打碼價(jià)格低于人工標(biāo)注的成本出吹。但是筆者訓(xùn)練的是一種顏色的樣本用了100w遇伞。每個(gè)顏色分別訓(xùn)練這樣成本還是下不來(lái)。四種顏色就是500w樣本捶牢。官網(wǎng)的每次獲取圖片的時(shí)候顏色隨機(jī)出現(xiàn)的概率也不一定是1/4赃额。
    2.png

(3)把所有顏色都通過(guò)顏色變換為一種顏色,整體思路同(2)叫确。如下圖,筆者將黑色轉(zhuǎn)換為紅色芍锦。我們只需要訓(xùn)練紅色的圖片:藍(lán)轉(zhuǎn)紅竹勉、黃轉(zhuǎn)紅、黑轉(zhuǎn)紅娄琉,樣本成本只有采集一種顏色的成本次乓∠判看起來(lái)是目前位置最佳的方案了,事實(shí)也是如此的票腰。但是呢城看,100w的樣本對(duì)于普通人來(lái)說(shuō)也是一筆不小的花銷,即便有了樣本能做出來(lái)也需要花費(fèi)不少的時(shí)間和精力杏慰。

有些算法工作者可能會(huì)低估樣本的實(shí)際需求量测柠,3.6k分類,中文字體小缘滥,容易混淆相似的字多轰胁,不同的角度重疊干擾都會(huì)大大增加,過(guò)于復(fù)雜的網(wǎng)絡(luò)對(duì)性能的要求也高朝扼,為了平衡性能和準(zhǔn)確率赃阀,足夠數(shù)量的樣本支撐是必須的,100w樣本量其實(shí)不大擎颖,一點(diǎn)都不要驚訝

不過(guò)采集樣本不是單純的接打碼平臺(tái)就完事了榛斯,需要經(jīng)過(guò)官網(wǎng)判斷,只有通過(guò)驗(yàn)證搂捧,正確的樣本才保存下來(lái)驮俗。這樣有效的樣本對(duì)提高識(shí)別率才有幫助。


3.png

實(shí)驗(yàn)成果

image.png

image.png

筆者實(shí)時(shí)對(duì)接官網(wǎng)對(duì)實(shí)驗(yàn)?zāi)P瓦M(jìn)行檢驗(yàn)异旧,結(jié)果如上圖意述,測(cè)試了200+次,識(shí)別率達(dá)到98%以上吮蛹,識(shí)別速度的話荤崇,CPU本地識(shí)別一次大概5-8毫秒左右,(騰訊云1核1G低配機(jī)器約10ms-15ms)模型大小約3mb潮针。

附上接口僅供測(cè)試术荤,為了防止濫用,接口每天只支持請(qǐng)求500次(此接口已不返回文本識(shí)別結(jié)果每篷,采用圖片結(jié)果代替瓣戚,請(qǐng)?jiān)谏厦嫣峁┑臏y(cè)試頁(yè)面中測(cè)試):

http://152.136.207.29:19812/preview

請(qǐng)求地址 Content-Type 參數(shù)形式 請(qǐng)求方法
http://152.136.207.29:19812/captcha/v1 application/json JSON POST

注:如若超過(guò)限制可聯(lián)系作者獲取備用接口。


請(qǐng)勿惡意使用焦读,若超出當(dāng)日限制將返回:
{'uid': "9b5a6a34-9693-11ea-b6f9-525400a21e62", 'message': '超出當(dāng)日請(qǐng)求限制子库,請(qǐng)聯(lián)系作者QQ:27009583', 'success': False, 'code': -555}


具體參數(shù):

參數(shù)名 必選 類型 說(shuō)明
image Yes String Base64 編碼
param_key No String 顏色,red\blue\black\yellow

請(qǐng)求為JSON格式矗晃,形如:
{"image": "iVBORw0KGgoAAAANSUhEUgAAAFoAAAAjCAIAAA...base64編碼后的圖像二進(jìn)制流", "param_key ": "blue"}


注意:圖片只能是 90x35 尺寸的原圖仑嗅,請(qǐng)勿截圖

請(qǐng)勿 使用 模擬瀏覽器截圖 獲取,如果不知道如何使用協(xié)議獲取驗(yàn)證碼,可以參考這個(gè)文章的方法:
https://blog.csdn.net/kerlomz/article/details/106793781
若對(duì)最新的JS逆向感興趣可以關(guān)注作者仓技。

若以上方法都不清楚鸵贬,可以【另存為圖片】,本模型針對(duì)【原圖】訓(xùn)練脖捻。
截圖無(wú)法識(shí)別阔逼,不理解的可以先了解下深度學(xué)習(xí) 圖像識(shí)別原理 ,或咨詢 作者 地沮。


返回結(jié)果:

參數(shù)名 類型 說(shuō)明
message String 識(shí)別結(jié)果或錯(cuò)誤消息
code String 狀態(tài)碼
success String 是否請(qǐng)求成功

該返回為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-藍(lán)色,yellow-黃色
r = requests.post("http://152.136.207.29:19812/captcha/v1", json={
    "image": base64.b64encode(b).decode(), "param_key": "yellow"
})
print(r.json())

關(guān)鍵字:
|國(guó)稅 驗(yàn)證碼識(shí)別|國(guó)稅驗(yàn)證碼識(shí)別|國(guó)稅驗(yàn)證碼|國(guó)稅 驗(yàn)證碼|發(fā)票查驗(yàn)驗(yàn)證碼|發(fā)票查驗(yàn) 驗(yàn)證碼|發(fā)票查驗(yàn)驗(yàn)證碼識(shí)別|發(fā)票查驗(yàn) 驗(yàn)證碼識(shí)別|

有問(wèn)題可以聯(lián)系作者QQ:27009583

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诉濒,隨后出現(xiàn)的幾起案子周伦,更是在濱河造成了極大的恐慌,老刑警劉巖未荒,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件专挪,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡片排,警方通過(guò)查閱死者的電腦和手機(jī)寨腔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)率寡,“玉大人迫卢,你說(shuō)我怎么就攤上這事∫惫玻” “怎么了乾蛤?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)捅僵。 經(jīng)常有香客問(wèn)我家卖,道長(zhǎng),這世上最難降的妖魔是什么庙楚? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任上荡,我火速辦了婚禮,結(jié)果婚禮上馒闷,老公的妹妹穿的比我還像新娘酪捡。我一直安慰自己,他們只是感情好纳账,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布逛薇。 她就那樣靜靜地躺著,像睡著了一般疏虫。 火紅的嫁衣襯著肌膚如雪金刁。 梳的紋絲不亂的頭發(fā)上帅涂,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音尤蛮,去河邊找鬼。 笑死斯议,一個(gè)胖子當(dāng)著我的面吹牛产捞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哼御,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼坯临,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了恋昼?” 一聲冷哼從身側(cè)響起看靠,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎液肌,沒想到半個(gè)月后挟炬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嗦哆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年谤祖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片老速。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粥喜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出橘券,到底是詐尸還是另有隱情额湘,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布旁舰,位于F島的核電站锋华,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鬓梅。R本人自食惡果不足惜供置,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绽快。 院中可真熱鬧芥丧,春花似錦、人聲如沸坊罢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)活孩。三九已至物遇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背询兴。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工乃沙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诗舰。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓警儒,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親眶根。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜀铲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容