/CACNet-Pytorch

Unofficial PyTorch implementation of "Composing Photos Like a Photographer"

Primary LanguagePythonMIT LicenseMIT

CACNet-Pytorch

This is an unofficial PyTorch implementation of Composing Photos Like a Photographer, in which the anchor-point regressors is based on Anchor-to-Joint Regression Network and more details about this can be found in their paper & code.

Results

Test set FCDB FLMS KU-PCP
Original Paper IoU=0.718 BDE=0.069 IoU=0.854 BDE=0.033 Accuracy=88.2%
This code IoU=0.702 BDE=0.074 IoU=0.841 BDE=0.037 Accuracy=88.4%

Note that the accuracy is produced training composition classification branch alone.

Datasets Preparation

  1. Download these datasets and change the default dataset folder in config_*.py.
  2. There are some images that unable to open in KU-PCP dataset, and you can fix this by calling check_jpg_file function in KUPCP_dataset.py.

Requirements

  • PyTorch>=1.0
  • torchvision
  • tensorboardX
  • opencv-python
  • tqdm

You can also install packages using pip according to requirements.txt:

pip install -r requirements.txt

Usage

Testing

  # clone this repository
  git clone https://github.com/bo-zhang-cs/CACNet-Pytorch.git
  cd CACNet-Pytorch && mkdir pretrained_model

Download pretrained model (~75MB) from [Google Drive] to the folder pretrained_model.

python test.py

This will produce a folder results where you can find the predicted best crops.

Training

Train composition classification model

python train_composition_classification.py

Train image cropping model (CACNet)

python train_image_cropping.py

Tracking training process

tensorboard --logdir=./experiments

The model performance for each epoch is also recorded in .csv file under the produced folder ./experiments.

Citation

@inproceedings{hong2021composing,
  title={Composing Photos Like a Photographer},
  author={Hong, Chaoyi and Du, Shuaiyuan and Xian, Ke and Lu, Hao and Cao, Zhiguo and Zhong, Weicai},
  booktitle={CVPR},
  year={2021}
}

More references about image cropping

Awesome Image Aesthetic Assessment and Cropping