EasyOCR 将结果转换为可序列化的JSON格式,

krcsximq  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(33)

根据EasyOCR/easyocr/recognition.py文件的第137行到149行,代码片段如下:

|  | values=preds_prob.max(axis=2) |
|  | indices=preds_prob.argmax(axis=2) |
|  | preds_max_prob= [] |
|  | forv,iinzip(values, indices): |
|  | max_probs=v[i!=0] |
|  | iflen(max_probs)>0: |
|  | preds_max_prob.append(max_probs) |
|  | else: |
|  | preds_max_prob.append(np.array([0])) |
|  | |
|  | forpred, pred_max_probinzip(preds_str, preds_max_prob): |
|  | confidence_score=custom_mean(pred_max_prob) |
|  | result.append([pred, confidence_score]) |

这里的confidence是numpy.array,它不是json可序列化的。如果能将其转换为json可序列化的形式会更好。

另外,根据EasyOCR/easyocr/detection.py文件的第92行到110行,代码片段如下:

|  | defget_textbox(detector, image, canvas_size, mag_ratio, text_threshold, link_threshold, low_text, poly, device, optimal_num_chars=None): |
|  | result= [] |
|  | estimate_num_chars=optimal_num_charsisnotNone |
|  | bboxes_list, polys_list=test_net(canvas_size, mag_ratio, detector, |
|  | image, text_threshold, |
|  | link_threshold, low_text, poly, |
|  | device, estimate_num_chars) |
|  | ifestimate_num_chars: |
|  | polys_list= [[pforp, _insorted(polys, key=lambdax: abs(optimal_num_chars-x[1]))] |
|  | forpolysinpolys_list] |
|  | |
|  | forpolysinpolys_list: |
|  | single_img_result= [] |
|  | fori, boxinenumerate(polys): |
|  | poly=np.array(box).astype(np.int32).reshape((-1)) |
|  | single_img_result.append(poly) |
|  | result.append(single_img_result) |
|  | |
|  | returnresult |

文本框的坐标也是ndarray类型。但是我发现有些坐标返回的是整数而不是ndarray。这很奇怪。抱歉我无法提供源图像,因为它包含患者信息。

pcww981p

pcww981p1#

非常好的想法。
这使得与非Python程序的接口更加容易。
我希望有像read.readtext(filepath, output_format = 'json')这样的问题,以及#326

相关问题