0 votes
1 view
in Machine Learning by (12.5k points)

I'm gathering results from my image detector algorithm. So basically what I do is that, from a set of images (with the size of 320 x 480), I would run a sliding window of 64x128 thru it, and also under a number of predefined scales.

I understand that:

  • True Positives = when my detected window overlaps (within defined intersection size / centroid) with the ground-truth (annotated bounding boxes)
  • False Positives = when the algorithm gives me positive windows, which are outside of the grond truth.
  • False Negatives = when it failed me to give positive window, while the ground truth annotation states that there's an object.

But what about True Negatives ? Are these true negatives all the windows that my classifier gives me negative results ? That sounds weird, since I'm sliding a small window (64x128) by 4 pixels at a time, and I've around 8 different scales used in detection. If I were to do that, then I'd have lots of true negatives per image.

Or do I prepare a set of pure negative images (no objects / human at all), where I just slide thru, and if there's one or more positive detections in each of these images, I'd count it as False Negative, and vice versa ?

Here's an example image (with green rects as the ground truth)

Example image, not real result

1 Answer

0 votes
by (32.8k points)

There are mainly four terms of the classification matrix.

  • False-negative - Result should have been positive, but is negative.
  • False-positive - Result should have been negative, but is positive.
  • True positive - Result should have been positive and is positive.
  • True negative - Result should have been negative and is negative.

In your case, you are trying to detect the objects in your image. False-negative would mean that there was an object (the result should be positive) but the algorithm can not detect it (and therefore returned negative). A true negative is simply the algorithm correctly stating that the area is checked and does not hold an object.

You can choose to ignore negative values, but these could be used to further train your algorithm (Eg; using an algorithm that looks for both, instead of setting everything that is not recognized to false).

Hope this answer helps you!

...