• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于視覺的發(fā)電機油位檢測與控制研究

      2017-11-02 00:34:34李洋洋
      軟件導(dǎo)刊 2017年10期

      李洋洋

      摘要:設(shè)計了一種基于圖像視覺技術(shù)的發(fā)電機油箱油位檢測與控制系統(tǒng)。通過MVCII1MM黑白相機采集油位觀察口液位圖像,通過USB2.0接口傳送到工控機,采用自適應(yīng)閾值二值化、橢圓檢測、直線檢測等一系列圖像檢測技術(shù),得到當前油位高度,通過RS232接口傳入PLC,根據(jù)油位高度打開液位閥進行相應(yīng)的添油、排油、報警等操作。

      關(guān)鍵詞:圖像視覺;發(fā)電機油位檢測;二值化;直線檢測

      DOIDOI:10.11907/rjdk.171698

      中圖分類號:TP319文獻標識碼:A文章編號:16727800(2017)010013903

      0引言

      傳統(tǒng)的發(fā)電機油箱油位檢測是靠人工觀察和浮子閥控制,可靠性不高,難以及時獲取油箱液位數(shù)據(jù)并進行相應(yīng)操作,容易出現(xiàn)事故,需要一種穩(wěn)定、安全、有效的液位檢測技術(shù)。

      隨著科技的發(fā)展,人們研制出多種液位檢測方法,如浮子式、壓力式、電容式等[1]。由于發(fā)電機油箱密封,易燃、易爆,對壓強要求高,非接觸式液位檢測方法是首選。常見的非接觸式液位檢測方法有雷達式液位檢測、激光式液位檢測、基于圖像視覺的液位檢測等等[2]。雷達式液位檢測精度高,但成本高且技術(shù)難度大;激光式液位檢測可在易燃易爆環(huán)境下進行,抗干擾能力強,但對安裝空間及激光頭防腐要求高;基于圖像視覺的液位檢測,經(jīng)圖像采集后由計算機進行處理獲得液位高度。這種檢測方法具有適應(yīng)性好、檢測精度高等優(yōu)點。

      本文提出基于圖像視覺技術(shù)的發(fā)電機油箱油位檢測與控制系統(tǒng)。通過微視工業(yè)攝像頭采集油箱液位觀察口液位圖像,在VC++6.0平臺下配置OpenCV1.0,對圖像進行一系列圖像處理獲得油位的高低,并通過PLC打開液位閥進行相應(yīng)的添油、排油、報警等控制。

      1系統(tǒng)結(jié)構(gòu)設(shè)計

      系統(tǒng)由圖像采集裝置、PLC、工控機、RS232接口幾部分組成。油箱液位由圖像采集裝置(相機、光源)采集圖像,傳入工控機,進行數(shù)字圖像處理得到液位高度,通過RS232接口傳入PLC,與PLC中預(yù)設(shè)好的上下限位閥進行比較,發(fā)出控制閥門和報警器信號。系統(tǒng)框圖如圖1所示。

      系統(tǒng)CMOS光學(xué)傳感器采用北京微視公司的MVCII1MM黑白攝像頭,采用USB2.0接口,可使用自身SDK函數(shù)庫進行二次開發(fā),采集實時圖像。

      常見的照明技術(shù)有背光照明、直接照明、散射照明、同軸照明等[3]。由于本設(shè)計是對密封油箱液位觀察口里的液位進行檢測,不易采用采光效果較好的背光照明,但如果采用直接照明,觀察口是玻璃材質(zhì)會引起鏡面反光現(xiàn)象,故使用同軸照明,即設(shè)置一塊45°半透半反玻璃,LED燈發(fā)出的光線垂直照在液位觀察口,從液位觀察口反射的光向上穿過半透半反玻璃進入攝像頭。這樣消除了反光,圖像中也沒有攝像頭影子。

      選用三菱FX2N作為控制單元,只需使用一個IO口接收由FX2N232BD 通訊模塊接口傳來的液位高度信息,3個數(shù)字輸出口用來控制補油閥、排油閥和報警器。

      2基于OpenCV的視覺測量軟件

      視覺測量系統(tǒng)軟件設(shè)計流程:微視相機采集實時圖像,進行圖像轉(zhuǎn)換成OpenCV的數(shù)據(jù)類型,再采用OpenCV 庫函數(shù)進行處理分析,如圖3所示。

      2.1圖像采集預(yù)轉(zhuǎn)換

      使用微視公司的MVCII1MM工業(yè)攝像頭,不能直接調(diào)用OpenCV函數(shù)打開視頻函數(shù)進行采集,只能使用自身SDK函數(shù)。先初始化設(shè)備,使用cvSetData函數(shù)對每一幀圖像進行格式轉(zhuǎn)換,轉(zhuǎn)換成OpenCV 庫函數(shù)常使用的IplImage數(shù)據(jù)類型,再利用相關(guān)圖像處理函數(shù)對采集的圖像進行處理分析。對圖像的圓和直線進行檢測,模擬油位觀察口和油位檢測效果。初始化函數(shù)和轉(zhuǎn)化程序如下:

      (1)設(shè)備初始化函數(shù)MV_Usb2Init。

      int nRet = MV_Usb2Init("MVC1000", &nIndex, &m_CapInfo, &m_hMVC1000);

      "MVC1000"用于表示攝像機的字符串

      nIndex當此函數(shù)調(diào)用成功時返回,返回MVC1000相機索引,本設(shè)計只采用一個攝像頭,則返回0

      m_CapInfo用于初始化捕獲視頻幀的參數(shù)

      m_hMVC1000返回的MVC1000設(shè)備句柄

      (2)設(shè)置每幀顯示前的圖像處理回調(diào)。

      MV_Usb2SetFrameCallBack( m_hMVC1000, FrameCallBack, this )

      FrameCallBack是設(shè)置的回調(diào)函數(shù)指針,里面的第一參數(shù)是sdk開發(fā)包送出的采集圖像像素首地址指針[3],本文通過這個指針訪問并轉(zhuǎn)換處理圖像數(shù)據(jù)。

      (3)圖像格式轉(zhuǎn)化程序。

      void CDlgDemoDlg::FrameCallBack(BYTE *pData)

      {

      int nScaleMode = GetScaleMode( &m_CapInfo );

      for( int i= 0; i< 20; i++ )

      for( int j= 0; j<30; j++ )

      pData[i*m_CapInfo.Width/nScaleMode+j] = 255;

      IplImage*src_Img=cvCreateImageHeader(cvSize(m_CapInfo.Width,m_CapInfo.Height),IPL_DEPTH_8U,1);

      cvSetData(src_Img,pData,m_CapInfo.Width);//根據(jù) BYTE*圖像數(shù)據(jù)指針設(shè)置IplImage圖像頭的據(jù)數(shù)據(jù)

      }endprint

      2.2圖像預(yù)處理

      視頻采集畫面常常超過液位觀察口大小,為此可對圖像設(shè)置感興趣區(qū)域ROI,以降低邊緣檢測的復(fù)雜性,減少區(qū)域干擾,節(jié)約圖像處理時間。使用OpenCV函數(shù)cvSetImageROI(),在圖像中央設(shè)置一個長300寬300的矩形區(qū)域,只對這個區(qū)域進行圖像處理和分析。

      使用Gamma矯正進行圖像增強,將gamma值設(shè)置為0.7,增強暗光部分。然后使用cvSmooth()函數(shù)對液位圖像進行平滑處理,消除噪聲。平滑方式選用CV_MEDIAN中值濾波方式,濾波板塊選用3×3板塊,使圖像孤立的噪聲邊大大減少,液位線和觀察口的輪廓邊變清晰。

      2.3自適應(yīng)閾值二值化

      雖然光照系統(tǒng)設(shè)計很好,但還是會出現(xiàn)光照不均、突發(fā)噪聲等情況。假設(shè)使用一個恒定的全局閾值量對油位圖像二值化,會因為不能照顧所有的地方而影響二值化效果。本文使用OpenCV的自適應(yīng)二值化函數(shù)void cvAdaptiveThreshold(const CvArr* src, CvArr* dst, double max_value,int adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C,int threshold_type=CV_THRESH_BINARY,int block_size=3, double param1=5)。這個函數(shù)轉(zhuǎn)換方法由threshold_type參數(shù)類型決定 [4],這里選用CV_THRESH_BINARY_INV類型,其轉(zhuǎn)換公式如下:

      dst(x,y)=0ifsrc(x,y)>T(x,y)

      max_valueotherwise(1)

      其中任一個像素點的閾值T(x,y)都不一樣,通過選擇CV_ADAPTIVE_THRESH_MEAN_C方法,計算像素點周圍區(qū)域的均值,再減去param1常數(shù)來得到相應(yīng)閾值。這種自適應(yīng)圖像二值化方法不僅有二值化效果,還可以獲得物體邊緣,起著邊緣檢測的作用。

      2.4液位觀察口外輪廓擬合

      在擬合類橢圓時本文采用經(jīng)典的最小二乘法。最小二乘法即在隨機誤差項大體服從高斯分布后,結(jié)合最大似然估計法建立一套最優(yōu)估計法,運用此估計法可估算出離實際數(shù)據(jù)最近的未知數(shù)據(jù)。換言之,使估計的數(shù)據(jù)結(jié)果與實際數(shù)據(jù)之間的離差平方和達到最小。

      設(shè)橢圓方程:

      Ax2+Bxy+Cy2+Dx+Ey+F=0(2)

      為避免出現(xiàn)全為0的解,在參數(shù)設(shè)置時再添加一個數(shù)值約束條件:假定A+C=1,將該約束條件直接帶入公式(2),即用最小二乘法分析檢測到的邊緣點數(shù)據(jù),繼而求取目標函數(shù)f(A,B,D,E,F(xiàn)):

      f(A,B,D,E,F(xiàn))=

      ∑ni(Ax2i+Bxiyi+Cy2i+Dxi+Eyi+F)2(3)

      解出函數(shù)(3)中的系數(shù)值(A,B,…,F(xiàn)),再通過極值原理即目標函數(shù),對各系數(shù)求為0的偏導(dǎo)數(shù),從而使f(A,B,D,E,F(xiàn))最小:

      fA=fB=fD=fE=fF=0(4)

      結(jié)合約束條件,建立一個由6個等式組成的線性方程組。6個方程,6個未知數(shù),求出唯一解,即所要估計的參數(shù)值[5]。

      最小二乘法參數(shù)估計,調(diào)用Opencv中的cvFitElipse()庫函數(shù)即可完成對橢圓的最小乘法擬合,視覺上表現(xiàn)為返回一個與實際圖像最為近似的輪廓橢圓。假設(shè)輪廓橢圓在成像中的短軸半徑為r,橢圓心坐標為(xr,yr)。

      2.5液位線檢測

      本文采用hough變換檢測直線。在平面直角坐標系中,一條直線一般都用式(5)表示:

      y=kx+b(5)

      假設(shè)點(x0,y0)為直線上的一個定點,有y0=kx0+b,為參數(shù)平面(k-b)的直線,即圖像中的每個點的位置都與參數(shù)平面中唯一的一條直線對應(yīng),圖像中的任意一條直線都有唯一的一個參數(shù)平面中的點與之對應(yīng)。用霍夫變換處理圖像中所有點,其中直線相交頻繁的點所在的直線即所要檢測的直線。

      工程數(shù)學(xué)中常用極坐標參數(shù)方程表示直線:

      p=xcosθ+ysinθ(6)

      直線檢測調(diào)用Opencv中的cvHoughLines2庫函數(shù)。根據(jù)檢測到的液位直線與直線檢測原理,即可求解出液位線上的一個點(xp,yp)。圖4、圖5為檢測前的圖像和檢測完擬合好的橢圓和直線圖像。

      2.6油位高度測算方法

      處理上述圖像得到橢圓和直線的相關(guān)參數(shù),代入公式(7)即可求出油位高度h。

      h=yr-yp+r2r×1 0000

      其中:yr為橢圓圓心y的坐標值,yp為液位線坐標值,r為橢圓短軸半徑。

      3油位控制

      油位高度信息通過RS232接口傳入到PLC并進行相應(yīng)處理。工控機得到液位高度信息,經(jīng)過RS232接口,PLC將其與預(yù)設(shè)好的上下限位閾值比較。當油位低于設(shè)定下限閾值時,打開補油閥,油箱進油;當油位高于設(shè)定上限閾值,則打開排油閥排油;當油位在設(shè)定值范圍內(nèi)則關(guān)閉閥門。通過PLC顯示當前的油位與閥門狀態(tài),根據(jù)設(shè)定好的油位上下限與當前實際值之間的變化控制閥門開關(guān),實現(xiàn)注油、排油。當油位超過上限閾值或低于下限閾值,開始報警。

      4結(jié)語

      本文基于視覺OpenCV設(shè)計了一套發(fā)電機油位檢測與控制智能系統(tǒng),能自動監(jiān)視發(fā)電機油箱油位實時數(shù)據(jù)并進行相應(yīng)處理。系統(tǒng)輔助設(shè)施簡單,大大節(jié)省了人力物力,為發(fā)電機液位智能化管理提供了解決方案,很大程度上避免了意外事件的發(fā)生。在后續(xù)工作中還需要研究照明系統(tǒng)在光線不足情況下的實時曝光補償,以及更高效的液位檢測算法。

      參考文獻參考文獻:

      [1]劉治鋒.基于圖像的水位自動檢測研究[D].南京:南京理工大學(xué),2004.

      [2]龔聲蓉,劉純平,王強,等.數(shù)字圖像處理與分析[M].北京:清華大學(xué)出版社,2006.

      [3]王敏,夏咸軍.新型LED背光源技術(shù)及應(yīng)用[J].光電子技術(shù),2005,25(4):267270.

      [4]劉瑞禎,于仕琪.OpenCV教程基礎(chǔ)篇[M].北京:北京航空航天大學(xué)出版社,2007.

      [5]劉江,張岑.基于OpenCV的圓形標記點的提取[J].組合機床與自動化加工技術(shù),2013(5):2628.

      責(zé)任編輯(責(zé)任編輯:杜能鋼)

      东至县| 洪雅县| 侯马市| 武川县| 东阳市| 玉溪市| 苗栗市| 措勤县| 同仁县| 庆阳市| 叶城县| 富蕴县| 库车县| 治多县| 临漳县| 手机| 石嘴山市| 深水埗区| 阿克苏市| 夏津县| 深泽县| 迭部县| 华容县| 泰州市| 丽江市| 博白县| 桐城市| 两当县| 新兴县| 亳州市| 玛沁县| 新蔡县| 屯留县| 南溪县| 民勤县| 新建县| 囊谦县| 辽阳市| 桃源县| 松滋市| 留坝县|