倉(cāng)儲(chǔ)物料數(shù)量的檢測(cè)問(wèn)題是倉(cāng)儲(chǔ)監(jiān)管部門(mén)要解決的重要問(wèn)題。由于物料倉(cāng)儲(chǔ)的地域分散性和監(jiān)管力量的缺乏, 以及在進(jìn)行人工監(jiān)管時(shí)所造成的偷盜、監(jiān)守自盜等現(xiàn)象, 迫切需要有效方法進(jìn)行智能監(jiān)管與稽核。倉(cāng)儲(chǔ)中存儲(chǔ)的物料多數(shù)為顆粒、液態(tài)流體或半流體性質(zhì)的物質(zhì), 傳統(tǒng)的測(cè)量方法主要使用卷尺和坡度儀等進(jìn)行物料體積的測(cè)量, 這樣耗費(fèi)了大量的人力、物力, 而且測(cè)量方法原始, 效率低下, 歷時(shí)長(zhǎng), 耗費(fèi)巨大, 且測(cè)算精度不高。如糧倉(cāng)儲(chǔ)糧數(shù)量的檢查, 其方法在信息技術(shù)高速發(fā)展的今天顯得十分落后[1]。目前常用的方法主要是非接觸智能測(cè)量方法。Fan Chao等[2]研究使用基于CAN-bus的糧倉(cāng)儲(chǔ)量監(jiān)控系統(tǒng), 在糧倉(cāng)中布置壓力傳感器網(wǎng)絡(luò), 根據(jù)壓力測(cè)量值擬合出糧食的數(shù)量, 具有一定可靠性與應(yīng)用價(jià)值, 然而存在誤差以及龐大的網(wǎng)絡(luò)復(fù)雜性問(wèn)題, 并且大量傳感器的使用使得成本與維護(hù)費(fèi)用較高。為了實(shí)現(xiàn)對(duì)糧食的有效監(jiān)管與稽核, 林鷹等[3]提出了矩形標(biāo)尺的圖像識(shí)別方法, 利用局部邊緣檢測(cè)算子及迭代閥值算子分割算法相結(jié)合進(jìn)行矩形標(biāo)尺判定和裝糧高度計(jì)算, 算法簡(jiǎn)單, 有良好的邊緣檢測(cè)效果, 但處理后的某些邊緣仍有一定寬度, 對(duì)于標(biāo)尺測(cè)量存在較大誤差, 而且單靠標(biāo)尺的測(cè)量方法難以滿(mǎn)足實(shí)際測(cè)量應(yīng)用。Lin Ying等[4]提出一種散裝糧糧食數(shù)量的智能稽核方法, 通過(guò)在糧倉(cāng)內(nèi)壁安裝攝像頭并且設(shè)置基準(zhǔn)標(biāo)識(shí)點(diǎn), 結(jié)合邊緣檢測(cè)與標(biāo)記識(shí)別技術(shù)進(jìn)行圖像測(cè)量, 然后根據(jù)倉(cāng)儲(chǔ)三維重構(gòu)的幾何模型的計(jì)算方法達(dá)到了測(cè)量與監(jiān)管效果, 然而幾何模型本身存在近似計(jì)算誤差, 而且缺乏實(shí)際驗(yàn)證。在研究上述測(cè)量方法的基礎(chǔ)上, 本文通過(guò)建立基于空間編碼的倉(cāng)體標(biāo)識(shí)模型, 結(jié)合圖像處理分析算法設(shè)計(jì)實(shí)現(xiàn)了一種用于倉(cāng)儲(chǔ)中物料體積儲(chǔ)量的測(cè)量方法。
空間二進(jìn)制編碼是向被測(cè)物投影一系列柵狀的由黑白條紋構(gòu)成的圖案, 將這些編碼圖案在被測(cè)物表面投影所形成的條紋圖像進(jìn)行組合, 把被測(cè)物空間的區(qū)域分割成一系列條狀、狹窄的子區(qū)域, 每個(gè)子區(qū)域有唯一的一個(gè)二進(jìn)制編碼標(biāo)識(shí)[5]。基于空間編碼的倉(cāng)體標(biāo)識(shí)設(shè)計(jì), 必須滿(mǎn)足空間編碼的規(guī)則: (1) 區(qū)域分割后, 每個(gè)區(qū)域的編碼必須是獨(dú)立和唯一的; (2) 編碼要求滿(mǎn)足相鄰區(qū)域編碼間的Hamming距離均是1; (3) 編碼方案要滿(mǎn)足采樣定理, 并且受硬件設(shè)備分辨率的限制。
常見(jiàn)的倉(cāng)儲(chǔ)類(lèi)型主要有房式倉(cāng)和淺圓倉(cāng)或筒倉(cāng)等, 根據(jù)這些倉(cāng)儲(chǔ)形狀分別建立基于空間編碼的長(zhǎng)方體和圓柱體兩種倉(cāng)儲(chǔ)的倉(cāng)體標(biāo)識(shí)模型, 如圖1所示。
(1) 如圖1 (a) 所示, 當(dāng)倉(cāng)儲(chǔ)外形屬于長(zhǎng)方體模型時(shí), 其4個(gè)側(cè)面和底面設(shè)有黑白相間的方格標(biāo)識(shí), 其中相鄰側(cè)面兩側(cè)邊部的一列方格分割為邊長(zhǎng)等于原長(zhǎng)度一半的黑白相間小方格, 作為起始標(biāo)識(shí)。
(2) 如圖1 (b) 所示, 當(dāng)倉(cāng)儲(chǔ)外形屬于圓柱體模型時(shí), 進(jìn)料口位于頂部中央, 在進(jìn)料口下底面的垂直投影處設(shè)有豎直的中央標(biāo)尺。所述倉(cāng)儲(chǔ)的環(huán)形內(nèi)側(cè)設(shè)有黑白相間的方格標(biāo)識(shí), 將圓形倉(cāng)底的某一條直徑兩端沿軸向延伸的兩列方格分割為邊長(zhǎng)等于原長(zhǎng)度一半的黑白相間小方格, 并且作為起始標(biāo)識(shí);中央標(biāo)尺設(shè)有與起始標(biāo)識(shí)的邊長(zhǎng)相等的黑白相間的條紋標(biāo)識(shí)。
該方法主要針對(duì)上述長(zhǎng)方體與圓柱體倉(cāng)儲(chǔ)模型, 合理布置多個(gè)攝像頭進(jìn)行編碼標(biāo)識(shí)的圖像拍照。照射到倉(cāng)壁的光反射回?cái)z像頭, 圖像呈現(xiàn)出灰度不同且對(duì)比鮮明的信息, 由于每個(gè)編碼方格距離攝像頭的距離不同, 所以所呈現(xiàn)的圖像信息就不同。攝像裝置每隔一定周期實(shí)時(shí)采集圖像信息, 能夠檢測(cè)到物料數(shù)量及其變化量。
對(duì)于長(zhǎng)方體與圓柱體模型的倉(cāng)儲(chǔ), 其編碼格式與圖1所示相同。其中長(zhǎng)方體倉(cāng)儲(chǔ)的倉(cāng)壁與倉(cāng)底粉刷以邊長(zhǎng)分別為1.0和0.5m的黑白方格;圓柱體倉(cāng)儲(chǔ)的倉(cāng)壁粉刷以1.0 m為邊長(zhǎng)的黑白相間的方格, 而且中央標(biāo)尺上設(shè)有0.5m的黑白相間的條紋標(biāo)識(shí)。如圖2所示平房倉(cāng)與筒倉(cāng)內(nèi)的攝像頭分布示意圖, 攝像頭固定放置平房倉(cāng)倉(cāng)頂?shù)乃拿? 分別拍攝其對(duì)應(yīng)墻壁的圖像, 并且設(shè)定拍攝圖像的序列號(hào);在筒倉(cāng)中攝像頭固定放置在錐體倉(cāng)頂面的同一條母線上, 分別拍攝被兩條起始標(biāo)識(shí)分割為兩等份的倉(cāng)壁及標(biāo)尺, 并設(shè)定圖像的序列號(hào)。
圖2 平房倉(cāng)與筒倉(cāng)中的攝像頭分布示意圖Fig.2 Schematic diagram of cameras deployed in horizontal bin and sil 下載原圖
合理調(diào)整并固定攝像頭拍照角度, 未裝入物料前進(jìn)行初始化拍照, 在實(shí)際測(cè)量中每隔一定周期采集倉(cāng)內(nèi)的實(shí)測(cè)圖像, 并上傳至監(jiān)控中心進(jìn)行圖像的分析處理。該圖像測(cè)量的算法程序流程圖如圖3所示。
(1) 圖像歸一化。在進(jìn)行圖像處理前對(duì)初始化圖像與實(shí)測(cè)圖像進(jìn)行歸一化處理。目前常用的歸一化算法是基于矩的歸一化, 其過(guò)程為坐標(biāo)中心化、x-shearing歸一化、縮放歸一化和旋轉(zhuǎn)歸一化。為使歸一化過(guò)程簡(jiǎn)單化, 將放射變換矩陣分解為3個(gè)簡(jiǎn)單變化矩陣相乘的形式:
其中:α, β, δ∈R, ε∈ (0, π], 且保證分解的唯一性[6]。從左至右, 分別把3個(gè)變換矩陣稱(chēng)之為圖像的剪切、縮放與旋轉(zhuǎn)變換。角點(diǎn)對(duì)于旋轉(zhuǎn)有很好的抵抗性, 所以只需坐標(biāo)、shearing或縮放歸一化即可。
(2) 預(yù)處理。為了消除噪聲又要保持圖像的細(xì)節(jié), 使用非線性濾波算法進(jìn)行圖片的預(yù)處理。對(duì)圖像進(jìn)行中值濾波處理, 可以去除脈沖噪聲、椒鹽噪聲的同時(shí)保留圖像的邊緣細(xì)節(jié)。
(3) 角點(diǎn)檢測(cè)。Harris算子與MIC算子作為角點(diǎn)檢測(cè)常用算法, Harris算子應(yīng)對(duì)圖像能力更強(qiáng), 能夠提取出較好的角點(diǎn)信息, 同時(shí)具有旋轉(zhuǎn)不變性, 使用Harris角點(diǎn)檢測(cè)算法分別對(duì)初始圖像與實(shí)測(cè)圖像進(jìn)行處理。Harris算子受信號(hào)處理中自相關(guān)函數(shù)的啟發(fā), 利用自相關(guān)聯(lián)系的矩陣M (M也可以考慮成一個(gè)高斯窗或矩形窗) 在圖像上順序移動(dòng)。由模板窗口取得原圖像衍生出2×2的局部結(jié)構(gòu)矩陣:
其中:ω (x, y) 為窗口函數(shù), Ix、Iy分別為圖像中的一點(diǎn)沿x軸與y軸的梯度。對(duì)于該模板矩陣取特征值λ1和λ2, 建立度量函數(shù)有
其中:tr M=λ1+λ2, det M=λ1λ2, k為經(jīng)驗(yàn)值, 一般取0.04。根據(jù)R是否大于0, 即可判斷黑白方格角點(diǎn), 提取出角點(diǎn)的像素坐標(biāo)[7,8]。
(4) 數(shù)據(jù)處理與角點(diǎn)配準(zhǔn)。初始化圖片與實(shí)測(cè)圖片經(jīng)過(guò)角點(diǎn)檢測(cè)后進(jìn)行角點(diǎn)像素坐標(biāo)的判斷、分析與篩選等數(shù)據(jù)處理。在判斷編碼方格的大小時(shí), 檢測(cè)每一個(gè)方格的前一個(gè)距離攝像頭近的方格長(zhǎng)度, 若其長(zhǎng)度差不超過(guò)正常范圍, 則認(rèn)定為整方格大小;若判斷方格不足一格長(zhǎng)大小, 則根據(jù)圖像像素與實(shí)際方格大小的比例關(guān)系進(jìn)行三維空間重建, 并且以初始化圖像作為參考圖像進(jìn)行基于角點(diǎn)的圖像配準(zhǔn)處理, 計(jì)算求得該編碼方格高度。
設(shè)一面?zhèn)}壁標(biāo)識(shí)共有n列, H為編碼方格的總高度, i、j分別表示行列序號(hào), x表示滿(mǎn)足一整方格大小的個(gè)數(shù), 且i=x+1。設(shè)定方格邊長(zhǎng)1m, a為實(shí)測(cè)圖像中不足一整格的角點(diǎn)縱坐標(biāo), 即 (i+1) 行角點(diǎn), c為初始化圖像中同一行的角點(diǎn)縱坐標(biāo), b為a或c的前一行的角點(diǎn)縱坐標(biāo), 求得物料高度
(5) 體積儲(chǔ)量計(jì)算。對(duì)于長(zhǎng)方體倉(cāng)儲(chǔ)要求物料平堆堆放時(shí), 如式 (5) 計(jì)算求得體積儲(chǔ)量。根據(jù)倉(cāng)壁角點(diǎn)信息容易求得倉(cāng)壁的長(zhǎng)度與寬度分別為M、N, 假設(shè)采集到的倉(cāng)內(nèi)堆放物料覆蓋住的四側(cè)倉(cāng)壁的高度分別為i1、i2、i3、i4, 當(dāng)前物料體積
對(duì)于圓柱體倉(cāng)儲(chǔ), 物料從上方中央倒入, 從下方開(kāi)口處輸出, 物料形狀多為圓柱形或圓柱形與椎形的組合體, 易知倉(cāng)儲(chǔ)底面半徑為r, 儲(chǔ)糧高度為H (標(biāo)識(shí)高度) 。假設(shè)采集到倉(cāng)壁標(biāo)識(shí)的高度與中央標(biāo)桿高度分別為i1、i2, 當(dāng)前物料體積
以糧倉(cāng)作為模擬實(shí)驗(yàn)的對(duì)象, 進(jìn)行倉(cāng)儲(chǔ)儲(chǔ)量測(cè)量的模擬實(shí)驗(yàn), 能夠達(dá)到實(shí)際糧倉(cāng)實(shí)驗(yàn)的效果。選取長(zhǎng)方體木箱 (40cm×32cm×24cm) 模擬平房倉(cāng), 用沙子替代糧食, 裝入沙子的總體積為21 120cm3。使用CAD制作編碼標(biāo)識(shí)圖, 并貼于木箱內(nèi)壁, 設(shè)定大小方格標(biāo)識(shí)的邊長(zhǎng)分別為4、2cm。圖像采集系統(tǒng)由PC機(jī)和IP/Network Camera組成 (內(nèi)置CMOS傳感器, VGA為640×480) , 圖像處理使用Matlab仿真。
攝像頭距離木箱垂直高度7cm處放置, 調(diào)整一定角度首先進(jìn)行初始化拍照, 然后在裝入沙子且平堆堆放后進(jìn)行實(shí)測(cè)拍照, 并以BMP格式保存。使用Matlab設(shè)計(jì)基于空間編碼的圖像測(cè)量算法進(jìn)行圖像處理, 初始化圖像與實(shí)測(cè)圖像經(jīng)過(guò)Harris角點(diǎn)檢測(cè)并作截圖處理后的效果如圖4所示。
通過(guò)程序判斷、分析和篩選可以選取多組數(shù)據(jù), 選取3行3列用于計(jì)算的角點(diǎn)像素坐標(biāo), 數(shù)據(jù)如表1, 根據(jù)式 (4) 計(jì)算沙子高度
已知木箱的長(zhǎng)寬大小, 由式 (5) 可計(jì)算出該長(zhǎng)方體沙堆的體積為21 327.36cm3, 絕對(duì)誤差為207.36cm3, 相對(duì)誤差為0.98%。該實(shí)驗(yàn)結(jié)果達(dá)到了滿(mǎn)意的效果, 其測(cè)量誤差主要與人為平堆所造成的誤差有關(guān)。大量實(shí)驗(yàn)結(jié)果顯示, 在已知糧食密度的條件下, 計(jì)算的糧食數(shù)量誤差不高于3%, 符合糧油管理部門(mén)的規(guī)定。
該方法的測(cè)量精度直接與編碼方格大小、圖像算法以及硬件設(shè)備分辨率有關(guān), 相比于上述的智能測(cè)量方法具有算法簡(jiǎn)單、效率高、精度高等特點(diǎn)。在圖像分辨率限制的范圍內(nèi), 編碼方格越小, 測(cè)量精度就越高。為了進(jìn)一步提高精度, 作角點(diǎn)檢測(cè)的亞像素級(jí)坐標(biāo)改進(jìn), 達(dá)到了較高精度的測(cè)量效果。
基于空間編碼的倉(cāng)儲(chǔ)儲(chǔ)量測(cè)量方法通過(guò)設(shè)計(jì)基于空間編碼的倉(cāng)體標(biāo)識(shí)模型, 運(yùn)用圖像測(cè)量算法計(jì)算倉(cāng)儲(chǔ)體積儲(chǔ)量, 實(shí)現(xiàn)了有效監(jiān)管與實(shí)際測(cè)量。該測(cè)量方法不僅為以后進(jìn)一步研究提供了可靠性參考, 而且具有低成本、高效、算法簡(jiǎn)單等優(yōu)點(diǎn), 易于在倉(cāng)儲(chǔ)監(jiān)測(cè)應(yīng)用中被普及。
權(quán)所有©:上海陽(yáng)合儲(chǔ)運(yùn)
專(zhuān)業(yè)承接上海倉(cāng)庫(kù)租賃、上海倉(cāng)儲(chǔ)配送物流、上海電商倉(cāng)儲(chǔ)企業(yè)服務(wù)與微笑同在"的先進(jìn)理念不斷發(fā)展壯大。