I've got a mobile app where the user takes a photo of an object. This photo is to go through some heavy-duty image processing server-side, so to prevent large wastage of time, a simple pre-check is done on the device. This makes sure the image is in focus, the object is clearly within the frame, and meets a few other parameters so that we know the big heavy processing will work. This is much better than sending off a large image to the server, and waiting a long time (relatively) for a rejection from there.
The problem is, in testing, a lot of users find it hard to take good photos, resulting in multiple rejections before finally taking a photo that's accepted.
This is a UX disaster, anyone using our app for the first time and getting more than one rejection is very likely to give up and never use it again. Is there something we can do from a UX perspective that goes some way to deal with this problem?