This project classifies whether an input image has good or bad composition using a deep learning framework.
To create our dataset, we first downloaded various quality photos from Flickr and DPChallenge. We then generated the train dataset with the downloaded images using the coupe.composition-score-calculator project. We use the coupe.composition-score-calculator project to calculate an input image’s composition score using matlab. Because the project uses matlab, it takes a while to get a composition score. To solve this problem, we use deep learning.
We use a Residual Network [1] for training the network. Our final model takes 18ms to test an input image.
Bad Composition | Good Composition |
- main.lua: Training code
- myIterator.lua: Set dataset path and augment dataset
- network.lua: design a network architecture
- classification_test.lua: Test code
- Test Function Usage
th classification_test.lua –net model/baseline-epoch-9.net –dir <your test_directory_path>
We use a Residual network [1] as our network structure. The Residual network can get high performance even though it has many layers. Commonly, deep neural networks have higher training error when it is deeper, but Residual networks add new architecture named shortcut connections so it can avoid the gradient vanishing problem.
This software is being made available under the terms in the LICENSE file.
Any exemptions to these terms requires a license from the Pohang University of Science and Technology.
Eunbin Hong (hong5827 [at] postech [dot] ac [dot] kr)
Project ‘COUPE’ aims to develop software that evaluates and improves the quality of images and videos based on big visual data. To achieve the goal, we extract sharpness, color, composition features from images and develop technologies for restoring and improving by using it. In addition, personalization technology through user preference analysis is under study.
Please checkout out other Coupe repositories in our Posgraph github organization.
- He, K., Zhang, X., Ren, S. and Sun, J. Deep residual learning for image recognition. In Proceedings of the IEEE CVPR (2016).