A Pytorch implementation of Mask TextSpotter along with its extension can be find here
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}
}
- NVIDIA GPU, Linux, Python2
- Caffe2, various standard Python packages
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