當(dāng)前,絕大多數(shù)第三方快遞公司為縮減成本,取消提供送貨上門服務(wù),而是將快件暫存在社區(qū)便利店、菜鳥驛站、郵局報(bào)刊亭等第三方平臺,之后由收件人自行到點(diǎn)取件。它以犧牲用戶的一點(diǎn)小便利性為代價(jià),來換取物流公司的更低配送成本,追求快遞投遞的效率和效益。這為驛站帶來持續(xù)增長的業(yè)務(wù)流量,確保了這種商業(yè)模式的可持續(xù)發(fā)展。根據(jù)阿里巴巴公司2019年的財(cái)報(bào)披露,菜鳥驛站的日均服務(wù)包裹量已經(jīng)占阿里巴巴中國零售平臺的10%以上。同時(shí),菜鳥驛站還服務(wù)了超過75%的全球速賣通訂單和超過90%的天貓國際訂單。足可見菜鳥驛站在我們這個物流大國的配送環(huán)節(jié)中正在扮演著越來越重要的角色[1]。
但是,隨著業(yè)務(wù)量的不斷增長,菜鳥驛站所面臨的問題也日益明顯:
(1) 用戶排隊(duì)時(shí)間長:工作日,由于用戶取件時(shí)間集中在下班后,此時(shí)取件業(yè)務(wù)達(dá)到高峰,用戶取件的等待時(shí)間過長,影響用戶體驗(yàn)。更有快遞包裹量大的驛站,經(jīng)常出現(xiàn)一時(shí)找不到包裹,讓客戶在旁干等著的情況,影響了用戶的滿意度。
(2) 人力成本高企:驛站的單件利潤較低,主要靠規(guī)模效益盈利。用戶取件時(shí)間扎堆導(dǎo)致驛站“忙短閑長”,人力資源配置不均,成本居高不下。
(3) 快件容易被多領(lǐng)誤領(lǐng):目前由于菜鳥驛站的取件業(yè)務(wù)多是人工處理,導(dǎo)致誤領(lǐng)多領(lǐng)、少領(lǐng)錯領(lǐng)的情況時(shí)有發(fā)生。然而,更麻煩的是出錯之后,難以查證,導(dǎo)致互相推諉指責(zé)。
為解決上述問題,本文設(shè)計(jì)了一種基于機(jī)器視覺的智能快件自提系統(tǒng),用以提高驛站的自動化程度,節(jié)省人力,提高效率,減少失誤。
本文所設(shè)計(jì)的智能快遞自取系統(tǒng)主要由快遞貨物呈列架、機(jī)器視覺矩陣模塊、位置投影提示模塊、語音播報(bào)模塊、掃碼取件二維碼及電腦軟件管理系統(tǒng)組成。其中機(jī)器視覺矩陣模塊主要由若干個可以覆蓋不同位置的高清攝像頭協(xié)同組網(wǎng),使之可以擴(kuò)大視野并提高清晰度,讓攝像頭之間相互取長補(bǔ)短。而位置投影提示模塊主要由投影儀組成,其主要作用就是可以將指示光線投影到對應(yīng)的快件身上,以幫助取件者快速定位到快件所在位置,使其可以快速取件,省掉尋找快件的耗時(shí)步驟。
系統(tǒng)的工作流程如圖1 所示:
圖1 系統(tǒng)流程框架示意圖
(1) 登記入庫:快遞到達(dá)驛站后,先逐個掃碼登記入庫。
(2) 快件上架:紙盒型快件在呈列架上的放置位置可以隨意,但要求帶條形碼的快遞面單需朝外放置。非紙盒的快件(如快遞袋等) 則要求先放入自帶條形碼的隔盒中,然后連同隔盒一起上架,同樣要求條形碼朝外放置。
(3) 快件識別:當(dāng)快件上架之后,電腦將定期自動識別哪些地方新放置了快件,并能識別出該快件的條碼、編號等系列信息。
(4) 用戶掃碼:當(dāng)用戶過來取件時(shí),只需用手機(jī)掃碼二維碼,系統(tǒng)可以根據(jù)其電話號碼等信息關(guān)聯(lián)出該用戶要取哪些快件,以及這些快件的存放位置坐標(biāo)信息。
(5) 指示取件:電腦控制投影儀將待取快件所在的位置用鮮艷顏色的光線進(jìn)行投影定位,并同步發(fā)出語音提示,通知用戶去指定的位置取件。如果快件按照指示被正常取走,則系統(tǒng)將該快件的狀態(tài)標(biāo)記為配送完成,并從臨時(shí)庫中刪除。但如果該快件超時(shí)未取或者錯取,系統(tǒng)也將發(fā)出警報(bào),提示用戶進(jìn)行糾錯。
2.1.1 快遞面單的條形碼特點(diǎn)
目前,EMS、中通、圓通等諸多公司的快遞面單上印刷的是Code128 條形碼,它可以表達(dá)ASCII0 到ASCII127 的128個字符。每個Code128 條碼由指定的相互間隔的3 個條形和3個空白(共六個單元) 代表一個字符,每個字符以一個條開始,到一個空結(jié)束。即包含:左空白區(qū)、起始符、數(shù)據(jù)符、校驗(yàn)符、終止符、右空白區(qū)。其結(jié)構(gòu)如圖2 所示。
圖2 Code128 條形碼組成實(shí)例
Code128 條形碼的顯著特征是其具備數(shù)量眾多的黑、白相間且平行的條碼,即有多條直線,且相互平行。圍繞這兩個特征,本文提出了改進(jìn)的Hough 變換檢測算法,配合機(jī)器視覺圖像處理,可以實(shí)現(xiàn)對條形碼進(jìn)行快速解碼的功能。
2.1.2 Hough 變換的直線檢測算法
在本設(shè)計(jì)中,如何低成本的同時(shí)對多個一維條形碼進(jìn)行快速識別是其核心。雖然市面上早已有很成熟的條形碼商業(yè)解碼方案。但它們還大都是要依靠人工來定位條形碼區(qū)域,然后再由機(jī)器識別。并不能自主定位,更不能同時(shí)對多個條形碼目標(biāo)進(jìn)行識別。所以對這種缺少定位且一圖多碼的場景,目前這些成熟的識別算法和工具還是難以直接移植應(yīng)用的。因而本文就提出了一種基于機(jī)器視覺的一維條形碼快速識別算法。
在算法流程上,需分別將原始圖像經(jīng)過:灰度化、二值化、邊緣檢測、圖像分塊、平行直線簇檢測、條形碼定位、條形碼解碼等步驟,最終才可以得到解碼后的各個條形碼。
其中,上述流程中的灰度化、二值化和圖像分塊3 個步驟均為圖像預(yù)處理部分,其技術(shù)算法都較為成熟,這里不做展開贅述。
當(dāng)圖像預(yù)處理和分塊之后,就要檢測塊內(nèi)是否存在平行直線簇,而在那之前,需先檢查圖片中是否包含直線,直線檢測有很多不同的算法,Hough 變換就是檢測直線較為經(jīng)典的算法之一。它是一種從直角坐標(biāo)系到極坐標(biāo)系的變換,在表達(dá)式上,一般直線在極坐標(biāo)下可以表示為:
圖3 Hough 變換的對應(yīng)關(guān)系
θ
表1 Sobel 濾波模板
同時(shí)考慮到對擁有復(fù)雜背景的圖片用Hough 變換進(jìn)行直線檢測時(shí),有可能出現(xiàn)直線信息被復(fù)雜背景信息“淹沒”的情況。因而在本設(shè)計(jì)中改進(jìn)了Hough 變換的算法,增加了背景抑制功能。即引入連通獎勵因子來突出直線特性,區(qū)分背景噪聲。即在進(jìn)行Hough 變換時(shí),根據(jù)其直線的連通性質(zhì)疊加獎勵因子。該獎勵因子可以隨著連通長度的增加而不斷累加,即單個連通鏈條越長,獎勵因子的增長就越快。而一旦遇到連通中斷,則獎勵因子歸0,需等待下一個連通區(qū)域再從零增長。從圖4 的仿真結(jié)果可以看出,增加獎勵因子后的Hough 變換抑制背景噪聲的能力明顯改善,直線信息更加突出和明確。
圖4 改進(jìn)Hough 變換的效果仿真
2.1.3 基于雙重Hough 變換的直線簇檢測算法
若檢測區(qū)域中含有Code128 條形碼,那么經(jīng)上述改進(jìn)后的Hough 變換就能檢測出多條直線,對應(yīng)ρ,( )θ 變換域里面的多個峰值,且這些峰值在ρ 和θ 的坐標(biāo)下應(yīng)該呈現(xiàn)近似直線的排列方式。此時(shí)對ρ,( )θ 變換域再進(jìn)行一次Hough 變換,則必定可以出現(xiàn)1 個極高的峰值。若該檢測區(qū)域中有N 個條形碼,則雙重Hough 變換之后也將看到N 個峰值。峰值的數(shù)量與條形碼的個數(shù)之間,是存在一一對應(yīng)關(guān)系的。因而只需簡單地經(jīng)過兩次Hough 變換,就可以直接檢測出該圖像是否有條形碼,有幾個條形碼了。
2.1.4 條形碼解碼
經(jīng)過上述步驟檢測出條形碼之后,再利用公式(1) 的對應(yīng)關(guān)系很容易就能定位到條形碼的位置,隨后就可以利用現(xiàn)有的成熟識別算法,解碼出條形碼的信息了。
考慮到菜鳥驛站的規(guī)模可大可小,對于那些面積比較大的驛站,單攝像頭的拍攝廣度和深度都很難滿足要求,從而必然影響到輸入圖片的角度和精度,不利于條形碼的定位和識別。因而在本設(shè)計(jì)中的機(jī)器視覺輸入部分,可以由一個可旋轉(zhuǎn)可移動的超高清攝像頭組成,也可以由多個次高清攝像頭來聯(lián)合組網(wǎng),這兩者在本質(zhì)上是一樣的,都能擴(kuò)大系統(tǒng)視野的覆蓋范圍。但這也帶來了視野重疊和視野缺失的問題。對于該問題,本文接下來就以多攝像頭組網(wǎng)的方式為例,來給出對應(yīng)的解決方案。
2.2.1 視野過覆蓋
當(dāng)各個攝像頭的覆蓋視野比較充分、互相重疊時(shí),圖像涉及拼接算法。本設(shè)計(jì)針對此問題做了簡化處理,在過覆蓋情況下,系統(tǒng)只需分別解碼各個攝像頭里面的條形碼后進(jìn)行匯總。由于存在視野重疊的情況,則有可能會有同一個條形碼在不同的攝像頭想都被解碼的情況。此時(shí)系統(tǒng)匯總后就將發(fā)現(xiàn)有多個相同編碼的快件等待被登記,但其實(shí)它們都是同一個條形碼,只不過被一碼多解了。所以這種情況下,多攝像頭之間的協(xié)作重點(diǎn)是劃分重復(fù)覆蓋區(qū)的條形碼的歸屬問題。當(dāng)不止一個攝像頭能解碼出了同一個條形碼,為了防止重復(fù)管理,應(yīng)將該條形碼劃歸到它們之中最適合的那個攝像頭名下進(jìn)行管理。而歸屬的劃分依據(jù),得看誰看得更清晰,就歸誰名下。本文是根據(jù)該條形碼在各個攝像頭下所占用區(qū)域的像素?cái)?shù)量大小來確定,具體的算法為:
假設(shè)各個攝像頭編號1~M,攝像頭水平的像素點(diǎn)對應(yīng)坐標(biāo)軸X 軸,垂直像素點(diǎn)對應(yīng)坐標(biāo)軸Y 軸。如圖5 所定位到的條形碼的四個區(qū)域端點(diǎn)分別標(biāo)號為1~4,其在攝像頭m 中的坐標(biāo)位置表示為(x,y)~(x,y),則該條形碼區(qū)域占用在攝像頭m的像素區(qū)域大小S可以表示為:
其中:
對于每個被一碼多解的條形碼,只要分別算出S~S的值,然后劃分到得數(shù)最大的那個攝像頭名下即可,而其它攝像頭的解碼結(jié)果將被丟棄,防止重復(fù)管理。
圖5 攝像頭重疊覆蓋區(qū)域處理方式
圖6 攝像頭矩陣的拓?fù)潢P(guān)系圖
2.2.2 視野欠覆蓋
在所有攝像頭安裝完畢后,應(yīng)該在系統(tǒng)軟件中給它們配置鄰區(qū)關(guān)系表,以便系統(tǒng)知曉各個攝像頭之間的拓?fù)潢P(guān)系,誰與誰互鄰。如示意圖6 所示,其中每個帶數(shù)字的圓圈代表一個攝像頭及編號,且實(shí)際也按圖6 中所示拓?fù)溥M(jìn)行布局。則應(yīng)配置8 號攝像頭的鄰區(qū)為:2、3、4、7、9、12、13、14。
當(dāng)系統(tǒng)在初始配置完成之后,應(yīng)該按照鄰區(qū)關(guān)系配置表,生成鄰區(qū)對。并對每個鄰區(qū)對累積內(nèi)的重復(fù)條形碼數(shù)目,經(jīng)過足夠長的時(shí)間后,若發(fā)現(xiàn)有某些鄰區(qū)對的累積數(shù)值始終為0,則說明這兩個攝像頭鄰區(qū)對從未解碼出過相同的條形碼,那么這兩個攝像頭之間很可能存在視野盲區(qū)或者解碼盲區(qū),需要重新調(diào)整攝像頭位置以增加它們之間的重疊區(qū)域。
投影提示模塊的作用是幫助取件者(用戶) 快速定位到待取快件的位置,而不用一個個去翻找快件在哪。當(dāng)用戶到達(dá)驛站進(jìn)行掃碼取件并被系統(tǒng)關(guān)聯(lián)到對應(yīng)的電話號碼后,其名下待取的快件編號及位置就全部都被調(diào)了出來。然后系統(tǒng)會自動生成一張帶有可以指示快件所在位置的圖片,由投影儀投射出來。這張圖片是由大部分的背景色(黑色) 和小部分的鮮艷顏色(紅色、藍(lán)色、綠色等) 組成的。當(dāng)系統(tǒng)正常工作時(shí),鮮艷顏色的光線會剛好投射在待取包裹身上,用戶簡單地根據(jù)光線指示就可以很快地完成取件動作。
由于投影儀和攝像頭是兩個不同的模塊,在初始化之時(shí),需要將攝像頭的空間位置與投影儀的空間位置進(jìn)行映射,以確保攝像頭讀入的條形碼位置和投影儀投射的光線位置沒有偏差。如有偏差則需校正,某個條形碼歸入到哪個攝像頭名下,則它的投影位置信息就由該攝像頭負(fù)責(zé)校正。
最后,投影模塊支持一次性定位多個快件(同一用戶可能有多個待取包裹),也支持同時(shí)定位多個用戶的快件(不同用戶可以同時(shí)并行取件),只需將不同用戶的快件位置用不同顏色的投影加以區(qū)分即可。當(dāng)然,在投影的同時(shí),系統(tǒng)也會通過語音播報(bào)提示用戶,告知顏色信息,快件數(shù)量等情況。
本文測試環(huán)境為Matlab 2016a,測試樣本來源于muenster Barcode DB 數(shù)據(jù)集,隨機(jī)選取數(shù)量100 張3 072*2 048 像素圖片的測試平均值。單個條形碼的平均耗時(shí)的對比結(jié)果如表2 所示,條形碼定位的仿真測試結(jié)果如圖7 所示:根據(jù)菜鳥驛站門店的實(shí)測數(shù)據(jù),該抽樣站點(diǎn)熟練工的平均單個快遞的尋找時(shí)間為10 秒以上。所以可以看出,本文所用解碼方法的耗時(shí)相比于一般算法是有優(yōu)勢的,而相比于人工定位的方式,其定位耗時(shí)更是可以忽略不計(jì),優(yōu)勢明顯。
表2 解碼耗時(shí)仿真結(jié)果
圖7 條形碼定位的仿真測試結(jié)果
(1) 目前菜鳥驛站等快件第三方暫存平臺的自動化程度還比較低,存在成本高,效率低下,容易出錯等問題。
(2) 本文所設(shè)計(jì)的系統(tǒng)通過成本較低的攝像頭+電腦+投影儀的設(shè)備,配合一定的算法就可以提高效率降低成本,并且有助于減少錯誤,一舉多得。