-1

I am using a third party service which processes images and returns some metadata:

The data (and ranges) looks like this

  1. sharpness 0-1
  2. brightness 0-1
  3. contrast: 0-1
  4. dominant color: hex
  5. array of 'accent' colors: hex
  6. array of 'other' detected colors: hex

I know this is highly subjective, but given this data what might you consider a reasonable algorithm for identifying a better or worse image.

For context, the images are used on the web, for an accommodation booking service - think Airbnb.

Matt Evans
  • 109
  • 3
  • 1
    Voting to close this as it's purely opinion based as it is so subjective. Are the standards to your degree of quality or the general end user? – Crazy Dino Feb 27 '18 at 12:22
  • 3
    This really isn't possible, there won't be one rule which applies to all photos - it also changes depending on the subject, the colour focus and what exactly you want to do with the photo - also voting to close due to how subjective the question is and in my opinion there not being an objective answer. – Matthew Feb 27 '18 at 12:33
  • Better ask yourself "How can I quickly go through images and review them manually?", because for the time you'd spend developing and tuning such an algorithm, you'd have manually rated ten times the amount of photos. – K. Minkov Feb 27 '18 at 12:38
  • 3
    Sharpness = 0.05 ...But, but, but... it was a photo of a match-head at f1.4 ... – Tetsujin Feb 27 '18 at 12:41
  • @K.Minkov Ten times what amount of photos? Once dialed in, software could process thousands of images in minutes. At some point automation will pay off. – Caleb Feb 27 '18 at 13:15
  • @Caleb Indeed, I agree, very much depends on the amount of images. – K. Minkov Feb 27 '18 at 13:53
  • 1
    Can I get a ruling on whether a discussion of deep learning techniques is outside the scope of this SE? I think OP could solve the problem with these parameters and a couple hundred "good" and "bad" images. – PhotoScientist Feb 27 '18 at 14:09
  • 1
  • I'm voting to close this question as off-topic because this is a programming problem related to image processing. – StephenG - Help Ukraine Feb 27 '18 at 16:17
  • 2
    @PhotoScientist go to meta! It's a great place to get the sidebar questions about the exchange discussed. – Crazy Dino Feb 27 '18 at 17:21
  • @PhotoScientist the service in question is based on ML models built by https://sightengine.com/image-quality-main-colors – Matt Evans Mar 08 '18 at 07:00

1 Answers1

2

I know this is highly subjective, but given this data what might you consider a reasonable algorithm for identifying a better or worse image.

It sounds like you're probably asking more about how to choose the bounds in the given parameters for acceptable photos, like "sharpness > x", than about what algorithm to use. The algorithm seems pretty straightforward: look at the values for the various parameters and decide whether they indicate that the image is acceptable.

I don't think we can reasonably tell you what the bounds on those parameters should be. We don't know what you would consider acceptable. Instead, pick some number of images from your collection and ask the relevant stakeholders in your project to rate them as acceptable or unacceptable. Further, have them indicate which parameters the unacceptable images fail in: sharpness, contrast, brightness, or color. Then analyze the data: were all images marked unacceptable for sharpness below some threshold? This is how you establish bounds for sharpness. Repeat for the other parameters.

I think you could use this system to reject user-submitted images that fall outside the acceptable range for the given parameters, but you'll probably still want a human to review each photo to make sure the the content is appropriate.

Caleb
  • 31,682
  • 6
  • 65
  • 120