ssd_keras
ssd_keras copied to clipboard
What is prior_boxes_ssd300.pkl? Is there anyone knowing this?
After read all the issues here, still don't know what prior_boxes_ssd300.pkl is.
Hello @KevinYuk, the file prior_boxes_ssd300.pkl contains 7308 bounding boxes. Every box contains x_min, y_min, x_max, y_max, variance_1, variance_2, variance_3, variance_4. This bounding boxes are referred in the paper as prior boxes. All boxes dimensions are normalized and should have a similar aspects as the ones depcited in the next figure

However, looking at @rykov8 s implementation the bounding boxes were not entirely created using the equations described in the paper; instead, they were based on their actual caffe implementation.
It's also the same as model.predict(img)[0, :, -8:]. No need to get it from the pickle file.
Hi @oarriaga,
Thanks very much for your clarification. I thought prior box is the label information of the dataset, but now it seems that it is not. I found that the final layer output of SSD topology is "predictions (Merge) (None, 7308, 33)". Why it's 7308? I have change the network from SSD(vgg) to SSD(resnet), the final layer output is "predictions (Merge) (None, 5166, 33)". How could I get a new prior_boxes_ssd300.pkl contains 5166 bounding boxes?
Thanks a lot.
Hi @tachim,
Many thanks for your comments. You said that no need to get it from the pickle file. Can you give me more details? Below is the code from SSD_trainning.py:
preds = model.predict(inputs, batch_size=1, verbose=1)
results = bbox_util.detection_out(preds)
How to change the code to avoid to get prior box info from the pickle file?
Thanks a lot.
@KevinYuk i suggest reading my comment more carefully
@tachim , as you said for using priors we can use model.predict(img)[0, :, -8:] , that can be done without any prior training of network, right??
Yes.
I understand why the output shape has 7308 but why 33? where this coming from ?
https://gist.github.com/codingPingjun/aa54be7993ca6b2d484cccf5a2c5c3d4