PAPER_READER_2: Fast R-CNN - P2: Kiến trúc mạng và training.
-
date_range 28/02/2020 15:19 infosortPAPER_READERlabelpaperfast-r-cnn
Bài viết dựa trên nội dung paper Fast R-CNN (Ross Girshick).
2. Kiến trúc mạng và training
Input của mạng Fast R-CNN là toàn bộ ảnh và tập hợp các bounding-box của vật thể.
Đầu tiên mạng sẽ trích xuất feature map bằng convolution và max-pooling.
Feature map của bounding-box sau đó được đưa qua lớp RoI pooling.
Từng feature vector được nối với một chuỗi các fully connected (fc) layers rồi cuối cùng đưa ra 2 output:
- Một output dùng softmax để đưa ra dự đoán class trong class ( classes + background).
- Output kia trả về 4 giá trị của từng object để xác định bounding-box của vật thể.
2.1. RoI pooling layers
- RoI pooling sử dụng max-pooling để convert feature map của bounding-box về kích cỡ (thường được chọn ).
- RoI được xác định là cửa sổ hình chữ nhật trong feature map. Đại diện cho nó là 4 tham số , với là vị trí góc trên bên trái của hình chữ nhật, lần lượt là chiều cao và chiều rộng.
- RoI max-pooling chia bounding-box thành các cửa sổ nhỏ rồi dùng max-pooling đưa output về dạng .
- Bạn đọc tìm hiểu rõ hơn tại đây.
2.2. Initializing from pre-trained
Các mạng VGG thường được dùng trong image classification. Khi thực hiện pre-train cho mạng Fast R-CNN, ta cần chỉnh sửa một chút như sau:
- Lớp max-pooling cuối cùng được thay bằng RoI pooling.
- Lớp fc và softmax cuối cùng được thay thế bằng 2 lớp như đã đề cập ở trên (fc+softmax (K+1) classes và bounding-box).
- Dữ liệu đầu vào phải bao gồm ảnh và list các RoI của từng ảnh.
2.3. Fine-tuning for detection
Multi-task loss:
Quy ước:
- là class nhãn.
- là bounding-box nhãn của class với .
Mạng Fast R-CNN trả về hai output:
- là dự đoán phân phối xác suất của classes.
- là bounding-box dự đoán của class với .
của class được định nghĩa:
Từng RoI được gán nhãn và bounding-box . Hàm loss của RoI này sau khi được predict là:
phụ thuộc vào nhãn và predict . nếu và bằng nếu ngược lại, nghĩa là: nếu (tức vật thể trong RoI là background) thì được bỏ qua.
, với:
là tham số dùng để cân bằng giữa hai loss. Bounding-box thường được chuẩn hóa về zero mean and unit variance.
Mini-batch sampling:
Mỗi vòng lặp sẽ chọn ngẫu nhiên images trong bộ dataset. Dùng selective search [3] lấy mẫu 64 RoIs mỗi image.
- Lấy những RoIs có IoU >0.5, gán nhãn class cho RoI đó ().
- Phần còn lại (IoU) lấy RoI có IoU max, nhãn là .
Trong suốt quá trình training, image flipped với xác suất 0.5. Không sử dụng data augmention.
Backpropagation through RoI pooling layers:
là in input thứ của lớp RoI pooling, là lớp output thứ của RoI thứ .
Do đó ta có: với
Công thức đạo hàm sẽ là:
SGD hyper-parameters:
- Mạng Fast R-CNN dùng softmax cho phân lớp và bounding-box được khởi tạo bằng zero-mean Gaussian với độ lệch chuẩn khoảng , bias ban đầu bằng .
- Mỗi layer sử dụng learning rate là cho weights và cho biases. Global learning rate được chọn là . Đi với đó là momentum và parameter decay cho cả weights và biases.
Tham khảo
[1] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014.
[2] Fast R-CNN for object detection | Toward Data Science
[3] J. Uijlings, K. van de Sande, T. Gevers, and A. Smeulders. Selective search for object recognition. IJCV, 2013.