I was reading the Efficient and Accurate Scene Text Detector paper and saw the author reference VGG-16 as a possible stem "feature extractor" network. In the paper they say:

In our experiments, we also adopted the well-known VGG16 model, where the feature maps after pooling-2 and pooling 5 are extracted.

I'am trying to re-implement this paper on my own using VGG16, and was wondering if anyone knows(or can infer) how the VGG16 implementation would look like. The author provides this diagram representing how it was done with PVANet:

with pvanet

Each block takes the input from the previous hi. Does unpooling on it, concatenation with the corresponding feature extractor layer output map and a 1x1 followed by 3x3 convolution (as shown in the diagram).

This works out nicely because each block will double the sizes of the feature map while also halving the channels of it; this will pass the data along until there are 32 channels! And the author has chosen pvanet layers whose output feature map sizes increase by a factor of 2x:

Four levels of feature maps, denoted as fi are extracted from the stem, whose sizes are 1/32, 1/16, 1/8, 1/4.

Going back to VGG16 though, the selected feature maps actually change by a factor of 8x: 168/21 = 320/40 = 8. block 2 also has 128 channels, which is way more than the desired end goal of 32. Here is tf.keras's topless VGG16 (I have circled the output feature map shapes of block 2 and 5 pooling layers):

enter image description here

(sorry about the image size, you wouldnt be able to read the numbers otherwise. I selected an input image size divisible by 32 for demonstration)

So my questions are:

  • how would the feature merging branch look since the selected feature maps from the feature extractor increase by 8x?

    I was thinking I could just repeatedly unpool block 5's output until it matches block 2's. Seems like a peculiar way of doing it?

  • How would I make sure there are a total of 32 channels by the end of the feature-merging branch?

    I have no idea for this one 😅

I've seen this: https://github.com/SakuraRiven/EAST, however this implementation is using 3 concatenations.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.