首页 / 专利库 / 电脑图像 / 计算机图形学 / 算法移植的方法及装置

算法移植的方法及装置

阅读:771发布:2020-05-11

专利汇可以提供算法移植的方法及装置专利检索,专利查询,专利分析的服务。并且本 申请 实施例 提供一种 算法 移植的方法及装置,涉及 人工智能 领域,具体包括:获取 云 端或 服务器 中的用于将 图像处理 为符合所述 深度学习 模型输入需求的格式的第一算法,以及用于利用处理后的图像输出识别结果的第一深度学习模型,并将第一算法转换为目标嵌入式设备支持的目标算法,将第一深度学习模型转换为目标嵌入式设备支持的目标深度学习模型,进而将目标算法和目标深度学习模型移植至目标嵌入式设备,则目标嵌入式设备可以基于目标算法和目标深度学习模型实现方便的 图像识别 ,不需要依赖网络和服务器。,下面是算法移植的方法及装置专利的具体信息内容。

1.一种算法移植的方法,其特征在于,所述方法包括:
确定待移植的第一算法和第一深度学习模型;所述第一算法用于将图像处理为符合所述第一深度学习模型输入需求的格式,所述第一深度学习模型用于利用处理后的图像输出识别结果;
将所述第一算法转换为目标嵌入式设备支持的目标算法,所述第一算法和所述目标算法对同一图像的处理结果相同;
将所述第一深度学习模型转换为所述目标嵌入式设备支持的目标深度学习模型,所述第一深度学习模型和所述目标深度学习模型对同一输入的识别结果相同;
将所述目标算法和所述目标深度学习模型移植至所述目标嵌入式设备。
2.根据权利要求1所述的方法,其特征在于,所述第一深度学习模型中包括:所述目标嵌入式设备不支持的第一算子;
所述将所述第一深度学习模型转换为所述目标嵌入式设备支持的目标深度学习模型,包括:
若所述第一算子存在目标嵌入式设备支持的替换算子,利用所述替换算子替换所述第一算子;
若所述第一算子不存在目标嵌入式设备支持的替换算子,结合所述第一算子的算法逻辑,生成所述第一算子对应的第二算子,所述第二算子为所述目标嵌入式设备支持的算子。
3.根据权利要求1-2任一项所述的方法,其特征在于,还包括:
调整所述目标算法,直到所述目标算法的输出与所述目标深度学习模型所需的输入一致。
4.根据权利要求3所述的方法,其特征在于,还包括:
调整所述目标深度学习模型,直到所述目标深度学习模型的输出与所述第一深度学习模型的输出之间的差异满足预设条件。
5.根据权利要求1-2任一项所述的方法,其特征在于,还包括:
对所述目标深度学习模型进行压缩和/或量化。
6.根据权利要求5所述的方法,其特征在于,还包括:
对所述目标深度学习模型进行基于微调fine-tuning的精度优化。
7.根据权利要求1-2任一项所述的方法,其特征在于,还包括:
调整所述目标算法和所述目标深度学习模型,直到在所述目标嵌入式设备运行所述目标算法和所述目标深度学习模型时的稳定性满足一定条件。
8.根据权利要求1-2任一项所述的方法,其特征在于,所述目标嵌入式设备包括:嵌入式中央处理单元CPU、嵌入式图形处理器GPU、嵌入式现场可编程阵列FPGA或嵌入式数字信号处理器DSP。
9.一种算法移植的装置,其特征在于,包括:
确定模,用于确定待移植的第一算法和第一深度学习模型;所述第一算法用于将图像处理为符合所述第一深度学习模型输入需求的格式,所述第一深度学习模型用于利用处理后的图像输出识别结果;
第一转换模块,用于将所述第一算法转换为目标嵌入式设备支持的目标算法,所述第一算法和所述目标算法对同一图像的处理结果相同;
第二转换模块,用于将所述第一深度学习模型转换为所述目标嵌入式设备支持的目标深度学习模型,所述第一深度学习模型和所述目标深度学习模型对同一输入的识别结果相同;
移植模块,用于将所述目标算法和所述目标深度学习模型移植至所述目标嵌入式设备。
10.根据权利要求9所述的装置,其特征在于,所述第一深度学习模型中包括:所述目标嵌入式设备不支持的第一算子;
所述第二转换模块具体用于:
若所述第一算子存在目标嵌入式设备支持的替换算子,利用所述替换算子替换所述第一算子;
若所述第一算子不存在目标嵌入式设备支持的替换算子,结合所述第一算子的算法逻辑,生成所述第一算子对应的第二算子,所述第二算子为所述目标嵌入式设备支持的算子。
11.根据权利要求9-10任一项所述的装置,其特征在于,还包括:
第一调整模块,用于调整所述目标算法,直到所述目标算法的输出与所述目标深度学习模型所需的输入一致。
12.根据权利要求11所述的装置,其特征在于,还包括:
第二调整模块,用于调整所述目标深度学习模型,直到所述目标深度学习模型的输出与所述第一深度学习模型的输出之间的差异满足预设条件。
13.根据权利要求9-10任一项所述的装置,其特征在于,还包括:
第三调整模块,用于对所述目标深度学习模型进行压缩和/或量化。
14.根据权利要求13所述的装置,其特征在于,还包括:
第四调整模块,用于对所述目标深度学习模型进行基于微调fine-tuning的精度优化。
15.根据权利要求9-10任一项所述的装置,其特征在于,还包括:
第五调整模块,用于调整所述目标算法和所述目标深度学习模型,直到在所述目标嵌入式设备运行所述目标算法和所述目标深度学习模型时的稳定性满足一定条件。
16.根据权利要求9-10任一项所述的装置,其特征在于,所述目标嵌入式设备包括:嵌入式中央处理单元CPU、嵌入式图形处理器GPU、嵌入式现场可编程门阵列FPGA或嵌入式数字信号处理器DSP。
17.一种电子设备,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-8任一项所述的方法的指令。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,计算机指令用于使所述计算机执行如权利要求1-8任一项所述的方法。

说明书全文

算法移植的方法及装置

技术领域

[0001] 本申请涉及计算机技术领域的人工智能,尤其涉及一种算法移植的方法及装置。

背景技术

[0002] 随着计算机技术的发展,基于图像识别进行疾病检测的技术得到一些发展。例如,可以基于眼底图像进行眼底筛查,识别可能的眼部疾病。
[0003] 现有技术中,在实现眼底筛查时,通常将眼底筛查设备拍摄的眼底照片上传端或服务器,云端或服务器基于眼底筛查模型输出筛查结果给眼底筛查设备。
[0004] 但是在现有技术中,基于云端的眼底筛查方法依赖网络,传输延迟高,整体耗时长,成本较高,不适用于偏远地区或者网络较差地区;基于服务器实现的眼底筛查方法依赖于服务器,服务器通常体积较大,不方便移动且成本较高。发明内容
[0005] 本申请实施例提供一种算法移植的方法及装置,以解决现有技术中识别图像过程依赖网络或服务器导致的灵活性差、成本高的技术问题。
[0006] 本申请实施例第一方面提供一种算法移植的方法,包括:
[0007] 确定待移植的第一算法和第一深度学习模型;所述第一算法用于将图像处理为符合所述第一深度学习模型输入需求的格式,所述第一深度学习模型用于利用处理后的图像输出识别结果;将所述第一算法转换为目标嵌入式设备支持的目标算法,所述第一算法和所述目标算法对同一图像的处理结果相同;将所述第一深度学习模型转换为所述目标嵌入式设备支持的目标深度学习模型,所述第一深度学习模型和所述目标深度学习模型对同一输入的识别结果相同;将所述目标算法和所述目标深度学习模型移植至所述目标嵌入式设备。这样,可以将云端或服务器中的算法和模型转换后移植至体积较小、成本较低、便于携带的嵌入式设备中,从而可以了利用嵌入式设备实现现场图像识别,嵌入式设备不需要依赖网络且可以方便携带至各种场景中。
[0008] 可选的,所述第一深度学习模型中包括:所述目标嵌入式设备不支持的第一算子;所述将所述第一深度学习模型转换为所述目标嵌入式设备支持的目标深度学习模型,包括:若所述第一算子存在目标嵌入式设备支持的替换算子,利用所述替换算子替换所述第一算子;若所述第一算子不存在目标嵌入式设备支持的替换算子,结合所述第一算子的算法逻辑,生成所述第一算子对应的第二算子,所述第二算子为所述目标嵌入式设备支持的算子。这样,可以实现对第一深度学习模型中各类型的算子的转换。
[0009] 可选的,还包括:调整所述目标算法,直到所述目标算法的输出与所述目标深度学习模型所需的输入一致。本申请实施例中,可以对目标算法进行多轮调整优化,以得到更准确的目标算法。
[0010] 可选的,还包括:调整所述目标深度学习模型,直到所述目标深度学习模型的输出与所述第一深度学习模型的输出之间的差异满足预设条件。本申请实施例中,可以对目标深度学习模型进行多轮调整优化,以得到更准确的目标深度学习模型。
[0011] 可选的,还包括:对所述目标深度学习模型进行压缩和/或量化。从而可以减小目标深度学习模型对空间资源的占用,使得将目标深度学习模型移植至目标嵌入式设备时,可以提升目标嵌入式设备的处理速度。
[0012] 可选的,还包括:对所述目标深度学习模型进行基于微调fine-tuning的精度优化。从而可以得到精度符合预期的目标深度学习模型,使得将目标深度学习模型移植至目标嵌入式设备时,可以提升目标嵌入式设备的准确度。
[0013] 可选的,还包括:调整所述目标算法和所述目标深度学习模型,直到在所述目标嵌入式设备运行所述目标算法和所述目标深度学习模型时的稳定性满足一定条件。从而使得后续利用目标嵌入式设备进行眼底筛查时,可以得到较快较准确的筛查结果。
[0014] 可选的,所述目标嵌入式设备包括:嵌入式中央处理单元CPU、嵌入式图形处理器GPU、嵌入式现场可编程阵列FPGA或嵌入式数字信号处理器DSP。
[0015] 本申请实施例第二方面提供一种算法移植的装置,包括:
[0016] 确定模,用于确定待移植的第一算法和第一深度学习模型;所述第一算法用于将图像处理为符合所述第一深度学习模型输入需求的格式,所述第一深度学习模型用于利用处理后的图像输出识别结果;
[0017] 第一转换模块,用于将所述第一算法转换为目标嵌入式设备支持的目标算法,所述第一算法和所述目标算法对同一图像的处理结果相同;
[0018] 第二转换模块,用于将所述第一深度学习模型转换为所述目标嵌入式设备支持的目标深度学习模型,所述第一深度学习模型和所述目标深度学习模型对同一输入的识别结果相同;
[0019] 移植模块,用于将所述目标算法和所述目标深度学习模型移植至所述目标嵌入式设备。
[0020] 可选的,所述第一深度学习模型中包括:所述目标嵌入式设备不支持的第一算子;
[0021] 所述第二转换模块具体用于:
[0022] 若所述第一算子存在目标嵌入式设备支持的替换算子,利用所述替换算子替换所述第一算子;
[0023] 若所述第一算子不存在目标嵌入式设备支持的替换算子,结合所述第一算子的算法逻辑,生成所述第一算子对应的第二算子,所述第二算子为所述目标嵌入式设备支持的算子。
[0024] 可选的,还包括:
[0025] 第一调整模块,用于调整所述目标算法,直到所述目标算法的输出与所述目标深度学习模型所需的输入一致。
[0026] 可选的,还包括:
[0027] 第二调整模块,用于调整所述目标深度学习模型,直到所述目标深度学习模型的输出与所述第一深度学习模型的输出之间的差异满足预设条件。
[0028] 可选的,还包括:
[0029] 第三调整模块,用于对所述目标深度学习模型进行压缩和/或量化。
[0030] 可选的,还包括:
[0031] 第四调整模块,用于对所述目标深度学习模型进行基于微调fine-tuning的精度优化。
[0032] 可选的,还包括:
[0033] 第五调整模块,用于调整所述目标算法和所述目标深度学习模型,直到在所述目标嵌入式设备运行所述目标算法和所述目标深度学习模型时的稳定性满足一定条件。
[0034] 可选的,所述目标嵌入式设备包括:嵌入式中央处理单元CPU、嵌入式图形处理器GPU、嵌入式现场可编程门阵列FPGA或嵌入式数字信号处理器DSP。
[0035] 本申请实施例第三方面提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前述第一方面任一项所述的方法。
[0036] 本申请实施例第四方面提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如前述第一方面中任一项所述的方法。
[0037] 综上所述,本申请实施例相对于现有技术的有益效果:
[0038] 本申请实施例中提供了一种算法移植的方法及装置,可以将云端或服务器中的算法和模型转换后移植至体积较小、成本较低、便于携带的嵌入式设备中,从而可以了利用嵌入式设备实现现场图像识别,嵌入式设备不需要依赖网络且可以方便携带至各种场景中,实践中,采用本申请实施例的方法,进行眼底筛查的成本降低了约80%,为眼底筛查服务的设备体积降低了约90%,使得眼底筛查技术可以适应更多场合和商业模式下。具体来说,可以获取云端或服务器中的用于将图像处理为符合所述深度学习模型输入需求的格式的第一算法,以及用于利用处理后的图像输出识别结果的第一深度学习模型,并将第一算法转换为目标嵌入式设备支持的目标算法,将第一深度学习模型转换为目标嵌入式设备支持的目标深度学习模型,进而将目标算法和目标深度学习模型移植至目标嵌入式设备,则目标嵌入式设备可以基于目标算法和目标深度学习模型实现方便的图像识别,不需要依赖网络和服务器。附图说明
[0039] 图1为本申请实施例提供的算法移植的方法适用的系统架构示意图;
[0040] 图2为本申请实施例提供的算法移植的方法的流程示意图;
[0041] 图3为本申请实施例的算法移植的构思框架示意图;
[0042] 图4为本申请实施例提供的算法移植装置的结构示意图;
[0043] 图5是用来实现本申请实施例的算法移植的方法的电子设备的框图

具体实施方式

[0044] 以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0045] 本申请实施例的算法移植的方法可以应用于终端或服务器,终端可以包括:手机、平板电脑笔记本电脑、或者台式电脑等电子设备。本申请实施例对应用的具体设备不作具体限定。
[0046] 本申请实施例所描述的目标嵌入式设备可以由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,嵌入式系统具有便利灵活、性能价格比高、嵌入性强等特点,可以嵌入到现有任何信息家电和工业控制系统中。例如,目标嵌入式设备可以是嵌入式中央处理单元(Central Processing Unit,CPU)、嵌入式图形处理器(Graphics Processing Unit,GPU)、嵌入式现场可编程门阵列(Field-Programmable Gate Array,FPGA)或嵌入式数字信号处理器(Digital Signal Processing,DSP)等,本申请实施例对此不作具体限定。
[0047] 具体应用中,本申请实施例的目标嵌入式设备可以是独立的设备,也可以是设置于任意的电器(例如家电、相机等)中的设备,本申请实施例对此不作具体限定。
[0048] 示例性的,如图1所示,图1为本申请实施例提供的方法所适用的应用场景架构示意图。
[0049] 本申请实施例中,用户可以在服务器12中将待移植的算法和深度学习模型转换为适用于目标嵌入式设备的目标算法和目标深度学习模型,进而将目标算法和目标深度学习模型移植至目标嵌入式设备11,则目标嵌入式设备11可以基于目标算法和目标深度学习模型实现对图像的处理和识别。
[0050] 具体的,服务器12可以获取云端或服务器中支持的用于将图像处理为符合所述深度学习模型输入需求的格式的算法,以及用于利用处理后的图像输出识别结果的深度学习模型,并将算法转换为目标嵌入式设备支持的目标算法,将深度学习模型转换为目标嵌入式设备支持的目标深度学习模型,进而将目标算法和目标深度学习模型移植至目标嵌入式设备11,则目标嵌入式设备11可以基于目标算法和目标深度学习模型实现方便的图像识别,不需要依赖网络和服务器。
[0051] 可以理解,具体应用中,目标嵌入式设备的数量可以为大于或等于1的任意值,本申请实施例对此不作具体限定。
[0052] 如图2所示,图2为本申请实施例提供的算法移植的方法的流程示意图。该方法具体可以包括:
[0053] 步骤S101:确定待移植的第一算法和第一深度学习模型;所述第一算法用于将图像处理为符合所述第一深度学习模型输入需求的格式,所述第一深度学习模型用于利用处理后的图像输出识别结果。
[0054] 本申请实施例中,待移植的第一算法和第一深度学习模型可以根据实际的需求进行选择,本申请实施例对此不作具体限定。
[0055] 示例性的,在眼底筛查中,待移植的第一算法和第一深度学习模型可以是眼底筛查中可能用到的算法和深度学习模型。
[0056] 比如,待移植的第一算法可以是用于对眼底图像进行预处理的算法,该第一算法可以将图像的尺寸、灰度、亮度、RGB通道等处理为深度学习模型输入时需要的格式。
[0057] 第一深度学习模型可以根据处理后的眼底图像,识别该眼底图像可能对应的眼部疾病等。可以理解,第一深度学习模型可以是基于眼底图像样本采用通常的模型训练方式预先训练得到的。
[0058] 步骤S102:将所述第一算法转换为目标嵌入式设备支持的目标算法,所述第一算法和所述目标算法对同一图像的处理结果相同。
[0059] 本申请实施例中,目标嵌入式设备可以是根据第一算法和第一深度学习模型所需的计算能等选择的,使得目标嵌入式设备的计算能力、算法部署灵活性等与第一算法和第一深度学习模型匹配。
[0060] 可以理解,具体应用中,可以结合成本、便携性、计算能力、算法部署灵活性等选择适应的目标嵌入式设备,示例性的,嵌入式CPU设备的灵活度高,但是计算能力较弱;嵌入式GPU支持的算子灵活度较低,但是计算能力较强,实际应用中可以根据实际的需求选择适应的目标嵌入式设备,本申请实施例对具体的目标嵌入式设备不作具体限定。
[0061] 在用于眼底筛查时,本申请实施例的目标嵌入式设备可以是与眼底照相机设置为一体的设备,使得该设备可以不需与外界通信即可独立实现眼底筛查。本申请实施例的目标嵌入式设备也可以是与眼底照相机独立使用的,目标嵌入式设备和眼底照相机可以通过有线方式通信或无线方式通信,本申请实施例对此不作具体限定。
[0062] 本申请实施例中,第一算法可以是计算机视觉算法(computer visual,CV)。将第一算法转换为目标嵌入式设备支持的目标算法时,可以先明确该第一算法所需要的内容可否被目标嵌入式设备的嵌入式人工智能(Artificial Intelligence,AI)加速平台支持。
[0063] 示例性的,嵌入式AI加速平台的支持方案一般分为两类,一类是用通用的嵌入式CPU或者GPU进行支持,另一类是用专用集成电路(Application Specific Integrated Circuit,ASIC)模块进行支持,前一类移植方便,但是速度较慢;后一类需要在平台开放的专用加速应用程序编程接口(Application Programming Interface,API)上进行预处理程序的适配,但是运行速度会比较快;对于支持多线程的计算平台,可以使用多线程进行移植加速。因此,可以基于各嵌入式AI加速平台的具体情况将算法转换为适应的目标算法,使得第一算法和目标算法对同一图像的处理结果相同,本申请实施例对具体的转换过程不作限定。
[0064] 步骤S103:将所述第一深度学习模型转换为所述目标嵌入式设备支持的目标深度学习模型,所述第一深度学习模型和所述目标深度学习模型对同一输入的识别结果相同。
[0065] 具体应用中,第一深度学习模型种类较多,例如可以包含分类、分割或检测等项目的不同模型。第一深度学习模型中的模型框架和算子可能不被目标嵌入式设备可所支持,因此可以从模型框架和算子级别进行转换。
[0066] 示例性的,将第一深度学习模型转换为目标嵌入式设备支持的目标深度学习模型时,可以包括模型转换和算子转换。
[0067] 考虑到深度学习模型不一定能被嵌入式加速平台的推理工具直接解析,在不能被解析的情况下,可以进行模型转换,如第一深度学习模型可能采用PyTorch框架训练,目标嵌入式设备可能采用Caffe框架部署,因此需要进行PyTorch2Caffe的转换,转换后可以检测(double check)相应的框架是否能对应起来。
[0068] 考虑到第一深度学习模型中的算子可能被目标嵌入式设备支持,也可能不被目标嵌入式设备支持。对于目标嵌入式设备支持的算子,可以不进行处理,对于目标嵌入式设备不支持的算子,可以根据实际的应用场景进行适应变换。
[0069] 可选的,所述第一深度学习模型中包括:所述目标嵌入式设备不支持的第一算子;所述将所述第一深度学习模型转换为所述目标嵌入式设备支持的目标深度学习模型,包括:
[0070] 若所述第一算子存在目标嵌入式设备支持的替换算子,利用所述替换算子替换所述第一算子;若所述第一算子不存在目标嵌入式设备支持的替换算子,结合所述第一算子的算法逻辑,生成所述第一算子对应的第二算子,所述第二算子为所述目标嵌入式设备支持的算子。
[0071] 本申请实施例中,对于存在目标嵌入式设备支持的替换算子的算子,可以结合整体模型对算子的需求,进行等效的可支持算子的替换,替换后的算子需要在原模型中验证效果是否和替换前一样。
[0072] 对于目标嵌入式设备不支持且没有等效替换的算子,则可以通过自定义方式实现,如结合原模型中算子的逻辑,用推理工具所支持的方式实现,最终自定义的算子的功能与性能需要进行验证,对比自定义的算子是否与原模型中的验证效果一样。
[0073] 可以理解,实际应用中,可以结合具体的情况采用任意方式将深度学习模型转换为目标嵌入式设备支持的目标深度学习模型,使得第一深度学习模型和目标深度学习模型对同一输入的识别结果相同,本申请实施例对此不作具体限定。
[0074] 可选的,本申请实施例中的目标算法可以是经过多次调整优化得到的,本申请实施例的方法还包括:调整所述目标算法,直到所述目标算法的输出与所述目标深度学习模型所需的输入一致。
[0075] 本申请实施例中,可以对目标算法进行多轮调整优化,以得到更准确的目标算法。示例性的,可以将目标深度学习模型实际需求的图像格式,与目标算法输出的图像格式进行比较,在目标深度学习模型实际需求的图像格式与目标算法输出的图像格式差距较大时,可以调整目标算法中的各因子,直到在嵌入式平台上目标算法输出的结果与目标深度学习模型所需输入一致。
[0076] 需要说明的是,本申请实施例所描述的相同或一致可以是完全相同,也可以是指误差在可以接受的范围内。
[0077] 可选的,本申请实施例中的目标深度学习模型可以是经过多次调整优化得到的,本申请实施例的方法还包括:调整所述目标深度学习模型,直到所述目标深度学习模型的输出与所述深度学习模型的输出之间的差异满足预设条件。
[0078] 本申请实施例中,可以对目标深度学习模型进行多轮调整优化,以得到更准确的目标深度学习模型。示例性的,可以将目标深度学习模型输出的识别结果,与深度学习模型输出的识别结果进行比较,在标深度学习模型输出的识别结果与深度学习模型输出的识别结果差距较大时,可以调整目标深度学习模型的模型框架和算子等,例如调整目标深度学习模型中的分类层、全连接层等,直到深度学习模型中各层的输入输出以及目标深度学习模型最终的输出与深度学习模型的输出一致或满足差异预期。
[0079] 可选的,本申请实施例中的目标深度学习模型可以是经过速度优化得到的,本申请实施例的方法还包括:对所述目标深度学习模型进行压缩和/或量化。
[0080] 本申请实施例中,可以对目标深度学习模型进行压缩或量化,例如可以将32位的模型量化为16比特或8比特的模型,从而可以减小目标深度学习模型对空间资源的占用,使得将目标深度学习模型移植至目标嵌入式设备时,可以提升目标嵌入式设备的处理速度。
[0081] 可选的,本申请实施例中的目标深度学习模型可以是经过精度优化得到的,本申请实施例的方法还包括:对所述目标深度学习模型进行基于微调fine-tuning的精度优化。
[0082] 本申请实施例中,对于采用模型压缩或者量化等操作进行的模型移植,可以在推理工具的平台上进行fine-tuning相应的操作进行精度的优化,同时可以结合训练端进行小模型训练,以得到精度符合预期的目标深度学习模型,使得将目标深度学习模型移植至目标嵌入式设备时,可以提升目标嵌入式设备的准确度。
[0083] 步骤S104:将所述目标算法和所述目标深度学习模型移植至所述目标嵌入式设备。
[0084] 本申请实施例中,在得到上述任一种目标算法和目标深度学习模型后,可以将目标算法和目标深度学习模型移植至目标嵌入式设备,则后续目标嵌入式设备可以基于目标算法将获取的图像处理为符合目标深度学习模型输入需求的格式,基于目标深度学习模型利用处理后的图像输出识别结果。
[0085] 示例性的,在眼底筛查应用场景中,可以通过眼底摄像头拍摄得到眼底图像,嵌入式设备在获取该眼底图像后,可以基于目标算法将获取的眼底图像处理为符合目标深度学习模型输入需求的格式,基于目标深度学习模型利用处理后的眼底图像输出该眼底图像可能对应的眼部疾病等。
[0086] 可选的,本申请实施例中的目标算法和目标深度学习模型可以是经过稳定性优化得到的,本申请实施例的方法还包括:调整所述目标算法和所述目标深度学习模型,直到在所述目标嵌入式设备运行所述目标算法和所述目标深度学习模型时的稳定性满足一定条件。
[0087] 本申请实施例中,在将目标算法和目标深度学习模型移植至目标嵌入式设备后,可以对目标算法和目标深度学习模型在目标嵌入式设备中运行的稳定性进一步测试,如果目标算法和目标深度学习模型在目标嵌入式设备中运行时,发生卡机(也可以理解为处理速度较慢),或对一张图像进行多次识别时,多次识别的结果差异较大,可以认为目标算法和目标深度学习模型在目标嵌入式设备中运行不稳定,可以进一步根据上述的方式调整目标算法和目标深度学习模型,直到目标算法和目标深度学习模型在目标嵌入式设备中运行时,目标嵌入式设备可以有较好的处理速度和较一致的结果输出,从而使得后续利用目标嵌入式设备进行眼底筛查时,可以得到较快较准确的筛查结果。
[0088] 可选的,具体应用中,进行眼底筛查或其他图像识别时,可能需要多个独立的算法或模型,在进行算法或模型移植时,可以根据模型间的依赖关系等,将算法或模型按照串行或者部分并行执行的方式进行协同部署,以使得整体嵌入式AI平台资源利用的最大化。
[0089] 综上所述,本申请实施例中提供了一种算法移植的方法及装置,可以将云端或服务器中的算法和模型转换后移植至体积较小、成本较低、便于携带的嵌入式设备中,从而可以了利用嵌入式设备实现现场图像识别,嵌入式设备不需要依赖网络且可以方便携带至各种场景中,实践中,采用本申请实施例的方法,进行眼底筛查的成本降低了约80%,为眼底筛查服务的设备体积降低了约90%,使得眼底筛查技术可以适应更多场合和商业模式下。具体来说,可以获取云端或服务器中的用于将图像处理为符合所述深度学习模型输入需求的格式的第一算法,以及用于利用处理后的图像输出识别结果的第一深度学习模型,并将第一算法转换为目标嵌入式设备支持的目标算法,将第一深度学习模型转换为目标嵌入式设备支持的目标深度学习模型,进而将目标算法和目标深度学习模型移植至目标嵌入式设备,则目标嵌入式设备可以基于目标算法和目标深度学习模型实现方便的图像识别,不需要依赖网络和服务器。
[0090] 图3为本申请实施例的算法移植的构思框架示意图。
[0091] 如图3所示,在进行算法移植时,可以将用于将图像处理为符合所述深度学习模型输入需求的格式的CV算法,以及用于利用处理后的图像输出识别结果的深度学习模型分别进行转换。
[0092] 在对CV算法进行转换时,可以根据实际需求选择基于嵌入式CPU实现、嵌入式GPU实现、或专用单元实现的任意一种或多种实现,进一步的,还可以对转换后的算法进行分析优化,得到更准确的转换后算法。
[0093] 在对深度学习(deep learning,DL)模型转换时,可以结合目标嵌入式设备支持的算子、存在替换算子的不支持算子以及自定义算子进行适应转换,进一步的,还可以对转换后的模型进行分析优化,得到更准确的转换后的模型。
[0094] 可选的,还可以对准换后的算法和模型进行速度优化、精度优化、稳定性优化的一种或多种,具体参照图2对应实施例的描述,在此不再赘述。
[0095] 可以理解,实际应用中,也可以根据实际情况基于目标嵌入式设备和待移植算法的整体分析设计更合适的算法,本申请实施例对此不作具体限定。
[0096] 综上,本申请实施例中,算法完成了从云端或服务器端到嵌入式边缘平台端的迁移,与云端方案相比,本申请实施例的方案在无网络下也可以完成眼底算法实现,同时整体实现速度约在约15-30秒以内,与服务器端相比,本方案成本降低了约80%,体积降低了约90%,眼底筛查技术可以适应更多场合和商业模式下。
[0097] 图4为本申请提供的算法移植的装置一实施例的结构示意图。如图4所示,本实施例提供的算法移植的装置包括:
[0098] 确定模块41,用于确定待移植的第一算法和第一深度学习模型;所述第一算法用于将图像处理为符合所述第一深度学习模型输入需求的格式,所述第一深度学习模型用于利用处理后的图像输出识别结果;
[0099] 第一转换模块42,用于将所述第一算法转换为目标嵌入式设备支持的目标算法,所述第一算法和所述目标算法对同一图像的处理结果相同;
[0100] 第二转换模块43,用于将所述第一深度学习模型转换为所述目标嵌入式设备支持的目标深度学习模型,所述第一深度学习模型和所述目标深度学习模型对同一输入的识别结果相同;
[0101] 移植模块44,用于将所述目标算法和所述目标深度学习模型移植至所述目标嵌入式设备。
[0102] 可选的,所述第一深度学习模型中包括:所述目标嵌入式设备不支持的第一算子;
[0103] 所述第二转换模块具体用于:
[0104] 若所述第一算子存在目标嵌入式设备支持的替换算子,利用所述替换算子替换所述第一算子;
[0105] 若所述第一算子不存在目标嵌入式设备支持的替换算子,结合所述第一算子的算法逻辑,生成所述第一算子对应的第二算子,所述第二算子为所述目标嵌入式设备支持的算子。
[0106] 可选的,还包括:
[0107] 第一调整模块,用于调整所述目标算法,直到所述目标算法的输出与所述目标深度学习模型所需的输入一致。
[0108] 可选的,还包括:
[0109] 第二调整模块,用于调整所述目标深度学习模型,直到所述目标深度学习模型的输出与所述第一深度学习模型的输出之间的差异满足预设条件。
[0110] 可选的,还包括:
[0111] 第三调整模块,用于对所述目标深度学习模型进行压缩和/或量化。
[0112] 可选的,还包括:
[0113] 第四调整模块,用于对所述目标深度学习模型进行基于微调fine-tuning的精度优化。
[0114] 可选的,还包括:
[0115] 第五调整模块,用于调整所述目标算法和所述目标深度学习模型,直到在所述目标嵌入式设备运行所述目标算法和所述目标深度学习模型时的稳定性满足一定条件。
[0116] 可选的,所述目标嵌入式设备包括:嵌入式中央处理单元CPU、嵌入式图形处理器GPU、嵌入式现场可编程门阵列FPGA或嵌入式数字信号处理器DSP。
[0117] 本申请实施例中提供了一种算法移植的方法及装置,可以将云端或服务器中的算法和模型转换后移植至体积较小、成本较低、便于携带的嵌入式设备中,从而可以了利用嵌入式设备实现现场图像识别,嵌入式设备不需要依赖网络且可以方便携带至各种场景中,实践中,采用本申请实施例的方法,进行眼底筛查的成本降低了约80%,为眼底筛查服务的设备体积降低了约90%,使得眼底筛查技术可以适应更多场合和商业模式下。具体来说,可以获取云端或服务器中的用于将图像处理为符合所述深度学习模型输入需求的格式的算法,以及用于利用处理后的图像输出识别结果的深度学习模型,并将算法转换为目标嵌入式设备支持的目标算法,将深度学习模型转换为目标嵌入式设备支持的目标深度学习模型,进而将目标算法和目标深度学习模型移植至目标嵌入式设备,则目标嵌入式设备可以基于目标算法和目标深度学习模型实现方便的图像识别,不需要依赖网络和服务器。
[0118] 本申请各实施例提供的算法移植的装置可用于执行如前述各对应的实施例所示的方法,其实现方式与原理相同,不再赘述。
[0119] 根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
[0120] 如图5所示,是根据本申请实施例的算法移植的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
[0121] 如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。
[0122] 存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的算法移植的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的算法移植的方法。
[0123] 存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的算法移植的方法对应的程序指令/模块(例如,附图4所示的确定模块41、第一转换模块42、第二转换模块43和移植模块44)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的算法移植的方法。
[0124] 存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据算法移植的电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至算法移植的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0125] 算法移植的方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
[0126] 输入装置503可接收输入的数字或字符信息,以及产生与算法移植的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
[0127] 此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0128] 这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0129] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0130] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0131] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
[0132] 根据本申请实施例的技术方案,可以将云端或服务器中的算法和模型转换后移植至体积较小、成本较低、便于携带的嵌入式设备中,从而可以了利用嵌入式设备实现现场图像识别,嵌入式设备不需要依赖网络且可以方便携带至各种场景中,实践中,采用本申请实施例的方法,进行眼底筛查的成本降低了约80%,为眼底筛查服务的设备体积降低了约90%,使得眼底筛查技术可以适应更多场合和商业模式下。具体来说,可以获取云端或服务器中的用于将图像处理为符合所述深度学习模型输入需求的格式的算法,以及用于利用处理后的图像输出识别结果的深度学习模型,并将算法转换为目标嵌入式设备支持的目标算法,将深度学习模型转换为目标嵌入式设备支持的目标深度学习模型,进而将目标算法和目标深度学习模型移植至目标嵌入式设备,则目标嵌入式设备可以基于目标算法和目标深度学习模型实现方便的图像识别,不需要依赖网络和服务器。
[0133] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
[0134] 上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈