ssd_keras icon indicating copy to clipboard operation
ssd_keras copied to clipboard

Minimum size for an object to detect

Open Walid-Ahmed opened this issue 7 years ago • 3 comments

Hi, What would be the minimum size for an object to detect on the 300px by 300 px ?

Thanks

Walid-Ahmed avatar Aug 15 '17 15:08 Walid-Ahmed

Hi,

it is hard to say exactly, but my guess is that under 30x30 you would have a loss in precision. On the conv4_3 layer, the size of the box is one tenth (if you make abstraction of the boxes deformations) of the image, thus smaller objects with smaller boxes will tend to be harder to detect.

D3lt4lph4 avatar Aug 22 '17 16:08 D3lt4lph4

@D3lt4lph4 Thanks, but now I have one more question conv4_3 layers is 3838 grid and an image is 300px300px so I believe the size of each cell in this layer is about 7.89473684px*7.89473684p? will this be the minimum object to be recognized? how did you figure out " the size of the box is one tenth?" Am I misunderstanding something?

Walid-Ahmed avatar Aug 30 '17 13:08 Walid-Ahmed

@Walid-Ahmed If you take a look in the original paper here (this not the latest version but this implementation is based on the v2 of the paper I think) at the section 3.1 it says they used boxes with scale 0.1 for the conv3_4 layer. Also if you check the file ssd.py at the line 152, you have :

priorbox = PriorBox(img_size, 30.0, aspect_ratios=[2],
                        variances=[0.1, 0.1, 0.2, 0.2],
name='conv4_3_norm_mbox_priorbox')

With 30.0 being the minimum size for the boxes.

The fact that you use the 38x38 sized layer with the scale of 0.1 for the boxes may be misleading but I guess they used it to have boxes partially overlap one another.

D3lt4lph4 avatar Aug 30 '17 14:08 D3lt4lph4