TAB,思考边界: 融合多级边界信息以进行地标热图回归,下载TAB的源码_GitHub_帮酷
CVPR2022弱监督语义分割:
开源仓库:
简单的单人跟踪:(基于目标检测和特征映射算法)
演示视频:
斯坦福机器学习课程资料及算法实现 Andrew Ng-斯坦福CS229机器学习课程资料及算法在Python中的实现_Sierkinhane的博客-CSDN博客
代码存储库:GitHub - Sierkinhane/CS229-ML-Implementation:CS229 中引入的算法的实现。
我参加了六月和七月的比赛。 我正在做的项目是从图片中提取文本信息。 首先接触了一些文本检测算法(比如CTPN、East),然后研究了文本识别算法(我觉得比较好的是CRNN)。 。 代码实现是基于参考算法作者实现的pytorch和python3版本的crnn。 由于python版本的迭代,代码复用比较困难,这涉及到ctc、python编码、中文数据集、以及如何微调模型以适合自己的应用场景等各种问题。 实现的深度学习框架是pytorch。 虽然TensorFlow也可以使用,但是它有很多陷阱。 其实用什么框架实现并不重要,现在语法比较简单,也不难理解!
因为我踩过很多坑并且填过,所以我会把我填过的项目贡献给大家!
CRNN_Chinese_Characters_Rec,(CRNN) 汉字识别,下载CRNN_Chinese_Characters_Rec的源码_GitHub_帮酷代码地址
这次我分享的是文本识别算法CRNN。 具体内容我就不多说了。 本文主要是算法代码的实现(参考原作者)。 建议大家在研究算法的时候看一下作者发的论文! CRNN论文地址:(作者为华中科技大学教师)
我们先放一些效果图,用360万中文数据训练集。 最后,我们可以微调到 97.7% 的验证准确率。 训练好的模型位于 train_models 文件夹中。
第一张和第二张图是最近修改的demo,第三张和第四张图是CTPN算法和CRNN的结合,可以提取图片上的任意文本信息。 因为CTPN需要的环境比较复杂,所以这次只发布CRNN代码,因为CRNN实现环境比较简单。
现在让我们从代码开始:
代码的实现必须在Linux环境下(因为涉及到warp-ctc的安装,最好使用Ubuntu 16.04,能跳的坑我都基本填完了)
1.Warp-ctc安装
首先,您必须安装 warp-ctcGitHub - SeanNaren/warp-ctc:warp-ctc 的 Pytorch 绑定。 这是pytorch版本的ctc实现(计算序列损失,详细见论文)。 安装方法可以按照笔者的步骤进行。 如果遇到问题可以私聊我。 我在Ubuntu16.04上安装的,没有什么大问题,但是在17.04上遇到了很多问题,所以最好使用Ubuntu16.04作为代码执行环境。
现在只需将pytorch更新到1.1.0并使用它自己的ctcloss即可。
2. 测试
安装ctc后,直接运行终端,输入python3 test.py测试效果。 测试图像位于 test_images 文件夹中。
3. 培训
正确的训练效果如图所示。
在训练之前,我们首先创建一个数据集。 由于lmdb格式制作的360万中文数据集数据量有十几G,所以没有直接放到Github上。
首先下载360万中文数据集:合成中文字符串数据集.rar_免费高速下载|百度网盘-无限分享
关于数据集,我想说明一下,文本识别领域有很多识别场景,比如场景文本识别和更正式的图像信息识别。 这些不同的应用场景需要使用不同的数据集进行相应的训练。 这次我自己应用的场景是比较正式的字体识别,所以这个训练集可能并不适用于所有场景,但它确实提供了很好的数据集资源! 另外,训练集最好具有语义信息。 如果只是随机组合文本生成图像作为训练集,模型收敛速度会较慢,准确率也会受到限制!
下图是训练集的一部分
(这个数据是在Github上找到的,目前还没有找到他的地址,非常感谢作者的无私奉献!)
数据集是通过随机选择固定长度数量的单词并进行模糊、倾斜和颜色变化等操作来生成的。 比较通用,可以大大提高模型的鲁棒性。
下载数据集后,如果解压出现错误且不完整,可以使用好的压缩方法来修复。
修改crnn_main_v2.py中的图片路径和标签路径,运行python crnn_main_v2.py
下一步是以 lmdb 格式创建数据。
我链接图片对应的标签:密码:u7bo。 只需要将下载的数据集放入lmdb文件中,根据情况修改to_lmdb.py中的文件名并运行py程序即可创建lmdb格式的数据! (需要Python2才能运行to_lmdb.py)
制作好数据集后,将其放入lmdb_dataset文件夹中,并调用终端:
python3 crnn_main.py --train_root 训练数据集路径 --val_root 验证集路径 --cuda (如果有cuda加速则可选)
大概就是这个过程,最重要的是你自己想一想!
(变长识别就是将训练集图像的缩放feed应用到神经网络的大小来测试。test.py已经标注了!)
(如果对你有帮助,可以在Github上给我一个star!)
(下一篇:斯坦福机器学习课程资料及算法实现Andrew Ng-斯坦福CS229机器学习课程资料及算法在Python中的实现_Sierkinhane的博客-CSDN博客)
【开源仓库:简单单人跟踪:基于目标检测与特征映射算法的Python实现-Sierkinhane】相关文章: