貨架物品的分割

2022-08-01 19:45:08 字數 2303 閱讀 2771

注:以後的部落格更新都將指向github主頁,

這個部落格已經申請了盡2年時間,但一直沒有更新過部落格,只是在csdn部落格中寫過幾篇關於飛信二次開群的博文,見

,現已不再更新csdn部落格,轉而全心在中撰寫我的學習經驗與生活體驗。希望能在這裡與大家一起分享與學習。下面是我給大家帶來的第一篇博文,關於貨架物品的分割與識別,這裡我只給大家分享貨架物品的分割過程,因為識別這一塊是由乙個師兄完成的。總體方案流程圖如下:

對貨架物品的識別與定位,如圖1,我們需要識別出不同的商品,同時知道相應商品的擺放位置。經過討論,我們將此問題分解成兩個子問題——分割與識別。其中分割由我來完成,識別任務交於師兄完成。

圖1任務簡述:我們需要將不同的物品分割開,需要滿足如下兩點要求,1.分割塊(patch)有且僅包含一種商品;2. 同一種商品可以被分割成不同的塊(patch),只要滿足後續的物品識別要求。

實施方法:

1. 行分割

(1)方案1. 如圖2(a)所示,沿著豎直方向,對所有紅色框內的pixels進行直方圖統計,用相鄰兩個框內的直方圖歐氏距離衡量差異,得到乙個差異曲線。如圖2(b)曲線的最低點為行分割線所外的位置。

圖2(a)                                                圖2(b)

(2)方案2. 在實驗過程中,採用方案1的分割線經常會將物品分割開,如圖2(b)中的黃色行分割線所示。於是我們的最後實驗中,採用了方案2作為行分割的方法。

和傳統的直線檢測演算法一樣,我們先從影象中檢測邊緣畫素,然後從這些邊緣畫素中分析可能存在的直線.傳統的邊緣檢測演算法,例如canny運算元,不能很好的找到所需要的邊界點.

圖3 對同一影象用不同引數進行canny邊緣檢測的結果

雖然可以調整不同引數得到不同的檢測結果,但是如圖3所示,不同引數或者導致過多與目標直線無關的邊緣被檢測到,或者導致一些和目標直線相關的重要邊緣丟失.

圖4 graph-based segmentation

注意到影象分割演算法提供了很好的影象邊緣,如圖4所示.因此我們以影象分割後不同塊之間的邊界畫素為初始條件來進行直線檢測,採用efficient graph-based image segmentation

.當然影象分割結果也和引數選取有關係,我們採用比較保守的引數,使得盡可能找到所有和目標直線相關的邊緣畫素,我們只保留水平的邊緣畫素。隨後腐蝕膨脹,再採用radon直線檢測演算法進行直線的檢測,直線角度限定在-5~+5度,行分割結果如圖5所示。

圖5. 行分割結果示意

2. 列分割

採用的方法與行分割類似,通過對比發現,直方圖統計時,採用hsv空間的h通道得到的效果較為理想,如圖6所示。 不同視窗間的差異反應了色調的變化差異,當差異達到最大時,表明此處可能是不同類別的物品的列分割線。我們將視窗間的差異通過三次樣條插值擬合的方式,擬合成一條樣條曲線,其中極大值(從圖3中看為最低點,因圖左上角為座標的原點)處為可能的列分割線,後經過一些細節上的處理,得到如圖7所示的行列分割結果。 

圖6 對不同通道進行比較

圖7 行列分割結果

email: [email protected]

貨物與產品的區別 懸臂式貨架與其他貨架有什麼區別?

倉庫重型貨架的使用現在非常的廣泛,很多的商家不知道怎麼挑選倉庫貨架,不知道那種貨架更適合自己的倉庫,那麼今天安徽貨架廠家就給大家分享一下關於懸臂式貨架的一些小知識。首先你要知道你的倉庫適不適合使用懸臂式貨架,其次就是要多去了解了解它的元件,特點以及與其他的貨架相比來說有什麼不同之處。底座,立柱,臂和...

50種物品的重量 汽車7種必備的物品

大多數車主的車上都會放置很多東西,有些可能是我們不需要,比如空瓶水 紙張等在緊急情況下並沒有真正的幫助。但是,在車輛中保留一些更重要的東西可以幫助您應對意外情況。當您處於事故 故障 惡劣天氣甚至是自然災害期間,它們都很有用。即使您晚上不開車,手電筒也可以幫助您檢視陰暗角落以及引擎蓋下的內部,在晚上,...

遊戲中物品的同步

以在揹包 倉庫中操作物品為例 維護到乙份 看到如下的流程 假設現在我在揹包中把物品從a格仔移動到b鴿子 已經有的關鍵字 物品型別 普通,特殊,消耗。等等 放入函式 使用物品型別掩碼判斷 1,2表示步驟 c1 從落點範圍判斷是否合法 比如揹包格仔是1 20,倉庫是40 60 如果滿足,傳送要移動的包給...