Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Way to filter out False Positives in Template Matching

Hi all,

I am trying to detect the screws on metal surfaces so I've implemented a trivial template matcher, in which I feed templates of screws in and spot them in the scene. As you know, in such a case, we have a threshold value (like a sensitivity value) that we tweak based on the false/true negatives we get in the output.

So the very typical problem is that if I set to to a high value, it filters too much and loses the true positives, and when I set it to too low, it gives way too many false positives. The way I see it, there is going to be an optimum value for me, and after that it all will depend on "how further I could filter the false positives out". In this part exactly, I need your help.

image description

How do you think I can filter out the false positives? They are caused by similarities of pixels (of templates) and the parts of the scene, but this is something I cannot change. So far I thought about dividing the surface in the regions and marking down the expected regions where screws are usually expected, kinda like ROI thingy.

image description

But not sure if it makes sense in the long run, since this holds true for harddisks perhaps (screws are always on certain locations) but not other devices.

How do you think one can overcome this problem?

Way to filter out False Positives in Template Matching

Hi all,

I am trying to detect the screws on metal surfaces so I've implemented a trivial template matcher, in which I feed templates of screws in and spot them in the scene. As you know, in such a case, we have a threshold value (like a sensitivity value) that we tweak based on the false/true negatives we get in the output.

So the very typical problem is that if I set to to a high value, it filters too much and loses the true positives, and when I set it to too low, it gives way too many false positives. The way I see it, there is going to be an optimum value for me, and after that it all will depend on "how further I could filter the false positives out". In this part exactly, I need your help.

image description

How do you think I can filter out the false positives? They are caused by similarities of pixels (of templates) and the parts of the scene, but this is something I cannot change. So far I thought about dividing the surface in the regions and marking down the expected regions where screws are usually expected, kinda like ROI thingy.

image description

But not sure if it makes sense in the long run, since this holds true for harddisks perhaps (screws are always on certain locations) but not other devices.

How do you think one can overcome this problem?

EDIT: So instead using partial templates, I've decided to use instead "complete" templates (full screws), however now I am increasing number of templates I am looping over. That is, I am creating screw templates from images (of scenes) which are different from each other. For instance, some screw templates now has sunlight reflecting on them whereas others look quite dark. See the following templates;

image description image description image description

and then the results I am having are looking like:

image description

Then I think I am now down to the question of " How to find the screws which are not completely visible?"

Way to filter out False Positives in Template Matching

Hi all,

I am trying to detect the screws on metal surfaces so I've implemented a trivial template matcher, in which I feed templates of screws in and spot them in the scene. As you know, in such a case, we have a threshold value (like a sensitivity value) that we tweak based on the false/true negatives we get in the output.

So the very typical problem is that if I set to to a high value, it filters too much and loses the true positives, and when I set it to too low, it gives way too many false positives. The way I see it, there is going to be an optimum value for me, and after that it all will depend on "how further I could filter the false positives out". In this part exactly, I need your help.

image description

How do you think I can filter out the false positives? They are caused by similarities of pixels (of templates) and the parts of the scene, but this is something I cannot change. So far I thought about dividing the surface in the regions and marking down the expected regions where screws are usually expected, kinda like ROI thingy.

image description

But not sure if it makes sense in the long run, since this holds true for harddisks perhaps (screws are always on certain locations) but not other devices.

How do you think one can overcome this problem?

EDIT: So instead using partial templates, I've decided to use instead "complete" templates (full screws), however now I am increasing number of templates I am looping over. That is, I am creating screw templates from images (of scenes) which are different from each other. For instance, some screw templates now has sunlight reflecting on them whereas others look quite dark. See the following templates;

image description image description image description

and then the results I am having are looking like:

image description

Then I think I am now down to the question of " How to find the screws which are not completely visible?"

Way to filter out False Positives in Template Matching

Hi all,

I am trying to detect the screws on metal surfaces so I've implemented a trivial template matcher, in which I feed templates of screws in and spot them in the scene. As you know, in such a case, we have a threshold value (like a sensitivity value) that we tweak based on the false/true negatives we get in the output.

So the very typical problem is that if I set to to a high value, it filters too much and loses the true positives, and when I set it to too low, it gives way too many false positives. The way I see it, there is going to be an optimum value for me, and after that it all will depend on "how further I could filter the false positives out". In this part exactly, I need your help.

image description

How do you think I can filter out the false positives? They are caused by similarities of pixels (of templates) and the parts of the scene, but this is something I cannot change. So far I thought about dividing the surface in the regions and marking down the expected regions where screws are usually expected, kinda like ROI thingy.

image description

But not sure if it makes sense in the long run, since this holds true for harddisks perhaps (screws are always on certain locations) but not other devices.

How do you think one can overcome this problem?

EDIT: So instead using partial templates, I've decided to use "complete" templates (full screws), however now I am increasing number of templates I am looping over. That is, I am creating screw templates from images (of scenes) which are different from each other. For instance, some screw templates now has sunlight reflecting on them whereas others look quite dark. See the following templates;

image description image description image description

and then the results I am having are looking like:

image descriptionimage description

Then I think I am now down to the question of " How to find the screws which are not completely visible?"