code: def postprocess(self, input_dicts, fetch_data, data_id, log_id):
      rec_list = []
      dt_num = len(self.dt_list)
      if isinstance(fetch_data, dict):
          if len(fetch_data) > 0:
              rec_batch_res = self.ocr_reader.postprocess(
                  fetch_data, with_score=True
              )
              for res in rec_batch_res:
                  rec_list.append(res)
      elif isinstance(fetch_data, list):
          for one_batch in fetch_data:
              one_batch_res = self.ocr_reader.postprocess(
                  one_batch, with_score=True
              )
              for res in one_batch_res:
                  rec_list.append(res)
      result_list = []
      for i in range(dt_num):
          text = rec_list[i]
          dt_box = self.dt_list[i]
          if text[1] >= 0.5:
              result_list.append([text, dt_box.tolist()])
      res = {"result": str(result_list)}
      return res, None, ""
  
imports: from paddle_serving_server.web_service import WebService, Op
  import logging
  import numpy
  import copy
  import cv2
  import base64
  from ocr_reader import OCRReader, DetResizeForTest, ArgsParser
  from paddle_serving_app.reader import Sequential, ResizeByFactor
  from paddle_serving_app.reader import Div, Normalize, Transpose
  from paddle_serving_app.reader import DBPostProcess, FilterBoxes, GetRotateCropImage, SortedBoxes
label_desc: Use image node_id 3 for calling the RecOp obj's underlying member method code with example usage: obj.postprocess(input_dicts, fetch_data, data_id, log_id) and returns: res,  None,  str