class_docstr: Bbox head used in Double-Head R-CNN
  
  .. code-block:: none
  
                                        /-> cls
                    /-> shared convs ->
                                        \-> reg
      roi features
                                        /-> cls
                    \-> shared fc    ->
                                        \-> reg
code: def forward(self, x_cls, x_reg):
      # conv head
      x_conv = self.res_block(x_reg)
  
      for conv in self.conv_branch:
          x_conv = conv(x_conv)
  
      if self.with_avg_pool:
          x_conv = self.avg_pool(x_conv)
  
      x_conv = x_conv.view(x_conv.size(0), -1)
      bbox_pred = self.fc_reg(x_conv)
  
      # fc head
      x_fc = x_cls.view(x_cls.size(0), -1)
      for fc in self.fc_branch:
          x_fc = self.relu(fc(x_fc))
  
      cls_score = self.fc_cls(x_fc)
  
      return cls_score, bbox_pred
  
file_path: insightface/detection/scrfd/mmdet/models/roi_heads/bbox_heads/double_bbox_head.py
imports: import torch.nn
  from mmcv.cnn import ConvModule, normal_init, xavier_init
  from mmdet.models.backbones.resnet import Bottleneck
  from mmdet.models.builder import HEADS
  from .bbox_head import BBoxHead
label_desc: Use image node_id 5 for calling the DoubleConvFCBBoxHead obj's underlying member method code with example usage: obj.forward(x_cls, x_reg) and returns: cls_score,  bbox_pred