?

基于推薦區域的民國紙幣冠字號碼檢測

2023-10-29 01:32王笑梅沈成龍王佳婧
計算機仿真 2023年9期
關鍵詞:紙幣號碼民國

杜 欣,王笑梅,沈成龍,王佳婧

(上海師范大學信息與機電工程學院,上海 201418)

1 引言

民國紙幣蘊含著重要的信息如地區、發行商、印刷機構等。冠字號碼是民國紙幣的唯一標識符。

民國紙幣冠字號碼是一串序列號,涉及文本檢測領域。目前用于文本檢測的算法有CTPN[1]、EAST[2]、SegLink[3]、TextBoxes[4]等。CTPN結合了CNN與雙向LSTM,能有效地檢測出復雜場景文字,Anchor按照比例設定,只能檢測橫向或縱向文本;EAST采用特征圖多尺度融合和帶角度的預測文本框,能夠檢測任意方向文本,由于感受野和Anchor大小的限制,無法檢測序列文本;SegLink將文字串切割成小文字塊,采用鄰近域將小文字塊連接成序列;TextBoxes是一種快速而精確的文本檢測器,但不能檢測任意方向的文本塊基于深度學習的目標檢測算法可分為兩類:兩階段檢測算法和一階段檢測算法。兩階段檢測算法代表有AlexNet[5]、R-CNN[6]、Fast R-CNN[7]、Faster R-CNN[8]等。兩階段檢測算法由主干網絡,候選區域模塊和頭部三個部分組成,采用SS(Selective Search)方法或RPN (Region Proposal Network)生成候選框,進行邊框回歸,檢測的精度高,速度較慢。一階段目標檢測算法主要有SSD[9]、Retinanet[10]和YOLO[11-14]等。一階段目標檢測算法的核心是回歸。將作為模型輸入的整張圖像劃分為一定數目的網格,預測每個網格中的目標,提升檢測速度。

針對紙幣樣式繁多,圖案復雜的特點,本文提出了一種融合異常值檢測、聚類和目標檢測的序列檢測算法。

2 冠字號碼檢測

本文的民國紙幣冠字號碼檢測算法是基于推薦區域算法,整個檢測算法分為生成推薦區域、處理推薦區域。生成推薦區域部分包括檢測預處理和分割塊檢測,處理推薦區域部分主要是分割塊處理。在檢測預處理中實現紙幣圖像歸一化、圖像增強、冠字號碼標注和冠字號碼分割;分割塊檢測采用深度學習模型對冠字號碼分割塊訓練和檢測。在處理推薦區域中將分割塊生成隨機點,篩選并消除異常數據點,對經過異常處理的隨機點聚合成完整的冠字號碼。最后輸出民國紙幣的冠字號碼。民國紙幣圖像冠字號碼檢測模型框架如圖1。

圖1 檢測模型框架圖

2.1 生成冠字號碼推薦區域

2.1.1 檢測預處理

針對民國紙幣圖像存在破損、尺寸差異、字跡不清等情況,對圖像進行預處理。涉及圖像歸一化、圖像降噪和冠字號碼分割。

為提升計算的精度進行圖像歸一化。經過實驗的對比發現,將圖像的長度設置為1500 pixels效果較好。采用高斯濾波消除紙幣圖像噪聲。

經過圖像標注后,目標檢測算法不能有效處理序列,本文將序列號檢測問題轉換為物體檢測問題。為實現對字符串的檢測,需對標注框進行分割??梢圆捎玫姆指钏惴ㄓ凶远x寬度劃分法和自適應寬度劃分法??蚴前凑找粋€常量寬度設定。設標注框的寬高分別為W、H,設定常量寬度為q,將每列以q分割。自定義寬度劃分定義如式(1)。設定a是自適應寬度法的人工超參數,則自適應寬度劃分法的定義如式(2)。

(1)

(2)

經過實驗發現,自適應和自定義劃分的效果相差甚微,考慮算法簡便性,本文選擇自定義寬度劃分算法,通過多次實驗和觀察,將q值設置為20 pixels。自定義寬度劃分效果如下圖2。

圖2 自適應寬度劃分效果圖

2.1.2 YOLOv4模型檢測分割塊

相比于靈活性更強的YOLOv5,YOLOv4的可定制化程度很高,整體性能更高。選擇整體性能更優的YOLOv4作為目標檢測算法。

YOLOv4采用CSPDarknet53[15]代替Darknet-53作為網絡骨架,SPP[16]和PANet[17](path-aggregation neck)作為模型頸部,保留YOLOv3中高效的頭部。

數據輸入:在YOLOv4中,運用Mosaic數據增強增加數據量。Mosaic數據增強方法借鑒了CutMix[23]數據增強的方法,將四張圖片隨機地縮放或裁剪后放入同一張圖像,可以有效地應對小目標分布不均勻的情況,達到豐富數據集的效果,減少GPU的工作。采用SAT對抗性訓練方式,將訓練分為兩個階段,在第一階段,神經網絡通過對自身進行對抗性攻擊來改變原圖像。在第二階段,訓練神經網絡更新權重去檢測目標。

主干網絡:CSPDarknet53網絡結構是在Darknet53 基礎上結合CSPNet思想,采用CSP模塊將底層的特征映射劃分為兩部分:一部分經過卷積運算得到殘差結果; 另一部分越過卷積計算與上一部分得到的殘差結果跨層次融合,既降低計算量又可以保持較高的準確率。

頸部:SPP解決了輸入圖像大小需要固定的問題。SPP將特征轉化為一維矩陣形式。PANet(path-aggregation neck)通過自底向上的通道解決底層特征向高層特征流動路徑中的信息流丟失問題,增強整個特征層次架構。

YOLOv4在FPN后融入了由下到上的特征傳播路徑,在特征金字塔之中結合了雙重PAN[11,17]結構,上采樣與下采樣相結合的方式對頂層特征和底層特征聚合提取。

預測:傳統的目標檢測模型的損失函數一般是由分類損失函數和邊框回歸損失函數兩部分表示。本文的損失函數采用LCIoU[25]表示代替最廣泛使用的邊框回歸損失函數IOU_Loss[24]。解決了當兩個物體 (并交比)相同時的真實框和預測框的位置信息不明確問題。LCIoU定義如式(3)所示,

(3)

(4)

(5)

其中b,bgt分別代表了預測框和真實框的中心點。ρ代表的是計算兩個中心點間的歐式距離。c代表的是能夠同時包含預測框和真實框的最小閉包區域的對角線距離。是度量長寬比的相似性,定義為式(4),是權重函數,其表達式如式(5)所示。

以一張冠字號碼為“4855215”的民國紙幣為例,經圖像預處理后,采用YOLOv4檢測民國紙幣分割塊。其冠字號碼分割塊檢測結果如圖3所示。

圖3 分割塊檢測結果

2.2 處理推薦區域

2.2.1 隨機點生成

本文將對分割框的處理轉化為對相應的數據點的處理,故將分割框轉化為相應隨機點。在轉化為隨機點過程中需要考慮的核心是隨機點數量問題。由于每張民國紙幣圖像的冠字號碼數量和尺寸不固定,依據冠字號碼數量來確定隨機點數量不能處理冠字號碼長度過長或高度過高的情況,故采用寬高自適應設置隨機點數量。設單個分割塊的高和寬分別為H、W,隨機點數的裝填因子為α,則采用依據寬高自適應算法生成的隨機點數量Rc定義如式(6)。

Rc=α*(W*H)

(6)

選取合適的裝填因子并以一張雙冠字號碼的民國紙幣圖像為例,其采用依據寬高自適應隨機點的方法轉化效果如圖4。

圖4 隨機點轉化前后效果圖

由圖4可知,兩邊隨機點分布較為均勻,兩個冠字號碼之間間隔清晰,能夠很好地描述冠字號碼的位置信息和寬高信息。

2.2.2 局部相關積分(LOCI)

依據數據維度和使用場景的不同,異常值檢測算法從種類上可以分為基于統計的檢測算法、基于密度的檢測算法、基于聚類以及基于鄰近度的檢測算法。

由于序列號附近的隨機點密集,誤檢框附近數據點稀疏。因此,采用基于密度的局部相關積分算法。在異常值檢測過程中,為了避免假正例和假負例的情況,使用雙重隨機點轉換。適當增加隨機點數目可以避免刪除假負例對實驗結果的干擾??紤]到異常值消除的效率和速度,將每個分割塊增加的隨機點數目設置為3。利用局部相關積分和鄰域計數函數估計MDEF值。對于N個數據集P={p1,p2,…,pi,…,pN},P的r-近鄰集Ν(pi,r)={p∈P|d(p,pi)≤r},對于任何pi,r和α將半徑(或標度)r處的多粒度偏差因子(MDEF)定義為如下表達式(7)。

(7)

當分割塊所在區域的數據點少于閾值T時,將該分割塊內的所有隨機點消除。異常值消除效果如圖5。

圖5 異常消除效果圖

2.2.3 Mean Shift聚類

考慮到隨機點集合代替矩形框,深度學習檢測分割塊時漏檢分割塊和分割塊邊界定位偏差這兩種情況對序列號的整體區域界限的確定幾乎不產生影響。由于隨機點集中主要集中在冠字號碼區域,隨機點集合數量取決于紙幣冠字號碼的數量,因此本文選擇可自定義簇數量的聚類算法。

根據隨機點在冠字號碼區域分布密度高,在非冠字號碼區域分布密度小或無,且不同序列號形成的隨機點集合之間具有明顯的間隔,采用可設置帶寬的 Mean Shift算法,該算法是一種核密度估計算法(無需明確K值),它將每個點更新到密度梯度函數的局部極大值點處,通過不斷地更新局部極大值點的位置實現聚類的效果。

在給定n維空間的m個數據點的集合N,則MeanShift向量如式(8)。

(8)

其中,Sk表示距離n點在球半徑h的數據點集。通過Mean Shift向量不斷地更新球心的位置,使得球心向數據集密集的位置跟進。最終的Mean Shift向量可以表示為式(9)所示。其中,X為中心點,Xi為球半徑內的數據點,n為數量,g表示負的核函數的導數。

(9)

以本文中的其中兩張圖像識別結果為例,使用均值漂移聚類Mean Shift算法,設置合適的帶寬值,合并分割塊后效果如圖6。

圖6 聚類效果圖

由上圖可知,使用均值飄移(MeanShift)算法可以有效的合并深度學習檢測出的分割塊。不僅如此,對于檢測過程中出現的漏檢、重復檢測、邊界框偏差等有較好的魯棒性。

3 實驗結果與分析

3.1 實驗配置

本實驗訓練環境是Ubuntu20.04系統,使用Darknet深度學習框架,配置PyTorch和OpenCV環境,實驗所用顯卡為NVIDIA 2080Ti,內存11G,CUDA版本為CUDA11.0,配有interi9-10900k處理器,算法的測試和訓練均在GPU中完成。

3.2 數據準備

本實驗數據集來自908張民國紙幣圖像,通過對原始數據圖像數據增強,最終應用于本實驗的圖像共3502張圖像包括正面、反面以及橫版和豎版。訓練集、驗證集和測試集按照8∶1∶1的比例。

3.3 模型訓練

網絡模型參數設置如下:YOLOv4模型訓練的MAX_batches設置為2000,subdivision=32。初始學習率learning_rate設置為0.00261,YOLOv4模型訓練結果Loss值在batch達到1000以后基本穩定在1.0%。經過2000epoch迭代后模型逐漸收斂,Loss值在1%附近上下波動。訓練的Loss圖如下圖7。

圖7 YOLOv4訓練Loss變化圖

3.4 評價指標

在目標檢測中,將準確率(P)和召回率(R)作為模型的評價標準。準確率(P)評估模型返回相關實例的能力,召回率(R)評估模型識別所有相關實例的能力。由準確率(P)和召回率(R)計算平均精準度(AP),以平均AP值(mAP)作為檢測準確度的綜合指標。式(10)是準確率計算公式,式(11)是召回率計算公式,式(12)是mAP計算公式。

(10)

(11)

(12)

檢測速度也是判定算法性能的重要指標之一,本文采用單張圖片平均檢測時間(time)作為檢測速度的評價指標。定義如式(13)。

(13)

其中,totaltime為檢測花費總時間,num為檢測的圖片總數量。

3.5 性能分析

模型參數設置:MAX_batches設置為2000,學習率learning_rate設置為0.001。

表1為YOLOv4、YOLOv5和本文的推薦區域算法在民國紙幣數據集上的檢測性能對比,由表可知,推薦區域檢測算法實驗mAP達到99.7%,通過對比YOLOv4目標檢測模型對冠字號碼的檢測結果發現,本文算法準確率提升了4.9%,圖像檢測的平均耗時0.83s,在提升準確率的同時滿足實時性的要求。

表1 YOLO v4、YOLOv5與本文方法對比

圖8(1)、(2)、(3)分別為YOLOv4算法、本文推薦區域算法與YOLOv5算法檢測效果圖,可見本文檢測算法能夠較精準的定位民國紙幣的冠字號碼區域。

圖8 檢測結果示例圖

4 結語

本文提出了一種融合異常值檢測、聚類和目標檢測的序列檢測算法,實現了民國紙幣的精準定位,提升檢測的效率。

1)由于目標檢測對序列號檢測的精準度較低且文字檢測算法對非冠字號碼的無效定位,本文采用分割算法將冠字號碼的檢測轉換為冠字號碼塊的檢測;2)針對冠字號碼的精準定位和矩形框合并的復雜度,本文運用隨機點轉化算法將矩形框轉換為數據點;3)針對到檢測分割塊過程中出現的漏檢、誤檢等問題,采用異常值檢測處理數據點;4)采用聚類算法合并數據點,實現分割區域的合并。最后輸出冠字號碼。

實驗結果表明,相比于文本檢測算法如East模型,本文的推薦區域檢測算法消除了無效檢測且提高了精準度。相比于目標檢測模型如YOLOv4、YOLOv5,本文的算法準確率更高,且能夠保持實時性。

猜你喜歡
紙幣號碼民國
說號碼 知顏色
一個號碼,一個故事
猜出新號碼
他們為何都愛民國?
消失的紙幣
民國人愛刷朋友圈
猜紙幣
猜紙幣
這個號碼很吉祥
民國書家與民國書風
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合