发明内容
本申请的目的在于提供一种服务模型生成方法、图像处理方法、装置和电子设备,能够解决推理服务的发布周期较长的问题。
第一方面,本申请实施例提供一种服务模型生成方法,包括:
获取图像处理模型;
对所述图像处理模型进行解析,以得到所述图像处理模型的模型特征;
根据所述模型特征对预定义的前处理模板进行配置,以得到前处理程序;
根据所述模型特征对预定义的后处理模板进行配置,以得到后处理程序;
将所述前处理程序、图像处理模型以及所述后处理程序打包,以生成推理服务。
在一可选的实施方式中,所述模型特征包括输入参数信息,所述根据所述模型特征对预定义的前处理模板进行配置,以得到前处理程序,包括:
将所述输入参数信息对所述预定义的前处理模板进行填充,以得到前处理程序。
在本申请实施例中,通过输入参数信息直接填充至前处理模板中,从而可以降低得到前处理程序的流程,提高生成前处理流程的效率。
在一可选的实施方式中,所述模型特征包括输出参数信息,所述根据所述模型特征对预定义的后处理模板进行配置,以得到后处理程序,包括:
获取标签映射文件;
根据所述输出参数信息以及所述标签映射文件对所述后处理模板进行填充,以得到后处理程序。
在本申请实施例中,针对识别结果需要有标签的推理服务,通过上述的标签映射文件定义出输出的识别结果上的标签规则,进一步地,通过直接将标签映射文件和输出参数信息,从而可以在满足输出需求的情况下,能够更快地、更简单地得到后处理程序。
在一可选的实施方式中,在所述获取图像处理模型的步骤之前,所述方法还包括:
当图像处理模型训练完成后,使用指定存储方式对所述图像处理模型进行存储;
其中,使用所述指定存储方式对所述图像处理模型保存时,对所述图像处理模型中的指定签名的输入层及输出层进行定义;
所述对所述图像处理模型进行解析,以得到所述图像处理模型的模型特征,包括:通过对所述图像处理模型的所述指定签名进行解析,以得到所述图像处理模型的模型特征。
在本申请实施例中,通过指定存储方式对图像处理模型进行存储,从而可以在需要获取图像处理模型的输入或输出的参数信息时,能够方便获取,从而可以为生成前处理程序和后处理程序垫定了基础,提高生成前处理程序和后处理程序的效率。
在一可选的实施方式中,所述对所述图像处理模型进行解析,以得到所述图像处理模型的模型特征,包括:
通过TF-Serving提供的接口解析所述图像处理模型,以得到所述图像处理模型的模型特征。
在本申请实施例中,直接通过TF-Serving提供的接口解析获取图像处理模型的模型特征,从而可以通过更简便的方式得到需要的信息,以实现对前处理程序及后处理程序的生成。
第二方面,本申请实施例提供一种图像处理方法,包括:
将待处理图像输入使用上述的服务模型生成方法生成的推理服务中,对所述待处理图像进行图像处理,以得到处理结果。
第三方面,本申请实施例提供一种服务模型生成装置,包括:
获取模块,用于获取图像处理模型;
解析模块,用于对所述图像处理模型进行解析,以得到所述图像处理模型的模型特征;
第一配置模块,用于根据所述模型特征对预定义的前处理模板进行配置,以得到前处理程序;
第二配置模块,用于根据所述模型特征对预定义的后处理模板进行配置,以得到后处理程序;
生成模块,用于将所述前处理程序、图像处理模型以及所述后处理程序打包,以生成推理服务。
第四方面,本申请实施例提供一种图像处理装置,包括:
处理模块,用于将待处理图像输入使用上述的服务模型生成方法生成的推理服务中,对所述待处理图像进行图像处理,以得到处理结果。
第五方面,本申请实施例提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行上述的方法的步骤。
第六方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述的方法的步骤。
本申请实施例的有益效果是:通过获取模型的特征,直接对前处理模板和后处理模板进行配置,从而可以减少编写前处理程序和后处理程序的所需花费时间,以减少生成整个推理服务的时间周期,以进一步地可以提高发布一推理服务的效率。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例一
为便于对本实施例进行理解,首先对执行本申请实施例所公开的服务模型生成方法或图像处理方法的电子设备进行详细介绍。
如图1所示,是电子设备的方框示意图。电子设备100可以包括存储器110、存储控制器120、处理器130、外设接口140、输入输出单元150、显示单元160。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对电子设备100的结构造成限定。例如,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
上述的存储器110、存储控制器120、处理器130、外设接口140、输入输出单元150及显示单元160各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器130用于执行存储器中存储的可执行模块。
其中,存储器110可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,简称EEPROM)等。其中,存储器110用于存储程序,所述处理器130在接收到执行指令后,执行所述程序,本申请实施例任一实施例揭示的过程定义的电子设备100所执行的方法可以应用于处理器130中,或者由处理器130实现。
上述的处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述的外设接口140将各种输入/输出装置耦合至处理器130以及存储器110。在一些实施例中,外设接口140,处理器130以及存储控制器120可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
上述的输入输出单元150用于提供给用户输入数据。所述输入输出单元150可以是,但不限于,鼠标和键盘等。
上述的显示单元160在电子设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
可以知道的是,当本申请实施例提供的服务模型生成方法得到的推理服务用于提供不同的服务时,该电子设备还可以根据提供的不同服务设置更多的组件。例如,该推理服务用于实现人脸打卡,那本实施例中的电子设备还可以包括摄像单元,用于采集人脸图像。
本实施例中的电子设备100可以用于执行本申请实施例提供的各个方法中的各个步骤。下面通过几个实施例详细描述服务模型生成方法和图像处理方法的实现过程。
实施例二
首先,先对本申请实施例中所需要使用的TensorFlow场景下对深度学习模型的构建流程进行介绍,如图2所示。深度学习的流程可以概括为:数据集转换210、模型训练220以及模型推理230。
其中,由于神经网络模型能够识别的数据通常是指定格式的数据。例如,开源软件库TensorFlow支持的数据格式tfrecord,而一般的训练数据为图片格式(例如:jpg、png等格式)的数据。因此,需要将图片以及标注信息转换为TensorFlow支持的数据格式tfrecord。上述的标注信息可以是图片中包含的需要识别的目标的坐标信息。
上述的模型训练220可以包括模型的定义以及模型的训练。
其中,模型的定义包括:定义输入层、输出层、处理算法以及学习参数。示例性地,处理算法可以是通过一些神经网络模型定义出初始的网络模型。例如,神经网络模型可以是:卷积神经网络(Convolutional Neural Networks,CNN)、深度卷积神经网络(DeepConvolutional Neural Networks,DCNN)等。
其中,模型的训练可以是通过一些带有标注信息的图片输入初始的网络模型进行迭代计算,以对初始的网络模型中的参数进行调整,直到达到设定条件,得到训练好的图像处理模型。
上述的模型推理230可以包括:模型验证和发布推理服务。
其中,模型验证是使用测试数据对训练好的图像处理模型进行验证,以确定该图像处理模型得到的推理结果与预期的差距。
发布推理服务是将前处理程序、后处理程序与图像处理模型合并至一起进行发布。
示例性地,TensorFlow场景下构建的深度学习模型可以用于实现目标检测,也可以用于实现图像分类,还可以用于实现语义分割等。
在本申请实施例中,通过预先定义前处理模板和后处理模板可以简化深度学习的流程中的模型推理230。本实施例中提供的服务模型生成方法可以简化模型推理230。下面对服务模型生成方法进行描述。
请参阅图3,是本申请实施例提供的服务模型生成方法的流程图。下面将对图3所示的具体流程进行详细阐述。
步骤302,获取图像处理模型。
示例性地,可以根据设定的窗口中接收到的图像处理模型的路径中获取图像处理模型。
示例性地,如图4所示,图4示出了一个服务模型生成的操作界面示意图。图中包括多个接收输入信息的窗口。其中,该操作界面中包括用于输入图像处理模型的路径的“模型路径”窗口。该操作界面还可以包括用于接收模型签名的“签名”窗口。该操作界面还可以包括用于选择对应的使用场景的场景按钮,图示中仅示出了三个场景按钮,分别为:“图像分类”、“目标检测”以及“语义分割”。该操作界面还可以包括用于选择识别图像的图像类型的按钮,图示中仅示出了两个类型按钮,分别为:“彩色”和“黑白”。该操作界面还可以包括用于加载标签映射文件的“类别详情”窗口。该操作界面还可以包括用于加载前处理模板的“前处理模板”窗口。该操作界面还可以包括用于加载后处理模板的“后处理模板”窗口。该操作界面还可以包括用于输入图像路径的“图像路径”窗口。
在上述实例中,通过“模型路径”窗口中的图像处理模型的路径获得图像处理模型。
示例性地,如图4所示,该“模型路径”窗口旁边还设置有查询按钮和上传按钮。该查询按钮用于打开本机文件目录,以供用户选择图像处理模型的存储路径。该上传按钮用于将图像处理模型的存储路径中的图像处理模型文件上传至服务器中。该服务器为与显示该操作界面的电子设备连接的服务器。
步骤304,对所述图像处理模型进行解析,以得到所述图像处理模型的模型特征。
本实施例中,可以通过对图像处理模型进行解析,可以得到该图像处理模型的输入层的输入参数信息以及输出层的输出参数信息。
示例性地,通过对该图像处理模型的输入层进行解析以得到该图像处理模型所需的输入数据的输入参数信息。该输入参数信息可以包括,但不限于,参数类型、参数维度、参数名称等信息。
示例性地,输入参数信息的参数类型可以为整型、浮点型、字符串型等。
示例性地,输入数据可以为一向量或矩阵,该输入参数信息的参数维度可以为向量或矩阵的维度。
示例性地,通过对该图像处理模型的输出层进行解析以得到该图像处理模型输出数据的输出参数信息。该输出参数信息可以包括,但不限于,参数类型、参数维度、参数名称、参数类别等信息。
示例性地,输出参数信息的参数类型可以为整型、浮点型、字符串型等。
示例性地,输出数据可以为一向量或矩阵,该输出参数信息的参数维度可以为向量或矩阵的维度。
示例性地,参数类别可以是检测等级、检测分数、检测盒等。
步骤306,根据所述模型特征对预定义的前处理模板进行配置,以得到前处理程序。
本实施例中,上述的前处理程序用于对需要识别的图片进行数据转换,以得到能够被图像处理模型识别的输入数据。
可选地,将所述输入参数信息对所述预定义的前处理模板进行填充,以得到前处理程序。
示例性地,前处理模板可以是预留出需要填充的输入参数信息程序。
示例性地,如图4所示,该“前处理模板”窗口中可以接收写入或加载的前处理模板的内容。示例性地,“前处理模板”窗口上方还可以设置“保存”和“撤回”按钮。该保存”和“撤回”按钮用于供用户在写入前处理模板的内容后进行对应的操作。
在一个实例中,前处理模板的内容可以为:
from PIL import Image
import numpy as np
def preprocess(picture_path):
img=Image.open(picture_path)
img=img.convert(″).
np_img=np.asarray(imag).astyp()
input_dict={:np_img}
return input_dict
其中,上述代码中预留出“img.convert”、“np_img=np.asarray(img).astype”以及“input_dict={}”中的信息。
其中,前处理模板中的“img.convert”处用于填充图片的类型。前处理模板中的“np_img=np.asarray(img).astype”处用于填充所需转换的参数类型。前处理模板中的“input_dict={}”处用于填充所需模型输入层的名称。
在上述实例中,通过将输入参数填充至前处理模板之后,可以得到前处理程序为:
在上述实例中,填充的图片类型为“RGB”类型。填充的所需转换的参数类型为“np.uint8”,填充的扩展维度过程为“np_img=np.expand_dims(np_img,axis=0)”填充的所需的模型输入层名称为“'inputs'”。
示例性地,填充至前处理模板中的信息可以是步骤304解析图像处理模型得到的输入参数信息。
可以知道的是,上述实例中的前处理模板以及填充的输入参数信息仅为示例性的。例如,根据识别模型文件的需求不同,填充的输入参数信息可以不同。再例如,根据不同的数据转换需求,前处理模板中的内容也可以不同。
本实施例中,前处理模板中可以预先定义出数据转换所需的步骤、算法,从而当输入参数信息被填充至前处理模板后,能够实现一种格式的数据至另一种格式的数据的转换。
步骤308,根据所述模型特征对预定义的后处理模板进行配置,以得到后处理程序。
在一种实施方式中,若对图像进行识别后,需要在识别图像上显示一些标注信息,则在对后处理模板进行配置时,则可以配置对应的标签信息。
示例性地,步骤308可以包括:获取标签映射文件,根据所述输出参数信息以及所述标签映射文件对所述后处理模板进行填充,以得到后处理程序。
可选地,上述的获取标签映射文件可以被实施为:根据从设定路径中获得该标签映射文件。
在一个实例中,如图4所示,图4中示出了“类别详情”窗口。可选地,该“类别详情”窗口可以用于加载标签映射文件。例如,该“类别详情”窗口旁边显示有查询按钮和上传按钮。该查询按钮用于打开本机文件目录,以供用户选择标签映射文件的存储路径。该上传按钮用于将标签映射文件的存储路径中的标签映射文件上传至服务器中。该服务器为与显示该操作界面的电子设备连接的服务器。
可选地,该“类别详情”窗口也可以用于接收输入的标签映射文件。
示例性地,如图4所示,该“后处理模板”窗口中可以接收写入或加载的后处理模板的内容。示例性地,“后处理模板”窗口上方还可以设置“保存”和“撤回”按钮。该“保存”和“撤回”按钮用于供用户在写入后处理模板的内容后执行对应的操作。
在一个实例中,后处理模板的内容中可以包括:
在上述实例中,后处理模板中的“label_map=label_map_util.load_labelmap(”)”用于填充标签映射文件的路径,后处理模板中的“vis_util.visualize_boxes_and_labels_on_image_array(image_np,np.squeeze(output_dict[”])”和“
np.squeeze(output_dict[”].astype()),np.squeeze(output_dict[”])”用于填充参数类别。
上述的后处理模板的部分内容仅仅是示例性地。具体地,根据推理服务的输出需求不同,后处理模板的内容也可以不同。
在上述实例中,通过将标签映射文件和输出参数填充至后处理模板之后,可以得到后处理程序。示例性地,该后处理程序可以包括:
在上述实例中,填充标签映射文件的路径为:
“/public/home/sugon/SothisAI/tensorflow/tf_inference/independent_inference/l abel.txt”,填充的填充参数类别包括“detection_boxes”、“detection_classes”和“detection_scores”。
可以知道的是,上述实例中的后处理模板以及填充的输出参数信息和标签映射文件仅为示例性的。例如,根据不同的模型需求,填充的输出参数信息可以不同。再例如,根据需要的输出结果的呈现方式的不同,填充的标签映射文件也可以不同。再例如,根据不同的数据转换需求,后处理模板中的内容也可以不同。
本实施例中,后处理模板中可以预先定义出数据转换所需的步骤、算法,从而当输出参数信息和标签映射文件被填充至后处理模板后,能够实现图像处理模型的输出数据至用户可识别的识别结果的数据的转换。
步骤310,将所述前处理程序、图像处理模型以及所述后处理程序打包,以生成推理服务。
在图4所示的实例中,图4所示的操作界面中还可以包括“运行”按钮。在各个窗口中填入需要的信息后,当“运行”按钮被点击后,可以执行本实施例中的步骤302-步骤310,以生成推理服务。
本实例中,当在图4所示的操作界面中选择的场景不同,生成的推理服务可以用于实现不同的识别服务。例如,“模型路径”窗口中加载的是用于图像分类的模型文件的存储路径时,此时,在图示所示的场景按钮中可以选择“图像分类”按钮,则生成的推理服务可以用于提供图像分类的服务。再例如,“模型路径”窗口中加载的是用于语义分割的模型文件的存储地址时,此时,在图示所示的场景按钮中可以选择“语义分割”按钮,则生成的推理服务可以用于提供语义分割的服务。
示例性地,图4所示的操作界面中还可以包括“重置”按钮,当该“重置”按钮被点击后,可以停止生成推理服务,使操作界面中的各个窗口处于可编辑状态,以供用户重新设置生成推理服务所需的信息。
本实施例中,步骤302之前,如图5所示,服务模型生成方法还可以包括:步骤301,当图像处理模型训练完成后,使用指定存储方式对所述图像处理模型进行存储。
其中,使用所述指定存储方式对所述图像处理模型保存时,对所述图像处理模型中的指定签名的输入层及输出层进行定义。
可选地,可以使用TF-Serving推荐的模型存储方式SavedModelBuilder进行存储。
在本实施例中,图像处理模型可以包括多个签名,每个签名可以用于实现一个功能。示例性地,该功能可以是:图像分类、目标检测、语义分割等功能。
本实施例中,在对图像处理模型进行存储时,可以对指定签名的输入及输出层进行定义。
示例性地,该指定签名可以是图像处理模型中的一个子模型,该子模型用于实现所需功能。
示例性地,通过上述的SavedModelBuilder对图像处理模型进行存储的模型文件,具备特定API(Application Programming Interface,应用程序接口)。通过该API能够获取图像处理模型的该指定签名下的输入层的输入参数信息、输出层的输出参数信息。示例性地,该API可以是saved_model_cli接口。
示例性地,步骤304可以包括:通过对所述图像处理模型的所述指定签名进行解析,以得到所述图像处理模型的模型特征。
可选地,步骤304可以包括:通过TF-Serving提供的接口解析所述图像处理模型,以得到所述图像处理模型的模型特征。
示例性地,该TF-Serving提供的接口可以是saved_model_cli接口。
本实施例中,对该saved_model_cli接口进行解析时,通过对图像处理模型中的签名进行指定,从而可以使解析具体到指定的签名中,从而解析该签名中的输入层的输入参数信息和输出层的输出参数信息。
示例性地,需要解析得到输入参数信息时,在saved_model_cli接口进行解析时,通过对图像处理模型中输入层的签名进行指定,从而可以对输入层进行解析,以得到输入参数信息。
示例性地,需要解析得到输出参数信息时,在saved_model_cli接口进行解析时,通过对图像处理模型中输出层的签名进行指定,从而可以对输出层进行解析,以得到输出参数信息。
示例性地,在图像处理模型的模型特征解析时,对签名的指定可以通过在逻辑代码中添加签名的名称和添加该图像处理模型的存储路径实现。
示例性地,图像处理模型的输入层可以是该图像处理模型的一个签名的输入层,图像处理模型的输出层可以是该图像处理模型的一个签名的输出层。其中,图像处理模型的输入层对应的签名,与图像处理模型的输出层对应的签名是同一签名。
在本申请实施例的服务模型生成方法中,通过获取模型的特征,直接对前处理模板和后处理模板进行配置,从而可以减少编写前处理程序和后处理程序的所需花费时间,以减少生成整个推理服务的时间周期,以进一步地可以提高发布一推理服务的效率。
进一步地,由于前处理程序是基于前处理模板自动生成的,后处理程序也是基于后处理模板自动生成的,从而使发布推理服务、分享推理服务更加地便利。
实施例三
本申请实施例提供一种图像分类服务生成方法,本实施例的方法与实施例二中的方法类似,其不同之处在于,本实施例中的方法具体用于构建图像分类服务。
如图6所示,本实施例中的图像分类服务生成方法可以包括以下步骤。
步骤401,获取图像分类模型。
可选地,上述的图像分类模型可以为使用有标记的训练数据集对分类模型进行训练得到的模型。示例性地,该标记可以是每一项训练数据对应的类别。每一项训练数据的标记对应的类别为图像分类模型可以输出的多种类别中的一种。
步骤402,对所述图像分类模型进行解析,以得到所述图像分类模型的模型特征。
示例性地,该模型特征可以包括:该图像分类模型的输入层的输入参数信息和该图像分类模型的输出层的输出参数信息。
步骤403,根据所述模型特征对预定义的前处理模板进行配置,以得到前处理程序。
步骤404,根据所述模型特征对预定义的后处理模板进行配置,以得到后处理程序。
本实施例中,图像分类服务的输出信息包括被识别图像对应的分类类别。因此,在对后处理模板进行配置时,配置的标签映射文件可包括将分类类别映射至被识别图像中。
在一个实例中,图像分类模型的分类类别可以包括三类,分别为:摩托车、汽车、人。图像分类模型的输出可以为各个类别的概率。例如,图像分类模型的输出为(a、b、c)时,其中,a表示待识别图像中的物体为摩托车的概率,b表示待识别图像中的物体为汽车的概率,c表示待识别图像的物体为人的概率。在此实例中,当分类结果为人时,图像分类模型的输出可以为概率(0.3、0.2、0.5),其中,分类类别3的概率值最高;当分类结果为汽车时,图像分类模型的输出可以为概率(0.3、0.6、0.1),其中,分类类别2的概率值最高;当分类结果为摩托车时,图像分类模型的输出可以为概率(0.5、0.2、0.3),其中,分类类别1的概率值最高。在此实例中,上述的标签映射文件中的内容可以包括:将输出层输出的分类结果对应的数字类别转化成对应的文字类别的相关内容。例如,将输出的概率(0.3、0.2、0.5)转化为文字“人”,并将分类结果为“人”进行显示。例如,可以将显示为“分类结果:人”的字符显示在对应的待识别图像旁边。
步骤405,将所述前处理程序、图像分类模型以及所述后处理程序打包,以生成图像分类服务。
可选地,可以将该图像分类服务发布至一软件平台中,供用户下载,以为用户提供图像分类服务。
本实施例中的图像分类服务生成方法与实施例二提供的服务模型生成方法存在相似之处,因此本实施例中的方法的实施可以参见上述实施例二提供的服务模型生成方法的实施例中的描述,重复之处不再赘述。
通过本实施例中的方法,通过使用前处理模板和后处理模板,从而可以更方便且快速的方式得到前处理程序和后处理程序。进一步地,可以更快速地得到图像分类服务生成方法,也能够提高图像分类服务的发布效率。
实施例四
基于同一申请构思,本申请实施例中还提供了与服务模型生成方法对应的服务模型生成装置,由于本申请实施例中的装置解决问题的原理与前述的服务模型生成方法实施例相似,因此本实施例中的装置的实施可以参见上述方法的实施例中的描述,重复之处不再赘述。
请参阅图7,是本申请实施例提供的服务模型生成装置的功能模块示意图。本实施例中的服务模型生成装置中的各个模块用于执行上述实施例二提供的服务模型生成方法实施例中的各个步骤。服务模型生成装置包括:获取模块501、解析模块502、第一配置模块503、第二配置模块504以及生成模块505;其中,
获取模块501,用于获取图像处理模型;
解析模块502,用于对所述图像处理模型进行解析,以得到所述图像处理模型的模型特征;
第一配置模块503,用于根据所述模型特征对预定义的前处理模板进行配置,以得到前处理程序;
第二配置模块504,用于根据所述模型特征对预定义的后处理模板进行配置,以得到后处理程序;
生成模块505,用于将所述前处理程序、图像处理模型以及所述后处理程序打包,以生成推理服务。
一种可能的实施方式中,所述模型特征包括输入参数信息,第一配置模块503,用于:
将所述输入参数信息对所述预定义的前处理模板进行填充,以得到前处理程序。
一种可能的实施方式中,所述模型特征包括输出参数信息,第二配置模块504,用于:
获取标签映射文件;
根据所述输出参数信息以及所述标签映射文件对所述后处理模板进行填充,以得到后处理程序。
一种可能的实施方式中,本实施例中的服务模型生成装置还包括:
存储模块,用于当图像处理模型训练完成后,使用指定存储方式对所述图像处理模型进行存储;
其中,使用所述指定存储方式对所述图像处理模型保存时,对所述图像处理模型中的指定签名的输入层及输出层进行定义。
其中,解析模块502,用于通过对所述图像处理模型的所述指定签名进行解析,以得到所述图像处理模型的模型特征。
一种可能的实施方式中,解析模块502,用于:
通过TF-Serving提供的接口解析所述图像处理模型,以得到所述图像处理模型的模型特征。
实施例五
本申请实施例提供的一种图像处理方法的流程图。本实施例中的图像处理方法包括:将待处理图像输入推理服务中,对所述待处理图像进行图像处理,以得到处理结果。
示例性地,本实施例中使用的推理服务可以是由实施例二提供的服务模型生成方法生成的推理服务,关于推理服务的得到方式可以参阅实施例二中的描述,在此不再赘述。
在一个实例中,本实施例中的图像处理方法可以用于对图像进行分类。例如,将有人的图像与无人的图像进行分类。在此实例中,上述的处理结果可以是识别该待处理图像中是否包含人像。
在一个实例中,本实施例中的图像处理方法可以用于实现考勤打卡。在此实例中,上述的处理结果可以为是否打卡成功。示例性地,上述的处理结果还可以识别该待处理图像中是否包含真人,且该真人是否为指定用户群中的一人。
在一个实例中,本实施例中的图像处理方法可以用于实现语义分割。在此实例中,上述的处理结果可以为待处理图像所包含的对象信息。在一个实例中,待处理图像中包括人脸图像区域、车辆图像区域、建筑图像区域。在此实例中,对象信息则为人脸位置信息、人脸尺寸信息、车辆位置信息、车辆尺寸信息、建筑位置信息、建筑尺寸信息等。
实施例六
基于同一申请构思,本申请实施例中还提供了与图像处理方法对应的图像处理装置,由于本申请实施例中的装置解决问题的原理与前述的图像处理方法实施例相似,因此本实施例中的装置的实施可以参见上述图像处理方法的实施例中的描述,重复之处不再赘述。
本申请实施例提供了一种图像处理装置。本实施例中的服务模型生成装置中的各个模块用于执行上述实施例四提供的图像处理方法实施例中的各个步骤。图像处理装置包括:处理模块,用于将待处理图像输入推理服务中,对所述待处理图像进行图像处理,以得到处理结果。
示例性地,本实施例中使用的推理服务可以是由实施例二提供的服务模型生成方法生成的推理服务,关于推理服务的得到方式可以参阅实施例二中的描述,在此不再赘述。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的服务模型生成方法或图像处理方法的步骤。
本申请实施例所提供的服务模型生成方法和图像处理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的服务模型生成方法或图像处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。