Dear friend and mentor,
I want to confirm my understanding about Non-max suppression algorithm. In the slides, it shows the steps are:
step 1. Discard all boxes with P_c ≤ 0.6
step 2 While there are any remaining boxes:
Pick the box with the largest P_c
Output that as a prediction.step 3 Discard any remaining box with
IoU ≥ 0.5 with the box output
in the previous step
Here is a simple example, lets assume I have 5 boxes (5 P_c) here, and they are [0.2, 0.5, 0.6, 0.7, 0.9].
After step 1, the 0.2 and 0.5 will be gone. leftover are 0.6, 0.7, 0.9
step 2: box 0.9 is the highest in the leftover. So, 0.9 box here will be picked as the ground truth one (which is “Output that as a prediction.”) this step is correct?
step3: the box of 0.6 will do IoU with 0.9, and box of 0.7 will do IoU with 0.9, whichever IoU >= 0.5 will be deleted. (I am not following here actually)
Q1, for the Non-max suppression algorithm, you can use small grid cells to detect the object (assume just one here), the first target is to find the best cell (only one will be selected), once this grid cell is found, you found the middle point. then you found the bounding box (by using that middle point, and box size b_w, b_h). Is this correct?
Q2, in the step 2, “Output that as a prediction” means the ground truth box, Is this correct? In my example, 0.9 is considered as the true one.
Q3, If Q2 understanding is correct. Why I do need to do IoU with 0.6 and 0.7? I just pick the 0.9, delete all rest, done ! why I need to delete the IoU>=0.5 with the true one again? Yes, if the IoU >=0.5 with true one, I should ignore it since it’s repetition. But we already knew the true one is 0.9, right?
Thank you!!