Detecting Text in Natural Image with Connectionist Text Proposal Network

    The codes are used for implementing CTPN for scene text detection, described in:

    Z. Tian, W. Huang, T. He, P. He and Y. Qiao: Detecting Text in Natural Image with
    Connectionist Text Proposal Network, ECCV, 2016.

    Online demo is available at:

    These demo codes (with our trained model) are for text-line detection (without side-refinement part).

    Required hardware

    You need a GPU. If you use CUDNN, about 1.5GB free memory is required. If you don't use CUDNN, you will need about 5GB free memory, and the testing time will slightly increase. Therefore, we strongly recommend to use CUDNN.

    It's also possible to run the program on CPU only, but it's extremely slow due to the non-optimal CPU implementation.

    Required softwares

    Python2.7, cython and all what Caffe depends on.

    How to run this code

    1. Clone this repository with git clone It will checkout the codes of CTPN and Caffe we ship.

    2. Install the caffe we ship with codes bellow.

      • Install caffe's dependencies. You can follow this tutorial. Note: we need Python support. The CUDA version we need is 7.0.

      • Enter the directory caffe.

      • Run cp Makefile.config.example Makefile.config.

      • Open Makefile.config and set WITH_PYTHON_LAYER := 1. If you want to use CUDNN, please also set CUDNN := 1. Uncomment the CPU_ONLY :=1 if you want to compile it without GPU.

        Note: To use CUDNN, you need to download CUDNN from NVIDIA's official website, and install it in advance. The CUDNN version we use is 3.0.

      • Run make -j && make pycaffe.

    3. After Caffe is set up, you need to download a trained model (about 78M) from Google Drive or our website, and then populate it into directory models. The model's name should be ctpn_trained_model.caffemodel.

    4. Now, be sure you are in the root directory of the codes. Run make to compile some cython files.

    5. Run python tools/ for a demo. Or python tools/ --no-gpu to run it under CPU mode.

    How to use other Caffe

    If you may want to use other Caffe instead of the one we ship for some reasons, you need to migrate the following layers into the Caffe.

    • Reverse
    • Transpose
    • Lstm


    The codes are released under the MIT License.


    🚀 Github 镜像仓库 🚀




    贡献者 4

    T Tian Zhi @Tian Zhi
    U U-360BUYAD\lizhenyang @U-360BUYAD\lizhenyang
    T Tian Zhi @Tian Zhi
    V Varun Suresh @Varun Suresh


    • Jupyter Notebook 50.9 %
    • C++ 38.8 %
    • Python 4.9 %
    • Cuda 2.7 %
    • CMake 1.5 %