PaddleOCR代码解读

可以通过项目中的tools/infer_det.py直接在文字检测模型的 训练模型 上进行推理。

预处理算子 相关参数在Eval.dataset.transforms下。
文字检测模型在推理时,预处理共包含5个算子:
DecodeImage
DetResizeForTest
NormalizeImage
ToCHWImage
KeepKeys

预处理算子类的定义在ppocr/data/imaug/operators.py中

DecodeImage
直接使用openCV的imdecode()方法进行解码,解码后的图像颜色格式为BGR,矩阵维度按 HWC 顺序排列。
随后根据img_mode的参数值,将图像转换成灰度图、RGB格式或保持BGR格式不变;根据channel_first参数决定是否将channel变换到第一个维度 CHW。

DetResizeForTest
默认self.resize_type为0
在使用 训练模型 进行快速推理时,配置参数为image_shape: [736, 1280],此时对象中的数据成员self.resize_type的值应该为1。

当self.resize_type为0时,将把图片宽高等比例缩放成均在参数限制内的、32的整数倍。
当self.resize_type为1时,直接调用了openCV的resize()方法进行缩放。
当self.resize_type为2时,首先是从图片宽高中找出最长边,计算缩放比例,然后保持图片的宽高比不变进行缩放。

NormalizeImage
这里使用的图像归一化是常见的方法,先乘上scale进行线性变换,再减去对应通道的平均值,最后除以对应通道的标准差。

ToCHWImage
将图像矩阵维度变换为 CHW

KeepKeys
将data从dict类型,变成了list。

batch = transform(data, ops)
经过上面的一系列处理,transform()方法返回了一个list结果batch。
batch中的第一个元素为图像矩阵,颜色格式为BGR,维度顺序依次为CHW ;
batch中的第二个元素为图像缩放数据的1X4矩阵,分别为:原始高、原始宽、高度缩放比例和宽度缩放比例。

实际部署推理时,文字检测模型运行的是项目下tools/infer/predict_det.py这个脚本(推理模型)
DetResizeForTest的参数为None,采用了和上文预处理中不同的缩放方法
https://blog.csdn.net/dzdvdzd/article/details/115616493

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WX Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值