MSRA-TD5000数据集使用
中文检测的数据集:
清华的CTW,https://ctwdataset.github.io/ 但是数据集只存储在微云和google driver,微云空间受限不能完全保存,下载很麻烦
华科的MSRA TD5000,支持中英文的倾斜文本检测
http://www.iapr-tc11.org/mediawiki/index.php/MSRA_Text_Detection_500_Database_(MSRA-TD500)
MSRA TD5000分为图片和label,label表示方法是RBOX风格的,即
index, defficult label, x, y, width, height, theta
这里theta是弧度...
弧度就是角度的一种度量方式,是弧长与半径的比来计算。因此0表示0度,π表示180度,π/2表示90度。
python中,可以通过math.radius()
来做角度和弧度的变换。
print(math.radians(90)) # 1.5707963267948966
print(math.radians(180)) # 3.141592653589793
print(math.radians(360)) # 6.283185307179586
一般深度学习算法,矩形框都是QUAD风格的,即:
x1,y1,x2,y2,x3,y3,x4,y4,text
通过Python代码进行坐标的变换:
def rotate(angle, x, y):"""基于原点的弧度旋转:param angle: 弧度:param x: x:param y: y:return:"""rotatex = math.cos(angle) * x - math.sin(angle) * yrotatey = math.cos(angle) * y + math.sin(angle) * xreturn rotatex, rotateydef xy_rorate(theta, x, y, centerx, centery):"""针对中心点进行旋转:param theta::param x::param y::param centerx::param centery::return:"""r_x, r_y = rotate(theta, x - centerx, y - centery)return centerx+r_x, centery+r_ydef rec_rotate(x, y, width, height, theta):"""传入矩形的x,y和宽度高度,弧度,转成QUAD格式:param x::param y::param width::param height::param theta::return:"""centerx = x + width / 2centery = y + height / 2x1, y1 = xy_rorate(theta, x, y, centerx, centery)x2, y2 = xy_rorate(theta, x+width, y, centerx, centery)x3, y3 = xy_rorate(theta, x, y+height, centerx, centery)x4, y4 = xy_rorate(theta, x+width, y+height, centerx, centery)return x1, y1, x2, y2, x3, y3, x4, y4
或者这样:
"""
This file is to change MSRA_TD500 dataset format to ICDAR2015 dataset format.MSRA_TD500 format: [index difficulty_label x y w h angle]ICDAR2015 format: [left_top_x left_top_y right_top_X right_top_y right_bottom_x right_bottom_y left_bottom_x left_bottom_y]"""import math
import cv2
import os# 求旋转后矩形的4个坐标
def get_box_img(x, y, w, h, angle):# 矩形框中点(x0,y0)x0 = x + w/2y0 = y + h/2l = math.sqrt(pow(w/2, 2) + pow(h/2, 2)) # 即对角线的一半# angle小于0,逆时针转if angle < 0:a1 = -angle + math.atan(h / float(w)) # 旋转角度-对角线与底线所成的角度a2 = -angle - math.atan(h / float(w)) # 旋转角度+对角线与底线所成的角度pt1 = (x0 - l * math.cos(a2), y0 + l * math.sin(a2))pt2 = (x0 + l * math.cos(a1), y0 - l * math.sin(a1))pt3 = (x0 + l * math.cos(a2), y0 - l * math.sin(a2)) # x0+左下点旋转后在水平线上的投影, y0-左下点在垂直线上的投影,显然逆时针转时,左下点上一和左移了。pt4 = (x0 - l * math.cos(a1), y0 + l * math.sin(a1))else:a1 = angle + math.atan(h / float(w))a2 = angle - math.atan(h / float(w))pt1 = (x0 - l * math.cos(a1), y0 - l * math.sin(a1))pt2 = (x0 + l * math.cos(a2), y0 + l * math.sin(a2))pt3 = (x0 + l * math.cos(a1), y0 + l * math.sin(a1))pt4 = (x0 - l * math.cos(a2), y0 - l * math.sin(a2))return [pt1[0], pt1[1], pt2[0], pt2[1], pt3[0], pt3[1], pt4[0], pt4[1]]def read_file(path):result = []for line in open(path):info = []data = line.split(' ')info.append(int(data[2]))info.append(int(data[3]))info.append(int(data[4]))info.append(int(data[5]))info.append(float(data[6]))info.append(data[0])result.append(info)return resultif __name__ == '__main__':file_path = '/home/ljs/OCR_dataset/MSRA-TD500/test/'save_img_path = '../dataset/OCR_dataset/ctpn/test_im/'save_gt_path = '../dataset/OCR_dataset/ctpn/test_gt/'file_list = os.listdir(file_path)for f in file_list:if '.gt' in f:continuename = f[0:8]txt_path = file_path + name + '.gt'im_path = file_path + fim = cv2.imread(im_path)coordinate = read_file(txt_path)# 仿照ICDAR格式,图片名字写做img_xx.jpg,对应的标签文件写做gt_img_xx.txtcv2.imwrite(save_img_path + name.lower() + '.jpg', im)save_gt = open(save_gt_path + 'gt_' + name.lower() + '.txt', 'w')for i in coordinate:box = get_box_img(i[0], i[1], i[2], i[3], i[4])box = [int(box[i]) for i in range(len(box))]box = [str(box[i]) for i in range(len(box))]save_gt.write(','.join(box))save_gt.write('\n')
参考博客:https://www.cnblogs.com/skyfsm/p/10054386.html
https://www.cnblogs.com/xing901022/p/9579935.html
MSRA-TD5000数据集使用相关推荐
- MSRA TD-500数据集
Overview MSRA Text Detection 500 Database (MSRA-TD500) Cong Yao Huazhong University of Science and T ...
- 【今日CS 视觉论文速览】 27 Dec 2018
今日CS.CV计算机视觉论文速览 Thu, 27 Dec 2018 Totally 70 papers Interesting: 荧光显微镜数据集FMD,提供了包含12000张真实荧光显微镜的照片.主 ...
- 【论文解读】利用高光谱图像对场景反射率进行有效估计(Efficient Estimation of Reflectance Parameters from Imaging Spectropy)
文章目录 前言 摘要 Ⅰ. 介绍 Ⅱ. 估计反射参数的方法 A. 重建阴影因子 B. 表面反射率和镜面系数的计算 C. 光源功率谱计算 D. 光源方向 E. 将方法扩展到三色图像 Ⅲ. 实现方式 Ⅳ. ...
- 自然语言处理 - 二元语法与中文分词
二元语法与中文分词 之前的一篇文章里(自然语言处理 - 分词初窥)中我们介绍并实现了基于词典的最大匹配分词方法.这种方法简单直观,且词典扩充很方便.但词典分词难以消除歧义,给定两种分词结果" ...
- paper code sota 方法
Chinese Named Entity Recognition | Papers With Code 先看这个领域中在 公开数据集上的最佳方法,然后用这些方法做实验. 常见方法: IDCNN+CRF ...
- Swim-Transform V2:用于目标检测,视觉大模型不再是难题(附源代码)
关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 论文地址:https://arxiv.org/pdf/2111.09883.p ...
- msra数据集_ACL2020 | 香侬科技提出使用Dice Loss缓解数据集数据不平衡问题
论文标题:Dice Loss for Data-imbalanced NLP Tasks 论文作者:Xiaofei Sun, Xiaoya Li, Yuxian Meng, Junjun Liang, ...
- 继 Swin Transformer 之后,MSRA 开源 Video Swin Transformer,在视频数据集上SOTA
关注公众号,发现CV技术之美 继上半年分享的『基于Transformer的通用视觉架构:Swin-Transformer带来多任务大范围性能提升』.『Swin Transformer为主干,清华等提出 ...
- MSRA-TD500数据集(MSRA Text Detection 500 Database)
RRPN(<Arbitrary-Oriented Scene Text Detection via Rotation Proposals>)是文本检测中比较具有代表性的文章,文章地址:ht ...
最新文章
- linux目录都是什么意思,linux中的基本的目录结构都是什么意思,初学者都应该有印象-tmp是什么文件...
- vue --- vue-router
- java实现自动任务_Java实现定时任务的三种方法
- 互联网巨头布阵LoRaWAN,是又一春天还是不容乐观?
- 【转载】ArrayList 中数据删除 fail fast
- 【LeetCode】【HOT】287. 寻找重复数(抽象环形链表)
- WCF分布式开发常见错误(17):无法启动MSMQ服务
- PHP设计模式 之 单例模式(封装PDO)
- (转)招行开启零售银行智能投顾时代 尝试打造金融垂直自场景
- 封包(一)(雷电模拟器+ProxyDroid+查尔斯3.93+WPE)
- 软件工程基础 实验1《可行性研究与项目计划》
- iPhone4S使用红雪最新iOS5平刷和降级教程
- 『原创经典』标准日本语初级笔记完整版(1)
- 小米手机助手linux,小米手机助手怎么用?小米手机助手教程
- 深入java虚拟机(圣思园)
- 遗传算法和神经网络算法区别与联系
- 冰箱味道很臭?那你真的该学学这些除臭妙招
- 电子邮箱是什么?注册邮箱163、tom、qq等品牌有什么好处?
- 开放数据资产估值白皮书,首创“数据势能”估值模型【附下载链接】
- 【一文学会】vue.js入门到放弃