隨著行業(yè)的發(fā)展和技術(shù)的成熟,文字識(shí)別(OCR)目前已經(jīng)應(yīng)用到了多個(gè)行業(yè)中,比如物流行業(yè)快遞包裹的分揀,金融行業(yè)的支票單據(jù)識(shí)別輸入,交通領(lǐng)域中的車(chē)牌識(shí)別,以及日常生活中的卡證、票據(jù)識(shí)別等等。OCR(文字識(shí)別)技術(shù)是目前常用的一種AI能力。但一般OCR的識(shí)別結(jié)果是一種按行輸出的半結(jié)構(gòu)化輸出。
本次公開(kāi)課我們邀請(qǐng)到了百度高級(jí)研發(fā)工程師向宇波老師,他將在12月20日(周四)帶來(lái)一場(chǎng)主題為《基于模板的文字識(shí)別結(jié)果結(jié)構(gòu)化處理技術(shù)》的分享。本課程從百度自定義模板文字識(shí)別展開(kāi),從理論到案例,詳細(xì)介紹OCR結(jié)構(gòu)化的相關(guān)技術(shù),并理清OCR和結(jié)構(gòu)化之間的關(guān)系和適用場(chǎng)景。
向宇波:大家好,我是來(lái)自百度AI技術(shù)生態(tài)部的研發(fā)工程師,我叫向宇波,今天給大家?guī)?lái)的分享是基于模板的文字識(shí)別結(jié)果結(jié)構(gòu)化處理技術(shù),我們主要講的是文字處理結(jié)果的結(jié)構(gòu)化。
文字識(shí)別行業(yè)現(xiàn)狀
我們從一個(gè)財(cái)稅案例的角度出發(fā)。大家在公司里肯定都做過(guò)報(bào)銷(xiāo),報(bào)銷(xiāo)的時(shí)候我們都會(huì)有出租車(chē)票、定額發(fā)票等,我們需要將各種發(fā)票貼到紙上然后提交上去,由財(cái)務(wù)來(lái)做后面的事情。通常來(lái)說(shuō),他們其實(shí)做的都非常辛苦,要耗費(fèi)大量的人力來(lái)進(jìn)行人工錄入。這樣的話,不僅成本很高,而且耗時(shí)也很長(zhǎng),人工錄入的話還有可能會(huì)出錯(cuò)。我們能不能夠通過(guò)用文字識(shí)別的方式來(lái)解決這個(gè)問(wèn)題呢?比如把這個(gè)流程變成這樣,我們?cè)谥虚g加一層,不是人工錄入,而是通過(guò)一個(gè)識(shí)別系統(tǒng),首先我們把這些票據(jù)通過(guò)圖像采集設(shè)備,例如高分辨率掃描、拍照這種方式轉(zhuǎn)換成圖像,然后通過(guò)文字識(shí)別技術(shù)把圖像上的文字識(shí)別出來(lái),再經(jīng)過(guò)一個(gè)數(shù)據(jù)的結(jié)構(gòu)化,最后輸入到財(cái)務(wù)系統(tǒng)。這樣能節(jié)約大量的人力物力,也能夠提高效率及準(zhǔn)確率。其關(guān)鍵部分是在識(shí)別之后做一個(gè)結(jié)構(gòu)化處理。
我們來(lái)看一下多模板的結(jié)構(gòu)化識(shí)別。首先來(lái)說(shuō),我們從剛剛的例子也能看得到,哪怕是一個(gè)很簡(jiǎn)單的報(bào)銷(xiāo)過(guò)程,也涉及到很多種票據(jù),例如火車(chē)票、定額發(fā)票等等。現(xiàn)實(shí)生活中這種票據(jù)非常多。所以,我們的結(jié)構(gòu)化方案要能夠支持多種模板。
一般來(lái)講,OCR識(shí)別出來(lái)的結(jié)果是單純的一行一行文字,這樣業(yè)務(wù)處理起來(lái)會(huì)比較困難,key value形式的結(jié)構(gòu)會(huì)比較好處理。我們用一個(gè)例子來(lái)解釋?zhuān)热缥覀冏R(shí)別一張火車(chē)票,這個(gè)火車(chē)票上面有一行文字是始發(fā)站,然后是車(chē)次、到達(dá)站。如果直接處理識(shí)別出來(lái)的那一行文字相對(duì)麻煩,因?yàn)樾枰デ蟹殖龈鱾€(gè)字段。但是,如果我們的識(shí)別結(jié)果有結(jié)構(gòu),那處理起來(lái)就會(huì)容易很多。通過(guò)key value的形式檢索,我就能夠知道我的始發(fā)站(北京南),然后到達(dá)站(天津)、車(chē)次。所以結(jié)構(gòu)化給業(yè)務(wù)處理帶來(lái)了極大的便利。
接下來(lái)我們看一下文字識(shí)別分類(lèi)。通常來(lái)說(shuō)文字識(shí)別分為兩個(gè)大類(lèi),一種是通用文字識(shí)別,另一種就是專(zhuān)用垂類(lèi)識(shí)別。通用文字識(shí)別就像剛剛提到的,對(duì)一個(gè)圖片來(lái)說(shuō),識(shí)別結(jié)果會(huì)以行的形式輸出,同時(shí)會(huì)有比較準(zhǔn)確的文字坐標(biāo),這種按行輸出的結(jié)構(gòu)可以稱(chēng)之為半結(jié)構(gòu)化,它只能告訴你在這一行,在這一行,從上到下羅列,沒(méi)有真正意義上的key value結(jié)構(gòu)。
專(zhuān)用垂類(lèi)識(shí)別的結(jié)果有結(jié)構(gòu),比如說(shuō)對(duì)于身份證,其實(shí)我們知道所有身份證都長(zhǎng)的一樣,我們能夠知道身份證上這個(gè)地方是姓名,這個(gè)地方是性別,這個(gè)地方是民族,所以我們能夠返回的時(shí)候就告訴你姓名是什么,性別是什么,生日是什么。常見(jiàn)的專(zhuān)用垂類(lèi)還覆蓋幾類(lèi)常見(jiàn)卡證,像身份證、銀行卡、增值稅發(fā)票這些。但是開(kāi)發(fā)一個(gè)專(zhuān)用垂類(lèi)識(shí)別,通常來(lái)說(shuō)需要花比較多的人力物力,才能夠達(dá)到一個(gè)比較高的準(zhǔn)確度,所以它的開(kāi)發(fā)周期和人力成本都比較高。
整個(gè)看來(lái),業(yè)務(wù)處理需要不同板式的文字識(shí)別,并且希望能夠結(jié)構(gòu)化,但是如果把它們變成專(zhuān)用的垂類(lèi)模板來(lái),就會(huì)面臨成本很高,周期很長(zhǎng)的情況。
基于這些矛盾,我們推出了一個(gè)基于模板的文字識(shí)別結(jié)果的結(jié)構(gòu)化方案。給大家做一個(gè)例子來(lái)演示,比如用火車(chē)票。我有一個(gè)火車(chē)票的模板,就是就拿我自己的火車(chē)票舉例,大家可以看到我的始發(fā)站、終點(diǎn)站都有了。然后我們可以再做一個(gè)模板,這次可以換一個(gè)增值稅發(fā)票的。首先我們上傳一張模板的底圖,所有的增值稅發(fā)票都長(zhǎng)的差不多。然后我現(xiàn)在來(lái)選一些參照字段,選這個(gè)納稅人、開(kāi)票日期、稅率、開(kāi)票人、小寫(xiě)、收款人、價(jià)稅,這樣就差不多了。比如說(shuō)我想要識(shí)別這個(gè),大寫(xiě)的金額,保存。就可以選擇另外一張,這兩張顯然是不一樣的。我們來(lái)看一下,應(yīng)該是這張,可以看到這里寫(xiě)的是1000元整,這樣的話我們也可以多框選一些別的字段,就可以像剛剛火車(chē)票一樣,在這邊,在頁(yè)面上就可以測(cè)試出來(lái)我們想要的字段都能夠給它結(jié)構(gòu)化,按key value的形式找到。
基于模板的文字識(shí)別結(jié)構(gòu)化流程
剛剛說(shuō)的看起來(lái)操作很簡(jiǎn)單,但其實(shí)在它的背后我們做了一系列的操作。這個(gè)就是我們對(duì)整個(gè)文字識(shí)別結(jié)構(gòu)化的流程,它經(jīng)歷了4個(gè)大的步驟(4大流程)。首先是圖片擺正,然后是模板匹配、多次擺正,最后是結(jié)構(gòu)化。
對(duì)于圖片的擺正來(lái)說(shuō),首先我們會(huì)進(jìn)行一次文字識(shí)別,然后基于文字來(lái)尋找參照字段。我們通過(guò)參照字段來(lái)選擇參照字段能夠圍成的最大面積的四邊形,根據(jù)這個(gè)四邊形來(lái)計(jì)算透視投影矩陣,并做一系列的圖像變換,然后再計(jì)算所匹配的程度。如果足夠匹配了,OK,那我們結(jié)構(gòu)化;如果沒(méi)有匹配,并且沒(méi)有達(dá)到我們的匹配次數(shù)上限,我們是可以再來(lái)一次,嘗試多次擺正,擺得更好一點(diǎn)。
基于深度學(xué)習(xí)的文字識(shí)別
我們來(lái)講一講基于深度學(xué)習(xí)的文字識(shí)別。首先大體上來(lái)說(shuō)有兩種方式,一種是單字檢測(cè)加上單字識(shí)別,另一種是行檢測(cè)加上行識(shí)別。單字檢測(cè)就是把文字當(dāng)做一般的物體檢測(cè)任務(wù),例如可以用faster-rcnn這個(gè)網(wǎng)絡(luò)去做,每一個(gè)字都可以當(dāng)做一個(gè)小物體。檢測(cè)出來(lái)的單字再用單字識(shí)別處理,本質(zhì)上是個(gè)多分類(lèi)任務(wù)。行識(shí)別就不再是檢測(cè)一個(gè)一個(gè)字,而是一個(gè)文本行。一般來(lái)說(shuō)文本行的特征有:高度不是很高,但是可能一行字會(huì)比較長(zhǎng),它其實(shí)是類(lèi)似于小豎條,然后橫著擺過(guò)來(lái)一個(gè)很長(zhǎng)條的。對(duì)通常的物體檢測(cè)模型做改造,然后去檢測(cè),其中一個(gè)好的例子就是cptn。然后把一行文字導(dǎo)出來(lái)之后再來(lái)識(shí)別,就可以當(dāng)做是一個(gè)序列標(biāo)注的問(wèn)題了。當(dāng)然現(xiàn)在也有這種端到端的,是大家正在做的一些方向。
基于模板的圖片擺正
我們?cè)倩氐絼倓偟哪0濉D0蹇梢哉J(rèn)為是一個(gè)標(biāo)準(zhǔn)的底版定義的結(jié)構(gòu),比如這個(gè)定額發(fā)票,其實(shí)我們一開(kāi)始就知道我們需要識(shí)別的部分在模板上的位置,在這個(gè)票據(jù)上,我就知道這個(gè)發(fā)票代碼它其實(shí)就在這兒,發(fā)票號(hào)碼在這兒,金額在這兒。如果每張圖都長(zhǎng)這樣,其實(shí)就很簡(jiǎn)單。但實(shí)際上來(lái)識(shí)別的圖都不像模板一樣擺的那么正,識(shí)別的區(qū)域在圖片上的位置不是固定的,比如有可能我上傳的圖是這樣,如果按照固定位置扣取,很可能什么都扣不到。所以我們需要有一種方案,也就是剛剛說(shuō)的擺正那套流程,希望把所有待識(shí)別圖都擺的跟模板一樣正。我們選用的是透視投影方法來(lái)做圖片的擺正,盡可能的把待識(shí)別的圖跟模板圖對(duì)齊,這樣比較方便后面提取字。
透視投影變換的時(shí)候,需要4組從待識(shí)別圖到模板圖對(duì)應(yīng)的點(diǎn)對(duì)。也就是說(shuō)像這樣,比如這個(gè)發(fā)票的票字它在這兒,但是識(shí)別圖上在這兒,模板上在這兒,這邊一個(gè)發(fā)票號(hào)碼,然后各種類(lèi)似這樣的對(duì)應(yīng)起來(lái)的點(diǎn)對(duì)。通過(guò)這4組點(diǎn)對(duì)可以計(jì)算一個(gè)透視投影矩陣,做透視投影變換。我們通過(guò)框選模板上固定字段來(lái)做參照字段,進(jìn)而通過(guò)文字匹配方式尋找對(duì)應(yīng)點(diǎn)對(duì)。通常一個(gè)票據(jù)它的板式固定,那么它就符合我們剛剛說(shuō)的那種條件,是對(duì)應(yīng)的點(diǎn)對(duì)。
如果參照字段有多個(gè),這個(gè)時(shí)候可能就會(huì)遇到一個(gè)問(wèn)題了。比如說(shuō)對(duì)于這個(gè)票據(jù)來(lái)說(shuō),它雖然很簡(jiǎn)單,在上面可以提取的字也只有1、2、3、4、5,比如說(shuō)我只提取了5個(gè)字段作為參照字段,但是計(jì)算索引的時(shí)候只需要4個(gè)點(diǎn),此時(shí)需要取舍。比如這兒雖然只有5個(gè)字段,但實(shí)際組成的點(diǎn)對(duì)個(gè)數(shù)其實(shí)是比較多的,比如這個(gè)藍(lán)線的可以算一個(gè),這個(gè)紅線這一圈也可以算一個(gè)。我們經(jīng)過(guò)一些實(shí)驗(yàn),當(dāng)然從主觀上看也能夠想到,參照字段越分散它擺正的效果越好。可以這么理解,越分散的時(shí)候每一個(gè)點(diǎn)它能夠管轄的區(qū)域就越存在這個(gè)票面的四周,那么它擺的時(shí)候,相當(dāng)于說(shuō)你從一個(gè)更高的維度或者一個(gè)更大的范圍去擺,那么擺完的效果肯定比在一個(gè)小范圍內(nèi)去拉動(dòng)其他地方來(lái)擺的誤差小。
然后怎么樣來(lái)衡量這個(gè)分散的程度?我們選用面積作為衡量四邊形分散程度的指標(biāo)。我們選面積的一個(gè)原因是好計(jì)算,四邊形可以當(dāng)做是兩個(gè)三角形,只要有坐標(biāo),那么兩個(gè)三角形的面積很好計(jì)算。另一個(gè),其實(shí)說(shuō)分散是很難衡量的,如果轉(zhuǎn)化成面積的話其實(shí)面積就是一個(gè)數(shù),比較好度量比較。
模板匹配
我們把待識(shí)別圖做了透視投影之后,接下來(lái)要計(jì)算它和模板匹配的程度。因?yàn)橛械臅r(shí)候,比如說(shuō)這個(gè)時(shí)候識(shí)別的文字并不是太好,我擺了一下,然后這個(gè)時(shí)候我發(fā)現(xiàn)我可以識(shí)別的字更多了,而且第一次擺的時(shí)候我能識(shí)別得更多,但是發(fā)現(xiàn)這個(gè)時(shí)候擺的還不夠,那我怎么能知道它擺得不夠好?就需要來(lái)計(jì)算和模板的匹配程度。我們?cè)谶@個(gè)地方選擇的是用新的透視投影矩陣來(lái)計(jì)算擺正的程度。用新的透視投影矩陣計(jì)算擺正圖片四頂點(diǎn)和模板,四頂點(diǎn)的距離來(lái)判斷匹配程度。比如剛剛我們擺正之后,這個(gè)圖的四個(gè)頂點(diǎn)和模板底圖的四個(gè)頂點(diǎn),有三個(gè)點(diǎn)都是比較近的,然后這個(gè)點(diǎn)相對(duì)來(lái)說(shuō)遠(yuǎn)一點(diǎn),就可以通過(guò)這種距離的方式來(lái)判斷它的匹配程度。如果這個(gè)點(diǎn)通過(guò)擺正之后,計(jì)算出來(lái)它到了這個(gè)位置,那么距離的差其實(shí)就很小了,就可以認(rèn)為它已經(jīng)擺的非常好了,所以我們選擇的是用這種策略來(lái)判斷它匹配的程度。當(dāng)然如果擺得很歪,這兒離得也很遠(yuǎn),整個(gè)是這樣一個(gè)傾斜的角度,如果和模板原圖的四個(gè)點(diǎn)其實(shí)距離比較遠(yuǎn),是能夠判斷出去這個(gè)時(shí)候匹配得不夠好,可能還要再去做一次。
剛剛說(shuō)到了多次擺正,也就是說(shuō)我可能會(huì)計(jì)算多個(gè)透視投影矩陣。這個(gè)時(shí)候我們用到了一種技巧,就是透視投影矩陣的一個(gè)棧來(lái)操作。如果對(duì)級(jí)聯(lián)透視矩陣有了解的同學(xué)就知道,我們通常來(lái)說(shuō)透視投影的乘法是倒著乘的。比如這里的一個(gè)公式,M1代表的是透視投影之后的一個(gè)結(jié)果,M_origin表示是原圖的矩陣,然后乘透視投影矩陣。如果它只有一次擺正的時(shí)候,只有一個(gè)透視投影矩陣,這個(gè)時(shí)候它就等價(jià)于那個(gè)結(jié)果就是用原圖乘以這個(gè)透視投影矩陣。但有可能中間我們?cè)谔幚淼臅r(shí)候發(fā)現(xiàn)沒(méi)有擺正,可能這個(gè)時(shí)候就會(huì)計(jì)算出很多個(gè)透視投影矩陣,我們就會(huì)把它們都重復(fù)地往透視投影矩陣的棧里面壓入。這個(gè)時(shí)候,我們乘以透視投影矩陣棧就等價(jià)于原圖逆序乘以矩陣棧中每個(gè)元素。
為什么一定要費(fèi)勁來(lái)用這個(gè)透視投影矩陣棧?我倒著乘它,從origin倒著乘M2,再乘M1,和乘M2、M1,它倆的解讀要加一個(gè)括號(hào),其實(shí)是一樣的,從矩陣上是這樣。但是因?yàn)槲覀兤鋵?shí)還是對(duì)圖片做透視投影,如果單純的類(lèi)似括號(hào)的方式處理的話,它先乘以M2,它可能會(huì)把這個(gè)角扭到這兒,這個(gè)角往里收,可能會(huì)有一些圖超出了圖片原本的大小。那么在最后的一步處理的時(shí)候會(huì)進(jìn)行一個(gè)裁剪,如果它有超出的部分,那么這個(gè)部分其實(shí)就已經(jīng)被拋棄了。即使我后面希望再把它扭回來(lái),其實(shí)那部分的信息已經(jīng)永遠(yuǎn)丟失。所以我們?cè)谶@個(gè)時(shí)候有一個(gè)透視投影矩陣棧,雖然它是逆著出來(lái)的,但其實(shí)計(jì)算的時(shí)候是先把這個(gè)矩陣棧里邊做了一個(gè)相當(dāng)于加括號(hào)的優(yōu)先計(jì)算,以保留原圖的全部信息。
多類(lèi)型結(jié)構(gòu)化
我們經(jīng)過(guò)一系列的擺正操作之后,圖片就跟模板比較接近了,可以對(duì)它進(jìn)行一個(gè)識(shí)別結(jié)果的結(jié)構(gòu)化處理。從剛剛我們的演示操作能看得到,我們的處理通常來(lái)說(shuō)是有一個(gè)固定的識(shí)別區(qū),就像剛剛火車(chē)票的這種始發(fā)站、車(chē)次號(hào)、終點(diǎn)站,我們識(shí)別出來(lái)是每個(gè)字有個(gè)小方框。我們對(duì)于這種固定識(shí)別區(qū)來(lái)說(shuō)操作相對(duì)比較簡(jiǎn)單,可以根據(jù)單字矩形框的待識(shí)別區(qū)矩形框的交并比來(lái)判斷是否屬于某個(gè)字段。就像這樣,比如說(shuō)我們框的北京框是這兒,對(duì)于北京南這三個(gè)字完全處在起點(diǎn)站這個(gè)待識(shí)別區(qū)的內(nèi)部。OK,那就可以確定它倆肯定是起點(diǎn)站這個(gè)識(shí)別區(qū)的內(nèi)容。對(duì)于站這個(gè)字,雖然它也沾了一點(diǎn),但是這個(gè)字的矩形框和整個(gè)待識(shí)別區(qū)矩形框的交并比并不多,所以我們就把它拋棄掉。對(duì)于車(chē)次來(lái)說(shuō),我們正好把這個(gè)全部框住,所以它們都是。對(duì)天津兩個(gè)字跟北京南的情況類(lèi)似。對(duì)于這種簡(jiǎn)單的情況可能就結(jié)束了。
對(duì)于更復(fù)雜的,比如說(shuō)成段落的,比如說(shuō)我框了整個(gè)這一片的時(shí)候,我們就需要做縱橫雙向排序來(lái)自動(dòng)處理跨行文字的拼接。什么意思?比如這兩行,我會(huì)先對(duì)文字做一個(gè)上下的排序,所以第一行的字肯定拿出來(lái)會(huì)在第二行的前面,所以需要先對(duì)縱向每一個(gè)字做比較,然后把它們先分成上下兩行。然后再看那兩行之后,按照左右來(lái)排序,這樣排完之后出來(lái)的結(jié)果才是順序的從左到右,第一行然后第二行這樣的關(guān)系。
還有一種表格識(shí)別區(qū)。比如這個(gè)地方,這個(gè)識(shí)別區(qū)就是某一種體檢的結(jié)果,可以很明顯地看到它是一種表格,而且它沒(méi)有線,它既沒(méi)有橫線,也沒(méi)有豎線。我們需要把整個(gè)表格的結(jié)構(gòu)從文字重新構(gòu)建出來(lái),我們?cè)谶@個(gè)地方采用的是一種自底向上的表格構(gòu)建方式,用先列后行的方式來(lái)減少非剛性形變的影響。比如說(shuō)我們識(shí)別完了之后,現(xiàn)有單字的位置(比如前白蛋白4個(gè)字)的坐標(biāo),我們先從單字的坐標(biāo)開(kāi)始來(lái)構(gòu)建組成一個(gè)字段關(guān)系。比如我們現(xiàn)在有4個(gè)字,我們根據(jù)位置關(guān)系把它組合成一個(gè)字段,這樣的話我們就知道它們是一個(gè)整體,不可拆分。通常來(lái)說(shuō)表格的這種一個(gè)單格的內(nèi)容確實(shí)是不可拆分的。然后我們根據(jù)它的橫向的位置關(guān)系來(lái)串成列,其實(shí)就有點(diǎn)像串冰糖葫蘆一樣。比如這個(gè),我們知道其實(shí)所有的字段它的橫向位置都在這個(gè)區(qū)域,我們就可以把它們都這樣串起來(lái),像串糖葫蘆一樣,串成一列。另外的兩列也可以做類(lèi)似的操作,但最后讀的時(shí)候是一行一行讀,比如糖、5.04。按列之后,再每次取列的頭部字段,來(lái)根據(jù)高度信息組裝成行。比如在這兒就是糖,這一列取第一個(gè)就是糖,第二列取第一個(gè)就是5.04,第三個(gè)就是取這個(gè)。
這種方式能夠一定程度上地減少對(duì)于非剛性形變的影響。比如說(shuō)什么叫剛性形變,什么叫非剛性形變?比如像現(xiàn)在是個(gè)平鋪的,就是一個(gè)很薄的很平整的一個(gè)面片,把它做仿射變換,都是剛性的,但如果是彎曲這種,扭過(guò)來(lái),折痕這種,其實(shí)就稱(chēng)為非剛性形變。那么它們的相對(duì)位置可能會(huì)有一些波紋型的變化,這種會(huì)比較難以處理。
我們現(xiàn)在就把結(jié)構(gòu)化的兩個(gè)方式講完了,總結(jié)一下,還是對(duì)應(yīng)到剛剛的4個(gè)大的流程,一個(gè)是圖片擺正,一個(gè)是模板匹配,計(jì)算和模板匹配的程度,如果匹配的還不錯(cuò),匹配上了,OK,那我們就進(jìn)行結(jié)構(gòu)化,去提取我們事先定義好的待識(shí)別區(qū)和表格識(shí)別區(qū)。但如果很不幸我們擺的還不夠正,那可能就會(huì)需要去做多次擺正這樣一個(gè)操作,力求把它跟模板匹配得比較好,最后再做結(jié)構(gòu)化。
遷移學(xué)習(xí)與圖像分類(lèi)
下面給大家介紹一下我們這個(gè)產(chǎn)品的分類(lèi)器。為什么需要分類(lèi)?其實(shí)根據(jù)第一個(gè)財(cái)稅的例子來(lái)看,可能我們會(huì)報(bào)很多種票據(jù),比如說(shuō)出租車(chē)票、增值稅發(fā)票。一般來(lái)說(shuō)我們傳的時(shí)候,是一張一張傳,但匯聚到財(cái)務(wù)的時(shí)候,那就是一堆了,財(cái)務(wù)其實(shí)對(duì)不同的票據(jù)處理方式都不一樣,所以非常需要把它們區(qū)分出來(lái)。比如說(shuō)對(duì)增值稅發(fā)票,有可能你報(bào)了那個(gè)發(fā)票多會(huì)對(duì)公司有什么減稅,別的人只是單純的報(bào)銷(xiāo)。
最近,我們也提出了對(duì)模板進(jìn)行分類(lèi)。其實(shí)最簡(jiǎn)單的一個(gè)想法是,如果我們是按圖片,它就是一個(gè)簡(jiǎn)單的圖像分類(lèi)。我們可以采用的方案是基于遷移學(xué)習(xí)的一個(gè)圖像分類(lèi),所謂遷移學(xué)習(xí)就是在已有的分類(lèi)任務(wù)上效果比較好的CNN的模型在別的分類(lèi)任務(wù)上面也有不錯(cuò)的效果,大家都知道比如ImageNet比賽有很龐大的數(shù)據(jù),如果在那上面運(yùn)行的預(yù)訓(xùn)練模型的結(jié)果不錯(cuò),那么用它提取出來(lái)的特征在別的分類(lèi)上效果也不錯(cuò)。第二就是遷移學(xué)習(xí)能夠極大地減少訓(xùn)練數(shù)據(jù)需求的量,還有訓(xùn)練時(shí)長(zhǎng)。
我們的分類(lèi)除了基于圖像,還有關(guān)注到它基本都是票據(jù)類(lèi)的圖像,它其實(shí)是包括文字的,所以我們也結(jié)合了文字的特征來(lái)進(jìn)行一個(gè)分類(lèi)。首先是把整張圖過(guò)一遍CNN的模型,提取出它的圖像的特征,然后還要結(jié)合它的OCR出來(lái)的文字,提取它的文字特征。最后把兩種特征進(jìn)行一個(gè)融合,然后再去訓(xùn)練最終的分類(lèi)器。
可以給大家看一個(gè)例子。比如在這里有一個(gè)分類(lèi)器管理,我們可以看到我現(xiàn)在已經(jīng)有的三個(gè)分類(lèi)器,點(diǎn)編輯進(jìn)去看一看。我現(xiàn)在能分的就是車(chē)牌跟火車(chē)票,可以在這兒試一試。火車(chē)票,它就分類(lèi)到我的火車(chē)票了,就像剛剛我定的那個(gè)模板一樣,就把那些數(shù)據(jù)都給結(jié)構(gòu)化出來(lái)。就是說(shuō)剛剛在這個(gè)地方的時(shí)候,相當(dāng)于是指定了某一個(gè)模板。但是在分類(lèi)器的時(shí)候其實(shí)就不需要了,隨便扔,隨便把圖扔進(jìn)去,然后它就能自動(dòng)地幫我們分類(lèi),并且做我們需要的結(jié)構(gòu)化。基于分類(lèi)的原理就是這樣。
最后給大家?guī)?lái)一個(gè)財(cái)稅場(chǎng)景上的例子,就是木牛盒子這個(gè)產(chǎn)品,它首先通過(guò)批量的票據(jù)掃描,其實(shí)就是這種掃描儀,能夠把圖像比較清晰地掃描出來(lái),然后使用我們剛剛自定義模板的票據(jù)分類(lèi),然后結(jié)構(gòu)化的功能加各種票據(jù)進(jìn)行分類(lèi)出來(lái),就做到了智能識(shí)別。然后再把它結(jié)構(gòu)化出來(lái),再生成憑證,進(jìn)行輸出。
-
識(shí)別系統(tǒng)
+關(guān)注
關(guān)注
1文章
142瀏覽量
19008 -
結(jié)構(gòu)化
+關(guān)注
關(guān)注
0文章
27瀏覽量
10378 -
文字識(shí)別
+關(guān)注
關(guān)注
0文章
17瀏覽量
8743
原文標(biāo)題:基于模板的文字識(shí)別結(jié)果結(jié)構(gòu)化處理技術(shù) | 公開(kāi)課速記
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
AI提取圖片里包含的文字信息-解決文字無(wú)法復(fù)制的痛點(diǎn)

音頻信息識(shí)別與檢索技術(shù)
首發(fā) | 告別手動(dòng)錄入,開(kāi)放平臺(tái)OCR上線印刷文字識(shí)別!
TrustZone結(jié)構(gòu)化消息是什么?
基于AI通用文字識(shí)別能力,檢測(cè)和識(shí)別文檔翻拍、街景翻拍等圖片中的文字
結(jié)構(gòu)化設(shè)計(jì)分為哪幾部分?結(jié)構(gòu)化設(shè)計(jì)的要求有哪些
結(jié)構(gòu)化布線的綜合說(shuō)明
改進(jìn)區(qū)域生長(zhǎng)的非結(jié)構(gòu)化道路識(shí)別

基于matlab的文字識(shí)別算法

基于FPGA的OCR文字識(shí)別技術(shù)的深度解析
視頻結(jié)構(gòu)化技術(shù)在智慧交通領(lǐng)域有什么可以應(yīng)用的
使用貝葉斯決策和Hough實(shí)現(xiàn)非結(jié)構(gòu)化道路檢測(cè)與障礙物識(shí)別算法

評(píng)論