岳志豪,趙明冬,周 斌,馬金輝
(鄭州科技學(xué)院,河南 鄭州 450064)
在20 世紀(jì)70—80 年代,隨著數(shù)字圖像處理技術(shù)與計(jì)算機(jī)性能的提升,計(jì)算機(jī)視覺技術(shù)已經(jīng)得到快速發(fā)展,現(xiàn)已被廣泛應(yīng)用于生產(chǎn)生活中的各個領(lǐng)域。 在儀表圖像識別與處理方面的應(yīng)用中,國內(nèi)外部分學(xué)者已經(jīng)取得重大研究成果。 2005 年段會川等[1]提出了一種基于模糊識別最大隸屬原則自動定位分割儀表圖像中數(shù)字區(qū)域的方法,該法可以實(shí)現(xiàn)自動讀數(shù),但是對于復(fù)雜或模糊的儀表圖像,由于識別的不確定性,會導(dǎo)致誤識率較高;2006 年雷麗婷等[2]提出了多種自適應(yīng)算法和協(xié)同模式識別算法,實(shí)現(xiàn)了數(shù)字儀表自動識別,但該算法會消耗大量計(jì)算機(jī)資源,導(dǎo)致識別速度較慢;2018 年蔡夢倩等[3]通過構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)用于數(shù)字儀表識別的方法,有效提高了識別精度,并且降低了算法的復(fù)雜度,具有較強(qiáng)的泛化能力,不過利用已有的數(shù)據(jù)庫無法涵蓋所有數(shù)字儀表類型與場景,也會對識別結(jié)果產(chǎn)生影響。
為進(jìn)一步優(yōu)化識別系統(tǒng),提升系統(tǒng)魯棒性與識別準(zhǔn)確性,本文首先從待識別圖像質(zhì)量著手,對硬件設(shè)備如相機(jī)、鏡頭及光源進(jìn)行選擇調(diào)試,然后將待識別圖像進(jìn)行灰度化、輪廓波變換、二值化和定位切割處理,從而提高識別準(zhǔn)確性;其次,收集各類、各場景數(shù)字儀表圖像,建立自己的樣本庫并對其進(jìn)行不斷擴(kuò)充以提高系統(tǒng)魯棒性;最后,優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),增加網(wǎng)絡(luò)深度,提高網(wǎng)絡(luò)識別率和魯棒性。
該系統(tǒng)硬件主要包含相機(jī)、鏡頭及光源3 部分,硬件系統(tǒng)結(jié)構(gòu)如圖1 所示。 高質(zhì)量的源圖像在一定程度上簡化了圖像處理和識別算法,提升了整個系統(tǒng)的魯棒性。
圖1 硬件系統(tǒng)方案
相機(jī)選擇130 萬像素的CMOS 工業(yè)相機(jī),可以獲得更高分辨率的圖像,從而更清晰地顯示數(shù)字儀表上的數(shù)字。
鏡頭選擇16 mm 的變焦工業(yè)鏡頭,可以調(diào)整視場角度,適應(yīng)不同大小、不同距離的儀表,提高圖像采集的靈活性。
為保證光源均勻照射在儀表上且防止距離較近或較遠(yuǎn)產(chǎn)生陰影,本研究采用了線性的白色光源。 光源擺放在距離儀表30 cm 處并且呈45° 夾角。 通過線性的白色光源提供均勻的照明條件,可以保持物體真實(shí)顏色的同時減少陰影和反射對圖像的影響,從而突出儀表細(xì)節(jié)特征,獲得更加清晰、真實(shí)的圖像,提高識別準(zhǔn)確性。
在項(xiàng)目前期,研究組成員已經(jīng)采集了一定數(shù)量的樣本數(shù)據(jù),并利用第三方標(biāo)注工具Labellmg 進(jìn)行標(biāo)注,構(gòu)成了最初的識別樣本庫,后期隨著系統(tǒng)的完善會繼續(xù)收集樣本、進(jìn)行標(biāo)注,以擴(kuò)充樣本庫,提高識別準(zhǔn)確度。
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)在理論上能很好地分析圖像,但由于現(xiàn)實(shí)中計(jì)算機(jī)的資源有限,導(dǎo)致識別精度不足,而卷積神經(jīng)網(wǎng)絡(luò)的問世使得上述問題得到了較好的解決。 卷積神經(jīng)網(wǎng)絡(luò)是一種多層前饋型神經(jīng)網(wǎng)絡(luò)[4],從功能上分為特征提取和分類識別兩個階段。 特征提取階段能夠提取輸入數(shù)據(jù)的特征并作為分類識別依據(jù),提取網(wǎng)絡(luò)由卷積層與池化層堆疊而成,具體結(jié)構(gòu)如圖2 所示,較前的幾層能夠捕獲局部細(xì)節(jié)信息,較后的幾層則捕獲更加高層抽象的信息;分類識別階段由全連接層作為分類器,依據(jù)所提取的特征完成分類識別。
2.2.1 卷積層
卷積層是卷積神經(jīng)網(wǎng)絡(luò)的核心層之一,用于提取水平與垂直兩個方向上的圖像特征,具有兩方面特點(diǎn),一方面是多個卷積核對圖像進(jìn)行卷積后能得到多個特征圖,另一方面是層層遞進(jìn)可以逐步減少網(wǎng)絡(luò)的參數(shù)量和計(jì)算量,從而達(dá)到提高網(wǎng)絡(luò)的訓(xùn)練效率和泛化性能的目的,卷積層計(jì)算方法如下:
其中,?為卷積運(yùn)算符,X 為輸入,Mj為神經(jīng)元輸入特征圖集,l 為層數(shù),i 為神經(jīng)元標(biāo)號,k 為卷積核,b為神經(jīng)元的偏置。
在進(jìn)行卷積操作時,由于卷積核不能擴(kuò)展到邊緣區(qū)域以外,邊緣處只能檢測到部分像素點(diǎn),可能導(dǎo)致無法充分提取所有特征。 為解決這個問題,本文使用Padding 擴(kuò)充法,對原始圖像進(jìn)行擴(kuò)充,然后對其進(jìn)行卷積運(yùn)算,防止部分特征沒有被提取出來。
2.2.2 池化層
圖像經(jīng)卷積層輸出后進(jìn)入池化層,該層用于壓縮數(shù)據(jù)和參數(shù),在保證提取圖像特征的同時,可以優(yōu)化圖像過度擬合的問題,從而提高算法的計(jì)算速度和特征提取的魯棒性。 池化操作分為MAX 和AVERAGE兩種,本文采用MAX 池化,其過程如圖3 所示,池化后的數(shù)據(jù)保留了原始數(shù)據(jù)最精準(zhǔn)的特征。
圖3 MAX 池化過程
2.2.3 全連接層
卷積層與池化層的輸出經(jīng)扁平化處理后,把數(shù)據(jù)轉(zhuǎn)化為一維的數(shù)據(jù)條,并作為全連接層的輸入,而全連接層的作用是對之前卷積層與池化層所提取的特征進(jìn)行分類或回歸,其中任意神經(jīng)元都與前層所有神經(jīng)元相關(guān)聯(lián),能夠?qū)崿F(xiàn)特征的高層次表示,該過程用于完成后續(xù)的分類或回歸。
2.2.4 輸出層
在輸出層增加激活函數(shù),可以提高網(wǎng)絡(luò)的非線性。 使用Softmax 函數(shù)實(shí)現(xiàn)輸出0~9 各個數(shù)字的概率,以便于計(jì)算損失函數(shù)并進(jìn)行反向傳播更新模型參數(shù),其所有輸出概率合為1。 計(jì)算公式為:
式中,Si為第i 個節(jié)點(diǎn)輸出的概率值,e ≈2.71 為常數(shù),yi 為第i 個節(jié)點(diǎn)的輸出值,j 為分類的類別個數(shù)。
卷積神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練過程為:首先,對圖像數(shù)據(jù)進(jìn)行卷積、池化等操作得到特征圖像;然后,將其交由全連接層進(jìn)行分類識別;最后,判斷是否符合期望,符合則作為結(jié)果直接輸出,此為前向傳播過程。如果判斷與期望不符,需要調(diào)整卷積核與神經(jīng)元的權(quán)值,降低下次傳播的分類誤差,從而減小整體誤差,此為反向傳播[5]。 神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程如圖4 所示,經(jīng)過前向傳播和反向傳播多次迭代可以使得誤識率不斷降低且趨向于某一固定值,其中,訓(xùn)練迭代次數(shù)關(guān)系到模型的準(zhǔn)確率和收斂速度[6],訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)能夠?qū)D像進(jìn)行更高精度的分類識別,識別過程是通過前向傳播進(jìn)行的,最后輸出相應(yīng)分類概率。
圖4 卷積神經(jīng)網(wǎng)絡(luò)模型流程
由于采集的圖像色彩和大小不一、灰度模糊、光照不均,嚴(yán)重影響識別準(zhǔn)度,需對圖像進(jìn)行優(yōu)化處理,其主要步驟是在RGB 圖像灰度化基礎(chǔ)上進(jìn)行輪廓波變換和圖像二值化,最后進(jìn)行數(shù)字定位和切割。
圖像在采集和傳輸時會不可避免地存在噪聲干擾,為能進(jìn)一步保留原彩色圖像的局部對比度與特征信息、增強(qiáng)圖像識別精度,需采用相應(yīng)算法對圖像進(jìn)行細(xì)節(jié)增強(qiáng)處理。
輪廓波變換是由拉普拉斯金字塔(Laplacian Pyramid,LP)和方向?yàn)V波器(Directional Filter Bank,DFB)共同完成多尺度分解與分析,其變換原理如圖5所示,拉普拉斯金字塔將采集到的圖像分為低頻子帶和帶通子帶,低頻子帶由原始圖像經(jīng)過低通濾波和下采樣后形成,高頻子帶是由原始圖像減去經(jīng)上采樣和低通濾波后得到的低頻分量形成的。 方向?yàn)V波器對高頻子帶進(jìn)行方向?yàn)V波,得到2n個方向子帶( n 為正整數(shù)),對低頻子頻重復(fù)上述操作,可以實(shí)現(xiàn)原始圖像的多分辨率和多方向分解。
圖5 輪廓波變換原理
以輪廓波變換[7]算法為基本原理,對彩色圖像和初步灰度化圖像進(jìn)行多尺度、多方向的輪廓波分解,調(diào)節(jié)局部色彩對比度比值來增強(qiáng)圖像細(xì)節(jié)的對比度;通過逆變換后得到細(xì)節(jié)增強(qiáng)圖像,再將初步灰度化圖像與細(xì)節(jié)增強(qiáng)圖像進(jìn)行疊加,得到最終的灰度圖像,變換結(jié)果如圖6 所示。
圖6 輪廓波變換結(jié)果
由于灰度圖像經(jīng)二值化處理后,可進(jìn)一步減少圖像中的無用信息,增強(qiáng)特征信息,所以本文采用最大類間方差算法(Otsu 算法)對圖像先進(jìn)行二值化處理。
將處理過的圖像進(jìn)行區(qū)域定位,確定數(shù)字在儀表中的位置和范圍,分割算法如下:
(1)將寬度大于數(shù)字最大寬度的區(qū)間進(jìn)行分割,使其寬度(wc)在wc/2 到wc 區(qū)間內(nèi),利用迭代法再次分割,將區(qū)間分割成基本單位;
(2)將具有明顯的左弧右弧特性且寬度滿足條件的區(qū)間進(jìn)行合并;
(3)將1/7 等具有明顯高寬比與無弧特性的數(shù)字進(jìn)行特殊處理。
考慮到數(shù)字的寬度、高度和數(shù)字串的長度具有一定范圍的特性,充分利用這些特性是進(jìn)行定位的關(guān)鍵所在。 從左到右、從下到上對圖像進(jìn)行掃描,由于大多數(shù)字存在左弧右弧的特性[8],左弧區(qū)間不能與左邊的區(qū)間重合,右弧區(qū)間不能與右邊的區(qū)間重合,因此,利用這一特性可以大大提高分割正確率(見圖7)。
圖7 定位切割后的圖像
實(shí)驗(yàn)中數(shù)字的識別過程如下:將實(shí)時采集的圖像進(jìn)行優(yōu)化處理后,輸入訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),通過前向與反向的循環(huán)操作,最后由輸出層輸出各個數(shù)字的概率,概率值最大且達(dá)到97%及以上即為最終識別結(jié)果。 對于識別概率達(dá)不到標(biāo)準(zhǔn)的錯誤結(jié)果,可以作為樣本數(shù)據(jù)擴(kuò)充到樣本庫中,增強(qiáng)系統(tǒng)的識別能力。
將前期建立的數(shù)據(jù)樣本庫作為訓(xùn)練集進(jìn)行模型訓(xùn)練,把隨機(jī)采集的圖像進(jìn)行上述的預(yù)處理優(yōu)化與分割,輸入網(wǎng)絡(luò)模型進(jìn)行模型對照,可以得到最終的識別結(jié)果。 經(jīng)過多次實(shí)驗(yàn),數(shù)字0~9 的識別正確率如表1 所示,平均正確識別率可達(dá)到97%,滿足預(yù)期期望,魯棒性好,精準(zhǔn)度高。
表1 數(shù)字識別正確率
本文基于計(jì)算機(jī)視覺,建立并不斷擴(kuò)充樣本庫、訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)、優(yōu)化圖像處理方法,從而達(dá)到提高數(shù)字識別精準(zhǔn)度的目的,在一定程度上解決了人工讀數(shù)存在的弊端。 該方法魯棒性高,成本低,能夠適應(yīng)各類監(jiān)測環(huán)境,滿足無人化工作發(fā)展需求,具有良好的經(jīng)濟(jì)應(yīng)用前景。