FPN — Feature Pyramid Network (Object Detection)

1. Giới thiệu

  • Object detection cho các scale khác nhau là rất thách thức cho các object nhỏ. Chúng ta có thể sử dụng kim tự tháp (pyramid) của cùng một bức ảnh với các scale khác nhau để phát hiện đối tượng. Tuy nhiên việc này gây tốn kém về bộ nhớ cũng như tài nguyên tính toán –> quá phức tạp cho quá trình training. Thay vào đó, chúng ta chỉ có thể sử dụng phương pháp này cho quá trình inference tại một số cuộc thi, nơi mà tốc độ xử lý không quá quan trọng, để đảm bảo thu được kết quả chính xác hơn tại thời gian inference.
  • Thay vào đó, chúng ta tạo ra một kim tự tháp các feature và sử dụng chúng cho object detection. Tuy nhiên, các kim tự tháp ở layer gần với image chỉ chứa những thuộc tính thô của bức ảnh, do đó không hiệu quả để sử dụng chúng để tăng độ chính xác cho mô hình.
  • FPN (Feature Pyramid Networks) là bộ lọc feature áp dụng nguyên lý kim tự tháp feature trên trong khi đảm bảo cân bằng giữa độ chính xác và tốc độ xử lý.
  • FPN được tạo ra để thay thế các bộ lọc feature được sử dụng như trong Faster R-CNN và tạo ra multi-scale feature maps với chất lượng thông tin tốt hơn bộ lọc feature thông thường.

2. Data Flow

  • FPN bao gồm một đường từ dưới lên (bottom-up pathway) và một luồng từ trên xuống (top-down pathway) (trong khi đó, các thuật toán khác chỉ thường sử dụng bottom-up).
  • Bottom-up pathway là một mạng CNN thông thường để thực hiện feature extraction. Càng lên cao, độ phân giải (resolution) càng giảm (kích thước của feature maps giảm), và giá trị thông tin về ngữ cảnh càng cao (semantic value).  SSD thực hiện phát hiện object từ multiple feature maps này, tuy nhiên bỏ qua các layer đầu tiên do ít thông tin quan trọng. Do đó, SSD hoạt động không tốt khi phát hiện các object nhỏ.

1*M_c6Jx5Uy7qr6vJbrtAvhg

 

  • FPN xây dựng thêm mô hình top-down, nhằm mục đích xây dựng các layer có độ phân giải cao từ các layer có ngữ nghĩa cao.

1*aMRoAN7CtD1gdzTaZIT5gA

  • Trong quá trình xây dựng lại các layer từ top xuống bottom, chúng ta sẽ gặp một vấn đề khá nghiêm trọng là bị mất mát thông tin của các đối tượng. Ví dụ một đối tượng nhỏ khi lên top sẽ không thấy nó, và từ top đi ngược lại sẽ không thể tái tạo lại đối tượng nhỏ đó. Để giải quyết vấn đề này, chúng ta sẽ tạo các kết nối skip connection (tương tự như Resnet) giữa các reconstruction layer và các feature map để giúp quá trình detector dự đoán các vị trí của đối tượng thực hiện tốt hơn (hạn chế tốt nhất việc mất mát thông tin).

fpn-top-down-model-with-skip-connection.jpg

  • Đồ hình bên dưới diễn ta chi tiết đường đi theo bottom-up và top-down. P2, P3, P4, P5 là các pyramid của các feature map.

fpn-top-down-with-bottom-up.jpg

3.Sử dụng FPN (Feature Pyramid Network) với RPN (Region Proposal Network)

  • FPN không phải là mô hình phát hiện đối tượng. Nó là mô hình phát hiện đặc trưng và được sử dụng cùng với một thuật toán object detection. Các feature map từ P2 đến P5 trong hình bên dưới độc lập với nhau. Một conv 3×3 trượt lần lượt qua các feature maps này và extract features, sau đó các features này được đưa qua một conv 1×1 regression và một conv 1×1 classification.

1*cHR4YRqdPBOx4IDqzU-GwQ

4. Sử dụng FPN với Fast R-CNN hoặc Faster R-CNN.

  • Chúng ta hoàn toàn có thể sử dụng FPN trong Fast và Faster R-CNN. Chúng ta sẽ tạo ra các feature map sử dụng FPN, kết quả là ta thu được các puramid (feature map). Sau đó, chúng ta sẽ rút trích các ROIs trên các feature map đó nhờ RPN (region proposal network). Dựa trên kích thước của các ROI, chúng ta sẽ chọn feature map nào tốt nhất để tạo các feature patches (các hình chữ nhật nhỏ).

fpn-in-faster-r-cnn

5. Kết luận

  • Top-down pathway hồi phục lại độ phân giải cao với giàu thông tin về ngữ cảnh.
  • Việc thay thế FPN cho RPN cải thiện việc phát hiện các object nhỏ –> tăng độ chính xác cho thuật toán object detection.
  • Để so sánh cụ thể hơn, xem link.

6. Reference

3 thoughts on “FPN — Feature Pyramid Network (Object Detection)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s