董軍
(200434 上海市 上海理工大學(xué))
液位檢測(cè)技術(shù)在生物醫(yī)學(xué)、食品飲料、日化用品、石油探采方面承擔(dān)著重要的角色,為了保障產(chǎn)品質(zhì)量和生產(chǎn)安全,生產(chǎn)過程中直接由人工監(jiān)控和干預(yù)的時(shí)代已經(jīng)遠(yuǎn)去,傳統(tǒng)的液位測(cè)量技術(shù)已經(jīng)不能滿足現(xiàn)階段的試劑快速檢測(cè)的要求。
目前液位檢測(cè)方法主要有直接測(cè)量與間接測(cè)量,由于測(cè)量環(huán)境的復(fù)雜多變,在工業(yè)實(shí)踐中大多采用間接測(cè)量方法,也就是將液位信號(hào)轉(zhuǎn)化成其他相關(guān)信號(hào)進(jìn)行測(cè)量,比如壓力信號(hào)測(cè)量、電學(xué)信號(hào)測(cè)量以及圖像法測(cè)量。將圖像法運(yùn)用于試管試劑檢測(cè)之中,可以獲得較好的實(shí)時(shí)性及較高的精度,可以節(jié)約實(shí)驗(yàn)人員的操作時(shí)間,同時(shí)避免取出測(cè)量操作時(shí)產(chǎn)生的實(shí)驗(yàn)誤差。
2007 年,任明武[1]等通過將標(biāo)尺插入河水中拍攝刻度圖像來檢測(cè)河流水位來解決水汛期堤壩防守看護(hù)的問題。其后,黃玲[2]等通過光學(xué)的原理,利用透明瓶子的光路折射在標(biāo)尺上形成扭曲,得出瓶中液體的液位高度;姚坤[3]等通過閾值分割的方法將透明塑料瓶中的無色液體變得光亮,得出液體輪廓,從而算出液位高度。目前,對(duì)基于機(jī)器視覺的液位檢測(cè)方法的研究有了豐富的發(fā)展,2019 年華南理工大學(xué)的李博文[4]從取水杯上方拍攝水杯,利用Hough 圓變換的原理,檢測(cè)水杯內(nèi)液位高度,研究出了取水杯智能水位檢測(cè)系統(tǒng)。本文將數(shù)學(xué)形態(tài)學(xué)與LoG 邊緣檢測(cè)算法相結(jié)合,有效地去除了由于光照在玻璃試管上形成的光斑等噪聲,有助于角點(diǎn)檢測(cè)算法提取關(guān)鍵點(diǎn)用以計(jì)算液面高度。并通過實(shí)驗(yàn)對(duì)該算法進(jìn)行了有效性測(cè)試。
實(shí)驗(yàn)中搭建的檢測(cè)系統(tǒng)硬件包括CCD 工業(yè)相機(jī)、LED 光源和用于圖像處理的計(jì)算機(jī),以及固定試管的試管夾裝置。如圖1 所示。
圖1 實(shí)驗(yàn)系統(tǒng)硬件結(jié)構(gòu)圖Fig.1 Experimental hardware structure diagram
實(shí)驗(yàn)中,由于試管架及CCD 工業(yè)相機(jī)位置固定,為了簡(jiǎn)化工作過程,從采集的初步圖像中選取一片區(qū)域,這個(gè)圖像區(qū)域包括所要研究的所有信息,圈定該區(qū)域以便進(jìn)一步處理。使用Rect函數(shù)構(gòu)造一片矩形區(qū)域,讀取試管液面信息,去除不必要的干擾因素,減少處理時(shí)間,增加精度,簡(jiǎn)化后續(xù)工作。
攝像機(jī)采集的原始試劑圖片是彩色圖像,但是彩色圖像包含的數(shù)據(jù)與信息量比較大,不方便下一步計(jì)算分析,而本實(shí)驗(yàn)中,灰度圖像可以充分表現(xiàn)實(shí)驗(yàn)所需要的特征,因此本文圖像處理的第1 步就是將RGB 圖像灰度化。
目前灰度化的方法主要有3 種,分別是最大值法、分量法以及加權(quán)平均法。最大值法是選取RGB 三個(gè)分量中最大的分量作為灰度圖的灰度值;分量法就是隨機(jī)選取某一個(gè)分量作為灰度值;加權(quán)平均法就是將3 個(gè)分量以不同的權(quán)值進(jìn)行加權(quán)平均得到灰度值。前2 種方法都是選取其中一個(gè)分量,就會(huì)丟失其他2 個(gè)分量的信息,因此本文中選取的是加權(quán)平均法,其公式如下:
式中:R,G,B——圖像紅、綠、藍(lán)3 個(gè)方向的顏色像素大小。
如圖2 所示,進(jìn)行灰度化處理后的圖像變得灰暗,試管輪廓邊緣變得更加明顯。
圖2 灰度化處理Fig.2 Graying processing result
廣義上的形態(tài)學(xué)是生物學(xué)的一類,研究?jī)?nèi)容主要包括動(dòng)植物的形態(tài)和結(jié)構(gòu)。而我們?cè)趫D像處理中的形態(tài)學(xué)往往指的是數(shù)字形態(tài)學(xué)。數(shù)字形態(tài)學(xué)是基于形狀的一系列操作,膨脹與腐蝕就是最基本的形態(tài)學(xué)操作。在本實(shí)驗(yàn)中,由于光照的影響,會(huì)在試管上留下光斑,影響關(guān)鍵信息的提取與計(jì)算[5],因此我們采用形態(tài)學(xué)操作來消除噪聲,求出圖像梯度。
2.3.1 膨脹
在圖像處理中,膨脹就是求得區(qū)域最大值的操作,從數(shù)學(xué)方法上講,就是將圖像某一區(qū)域的像素值矩陣與設(shè)立的掩碼做卷積,使圖像向外擴(kuò)張,達(dá)到消除噪聲與區(qū)域連接的目的。其表達(dá)式如下:
2.3.2 腐蝕
腐蝕就是與膨脹相反的操作。求取區(qū)域的最小值賦值給該區(qū)域的像素值,以減小圖像里的高亮區(qū)域,消除其中的獨(dú)立點(diǎn)數(shù),使得圖像向內(nèi)收縮。其表達(dá)式如下:
2.3.3 開運(yùn)算
在本文的實(shí)驗(yàn)中,為了使得液位輪廓變得更加光滑,消除試管上的光斑噪聲點(diǎn),我們結(jié)合膨脹以及腐蝕兩種基本操作,來實(shí)現(xiàn)更高級(jí)的形態(tài)學(xué)變化——開運(yùn)算,其表達(dá)式如下:
式中:B——設(shè)置的掩碼,用其對(duì)圖像區(qū)域A 做開運(yùn)算。
式(4)代表先用B 對(duì)A 腐蝕后膨脹。
圖像分別經(jīng)過膨脹、腐蝕、開運(yùn)算之后,得到圖3 所示的圖像。在經(jīng)由開運(yùn)算形態(tài)學(xué)操作之后,試管上的光斑得到明顯優(yōu)化,邊緣學(xué)習(xí)更加突出。因此,本算法采用開運(yùn)算操作。
圖3 形態(tài)學(xué)操作結(jié)果Fig.3 Morphological operation results
圖像增強(qiáng)是圖像處理的重要組成部分。由于大部分試管都是玻璃制品,因此在運(yùn)用視覺檢測(cè)時(shí),常常產(chǎn)生局部光斑,而導(dǎo)致需要檢測(cè)的液位邊緣信息的丟失、模糊等情況,為了減少對(duì)后續(xù)處理的干擾,通過對(duì)拍攝的圖像進(jìn)行增強(qiáng)操作。
Retinex 是一種建立在科學(xué)實(shí)驗(yàn)和科學(xué)分析基礎(chǔ)上的圖像增強(qiáng)算法,其認(rèn)為物體的顏色是由物體對(duì)不同光線的反射能力決定的,而不是由于外界光強(qiáng)的絕對(duì)值決定的。Retinex 算法經(jīng)歷不斷的發(fā)展,從單尺度、多尺度再到目前的彩色恢復(fù)多尺度,其具有增強(qiáng)色彩、高保真度以及顏色恒定等優(yōu)點(diǎn)。表達(dá)式如下:
式中:K——高斯中心環(huán)繞函數(shù)的個(gè)數(shù);S(x,y)——原始圖像;Fk(x,y)——中心環(huán)繞函數(shù);r(x,y)——輸出圖像;*——卷積符號(hào)。
對(duì)圖像進(jìn)行增強(qiáng)之后得到圖4 所示的效果圖,從圖4 可以明顯看出,試管輪廓以及液面位置得到了明顯的加強(qiáng),大大減弱了因?yàn)椴AХ垂舛斐傻脑肼曔^多、干擾信息復(fù)雜的不利影響,其中圖4(c)、圖4(d)分別表示經(jīng)過處理后的灰度直方圖,其中可以看出,通過Retinex 算法改善了區(qū)域間灰度分布不均的現(xiàn)象,增加了灰度差異,強(qiáng)化了邊緣信息。
圖像邊緣是指圖像中像素變換突出的區(qū)域,其主要存在于提取目標(biāo)與背景、區(qū)域與區(qū)域、目標(biāo)與背景之間,是圖像分割、紋理特征提取的關(guān)鍵步驟,因此對(duì)于圖像中物體的邊緣檢測(cè)算法也是目前圖像處理算法研究的一門重要學(xué)科[6]。
圖4 圖像增強(qiáng)結(jié)果Fig.4 Image enhancement result
目前邊緣檢測(cè)的算法主要基于圖像強(qiáng)度的一階和二階導(dǎo)數(shù),主要方法有Canny 算子、Sobel算子、Laplacian 算子以及Scharr 濾波器。
傳統(tǒng)的Laplacian 算子數(shù)學(xué)表述如下:
其中f(x,y)在x,y 方向上的2 階微分離散表示形式是
用j-1 替換j 可得:
同理
二階算子具有旋轉(zhuǎn)不變性的優(yōu)點(diǎn),因此對(duì)邊緣輪廓十分敏感。本次實(shí)驗(yàn)中,采用的是LoG(Laplacian-of-Gaussian)邊緣檢測(cè)算法。包含了以下步驟:
(1)濾波:由于導(dǎo)數(shù)通常對(duì)噪聲非常敏感,因此必須采用高斯濾波來改善與噪聲有關(guān)的邊緣檢測(cè)器的性能。
(2)增強(qiáng):增強(qiáng)算法可以將圖像灰度點(diǎn)附近區(qū)域像素值有顯著變化的點(diǎn)顯示出來。在程序中,可以利用計(jì)算梯度幅值的變化強(qiáng)弱來確定。具體步驟如下:
其中,
(3)檢測(cè):為了判斷第(2)步中選出的像素點(diǎn)是否是需要尋找的邊緣輪廓,該方法利用判斷其是否是2 階微分的零交叉點(diǎn)來檢測(cè)。
本實(shí)驗(yàn)采用4 種邊緣檢測(cè)算法分別對(duì)圖像進(jìn)行操作處理,對(duì)這4 種算法的檢測(cè)結(jié)果如圖5 所示。可以明顯看出LoG 邊緣檢測(cè)算法對(duì)圖像的去噪能力強(qiáng),保真程度高,邊緣銳化明顯。
由表1 所示,通過運(yùn)行時(shí)間、噪聲去除效果以及細(xì)節(jié)保真程度三個(gè)方面對(duì)4 種邊緣檢測(cè)算法進(jìn)行比較,結(jié)果可以明顯看出LoG 檢測(cè)算法可以有效地得出試管與液位的輪廓,并排除圖像中的干擾因素,考慮到時(shí)效性與準(zhǔn)確性,選擇LoG 算法作為本文的邊緣檢測(cè)算法。
表1 邊緣檢測(cè)算法對(duì)比Tab.3 Edge detection algorithm comparison
上文算法對(duì)液面位置的精準(zhǔn)檢測(cè),可以利用角點(diǎn)檢測(cè)算法來定位關(guān)鍵點(diǎn),然后得出液面高度。本文中采用的是Harris 角點(diǎn)檢測(cè)算法,是直接基于灰度圖像的角點(diǎn)提取算法,穩(wěn)定性高,尤其對(duì)L 型角點(diǎn)檢測(cè)精度高[7]。Harris 角點(diǎn)檢測(cè)算法結(jié)果如圖6 所示。
圖6 角點(diǎn)檢測(cè)結(jié)果Fig.6 Corner detection result
上述的算法檢測(cè)到了液面位置與試管處的角點(diǎn)以及試管瓶底處的拐點(diǎn),由于實(shí)驗(yàn)CCD 相機(jī)與目標(biāo)的試管位置固定,因此在得出那個(gè)關(guān)鍵點(diǎn)的像素坐標(biāo)之后,便可以通過計(jì)算得出實(shí)際液位高度。本實(shí)驗(yàn)選用的型號(hào)是BFLY-PGE-50H5MCS 型工業(yè)相機(jī)、LM12HC 鏡頭,該設(shè)備可以采集的最大圖像分辨率為2 448×2 448 pixels,設(shè)定的測(cè)量距離為300 mm,因此該檢測(cè)系統(tǒng)的測(cè)量換算為0.08 mm/pixel。
利用檢測(cè)算法得出關(guān)鍵點(diǎn)P1(x1,y1),P2(x2,y2)和P3(x3,y3),利用排除算法,選取y 方向上跨度大、x 方向差值小的兩個(gè)點(diǎn),因此排除了P3,選擇了P1與P2兩個(gè)點(diǎn)。液位高度計(jì)算如式(13)所示:
通過數(shù)學(xué)形態(tài)學(xué)處理過后,結(jié)合LoG 邊緣檢測(cè)算法可以有效地去除環(huán)境噪聲,提高檢測(cè)精度,更加準(zhǔn)確有效地找到關(guān)鍵點(diǎn),達(dá)到了期望的效果??梢詭椭鉀Q實(shí)驗(yàn)室內(nèi)試劑檢測(cè)麻煩困難的窘境,提高科研人員的研發(fā)效率,具有很高的市場(chǎng)價(jià)值與前景。
當(dāng)然本文算法也有一定的不足,在后面的角點(diǎn)檢測(cè)算法中,有角點(diǎn)檢測(cè)存在誤差以及運(yùn)算速度相對(duì)較慢的缺點(diǎn),對(duì)試管內(nèi)有色試劑時(shí)的檢測(cè)效果也是接下來需要研究的問題。