当前位置: 首页 > 科技观察

五分钟技术讲座-OCR在游戏加速效果中的应用

时间:2023-03-13 20:59:25 科技观察

Labs简介OCR(OpticalCharacterRecognition,光学字符识别)技术已经广泛应用于日常文字识别、图像识别、身份认证等场景。面对大量需要处理的信息数据,传统的人工识别工作量大且繁琐,而且由于大部分工作是机械重复的,对工作人员来说可能显得乏味。要从图像中获取有用的信息,可以考虑使用识别技术实现文本识别自动化,提高工作效率。Part01●图像预处理●一张完整的游戏运行截图中除了我们需要的延迟值外,还会有上下行数据、位置坐标、幸存者人数等数据(不同游戏的数据不同),考虑到OCR识别会分析图片上的所有值。我们需要对多个数据进行进一步的分析和过滤,这在一定程度上增加了获取延迟值的难度。所以先对图片进行预处理,只截取有用的时间。延伸部分。同一款游戏的延迟值在屏幕上的位置是固定的,不同的游戏只需要改变拦截位置即可。Part02●OCR识别分析●得到截取的游戏画面后,接下来就是进行识别,得到延时数据。这里我们将应用OCR识别技术。它利用光学技术和计算机技术读取纸上的文字或图片,将其转换成计算机可以接受的格式,并进行处理以识别有用的信息。OCR识别过程一般包括图像处理(二值化、降噪、校正等)、特征提取、对比度检测和内容识别。近年来,随着人工智能的不断发展,基于深度学习的OCR在识别率和效率上均优于传统方法。目前百度、腾讯、华为等公司都提供OCR服务。无需了解具体的识别技术细节,调用API接口即可完成图文识别。我们选择使用百度的OCR文字识别接口服务,根据官方API文档完成方法调用。具体使用方法如下:1.安装aip识别包,导入对应的libpipinstallbaiduaipfromaipimportAipOcr2。这里初始化OCRdefinitOcr(ocrAuth):client=AipOcr(ocrAuth['appid'],ocrAuth['appkey'],ocrAuth['secretkey'])returnclient需要用百度账号申请appkid,appkey和secretkey信息。3、调用具体的识别方法result=client.webImage(image)接口服务返回数据:[{'words':'ping:77ms'}]通过查看不同的游戏,我们发现有些游戏的延迟值前面有“平”,有的是直接值,有的是中文的“延迟”,所以需要对返回的识别结果进行进一步处理,以区分不同的游戏。最后通过正则表达式获取延迟值。re_obj=re.compile(r"\d+\.?\d*")res_list=re_obj.findall(words)Part03●工具实现●完成图像处理和识别,下一步就是友好的展示结果,我们实现一个简单的可执行接口工具来串联识别过程。总体流程:工具内容主要包括游戏选择、图片路径选择、游戏截图。为了减少识别调用次数,提高识别效率,可以将图片合并处理。最终的工具界面是这样的:Part04●游戏画面识别●接下来就是具体使用了。首先需要选择一个特定的游戏,获取游戏图片的保存路径进行读取,然后对游戏图片进行截图获取坐标。图片通过OCR识别后,显示结果,并根据识别结果和图片时间绘制图形。我们用一张游戏图片进行测试:识别结果如下,5个数据为1组,55张图片共耗时9.28s。该图直观地显示了游戏延迟值随时间的变化情况。通过手动查看图片,对比识别结果,两者的延迟值是一致的。针对不同的游戏,只需要改变图片的加载路径和截取的坐标位置即可。Part05●结语●结合OCR技术,可以快速有效地识别不同类型的图像信息,减少人工工作量,满足项目测试和数据比对的需要。随着信息技术的不断发展,各种OCR技术将越来越多地应用到日常生活中,为人们带来效率和便利。作者:冯绪超单位:中国移动智能家居运营中心【本文为专栏作家《移动实验室》原创稿件,转载请联系原作者】点此阅读更多该作者好文