Open ayberkozgur opened 9 years ago
That's good old https://github.com/chili-epfl/chilitags/issues/19 right ?
Like a much more specific case of #19.
My initial tests with removing upside down tags reveal that multitag configuration recognized as a package by solvePnP is not a good idea; the whole configuration tends to wobble around but not flip completely (still need to confirm this) due to some tags flipping while some tags staying still. It is not possible to screen them out after they've been PnP'ed as a package.
OK, some remarks:
With the latest changes, I'm getting the best performance on mobile with upside down culling + IMU + DETECT_ONLY
. It's really not bad even in highly dynamic cases as long as the tablet doesn't move linearly too much but only turns in its place (any amount of rotation is tolerated really well as long as it's not above 250 deg/s which is extremely fast). Tracking is only degrading the quality.
Next one ;) So I get the part where you discard the tags that are flipped relatively to the camera, but not the part where you discard tags that are flipped relatively to the floor. So if you put a tag on the ceiling for example, you discard it too ?
I agree en tracking needing a lot of work. I made very little experimentation with it, but trying to follow the corners rather than getting more feature points seemed a lot better. This was only "sample-based" experimentation, so to realiably improve this, we should definitely get serious tracking tests. tests tests tests. Also, not relying on corners would go in the direction of #58
Ok, need to clarify more here: There is no screening of tags via pose wrt camera; there is only screening wrt the floor. The floor vector and tag z axis that are compared both being in the camera frame was probably misleading here. This whole thing has two (disadvantageous) implications besides preventing most flipping:
Also, there was the idea of discarding the tags that are tilted more than say 90 degrees wrt to the camera z axis on one side so that as long as the camera is looking forwards, upside-down tags are discarded. This has the obvious disadvantage on mobile that you don't know the orientation of the device without inertial sensors so you can be discarding tags that are right side up but are tilted away from the camera. I think that a floor vector calculated via inertial sensors is a much better solution here. For non-mobile platforms, we can specify the floor vector manually as I said above.
About tracking; I would say again that non-video tests do not make much sense. Decoding a video and loading it frame by frame should be (very) easily doable with OpenCV as far as I know.
So it's another IMU kinda-related feature right ? I guess we could now boast about supporting IMU in the README.
About video tests, I'm definitely for feeding sequences of images coming from a video to Chilitags, I'm only talking about how to store them. Admittedly, it wouldn't be very complicated to use OpenCV's video reader, but it would be even simpler to just explode the video to a sequence of jpg and feed these to Chilitags. It would probably cost some disk space because of the less efficient compression, but it would make it easier to deal with the images, e.g. investigate a problem happening on a subsequence. Not a really big issue anyway.
We should add an option to remove upside-down tags, which is probably the ultimate solution to the tag-flipping issue. This can be achieved via:
kalman
branch provides very stable and reliable device orientation w.r.t the world and we can use these in mobile devices with IMUs.