国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python的硬幣識別系統(tǒng)設(shè)計與實現(xiàn)

2017-11-02 20:05張永付張鵬
軟件導(dǎo)刊 2017年10期

張永付++張鵬

摘要:針對目前硬幣識別系統(tǒng)使用成本高、硬件要求高等問題,設(shè)計了一種識別率高、成本低的硬幣識別系統(tǒng)。系統(tǒng)通過Python與OpenCV結(jié)合數(shù)字圖像處理技術(shù)對1元、5角、1角三種硬幣進行識別。首先通過顏色通道轉(zhuǎn)換法實現(xiàn)5角硬幣識別,然后經(jīng)過高斯去噪、二值化、自適應(yīng)二值化、均值濾波對原始圖像進行處理,將處理后的圖像通過提取1角與1元硬幣邊緣輪廓的周長作為分類特征,利用機器學(xué)習(xí)方法,對兩種硬幣15張圖像進行訓(xùn)練、5張圖像進行測試。結(jié)果表明,系統(tǒng)對5角硬幣識別準(zhǔn)確率高達100%,對1元與1角硬幣識別率達到80%。經(jīng)測試證明,該系統(tǒng)既保持了高效的識別率,又減少了硬件依賴,有一定的實際應(yīng)用價值。

關(guān)鍵詞:硬幣識別;Python;OpenCV

DOIDOI:10.11907/rjdk.171783

中圖分類號:TP319文獻標(biāo)識碼:A文章編號:16727800(2017)010012903

0引言

硬幣在生活中應(yīng)用非常廣泛,硬幣識別大致分為面值識別與真假鑒別。在硬幣清分機、公交車及自動售貨機的設(shè)計與實現(xiàn)中,通過獲取硬幣圖像對面值進行識別是研究的關(guān)鍵問題。

目前國內(nèi)采用的硬幣面值識別法有圖像法及電渦流傳感器法等[12]。傳統(tǒng)的硬幣識別主要是機械識別,由于選取特征過程的影響,很難保證識別準(zhǔn)確率。美國Mahesh等[3]設(shè)計了一個帶旋盤的結(jié)構(gòu),通過光探測器檢測與計算機編碼器的編碼脈沖識別硬幣。付麗等[4]設(shè)計了一種基于光電開關(guān)的硬幣識別系統(tǒng),大幅度提高了識別準(zhǔn)確率。莫磊[5]針對硬幣準(zhǔn)確識別與偽幣檢測,利用EDA技術(shù)、電子信息技術(shù)、計算機技術(shù)、傳感器技術(shù)、智能控制技術(shù)等對硬幣識別進行了研究,通過改善傳統(tǒng)電渦流分析法,加入一定算法研究達到了提高識別率的效果。劉藝柱[6]通過分析電渦流傳感器的基本原理,提出了利用雙路電渦流傳感器對硬幣材質(zhì)、厚度等參數(shù)進行檢測的思路,硬幣識別檢測率改善效果明顯,相比付麗等人的方法技術(shù)更加前沿,準(zhǔn)確高效。這些方法識別率高,但設(shè)計復(fù)雜,嚴(yán)重依賴硬件組件、成本較高。人工智能的發(fā)展,使得通過圖像技術(shù)進行物體識別發(fā)展迅速[7]。本系統(tǒng)通過利用數(shù)字圖像處理技術(shù)對圖像進行預(yù)處理,使得提取圖像的特征變得簡單,準(zhǔn)確率得到有效提高。Python是一種面向?qū)ο蟮慕忉屝陀嬎銠C程序設(shè)計語言,具有豐富與強大的庫,已經(jīng)成為繼JAVA-C++之后的第三大語言[8]。由于Opencv內(nèi)置強大的數(shù)字圖像處理函數(shù),系統(tǒng)設(shè)計過程利用軟件編程思想減少了對硬件的依賴,做到成本低、識別率高、復(fù)雜性低。并且通過機器學(xué)習(xí)思想,對1元與1角硬幣分別選用15張?zhí)幚砗蟮膱D像進行訓(xùn)練,5張進行測試,檢測結(jié)果表明該系統(tǒng)識別準(zhǔn)確率高、穩(wěn)定性好。

1系統(tǒng)設(shè)計

1.1系統(tǒng)總體框架

圖1為系統(tǒng)框架,系統(tǒng)功能分為5個部分:圖像采集、顏色通道轉(zhuǎn)換、圖像預(yù)處理、特征提取、訓(xùn)練測試。

1.2硬幣識別工作流程

先進行圖像采集,通過讀取圖像進行顏色通道轉(zhuǎn)換,實現(xiàn)5角硬幣識別,再對1元與5角硬幣圖像進行預(yù)處理;接下來進行特征提取,提取輪廓周長信息;提取15張圖像進行訓(xùn)練,最后給定圖像進行測試。系統(tǒng)流程如圖2所示。

2功能設(shè)計與實現(xiàn)

2.1圖像采集

首先,在簡單環(huán)境拍攝得到原始圖像。簡單環(huán)境是指:拍攝鏡頭距離桌面背景15cm正上方,桌面背景為黑色,室內(nèi)環(huán)境,選擇最佳聚焦效果進行拍攝。既保證圖像質(zhì)量,又為系統(tǒng)識別硬幣的準(zhǔn)確率奠定基礎(chǔ)(見表1)。

2.2顏色通道轉(zhuǎn)換

由于顏色提取過程中RGB模型易受到光照影響,因此將圖像由RGB轉(zhuǎn)換到HSV顏色空間模型,更易提取顏色特征。系統(tǒng)繪制了3種硬幣的顏色空間直方圖(見圖3-圖5,彩圖見封二),王洪建等[911]研究得出H與S分量包含了圖像的彩色信息,本系統(tǒng)采用該思想抽取H與S分量特征值,識別出5角硬幣。

圖3-圖5中藍色與綠色分別代表了H與S分量。可以得出5角硬幣在H與S明顯區(qū)別于其它硬幣,因而通過顏色空間轉(zhuǎn)換方法可以對5角硬幣進行識別。具體代碼如下:

defhist(img):

hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

color=('b','g','r')

fori,col in enumerate(color):

hist=cv2.calcHist([hsv],[i],None,[256],[0,256])

plt.plot(hist)

plt.xlim([0,256])

plt.show()

2.3圖像預(yù)處理

從圖3與圖5可以看出,由于1角硬幣與1元硬幣在HSV顏色曲線的H分量上相似較大,因而無法進行識別,需要利用數(shù)字圖像處理技術(shù)進行進一步識別。首先針對原始圖像進行處理(見圖6),經(jīng)過高斯去噪、二值化、自適應(yīng)二值化、均值濾波處理方法,得到完整的邊緣輪廓(見圖7、圖8)。

2.4特征提取

從圖6-圖7可以清楚看到要提取的特征輪廓,利用OpenCV自帶findContours函數(shù)尋找輪廓,該函數(shù)的第二個返回值是一個 Python列表,存儲了圖像的所有輪廓。再調(diào)用Perimeter=cv.2arcLength(cnt,true)方法計算閉合圓形輪廓周長,得到1角、1元周長分別是364mm、468mm。代碼如下:

defbianyuan(img):

equ=cv2.GaussianBlur(img,(5,5),0)

ret,thresh1=cv2.threshold(equ,130,255,cv2.THRESH_BINARY)endprint

th3=cv2.adaptiveThreshold(thresh1,255,cv2.ADAPTIVE_THRESH_MEAN_C,\

cv2.THRESH_BINARY,7,2)

median = cv2.medianBlur(th3, 3)

plt.subplot(4,1,1),plt.imshow(img,cmap = 'gray')

plt.subplot(4,1,2),plt.imshow(th3,cmap = 'gray')

plt.subplot(4,1,3),plt.imshow(median,cmap='gray')

plt.show()

returnmedian.copy()

2.5訓(xùn)練測試

為了保證1角與1元硬幣識別的準(zhǔn)確性與穩(wěn)定性,將原始圖像經(jīng)過旋轉(zhuǎn)不同角度,得到15張圖像。這15張圖像作為訓(xùn)練數(shù)據(jù)集,通過同樣的方法計算得到輪廓周長并存儲在數(shù)組中。訓(xùn)練過程得到了所有圖像的周長信息,運用訓(xùn)練好的模型對給定任意一張1角或1元硬幣進行測試。系統(tǒng)計算出該圖像的輪廓周長,通過傳遞參數(shù)判斷該周長屬于1角或1元模型中的哪類,給出判斷結(jié)果。系統(tǒng)隨機選取了5張圖片進行測試,從測試結(jié)果得出準(zhǔn)確率達到80%。1張失敗的原因是硬幣邊緣磨損,圖像處理后沒有形成閉合區(qū)域輪廓。具體代碼如下:

deffindPlateNumberRegion(img):

contours,hierarchy = cv2.findContours(img,1, 2)

cnt=contours[0]

perimeter = cv2.arcLength(cnt,True)

return round(perimeter)

def test(result):

print ('testRating:'result)

def main():

record=[]

fori in range(15):

img=image_read()

img=bianyuan(img)

a=findPlateNumberRegion(img)

test(a)

record.append(a)

print record

3系統(tǒng)測試

系統(tǒng)測試的目的主要是確保系統(tǒng)運行穩(wěn)定,能夠滿足實際需求。并且對三種類型硬幣有穩(wěn)定、高效的識別率。經(jīng)過對15張圖像訓(xùn)練,5張進行測試,測試結(jié)果如表2所示。

3結(jié)語

本文基于Python的硬幣識別系統(tǒng)設(shè)計與實現(xiàn),詳細給出了該系統(tǒng)的結(jié)構(gòu)圖、功能流程圖及各個功能實現(xiàn)的核心代碼。通過Python語言與OpenCV強大的函數(shù)庫及語言優(yōu)勢,利用數(shù)字圖像處理技術(shù)與機器學(xué)習(xí)思路完成本系統(tǒng)開發(fā)工作。闡述了系統(tǒng)中使用的關(guān)鍵技術(shù),包括圖像處理技術(shù)與對象識別技術(shù),實現(xiàn)了硬幣面值識別。機器視覺發(fā)展為本系統(tǒng)設(shè)計奠定了一定基礎(chǔ),將此運用于解決生活中常見問題,是互聯(lián)網(wǎng)時代背景下的流行趨勢。

參考文獻參考文獻:

[1]畢曉君,孫曉霞.基于蟻群算法的硬幣識別研究[J].哈爾濱工程大學(xué)學(xué)報,2006,27(6):882885.

[2]傅霖來.基于機器視覺下的硬幣識別系統(tǒng)[D].天津:天津大學(xué),2009.

[3]L CHUGANI MAHESH, R SAMANT ABHAG, MICHAEL CERRA. LabVIEW signal processing[M]. Upper Saddle Rive:Prentice Hall PTR,1998.

[4]付麗.基于光電開關(guān)的硬幣面值識別系統(tǒng)[D].西安:西安電子科技大學(xué),2014.

[5]莫磊.基于FPGA的硬幣識別器的研究[D].成都:電子科技大學(xué),2008.

[6]劉藝柱.高準(zhǔn)確率硬幣識別裝置的設(shè)計與實現(xiàn)[D].南京:南京理工大學(xué),2013.

[7]王陽萍,杜曉剛,趙庶旭,等.醫(yī)學(xué)影像圖像處理[M].北京:清華大學(xué)出版社,2012.

[8]潘俊勇.易度PaaS云平臺開發(fā)技術(shù)內(nèi)幕[C].上海:中國PyConChina2011大會,2011.

[9]王洪建.基于HSV顏色空間的一種車牌識別定位和分割方法[J].儀器儀表學(xué)報,2005(8):2628.

[10]郭捷,施鵬飛.基于顏色和紋理分析的車牌定位方法[J].中國圖像圖形學(xué)報,2002,7A(5):472 475.

[11]張引,潘云鶴.彩色汽車圖像牌照定位新方法[J].中國圖像圖形學(xué)報,2002,7A(5):374377.

責(zé)任編輯(責(zé)任編輯:何麗)endprint