This repository provides train&test code, dataset, det.&rec. annotation, evaluation script, annotation tool, and ranking.

Overview

SCUT-CTW1500 Datasets

We have updated annotations for both train and test set.

Train: 1000 images [images][annos]

Additional point annotation for each character is included. Example can be referred to here.

wget -O train_images.zip https://universityofadelaide.box.com/shared/static/py5uwlfyyytbb2pxzq9czvu6fuqbjdh8.zip
wget -O train_labels.zip https://universityofadelaide.box.com/shared/static/jikuazluzyj4lq6umzei7m2ppmt3afyw.zip

Test: 500 images [images][annos]

wget -O test_images.zip https://universityofadelaide.box.com/shared/static/t4w48ofnqkdw7jyc4t11nsukoeqk9c3d.zip
wget -O test_labels.zip https://cloudstor.aarnet.edu.au/plus/s/uoeFl0pCN9BOCN5/download

Note all Chinese texts are annotated with '###' (ignore) in this updated version, because the number of Chinese is too small for both training and testing purpose. ArT and LSVT two optional large-scale arbitrarily-shaped text benchmarks for both Chinese and English.

SCUT-CTW1500 Evaluation

Original detection only evaluation script.

For both detection and end-to-end evaluation in the updated version, please refer to here. This scipt also includes evaluation example for Total-text.

Info

The project is outdated and will not be maintained anymore. Original info is kept in OLD_README.md.

Copyright

The SCUT-CTW1500 database is free to the academic community for research only.

For other purpose, please contact Dr. Lianwen Jin: [email protected]

Comments
  • QObject::moveToThread: Current thread (0x55c07be39a60) is not the object's thread (0x55c07c164490). Cannot move to target thread (0x55c07be39a60)

    QObject::moveToThread: Current thread (0x55c07be39a60) is not the object's thread (0x55c07c164490). Cannot move to target thread (0x55c07be39a60)

    Hello, Liu:

    I am running your code on Ubuntu16.04, however, when I run python demo.py, the following two lines showed repeatedly:

    QObject::moveToThread: Current thread (0x55c07be39a60) is not the object's thread (0x55c07c164490). Cannot move to target thread (0x55c07be39a60)

    Is it a normal phenomenon or there's something wrong with my operation? Thank you for your time.

                                                                                                                                     Dan Meng
    
    opened by danmeng90 14
  • inconsistency of gt labels from CTW-1500-reg-label.zip and ctw1500.zip

    inconsistency of gt labels from CTW-1500-reg-label.zip and ctw1500.zip

    There are some inconsistency of gt labels from CTW-1500-reg-label.zip and ctw1500.zip. For example, in 1017.txt, there are 21 instances in CTW-1500-reg-label.zip and 20 instances in ctw1500.zip.

    opened by PkuDavidGuan 8
  • Calculating Precision, Recall at least differently from MLT2017 paper

    Calculating Precision, Recall at least differently from MLT2017 paper

    Hi,

    Thank you so much for your repository!

    In voc_eval_polygon.py, it seems that you are accumulating tp, fp through all the test images? And then calculating prec, rec at the end. Let me know if I misunderstand it.

    But I think, at least in the paper, we should calculate prec and recall for each image, and then taking the average of these precision and recall.

    Thanks

    opened by XYudong 5
  • About the annotation 14points

    About the annotation 14points

    It seems that the 14points generated do not follow the clockwise or anti-clockwise order before
    feeding into the function cv2.drawcontours in ctw1500_loader.py? could you explain why? Thanks a lot.

    opened by yyjabiding 4
  • how to use Labeling tool to label curved text?

    how to use Labeling tool to label curved text?

    I am labeling my own dataset with the Labeling tool you provided, but I don't know the exact steps when labeling curved text. Maybe the guiding gif is too quick and I missed some key points? Waiting for more accurate guidance.

    opened by Xushanbo 3
  • Convert annotations of other datasets to CTW's format

    Convert annotations of other datasets to CTW's format

    Hello!

    The annotations in the CTW1500 retain the text reading order, which is very percious in data annotation. And the results on the CTW1500 can be reproduced very successfully.

    I also try to reproduce the results of CTD+TLOC on Total-Text and MSRA-TD500. Then I need to convert these two data sets into CTW's annotation format, which means that their reading order also needs to be retained.

    How can I complete such a conversion? In the original paper for Total-Text "Because the annotated numbers for this dataset are not fixed and the point positions are subjectively determined, we extracted the text boundaries and used a similar LSI method to resample the annotated points."

    Could you give more details on the conversion process?

    opened by billqxg 3
  • Bug in evaluation code

    Bug in evaluation code

    In voc_eval_polygon.py line 148 to 163 you have not applied offset as you did from171 to 175. Do you think it is a bug?

     # go down dets and mark TPs and FPs
        nd = len(image_ids)
        tp = np.zeros(nd)
        fp = np.zeros(nd)
        for d in range(nd):
            R = class_recs[image_ids[d]]
            bb = BB[d] # mask rcnn
            det_bbox = bb[:]
            pts = [(det_bbox[j], det_bbox[j+1]) for j in xrange(0,len(bb),2)]
            try:
                pdet = Polygon(pts)
            except Exception as e:
                print(e)
                continue
            if not pdet.is_valid: 
                print('predicted polygon has intersecting sides.')
                # print(pts, image_ids[d])
                continue
    

    I can't evaluate my results without changing the part. I changed it like that

    
     # go down dets and mark TPs and FPs
        nd = len(image_ids)
        tp = np.zeros(nd)
        fp = np.zeros(nd)
        for d in range(nd):
            R = class_recs[image_ids[d]]
            bb = BB[d] # mask rcnn
            det_bbox = bb[:]
            pts = [(det_bbox[j] + det_bbox[0], det_bbox[j+1] + det_bbox[1]) for j in xrange(0,len(bb),2)]
            pts = pts[2:]
            try:
                pdet = Polygon(pts)
            except Exception as e:
                print(e)
                continue
            if not pdet.is_valid: 
                import ipdb; ipdb.set_trace()
                print('predicted polygon has intersecting sides.')
                # print(pts, image_ids[d])
                continue
    
    opened by neouyghur 3
  • caffe compiling problem:box_annotator_ohem_layer.cu(50): error: a template argument may not reference a local type

    caffe compiling problem:box_annotator_ohem_layer.cu(50): error: a template argument may not reference a local type

    I met a problem during compiling caffe, I post the screenshot image as below. The problem is "box_annotator_ohem_layer.cu(50): error: a template argument may not reference a local type"; I add "-std=C++11" in makefile of caffe, however , the problem is still there. So have you met the problem during compiling caffe?

    I use Ubuntu16.04, cuda9.0, cudnn7.0.3; screenshot from 2018-12-13 14-27-54

    opened by wenston2006 3
  • PyTorch version?

    PyTorch version?

    Hi, Thanks for the repo, very useful for a project I'm trying to do. I tried running the demo on my MacBook Pro (no CUDA GPU), and it seems a bit of effort to get Caffe up and running on a Mac. In any case, I work mostly on PyTorch. I can try porting your checkpoint and prototxt to PyTorch, but do you know if anyone has already done this? Thanks

    opened by cbasavaraj 3
  •  Failed to parse NetParameter file: ../models/ctd/test_ctd_tloc.prototxt

    Failed to parse NetParameter file: ../models/ctd/test_ctd_tloc.prototxt

    HI

    I am working on ubutu17.10 and installed caffe prebuilt bainaries for ubuntu>17.04. Everything was setup and when I run the demo.py in tools, I get this error

    WARNING: Logging before InitGoogleLogging() is written to STDERR W0406 18:33:40.810593 4823 _caffe.cpp:139] DEPRECATION WARNING - deprecated use of Python interface W0406 18:33:40.810638 4823 _caffe.cpp:140] Use this instead (with the named "weights" parameter): W0406 18:33:40.810642 4823 _caffe.cpp:142] Net('../models/ctd/test_ctd_tloc.prototxt', 1, weights='../output/ctd_tloc.caffemodel') [libprotobuf ERROR google/protobuf/text_format.cc:298] Error parsing text-format caffe.NetParameter: 3767:25: Message type "caffe.LayerParameter" has no field named "psroi_pooling_param". F0406 18:33:40.812146 4823 upgrade_proto.cpp:88] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: ../models/ctd/test_ctd_tloc.prototxt *** Check failure stack trace: *** Aborted (core dumped)

    Please help me to resolve the issue.

    With Regards

    opened by earthat 3
  • Does it work on windows?

    Does it work on windows?

    Hi Sir: I had compiled it on windows 7 with and without CUDA 8.0(cudnn 5.1 and cudnn 6 .0), but when run test_net.py, it could not get correct porposal, all scores of proposal is 0.5? And also test on Linux, it is ok with GPU, but with CPU, the scores of proposal is correct and same with GPU when read bottom from cpu_data, but the final result is not detecting the text? So, what make it only work on Linux, how to port to Windows? what is the keypoint? Thank you very much! @yl9393 @Yuliang-Liu BR bygreencn

    opened by bygreencn 3
  • Postprocess of annotation

    Postprocess of annotation

    Hi, thanks for your great work. I downloaded the windows version of annotation tool and annotated my image using it. The result text file contains only positions of 14 points and label. To make my data full format of ctw_1500 dataset, what steps should I follow? Could you instruct me how to get full xml file from the annotation file? screenshot_125

    The annotation results contains only label and segs. How can I get box and pts?

    Thanks in advance.

    opened by TNA8 3
  • How do I submit my results?

    How do I submit my results?

    Hello, can I submit my results to this list? Does it have to be accompanied by a paper explaining the method? I look forward to your answer very much.

    opened by Lvqin001 1
Owner
Yuliang Liu
South China University of Technology; University of Adelaide
Yuliang Liu
Dataset and Code for ICCV 2021 paper "Real-world Video Super-resolution: A Benchmark Dataset and A Decomposition based Learning Scheme"

Dataset and Code for RealVSR Real-world Video Super-resolution: A Benchmark Dataset and A Decomposition based Learning Scheme Xi Yang, Wangmeng Xiang,

Xi Yang 91 Nov 22, 2022
An OCR evaluation tool

dinglehopper dinglehopper is an OCR evaluation tool and reads ALTO, PAGE and text files. It compares a ground truth (GT) document page with a OCR resu

QURATOR-SPK 40 Dec 20, 2022
Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)

English | 简体中文 Introduction PaddleOCR aims to create multilingual, awesome, leading, and practical OCR tools that help users train better models and a

null 27.5k Jan 8, 2023
MONAI Label is a server-client system that facilitates interactive medical image annotation by using AI.

MONAI Label is a server-client system that facilitates interactive medical image annotation by using AI. It is an open-source and easy-to-install ecosystem that can run locally on a machine with one or two GPUs. Both server and client work on the same/different machine. However, initial support for multiple users is restricted. It shares the same principles with MONAI.

Project MONAI 344 Dec 23, 2022
Text layer for bio-image annotation.

napari-text-layer Napari text layer for bio-image annotation. Installation You can install using pip: pip install napari-text-layer Keybindings and m

null 6 Sep 29, 2022
TedEval: A Fair Evaluation Metric for Scene Text Detectors

TedEval: A Fair Evaluation Metric for Scene Text Detectors Official Python 3 implementation of TedEval | paper | slides Chae Young Lee, Youngmin Baek,

Clova AI Research 167 Nov 20, 2022
Use Convolutional Recurrent Neural Network to recognize the Handwritten line text image without pre segmentation into words or characters. Use CTC loss Function to train.

Handwritten Line Text Recognition using Deep Learning with Tensorflow Description Use Convolutional Recurrent Neural Network to recognize the Handwrit

sushant097 224 Jan 7, 2023
Train custom VR face tracking parameters

Pal Buddy Guy: The anipal's best friend This is a small script to improve upon the tracking capabilities of the Vive Pro Eye and facial tracker. You c

null 7 Dec 12, 2021
This is a repository to learn and get more computer vision skills, make robotics projects integrating the computer vision as a perception tool and create a lot of awesome advanced controllers for the robots of the future.

This is a repository to learn and get more computer vision skills, make robotics projects integrating the computer vision as a perception tool and create a lot of awesome advanced controllers for the robots of the future.

Elkin Javier Guerra Galeano 17 Nov 3, 2022
Provides OCR (Optical Character Recognition) services through web applications

OCR4all As suggested by the name one of the main goals of OCR4all is to allow basically any given user to independently perform OCR on a wide variety

null 174 Dec 31, 2022
A python screen recorder for low-end computers, provides high quality video output.

RecorderX - v1.0 A screen recorder made in Python with the help of OpenCv, it has ability to record your screen in high quality. No matter what your P

Priyanshu Jindal 4 Nov 10, 2021
Repository of conference publications and source code for first-/ second-authored papers published at NeurIPS, ICML, and ICLR.

Repository of conference publications and source code for first-/ second-authored papers published at NeurIPS, ICML, and ICLR.

Daniel Jarrett 26 Jun 17, 2021
TableBank: A Benchmark Dataset for Table Detection and Recognition

TableBank TableBank is a new image-based table detection and recognition dataset built with novel weak supervision from Word and Latex documents on th

null 844 Jan 4, 2023
Total Text Dataset. It consists of 1555 images with more than 3 different text orientations: Horizontal, Multi-Oriented, and Curved, one of a kind.

Total-Text-Dataset (Official site) Updated on April 29, 2020 (Detection leaderboard is updated - highlighted E2E methods. Thank you shine-lcy.) Update

Chee Seng Chan 671 Dec 27, 2022
Handwritten Text Recognition (HTR) system implemented with TensorFlow (TF) and trained on the IAM off-line HTR dataset. This Neural Network (NN) model recognizes the text contained in the images of segmented words.

Handwritten-Text-Recognition Handwritten Text Recognition (HTR) system implemented with TensorFlow (TF) and trained on the IAM off-line HTR dataset. T

null 27 Jan 8, 2023
Slice a single image into multiple pieces and create a dataset from them

OpenCV Image to Dataset Converter Slice a single image of Persian digits into mu

Meysam Parvizi 14 Dec 29, 2022
Generating .npy dataset and labels out of given image, containing numbers from 0 to 9, using opencv

basic-dataset-generator-from-image-of-numbers generating .npy dataset and labels out of given image, containing numbers from 0 to 9, using opencv inpu

null 1 Jan 1, 2022
This repository contains the code for the paper "SCANimate: Weakly Supervised Learning of Skinned Clothed Avatar Networks"

SCANimate: Weakly Supervised Learning of Skinned Clothed Avatar Networks (CVPR 2021 Oral) This repository contains the official PyTorch implementation

Shunsuke Saito 235 Dec 18, 2022