【STD文本检测项目】之 DBNet++(一)用MMOCR在自己的数据集上训练进行文本检测

目录

前言

环境

准备环境

准备数据集

配置数据集

配置模型

训练

测试验证效果

使用模型

后续


前言

STD的定义,来自chatGPT

Scene Text Detection(场景文本检测):也被称为文本定位。它是指从自然场景图像中自动检测和定位出存在的文本区域。场景文本检测的目标是找到图像中包含文本的矩形边界框,以便后续的文字识别或其他文本分析任务。

 一般是作为STR(Scene Text Recogition 场景文本识别)的上游任务,STD负责把图中的文本区域圈出来,STR负责识别圈出来的文本内容。

STD有很多开源项目,可以参考Scene Text Detection | Papers With Code

 这里选用的是当前较为流行,效果比较好,支持检测不规则文本行的DBNet++,在MMOCR框架上进行训练和推理。

环境

设备 RTX 3060 6G 独显笔记本

Windows 10

Python 3.10.9

Pytorch 1.12.1

CUDA 11.6

MMEngine 0.7.0

MMCV 2.0.0rc4

MMDet 3.0.0rc6

MMOCR 1.0.0rc6

准备环境

安装anaconda,准备python环境

conda create -n mmlab python=3.10
conda activate mmlab

安装项目的python依赖,torch和torchvision建议用官网方式装,尽量用pip装,用conda直接装似乎有坑。(这里我安装的是cuda11.6下的torch1.12.1)

pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116

安装MMOCR环境

pip install -U openmim
mim install mmengine==0.7.0
mim install mmcv==2.0.0rc4
mim install mmdet==3.0.0rc6

克隆MMOCR项目代码并安装

git clone https://github.com/open-mmlab/mmocr.git
cd mmocr
pip install -v -e .

更多使用说明可以查看官方文档欢迎来到 MMOCR 的中文文档! — MMOCR 1.0.0 文档

准备数据集

这里我用的是Label Studio GitHub - heartexlabs/label-studio: Label Studio is a multi-type data labeling and annotation tool with standardized output format

按官网的教程安装即可,安装完会启动一个网页服务,在网页上进行标注。

这里建议用conda另外开一个虚拟环境,label-studio支持的python版本不能超过3.9。

conda create -n label python=3.9
conda activate label
 
# Requires Python >=3.7 <=3.9
pip install label-studio
 
# Start the server at http://localhost:8080
label-studio

启动后随便注册一下,进入主页面创建一个项目。

进入项目,在Settings设置里修改下要标注的格式Labeling Interface,可以直接将以下的配置填写到code栏里。我的场景下文字是弯曲的,所以我用polygen(多边形)进行标注,如果文本行是直的,也可以直接用rectangle(矩形)进行标注。

配置如下,代表标注的内容是图片,标注的数据是多边形框和文本内容。更多配置可查看Label Studio官网。