亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        李洋洋

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

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

        DOIDOI:10.11907/rjdk.171698

        中圖分類號:TP319文獻(xiàn)標(biāo)識碼:A文章編號:16727800(2017)010013903

        0引言

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

        隨著科技的發(fā)展,人們研制出多種液位檢測方法,如浮子式、壓力式、電容式等[1]。由于發(fā)電機油箱密封,易燃、易爆,對壓強要求高,非接觸式液位檢測方法是首選。常見的非接觸式液位檢測方法有雷達(dá)式液位檢測、激光式液位檢測、基于圖像視覺的液位檢測等等[2]。雷達(dá)式液位檢測精度高,但成本高且技術(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當(dāng)此函數(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ù)之間的離差平方和達(dá)到最小。

        設(shè)橢圓方程:

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

        為避免出現(xiàn)全為0的解,在參數(shù)設(shè)置時再添加一個數(shù)值約束條件:假定A+C=1,將該約束條件直接帶入公式(2),即用最小二乘法分析檢測到的邊緣點數(shù)據(jù),繼而求取目標(biāo)函數(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)),再通過極值原理即目標(biāo)函數(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,橢圓心坐標(biāo)為(xr,yr)。

        2.5液位線檢測

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

        y=kx+b(5)

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

        工程數(shù)學(xué)中常用極坐標(biāo)參數(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的坐標(biāo)值,yp為液位線坐標(biāo)值,r為橢圓短軸半徑。

        3油位控制

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

        4結(jié)語

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

        參考文獻(xiàn)參考文獻(xiàn):

        [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的圓形標(biāo)記點的提取[J].組合機床與自動化加工技術(shù),2013(5):2628.

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

        国产精品三级1区2区3区| 自拍偷拍韩国三级视频| 男女啪啪免费视频网址| 91熟女av一区二区在线| 中字乱码视频| 极品尤物一区二区三区| 国产无套内射久久久国产| 精品国产成人亚洲午夜福利| 欧美亚洲另类国产18p| 亚洲少妇一区二区三区老| 日韩一区在线精品视频| 少妇人妻精品一区二区三区| 性色av无码中文av有码vr| 韩国19禁主播深夜福利视频| 全部免费国产潢色一级| 一区二区三区岛国av毛片| 亚洲不卡在线免费视频| 日本爽快片100色毛片| 最新中文字幕av无码不卡| 欧美裸体xxxx极品少妇| 国产成人精品午夜福利免费APP| 男女发生关系视频网站| 99麻豆久久精品一区二区| 亚洲一区亚洲二区视频在线| 久久精品国产亚洲av久| 欧美日韩中文国产一区发布| 午夜福利不卡无码视频| 午夜视频在线观看国产| 伦伦影院午夜理论片| 国产精品一区二区久久不卡| 国产午夜无码精品免费看动漫| 亚洲av第二区国产精品| 中文字幕综合一区二区三区| 无码人妻丰满熟妇区bbbbxxxx| 人妻体体内射精一区二区| 亚洲熟妇无码av不卡在线播放 | 蜜桃一区二区三区在线视频 | 大地资源高清在线视频播放| 又湿又黄裸乳漫画无遮挡网站| 色婷婷色99国产综合精品| 国产一区二区三区中出|