Abstract: A method executed by one or more processors for analyzing at least one test image. The method includes collecting a plurality of reference images from at least one image source, extracting image features from the plurality of reference images, assigning weights to the image features extracted, determining image scores for the plurality of reference images, iteratively performing the assigning of the weights and the determining of the image scores, extracting image features from the at least one test image, assigning weights to the image features of the at least one test image, determining an image score for the at least one test image, based upon the weights assigned to the image features of the at least one test image, and providing an improvement proposal for the at least one test image, based upon the image score determined for the at least one test image.