CV學習筆記(十九):文本數據集生成(text_renderer)

作者:雲時之間
來源:知乎
鏈接:https://zhuanlan.zhihu.com/p/138733491
編輯:王萌


在上一次我們進行完銀行卡卡號定位後,有一個問題在於我們沒辦法獲得很多的銀行卡圖片來進行訓練,比較常規的方法是我們來使用銀行卡圖片的背景,來生成含有銀行卡卡號的數據集來讓機器進行訓練。在這裏我用的是GitHub上的一個開源項目,github.com/Sanster/text,功能很全面,這篇文章將說說如何使用這個開源項目。

署好項目後,直接運行main.py就可以生成默認的參數。
CV學習筆記(十九):文本數據集生成(text_renderer)
這裏默認的參數,在config->default.yaml中可以修改,比如字體的顏色,隨機生成的文字,背景,文字的亮暗,以及給圖片加噪聲,功能很強大,各種數據都很容易僞造。

因爲是僞造銀行卡,我選擇了一些銀行卡的背景信息,儘量保證圖片中干擾少,但是現在銀行卡五花八門,這樣的也得考慮到。

CV學習筆記(十九):文本數據集生成(text_renderer)
現在在銀行卡中因爲分爲儲蓄卡和信用卡,儲蓄卡大多用的是Barcodesoft 的 Farrington 7B,是圖下這種感覺,也有部分銀行採用的是黑體和隸書。

CV學習筆記(十九):文本數據集生成(text_renderer)

而信用卡還有一種壓單交易的方式,就是利用信用卡正面突起的信息在壓敏單據上壓出信息,字體需要突出有銳利,一些銀行會採用楷體,不過還是會有很多銀行仍使用Farrington 7B。

知道前提這些消息後,我們現在需要對項目的一些參數進行修改,來產生我們所需要的圖片

1:進入text_renderer\data\bg,選取你想要的背景(這裏我選擇的是銀行卡背景)

2:進入text_renderer\data\corpus,這裏邊是你要產生的內容,因爲銀行卡號都是數字(儲蓄卡19位,信用卡16位),刪除原來的文件,新建一個這樣類型的txt

CV學習筆記(十九):文本數據集生成(text_renderer)

3:進入parse_args.py,修改一些參數,在parse_args()函數裏,我們可以調節產生的圖片數量(默認20),產生數字的長度(默認10),因爲後續要喂到CRNN中,我這裏的尺寸爲280*32,需要修改:

CV學習筆記(十九):文本數據集生成(text_renderer)

這裏的chars_file改成eng.txt,因爲數字在英文字符中

CV學習筆記(十九):文本數據集生成(text_renderer)

這裏的fonts_list改爲eng.txt,是英文字體列表,我們要把剛纔上文中所說的字體放到相應的文件夾下

CV學習筆記(十九):文本數據集生成(text_renderer)

現在修改完了,運行main.py即可:

CV學習筆記(十九):文本數據集生成(text_renderer)
生成的圖片如上所示,但是打開tmp_lable.txt來看:

CV學習筆記(十九):文本數據集生成(text_renderer)

第一列是文件名,第二列是我們圖片的內容,我們模型所需要的數據集格式爲:第一列文件名.格式,第二列圖片內容。在這裏,我們修改下main.py:

CV學習筆記(十九):文本數據集生成(text_renderer)

這樣,我們就得到了符合格式的數據集:
CV學習筆記(十九):文本數據集生成(text_renderer)

多改改參數,樣本多樣化一些,訓練即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章