Implementation of the NIMA model in TensorFlow.
Picture extracted from [1].
- Python 3.5+
- TensorFlow 1.6+
- Download the Inception v2 weights from TF-Slim models
- Download the AVA dataset from elsewhere
- Convert AVA to TFRecords using
convert_ava.py
script:
./convert_ava.py --ava_dir <path to ava> --dataset_dir <path to dataset>
./train_eval_nima.py --dataset_dir <path to dataset> \
--split_name=train \
--log_dir <path to train dir> \
--checkpoint_path <path to inception_v2.ckpt> \
--checkpoint_exclude_scopes=InceptionV2/Logits
./train_eval_nima.py --dataset_dir <path to dataset> \
--split_name validation \
--log_dir <path to train dir> \
--eval \
--max_epochs 1
The model has plateaued at 89% correlation after training for 20 epochs:
- Talebi, Hossein, and Peyman Milanfar. "NIMA: Neural Image Assessment." IEEE Transactions on Image Processing (2018).