崔 巍,李 慧
(1.太原科技大學(xué),山西 太原 030024;2.山西工程職業(yè)學(xué)院,山西 太原 030009)
隨著農(nóng)村電子商務(wù)的發(fā)展,面向農(nóng)村的電商產(chǎn)品已經(jīng)涉及到了生活的方方面面,既包括米、面、油糧等各種食物,也包括手機(jī)、計(jì)算機(jī)等各類(lèi)電子產(chǎn)品。電子商務(wù)的出現(xiàn),拓寬了農(nóng)村面向多種多樣類(lèi)型商品的購(gòu)買(mǎi)渠道,為人們購(gòu)物提供了便利條件。但當(dāng)前電商平臺(tái)的商品多數(shù)以圖像的方式進(jìn)行展示,這就導(dǎo)致商品參數(shù)獲取并不便利。快速清晰地找到商品數(shù)據(jù),依據(jù)商品數(shù)據(jù)去快捷便利地選取商品,都需要對(duì)電子商品的圖像進(jìn)行處理,將其識(shí)別成為清晰明了的文字參數(shù)。
以往的表格識(shí)別以及定位的方式仍然存在較大的局限性。如:正對(duì)表格識(shí)別的四角定位法需要預(yù)先進(jìn)行表格的模型設(shè)置,這種方式的應(yīng)用范圍較小,且人力成本較高;抽取矩形塊的方法將表格線作為導(dǎo)引,這種方式雖然不需要預(yù)先設(shè)置模型,但是表項(xiàng)內(nèi)容的提取只限于框線內(nèi)部,局限性很大。上述方法并不能為表格數(shù)據(jù)的提取提供更高的精度。同時(shí),電商產(chǎn)品中的表格往往表現(xiàn)出不規(guī)則性,這也為表格識(shí)別增加了難度。日益增長(zhǎng)的電商產(chǎn)品規(guī)模也導(dǎo)致電商產(chǎn)品中圖片信息復(fù)雜化和多樣化,在這種情況下需要識(shí)別系統(tǒng)具有更高的性能和更快的識(shí)別速度。改進(jìn)系統(tǒng)以YOLO 模型為基礎(chǔ)依據(jù)進(jìn)行目標(biāo)圖像的提取與切割,并進(jìn)行相應(yīng)的文字識(shí)別,將其拼接成可供瀏覽和編輯的表格文字。
YOLO 模型以神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),基于回歸思想,輸入圖像之后能夠依據(jù)網(wǎng)格劃分的圖像進(jìn)行回歸檢測(cè),以得到目標(biāo)需求的定位以及類(lèi)別,在保證目標(biāo)檢測(cè)時(shí)效性的同時(shí),也能夠保證檢測(cè)的精確度相對(duì)較高。該模型具有兩個(gè)特點(diǎn):一是作為端到端的模型,回歸以及分類(lèi)工作在一次圖像輸入之后即可完成;二是位置的生成直接通過(guò)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)。
具體地,圖像在輸入之后,先進(jìn)行規(guī)格為M×M的網(wǎng)格劃分,若目標(biāo)中心點(diǎn)落到對(duì)應(yīng)的網(wǎng)格當(dāng)中,則該網(wǎng)格對(duì)目標(biāo)進(jìn)行檢測(cè)。網(wǎng)格針對(duì)目標(biāo)中的N個(gè)區(qū)域位置進(jìn)行回歸預(yù)測(cè),并得出一個(gè)能夠反映網(wǎng)格進(jìn)行區(qū)域預(yù)測(cè)的精準(zhǔn)度以及該網(wǎng)格內(nèi)目標(biāo)置信度的得分。得分表示為,其中:Pr(Object)的取值由目標(biāo)是否落在相應(yīng)的網(wǎng)絡(luò)單元格判定,若是則值為1,否則為0;為預(yù)測(cè)區(qū)域和目標(biāo)區(qū)域交并比,當(dāng)網(wǎng)絡(luò)單元格中落有目標(biāo)時(shí),該值即為對(duì)應(yīng)的IOU 值,否則,值取0。
YOLO 網(wǎng)絡(luò)層結(jié)構(gòu)設(shè)計(jì)圖如圖1 所示。
圖1 YOLO 網(wǎng)絡(luò)層結(jié)構(gòu)示意圖
圖1 的網(wǎng)絡(luò)層結(jié)構(gòu)示意圖中,共包含2 個(gè)全連接層以及24 個(gè)卷積層。其中,inception modules 結(jié)構(gòu)通過(guò)3×3 的卷積層前加1×1 的規(guī)約層進(jìn)行替代,則每進(jìn)行一個(gè)區(qū)域的查找,需要求的預(yù)測(cè)值為5 個(gè),分別為x、y、w、h、c。其中:x、y表示目標(biāo)中心點(diǎn)在網(wǎng)格當(dāng)中所處的相對(duì)位置,x、y的取值范圍為[0,1],當(dāng)中心點(diǎn)處于右下角時(shí),x=1、y=1,處于左下角時(shí),x=0、y=0;w、h為相對(duì)于實(shí)際圖像高度和寬度的像素比值,取值范圍為[0,1];c表示對(duì)應(yīng)的置信度。
區(qū)域目標(biāo)分類(lèi)的得分等于條件概率以及上述預(yù)測(cè)量的積,公式如下:
同時(shí),輸出向量的維度為M×M×(N×(4+1)+C),其中C為預(yù)測(cè)類(lèi)的個(gè)數(shù)。至此,完成目標(biāo)定位以及分類(lèi)的工作。
識(shí)別系統(tǒng)包括對(duì)電商產(chǎn)品的圖像進(jìn)行定位、商品參數(shù)識(shí)別以及進(jìn)行表格還原的整套動(dòng)作。一般來(lái)說(shuō),電商產(chǎn)品當(dāng)中設(shè)計(jì)的產(chǎn)品參數(shù)表現(xiàn)為表格形式或文字塊形式。對(duì)電商產(chǎn)品進(jìn)行圖像識(shí)別的過(guò)程就是表格或者文字塊進(jìn)行參數(shù)提取的過(guò)程。首先,需要定位目標(biāo)提取參數(shù)的位置,定位完成后對(duì)提取參數(shù)區(qū)域進(jìn)行檢測(cè)。針對(duì)檢測(cè)結(jié)果可能存在文字檢測(cè)重復(fù)的問(wèn)題,通過(guò)置信度較高的閾值對(duì)其進(jìn)行過(guò)濾,使假陽(yáng)性的比率降低,再采用非極大值的方式對(duì)其進(jìn)行抑制。具體步驟為:通過(guò)檢測(cè)表格的對(duì)應(yīng)位置對(duì)文字塊區(qū)域中交并比大于0.1 的位置選擇一直進(jìn)行檢測(cè),完成后輸出圖像識(shí)別結(jié)果,并通過(guò)OpenCV 對(duì)檢測(cè)后的圖像識(shí)別區(qū)域進(jìn)行切割,同時(shí)做出進(jìn)一步的對(duì)比度增強(qiáng)、二值化以及灰度處理,保證其易于識(shí)別。識(shí)別完成后通過(guò)OCR 工具識(shí)別圖像信息中的文字,并將文字按序進(jìn)行排列,拼接為可清晰分類(lèi)閱讀的表單信息。進(jìn)行文字識(shí)別處理時(shí),需要借助tesseract這一開(kāi)源工具。識(shí)別流程如圖2 所示。
圖2 圖像識(shí)別系統(tǒng)流程
2.2.1 改進(jìn)點(diǎn)及損失函數(shù)
以YOLO 模型為基礎(chǔ)的圖像識(shí)別系統(tǒng)仍然存在較大的局限性:一是存在召回率較低的問(wèn)題;二是容易出現(xiàn)定位誤差。因此以該模型為基礎(chǔ),針對(duì)其局限性進(jìn)行改進(jìn),得到新的自動(dòng)化圖像識(shí)別系統(tǒng),解決召回率低以及易出現(xiàn)定位誤差的問(wèn)題。主要改進(jìn)如下:
1)在數(shù)據(jù)訓(xùn)練時(shí),做出Batch Normalization 層的添加,每個(gè)卷積層之后做出批量歸一化項(xiàng)的添加,在減少依賴(lài)其他正則化方式的同時(shí),保證網(wǎng)絡(luò)收斂性更高,即不需要dropout優(yōu)化也能夠避免過(guò)擬合。
2)進(jìn)行維度聚類(lèi)。Faster R?CNN 中,固定區(qū)域的比例以及大小通常是手動(dòng)確定的,與先驗(yàn)區(qū)域維度相比,代表性不足,網(wǎng)絡(luò)學(xué)習(xí)難度較大。本文通過(guò)對(duì)數(shù)據(jù)集進(jìn)行K?means 聚類(lèi)來(lái)分析。聚類(lèi)個(gè)數(shù)k為單個(gè)網(wǎng)格中包含的區(qū)域個(gè)數(shù),聚類(lèi)中心對(duì)應(yīng)的高、寬的維度表示區(qū)域維度。
3)全卷積網(wǎng)絡(luò)的搭建。搭建網(wǎng)絡(luò)DarkNet?19,該網(wǎng)絡(luò)中包含5 個(gè)最大值池化層以及19 個(gè)卷積層,采用3×3 大小的濾波器后接池化層,同時(shí)特征圖的數(shù)量需求加倍。
4)卷積在固定區(qū)域內(nèi)進(jìn)行。在YOLO 模型中,包含1 個(gè)全連接層,但在改進(jìn)系統(tǒng)中,舍棄了全連接層,通過(guò)固定區(qū)域進(jìn)行預(yù)測(cè),在提取區(qū)域中執(zhí)行相應(yīng)的預(yù)測(cè)任務(wù)。由此導(dǎo)致的mAP 下降很小,但可以使召回率提高很多。
5)細(xì)粒度的提高。在深層特征圖當(dāng)中,連接26×26 的淺層特征圖,添加passthrough 層(細(xì)粒度特征),通過(guò)該層將高分辨率特征圖層與后續(xù)特征圖進(jìn)行聯(lián)系,并將相應(yīng)的特征進(jìn)行多個(gè)feature map 劃分,得到提高4 倍的特征圖通道數(shù)。
模型的損失函數(shù)包括3 個(gè)部分,即模型的置信度損失、類(lèi)別損失以及位置損失。模型的置信度損失定義如下:
式中:首項(xiàng)表示的IOU 誤差為區(qū)域內(nèi)包含object 的置信度損失結(jié)果;第二項(xiàng)表示的IOU 誤差為區(qū)域內(nèi)不包含object 的置信度損失結(jié)果。其中:表示當(dāng)前object 的中心點(diǎn)落在網(wǎng)格i的區(qū)域j中,且此時(shí)區(qū)域和實(shí)際框之間的IOU 值保證最大,此種情況下值取1,否則取0;表示當(dāng)前object 的中心點(diǎn)不處于網(wǎng)格i的區(qū)域j中。
模型的類(lèi)別損失公式如下:
模型的位置損失公式如下:
式(4)中對(duì)圖像的高寬比開(kāi)根號(hào)會(huì)更加有利于實(shí)際情況的判斷。損失比較示意圖如圖3 所示。
圖3 損失比較示意圖
圖3 中,實(shí)線方框表示預(yù)測(cè)值,虛線方框表示相應(yīng)標(biāo)準(zhǔn)框。理論上,直接進(jìn)行差平方,C與B以及B與A二者的損失等同;但實(shí)際上,其面積比并不相同,C與B的面積比大于3,B與A的面積比為25。當(dāng)加根號(hào),C相比B的損失值是1.17,B相比A的損失值是3.06,更切合實(shí)際情況。綜合以上三個(gè)部分,模型的損失函數(shù)可以表示為:
2.2.2 圖像檢測(cè)
要實(shí)現(xiàn)輸入圖像的表格準(zhǔn)確檢測(cè),就需要通過(guò)模型對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行訓(xùn)練。實(shí)驗(yàn)過(guò)程中,輸入圖像來(lái)自電商軟件,選擇圖片數(shù)量為100 張,同時(shí)人工標(biāo)注相應(yīng)的參數(shù)位置。坐標(biāo)標(biāo)注時(shí),進(jìn)行區(qū)域?qū)捀弑茸鴺?biāo)(w,h)以及相應(yīng)的中心點(diǎn)坐標(biāo)(x,y)的歸一化處理,以備后續(xù)檢測(cè)。檢測(cè)模型在進(jìn)行訓(xùn)練時(shí),網(wǎng)絡(luò)權(quán)重的初始化以Imagenet 數(shù)據(jù)集當(dāng)中預(yù)訓(xùn)練模型為基礎(chǔ)依據(jù),網(wǎng)絡(luò)迭代次數(shù)為45 000,動(dòng)量設(shè)置為0.9,權(quán)值衰減率設(shè)置為0.000 5。在檢測(cè)模型當(dāng)中,thresh 參數(shù)設(shè)置為0.85,通過(guò)高閾值過(guò)濾再進(jìn)行模型疏忽,在確保召回率的同時(shí),也能夠更好地減少假陽(yáng)性的出現(xiàn),既能保證較高的準(zhǔn)確度,也能夠避免誤檢情況的出現(xiàn)。圖像檢測(cè)效果如圖4 所示。
圖4 圖像檢測(cè)效果
2.2.3 區(qū)域切割
表格區(qū)域的凸顯檢測(cè)完成之后,需要切割檢測(cè)得到的表格圖像。在此步驟中,需要分離表格圖像中的各個(gè)參數(shù)以及涉及到的表頭。將切割后的圖像生成為便于進(jìn)行文字識(shí)別的單行文字,字符識(shí)別采用光學(xué)識(shí)別的方式,表格圖像參數(shù)圖形的分割通過(guò)投影分割的方式完成。
采集到的RGB 圖像為三通道彩色,需要將其向灰度圖像轉(zhuǎn)變,本文通過(guò)加權(quán)平均的方式完成。提取RGB 圖像當(dāng)中R(紅色)、G(綠色)、B(藍(lán)色)三個(gè)通道對(duì)應(yīng)像素值,設(shè)定相應(yīng)的權(quán)值進(jìn)行加權(quán)平均,得到對(duì)應(yīng)的單通道圖像也即灰度圖像。其計(jì)算公式如下:
式中:WR、WG、WB分別為紅、綠、藍(lán)三個(gè)通道的權(quán)值。實(shí)驗(yàn)中WR的值設(shè)置為0.299,WB的值設(shè)置為0.114,WG的值設(shè)置為0.587。同時(shí),灰度圖像的對(duì)比度通過(guò)直方圖均衡化的方式進(jìn)行提高。通過(guò)變換其相應(yīng)的累積分布函數(shù)修正圖像的直方圖,使得分布的方式變?yōu)榫鶆蛎芏鹊姆植挤绞剑员阌谶x取圖像二值化對(duì)應(yīng)閾值。直方圖均衡化示意圖如圖5 所示。
圖5 直方圖均衡化示意圖
二值化處理相應(yīng)的圖像時(shí),自適應(yīng)閾值的求取通過(guò)OTSU 算法實(shí)現(xiàn),而后通過(guò)中值濾波對(duì)二值圖噪點(diǎn)進(jìn)行消除。將8 個(gè)相鄰像素點(diǎn)對(duì)應(yīng)的中值替換為當(dāng)前位置像素值,此時(shí)可以分別處理更為清晰的背景以及文字。問(wèn)題是:當(dāng)文字顏色和背景顏色不同時(shí),二值圖當(dāng)中呈現(xiàn)出來(lái)的圖像也不相同,會(huì)出現(xiàn)黑底白字或者是白底黑字的情況。
為保證后續(xù)切割表格便利,需要對(duì)圖像當(dāng)中所有二值化的顏色進(jìn)行統(tǒng)一,這主要通過(guò)判斷相應(yīng)的顏色分量來(lái)實(shí)現(xiàn)。通常當(dāng)字體顏色較深時(shí),圖像中通道值B>R;當(dāng)字體顏色較淺時(shí),圖像中通道值B<R,通過(guò)反色處理就能夠保證二值圖在輸出時(shí)均黑底白字,示意圖如圖6所示。
圖6 表格區(qū)域二值化處理后圖像
對(duì)于應(yīng)當(dāng)具體在哪個(gè)位置進(jìn)行切割,主要通過(guò)垂直以及水平方向的二值圖投影實(shí)現(xiàn),根據(jù)其空白間隔判斷切割位置。垂直以及水平方向的投影如圖7、圖8 所示。
圖7 垂直方向二值圖投影
圖8 水平方向二值圖投影
同時(shí),為了保證切割準(zhǔn)確,需要設(shè)置相應(yīng)的閾值,以避免在連貫相鄰文字中間造成切割。具體的,將水平切割閾值設(shè)定為3,垂直切割閾值設(shè)定為8,通常表格圖像中邊緣不設(shè)文字,因此設(shè)定投影量的值為0。先填充圖像4 個(gè)方向(上、下、左、右)投影連續(xù)不超過(guò)4 的位置,填充值設(shè)定為40,這既能減少噪點(diǎn)出現(xiàn),也能夠保證在邊緣位置上不會(huì)出現(xiàn)誤切。切割二值圖之后的圖像如圖9 所示。
圖9 二值圖切割后圖像
圖像的文字塊檢測(cè)與圖像的表格檢測(cè)步驟大致相同,不同點(diǎn)是標(biāo)記數(shù)據(jù)的方法存在差別。相比表格檢測(cè)而言,文字塊當(dāng)中的文字包含不同的種類(lèi),在進(jìn)行檢測(cè)的過(guò)程中需要對(duì)短文字塊進(jìn)行檢測(cè),該短文字塊應(yīng)當(dāng)只包含一種尺度和字體。在進(jìn)行文字塊檢測(cè)時(shí),選取代表性圖像100 張,同時(shí)只標(biāo)記相同字體以及單行樣本參數(shù),以保證更高的召回率以及更好的魯棒性。圖像文字塊檢測(cè)結(jié)果如圖10 所示。
圖10 圖像文字塊檢測(cè)結(jié)果
圖10 中文字塊檢測(cè)完成后,文字塊的切割通過(guò)OpenCV 完成。而后按照類(lèi)似表格檢測(cè)的步驟進(jìn)行灰度圖像處理、直方圖均衡化、圖像的二值化以及濾波等,并將圖像進(jìn)行拼接,得到類(lèi)似表格的結(jié)果。
系統(tǒng)實(shí)驗(yàn)使用的圖像均來(lái)自電商軟件,精確度的估計(jì)通過(guò)mAP 衡量,檢測(cè)的覆蓋率通過(guò)Recall(召回率)來(lái)衡量。其中,AP 表示各個(gè)分類(lèi)以正確率和召回率為依據(jù)繪制得到的P?R圖形面積,mAP 表示不同分類(lèi)中AP的平均值,Recall(召回率)表示檢測(cè)所得目標(biāo)數(shù)量同測(cè)試目標(biāo)數(shù)量的比。實(shí)際系統(tǒng)實(shí)驗(yàn)中,測(cè)試表格參數(shù)的輸入圖像為100 張,測(cè)試文字塊參數(shù)的輸入圖像為100 張,包含的表格塊數(shù)量為137 個(gè),文字塊數(shù)量為443 個(gè),測(cè)試集包含的表格圖像為30 張,包含的文字塊圖像為30 張,包含的表格塊數(shù)量為40 個(gè),包含的文字塊數(shù)量為90 個(gè)。實(shí)驗(yàn)將改進(jìn)系統(tǒng)、初始的YOLO 模型、加入Batch Normalization 層的YOLO 模型以及Darknet?19 網(wǎng)絡(luò)的YOLO 模型進(jìn)行對(duì)比。各模型實(shí)驗(yàn)在微調(diào)時(shí),采用的權(quán)重迭代次數(shù)為20 000 次,檢測(cè)結(jié)果如表1 所示。
表1 不同模型檢測(cè)結(jié)果 %
表1 中,從檢測(cè)效果來(lái)看,除添加了Batch Normalization 層的YOLO 模型檢測(cè)所得的mAP 稍顯下降,其余模型迭代均呈上升趨勢(shì),改進(jìn)系統(tǒng)的檢測(cè)結(jié)果mAP 最高,說(shuō)明改進(jìn)系統(tǒng)效果顯著。改進(jìn)系統(tǒng)在表格區(qū)域檢測(cè)中,mAP 的值高于90%,召回率達(dá)到95%;在文字塊區(qū)域檢測(cè)中,mAP 的值高于85%,召回率接近95%;同時(shí),輸入圖像的檢測(cè)時(shí)間均在0.03 s 內(nèi),在提升識(shí)別精確度的同時(shí),也極大地提高了識(shí)別的速度。文字識(shí)別是通過(guò)對(duì)OCR 開(kāi)源工具tesseract 的調(diào)用,進(jìn)行文字塊以及表格的檢測(cè),樣例圖分別如圖11、圖12所示。
圖11 表格識(shí)別文字樣例圖
圖12 文字塊識(shí)別文字樣例圖
通過(guò)圖11、圖12 不難看出,改進(jìn)系統(tǒng)通過(guò)有效的區(qū)域抑制,能夠?qū)⒈砀褚约拔淖謮K進(jìn)行明確區(qū)分,得到清晰的檢測(cè)結(jié)果。
本文以大數(shù)據(jù)驅(qū)動(dòng)為基礎(chǔ)前提,并以YOLO 模型為基礎(chǔ)依據(jù),進(jìn)行檢測(cè)模型的改進(jìn),以實(shí)現(xiàn)電商產(chǎn)品的自動(dòng)化識(shí)別,為深入農(nóng)村的電商產(chǎn)品做到更好的統(tǒng)計(jì)和數(shù)據(jù)分析。改進(jìn)系統(tǒng)依靠卷積神經(jīng)網(wǎng)絡(luò)良好的魯棒性以及特征提取的能力,在自動(dòng)化識(shí)別的過(guò)程中,極大地縮短了識(shí)別時(shí)間,提高了識(shí)別精度。