/TF-A2RL

The official implementation for A2-RL: Aesthetics Aware Rinforcement Learning for Automatic Image Cropping

Primary LanguagePythonMIT LicenseMIT

TF-A2RL: Automatic Image Cropping

[Project] [Paper] [Online Demo] [API] [Related Work: GP-GAN (for Image Blending)]

The official implementation for A2-RL: Aesthetics Aware Rinforcement Learning for Automatic Image Cropping

Overview

source step 1 step 2 step 3 step 4 step 5 output

A2-RL (aka. Aesthetics Aware Reinforcement Learning) is the author's implementation of the RL-based automatic image cropping algorithm described in:

A2-RL: Aesthetics Aware Reinforcement Learning for Automatic Image Cropping   
Debang Li, Huikai Wu, Junge Zhang, Kaiqi Huang

Given a source image, our algorithm could take actions step by step to find almost the best cropping window on source image.

Contact: Hui-Kai Wu (huikaiwu@icloud.com)

Getting started

  • Install the python libraries. (See Requirements).
  • Download the code from GitHub:
git clone https://github.com/wuhuikai/TF-A2RL.git
cd TF-A2RL
  • Download the pretrained models vfn_rl.pk from Google Drive, then put them in current directory (TF-A2RL/).

  • Run the python script:

python A2RL.py --image_path test_images/3846.jpg --save_path test_images/3846_cropped.jpg

or

sh example.sh

Results compared with baseline methods (more results)

Source VFN+Sliding window A2-RL Ground Truth

Requirements

The code requires the following 3rd party libraries:

pip install scikit-image

Details see the official README for installing skimage.

Details see the official README for installing TensorFlow.

Command line arguments:

Type python A2RL.py --help for a complete list of the arguments.

  • --image_path: path of the input image
  • --save_path: path of output image

Citation

@article{li2017a2,
  title={A2-RL: Aesthetics Aware Reinforcement Learning for Automatic Image Cropping},
  author={Li, Debang and Wu, Huikai and Zhang, Junge and Huang, Kaiqi},
  journal={arXiv preprint arXiv:1709.04595},
  year={2017}
}