Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

kalman filter reject measurement

Hi, i have implemented a algorithm for tracking multiple blobs, using the kalman filter. For assigning the blobs with the kalman filters i am using the hungarian algorithm. From the pairs that the hungarian algorithm is giving to me, i am keeping the good ones by determining a threshold of 50 as the maximum distance between the center point of the blob and the predicted point from the matched kalman filter. Them implementation works quite well except of two cases. For these two cases i would like you opinion, about what i can do. I will try to make it simpler using some images as well.

image description

This image shows the case were everything works fine and my tracking works like a charm.

--------------------------------------------------------------CASE 1-----------------------------------------------------------------------

image description

The above image refers to one of the cases that i have problem and i want to solve. As you can see one of the blobs is split into two blobs, because of an obstacle.

image description

As i have it now, for the new blob i will create a new kalman filter (for each blob that is not assigned with a kalman filter and there is not a good free kalman filter to be assigned, i am creating a new filter).

image description

The point is that after a while when the blob will be merged again the old kalman filter which is the correct one will be erased after some continuously bad matched pairing, since the the newer one will give me better matches through the hungarian algorithm. So, my first question is how i can avoid this, somehow.

--------------------------------------------------------------CASE 2-----------------------------------------------------------------------

The second case it can be seen in the following images

image description

again we have a blob with the corresponding kalman filter

image description

at some point the blob disappears, the kalman filter remains for some period active in order to check if it was just a case of short period occlusion, but at the same time another blob appears. So, in that case i have a free kalman filter, and the assignment with the new blob is good (the distance between the center point of the blob and the predicted point from the kalman filter is smaller than the threshold).

image description

so the kalman filter will be assigned with the wrong blob, although the good blob will appear at some point.

image description

so since the kalman filter of the first blob was assigned to another blob wrongly, and there is not a good or free kalman filter to be assigned to the old blob a new filter will be created.

image description

As you can see from the last image the first kalman filter makes some steps backwards, furthermore my case is that i am not gonna have backward moving from my blobs.

So, although the good matching through the hungarian algorithm to the blob with the shortest distance, at the same time, because it is at the back the new point is a bad measurement for my kalman filter. My question is if there is a way to say to the kalman filter to reject these measurements and consider only good new points the ones that are ahead. If i was able to do that the kalman filter will be assigned with the correct blobs that are moving forward.

kalman filter reject measurementsolution to some cases

Hi, i have implemented a algorithm for tracking multiple blobs, using the kalman filter. For assigning the blobs with the kalman filters i am using the hungarian algorithm. From the pairs that the hungarian algorithm is giving to me, i am keeping the good ones by determining a threshold of 50 as the maximum distance between the center point of the blob and the predicted point from the matched kalman filter. Them implementation works quite well except of two cases. For these two cases i would like you opinion, about what i can do. I will try to make it simpler using some images as well.

image description

This image shows the case were everything works fine and my tracking works like a charm.

--------------------------------------------------------------CASE 1-----------------------------------------------------------------------

case 1


image description

The above image refers to one of the cases that i have problem and i want to solve. As you can see one of the blobs is split into two blobs, because of an obstacle.

image description

As i have it now, for the new blob i will create a new kalman filter (for each blob that is not assigned with a kalman filter and there is not a good free kalman filter to be assigned, i am creating a new filter).

image description

The point is that after a while when the blob will be merged again the old kalman filter which is the correct one will be erased after some continuously bad matched pairing, since the the newer one will give me better matches through the hungarian algorithm. So, my first question is how i can avoid this, somehow.

--------------------------------------------------------------CASE 2-----------------------------------------------------------------------

case 2


The second case it can be seen in the following images

image description

again we have a blob with the corresponding kalman filter

image description

at some point the blob disappears, the kalman filter remains for some period active in order to check if it was just a case of short period occlusion, but at the same time another blob appears. So, in that case i have a free kalman filter, and the assignment with the new blob is good (the distance between the center point of the blob and the predicted point from the kalman filter is smaller than the threshold).

image description

so the kalman filter will be assigned with the wrong blob, although the good blob will appear at some point.

image description

so since the kalman filter of the first blob was assigned to another blob wrongly, and there is not a good or free kalman filter to be assigned to the old blob a new filter will be created.

image description

As you can see from the last image the first kalman filter makes some steps backwards, furthermore my case is that i am not gonna have backward moving from my blobs.

So, although the good matching through the hungarian algorithm to the blob with the shortest distance, at the same time, because it is at the back the new point is a bad measurement for my kalman filter. My question is if there is a way to say to the kalman filter to reject these measurements and consider only good new points the ones that are ahead. If i was able to do that the kalman filter will be assigned with the correct blobs that are moving forward.