I'm going through Andrew NG's course, which talks about YOLO, but he doesn't go into the implementation details of anchor boxes.
After having looked through the code, each anchor box is represented by two values, but what exactly are these values representing?
As for the need for anchor boxes, I'm also a little confused about that -- As far as I understand, the ground truth labels have around 6 variables :
- $P_o$ checks if it's an object or background,
- $B_x$ and $B_y$ are the center coordinates
- $B_h$ and $B_w$ are the height and width of the box
- $C$ is the object class, which depends on how many classes you have, so you can have multiple $C$
As for creating the bounding box,
$B_h$ is divided by 2, with one half from the center points ($B_x, B_y$) to the top, and the other half to the bottom.
If we train our classifier, wouldn't the prediction boxes be close to the ground truth labels as training progresses? So, if our ground truth label has a high height, small width as boxes for some images, and low hight and large width for other images, wouldn't our classifier automatically learn to differentiate between when to use one over the other, as it is being trained? If so then what is the use of anchor boxes? And what are those numbers representing anchor boxes representing?