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