Ask Your Question

Revision history [back]

I have worked on a problem similar to the one you describe. I am not sure I understand you completely, but you can mask the warped image quite easily because you have known corner locations. If you are interested in tracking the poster (or the camera's location, to put it another way), you can use the mask and the homography from the previous frame to drastically reduce the keypoint search space and only compute upright features. You can recompute scaled target keypoints as desired as well (or do this offline at various scales if your targets are unchanging). You can even mask the target images if you have good reason to do so. Obvious outliers can be rejected quite easily in this scheme, provided the last frame was a success. This all makes for very efficient tracking and pose estimation. In the linked video, the computation time varies, but on an i7-3770, the total processing time is typically below 10ms, even using some of the more processing intensive sub-routines. See my video below:

https://www.youtube.com/watch?v=Hnn-uZPdJIY

I have worked on a problem similar to the one you describe. I am not sure I understand you completely, but you You can mask the warped target in the camera image quite easily (warped or not) because you have known corner locations. If you are interested in tracking the poster (or the camera's location, to put it another way), camera location), you can use the mask and the homography from the previous frame to drastically reduce the keypoint search space and only compute upright features. You can recompute scaled target keypoints as desired as well (or do this offline at various scales if your targets are unchanging). You can even mask the target images if you have good reason to do so. images. Obvious outliers can be rejected quite easily in this scheme, provided the last frame was a success. This all makes for very efficient tracking and pose estimation. In the linked video, the computation time varies, but on an i7-3770, the total processing time is typically below 10ms, even using some of the more processing intensive sub-routines. See my video below: this video:

https://www.youtube.com/watch?v=Hnn-uZPdJIY

You can mask the target in the camera image (warped or not) because you have known corner locations. If you are interested in tracking the poster (or the camera location), you can use the mask and the homography from the previous frame to reduce the keypoint search space and only compute upright features. You can recompute scaled target keypoints as desired as well (or do this offline at various scales if your targets are unchanging). You can even mask the target images. Obvious outliers can be rejected quite easily in this scheme, provided the last frame was a success. This all makes for very efficient tracking and pose estimation. In the linked video, the computation time varies, but on an i7-3770, the total processing time is typically below 10ms, even using some of the more processing intensive sub-routines. See this video: sub-routines.

https://www.youtube.com/watch?v=Hnn-uZPdJIY

You With video there are some 'tricks' you can apply to reduce the computation and improve the quality of the homography. Use the target location (found via the homography) from the previous frame to mask (black out everything but) the target in the current camera image (warped or not) because you have known corner locations. If you are interested in tracking the poster image. After doing this, no (or the camera location), you can use the mask and very few) keypoints will be generated off target. Warp the current frame with the homography from of the previous frame to reduce the keypoint search space and only compute upright features. You can recompute and planar frontal features (upright features mean you do not need to compute an orientation and they will be more discriminating because of it). Recompute scaled target keypoints as desired as well not every frame, but after maybe a 5% linear size change (or do this offline at various scales if your targets are unchanging). You can even mask the target images. images to reduce keypoint matching time. Obvious outliers can be rejected quite easily in this scheme, as they will be warped (using the previous homography) to a location almost on top of the location you expect them to be (within some small distance), provided the last frame was a success. This all makes for very efficient tracking and pose estimation. estimation (recovery is another story). Homography estimation via RANSAC is very fast when there are few ouliers, but it gets exponentially slower as outliers increase in number. The scheme described here reduces the matches to almost all inliers. In the video, the computation time varies, but on an i7-3770, the total processing time is typically below 10ms, even using some of the more processing intensive sub-routines.sub-routines. Outlier rejection is not visualized in the video, but it does occur prior to homography estimation. There are direct methods for computing the homography and the fundamental matrix from two images, but they are not yet a part of OpenCV.

https://www.youtube.com/watch?v=Hnn-uZPdJIY

With video there are some 'tricks' you can apply to reduce the computation and improve the quality of the homography. Use the target location (found via the homography) from the previous frame to mask (black out everything but) the target in the current camera image. After doing this, no (or very few) keypoints will be generated off target. Warp the current frame with the homography of the previous frame to only compute upright and planar frontal features (upright features mean you do not need to compute an orientation and they will be more discriminating because of it). Recompute scaled target keypoints not every frame, but after maybe a 5% linear size change (or do this offline at various scales if your targets are unchanging). You can even mask the target images to reduce keypoint matching time. Obvious outliers can be rejected quite easily as they true matches will be warped (using the previous homography) to a location almost on top of the location you expect them to be (within some small distance), provided the last frame was a success. This all makes for very efficient tracking and pose estimation (recovery is another story). Homography estimation via RANSAC is very fast when there are few ouliers, but it gets exponentially slower as outliers increase in number. The scheme described here reduces the matches to almost all inliers. In the video, the computation time varies, but on an i7-3770, the total processing time is typically below 10ms, even using some of the more processing intensive sub-routines. Outlier rejection is not visualized in the video, but it does occur prior to homography estimation. There are direct methods for computing the homography and the fundamental matrix from two images, but they are not yet a part of OpenCV.

https://www.youtube.com/watch?v=Hnn-uZPdJIY