ABCNet:基于自适应贝塞尔曲线的实时端到端自然场景文字检测及识别网络

论文推荐ABCNet

论文链接 : https://arxiv.org/abs/2002.10200
官方开源代码: https://github.com/aim-uofa/AdelaiDet

论文是2020 CVPR 收录, 贡献1)提出采用贝塞尔曲线来拟合任意形状文本,2)提出贝塞尔对齐方式更准确地提取文本实例 .

环境配置和运行demo.py遇到的问题

系统配置:ubuntu16.04 + cuda10.0
因该项目基于最新的detecron2构建,需要torch>=1.3.建议隔离一个虚拟环境安装相应的库.

Q1 运行python setup.py build develop编译adet库时出现, /usr/bin/ld: cannot find -lcudart

  • 问题原因:安装的/usr/local/cuda-10.0/lib64/中cudart库不完整.
    ls -lh /usr/local/cuda-10.0/lib64 | grep cudart
    完整的lib64目录下包含四个文件:

    libcudart.so
    libcudart.so.10.0
    libcudart.so.10.0.130
    libcudart_static.a

  • 解决方案:重装cuda-10.0, 或者将某个安裝完整的cuda10.0的这几个文件拷贝到对应目录即可.
    再重新运行之前编译命令,编译成功后会如图所示完成AdelaiDet安装.

Q2 运行ABCnet的测试代码:python -m e demo/demo.py --config-file configs/BAText/CTW1500/attn_R_50.yaml --input totaltext/Images/Test --opts MODEL.WEIGHTS test/ctw1500_attn_R_50.pth出现如下问题
QObject::moveToThread: Current thread (0x55f48724d2a0) is not the object’s thread (0x55f485279c70

  • 解决方案:未解决.可指定"–output"来将测试结果输出到目录,暂时避免这个问题.

基于AdelaiDet训练自定义ABCNet

数据集

  • abcnet数据标签生成
    自定义abcnet的数据集,以labelme的目标框标注为例生成.转换脚本百度云提取码: 42v4
  • 数据集结构
data└── train├── 0001.jpg├── 0002.jpg└── 0003.jpg└── test├──1001.jpg├── 1002.jpg└── 1003.jpg└── annotations├── train.json├── test.json
  • 修改相关配置文件进行训练

    • 将制作好的data数据目录放在"AdelaiDet/datasets"目录
    • 修改"adet/data/builtin.py"中的_PREDEFINED_SPLITS_TEXT值来指定训练测试数据,注意这里默认是在datasets下的,所以它们的相对路径都是从下层目录开始的.
    _PREDEFINED_SPLITS_TEXT = {
    "totaltext_train": ("totaltext/train_images", "totaltext/train.json"),
    "totaltext_val": ("totaltext/test_images", "totaltext/test.json"),
    ...
    "abcnet_train": ("data/train", "data/annotations/train.json"),
    "abcnet_test": ("data/test", "data/annotations/test.json"),}
    
  • 在需要训练的配置文件中指定数据集即可.以configs/BAText/CTW1500/Base-CTW1500.yaml为例,
    DATASETS:
    # detail cfg: AdelaiDet/adet/data/builtin.pyTRAIN: ("abcnet_train",)TEST: ("abcnet_test",)
    
  • 训练 OMP_NUM_THREADS=1 python tools/train_net.py --config-file configs/BAText/TotalText/attn_R_50.yaml --num-gpus 1
    “args”: ["–config-file",“configs/BAText/CTW1500/attn_R_50.yaml”,
    “–input” ,“totaltext/Images/Test”,
    “–output”,“output/total”,
    // “–webcam”,
    “–opts”, “MODEL.WEIGHTS”, “pretrained/ctw1500_attn_R_50.pth”,
  • 推理python demo/demo.py ---config-file configs/BAText/TotalText/attn_R_50.yaml –input datasets/data/test --output res --opts “MODEL.WEIGHTS output/batext/ctw1500/attn_R_50/model_0009999.pth

样例展示

测试图片为total-text测试图

当前的不足:训练了中文手写和英文印刷体,比较直观的问题是测试出现了比较多的漏检,密集文本行间会出现预测的贝塞尔曲线交叉问题.即有密集文本粘连问题.

ABCNet训练测试自定义数据集相关推荐

  1. FairMOT训练测试自定义数据集

    1.将自己的数据集(视频需转为一帧一帧的图片,转换工具Convert to JPG - Convert images, documents and videos to JPG (img2go.com) ...

  2. mask-rcnn训练测试自制数据集

    mask-rcnn训练测试自制数据集 本项目简介 本项目用于口腔模型分割,数据类型有7种,本文主要用于介绍如何使用自制数据集训练自己的模型 训练环境配置 操作系统:win10 GPU: GTX 108 ...

  3. 行人属性识别二:添加新网络训练和自定义数据集训练

    序言 上一篇记录了训练过程,但是项目中提供的模型网络都是偏大的,如果想要在边缘设备上部署,还是比较吃力的,所以本文记录如何加入新的网络模型进行训练,以repvgg为例,加入mobilenet.shuf ...

  4. CycleGAN与pix2pix训练自己的数据集-Pytorch

    github:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix 参考:https://blog.csdn.net/Gavinmiaoc/a ...

  5. mmrotate自定义数据集安装部署训练测试

    环境 Ubuntu18.04 cuda10.2 python3.7 2080s 一.安装 conda create -n mmrotate python=3.7 conda activate mmro ...

  6. YOLOv5自定义数据集训练

    YOLOv5自定义数据集训练 简介 本文介绍如何在自己的VOC格式数据集上训练YOLO5目标检测模型. VOC数据集格式 首先,先来了解一下Pascal VOC数据集的格式,该数据集油5个部分组成,文 ...

  7. 【Python】mmSegmentation语义分割框架教程(自定义数据集、训练设定、数据增强)

    文章目录 0.mmSegmentation介绍 1.mmSegmentation基本框架 1.1.mmSegmentation的model设置 1.2.mmSegmentation的dataset设置 ...

  8. 利用COCO API测试自己数据集训练的YOLOv3模型的mAP(VOC格式数据集)

    目录 工具 前言 生成标注集的json文件 数据集准备 将voc注解格式数据集的注解转换成txt注解格式 自定义数据集的注解转换成coco的注解格式 生成结果集的json文件 安装darknet 获取 ...

  9. MMDetection 快速开始,训练自定义数据集

    本文将快速引导使用 MMDetection ,记录了实践中需注意的一些问题. 环境准备 基础环境 Nvidia 显卡的主机 Ubuntu 18.04 系统安装,可见 制作 USB 启动盘,及系统安装 ...

最新文章

  1. 网路游侠:日志审计系统与SOC的区别
  2. Annotation之一:Java Annotation基本功能介绍
  3. js md5 过滤表情 数据签名
  4. mysql考勤系统设计函数_Mysql实战之员工考勤系统数据库建立
  5. Helpful C Tools:source、executables、debugging and performance tuning
  6. idea连接Mysql报错
  7. 遇见Flask-Script
  8. 4.json字符串转换集json对象、json对象转换json字符串
  9. ROM 、RAM和FLASH 的区别
  10. 【阅读笔记】《创京东:刘强东亲述创业之路》
  11. qqkey获取原理_HIT我守护的一切手游电脑版苹果版有吗 HIT我守护的一切iOS电脑版模拟器...
  12. 普中28335开发攻略_凌乱的DSP笔记(1)-F28335基础知识
  13. IDEA Plugins中搜索不到插件解决办法
  14. 每日一思(2022.5.19)——前无古人后无来者
  15. 迷宫(深度优先搜索)
  16. Linux磁盘空闲空间调度管理
  17. java中级工程师所需的技能_Java 工程师要具备哪些技能或技术?
  18. JavaScript 内存溢出解决办法 亲测有效
  19. TCP/IP协议(二、初识tcp)
  20. 中国医科大学2021年9月《临床营养学》作业考核试题

热门文章

  1. 吴恩达团队展示全新医疗影像识别技术:肺炎诊断准确率超过人类医生
  2. 面试算法LeetCode刷题班—BAT面试官带你刷真题、过笔试
  3. 白鹭编译自己写的其他模块作为插件使用
  4. 第四单元 用python学习微积分(二十六)积分-部分分式-掩盖法及它的组合应用
  5. 文章阅读:ET-Net
  6. 腐蚀与膨胀的基本操作
  7. 【华人学者风采】张强 北京大学
  8. 深耕精品智能小车市场,推动奇瑞新能源品牌产品智能化
  9. web开发重点,html5培训机构
  10. 中国富人爱“L”三大奢侈品牌 --