蔡永洪, 孫曉輝
(1.廣州計(jì)量檢測技術(shù)研究院,廣東 廣州 510663;2.廣州工程技術(shù)職業(yè)學(xué)院,廣東 廣州 510075)
隨著計(jì)算機(jī)與信息技術(shù)的發(fā)展,機(jī)器視覺技術(shù)迅速在工農(nóng)業(yè)生產(chǎn)、智能交通、在線檢測等領(lǐng)域[1~12]得到廣泛應(yīng)用和研究。其中,在檢測應(yīng)用方面,機(jī)器視覺技術(shù)因其信息化和自動(dòng)化集成度高、現(xiàn)場作業(yè)能力強(qiáng),越來越受到相關(guān)專業(yè)人員的關(guān)注[13~16]。
玻璃量器是一種用來度量液體介質(zhì)容積或提取定量容積液體介質(zhì)的工作計(jì)量器具,其材質(zhì)為透明玻璃,玻璃外壁標(biāo)有計(jì)量用的刻線。常見的玻璃量器有容量瓶、吸量管、量筒、量杯等,大量應(yīng)用在生產(chǎn)、研發(fā)和檢測領(lǐng)域。使用時(shí),液體介質(zhì)注入玻璃量器內(nèi),通過人眼讀取液面對(duì)應(yīng)數(shù)值,以視線、標(biāo)線與液面處在同一水平面為正確操作[17]。這個(gè)操作對(duì)人眼視力和判斷力要求較高。目前,關(guān)于玻璃量器自動(dòng)化檢測技術(shù)的研究報(bào)道絕大多數(shù)是與數(shù)據(jù)處理有關(guān),而有機(jī)器視覺技術(shù)的應(yīng)用研究較少。由于玻璃量器讀數(shù)需要平視、示值需要估讀而容易引入粗大誤差,這些是機(jī)器視覺應(yīng)用時(shí)需要解決的關(guān)鍵技術(shù)問題,其中如何實(shí)現(xiàn)攝像頭自動(dòng)平視玻璃量器標(biāo)線是首要解決的問題之一。
使用攝像頭代替人眼觀察并判斷液面是否達(dá)到與標(biāo)線相切的位置,其關(guān)鍵是攝像頭應(yīng)“平視”標(biāo)線,即攝像頭與標(biāo)線在同一水平面上。然而,不同規(guī)格的玻璃量器的標(biāo)線所在位置是不同的,需要控制攝像頭從當(dāng)前位置移動(dòng)到平視位置,這就需要首先獲取平視位置。
攝像頭成像模型如圖1所示,當(dāng)攝像頭與標(biāo)線AB不在一個(gè)水平面上(即不在平視位置)時(shí),“看”到的標(biāo)線呈開口的裂縫狀。顯而易見,攝像頭越接近平視位置,像面上的標(biāo)線開口就越小;達(dá)到平視位置時(shí),開口作閉合狀,標(biāo)線在像面上為一條水平線段。因此,可以使用標(biāo)線成像的開口大小的變化來判斷攝像頭距離平視位置的大小,并以其變化量來預(yù)測平視位置。
圖1 攝像頭成像模型
根據(jù)圖1中幾何關(guān)系,不難得到標(biāo)線成像開口大小的算式:
(1)
式中:B′A′是標(biāo)線成像開口大小;W、P分別是物距和像距;D是標(biāo)線直徑;Δh是攝像頭距離標(biāo)線的垂直距離。
由式(1)可知,標(biāo)線成像開口大小與Δh成正比,即
B′A′∝Δh
(2)
為了預(yù)測平視位置,需要計(jì)算標(biāo)線成像開口的變化量,若將攝像頭的位移等效為標(biāo)線的相對(duì)運(yùn)動(dòng),則標(biāo)線在運(yùn)動(dòng)坐標(biāo)系與在圖像坐標(biāo)系的對(duì)應(yīng)關(guān)系如圖2所示。
圖2 運(yùn)動(dòng)坐標(biāo)系與圖像坐標(biāo)系的轉(zhuǎn)換
圖2中縱坐標(biāo)Y、y表示標(biāo)線所處的位置,這里取BA、B′A′的中點(diǎn)位置。當(dāng)標(biāo)線從Y1運(yùn)動(dòng)到Y(jié)2時(shí),對(duì)應(yīng)圖像上的坐標(biāo)則從y1變化到y(tǒng)2。根據(jù)圖中幾何關(guān)系,可以得到下面關(guān)系式:
(3)
式中:Y0、Y1、Y2和y0、y1、y2分別是標(biāo)線在運(yùn)動(dòng)坐標(biāo)系和圖像坐標(biāo)系的位置,其中下標(biāo)0表示平視位置。
若用攝像頭在運(yùn)動(dòng)坐標(biāo)系的高度來表示,則變換為
(4)
令d1、d2表示位置1和2處標(biāo)線成像開口的大小,根據(jù)上文所知成像開口大小d與Δh成正比,故有:
(5)
根據(jù)式(4),將式(5)改寫為
(6)
根據(jù)式(6),可以計(jì)算得到圖像坐標(biāo)系里的平視位置y0:
(7)
根據(jù)式(4)和式(7),可以計(jì)算得到運(yùn)動(dòng)坐標(biāo)系里的平視位置H0:
(8)
在Lab VIEW平臺(tái)上使用VISON模塊開發(fā)了攝像頭自動(dòng)平視容量瓶標(biāo)線程序,程序流程框圖如圖3所示。
圖3 自動(dòng)平視標(biāo)線算法流程框圖
程序執(zhí)行時(shí),首先攝像頭在高度為H1處采集圖像,分析圖像得到標(biāo)線成像開口大小d1和標(biāo)線幾何中心像素坐標(biāo)y1,然后移動(dòng)攝像頭至高度H2,同樣得到d2和y2。根據(jù)式(7)和式(8),計(jì)算攝像頭平視位置的高度H0,作為新的目標(biāo)高度Hi=H0(i=3,4,…)。移動(dòng)攝像頭至目標(biāo)高度Hi,再次采集圖像,分析得到di。判斷di是否小于等于閾值δ?!笆恰睘檫_(dá)到平視位置,程序退出?!胺瘛眲t繼續(xù)判斷di是否小于等于di-1。當(dāng)di小于等于di-1時(shí),設(shè)定新的目標(biāo)高度為Hi+1=+sgn(Hi-Hi-1)·S,S為移動(dòng)步長,即繼續(xù)沿Hi-1→Hi的方向增加一個(gè)步長。當(dāng)di大于di-1時(shí),設(shè)定新的目標(biāo)高度為Hi+1=-sgn(Hi-Hi-1)·S,即反方向移動(dòng)一個(gè)步長。這里sgn(*)表示取*值的符號(hào)。于是,攝像頭再次移動(dòng)到新的目標(biāo)高度,重新采集圖像進(jìn)行分析和判斷,如此重復(fù)直到程序退出。
作者研制開發(fā)了一套容量瓶機(jī)器視覺系統(tǒng)。該系統(tǒng)包括攝像頭、升降機(jī)構(gòu)、拍攝場景等硬件和圖像處理軟件。容量瓶放在拍攝場景內(nèi),攝像頭安裝在升降機(jī)構(gòu)上,在容量瓶正前方。該視覺系統(tǒng)使用至少2個(gè)像素識(shí)別最小特征——示值標(biāo)線,結(jié)合物距、像距和視場大小等參數(shù)進(jìn)行設(shè)計(jì),圖像大小為800×600像素。圖像處理軟件的前面板如圖4所示,包括視頻窗口和多個(gè)輸入輸出數(shù)值控件,其中右側(cè)3列數(shù)組分別記錄了每次采集圖像后分析得到的標(biāo)線開口大小(mark differ)、圖像坐標(biāo)系中標(biāo)線位置(mark average)、運(yùn)動(dòng)坐標(biāo)系里攝像頭高度(array h_cam)。保持視覺系統(tǒng)在相同條件下進(jìn)行實(shí)驗(yàn),每次實(shí)驗(yàn)攝像頭都從相同的高度開始采集圖像,當(dāng)采集到的圖像中標(biāo)線開口尺寸≤3像素時(shí)可認(rèn)為攝像頭達(dá)到平視高度。這里選用了3個(gè)像素而不是2個(gè)像素作為平視的判定標(biāo)準(zhǔn),其誤差是人眼難以察覺的,卻能帶來工作效率的提升。
圖4 容量瓶機(jī)器視覺軟件前面板
圖5為標(biāo)線高度與攝像頭高度的預(yù)測值。圖6和圖7分別是實(shí)驗(yàn)過程中標(biāo)線開口大小變化和攝像頭高度變化的趨勢圖。
圖5 標(biāo)線高度與攝像頭高度的預(yù)測值
圖6 標(biāo)線開口大小的變化趨勢
圖7 攝像頭高度的變化趨勢
圖6和圖7的實(shí)驗(yàn)編號(hào)為No.1~No.7, 其橫坐標(biāo)是圖像采樣時(shí)序,攝像頭每到達(dá)新的高度都會(huì)重新采樣。由于攝像頭的初始高度和初始步長不變,所以每次實(shí)驗(yàn)采集的第1個(gè)圖像和第2個(gè)圖像都應(yīng)該是相同的,那么理論上根據(jù)同樣的圖像進(jìn)行分析和計(jì)算的結(jié)果也應(yīng)該相等。然而,由圖5看出,理論計(jì)算的結(jié)果并不完全相同,說明圖像在處理分析——標(biāo)線邊緣檢測與特征提取的過程中產(chǎn)生了偏差,正如圖6采樣時(shí)序2所示標(biāo)線開口大小出現(xiàn)了差異。另外,從圖6的趨勢可以看出,標(biāo)線開口越小即越接近平視時(shí),實(shí)驗(yàn)的重復(fù)性越差,實(shí)驗(yàn)No.3和No.4僅需6次采樣便達(dá)到平視,實(shí)驗(yàn)No.2卻經(jīng)歷了11次采樣才達(dá)到平視。這是因?yàn)檫吘墮z測的誤差相對(duì)平視判定標(biāo)準(zhǔn)(標(biāo)線開口尺寸≤3像素)較大,是重復(fù)性實(shí)驗(yàn)不確定性的主要來源。
由圖7可知,經(jīng)歷了3個(gè)拐點(diǎn)達(dá)到平視的實(shí)驗(yàn)有1個(gè)(No.2),經(jīng)歷了2個(gè)拐點(diǎn)達(dá)到平視的實(shí)驗(yàn)有2個(gè)(No.5、No.6),經(jīng)歷1個(gè)拐點(diǎn)即達(dá)到平視的實(shí)驗(yàn)卻有4個(gè)(No.1、No.3、No.4、No.7),這說明本文提出的自動(dòng)平視標(biāo)線算法效率較高。
本文為實(shí)現(xiàn)攝像頭自動(dòng)平視玻璃量器容量標(biāo)線提供了一種高效的算法。鑒于標(biāo)線提取誤差是影響重復(fù)性的主要不確定因素,為機(jī)器視覺系統(tǒng)選用高清的成像器件,改善場景條件,以及對(duì)圖像進(jìn)行必要的操作和處理(如邊緣增強(qiáng)),以提高標(biāo)線檢測和分析的精度,提供了重要的措施,有助于增強(qiáng)算法的魯棒性和準(zhǔn)確性。