A good photo is one where factors such as backlit, blur, contrast, and composition are well balanced, creating an aesthetically pleasing image. Specifically, a good photo should have the following characteristics:
- Backlight: adjust the lighting appropriately to avoid shadows or glare on the subject in the photo. (0-100)
- Blur: the photo should be taken clearly, without blur or blur. (0-100)
- Contrast: increase the contrast in the image so that details are clearly distinguished, helping to increase bold, sharp dynamics. (0-100)
- Layout: arrange the subjects in the frame so that it is harmonious, beautiful and creates a sense of sublimation for the viewer.
The application will evaluate the image quality based on 4 criteria of backlit, contrast, blur and composition.
- Clone project
git clone https://github.com/bdts1547/AssessImage.git - Download, extract model_symmetry and put it in the folder AssessImage.
AssessImage |-- caffe |-- model |-- MODELS (here) |-- ... - Create environment python 3.7.13 with Anaconda and install requirements
conda create -n my_env python=3.7.13 -y conda activate my_env pip install -r requirements.txt - Create environment python 2.7.18 with name "py27" to create sub shell for calling symmetry detection
conda create -n py27 python=2.7.18 -y conda activate py27 pip install matplotlib numpy scikit-image scipy protobuf
- Run with streamlit
conda activate my_env streamlit run streamlit_app.py
| Input | Output |
|---|---|
![]() |
![]() |
- Backlit: feature extraction from YCBCR color space, then feed into SVM for backlit image quantification.
- Blur: use edge operators (Sobel, Robert, Laplacian) for feature extraction, then feed into SVM for blur image quantification.
- Contrast: an image whose pixel intensity distribution occupies less than 35% of domain [0, 255] will be considered as low contrast image.
- Layout:
- Onethird, Center: use TRACER (RGB Salient Object Detection model) to detect objects in the image, then determine the position of objects to find the appropriate composition.
- Symmetry: use a method for measuring symmetry in images by using filter responses from Convolutional Neural Networks (CNNs).
- Score: use the scores of backlit, blur, contrast and composition as features, then feed into the Linear Regression model for scoring.


