三、fp
crop_image_req = 0
crop_item_image_req = 1
recognize_type = 0
segment_type_id = 12 # by default, assume it is other invoice
-
image_data_list = [''] -- 刚取回的图像文件内容
-- 开始计时!
-
np_raw_image_data -- numpy数组 -- numpy数组格式的原始数据

-
segment_result = -- 识别服务器返回的xml类型(str)的分割图像数据( 共3个{发票对象} )

-
fapiao_list_tmp -- 用json将xml装载成了字典类型

-
fapiao_list -- 检查剔除13(非发票)类型

-
np_fapiao_image_data -- numpy数组 -- 切割出当前这张发票

-
开子线程,传入当前发票信息
t = threading.Thread(target=do_fapiao_recognize, args=(np_fapiao_image_data, segment_type_id,quad, split_score))
1. 线程1
id相关:
(id)segment_type_id :4 --> description
recogize_feat_id :38 (选择啥类型识别算法)
tcnn_class_id = do_text_classify(xml) :10 识别出‘出租车发票’
result_dict['type'] = segment_id_description[segment_type_id]['id'] ‘10201’ result_dict['type_msg']=segment_id_description[segment_type_id]['page_name'] ‘出租车票’
- np_fapiao_image_data -- 对传进来的 image_data 进行size放大(本次数据维度大,不用放大)
- xml -- 将发票数据发给算法识别,返回xml字块结果
xml = recognize_type_array(recogize_feat_id, np_fapiao_image_data.tostring(), np_fapiao_image_data.shape, enable_vertical=True)

- page_ele = ET.fromstring(xml) -- 使用ElementTree解析XML
----取出其中的rotation属性用以旋转发票数据(np_fapiao_image_data)



- np_fapiao_image_data 旋转后的数据
解析xml获取发票类型为‘出租车发票’
parser_func_list = [ <taix_invoice_parser> ]
- result_dict -- 加载 <taix_invoice_parser> 函数处理的结果 -- 文字关联!
result_dict = parser_func(xml, np_fapiao_image_data, rotation)



- result_dict -- 添加了一些类型等信息后

-
reco_result_dict = result_dict['recognize_result'] -- 还是只取‘recognize_result’

-
reco_list.append(result_dict)
关键信息截图,向result_dict添加分数,将该发票信息append到发票列表里,线程结束
四、驾驶证
1. 只识别出字块
1.1. xml -- 第一次将原始数据发到后台识别 第一步,只识别出字块

2. 将字块关联对应
hs.lib_parser.EXParseTextPageXml()
ret = hs.lib_parser.EXParseTextPageXml(xml, result_buffer, buffer_size, type_id)
第二步,通过此函数将字块关联对应
下述(1,2,3内容其实一样)
2.1. result_buffer -- raw:

2.2. result_buffer -- value:

2.3. result_xml -- 从 result_buffer 中取出结果xml数据

2.4. page = ET.fromstring(result_xml)
2.4.1 根节点 标签:



2.5. result_dict -- 将page(ElenmentTree类型)转化为dict(字典类型)-- 通过遍历节点

