Cách tính multibox trong SSD ?

object-detection
deep-learning

#1

Chào mọi người, em đang thắc mắc việc tính default box trong ssd như thế nào ạ, e tìm thấy tutorial này trên mxnet nhưng ko hiểu cách hoạt động của hàm MultiBoxPrior, mn tư vấn cho e với ạ. Cảm ơn


#2

SSD tính MultiBoxPrior nhu sau:

Giả sử chiều cao và chiều sâu của ảnh x là h và w

ratios theo như trên là [1, 2, 0.5]

scales theo như trên là [0.5, 0.25, 0.1]

từ scales có scale = 0.5 và next_scale=0.25 (mỗi scale sẽ được tính cho tất cả ratio trong danh sách ratios)

Thì chiều cao và chiều sâu của box lần lượt là h_b và w_b

  • nếu ratio bằng 1 sẽ có 2 boxes được tính

        box thứ nhất:
        h_b = h * scale = h * 0.5
        w_b = w * scale = w * 0.5
    
        box thứ hai:
        h_b = h * sqrt(scale * next_scale) = h * sqrt(0.25 * 0.5)
        w_b = w * sqrt(scale * next_scale) = w * sqrt(0.25 * 0.5)
    
  • nếu như ratio khác 1:

        h_b = h * scale / sqrt(ratio)
        w_b = w * scale * sqrt(ratio)
    
        cụ thể với ratio = 2 và 0.5 h_b và w_b lần lượt bằng:
        h_b = h * 0.5 / sqrt(2)
        w_b = w * 0.5 * sqrt(2)
    
        h_b = h * 0.5 / sqrt(0.5)
        w_b = w * 0.5 * sqrt(0.5)
    

Cứ tính lần lượt như vậy cho tất cả các scale trong scales


#3

Nếu theo giải thích ở đây thì phải có 5 boxes được tính cho mỗi cell chứ bạn? riêng ratio =1 là 3 boxes


#4

Cách tính default box hiện vẫn là một vấn đề mở. Theo như bài báo gốc (https://arxiv.org/abs/1512.02325) thì số lượng default box được tạo ra trên mỗi cell của các prediction layer lần lượt là:

38x38: 4 default boxes

19x19: 6 default boxes

10x10: 6 default boxes

5x5: 6 default boxes

3x3: 4 default boxes

1x1: 4 default boxes

Tổng số lượng default boxes được tạo ra cho cả mạng sẽ là:

38x38x4 + 19x19x6 + 10x10x6 + 5x5x6 + 3x3x4 + 1x1x4 = 8732 boxes

Đây là cách tính mình tham khảo trực tiếp từ code của tác giả viết trên Caffe (https://github.com/weiliu89/caffe/tree/ssd). Theo như hình vẽ bên trên thì không có trường hợp nào tạo ra 5 default boxes cả.

Default box cũng có thể được tính giống như blog bạn gửi (tạo ra 3 default boxes cho trường hợp ratio = 1). Cách nào cũng dùng đc nếu bạn huấn luyện mạng lại từ đầu.

Thân,