資源描述:
《包裝條碼計(jì)算機(jī)視覺識(shí)別系統(tǒng)設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、包裝條碼計(jì)算機(jī)視覺識(shí)別系統(tǒng)設(shè)計(jì)摘要:隨著商品種類的不斷豐富和信息化管理手段的應(yīng)用普及,條形碼作為現(xiàn)代生產(chǎn)、物流和銷售各環(huán)節(jié)的重要信息化手段之一,它的應(yīng)用也日益廣泛,而且,隨著我國(guó)對(duì)食品和藥品安全問題的重視,條碼作為追溯碼也開始被用于食品藥品追溯領(lǐng)域。如何對(duì)條形碼中的信息進(jìn)行提取就變得非常重要了。本文在這樣的背景下針對(duì)乳品企業(yè)的產(chǎn)品可追溯問題,設(shè)計(jì)了一套可用于乳品追溯的包裝條碼計(jì)算機(jī)視覺識(shí)別系統(tǒng)。中國(guó)8/vie 關(guān)鍵詞:條碼;乳品包裝;條碼識(shí)別;計(jì)算機(jī)視覺 中圖分類號(hào):TP391.44文獻(xiàn)標(biāo)識(shí)碼:A:10
2、07-9416(2017)02-0204-02 本系統(tǒng)硬件部分采用面陣攝像機(jī)、工控機(jī)構(gòu)成,軟件部分采用C#語言和OpenCV軟件進(jìn)行開發(fā),采用EFModel(實(shí)體框架)作為程序框架,通過搭建好的視頻采集系統(tǒng),利用外觸發(fā)啟動(dòng)攝像機(jī)采集圖像,經(jīng)過圖像預(yù)處理、識(shí)別區(qū)域的檢測(cè)和定位后,提取出待識(shí)別圖像,對(duì)于待識(shí)別圖像中的條碼和數(shù)字,分別采用相似邊距離方法進(jìn)行一維碼識(shí)別、采用逐行掃描法進(jìn)行二維碼識(shí)別,并利用模型匹配進(jìn)行數(shù)字識(shí)別。 本系統(tǒng)可綜合識(shí)別條碼以及數(shù)字識(shí)別,實(shí)驗(yàn)表明本系統(tǒng)具有較好的識(shí)別效率和識(shí)別精度,可以滿
3、足一般條件下的包裝條碼計(jì)算機(jī)識(shí)別,并且已在乳品可追溯方面取得應(yīng)用?! ?概述 在數(shù)不勝數(shù)的新型計(jì)算機(jī)科學(xué)技術(shù)出現(xiàn)之后,條形碼技術(shù)儼然已經(jīng)成為了最為經(jīng)濟(jì)實(shí)用的一種自動(dòng)識(shí)別技術(shù)。隨著時(shí)代的不斷發(fā)展和用戶需求的不斷擴(kuò)展,各種各樣的商品出現(xiàn)在我們生活中[1]。雖然條形碼的技術(shù)發(fā)展的爐火純青,但是隨著條形碼的不斷變化和創(chuàng)新,識(shí)別包裝條形碼技術(shù)已然成為我們現(xiàn)在需要不斷研究的課題?! l形碼的出現(xiàn)無疑給我們的生活帶來了方便,但?τ謖飧隹燜俜⒄溝氖貝?,對(duì)其識(shí)別的技術(shù)的效率還需要我們進(jìn)行大量的研究和開發(fā)。這也是開發(fā)本系統(tǒng)
4、的初衷。對(duì)于本系統(tǒng)來說,它既要滿足對(duì)條形碼的檢測(cè),圖像提取,校正等功能的實(shí)現(xiàn),又要實(shí)現(xiàn)所有程序自動(dòng)化的功能。該系統(tǒng)主要應(yīng)用于對(duì)海河食品包裝的識(shí)別。該系統(tǒng)利用外觸發(fā)器,實(shí)現(xiàn)將視頻轉(zhuǎn)化到靜態(tài)圖片的功能,同時(shí)通過后臺(tái)處理快速地找到該靜態(tài)圖片中條形碼的位置并對(duì)提取的條形碼以圖片的形式存儲(chǔ),然后對(duì)條形碼圖片進(jìn)行識(shí)別?! ?條形碼定位 2.1圖像采集 采集方式是利用相機(jī)和觸發(fā)器采取圖像,DirectX以流的方式讀取播放視頻。 2.2圖像預(yù)處理[2] OpenCV現(xiàn)在利用Mat類來表示圖像,在此基礎(chǔ)上進(jìn)行圖像的灰
5、度化處理[3],在灰度處理基礎(chǔ)上,進(jìn)行圖像梯度化[4]。就是把圖像作為二維離散函數(shù)。梯度化過程就是對(duì)該函數(shù)求導(dǎo)的過程。圖像邊緣的確定大多都是通過圖像梯度化處理來實(shí)現(xiàn)的。梯度化方向[5],分水平方向梯度計(jì)算和垂直方向梯度計(jì)算,或者是振幅計(jì)算。在進(jìn)行檢測(cè)前,還要使用Scharr算子先確定邊緣像素[6]的位置。接下來進(jìn)行圖像二值化,所有的像素點(diǎn)的像素值設(shè)置為0或者255。最后,采用開運(yùn)算算法進(jìn)行形態(tài)化處理?! ?.3條碼檢測(cè) 本系統(tǒng)使用Vecor容器用于存放面積;findContours函數(shù)對(duì)二值圖像中的輪廓進(jìn)
6、行檢測(cè);Point用來表示坐標(biāo)為整數(shù)的二維點(diǎn);Rect方法:用于提取旋轉(zhuǎn)的矩形圖案;angle檢查這個(gè)矩形的偏斜角度;將提取的矩形輪廓標(biāo)記在圖片上并剪截下來進(jìn)行保存?! ?.4二維碼提取 相對(duì)應(yīng)一維碼,二維碼在譯碼之前需要先對(duì)二維碼進(jìn)行分割,再進(jìn)行邊緣檢測(cè)。采用區(qū)域增長(zhǎng)的方法修正邊界。二維碼是正方形形態(tài),我們也要對(duì)其進(jìn)行圖形區(qū)域的旋轉(zhuǎn)處理,利用Hough變換來進(jìn)行處理利用二維圖像的投影變換。然后對(duì)拍攝的圖像進(jìn)行Hough變換,根據(jù)4條邊界線進(jìn)行位置旋轉(zhuǎn)。也可以使用仿射變換。即先對(duì)一個(gè)向量空間進(jìn)行一次線性變
7、換并根據(jù)該變化做出相對(duì)性的平移,使其變成另一個(gè)向量空間。該變化方法包括水平的平移、圖像的縮放、圖像的旋轉(zhuǎn)等功能。 2.5數(shù)字定位方法 商品包裝上的條碼一般都是預(yù)印刷的,許多商品的生成日期和使用日期也需要入庫進(jìn)行保存,但是由于條碼印刷成本較高,所以廠家通常采用的方式是以數(shù)字形式將商品的生成日期和使用日期印刷在包裝袋上。因而,本系統(tǒng)添加了數(shù)字識(shí)別功能。數(shù)字技術(shù)識(shí)別的主要核心字符分割技術(shù):切割數(shù)字區(qū)域后,進(jìn)行字符的切割,由于該圖像還是灰度圖像,所以我們?cè)谇懈钋斑€要進(jìn)行一些圖像處理。具體過程:灰度拉伸、二值化、
8、傾斜校正以及字符分割。圖像以海河牛奶的包裝袋為例。由于信息過多,一個(gè)條形碼無法將全部信息存儲(chǔ),所以會(huì)在包裝正面的空白位置加些數(shù)字,以此來完善條形碼內(nèi)容不足的地方?! 【唧w分割算法如圖1所示。將截取后的整個(gè)圖片進(jìn)行自上而下的逐行對(duì)比,提取黑色的字符部分,直到整幅圖像完畢。已列為高度基準(zhǔn)進(jìn)行掃描,進(jìn)行從左到右依次排查,直到全部圖片掃面完畢。由于印刷問題,數(shù)字區(qū)域可能有小圓點(diǎn),采用的是比例方法運(yùn)算將這些小點(diǎn)清除,把每個(gè)