发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种视频裁剪方法、图像处理方法及装置。
第一方面,本申请实施例提供了一种视频裁剪方法,该方法包括:
确定待裁剪的第一视频,所述第一视频中包括连续运动的至少一个目标物;
确定所述目标物的预设部位在所述第一视频中的位置,并基于所述位置添加预设标记;
按照所述预设标记对所述第一视频进行裁剪,得到至少一个视频片段。
可选的,所述确定所述目标物的预设部位在所述第一视频中的位置,并基于所述位置添加预设标记,包括:
获取预先训练的检测模型;
将所述第一视频输入所述检测模型,由所述检测模型确定所述第一视频中是否存在所述目标物的预设部位;
当所述第一视频中存在所述目标物的预设部位时,确定出现所述预设部位的第一图像;
为所述第一图像中所述预设部位所处的位置添加第一预设标记。
可选的,在所述按照所述预设预设标记对所述第一视频进行裁剪,得到至少一个视频片段之前,所述方法还包括:
确定所述第一视频的当前状态;
当根据所述当前状态确定所述第一视频正在写入所述检测模型时,按照所述第一预设标记对所述第一视频进行裁剪,得到至少一个视频片段。
可选的,所述按照所述第一预设标记对所述第一视频进行裁剪,得到至少一个视频片段,包括:
确定所述第一预设标记在所述第一视频中的第一时间节点;
获取第二预设标记在所述第一视频中的第二时间节点,所述第二预设标记为第二图像;
当所述第一时间节点与所述第二时间节点之间的间隔大于或等于预设阈值时,按照所述第一时间节点与第二时间节点对所述第一视频进行裁剪,得到所述视频片段。
可选的,所述方法还包括:
当根据所述当前状态确定所述第一视频未写入所述检测模型时,将所述第一视频更新为第二视频,并对所述第二视频进行检测。
可选的,所述方法还包括:
当根据所述检测结果确定当前帧图像中不存在第一预设标记时,确定所述第一视频的当前状态;
当所述第一视频的当前状态为录制状态时,将所述当前帧图像存储于指定文件。
第二方面,本申请实施例提供了一种图像处理方法,包括:
获取样本图像,所述样本图像中包括至少一个目标物;
获取所述样本图像中的标注信息,所述标注信息包括:所述目标物预设部位对应预设标记,以及所述预设标记的坐标信息;
将所述样本图像输入预设卷积神经网络模型,由所述预设卷积神经网络模型学习所述预设部位在所述样本图像中的位置,得到边界线检测模型。
可选的,所述预设卷积神经网络模型包括卷积层和五个输出层;
所述采用预设卷积神经网络模型对所述样本图像以及所述分界线的坐标信息进行训练,得到边界线检测模型,包括:
将所述样本图像依次输入五个输出层,并将第三输出层、第四输出层以及第五输出层分别输出的特征信息输入对应的卷积层,得到特征向量;
根据所述特征向量与所述坐标信息计算损失函数;
根据所述损失函数对所述预设卷积神经网络模型进行优化,得到所述边界线检测模型。
第三方面,本申请实施例提供了一种视频裁剪装置,包括:
第一确定模块,用于确定待裁剪的第一视频,所述第一视频中包括连续运动的至少一个目标物;
第二确定模块,用于确定所述目标物的预设部位在所述第一视频中的位置,并基于所述位置添加预设标记;
处理模块,用于按照所述预设标记对所述第一视频进行裁剪,得到至少一个视频片段。
第四方面,本申请实施例提供了一种图像处理装置,包括:
第一获取模块,用于获取样本图像,所述样本图像中包括至少一个目标物;
第二获取模块,用于获取所述样本图像中的标注信息,所述标注信息包括:所述目标物预设部位对应预设标记,以及所述预设标记的坐标信息;
训练模块,用于将所述样本图像输入预设卷积神经网络模型,由所述预设卷积神经网络模型学习所述预设部位在所述样本图像中的位置,得到边界线检测模型。
第五方面,本申请提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
第六方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本实施例公开的视频裁剪方法速度快,可以实现对特定的目标物的识别,受光线等外界的影响较小。且对于连续出现的多个目标物,或者多个目标物间存在一定重叠部分的情况,本实施例公开的方法仍能够准确分割各个目标物的边界,有效进行视频片段的裁剪。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种视频裁剪方法、图像处理方法及装置。本发明实施例所提供的方法可以应用于任意需要的电子设备,例如,可以为服务器、终端等电子设备,在此不做具体限定,为描述方便,后续简称为电子设备。
下面首先对本发明实施例所提供的一种视频裁剪方法进行介绍。
图1为本申请实施例提供的一种视频裁剪方法的流程图。如图1所示,该方法包括以下步骤:
步骤S11,确定待裁剪的第一视频,第一视频中包括连续运动的至少一个目标物;
步骤S12,确定目标物的预设部位在第一视频中的位置,并基于位置添加预设标记;
步骤S13,按照预设标记对第一视频进行裁剪,得到至少一个视频片段。
本实施例公开的视频裁剪方法速度快,可以实现对特定的目标物的识别,受光线等外界的影响较小。且对于连续出现的多个目标物,或者多个目标物间存在一定重叠部分的情况,本实施例公开的方法仍能够准确分割各个目标物的边界,有效进行视频片段的裁剪。
本实施例的第一视频为在特定场景下采集目标物连续通过指定通道的视频。其中目标物可以包括:猪,牛,羊以及马等。本实施例以牛为例。
本实施例中,确定目标物的预设部位在第一视频中的位置信息,并基于位置添加预设标记,具体通过以下方式实现:获取预先训练的检测模型,将第一视频输入检测模型,由检测模型确定第一视频中是否存在目标物的预设部位,当第一视频中存在目标物的预设部位时,确定出现预设部位的第一图像,对预设部位在第一图像中的位置添加第一预设标记。
作为一个示例,目标物以牛为例时,目标物的预设部位即为牛尾,将第一视频输入检测模型,由检测模型确定第一视频中是否存在牛尾,当检测到第一视频中存在牛尾时,确定第一视频中出现牛尾的第一图像,在第一图像中牛尾的位置添加第一预设标记,预设标记可以是标记线,标号等等。
本实施例中,当确定第一视频中存在目标物的预设部位时,确定第一视频的当前状态,如果当前状态为录制状态时,按照第一预设标记对第一视频进行裁剪,得到至少一个视频片段。
可以理解的,当确定第一视频中存在目标物的预设部位时,通过确定第一视频的当前状态,可以确定第一视频是否为正在写入检测模型,当第一视频正在写入检测模型时,则按照第一预设标记对第一视频进行裁剪。当第一视频没有正在写入检测模型时,则确定第一视频检测完毕,则不对第一视频进行裁剪。
本实施例中,按照预设标记对第一视频进行裁剪,得到至少一个视频片段,包括:确定第一预设标记在第一视频中的第一时间节点,获取第二预设标记在第一视频中的第二时间节点,第二预设标记为第一预设标记的相邻预设标记,当第一时间节点与第二时间节点之间的间隔大于或等于预设阈值时,按照第一时间节点与第二时间节点对第一视频进行裁剪,得到视频片段。
可以理解的,第二预设标记为第一预设标记的上一标记。例如:第一视频总时长为30s,第一预设标记对应的第一时间节点为10s,第二预设标记对应的第二时间节点为5s,则将第一视频中5s-10s这一片段裁剪出来,存储于指定文件中。
可以理解的,第一时间节点与第二时间节点之间的间隔大于或等于预设阈值时,则确认第一个目标物已经离开当前图像,当前图像中出现的为第二个目标物。
以此通过上述方法对第一视频中的目标物进行检测,可以确定第一视频中所有的目标物,通过裁剪视频片段能够为后续确定所有目标物的状态,作为一个示例,通过单个的视频片段确定该目标物的健康状态,具体的通过单个视频片段进行分析,确定目标物是否处于病态。
作为一个示例,将单个视频片段输入关键点检测模型,通过关键点检测模型检测视频片段中牛体多个指定部位的关键点,例如:头部关键点、背部关键点、腿部关键点、腹部关键点以及尾部关键点。根据各个指定部位的关键点,可以确定关键点连线的最小外接矩形,根据最小外接矩形能够确定每个视频片段中牛体的标识信息,标识信息可以为标识牛体身份的编号。
然后获取视频片段中每个指定部位关键点的运动轨迹,将得到的运动轨迹与预设运动轨迹进行比较,当某一个指定部位运动轨迹与预设运动轨迹的偏差大于预设偏差时,确定该指定部位存在异常。例如:牛体的腿部关键点的运动轨迹为呈现为折线形,且两个相邻折线的角度大于预设角度,则确定牛体的腿部异常。或者,确定牛体的腹部关键点的运动轨迹,当腹部关键点的运动轨迹呈现波浪形时,确定牛体当前处于怀孕状态。
另外,还可以根据指定部位关键点确定牛体对应的体况参数,根据体况参数确定动物状态。其中,体况参数可以为动物的体况评分、合成育肥指数、生长发育指数等等。基于指定部位关键点,可以估算出牛体的高度、体积、重量等指标,基于这些指标可以单独计算或结合其他指标数据计算体况参数,进而通过体况参数可以确定牛体的身体健康、生长发育等状态。
可选的,体况参数可以为对动物体况的评分,如采用十分制,三分表示过度消瘦,八分表示过度肥胖。另外,体况参数还可以用于表示为动物的生长发育阶段。
可选的,本实施例提供的方法还包括:当根据第一视频的当前状态确定第一视频没有正在写入检测模型时,则将第一视频更新为第二视频,并对第二视频进行检测。
可选的,本实施例提供的方法还包括:当根据第一视频的当前状态确定第一视频未正在写入检测模型时,确定第一视频的当前状态,当第一视频的当前状态为录制状态时,将当前帧图像存储于指定文件。
图2为本申请实施例提供的一种图像处理方法的流程图。如图2所示,该方法还包括以下步骤:
步骤S21,获取样本图像,样本图像中包括至少一个目标物;
步骤S22,获取样本图像中的标注信息,标注信息包括:目标物预设部位对应预设标记,以及预设标记的坐标信息;
步骤S23,将样本图像输入预设卷积神经网络模型,由预设卷积神经网络模型学习预设部位在样本图像中的位置,得到边界线检测模型。
本实施例中的样本图像中包括:至少一个目标物,例如牛,羊,马等等,获取样本图像中的标注信息,包括:目标物对应分界线的坐标信息,图3、图4为本申请实施例提供的样本图像的示意图,如图3、图4所示。图3所示的样本图像中不包括牛尾部,所以图3不携带标注信息,图4所示的样本图像中包括:牛尾部对应的预设标记,以及预设标记的坐标信息。
可以理解的,在训练前期需要明确用于执行视频裁剪依据的目标边界,如此处我们认为以动物尾部作为目标边界指导视频裁剪,有助于我们观察各个目标物个体从完全进入视频画面到完全离开的全过程,所以我们选定预设标记作为视频裁剪所用的目标边界。在明确目标边界以后,我们可对数据集中各图像中目标物的预设部位进行标注,若画面中不存在预设部位,则无需标注。因预设标记垂直于图像边界,故实际标注时只需指定预设标记上任意一点即可。预设标记可以为一条标记线或者符号。
在训练之前,统一将图像大小缩放至224*224。关于标注信息的处理,首先根据图像原始尺寸对预设标记的坐标进行相应的转换,即得到对应于224*224的画面中预设标记所处位置。标注信息编码格式采用独热编码,即分界线被编码为一个224*1的向量,其中仅分界线所处位置对应下标的向量值为1,其余均置为0,(参考图6)。进一步地,为了使网络能够更方便地进行训练,我们对上步得到的标签进行了平滑处理,具体计算方式如下:
其中,L标识经过编码后的标签向量,i对应标签向量的各个下标,b表示标注预设标记的横坐标,W标识平滑窗口的大小,本实施例中W=5。
当确定输入的样本图像以及样本图像中的标注信息后,则采用样本图像和标注信息对预设卷积神经网络模型进行训练,由预设卷积神经网络模型学习预设部位在样本图像中的位置。
图5为本申请实施例提供的检测模型的结构示意图,如图5所示,本申请实施例中的预设卷积神经网络模型包括卷积层和五个输出层;采用预设卷积神经网络模型对样本图像以及分界线的坐标信息进行训练,得到边界线检测模型,包括:将样本图像依次输入五个输出层,并将第三输出层、第四输出层以及第五输出层分别输出的特征信息输入对应的卷积层,得到特征向量,根据特征向量与坐标信息计算损失函数,根据损失函数对预设卷积神经网络模型进行优化,得到边界线检测模型。
模型训练过程中,主干网络部分在ImageNet数据集上进行了预训练,我们选择二进制交叉熵作为损失函数,使用了Adam优化器,设置动量大小为0.9,初始学习率为0.001,批大小为32.当损失函数数值较稳定后,停止训练,并选择在验证集上效果最好的模型参数作为最终的模型参数。
图7为本申请实施例提供的一种视频裁剪装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
如图7所示,该装置包括:
第一确定模块31,用于确定待裁剪的第一视频,所述第一视频中包括连续运动的至少一个目标物;
第二确定模块32,用于确定所述目标物的预设部位在所述第一视频中的位置,并基于所述位置添加预设标记;
处理模块33,用于按照所述预设标记对所述第一视频进行裁剪,得到至少一个视频片段。
图8为本申请实施例提供的一种图像处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
如图8所示,该装置包括:
第一获取模块41,用于获取样本图像,样本图像中包括至少一个目标物;
第二获取模块42,用于获取样本图像中的标注信息,标注信息包括:目标物预设部位对应预设标记,以及预设标记的坐标信息;
训练模块43,用于将样本图像输入预设卷积神经网络模型,由预设卷积神经网络模型学习预设部位在样本图像中的位置,得到边界线检测模型。
本申请实施例还提供一种电子设备,如图9所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现上述实施例的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,P C I)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例的步骤。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令进行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于进行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上进行、部分地在用户设备上进行、作为一个独立的软件包进行、部分在用户计算设备上部分在远程计算设备上进行、或者完全在远程计算设备或服务器上进行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。