A neural network that rates images for taste and technique
It exists because idealo needed to rank millions of hotel photos, so they open-sourced their implementation of Google's NIMA model complete with pre-trained weights, Docker images, and AWS training scripts.

What it does
This project is a working implementation of Google’s NIMA (Neural Image Assessment) paper. It uses transfer learning on standard ImageNet backbones—MobileNet is the default—to train CNNs that score images along two axes: aesthetic appeal and technical quality. The repo ships with pre-trained weights for the AVA (aesthetic) and TID2013 (technical) datasets, plus Docker images and helper scripts for local CPU training or remote GPU runs on AWS EC2.
The interesting bit
Rather than collapsing opinion into a single number, the model predicts a full distribution across ten rating buckets, giving you the shape of likely scores rather than just a mean. The repo also includes a TensorFlow Serving export path in contrib/tf_serving, which turns the Keras models into production inference services without hand-rolling graph conversion.
Key highlights
- Separate model heads for aesthetic and technical scoring.
- Swappable backbones via Keras Applications; switch to InceptionV3 by changing a config field.
- Pre-trained MobileNet weights and published metrics (EMD, LCC, SRCC) for both AVA and TID2013.
- Dockerized local training and AWS EC2 GPU training with S3 artifact storage.
- TensorFlow Serving support via included conversion scripts and Dockerfile.
Caveats
- The README pins compatibility to Python 3.6 and describes AWS GPU setup using
nvidia-dockerv1.0.1 and legacy NVIDIA 375 drivers, so the cloud recipes are visibly dated. - A filename typo in an embedded image path (
techncial3.jpgtechnical.svg) suggests the docs have not been refreshed recently.
Verdict
Grab it if you need to filter or rank large image collections by quality and want a research-backed model ready to run. Skip it if you need a modern, actively maintained training stack with current CUDA tooling.
Frequently asked
- What is idealo/image-quality-assessment?
- It exists because idealo needed to rank millions of hotel photos, so they open-sourced their implementation of Google's NIMA model complete with pre-trained weights, Docker images, and AWS training scripts.
- Is image-quality-assessment open source?
- Yes — idealo/image-quality-assessment is open source, released under the Apache-2.0 license.
- What language is image-quality-assessment written in?
- idealo/image-quality-assessment is primarily written in Python.
- How popular is image-quality-assessment?
- idealo/image-quality-assessment has 2.2k stars on GitHub.
- Where can I find image-quality-assessment?
- idealo/image-quality-assessment is on GitHub at https://github.com/idealo/image-quality-assessment.