Matching shapes between two images

42 Views Asked by At

I am working on a computer vision application for Arduino using a very low resolution camera (80x80 pixels). I want to detect moving shapes. The segmentation part works fine as i managed to detect regions of interest.

What I struggle to do is to efficiently track them. I know about tracking principles but my problem is that the output of my segmentation is binary. Thus, if at time t I have 2 ROI, I have 2 small blobs in my binary, but if they endup touching each other at time t+1, I only have one big blob in my binary and I have no idea how to split it.

I tried some kind of block matching but it's a bit too heavy.

Do you guys have an idea or know an algorithm to track multiple targets that can overlap?

1

There are 1 best solutions below

0
On

One potent tracking algorithm is the particle filter, which has quite a few references for being able to track multiple objects (e.g., see here).

The main issue is the multiple bodies merging, I suppose. Some particle filters are known to be able to handle short-lived occlusions (since the distributional uncertainty keeps many states in the model). You have to set up the state model right so that it doesn't rely too much on boundary information (of the segmentation) so it can handle these mergings; e.g., you can specify that the size shouldn't change too much over time, perhaps, so that it realizes keeping the big blob separated into two chunks better matches the model. If the blobs can occlude each other temporarily, this should be ok, but if one blob sticks to the other and the size of the combined blob is not much larger than each of them independently, then this could be an issue.