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

文档序号:23719095发布日期:2021-01-24 06:51阅读:110来源:国知局
[0001]本申请实施例涉及图像处理
技术领域
:,特别涉及一种图像识别方法、装置、设备及存储介质。
背景技术
::[0002]云游戏(cloudgaming)又可称为游戏点播(gamingondemand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thinclient)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。[0003]目前,在云游戏场景下,需要对游戏界面进行特征提取和识别,以确定出该界面中的相关界面元素。但是对于亮度过高或特征不明显的图像,由于提取到的特征点数量较少,进而影响到图像识别的准确度。以对云游戏界面进行识别为例,如图1所示,其示例性示出了一个云游戏界面1的示意图,该云游戏界面1中模拟了阳光照射效果,使得界面整体的亮度值偏高,阳光照射效果覆盖在界面中的邮件控件2上,从而会影响到对该邮件控件2进行识别的准确度。技术实现要素:[0004]本申请实施例提供了一种图像识别方法、装置、设备及存储介质,能够提高图像识别的准确度。所述技术方案如下:[0005]根据本申请实施例的一个方面,提供了一种图像识别方法,所述方法包括:[0006]获取云应用提供的待识别图像,所述云应用是运行在服务器上的应用程序;[0007]在所述待识别图像属于曝光过度图像的情况下,对所述待识别图像进行亮度降低处理,得到亮度调节后图像;[0008]对所述亮度调节后图像进行轮廓增强处理,得到轮廓增强后图像;[0009]基于对所述轮廓增强后图像的特征提取结果,确定所述待识别图像的识别结果。[0010]根据本申请实施例的一个方面,提供了一种图像识别装置,所述装置包括:[0011]图像获取模块,用于获取云应用提供的待识别图像,所述云应用是运行在服务器上的应用程序;[0012]亮度调节模块,用于在所述待识别图像属于曝光过度图像的情况下,对所述待识别图像进行亮度降低处理,得到亮度调节后图像;[0013]轮廓增强模块,用于对所述亮度调节后图像进行轮廓增强处理,得到轮廓增强后图像;[0014]图像识别模块,用于基于对所述轮廓增强后图像的特征提取结果,确定所述待识别图像的识别结果。[0015]根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述图像识别方法。[0016]根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述图像识别方法。[0017]根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图像识别方法。[0018]本申请实施例提供的技术方案可以包括如下有益效果:[0019]对于云应用提供的待识别图像,如果该待识别图像属于曝光过度图像,通过对其进行亮度降低处理和轮廓增强处理,然后对该处理后得到的图像进行特征提取和识别,由于图像经亮度降低处理和轮廓增强处理之后,轮廓部分得到了增强,因此有助于提取到更多有用的特征点(即对图像识别的准确度提升有积极意义的特征点),从而提升对云应用相关图像识别的准确度。附图说明[0020]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0021]图1示例性示出了一个云游戏界面的示意图;[0022]图2是本申请一个实施例提供的云游戏系统架构的示意图;[0023]图3是本申请一个实施例提供的云端服务器架构的示意图;[0024]图4是本申请一个实施例提供的云游戏主机的功能模块示意图;[0025]图5是本申请一个实施例提供的剧本工作的流程图;[0026]图6是本申请一个实施例提供的图像识别方法的流程图;[0027]图7是本申请另一个实施例提供的图像识别方法的流程图;[0028]图8是本申请一个实施例提供的云游戏界面截图的示意图;[0029]图9是本申请一个实施例提供的查表确定对比度的示意图;[0030]图10是本申请一个实施例提供的原图和增强后图像比对的示意图;[0031]图11是本申请一个实施例提供的生成轮廓增强后图像的流程图;[0032]图12是本申请一个实施例提供的特征点提取的示意图;[0033]图13是本申请一个实施例提供的云游戏界面切换控制的示意图;[0034]图14是本申请一个实施例提供的特征点提取结果比对的示意图;[0035]图15是本申请一个实施例提供的图像识别装置的框图;[0036]图16是本申请另一个实施例提供的图像识别装置的框图;[0037]图17是本申请一个实施例提供的计算机设备的框图。具体实施方式[0038]为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。[0039]本申请实施例提供的图像识别方法,适用于对各种类型的图像进行识别,如照片、视频图像、界面截图等。通过对待识别图像进行图像识别,可以得到该待识别图像中包含的图像内容,并结合实际业务需求基于该识别结果进行下一步处理。[0040]在一示例性应用场景中,本申请实施例提供的图像识别方法,可应用于云游戏应用场景下,对云游戏界面(或云游戏界面的截图)进行图像识别。[0041]图2示例性示出了一种云游戏系统架构的示意图,该系统架构可以包括:云端服务器10和玩家游戏终端20。[0042]云端服务器10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。玩家游戏终端20可以是智能手机、平板电脑、智能电视、智能音箱、多媒体播放设备、笔记本电脑、台式计算机等,但并不局限于此。玩家游戏终端20和云端服务器10之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不作限制。[0043]在示例性实施例中,如图3所示,云端服务器10可以包括云游戏主机11和推流服务器12。[0044]云游戏主机11用于安装运行游戏应用程序。例如,游戏应用程序可以基于云游戏主机11提供的硬件处理器(如板卡)或者软件运行环境(如容器)进行运行。云游戏主机11具备处理器、存储器等必要的硬件组成部分,但是可以没有物理显示屏幕。另外,云游戏主机11中可以运行一个推流进程,该推流进程用于将游戏的声音和画面发送给推流服务器12,而后由推流服务器12将上述游戏的声音和画面发送给玩家游戏终端20。可选地,不同的云游戏主机11可以提供不同的云游戏产品,即不同的云游戏主机11上可以安装运行不同的游戏应用程序,如动作类游戏应用程序、冒险类游戏应用程序、求生类游戏应用程序、角色扮演类游戏应用程序等,但并不局限于此。[0045]玩家游戏终端20可以通过客户端或网页的方式,展示游戏的画面并播放游戏的声音。另外,在用户玩游戏的过程中,还可将用户产生的操控事件(如屏幕点击、滑动、输入等事件)通过推流服务器12回传给云游戏主机11,以便云游戏主机11对上述操控事件进行响应,确定下一步显示的画面和/或确定下一步播放的声音。[0046]在示例性实施例中,本申请实施例提供的图像识别方法可以由云端服务器10(如云游戏主机11)执行。例如,如图4所示,云游戏主机11上可以运行一运维模块11a,该运维模块11a集成了图像识别和游戏操控功能。在游戏启动时和游戏运行过程中,运维模块11a会对该云游戏界面进行截图,并对该截图进行图像识别,得到该云游戏界面中的指定控件。另外,运维模块11a可以产生针对上述指定控件的操控事件(如点击、滑动、输入等操控事件),并控制游戏进程自动执行上述操控事件,从而实现对游戏进度的控制。[0047]另外,云游戏主机11的运维模块11a可以基于剧本来执行游戏控制逻辑。在本申请实施例中,剧本用于描述如何控制游戏预加载到某个画面。可选地,剧本可以是xml(extensiblemarkuplanguage,可扩展标记语言)文件,将需要识别的模板图片、识别区域和所需执行的操控事件,都使用xml进行描述。相对于json(javascriptobjectnotation,js对象简谱),使用xml编写剧本的好处是逻辑层次清晰,易于修改,且属性名称配置更为规范。另外,运维模块11a可以是使用c++语言进行开发的,c++更适合运行在云游戏主机11的linux系统中,因为其执行速度快,且占用系统资源少,较少会和游戏抢占系统资源。[0048]示例性地,如下表1所示,剧本逻辑设计可以包括以下几个功能节点,以适配各种异常场景:[0049]表1[0050][0051]如图5所示,其示出了剧本工作的流程图。每个match节点为一个步骤,match节点可以嵌套,以形成一条完整的链路来描述游戏的预加载步骤。在执行某一个步骤时,如果匹配正确则继续执行下一个步骤,如果匹配失败,那就有可能遇到了一些异常场景,故需要truecase或falsecase节点来帮忙处理这些异常场景。[0052]在示例性实施例中,本申请实施例提供的图像识别方法,可以运用一些人工智能(artificialintelligence,ai)技术辅助进行图像识别。例如,计算机视觉(computervision,cv)技术、机器学习(machinelearning,ml)技术等。[0053]人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。[0054]人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。[0055]计算机视觉技术是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、ocr(opticalcharacterrecognition,光学字符识别)、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d(3-dimension,三维)技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。[0056]机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。[0057]例如,通过计算机视觉技术对待识别图像进行特征提取处理,得到特征提取结果,进而基于特征提取结果确定该待识别图像的识别结果。上述特征提取处理可以采用相关的特征点提取算法,也可以采用基于机器学习技术训练得到的神经网络模型,本申请实施例对此不作限定。[0058]本申请实施例提供的方法,各步骤的执行主体可以是计算机设备,该计算机设备是指具备数据计算、处理和存储能力的电子设备。该计算机设备可以是诸如智能手机、平板电脑、智能电视等终端;也可以是服务器。在下述方法实施例中,为了便于说明,仅以各步骤执行主体为计算机设备进行介绍。[0059]请参考图6,其示出了本申请一个实施例提供的图像识别方法的流程图。该方法各步骤的执行主体可以是计算机设备,如终端或服务器等。该方法可以包括如下几个步骤(601~604):[0060]步骤601,获取云应用提供的待识别图像。[0061]首先,获取待识别图像。待识别图像是指有待进行识别的图像,如该待识别图像可以是照片、视频图像、界面截图等。通过对待识别图像进行图像识别,可以得到该待识别图像中包含的图像内容。[0062]另外,待识别图像可以是一个完整图像,也可以是从一个完整图像中选取的一部分区域。例如,待识别图像可以是一个完整的界面截图,也可以是从一个完整的界面截图中选取的一部分区域,如该界面截图中右下角位置的一个矩形区域。[0063]可选地,该待识别图像可以是云应用提供的待识别图像,云应用是指运行在服务器上的应用程序。云应用的工作原理是把传统软件“本地安装、本地运算”的使用方式变为“即取即用”的服务,通过互联网或局域网连接并操控远程服务器集群,完成业务逻辑或运算任务的一种新型应用。典型地,云应用包括云游戏、云邮件、云办公软件等。[0064]步骤602,在待识别图像属于曝光过度图像的情况下,对待识别图像进行亮度降低处理,得到亮度调节后图像。[0065]曝光过度图像是指亮度过高的图像,直观视觉感受是图像中的某些区域会发白。对于拿摄像头拍摄的照片或视频图像,产生曝光过度图像的原因可能是光圈开得过大、底片的感光度太高、曝光时间过长等,也有可能是光线太强所导致,如闪光灯或环境光的光线太强导致曝光过度。[0066]在示例性实施例中,可以通过对待识别图像的亮度值进行分析,来确定该待识别图像是否为曝光过度图像。例如,获取待识别图像的平均亮度值,该平均亮度值用于反映待识别图像的整体亮度情况;若该平均亮度值大于门限值,则确定待识别图像属于曝光过度图像;若该平均亮度值小于门限值,则确定待识别图像不属于曝光过度图像。上述门限值可以是结合实验或经验设定的值,本申请实施例对此不作限定。另外,有关平均亮度值的计算方式可参见下文实施例中的介绍说明。[0067]在本申请实施例中,如果待识别图像属于曝光过度图像,则对该待识别图像进行亮度降低处理,得到亮度调节后图像。可选地,采用伽马校正(gamma校正)的方式对该待识别图像进行亮度降低处理。图像的gamma值也称为灰度系数,一般用于计算图像光亮强度,正常值为1.0,图像的gamma值小于1.0代表整体偏暗,gamma值在1.0以上,取值越大则代表光照强度越来越强。所谓gamma校正就是对图像的伽玛曲线进行编辑,以对图像进行非线性色调编辑的方法,检出图像信号中的深色部分和浅色部分,并使两者比例增大,从而提高图像对比度效果。[0068]另外,如果待识别图像不属于曝光过度图像,则不需要对该待识别图像进行亮度调整处理,可以直接对该待识别图像进行特征提取,并基于特征提取结果确定出待识别图像的识别结果。[0069]步骤603,对亮度调节后图像进行轮廓增强处理,得到轮廓增强后图像。[0070]轮廓增强处理是指将图像相邻像元(或区域)的亮度值(或色调)相差较大的边缘(即影像色调突变或地物类型的边界线)处加以突出强调的技术方法,轮廓增强处理也称为边缘增强处理。经轮廓增强处理后的图像能更清晰地显示出不同的物类型或现象的边界,或线形影像的行迹,以便于不同的物类型的识别及其分布范围的圈定。[0071]在本申请实施例中,通过对亮度调节后图像进行轮廓增强处理,得到轮廓增强后图像,而后对该轮廓增强后图像进行特征提取,能够提取出更多有用的特征点(即对图像识别的准确度提升有积极意义的特征点)。[0072]步骤604,基于对轮廓增强后图像的特征提取结果,确定待识别图像的识别结果。[0073]在本申请实施例中,对特征提取所采用的方法不作限定,如sift(scale-invariantfeaturetransform,尺度不变特征变换)算法、surf(speededuprobustfeatures,加速稳健特征)算法等。上述特征点提取算法的思路是从图像的轮廓和角点中寻找特征点。之后,基于提取得到的特征点,进一步确定该待识别图像的识别结果,例如识别结果可以是该待识别图像中包含的图像内容是什么,从而可以结合实际业务需求基于该识别结果进行下一步处理。[0074]综上所述,本申请实施例提供的技术方案,对于云应用提供的待识别图像,如果该待识别图像属于曝光过度图像,通过对其进行亮度降低处理和轮廓增强处理,然后对该处理后得到的图像进行特征提取和识别,由于图像经亮度降低处理和轮廓增强处理之后,轮廓部分得到了增强,因此有助于提取到更多有用的特征点(即对图像识别的准确度提升有积极意义的特征点),从而提升对云应用相关图像识别的准确度。[0075]请参考图7,其示出了本申请另一个实施例提供的图像识别方法的流程图。该方法各步骤的执行主体可以是计算机设备,如终端或服务器等。该方法可以包括如下几个步骤(701~707):[0076]步骤701,获取云应用提供的待识别图像。[0077]步骤702,获取待识别图像的平均亮度值,平均亮度值用于反映待识别图像的整体亮度情况。[0078]在本申请实施例中,通过获取待识别图像的平均亮度值,来判定该待识别图像是否属于曝光过度图像。[0079]可选地,步骤702包括如下几个子步骤:[0080]1、对待识别图像的像素值进行归一化处理,得到归一化图像;[0081]2、确定归一化图像中各个像素的灰度值均值;[0082]3、基于灰度值均值,确定平均亮度值。[0083]归一化处理是指将待识别图像的像素值经过处理后,限制在一定范围之内,以方便后续的数据处理流程。在对待识别图像的像素值进行归一化处理之后,可以将该待识别图像转换为归一化图像,该归一化图像可以是一个灰度图像,归一化图像中各个像素的像素值为灰度值,且该灰度值属于一定范围之内,如在[0,255]这一取值范围之内。之后,对归一化图像中各个像素的灰度值求和,并将该求和结果除以归一化图像的像素数量,得到灰度值均值。[0084]可选地,采用如下公式计算平均亮度值γ:[0085][0086]其中,mean表示归一化图像中各个像素的灰度值均值。[0087]示例性地,获取待识别图像的平均亮度值的python代码如下:[0088]#获取待识别图像的平均亮度值,正常值为0.5[0089]defgetimageaveragebrightness(imgsource):[0090]#计算灰度值均值[0091]imggray=cv2.cvtcolor(imgsource,cv2.color_bgr2gray)[0092]nmean=np.mean(imggray)[0093]#得出图像的平均亮度[0094]ngammavalue=math.log10(0.5)/math.log10(nmean/255)[0095]returnngammavalue[0096]在上述这段python代码中,imgsource代表待识别图像,getimageaveragebrightness(imgsource)表示获取待识别图像的平均亮度值。imggray表示对待识别图像的像素值进行归一化处理得到归一化图像之后,该归一化图像中各个像素的灰度值。nmean=np.mean(imggray)表示计算归一化图像中各个像素的灰度值均值,nmean为灰度值均值。ngammavalue=math.log10(0.5)/math.log10(nmean/255)表示采用上述公式计算待识别图像的平均亮度值,ngammavalue即为最终计算得到的平均亮度值。[0097]步骤703,若平均亮度值大于门限值,则对待识别图像进行亮度降低处理,得到亮度调节后图像。[0098]在本申请实施例中,如果待识别图像的亮度值大于门限值,则确定该待识别图像属于曝光过度图像,对该待识别图像进行亮度降低处理,得到亮度调节后图像;如果待识别图像的亮度值小于门限值,则确定该待识别图像不属于曝光过度图像,不需要对该待识别图像进行亮度调整处理,可以直接对该待识别图像进行特征提取,并基于特征提取结果确定出待识别图像的识别结果。[0099]例如,在采用上述步骤702中介绍的公式计算出待识别图像的平均亮度值γ之后,如果0.5≤γ<1.0,则确定待识别图像属于亮度正常图像;如果γ≥1.0,则确定待识别图像属于偏亮图像;如果γ<0.5,则确定待识别图像属于偏暗图像。其中,偏亮图像即为曝光过度图像,亮度正常图像和偏暗图像均不属于曝光过度图像。[0100]需要说明的是,在本申请实施例中,在待识别图像为偏亮图像的情况下,会对其进行亮度降低处理,因为图像亮度偏高会导致特征识别不准确,影响特征点的提取。但是,在待识别图像为亮度正常图像和偏暗图像的情况下,不需要对其亮度进行调整处理,例如不需要对偏暗图像进行亮度提升处理。比如,以待识别图像是图8所示的云游戏界面80的截图为例,该云游戏界面80中包括弹窗81,显示层级位于弹窗81下方的界面内容以蒙版形式进行显示,由于界面内容叠加了蒙版,导致界面内容偏暗,但是该云游戏界面80的目的是为了提示用户关注弹窗81中的显示内容,而不是关注位于弹窗81下方的界面内容,因此在进行图像识别时,也不需要对用户的非关注区域进行亮度提升处理,从而让特征提取算法能够更多地提取到关注区域的图像特征,而忽略掉非关注区域的图像特征,这有助于提升最终的图像识别结果的准确度。[0101]可选地,步骤703包括如下几个子步骤:[0102]1、对待识别图像进行伽马校正处理,确定待识别图像的伽马值;[0103]2、基于该伽马值对待识别图像进行对比度增强处理,得到亮度调节后图像。[0104]在待识别图像属于曝光过度图像的情况下,对该待识别图像进行伽马校正处理,调整其gamma值。可选地,按照过度曝光的严重程度由低到高,可以分为稍微过度曝光、较严重过度曝光和严重过度曝光。对于稍微过度曝光的图像(如其平均亮度值γ的取值范围为1.0≤γ<2.0),将其gamma值调整为第一数值;对于较严重过度曝光的图像(如其平均亮度值γ的取值范围为2.0≤γ<3.0),将其gamma值调整为第二数值;对于严重过度曝光的图像(如其平均亮度值γ≥3.0),将其gamma值调整为第三数值;其中,第一数值>第二数值>第三数值。例如,第一数值为0.8,第二数值为0.7,第三数值为0.6。另外,在待识别图像不属于曝光过度图像的情况下(如其平均亮度值γ<1.0),不对其进行伽马校正处理,返回gamma值为1.0。需要说明的是,上述对于过度曝光的级别划分数量和相应的平均亮度值γ取值范围仅是示例性和解释性的,这可以结合实际需求进行灵活调整,本申请实施例对此不作限定。[0105]示例性地,确定待识别图像的伽马值的python代码如下:[0106]#基于待识别图像的平均亮度值,确定待识别图像的gamma值[0107][0108]在上述这段python代码中,nbrightness代表待识别图像的平均亮度值,nbrightness代表对待识别图像进行伽马校正处理后确定的gamma值。具体地,在nbrightness<1.0的情况下,不进行伽马校正处理,返回gamma值为1.0;在1.0≤nbrightness<2.0的情况下,返回gamma值为0.8;在2.0≤nbrightness<3.0的情况下,返回gamma值为0.7;在nbrightness≥3的情况下,返回gamma值为0.6。[0109]在确定待识别图像的伽马值之后,基于该伽马值对待识别图像进行对比度增强处理,得到亮度调节后图像。在示例性实施例中,可以通过查表的方式,基于待识别图像的原始对比度,查表得到调整后对比度,从而得到经对比度增强处理后的亮度调节后图像。例如,如图9所示,原图中相邻像素的像素值分别为40和30,属于低对比度。通过查表得到与上述原始对比度对应的调整后对比度为像素值90和10,因此将原图中一部分像素的像素值由40调整为90,另一部分像素的像素值由30调整为10,从而得到高对比度的输出图像。[0110]示例性地,对比度增强处理的python代码如下:[0111][0112][0113]在上述这段python代码中,ngamma即为上一步返回的gamma值(即上一段代码中的nidealgamma)。table即定义了一个表格,以实现通过查表的方式基于待识别图像的原始对比度,查表得到调整后对比度。最后返回输出一个经对比度增强处理后的图像。[0114]结合参考图10,图10左侧部分的(a)图示是未经伽马校正和对比度增强处理的原始待识别图像,图10左侧部分的(b)图示是对该原始待识别图像进行特征点提取处理得到的特征点的示意图。图10右侧部分的(c)图示是经过伽马校正和对比度增强处理的处理后图像,图10右侧部分的(d)图示是对该处理后图像进行特征点提取处理得到的特征点的示意图。对比图示(a)和(c)可以直观发现,原始待识别图像的三角形按钮的边缘不够明显,而处理后图像的三角形按钮的边缘表现的更为清晰,这样更有利于图像识别提取特征点。对比图示(b)和(d)可以直观发现(特征点以黑色圆圈所示),原始待识别图像中提取得到的特征点数量较少,而处理后图像中提取得到的特征点数量更多,更有利于图像识别。[0115]步骤704,基于亮度调节后图像,对图像内容进行边缘检测,得到轮廓图像。[0116]边缘检测是图像处理和计算机视觉中常用的一种图像处理方式,其目的是标识图像中亮度变化明显的点。通过对亮度调节后图像进行边缘检测,可以得到一张轮廓图像,轮廓图像可以是二值化图像,如像素值1表示属于轮廓的像素,像素值0表示不属于轮廓的像素。[0117]在本申请实施例中,对边缘检测所采用的方法不作限定,其可以是一些通用的边缘检测算法。另外,在进行边缘检测时,可以通过设定边缘检测算法的相关参数,使得从亮度调节后图像中检测出偏亮的轮廓,得到轮廓图像。例如,如果采用opencv中的cv2.canny算法进行边缘检测,可以将cv2.canny接口的阈值设为了20-60,从而达到提取图像中偏亮部分轮廓的目的。另外,边缘检测算法中设置的预定轮廓大小可以结合实际需求进行设置,例如对于云游戏界面的截图,由于界面控件的轮廓通常比较细小,因此预定轮廓大小的数值可以设置的小一些,如设置为3像素,本申请实施例对此不作限定。[0118]步骤705,对轮廓图像和亮度调节后图像进行叠加处理,得到轮廓增强后图像。[0119]可选地,本步骤包括如下几个子步骤:[0120]1、以轮廓图像为掩膜,对轮廓图像和亮度调节后图像进行按位与操作,得到带颜色的轮廓图像;[0121]2、对于带颜色的轮廓图像和亮度调节后图像中相同位置的像素点,进行像素值相加,得到轮廓增强后图像。[0122]掩膜是一种图像操作原理,通常为某个区域,区域内的图像不会被用于计算,而超出该区域外的图像会被用于计算,比如常用的抠图,就是将感兴趣的区域设为掩膜,那么其他区域的像素就会重置为0或255。在本申请实施例中,以轮廓图像为掩膜,即该轮廓图像中的轮廓部分为感兴趣区域,除轮廓部分之外的其他部分为非感兴趣区域。对于感兴趣区域,对轮廓图像和亮度调节后图像对应位置的像素值进行按位与操作,对于非感兴趣区域,其像素值直接值为0或255即可。[0123]按位与操作是指对两个二进制数据相对应的二进制位,进行与运算。即1&1=1,1&0=0,0&1=0,0&0=0,其中,&表示与运算符。将轮廓图像和亮度调节后图像对应位置的像素值采用二进制数据来表示,然后进行按位与操作,得到带颜色的轮廓图像。之后,将该带颜色的轮廓图像和亮度调节后图像对应位置的像素值进行相加求和处理,得到轮廓增强后图像。可选地,如果某一像素求和得到的像素值大于额定最大值(如255),那么将该像素的像素值设为额定最大值。[0124]示例性地,生成轮廓增强后图像的python代码如下:[0125]#基于亮度调节后图像,对图像内容进行边缘检测,得到轮廓图像[0126]imageout=cv2.canny(imagein,20,60,aperturesize=3)[0127]#以轮廓图像为掩膜,对轮廓图像和亮度调节后图像进行按位与操作,得到带颜色的轮廓图像[0128]imagebitwise=cv2.bitwise_and(imagein,imagein,mask=imageout)[0129]#对于带颜色的轮廓图像和亮度调节后图像中相同位置的像素点,进行像素值相加,得到轮廓增强后图像[0130]imageenhance=cv2.add(imagebitwise,imagein)[0131]在上述这段python代码中,imagein即为输入的亮度调节后图像,通过cv2.canny算法对该图像进行边缘检测,将cv2.canny接口的阈值设为了20-60,从而达到提取图像中偏亮部分轮廓的目的。aperturesize即为预定轮廓大小,将其数值设置为3像素。imageout即为输出的轮廓图像。[0132]然后,mask=imageout表示以轮廓图像为掩膜,通过cv2.bitwise_and算法对轮廓图像和亮度调节后图像进行按位与操作。imagebitwise即为得到的带颜色的轮廓图像。[0133]最后,通过cv2.add算法对于带颜色的轮廓图像和亮度调节后图像中相同位置的像素点,进行像素值相加,得到的imageenhance即表示轮廓增强后图像。[0134]结合参考图11,通过以轮廓图像111为掩膜,对该轮廓图像111和亮度调节后图像112进行按位与操作,得到带颜色的轮廓图像113;然后,对于带颜色的轮廓图像113和亮度调节后图像112中相同位置的像素点,进行像素值相加,得到轮廓增强后图像114。[0135]步骤706,基于轮廓增强后图像进行特征点提取处理,得到特征点。[0136]例如,采用sift算法、surf算法或者其他特征点提取算法,对轮廓增强后图像进行特征点提取处理,得到特征点。[0137]示例性地,特征点提取处理的python代码如下:[0138]#创建opencvsurf特征点提取方法[0139]#并将提取到的特征点绘制到原来图像上[0140]surf=cv2.xfeatures2d.surf_create(1000)[0141]keypoint=surf.detect(cv2.cvtcolor(imgsource,cv2.color_bgr2gray),none)[0142]cv2.drawkeypoints(imgsource,keypoint,imgsource,(0,0,255),1)[0143]在上述这段python代码中,surf=cv2.xfeatures2d.surf_create(1000)代表创建opencvsurf特征点提取方法,通过该方法,将上述轮廓增强后图像转换为灰度图像后进行特征点提取,得到的特征点采用keypoint表示。最后,通过cv2.drawkeypoints方法将上述特征点绘制到原来图像imgsource上。[0144]如图12所示,基于轮廓增强后图像114进行特征点提取处理,得到的特征点115如图中的黑色圆圈所示。[0145]步骤707,基于特征点确定待识别图像的识别结果。[0146]基于提取得到的特征点,进一步确定该待识别图像的识别结果,例如识别结果可以是该待识别图像中包含的图像内容是什么,从而可以结合实际业务需求基于该识别结果进行下一步处理。[0147]综上所述,本申请实施例提供的技术方案,通过对待识别图像进行伽马校正和对比度增强处理得到亮度调节后图像,该亮度调节后图像相比于原始的待识别图像的边缘特征更为明显,因此基于该亮度调节后图像进行边缘检测,有助于提升边缘检测的效果。[0148]另外,将边缘检测得到的轮廓图像和亮度调节后图像进行叠加后,对该叠加后得到图像进行特征提取和识别,相比于将轮廓图像和原始的待识别图像进行叠加,能够提升叠加后得到图像中轮廓的清晰度,进而有助于提升特征提取的有效性和图像识别的准确度。[0149]在一示例性实施例中,以云应用为云游戏应用,待识别图像为云游戏界面(或云游戏界面的截图)为例,相应地,待识别图像的识别结果可以是云游戏界面中的指定控件。云游戏主机在得到待识别图像的识别结果之后,基于设定的游戏控制逻辑,生成针对指定控件的操控事件,然后云游戏主机控制游戏进程执行该操控事件。通过上述方式,云游戏主机能够模拟用户操作,自动将云游戏界面切换到合适的游戏界面,然后再提供给用户进行游戏试玩,相比于需要用户手动进行逐个界面的切换,上述方式能够简化用户操作,帮助用户快速进入合适的游戏界面,减少用户的等待时间。[0150]例如,如图13所示,云游戏主机从游戏进程获取登录界面131之后,可以对该登录界面131中的开始游戏按钮132进行识别,然后控制游戏进程执行针对该开始游戏按钮132的点击事件,触发从登录界面131切换至游戏主界面133。进一步地,云游戏主机可以对游戏主界面133中的竞技对抗按钮134进行识别,然后控制游戏进程执行针对该竞技对抗按钮134的点击事件,触发从游戏主界面133切换至游戏模式选择界面135。之后,云游戏主机将该游戏模式选择界面135推送给玩家游戏终端,用户可以手动在该游戏模式选择界面135中选择想要试玩的游戏模式进入试玩。需要说明的是,上述登录界面131和游戏主界面133可以不用推送给玩家游戏终端,玩家游戏终端直接获取并显示游戏模式选择界面135供用户选择试玩即可,从而帮助用户省去了帐号登录等操作过程,简化用户操作,帮助用户快速进入合适的游戏界面,减少用户的等待时间。[0151]图14示出了对登录界面中的开始游戏按钮进行识别的示意图。待识别图像141可以是从登录界面中截取的一个图像区域,如图14中的(a)部分所示。如果不对该待识别图像141进行处理,直接对该待识别图像141进行识别,得到的特征点提取结果142如图14中的(b)部分所示。如果采用本申请实施例提供的上述方法,对待识别图像141进行亮度降低和轮廓增强处理之后再进行识别,得到的特征点提取结果143如图14中的(c)部分所示。可以看到,经亮度降低和轮廓增强处理之后,得到的特征点数量明显增多,而且增多的是一些位于图像内容的轮廓位置的特征点,这些特征点对图像识别的准确度提升是有积极意义的。[0152]另外,如果采用对待识别图像141进行二值化处理后再识别的方式,得到的特征点提取结果144如图14中的(d)部分所示。与图14中的(c)部分相比,虽然二值化处理后得到的特征点数量更多,但这些特征点中有一大部分是不准确的,即并不是对图像识别的准确度提升是有积极意义的特征点,这些特征点反而会影响到图像识别的准确度。[0153]在另一示例性实施例中,以云应用为云直播应用(如游戏直播、演唱会直播、购物直播或者其他类型的在线直播场景)为例,待识别图像为云直播应用的相关用户界面(或该相关用户界面的截图)。相应地,待识别图像的识别结果可以是上述相关用户界面中的指定控件。[0154]在传统模式下,用户打开云直播应用之后,会显示登录界面、直播内容选择界面、直播内容界面等。例如,用户先在登录界面中输入账号密码进行登录,然后跳转显示直播内容选择界面,该直播内容选择界面中包括多个可供用户选择的直播间预览图,用户点击目标直播间的预览图之后,跳转显示该目标直播间的直播内容界面,查看直播内容。上述过程需要用户手动进行登录、选择直播间等操作,较为繁琐耗时。[0155]在本申请实施例中,云直播服务器可以从云直播应用进程获取登录界面,对该登录界面中的相关操作控件进行识别,然后自动输入默认的帐号密码,并控制云直播应用进程执行登录事件,触发从登录界面切换至直播内容选择界面。进一步地,云直播服务器可以对该直播内容选择界面中的目标直播间的预览图进行识别(该目标直播间可以是预先设定的推荐度高的直播间),并控制云直播应用进程执行针对该目标直播间的预览图的点击事件,触发从直播内容选择界面切换至目标直播间的直播内容界面,然后将该直播内容界面推送给用户终端进行显示。[0156]通过上述方式,上述登录界面和直播内容选择界面可以不用推送给用户终端,用户终端直接获取并显示目标直播间的直播内容界面即可,从而帮助用户省去了帐号登录、直播间选择等操作过程,简化用户操作,帮助用户快速进入推荐的直播间,减少用户的等待时间。[0157]在另一个示例性实施例中,以云应用为云手机应用,待识别图像为云手机界面(或云手机界面的截图)为例,相应地,待识别图像的识别结果可以是云手机界面中的指定控件。[0158]在传统模式下,如果用户希望打开云手机中安装的目标应用程序,云服务器会先将云手机的桌面界面推送给用户终端,用户终端显示该桌面界面,用户点击该桌面界面中的目标应用程序的图标,用户终端将上述点击事件发送给云服务器,云服务器控制云手机执行上述点击事件,触发云手机显示目标应用程序的主界面,然后将该目标应用程序的主界面发送给用户终端进行显示。上述过程需要用户手动查找并点击目标应用程序的图标等操作,较为繁琐耗时。[0159]在本申请实施例中,云服务器可以对该云手机的桌面界面进行识别,识别出目标应用程序的图标之后,直接控制云手机执行上述点击事件,触发云手机显示目标应用程序的主界面,然后将该目标应用程序的主界面发送给用户终端进行显示。[0160]通过上述方式,可以省去用户手动查找并点击目标应用程序的图标等操作,直接向用户提供目标应用程序的主界面,减少用户的等待时间。[0161]下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。[0162]请参考图15,其示出了本申请一个实施例提供的图像识别装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备中。如图15所示,该装置1500包括:图像获取模块1510、亮度调节模块1520、轮廓增强模块1530和图像识别模块1540。[0163]图像获取模块1510,用于获取云应用提供的待识别图像,所述云应用是运行在服务器上的应用程序。[0164]亮度调节模块1520,用于在所述待识别图像属于曝光过度图像的情况下,对所述待识别图像进行亮度降低处理,得到亮度调节后图像。[0165]轮廓增强模块1530,用于对所述亮度调节后图像进行轮廓增强处理,得到轮廓增强后图像。[0166]图像识别模块1540,用于基于对所述轮廓增强后图像的特征提取结果,确定所述待识别图像的识别结果。[0167]在示例性实施例中,如图16所示,所述轮廓增强模块1530包括:边缘检测单元1531和轮廓增强单元1532。[0168]边缘检测单元1531,用于基于所述亮度调节后图像,对图像内容进行边缘检测,得到轮廓图像。[0169]轮廓增强单元1532,用于对所述轮廓图像和所述亮度调节后图像进行叠加处理,得到所述轮廓增强后图像。[0170]可选地,所述轮廓增强单元1532,用于:[0171]以所述轮廓图像为掩膜,对所述轮廓图像和所述亮度调节后图像进行按位与操作,得到带颜色的轮廓图像;[0172]对于所述带颜色的轮廓图像和所述亮度调节后图像中相同位置的像素点,进行像素值相加,得到所述轮廓增强后图像。[0173]在示例性实施例中,所述亮度调节模块1520,用于:[0174]对所述待识别图像进行伽马校正处理,确定所述待识别图像的伽马值;[0175]基于所述伽马值对所述待识别图像进行对比度增强处理,得到所述亮度调节后图像。[0176]在示例性实施例中,所述图像识别模块1540,用于:[0177]基于所述轮廓增强后图像进行特征点提取处理,得到特征点;[0178]基于所述特征点确定所述待识别图像的识别结果。[0179]在示例性实施例中,如图16所示,所述装置1500还包括:亮度获取模块1550和图像判别模块1560。[0180]亮度获取模块1550,用于获取所述待识别图像的平均亮度值,所述平均亮度值用于反映所述待识别图像的整体亮度情况。[0181]图像判别模块1560,用于若所述平均亮度值大于门限值,则确定所述待识别图像属于所述曝光过度图像。[0182]可选地,所述亮度获取模块1550,用于:[0183]对所述待识别图像的像素值进行归一化处理,得到归一化图像;[0184]确定所述归一化图像中各个像素的灰度值均值;[0185]基于所述灰度值均值,确定所述平均亮度值。[0186]在示例性实施例中,所述云应用为云游戏应用,所述待识别图像为云游戏界面,所述待识别图像的识别结果为所述云游戏界面中的指定控件。如图16所示,所述装置1500还包括:事件生成模块1570和事件执行模块1580。[0187]事件生成模块1570,用于基于设定的游戏控制逻辑,生成针对所述指定控件的操控事件。[0188]事件执行模块1580,用于控制游戏进程执行所述操控事件。[0189]综上所述,本申请实施例提供的技术方案,对于云应用提供的待识别图像,如果该待识别图像属于曝光过度图像,通过对其进行亮度降低处理和轮廓增强处理,然后对该处理后得到的图像进行特征提取和识别,由于图像经亮度降低处理和轮廓增强处理之后,轮廓部分得到了增强,因此有助于提取到更多有用的特征点(即对图像识别的准确度提升有积极意义的特征点),从而提升对云应用相关图像识别的准确度。[0190]需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。[0191]请参考图17,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可以用于实施上述实施例中提供的图像识别方法。具体来讲:[0192]该计算机设备1700包括处理单元(如cpu(centralprocessingunit,中央处理器)、gpu(graphicsprocessingunit,图形处理器)和fpga(fieldprogrammablegatearray,现场可编程逻辑门阵列)等)1701、包括ram(random-accessmemory,随机存储器)1702和rom(read-onlymemory,只读存储器)1703的系统存储器1704,以及连接系统存储器1704和中央处理单元1701的系统总线1705。该计算机设备1700还包括帮助服务器内的各个器件之间传输信息的基本输入/输出系统(inputoutputsystem,i/o系统)1706,和用于存储操作系统1713、应用程序1714和其他程序模块1715的大容量存储设备1707。[0193]该基本输入/输出系统1706包括有用于显示信息的显示器1708和用于用户输入信息的诸如鼠标、键盘之类的输入设备1709。其中,该显示器1708和输入设备1709都通过连接到系统总线1705的输入输出控制器1710连接到中央处理单元1701。该基本输入/输出系统1706还可以包括输入输出控制器1710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1710还提供输出到显示屏、打印机或其他类型的输出设备。[0194]该大容量存储设备1707通过连接到系统总线1705的大容量存储控制器(未示出)连接到中央处理单元1701。该大容量存储设备1707及其相关联的计算机可读介质为计算机设备1700提供非易失性存储。也就是说,该大容量存储设备1707可以包括诸如硬盘或者cd-rom(compactdiscread-onlymemory,只读光盘)驱动器之类的计算机可读介质(未示出)。[0195]不失一般性,该计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom(erasableprogrammableread-onlymemory,可擦写可编程只读存储器)、eeprom(electricallyerasableprogrammableread-onlymemory,电可擦写可编程只读存储器)、闪存或其他固态存储其技术,cd-rom、dvd(digitalvideodisc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知该计算机存储介质不局限于上述几种。上述的系统存储器1704和大容量存储设备1707可以统称为存储器。[0196]根据本申请实施例,该计算机设备1700还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1700可以通过连接在该系统总线1705上的网络接口单元1711连接到网络1712,或者说,也可以使用网络接口单元1711来连接到其他类型的网络或远程计算机系统(未示出)。[0197]所述存储器还包括至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述图像识别方法。[0198]在一个示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集在被处理器执行时以实现上述图像识别方法。[0199]可选地,该计算机可读存储介质可以包括:rom(read-onlymemory,只读存储器)、ram(random-accessmemory,随机存储器)、ssd(solidstatedrives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括reram(resistancerandomaccessmemory,电阻式随机存取记忆体)和dram(dynamicrandomaccessmemory,动态随机存取存储器)。[0200]在一个示例性实施例中,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质中读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行上述图像识别方法。[0201]应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。[0202]以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1