code: def save_result_image(
      self,
      original_image,
      detection_boxes,
      rec_results,
      output_dir="ocr_result",
      text_thresh=0.5,
  ):
      image = Image.fromarray(
          cv2.cvtColor(original_image, cv2.COLOR_BGR2RGB)
      )
      txts = [item[0] for item in rec_results]
      scores = [item[1] for item in rec_results]
      draw_img = draw_ocr(
          image,
          detection_boxes,
          txts,
          scores,
          font_file=self.font_file,
          draw_txt=True,
          drop_score=text_thresh,
      )
  
      if not os.path.exists(output_dir):
          os.makedirs(output_dir)
      ext = get_image_ext(original_image)
      saved_name = "ndarray_{}{}".format(time.time(), ext)
      save_file_path = os.path.join(output_dir, saved_name)
      cv2.imwrite(save_file_path, draw_img[:, :, ::-1])
      return save_file_path
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import argparse
  import ast
  import copy
  import math
  import os
  import time
  import cv2
  import numpy
  import paddle
  from chinese_ocr_db_crnn_server.character import CharacterOps
  from chinese_ocr_db_crnn_server.utils import base64_to_cv2
  from chinese_ocr_db_crnn_server.utils import draw_ocr
  from chinese_ocr_db_crnn_server.utils import get_image_ext
  from chinese_ocr_db_crnn_server.utils import sorted_boxes
  from paddle.inference import Config
  from paddle.inference import create_predictor
  from PIL import Image
  import paddlehub
  from paddlehub.module.module import moduleinfo
  from paddlehub.module.module import runnable
  from paddlehub.module.module import serving
  from paddlehub.utils.log import logger
label_desc: Use image node_id 10 for calling the ChineseOCRDBCRNNServer obj's underlying member method code with example usage: obj.save_result_image(original_image, detection_boxes, rec_results, output_dir, text_thresh) and returns: save_file_path