朱小青 祝海鵬 李臻愷 楊宇琛 王思怡 溫昕瑜
摘要:本系統(tǒng)通過(guò)工業(yè)相機(jī)進(jìn)行實(shí)時(shí)采集產(chǎn)品圖像,從而實(shí)現(xiàn)對(duì)液體液位的非接觸性檢測(cè)。通過(guò)OpenCV開(kāi)源平臺(tái)對(duì)采集的圖像數(shù)據(jù)進(jìn)行相關(guān)的預(yù)處理,并檢索出液體區(qū)域的輪廓,提出了一種適用于液位檢測(cè)的包圍圈取高算法,從而得到液位高度,實(shí)現(xiàn)了不借助外部測(cè)量?jī)x器就能對(duì)液位進(jìn)行實(shí)時(shí)檢測(cè)。
1.前言
在工業(yè)及商業(yè)的眾多領(lǐng)域,液量液位檢測(cè)是必須的檢驗(yàn)步驟,如針對(duì)醫(yī)療方面,液位檢測(cè)常用于輸液,試管等,針對(duì)于這類場(chǎng)景,液位檢測(cè)的精度往往要求更高,同時(shí)對(duì)于檢測(cè)手段也往往只能采用非接觸式,同時(shí)又需要檢測(cè)設(shè)備具有高通量得到特點(diǎn)。而針對(duì)礦業(yè)行業(yè),液位檢測(cè)常常用于礦下滲水問(wèn)題。
在已有研究中提出的液位自動(dòng)檢測(cè)方法主要有聲波法,光電傳感器法,電容式傳感器法和基于機(jī)器視覺(jué)檢測(cè)等。而基于機(jī)器視覺(jué)的檢測(cè)由于其非接觸性和無(wú)損性,受到了人們的廣泛關(guān)注。
2.系統(tǒng)設(shè)計(jì)
本實(shí)驗(yàn)的液位檢測(cè)系統(tǒng)平臺(tái)的硬件組成主要包括數(shù)字相機(jī)、LED點(diǎn)光源和用于圖像處理的樹(shù)莓派微型計(jì)算機(jī)等。實(shí)驗(yàn)采用裝有適量液體的礦泉水瓶為檢測(cè)對(duì)象,使用CCD相機(jī)獲取初步圖像,截取感興趣的瓶身部分圖像,再依次做閾值化、形態(tài)學(xué)等操作,最終通過(guò)算法實(shí)現(xiàn)輪廓檢索,獲得液位高度。
(1)檢索二值圖像中的輪廓
為了滿足硬實(shí)時(shí)任務(wù)要求,從而進(jìn)一步減少工程計(jì)算量,同時(shí)突顯液體區(qū)域的整體輪廓,我們采用取二進(jìn)制閾值化方式對(duì)圖像進(jìn)行閾值分割。其操作原理為先按照灰度等級(jí)對(duì)像素集合進(jìn)行劃分,結(jié)果將得到N個(gè)子集,每個(gè)子集即代表與現(xiàn)實(shí)景物相對(duì)應(yīng)的一塊區(qū)域,同一區(qū)域內(nèi)部擁有相同的灰度屬性。具體的劃分可以從灰度等級(jí)出發(fā), 根據(jù)現(xiàn)場(chǎng)環(huán)境選取一個(gè)合適的閾值,再通過(guò)公式(1)實(shí)現(xiàn)。閾值分割后的圖像如圖1所示。
在閾值分割后的圖像中的白色區(qū)域中仍存在一些小型黑色區(qū)域,并且在黑色區(qū)域內(nèi)還存在一些小型的白色團(tuán)塊。為了保證之后輪廓識(shí)別結(jié)果的唯一性,我們通過(guò)形態(tài)學(xué)運(yùn)算將此圖像分劃為兩個(gè)獨(dú)立且完整的區(qū)域。
(2)檢索二值圖像中的輪廓
OpenCV提供了Freeman鏈碼、多邊形頂點(diǎn)的序列這兩種方法來(lái)表示輪廓。多邊形定點(diǎn)序列是用多邊形以任意精度來(lái)近似的方法。簡(jiǎn)而言之,多邊形近似的目的就是使用盡量少的線段數(shù)來(lái)獲取給定邊界的基本形狀。對(duì)于一條閉合邊界,當(dāng)多邊形的邊數(shù)越接近邊界上的點(diǎn)數(shù)時(shí),這種近似會(huì)變得越精確,此時(shí)每一對(duì)相鄰的點(diǎn)定義了多邊形的一條邊。雖然相比于Freeman鏈碼,多邊形近似的求解過(guò)程更為復(fù)雜,需要采用耗時(shí)嚴(yán)重的迭代搜索來(lái)尋找頂點(diǎn),但它所描繪的輪廓準(zhǔn)確度相對(duì)更高。
在經(jīng)過(guò)預(yù)處理的二值圖像中,只存在一個(gè)完整而獨(dú)立的區(qū)域,所以我們選擇只檢測(cè)最外層的輪廓作為進(jìn)行輪廓檢索時(shí)的拓?fù)浣Y(jié)構(gòu) ,實(shí)現(xiàn)大幅減少計(jì)算量。這之后我們得到了存放著輪廓檢索后得到的一系列點(diǎn)的輸出序列。而為了能更準(zhǔn)確地獲得圖像中液體區(qū)域的輪廓信息,我們采用上述的多邊形近似方法。
(3)提取包圍圈及液位的檢測(cè)
在本系通過(guò)OpenCV來(lái)計(jì)算輪廓的邊界框(又稱包圍圈),得到包圍圈的高度即為液體的液位高度。此包圍圈的提取方法基于Douglas-Peucker算法。
對(duì)于一條給定的閉合曲線,得到包圍圈的詳細(xì)步驟如下:
1)在一段曲線的首尾之間連接一條直線,計(jì)算曲線上各點(diǎn)到此直線的距離;
2)取閾值dmax,將曲線上的點(diǎn)到直線最遠(yuǎn)距離與閾值做比較,若某點(diǎn)到此直線的距離大于閾值則將該點(diǎn)保留,反之則將該點(diǎn)舍去;
3)當(dāng)閾值越小,多邊形的擬合結(jié)果就越接近真實(shí)的輪廓?,F(xiàn)取較小閾值,根據(jù)保留下來(lái)的點(diǎn),將曲線輪廓分成兩部分處理,重復(fù)1、2步的操作,進(jìn)行迭代計(jì)算,不斷地將最遠(yuǎn)的點(diǎn)添加到結(jié)果中,最后得到符合給定精度限差的曲線點(diǎn)的坐標(biāo);
4)最終包含曲線信息最多的關(guān)鍵點(diǎn)將被保留下來(lái),過(guò)上下左右最遠(yuǎn)的點(diǎn)分別做出水平或豎直直線,它們相交所得的矩形即為輪廓的包圍圈,如下圖2所示。
3.結(jié)束語(yǔ)
基于OpenCV的這個(gè)液位檢測(cè)系統(tǒng)可以不借助外部的測(cè)量?jī)x器,實(shí)現(xiàn)對(duì)透明瓶裝無(wú)色液體的液位檢測(cè)。實(shí)驗(yàn)結(jié)果表明此方法穩(wěn)定性和實(shí)時(shí)性令人滿意,檢測(cè)精度較高 ,符合設(shè)計(jì)的期望要求。該系統(tǒng)若應(yīng)用于工業(yè)生產(chǎn),可在生產(chǎn)過(guò)程中大大降低產(chǎn)品檢測(cè)所需時(shí)間,節(jié)約勞動(dòng)力成本。本系統(tǒng)安全穩(wěn)定,節(jié)能環(huán)保 ,具有很好的適應(yīng)性和擴(kuò)展性,因而可以廣泛應(yīng)用于工業(yè)或醫(yī)用中各種透明瓶裝的無(wú)色液體的液位檢測(cè),具有很大的市場(chǎng)價(jià)值和應(yīng)用前景。
資助項(xiàng)目:衢州學(xué)院大學(xué)生科技創(chuàng)新項(xiàng)目Q20X036