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

?

基于Sobel算子的銀行卡號識別研究*

2021-09-15 08:35徐毓凱楊國平
計算機與數(shù)字工程 2021年8期
關(guān)鍵詞:算子灰度輪廓

徐毓凱 楊國平

(上海工程技術(shù)大學機械與汽車工程學院 上海 201620)

1 引言

隨著社會和互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,網(wǎng)上銀行已逐漸成為人們?nèi)粘I畈豢苫蛉钡囊徊糠?。移動支付也成為目前社會主流的消費方式[1],比如微信支付、支付寶等。隨之我們會將銀行卡和各種移動支付軟件進行綁定。在實際綁定過程中,目前的常用方式大多還是用戶自己手動輸入銀行卡號碼,然而手動輸入十幾位銀行卡號很慢且容易出錯,并且對部分視力不佳的中老年人很不友好,影響用戶體驗。因此,銀行卡卡號的自動識別功能將會給人們帶來很大的便利。

雖然目前的字符識別技術(shù)發(fā)展已較為成熟,比如文本識別[2~4]、車牌識別等[5~6],但銀行卡識別技術(shù)還沒有廣泛應用于各大移動支付平臺中。針對這一問題和現(xiàn)狀,本文提出了一種基于Sobel算子的銀行卡識別算法。首先用基于Sobel邊緣檢測的方法提取銀行卡輪廓,然后獲取銀行卡卡號的數(shù)字區(qū)域,最后對數(shù)字區(qū)域的銀行卡號進行識別。

2 Sobel邊緣檢測

Sobel算子是圖像處理中的算子之一[7~10],在影像處理和計算機視覺領(lǐng)域中常被用來做邊緣檢測。Sobel算子最早由美國科學家Irwin Sobel和Gary Feldman于1968年在史丹佛大學的人工智能實驗室(SAIL)提出。為了紀念他們所做的貢獻,用他們的名字命名了該算子。概念上,Sobel算子就是一個小且是整數(shù)的濾波器對整張圖片在水平及垂直方向上做卷積,因此它所需的運算資源相對較少。另一方面,對于圖像中頻率變化較高的地方,它所得的梯度的近似值也比較粗糙。

目前在銀行卡的輪廓提取中較為常用的方法為基于Canny算子的邊緣檢測[11~13],Canny算子的運用場景較多,它其中有很多參數(shù),通過對這些參數(shù)的變化會對算法的性能產(chǎn)生影響。本文的銀行卡輪廓定位利用Sobel算法替代Canny算法。獲取數(shù)字區(qū)域過程中采用增強對比度再利用特定閾值獲取數(shù)字區(qū)域替代了之前Canny算法的邊緣檢測。雖然Sobel算法只能檢測水平和垂直方向的邊緣,對于紋理較為復雜的圖像,其邊緣檢測效果不是很理想,但是對于銀行卡數(shù)字識別來說,邊緣紋理并不是很復雜,用Sobel算子進行邊緣檢測反而計算簡單,速度快。圖1為對原始灰度圖像分別基于Canny算子和Sobel算子所做的邊緣檢測圖。

圖1 Canny和Sobel邊緣檢測比較

Sobel算子做平面卷積的原理按所示方程(1)計算:

分別可得到水平和豎直兩個方向的亮度差分近似值。其公式如下:

其中A是指原圖像,Gx及Gy是指對水平和豎直兩個方向的計算。然后通過式(4)可以對圖像的梯度值進行計算。

3 實驗過程

3.1 提取銀行卡輪廓

一般來說,我們生活中手機識別到的銀行卡都不是直接的灰度圖像(如圖2),圖像處理過程中我們會分別對彩色圖像的三個顏色通道進行處理,計算量會很大且影響識別過程的速度,因此需要對彩色圖像進行灰度處理。如圖3為對彩色銀行卡灰度處理后的圖像。

圖2 彩色銀行卡圖像

圖3 灰度處理圖像

然后我們需要對灰度圖像進行頂帽操作。頂帽運算也被稱為“禮帽”運算,它為原圖像與圖像作“開運算”的結(jié)果圖之差。其中開運算就是對圖像進行先腐蝕后膨脹的過程,一般可以用來對圖像邊緣進行平滑處理,消除一些小的毛刺和干擾。如圖4則為對圖3進行頂帽操作后的圖像。

圖4 頂帽操作后的圖像

頂帽操作之后,我們就會用Sobel算子進行邊緣檢測,由于銀行卡邊緣背景信息比較簡單且具有一定的規(guī)律性,因此本文只對x軸方向進行了Sobel算子邊緣計算得到了待識別銀行卡的輪廓(見圖5),通過后文實驗可以看出只做x軸方向的Sobel計算邊緣檢測效果也比較理想,并且計算簡單,效率高。

圖5 sobel邊緣檢測

3.2 獲取銀行卡數(shù)字區(qū)域

通過上文的實驗可以得到銀行卡的輪廓信息,接下來我們需要獲取銀行卡數(shù)字區(qū)域。首先對銀行卡輪廓圖像進行閉操作(先膨脹,再腐蝕)將卡號數(shù)字連在一起(見圖6),然后對圖6進行二值化操作將目標區(qū)域和背景區(qū)別開來(見圖7),接著計算輪廓信息找到圖7中的所有輪廓得到圖8。

圖6 閉操作

圖7 二值化

圖8 目標區(qū)域輪廓

如圖8得到的目標區(qū)域的輪廓我們可以看出已經(jīng)找到的輪廓不僅包含數(shù)字區(qū)域,還包含一些例如銀行名稱,logo等一些干擾區(qū)域輪廓,因此我們需要從中排除這些干擾區(qū)域輪廓,得到只包含卡號數(shù)字的區(qū)域輪廓。經(jīng)過篩選輪廓,我們得到了四組數(shù)字輪廓區(qū)域,如圖9是得到的四組數(shù)字區(qū)域的其中一組。

圖9 數(shù)字區(qū)域

3.3 銀行卡數(shù)字識別

一般而言,銀行卡卡號識別的方法有很多,常用的主要有:模板匹配識別法[14]、神經(jīng)網(wǎng)絡識別法[15]、特征統(tǒng)計匹配識別法等[16]。本文的研究對象一般只有十幾位的阿拉伯數(shù)字,且每個數(shù)字0~9之間選擇,分布具有很強的規(guī)律,且本文考慮的情況需要快速的識別出銀行卡號信息,所以采用模板匹配字符識別法。

第一步要建立一個模版。首先導入一個包含0~9數(shù)字模板的圖像(圖10),將圖像分別進行灰度處理和二值化(圖11),然后找到圖像的所有輪廓,遍歷每一個輪廓,每一個數(shù)字輪廓對應每一個模板(圖12)。

圖10 包含模板數(shù)字圖像

圖11 灰度化及二值化

圖12 數(shù)字模板

第二步將待檢測銀行卡數(shù)字區(qū)域的每一個數(shù)字輪廓與第一步的10個數(shù)字模板分別比較,計算每一個待檢測數(shù)字與每一個模板的匹配得分,得分最高的模板即為待識別數(shù)字的正確模板。最終識別的結(jié)果如圖13所示。

圖13 識別結(jié)果

4 結(jié)語

隨著互聯(lián)網(wǎng)和移動支付技術(shù)的飛速發(fā)展,本文的研究對象也有著廣泛的應用前景。目前對銀行卡號識別的相關(guān)文獻和參考資料非常少,一些開發(fā)出銀行卡號識別技術(shù)的公司其識別技術(shù)及方法均未公開,銀行卡號的識別技術(shù)研究依然具有一定的實用性。

本文在現(xiàn)有的常用的銀行卡號識別技術(shù)上做了一些改善,將常用的Canny邊緣檢測方法改為了只做x軸方向的Sobel邊緣檢測,檢測結(jié)果差別不大,但是計算簡單,提高了識別過程中圖像預處理的效率。另外,針對銀行卡號具有固定字體的規(guī)律,使用模板匹配法對數(shù)字進行識別,也一定程度上節(jié)省了時間。與此同時,本文在一些方面仍有不足,需要進一步的改進。例如銀行卡圖像數(shù)據(jù)庫涉及到個人隱私問題,本文并沒有對大量真實的銀行卡進行驗證。另外,在識別過程中沒有考慮銀行卡使用過程中的磨損問題,實驗對象采取的只是比較理想的圖像。雖然本文具有一定的不足,但是仍為銀行卡號識別提供了一定的參考意義。

猜你喜歡
算子灰度輪廓
航空濾光片陣列多光譜圖像條帶灰度調(diào)整算法
天津港智慧工作平臺灰度發(fā)布系統(tǒng)和流程設計
Domestication or Foreignization:A Cultural Choice
Arduino小車巡線程序的灰度閾值優(yōu)化方案
跟蹤導練(三)
QK空間上的疊加算子
逼近論中的收斂性估計
兒童筒筆畫
一種基于灰度分割的調(diào)焦評價函數(shù)
創(chuàng)造早秋新輪廓