To obtain the features for a region \(b\) , we apply the VLM pooling layer \(\mathcal {P}(\cdot )\)  on the cropped backbone output features \(\mathcal {F}(I)\)  (see Sec. REF  for notations). Because the pooling layer requires fixed-size inputs, e.g. 7x7 for R50 [1]}, we crop and resize the region features with ROI-Align \(\mathcal {R}(\cdot )\)  [2]} (see Fig. REF ). Unlike existing works [3]}, [4]}, we do not crop and resize the RGB image regions and cache their embeddings in a separate offline process, but train the detector head with \(\mathcal {R}(\cdot )\)  online in a single stage. This is simpler and more space-efficient. Using the notations from equation REF , we obtain the VLM region embedding \(\mathbf {v}_b\)  by:
\(\mathbf {v}_b = \mathcal {P}(\mathcal {R}(\mathcal {F}(I), b))\) 
