該指令碼能夠將使用者指定的字元輸出為不同字型的影象檔案,用於訓練文字識別的機器學習模型或用於其他文字識別ocr專案
隨著近幾年來計算機算力的不斷提公升,機器學習也迎來了爆發式的發展,影象識別作為機器學習最典型也是最主要的應用之一,目前應用前景火熱。
機器學習最重要的一步就是獲取資料集,沒有乙個堅實的資料集做支撐是無法訓練出好用的模型的。因此,本文實現了乙個指令碼,能夠生成任意數量,任意字型,以及帶有各種模糊及雜訊預處理的影象,用這些影象作為訓練集是再合適不過了。
每個資料夾存放乙個漢字,即乙個類別:
開啟其中乙個資料夾,裡面存放的是當前類別漢字的各個字型以及各種預處理後的影象檔案。
1. 根據使用者指定的漢字字元生成影象檔案
2. 使用者可自行更改影象數量及影象尺寸
3. 使用者可自行更改預處理效果
專案資料夾imggenerator下的fonts資料夾用於存放ttf字型檔案。
outputs資料夾用於存放輸出影象。
config.py中設定相關路徑資訊。
draw_chara.py是實際的指令碼。
設定需要輸出的字元:
if __name__ == '__main__':
# 載入所有指定字型
fonts = load_fonts(size)
# 字符集,將其中的字元儲存成影象
charset = 'u你想輸出的漢字'
# 生成n個字
n = 10
draw_txt(n, charset, fonts, size)
2. 載入字型:
# 自動載入字型檔案
def load_fonts(size):
fnts =
# 字型路徑
font_path = os.path.join(config.font_path, "*.*")
# 獲取全部字型路徑,存成list
fonts = list(glob.glob(font_path))
# 遍歷字型檔案
for each in fonts:
# 調整字型大小
fnt = imagefont.truetype(each, int(size[0]*1.75/2), 0)
return fnts
這裡需要根據輸出尺寸調整字型大小,避免超出畫布或留白太多。
3. 預處理影象:
作為資料增強的一種方式,對訓練影象進行不同程度的預處理,包括模糊,干擾,雜訊等可以增強模型的泛化能力。
這裡可以根據自己需要選擇在0-7個預處理模式中自行選擇,只需要更改迴圈範圍即可。
# 資料增強
for mode in range(0, 8):
aug = augmentation(img, mode, size)
def augmentation(img, mode, size):
# 不能直接在原始image上改動
image = img.copy()
'''新增隨機模糊和雜訊'''
# 高斯模糊
if mode == 0:
# 模糊後二值化,虛化邊緣
if mode == 1:
# 橫線干擾
if mode == 2:
# 豎線
if mode == 3:
# 十字線
if mode == 4:
# 左右運動模糊
if mode == 5:
# 上下運動模糊
if mode == 6:
# 高斯雜訊
if mode == 7:
現在config檔案中設定字型檔案路徑和輸出路徑:
# coding=utf-8
# 影象儲存路徑
image_path = './outputs'
# 字型檔案路徑
font_path = './fonts'
字型檔案路徑中存放ttf字型檔案,如下:
最後執行draw_chara.py即可在outputs資料夾中得到輸出影象。
合成中文識別資料集的相關repo
介紹合成中文識別資料集的相關repo 修改自synthtext cvpr2016 用於生成自然場景文字影象。備註 但 給人的感覺是很混亂,沒有清晰結構,目前作者也停止了維護,基於opencv2.4,版本過舊無法pip直接安裝或者需要自己改動一些 乙個合成資料生成器用於文字識別 備註 結構清晰,作者一...
行為識別資料集彙總
工欲善其事,必先利其器 1.the kth dataset 2004 密碼 rfr7 記得點讚 2.the weizmann dataset 2005 3.the ixmas dataset 2006 4.the hollywood dataset 2008 2009 5.the ucf datas...
步態識別資料集整理
按照時間順序,來自 資料集提出時間 資料型別 個體數和序列總數 環境視角數 變化cmu mobo 2001 rgb 輪廓圖 25 600室內6 3個走路速度 攜帶乙個球 soton 2002 rgb 輪廓圖 115 2128 室內 室外 2在treadmill上走路 casia a 2003 rgb...