0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

硬幣位置識(shí)別算法分析與設(shè)計(jì)

新機(jī)器視覺 ? 來源:新機(jī)器視覺 ? 作者:新機(jī)器視覺 ? 2022-09-07 15:30 ? 次閱讀

利用圖像處理技術(shù),在50*50CM的區(qū)域內(nèi)識(shí)別出5枚硬幣(硬幣位置任意),并且控制機(jī)械手逐一拾取5枚硬幣,然后把5枚硬幣逐一疊放到指定位置(指定位置隨機(jī))。

圖像處理過程詳解

——LabVIEWVision Assistant

硬幣位置識(shí)別算法分析與設(shè)計(jì)

硬幣的識(shí)別是本系統(tǒng)軟件設(shè)計(jì)最為關(guān)鍵的一步,只有識(shí)別的穩(wěn)定、精確才能控制機(jī)械手拾取硬幣。硬幣的最主要特征為圓形、銀白色、直徑約為25mm。設(shè)計(jì)識(shí)別算法時(shí)也是主要依據(jù)這幾個(gè)特征進(jìn)行選擇相應(yīng)的算法模塊,才能很好的區(qū)分周圍環(huán)境的雜物。處理的總思想:先采集含硬幣的圖片,進(jìn)行一系列的濾波、分割、填補(bǔ)后把除圓形外的雜物排除,再用硬幣模版搜索整幅圖像來確定是否有和硬幣一樣大小的圓形。找到圓形后選擇輸出其中心坐標(biāo)。下面詳細(xì)介紹利用Vision Assistant來快速搭建識(shí)別硬幣的算法,并輸出像素坐標(biāo)。

1.1導(dǎo)入圖片

打開Vision Assistant并單擊左上角的圖片按鈕,導(dǎo)入一幅圖片。

9a061f40-2dc0-11ed-ba43-dac502259ad0.jpg

在圖中我們可以看到五枚硬幣,并且還有坐標(biāo)軸、圓圈等雜物,總之現(xiàn)在的圖像是雜亂的,如果用當(dāng)前的圖像直接去搜索硬幣無法做到穩(wěn)定,因?yàn)楫?dāng)光照等外部條件改變時(shí)背景的白色和硬幣的白色在像素值上非常接近很難進(jìn)行識(shí)別。為此在搜索硬幣前必須進(jìn)行一定的閥值濾波。把硬幣外形顯示出來,也就是靠顏色去匹配較難,但靠外形匹配容易而且穩(wěn)定。

1.2轉(zhuǎn)換RGB

9a13f476-2dc0-11ed-ba43-dac502259ad0.jpg

圖片中的圖像是RGB的,要先把圖片轉(zhuǎn)成單色的,這樣更利于識(shí)別和后續(xù)算法的處理。在軟件界面的左下部分的Processing Functions中單擊選擇Color。再選擇Color Plane Extraction這一函數(shù)模塊。

處理后我們看到硬幣暗淡了許多,這樣更有利于下一步的分割。

1.3閥值濾波

在Processing Functions中選擇Groyscale,再選擇Threhold。該函數(shù)的功能是選擇閥值以內(nèi)的圖像并且用紅色表示出來。如下圖所示。

9a24ff64-2dc0-11ed-ba43-dac502259ad0.jpg

9a37e6a6-2dc0-11ed-ba43-dac502259ad0.jpg

在look for選擇,默認(rèn)是Bright Object,所以白色的背景變成了紅色,也就是白色為選擇處理的內(nèi)容。硬幣相對(duì)背景而言是較黑的,所以應(yīng)該在此項(xiàng)選擇Dark Object。

9a4705aa-2dc0-11ed-ba43-dac502259ad0.jpg

可以看到較黑的硬幣變成了紅色被選中,同時(shí)可以調(diào)節(jié)Threhold Range這一滑調(diào)控件來調(diào)節(jié)閥值,直到滿足硬幣被選中變紅色這一要求為止。然后點(diǎn)擊OK完成本步驟。這是點(diǎn)擊OK后的效果圖,

9a57d484-2dc0-11ed-ba43-dac502259ad0.jpg

圖中除硬幣外還有很多的雜物也被標(biāo)注紅色了,這是不希望看到的。

1.4移除小雜物

在processing function中選中Binary,再繼續(xù)選中ADV.Morphology這一函數(shù)模塊。這一函數(shù)包含移除小物體、大物體、補(bǔ)全圖像漏缺等功能。進(jìn)入界面后選中Remove small things ,選中后可以看到圖中軸坐標(biāo)上的阿拉伯?dāng)?shù)字被移除了。

9a69f83a-2dc0-11ed-ba43-dac502259ad0.jpg

1.5移除邊緣雜物

再選擇一次ADV.Morphology這一函數(shù)模塊,再點(diǎn)擊Remove border object。把圖像中的邊緣去掉,去掉后的效果如下圖所示。

9a714360-2dc0-11ed-ba43-dac502259ad0.jpg

1.6補(bǔ)漏洞

再選擇一次ADV.Morphology這一函數(shù)模塊,再點(diǎn)擊Full holes,從下圖中可以看到,五枚硬幣全部變?yōu)闊o漏洞的紅色。至此五枚硬幣的外形已經(jīng)很完整的提取出來,下一步就是要判斷這五個(gè)外形是不是要找的硬幣。

9a8537e4-2dc0-11ed-ba43-dac502259ad0.jpg

1.7二值化圖像

在processing function中選擇grayscale中的lookup table這一函數(shù)模塊。該函數(shù)的功能為把圖像進(jìn)行二值化處理,最后輸出像素為0或1的圖像,便于后續(xù)處理。在彈出的界面中選擇equalize這一選項(xiàng),可以看到圖像立即變成了黑白圖像。白色部分即為剛剛被紅色標(biāo)出來的硬幣輪廓。

9a963490-2dc0-11ed-ba43-dac502259ad0.jpg

1.8查找圓形

這是整個(gè)圖像處理中最為關(guān)鍵的一步,LabVIEW vision提供了很多方法來查找具有一定外形的物體,比如shape detection、pattern matching等函數(shù)。而本系統(tǒng)采用的是share matching這一函數(shù),因?yàn)轭櫭剂x這個(gè)函數(shù)的功能是根據(jù)給定外形去查找圖像中是否有相同外形的物體。它的適應(yīng)性更強(qiáng)更穩(wěn)定。在processing functionz中選擇share matching這一函數(shù)模塊。

9a9fd194-2dc0-11ed-ba43-dac502259ad0.jpg

進(jìn)入界面后單擊create template,彈出選擇界面,選擇圖中任意一個(gè)圓形作為識(shí)別的模版即可。然后單擊finish,即可完成識(shí)別模版選擇。

9ab13402-2dc0-11ed-ba43-dac502259ad0.jpg

模版選擇好后,自動(dòng)識(shí)別出五枚硬幣,并且用綠色方框標(biāo)注出來,下方顯示的是對(duì)應(yīng)的硬幣的中心坐標(biāo)。例如第一枚硬幣的中心坐標(biāo)在圖中藍(lán)色方形取閱,它的中心x坐標(biāo)為235,中心y軸坐標(biāo)是94。如下圖所示。

9abd77f8-2dc0-11ed-ba43-dac502259ad0.jpg

到這一步硬幣識(shí)別已經(jīng)成功了,但是坐標(biāo)還沒有輸出給LabVIEW程序框圖,后續(xù)的電機(jī)控制也就無法進(jìn)行。為此必須選擇坐標(biāo)輸出給后續(xù)的VI。

1.9坐標(biāo)輸出

在右下方單擊select controls這一控件,

9ac5df74-2dc0-11ed-ba43-dac502259ad0.jpg

進(jìn)入界面后,再在Number of matchings和Shape report前打勾表示這兩項(xiàng)內(nèi)容為輸出內(nèi)容。最后電機(jī)Finish。

9ad59be4-2dc0-11ed-ba43-dac502259ad0.jpg

在程序框圖中的最后為輸出兩個(gè)控件,一個(gè)是硬幣數(shù)目,另一個(gè)是包含坐標(biāo)信息的簇。至此,硬幣識(shí)別的圖像處理部分全部完成。

9aecbf86-2dc0-11ed-ba43-dac502259ad0.jpg

2.目標(biāo)點(diǎn)識(shí)別算法分析與設(shè)計(jì)

目標(biāo)點(diǎn)為一紅色的長(zhǎng)方塊,它的識(shí)別與上一節(jié)介紹的硬幣識(shí)別方法類似,只是第8步稍微有些差異,即把匹配的圓形改為方形即可。如下圖所示。

9afadc60-2dc0-11ed-ba43-dac502259ad0.jpg

3.利用圖像閉環(huán)控制機(jī)械手算法設(shè)計(jì)

之前介紹的圖像處理算法最后輸出的坐標(biāo)為像素坐標(biāo)并不是真實(shí)的物理坐標(biāo),這樣對(duì)于后面的電機(jī)控制非常不方便,因此在設(shè)計(jì)控制算法前先要進(jìn)行坐標(biāo)換算??紤]到圖像的長(zhǎng)寬像素不一樣(長(zhǎng)為720,寬576,從圖像的左下角處可以讀出),因此必須分開單獨(dú)標(biāo)定,先標(biāo)定x軸方向再標(biāo)定y軸方向。分以下步驟進(jìn)行。

1)x軸像素標(biāo)定。

打開overlay這個(gè)函數(shù)模塊,該模塊的功能為文字標(biāo)注并且自動(dòng)顯示出文字所在的像素坐標(biāo)位置。任取尺子上的兩點(diǎn)A、B,記下A在尺子上的刻度(選擇110MM),從圖中左下角位置直接讀出像素坐標(biāo)(690,286) (這個(gè)坐標(biāo)是可以改變的,當(dāng)這個(gè)坐標(biāo)改變時(shí)圖像中的文字的位置也會(huì)改變。為了便于計(jì)算,同時(shí)為了刻度的均勻性減少圖像畸變帶來的誤差,在選點(diǎn)時(shí)盡量選擇靠近圖像左右邊緣的點(diǎn),如圖中的A點(diǎn)很靠近右邊而且剛好是整數(shù)110MM的刻度);再記下B在尺子上的刻度(250MM),從圖中左下角讀出像素坐標(biāo)(53,286)。

9b106c60-2dc0-11ed-ba43-dac502259ad0.jpg

9b21ad86-2dc0-11ed-ba43-dac502259ad0.jpg

計(jì)算AB兩點(diǎn)真實(shí)長(zhǎng)度Lx=250-110=240mm,對(duì)應(yīng)的像素坐標(biāo)長(zhǎng)度Lp=690-53=637。則可計(jì)算在x軸方向,每?jī)蓚€(gè)像素點(diǎn)的對(duì)應(yīng)的實(shí)際長(zhǎng)度Lpx=240/637=0.3767 mm/pix。

2)y軸的像素標(biāo)定。

與x軸標(biāo)定類似記錄下y軸上的兩點(diǎn)C、D坐標(biāo)。如下面兩張圖所示,分別為C點(diǎn)刻度175mm,C像素坐標(biāo)(284,27);D點(diǎn)刻度100mm,D點(diǎn)像素坐標(biāo)(284,407)。

9b2c2900-2dc0-11ed-ba43-dac502259ad0.jpg

9b3e3a5a-2dc0-11ed-ba43-dac502259ad0.jpg

計(jì)算CD兩點(diǎn)真實(shí)長(zhǎng)度Ly=175-100=75mm,對(duì)應(yīng)的像素坐標(biāo)長(zhǎng)度Lp=407-27=380pix。則可計(jì)算在y軸方向,每?jī)蓚€(gè)像素點(diǎn)的對(duì)應(yīng)的實(shí)際長(zhǎng)度Lpy=75/380=0.197 mm/pix。

3)建立坐標(biāo)系。

以像素中心O(720/2,576/2)=(360,288)為原點(diǎn),以x軸方向向右為正,以y軸方向向上為正建立xoy坐標(biāo)系。則從圖像處理后出來的像素坐標(biāo)即可轉(zhuǎn)換成真實(shí)的坐標(biāo)。例如Z(x,y),則z的真實(shí)坐標(biāo)Zx=(x-360)×Lpx=(x-360)×0.3767mm;Zy=(y-288)×0.197mm。

建立好坐標(biāo)系后,在分析機(jī)械手的控制算法前,先分析下機(jī)械手控制模型。在下圖中假設(shè)機(jī)械手平臺(tái)上有一枚硬幣A(x,y),則對(duì)應(yīng)的在攝像頭圖像中的坐標(biāo)為A’(x’,y’)。而當(dāng)前時(shí)刻機(jī)械手上的電磁鐵的位置在O’點(diǎn)。O’A’的距離即為要機(jī)械手與硬幣的距離,也是要控制電機(jī)所走的距離,關(guān)于高度Z可暫時(shí)忽略。為了讓機(jī)械手從O’點(diǎn)走到A’可以先把R軸伸長(zhǎng),再使θ軸轉(zhuǎn)過一定的角度即可。

9b504d94-2dc0-11ed-ba43-dac502259ad0.jpg

在之前寫的硬件設(shè)計(jì)(長(zhǎng)著眼睛的機(jī)械手(六))中可以知道R軸上的步進(jìn)電機(jī)的步距為0.01mm,則R軸步進(jìn)電機(jī)脈沖數(shù)n=x’/0.01;但在實(shí)際調(diào)試中并不止控制一次電機(jī),而是把x’作為反饋控制量去控制R軸的電機(jī),只要x’>2mm,就一直輸出脈沖n給步進(jìn)電機(jī),直到x’<2mm。

在控制地盤θ軸上與R軸不相同,因?yàn)榈妆P為直流電機(jī)控制。想直接通過控制直流電機(jī)來使轉(zhuǎn)盤轉(zhuǎn)到一定的位置是不可能,而且還有考慮到轉(zhuǎn)盤齒輪的行程差。為此必須采用實(shí)時(shí)閉環(huán)的方法而且要用脈寬的長(zhǎng)短來控制電機(jī)的轉(zhuǎn)速。在小區(qū)域內(nèi)可以用y’近似去代替O’與A’的角度差,再用y’去控制直流電機(jī)的驅(qū)動(dòng)時(shí)間。Y’有正負(fù)電機(jī)也能正反轉(zhuǎn)。直到y(tǒng)’<5為止。

整個(gè)控制方法的核心在于,不管x’和y’具體值是多少,只要機(jī)械手不在硬幣的正上方(也就是x’y’大于某個(gè)值)就不斷去驅(qū)動(dòng)電機(jī),直到機(jī)械手很接近硬幣的正上方為止。在機(jī)械手走到硬幣的上方后,再控制Z軸的步進(jìn)電機(jī)使之下降一定的距離,再使電磁鐵得電即可把硬幣拾取。

控制機(jī)械手到目標(biāo)方塊的上方也是類似的思路,根據(jù)圖像中方塊的位置坐標(biāo)進(jìn)行反饋控制電機(jī),直到坐標(biāo)在一定的范圍內(nèi)。再控制Z軸下降,下降到一定的高度后再釋放電磁鐵使硬幣放下。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    4945

    瀏覽量

    87513
  • 圖像處理技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    10067
  • 算法分析
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7630

原文標(biāo)題:圖像處理——過程全解析,配圖超詳細(xì)!

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于單片機(jī)的硬幣識(shí)別

    我想做一個(gè)基于單片機(jī)的硬幣幣值識(shí)別裝置,識(shí)別模塊可用什么方法實(shí)現(xiàn)?。勘M量不要用到傳感器求高手解答~~~
    發(fā)表于 03-01 21:36

    硬幣算法怎么寫

    用壓力傳感器側(cè)一些硬幣的質(zhì)量,通過什么算法能區(qū)分出每種硬幣的個(gè)數(shù)以及金額的大小,小弟實(shí)在想不出來了,希望大家?guī)椭鷰椭o小弟我出一些招數(shù),小弟在此感激不盡!
    發(fā)表于 09-04 23:43

    怎么用matlab實(shí)現(xiàn)對(duì)硬幣識(shí)別與分類

    怎么用matlab實(shí)現(xiàn)對(duì)硬幣識(shí)別與分類?需要用到哪些函數(shù)?求賜教。。。
    發(fā)表于 05-08 17:18

    硬幣清點(diǎn)

    如何識(shí)別真假硬幣?希望大家可以提供幫助,包括傳感器選型、控制器選型等等,謝謝!
    發(fā)表于 08-15 22:28

    帶有3D手勢(shì)識(shí)別和手部位置追蹤系統(tǒng)

    手勢(shì),并使用統(tǒng)計(jì)建模區(qū)分刻意手勢(shì)和一般手部移動(dòng)。 圖 1: GestIC 算法通過分析準(zhǔn)靜電場(chǎng)扭曲來識(shí)別手勢(shì)。MGC3030 在 32 位 DSP 內(nèi)核上運(yùn)行 GestIC 算法,并使
    發(fā)表于 07-03 09:40

    基于Qualcomm DSP算法集成分析與案例分享三

    一.簡(jiǎn)介這個(gè)系列博客博主給大家分享了基于Qualcomm DSP算法集成分析與案例分享,今天再給大家分享份干貨----ThunderSoft公司基于Qualcomm msm8996平臺(tái)的超聲波姿勢(shì)識(shí)別
    發(fā)表于 09-28 14:20

    LabVIEW使用Vision視覺識(shí)別硬幣

    ,硬幣是標(biāo)準(zhǔn)的圓形。2,利用粒子分析方法,直接二值化后,得到個(gè)體的面積。方法1:直接使用shape detection自動(dòng)識(shí)別圓,但是要注意設(shè)定的參數(shù)問題,直接識(shí)別,會(huì)出現(xiàn)很多干擾,所
    發(fā)表于 02-28 19:29

    基于二級(jí)互補(bǔ)算法硬幣鑒別系統(tǒng)

    電渦流式傳感器在硬幣識(shí)別中的應(yīng)用,提出了一種基于單片機(jī)控制的互補(bǔ)型鑒別、識(shí)偽新算法。關(guān)鍵詞: 電渦流式傳感器互補(bǔ)算法硬幣鑒別
    發(fā)表于 07-06 08:52 ?38次下載

    星座圖聚類分析的QAM信號(hào)調(diào)制識(shí)別算法及DSP實(shí)現(xiàn)

    星座圖聚類分析的QAM信號(hào)調(diào)制識(shí)別算法及DSP實(shí)現(xiàn) 本文首先討論基于信號(hào)星座圖聚類分析的QAM信號(hào)識(shí)別
    發(fā)表于 05-08 08:28 ?2774次閱讀
    星座圖聚類<b class='flag-5'>分析</b>的QAM信號(hào)調(diào)制<b class='flag-5'>識(shí)別</b><b class='flag-5'>算法</b>及DSP實(shí)現(xiàn)

    變加減速算法位置伺服系統(tǒng)中的應(yīng)用與分析

    變加減速算法位置伺服系統(tǒng)中的應(yīng)用與分析
    發(fā)表于 05-04 14:37 ?10次下載

    DTW語音識(shí)別算法研究與分析_朱淑琴

    DTW語音識(shí)別算法研究與分析_朱淑琴
    發(fā)表于 03-19 11:26 ?5次下載

    人臉識(shí)別算法分析

    人臉識(shí)別算法的原理:系統(tǒng)輸入一般是一張或者一系列含有未確定身份的人臉圖像,以及人臉數(shù)據(jù)庫(kù)中的若干已知身份的人臉圖象或者相應(yīng)的編碼,而其輸出則是一系列相似度得分,表明待識(shí)別的人臉的身份。
    發(fā)表于 10-28 11:21 ?7012次閱讀

    改進(jìn)的HMAX算法應(yīng)用與車型識(shí)別

    識(shí)別率。此外,通過計(jì)算同一模板與不同圖片響應(yīng)度值的方差,消除了冗余模板,降低了算法識(shí)別時(shí)間。分析和實(shí)驗(yàn)表明,改進(jìn)的HMAX算法可以有效地實(shí)
    發(fā)表于 12-18 16:21 ?0次下載
    改進(jìn)的HMAX<b class='flag-5'>算法</b>應(yīng)用與車型<b class='flag-5'>識(shí)別</b>

    基于數(shù)字特征的識(shí)別算法設(shè)計(jì)實(shí)現(xiàn)

    基于數(shù)字特征的識(shí)別算法其核心是通過對(duì)數(shù)字的形狀以及結(jié)構(gòu)等幾何特征進(jìn)行分析與統(tǒng)計(jì),通過對(duì)數(shù)字特征的識(shí)別從而達(dá)到對(duì)圖像中數(shù)字的識(shí)別。
    發(fā)表于 04-13 16:39 ?1.2w次閱讀
    基于數(shù)字特征的<b class='flag-5'>識(shí)別</b><b class='flag-5'>算法</b>設(shè)計(jì)實(shí)現(xiàn)

    成功的通過硬幣接受程序避免松散的信號(hào)

    大多數(shù)硬幣接收器都配有傳感器來檢測(cè)尺寸和金屬成分的差異。一些特殊的硬幣接收器使用視覺檢測(cè)技術(shù)來識(shí)別不同硬幣上的顯著特征并單獨(dú)注冊(cè)它們。通常,這些方法足以精確
    的頭像 發(fā)表于 07-26 09:51 ?2676次閱讀