視頻教程:《 VPLC系列機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)快速入門(一)》
今天,正運(yùn)動(dòng)技術(shù)為大家分享一下《VPLC系列機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)快速入門(一)》。
近年來隨著科學(xué)技術(shù)的進(jìn)步,作為21世紀(jì)三大尖端技術(shù)之一的人工智能得到飛速發(fā)展。而視覺技術(shù)作為人工智能領(lǐng)域的一個(gè)分支,也隨之發(fā)展,各行各業(yè)也漸漸開始進(jìn)行技術(shù)變革。一些傳統(tǒng)的需要人工檢測(cè)的行業(yè),開始逐漸采用自動(dòng)化的智能檢測(cè)方式。比如,使用相機(jī)代替人眼去觀察檢測(cè)的對(duì)象;采用程序算法來模擬人的意識(shí)進(jìn)行判斷,針對(duì)圖像信息進(jìn)行分析推理,得到圖像處理結(jié)果。
正運(yùn)動(dòng)技術(shù)將攜帶自主研發(fā)的一款VPLC視覺運(yùn)動(dòng)控制器全力支持機(jī)器視覺自動(dòng)化檢測(cè)行業(yè)的發(fā)展,為各行各業(yè)的專業(yè)人士提供機(jī)器視覺+運(yùn)動(dòng)控制的解決方案。
相機(jī)拍攝圖像時(shí),圖像發(fā)射的光通過鏡頭在CCD 上成像,光到達(dá) CCD 的某個(gè)像素時(shí),將根據(jù)光的強(qiáng)度產(chǎn)生相應(yīng)的電荷將該電荷的大小讀取為電信號(hào),即可獲得各像素上光的強(qiáng)度(即像素濃度值,也可以叫灰度值)。
機(jī)器視覺的工作原理是使用光學(xué)系統(tǒng)和圖像處理設(shè)備來模擬人類視覺功能,從采集到的目標(biāo)圖像中提取信息并進(jìn)行處理,獲取所需的檢測(cè)對(duì)象信息,并加以分析和判斷,將最終結(jié)果告知給硬件設(shè)備進(jìn)行機(jī)器設(shè)備,以指引機(jī)器設(shè)備的下一步動(dòng)作。
一個(gè)完整的機(jī)器視覺系統(tǒng)由多個(gè)模塊組成,一般包括光學(xué)系統(tǒng)(光源、鏡頭、相機(jī))、圖像處理系統(tǒng), 交互界面等。
對(duì)于機(jī)器視覺項(xiàng)目來說,檢測(cè)實(shí)現(xiàn)的前提就是圖像輸入,而圖像輸入離不開工業(yè)相機(jī)。相機(jī)是一種將光信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)或模擬信號(hào)的工具,是采集圖像的重要設(shè)備,是機(jī)器視覺系統(tǒng)中的核心部件。
相機(jī)廣泛應(yīng)用于各個(gè)領(lǐng)域,尤其是用于生產(chǎn)監(jiān)控、測(cè)量任務(wù)和質(zhì)量控制等。工業(yè)數(shù)字相機(jī)通常比常規(guī)的標(biāo)準(zhǔn)數(shù)字相機(jī)更加堅(jiān)固耐用。工業(yè)生產(chǎn)的環(huán)境決定了工業(yè)相機(jī)必須能夠應(yīng)對(duì)各種復(fù)雜多變的外部影響,如應(yīng)用于高溫、高濕、粉塵等惡劣環(huán)境。
1.分辨率
分辨率代表鏡頭記錄物體細(xì)節(jié)的能力,以每毫米能夠分辨黑白對(duì)線的數(shù)量為計(jì)量單位,“線對(duì)/毫米(lp/mm)”,分辨率越高的成像越清晰。我們常說的顯示分辨率是屏幕圖像的精密度,指圖形所能顯示像素有多少。分辨率高帶來的圖像數(shù)據(jù)量就大,一般分辨率大的相機(jī),幀率一般都不會(huì)太高,常見相機(jī)像素分辨率如下:
640x480=307200(30萬)
1280×1024=1310720(130萬)
1600×1200=1920000(200萬)
2560×1920=4915200(500萬)
3672×2754=10112688(1000萬)
2.像素深度(Pixel Depth)
即每像素?cái)?shù)據(jù)的位數(shù),一般常用的是8Bit,一幅彩色圖像的每個(gè)像素用R,G,B三個(gè)分量表示,若每個(gè)分量用8位,那么一個(gè)像素共用24位表示,就說像素的深度為24,每個(gè)像素可以是224種顏色中的一種。在這個(gè)意義上,往往把像素深度說成是圖像深度。表示一個(gè)像素的位數(shù)越多,它能表達(dá)的顏色數(shù)目就越多,而它的像素深度就越深。
3. 最大幀率(Frame Rate)/行頻(Line Rate)
相機(jī)采集傳輸圖像的速率,對(duì)于面陣相機(jī)一般為每秒采集的幀數(shù)(Frames/Sec.),對(duì)于線陣相機(jī)為每秒采集的行數(shù)(Lines/Sec.)。
4. 曝光方式(Exposure)和快門速度(Shutter)
對(duì)于線陣相機(jī)都是逐行曝光的方式,可以選擇固定行頻和外觸發(fā)同步的采集方式,曝光時(shí)間可以與行周期一致,也可以設(shè)定一個(gè)固定的時(shí)間;面陣相機(jī)有幀曝光、場(chǎng)曝光和滾動(dòng)行曝光等幾種常見方式,數(shù)字相機(jī)一般都提供外觸發(fā)采圖的功能??扉T速度一般可到10微秒,高速相機(jī)還可以更快。
5. 光譜響應(yīng)特性(Spectral Range)
是指該像元傳感器對(duì)不同光波的敏感特性,一般響應(yīng)范圍是350nm-1000nm,一些相機(jī)在靶面前加了一個(gè)濾鏡,濾除紅外光線,如果系統(tǒng)需要對(duì)紅外感光時(shí)可去掉該濾鏡。
6.接口類型
有Camera Link接口,以太網(wǎng)接口,1394接口、USB接口等。
正運(yùn)動(dòng)技術(shù)的VPLC516E是一款內(nèi)嵌開放式Linux系統(tǒng)的視覺運(yùn)動(dòng)控制器,是國(guó)內(nèi)首款嵌入式運(yùn)動(dòng)控制+機(jī)器視覺于一身的一體機(jī)。圖片
ZDevelop是正運(yùn)動(dòng)技術(shù)自主開發(fā)的調(diào)試軟件,通過它用戶能夠很容易的對(duì)控制器進(jìn)行配置快速開發(fā)應(yīng)用程序以及對(duì)運(yùn)動(dòng)控制器正在運(yùn)行的程序進(jìn)行實(shí)時(shí)調(diào)試,ZDevelop軟件可通過使用串口或網(wǎng)口連接控制器,程序下載到控制器時(shí)可選ROM掉電保存下載或RAM掉電不保存下載方式,掉電保存的程序可以直接脫機(jī)運(yùn)行。
支持四種編程方式,分別為Zvision、ZBasic、ZPLC梯形圖、ZHMI組態(tài)界面,使用ZDevelop軟件編寫的程序可以下載到正運(yùn)動(dòng)控制器里,也可以在PC平臺(tái)仿真運(yùn)行。
ZVision Basic是正運(yùn)動(dòng)技術(shù)自主開發(fā)的視覺編程語言,通過視覺指令在ZDevelop軟件中進(jìn)行視覺程序的開發(fā),編寫完項(xiàng)目程序后可直接下載入VPLC控制器進(jìn)行操作。
ZVision Basic語言具有標(biāo)準(zhǔn)的命名規(guī)則,簡(jiǎn)單易懂,能夠用簡(jiǎn)短的視覺指令就能完成視覺功能的實(shí)現(xiàn),目前支持視覺定位,視覺測(cè)量,數(shù)據(jù)碼識(shí)別,Blob塊狀物檢測(cè),缺陷檢測(cè)等多種視覺算子。
下面介紹一個(gè)簡(jiǎn)單的圖像處理的例子。首先在ZDevelop中利用圖像采集接口,使用網(wǎng)口相機(jī)實(shí)時(shí)拍攝圖像。采集到圖像后對(duì)圖像進(jìn)行簡(jiǎn)單的閾值分割處理,將有物體的區(qū)域標(biāo)記出來,進(jìn)行對(duì)圖像中的區(qū)域統(tǒng)計(jì)零件數(shù)量
(1)首先在ZDevelop新建hmi界面,創(chuàng)建一個(gè)圖片元件窗口,設(shè)置相關(guān)的鎖存通道編號(hào)。
(2)采集圖像,如果需要連續(xù)地采集圖像,要建立圖像采集循環(huán)在循環(huán)中使用。
(3)簡(jiǎn)單處理圖像。獲取到圖像保存到GrabImg變量中,接下來根據(jù)圖像進(jìn)一步處理,接下來根據(jù)圖像進(jìn)一步處理,如二值化處理、膨脹、腐蝕、開閉運(yùn)算等處理,以獲取到清晰的圖像質(zhì)量為主。本例中相機(jī)使用的是黑白相機(jī),如果使用的是彩色相機(jī)則需要通過ZV_RGBTOGRAY將原始圖像改為單通道的灰度圖像,開始生成整個(gè)圖像的區(qū)域,對(duì)整個(gè)圖像的區(qū)域進(jìn)行二值處理,將區(qū)域中黑色部分提取出來存放到區(qū)域變量中。
(4)接著使用ZV_RECONNECT指令計(jì)算生成連通區(qū)域列表,通過ZV_REFILTER指令將列表中面積合適的區(qū)域提取出來,排除干擾的小雜點(diǎn),提取出每個(gè)區(qū)域并且進(jìn)行繪制ZV_REGION將區(qū)域繪制出來。
(5)零件數(shù)量獲取使用ZV_LISTCOUNT,將區(qū)域列表中的數(shù)量獲取到寄存器TABLE 數(shù)組TABLE(0)中。
ZVOBJECT ShowImg,ColorGrabImg,Region,MASk,RegionConnecte,BinaryImage,Region_Id
DIM Count,ShowString(100),File_Name(100)
Count=0
while 1
if Count=6 then
Count=0
end if
File_Name=TOSTR(Count,1,0)+".bmp"
ZV_READIMAGE(ShowImg,File_Name,1) '讀取本地圖像
ZV_LATCH(ShowImg,0) '顯示圖像
ZV_REGENFULLIMG(ShowImg,Mask) '全圖像區(qū)域處理
ZV_RETHRESH(ShowImg,Mask,Region,0,128) '對(duì)Mask 指定區(qū)域內(nèi)圖像進(jìn)行二值化,生成二值化后的區(qū)域
ZV_REFILLUP(Region,Region) '孔洞填充,去除零件中的白色部分
ZV_RECONNECT(Region,RegionConnecte) '計(jì)算區(qū)域的連通區(qū)域
ZV_REFILTER(RegionConnecte,0,1500,15000,0) '對(duì)區(qū)域列表中的區(qū)域進(jìn)行過濾,保留面積在1500到15000的區(qū)域,面積不在此范圍的區(qū)域?qū)⒈贿^濾
ZV_LISTCOUNT(RegionConnecte,0)'獲取列表中的連通區(qū)域的數(shù)量
ZV_GRAYTORGB(ShowImg,ShowImg) '灰度圖像轉(zhuǎn)RGB圖像
DELAY(100)
PRINT "零件數(shù)量為:"tostr(TABLE(0),1,0) '打印輸出結(jié)果
for i=0 to TABLE(0)-1 '遍歷輸出圖像顯示
ZV_IMGCOPY(ShowImg,ColorGrabImg)
ShowString=TOSTR(i+1,1,0)
ZV_LISTGET(RegionConnecte,Region_Id,i)'獲取列表中序號(hào)為0的元素
ZV_REGION(ColorGrabImg,Region_Id,0,zv_color(0,0,255)) '對(duì)每個(gè)區(qū)域進(jìn)行繪制紅色
ZV_TEXT(ColorGrabImg,"零件統(tǒng)計(jì)個(gè)數(shù):"ShowString,10,10,120,ZV_COLOR(255,255,0))
ZV_LATCH(ColorGrabImg,1)
ZV_CLEAR(ColorGrabImg)
DELAY(50)
next
DELAY(100)
Count=Count+1
wend
本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來源。
-
機(jī)器視覺
+關(guān)注
關(guān)注
161文章
4325瀏覽量
120011 -
正運(yùn)動(dòng)技術(shù)
+關(guān)注
關(guān)注
0文章
97瀏覽量
294
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論