In my experience, the main challenges with problems like this are dealing with varying lighting, scales, orientation and perspective. These can quickly become of diminishing returns – especially if the solution is provided as an app that provides near-immediate feedback.
No mturk, no tricks, a lot of work in ML and in UX as it is not a very straightforward task.
I'd well believe it. I used to write computer vision applications for semiconductor manufacturing equipment and there we were able to strictly control the distance from camera to object, lighting etc. and even still getting necessary reliability was not simple. When a failure could lead to damaging a whole wafer, i.e. hundreds of thousands of dollars, 99% accurate is not good enough.