一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

字符识别方法、装置、设备及存储介质与流程

2021-11-03 21:03:00 来源:中国专利 TAG:


1.本发明属于游戏直播的技术领域,尤其涉及一种字符识别方法、装置、设备及存储介质。


背景技术:

2.当前游戏群体主角增多,更有较多玩家通过游戏直播平台观看各种品类游戏的直播。为了增加直播中主播与用户的互动与趣味性,可以对直播中的动态的游戏内容进行实时识别,从而提供创新型应用的可能性,提升用户体验与黏性,增加主播与平台营收。
3.游戏中的内容元素通常包括用户使用的角色,角色当前的战绩等。以王者荣耀游戏为例,游戏中比较重要的内容元素有用户使用的英雄,英雄可以使用的技能,当前英雄等级,击杀数/死亡数等战绩数据。以及当前是否处于死亡状态,或者较为高光精彩的时刻:三杀,四杀,五杀等。
4.直播平台同时段通常会有多个直播间正在直播。这对于平台来说,存在以下技术难点:
5.1、直播过程中主播会和用户进行互动,但是,对于在直播中动态内容的特定物体目标连续变化,需要进行实时识别并及时反馈至用户或及时显示在直播间屏幕,视频流中采集的几十个图像帧,还需要从图像帧中实别出特定物体目标,并对该特定物体目标进行跟踪其变化后对目标进行计算等处理后的显示或反馈,实时性要求很高,目前存在处理技术难点。
6.2、直播中是有多路同时直播,上述实时图像帧处理的数据量很大,且有多路同时需要处理,需要设定的多路处理策略,既实现实时性,又能考虑其并行性。
7.3、对该特定物体目标进行跟踪其变化存在漏帧情况,后续如何处理。


技术实现要素:

8.本发明的目的是提供一种字符识别方法、装置、设备及存储介质,可实时识别游戏直播的数据,获取主播角色的实时状态,如是否死亡,是否三杀/四杀/五杀等,从而在直播间弹出相应的打赏提示与文案,从而增加用户在直播间的互动打赏,提升用户在观看直播时的趣味性与黏性。
9.为解决上述问题,本发明的技术方案为:
10.一种字符识别方法,用于互联网游戏直播,该字符识别方法包括:
11.获取开启直播的房间对应的房间标识,根据所述房间标识开启直播识别任务,对直播中的画面字符进行识别;
12.将直播画面中的字符区域作为目标,采用目标检测算法识别字符所在区域,并提取识别得到的字符区域;
13.通过字符识别模型识别所述字符区域中的字符,从而得到游戏直播中实时的游戏信息。
14.根据本发明一实施例,所述获取开启直播的房间对应的房间标识进一步包括:
15.接收用户发送的直播请求,根据直播请求获取用户标识,赋予该用户标识一直播房间号,所述直播房间号即为房间标识。
16.根据本发明一实施例,所述采用目标检测算法识别字符所在区域进一步包括:
17.采用基于yolov5算法的目标检测模型识别字符区域。
18.根据本发明一实施例,所述采用基于yolov5算法的目标检测模型识别字符区域进一步包括:
19.依次创建input、backbone、neck及prediction网络结构,构成yolov5检测模型;并创建conv2d3x3及多个ghost bottleneck模块构成ghostne;
20.将yolov5检测模型去掉预设部分的backbone及neck网络结构,将去掉的所述预设部分的backbone及neck网络结构替换为所述ghostnet中的conv2d3x3及多个ghostbottleneck模块,得到目标检测模型;
21.对所述目标检测模型进行游戏直播相关字符区域的识别训练,得到训练好的目标检测模型。
22.根据本发明一实施例,所述采用目标检测算法识别字符所在区域进一步包括:
23.利用mser算法对直播画面进行字符区域检测,得到直播画面中包含字符的候选区域,对所述候选区域进行垂直投影,得到至少一个字符区域;
24.针对得到的至少一个字符区域的每个字符区域,根据相应字符区域,结合聚类算法,确定所述直播画面中相应字符区域所对应字符所属的行区域;
25.当行区域包含多个字符时,基于相邻字符间的距离,对行区域中的多个字符对应的多个字符区域进行合并,得到目标字符区域;
26.当行区域包含一个字符时,将一个字符对应的字符区域作为目标字符区域。
27.根据本发明一实施例,所述通过字符识别模型识别所述字符区域中的字符进一步包括:
28.采用cnocr模型或paddleocr模型识别所述字符区域中的字符,该字符包括数字及英文字符。
29.根据本发明一实施例,所述通过字符识别模型识别所述字符区域中的字符之后还包括:
30.将连续帧的识别结果存储为一个时间序列,对时间序列中的识别结果的值与字符区域做比较,从而剔除识别异常的数据,保证识别的数字结果在时间序列中保持一致;
31.当网络阻塞时,抽取直播流中的最新帧进行识别,抛弃由于网络阻塞导致的积压帧,从而提供实时的字符识别结果。
32.一种字符识别装置,用于互联网游戏直播,该字符识别装置包括:
33.画面获取模块,用于获取开启直播的房间对应的房间标识,根据所述房间标识开启直播识别任务,对直播中的画面字符进行识别;
34.字符区域识别模块,用于将直播画面中的字符区域作为目标,采用目标检测算法识别字符所在区域,并提取识别得到的字符区域;
35.字符识别模块,用于通过字符识别模型识别所述字符区域中的字符,从而得到游戏直播中实时的游戏信息。
36.一种字符识别设备,包括:
37.存储器和处理器,所述存储器中存储有指令,所述存储器和所述处理器通过线路互连;
38.所述处理器调用所述存储器中的所述指令,实现本发明一实施例中的字符识别方法。
39.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本发明一实施例中的字符识别方法。
40.本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:
41.1)本发明一实施例中的字符识别方法,针对现有的游戏直播中对于直播角色的实时识别并及时反馈至用户或及时显示在直播间屏幕,实时性要求高,技术难实现的问题,通过获取开启直播的房间对应的房间标识,根据房间标识开启直播识别任务,对直播中的画面字符进行识别;将直播画面中的字符区域作为目标,采用目标检测算法识别字符所在区域,并提取识别得到的字符区域;通过字符识别模型识别所述字符区域中的字符,从而得到游戏直播中实时的游戏信息;获取主播角色的实时状态,如是否死亡,是否三杀/四杀/五杀等,从而在直播间弹出相应的打赏提示与文案,从而增加用户在直播间的互动打赏,提升用户在观看直播时的趣味性与黏性。
42.2)本发明一实施例中的字符识别方法,通过将基于yolov5算法的目标检测模型的主干网络替换为ghostnet,采用ghostnet以很小的代价生成许多能从原始特征发掘所需信息的“幻影”特征图(ghost feature maps),通过堆叠ghost模块得出ghostbottleneck,进而搭建轻量级神经网络ghostnet,使用ghostnet可以获得图像更为显著的特征,提高目标识别准确率。
43.3)本发明一实施例中的字符识别方法,针对直播中画面清晰度有限,且字符识别存在一定错误率或直播中可能存在漏帧或者处理过慢导致的服务阻塞的现象,将直播流中连续帧的识别结果存储为一个时间序列,对该时间序列中的识别结果的值与识别的字符区域做比较,从而剔除识别异常的数据,保证识别的数字结果在时间序列中保持一致,将优化后的识别结果作为最终结果。而对于网络阻塞的情况,需要每次抽取直播流中的最新帧进行识别,抛弃掉由于网络阻塞导致的积压帧,从而使得每次的识别结果都是较为实时的结果。
附图说明
44.图1为本发明一实施例中的字符识别方法流图;
45.图2为本发明一实施例中的yolov5检测模型的组成示意图;
46.图3为本发明一实施例中的ghostnet中卷积层的示意图;
47.图4为本发明一实施例中的ghost module的示意图;
48.图5为本发明一实施例中的字符识别装置框图;
49.图6为本发明一实施例中的字符识别设备示意图。
具体实施方式
50.以下结合附图和具体实施例对本发明提出的一种字符识别方法、装置、设备及存储介质作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。
51.实施例一
52.本实施例针对现有的游戏直播中对于直播角色的实时识别并及时反馈至用户或及时显示在直播间屏幕,实时性要求高,技术难实现的问题,提供了一种字符识别方法,可得到游戏直播中实时的游戏信息,获取主播角色的实时状态,如是否死亡,是否三杀/四杀/五杀等,从而在直播间弹出相应的打赏提示与文案,从而增加用户在直播间的互动打赏,提升用户在观看直播时的趣味性与黏性。
53.请参看图1,该字符识别方法包括以下步骤:
54.s1:获取开启直播的房间对应的房间标识,根据所述房间标识开启直播识别任务,对直播中的画面字符进行识别;
55.s2:将直播画面中的字符区域作为目标,采用目标检测算法识别字符所在区域,并提取识别得到的字符区域;
56.s3:通过字符识别模型识别所述字符区域中的字符,从而得到游戏直播中实时的游戏信息。
57.具体的,在本发明的应用场景中,用户设备安装有直播客户端,当用户打开直播客户端进入直播房间观看直播时,直播视频流加载到直播客户端的同时,直播客户端也会将直播视频流发送给服务器,服务器接收到直播客户端发送的直播视频流后,对直播视频流中的视频帧进行处理,实时识别出文字物体目标并进行计算后将计算的结果返回至用户设备,若直播为游戏,则该可加载信息区域不会是主播框区域,从而提高了观看直播的用户的观看体验。
58.需要说明的是,用户终端与服务器之间通过网络进行通信连接,该网络可以为局域网、广域网等。用户终端可以为便携设备(例如:手机、平板、笔记本电脑等),也可以为个人电脑(pc,personal computer),服务器可以为任何能够提供互联网服务的设备,用户终端中的直播客户端为直播等等。
59.下面具体介绍该字符识别方法。在步骤s1中,获取开启直播的房间对应的房间标识进一步包括:接收用户发送的直播请求,根据直播请求获取用户标识,赋予该用户标识一直播房间号,该直播房间号即为房间标识。
60.通常,游戏直播平台,也可称为游戏直播系统,该游戏直播系统包括服务器(如战斗服务器、大厅服务器)、用户终端(如战斗终端、观战终端)。其中,战斗终端所对应的战斗用户,以及观战终端所对应的观战用户属于同一个直播房间中的用户,例如直播房间a。服务器与用户终端之间通过网络连接,网络中包括路由器、网关等网络实体。
61.当用户终端需要直播时,通过网络向服务器发送直播请求,该直播请求中需要包含该用户终端的用户标识(如用户名称或用户号)。服务器接收直播请求后,提取该直播请求中的用户标识,并赋予该用户标识一直播房间号,并将该直播房间号返回给用户终端,该直播房间号即为房间标识。
62.当用户终端开启直播时,会将其用户标识发送至大厅服务器,再由大厅服务器根据该用户标识找到其所属的直播房间,启动直播识别线程,实时对直播中的画面字符进行
识别。
63.可以理解,当有一个直播间开始直播时,后端发起识别请求。直播流识别任务中后台会启动相应的直播识别线程,以实时对直播中的画面中识别互联网直播中文字物体目标。
64.对要进行文字物体目标识别的直播进行开播时,触发后端发起识别请求。在后台预先设置直播识别线程。直播客户端向服务器发送直播视频流。具体地,当用户进入直播房间后,视频流在加载到直播客户端的同时,直播客户端也将视频流传到服务端。
65.在步骤s2中,将直播画面中的字符区域作为目标,采用目标检测算法识别字符所在区域,并提取识别得到的字符区域。
66.本实施例主要的识别对象是直播画面中的字符,如直播角色的用户标识、其使用的技能、当前等级、击杀数/死亡数等战绩数据,以及其当前是否处于死亡状态,或者较为高光精彩的时刻:三杀,四杀,五杀等数据。若要获取这些数据,就需要对直播画面中的代表这些数据的字符进行实时地识别。
67.目前,对视频帧中字符的识别存在以下难点:
68.难点1:视频流中,出现字符后,立即开始采集含有字符的视频帧;
69.难点2:对视频帧中字符区域的定位;
70.难点3:快速有效的识别出字符.
71.其中视频帧中字符区域的定位有多种方法:
72.(1)基于梯度的方式:
73.字符最大的特征就是梯度性很多,利用字符的梯度特征,定位字符区域。
74.具体做法为:区域梯度变换频繁的特点,利用高通滤波保留梯度变换频繁区域,形态学处理后,将相邻区域进行合并以确定车牌的候选区域。
75.(2)基于字符纹理的方法:
76.先对字符区域小波变化,在利用字符的纹理信息提取字符区域
77.(3)基于灰度直方图的方式。
78.但是,这些方式都不适合直播中对速度的要求,为此,本实例中使用目标检测算法从当前预测测视频帧中识别出字符所在区域。
79.本实施例将字符出现区域作为目标,设置目标检测模型,建立模型包括以下步骤:
80.采用yolo算法,首先将图像分为s
×
s的格子,如果一个目标的中心落入格子,该格子就负责检测该目标,每一个网格中预测b个bounding box和置信值,这些置信度分数反映了该模型对盒子是否包含目标物体的信心,以及它预测盒子的准确程度。其定义置信值为:
[0081][0082]
若没有目标,则置信值为零,置信度分数等于预测框与真实值之间联合部分的交集iou。
[0083]
每一个boundingbox包含5个值:x、y、w、h和confidence,其中(x,y)坐标表示边界框相对于网格单元边界框的中心,宽度w和高度h是相对于整帧图像预测,confidence表示预测的box与实际边界框之间的iou,每个网格单元还预测c个条件类别概率:
[0084]
pr(class
i
|object)
[0085]
这些概率是以网格包含目标为条件的,每个网格单元只预测的一组类别概率,而不管边界框的的数量b是多少。
[0086]
每一帧图像分成s
×
s的网络,并且每个网格单元预测b个边界框,这些边界框的置信度以及c个类别概率的预测被编码为s
×
s
×
(b*5 c)的数量。
[0087]
在测试时,乘以条件类概率和单个盒子的置信度预测,得到:
[0088][0089]
这些分数编码了该类目标出现在框中的概率以及预测框拟合目标的程度。
[0090]
然后,使用卷积神经网络来实现yolo算法,并在pascal voc检测数据集上进行评估,网络的初始卷积层从图像中提取特征,而全连接层用来预测字符出现区域的输出概率和对应坐标。
[0091]
将预测字符出现区域给出对应的训练集,标注后的训练集分别放入目标检测模型进行训练。
[0092]
当前预测视频帧输入所述目标检测模型,预测出视频帧中字符出现区域及对应边界框信息。
[0093]
上述方式的实现速度非常快,能够满足直播中对识别速度的要求。
[0094]
进一步地,本实施例还提供了采用基于yolov5算法的目标检测模型来识别字符区域。该基于yolov5算法的目标检测模型识别字符区域进一步包括:
[0095]
依次创建input、backbone、neck及prediction网络结构,构成yolov5检测模型;并创建conv2d3x3及多个ghost bottleneck模块构成ghostne;
[0096]
将yolov5检测模型去掉预设部分的backbone及neck网络结构,将去掉的所述预设部分的backbone及neck网络结构替换为所述ghostnet中的conv2d3x3及多个ghost bottleneck模块,得到目标检测模型;
[0097]
对该目标检测模型进行游戏直播相关字符区域的识别训练,得到训练好的目标检测模型。
[0098]
请参看图2,yolov5检测模型包括输入端(input)、backbone、neck及输出端(prediction)四部分网络。其中,输入端(input)对输入图像进行预处理,如计算初始锚框;backbone用于图像特征提取;neck用于多尺度特征融合;输出端(prediction)用于目标检测,输出目标框的位置。
[0099]
图2是yolov5检测模型的通用框架图,yolov5共有四种模型用以满足不同的部署需求,分别是yolov5s,yolov5m,yolov51,yolov5x,本实施例选用yolov5s作为物流违规检测模型的基本模型。该yolov5s在输入端input网络,通常需要输入3张608*608的图像。由于从视频中截取的图像的尺寸各异,因此,需要将不同尺寸的输入图像统一大小。本实施例首先采用高斯滤波器,去除输入图像的噪声(一些无关信息)。
[0100]
高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器。高斯平滑滤波器对于抑制服从正态分布的噪声非常有效。对于图像处理来说,常用二维零均值离散高斯函数作平滑滤波器。其高斯函数为:
[0101][0102]
其中,σ为平滑参数,σ越大,高斯滤波器的频带就越宽,平滑程度就越好。
[0103]
然后,将去除噪声后的图像进行mosaic数据增强、自适应锚框计算及自适应图像缩放。
[0104]
其中,由于小目标的平均精度(ap)一般比中目标和大目标低很多。而数据集中也包含大量的小目标,但比较麻烦的是小目标的分布并不均匀。根据2019年发布的论文《augmentation for small object detection》记载,可知:
[0105] min rectangle areama
×
rectangle areasmall object0*032*32medium object32*3296*96large object96*96∞*∞
[0106]
可以看到小目标的定义是目标框的长宽0
×
0~32
×
32之间的物体。下面引用一用于yolov5模型训练的数据集,其小目标、中目标及大目标的占比如下:
[0107] smallmidlargeratio of total boxes(%)41.434.324.3ratio of images included(%)52.370.783.0
[0108]
在整个数据集中,小、中、大目标的占比并不均衡。如上表所示,该数据集中小目标占比达到41.4%,数量比中目标和大目标都要多。
[0109]
创建ghostnet模型,通常ghostnet模型包括卷积层、池化层以及全连接层,其中,卷积层包括多个ghost bottleneck模块。更详细地,ghostnet模型具体包括:conv2d3x3、多个ghost bottleneck模块、conv2dlxl、avgpool7x7、conv2d lx1以及全连接层。本实施例主要采用ghostnet模型中的卷积层对图像特征进行提取。请参看图3,图中示出了ghost bottleneck模块的结构示意图。stride=2的ghost bottleneck模块中具有学习特征与下采样的功能。ghost bottleneck模块的结构,很类似resnet结构,不同的是channel是先升维再降维。
[0110]
将yolov5检测模型去掉预设部分的backbone及neck网络结构,将去掉的所述预设部分的backbone及neck网络结构替换为所述ghostnet中的conv2d3x3及多个ghost bott1eneck模块,得到目标检测模型。
[0111]
ghostnet模型引入了depthwise卷积操作,即ghost bottleneck模块进行的相关操作。具体的,由于yolov5检测模型网络中的特征图之间存在冗余,相连接的两个框都展现出了特征图之间的相似性。所以对于相似的特征图可以不用常规的卷积操作进行获得,可以使用一个depthwise卷积操作进行获得。如图4所示的ghost module结构图,使用常规的卷积首先获得一半的特征图,然后在这一半的卷积上使用depthwise卷积操作,从而获得另一部分特征图。进而很大程度的减少特征图之间的冗余,节省目标检测模型的计算量。
[0112]
对上述目标检测模型进行游戏直播相关字符区域的识别训练,得到训练好的目标检测模型进一步包括:
[0113]
对目标检测模型的参数进行初始化,所述参数包括输入图像尺寸、初始学习率、ghostnet层类别种类以及卷积核的深度,并使用余弦退火策略降低初始学习率;该余弦退火策略的计算公式为:
[0114][0115]
其中,l表示学习率,i表示第i次训练,分别表示第i次训练的学习率的最大值、最小值,n
i
表示第i次训练中总的迭代次数,n表示第i次训练中第n次迭代,n=1,

,n。
[0116]
实际应用中,根据训练要求和显卡性能约束,可将输入图像尺寸固定为512*512,初始学习率设为0.0025,并使用学习率余弦退火的策略随着迭代次数按照余弦函数的形式降低学习率,在一个周期内从最大降到最小,周而复始。学习率决定着权值更新的速度,设置过高可能会使结果越过最优解,设置过小会使得损失下载速度过慢。修改ghostnet层类别种类为1,并相应修改ghostnet卷积核的深度为18。
[0117]
除了上述目标检测模型外,本实施例还提供了另外一种目标检测算法,即:
[0118]
利用mser算法对直播画面进行字符区域检测,得到直播画面中包含字符的候选区域,对所述候选区域进行垂直投影,得到至少一个字符区域;
[0119]
针对得到的至少一个字符区域的每个字符区域,根据相应字符区域,结合聚类算法,确定所述直播画面中相应字符区域所对应字符所属的行区域;
[0120]
当行区域包含多个字符时,基于相邻字符间的距离,对行区域中的多个字符对应的多个字符区域进行合并,得到目标字符区域;
[0121]
当行区域包含一个字符时,将一个字符对应的字符区域作为目标字符区域。
[0122]
在对直播画面中的字符区域进行检测之前,可以对直播的样本图像进行标注处理,得到对应样本图像标注数据,以用于后续与通过字符识别模型得到的识别结果进行比较。同时,还可以利用标注数据对样本图像本身进行过滤,以得到有效的样本图像。然后,利用mser算法对过滤后的样本图像进行字符区域检测,得到样本图像中的字符区域。
[0123]
这里,对样本图像进行标注处理的规则包括:标注的内容,标注的形式,标注数据的保存格式。实际应用时,该标注的内容可以包含样本图像中所有文本行的字符识别结果以及样本图像中所有文本行的字符区域在样本图像中的位置信息。标注的形式可以为文本行的字符含义以及文本行的字符区域在样本图像中的四个位置坐标(如,标注的形式可以为(字符含义,左下角x1,左下角y1,右上角x2,右上角y2))。标注数据的保存格式可以为box文件。
[0124]
mser算法的基本思想是对图像进行二值化(二值化可以把灰度图像转换成二值图像,把大于某个临界灰度值(二值化阈值)的像素灰度设为灰度极大值,把小于这个值的像素灰度设为灰度极小值,从而实现二值化),二值化阈值取[0,255](二值化阈值从0到255上升变化)。这样,二值化图像就经历一个从全黑到全白的过程。在这个过程中,有些连通区域面积随二值化阈值上升的变化很小,这种区域就被称为最大稳定极值区域。用数学公式解释如下:
[0125]
对于图像p(x),x∈q,q是一个包含像素元素的实函数有限集,定义q=[1,2,...,
n](n为图像p(x)中包含的像素总数量),s(x)为图像p(x)中的一个水平集,x∈q,s(x)为灰度小于或等于p(x)的集合,s(x)可以用式来表示:
[0126]
s(x)={y∈q|p(y)≤p(x)}
[0127]
其中,s(x)为图像p(x)的中的一个水平集,p(x)为二值化阈值,p(y)为图像p(x)中像素灰度值满足小于等于p(x)的像素灰度值。序列(x1,x2,..,x)是一个包含许多像素的连通序列,q的一个连通分量r是q的子集,每对像素(x1,x2)∈r都通过r中的一条路径相连。如果任何包含r的连通分量r'都等于r,则称r为最大连通分量。极值区域c就定义为水平集s(x)的最大连通分量。用c(i)表示图像p(x)所有的极值区域的集合。在c(i)所有的极值区域中,mser算法只对满足一定平稳标准的区域(即最大稳定极值区域)感兴趣。是否满足平稳标准的判定可以采用平稳指标q(i)来实现:
[0128]
q(i)=|q
i δ

q
i

δ
|/q
i
[0129]
其中,q(i)为第i个连通区域的平稳指标(当q(i)小于平稳标准阈值时,认为该区域为最大稳定极值区域);q
i
表示第i个连通区域的面积,

表示微小的阈值变化量。
[0130]
本实施例利用mser算法得到了所述样本图像中包含字符的候选区域。mser算法具有显著性、仿射不变性、稳定性等特征,能在复杂背景中准确提取目标区域。
[0131]
实际应用时,利用mser算法对所述样本图像进行字符区域检测,得到样本图像中包含字符的候选区域;对该候选区域进行垂直投影,得到至少一个字符区域,针对得到的至少一个字符区域的每个字符区域,根据相应字符区域,结合聚类算法,确定该样本图像中相应字符区域所对应字符所属的行区域。当行区域包含多个字符时,基于相邻字符间的距离,对行区域中的多个字符对应的多个字符区域进行合并,得到字符区域;当行区域包含一个字符时,将一个字符对应的字符区域作为字符区域。
[0132]
上述先对含字符的候选区域进行垂直方向投影,以实现对包含字符的候选区域的分割。根据经验值设定投影直方图的信息熵阈值(如,0.25),对信息熵小于阈值的含字符的候选区域进行踢除,得到多个字符区域,这里的多个字符区域中均分别包含一个字符。由于一个字符的长宽比满足一定的形态约束,因此,在对含字符的候选区域进行垂直方向投影后,可以计算投影分割后的多个字符区域中每个字符区域的长宽比,并剔除掉掉那些不满足形态约束的字符区域。
[0133]
进行形态约束筛选后的字符区域在行坐标的分布中具有局部一致性,统计满足形态约束的所有字符区域的坐标,通过局部聚类算法(每一行中每个包含一个字符的区域的垂直坐标相同),可以确定样本图像中每一个文本行所在的行坐标。实际应用时,当某个文本行中包含多个字符时,通过判断字符与字符之间的间距,对每一个文本行中的多个字符对应的字符区域进行合并(即对同一行中的每一个包含一个字符的区域进行连通),得到合并后的文本行区域。而当某个文本行中仅包含一个字符时,将该一个字符对应的字符区域作为该文本行区域。这里的文本行区域即为字符区域。
[0134]
在实际应用中,对视频流中的字符检测,需要从视频流中抽帧出需要识别出字符物体目标的预测视频帧。该视频流抽取方法包括以下步骤:
[0135]
预先按照业务逻辑设置不同的标签字符,进行不同频次的抽帧设置;
[0136]
当从直播中获得当前视频流后,根据当前业务逻辑进行对应频次的抽帧操作。
[0137]
由于平台直播路数可达到几百上千路,每一路每秒钟的帧数可达到20~30帧,对
识别的实时性有较高的要求。我们根据业务逻辑,对不同的标签字符,进行不同频次的抽帧,进行识别。比如直播中的人物,只需要几秒钟抽一帧即可识别,而一些特定触发事件(如杀),则每秒钟抽一帧进行识别。这样,大大节省了服务的计算量,从而节省了gpu机器资源,并保证了识别的实时性。
[0138]
由于在购物、游戏等直播中,很多主播通常会在直播画面外增加边框,边框中会挂上一些主播的信息等。因此,直播中的字符位置并非固定。要识别这些字符,就需要先定位其所在位置。通过将字符区域作为目标物体,使用目标检测算法,能较为准确地识别字符所在区域。根据业务逻辑,裁剪需要识别的字符大致区域位置,从而降低需要处理的图像分辨率。对字符所处位置存在的特殊图形元素,也可以进行数据标注,并训练目标检测模型,从而识别这些符号,定位到需要识别的字符区域。
[0139]
在步骤s3中,通过字符识别模型识别所述字符区域中的字符,从而得到游戏直播中实时的游戏信息。
[0140]
从识别出的字符区域中识别出字符。该识别也可以利用神经网络算法,比如,还可以采用yolo算法。比如建立字符识别模型。上述是将字符出现区域做为目标建立目标识别,在本实现步骤中,可以将字符的不同元素做为目标,进行识别。比如,目标分为数字元素、文字元素、英文元素、特殊符号元素或特殊图形元素。设置对应的目标检测模型。也可以利用yolo算法建立一个目标检测模型,预测出多个不同元素内容出现帧的位置。
[0141]
首先,使用通用字符识别模型,在后台的gpu机器上构建数字与英文字母的识别服务。当有直播间启动时,对相应的直播间,同时启动一个实时的识别定位直播中的字符区域后,将数字字符从原直播图像中裁剪,并通过http请求字符识别服务,识别出其中包含的数字与英文字符等,从而得到直播中实时的业务信息。
[0142]
上述的算法仅是举例,比如也可以将样本分成8*4共32块,统计每一块中的黑色像素所占的每一块中总像素值的比率,作为特征值,这样,每一个待识别的样本就有一组一行32列的数组作为特征。特征选取后的预处理,可以用pca主成分分析提取主要特征训练,后将从原直播图像中裁剪对应的区域后,通过所述模型进行预测,同样也可以识别得到对应的元素内容及出现帧上的位置信息。
[0143]
其中,使用通用字符识别模型识别字符区域中的字符进一步包括:
[0144]
采用cnocr模型或paddleocr模型识别所述字符区域中的字符,该字符包括数字及英文字符。
[0145]
由于字符区域中通常包含英文、数字等字符,本实施例通过开源的中文光学字符识别套件cnocr(即cnocr模型)获取直播画面中的ocr token的集合,集合中包含了字符的语义信息。实际应用中,也可以通过开源的字符识别套件paddleocr(paddleocr模型)实现对字符区域中字符的识别。
[0146]
上述cnocr模型或paddleocr模型能够较好地识别文字、数字与字母。在实际应用中,可在后台的gpu机器上构建数字与英文字母的识别服务。如使用基于python的flask构建http服务,接收识别请求,接收到请求后,即可用字符识别模型进行识别。当有直播间启动时,对相应的直播间,同时启动一个实时的识别定位,定位直播中的字符区域后,将字符从原直播图像中提取,并通过http请求字符识别服务,识别出其中包含的数字与英文字符等,从而得到游戏直播中实时的游戏信息,比如击杀次数,死亡次数等等。
[0147]
由于平台直播路数可达到几百上千路,每一路每秒钟的帧数可达到20~30帧,对识别的实时性有较高的要求。因此,可根据业务逻辑,对不同的标签字符,使用ffmpeg库对视频进行编解码,从而进行不同频次的抽帧,进行识别。比如王者荣耀中的英雄,只需要几秒钟抽一帧即可识别,而游戏中的击杀死亡数,则每秒钟抽一帧进行识别。这样,大大节省了服务的计算量,从而节省了gpu机器资源,并保证了识别的实时性。
[0148]
由于直播中画面清晰度有限,且字符识别存在一定错误率,直播中可能存在漏帧或者处理过慢导致的服务阻塞的现象,字符识别服务的结果不能直接作为识别结果,需要进行优化。本实施例通过将连续帧的识别结果存储为一个时间序列,对该时间序列中的字符识别结果的值与字符定位做比较,从而剔除识别异常的数据,保证识别的数字结果在时间序列中保持一致。将优化后的识别结果作为最终的字符识别结果。
[0149]
而对于网络阻塞的情况,需要每次抽取直播流中的最新帧进行识别,抛弃掉由于网络阻塞导致的积压帧,从而使得每次识别结果都是较为实时的结果。也可以是,若检测到抽帧后的预测视频帧未处理量达到预设值,则直接进行所述未处理帧的丢帧处理,并取当前视频帧进行所述文字物体目标的识别。
[0150]
根据优化后的识别结果进行直播中实时状态判别计算,其进一步包括:预先按照不同识别结果类别设置在对应直播区域设置不同的处理进程;获得识别结果后,判别对应的类别,再根据该类别对应的处理进程完成处理。识别出实时的游戏数据后,可以进行主播角色的实时状态判别:是否死亡,是否三杀/四杀/五杀等,从而在直播间弹出相应的打赏提示与文案,从而增加用户在直播间的互动打赏等,提升用户在观看直播时的趣味性与黏性。
[0151]
实施例二
[0152]
本实施例提供了一种字符识别装置,用于互联网游戏直播,请参看图5,该字符识别装置包括:
[0153]
画面获取模块1,用于获取开启直播的房间对应的房间标识,根据所述房间标识开启直播识别任务,对直播中的画面字符进行识别;
[0154]
字符区域识别模块2,用于将直播画面中的字符区域作为目标,采用目标检测算法识别字符所在区域,并提取识别得到的字符区域;
[0155]
字符识别模块3,用于通过字符识别模型识别所述字符区域中的字符,从而得到游戏直播中实时的游戏信息。
[0156]
上述画面获取模块1、字符区域识别模块2及字符识别模块3的功能及实现方法均如上述实施例一中所述,在此不再赘述。
[0157]
实施例三
[0158]
本实施例提供了一种字符识别设备。请参看图6,该字符识别设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对字符识别设备500中的一系列指令操作。
[0159]
进一步地,处理器510可以设置为与存储介质530通信,在字符识别设备500上执行存储介质530中的一系列指令操作。
[0160]
字符识别设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如windows serve、vista等等。
[0161]
本领域技术人员可以理解,图6示出的字符识别设备结构并不构成对字符识别设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0162]
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质。该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行实施例一中的字符识别方法的步骤。
[0163]
实施例二中的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件的形式体现出来,该计算机软件存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0164]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置及设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0165]
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。
[0166]
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献