楊銀銀,丁 斌,何飛飛,陳子望
(南通市計(jì)量檢定測(cè)試所,江蘇南通226000)
溶解氧測(cè)定儀主要用于測(cè)定水中常量溶解氧(DO)濃度[1],其工作原理是氧透過(guò)隔膜被工作電極還原,產(chǎn)生與氧濃度成正比的擴(kuò)散電流,通過(guò)測(cè)量此電流,得到水中溶解氧的濃度[2]。主要分為電化學(xué)探頭法和熒光法溶解氧測(cè)定儀。
隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,基于視頻的圖像識(shí)別算法越來(lái)越多地應(yīng)用到自動(dòng)化檢測(cè)過(guò)程中,將人從單一重復(fù)的讀表工作中解放出來(lái),不僅解放了勞動(dòng)力,也保證讀數(shù)的準(zhǔn)確率和及時(shí)性。
根據(jù)溶解氧儀顯示屏的實(shí)際顯示,如圖1所示,本文采用基于視頻的數(shù)字儀表示數(shù)識(shí)別算法,包括圖像采集和預(yù)處理模塊,數(shù)字區(qū)域定位于傾斜校正模塊、數(shù)字字符分割模塊、數(shù)字字符識(shí)別模塊以及識(shí)別結(jié)果輸出模塊。同時(shí),在字符分割和字符識(shí)別部分添加了對(duì)小數(shù)點(diǎn)識(shí)別的優(yōu)化處理算法,提高了小數(shù)點(diǎn)的識(shí)別率。
圖1 溶解氧測(cè)定儀顯示屏
視頻圖像的采集是算法識(shí)別的第一步,本算法采用USB高清攝像機(jī)采集儀表圖像,圖像分辨率1 280×1 024,幀率為15幀/s。采集到原始視頻幀需要先做圖像預(yù)處理,然后才能進(jìn)行后期的識(shí)別。本算法中圖像預(yù)處理主要包括:圖像灰度化、圖像濾波和圖像二值化3個(gè)部分。
本算法采用加權(quán)平均法進(jìn)行圖像灰度化:將RGB色彩空間里的圖像轉(zhuǎn)化為YCbCr色彩空間。在YCbCr色彩空間中,Y表示圖像灰度值,Cb表示圖像色調(diào),Cr表示飽和度。RGB色彩空間與YCbCr色彩空間關(guān)系如下:
Y=0.299R+0.587G+0.114B
Cb=-0.168 7R-0.331G+0.5B+128
Cr=0.5R-0.418 7G-0.081 3B+128
R=Y+1.402(Cr-128)
G=Y-0.331 4(Cb-128)-0.714 14(Cr-128)
B=Y+1.772(Cb-128)
通過(guò)上面公式可以得出YCbCr色彩空間中的灰度值Y與RGB空間三分量R、G、B的關(guān)系,如下式所示[3]:
Y=0.299R+0.587G+0.114B
圖像灰度化效果如圖2b所示。
本算法采用高斯濾波,高斯濾波是根據(jù)高斯函數(shù)的形狀來(lái)選擇權(quán)值的線(xiàn)性平滑濾波。高斯濾波對(duì)去除服從正態(tài)分布的噪聲是很有效果的。
圖2 圖像預(yù)處理
高斯濾波效果如圖2c所示。
對(duì)經(jīng)過(guò)灰度化和高斯濾波的圖像進(jìn)行二值化,圖像二值化就是將像素點(diǎn)的灰度值根據(jù)閾值設(shè)置為0或255[4]。圖像的二值化使圖像中數(shù)據(jù)量大為減少,從而能凸顯出目標(biāo)的輪廓。圖像二值化公式如下:
其中,T是閾值。本算法采用基于Otus算法的局部閾值處理。該方法計(jì)算簡(jiǎn)單,不受圖像亮度和對(duì)比度的影響,是圖像分割中閾值選取的最佳算法。基于Otsu的局部閾值處理的局部閾值處理的圖像二值化效果如圖2d所示。
經(jīng)過(guò)灰度化、高斯濾波去噪和二值化最終得到數(shù)字儀表示數(shù)的二值化圖像,在識(shí)別之前還需要定位數(shù)字儀表示數(shù)區(qū)域,并對(duì)圖像進(jìn)行矯正處理。
數(shù)字儀表示數(shù)區(qū)域,即從圖像中定位出數(shù)字儀表的示數(shù)區(qū)域,區(qū)分出要識(shí)別的圖像部分。本算法先采用投影法對(duì)數(shù)字儀表示數(shù)區(qū)域進(jìn)行粗定位,然后利用數(shù)字形態(tài)學(xué)的定位方法對(duì)數(shù)字儀表示數(shù)區(qū)域進(jìn)行精準(zhǔn)定位。
投影法分為水平方向的投影和垂直方向的投影。水平方向投影,將圖像數(shù)組進(jìn)行列求和;垂直方向投影,將圖像數(shù)組進(jìn)行行求和。
水平方向投影:循環(huán)各行,依次判斷每一列的像素值是否為黑,統(tǒng)計(jì)該行所有黑像素的個(gè)數(shù)。設(shè)該行共有N個(gè)黑像素,則把該行從第1列到第N列置為黑。
垂直方向投影:循環(huán)各列,依次判斷每一行的像素值是否為黑,統(tǒng)計(jì)該列所有黑像素的個(gè)數(shù)。設(shè)該列共有N個(gè)黑像素,則把第1行到第N行置為黑。
圖像處理有3個(gè)基本的變換矩陣——平行變換矩陣、縮放矩陣和旋轉(zhuǎn)變換矩陣。進(jìn)行傾斜矯正用的是旋轉(zhuǎn)變換矩陣,具體矩陣如下:
這個(gè)矩陣和旋轉(zhuǎn)變換矩陣是一致的,圖像傾斜矯正基本思想就是首先利用邊緣檢測(cè)算法得到邊緣檢測(cè)圖像,然后通過(guò)各種技術(shù)手段找到圖像的矯正角,最后利用旋轉(zhuǎn)變換矩陣對(duì)圖像旋轉(zhuǎn)達(dá)到矯正的目的。
根據(jù)前面的處理,已經(jīng)獲得了精確定位并矯正后的數(shù)字儀表示數(shù)區(qū)域的二值化圖像,接下來(lái)就要對(duì)數(shù)字字符進(jìn)行分割,以方便后期進(jìn)行特征提取和識(shí)別。
根據(jù)溶解氧測(cè)定儀示數(shù)的顯示特點(diǎn),每個(gè)字符是一個(gè)連通域,不同字符之間是不同的連通域。因此本文采用連通域分割算法,通過(guò)計(jì)算預(yù)處理后的二值化圖像的連通域,并根據(jù)獲取的連通域的寬高比、面積、矩形度以及在圖像中的位置可以簡(jiǎn)單地區(qū)分出是否是字符區(qū)域或者小數(shù)點(diǎn)區(qū)域。效果如圖3所示。
圖3 數(shù)字字符分割
溶解氧測(cè)定儀的示數(shù)是段碼顯示的方式,如圖4所示。
圖4 段碼顯示
根據(jù)段碼顯示模型,通過(guò)穿線(xiàn)法可以準(zhǔn)確地識(shí)別出數(shù)字。段碼顯示模型如圖5所示。
數(shù)字0:d1=1;d2=1;d3=1;d4=0;d5=1;d6=1;d7=1
數(shù)字1:d1=0;d2=0;d3=1;d4=0;d5=0;d6=1;d7=0
數(shù)字2:d1=1;d2=0;d3=1;d4=1;d5=1;d6=0;d7=1
圖5 段碼顯示模型
數(shù)字3:d1=1;d2=0;d3=1;d4=1;d5=0;d6=1;d7=1
數(shù)字4:d1=0;d2=1;d3=1;d4=1;d5=0;d6=1;d7=0
數(shù)字5:d1=1;d2=1;d3=0;d4=1;d5=0;d6=1;d7=1
數(shù)字6:d1=1;d2=1;d3=0;d4=1;d5=1;d6=1;d7=1
數(shù)字7:d1=1;d2=0;d3=1;d4=0;d5=0;d6=1;d7=0
數(shù)字8:d1=1;d2=1;d3=1;d4=1;d5=1;d6=1;d7=1
數(shù)字9:d1=1;d2=1;d3=1;d4=1;d5=0;d6=1;d7=1
對(duì)于小數(shù)點(diǎn)識(shí)別的優(yōu)化,首先根據(jù)字符分割階段獲取的連通域的連通域重心位置、寬高比以及像素點(diǎn)均值以及標(biāo)準(zhǔn)差可以簡(jiǎn)便地獲取到小數(shù)點(diǎn)的連通域,解決了小數(shù)點(diǎn)丟失的問(wèn)題,提高識(shí)別準(zhǔn)確度。
小數(shù)點(diǎn)判斷策略:
(1)連通區(qū)域位于圖像的下1/3處;
(2)連通域的寬高比在指定閾值范圍內(nèi);
(3)連通域內(nèi)的像素點(diǎn)均值大于指定閾值;
(4)連通域內(nèi)像素點(diǎn)的標(biāo)準(zhǔn)差小于指定閾值。
算法識(shí)別結(jié)果如圖6所示。
圖6 算法識(shí)別結(jié)果
本文旨在為提高溶解氧測(cè)定儀校準(zhǔn)裝置的自動(dòng)化程度,保證溶解氧測(cè)定儀檢定過(guò)程中檢測(cè)結(jié)果讀取的及時(shí)性與準(zhǔn)確性,設(shè)計(jì)了基于溶解氧測(cè)定儀校準(zhǔn)裝置自動(dòng)識(shí)別的算法。該算法進(jìn)行溶解氧測(cè)定儀的數(shù)據(jù)讀取,識(shí)別率高、速度快,特別對(duì)小數(shù)點(diǎn)識(shí)別部分的優(yōu)化,解決了通用段碼示數(shù)識(shí)別中小數(shù)點(diǎn)識(shí)別率低的問(wèn)題。溶解氧測(cè)定儀顯示值的自動(dòng)讀取,優(yōu)化了溶解氧測(cè)定儀的檢定過(guò)程,并在更大程度上提高數(shù)據(jù)讀取的準(zhǔn)確性和及時(shí)性。