管理Document AI的工具、训练配置、模型等

WangChao b09e48c1bd [feat] 添加修改标签功能 4 mesi fa
Data_Copy b51722163a 上传文件至 'Data_Copy' 1 anno fa
Images_rename 8df4f6ea98 [feat] 脚本适配优化 6 mesi fa
Labelme_LabelStudio 66c0786ff6 上传文件至 'Labelme_LabelStudio' 1 anno fa
PythonSDK_Auto_Label dee26652c3 上传文件至 'PythonSDK_Auto_Label' 1 anno fa
TextRecognitionDataGenerator @ 173d457219 3b7aa5e608 第一次上传 1 anno fa
classification_dataset_generate 3b7aa5e608 第一次上传 1 anno fa
correct_imgs_rotation 3b7aa5e608 第一次上传 1 anno fa
data_collection b09e48c1bd [feat] 添加修改标签功能 4 mesi fa
delete_anno_by_label e6cd5126b8 [feat] 新增清除特定标签的脚本 5 mesi fa
dictionary_generate 3b7aa5e608 第一次上传 1 anno fa
divide_and_convert_to_coco_single_fold 3b7aa5e608 第一次上传 1 anno fa
fonts_images_generate 3b7aa5e608 第一次上传 1 anno fa
get_name_by_spider 00f3b0b992 删除非必要文件 1 anno fa
idcardgenerator 00f3b0b992 删除非必要文件 1 anno fa
img_augmentation 3b7aa5e608 第一次上传 1 anno fa
merge_and_divide_to_coco_multi_folds 3b7aa5e608 第一次上传 1 anno fa
model_convert fd869fef9e add model_convert 1 anno fa
ocr_func_test 00f3b0b992 删除非必要文件 1 anno fa
pdf_rename_to_images 8df4f6ea98 [feat] 脚本适配优化 6 mesi fa
screenshot_save_by_label 3b7aa5e608 第一次上传 1 anno fa
semi_auto_labeling 3b7aa5e608 第一次上传 1 anno fa
text_image_orientation_dataset_generate 3b7aa5e608 第一次上传 1 anno fa
readme.md 6964635b97 更新 'readme.md' 1 anno fa
requirements.txt ed26257706 更新 'requirements.txt' 1 anno fa

readme.md

Document AI Tools

更新时间:2023-05-17

在当前目录下,需要安装依赖包 运行命令 pip install -r requirements.txt

1. 通用

1.1 图片角度矫正

img_correct.py

  • 运行指令 python img_correct.py --img_dir ./imgs --save_dir ./corrected_imgs
  • 参数img_dir和img_path不能同时使用
参数名 数据类型 默认值 说明
--img_dir str ' ' 待矫正图片文件夹路径
--img_path str ' ' 待矫正图片的路径
--save_dir str ./corrected_imgs 矫正后图片保存路径

对应项目--correct_imgs_rotation

1.2 pdf文件转图片

img_to_pdf.py

  • 将多张图片组合成一个pdf文件
  • 运行指令 python img_to_pdf.py --img_dir ./images --save_dir ./pdf_file
参数名 数据类型 默认值 说明
--img_dir str ./images 需要转pdf的图片文件夹路径
--save_dir str ./pdf_file 生成pdf文件的保存路径

pdf_to_image.py

  • 运行指令 python pdf_to_image.py --pdf_dir ./pdf_file --save_dir ./pdf_images
  • 参数pdf_dir和pdf_path不能同时使用
参数名 数据类型 默认值 说明
--pdf_dir str ' ' 需要转图片的pdf文件夹路径
--pdf_path str ' ' 需要转图片的单个pdf文件路径
--save_dir str ./pdf_images 生成图片的保存路径

对应项目--pdf_rename_to_images

1.3 图片重命名

images_rename.py

  • 运行指令 python images_rename.py --img_dir ./images --save_dir ./images_result
参数名 数据类型 默认值 说明
--img_dir str ./images 待重命名图片文件夹所在路径
--save_dir str ./images_result 重命名后图片的保存路径

命名规范:kdan_year-month-day_index[0:8]_uuid[0:4].jpg 对应项目--Images_rename

1.4 根据label截图保存

cut_roi_save.py

  • 数据准备:labelme标注的原始数据集(图片和json文件在同目录下);
  • 运行指令 python cut_roi_save.py --input_dirs ./fold1 ./fold2 --label Table --save_dir ./images --size 300
参数名 数据类型 默认值 说明
--input_dirs [str,str] ./fold1 ./fold2 待处理的多个文件夹(图片以及json)路径,每条路径之间用空格隔开
--label str Table 截取图片的标签名[Table,Figure]
--save_dir str ./images 截取图片的保存路径
--size int 0 等比缩放短边需达到的尺寸(如不设置此参数,则按原尺寸保存)

对应项目--screenshot_save_by_label

1.5 复制图片和对应json文件

data_copy.py

  • 运行指令 python data_copy.py --anno_dirs ./fold1 ./fold2 --data_dir ./fold3
参数名 数据类型 默认值 说明
--anno_dirs [str,str] ./fold1 ./fold2 待复制图片和json文件夹
--data_dir str ./fold3 目标文件夹

对应项目--Data_Copy

train_and_val_divide_copy.py

  • 对图片和对应json文件进行划分再复制
  • 运行指令 python data_copy.py --anno_dirs ./fold1 ./fold2 --train_ratio 0.9 --train_dir ./fold3 --val_dir ./fold4
参数名 数据类型 默认值 说明
--anno_dirs [str,str] ./fold1 ./fold2 待复制图片和json文件夹
--train_ratio float 0.9 划分比例
--train_dir str ./fold3 训练目标文件夹
--val_dir str ./fold4 验证目标文件夹

对应项目--Data_Copy

1.6 半自动标注

infer_demo.py

  • 运行指令 python infer_demo.py --model_path ./onnx_ile/picodet_l_416_lp_0826.onnx --class_file ./lp_label.txt --conf_Threshold 0.5 --img_dir ./images --result_dir ./result
参数名 数据类型 默认值 说明
--model_path str ./onnx_file/picodet_l_416_lp_0826.onnx 本次使用onnx文件的路径
--class_file str ./lp_label.txt label文件(所有label以及对应id)路径
--conf_Threshold float 0.5 类别置信分数,大于此分数的预测目标才会被保留
--img_dir str ./imgs 需进行的标注的图片文件夹路径
--result_dir str ./result 可视化的图片结果过图片保存路径

对应项目--semi_auto_labeling

auto_label.py

  • 使用自己的SDK进行半自动标注
  • 运行指令 python auto_label.py --mode ~.model --model_licence ~.txt --score 0.5 --image_dir ./images --view_result_dir ./result
参数名 数据类型 默认值 说明
--mode str ~.model SDK模型的路径
--model_licence str ~.txt SDK模型的licence
--score float 0.5 类别置信分数,大于此分数的预测目标才会被保留
--image_dir str ./images 需进行的标注的图片文件夹路径
--view_result_dir str ./result 可视化的图片结果过图片保存路径

对应项目--SDK_Auto_Label

auto_add_label.py

  • 使用自己的SDK在已有的标注下进行半自动添加标注,要根据添加的标签对应改动代码
  • 运行指令 python auto_label.py --mode ~.model --model_licence ~.txt --score 0.5 --image_dir ./images --view_result_dir ./result
参数名 数据类型 默认值 说明
--mode str ~.model SDK模型的路径
--model_licence str ~.txt SDK模型的licence
--score float 0.5 类别置信分数,大于此分数的预测目标才会被保留
--image_dir str ./images 需进行添加标注的图片文件夹路径
--view_result_dir str ./result 可视化的图片结果过图片保存路径

对应项目--SDK_Auto_Label

2. 检测

2.1 单个labelme格式数据集划分、转coco格式

labelme_to_coco.py

  • 将单个文件夹(labelme标注格式)划分、转换为coco格式数据集
  • 运行指令 python labelme_to_coco.py --labelme_dir ./images --save_coco_dir ./coco_dataset
参数名 数据类型 默认值 说明
--labelme_dir str ./images labelme标注格式数据集路径
--save_coco_dir str ./coco_dataset 划分训练集、验证集并转换coco格式数据集保存的路径

对应项目--divide_and_convert_to_coco_single_fold

2.2 多个labelme格式数据集合并、划分、转coco格式

merge_and_divide.py

  • 合并多个labelme标注格式的文件夹,并划分、转换为coco格式数据集
  • 运行指令 python merge_and_divide.py --anno_dirs ./fold1 ./fold2 --train_ratio 0.8
参数名 数据类型 默认值 说明
--anno_dirs [str] ./fold1 ./fold2 多个文件夹,空格隔开
--train_ratio float 0.8 coco格式训练集比例

对应项目--merge_and_divide_to_coco_multi_folds

2.3 将Labelme导出的json文件转换成Label_Studio导出的json文件

Labelme2Lable_Studio.py

  • 将多个labelme标注的json文件转换成可以导入到Label_Studio的json文件
  • 运行指令 *python Labelme2Lable_Studio.py --labelme_dirs ./fold1 ./fold2 --project_id project_id
参数名 数据类型 默认值 说明
--anno_dirs [str] ./fold1 ./fold2 多个存储Labelme导出的json文件夹,空格隔开
--train_ratio int project_id 对应到Label_Studio的项目编号

对应项目--Labelme_LabelStudio

2.4 将Label_Studio导出的json文件转换成Labelme导出的json文件

Label_Studio2Labelme.py

  • 将Label_Studio导出的单个json文件转换成Labelme标注格式的json文件
  • 运行指令 *python Label_Studio2Labelme.py --Label_Studio_json_dirs ./fold1 ./fold2 --Labelme_json_dir ./fold3
参数名 数据类型 默认值 说明
--anno_dirs [str] ./fold1 ./fold2 多个存储Label_Studio导出的json文件夹,空格隔开
--train_ratio str ./fold3 存放Labelme标注格式的json文件夹

对应项目--Labelme_LabelStudio

3. 分类

3.1 字体图片生成

generate_imgs_by_fonts.py

  • 根据语料库内容生成对应字体的图片,白底黑字
  • 运行指令 python create_imgs_by_fonts.py --font_dir ./eng_fonts --text_path ./text/eng_text.txt --save_dir ./output
参数名 数据类型 默认值 说明
--font_dir str ./eng_fonts 字体文件目录
--text_path str ./text/eng_text.txt 语料库文件路径
--save_dir str ./font_img_dataset/windows 生成图片保存路径

对应项目--fonts_images_generate

3.2 语料库生成

generate.py

  • 根据文字字典生成字体分类所需的语料库
  • 运行指令 python generate.py --start 2 --end 30 --step 2 --dict_path ./chn_dict.txt --save_path ./text/text.txt
参数名 数据类型 默认值 说明
--start int 0 生成单句语料的最小长度
--end int 30 生成单句语料的最大长度
--step int 2 单句语料长度的步长
--word_num int 10 单句出现的次数
--dict_path str ./chn_dict.txt 文字字典路径
--save_path str ./text/text.txt 生成的语料库文件路径

对应项目--dictionary_generate

3.3 带角度图像生成

make_rotated.py

  • 根据指定的图片,从0度开始以15度为角度增量,生成带旋转角度的图片,缺失部分用白色背景填充
  • 然后将生成的图片划分为4类,img_0, img_90, img_180, img_270
  • 运行指令 python make_rotated.py --img_dir ./images --save_dir ./images_rotated
参数名 数据类型 默认值 说明
--img_dir str ./images 图片文件夹路径
--save_dir str ./imgages_rotated 生成的旋转的图片保存路径

对应项目--text_image_orientation_dataset_generate

3.4 分类数据集划分

divide_train_eval.py

  • 运行指令 python divide_train_eval.py --img_dir ./windows --train_ratio 0.8
参数名 数据类型 默认值 说明
--img_dir str ./font_img_dataset/windows 待划分的图片文件夹路径
--train_ratio float 0.8 训练集所占比例

对应项目--classification_dataset_divide

4. OCR相关(对应文件tw_idcard_generator)

  • 项目结构说明
文件名 说明
bgs 存放背景图
fonts 存放字体文件
materials 存放各个工具中使用的字典、语料文件
cut_save.py 截取文件夹下所有图片的特定区域并保存
dict_generate.py 生成文字识别需要的字典文件
divide_rec_train_val.py 将文字识别数据集划分成为训练集和验证集
get_addr.py 爬虫获取身份证背面的住址
idcard_det_rec_generate_back.py 生成台湾身份证背面图片
idcard_det_rec_generate_forward.py 生成台湾身份证正面图片,并同时制作正面识别数据集
info_generate.py 信息生成,包括台湾身份证正面的姓名、生日、发证时间,id等

4.1 文字检测数据集生成(台湾身份证)

idcard_det_rec_generate_forward.py

参数名 数据类型 默认值 说明
--img_dir str ./font_img_dataset/windows 待划分的图片文件夹路径
--train_ratio float 0.8 训练集所占比例

以上所述的路径,相对路径、绝对路径均可

KDAN MOBILE SOFTWARE LTD. all rights reserved