概述
OCR:使用数据生成工具对自己的文字识别数据进行生成
参考
TextRecognitionDataGenerator
OCR数据集生成利器—TextRecognitionDataGenerator
python3-随机生成10位包含数字和字母的密码
文章目录
- OCR:使用数据生成工具对自己的文字识别数据进行生成
- 1. 下载
- 2. 认识自己数据
- 3. 所要生成的数据
- 3.1 生成label
- 3.2 关于图片背景的参数
- 3.3 关于数字颜色的参数
- 4. 生成数据代码
1. 下载
我们在自己的目标文件夹打开终端cmd,执行下面代码
git clone git@github.com:Belval/TextRecognitionDataGenerator.git
然后我们进入trdg文件夹执行run.py可以进行数据生成
2. 认识自己数据
在这里可以看到自己的数据都是在金属表面进行点刻的字符,包括大写英文以及数字,并且数据居多。
3. 所要生成的数据
根据自己的数据,我们首先要明确两点:生成什么样label的数据,以及图片类型是什么样的?包括图片背景和数据颜色
3.1 生成label
强大的数据生成工具支持我们自己的label,而不用随机生成label。
这这里我自己写了一段代码,用于生成label的txt文件。
在这里我们生成20000个数据标签,其中的格式有
2个字母,11数字
3个字母,6个数字
6个数字
我们各生成7000个
import random,string
import argparse
import os
from tqdm import tqdm
parser = argparse.ArgumentParser(description="随机生成大写字母以及数字")
parser.add_argument(
"--output_dir", type=str, nargs="?", help="The output directory", default="out/"
)
parser.add_argument(
"-n","--number_gener", type=int, nargs="?", help="how many number to gener", default="10"
)
parser.add_argument(
"-f",
"--first_number",
type=int,
nargs="?",
help="要生成多少个英文大写字母",
default="3",)
parser.add_argument(
"-l",
"--last_number",
type=int,
nargs="?",
help="要生成多少个数字",
default="11",)
args = parser.parse_args()
out_dir=args.output_dir
number_gener=args.number_gener
with open(os.path.join(out_dir,'1.txt'),'a') as f:
for i in tqdm(range(number_gener)):
passwd1 = []
uppercase = string.ascii_uppercase
digits = string.digits
length_uppercase = len(uppercase)
length_digits = len(digits)
for i in range(args.first_number):
latter = uppercase[random.randint(0,length_uppercase - 1)]
passwd1.append(latter)
for i in range(args.last_number):
latter = digits[random.randint(0,length_digits - 1)]
passwd1.append(latter)
f.write("".join(passwd1))
f.write('n')
# print("".join(passwd1))
3.2 关于图片背景的参数
在数据生成工具中的run.py文件中,关于图片背景主要有两个参数,
-b,--background
设置图片的背景,0-高斯噪声; 1-白色背景; 2-晶体背景;3-图片
-id,--image_dir
当-b设置为3时,设置图片背景的路径,
parser.add_argument(
"-b",
"--background",
type=int,
nargs="?",
help="Define what kind of background to use. 0: Gaussian Noise, 1: Plain white, 2: Quasicrystal, 3: Image",
default=0,
)
parser.add_argument(
"-id",
"--image_dir",
type=str,
nargs="?",
help="Define an image directory to use when background is set to image",
default=os.path.join(os.path.split(os.path.realpath(__file__))[0], "images"),
)
3.3 关于数字颜色的参数
-tc,--text_color
文本的颜色,通过设定的颜色,或者颜色范围,生成特定颜色的文本,颜色格式为16进制 如:#282828,(#000000,#282828)
-stf,--stroke_fill
如果笔划宽度大于0,则定义笔划轮廓的颜色
parser.add_argument(
"-tc",
"--text_color",
type=str,
nargs="?",
help="Define the text's color, should be either a single hex color or a range in the ?,? format.",
default="#282828",
)
parser.add_argument(
"-stf",
"--stroke_fill",
type=str,
nargs="?",
help="Define the color of the contour of the strokes, if stroke_width is bigger than 0",
default="#282828",
)
剩下的就不一一列举了,具体看参考文章。
4. 生成数据代码
在trdg文件夹下,打开cmd终端,
先生成 高斯噪声背景的,具有高斯模糊的,5000个数据
python run.py -c 5000 -b 0 -na 1 -bl 1 -rbl -i input/1.txt --output_dir out_1/
普通背景下,具有高斯模糊的,5000个数据
python run.py -c 5000 -b 3 -id images -na 1 -bl 1 -rbl -i input/3.txt --output_dir out_2/
黑色背景下,具有高斯模糊的,5000个银色字体的数据
python run.py -c 5000 -b 3 -id images_black -na 1 -bl 1 -rbl -i input/4.txt --output_dir out_4/ -tc #999999
python run.py -c 5000 -b 3 -id images_black -na 1 -bl 1 -rbl -i input/4.txt --output_dir out_3/ -tc #999999,#FFFFFF
最后
以上就是强健火龙果为你收集整理的OCR:使用数据生成工具对自己的文字识别数据进行生成OCR:使用数据生成工具对自己的文字识别数据进行生成1. 下载2. 认识自己数据3. 所要生成的数据4. 生成数据代码的全部内容,希望文章能够帮你解决OCR:使用数据生成工具对自己的文字识别数据进行生成OCR:使用数据生成工具对自己的文字识别数据进行生成1. 下载2. 认识自己数据3. 所要生成的数据4. 生成数据代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复