Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SakuraRiven/EAST
PyTorch Re-Implementation of EAST: An Efficient and Accurate Scene Text Detector
https://github.com/SakuraRiven/EAST
Last synced: 10 days ago
JSON representation
PyTorch Re-Implementation of EAST: An Efficient and Accurate Scene Text Detector
- Host: GitHub
- URL: https://github.com/SakuraRiven/EAST
- Owner: SakuraRiven
- License: mit
- Created: 2019-03-22T11:29:47.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-15T05:06:52.000Z (over 3 years ago)
- Last Synced: 2024-08-02T11:15:41.169Z (3 months ago)
- Language: Python
- Size: 133 KB
- Stars: 415
- Watchers: 7
- Forks: 128
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Description
This is a PyTorch Re-Implementation of [EAST: An Efficient and Accurate Scene Text Detector](http://openaccess.thecvf.com/content_cvpr_2017/papers/Zhou_EAST_An_Efficient_CVPR_2017_paper.pdf).* Only RBOX part is implemented.
* Using dice loss instead of class-balanced cross-entropy loss. Some codes refer to [argman/EAST](https://github.com/argman/EAST) and [songdejia/EAST](https://github.com/songdejia/EAST)
* The pre-trained model provided achieves __82.79__ F-score on ICDAR 2015 Challenge 4 using only the 1000 images. see [here](http://rrc.cvc.uab.es/?ch=4&com=evaluation&view=method_info&task=1&m=52405) for the detailed results.| Model | Loss | Recall | Precision | F-score |
| - | - | - | - | - |
| Original | CE | 72.75 | 80.46 | 76.41 |
| Re-Implement | Dice | 81.27 | 84.36 | 82.79 |## Prerequisites
Only tested on
* Anaconda3
* Python 3.7.1
* PyTorch 1.0.1
* Shapely 1.6.4
* opencv-python 4.0.0.21
* lanms 1.0.2When running the script, if some module is not installed you will see a notification and installation instructions. __if you failed to install lanms, please update gcc and binutils__. The update under conda environment is:
conda install -c omgarcia gcc-6
conda install -c conda-forge binutilsThe original lanms code has a bug in ```normalize_poly``` that the ref vertices are not fixed when looping the p's ordering to calculate the minimum distance. We fixed this bug in [LANMS](https://github.com/SakuraRiven/LANMS) so that anyone could compile the correct lanms. However, this repo still uses the original lanms.
## Installation
### 1. Clone the repo```
git clone https://github.com/SakuraRiven/EAST.git
cd EAST
```### 2. Data & Pre-Trained Model
* Download Train and Test Data: [ICDAR 2015 Challenge 4](http://rrc.cvc.uab.es/?ch=4&com=downloads). Cut the data into four parts: train_img, train_gt, test_img, test_gt.* Download pre-trained VGG16 from PyTorch: [VGG16](https://drive.google.com/open?id=1HgDuFGd2q77Z6DcUlDEfBZgxeJv4tald) and our trained EAST model: [EAST](https://drive.google.com/open?id=1AFABkJgr5VtxWnmBU3XcfLJvpZkC2TAg). Make a new folder ```pths``` and put the download pths into ```pths```
```
mkdir pths
mv east_vgg16.pth vgg16_bn-6c64b313.pth pths/
```Here is an example:
```
.
├── EAST
│ ├── evaluate
│ └── pths
└── ICDAR_2015
├── test_gt
├── test_img
├── train_gt
└── train_img
```
## Train
Modify the parameters in ```train.py``` and run:
```
CUDA_VISIBLE_DEVICES=0,1 python train.py
```
## Detect
Modify the parameters in ```detect.py``` and run:
```
CUDA_VISIBLE_DEVICES=0 python detect.py
```
## Evaluate
* The evaluation scripts are from [ICDAR Offline evaluation](http://rrc.cvc.uab.es/?ch=4&com=mymethods&task=1) and have been modified to run successfully with Python 3.7.1.
* Change the ```evaluate/gt.zip``` if you test on other datasets.
* Modify the parameters in ```eval.py``` and run:
```
CUDA_VISIBLE_DEVICES=0 python eval.py
```