文本检测和一般目标检测的不同——文本线是一个sequence(字符、字符的一部分、多字符组成的一个sequence),而不是一般目标检测中只有一个独立的目标。这既是优势,也是难点。优势体现在同一文本线上不同字符可以互相利用上下文,可以用sequence的方法比如RNN来表示。难点体现在要检测出一个完整的文本线,同一文本线上不同字符可能差异大,距离远,要作为一个整体检测出来难度比单个目标更大——因此,作者认为预测文本的竖直位置(文本bounding box的上下边界)比水平位置(文本bounding box的左右边界)更容易。
环境:
- pytorch最新版
- ubunt18.05
- opencv
- pillow
- numpy
前言
前期数据的准备,需要大家自己去爬取或者下载 GitHub上面很多,国外的网站有很多开源的;
提示:以下是本篇文章正文内容,下面案例可供参考
一、数据集准备
在这里我使用了600张图片来训练模型,由于数据集不是很好,模型的泛化能力较差(鲁棒性差),大家可以使用更多的数据来训练模型。 样本数据集 在这里大家爱还可以使用自己准备的数据集,来训练模型。
二、数据标签准备
在这里的标签就更简单了,大家可以使用labelimg标签工具来打标签,得到的XML文件可以提取其中的坐标信息;
在这里就需要注意的是,我们的每张图片的标签文件(xxxx.txt)必须是一张图一个标签文件,名字必须是一一对应 左上,右上,右下,左下,str
三、模型训练
链接:https://pan.baidu.com/s/14JiJvkpNkFnIrGmkPxOjRQ 提取码:8888
大家可以下载下来,目录结构就是大概这样,ctpn_train.py是训练文件,其他的文件都是配置文件。
大家吧config.py文件里面的数据 集路径配置好就行
四、文字检测(CTPN)完整代码
链接:https://pan.baidu.com/s/14JiJvkpNkFnIrGmkPxOjRQ 提取码:8888
五、结果展示
希望这篇文章对你有用! 谢谢点赞评论!
|