李金子, 黃 坤, 崔來中
(1. 深圳職業(yè)技術(shù)學(xué)院 計算機工程學(xué)院, 深圳 518000; 2. 深圳大學(xué) 計算機與軟件學(xué)院, 深圳 518000)
絲印機對印刷材料上標記點的定位是絲印機印刷過程中的一道重要工序, 也是難點工序[1]。它需要在印刷材料的正確位置進行印刷[2]。絲印機定位系統(tǒng)主要包括2個部分: 1) 視覺定位問題: 柔性印刷材料通過拉料運動控制后, 印刷平臺下方的相機捕捉到帶有標記點的圖像, 利用OpenCV中的模板匹配、 平滑處理、 圖像二值化處理、 以及研究的一種圖片相似度的方法對匹配的圖片進行相似度判斷處理, 最終得到圖片中標記點的中心坐標, 再經(jīng)過像素與毫米以及毫米與脈沖的單位換算, 得到對位平臺電機的運動參數(shù); 2) 根據(jù)1)得到的4個運動參數(shù), 對其進行速度匹配, 使對位平臺順暢穩(wěn)定的運動到目標位置, 實現(xiàn)高精度的對位。前者是絲印機定位系統(tǒng)的核心, 定位到了正確的標記點位置, 才能實現(xiàn)正確的、 精確的定位。
現(xiàn)有OpenCV模板匹配能實現(xiàn)絲印機的定位[3], 但存在模版圖像不在搜索圖中也能得到匹配結(jié)果的問題。針對該問題, 提出了基于相似度的模板匹配方法, 以解決模版圖像不在搜索圖中也能得到匹配結(jié)果的問題, 同時不會增加算法的時間復(fù)雜度, 滿足絲印機定位系統(tǒng)的要求。
絲印機工作流程及其系統(tǒng)體系結(jié)構(gòu)如圖1所示。首先放置好材料, 取得模板圖片以及目標位置。再進行視覺定位, 定位成功即能得到偏移的結(jié)果, 偏移結(jié)果傳送至對位執(zhí)行機構(gòu)進行對位印刷[4]。如果得不到偏移值, 則不進行對位, 程序終止運行。
圖1 定位系統(tǒng)體系結(jié)構(gòu)圖Fig.1 Positioning system architecture
系統(tǒng)可分為圖2所示的幾個模塊。圖像獲取模塊主要有3個作用: 1) 得到相機取得的材料圖像信息; 2) 轉(zhuǎn)化為OpenCV可以進行圖像處理的IplImage格式; 3) 選取模板圖片, 以及目標位置(模板圖片的中心點位置)。數(shù)據(jù)保存模塊主要是保存電機運動的參數(shù)(運動的速度、 運動的位置等)和視覺定位的參數(shù)(定位的精度、 圖像的相似度等)。視覺定位模塊主要是進行圖像的識別和匹配, 匹配后的圖像經(jīng)過相應(yīng)的處理, 根據(jù)相似度識別出是否定位成功。運動控制模塊主要是視覺定位得到的偏差值轉(zhuǎn)化為脈沖, 再經(jīng)過速度的匹配, 實現(xiàn)最終的定位。
圖2 絲印機定位系統(tǒng)結(jié)構(gòu)圖Fig.2 Screen printer positioning system structure
該模塊的主要功能是獲取相機上的圖片數(shù)據(jù), 并轉(zhuǎn)化為OpenCV的IplImage類型的圖像, 實時顯示在picture控件上, 再從顯示的圖像中框選模版圖片以及模版圖片的中心坐標, 該模版圖片的中心坐標即為目標位置坐標。
筆者使用德國映美精相機, 并附帶相應(yīng)的相機庫調(diào)用相機。首先通過InitLibrary函數(shù)對相機庫進行初始化, 通過showDevicePage函數(shù)打開相機列表, 列表中可選擇相機獲取圖像的大小為1 280×960像素。選擇好相機后, 將相機的信息通過saveDeviceStateToFile函數(shù)保存在文件中, 通過loadDeviceStateFromFile函數(shù)從文件中啟動相機。最后即可用startLive函數(shù)捕獲圖像。除了啟動相機捕獲圖像, 還可用函數(shù)showVCDPropertyPage打開相機的屬性頁面, 對相機的亮度, 曝光率等參數(shù)進行調(diào)節(jié)。最后關(guān)閉系統(tǒng)時需停止捕獲以及關(guān)閉相機, 都提供相應(yīng)的函數(shù)功能實現(xiàn)。
其中在相機庫的回調(diào)函數(shù)中有圖像的數(shù)據(jù)imageData, 以及圖像的width、 hight以及channel信息, 需要對其進行轉(zhuǎn)化, 轉(zhuǎn)化為IplImage格式的圖像。再將IplImage圖像轉(zhuǎn)化為CvvImage類型的圖像進行顯示。轉(zhuǎn)化步驟如下。
第1步從相機上獲取得到的寬和高, 通過長和寬的值確定圖像的大小。即確定變量size的值。
第2步用OpenCV的cvCreateImage函數(shù)創(chuàng)建size大小的IplImage格式圖像, 此時無圖像數(shù)據(jù)。
第3步通過memcpy函數(shù)把相機中獲取的pImageData數(shù)據(jù)復(fù)制到IplImage對象所指向的圖像數(shù)據(jù)imageData指針中。此時有相機獲取的圖像數(shù)據(jù)。
第4步將IplImage圖像數(shù)據(jù)轉(zhuǎn)化為HighGUI中CvvImage對象, 利用CvvImage對象的CopyOf函數(shù)把IplImage格式的圖像信息轉(zhuǎn)化CvvImage格式的圖像信息。
第5步利用CvvImage對象的DrawToHDC函數(shù)將圖像數(shù)據(jù)顯示在MFC程序的圖像控件中。
該模塊的主要功能是保存軟件中設(shè)定的參數(shù), 以及軟件啟動時讀取保存的參數(shù)。保存的參數(shù)主要有印刷和拉料的速度、 長度及框選模板圖片的中心位置, 即目標位置。為實現(xiàn)這兩個功能, 設(shè)計了一個保存文件的類, 實現(xiàn)了該類的SaveParam()和LoadParam()方法。該方法將要保存的數(shù)據(jù)賦值到主程序的結(jié)構(gòu)體成員變量中, 再將結(jié)構(gòu)體保存在軟件目錄的Params.data中。
針對OpenCV模版匹配中模版圖像不在搜索圖中也能得到匹配結(jié)果的問題, 設(shè)計了基于相似度的視覺定位系統(tǒng)。絲印機定位模塊流程圖如圖3所示。
圖3 絲印機定位模塊流程圖Fig.3 Screen printer positioning module flow chart
首先, 放好材料, 架好絲網(wǎng)板, 使材料上的標記點跟絲網(wǎng)板上的標記點完全重合。然后在相機顯示的實時圖像中抓取模版圖像。得到模版圖像和模版圖像在搜索圖像中的中心位置。用cvMatchTemplate函數(shù)[5]得到搜索圖中與模版圖像一樣的圖像, 然后設(shè)計一種圖像相似度的判斷方法, 首先, 因為光線細微的動態(tài)變化, 匹配結(jié)果圖像和模板圖像必須進行自動閾值化處理, 才能得到標記點的二值化圖像。其次, 這兩者尺寸還需分別縮小為10×10像素, 再分別遍歷兩者的像素值相等個數(shù), 像素相等個數(shù)作為一種相似度度量標準。最后, 如果獲取到的兩張圖像的相似度大于設(shè)定的相似度值, 則為定位成功, 否則定位失敗。
模板匹配是屬于圖像匹配問題, 首先需要知道兩點概念, 模版和搜索圖。模版在本文中具體是指標記點圖像, 比搜索圖小很多。也就是需要識別的圖像。而搜索圖是相機顯示的整幅圖像。模版匹配就是要在搜索圖中識別到模版(標記點圖像)并且找到模版中心點在搜索圖中的位置。目前人們已對模版匹配[6]提出了很多方法。
在OpenCV中, 模版匹配的函數(shù)是cvMatchTemplate。其工作原理主要是利用模版匹配算法將模版在搜索圖中從左到右、 從上到下每個像素的間隔比較重疊區(qū)域的相似度, 需要比較(W-w+1)(H-h+1)次。并將每次的比較結(jié)果存儲在(W-w+1)(H-h+1)尺寸大小的圖像中, 輸出一個匹配的結(jié)果圖像。然后從得到的結(jié)果圖像結(jié)合cvMinMaxLoc函數(shù)得到搜索圖中的模版左上角位置。因為模版的尺寸大小是已知的, 從而能計算出模版中心點在搜索圖中的位置。也就能算出與目標位置坐標的X軸偏差值與Y軸偏差值。該函數(shù)匹配的精度為像素級, 滿足高精度要求。下面分別對函數(shù)中的模版匹配算法進行分析。
平方差匹配算法。通過模版與模版在搜索圖重疊區(qū)域的差值的平方和進行匹配, 計算公式為
(1)
標準平方差匹配算法。通過模版與模版在搜索圖重疊區(qū)域的標準平方差進行匹配, 計算公式為
(2)
相關(guān)匹配算法。通過模版與模版在搜索圖重疊區(qū)域的乘積也就是互相關(guān)進行匹配, 計算公式為
(3)
標準相關(guān)匹配算法。通過模版與模版在搜索圖重疊區(qū)域的標準化互相關(guān)進行匹配, 計算公式為
(4)
相關(guān)系數(shù)匹配算法。通過模版與模版在搜索圖重疊區(qū)域的均值相關(guān)性進行匹配, 計算公式為
(5)
標準相關(guān)系數(shù)匹配算法。通過模版與模版在搜索圖重疊區(qū)域的標準化均值相關(guān)性進行匹配, 計算公式為
(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)是模版圖像的高度范圍。相機采集到的圖像受外部光源的影響, 光源的閃爍, 亮度變動都能對圖像造成一定的影響。而歸一化的方法能幫助消除光源變化而帶來的影響。筆者選用的匹配方法是標準相關(guān)系數(shù)匹配算法。匹配的效果相對其他匹配算法要好。
感知哈希算法[8-11]的原理[12-14]如圖4所示。首先縮小圖像的尺寸[15], 將模版圖像縮小到合理的范圍, 該算法選定的范圍為8×8像素尺寸的圖片。主要作用是可以比較不同尺寸的圖像, 并提高圖像處理的速度。第2步是將圖像轉(zhuǎn)化為灰度圖像[16], 灰度圖像較彩色圖像更易于計算。然后計算灰度平均值。第3步依次遍歷灰度圖像像素的灰度與該灰度圖像灰度平均值比較, 大于或等于該灰度平均值的設(shè)值為1, 否則設(shè)為0。即可得到一個64位的0或1組成的整數(shù), 也是該圖片的判定結(jié)果。最后設(shè)定一個閾值, 在64位中不相同的數(shù)據(jù)位數(shù)不超過設(shè)定的閾值, 則判定兩張圖片相似, 否則, 判定兩張圖片不相似[15]。
類感知哈希算法是在感知哈希算法的基礎(chǔ)上發(fā)展的, 它跟感知哈希算法的思想不同, 其主要作用是判斷兩張縮小至10×10像素大小后二值化圖像的相似度。關(guān)鍵是將兩張二值化圖像的相似度值與設(shè)定的閾值進行對比。相似度的計算式為
SSimilarity=∑f(w,h)(9)
其中SSimilarity代表相似度的值,w1,w2代表的是兩張縮小處理后的二值化圖像的寬, 取值范圍是0~9,h1,h2代表的是兩張縮小處理后二值化圖像的高, 取值范圍也是0~9。w與h也是0~9的變量。兩張二值化圖片分為從左上角至右下角一一進行對比, 對比的每個像素的二值。該點的值同為255或同為0時, 該點的值置為1, Similarity是將所有對比后的值進行求和, 得到相似度的值。由式(2)~式(10)可知, Similarity的取值范圍是0~100。值越高, 說明越相似。由于材料上mark點占整個圖像的比值一般都在80%左右, 背景占整個圖像的20%左右。筆者設(shè)定相似度的判定閾值為90。不把閾值設(shè)定為80的原因為它可以避免只有mark點的圖像和整張圖像都是跟mark點的二值相同的圖像進行對比時所造成的誤判。
類感知哈希算法的原理如圖5所示。即直接把圖像經(jīng)過模版匹配得到匹配的圖像后, 分別對模版圖像跟匹配的圖像進行平滑處理[17,18]、 二值化處理[19-22]、 膨脹處理, 最后將處理后的模版圖像跟匹配的圖像進行縮小處理, 將對比的模版圖像跟匹配圖像分別縮小至10×10像素大小的圖像, 因為對比的模版圖像跟匹配圖像都是二值化圖像, 其值為255或0, 所以分別遍歷對比的模版圖像跟匹配圖像的像素, 遍歷的值相等, 相似度加一。再設(shè)定90為相似度臨界值, 相似度超過90即表示匹配的圖像跟模版圖像相似, 否則匹配的圖像跟模版圖像不相似。
圖4 感知哈希算法原理流程圖 圖5 類感知哈希算法原理流程圖 Fig.4 Perceptual hash algorithm principle flow chart Fig.5 Class-aware hash algorithm principle flow chart
跟感知哈希算法不同的地方就在于幾點: 1) 縮小的尺寸不一樣, 縮小為10×10像素尺寸, 對于相似度匹配更加精確, 并且更利于以百分比的方式對比圖像; 2) 轉(zhuǎn)為灰度圖像之后直接轉(zhuǎn)為二值化圖像, 二值化圖像是每個像素都是0和255構(gòu)成, 利于比較; 3) 感知哈希算法得到的是64位的指紋, 是比較指紋的位數(shù), 以不相同的位數(shù)個數(shù)作為判斷標準, 消耗時間。而類感知哈希算法是直接在比較二值的時, 得到一個范圍在0~100之間的相似度。計算得到的相似度, 即為圖片相似的百分比, 認為相似度在90%以上為相似, 低于90%為不相似。綜上所述, 類感知哈希算法相對于感知哈希算法判定圖像相似更加直觀、 精確。
筆者使用型號為1014B的雷賽運動控制卡控制步進電機運動, 本程序設(shè)計了運動控制類, 重新封裝了雷賽運動控制卡里的功能函數(shù), 以便于程序調(diào)用。雷賽運動控制卡的運動控制功能主要包括: 位置控制、 速度控制以及對輸入/輸出端點的控制。
圖6 脈沖速度與時間曲線 Fig.6 Pulse speed and time curve
速度與時間曲線1) 位置控制。本系統(tǒng)主要使用的位置控制有3類, 一是絕對位置運動, 二是相對位置運動, 三是回原點運動。以及回原點運動。回原點運動主要的作用是電機復(fù)位的功能, 回到原點之后脈沖清零, 當前位置就是起始位置。回原點運動完成后, 即可運行絕對位置運動。絕對位置運動的作用是不管電機運動在哪個位置, 都會往設(shè)定的絕對位置運動。而相對位置運動指的是電機按照設(shè)定的脈沖值運動, 點擊需要運動完相應(yīng)的脈沖才能停止。其運動過程中脈沖速度與時間的關(guān)系如圖6所示。
2) 速度控制。雷賽DMC1410B 運動控制卡的速度控制主要表現(xiàn)在對于電機加速跟減速的控制上。主要分為梯形速度控制以及S型速度控制。首先, 需要知道電機的運動過程。電機從靜止狀態(tài)運動到按設(shè)定的速度運行以及從設(shè)定的速度運行到電機停止運行的過程中都有一段加速跟減速過程。區(qū)別就在于對加速跟減速這段時間的速度控制。梯形速度控制就是讓電機以固定的加速度加速跟減速運動, 在達到設(shè)定速度時, 加速度變?yōu)?, 速度出現(xiàn)明顯的轉(zhuǎn)折。梯形控制脈沖速度與時間曲線如圖7所示。
梯形速度控制相對于S型速度控制簡單, 但其速度在整個運動過程中會突變。設(shè)置較快速度運行時, 電機會突然猛沖, 導(dǎo)致抖動, 影響整個機器的穩(wěn)定性,長時間運行會導(dǎo)致電機的損壞以及整個平臺的定位精度。本系統(tǒng)沒有選擇梯形速度控制的方式, 而采用S型速度控制的方式。則速度曲線相應(yīng)變得平滑, 如圖8所示。可知, 加速過程中, 在電機靜止狀態(tài)運動到設(shè)定的速度值時, 加速度慢慢地增加, 速度也是慢慢增長??斓皆O(shè)定速度值時, 加速度慢慢地減小, 速度也是平穩(wěn)地減小。減速過程亦是如此。速度隨時間的變化平穩(wěn), 有利于電機的穩(wěn)定運行, 對機器的穩(wěn)定性提供保障, 定位過程不會受到機器抖動的影響。
圖7 梯形控制脈沖速度與時間曲線 圖8 S形脈沖速度與時間曲線 Fig.7 Trapezoid control pulse speed and time curve Fig.8 S-shaped pulse speed and time curve
3) 輸入/輸出端點的控制。雷賽DMC1410B運動控制卡提供了大量的通用數(shù)字輸入/輸出接口。輸入/輸出接口的主要作用是接收信號以及發(fā)送信號。輸入端口一般都是接一些開關(guān)按鈕, 開關(guān)的通斷信號可以通過輸入端口接收, 用于實體按鈕開啟或者關(guān)閉機器的相應(yīng)功能。輸出端口連接一些輸出信號, 比如電磁閥的通斷信號控制一些零部件的功能。輸入/輸出的信息通過控制卡轉(zhuǎn)化為0和1的信號量, 方便系統(tǒng)讀寫。
絲印機在進行對位印刷時, 首先要在印刷板面上放置好材料, 盡量把材料放置在印刷板中間水平線的位置, 架好絲網(wǎng), 調(diào)節(jié)絲網(wǎng)上的x軸和y軸微調(diào)旋鈕, 使得絲網(wǎng)上的mark點和材料上的mark點重合, 此時材料上的mark點就是定位的目標位置。然后移動兩個相機的位置, 使材料上的mark點在相機視野的中間位置。此時通過取樣, 得到材料上mark點的模版圖像以及mark點的中心坐標, 設(shè)定為定位的目標位置。這樣就把FPC的機械定位轉(zhuǎn)化為了相機的像素級坐標定位問題。通過拉料執(zhí)行機構(gòu)拉動下一張材料時, 相機上出現(xiàn)mark點的圖像, 再應(yīng)用模版匹配得到mark點的中心坐標, 就能得到mark點與設(shè)定的定位目標位置的x軸與y軸的像素偏差, 在把圖像的像素坐標轉(zhuǎn)為機械坐標, 傳送到4軸的定位機構(gòu), 移動印刷板實現(xiàn)定位。傳送給定位執(zhí)行機構(gòu)的值能決定其運動方式。
傳統(tǒng)的運動方式為直接傳值運動, 筆者使用雷賽運動控制卡的定長函數(shù)來對位, 定長函數(shù)的第1個參數(shù)是指定的電機軸, 第2個參數(shù)是電機運動的脈沖值, 第3個參數(shù)是電機運動的速度, 第4個參數(shù)是電機運動的加速度。直接傳值運動就是將定位之后轉(zhuǎn)化的脈沖值直接賦值給第2個參數(shù), 其他的參數(shù)是根據(jù)設(shè)定的運行參數(shù)值賦值的。這種運動方式簡單, 在材料沒有發(fā)生角度偏移時, 能正常運行。但是定位執(zhí)行機構(gòu)是個矩形布局的一個整體。材料與實際的位置出現(xiàn)角度偏差的時候, 定位的4個參數(shù)值就各不一樣。此時按照一樣的速度運行, 就會有先后結(jié)束的電機軸, 發(fā)生定位執(zhí)行機構(gòu)的拉扯現(xiàn)象, 即4個步進電機不同步運動。這樣會導(dǎo)致定位執(zhí)行機構(gòu)在定位過程中的卡頓現(xiàn)象。
圖9 速度匹配流程圖Fig.9 Speed matching flowchart
針對直接傳值運動出現(xiàn)的卡頓現(xiàn)象, 提出了一個速度匹配的方法。速度匹配的過程如圖9所示, 即把一個設(shè)定的速度值復(fù)制給最大偏移參數(shù), 其他參數(shù)的速度根據(jù)該參數(shù)與最大參數(shù)的值進行計算得出。這樣偏移量大的軸, 速度也越快, 偏移量小的軸, 速度就慢。使4個軸的步進電機近似同步的運行, 對位平臺就能順暢運行而不卡頓。對位平臺定位后, 印刷步進電機按照設(shè)定的印刷長度脈沖值運動, 進行印刷。完成印刷后, 拉料步進電機根據(jù)設(shè)定的固定長度脈沖值進行拉料, 進行下一次的定位印刷。
本視覺定位系統(tǒng)是在Microsoft Visual C++ 6.0集成開發(fā)環(huán)境, 利用MFC框架開發(fā)而成。實際定位運行成功的界面如圖10所示, 此界面中, 標記點都在搜索圖當中, 圖像相似度都在90%以上, 標記點都到達目標位置, 定位成功。運行失敗界面如圖11所示, 此界面中左搜索圖中并沒有標記點, 此時的圖像相似度為66%, 低于設(shè)置的相似度值, 系統(tǒng)界面顯示失敗。
圖10 絲印機定位運行成功界面 圖11 絲印機定位運行失敗界面 Fig.10 Screen printer positioning Fig.11 Screen printer positioning operation successful interface operation failed interface
類感知哈希算法實際的相似度輸出以及定位平均耗時如表1所示。從表1中可知, 選定定位50次為一項測試數(shù)據(jù)。每項基于相似度的模版匹配得到的圖像相似度平均值是92.5%, 匹配過程中最大的相似度是99%, 最小的相似度是91%。50次定位的總耗時除以次數(shù)得到的平均耗時, 最快的平均用時在193 ms, 最慢的平均用時在215 ms。范圍在193~215 ms之間, 滿足實際生產(chǎn)效率。
表1 類感知哈希算法相似度輸出以及耗時表
感知哈希算法實際的相似度輸出以及定位平均耗時如表2所示??芍? 選定定位50次為一項測試數(shù)據(jù)。每項基于相似度的模版匹配得到的圖像相似度平均值是86%, 匹配過程中最大的相似度是97%, 最小的相似度是78%, 相似度的變化波動較大, 不穩(wěn)定。50次定位的總耗時除以次數(shù)得到的平均耗時, 最大平均用時是398 ms, 最小的平均用時是232 ms。范圍在232~398 ms之間, 平均用時高于類感知哈希算法。
表2 感知哈希算法相似度輸出以及耗時表
在相似度結(jié)果上, 因?qū)嶋H的生產(chǎn)環(huán)境中, 相機獲取的FPC標記點圖像的背景跟圖案顏色比較接近, 而且感知哈希算法是把圖像縮小至8×8尺寸范圍, 導(dǎo)致相似度判定沒那么穩(wěn)定, 而類感知哈希算法是直接將對比的圖像進行二值化處理, 將背景圖案完全分離開, 并且是將圖像縮小至10×10像素大小, 對比的圖像信息更多, 基于這兩點差別, 類感知算法在相似度結(jié)果上更具有優(yōu)勢。
在處理速度上, 類感知哈希算法是在比較兩張圖像二值的時候, 同時進行相似度計算, 比較完成就能得出相似度的值。速度會相對更快一些, 而感知哈希算法是分別計算兩張圖像的指紋, 每張圖像的指紋都需要對比64次才能得到指紋, 兩張圖像就對比128次。最后還需對比兩張圖像的指紋不相同的位數(shù), 比較次數(shù)較多。
綜上結(jié)果分析可得, 類感知哈希算法在識別FPC材料上比感知哈希算法更具有穩(wěn)定性, 處理的速度也比感知哈希算法要快一些。
實際的定位執(zhí)行機構(gòu)運行結(jié)果是通過每次定位之后, 定位執(zhí)行機構(gòu)是否發(fā)生卡頓, 運動不到實際定位位置的次數(shù)。筆者將速度匹配的運動方式與直接傳值的運動方式進行對比。測試是在深圳眾匠智能科技有限公司進行的, 分別進行了250次測試, 每50次為一組。定位過程中, 材料是靠滾筒機構(gòu)拉動指定長度完成的, 所以每次定位得出的結(jié)果是不同的, 運動的值也是不一樣的。
通過選取5組實驗數(shù)據(jù)做測試, 每組測試次數(shù)為50次。進行速度匹配后的具體測試結(jié)果如表3所示。可知, 速度匹配的運動方式選定定位執(zhí)行機構(gòu)運行50次作為一組測試數(shù)據(jù)。5組測試數(shù)據(jù)中都無卡頓情況。
表3 速度匹配方式定位執(zhí)行機構(gòu)卡頓與不卡頓情況表
而沒有進行速度匹配的直接傳值運動方式進行測試的實際運行數(shù)據(jù)結(jié)果如表4所示。每組數(shù)據(jù)都出現(xiàn)超過10次的卡頓次數(shù), 卡頓最多次數(shù)是26次, 頻率高, 不卡頓次數(shù)為33次。容易造成定位執(zhí)行機構(gòu)機械上的磨損, 長時間運行可能導(dǎo)致電機的損壞, 造成機器故障, 縮短機器的壽命。
表4 直接傳值方式定位執(zhí)行機構(gòu)卡頓與不卡頓情況表
根據(jù)實際實驗數(shù)據(jù)結(jié)果可得出, 使用提出的速度匹配方式比直接傳值的運動方式要好, 可滿足實際生產(chǎn)當中需要的效果, 而且具有較高的穩(wěn)定性, 耐用性。
筆者基于OpenCV開發(fā)了絲印機的定位系統(tǒng), 通過在模版匹配之后增加圖像相似度的判定, 當搜索圖中沒有模版圖像時, 就能提醒系統(tǒng)定位失敗, 終止系統(tǒng)運行。該方法改進了絲印機定位的效果, 并且沒有增加絲印機定位的時間復(fù)雜度。因為OpenCV是開源的, 又減少了軟件開發(fā)的成本。經(jīng)實驗測試, 該定位系統(tǒng)定位精度高, 定位識別度成功率高, 可滿足絲印機定位的要求, 具有很好的應(yīng)用價值。