Vedastr:基于PyTorch的场景文本识别工具箱
时间:2022-07-22
本文章向大家介绍Vedastr:基于PyTorch的场景文本识别工具箱,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. Vedastr的特性
STR(Scene Text Recognition)的任务是识别文字框中的内容。我们在做关于STR的项目时发现,相关开源的toolbox较少,调研后发现现有的toolbox存在以下几个问题:
- 模块化程度较低
- 提供可配置接口较少
- 更新维护较少
基于此,我们在调研了一系列的STR相关论文的基础上,构建了一个基于PyTorch的STR的toolbox——Vedastr,具有以下几个特性:
- 模块化
- 易拓展性
- 配置简单
- 较完善的日志系统
- 及时的更新维护
Vedastr项目链接:
https://github.com/Media-Smart/vedastr
2. Vedastr的运行方式
2.1 配置文件
Vedastr提供了开放式接口,可以在config文件配置相关参数。比如,我们配置optimizer和learning rate scheduler的参数:
optimizer = dict(type='Adam', lr=0.001)
lr_scheduler = dict(type='StepLR', max_epochs=3, milestones=[100000, 200000])
2.2 Train、test和demo
- Train
python tools/train.py config-path
- Test
python tools/test.py config-path checkpoint-path
- Demo
python tools/demo.py config-path checkpoint-path img-path
3. 预训练模型
3.1 使用Vedastr复现的模型性能
Vedastr目前支持基于attention、ctc、fc和transformer的str方法。我们复现了几个STR模型,你可以在Benchmark and model zoo找到他们。下面是我们的一些复现指标:
- TPS-ResNet-BiLSTM-Attention:What Is Wrong With Scene Text Recognition Model Comparisons?
- Small-SATRN:On Recognizing Texts of Arbitrary Shapes with 2D Self-Attention
3.2 使用预训练模型实现一个demo
举个简单的例子:
- 下载 TPS-ResNet-BiLSTM-Attention
- 下载vedastr,按照Installation进行安装
- 激活conda环境,运行demo文件,识别的结果就会显示在你的终端窗口上
python tools/demo.py configs/tps-resnet-bilstm-attention TPS-ResNet-BiLSTM-Attention.pth input-img
input-img:
终端窗口:
Vedastr项目链接如下,欢迎使用和star!
https://github.com/Media-Smart/vedastr
- hdu 4081 Qin Shi Huang's National Road System (次小生成树)
- python读取系统信息
- hdu 3948 Portal (kusral+离线)
- linuxmint下pycharm创建桌面快捷方式
- hdu 1811 Rank of Tetris (并查集+拓扑排序)
- Pycharm常用技巧
- hdu 1598 find the most comfortable road(枚举+卡鲁斯卡尔最小生成树)
- 查询IP地址归属详情
- oracle commit详解
- hdu 4315 Climbing the Hill(阶梯博弈转nim博弈)
- iftop实时网络流量监控工具的安装使用
- hdu 3908 Triple(组合计数、容斥原理)
- hdu 4034 Graph (floyd的深入理解)
- hdu 4033Regular Polygon(二分+余弦定理)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- MySQL优化--查询分析工具以及各种锁
- MySQL优化--MVCC
- Linux入门--基础命令
- Linux入门--权限管理、任务调度、磁盘管理
- 【Rust日报】2020-08-05 -- 如何在2020年进一步加快 Rust 编译器的速度
- Linux学习--网络、进程、服务、软件管理
- IOS label 设置行高
- 重学数据结构(序:概览)
- 【Rust日报】2020-08-06 使用 Rust 编写的 Lambdas 在 AWS IoT 和 SQS 队列之间传递消息
- react-router-config的使用
- Spring 源码解读第七弹!bean 标签的解析
- Kubeflow实战: 入门介绍与部署实践
- matplotlib基础绘图命令之violinplot
- 性能分析(3)- 短时进程导致用户 CPU 使用率过高案例
- stat 命令家族(1)- 详解 vmstat