System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种使SynthText数据适用于扫描笔文字检测的裁剪方法技术_技高网

一种使SynthText数据适用于扫描笔文字检测的裁剪方法技术

技术编号:42628848 阅读:6 留言:0更新日期:2024-09-06 01:30
本发明专利技术提供一种使SynthText数据适用于扫描笔文字检测的裁剪方法,包括:S1.获取图像文字位置,给图像做二值化;S2.利用二值图,对图像进行裁剪;S3.计算裁剪后每个字符相对位置。本方法使得SynthText公开数据集适用于文档检测的情况,无需再后期适用小批量文档检测数据集微调。经过本方法更改后的SynthText数据集更适合对图像高度有要求的实际应用场景。对扫译笔中的字符检测任务适配更好。

【技术实现步骤摘要】

本专利技术属于ocr文本检测以及数字图像处理领域,特别涉及一种使synthtext数据适用于扫描笔文字检测的裁剪方法。


技术介绍

1、光学字符识别(ocr)技术被广泛的使用在不同场景下,例如:街景文字识别,文档文字识别等一系列应用。为了定位相关文字的位置,则需要大量的图像检测训练集,synthtext则是一个对文字进行定位的数据,用作训练深度神经网络模型的数据集,包含图像与图像中每个字符。

2、现有的synthtext数据集中图像高度平均800像素,而在扫描笔中每次扫描到图像的高度为120个像素,显然以现有的synthtext图像高度不适用于扫描笔中的文字字符检测任务。而且如果直接对图像按照想要的高度进行切割,会存在切割的边界处于文字中间的情况,不利于字符检测神经网络的训练。

3、换句话说,现有的synthtext数据集是一种在自然场景下合成的文字检测数据集,由于其高度(像素值)在400-1200之间,不适用于扫描文档检测(扫描文档的高度为120),需要对synthtext数据集进行裁剪。

4、此外,现有技术中常用技术术语包括:

5、synthtext:这是一个综合生成用于训练字符检测的数据集,其中单词实例被放置在自然场景图像中,同时考虑了场景布局,由80万张图像组成。图像分割:将数字图像细分为多个图像子区域(像素的集合)。

6、opencv(open source computer vision library):开源图像处理库。


技术实现思路

1、为了解决上述问题,本申请的目的在于:本申请解决的是在对synthtext数据集中图像进行切割满足扫描笔训练检测任务的情况下不损坏图像中的字符信息。

2、具体地,本专利技术提供一种使synthtext数据适用于扫描笔文字检测的裁剪方法,所述方法包括以下步骤:

3、s1.获取图像文字位置,给图像做二值化:

4、s1.1,根据文字的包围框bounding box标签将文字区域像素值转换成0,使得文字包围框区域显示为黑色,其中,synthtext数据集包含文字的bounding box标签;

5、s1.2,接着将图像区域内像素值大于0的区域赋值为255,公式如下:

6、

7、使得非文字框区域的值都为255,其中mij表示为区域内像素值;

8、s2.利用二值图,对图像进行裁剪:

9、s2.1,使用opencv库中cv2.findcontours()函数找到图像中的每个轮廓,函数如下:

10、

11、其中countours是一个由n个元素组成的列表,每个元素i是一个由mi个点(x{i,j},y{i,j})组成的集合,表示第i个边缘的坐标集合;i和j分别表示边缘的索引和点的索引,x{i,j}和y{i,j}分别表示第i个边缘中第j个点的水平和垂直坐标;

12、s2.2,使用opencv库中cv2.minarearect()函数算出每一个轮廓的矩形,函数如下:

13、rect=((x0,y0),(w,h),θ),

14、其中,rect是cv2.minarearect()函数返回的数据结构,表示矩形的顶点坐标、宽度和高度以及顺时针旋转的角度;(x0,y0)表示矩形中心的坐标,(w,h)分别表示矩形的宽度和高度,θ是矩形的旋转角度,表示矩形相对于水平轴逆时针旋转的角度;

15、s2.3,过滤掉面积较小的矩形,所述面积较小是低于所有矩形平均面积的1/4;

16、s2.4,使用opencv库中cv2.boxpoints()函数得到矩形四个顶点坐标[x1y1 x2y2x3y3 x4y4],从左上角开始,分别为(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4);所述cv2.boxpoints()函数用于获得矩形的四个顶点:表示如下:

17、循环体:for i,contour in enumerate(contours):

18、判断i==0是否成立:if i==0:

19、继续:continue

20、找面积最小的矩形:

21、rect=cv2.minarearect(contour)

22、得到最小矩形的顶点坐标:

23、box=cv2.boxpoints(rect)

24、标准化顶点坐标到整数:

25、box=np.int0(box)

26、上面代码中的contours由s2.1步得到;

27、s2.5,根据获得矩形框坐标,使用切片操作裁剪图像,表示如下:

28、x1,y1,x2,y2=box

29、裁剪出矩形框所在的区域

30、roi=img[y1:y2,x1:x2];

31、s3.计算裁剪后每个字符相对位置:

32、根据裁剪后每个矩形框的左边界与上边界距离原图像左边界与上边界的距离,对存在矩形框内每个字符的坐标位置相应进行调整:

33、假设x为某一个字符,顺时针左、上、右、下点的坐标分别为(x1,y1),(x2,y1),(x2,y2),(x1,y2);

34、假设margin_left,margin_top分别为字符所在矩形距离原始图像左上与右上的距离,w,h为裁剪后图像的宽高,则裁剪后字符顺时针左、上、右、下点的坐标分别为:

35、(max(x1-margin_left,0),max(y1-margin_top),0),

36、(min(x2-margin_left,w),max(y1-margin_top),0),

37、(min(x2-margin_left,w),min(y2-margin_top,h)),

38、(max(x1-margin_left,0),min(y2-margin_top,h))。

39、所述方法适用ocr在文档中的应用。

40、所述方法适用于扫译笔。

41、由此,本申请的优势在于:本方法使得synthtext公开数据集适用于文档检测的情况,无需再后期适用小批量文档检测数据集微调。经过本方法更改后的synthtext数据集更适合对图像高度有要求的实际应用场景。对扫译笔中的字符检测任务适配更好。

本文档来自技高网...

【技术保护点】

1.一种使SynthText数据适用于扫描笔文字检测的裁剪方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的一种使SynthText数据适用于扫描笔文字检测的裁剪方法,其特征在于,所述方法适用OCR在文档中的应用。

3.根据权利要求1所述的一种使SynthText数据适用于扫描笔文字检测的裁剪方法,其特征在于,所述方法适用于扫译笔。

【技术特征摘要】

1.一种使synthtext数据适用于扫描笔文字检测的裁剪方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的一种使synthtext数据适用于扫描笔文字检测的裁...

【专利技术属性】
技术研发人员:孙振鹏
申请(专利权)人:北京君正集成电路股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1