本发明涉及智能车机,特别涉及一种算法模型车机端部署方法和工具。
背景技术:
1、随着信息技术的不断发展,汽车这一交通工具也正在向着智能终端的方向转变。目前算法模型在车机端的使用已经越来越广泛,然而,车机端设备的性能无法与pc端相提并论。市面上基本所有的训练框架训练出来的模型都无法直接在车机端上使用和推理,都需要一些专业的部署框架。目前市场上应用最广泛的部署工具主要有以下几种:腾讯公司开发的移动端平台部署工具ncnn;intel公司针对自家设备开开发的部署工具openvino;nvidia公司针对自家gpu开发的部署工具tensorrt;google针对自家硬件设备和深度学习框架开发的部署工具mediapipe;由微软、亚马逊、facebook和ibm等公司共同开发的开放神经网络交换格式onnx(open neural network exchange)。例如,基于专业部署框架ncnn的部署流程如下:
2、第一步:部署开发环境。使用ncnn框架将ai模型部署到安卓系统的终端设备,并部署编译环境,包括python、cmake、android nkd等。
3、第二步:算法模型编译及部署。将生成的pytorch模型转为onnx模型,精简化onnx模型。安装相关依赖库,将onnx模型转为ncnn模型。在安卓端,使用ncnn模型调用相关库进行编译并调用。
4、现有的部署方法对上述专业部署框架有诸多依赖,需要较繁琐的环境配置过程。
技术实现思路
1、为了解决上述问题,发明人做出本发明,不使用现有专业部署框架,仅用现有工具实现模型在车机端的部署,通过具体实施方式,提供一种算法模型车机端部署方法和工具。
2、第一方面,本发明实施例提供一种算法模型车机端部署方法,包括以下步骤:
3、将存储为二进制变长编码格式的算法模型进行压缩,得到压缩后的算法模型;
4、对压缩后的算法模型进行检测,当检测通过时,将压缩后的算法模型部署在车机端。
5、具体的,将存储为二进制变长编码格式的算法模型进行压缩,得到压缩后的算法模型;对压缩后的算法模型进行检测,当检测通过时,将压缩后的算法模型部署在车机端,包括以下步骤:
6、将使用深度学习框架训练出的深度学习算法模型存储为pb格式;
7、使用bazel工具对所述深度学习算法模型进行压缩,得到压缩后的深度学习算法模型;
8、使用预设的测试集分别对所述深度学习算法模型和所述压缩后的深度学习算法模型进行测试,得到对应的输出结果,当所述压缩后的深度学习算法模型的输出结果相对所述深度学习算法模型的输出结果的误差不超过预设阈值时,所述压缩后的深度学习算法模型检测通过;
9、当检测通过时,将所述压缩后的深度学习算法模型置于车机端,并添加相应的框架和依赖。
10、具体的,将所述压缩后的深度学习算法模型置于车机端,并添加相应的框架和依赖,包括以下步骤:
11、将所述压缩后的深度学习算法模型置于车机端的资源目录下,对app/src目录下的build.gradle做相应修改,添加对应深度学习框架的依赖库;
12、在mainacitity.java中设置调用所述压缩后的深度学习算法模型进行运行和输出。
13、具体的,将存储为二进制变长编码格式的算法模型进行压缩之前,包括以下步骤:
14、基于车辆碰撞的仿真数据,使用深度学习框架,以工况为输入,以碰撞损失程度为输出,训练得到预测碰撞损伤程度的算法模型。
15、具体的,当深度学习框架为tensorflow时,所述算法模型车机端部署方法,还包括以下步骤:
16、依靠tensorflowinferenceinterface接口在车机端调用所述压缩后的深度学习算法模型,使用run函数指定输出张量tensor,使用tensorflowinferenceinterface接口中的fetch函数得到输出。
17、第二方面,本发明实施例提供一种算法模型车机端部署工具,包括:
18、模型压缩单元,用于将存储为二进制变长编码格式的算法模型进行压缩,得到压缩后的算法模型;
19、模型部署单元,用于对压缩后的算法模型进行检测,当检测通过时,将压缩后的算法模型部署在车机端。
20、具体的,所述模型压缩单元,具体用于:将使用深度学习框架训练出的深度学习算法模型存储为pb格式;使用bazel工具对所述深度学习算法模型进行压缩,得到压缩后的深度学习算法模型;
21、所述模型部署单元,具体用于:使用预设的测试集分别对所述深度学习算法模型和所述压缩后的深度学习算法模型进行测试,得到对应的输出结果,当所述压缩后的深度学习算法模型的输出结果相对所述深度学习算法模型的输出结果的误差不超过预设阈值时,所述压缩后的深度学习算法模型检测通过;当检测通过时,将所述压缩后的深度学习算法模型置于车机端,并添加相应的框架和依赖。
22、具体的,将所述压缩后的深度学习算法模型置于车机端,并添加相应的框架和依赖,包括:
23、将所述压缩后的深度学习算法模型置于车机端的资源目录下,对app/src目录下的build.gradle做相应修改,添加对应深度学习框架的依赖库;
24、在mainacitity.java中设置调用所述压缩后的深度学习算法模型进行运行和输出。
25、具体的,所述算法模型车机端部署工具,还包括:
26、模型训练单元,用于根据车辆碰撞的仿真数据,使用深度学习框架,以工况为输入,以碰撞损失程度为输出,训练得到预测碰撞损伤程度的算法模型。
27、具体的,当所述深度学习框架为tensorflow时,所述算法模型车机端部署工具,还包括:
28、模型调用单元,用于在车机端通过tensorflowinferenceinterface接口调用所述压缩后的深度学习算法模型,使用run函数指定输出张量tensor,使用tensorflowinferenceinterface接口中的fetch函数得到输出。
29、本发明实施例提供的上述技术方案的有益效果至少包括:
30、仅用现有工具就可以实现模型在车机端的部署,将压缩后的二进制变长编码格式的算法模型部署在车机端,实现端到端的预测输出,部署过程高效方便,不需要专业部署框架,避免了对现有专业部署框架的诸多依赖,避免了专业部署框架较繁琐的环境配置过程,且针对现在的各种深度学习框架都适用。
31、本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
32、下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
1.一种算法模型车机端部署方法,其特征在于,包括以下步骤:
2.如权利要求1所述的方法,其特征在于,将存储为二进制变长编码格式的算法模型进行压缩,得到压缩后的算法模型;对压缩后的算法模型进行检测,当检测通过时,将压缩后的算法模型部署在车机端,包括以下步骤:
3.如权利要求2所述的方法,其特征在于,将所述压缩后的深度学习算法模型置于车机端,并添加相应的框架和依赖,包括以下步骤:
4.如权利要求1所述的方法,其特征在于,将存储为二进制变长编码格式的算法模型进行压缩之前,包括以下步骤:
5.如权利要求2-4任一所述的方法,其特征在于,当深度学习框架为tensorflow时,所述算法模型车机端部署方法,还包括以下步骤:
6.一种算法模型车机端部署工具,其特征在于,包括:
7.如权利要求6所述的工具,其特征在于,
8.如权利要求7所述的工具,其特征在于,将所述压缩后的深度学习算法模型置于车机端,并添加相应的框架和依赖,包括:
9.如权利要求6所述的工具,其特征在于,所述算法模型车机端部署工具,还包括:
10.如权利要求7-9任一所述的工具,其特征在于,当深度学习框架为tensorflow时,所述算法模型车机端部署工具,还包括: