图像检测方法、装置、计算机设备及计算机可读存储介质
本申请要求于2020年09月25日提交中国专利局,申请号为202011024483.0、发明名称为“图像检测方法、装置及计算机可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,具体涉及一种图像检测方法、装置、计算机设备及计算机可读存储介质。
背景技术
随着互联网技术的飞速发展,计算机设备的处理能力也越来越强,从而衍生出很多基于人机交互的应用程序,例如云游戏,该云游戏的游戏主机在服务器,玩家通过本地网络连接服务器,在服务器玩游戏时,服务器将游戏画面通过网络进行实时传输,进行生动的互动娱乐。
现有技术中,在云游戏的启动以及使用中,很可能出现游戏卡死的情况,计算机设备可以通过实时获取中央处理器(central processing unit,CPU)的使用频率,在该中央处理器的使用频率出现异常时,判定为游戏卡死的情况并进行相应的游戏优化处理。
在对现有技术的研究和实践过程中,本申请的发明人发现,现有技术中,由于游戏中不同场景对于中央处理器的消耗不同,使得异常判定的阈值很难进行准确设置,导致检测准确率较差。
发明内容
本申请的各种实施例提供一种图像检测方法、装置、计算机设备及计算机可读存储介质。其中包括:
一种图像检测方法,由服务器执行,所述方法包括:
从视频流中截取间隔预设时间段的第一图像和第二图像;
将所述第一图像和所述第二图像进行像素匹配获得所述第一图像和所述第二图像之间像素的总匹配值;
当基于所述像素的总匹配值,确定所述第一图像和所述第二图像满足预设匹配条件时,对所述第二图像进行画面内容检测;及
在检测到所述第二图像中不存在画面内容时,确定所述视频流出现异常。
一种图像检测装置,包括:
截取单元,用于从视频流中截取间隔预设时间段的第一图像和第二图像;
匹配单元,用于将所述第一图像和所述第二图像进行像素匹配获得第一图像和所述第二图像之间像素的总匹配值;
检测单元,用于当基于所述像素的总匹配值,确定所述第一图像和所述第二图像满足预设匹配条件时,对所述第二图像进行画面内容检测;及
确定单元,用于在检测到所述第二图像中不存在画面内容时,确定所述视频流出现异常。
一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现本申请实施例提供的任一种图像检测方法中的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现本申请实施例提供的任一种图像检测方法中的步骤。
一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的图像检测方法。
附图说明
图1是本申请实施例提供的图像检测系统的场景示意图;
图2是本申请实施例提供的图像检测系统的另一场景示意图
图3是本申请实施例提供的图像检测方法的流程示意图;
图4是本申请实施例提供的图像检测方法的另一流程示意图;
图5a为本申请实施例提供的图像检测方法的场景示意图;
图5b为本申请实施例提供的图像检测方法的另一场景示意图;
图6是本申请实施例提供的图像检测装置的结构示意图;
图7是本申请实施例提供的服务器的结构示意图。
具体实施方式
本申请实施例提供一种图像检测方法、装置、计算机设备及计算机可读存储介质。
请参阅图1,图1为本申请实施例所提供的图像检测系统的场景示意图,包括:基础服务器A、和虚拟化的云主机B(该基础服务器A和虚拟化的云主机B还可以包括更多,具体个数在此不作限定),该基础服务器A即为物理机,也称为实体服务器,是相对于虚拟机(Virtual Machine)而言的实体计算机的称呼,物理机提供给虚拟机的硬件环境,也称为“宿主”或者“寄主”。基础服务器A可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人 工智能平台等基础云计算服务的云服务器。通过对该基础服务器A进行虚拟化,每台基础服务器A都可以虚拟化出多个云主机B,该云主机B即为虚拟机,也可以称为虚拟专用服务器(Virtual Private Server,VPS),是将一个服务器分区成多个虚拟独立专享服务器的技术。每个使用VPS技术的虚拟独立服务器拥有各自独立的公网互联网协议(Internet Protocol Address,IP)地址、操作系统、硬盘空间、内存空间、处理器(Central Processing Unit,CPU)资源等,还可以进行安装程序、重启服务器等操作,与运行一台独立服务器完全相同。也就是说通过软件层面,对一台服务器进行虚拟划分,虚拟出来多台服务器,这样就能让只需要一点点计算能力用户享用到大型服务器的计算资源。从广义上讲,云主机B就是VPS,只不过云主机B是在所有基础服务器A或者虚拟机上进一步虚拟化所有基础资源,例如内存带宽等等。云主机B的优势在于它可以分布式存储数据,动态扩展基础资源。安全性和扩展性较强。
该每台云主机B拥有独立的操作系统和硬件结构,与运行一台独立主机完全相同,只不过每台云主机B中的物理地址都为虚拟机的物理地址,每台云主机B中可以安装有多个处理器,如一台云主机B中安装有多个图形处理器(Graphics Processing Unit,GPU),一台云主机B可以类似于VMware虚拟机,一个物理机可以虚拟化多个安卓操作系统实例,该一台云主机B中可以安装游戏的板卡或者容器,模拟用户的终端环境,但是无物理显示屏。
为了更好的描述本申请实施例,请一并参阅图2所示,游戏的运行环境可以安装在一台云主机B的板卡或者容器C中,该板卡或者容器C类似于用户的终端,但是没有物理显示屏进行画面显示,该板卡或者容器C会有一个推流进程,通过推流服务器D将游戏视频和声音推送到终端上,该终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。该终端可以安装并开启应用或者网页E,通过该应用或者网页E接收游戏视频和声音进行加载,在一实施方式中,用户可以在终端输入控制事件,控制视频中的虚拟游戏人物行动,终端将该控制事件回传至云主机B的板卡或者容器C中,实现游戏控制。
以此,当云主机B中的板卡或容器C中的游戏视频出现卡死时,会影响终端测的显示,进而导致用户无法操作,导致游戏无法进行,以此,需要实时有效的监测游戏的视频是否异常,以实现及时处理,防止游戏宕机。
基于上述应用场景的描述,以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
本实施例将从图像检测装置的角度进行描述,该图像检测装置具体可以集成在服务器中,该服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器具体可以是具备储存单元并安装有微处理器而具有运算能力的云主机或物理服务器。
请参阅图3,图3是本申请实施例提供的图像检测方法的流程示意图。该图像检测方法包括:
步骤101,从视频流中截取间隔预设时间段的第一图像和第二图像。
其中,该视频流可以由多帧游戏图像组成,即该视频流可以为游戏画面,可以理解的是,在相关技术中,由于游戏画面渲染的负荷较大,或者云主机的某些组件不兼容游戏的运行,会导致游戏启动时或者游戏过程中卡死,而游戏卡死时,光凭视觉观察图像很难让人确定游戏是否真的卡死不动。
以此,本申请实施可通过服务器从游戏视频流中定期的截取间隔预设时间段的第一图像和第二图像,该预设时间段可以根据需求自由设置,例如为10秒、20秒或者30秒,此处不作具体限定,例如游戏视频流在运行的过程中,截取当前帧的第一图像,在运行过去的10秒时,截取第10秒帧的第二图像,该第一图像和第二图像的像素数量是相同的,该像素是指由图像的小方格组成的,这些小方块都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子,可以将像素视为整个图像中不可分割的单位或者是元素,每一图像包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小。
步骤102,将第一图像和第二图像进行像素匹配获得第一图像和第二图像之间像素的总匹配值。
其中,为了判断游戏视频流对应的游戏画面是否静止不动,需要将间隔预设时间段的第一图像和第二图像进行像素匹配。由于该第一图像和第二图像的像素数量相同,所以可通过服务器计算第一图像中每一像素与第二图像中相应位置处的像素之间的相似度,例如,计算第一图像和第二图像中具有相同位置的两个像素之间的相似度,将全部的相似度进行整合,得到相似分数值,该相似分数值即为第一图像和第二图像之间像素的总匹配值,该相似分数值反应了第一图像和第二图像相似的程度,可以根据该相似分数值判定该第一图像和第二图像是否满足预设匹配条件,即判定该游戏画面是否静止不动。
在其中一个实施例中,服务器可以通过平方差匹配算法计算该第一图像和该第二图像之间像素的总匹配值。其中,可基于模板匹配(TemplateMatching)原理确定相应的平方差匹配算法。该模板匹配原理可以在一副待匹配图像中寻找和模板图像最相似的区域,该方法原理简单计算速度快,能够应用于目标识别,目标跟踪等多个领域。
服务器可以将第一图像中的每一像素当作模板图像,将第二图像中对应位置的像素作为待匹配图像,对于第二图像中多个像素中的每个像素,均基于平方差匹配算法计算第二图像中当前像素与第一图像对应位置像素之间的匹配值,统计出第一图像和第二图像之间各像素各自对应的匹配值,得到第一图像和第二图像之间像素的总匹配值,该总匹配值反应第一图像和第二图像的匹配度,该像素的总匹配值为0时,第一图像和第二图像一模一样;该像素的总匹配值越大,第一图像和第二图像越不相似。
在其中一个实施例中,该将第一图像和第二图像进行像素匹配获得第一图像和第二图像之间像素的总匹配值的步骤,可以包括:
(1)将第一图像的像素覆盖在第二图像的像素上,得到覆盖后的第二目标图像;
(2)统计该第一图像的每一像素和第二目标图像对应的像素的差的平方之和,得到该第一图像和该第二图像之间像素的总匹配值。
其中,可通过平方差匹配算法确定第一图像和第二图像之间像素的总匹配值,平方差匹配算法为:
该T(x′,y′)为模板图像矩阵,在本申请实施例中,该模板图像矩阵为第一图像作为模板图像,第一图像中的每一像素构成的矩阵,I(x,y)为源图像矩阵,该源图像矩阵为第二图像中的每一像素构成的矩阵,I(x+x′,y+y′)为将该第一图像的像素覆盖在该第二图像的像素上,得到的覆盖后的第二目标图像的每一像素构成的矩阵。在本步骤中该R(x,y)为像素的总匹配值。
以此,基于上述公式,服务器可统计每一图像的每一像素和第二目标图像对应关系的像素的差的平方之和,得到像素的总匹配值R(x,y),该像素的总匹配值越接近于0,第一图像和第二图像越接近;该像素的总匹配值越大,第一图像和第二图像越不接近。
步骤103,当基于像素的总匹配值,确定第一图像和第二图像满足预设匹配条件时,对第二图像进行画面内容检测。
其中,可以设定预设匹配条件,该预设匹配条件可以为预设分数阈值,该预设分数阈值为界定第一图像和第二图像是否匹配的临界值,即像素的总匹配值高于预设分数阈值时,服务器确定第一图像和第二图像满足预设匹配条件,判定为第一图像和第二图像匹配成功,即第一图像和第二图像相似度满足条件,确定为游戏画面静止不动,当像素的总匹配值不高于预设分数阈值时,服务器确定第一图像和第二图像之间像素不满足预设匹配条件,判定为第一图像和第二图像匹配失败,即第一图像和第二图像相似度不满足条件,确定游戏画面仍在变化,未卡死。
进一步的,在确定第一图像和第二图像之间像素的总匹配值满足预设匹配条件时,说明在间隔了预设时间段的视频流的游戏画面为静态不变的,即游戏视频流可能卡死,由于在一些游戏画面可能存在短期静态不变的画面,而卡死的游戏画面通常为纯色或者明暗度变化不大的图像,为了防止卡死误判,服务器需要进一步对第二图像进行画面内容检测。
如果图像中都是纯色,或者明暗度变化不大的图像,即第二图像中不存在画面内容,那么整体模糊度势必小于一定的范围,该范围可以为小于1.5,该画面内容检测可以为对第二图像进行图像模糊度检测。
在其中一个实施例中,可以通过拉普拉斯算法对第二图像的图像模糊度进行综合检测,实现相应的画面内容检测,该拉普拉斯算法用于图像的边缘检测,可以用于图像的明暗变化检测,以确定图像的模糊度。
在其中一个实施例中,当第一图像和第二图像之间像素的总匹配值不满足预设匹配 条件时,说明在间隔了预设时间段的视频流的游戏画面不为静态不变的,可以返回继续执行从视频流中截取间隔预设时间段的第一图像和第二图像的步骤继续进行检测。
在其中一个实施方例中,上述图像检测方法还包括基于像素的总匹配值,确定第一图像和所述第二图像满足预设匹配条件的步骤,其中,基于像素的总匹配值,确定第一图像和所述第二图像满足预设匹配条件的步骤的步骤可以包括:
(1)对该像素的总匹配值进行归一化处理,得到归一化处理后的匹配值;
(2)将归一化处理后的匹配值转换为分数值;
(3)当检测到该分数值大于预设分数阈值时,确定该第一图像和该第二图像满足预设匹配条件。
其中,为了防止该像素的总匹配值的区间较大,不利于用一个标准的分数去判定第一图像和第二图像之间是否匹配,因此,本申请实施例采用了归一化处理将该总匹配值缩放至0至1之间,归一化处理后的匹配值越接近于0,第一图像和第二图像越接近,归一化处理后的匹配值越接近于1,第一图像和第二图像越不接近。
在实际的使用过程中,为了更好的判定两者的相似度,可以将归一化处理后的匹配值转换为分数值,越接近于0,分数越高,越接近于1,分数越低,进而可以通过预设分数阈值进行匹配度界定,当服务器检测到该分数值大于预设分数阈值时,确定该第一图像和该第二图像满足预设匹配条件,该第一图像和该第二图像匹配成功。当服务器检测到该分数值小于或等于预设分数阈值时,确定该第一图像和该第二图像不满足预设匹配条件,该第一图像和该第二图像匹配失败。
在其中一个实施例中,该对该匹配值进行归一化处理,得到归一化处理后的匹配值的步骤,可以包括:
(2.1)统计该第一图像的每一像素和第二目标图像对应的像素的乘积之和;
(2.2)对统计的乘积之和进行二次根式计算,得到目标值;
(2.3)计算该像素的总匹配值和该目标值的比值,得到归一化处理后的匹配值。
其中,可通过以下公式对像素的总匹配值进行归一化处理,得到归一化处理后的匹配值,该公式具体可为归一化平方差匹配法:
该T(x′,y′)为模板图像矩阵,在本申请实施例中,该模板图像矩阵为第一图像作为模板图像,第一图像中的每一像素构成的矩阵,I(x,y)为源图像矩阵,该源图像矩阵为第二图像中的每一像素构成的矩阵,I(x+x′,y+y′)为将该第一图像的像素覆盖在该第 二图像的像素上,得到的覆盖后的第二目标图像的每一像素构成的矩阵,该在本步骤中该R(x,y)为归一化处理后的匹配值。
以此,基于上述公式的分母部分,统计该第一图像的每一像素和第二目标图像对应的像素的乘积之和,对统计的乘积之和进行二次根式计算(即开2次根计算),得到目标值,上述公式的分子为像素的总匹配值,计算分子的像素的总匹配值和该分母的目标值的比值,得到归一化处理后的匹配值,以此将匹配值缩小至0至1之间,该归一化处理后的匹配值越接近于0,第一图像和第二图像越接近,归一化处理后的匹配值越接近于1,第一图像和第二图像越不接近。
在其中一个实施例中,该将归一化处理后的匹配值转换为分数值的步骤,可以包括:
(3.1)计算预设基础值与该归一化处理后的匹配值的差值;
(3.2)将该差值乘以预设放大阈值,得到分数值。
其中,由于归一化处理后的匹配值处于0至1之间,由于后期需要设定阈值,接近0的部分不利于设定阈值进行判定,可以设置该预设基础值为1,计算该预设基础值与该归一化处理后的匹配值的差值,使得判定规则逆向调整,实现接近1为匹配,接近0为不匹配,更利于人工设定阈值进行判定,该差值越接近于0,第一图像和第二图像越不相似,差值越接近于1,第一图像和第二图像越接相似。
进一步的,将该差值乘以预设放大阈值,例如该预设放大阈值可以为1000,使得1000为最大分数,可以设定预设分数阈值为950,在检测到分数值大于预设分数阈值时,判定为检测到该第一图像和该第二图像匹配。
在其中一个实施例中,该对第二图像进行画面内容检测的步骤,可以包括:
(4.1)将该第二图像的边框区域进行滤除处理,得到滤除处理后的待检测图像;
(4.2)对该待检测图像进行模糊处理,得到模糊处理后的目标待检测图像;
(4.3)计算该目标待检测图像的目标模糊度;
(4.4)当检测到该目标模糊度低于预设模糊度阈值时,判定为检测到该第二图像中不存在画面内容。
其中,由于第二图像的边框区域中往往会存在标题等内容,为了排除干扰,可以先将该第二图像的边框区域进行滤除处理,得到滤除处理后的待检测图像。
服务器可通过数据平滑技术(data smoothing)进行高斯模糊处理,可以理解地,可将计算出的权重对相应像素进行加权处理,以实现图像的平滑处理,其中,该权重可为周边像素的平均值。以此,服务器可以对该待检测图像进行高斯模糊处理,对待检测图像进行平滑处理,得到高斯模糊处理后的目标待检测图像,使得后续的模糊度计算更为准确。
进一步的,服务器可以计算该目标待检测图像的目标模糊度,在一实施方式中,服务器可以通过拉普拉斯算法,计算出目标待检测图像的目标模糊度,该目标模糊度越低,说明像素变化率越低,表明第二图像中不存在画面内容的概率越大,该目标模糊度越高,说明像素变化率越大,第二图像中不存在画面内容的概率越低。
可以设定界定第二图像是否存在画面内容的临界值为预设模糊度阈值,当检测到该目标模糊度低于预设模糊度阈值时,服务器判定为检测到该第二图像中不存在画面内容。
在其中一个实施例中,该计算该目标待检测图像的目标模糊度的步骤,可以包括:
(5.1)通过拉普拉斯算法对该目标待检测图像进行计算,得到波形数据集;
(5.2)计算该波形数据集的平均值,并根据该平均值得到该波形数据集对应的标准差;
(5.3)将该标准差确定为目标模糊度。
其中,服务器可以通过拉普拉斯算法中的二阶微分得到目标待检测图像中每一像素的明暗值的波形数据集,像素较亮的波形数据为负数,像素较暗的波形数据为正数。
进一步的,服务器计算出该波形数据集的平均值,该标准差为方差的算数平方根,该标准差可以反映出该波形数据集的离散程度,标准差越大,说明波形数据集中大部分数据与平均值的差异较大,标准差越小,说明波形数据集中大部分数据与平均值的差异越小,以此,服务器可以通过该标准差判断第二图像内的像素的明暗度是否有较大的变化,即根据平均值得到波形数据集对应的标准差,将该标准差确定为目标模糊度。
步骤104,在检测到第二图像中不存在画面内容时,确定视频流出现异常。
其中,在服务器检测到第二图像中不存在画面内容时,说明该第二图像中像素的整体明暗度的变化处于一定的范围内,即判定为第二图像基本没有任何像素变化,画面没有内容,为纯色画面,确定为视频流出现异常,为游戏卡死。
由上述可知,本申请实施例通过从视频流中截取间隔预设时间段的第一图像和第二图像;将第一图像和第二图像进行像素匹配获得第一图像和第二图像之间像素的总匹配值;当第一图像和第二图像之间像素的总匹配值满足预设匹配条件时,对第二图像进行画面内容检测;在检测到第二图像中不存在画面内容时,确定视频流出现异常。以此,可以采用图像识别的方式,对视频流间隔预设时间段的图像画面进行检测,当检测到间隔预设时间段的图像画面不变时,对第二图像进行画面内容检测,在第二图像同时不存在画面内容时,判定为视频流出现异常,相对于现有技术中对于中央处理器的使用频率进行异常判定,且异常判定的阈值很难进行准确设置,检测准确率较差的方案而言,本申请实施例可以在不侵入游戏的代码设计或日志提取的基础上,采用图像之间像素的总匹配值确定视频画面是否静止不动,然后将静止不动的图像进行内容检测,确定视频流是否卡死不动,可以兼容各种颜色和亮度,不会因为画面亮度和颜色变化而导致检测不准,极大的提升了图像检测的准确率。
以下将举例作进一步详细说明。
在本实施例中,将以该图像检测装置具体集成在服务器中,该服务器为云主机为例进行说明,具体参照以下说明。
请参阅图4,图4为本申请实施例提供的图像检测方法的另一流程示意图。该方法流程可以包括:
步骤201,服务器从视频流中截取间隔预设时间段的第一图像和第二图像。
其中,本申请的视频流可以为云游戏视频流,由于该云游戏视频流对应的游戏画面容易出现游戏画面渲染负荷较大或者临时不兼容的情况,使得游戏启动时或者游戏过程中卡死。
为了防止游戏卡死未进行修复使得用户等待时间过长,本申请实施例可以通过服务器定期从视频流中截取间隔10秒的第一游戏图像和第二游戏图像,该第一图像和第二图像的像素数量是相同的。
步骤202,服务器将第一图像的像素覆盖在第二图像的像素上,得到覆盖后的第二目标图像,统计第一图像的每一像素和第二目标图像对应的像素的差的平方之和,得到第一图像和第二图像之间像素的总匹配值。
其中,可通过如下公式确定第一图像和第二图像之间像素的总匹配值,该公式具体可为平方差匹配算法:
该T(x′,y′)为模板图像矩阵,在本申请实施例中,该模板图像矩阵为第一图像作为模板图像,第一图像中的每一像素构成的矩阵,I(x,y)为源图像矩阵,该源图像矩阵为第二图像中的每一像素构成的矩阵,I(x+x′,y+y′)为将该第一图像的像素覆盖在该第二图像的像素上,得到的覆盖后的第二目标图像的每一像素构成的矩阵,在本步骤中该R(x,y)为像素的总匹配值。
以此,服务器将第一图像的像素覆盖在第二图像的像素上,得到覆盖后的第二目标图像,并基于上述公式,统计每一图像的每一像素和第二目标图像对应关系的像素的差的平方之和,得到像素的总匹配值R(x,y),该像素的总匹配值越接近于0,表明第一图像和第二图像越接近,该像素的总匹配值越大,表明第一图像和第二图像越不接近。
步骤203,服务器统计第一图像的每一像素和第二目标图像对应的像素的乘积之和,对统计的乘积之和进行二次根式计算,得到目标值,计算匹配值和目标值的比值,得到归一化处理后的匹配值。
其中,可通过如下公式对总匹配值进行归一化处理,该公式具体可为归一化平方差匹配法:
该T(x′,y′)为模板图像矩阵,在本申请实施例中,该模板图像矩阵为第一图像作 为模板图像,第一图像中的每一像素构成的矩阵,I(x,y)为源图像矩阵,该源图像矩阵为第二图像中的每一像素构成的矩阵,I(x+x′,y+y′)为将该第一图像的像素覆盖在该第二图像的像素上,得到的覆盖后的第二目标图像的每一像素构成的矩阵,该在本步骤中该R(x,y)为归一化处理后的匹配值。
以此,基于上述公式的分母部分,统计该第一图像的每一像素和第二目标图像对应的像素的乘积之和,对统计的乘积之和进行二次根式计算,得到目标值,计算分子的像素的总匹配值和该分母的目标值的比值,得到归一化处理后的匹配值,以此将匹配值缩小至0至1之间,该归一化处理后的匹配值越接近于0,第一图像和第二图像越接近,归一化处理后的匹配值越接近于1,第一图像和第二图像越不接近。
步骤204,服务器计算预设基础值与归一化处理后的匹配值的差值,将差值乘以预设放大阈值,得到分数值,当检测到分数值大于预设分数阈值时,确定第一图像和第二图像满足预设匹配条件。
其中,该预设基础值可以为1,服务器计算该预设基础值1减去归一化处理后的匹配值的差值,使得归一化处理后判定规则逆向调整,差值越接近于0,第一图像和第二图像越不相似,差值越接近于1,第一图像和第二图像越相似。
以此,为了利于人工设定阈值进行判定,可以设定该预设放大阈值为1000,将差值乘以预设放大阈值1000,得到分数值的区间为0至1000之间,在分数值等于1000时,说明第一图像和第二图像完全相同,在实际的使用场景中,可以设定预设分数阈值为950,当检测到分数值大于预设分数阈值时,判定为检测到第一图像和第二图像匹配,确定第一图像和第二图像满足预设匹配条件。而当检测到分数值不大于预设分数阈值时,说明第一图像和第二图像有发生过变化,游戏视频流正常运行,可以返回执行服务器从视频流中截取间隔预设时间段的第一图像和第二图像的步骤,继续进行检测。
步骤205,服务器对第一图像和第二图像间隔预设时间段进行像素匹配,记录检测到第一图像和第二图像进行像素匹配的次数。
其中,由于部分游戏视频流可能会存在短时间加载的情况,例如12秒的加载时间,为了防止将短时间加载的情况误判定为游戏视频流卡死,服务器间隔预设时间段进行像素匹配,记录检测到第一图像和第二图像匹配成功的次数,发生一次匹配成功的条件可以为:间隔10秒的第一图像和第二图像满足预设匹配条件。其中,当第一图像和第二图像满足预设匹配条件时,可确定第一图像和第二图像匹配成功。
在步骤206中,服务器检测次数是否超过预设次数。
其中,该预设次数为界定游戏画面真正静止的界定值,例如3次,当服务器检测到次数超过预设次数时,说明第一图像和第二图像在30秒内均未发生变化,处于画面静止的状态,执行步骤207。当服务器检测到次数未超过预设次数时,说明第一图像和第二图像在30秒内发生变化,游戏视频流未卡死,返回执行步骤201,继续进行检测。步骤207,服务器将第二图像的边框区域进行滤除处理,得到滤除处理后的待检测图像,对待检测图像进 行模糊处理,得到模糊处理后的目标待检测图像。
其中,当服务器检测到次数超过预设次数时,说明第一图像和第二图像在30秒内均未发生变化,处于画面静止的状态,即游戏视频流可能卡死,由于卡死的游戏画面通常为纯色或者明暗度变化不大的图像,为了防止卡死误判,需要进一步第二图像进行检测,可以将第二图像的边框区域进行滤除处理,请一并参阅图5a。第二图像1的边框上的标题栏还存在“王者X耀”,如果将此部分进行处理,会影响处理结果,以此,服务器可以将第二图像的边框区域进行滤除处理,得到滤除处理后的待检测图像11。
进一步的,可以对该待检测图像11进行高斯模糊处理,得到高斯模糊处理后的目标待检测图像,为了更好的解释高斯模糊处理的原理,请一并参阅图5b,假设待检测图像11的部分区域2的中心点的像素的RGB值为2,经过高斯模糊处理之后,得到高斯模糊处理后的目标待检测图像的部分区域3的中心点的像素的RGB值经过参考周边像素的平均值,变成1,使得像素点失去部分细节,实现图像模糊处理,该高斯模糊处理具有一个关键参数ksize,代表模糊半径,该半径越大,高斯模糊处理的效果越模糊,该模糊半径为参考周边像素数量值,本申请实施例可以将该模糊半径设定为1。
步骤208,服务器通过拉普拉斯算法对目标待检测图像进行计算,得到波形数据集,计算波形数据集的平均值,并根据平均值得到波形数据集对应的标准差,将标准差确定为目标模糊度。
其中,服务器还可以将目标待检测图像进行灰度处理,灰度就是没有色彩,将该目标待检测图像的RGB色彩分量设置为相等,得到灰度图,指定拉普拉斯算法的算子大小与模糊半径相同,通过拉普拉斯算法对灰度图进行计算,得到由灰度图中每一像素的波形数据组成的波形数据集,该波形数据可以反映出像素的明暗度。
进一步的,可以计算波形数据集的平均值,并根据该平均值得到波形数据集对应的标准差,该标准差反映出波形数据集中的波形数据与平均值的差异情况,该标准差越大,说明波形数据集中大部分数据与平均值的差异较大,标准差越小,说明波形数据集中大部分数据与平均值的差异越小。
步骤209,当服务器检测到目标模糊度低于预设模糊度阈值时,确定第二图像中不存在画面内容,确定视频流出现异常。
其中,该预设模糊度阈值为界定第二图像中是否存在画面内容的临界值,本申请实施例中,可以设定该预设模糊度阈值为1.5,当服务器检测到目标模糊度低于预设模糊度阈值时,说明第二图像中像素的明暗度变化率越低,第二图像中不存在画面内容,在纯色画面,确定为游戏视频流出现异常,为游戏卡死,可以采取对应的修复手段。
在一些实施方式中,本申请实施例可以将判定为卡死的第二图像上传给卷积神经网络(Convolutional Neural Networks,CNN)模型进行学习,以此,通过不断地学习,卷积神经网络可以学习识别出游戏视频流卡死的画面的能力,实现快速识别。
在其中一个实施例中,从视频流中截取间隔预设时间段的第一图像和第二图像,包括 在当前检测时刻,从视频流中截取间隔预设时间段的第一图像和第二图像;对第二图像进行画面内容检测之前,上述方法还包括:当基于像素的总匹配值,确定当前检测时刻所对应的第一图像和第二图像之间像素的总匹配值满足预设匹配条件时,确定当前匹配结果为匹配成功;获取存储的历史匹配结果;历史匹配结果为在历史检测时刻对截取的间隔预设时间段的第一图像和第二图像进行像素匹配处理,得到的匹配结果;基于历史匹配结果和当前匹配结果,确定在预设检测时段内匹配成功的次数;及当基于像素的总匹配值,确定第一图像和第二图像之间像素的总匹配值满足预设匹配条件时,对第二图像进行画面内容检测,包括:当在预设检测时段内匹配成功的次数大于或等于预设次数时,对当前第二图像进行画面内容检测。
其中,由于部分游戏视频流可能会存在短时间加载的情况,例如12秒的加载时间,为了防止将短时间加载的情况误判定为游戏视频流卡死,服务器间隔预设时间段进行像素匹配,记录检测到第一图像和第二图像匹配成功的次数,发生一次匹配成功的条件可以为:间隔10秒的第一图像和第二图像满足预设匹配条件。其中,当第一图像和第二图像满足预设匹配条件时,可确定第一图像和第二图像匹配成功。
服务器在当前检测时刻从视频流中截取间隔预设时间段的第一图像和第二图像。其中,当前检测时刻指的是当前时间点,第一图像和第二图像间隔预设时间段,比如,第一图像和第二图像间隔10秒。服务器通过上述方法确定在当前时刻从视频流中截取的第一图像和第二图像之间像素的总匹配值是否满足预设匹配条件,并在确定满足预设匹配条件时,也即确定当前匹配结果为匹配成功时,获取存储的历史匹配结果。其中,历史匹配结果为在历史检测时刻对截取的间隔预设时间段的第一图像和第二图像进行像素匹配处理,得到的匹配结果。历史时刻指的是在当前时刻之前的时刻。
容易理解地,服务器每隔一段时间从视频流中截取出第一图像和第二图像,并对第一图像和第二图像进行像素匹配处理,得到匹配结果,将匹配结果存储于存储器中,从而在确定在当前时刻截取的第一图像和第二图像匹配成功时,服务器可从存储器中获取预设检测时间段内的历史匹配结果。其中,预设检测时间段指的是以当前检测时刻为终点的一段预设时间,例如,预设检测时间段可以为包括当前检测时刻的前30秒。
服务器根据历史匹配结果和当前匹配结果,判断在预设检测时段内匹配成功的次数。其中,该预设次数为界定游戏画面真正静止的界定值,例如3次,当服务器检测到次数大于或等于预设次数时,说明第一图像和第二图像在30秒内均未发生变化,处于画面静止的状态,此时服务器对当前第二图像进行画面内容检测。其中,服务器可通过上述实施例中对第二图像进行画面内容检测的方法,对当前第二图像进行画面检测。
当服务器检测到次数小于预设次数时,说明第一图像和第二图像在30秒内发生变化,游戏视频流未卡死,进入下一个检测时刻,并将所述下一个检测时刻作为当前时刻,返回在当前检测时刻,从视频流中截取间隔预设时间段的第一图像和第二图像的步骤继续进行检测,直至所述视频流播放完毕时停止。。
在其中一个实施例中,当在当前时刻从视频流中截取的第一图像和第二图像之间像素的总匹配值不满足预设匹配条件时,服务器返回在当前检测时刻,从视频流中截取间隔预设时间段的第一图像和第二图像的步骤继续进行检测。
由上述可知,本申请实施例通过从视频流中截取间隔预设时间段的第一图像和第二图像;将第一图像和第二图像进行像素匹配获得第一图像和第二图像之间像素的总匹配值;当第一图像和第二图像之间像素的总匹配值满足预设匹配条件时,对第二图像进行画面内容检测;在检测到第二图像中不存在画面内容时,确定视频流出现异常。以此,可以采用图像识别的方式,对视频流间隔预设时间段的图像画面进行检测,当检测到间隔预设时间段的图像画面不变时,对第二图像进行画面内容检测,在第二图像同时不存在画面内容时,判定为视频流出现异常,相对于现有技术中对于中央处理器的使用频率进行异常判定,且异常判定的阈值很难进行准确设置,检测准确率较差的方案而言,本申请实施例可以在不侵入游戏的代码设计或日志提取的基础上,采用图像之间像素的总匹配值确定视频画面是否静止不动,然后将静止不动的图像进行内容检测,确定视频流是否卡死不动,可以兼容各种颜色和亮度,不会因为画面亮度和颜色变化而导致检测不准,极大的提升了图像检测的准确率。
为了更好地实施以上方法,,本申请实施例还提供一种图像检测方法的装置。该装置可以集成在服务器中。其中名词的含义与上述图像检测方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图6,图6为本申请实施例提供的图像检测装置的结构示意图,其中该图像检测装置可以包括截取单元301、匹配单元302、检测单元303、及确定单元304等。
截取单元301,用于从视频流中截取间隔预设时间段的第一图像和第二图像。
匹配单元302,用于将该第一图像和该第二图像进行像素匹配获得第一图像和该第二图像之间像素的总匹配值。
在其中一个实施例中,该匹配单元302,包括:
覆盖子单元,用于将该第一图像的像素覆盖在该第二图像的像素上,得到覆盖后的第二目标图像;
统计子单元,用于统计该第一图像的每一像素和第二目标图像对应的像素的差的平方之和,得到该第一图像和该第二图像之间像素的总匹配值。
检测单元303,用于当基于像素的总匹配值,确定该第一图像和该第二图像满足预设匹配条件时,对该第二图像进行画面内容检测。
在其中一个实施例中,该检测单元303,包括:
归一化子单元,用于对该总匹配值进行归一化处理,得到归一化处理后的匹配值;
转换子单元,用于将归一化处理后的匹配值转换为分数值;
确定子单元,用于当检测到该分数值大于预设分数阈值时,确定该第一图像和该第二图像满足预设匹配条件,对该第二图像进行画面内容检测。
在其中一个实施例中,确定子单元还用于当检测到分数值小于或等于预设分数阈值时,确定第一图像和第二图像不满足预设匹配条件。
在其中一个实施例中,该归一化子单元还用于统计该第一图像的每一像素和第二目标图像对应的像素的乘积之和;对统计的乘积之和进行二次根式计算,得到目标值;计算该像素的总匹配值和该目标值的比值,得到归一化处理后的匹配值。
在其中一个实施例中,该转换子单元还用于计算预设基础值与该归一化处理后的匹配值的差值;将该差值乘以预设放大阈值,得到分数值。
在其中一个实施例中,该检测单元303,包括:
滤除子单元,用于当该第一图像和该第二图像之间像素的总匹配值满足预设匹配条件时,将该第二图像的边框区域进行滤除处理,得到滤除处理后的待检测图像;
处理子单元,用于对该待检测图像进行模糊处理,得到模糊处理后的目标待检测图像;
计算子单元,用于计算该目标待检测图像的目标模糊度;
确定子单元,用于当检测到该目标模糊度低于预设模糊度阈值时,确定该第二图像中不存在画面内容。
在其中一个实施例中,该计算子单元还用于通过拉普拉斯算法对该目标待检测图像进行计算,得到波形数据集;计算该波形数据集的平均值,并根据该平均值得到该波形数据集对应的标准差;将该标准差确定为目标模糊度。
确定单元304,用于在检测到该第二图像中不存在画面内容时,确定该视频流出现异常。
在其中一个实施例中,该图像检测装置还可以包括记录单元,用于:对该第一图像和该第二图像间隔预设时间段进行像素匹配;记录检测到该第一图像和该第二图像进行像素匹配的次数;当检测到该次数超过预设次数时,执行对该第二图像进行画面内容检测的步骤;当检测到该次数不超过预设次数时,返回执行从视频流中截取间隔预设时间段的第一图像和第二图像的步骤。
在其中一个实施例中,该图像检测装置还用于在当前检测时刻,从视频流中截取间隔预设时间段的第一图像和第二图像;当基于像素的总匹配值,确定当前检测时刻所对应的第一图像和第二图像之间像素的总匹配值满足预设匹配条件时,确定当前匹配结果为匹配成功;获取存储的历史匹配结果;历史匹配结果为在历史检测时刻对截取的间隔预设时间段的第一图像和第二图像进行像素匹配处理,得到的匹配结果;基于历史匹配结果和所述当前匹配结果,确定在预设检测时段内匹配成功的次数;当在预设检测时段内匹配成功的次数大于或等于预设次数时,对当前第二图像进行画面内容检测。
在其中一个实施例中,该图像检测装置还用于当在预设检测时段内匹配成功的次数小于预设次数时,进入下一个检测时刻,并将下一个检测时刻作为当前时刻,返回在当前检测时刻,从视频流中截取间隔预设时间段的第一图像和第二图像的步骤继续进行检测, 直至视频流播放完毕时停止。
以上各个单元的具体实施可参见前面的实施例,在此不再赘述。
由上述可知,本申请实施例通过截取单元301从视频流中截取间隔预设时间段的第一图像和第二图像;匹配单元302将第一图像和第二图像进行像素匹配获得第一图像和第二图像之间像素的总匹配值;检测单元303当第一图像和第二图像之间像素的总匹配值满足预设匹配条件时,对第二图像进行画面内容检测;确定单元304在检测到第二图像中不存在画面内容时,确定视频流出现异常。以此,可以采用图像识别的方式,对视频流间隔预设时间段的图像画面进行检测,当检测到间隔预设时间段的图像画面不变时,对第二图像进行画面内容检测,在第二图像同时不存在画面内容时,判定为视频流出现异常,相对于现有技术中对于中央处理器的使用频率进行异常判定,且异常判定的阈值很难进行准确设置,检测准确率较差的方案而言,本申请实施例可以在不侵入游戏的代码设计或日志提取的基础上,采用图像之间像素的总匹配值确定视频画面是否静止不动,然后将静止不动的图像进行内容检测,确定视频流是否卡死不动,可以兼容各种颜色和亮度,不会因为画面亮度和颜色变化而导致检测不准,极大的提升了图像检测的准确率。
本申请实施例还提供一种服务器,如图7所示,其示出了本申请实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以为云主机,可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图7中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
服务器还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功 能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,服务器还可以包括显示处理器等,在此不再赘述。具体在本实施例中,服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
从视频流中截取间隔预设时间段的第一图像和第二图像;将该第一图像和该第二图像进行像素匹配获得该第一图像和该第二图像之间像素的总匹配值;当基于像素的总匹配值,确定第一图像和第二图像满足预设匹配条件时,对该第二图像进行画面内容检测;在检测到该第二图像中不存在画面内容时,确定该视频流出现异常。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对图像检测方法的详细描述,此处不再赘述。
由上述可知,本申请实施例的服务器可以通过从视频流中截取间隔预设时间段的第一图像和第二图像;将第一图像和第二图像进行像素匹配获得第一图像和第二图像之间像素的总匹配值;当第一图像和第二图像之间像素的总匹配值满足预设匹配条件时,对第二图像进行画面内容检测;在检测到第二图像中不存在画面内容时,确定视频流出现异常。以此,可以采用图像识别的方式,对视频流间隔预设时间段的图像画面进行检测,当检测到间隔预设时间段的图像画面不变时,对第二图像进行画面内容检测,在第二图像同时不存在画面内容时,判定为视频流出现异常,相对于现有技术中对于中央处理器的使用频率进行异常判定,且异常判定的阈值很难进行准确设置,检测准确率较差的方案而言,本申请实施例可以在不侵入游戏的代码设计或日志提取的基础上,采用图像之间像素的总匹配值确定视频画面是否静止不动,然后将静止不动的图像进行内容检测,确定视频流是否卡死不动,可以兼容各种颜色和亮度,不会因为画面亮度和颜色变化而导致检测不准,极大的提升了图像检测的准确率。
在一些实施例中,提供了一种计算机设备,包括存储器和一个或多个处理器,存储器存储有计算机可读指令,计算机可读指令被所述处理器执行时,使得一个或多个处理器执行执行上述通话音频混音处理方法的步骤。此处通话音频混音处理方法的步骤可以是上述各个实施例的图像检测方法中的步骤。
在一些实施例中,提供了一个或多个存储有计算机可读指令的非易失性可读存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行执行上述图像检测方法的步骤。此处图像检测方法的步骤可以是上述各个实施例的图像检测方法中的步骤。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产 品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例提供的各种可选实现方式中提供的方法。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。