This is the official implementation of Mask TextSpotter.
Mask TextSpotter is an End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes
For more details, please refer to our paper.
Please cite the paper in your publications if it helps your research:
@inproceedings{LyuLYWB18,
author = {Pengyuan Lyu and
Minghui Liao and
Cong Yao and
Wenhao Wu and
Xiang Bai},
title = {Mask TextSpotter: An End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes},
booktitle = {Proc. ECCV},
pages = {71--88},
year = {2018}
}
To install Caffe2 with CUDA support, follow the installation instructions from the Caffe2 website. If you already have Caffe2 installed, make sure to update your Caffe2 to a version that includes the Detectron module.
Please ensure that your Caffe2 installation was successful before proceeding by running the following commands and checking their output as directed in the comments.
# To check if Caffe2 build was successful
python2 -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
# To check if Caffe2 GPU build was successful
# This must print a number > 0 in order to use Detectron
python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'
If the caffe2
Python package is not found, you likely need to adjust your PYTHONPATH
environment variable to include its location (/path/to/caffe2/build
, where build
is the Caffe2 CMake build directory).
Install Python dependencies:
pip install numpy pyyaml matplotlib opencv-python>=3.0 setuptools Cython mock
Set up Python modules:
cd $ROOT_DIR/lib && make
Note: Caffe2 is difficult to install sometimes.
Download the model and place it as models/model_iter79999.pkl
Our trained model:
Google Drive;
BaiduYun (key of BaiduYun: gnpc)
Download the ICDAR2013(Google Drive, BaiduYun) and ICDAR2015(Google Drive, BaiduYun) as examples.
Datasets should be placed in lib/datasets/data/
as below
synth
icdar2013
icdar2015
scut-eng-char
totaltext
If you do not train the model, you can just download the ICDAR2013 or ICDAR2015 datasets for testing.
python tools/test_net.py --cfg configs/text/mask_textspotter.yaml
You can modify the model path or the test dataset in configs/text/mask_textspotter.yaml
.
You should format all the datasets you used for training as above.
Then modify configs/text/mask_textspotter.yaml
to fit the gpus, model path, and datasets.
python tools/train_net.py --cfg configs/text/mask_textspotter.yaml