parameters: (preds, scale, threshold=0.7311)
return_statement: return pred, np.array(bbox_list)
docstring: 在输出上使用sigmoid 将值转换为置信度，并使用阈值来进行文字和背景的区分
      :param preds: 网络输出
      :param scale: 网络的scale
      :param threshold: sigmoid的阈值
      :return: 最后的输出图和文本框
docstring_summary: 在输出上使用sigmoid 将值转换为置信度，并使用阈值来进行文字和背景的区分
      :param preds: 网络输出
      :param scale: 网络的scale
      :param threshold: sigmoid的阈值
      :return: 最后的输出图和文本框
docstring_tokens: 在输出上使用sigmoid 将值转换为置信度，并使用阈值来进行文字和背景的区分 : param preds : 网络输出 : param scale : 网络的scale : param threshold : sigmoid的阈值 : return : 最后的输出图和文本框
function: def decode(preds, scale, threshold=0.7311):
      """
      在输出上使用sigmoid 将值转换为置信度，并使用阈值来进行文字和背景的区分
      :param preds: 网络输出
      :param scale: 网络的scale
      :param threshold: sigmoid的阈值
      :return: 最后的输出图和文本框
      """
      preds = torch.sigmoid(preds)
      preds = preds.detach().cpu().numpy()
  
      score = preds[-1].astype(np.float32)
      preds = preds > threshold
      # preds = preds * preds[-1] # 使用最大的kernel作为其他小图的mask,不使用的话效果更好
      pred, label_values = pse_warpper(preds, 5)
      bbox_list = []
      for label_value in label_values:
          points = np.array(np.where(pred == label_value)).transpose((1, 0))[:, ::-1]
  
          if points.shape[0] < 800 / (scale * scale):
              continue
  
          score_i = np.mean(score[pred == label_value])
          if score_i < 0.93:
              continue
  
          rect = cv2.minAreaRect(points)
          bbox = cv2.boxPoints(rect)
          bbox_list.append([bbox[1], bbox[2], bbox[3], bbox[0]])
      return pred, np.array(bbox_list)
function_tokens: def decode ( preds , scale , threshold = 0.7311 ) : preds = torch . sigmoid ( preds ) preds = preds . detach ( ) . cpu ( ) . numpy ( ) score = preds [ - 1 ] . astype ( np . float32 ) preds = preds > threshold # preds = preds * preds[-1] # 使用最大的kernel作为其他小图的mask,不使用的话效果更好 pred , label_values = pse_warpper ( preds , 5 ) bbox_list = [ ] for label_value in label_values : points = np . array ( np . where ( pred == label_value ) ) . transpose ( ( 1 , 0 ) ) [ : , : : - 1 ] if points . shape [ 0 ] < 800 / ( scale * scale ) : continue score_i = np . mean ( score [ pred == label_value ] ) if score_i < 0.93 : continue rect = cv2 . minAreaRect ( points ) bbox = cv2 . boxPoints ( rect ) bbox_list . append ( [ bbox [ 1 ] , bbox [ 2 ] , bbox [ 3 ] , bbox [ 0 ] ] ) return pred , np . array ( bbox_list )