基于知识学习的多目标关联检测与识别方法
2021-12-01高跃清沈宇婷陈路路赵会盼
郭 策,高跃清,2,沈宇婷,杜 楚,陈路路,赵会盼
(1.中国电子科技集团公司 第五十四研究所,石家庄 050081; 2.北京交通大学,北京 100091)
0 引言
第五届世界人工智能大会提出,新一代人工智能正在逐步从感知智能向认知智能转化[1-2]。感知智能是机器具备了视觉、听觉、触觉等感知能力,将多元数据结构化,并用人类熟悉的方式去沟通和互动;认知智能则是从类脑的研究和认知科学中汲取灵感,结合跨领域的知识图谱、因果推理、持续学习等,赋予机器类似人类的思维逻辑和认识能力,特别是理解、归纳和应用知识的能力[3]。随着感知智能水平的日趋成熟,相关研究呈现出由感知智能向认知智能发展的态势。
在感知智能发展阶段,人工智能学习算法以数据为基础,通过计算机强大的算力寻找样本间的共性,从而找出隐藏在数据背后的客观规律[4]。但这种规律是通过参数间接体现的,仍然不能为人类完全所知,这就导致了人类的知识难以与机器共用,而对于一个人类已知的规律,算法仍需要大量运算才能得到一个近似解,这个近似解还往往达不到人类要求的精度[5]。参数背后的规律不能具体化就意味着不同参数网络之间不能很好地建立语义关联,进而造成现如今的不同参数网络各自相对独立,难以相互沟通形成认知。
人类知识难以与机器共用、机器之间知识通用性不强的问题已经成为人工智能算法走向认知智能的重要障碍。因此提出一种新的框架,引入知识图谱,通过图谱中的关联与搜索,有选择性的调用深度学习算法,提高通用性;通过结构化的知识存储与迭代式的知识更新,使知识可以人机共用。
图像目标检测与识别应用广泛,相较于文本信息,语义更加准确,具有典型性[6],因此在图像方面对上述框架进行验证。
1 基于知识的多目标关联判别框架
1.1 问题的提出
1.1.1 知识在机器之间以及人机之间不通用
目前主流的图像目标识别算法采用基于深度学习的端到端训练模式,模型训练结果以参数的方式呈现[7-10]。这些参数可以看作机器通过大量数据训练得到的规律性知识,而这些知识却只能应用于其训练样本中的目标分类,既不能与另一个模型中的知识建立联系,也无法将人类已有的知识加入其中。
1.1.2 识别分类可拓展性低
在实际应用中,图像目标识别往往需要得到多种类目标,而且对目标种类的需求是不断增长和变化的[11]。基于深度学习训练的模型能够识别的目标类别在训练之初就确定了,训练完成后,难以增加或更改分类列表[12-15],只能耗费大量资源重新训练,因此该模型难以根据需求的发展及时做出调整。
1.2 总体思路
这些问题难以在深度学习网络内部解决,因此在基于深度学习的图像目标识别模块之上,加入知识库模块,负责结构化地存储各个渠道获取的知识,并根据知识做出推理判断,按需调用各个识别网络。
图1 模块关系示意图
知识库模块的引入,打通了人类与机器之间的知识交流障碍,也为不同识别网络的知识之间建立联系提供了通道。基于深度学习的识别网络模块由多个识别网络组成,每个识别网络只识别较少种类的目标,当一个分类需要调整时,只需要替换该分类所在的识别网络,其他识别网络不受影响。各个识别网络灵活调整,之间互不干扰,解决因单个分类的变化造成全局重新训练的问题,增强了图像目标识别的可扩展性。
1.3 框架的设计
整个系统包含基于深度学习的识别模块与基于知识图谱的知识库模块,其中识别模块又分为通用识别模块和专用识别模块。由于知识具有领域特征,不同领域具有不同实体群落,因此通用识别模块的主要作用是判断图像内容属于哪个领域,而专用识别模块只识别单类目标,其训练成本与准确度均高于通用模块,起到一锤定音的作用。总体流程图如图2所示,输入单幅图像,首先进入通用识别模块并识别图中关键性且具有强代表性的实体,识别结果送入基于知识图谱的目标关联判别模块,该模块会把识别到的图像目标类别与知识图谱中的实体比对,通过聚类和计算欧氏距离等方法,确定图像中目标所属领域,找出与已识别到目标相关联的目标种类,从而有选择性的调用对应领域的专用识别模块,进一步发掘图像中的目标信息。当识别模块识别到的结果中含有超出知识图谱知识范围的新信息时,则通过规则式的更新,将新知识加入到知识图谱中。可见,识别模块与知识库模块是相辅相成的关系,识别模块在知识库的指导下工作,为知识库提供新知识,使其更加完善,而更加完善的知识库可以更好地指导识别模块进行工作,知识学习是在一轮轮的迭代中不断积累的。
图2 总体流程图
2 知识图谱的构建与迭代更新
2.1 知识图谱的初步构建
建立最初的知识图谱,解决的是知识图谱从无到有的问题。采用先由人工建立一个由专家知识组成的初始图谱,然后通过迭代更新逐渐向图谱中补充知识的方法。
知识图谱的构建基础是知识的表示与存储[16]。知识表示方面,最常见的方案是采用事实(Fact)三元组G={E,R,F}的形式表示[17-18]。其中,E表示所有实体的集合{e1,e2,…,en},集合中的e为实体,是知识图谱中最基本的组成元素,其在图谱中体现为知识图谱的节点,表示不同目标的名称;R表示所有关系的集合{r1,r2,…,rn},集合中的r为关系,其在图谱中体现为连接实体的边,表示不同名称的目标之间的联系;F表示事实的集合{f1,f2,…,fn},集合中的f表示事实,事实f可以用三元组(h,r,t)∈f定义,每一个事实f可以表示为头实体h,尾实体t,以及两实体之间的关系r[19-20]。例如,对于事实“船属于码头”,头实体h为目标名称“船”,尾实体t为目标名称“码头”,关系r为从属关系。
最初的知识图谱由人工建立,采用目标种类名称作为实体,不同目标间的逻辑关系作为实体之间的联系,建立基于知识图谱的知识库。
2.2 知识图谱的迭代更新
尽管通过人工初步建立的知识图谱是由专家知识组成的,具有比较权威可信度,但随着时间的推移知识的内容会发生变化,最初建立的专家知识如果不能与时俱进,就不能为基于知识的决策提供可靠支撑,且人工建立知识库的规模受到客观因素限制,不能做到每个领域全面覆盖。因此,引入知识图谱的迭代更新,这样既能保证知识库中知识的时效性,又能扩充基于知识图谱的知识库的内容规模。
知识图谱的迭代更新,是目标识别与知识图谱互相促进,迭代上升的过程。在这个过程中,目标识别的信息是知识图谱的内容来源,使知识图谱越来越丰富,同时更加丰富的知识图谱可以为目标识别提供更加准确的指导。知识图谱的迭代更新示意图如图3所示。
图3 知识图谱迭代更新示意图
根据更新对象,迭代更新过程可分为关系更新与实体更新两大类[21]。关系更新的对象是现有实体之间关系,涉及到关系的新建与删除,以及对头实体和尾实体的修改;实体更新是对实体本身的增添、删除或修改。
对以上两类更新制定知识图谱更新规则。采用频数阈值的方法,根据事先设定好的阈值,当频数高于阈值时,则触发知识图谱的更新。对于关系更新,可由机器根据更新规则自动更新;对于实体更新,由于每个实体都有其对应的目标识别算法,故实体的新增是与目标识别算法成对新增的,其删除和修改都会牵涉到知识图谱内容的逻辑结构,需要慎重,且改动频率较低,故通过人工核验的方式进行更新。
具体更新规则如表1所示。
表1 知识图谱更新规则
图谱的迭代更新是基于知识图谱的知识库逐渐扩充规模,保持时效性的基础,而知识图谱的规模和时效性直接影响到多目标识别准确度和效率,因此知识图谱的迭代更新是一个非常重要的过程。
3 图像多目标关联判别方法
3.1 多类目标的获取
通过基于神经网络的深度学习算法,获取多类别目标。训练多个基于神经网络的深度学习网络,可分为两大模块:一类是能够识别多类目标的通用识别模块;另一类只识别一种目标,且精度更高效果更好的专用识别模块。通用识别模块的类别来自该领域知识图谱中出现概率较高的若干类别,对于实体较多的领域,可以根据需要训练多个。通用模块对训练样本要求较高,需要多类目标在同一张图中出现,然而战场图像情报资源有限,往往只有少量训练样本,因此通用模块具有识别准确度低,在高难度情况下存在漏检或错检的问题。专用识别模块只识别一类目标,训练样本相对更加容易获取,因此可以利用更多时间和空间资源,通过较多的迭代次数,使其识别精度更高,对难以识别的目标也有较强的辨识度。
在进行目标识别时,首先由若干通用识别模块对关键类别进行初步识别,确定图像内容所属领域,为基于知识图谱的关联判别提供依据,之后专用识别模块对该领域中的关键目标种类以及与已识别到的目标相关联的目标种类进行检测,从而准确的检测出图像中的各类目标。
3.2 基于知识图谱的多目标关联判别
关联判别是在知识图谱中通过实体之间的多维联系,检索与图像中已识别目标类别相关联的目标类别,从而达到引导专用识别模块进一步对图像检测的目的。
提出一种基于实体间欧氏距离的判别方法,对K-Means算法[22]进行改造,对知识图谱中有关联的实体进行聚类。
K-Means算法是最常用的聚类算法之一,其原理比较简单,容易实现,收敛速度快,聚类效果较优,并且算法可解释度比较高。聚类示意图如图4所示。
图4 实体群的聚类
假设知识图谱在某领域有实体集D={x1,x2,…,xm},而该领域的通用识别模块能够识别K类目标,以这K类目标在知识图谱中所对应的实体为初始聚类中心,将其他实体聚类为K类,经过聚类之后,得到的簇为C={C1,C2,…,Ck},而这K个聚类的中心为{μi}。定义如下的损失函数:
(2)
具体算法如下:
Repeat
{
fori=1 tom
①
fork=1 toK
②
}
其中:①是计算每个实体xi到中心节点μk最近的距离,并将此实体划分到该中心节点所对应的实体聚类中。②是对每个实体群的聚类cj重新计算中心节点。
不断的重复①和②,最终得到实体群的聚类。
相较于传统K-Means算法随机选择初始聚类中心,选用通用识别模块的目标类别所对应的实体作为聚类中心一定程度上提高了算法收敛的速度。
在实体群聚类的基础上,进行基于欧氏距离的关联判别。
定义关联距离R:
(3)
R表示xm与xn关联路径上所有节点的欧氏距离之和最小的路径距离。当R的值较小时,认为实体xm与xn之间的关系较为紧密,意味着更有可能出现在同一幅图像中,此时的阈值称为邻居阈值;而当R值大于一定的阈值时,则认为实体xm与xn相关度较低,此时的阈值称为熔断阈值。
多目标关联判别时,判定两目标有关联具有两条触发规则,一是处于同一聚类中,且关联距离R小于预先设定好的熔断阈值;二是无论这两个实体是否在同一个聚类中,若其关联距离R小于预先设定好的邻居阈值,则认为这两个实体有关联。
同时,对于新加入到知识图谱中,与其他节点联系较少的节点,识别该种类目标的专用模块会在其所在领域被通用识别模块激活后运行一次,从而方便其通过迭代更新与更多节点建立联系,提高其下次被调用的几率。
4 模拟实验与分析
4.1 实验描述
知识图谱采用Neo4j搭建,目标识别算法采用YOLO-V5,计算设备采用单块GTX1080(8GB)GPU。
为验证理论的可行性,实验采用了小规模训练数据,数据由1 600张包含船、码头、集装箱、油罐、输油管、汽车、塔吊、飞机等目标的遥感图像组成,图像分辨率为1 200*900左右。部分训练数据如图5所示。
图5 部分训练数据
为验证理论可行性,并结合现有数据集特点,在初步人工构建图谱时,从图中选取6类有代表性的目标,分别是油罐、输油管、船、集装箱、以及码头和塔吊。将这6类目标作为互相关联的6种实体,其中油罐、码头、船相互关联,船与集装箱关联,油罐与输油管关联,码头与塔吊关联。
初步建立知识图谱如图6所示。
图6 初步建立的知识图谱
图谱中,飞机代表另一个领域的节点与本领域实体没有直接或间接的联系,作为一个单独节点存在。
目标识别算法采用YOLO-V5,采用预训练模型YOLOV5S,分别训练通用识别模块和专用识别模块。
其中通用识别模块的目标类别来源于数据集中最常见的三种目标:油罐、船、码头。
每个专用识别模块只识别一种目标,故共训练了7个网络,分别识别油罐、船、码头、飞机、输油管、集装箱以及塔吊。
为了验证整个系统的可拓展性,额外训练了一个专用识别模块,用于识别汽车。
通用识别模块在batch=10,epoch=100的参数下训练;专用识别模块在batch=10,epoch=1000的参数下训练,结果如表2所示。
表2 各个识别网络训练结果
通过对比参数可以看出,相较于通用识别模块,专用识别模块的识别精度更高,分类十分准确。
4.2 基于知识的多目标关联判别
目标关联判别旨在发现通用识别模块错检、漏检的目标。并不是每幅图像都会出现错检、漏检的情况,故从大量实验图像中选择了一张具有代表性的图像作为示例,如图7所示。
图7 通用模块对示例图像检测结果
通用模块识别三类目标,故K=3,根据聚类算法将图谱聚为3类。聚类结果如下:
类别1:{船,集装箱};类别2:{码头,塔吊};类别3:{油罐,输油管};飞机与其他实体之间没有直接或间接的联系,欧氏距离为无穷大,故不属于任何一类。设定邻居阈值Rc=1,熔断阈值Rf=3。
通用识别模块识别出了码头,根据知识图谱中已有的知识,油罐、船、码头三个实体的关联距离R小于等于邻居阈值Rc,因此判断这三者互相关联,图中码头的周围很可能有船和油罐,故调用专用识别模块,分别对船、油罐识别。此外,根据聚类结果,在知识图谱已有的关系中,码头与塔吊存在关联关系,故调用识别塔吊的专用识别模块。
经过关联判别,调用多个专用识别模块后该图像识别结果如图8所示。
图8 最终检测结果
可见,选择性的调用专用识别模块可以十分有效的识别出图中关联目标,且未调用识别飞机及其相关领域的算法,节省了不必要的识别时间,提高了图像目标识别工作的效率。
4.3 基于知识图谱的知识迭代更新
知识的迭代更新是指目标识别模块获得的知识根据规则转化为知识图谱中知识的过程。
实验中,假设实体“汽车”刚刚收录到知识图谱的当前领域,与该领域其他节点之间暂无联系,属于较为“孤立”的节点。为了方便其通过迭代更新与更多节点建立联系,识别汽车目标的专用模块会在其所在领域被通用识别模块激活后运行一次。在识别工作中,识别“汽车”的同时常常会识别到船,根据知识迭代更新规则,“汽车”与“码头”同框出现的频数高于预先设定的更新频数,故认为实体“汽车”与实体“码头”之间十分可能有关联,并在知识图谱中创建“汽车”实体与“码头”实体之间的联系。
经过迭代更新后的知识图谱如图9所示。
图9 迭代更新后的知识图谱
5 结束语
由感知智能转向认知智能的道路很长,图像识别领域相较于其他领域,如自然语言处理,更加直观,人机之间没有语义鸿沟,是人工智能转型中一个具有潜力的突破点。通过将知识图谱与基于神经网络的深度学习图像目标识别算法相结合,为探索应用前景更加广阔的图像目标识别方式提供了新思路。模块化设计使得整个系统灵活多变,除通用识别模块在更新时需要重新训练外,各类专用识别模块都不需要重新训练,只需要根据实际需要扩充识别新型目标类别的模块即可,基于知识图谱的知识库会统筹规划,按需调用这些模块。
相较于仅仅使用基于神经网络的深度学习图像目标识别算法,知识图谱的引入有效提高了图像目标识别算法的知识通用性以及拓展性,同时知识图谱可以利用图像目标识别结果中的知识不断丰富自己,从而能够更好的指导下一次识别任务。这种知识和数据相辅相成,互相促进,迭代式上升的良性循环,可以使整个系统常用常新,在实践中积累知识,更贴近于人的认知规律。
基于聚类和欧氏距离的关联判别方法只实现了一级关联,在进一步的研究中可以对新识别到的目标的关联目标进行检测,实现多级关联,层层推进的效果。此外,知识图谱+深度学习的思路也可以应用到图像目标识别以外的领域,从而建立一个跨领域的大规模知识库,为探索通用化人工智能提供新的解决思路。