derendering-text
derendering-text copied to clipboard
Paper: De-rendering Stylized Texts
![rec](https://github.com/CyberAgentAILab/derendering-text/raw/master/example/rec0.png)
Wataru Shimoda1, Daichi Haraguchi2, Seiichi Uchida2, Kota Yamaguchi1
1CyberAgent.Inc, 2 Kyushu University
Accepted to ICCV2021.
[Publication]
[Arxiv]
[project-page]
Introduction
This repository contains the codes for "De-rendering stylized texts".
Concept
We propose to parse rendering parameters of stylized texts utilizing a neural net.
Demo
The proposed model parses rendering parameters based on famous 2d graphic engine[Skia.org|python implementation], which has compatibility with CSS in the Web. We can export the estimated rendering parameters and edit texts by an off-the-shelf rendering engine.
![edit0](https://github.com/CyberAgentAILab/derendering-text/raw/master/example/edit0.gif)
![edit1](https://github.com/CyberAgentAILab/derendering-text/raw/master/example/edit1.gif)
Installation
Requirements
- Python >= 3.7
- Pytorch >= 1.8.1
- torchvision >= 0.9.1
pip install -r requirements.txt
Font data
- The proposed model is trained with google fonts.
- ~~Download google fonts and locate in
data/fonts/
asgfonts
.~~- Note: the organization of font files in the google fonts is updated from our environment.
- Download font files from this link(ofl) and locate in
data/fonts/gfonts/
.
- cd data/fonts
- git clone https://github.com/google/fonts.git gfonts
+ mkdir data/fonts/gfonts; cd data/fonts/gfonts
+ tar xvzf ofl.tar.gz
Pre-rendered alpha maps
- The proposed model parses rendering parameters and refines them through the differentiable rendering model, which uses pre-rendered alpha maps.
- Generate pre-rendered alpha maps.
python -m util_lib.gen_pams
Pre-rendered alpha maps would be generated in data/fonts/prerendered_alpha
.
![inp](https://github.com/CyberAgentAILab/derendering-text/raw/master/example/sample.jpg)
![opt](https://github.com/CyberAgentAILab/derendering-text/raw/master/example/opt.gif)
Usage
Test
- Download the pre-trained weight from this link (weight).
- Locate the weight file in
weights/font100_unified.pth
.
Example usage.
python test.py --imgfile=example/sample.jpg
Note
- imgfile option: path of an input image
- results would be generated in
res/
Text image editing
The proposed model generates a reconstructed image and a pickle file for the parsed rendering parameters.
Here, we prepare a notebook file:text_edit.ipynb
for the guide of the processings to edit text images using the parsed rendering parameters.
Some examples from text_edit.ipynb
:
Background editing
![inp](https://github.com/CyberAgentAILab/derendering-text/raw/master/example/bg_edit.png)
Text editing
![inp](https://github.com/CyberAgentAILab/derendering-text/raw/master/example/text_edit.png)
Border effect editing
![inp](https://github.com/CyberAgentAILab/derendering-text/raw/master/example/border_edit.png)
Shadow effect editing
![inp](https://github.com/CyberAgentAILab/derendering-text/raw/master/example/shadow_edit.png)
Text offsets editing
![inp](https://github.com/CyberAgentAILab/derendering-text/raw/master/example/offset_edit.png)
Font editing
![inp](https://github.com/CyberAgentAILab/derendering-text/raw/master/example/font_edit.png)
Data generation
Quick start.
python gen.py --bgtype=load --bg_dir=src/modules/generator/example/bg --mask_dir=src/modules/generator/example/mask
The generated text images would be located in gen_data/
.
For the detail, see generator.
Train text parser model
Quick start. Generate training data using simple background dataset.
python gen.py --bgtype=color
Train text parser model with the generated simple background data.
python train.py
For the detail, see trainer.
Attribute details
Todo
- [x] Testing codes
- [x] Codes for the text image generator
- [x] Notebook for text editing
- [x] Training codes for text paraser model
- [x] Training codes for inpainting model
- [ ] Demo app
Reference
@InProceedings{Shimoda_2021_ICCV,
author = {Shimoda, Wataru and Haraguchi, Daichi and Uchida, Seiichi and Yamaguchi, Kota},
title = {De-Rendering Stylized Texts},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2021},
pages = {1076-1085}
}
Contact
This repository is maintained by Wataru shimoda(wataru_shimoda[at]cyberagent.co.jp).