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