• 
    

    
    

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

      基于OpenCV的絲印機(jī)定位系統(tǒng)研究

      2018-10-10 02:19:30李金子崔來中
      關(guān)鍵詞:哈希像素電機(jī)

      李金子, 黃 坤, 崔來中

      (1. 深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院, 深圳 518000; 2. 深圳大學(xué) 計(jì)算機(jī)與軟件學(xué)院, 深圳 518000)

      0 引 言

      絲印機(jī)對(duì)印刷材料上標(biāo)記點(diǎn)的定位是絲印機(jī)印刷過程中的一道重要工序, 也是難點(diǎn)工序[1]。它需要在印刷材料的正確位置進(jìn)行印刷[2]。絲印機(jī)定位系統(tǒng)主要包括2個(gè)部分: 1) 視覺定位問題: 柔性印刷材料通過拉料運(yùn)動(dòng)控制后, 印刷平臺(tái)下方的相機(jī)捕捉到帶有標(biāo)記點(diǎn)的圖像, 利用OpenCV中的模板匹配、 平滑處理、 圖像二值化處理、 以及研究的一種圖片相似度的方法對(duì)匹配的圖片進(jìn)行相似度判斷處理, 最終得到圖片中標(biāo)記點(diǎn)的中心坐標(biāo), 再經(jīng)過像素與毫米以及毫米與脈沖的單位換算, 得到對(duì)位平臺(tái)電機(jī)的運(yùn)動(dòng)參數(shù); 2) 根據(jù)1)得到的4個(gè)運(yùn)動(dòng)參數(shù), 對(duì)其進(jìn)行速度匹配, 使對(duì)位平臺(tái)順暢穩(wěn)定的運(yùn)動(dòng)到目標(biāo)位置, 實(shí)現(xiàn)高精度的對(duì)位。前者是絲印機(jī)定位系統(tǒng)的核心, 定位到了正確的標(biāo)記點(diǎn)位置, 才能實(shí)現(xiàn)正確的、 精確的定位。

      現(xiàn)有OpenCV模板匹配能實(shí)現(xiàn)絲印機(jī)的定位[3], 但存在模版圖像不在搜索圖中也能得到匹配結(jié)果的問題。針對(duì)該問題, 提出了基于相似度的模板匹配方法, 以解決模版圖像不在搜索圖中也能得到匹配結(jié)果的問題, 同時(shí)不會(huì)增加算法的時(shí)間復(fù)雜度, 滿足絲印機(jī)定位系統(tǒng)的要求。

      1 系統(tǒng)結(jié)構(gòu)

      絲印機(jī)工作流程及其系統(tǒng)體系結(jié)構(gòu)如圖1所示。首先放置好材料, 取得模板圖片以及目標(biāo)位置。再進(jìn)行視覺定位, 定位成功即能得到偏移的結(jié)果, 偏移結(jié)果傳送至對(duì)位執(zhí)行機(jī)構(gòu)進(jìn)行對(duì)位印刷[4]。如果得不到偏移值, 則不進(jìn)行對(duì)位, 程序終止運(yùn)行。

      2 軟件設(shè)計(jì)

      圖1 定位系統(tǒng)體系結(jié)構(gòu)圖Fig.1 Positioning system architecture

      系統(tǒng)可分為圖2所示的幾個(gè)模塊。圖像獲取模塊主要有3個(gè)作用: 1) 得到相機(jī)取得的材料圖像信息; 2) 轉(zhuǎn)化為OpenCV可以進(jìn)行圖像處理的IplImage格式; 3) 選取模板圖片, 以及目標(biāo)位置(模板圖片的中心點(diǎn)位置)。數(shù)據(jù)保存模塊主要是保存電機(jī)運(yùn)動(dòng)的參數(shù)(運(yùn)動(dòng)的速度、 運(yùn)動(dòng)的位置等)和視覺定位的參數(shù)(定位的精度、 圖像的相似度等)。視覺定位模塊主要是進(jìn)行圖像的識(shí)別和匹配, 匹配后的圖像經(jīng)過相應(yīng)的處理, 根據(jù)相似度識(shí)別出是否定位成功。運(yùn)動(dòng)控制模塊主要是視覺定位得到的偏差值轉(zhuǎn)化為脈沖, 再經(jīng)過速度的匹配, 實(shí)現(xiàn)最終的定位。

      圖2 絲印機(jī)定位系統(tǒng)結(jié)構(gòu)圖Fig.2 Screen printer positioning system structure

      2.1 圖像獲取模塊

      該模塊的主要功能是獲取相機(jī)上的圖片數(shù)據(jù), 并轉(zhuǎn)化為OpenCV的IplImage類型的圖像, 實(shí)時(shí)顯示在picture控件上, 再從顯示的圖像中框選模版圖片以及模版圖片的中心坐標(biāo), 該模版圖片的中心坐標(biāo)即為目標(biāo)位置坐標(biāo)。

      筆者使用德國(guó)映美精相機(jī), 并附帶相應(yīng)的相機(jī)庫調(diào)用相機(jī)。首先通過InitLibrary函數(shù)對(duì)相機(jī)庫進(jìn)行初始化, 通過showDevicePage函數(shù)打開相機(jī)列表, 列表中可選擇相機(jī)獲取圖像的大小為1 280×960像素。選擇好相機(jī)后, 將相機(jī)的信息通過saveDeviceStateToFile函數(shù)保存在文件中, 通過loadDeviceStateFromFile函數(shù)從文件中啟動(dòng)相機(jī)。最后即可用startLive函數(shù)捕獲圖像。除了啟動(dòng)相機(jī)捕獲圖像, 還可用函數(shù)showVCDPropertyPage打開相機(jī)的屬性頁面, 對(duì)相機(jī)的亮度, 曝光率等參數(shù)進(jìn)行調(diào)節(jié)。最后關(guān)閉系統(tǒng)時(shí)需停止捕獲以及關(guān)閉相機(jī), 都提供相應(yīng)的函數(shù)功能實(shí)現(xiàn)。

      其中在相機(jī)庫的回調(diào)函數(shù)中有圖像的數(shù)據(jù)imageData, 以及圖像的width、 hight以及channel信息, 需要對(duì)其進(jìn)行轉(zhuǎn)化, 轉(zhuǎn)化為IplImage格式的圖像。再將IplImage圖像轉(zhuǎn)化為CvvImage類型的圖像進(jìn)行顯示。轉(zhuǎn)化步驟如下。

      第1步從相機(jī)上獲取得到的寬和高, 通過長(zhǎng)和寬的值確定圖像的大小。即確定變量size的值。

      第2步用OpenCV的cvCreateImage函數(shù)創(chuàng)建size大小的IplImage格式圖像, 此時(shí)無圖像數(shù)據(jù)。

      第3步通過memcpy函數(shù)把相機(jī)中獲取的pImageData數(shù)據(jù)復(fù)制到IplImage對(duì)象所指向的圖像數(shù)據(jù)imageData指針中。此時(shí)有相機(jī)獲取的圖像數(shù)據(jù)。

      第4步將IplImage圖像數(shù)據(jù)轉(zhuǎn)化為HighGUI中CvvImage對(duì)象, 利用CvvImage對(duì)象的CopyOf函數(shù)把IplImage格式的圖像信息轉(zhuǎn)化CvvImage格式的圖像信息。

      第5步利用CvvImage對(duì)象的DrawToHDC函數(shù)將圖像數(shù)據(jù)顯示在MFC程序的圖像控件中。

      2.2 數(shù)據(jù)保存模塊

      該模塊的主要功能是保存軟件中設(shè)定的參數(shù), 以及軟件啟動(dòng)時(shí)讀取保存的參數(shù)。保存的參數(shù)主要有印刷和拉料的速度、 長(zhǎng)度及框選模板圖片的中心位置, 即目標(biāo)位置。為實(shí)現(xiàn)這兩個(gè)功能, 設(shè)計(jì)了一個(gè)保存文件的類, 實(shí)現(xiàn)了該類的SaveParam()和LoadParam()方法。該方法將要保存的數(shù)據(jù)賦值到主程序的結(jié)構(gòu)體成員變量中, 再將結(jié)構(gòu)體保存在軟件目錄的Params.data中。

      2.3 視覺定位模塊

      針對(duì)OpenCV模版匹配中模版圖像不在搜索圖中也能得到匹配結(jié)果的問題, 設(shè)計(jì)了基于相似度的視覺定位系統(tǒng)。絲印機(jī)定位模塊流程圖如圖3所示。

      圖3 絲印機(jī)定位模塊流程圖Fig.3 Screen printer positioning module flow chart

      首先, 放好材料, 架好絲網(wǎng)板, 使材料上的標(biāo)記點(diǎn)跟絲網(wǎng)板上的標(biāo)記點(diǎn)完全重合。然后在相機(jī)顯示的實(shí)時(shí)圖像中抓取模版圖像。得到模版圖像和模版圖像在搜索圖像中的中心位置。用cvMatchTemplate函數(shù)[5]得到搜索圖中與模版圖像一樣的圖像, 然后設(shè)計(jì)一種圖像相似度的判斷方法, 首先, 因?yàn)楣饩€細(xì)微的動(dòng)態(tài)變化, 匹配結(jié)果圖像和模板圖像必須進(jìn)行自動(dòng)閾值化處理, 才能得到標(biāo)記點(diǎn)的二值化圖像。其次, 這兩者尺寸還需分別縮小為10×10像素, 再分別遍歷兩者的像素值相等個(gè)數(shù), 像素相等個(gè)數(shù)作為一種相似度度量標(biāo)準(zhǔn)。最后, 如果獲取到的兩張圖像的相似度大于設(shè)定的相似度值, 則為定位成功, 否則定位失敗。

      2.3.1 模版匹配

      模板匹配是屬于圖像匹配問題, 首先需要知道兩點(diǎn)概念, 模版和搜索圖。模版在本文中具體是指標(biāo)記點(diǎn)圖像, 比搜索圖小很多。也就是需要識(shí)別的圖像。而搜索圖是相機(jī)顯示的整幅圖像。模版匹配就是要在搜索圖中識(shí)別到模版(標(biāo)記點(diǎn)圖像)并且找到模版中心點(diǎn)在搜索圖中的位置。目前人們已對(duì)模版匹配[6]提出了很多方法。

      在OpenCV中, 模版匹配的函數(shù)是cvMatchTemplate。其工作原理主要是利用模版匹配算法將模版在搜索圖中從左到右、 從上到下每個(gè)像素的間隔比較重疊區(qū)域的相似度, 需要比較(W-w+1)(H-h+1)次。并將每次的比較結(jié)果存儲(chǔ)在(W-w+1)(H-h+1)尺寸大小的圖像中, 輸出一個(gè)匹配的結(jié)果圖像。然后從得到的結(jié)果圖像結(jié)合cvMinMaxLoc函數(shù)得到搜索圖中的模版左上角位置。因?yàn)槟0娴某叽绱笮∈且阎? 從而能計(jì)算出模版中心點(diǎn)在搜索圖中的位置。也就能算出與目標(biāo)位置坐標(biāo)的X軸偏差值與Y軸偏差值。該函數(shù)匹配的精度為像素級(jí), 滿足高精度要求。下面分別對(duì)函數(shù)中的模版匹配算法進(jìn)行分析。

      平方差匹配算法。通過模版與模版在搜索圖重疊區(qū)域的差值的平方和進(jìn)行匹配, 計(jì)算公式為

      (1)

      標(biāo)準(zhǔn)平方差匹配算法。通過模版與模版在搜索圖重疊區(qū)域的標(biāo)準(zhǔn)平方差進(jìn)行匹配, 計(jì)算公式為

      (2)

      相關(guān)匹配算法。通過模版與模版在搜索圖重疊區(qū)域的乘積也就是互相關(guān)進(jìn)行匹配, 計(jì)算公式為

      (3)

      標(biāo)準(zhǔn)相關(guān)匹配算法。通過模版與模版在搜索圖重疊區(qū)域的標(biāo)準(zhǔn)化互相關(guān)進(jìn)行匹配, 計(jì)算公式為

      (4)

      相關(guān)系數(shù)匹配算法。通過模版與模版在搜索圖重疊區(qū)域的均值相關(guān)性進(jìn)行匹配, 計(jì)算公式為

      (5)

      標(biāo)準(zhǔn)相關(guān)系數(shù)匹配算法。通過模版與模版在搜索圖重疊區(qū)域的標(biāo)準(zhǔn)化均值相關(guān)性進(jìn)行匹配, 計(jì)算公式為

      (6)

      匹配方法式(2)、 式(4)、 式(6)分別是方法式(1)、 式(3)、 式(5)的歸一化形式。其中T是模版圖像,I是搜索圖像,R是匹配的結(jié)果值,x′(0~w-1)是模版圖像的寬度范圍, 范圍為,y′(0~h-1)是模版圖像的高度范圍,x(0~W-w+1)是匹配結(jié)果圖像的寬度范圍,y(0~H-h+1)是模版圖像的高度范圍。相機(jī)采集到的圖像受外部光源的影響, 光源的閃爍, 亮度變動(dòng)都能對(duì)圖像造成一定的影響。而歸一化的方法能幫助消除光源變化而帶來的影響。筆者選用的匹配方法是標(biāo)準(zhǔn)相關(guān)系數(shù)匹配算法。匹配的效果相對(duì)其他匹配算法要好。

      2.3.2 基于相似度的模版匹配

      感知哈希算法[8-11]的原理[12-14]如圖4所示。首先縮小圖像的尺寸[15], 將模版圖像縮小到合理的范圍, 該算法選定的范圍為8×8像素尺寸的圖片。主要作用是可以比較不同尺寸的圖像, 并提高圖像處理的速度。第2步是將圖像轉(zhuǎn)化為灰度圖像[16], 灰度圖像較彩色圖像更易于計(jì)算。然后計(jì)算灰度平均值。第3步依次遍歷灰度圖像像素的灰度與該灰度圖像灰度平均值比較, 大于或等于該灰度平均值的設(shè)值為1, 否則設(shè)為0。即可得到一個(gè)64位的0或1組成的整數(shù), 也是該圖片的判定結(jié)果。最后設(shè)定一個(gè)閾值, 在64位中不相同的數(shù)據(jù)位數(shù)不超過設(shè)定的閾值, 則判定兩張圖片相似, 否則, 判定兩張圖片不相似[15]。

      類感知哈希算法是在感知哈希算法的基礎(chǔ)上發(fā)展的, 它跟感知哈希算法的思想不同, 其主要作用是判斷兩張縮小至10×10像素大小后二值化圖像的相似度。關(guān)鍵是將兩張二值化圖像的相似度值與設(shè)定的閾值進(jìn)行對(duì)比。相似度的計(jì)算式為

      SSimilarity=∑f(w,h)(9)

      其中SSimilarity代表相似度的值,w1,w2代表的是兩張縮小處理后的二值化圖像的寬, 取值范圍是0~9,h1,h2代表的是兩張縮小處理后二值化圖像的高, 取值范圍也是0~9。w與h也是0~9的變量。兩張二值化圖片分為從左上角至右下角一一進(jìn)行對(duì)比, 對(duì)比的每個(gè)像素的二值。該點(diǎn)的值同為255或同為0時(shí), 該點(diǎn)的值置為1, Similarity是將所有對(duì)比后的值進(jìn)行求和, 得到相似度的值。由式(2)~式(10)可知, Similarity的取值范圍是0~100。值越高, 說明越相似。由于材料上mark點(diǎn)占整個(gè)圖像的比值一般都在80%左右, 背景占整個(gè)圖像的20%左右。筆者設(shè)定相似度的判定閾值為90。不把閾值設(shè)定為80的原因?yàn)樗梢员苊庵挥衜ark點(diǎn)的圖像和整張圖像都是跟mark點(diǎn)的二值相同的圖像進(jìn)行對(duì)比時(shí)所造成的誤判。

      類感知哈希算法的原理如圖5所示。即直接把圖像經(jīng)過模版匹配得到匹配的圖像后, 分別對(duì)模版圖像跟匹配的圖像進(jìn)行平滑處理[17,18]、 二值化處理[19-22]、 膨脹處理, 最后將處理后的模版圖像跟匹配的圖像進(jìn)行縮小處理, 將對(duì)比的模版圖像跟匹配圖像分別縮小至10×10像素大小的圖像, 因?yàn)閷?duì)比的模版圖像跟匹配圖像都是二值化圖像, 其值為255或0, 所以分別遍歷對(duì)比的模版圖像跟匹配圖像的像素, 遍歷的值相等, 相似度加一。再設(shè)定90為相似度臨界值, 相似度超過90即表示匹配的圖像跟模版圖像相似, 否則匹配的圖像跟模版圖像不相似。

      圖4 感知哈希算法原理流程圖 圖5 類感知哈希算法原理流程圖 Fig.4 Perceptual hash algorithm principle flow chart Fig.5 Class-aware hash algorithm principle flow chart

      跟感知哈希算法不同的地方就在于幾點(diǎn): 1) 縮小的尺寸不一樣, 縮小為10×10像素尺寸, 對(duì)于相似度匹配更加精確, 并且更利于以百分比的方式對(duì)比圖像; 2) 轉(zhuǎn)為灰度圖像之后直接轉(zhuǎn)為二值化圖像, 二值化圖像是每個(gè)像素都是0和255構(gòu)成, 利于比較; 3) 感知哈希算法得到的是64位的指紋, 是比較指紋的位數(shù), 以不相同的位數(shù)個(gè)數(shù)作為判斷標(biāo)準(zhǔn), 消耗時(shí)間。而類感知哈希算法是直接在比較二值的時(shí), 得到一個(gè)范圍在0~100之間的相似度。計(jì)算得到的相似度, 即為圖片相似的百分比, 認(rèn)為相似度在90%以上為相似, 低于90%為不相似。綜上所述, 類感知哈希算法相對(duì)于感知哈希算法判定圖像相似更加直觀、 精確。

      2.4 運(yùn)動(dòng)控制模塊

      筆者使用型號(hào)為1014B的雷賽運(yùn)動(dòng)控制卡控制步進(jìn)電機(jī)運(yùn)動(dòng), 本程序設(shè)計(jì)了運(yùn)動(dòng)控制類, 重新封裝了雷賽運(yùn)動(dòng)控制卡里的功能函數(shù), 以便于程序調(diào)用。雷賽運(yùn)動(dòng)控制卡的運(yùn)動(dòng)控制功能主要包括: 位置控制、 速度控制以及對(duì)輸入/輸出端點(diǎn)的控制。

      圖6 脈沖速度與時(shí)間曲線 Fig.6 Pulse speed and time curve

      速度與時(shí)間曲線1) 位置控制。本系統(tǒng)主要使用的位置控制有3類, 一是絕對(duì)位置運(yùn)動(dòng), 二是相對(duì)位置運(yùn)動(dòng), 三是回原點(diǎn)運(yùn)動(dòng)。以及回原點(diǎn)運(yùn)動(dòng)?;卦c(diǎn)運(yùn)動(dòng)主要的作用是電機(jī)復(fù)位的功能, 回到原點(diǎn)之后脈沖清零, 當(dāng)前位置就是起始位置。回原點(diǎn)運(yùn)動(dòng)完成后, 即可運(yùn)行絕對(duì)位置運(yùn)動(dòng)。絕對(duì)位置運(yùn)動(dòng)的作用是不管電機(jī)運(yùn)動(dòng)在哪個(gè)位置, 都會(huì)往設(shè)定的絕對(duì)位置運(yùn)動(dòng)。而相對(duì)位置運(yùn)動(dòng)指的是電機(jī)按照設(shè)定的脈沖值運(yùn)動(dòng), 點(diǎn)擊需要運(yùn)動(dòng)完相應(yīng)的脈沖才能停止。其運(yùn)動(dòng)過程中脈沖速度與時(shí)間的關(guān)系如圖6所示。

      2) 速度控制。雷賽DMC1410B 運(yùn)動(dòng)控制卡的速度控制主要表現(xiàn)在對(duì)于電機(jī)加速跟減速的控制上。主要分為梯形速度控制以及S型速度控制。首先, 需要知道電機(jī)的運(yùn)動(dòng)過程。電機(jī)從靜止?fàn)顟B(tài)運(yùn)動(dòng)到按設(shè)定的速度運(yùn)行以及從設(shè)定的速度運(yùn)行到電機(jī)停止運(yùn)行的過程中都有一段加速跟減速過程。區(qū)別就在于對(duì)加速跟減速這段時(shí)間的速度控制。梯形速度控制就是讓電機(jī)以固定的加速度加速跟減速運(yùn)動(dòng), 在達(dá)到設(shè)定速度時(shí), 加速度變?yōu)?, 速度出現(xiàn)明顯的轉(zhuǎn)折。梯形控制脈沖速度與時(shí)間曲線如圖7所示。

      梯形速度控制相對(duì)于S型速度控制簡(jiǎn)單, 但其速度在整個(gè)運(yùn)動(dòng)過程中會(huì)突變。設(shè)置較快速度運(yùn)行時(shí), 電機(jī)會(huì)突然猛沖, 導(dǎo)致抖動(dòng), 影響整個(gè)機(jī)器的穩(wěn)定性,長(zhǎng)時(shí)間運(yùn)行會(huì)導(dǎo)致電機(jī)的損壞以及整個(gè)平臺(tái)的定位精度。本系統(tǒng)沒有選擇梯形速度控制的方式, 而采用S型速度控制的方式。則速度曲線相應(yīng)變得平滑, 如圖8所示??芍? 加速過程中, 在電機(jī)靜止?fàn)顟B(tài)運(yùn)動(dòng)到設(shè)定的速度值時(shí), 加速度慢慢地增加, 速度也是慢慢增長(zhǎng)??斓皆O(shè)定速度值時(shí), 加速度慢慢地減小, 速度也是平穩(wěn)地減小。減速過程亦是如此。速度隨時(shí)間的變化平穩(wěn), 有利于電機(jī)的穩(wěn)定運(yùn)行, 對(duì)機(jī)器的穩(wěn)定性提供保障, 定位過程不會(huì)受到機(jī)器抖動(dòng)的影響。

      圖7 梯形控制脈沖速度與時(shí)間曲線 圖8 S形脈沖速度與時(shí)間曲線 Fig.7 Trapezoid control pulse speed and time curve Fig.8 S-shaped pulse speed and time curve

      3) 輸入/輸出端點(diǎn)的控制。雷賽DMC1410B運(yùn)動(dòng)控制卡提供了大量的通用數(shù)字輸入/輸出接口。輸入/輸出接口的主要作用是接收信號(hào)以及發(fā)送信號(hào)。輸入端口一般都是接一些開關(guān)按鈕, 開關(guān)的通斷信號(hào)可以通過輸入端口接收, 用于實(shí)體按鈕開啟或者關(guān)閉機(jī)器的相應(yīng)功能。輸出端口連接一些輸出信號(hào), 比如電磁閥的通斷信號(hào)控制一些零部件的功能。輸入/輸出的信息通過控制卡轉(zhuǎn)化為0和1的信號(hào)量, 方便系統(tǒng)讀寫。

      絲印機(jī)在進(jìn)行對(duì)位印刷時(shí), 首先要在印刷板面上放置好材料, 盡量把材料放置在印刷板中間水平線的位置, 架好絲網(wǎng), 調(diào)節(jié)絲網(wǎng)上的x軸和y軸微調(diào)旋鈕, 使得絲網(wǎng)上的mark點(diǎn)和材料上的mark點(diǎn)重合, 此時(shí)材料上的mark點(diǎn)就是定位的目標(biāo)位置。然后移動(dòng)兩個(gè)相機(jī)的位置, 使材料上的mark點(diǎn)在相機(jī)視野的中間位置。此時(shí)通過取樣, 得到材料上mark點(diǎn)的模版圖像以及mark點(diǎn)的中心坐標(biāo), 設(shè)定為定位的目標(biāo)位置。這樣就把FPC的機(jī)械定位轉(zhuǎn)化為了相機(jī)的像素級(jí)坐標(biāo)定位問題。通過拉料執(zhí)行機(jī)構(gòu)拉動(dòng)下一張材料時(shí), 相機(jī)上出現(xiàn)mark點(diǎn)的圖像, 再應(yīng)用模版匹配得到mark點(diǎn)的中心坐標(biāo), 就能得到mark點(diǎn)與設(shè)定的定位目標(biāo)位置的x軸與y軸的像素偏差, 在把圖像的像素坐標(biāo)轉(zhuǎn)為機(jī)械坐標(biāo), 傳送到4軸的定位機(jī)構(gòu), 移動(dòng)印刷板實(shí)現(xiàn)定位。傳送給定位執(zhí)行機(jī)構(gòu)的值能決定其運(yùn)動(dòng)方式。

      傳統(tǒng)的運(yùn)動(dòng)方式為直接傳值運(yùn)動(dòng), 筆者使用雷賽運(yùn)動(dòng)控制卡的定長(zhǎng)函數(shù)來對(duì)位, 定長(zhǎng)函數(shù)的第1個(gè)參數(shù)是指定的電機(jī)軸, 第2個(gè)參數(shù)是電機(jī)運(yùn)動(dòng)的脈沖值, 第3個(gè)參數(shù)是電機(jī)運(yùn)動(dòng)的速度, 第4個(gè)參數(shù)是電機(jī)運(yùn)動(dòng)的加速度。直接傳值運(yùn)動(dòng)就是將定位之后轉(zhuǎn)化的脈沖值直接賦值給第2個(gè)參數(shù), 其他的參數(shù)是根據(jù)設(shè)定的運(yùn)行參數(shù)值賦值的。這種運(yùn)動(dòng)方式簡(jiǎn)單, 在材料沒有發(fā)生角度偏移時(shí), 能正常運(yùn)行。但是定位執(zhí)行機(jī)構(gòu)是個(gè)矩形布局的一個(gè)整體。材料與實(shí)際的位置出現(xiàn)角度偏差的時(shí)候, 定位的4個(gè)參數(shù)值就各不一樣。此時(shí)按照一樣的速度運(yùn)行, 就會(huì)有先后結(jié)束的電機(jī)軸, 發(fā)生定位執(zhí)行機(jī)構(gòu)的拉扯現(xiàn)象, 即4個(gè)步進(jìn)電機(jī)不同步運(yùn)動(dòng)。這樣會(huì)導(dǎo)致定位執(zhí)行機(jī)構(gòu)在定位過程中的卡頓現(xiàn)象。

      圖9 速度匹配流程圖Fig.9 Speed matching flowchart

      針對(duì)直接傳值運(yùn)動(dòng)出現(xiàn)的卡頓現(xiàn)象, 提出了一個(gè)速度匹配的方法。速度匹配的過程如圖9所示, 即把一個(gè)設(shè)定的速度值復(fù)制給最大偏移參數(shù), 其他參數(shù)的速度根據(jù)該參數(shù)與最大參數(shù)的值進(jìn)行計(jì)算得出。這樣偏移量大的軸, 速度也越快, 偏移量小的軸, 速度就慢。使4個(gè)軸的步進(jìn)電機(jī)近似同步的運(yùn)行, 對(duì)位平臺(tái)就能順暢運(yùn)行而不卡頓。對(duì)位平臺(tái)定位后, 印刷步進(jìn)電機(jī)按照設(shè)定的印刷長(zhǎng)度脈沖值運(yùn)動(dòng), 進(jìn)行印刷。完成印刷后, 拉料步進(jìn)電機(jī)根據(jù)設(shè)定的固定長(zhǎng)度脈沖值進(jìn)行拉料, 進(jìn)行下一次的定位印刷。

      3 實(shí)際運(yùn)行測(cè)試

      本視覺定位系統(tǒng)是在Microsoft Visual C++ 6.0集成開發(fā)環(huán)境, 利用MFC框架開發(fā)而成。實(shí)際定位運(yùn)行成功的界面如圖10所示, 此界面中, 標(biāo)記點(diǎn)都在搜索圖當(dāng)中, 圖像相似度都在90%以上, 標(biāo)記點(diǎn)都到達(dá)目標(biāo)位置, 定位成功。運(yùn)行失敗界面如圖11所示, 此界面中左搜索圖中并沒有標(biāo)記點(diǎn), 此時(shí)的圖像相似度為66%, 低于設(shè)置的相似度值, 系統(tǒng)界面顯示失敗。

      圖10 絲印機(jī)定位運(yùn)行成功界面 圖11 絲印機(jī)定位運(yùn)行失敗界面 Fig.10 Screen printer positioning Fig.11 Screen printer positioning operation successful interface operation failed interface

      類感知哈希算法實(shí)際的相似度輸出以及定位平均耗時(shí)如表1所示。從表1中可知, 選定定位50次為一項(xiàng)測(cè)試數(shù)據(jù)。每項(xiàng)基于相似度的模版匹配得到的圖像相似度平均值是92.5%, 匹配過程中最大的相似度是99%, 最小的相似度是91%。50次定位的總耗時(shí)除以次數(shù)得到的平均耗時(shí), 最快的平均用時(shí)在193 ms, 最慢的平均用時(shí)在215 ms。范圍在193~215 ms之間, 滿足實(shí)際生產(chǎn)效率。

      表1 類感知哈希算法相似度輸出以及耗時(shí)表

      感知哈希算法實(shí)際的相似度輸出以及定位平均耗時(shí)如表2所示。可知, 選定定位50次為一項(xiàng)測(cè)試數(shù)據(jù)。每項(xiàng)基于相似度的模版匹配得到的圖像相似度平均值是86%, 匹配過程中最大的相似度是97%, 最小的相似度是78%, 相似度的變化波動(dòng)較大, 不穩(wěn)定。50次定位的總耗時(shí)除以次數(shù)得到的平均耗時(shí), 最大平均用時(shí)是398 ms, 最小的平均用時(shí)是232 ms。范圍在232~398 ms之間, 平均用時(shí)高于類感知哈希算法。

      表2 感知哈希算法相似度輸出以及耗時(shí)表

      在相似度結(jié)果上, 因?qū)嶋H的生產(chǎn)環(huán)境中, 相機(jī)獲取的FPC標(biāo)記點(diǎn)圖像的背景跟圖案顏色比較接近, 而且感知哈希算法是把圖像縮小至8×8尺寸范圍, 導(dǎo)致相似度判定沒那么穩(wěn)定, 而類感知哈希算法是直接將對(duì)比的圖像進(jìn)行二值化處理, 將背景圖案完全分離開, 并且是將圖像縮小至10×10像素大小, 對(duì)比的圖像信息更多, 基于這兩點(diǎn)差別, 類感知算法在相似度結(jié)果上更具有優(yōu)勢(shì)。

      在處理速度上, 類感知哈希算法是在比較兩張圖像二值的時(shí)候, 同時(shí)進(jìn)行相似度計(jì)算, 比較完成就能得出相似度的值。速度會(huì)相對(duì)更快一些, 而感知哈希算法是分別計(jì)算兩張圖像的指紋, 每張圖像的指紋都需要對(duì)比64次才能得到指紋, 兩張圖像就對(duì)比128次。最后還需對(duì)比兩張圖像的指紋不相同的位數(shù), 比較次數(shù)較多。

      綜上結(jié)果分析可得, 類感知哈希算法在識(shí)別FPC材料上比感知哈希算法更具有穩(wěn)定性, 處理的速度也比感知哈希算法要快一些。

      實(shí)際的定位執(zhí)行機(jī)構(gòu)運(yùn)行結(jié)果是通過每次定位之后, 定位執(zhí)行機(jī)構(gòu)是否發(fā)生卡頓, 運(yùn)動(dòng)不到實(shí)際定位位置的次數(shù)。筆者將速度匹配的運(yùn)動(dòng)方式與直接傳值的運(yùn)動(dòng)方式進(jìn)行對(duì)比。測(cè)試是在深圳眾匠智能科技有限公司進(jìn)行的, 分別進(jìn)行了250次測(cè)試, 每50次為一組。定位過程中, 材料是靠滾筒機(jī)構(gòu)拉動(dòng)指定長(zhǎng)度完成的, 所以每次定位得出的結(jié)果是不同的, 運(yùn)動(dòng)的值也是不一樣的。

      通過選取5組實(shí)驗(yàn)數(shù)據(jù)做測(cè)試, 每組測(cè)試次數(shù)為50次。進(jìn)行速度匹配后的具體測(cè)試結(jié)果如表3所示??芍? 速度匹配的運(yùn)動(dòng)方式選定定位執(zhí)行機(jī)構(gòu)運(yùn)行50次作為一組測(cè)試數(shù)據(jù)。5組測(cè)試數(shù)據(jù)中都無卡頓情況。

      表3 速度匹配方式定位執(zhí)行機(jī)構(gòu)卡頓與不卡頓情況表

      而沒有進(jìn)行速度匹配的直接傳值運(yùn)動(dòng)方式進(jìn)行測(cè)試的實(shí)際運(yùn)行數(shù)據(jù)結(jié)果如表4所示。每組數(shù)據(jù)都出現(xiàn)超過10次的卡頓次數(shù), 卡頓最多次數(shù)是26次, 頻率高, 不卡頓次數(shù)為33次。容易造成定位執(zhí)行機(jī)構(gòu)機(jī)械上的磨損, 長(zhǎng)時(shí)間運(yùn)行可能導(dǎo)致電機(jī)的損壞, 造成機(jī)器故障, 縮短機(jī)器的壽命。

      表4 直接傳值方式定位執(zhí)行機(jī)構(gòu)卡頓與不卡頓情況表

      根據(jù)實(shí)際實(shí)驗(yàn)數(shù)據(jù)結(jié)果可得出, 使用提出的速度匹配方式比直接傳值的運(yùn)動(dòng)方式要好, 可滿足實(shí)際生產(chǎn)當(dāng)中需要的效果, 而且具有較高的穩(wěn)定性, 耐用性。

      4 結(jié) 語

      筆者基于OpenCV開發(fā)了絲印機(jī)的定位系統(tǒng), 通過在模版匹配之后增加圖像相似度的判定, 當(dāng)搜索圖中沒有模版圖像時(shí), 就能提醒系統(tǒng)定位失敗, 終止系統(tǒng)運(yùn)行。該方法改進(jìn)了絲印機(jī)定位的效果, 并且沒有增加絲印機(jī)定位的時(shí)間復(fù)雜度。因?yàn)镺penCV是開源的, 又減少了軟件開發(fā)的成本。經(jīng)實(shí)驗(yàn)測(cè)試, 該定位系統(tǒng)定位精度高, 定位識(shí)別度成功率高, 可滿足絲印機(jī)定位的要求, 具有很好的應(yīng)用價(jià)值。

      猜你喜歡
      哈希像素電機(jī)
      趙運(yùn)哲作品
      藝術(shù)家(2023年8期)2023-11-02 02:05:28
      像素前線之“幻影”2000
      關(guān)于電機(jī)滾動(dòng)軸承的選擇與計(jì)算
      瞻望電機(jī)的更新?lián)Q代
      歡迎訂閱2022年《電機(jī)與控制應(yīng)用》
      “像素”仙人掌
      電機(jī)隱憂
      能源(2016年2期)2016-12-01 05:10:31
      基于OpenCV與均值哈希算法的人臉相似識(shí)別系統(tǒng)
      高像素不是全部
      CHIP新電腦(2016年3期)2016-03-10 14:22:03
      基于維度分解的哈希多維快速流分類算法
      子长县| 莆田市| 册亨县| 扶余县| 铅山县| 白朗县| 厦门市| 诸暨市| 新宾| 榆中县| 阿瓦提县| 保定市| 常熟市| 遂平县| 宁波市| 元氏县| 黑龙江省| 锡林郭勒盟| 宁阳县| 象山县| 麻城市| 铅山县| 彰化市| 开江县| 恩平市| 进贤县| 睢宁县| 米脂县| 佛山市| 桓仁| 全椒县| 盖州市| 砚山县| 郯城县| 唐河县| 河曲县| 江达县| 宁国市| 张掖市| 怀柔区| 黄冈市|