# 山东大学(威海)2022机器学习作业 轮胎字符识别
------
# 结果预览
![image-20230130021643762](/asset/image-20230130021643762.png)
测试环境:
CPU: Intel Core i7-12700KF
GPU: NVIDIA RTX 3080TI
RAM: 32GB
注:Data文件并未上传。
------
布匹缺陷检测:https://github.com/Xande1r/Fabric-Defection-Detection
------
# 一、OCR简述
## 1.1 OCR是什么
OCR(Optical Character Recognition,光学字符识别)是计算机视觉重要方向之一。传统定义的OCR一般面向扫描文档类对象,现在我们常说的OCR一般指场景文字识别(Scene Text Recognition,STR),主要面向自然场景,如下图中所示的牌匾等各种自然场景可见的文字。
## 1.2 OCR流程
文字识别的全流程包括:图像预处理,OCR识别,恢复版面,后处理。
OCR主要分为两部分:
1. 文本检测, 即找出文本所在位置。
2. 文本识别, 将文字区域进行识别。
## 1.3 OCR技术挑战
在OCR技术中,有几种最常见的问题:透视变换、尺寸过小、文字扭曲、背景复杂、字体多样、语言混合、字体模糊、光照复杂。这些问题,在本次的轮胎OCR识别中都有着或多的体现。
------
# 二、图像预处理
## 2.1 原始方法
在本次项目中,我个人使用的点云转换为图像的具体步骤如下:
1. 原始数据提取高度数据
2. 高度数据转化为高度图
3. 裁切高度图
4. 修复图像
5. 展平图像
6. 规格化
7. 去噪
8. 直方图均衡化
9. 直方图裁切
### 2.1.1 原始数据提取高度数据
原始数据是一个(X,Z,Y)格式的三维点云数据,但是根据扫描线的流程来看,可以只采用Z坐标,因为扫描线是逐行的。
### 2.1.2 图像修复
图像中存在着本不该存在的点,因此需要去除这些点。采用滤波的方式填充、去除这些点。参考资料,可采用的方案有:
1. 去零均值滤波:虽然会在一定程度上破坏图像的细节,但是有效的抑制噪声。而且实际检验,对于细节的丢失可以接受。
2. 形态学运算:主要是腐蚀与膨胀。这一操作可以快速提取形态特征,但是效果并不如上面的滤波。
### 2.1.3 展平图像
利用Open3D生成的点云观察可得,轮胎本省并不是平整的,而是一个曲面。这就需要展平图像。
![image-20230130142811133](/asset/image-20230130142811133.png)
本次采用的方法是:估计曲面的高度,然后用原本的点云减去估计的高度。估计高度的方法有:
1. 扫描线均值估计:求出轮胎每一行的高度平均值,依次作为曲面的估计值。
2. 均值估计:利用均值模糊的原理,消除高度差。
根据生成的高度图来看,扫描线均值估计的结果虽然更精确,但是因为轮胎本身不够平整,会产生块状伪影;而均值估计则是会出现条状伪影。因此决定将这两种方法结合使用。
## 2.2 另一种方法
![picture_1](/Original_Images/picture_1.PNG)
### 2.2.1 预处理:样条插值网格化(可选)
对读入的数据进行样条插值网格化。这一步骤是可选的。经过测试,个人觉得对生成的图片质量影响不大,但是用了之后跑起来会比较慢。
直接读入数据,从原始数据提取高度数据也是可行的一种方法。
### 2.2.2 解决轮胎弯曲
下一个问题是,如何克服轮胎弯曲的问题?
本次提出的想法是:展平图像,并且还需去除轮胎的弯曲。
获取图像的长宽。设置一些预设的参数。创建一个空的平面。
设置一个1*40,值全为0.25的滤波器。
接下来,通过对每一行循环,从图像的开头到结尾,取图像的一部分作为patch。
在这里,patch的大小是20。当然,patch的大小是要参考实际情况而定的。
![image-20230130213527005](/asset/image-20230130213527005.png)
然后,将所有为0的值重新设置为patch里最大的值。
接下来,将patch里所有行堆叠在一起,取其中的最小值,生成一个一行数组。这个数组里面的值就是该patch里的最小值。
![image-20230130215404976](/asset/image-20230130215404976.png)
在取最小值之后,利用上文提到的1*40滤波器对其滤波,让他变得平滑,这样是为了方便接下来的展平。
滤波器的大小不是固定的,可以根据效果调整。
![image-20230130215648634](/asset/image-20230130215648634.png)
在卷积完之后,可以看到曲线变得更加平滑。这样就意味着文字的部分被消去了。
取出该patch里的第一行,也就是该patch里要处理的行,与卷积完之后的图像叠放在一起,取最小值,可以凸显文字。
![image-20230130220015723](/asset/image-20230130220015723.png)
这里可以更加清楚的看到。
![image-20230130220050329](/asset/image-20230130220050329.png)
但是这样也会产生一个问题:卷积完之后,边缘的值会变得异常。因此需要再处理边缘值。
![image-20230130224016405](/asset/image-20230130224016405.png)
处理完之后,再将patch中的第一行与生成的值对比,将其相减,这样保留下来的就是文字了。
![image-20230130224434310](/asset/image-20230130224434310.png)
最后再将其加入上文生成的平面中。
如此循环就能生成图像。
但是生成的图像对比度不明显,原因是这样的:![image-20230130224829009](/asset/image-20230130224829009.png)
在这其中存在着诸多小于0的元素,因此要把这些元素变成0。
除此之外,因为边缘过大,所以还需要去除0.5以上的部分。把这些地方的元素钳制到0.5即可。
![image-20230130225149165](/asset/image-20230130225149165.png)
得到的效果如上图所示。
### 2.2.3 去除起伏
观察生成的平面,发现生成的平面实际上还是有起伏的。之前所作的操作在转置之后相当于是对每一列滤波。
![image-20230130225711744](/asset/image-20230130225711744.png)
而现在要做的就是再对每一行滤波。同样的设置一个1*40的矩阵,值全部为0.025,对其卷积。
这是卷积之前的图像(部分)。
![image-20230130232332716](/asset/image-20230130232332716.png)
这是卷积之后的图像(部分)。
![image-20230130232428616](/asset/image-20230130232428616.png)
![image-20230130232449109](/asset/image-20230130232449109.png)
可以看到蓝色线(之前),橘红色(之后)。取两者之间的最大值,将其送回。
除此之外,轮胎上存在毛刺,这也是需要去除的部分。方法是:寻找图像中的峰值(代表着毛刺),将他们提取出来,通过形态学操作使其膨胀,然后对其取反,去掉这些洞。效果如图。
![image-20230130233914877](/asset/image-20230130233914877.png)
但问题就是,这样也会影响文字主体。不过就整体而言,这样的代价是可以接受的。下一步就是进行文字检测。
![image-20230130233949493](/asset/image-20230130233949493.png)
------
# 三、文本检测
## 3.1 概述
文本检测的任务是定位出输入图像中的文字区域。文字检测是文字识别过程中的一个重要环节。对于简单场景,可以采用:形态学操作、MSER+NMS等算法;对于复杂场景可以采用:CTPN、SegLink、EAST、DBnet等。
## 3.2 MSER
在初期尝试的时候,尝试使用MSER+NMS算法,但是存在着将杂讯区域识别成文字区域的问题。MSER(Maximally Stable Extremal Regions,最大稳定极值区域)是一个较为流行的文字检测传统方法。
同时,一般会采用 NM
没有合适的资源?快使用搜索试试~ 我知道了~
2023机器学习作业 轮胎字符识别实现+源代码+文档说明+数据
共157个文件
png:63个
jpg:27个
py:19个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 16 浏览量
2023-12-23
03:58:55
上传
评论
收藏 333.11MB ZIP 举报
温馨提示
1、资源内容: 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行成功,功能ok的情况下才上传的。 3、适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 4、作者介绍:某大厂资深算法工程师,从事Matlab、Python、C/C++、Java、YOLO算法仿真工作10年;擅长计算机视觉、 目标检测模型、智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、智能控制、路径规划、无人机等多种领域的算法仿真实验,更多源码,请上博主主页搜索。 -------------------------------------------------------------------------- 原始数据提取高度数据 高度数据转化为高度图 裁切高度图 修复图像 展平图像 规格化 去噪 直方图均衡化 直方图裁切
资源推荐
资源详情
资源评论
收起资源包目录
2023机器学习作业 轮胎字符识别实现+源代码+文档说明+数据 (157个子文件)
Cache.cach 0B
inference.pdiparams.info 26KB
inference.pdiparams.info 26KB
inference.pdiparams.info 26KB
inference.pdiparams.info 21KB
inference.pdiparams.info 21KB
inference.pdiparams.info 21KB
Result_5.jpg 10.72MB
Result_6.jpg 10.69MB
Result_12.jpg 10.64MB
Result_13.jpg 10.63MB
Result_10.jpg 7.67MB
Result_11.jpg 7.49MB
Result_14.jpg 7.45MB
Result_2.jpg 7.31MB
Result_3.jpg 6.61MB
Result_4.jpg 6.56MB
Result_1.jpg 5.38MB
Result_7.jpg 5.31MB
Result_9.jpg 3.61MB
Result_8.jpg 3.57MB
004.jpg 197KB
007.png_act.jpg 86KB
004.jpg_act.jpg 83KB
004.jpg_predict.jpg 79KB
012.png_act.jpg 78KB
007.png_predict.jpg 75KB
012.png_predict.jpg 69KB
005.png_act.jpg 66KB
005.png_predict.jpg 66KB
001.png_act.jpg 47KB
001.png_predict.jpg 47KB
001.png_act_east.jpg 25KB
001.png_predict_east.jpg 25KB
LICENSE 1KB
LICENSE 1KB
train.log 116KB
PCGrid2D20220115.m 6KB
README.md 27KB
README.md 5KB
inference.pdiparams 8.5MB
inference.pdiparams 8.5MB
inference.pdiparams 8.5MB
inference.pdiparams 2.27MB
inference.pdiparams 2.27MB
inference.pdiparams 2.27MB
inference.pdmodel 1.67MB
inference.pdmodel 1.52MB
inference.pdmodel 1.52MB
inference.pdmodel 997KB
inference.pdmodel 997KB
inference.pdmodel 997KB
latest.pdopt 138B
latest.pdparams 2.38MB
image-20230130021643762.png 13.05MB
picture_7.PNG 8.93MB
picture_7.PNG 8.93MB
picture_8.PNG 8.86MB
picture_8.PNG 8.86MB
picture_13.PNG 8.04MB
picture_13.PNG 8.04MB
picture_14.PNG 8.02MB
picture_14.PNG 8.02MB
picture_5.PNG 6.13MB
picture_5.PNG 6.13MB
picture_6.PNG 6.11MB
picture_6.PNG 6.11MB
picture_9.PNG 5.89MB
picture_9.PNG 5.89MB
picture_10.PNG 5.84MB
picture_10.PNG 5.84MB
picture_11.PNG 5.42MB
picture_11.PNG 5.42MB
picture_12.PNG 5.32MB
picture_12.PNG 5.32MB
picture_2.PNG 4.68MB
picture_2.PNG 4.68MB
picture_1.PNG 4.68MB
picture_1.PNG 4.68MB
image-20230130025814421.png 4.14MB
picture_4.PNG 2.98MB
picture_4.PNG 2.98MB
picture_3.PNG 2.96MB
picture_3.PNG 2.96MB
image-20230130142811133.png 1.34MB
007.png 742KB
svtr_tiny.png 726KB
012.png 605KB
image-20230130225711744.png 436KB
001.png 360KB
image-20230130225149165.png 246KB
image-20220909113850254.png 211KB
East.network.png 191KB
005.png 174KB
image-20230131002104733.png 162KB
image-20230130030011420.png 151KB
image-20230131002406619.png 148KB
image-20220821110913807.png 146KB
East.limitations.png 135KB
image-20230130224016405.png 124KB
共 157 条
- 1
- 2
资源评论
机器学习的喵
- 粉丝: 486
- 资源: 1252
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功