发明内容
本发明所要解决的技术问题是提供一种通过引入犬类行为知识图谱来设计训练的深度神经网络以识别监控视频中犬的姿态和行为的基于知识图谱的监控视频犬类姿态和行为智能识别方法。
本发明解决其技术问题所采用的技术方案是:基于知识图谱的监控视频犬类姿态和行为智能识别方法,包括以下步骤:
S1.知识图谱的构建;
利用犬的姿态信息、犬的基本行为信息、犬的局部器官行为信息、犬身体部位信息以及环境信息构建犬类姿态行为知识图谱;
S2.训练姿态和行为分类器;
所述训练姿态分类器采用神经网络训练出一个或多个分类器,此类分类器只对图片中的虑犬的姿态进行识别;所述训练行为神经网络分类器则通过对犬类姿态在时间上的变化情况,识别犬类基本行为;
所述训练姿态神经网络分类器采用深度神经网络构建,包括以下步骤:
首先导入训练集和测试集,定义一个适用于3通道图像的卷积神经网络,设置学习率、初始权重、迭代次数、图片分辨率等参数,使用分类交叉熵损失和带有动量的随机梯度下降算法定义损失函数和优化器,通过反向传播对权重和偏差进行更新;
把所有带标签的图像数据分成训练集和测试集:训练集用于对网络进行训练,测试集用于对网络进行测试,评估神经网络模型指标;
使用训练好的网络模型来预测该图像属于犬的各类姿态的概率分布,最终得到犬的姿态;
所述训练行为神经网络分类器的构建包括以下步骤:
首先,构建两个网络,分别为卷积神经网络以及循环神经网络;
所述卷积神经网络用于对空间二维图像上的局部感知;所述循环神经网络用于时间上连续动作的时序建模,反映出犬的行为在时间上传递的关系;
然后,将两个网络输出的得分矩阵进行融合,结合级联时序分类优化方法,端对端地输出犬的行为预测结果;
S3.监控视频犬类姿态行为智能识别;
对监测到的含有犬行为的视频进行处理,对含有犬各种行为姿态的连续帧的视频进行抓帧,时间信号为每一帧,空间信号为每帧视频上的图像信息,对数据进行筛选,保存;
S4.对监控视频进行数据处理;
将数据进行标注,标注后的数据集分为测试集、验证集和训练集;所述训练集用于对网络的训练优化,验证集选择模型,测试集估算算法选出模型的泛化误差,对模型进行评估;
对数据集的制作步骤包括:
获取多张相对应的图像,构成图像集;
对所需内容进行人工标注,得到标注框,同时生成对应的标注文件,并将所述标注框确定为临时感兴趣区域;
将数据集按8:1:1的比例分为训练集、验证集和测试集;所述数据集包含图片和标签;
S5.犬姿态的检测、分割和识别;
在步骤S1构建的知识图谱的指导下建立各层躯体结构检测识别神经网络;对监控视频的每帧图像中的犬只进行检测、识别和分割,并对犬类图像进行细分,得到犬只的身体结构信息;再提取犬的姿态的时域特征;
S6.犬的类型区域的建立;
通过步骤S5中的深度神经网络检测出的框里含有多个对象,只对犬的轮廓进行分割,分割出的犬的轮廓里的区域为犬的类型区域;
S7.犬的行为识别网络;
构建一个犬的行为识别的网络,以犬完成一个行为所需要的视频帧数为标准,缓存M帧图像并输入S5中构建的犬姿态分类器,将其输出再输入本网络,根据各帧的时序建立起连续动作的时序模板,结合犬行为的空间信息输出犬的行为在时间上的传递关系;
S8.引入知识图谱识别行为;
将构建好的知识图谱中的逻辑结构引入神经网络中,用循环和卷积神经网络捕获知识图谱中犬的姿态、行为、犬的局部器官行为、犬身体部位以及环境信息,将识别网络捕获结果与知识图谱中的先验知识进行比对,给出犬行为的吻合度;所述知识图谱是对犬的行为知识源进行知识的逐条提取,把知识整理汇聚成知识网络后,构建动物行为的“实体-关系-实体”的三元组模型。
具体的,在步骤S1中采用Neo4j+python作为创建知识图谱的工具。
具体的,步骤S1中的知识图谱包括犬的姿态、犬的基本行为、犬的局部器官行为、犬身体结构以及常见环境;具体结构如下:
所述犬的姿态包括:犬坐、犬躺、犬趴、犬立、犬站;
所述犬坐是指臀部接触地面等支撑物,前肢两肢或一肢伸直支撑地面等支撑物,腹部不触地;
犬躺是指:背部朝下,背部全部或一侧接触地面等支撑物;
犬趴是指:头、胸腹朝下,胸腹接触地面、树杆等支撑物,前肢向前伸展、蜷缩于头、胸下或悬空,后肢向后伸展、蜷缩或悬空;
犬立是指:后肢直立承重,两前肢离开地面等支撑物;
犬站是指:四肢直立承重,身体其他部位不触地;
所述犬的基本行为包括运动行为、休息行为;
所述运动行为(Stereotypic Behavior)是指:跑(Running)、跳(Jump)、叫(Bark)、舔物(Lick Claw)、吮掌(Suck Paw);
所述休息行为(Resting Behavior)是指:犬坐(Dog Sitting_B)、趴卧(Groveling)、侧卧(Lying Aside)、躺卧(Lying Unfolding Legs);
所述犬的局部器官行为包括张嘴(Opening the mouth)、摇尾(Shaking tail)、闭眼(Closing eyes)、呲牙(Exposeding teeth)、吐舌(Tongue Flicking);
所述犬身体结构包括头部(Head)、躯干(Body)、四肢(Limbs)、尾部(Tail);
所述头部(Head)包括:耳朵(Ear)、眼睛(Eye)、鼻子(Nose)嘴(Mouth)、舌头(Tongue)、牙齿(Tooth);
所述躯干(Body)包括:背部(Back)、腹部(Belly);
所述四肢(Limbs)包括:左前肢(Left Fore)、右前肢(Right Fore)、左后肢(LeftForelimb)、右后肢(Right Forelimb);
所述尾部(Tail)包括:臀部(Buttock)、尾巴(Tail);
所述常见环境包括犬窝(Kennel)、Pool(水池)、草地(Grassland)、空地/水泥地(Space)。
进一步的,在步骤S5中采用Mask R-CNN作为检测分割网络构建一个犬只的检测、识别和分割的深度神经网络;
包括以下步骤:
S5.1.Mask R-CNN检测分割;
分类:对该帧图像内容进行初步判断,判断出图像内是否含有犬,若含有犬进行下一步处理;定位:定位出图像中犬的位置;检测:对定位的区域内进行检测,检测出定位区域内的对象,可能会在定位区域里检测到多个对象,对象是犬则用bounding box框出、分割:对矩形框内目标进行分割,分割出犬的轮廓;
S5.2.训练网络模型;
Mask-R-CNN框架和运行环境的搭建采用ResNet-152卷积基础网络(也可选用其他主干网络),将处理好的训练集作为训练网络的输入。设定学习效率、迭代次数、图片分辨率等训练参数,采取normal初始化方式进行权重初始化并根据实际情况采用leaky激活函数。再对制作的数据集进行训练。训练过程中通过反向传播不断修正权重,使模型对数据拟合的更好。最后用测试集对模型进行评估,根据多个验证集AP值求平均得到map值,当map≥0.8时,保存网络模型权重,完成网络模型的建立。
进一步的,在步骤S8中设置知识库自动学习更新逻辑架构,使得知识图谱中的逻辑结构可以对神经网络进行引导,同时训练结果也对知识图谱进行反馈,更新知识图谱。
本发明的有益效果是:本发明所述的基于知识图谱的监控视频犬类姿态和行为智能识别方法,由于通过引入犬类行为知识图谱来设计训练的深度神经网络以识别监控视频中犬的姿态和行为,并且知识图谱可以实现自动更新,从而能够提高智能分析犬姿态和行为的准确性。便于实现对犬的各种特定训练,便于实现对犬训练时的姿态和行为进行调整;
同时通过对犬行为的智能区分,可以实时监测一些对人有伤害力的犬,对犬的姿态和行为进行判断,在犬出现异常行为时及时提醒人类,避免恶性事件的发生。并且在特定领域,基于知识图谱的犬的姿态识别智能方法可以帮助训练者掌握犬的实时训练效果,以及设定一些姿态和行为,通过网络判断出经过训练犬能否完成这些行为,若能完成这些行为,网络能检测出该行为。图像识别技术的自动化程度更高,通用性更强,可以减少训练者的劳动量,并且通过智能方法检测犬的行为,可以使训练效果更好,犬的姿态,行为更标准。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
如图1至图2所示,基于知识图谱的监控视频犬类姿态和行为智能识别方法,包括以下步骤:
S1.知识图谱的构建;
利用犬的姿态信息、犬的基本行为信息、犬的局部器官行为信息、犬身体部位信息以及环境信息构建犬类姿态行为知识图谱;采用Neo4j+python作为创建知识图谱的工具。
所述知识图谱包括犬的姿态、犬的基本行为、犬的局部器官行为、犬身体结构以及常见环境;具体结构如下:
所述犬的姿态包括:犬坐、犬躺、犬趴、犬立;
所述犬坐是指臀部接触地面等支撑物,前肢两肢或一肢伸直支撑地面等支撑物,腹部不触地;
犬躺是指:背部朝下,背部全部或一侧接触地面等支撑物;
犬趴是指:头、胸腹朝下,胸腹接触地面、树杆等支撑物,前肢向前伸展、蜷缩于头、胸下或悬空,后肢向后伸展、蜷缩或悬空
犬立是指:后肢直立承重,两前肢离开地面等支撑物;
所述犬的基本行为包括运动行为、休息行为;
所述运动行为(Stereotypic Behavior)是指:跑(Running)、跳(Jump)、叫(Bark)、舔物(Lick Claw)、吮掌(Suck Paw);
所述休息行为(Resting Behavior)是指:犬坐(Dog Sitting_B)、趴卧(Groveling)、侧卧(Lying Aside)、躺卧(Lying Unfolding Legs);
所述犬的局部器官行为包括张嘴(Opening the mouth)、摇尾(Shaking tail)、闭眼(Closing eyes)、呲牙(Exposeding teeth)、吐舌(Tongue Flicking);
所述犬身体结构包括头部(Head)、躯干(Body)、四肢(Limbs)、尾部(Tail);
所述头部(Head)包括:耳朵(Ear)、眼睛(Eye)、鼻子(Nose)嘴(Mouth)、舌头(Tongue)、牙齿(Tooth);
所述躯干(Body)包括:背部(Back)、腹部(Belly);
所述四肢(Limbs)包括:左前肢(Left Fore)、右前肢(Right Fore)、左后肢(LeftForelimb)、右后肢(Right Forelimb);
所述尾部(Tail)包括:臀部(Buttock)、尾巴(Tail);
所述常见环境包括犬窝(Kennel)、Pool(水池)、草地(Grassland)、空地/水泥地(Space)。
S2.训练姿态和行为分类器;
所述训练姿态分类器采用神经网络训练出一个或多个分类器,此类分类器只对图片中的虑犬的姿态进行识别;所述训练行为神经网络分类器则通过对犬类姿态在时间上的变化情况,识别犬类基本行为;
所述训练姿态神经网络分类器采用深度神经网络构建,包括以下步骤:
首先导入训练集和测试集,定义一个适用于3通道图像的卷积神经网络,设置学习率、初始权重、迭代次数、图片分辨率等参数,使用分类交叉熵损失和带有动量的随机梯度下降算法定义损失函数和优化器,通过反向传播对权重和偏差进行更新;
把所有带标签的图像数据分成训练集和测试集:训练集用于对网络进行训练,测试集用于对网络进行测试,评估神经网络模型指标;
使用训练好的网络模型来预测该图像属于犬的各类姿态的概率分布,最终得到犬的姿态;
所述训练行为神经网络分类器的构建包括以下步骤:
首先,构建两个网络,分别为卷积神经网络以及循环神经网络;
所述卷积神经网络用于对空间二维图像上的局部感知;所述循环神经网络用于时间上连续动作的时序建模,反映出犬的行为在时间上传递的关系;
然后,将两个网络输出的得分矩阵进行融合,结合级联时序分类优化方法,端对端地输出犬的行为预测结果;
S3.监控视频犬类姿态行为智能识别;
对监测到的含有犬行为的视频进行处理,对含有犬各种行为姿态的连续帧的视频进行抓帧,时间信号为每一帧,空间信号为每帧视频上的图像信息,对数据进行筛选,保存;在具体实施例中以第i帧视频为例进行介绍。
S4.对监控视频进行数据处理;
对数据集的制作包括以下步骤:
S4.1.获取多张相对应的图像,构成图像集;
S4.2.对所需内容进行人工标注,得到标注框,同时生成对应的标注文件,并将所述标注框确定为临时感兴趣区域;
S4.3.将数据集按8:1:1的比例分为训练集、验证集和测试集;所述数据集包含图片和标签;所述训练集用于对网络的训练优化,验证集选择模型,测试集估算算法选出模型的泛化误差,对模型进行评估;
S5.犬姿态的检测、分割和识别;
在步骤S1构建的知识图谱的指导下建立各层躯体结构检测识别神经网络;对监控视频的每帧图像中的犬只进行检测、识别和分割,并对犬类图像进行细分,得到犬只的身体结构信息;再提取犬的姿态的时域特征;
具体的,在步骤S1构建的知识图谱的指导下建立各层躯体结构检测识别神经网络;获取并对数据集进行处理;基于数据集训练和优化网络模型。
输入检测图像或视频对犬进行智能识别和结构分割;通过摄像头等设备获取关于被检测动物的实时数据;将检测图片,输入网络模型,如果当前输入图像拥有神经网络模型所要检测的身体部位,则神经网络模型将分割出对应的具体身体结构区域并进行该结构部位以下的结构部位的检测与分割;如果没有,就终止该结构及以下的结构的检测与分割;最后输出对应检测结果。
选择Mask R-CNN作为检测分割网络,但不限于该网络,也可以采用别的深度神经网络。
采用Mask R-CNN作为检测分割网络构建一个犬只的检测、识别和分割的深度神经网络;包括以下步骤:
S5.1.Mask R-CNN检测分割;
分类:对该帧图像内容进行初步判断,判断出图像内是否含有犬,若含有犬进行下一步处理;定位:定位出图像中犬的位置;检测:对定位的区域内进行检测,检测出定位区域内的对象,可能会在定位区域里检测到多个对象,对象是犬则用bounding box框出;分割:对矩形框内目标进行分割,分割出犬的轮廓;
S5.2.训练网络模型;
Mask-R-CNN框架和运行环境的搭建采用ResNet-152卷积基础网络(也可选用其他主干网络),将处理好的训练集作为训练网络的输入。设定学习效率、迭代次数、图片分辨率等训练参数,采取normal初始化方式进行权重初始化并根据实际情况采用leaky激活函数。再对制作的数据集进行训练。训练过程中通过反向传播不断修正权重,使模型对数据拟合的更好。最后用测试集对模型进行评估,根据多个验证集AP值求平均得到map值,当map≥0.8时,保存网络模型权重,完成网络模型的建立。
S6.犬的类型区域的建立;
通过步骤S5中的深度神经网络检测出的框里含有多个对象,只对犬的轮廓进行分割,分割出的犬的轮廓里的区域为犬的类型区域;
S7.构建犬的行为识别网络;
对一个行为,缓存够M帧视频,进行行为分类;犬的行为通常是连续个姿态组成起来的,只有足够的时间内的姿态才能判断出这一犬的行为。例如犬“躺卧”这一行为,连续时间内犬都是躺这个姿态,我们才能判断出它是躺着的。如果只用一帧图像去判断犬的姿态,很有可能会出错,它可能正好在打滚,而抓到的这一帧图像里它在躺着,就会对它的行为判断错误。所以对一个行为,缓存够M帧视频,进行行为分类,增加准确性。
所以需要判断是否缓存够一个行为的姿态,否接着下一帧图像检测分割等步骤,是进行接下来的行为识别。
S8.引入知识图谱识别行为;
将构建好的知识图谱中的逻辑结构引入神经网络中,用循环和卷积神经网络捕获知识图谱中犬的姿态、行为、犬的局部器官行为、犬身体部位以及环境信息,将识别网络捕获结果与知识图谱中的先验知识进行比对,给出犬行为的吻合度;所述知识图谱是对犬的行为知识源进行知识的逐条提取,把知识整理汇聚成知识网络后,构建动物行为的“实体-关系-实体”的三元组模型。设置知识库自动学习更新逻辑架构,使得知识图谱中的逻辑结构可以对神经网络进行引导,同时训练结果也对知识图谱进行反馈,更新知识图谱。
具体实施方式,如图2所示,在场景中安装摄像头,对犬采集视频数据。对视频帧进行处理,可以选取构建好的ResNet-152卷积基础网络对视频帧图像产生候选区域,进行样本分类,分割样本区域提取特征。此处不局限于卷积基础网络,也可以是别的网络。将犬的类型区域输入训练好的神经网络姿态分类器(分类器的选择不做限制),实现对目标的姿态分类。对姿态进行缓存,以犬完成一个行为所需要的视频帧数为标准,缓存够一个行为的帧数。将数据输入训练好的行为分类器,提取犬行为的时序信息和空间信息,引入知识图谱的逻辑结构。知识图谱对关系进行推演,知识图谱也可根据训练结果对知识进行更新,通过两者结合最终实现对犬行为的分类。
实施例
通过上述基于知识图谱的监控视频犬类姿态和行为智能识别方法对犬趴进行识别,具体的,包括以下步骤:
1.构建知识图谱
根据犬的姿态、犬的基本行为、犬的局部器官行为、犬身体结构以及常见环境构建知识图谱;
2.训练姿态和行为分类器
构建两个神经网络模型,其中姿态识别的分类器采用卷积神经网络,其用于对空间二维图像上的局部感知,对犬姿态进行识别;行为识别的分类器采用循环神经网络,其用于构建时间上连续动作的时序模板,反映出犬的行为在时间上传递的关系。
犬姿态分类器输出一幅图像姿态识别得分矩阵,犬行为分类器可输出各类犬行为连续图像的姿态得分矩阵,将两个网络输出的得分矩阵进行融合,结合级联时序分类优化方法,可端对端地输出犬的行为识别结果。
3.监控图像预处理
对监测到的含有犬的行为的视频进行处理,对含有犬的各种行为姿态的连续帧的视频抓帧,得到连续的犬的行为姿态的图像集,且该图像集中时间信号为每一帧,空间信号为每帧视频上的图像信息。
4.制作数据集
获取多张犬的行为姿态的图像集,对所需内容进行人工标注,同时生成对应的标注文件,并将所述标注框确定为临时感兴趣区域,得到数据集(包含图片和标签),且将数据集按照8:1:1的比例分为训练集、验证集、测试集,用于姿态识别分类器。
如训练模型识别犬趴,具体步骤如下:
当训练环境识别网络,需要获取多张犬窝、水池、草地、空地/水泥地轮廓图像,构成环境轮廓图像集,对图像中环境轮廓进行人工标注,得到环境轮廓的数据集。
当训练犬姿态识别网络,需训练有关犬身体结构的多层神经网络:
当训练第一层神经网络,需要获取多张犬的轮廓图像,构成犬轮廓的图像集,对图像中犬轮廓进行人工标注,得到犬轮廓的数据集;
当训练第二层神经网络,需要获取犬的头部轮廓图像、躯干轮廓图像、四肢轮廓图像、尾部轮廓图像,构成犬身体结构的图像集;对图像中头部轮廓、躯干轮廓、四肢轮廓、尾部轮廓进行人工标注,得到犬身体结构的数据集;
当训练第三层神经网络,需要获取背部轮廓图像、腹部轮廓图像,构成犬躯干结构的图像集,对图像中背部轮廓、腹部轮廓进行人工标注,得到犬躯干结构的数据集;
需要获取多张左前肢轮廓图像、右前肢轮廓图像、左后肢轮廓图像、右后肢轮廓图像、构成犬四肢结构的图像集,对图像中左前肢轮廓、右前肢轮廓、左后肢轮廓、右后肢轮廓进行人工标注,得到犬四肢结构的数据集;
需要获取多张臀部轮廓图像、尾巴轮廓图像,构成尾部结构的图像集,对图像中臀部轮廓、尾巴轮廓进行人工标注,得到犬尾部结构的数据集。
5.训练犬姿态的识别、分割、检测网络模型
首先对学习效率、迭代次数等训练参数进行设置,采取normal初始化方式进行权重初始化并根据实际情况采用leaky激活函数。再对制作好的数据集进行训练。训练过程中通过反向传播不断修正权重,使数据拟合更好。最后用测试集对模型进行评估,根据多个验证集AP值求平均得到map值,当map≧0.8时,保存网络模型权重,完成网络模型的建立。
重复此步完成环境识别和犬身体结构识别网络模型的训练,再根据各网络模型的识别结果,将环境和全身体结构在图像中的位置比对,完成犬姿态识别。
6.犬行为的识别网络
确定检测对象,以训练休息行为犬趴为例,3秒内犬姿态未发生变化则可得出休息行为的识别结果,在此取1秒为12帧的视频作为检测视频,以犬完成一个行为所需要的视频帧数为标准,经过监控图像处理后3秒共缓存36帧图像。
将缓存图像输入犬姿态分类器,可得到各帧图像犬姿态的识别结果,然后将其作为空间信息输入本网络,本网络根据各帧的时序建立起连续动作的时序模板,结合犬行为的空间信息输出犬的行为在时间上的传递关系。
7.引入知识图谱识别行为
将构建好的知识图谱中犬行为与姿态的分解关系以及判定准则引入神经网络中,用循环和卷积神经网络捕获知识图谱中犬的姿态、行为、犬的局部器官行为、犬身体部位以及环境信息,然后将识别网络捕获结果与知识图谱中的先验知识进行比对,给出犬行为的吻合度,完成监控视频中犬类姿态和行为的识别。