国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于機(jī)器視覺的球狀農(nóng)產(chǎn)品分揀機(jī)的探索研究

2022-05-14 04:09
南方農(nóng)機(jī) 2022年10期
關(guān)鍵詞:數(shù)組編碼器亮度

王 雷

(山東省平邑縣農(nóng)機(jī)發(fā)展促進(jìn)中心,山東 臨沂 273300)

隨著人民生活水平的提高,對水果等農(nóng)產(chǎn)品品質(zhì)的要求也提高了,對于產(chǎn)品的大小、形狀、顏色、損傷腐爛程度、成熟度等指標(biāo)有了更高的要求。這就需要按指標(biāo)要求對產(chǎn)品進(jìn)行分類分揀。其中大部分指標(biāo)依靠純機(jī)械的裝置是難以實(shí)現(xiàn)的,計算機(jī)視覺技術(shù)的發(fā)展,使得過去由純機(jī)械無法完成的工作,通過計算機(jī)及傳感器與機(jī)械的結(jié)合能夠得以完成。筆者對基于計算機(jī)視覺識別技術(shù)進(jìn)行壞果去除的球狀農(nóng)產(chǎn)品分揀機(jī)進(jìn)行了研究探索。

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

第一,機(jī)械部分完成產(chǎn)品的取料、輸送、翻轉(zhuǎn)、分揀動作。翻轉(zhuǎn)動作是為了實(shí)現(xiàn)對產(chǎn)品表面的全面圖像采集,本方案機(jī)械部分通過對產(chǎn)品進(jìn)行翻滾操作來實(shí)現(xiàn),比較適合對圓球狀農(nóng)產(chǎn)品的識別。

第二,PLC(Programmable Logic Controller)[1]現(xiàn)場控制單元,接收來自計算機(jī)的數(shù)據(jù),完成對機(jī)械部分輸送分揀裝置的控制,并把部分現(xiàn)場信息(主要是運(yùn)行位置信息)反饋給計算機(jī)。

第三,計算機(jī)及攝像采集裝置周期性地進(jìn)行圖像采集、識別處理,生成分揀控制數(shù)據(jù)傳輸給第二部分PLC現(xiàn)場控制單元。

本方案需要完成好三個部分的功能及相互之間的數(shù)據(jù)傳輸協(xié)調(diào)配合。自動分揀機(jī)械結(jié)構(gòu)示意圖如圖1所示。

圖1 自動分揀機(jī)械結(jié)構(gòu)示意圖

2 機(jī)械結(jié)構(gòu)原理

如圖1 所示,機(jī)械部分主體采用輸送鏈結(jié)構(gòu),橫向外部兩側(cè)為兩條輸送鏈條[2]。橫撐固定在兩側(cè)鏈條上,間距相等。鏈條運(yùn)轉(zhuǎn)在三條鏈輪軸上,其中中間的軸安裝在較高的位置,鏈條按圖示順時針方向運(yùn)轉(zhuǎn)形成先高后低的走勢。左邊和中間的軸的內(nèi)側(cè)還設(shè)有支撐帶,與外側(cè)鏈條同速運(yùn)轉(zhuǎn),支撐住產(chǎn)品的同時還盡量減少產(chǎn)品的磨損。中間和右側(cè)軸之間下坡面上設(shè)有滾動板,表面采用軟質(zhì)材料,增加摩擦的同時減少產(chǎn)品損傷。在橫撐上方垂直于橫撐方向上還固定有分隔條,以防止產(chǎn)品滾動下落的過程中發(fā)生橫向竄動。料斗中的產(chǎn)品在橫撐的帶動下,先爬坡上升,多余產(chǎn)品自由下落,避免產(chǎn)生堆疊,以利于分揀。產(chǎn)品繼續(xù)前行越過中間軸后進(jìn)入下坡段,落到滾動板上,攝像頭[3]安裝在正對滾動板的位置,對下落的產(chǎn)品進(jìn)行拍攝。滾動板有一定傾角,產(chǎn)品在重力作用下會自動滾落,并在橫撐的阻擋下與橫撐同步向下滾落。產(chǎn)品滾動到右側(cè)軸上方,將要下落的位置處。在滾動板尾端平行于橫撐的方向開設(shè)有一排噴氣孔,這些噴氣孔都經(jīng)過相應(yīng)的電磁閥連接著壓縮空氣,當(dāng)鏈條周期性運(yùn)轉(zhuǎn)到噴氣孔正對產(chǎn)品的位置時,PLC 現(xiàn)場控制器會控制壞果下方的若干噴氣孔對應(yīng)的電磁閥打開一小段時間,壞果會被壓縮空氣推入壞果收集斗。合格的產(chǎn)品會滾落進(jìn)入合格品收集斗,以供進(jìn)一步加工處理。一般情況下,壞果的比例較小,采用壓縮空氣噴吹的方式噴吹時間可調(diào),只要達(dá)到正常分離效果就可以,所以相應(yīng)用氣量和能耗不會太高。而且這種結(jié)構(gòu)簡單可靠,易于維護(hù),對產(chǎn)品的損傷小。

3 PLC控制原理

PLC 可編程控制器是如何控制壞果對應(yīng)噴氣孔進(jìn)行噴吹的呢?首先,在PLC 內(nèi)部,為滾動板上成排成列的產(chǎn)品設(shè)置對應(yīng)的二維變量數(shù)組,每一行數(shù)組對應(yīng)滾動板上的一排空間,數(shù)組的元素存儲了壞果對應(yīng)的噴氣孔位置號。每一排產(chǎn)品壞果數(shù)量不確定,數(shù)組的列數(shù)可以比實(shí)際壞果對應(yīng)的噴氣孔數(shù)大一些。PLC和計算機(jī)之間通過modbus(一種串行通信協(xié)議)[4]串口通信連接,計算機(jī)可以根據(jù)識別的壞果的坐標(biāo)計算出其對應(yīng)的一個或多個噴氣孔位置號,寫入PLC 的對應(yīng)數(shù)組。然后,PLC 就根據(jù)數(shù)組元素的值確定打開哪個噴氣孔的電磁閥。這些數(shù)組的地址是固定的,可以通過設(shè)定指針循環(huán)使用它們。設(shè)定一個噴吹位置指針,每轉(zhuǎn)到一個噴吹位置該指針就指向那一行數(shù)組,掃描該數(shù)組,并根據(jù)其數(shù)值執(zhí)行噴吹動作。當(dāng)某一排產(chǎn)品經(jīng)過噴吹位置后,這排產(chǎn)品對應(yīng)的一行數(shù)組就可以被清空釋放,以備再次使用。噴吹定位位置可以由鏈輪軸編碼器值或限位開關(guān)來確定。

指針的循環(huán)移動和鏈條的轉(zhuǎn)動是同步的,而攝像頭的拍攝節(jié)拍和噴吹位置指針移動的節(jié)拍是不同步的,因?yàn)榕臄z間隔距離和橫撐的間隔距離不同。計算機(jī)是如何確定攝像頭拍攝的產(chǎn)品對應(yīng)PLC 的哪一行數(shù)組的呢?如下所述。

4 計算機(jī)圖像處理識別原理

4.1 圖像采集

首先,本方案中攝像頭圖像采集機(jī)制:攝像頭采用帶外部觸發(fā)功能的攝像頭,由PLC 發(fā)送拍攝命令信號控制拍攝時間點(diǎn)。攝像頭拍攝滾動板上的產(chǎn)品要根據(jù)產(chǎn)品平均尺寸,按產(chǎn)品滾動180°即一半周長的距離拍兩張照片,也就是一個產(chǎn)品至少拍兩張照片,才能全面不遺漏地采集產(chǎn)品圖像信息。那攝像頭拍攝的間隔距離就是產(chǎn)品平均周長的一半。當(dāng)然考慮到產(chǎn)品直徑的差異,可以采用旋轉(zhuǎn)一周拍攝三張或更多作為一組,以減少或避免漏拍產(chǎn)品缺陷信息。通過更大的拍攝密度、冗余的圖像采集提高可靠性也是可以的,只要計算機(jī)能夠在規(guī)定時間內(nèi)完成圖像處理就可以。

假設(shè)產(chǎn)品平均直徑為d,攝像頭取景覆蓋m 個拍攝間隔,每m 個間隔需要拍攝p 張照片,p 張照片每兩張相鄰照片拍攝的間隔距離為D。

在鏈條移動方向上,攝像頭拍攝范圍的上下兩端p-1 個間隔距離的那幾排產(chǎn)品是剛進(jìn)入或?qū)⒁叱雠臄z范圍的部分,在這一組p 張照片拍攝的總范圍中,這一部分達(dá)不到p 張照片的要求。達(dá)到要求的是中間m-2(p-1)個間隔的區(qū)域,如圖2 所示。為了便于計算,減少復(fù)雜度,不參考上下兩組的圖像,僅通過本組照片就獲取完全的產(chǎn)品圖像信息,實(shí)際的拍攝密度:每m-2(p-1)個間隔拍攝p 張照片為一組。在這一組中,我們采用最開始的p-1 個間隔拍攝p 張照片,剩余的間隔空閑時間不拍照,剩余間隔長度為m-2(p-1)-(p-1)=m-3(p-1),如圖3 所示。在這段時間里,計算機(jī)可以接收這p 張照片進(jìn)行圖像識別處理。由于拍攝照片的指令是PLC 發(fā)出的,它會同時將這p 張照片拍攝時的編碼器值和最近的上一次噴吹時的編碼器值記錄下來,以供計算機(jī)讀取。噴吹編碼器值的更新邏輯是在這p 張照片拍攝的連續(xù)拍攝期間不更新。

圖2 攝像頭分組取像示意圖(圖示為其中一個分組)

圖3 完全拍攝區(qū)域的時間分配示意圖

這一組拍攝第一張時的編碼器值:B1。

這一組拍攝第p張時的編碼器值:T。

最近的上一次噴吹時的編碼器值:B0。

第一張照片相對上次噴吹移動的編碼器值:ΔB=B1-B0。

第p 張照片相對上次噴吹移動的編碼器值:ΔT=T-B0。

鏈輪每圈n1個齒,兩個橫撐之間有a 個鏈節(jié)。

每個鏈節(jié)節(jié)距:p1。

編碼器鏈輪每轉(zhuǎn)一圈編碼器有k個脈沖。

鏈條移動單位長度編碼器脈沖:q=k/(n1p1)。

移動一個橫撐間隔的脈沖數(shù):f=ak/n1。

拍攝照片中單位像素對應(yīng)實(shí)際拍攝物長度:u。

拍攝照片中兩相鄰橫撐相距的像素數(shù)g=ap1/u。

單位像素脈沖數(shù):r=qu=ku/(n1p1)。

上一次噴吹到拍攝第一張照片移動的像素值:L1=ΔB/r=ΔBn1p1/(ku)。

上一次噴吹到拍攝第p 張照片移動的像素值:Lp=ΔT/r=ΔTn1p1/(ku)。這是實(shí)際測量值,理論上Lp=L1+πd。

由于鏈條節(jié)距固定,攝像頭位置固定,當(dāng)不計鏈條節(jié)距誤差,每次鏈條運(yùn)轉(zhuǎn)到噴吹位置時,與噴吹位置相距固定距離的橫撐總是出現(xiàn)在照片中的相同位置,可以選取其中一根作為參考點(diǎn),在機(jī)器安裝調(diào)試好以后,將它在照片中的像素坐標(biāo)作為已知數(shù)記入程序中。參考點(diǎn)橫撐上那一排產(chǎn)品對應(yīng)PLC 中二位數(shù)組的行數(shù)也是固定的。假設(shè)噴吹位置是第一排,對應(yīng)第一行數(shù)組,參考點(diǎn)就是第h 排,對應(yīng)第h 行數(shù)組。由于第一張照片中的橫撐的運(yùn)行位置是剛從參考點(diǎn)位置移動過來的,所以如圖4 所示,第一張照片中在鏈條運(yùn)行方向上,距離參考點(diǎn)為L1像素長度的橫撐就是第h 排,其對應(yīng)PLC 第h 行數(shù)組。距離參考點(diǎn)為L1+g 像素長度的橫撐就是第h-1 排,其對應(yīng)PLC 第h-1 行數(shù)組,依此類推,第二張照片到第p 張照片代入相應(yīng)L值進(jìn)行計算即可。這樣計算機(jī)就可以將攝像頭中拍攝的產(chǎn)品圖像與PLC 中的數(shù)據(jù)對應(yīng)起來,進(jìn)而與實(shí)際機(jī)器上的產(chǎn)品對應(yīng)起來。

圖4 分組內(nèi)各張照片的像素位置偏移示意圖

4.2 產(chǎn)品圖像分割提取

計算機(jī)圖像識別部分采用OpenCV(Open Source Computer Vision Library)[5]來進(jìn)行圖像處理,這是一個跨平臺的計算機(jī)視覺庫。對產(chǎn)品缺陷的識別部分,不同種類的產(chǎn)品、不同的缺陷類型識別時的參數(shù)設(shè)置甚至是算法步驟都有很大的不同,為使系統(tǒng)具有更廣泛的適應(yīng)性,應(yīng)針對不同產(chǎn)品和缺陷提供不同的算法和參數(shù)設(shè)置,以達(dá)到不同應(yīng)用要求,這里對常見的水果黑斑爛果的識別提出一種解決的思路方法。

因?yàn)橐獙θ毕莓a(chǎn)品進(jìn)行噴吹操作,為使噴吹力的作用點(diǎn)盡量靠近質(zhì)心位置,所以要找到產(chǎn)品的質(zhì)心位置。產(chǎn)品缺陷是包含于產(chǎn)品外輪廓線內(nèi)的,所以還需要找到外輪廓線。識別出產(chǎn)品的外輪廓有利于排除背景干擾,還可以得到產(chǎn)品大小和形狀信息。在產(chǎn)品外輪廓內(nèi)按照黑斑爛果缺陷區(qū)域的HSV(Hue-Saturation-Value)色彩模型[6]顏色或灰度值范圍找到缺陷區(qū)域,同時還要避免將果梗/花萼部分誤識別為缺陷[7]。

首先要得到單個產(chǎn)品的外輪廓,按照產(chǎn)品顏色或灰度與背景的差異,進(jìn)行圖像二值化處理。按照灰度生成二值圖的方法:先將原圖像轉(zhuǎn)為單通道灰度圖像,這種圖像是將一個代表明暗的數(shù)值作為一個像素的黑白圖像,然后再用一個設(shè)定的閾值來劃分圖像區(qū)域[8],將大于等于這個值的區(qū)域設(shè)為像素單元的最大值,小于這個值的區(qū)域設(shè)為最小值。按照顏色提取目標(biāo)圖的方法:先將原圖像轉(zhuǎn)為HSV 三通道圖像,每個像素都由代表色度、飽和度、亮度的三個值來表示。每種顏色的這三個值對應(yīng)的取值范圍不同,只要三個值都落入這種顏色的對應(yīng)取值范圍,這個像素點(diǎn)的顏色就是這種顏色。產(chǎn)品可能具有多種顏色,我們可以將多種顏色提取的圖像區(qū)域合并,只要與背景顏色不同,我們就可以將產(chǎn)品按照顏色不同與背景區(qū)分開來。第二種方式的適應(yīng)性和準(zhǔn)確性更好一些。

然后再對生成的二值圖進(jìn)行腐蝕、膨脹、形態(tài)學(xué)[9]等操作去除噪點(diǎn)的干擾,利用圓形檢測[10]先找到每個產(chǎn)品的近似圓心和半徑,再以每個圓心為中心,在二值圖中進(jìn)行圓周輻射掃描檢測,掃描半徑按圓形檢測獲取半徑乘以1.5 倍左右系數(shù)適當(dāng)加大。延輻射線向外檢測,當(dāng)圖像像素由白點(diǎn)變黑點(diǎn)(最大值變?yōu)樽钚≈担r,記錄該白點(diǎn)為輪廓點(diǎn)。當(dāng)達(dá)到最大掃描半徑都是白點(diǎn),則該輻射線不記錄輪廓點(diǎn)。

最后得到單個產(chǎn)品的外輪廓線。對于相接觸的兩個產(chǎn)品或與橫撐、分隔條接觸的產(chǎn)品,如果直接用findContours 函數(shù)(OpenCV 中獲取輪廓線的函數(shù)),那么生成的輪廓線是連在一起的,非獨(dú)立的,不便于將它們分開。而本方案的這種算法獲取的輪廓線不但可以將互相接觸的產(chǎn)品物體分開,而且還可以自動地將橫撐或分隔條這種非圓物體從目標(biāo)中剔除。

4.3 圖像識別

接下來就是查找分析壞果區(qū)域:壞果缺陷或腐爛區(qū)域及果梗/花萼處的顏色與正常產(chǎn)品表面顏色不同,在上述按照產(chǎn)品HSV 顏色特征生成的二值圖中,這些區(qū)域應(yīng)該會被提取出來。但在實(shí)際應(yīng)用中,因?yàn)楣庹栈蚺臄z角度不同,某些小面積的缺陷不能被正常識別,并且這種方法很難將缺陷與果梗/花萼區(qū)分開來。馮斌、汪懋華[7]對目標(biāo)灰度剖面形狀進(jìn)行分析,來區(qū)分二者,所提取的剖面線特征信息量太少,實(shí)際應(yīng)用準(zhǔn)確性堪憂。缺陷與果梗/花萼的區(qū)分識別成為壞果識別分揀的技術(shù)難點(diǎn)與要點(diǎn)。

筆者對產(chǎn)品HSV 圖像的亮度通道進(jìn)行了研究,先對它進(jìn)行高斯去噪平滑處理,然后按照亮度高低進(jìn)行梯度分層,繪制每層的亮度等高線。為了便于觀察,采用紅、黃、綠、青、藍(lán)的顏色來繪制亮度由高到低的每一層然后疊加,形成如圖5(b)所示的亮度值效果圖,對應(yīng)圖5(a)的原圖,可以看到腐爛處與果梗/花萼處都形成了亮度“凹坑”。將每一層梯度的外輪廓標(biāo)記為青色,形成亮度的“凸臺”,將內(nèi)輪廓標(biāo)記為綠色,形成亮度“凹坑”,各層疊加后形成如圖5(c)所示的亮度等高線圖。發(fā)現(xiàn)果梗/花萼處的綠色“凹坑”標(biāo)記的底層和高層等高線圓圈的質(zhì)心是按照一個方向偏移的,偏移方向就是光照反方向,而較小面積的腐爛處的內(nèi)外層等高線圈的質(zhì)心基本不會偏移。因?yàn)楫a(chǎn)品果梗/花萼處與缺陷處的基本不同在于,前者大多是喇叭口狀較深的“凹坑”,與后者相比較,表面較為平整。所以在某個方向的光線照射下,前者在凹陷處會留下偏向光照方向的陰影,由于陰影的存在,背陰側(cè)亮度變化較平緩,向陽側(cè)亮度高低變化較陡峭,而光線照射方向?qū)笳吡炼鹊雀呔€影響較小。再者,腐爛處清晰的邊界線經(jīng)過高斯去噪處理后原本陡峭的亮度梯度變得平滑,再經(jīng)過亮度分層后形成等距變化的圓圈,不會產(chǎn)生質(zhì)心偏移的現(xiàn)象。所以在基本光照條件下,偏向一側(cè)的不均勻光照有利于這種方式的識別。通過分析亮度等高線,還發(fā)現(xiàn)果梗/花萼處的亮度等高線的長度及距離變化是比較均勻的,而較大面積缺陷的邊緣處等高線分布密集均勻而內(nèi)部稀疏不規(guī)則,體現(xiàn)在等高線圈的長度變化上是不均勻的,在某兩個相鄰的等高線圈間,他們的長度會出現(xiàn)陡然的跳變。因此,通過亮度等高線法不僅可以準(zhǔn)確找出缺陷處與果梗/花萼處的大小和位置,而且還可以將它們區(qū)分開來,從而實(shí)現(xiàn)壞果的剔除。

圖5 亮度等高線圖像處理效果圖

5 結(jié)論

通過綜合協(xié)同運(yùn)用計算機(jī)、PLC 和機(jī)械機(jī)構(gòu),找到了一種高效全自動化去除壞果的方法,并且在計算機(jī)視覺識別壞果方面提出了利用HSV 亮度等高線特征的方法來識別缺陷與果梗/花萼,效果明確,復(fù)雜度較低,可以完成過去只有通過人工才能完成的工作。同時,該系統(tǒng)提供了一種基于計算機(jī)視覺識別的農(nóng)產(chǎn)品檢測分揀的系統(tǒng)框架,它的功能不局限于去除壞果,也不局限于檢測一種產(chǎn)品。它可以根據(jù)對產(chǎn)品顏色、大小、形狀等不同視覺特征指標(biāo)的要求,在計算機(jī)中輸入或選擇相應(yīng)識別程序完成相應(yīng)分揀任務(wù),它還可以采用多級噴吹機(jī)構(gòu)或其他分揀執(zhí)行機(jī)構(gòu)擴(kuò)展其功能,實(shí)現(xiàn)多級分揀。

猜你喜歡
數(shù)組編碼器亮度
用于遙感影像亮度均衡的亮度補(bǔ)償方法
融合CNN和Transformer編碼器的變聲語音鑒別與還原
JAVA稀疏矩陣算法
設(shè)定多圈絕對值編碼器當(dāng)前圈數(shù)的方法
遠(yuǎn)不止DCI色域,輕量級機(jī)身中更蘊(yùn)含強(qiáng)悍的亮度表現(xiàn) 光峰(Appptronics)C800
轉(zhuǎn)爐系統(tǒng)常用編碼器選型及調(diào)試
舞臺機(jī)械技術(shù)與設(shè)備系列談(二)
——編碼器
JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
亮度調(diào)色多面手
更高效用好 Excel的數(shù)組公式
墨玉县| 边坝县| 磐安县| 乌恰县| 闽侯县| 星子县| 茶陵县| 嘉义县| 湖口县| 陵川县| 朝阳市| 长岭县| 绥棱县| 吴桥县| 连山| 通城县| 沈丘县| 广平县| 什邡市| 固镇县| 雅江县| 新巴尔虎右旗| 北安市| 乡城县| 鞍山市| 上思县| 河西区| 岱山县| 余江县| 庐江县| 临沭县| 乳山市| 博爱县| 安庆市| 齐齐哈尔市| 乾安县| 克拉玛依市| 景谷| 海丰县| 绥德县| 新兴县|