百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理(离线部署)百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS)百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)
PaddleOCR提供DB文本检测算法,支持MobileNetV3、ResNet50_vd两种骨干网络,可以根据需要选择相应的配置文件,启动训练。
本节以icdar15数据集、MobileNetV3作为骨干网络的DB检测模型(即超轻量模型使用的配置)为例,介绍如何完成PaddleOCR中文字检测模型的训练、评估与测试。
(资料图片仅供参考)
3.1 数据准备本次实验选取了场景文本检测和识别(Scene Text Detection and Recognition)任务最知名和常用的数据集ICDAR2015。icdar2015数据集的示意图如下图所示:
该项目中已经下载了icdar2015数据集,存放在 /home/aistudio/data/data96799 中,可以运行如下指令完成数据集解压,或者从链接中自行下载。
~/train_data/icdar2015/text_localization └─ icdar_c4_train_imgs/ icdar数据集的训练数据 └─ ch4_test_images/ icdar数据集的测试数据 └─ train_icdar2015_label.txt icdar数据集的训练标注 └─ test_icdar2015_label.txt icdar数据集的测试标注
提供的标注文件格式为:
" 图像文件名 json.dumps编码的图像标注信息"ch4_test_images/img_61.jpg [{"transcription": "MASA", "points": [[310, 104], [416, 141], [418, 216], [312, 179]], ...}]
json.dumps编码前的图像标注信息是包含多个字典的list,字典中的points表示文本框的四个点的坐标(x, y),从左上角的点开始顺时针排列。 transcription中的字段表示当前文本框的文字,在文本检测任务中并不需要这个信息。 如果您想在其他数据集上训练PaddleOCR,可以按照上述形式构建标注文件。
如果"transcription"字段的文字为"*"或者"###",表示对应的标注可以被忽略掉,因此,如果没有文字标签,可以将transcription字段设置为空字符串。
3.2 数据预处理训练时对输入图片的格式、大小有一定的要求,同时,还需要根据标注信息获取阈值图以及概率图的真实标签。所以,在数据输入模型前,需要对数据进行预处理操作,使得图片和标签满足网络训练和预测的需要。另外,为了扩大训练数据集、抑制过拟合,提升模型的泛化能力,还需要使用了几种基础的数据增广方法。
本实验的数据预处理共包括如下方法:
图像解码:将图像转为Numpy格式;标签解码:解析txt文件中的标签信息,并按统一格式进行保存;基础数据增广:包括:随机水平翻转、随机旋转,随机缩放,随机裁剪等;获取阈值图标签:使用扩张的方式获取算法训练需要的阈值图标签;获取概率图标签:使用收缩的方式获取算法训练需要的概率图标签;归一化:通过规范化手段,把神经网络每层中任意神经元的输入值分布改变成均值为0,方差为1的标准正太分布,使得最优解的寻优过程明显会变得平缓,训练过程更容易收敛;通道变换:图像的数据格式为[H, W, C](即高度、宽度和通道数),而神经网络使用的训练数据的格式为[C, H, W],因此需要对图像数据重新排列,例如[224, 224, 3]变为[3, 224, 224];图像解码从训练数据的标注中读取图像,演示DecodeImage类的使用方式。源码位置:\ppocr\data\imaug\operators.py
import osimport matplotlib.pyplot as pltfrom paddleocr.ppocr.data.imaug.operators import DecodeImage label_path = "../train_data/icdar2015/text_localization/train_icdar2015_label.txt"img_dir = "../train_data/icdar2015/text_localization/"# 1. 读取训练标签的第一条数据f = open(label_path, "r")lines = f.readlines()# 2. 取第一条数据line = lines[0]print("The first data in train_icdar2015_label.txt is as follows.\n", line)img_name, gt_label = line.strip().split("\t")# 3. 读取图像image = open(os.path.join(img_dir, img_name), "rb").read()data = {"image": image, "label": gt_label}# 4. 声明DecodeImage类,解码图像decode_image = DecodeImage(img_mode="RGB", channel_first=False)data = decode_image(data)# 5. 打印解码后图像的shape,并可视化图像print("The shape of decoded image is ", data["image"].shape)plt.figure(figsize=(10, 10))plt.imshow(data["image"])src_img = data["image"]plt.show()
标签解码解析txt文件中的标签信息,并按统一格式进行保存;源码位置:ppocr/data/imaug/label_ops.py
import osfrom paddleocr.ppocr.data.imaug.label_ops import DetLabelEncodelabel_path = "../train_data/icdar2015/text_localization/train_icdar2015_label.txt"img_dir = "../train_data/icdar2015/text_localization/"# 1. 读取训练标签的第一条数据f = open(label_path, "r")lines = f.readlines()# 2. 取第一条数据line = lines[0]print("The first data in train_icdar2015_label.txt is as follows.\n", line)img_name, gt_label = line.strip().split("\t")# 3. 读取图像image = open(os.path.join(img_dir, img_name), "rb").read()data = {"image": image, "label": gt_label}# 1. 声明标签解码的类decode_label = DetLabelEncode()# 2. 打印解码前的标签print("The label before decode are: ", data["label"])data = decode_label(data)print("\n")# 4. 打印解码后的标签print("The polygon after decode are: ", data["polys"])print("The text after decode are: ", data["texts"])
基础数据增广数据增广是提高模型训练精度,增加模型泛化性的常用方法,文本检测常用的数据增广包括随机水平翻转、随机旋转、随机缩放以及随机裁剪等等。
随机水平翻转、随机旋转、随机缩放的代码实现参考代码。随机裁剪的数据增广代码实现参考代码。
获取阈值图标签使用扩张的方式获取算法训练需要的阈值图标签;源码位置:ppocr/data/imaug/make_border_map.py
# 从PaddleOCR中import MakeBorderMapfrom ppocr.data.imaug.make_border_map import MakeBorderMap# 1. 声明MakeBorderMap函数generate_text_border = MakeBorderMap()# 2. 根据解码后的输入数据计算bordermap信息data = generate_text_border(data)# 3. 阈值图可视化plt.figure(figsize=(10, 10))plt.imshow(src_img)text_border_map = data["threshold_map"]plt.figure(figsize=(10, 10))plt.imshow(text_border_map)
标签:
精彩推荐
PaddleOCR提供DB文本检测算法,支持MobileNetV3、ResNet50_vd两种骨干网络,可以根据需要选择相应的配置文
6月2日消息,SHEIN正在美国招聘多名高层管理人员,以加快在美国推出其第三方平台“SHEINMarketplace”。据
重要的是,本泽马这位皇家马德里开疆拓土的功臣,也渴望离队,他已经将心愿和盘托出,其中包括带走理疗师,
1、有人会弄点数。2、不要交钱。本文就为大家分享到这里,希望小伙伴们会喜欢。
1、Nana娜娜——来自希腊语,有着“活泼、开朗”等寓意。2、很适合女孩子起名,比如女明星谢娜,也是运...
广东重奖举报违法违规使用医保基金行为最高奖励提升至20万元羊城晚报讯记者陈辉报道:记者从广东省医疗保障
在雷山县望丰乡公统茶场,漫山茶树生机勃勃,采茶工人们在茶树间来回穿梭,一朵朵翠芽被小心摘下放入筐中。
想必现在有很多小伙伴对于“星河滚烫,你是人间理想”是什么意思方面的知识都比较想要了解,那么今天小好...
凸透镜成像焦距怎么算这个很多人还不知道,现在让我们一起来看看吧!1、可运用凸透镜成像公式计算出来。2、
每经AI快讯,有投资者在投资者互动平台提问:尊敬的董秘,您好,作为一家便携式充电设备龙头企业,请问公司
一、过失损坏广播电视设施、公用电信设施罪立案标准过失损坏广播电视设施、公用电信设施罪立案标准是:过失
1、将净牛皮置炒锅中,加入清水,在旺火上煮熟,取出晾凉,切成5厘米长,1厘米宽,0 3厘米厚的长条块,盛入
大家好,今日关于【四川15岁女孩办订婚仪式被举报叫停】迅速上了的热搜榜,受到全网的关注度非常高。那么【
每日小编都会为大家带来一些知识类的文章,那么为大家带来的是加时赛赢了算胜平吗方面的消息知识,那么如果
穆迪在周三发布的报告中表示,“随着价格上涨和融资条件收紧的影响继续渗透至经济”,预计英国经济2023...
今年珠海12675人报名参加高考文、图 羊城晚报全媒体记者郑达又是一年高考季。6月1日,珠海市召开2023年高考
今天来聊聊关于密道追踪,mdzz的文章,现在就为大家来简单介绍下密道追踪,mdzz,希望对各位小伙伴们有所帮
怡和嘉业(SZ301367,收盘价:176 68元)6月1日发布公告称,2023年6月20日(星期二)下午14:00,公司将在北
科学教育的加法题,中西部学校怎么答?,科学课,科学,教育,教学,教育部,教师
紫金矿业子公司大陆黄金(ContinentalGold)5月31日在其官方社交媒体账户发布通告称,公司旗下位于哥伦比亚
资讯News
09-15
11-03
11-03
11-03
11-03
11-03
11-03
11-03
11-03
11-03
11-03
聚焦Policy
当好农民工的“护薪人” 近日,罗某等7名农民工在收到被拖欠的工资后,纷纷打电话向江西省南昌市...
“通讯录里所有人都知道我欠钱了” □ 本报记者 韩丹东 □ 本报见习记者 张守坤 ...
大连宝马车撞人案肇事司机被判死刑 本报讯 记者韩宇 10月29日,辽宁省大连市中级人民法院一审...
医院财务迷上网络赌博输光5000万元公款 □ 本报记者 马维博 □ 本报通讯员 汪宇堂 曹...
辊环车削 雕琢毫厘(工匠绝活) 【绝活看点】 23年来,雷虎始终扎根一线,改进钢材轧制工艺...
交警严查超标电动自行车挪用“白牌” 截至昨晚6时,处罚电动自行车违法行为共计6585笔;下一步将...
明起寒潮来袭 北方气温普降10℃以上 中央气象台预计,本周日北京平原地区最低气温降至-4℃左右...
多种蔬菜价格降幅达五成 包括菠菜、蒿子秆等 预计本月中旬蔬菜恢复供需平衡 本报讯(记者...
北京周日最低气温或达-4℃ 本报讯(记者 赵婷婷)北京青年报记者昨天从中央气象台获悉,新一股...
昌平一家四口确诊新冠肺炎 天通北苑第二社区升级为中风险地区 朝阳两涉疫校区及16所学校停课 ...
图集Picture