Skip to content

TensorFlow implementation of PSENet text detector (Shape Robust Text Detection with Progressive Scale Expansion Networkt)

Notifications You must be signed in to change notification settings

looput/PSENet-Tensorflow

Repository files navigation

Shape Robust Text Detection with Progressive Scale Expansion Networkt

A reimplement of PSENet with tensorflow. Only trained on IC15,TD500,and CTW1500. The preformence is low compared to paper's result. Maybe because of partial data training (For each dataset I don't use extra data, but the paper use MLT data), or just maybe because of some bug in this code.

  • The pse algrithm is implemented with C++ and warped by cython in floder in ./PSE_C
  • Support simple hype-parameter search for test(such as threshold)
  • Support checkpoint restore.
  • summary logging by tensorboard

Thanks for the author's (@whai362) great work!

Prerequisites

pip install -r requriment.txt

  • tensorflow = 1.8
  • pudb(for debug)
  • pyclipper(to clip polygon)
  • skimage
  • Polygon3
  • Cython

Result(Train only with the corresponding dataset, no extra data)

Dataset precision recall F-measure (%)
ICDAR15 84.5 77.3 80.7
TD500 - - 80.2(?)
CTW1500 - - 76(?)

- this model had been removed in my server, so I forget exact f-measure, just for reference

Training

  1. Converting the dataset to tfrecord for high performence reading. This converter support IC15,TD500,CTW1500. Default for IC15. And you need to change dataset_dir path in dataset_factory.py.
     cd dataset
     python write_tfrecord.py --data-folder 'your path here'
  2. To use ImageNet Pretrained model, download the model to Logs/model from model
  3. Train the model, you need edit configuration.py to adjust the patameter of trianing such as bactch size,learning rate.
    mkdir Logs/train
    python train_PSENet.py --run_name test --restore=True --use_pretrain=True --gpus '0' --ss=10 --se=10 --about=''
    
  4. you can monitor the progress of training by tensorboard
    tensorboard --host localhost --samples_per_plugin images=500 --port 7000 --logdir Logs/train/test
    
    tensorboard tensorboard

Testing

  1. Compile the PSE code
    python setup.py build_ext --inplace
  2. Edit test config in configuration.py such as threshold, image size, test_dir is the path of your test images.(such as /you/path/icdar2015/ch4_test_images)
    python eval_metric.py --ma=True --train_name test --gpus='2' --lg=False
  3. If lg is True, you can view detect result in folder Logs/test/<run_name>/model.ckpt-399999_0/image_log result result

About

TensorFlow implementation of PSENet text detector (Shape Robust Text Detection with Progressive Scale Expansion Networkt)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published