图像分类方法、装置、计算机设备及存储介质
技术领域
本申请涉及图像处理领域,特别涉及一种图像分类方法、装置、计算机设备及存储介质。
背景技术
随着计算机技术的飞速发展,图像处理技术可以应用在更广阔的范围。例如,用户想要检索某个物品时,可以拍摄并上传包括该物品的物品图像,服务器可以对该物品图像进行分类,以确定该物品所属的类别,然后展示该类别下的相关物品。如何快速的预测用户提供的物品所属的类别,是一个需要解决的问题。
目前,常见的图像分类方式是采用机器学习的方法对输入图像进行特征提取,然后通过分类器获取预测结果,得到输入图像对应的对象类型,也即得到输入图像包括的对象所属的对象类型。
上述技术方案存在的问题是,由于用户拍摄的图像背景较为复杂,清晰度和光照条件各异,使得预测结果的准确度较低。
发明内容
本申请实施例提供了一种图像分类方法、装置、计算机设备及存储介质,通过将目标图像输入图像分类模型,可以得到该目标图像属于多个图像簇的第一置信度,避免了直接输出对象类型的第二置信度导致准确度较低的问题,由于一个图像簇对应至少一个对象类型,则通过第一置信度符合目标条件的至少两个图像簇的第一置信度,可以确定该至少两个图像簇对应的至少两个对象类型的第二置信度,再根据该至少两个对象类型的第二置信度,确定目标图像对应的至少一个对象类型,从而确定的目标图像的至少一个对象类型准确度较高。所述技术方案如下。
一方面,提供了一种图像分类方法,所述方法包括:
将目标图像输入图像分类模型,基于所述图像分类模型对所述目标图像进行分类,输出多个第一置信度,所述第一置信度用于表示所述目标图像属于对应图像簇的可能性,所述图像簇包括属于至少一个对象类型的图像;
根据符合目标条件的至少两个图像簇的第一置信度,确定所述至少两个图像簇对应的至少两个对象类型的第二置信度,所述第二置信度用于表示所述目标图像属于对应对象类型的可能性;
根据所述至少两个对象类型的第二置信度,确定所述目标图像对应的至少一个对象类型。
另一方面,提供了一种图像分类装置,所述装置包括:
模型处理模块,用于将目标图像输入图像分类模型,基于所述图像分类模型对所述目标图像进行分类,输出多个第一置信度,所述第一置信度用于表示所述目标图像属于对应图像簇的可能性,所述图像簇包括属于至少一个对象类型的图像;
确定模块,用于根据符合目标条件的至少两个图像簇的第一置信度,确定所述至少两个图像簇对应的至少两个对象类型的第二置信度,所述第二置信度用于表示所述目标图像属于对应对象类型的可能性;
所述确定模块,还用于根据所述至少两个对象类型的第二置信度,确定所述目标图像对应的至少一个对象类型。
在一种可选的实现方式中,所述装置还包括:
图像识别模块,用于对待分类图像进行图像识别,获取目标对象的识别框,对所述识别框进行扩大;
图像获取模块,用于根据扩大后的识别框,获取第一图像;
图像缩放模块,用于将所述第一图像等比例缩放到目标尺寸,得到第二图像,将所述第二图像作为所述目标图像。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段程序代码,所述至少一段程序代码由所述处理器加载并执行以实现本申请实施例中的图像分类方法中所执行的操作。
另一方面,提供了一种存储介质,所述存储介质中存储有至少一段程序代码,所述至少一段程序代码用于执行本申请实施例中的图像分类方法。
本申请实施例提供的技术方案带来的有益效果是:
在本申请实施例中,通过将目标图像输入图像分类模型,可以得到该目标图像属于对应图像簇的第一置信度,避免了直接输出属于对象类型的第二置信度导致准确度较低的问题,通过符合目标条件的至少两个图像簇的第一置信度,来确定目标图像可能对应的至少两个对象类型,再根据该至少两个对象类型的第二置信度,确定目标图像对应的至少一个对象类型,从而确定的目标图像的至少一个对象类型准确度较高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例提供的一种图像分类方法的实施环境示意图;
图2是根据本申请实施例提供的一种图像分类方法的流程图;
图3是根据本申请实施例提供的另一种图像分类方法的流程图;
图4是根据本申请实施例提供的一种获取多个图像簇的流程示意图;
图5是根据本申请实施例提供的一种确定目标图像对应的对象类型的流程示意图;
图6是根据本申请实施例提供的一种图像分类装置的框图;
图7是根据本申请实施例提供的终端的结构框图;
图8是根据本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
下面简单介绍一下本申请实施例可能用到的技术。
人工智能(Artificial Intelligence, AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能云服务,一般也被称作是AIaaS(AI as a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。
计算机视觉技术(Computer Vision, CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
本申请实施例提供了一种图像分类方法,可以基于人工智能技术实现。该方法可以应用于对图像中包括的对象进行分类的场景中。例如,用户想要购买某个物品时,可以上传包括该物品的图像,由服务器对该图像进行分类,根据图像分类结果确定该图像中包括的物品所属的物品类型,从而向用户展示该物品以及与该物品相似的其他物品的相关信息,以便于用户进行选择。
下面介绍一下本申请实施例提供的图像分类方法的实施环境,图1是根据本申请实施例提供的一种图像分类方法的实施环境示意图。该实施环境可以包括:终端110和服务器120。
终端110以及服务器120可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端110可以安装和运行有支持图像分类的应用程序。该应用程序可以是相册类应用程序、社交类应用程序、购物类应用程序以及图像检索类应用程序等。示意性的,终端110是用户使用的终端,终端110中运行的应用程序内登录有用户账户。
服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器120用于为支持图像分类的应用程序提供后台服务。可选地,服务器120承担主要分类工作,终端110承担次要分类工作;或者,服务器120承担次要分类工作,终端110承担主要分类工作;或者,服务器120或终端110分别可以单独承担分类工作。
可选地,服务器120可以由接入服务器121、分类服务器122和数据库服务器123构成。接入服务器121用于为终端110提供接入服务。分类服务器122用于提供图像分类服务。分类服务器122可以是一台或多台。当分类服务器122是多台时,存在至少两台分类服务器122用于提供不同的服务,和/或,存在至少两台分类服务器122用于提供相同的服务,比如以负载均衡方式提供同一种服务,本申请实施例对此不加以限定。分类服务器122中可以设置有图像分类模型。
终端110可以泛指多个终端中的一个,本实施例仅以终端110来举例说明。
本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量,此时上述图像分类方法的实施环境还包括其他终端。本申请实施例对终端的数量和设备类型不加以限定。
在一种可选的实现方式中,本申请实施例提供的图像分类方法,可用于购物场景,下面以用户通过上传物品图像来购买相同或者相似物品的场景进行介绍。
用户可以通过终端安装的购物类应用程序上传包含有物品的图像,该图像可以是用户通过相机实时拍摄的图像,也可以是用户通过相册选取的图像。购物程序的后台服务器接收到该包含物品的图像时,可以对该图像进行分类,即预测该物品所属的物品类型,如服饰类型、鞋子类型、美妆用品类型以及家居用品类型等。后台服务器根据该物品类型,从该物品类型对应的数据库中检索与该物品相同或者相似的物品,将检索到的物品的相关信息,如图片、购买链接等返回至终端,由终端进行显示,以方便用户进行查看和购买。
在一种可选的实现方式中,本申请实施例提供的图像分类方法,还可用于图像检索场景,下面以用户通过上传图像来搜索与该图像相似的其他图像的场景进行介绍。
用户可以通过终端安装的图像检索类应用程序上传包括动物、植物、风景、建筑物或者动漫人物的图像,该图像可以是用户通过相册选取的图像,也可以是用户通过相机实时拍摄的图像。图像检索类应用程序的后台服务器接收到该图像后,可以对该图像进行分类,即预测该图像包含的内容所属的对象类型,如动物类型、植物类型、风景类型或者动漫人物类型等。后台服务器根据该对象类型,从该对象类型对应的数据库中检索与该图像相似的其他图像,并将相似度大于相似度阈值的图像返回至终端,以方便用户进行查看和下载。
在本申请实施例中,可以由服务器或终端作为执行主体来实施本申请实施例提供的技术方案,也可以通过终端和服务器之间的交互来实施本申请实施例提供的技术方案,本申请实施例对此不作限定。图2是根据本申请实施例提供的一种图像分类方法的流程图。在本申请实施例中以执行主体为服务器为例进行说明,如图2所示,图像分类方法包括以下步骤。
201、服务器将目标图像输入图像分类模型,基于该图像分类模型对该目标图像进行分类,输出多个第一置信度,该第一置信度用于表示该目标图像属于对应图像簇的可能性,该图像簇包括属于至少一个对象类型的图像。
在本申请实施例中,该图像分类模型输出的是目标图像分别属于多个图像簇中各图像簇的第一置信度,该多个图像簇的数量与图像分类模型的输出通道数相同,一个输出通道对应一个图像簇。同一图像簇中包括的多个图像互为相似图像,该多个图像可以对应一个对象类型,也可以对应两个或两个以上的对象类型。第一置信度高的图像簇所包括的图像与目标图像的相似度较高。如目标图像中包括的是鞋子,则图像分类模型输出的多个图像簇的第一置信度中,由鞋子图像聚类得到的图像簇的第一置信度较高。
202、服务器根据符合目标条件的至少两个图像簇的第一置信度,确定该至少两个图像簇对应的至少两个对象类型的第二置信度,该第二置信度用于表示该目标图像属于对应对象类型的可能性。
在本申请实施例中,服务器在得到多个图像簇的第一置信度后,可以按照第一置信度对该多个图像簇进行降序排列,从高到低选择前N个图像簇作为符合目标条件的图像簇,N可以为大于等于2的正整数。由于第一置信度较高的图像簇所对应的对象类型是目标图像对应的对象类型的可能性较高,因此,服务器可以根据该符合目标条件的图像簇的第一置信度,来确定该符合目标条件的图像簇对应的至少两个对象类型的第二置信度。
203、服务器根据该至少两个对象类型的第二置信度,确定该目标图像的至少一个对象类型。
在本申请实施例中,服务器在确定至少两个对象类型的第二置信度之后,可以选择第二置信度和值大于置信度阈值的对象类型,或者按照第二置信度降序排序后位于前Q个的对象类型,作为目标图像对应的对象类型。其中,Q为正整数。
在本申请实施例中,通过将目标图像输入图像分类模型,可以得到该目标图像属于对应图像簇的第一置信度,避免了直接输出属于对象类型的第二置信度导致准确度较低的问题,通过符合目标条件的至少两个图像簇的第一置信度,来确定目标图像可能对应的至少两个对象类型,再根据该至少两个对象类型的第二置信度,确定目标图像对应的至少一个对象类型,从而确定的目标图像的至少一个对象类型准确度较高。
在本申请实施例中,可以由服务器或终端作为执行主体来实施本申请实施例提供的技术方案,也可以通过终端和服务器之间的交互来实施本申请实施例提供的技术方案,本申请实施例对此不作限定。图3是本申请实施例提供的另一种图像分类方法的流程图。该实施例以应用于服务器进行说明,参见图3,该实施例包括以下步骤。
301、服务器获取目标图像。
在本申请实施例中,服务器可以接收终端上传的待分类图像,该待分类图像可以为用户通过相机实时拍摄后上传的图像,也可以为用户从相册中选择后上传的图像,还可以用户通过其他方式上传的图像,本申请实施例对此不进行限制。该待分类图像中包括至少一个对象。服务器可以直接将上述待分类图像作为目标图像,也可以对该待分类图像进行图像识别,将目标对象所在的图像区域作为目标图像。
在一种可选的实现方式中,服务器将目标对象所在的图像区域作为目标图像时,服务获取目标图像的步骤可以为:服务器可以对待分类图像进行图像识别,获取目标对象的识别框,对该识别框进行扩大。服务器可以根据扩大后的识别框,获取第一图像。服务器可以将该第一图像等比例缩放到目标尺寸,得到第二图像,将该第二图像作为目标图像。通过获取目标对象的识别框,可以排除无关背景对目标对象的影响,由于对识别框进行了扩大,引入了目标对象在图像中的上下文信息,即引入了与目标对象相关的背景,使得分类结果更准确。
例如,以目标对象为鞋子为例,服务器对包括鞋子的待分类图像进行图像识别,通过识别框标注鞋子的位置,然后将识别框的四个边扩增10%。根据扩大后的识别框进行裁剪,从待分类图像中裁剪出第一图像。服务器保持第一图像的长宽比,在短边进行补零,将第一图像缩放和调整到目标尺寸,即得到目标图像。
302、服务器将目标图像输入图像分类模型,基于该图像分类模型对该目标图像进行分类,输出多个第一置信度,该第一置信度用于表示该目标图像属于对应图像簇的可能性,该图像簇包括属于至少一个对象类型的图像。
在本申请实施例中,服务器可以获取属于多个对象类型的图像,对于任一图像,若该图像包括的对象属于该对象类型,则确定该图像属于该对象类型。一个图像可以包括属于一个对象类型的对象,一个对象类型可以对应多个图像。服务器可以通过对属于多个对象类型的多个图像进行聚类,得到多个图像簇,即将包括相同对象或者相似对象的图像归类为一个图像簇。由于相似对象可以属于同一对象类型,也可以属于不同对象类型,因此,一个图像簇可以对应至少一个对象类型。服务器可以建立图像簇和至少一个对象类型之间的映射关系。如对于瓶子这一对象,由于化妆品类型的瓶子和厨房用品类型的瓶子较为相似,在对包括瓶子的图像进行聚类时,会将包括属于化妆品类型的瓶子的图像和包括属于家居用品类型的瓶子的图像聚类到同一图像簇中。服务器可以将目标图像输入基于上述多个图像簇训练得到的图像分类模型,输出目标图像分别属于该多个图像簇的第一置信度。
在一种可选的实现方式中,由于图像可能存在分类标签错误,或者图像质量差等问题,会对聚类结果产生干扰,因此服务器可以对聚类得到的图像簇进行合并和清理,将合并和清理后的图像簇作为上述多个图像簇。相应的,服务器获取多个图像簇的步骤可以为:服务器对多个对象类型的图像进行聚类,得到多个图像簇。对于任一图像簇,服务器可以根据该图像簇包括的至少两个图像,确定该图像簇对应的至少一个对象类型,然后从该图像簇包括的图像中移除占比小于目标比例的对象类型所对应的至少一个图像。最后,服务器可以对相似的纯净簇进行合并,该纯净簇为仅对应一个对象类型的图像簇。其中,目标比例可以为5%、8%以及10%等,本申请实施例对此不进行限制。可选的,服务器可以对纯净簇进行聚类,将相似的纯净簇聚类为新的图像簇,该新的图像簇可以为纯净簇,也可以为混杂簇,该混杂簇为对应至少两个对象类型的图像簇。通过清理掉占比较少的对象类型所对应的图像,从而减少了噪声数据的干扰,同时也减少了每个图像簇对应的对象类型的数量,可以缩小预测对象类型时的范围。另外,通过将仅对应一个对象类型的纯净簇进行合并,可以减少最终分类模型所要预测的图像簇的数量。
例如,以图像为物品图像为例,服务器将物品图像库中的物品图像分为11个物品类型,通过对物品图像库中的物品图像进行随机采样,得到多个图像。服务器通过在通用物品图像库预训练的深度神经网络检索模型对多个图像进行特征提取,然后通过聚类算法将该多个图像聚类为多个图像簇。该聚类算法可以采用K-means(K均值)聚类、均值漂移聚类以及基于密度的聚类方法等,本申请实施例对此不进行限制。对于聚类得到的一个图像簇,假设该图像簇包括多个瓶子图像,该多个瓶子图像包括的瓶子分别属于美妆用品类型和家居用品类型。由于少数服装上印制有瓶子的服装图像也被聚类到该图像簇中,因此该图像簇对应美妆用品类型、家居用品类型以及服装类型三个物品类型。由于包括美妆用品类型的瓶子的物品图像占65%,包括家居用品类型的瓶子的物品图像占33%,包含服装上印制有瓶子的服装图像占2%,则服务器将服装上印制有瓶子的服装图像从该图像簇中移除,使得该图像簇对应美妆用品类型、家居用品类型两个物品类型。如果清理后图像簇仅对应一个物品类型,则该图像簇被称为纯净簇。对于纯净簇,服务器可以通过聚类对包含相似图像的纯净簇进行进一步的合并,得到新的图像簇,该新的图像簇可以对应一个物品类型,也可以对应两个或两个以上的物品类型。
为了使服务器获取多个图像簇的流程更清晰,可以参见图4所示,图4是根据本申请实施例提供的一种获取多个图像簇的流程示意图。如图4所示,包括以下步骤,401、对图像进行特征提取,输出图像特征;402、根据图像特征进行聚类,输出多个图像簇;403、对多个图像簇进行清理,得到纯净簇和混杂簇;404、通过聚类对相似的纯净簇进行合并,得到纯净簇或者混杂簇中的至少一种。
需要说明的是,服务器可以使用第一框架来训练上述图像分类模型,在训练完毕后,将训练好的图像分类模型转换为第二框架,以减小模型的体积,同时加速对目标图像进行分类的过程。
例如,该第一框架可以为Pytorch(是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序)框架,第二框架为TensorRT(是一个高性能的深度学习推理优化器,可以为深度学习应用提供低延迟、高吞吐率的部署推理)框架。服务器将通过Pytorch框架训练好的分类模型转换为TensorRT框架的分类模型,并进行Int8量化。使得量化后的模型体积由259M降低至63M,单张图像的分类耗时由37ms降低到9.1ms,且准确率并未发生明显变化,即准确率的变化量在预设的范围内。
需要说明的是,服务器在训练图像分类模型时,可以采用残差网络作为基础分类网络,网络的最后一层,即全连接层的输出通道数与上述根据图像聚类得到的图像簇的个数相同,且一一对应。另外,在训练过程中,可以采用随机饱和度、对比度、亮度、旋转、镜像等数据增强方式对图像进行处理,以增加训练数据的多样性,提高模型的鲁棒性。还可以对图像进行尺寸的调整,详见步骤301,在此不再赘述。
303、服务器根据多个第一置信度,确定目标图像的分类难度信息,该分类难度信息用于指示该目标图像属于不同分类难度的第一类图像或者第二类图像。
在本申请实施例中,仅对应一个对象类型的图像簇为纯净簇,对应至少两个对象类型的图像簇为混杂簇。服务器可以根据该多个图像簇中纯净簇和混杂簇的第一置信度,来确定目标图像属于第一类图像还是第二类图像,然后采取不同的确定方式来确定目标图像对应的对象类型。其中,多个图像簇的第一置信度的总和为1,第一类图像的分类难度小于第二类图像的分类难度。
在一种可选的实现方式中,服务器可以根据混杂簇的第一置信度的和值与第一目标阈值的关系,来确定目标图像属于第一类图像还是第二类图像。相应的,服务器根据多个图像簇的第一置信度,确定目标图像的分类难度信息的步骤可以为:服务器可以根据该多个图像簇中混杂簇的第一置信度,确定混杂簇的第一置信度的和值,响应于该和值大于第一目标阈值,则服务器可以确定该目标图像属于第二类图像。响应于该和值小于等于该第一目标阈值,则服务器可以确定该目标图像属于第一类图像。其中,该第一目标阈值可以为0.4、0.5以及0.6等,本申请实施例对此不进行限制。需要说明的是,服务器还可以在混杂簇的第一置信度的和值小于等于该第一目标阈值时,根据纯净簇的第一置信度和第二目标阈值,来确定目标图像属于第一类图像还是第二类图像:响应于该和值小于等于该第一目标阈值,服务器根据多个图像簇中纯净簇的第一置信度,确定纯净簇对应的至少一个对象类型的第二置信度。响应于置信度最高的对象类型的第二置信度小于等于第二目标阈值,服务器可以确定该目标图像属于第二类图像,响应于置信度最高的对象类型的第二置信度大于该第二目标阈值,确定该目标图像属于第一类图像。其中,第二目标阈值可以为0.5、0.6以及0.8等,本申请实施例对此不进行限制。由于通过第一目标阈值和第二目标阈值进行判断,使得在混杂簇的总置信度较高,或者在纯净簇的总置信度较高,但纯净簇对应的各对象类型的第二置信度差异不大,即对象类型的第二置信度峰值较小时,由于目标图像可能所属的对象类型较多,准确分类较为困难,因此将目标图像归为第二类图像,而在纯净簇对应的各对象类型中的某个对象类型的第二置信度的峰值较高时,由于目标图像所属的对象类型较少,准确分类较为简单,因此将目标图像归为第一类图像,从而在后续处理过程中,在对第一类图像进行处理时可以减少计算量,而对第二类图像进行处理时,可以提高准确率。
例如,图像分类模型输出A、B、C、D、E以及F六个图像簇,其中,A、B、C为纯净簇,D、E、F为混杂簇。第一目标阈值为0.5,第二目标阈值为0.6。下面通过三种情况来具体说明。
情况一:A的第一置信度为0.2、B的第一置信度为0.1、C的第一置信度为0.1,D的第一置信度为0.3、E的第一置信度为0.15、F的第一置信度为0.15。由于混杂簇的第一置信度的和值为0.3+0.15+0.15=0.6,大于0.5,则目标图像为第二类图像。
情况二:A的第一置信度为0.3、B的第一置信度为0.2、C的第一置信度为0.2,D的第一置信度为0.1、E的第一置信度为0.1、F的第一置信度为0.1。由于混杂簇的第一置信度的和值为0.1+0.1+0.1=0.3,小于0.5。但是由于纯净簇A对应对象类型1,纯净簇B对应对象类型1,纯净簇C对应对象类型2,置信度最高的对象类型1的第二置信度为0.5,小于0.6,则目标图像为第二类图像。
情况三:A的第一置信度为0.55、B的第一置信度为0.25、C的第一置信度为0.05,D的第一置信度为0.05、E的第一置信度为0.05、F的第一置信度为0.05。由于混杂簇的第一置信度的和值为0.05+0.05+0.05=0.15,小于0.5。但是由于纯净簇A对应对象类型1,纯净簇B对应对象类型1,纯净簇C对应对象类型2,置信度最高的对象类型1的第二置信度为0.8,大于0.6,则目标图像为第一类图像。
304、服务器根据符合目标条件的至少两个图像簇的第一置信度,确定该至少两个图像簇对应的至少两个对象类型的第二置信度,该第二置信度用于表示该目标图像属于对应对象类型的可能性。
在本申请实施例中,服务器可以根据图像簇的置信度对各图像簇进行降序排列,然后从高到低获取前N个图像簇,N为大于等于2的正整数。如N为2时,获取前两个图像簇。N为5时,获取排序为1、2、3、4以及5的5个图像簇,也即顺序排在前五的5个图像簇。由于一个图像簇包括的图像可以属于至少一个对象类型,则服务器可以根据符合目标条件的图像簇的第一置信度,确定该符合目标条件的图像簇所对应的至少两个对象类型的第二置信度。
在一种可选的实现方式中,服务器可以将纯净簇的第一置信度作为其对应的对象类型的第二置信度,将混杂簇的第一置信度的均值作为其对应的各对象类型的第二置信度。相应的,服务器根据符合目标条件的至少两个图像簇的第一置信度,确定该至少两个图像簇对应的至少两个对象类型的第二置信度的步骤可以为:对于任一符合目标条件的图像簇,响应于该图像簇为纯净簇,服务器可以获取该纯净簇的第一置信度,将该纯净簇的第一置信度作为该纯净簇对应的对象类型的第二置信度;响应于该图像簇为混杂簇,服务器可以获取该混杂簇的第一置信度和该混杂簇对应的对象类型的第一数量,将该混杂簇的置信度与该第一数量的比值作为该混在簇对应的每个对象类型的第二置信度。最后,服务器可以将相同对象类型的第二置信度进行累加,得到至少两个对象类型的第二置信度。由于置信度较高的图像簇对应的对象类型为目标图像对应类型的可能性较高,通过对符合条件的图像簇的第一置信度进行处理,使得确定的至少两个对象类型的置信度读可以较为精确的反映目标图像可能对应的对象类型。
例如,目标数量为5,服务器从多个图像簇中按照第一置信度从高到低选择5个图像簇A、B、C、D以及E,其中图像簇A、B和C为纯净簇,图像簇D和E为混杂簇。图像簇A的第一置信度为0.2,则图像簇A对应的对象类型1的第二置信度为0.2;图像簇B的第一置信度为0.4,则图像簇B对应的对象类型2的第二置信度为0.4;图像簇C的第一置信度为0.1,则图像簇C对应的对象类型3的第二置信度为0.1;图像簇D的第一置信度为0.1,对应对象类型1和对象类型2,则图像簇D对应的对象类型1的第二置信度为0.05,对象类型2的第二置信度为0.05;图像簇E的第一置信度为0.1,对应对象类型2和对象类型3,则图像簇E对应的对象类型2的第二置信度为0.05,对象类型3的第二置信度为0.05。则累加后,对象类型1的第二置信度为0.25,对象类型2的第二置信度为0.5,对象类型3的第二置信度为0.15。
305、响应于该目标图像属于第一类图像,服务器根据该至少两个对象类型的第二置信度,按照第二置信度从高到低获取第二置信度的和值大于置信度阈值的至少一个对象类型作为该目标图像对应的对象类型。
在本申请实施例中,对于属于第一类图像的目标图像,由于纯净簇的第一置信度较高,因此服务器可以对上述至少两个对象类型的第二置信度进行降序排列,从高到低获取M个对象类型,该M个对象类型的第二置信度的和值大于置信度阈值,将该M个对象类型作为该目标图像对应的对象类型。其中,M为正整数。
例如,以对象类型1的第二置信度为0.25,对象类型2的第二置信度为0.5,对象类型3的第二置信度为0.15,置信度阈值为0.7为例。按照第二置信度对上述三个对象类型降序排列后,对象类型2的置信度最高,对象类型1的置信度第二高,对象类型3的置信度最低。由于对象类型2和对象类型1的第二置信度的和值为0.75,大于置信度阈值0.7,则服务器将对象类型2和对象类型1作为目标图像对应的对象类型。需要说明的是,如果置信度阈值为0.5,则服务器可以只将对象类型2作为目标图像对应的对象类型。
306、响应于该目标图像属于第二类图像,根据该至少两个对象类型的置信度,按照第二置信度从高到低获取第二数量的对象类型作为该目标图像对应的对象类型。
在本申请实施例中,对于属于第二类图像的目标图像,由于混杂簇对应至少两个对象类型,使得各对象类型是目标图像对应的对象类型的可能性较为相近,因此,服务器可以按照第二置信度对上述至少两个对象类型进行降序排列,从高到低选取Q个对象类型,将该Q个对象类型作为该目标图像对应的对象类型。其中,Q为正整数,可以为5、7、9等,本申请实施例对此不进行限制。
例如,服务器确定了10个对象类型的第二置信度,按照第二置信度对该10个对象类型进行降序排列,从高到低选择5个对象类型作为目标图像对应的对象类型。
需要说明的是,为了使上述步骤303至步骤306的流程更清晰,可以参见图5所示,图5是本申请实施例提供的一种确定目标图像对应的对象类型的流程示意图。如图5所示,包括以下步骤:501、根据图像分类模型输出的多个预测结果,转换为多个图像簇的第一置信度。其中,图像分类模型的最后一层为全连接层,输出的通道数与图像簇的个数相同,并一一对应。502、根据符合目标条件的至少两个图像簇的第一置信度,确定该至少两个图像簇对应的至少两个对象类型的第二置信度;503、根据多个图像簇的第一置信度,确定目标图像属于第一类图像还是第二类图像;504、响应于该目标图像属于第一类图像,服务器根据该至少两个对象类型的第二置信度,按照第二置信度从高到低获取第二置信度的和值大于该置信度阈值的前M个对象类型;505、响应于该目标图像属于第二类图像,根据该至少两个对象类型的第二置信度,按照第二置信度从高到低获取Q个对象类型。
在本申请实施例中,通过将目标图像输入图像分类模型,可以得到该目标图像属于对应图像簇的第一置信度,避免了直接输出属于对象类型的第二置信度导致准确度较低的问题,通过符合目标条件的至少两个图像簇的第一置信度,来确定目标图像可能对应的至少两个对象类型,再根据该至少两个对象类型的第二置信度,确定目标图像对应的至少一个对象类型,从而确定的目标图像的至少一个对象类型准确度较高。
图6是根据本申请实施例提供的一种图像分类装置的框图。该装置用于执行上述图像分类方法执行时的步骤,参见图6,装置包括:模型处理模块601和确定模块602。
模型处理模块601,用于将目标图像输入图像分类模型,基于该图像分类模型对该目标图像进行分类,输出多个第一置信度,该第一置信度用于表示该目标图像属于对应图像簇的可能性,该图像簇包括属于至少一个对象类型的图像;
确定模块602,用于根据符合目标条件的至少两个图像簇的第一置信度,确定该至少两个图像簇对应的至少两个对象类型的第二置信度,该第二置信度用于表示该目标图像属于对应对象类型的可能性;
该确定模块602,还用于根据该至少两个对象类型的第二置信度,确定该目标图像对应的至少一个对象类型。
在一种可选的实现方式中该确定模块602,用于按照第一置信度对多个图像簇进行降序排列,将前N个图像簇作为符合目标条件的图像簇,N为正整数;对于任一符合该目标条件的图像簇,响应于该图像簇为纯净簇,获取该纯净簇的第一置信度,将该纯净簇的第一置信度作为该纯净簇对应的对象类型的第二置信度,该纯净簇为对应一个对象类型的图像簇;响应于该图像簇为混杂簇,获取该混杂簇的第一置信度和该混杂簇对应的对象类型的第一数量,将该混杂簇的第一置信度与该第一数量的比值作为该混杂簇对应的每个对象类型的第二置信度,该混杂簇为对应至少两个对象类型的图像簇;将相同对象类型的第二置信度进行累加,得到至少两个对象类型的第二置信度。
在一种可选的实现方式中,该确定模块602,还用于获取该目标图像的分类难度信息,该分类难度信息用于指示该目标图像属于不同分类难度的第一类图像或者第二类图像;响应于该目标图像属于第一类图像,根据该至少两个对象类型的第二置信度,按照第二置信度从高到低获取第二置信度的和值大于置信度阈值的至少一个对象类型作为该目标图像对应的对象类型;响应于该目标图像属于第二类图像,根据该至少两个对象类型的第二置信度,按照第二置信度从高到低获取第二数量的至少一个对象类型作为该目标图像对应的对象类型。
在一种可选的实现方式中该确定模块602,还用于根据该多个图像簇中混杂簇的第一置信度,确定混杂簇的第一置信度的和值,该混杂簇为对应至少两个对象类型的图像簇;响应于该和值大于第一目标阈值,确定该目标图像属于第二类图像。
在一种可选的实现方式中,该装置还包括:
置信度获取模块,用于响应于该和值小于等于该第一目标阈值,根据该多个图像簇中纯净簇的第一置信度,确定纯净簇对应的至少一个对应类型的第二置信度,该纯净簇为对应一个对象类型的图像簇;
该确定模块602,还用于响应于置信度最高的对象类型的第二置信度小于等于第二目标阈值,确定该目标图像属于第二类图像;
该确定模块602,还用于响应于置信度最高的对象类型的第二置信度大于该第二目标阈值,确定该目标图像属于第一类图像。
在一种可选的实现方式中,该装置还包括图像簇获取模块,用于对多个对象类型的图像进行聚类,得到多个图像簇;对于任一图像簇,根据该图像簇包括的至少两个图像,确定该图像簇对应的至少一个对象类型,从该图像簇包括的图像中移除占比小于目标比例的对象类型所对应的至少一个图像;对相似的的纯净簇进行合并,该纯净簇为对应一个对象类型的图像簇。
在一种可选的实现方式中,该装置还包括:
图像识别模块,用于对待分类图像进行图像识别,获取目标对象的识别框,对该识别框进行扩大;
图像获取模块,用于根据扩大后的识别框,获取第一图像;
图像缩放模块,用于将该第一图像等比例缩放到目标尺寸,得到第二图像,将该第二图像作为该目标图像。
在本申请实施例中,通过将目标图像输入图像分类模型,可以得到该目标图像属于对应图像簇的第一置信度,避免了直接输出属于对象类型的第二置信度导致准确度较低的问题,通过符合目标条件的至少两个图像簇的第一置信度,来确定目标图像可能对应的至少两个对象类型,再根据该至少两个对象类型的第二置信度,确定目标图像对应的至少一个对象类型,从而确定的目标图像的至少一个对象类型准确度较高。
需要说明的是:上述实施例提供的图像分类装置在运行应用程序时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图像分类装置与图像分类方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在本申请实施例中,计算机设备可被配置为终端或者服务器,当计算机设备被配置为终端时,可以由终端作为执行主体来实施本申请实施例提供的技术方案,当计算机设备被配置为服务器时,可以由服务器作为执行主体来实施本申请实施例提供的技术方案,也可以通过终端和服务器之间的交互来实施本申请提供的技术方案,本申请实施例对此不作限定。
图7是根据本申请实施例提供的终端700的结构框图。该终端图7示出了本发明一个示例性实施例提供的终端700的结构框图。该终端700可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端700还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端700包括有:处理器701和存储器702。
处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所执行以实现本申请中方法实施例提供的图像分类方法。
在一些实施例中,终端700还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、显示屏705、摄像头组件706、音频电路707、定位组件708和电源709中的至少一种。
外围设备接口703可被用于将I/O(Input /Output,输入/输出)相关的至少一个外围设备连接到处理器701和存储器702。在一些实施例中,处理器701、存储器702和外围设备接口703被集成在同一芯片或电路板上;在一些其他实施例中,处理器701、存储器702和外围设备接口703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路704用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路704包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路704可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路704还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏705用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏705是触摸显示屏时,显示屏705还具有采集在显示屏705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器701进行处理。此时,显示屏705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏705可以为一个,设置在终端700的前面板;在另一些实施例中,显示屏705可以为至少两个,分别设置在终端700的不同表面或呈折叠设计;在另一些实施例中,显示屏705可以是柔性显示屏,设置在终端700的弯曲表面上或折叠面上。甚至,显示屏705还可以设置成非矩形的不规则图形,也即异形屏。显示屏705可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件706用于采集图像或视频。可选地,摄像头组件706包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器701进行处理,或者输入至射频电路704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器701或射频电路704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路707还可以包括耳机插孔。
定位组件708用于定位终端700的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件708可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源709用于为终端700中的各个组件进行供电。电源709可以是交流电、直流电、一次性电池或可充电电池。当电源709包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端700还包括有一个或多个传感器710。该一个或多个传感器710包括但不限于:加速度传感器711、陀螺仪传感器712、压力传感器713、指纹传感器714、光学传感器715以及接近传感器716。
加速度传感器711可以检测以终端700建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器711可以用于检测重力加速度在三个坐标轴上的分量。处理器701可以根据加速度传感器711采集的重力加速度信号,控制显示屏705以横向视图或纵向视图进行用户界面的显示。加速度传感器711还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器712可以检测终端700的机体方向及转动角度,陀螺仪传感器712可以与加速度传感器711协同采集用户对终端700的3D动作。处理器701根据陀螺仪传感器712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器713可以设置在终端700的侧边框和/或显示屏705的下层。当压力传感器713设置在终端700的侧边框时,可以检测用户对终端700的握持信号,由处理器701根据压力传感器713采集的握持信号进行左右手识别或快捷操作。当压力传感器713设置在显示屏705的下层时,由处理器701根据用户对显示屏705的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器714用于采集用户的指纹,由处理器701根据指纹传感器714采集到的指纹识别用户的身份,或者,由指纹传感器714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器701授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器714可以被设置在终端700的正面、背面或侧面。当终端700上设置有物理按键或厂商Logo时,指纹传感器714可以与物理按键或厂商Logo集成在一起。
光学传感器715用于采集环境光强度。在一个实施例中,处理器701可以根据光学传感器715采集的环境光强度,控制显示屏705的显示亮度。具体地,当环境光强度较高时,调高显示屏705的显示亮度;当环境光强度较低时,调低显示屏705的显示亮度。在另一个实施例中,处理器701还可以根据光学传感器715采集的环境光强度,动态调整摄像头组件706的拍摄参数。
接近传感器716,也称距离传感器,通常设置在终端700的前面板。接近传感器716用于采集用户与终端700的正面之间的距离。在一个实施例中,当接近传感器716检测到用户与终端700的正面之间的距离逐渐变小时,由处理器701控制显示屏705从亮屏状态切换为息屏状态;当接近传感器716检测到用户与终端700的正面之间的距离逐渐变大时,由处理器701控制显示屏705从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图7中示出的结构并不构成对终端700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
计算机设备被配置为服务器时,图8是根据本申请实施例提供的一种服务器的结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)801和一个或一个以上的存储器802,其中,该存储器802中存储有至少一条指令,该至少一条指令由该处理器801加载并执行以实现上述各个方法实施例提供的图像分类方法。当然,该服务器800还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器800还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质应用于计算机设备,该计算机可读存储介质中存储有至少一条程序代码,该至少一条程序代码用于被处理器执行并实现本申请实施例中的图像分类方法中计算机设备所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。