崔 瑩
(西南電子技術(shù)研究所 成都 610036)
BP 神經(jīng)網(wǎng)絡(luò)是一種人工神經(jīng)網(wǎng)絡(luò)模型,自被提出以來,已被廣泛應(yīng)用于各種檢測[1~2]。我們知道BP 神經(jīng)網(wǎng)絡(luò)是一種多層次的神經(jīng)網(wǎng)絡(luò),BP 神經(jīng)網(wǎng)絡(luò)的拓撲結(jié)構(gòu)主要由輸入層、隱層、輸出層三部分組成。其中,隱藏層至少有一層,在各層之間神經(jīng)元是完全連接的。除了輸入層外,每一層的輸入都與上一層的輸出密切相關(guān)。通常,BP 神經(jīng)網(wǎng)絡(luò)是一種負反饋神經(jīng)網(wǎng)絡(luò)。它通過負誤差響應(yīng)來調(diào)整權(quán)重,使其更接近非線性函數(shù)。因此,BP 神經(jīng)網(wǎng)絡(luò)的收斂速度相對較慢。
近年來,文本檢測已成為計算機視覺領(lǐng)域的研究熱點和具有挑戰(zhàn)性的課題。Tutz 提出了Logit 模型來估計權(quán)重,而不是使用完全由距離決定的權(quán)重。使用lasso 或enhancement 等選擇過程自動選擇最近的鄰居。然后,基于評估和選擇的概念,預測器空間被擴展[9]。Nucci 提出了一種自適應(yīng)的ASCI(錯誤預測分類器的自適應(yīng)選擇)方法,該方法根據(jù)類的特征,動態(tài)選擇一種分類器,可以從一組機器學習分類器中更好地預測類的錯誤傾向。對30 個軟件系統(tǒng)的實證研究表明,ASCI 的性能優(yōu)于5個單獨使用并結(jié)合多數(shù)投票集成[10]的分類器。
在研究中,利用花授粉算法(FPA)對傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)進行優(yōu)化,優(yōu)化了網(wǎng)絡(luò)的權(quán)重和閾值,并提出了一種基于改進神經(jīng)網(wǎng)絡(luò)的中文文本事件檢測方法。為了驗證改進后的神經(jīng)網(wǎng)絡(luò)算法在中文文本事件檢測中的效果,實驗采用GB2312 格式的訓練數(shù)據(jù)集,并對中文詞匯進行模糊處理,以實現(xiàn)分析詞匯意義的目的。在計算機上對兩種方法進行實驗,比較了自然場景文本檢測方法和基于改進神經(jīng)網(wǎng)絡(luò)的檢測方法的檢測效果,包括準確率、召回率、F值和時間消耗量。
大多數(shù)傳統(tǒng)的文本檢測算法都是基于連通域分析的。這些算法首先根據(jù)低級別的特征(如光強度、顏色、梯度等)將圖像像素聚集到不同的連接區(qū)域中,然后用分類模型對這些連接的組件進行分類,以過濾噪聲區(qū)域。傳統(tǒng)的文本檢測算法主要采用自下而上的方法。這些算法通常從字符檢測或筆劃檢測開始,然后通過過濾文本元素來應(yīng)用文本檢測,從而構(gòu)造文本行,并驗證文本行。因此,該方法的檢測結(jié)果精度低,魯棒性差,實現(xiàn)過程過于復雜。在當今社會快速發(fā)展過程中,文本檢測任務(wù)正面臨著更大的挑戰(zhàn)[11~15]。
1)圖像中可能出現(xiàn)文字的任何長度、寬比、顏色、字體、大小和形狀;
2)圖像背景更加復雜多樣,紋理與文本相似,容易引起混淆,如圍欄、植被等物體;
3)圖像質(zhì)量不確定,文本檢測對圖像質(zhì)量非常敏感。常見的干擾有光照條件、運動模糊、低分辨率和遮擋;
4)圖像文本分布密集,不同文本特征相似,只有細節(jié)筆畫不同,多個文本之間的空間很小,一些小細節(jié)可能導致多個文本被檢測為一個文本[16~19]。面對這些更復雜和困難的挑戰(zhàn),傳統(tǒng)的多步文本檢測算法很容易生成大量非文本連接區(qū)域,這給后續(xù)的文本行拼接和文本行驗證帶來了很大的困難。
神經(jīng)網(wǎng)絡(luò)是由大量簡單計算單元組成的非線性系統(tǒng),它在一定程度上模擬了人腦的處理操作。
由于實驗數(shù)據(jù)集主要是中文數(shù)據(jù),單詞很難分割,因此,采用紅黑樹的方法,對系統(tǒng)中預存儲的詞匯表進行分段。在分析數(shù)據(jù)集時,對數(shù)據(jù)集中的單詞進行分割,然后與系統(tǒng)中的單詞進行比較。FPA神經(jīng)網(wǎng)絡(luò)支持GB2312 數(shù)據(jù)集,實現(xiàn)分析中文文本的能力。
在研究中,我們利用BP 神經(jīng)網(wǎng)絡(luò)的誤差函數(shù)作為FPA 的物理狀態(tài)函數(shù),找到物理函數(shù)的最小值,并反復更新FPA的狀態(tài),即當誤差值最小時,可以得到FPA的最佳解。可作為BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)重和閾值。
全局授粉過程由列維飛行完成,描述如下:
局部授粉過程和花的規(guī)律性描述如式(2):
其中ε是均勻分布生成的隨機數(shù),在(0,1)范圍。
最優(yōu)解,l是列維飛行的步長參數(shù),按以式(3)計算:
1)實驗準備
實驗選擇CEC 語料庫作為測試對象。CEC 語料庫以地震、火災(zāi)、道路事故、恐怖襲擊和食物中毒等五種緊急事件的新聞報道為素材。通過文本預處理、文本分析、事件標記和一致性檢查,最終注釋存儲在文本中。
2)實驗環(huán)境
在建立和編碼文本事件檢測系統(tǒng)后,利用CEC語料庫對系統(tǒng)進行了測試,全面驗證了改進算法的檢測效果。
編程開發(fā)環(huán)境如下:
開發(fā)工具:VS2008;
開發(fā)語言:C++、STL;
操作系統(tǒng):Windows7。
測試文本數(shù)據(jù)集:2048,測試的核心代碼如下(部分代碼,如圖1所示)。
圖1 文本檢測算法代碼
神經(jīng)網(wǎng)絡(luò)不能直接識別文本,因此需要將文本數(shù)據(jù)映射到多維實向量中,即文本向量化。數(shù)據(jù)預處理包括以下三個步驟。
1)分詞
中文文本之間沒有明顯的界限,所以中文文本的分割比英語文本更困難。是否能準確分割文本,對文本情緒分類的準確性有重要影響?!敖Y(jié)巴”中文分詞庫是一個python中文分詞庫,支持傳統(tǒng)的分詞和自定義詞典,選擇這種方法可以更準確地分割句子。
2)詞向量化
詞的分布式表示具有很強的表示能力,每個詞之間的相似性可以用空間向量來表示。所謂的詞向量化是將單詞處理為單詞向量的形式。目前,word2vec是生成分布式詞向量的主流方式。結(jié)合中文語料庫,利用word2vec的相關(guān)技術(shù)得到詞向量模型,在分割后輸入到向量模型中,可以得到每個詞的詞向量。
3)生成詞向量矩陣
分詞和詞向量化后,形成N×m詞向量矩陣。其中N是分詞后的單詞數(shù),m是詞向量的維數(shù)。為了便于模型的訓練,需要將每個文本生成的詞向量矩陣的大小進行標準化,以使所有文本生成的詞向量矩陣的大小都是相同的。其處理方法為
其中,n是歸一化詞向量矩陣中的單詞數(shù);avgN是所有文本分詞后詞的平均數(shù)n;stdN是分詞后數(shù)詞n的標準偏差。
然后,處理由文本生成的詞向量矩陣。不足的字向量矩陣用0 填充,修剪超長詞向量矩陣。這樣,n×M詞向量矩陣可以覆蓋95%的樣本。
中文辭海包含85568 個漢字??梢钥闯?,構(gòu)成文本的漢字數(shù)量相當大,但大多數(shù)漢字并不常用。因此,如果我們將很少使用的漢字和一些特殊符號作為禁用字,并在文本預處理階段將其從文本中刪除,可以大幅提高程序的處理速度。使用現(xiàn)代漢字列表中常用的2500 個漢字對文本進行預處理。建立通用漢字碼交叉參考表,編號為2500 個通用漢字(漢字標記為w),編號為1~2500個。通過查找表格,可以獲得每個漢字的代碼或相應(yīng)的漢字。表1是漢字編碼表的部分示例。
表1 常用字編碼
無論是中文文本還是英文文本,與其他對象相比,字符都有自己的特征,如筆畫寬度、文本結(jié)構(gòu)、圖像中字符的顏色和字符的邊緣等特征。根據(jù)文本圖像相關(guān)特征,進行統(tǒng)一歸納,整理相關(guān)決策檢測規(guī)則,以實現(xiàn)文本事件檢測的目的。與自然場景中的圖像文本相比,它很容易受到復雜背景條件的影響。中文印刷文本在字符大小、顏色、筆畫寬度和紋理分布方面往往有統(tǒng)一的規(guī)范。因此,可基于上述特征來檢測打印的文本。
傳統(tǒng)的自然場景文本檢測算法基本上以英語文本為檢測對象。與英文文本的圖像檢測相比,中文文本檢測的風格不同,結(jié)構(gòu)復雜,檢測結(jié)果并不理想。因此,將中文印刷區(qū)感興趣的輸出區(qū)域與改進的SWT 路徑寬度算法相結(jié)合來檢測文本事件。與傳統(tǒng)的整個文本圖像的檢測過程相比,對感興趣文本區(qū)域的檢測無疑更快。
1)不同檢測方法的精度和召回率結(jié)果分析
首先對兩種中文文本檢測方法的準確性和召回率進行分析,檢測結(jié)果見表2和圖2。
表2 不同檢測方法的準確率和召回率的比較
圖2 不同事件檢測方法結(jié)果對比
從表2 和圖2 可以看出,這兩種方法的準確率和召回率有所不同。自然場景文本檢測算法的準確率為88%,召回率為73%?;诟倪M神經(jīng)網(wǎng)絡(luò)的文本檢測算法的準確率為95%,召回率為86%。從兩組數(shù)據(jù)的比較可以看出,改進神經(jīng)網(wǎng)絡(luò)文本檢測算法在中文文本事件檢測中具有較好的性能。
2)不同檢測方法的F值與耗時分析
為進一步分析兩種算法的實用性,對比分析兩種檢測算法的準確率和召回率后,進一步對兩種算法的F 值和時間消耗實驗結(jié)果進行了比較,結(jié)果見表3和圖3。
表3 不同檢測方法的準確率和召回率比較
圖3 不同檢測方法的F值和耗時比較
表3 和圖3 顯示,中文文本事件檢測測試中自然場景文本檢測算法的F 值為0.79,耗時4.56s;基于改進神經(jīng)網(wǎng)絡(luò)的文本檢測算法的F 值為0.90,耗時0.64s。從數(shù)據(jù)比較中可以看出,基于改進神經(jīng)網(wǎng)絡(luò)的文本檢測算法可以更快地檢測中文文本事件,具有更好的實用性。
本研究中,提出了一種基于改進神經(jīng)網(wǎng)絡(luò)的中文文本事件檢測方法,通過使用花授粉算法來優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)重和閾值。為了驗證該方法的有效性,將其與自然場景文本檢測方法進行了比較,并分析了它的準確性、召回率和時間消耗,得到以下結(jié)論。
1)基于改進的神經(jīng)網(wǎng)絡(luò)的文本檢測算法的準確率為95%,召回率為86%,相較于自然場景中文本檢測方法,其事件檢測精度更高。
2)基于改進的神經(jīng)網(wǎng)絡(luò)的文本檢測算法的F值為0.90,時間為0.64s,相較于自然場景中文本檢測方法,其耗時更短,F(xiàn) 值更高,該方法具有更好的性能。
雖然提出的基于改進神經(jīng)網(wǎng)絡(luò)的文本檢測算法已經(jīng)取得了一些效果,但其性能還需通過應(yīng)用于實際生產(chǎn)得到進一步驗證。本課題將在未來繼續(xù)進行深入學習和優(yōu)化算法。