I am trying to make my detection of a OpenCV-based fiduciary marker more reliable when the user moves the camera (phone) violently. Markers are an ArTag style with a Hamming code embedded in a black border. Borders are detected using the image threshold, then search for ATVs based on the found contours, and then check the internal parts of the quads.
In general, marker decoding is reasonably stable if a black frame is recognized. I tried the most obvious thing, which reduces the image twice, and also performs quad detection at these levels. This helps to focus the camera on extreme close-up markers, as well as with very low levels of image blur, but it doesn’t help in the general case of motion blur.
Are there available studies on ways to improve detection reliability? Ideas that I'm interested in include:
- Can you do some optical flow tracking to “guess” the position of the marker in the next frame, and then some kind of angular detection in the area of ​​these guesses, and not consider the rectangle search as a full-frame threshold?
- On computers, can I get blur coefficients (perhaps by registering in the last video frames where the marker was found) and deblock the image before processing?
- On smartphones, can I use a gyroscope and / or accelerometers to get attenuation coefficients and pre-process the image? (I guess not, simply because if that were the case, the market would be flooded with shake correction applications).
Links to bad ideas will also be appreciated if this saves me from trying.
Alex ferrier
source share