根据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。这很奇怪。抱歉我无法提供源图像,因为它包含患者信息。
1条答案
按热度按时间pcww981p1#
非常好的想法。
这使得与非Python程序的接口更加容易。
我希望有像
read.readtext(filepath, output_format = 'json')
这样的问题,以及#326。