class_docstr: SniperCOCODataSet
class_docstr_tok: ["SniperCOCODataSet"]
code: def _merge_anno_proposals(self):
      assert self.roidbs
      if self.proposals and len(self.proposals.keys()) > 0:
          logger.info("merge proposals to annos")
          for id, record in enumerate(self.roidbs):
              image_id = int(record["im_id"])
              if image_id not in self.proposals.keys():
                  logger.info(
                      "image id :{} no proposals".format(image_id)
                  )
              record["proposals"] = np.array(
                  self.proposals.get(image_id, []), dtype=np.float32
              )
              self.roidbs[id] = record
  
imports: import os
  import cv2
  import json
  import copy
  import numpy
  from ppdet.core.workspace import register, serializable
  from ppdet.data.crop_utils.annotation_cropper import AnnoCropper
  from .coco import COCODataSet
  from .dataset import _make_dataset, _is_valid_file
  from ppdet.utils.logger import setup_logger
label_desc: Use image node_id 7 for calling the SniperCOCODataSet obj's underlying member method code with example usage: obj._merge_anno_proposals() without return types