Code Monkey home page Code Monkey logo

craft-remade's Introduction

Re-Implementing CRAFT-Character Region Awareness for Text Detection

Objective

  • Reproduce weak-supervision training as mentioned in the paper https://arxiv.org/pdf/1904.01941.pdf
  • Generate character bbox on all the popular data sets.
  • Expose pre-trained models with command line interface to synthesize results on custom images

Clone the repository

git clone https://github.com/autonise/CRAFT-Remade.git
cd CRAFT-Remade

Option 1: Conda Environment Installation

conda env create -f environment.yml
conda activate craft

Option 2: Pip Installation

pip install -r requirements.txt

Running on custom images

Put the images inside a folder.
Get a pre-trained model from the pre-trained model list (Currently only strong supervision using SYNTH-Text available)
Run the command -

python main.py synthesize --model=./model/final_model.pkl --folder=./input

Results

Dataset Recall Precision F-score
ICDAR2013 TBD TBD 0.8201(Improving)
ICDAR2015 TBD TBD TBD(Coming Soon)
ICDAR2017 TBD TBD TBD(Coming Soon)
Total Text TBD TBD TBD(Coming Soon)
MS COCO TBD TBD TBD(Coming Soon)

Pre-trained models

Strong Supervision

SynthText(CRAFT Model) - https://drive.google.com/open?id=1QH0B-iQ1Ob2HkWCQ2bVCsLPwVSmbcSgN
SynthText(ResNet-UNet Model) - https://drive.google.com/file/d/1qnLM_iMnR1P_6OLoUoFtrReHe4bpFW3T
Original Model by authors - https://drive.google.com/open?id=1ZQE0tK9498RhLcXwYRgod4upmrYWdgl9

Weak Supervision

Pre-generated on popular data sets

  • ICDAR 2013 - In Progress
  • ICDAR 2015 - In Progress
  • ICDAR 2017 - yet_to_be_completed
  • Total Text - yet_to_be_completed
  • MS-COCO - yet_to_be_completed

How to train the model from scratch

Strong Supervision on Synthetic dataset

Download the pre-trained model on Synthetic dataset at https://drive.google.com/open?id=1qnLM_iMnR1P_6OLoUoFtrReHe4bpFW3T
Otherwise if you want to train from scratch
Run the command -

python main.py train_synth


To test your model on SynthText, Run the command -

python main.py test_synth --model /path/to/model

Weak Supervision

First Pre-Process your dataset

*Currently Supported - [IC13, IC15]

The assumed structure of the dataset is

.
├── Generated (This folder will contain the weak-supervision intermediate targets)
└── Images
    ├── test
    │   ├── img_1.jpg
    │   ├── img_2.jpg
    │   ├── img_3.jpg
    │   ├── img_4.jpg
    │   └── img_5.jpg
    │   └── ...
    ├── test_gt.json (This can be generated using the pre_process function described below)
    ├── train
    │   ├── img_1.jpg
    │   ├── img_2.jpg
    │   ├── img_3.jpg
    │   ├── img_4.jpg
    │   └── img_5.jpg
    │   └── ...
    └── train_gt.json (This can be generated using the pre_process function described below)

To generate the json files for IC13 -

In config.py change the corresponding values

'ic13': {
	'train': {
		'target_json_path': None,  --> path to where you want the target json file (Images/train_gt.json)
		'target_folder_path': None,  --> path to where you downloaded the train gt (ch2_training_localization_transcription_gt)
	},
	'test': {
		'target_json_path': None,  --> path to where you want the target json file (Images/test_gt.json)
		'target_folder_path': None,  --> path to where you downloaded the train gt (Challenge2_Test_Task1_GT)
	}

Run the command -

python main.py pre_process --dataset IC13

To generate the json files for IC15 -

In config.py change the corresponding values

'ic15': {
	'train': {
		'target_json_path': None,  --> path to where you want the target json file (Images/train_gt.json)
		'target_folder_path': None,  --> path to where you downloaded the train gt (ch4_training_localization_transcription_gt)
	},
	'test': {
		'target_json_path': None,  --> path to where you want the target json file (Images/test_gt.json)
		'target_folder_path': None,  --> path to where you downloaded the train gt (Challenge4_Test_Task1_GT)
	}

Run the command - python main.py pre_process --dataset IC15

Second Train your model based on weak-supervision


Run the command -

python main.py weak_supervision --model /path/to/strong/supervision/model --iterations <num_of_iterations(20)>

This will train the weak supervision model for the number of iterations you specified

craft-remade's People

Contributors

prantik1998 avatar seekingdeep avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.