五分鐘技術(shù)趣談 | OCR在游戲加速效果上的應(yīng)用
Labs 導(dǎo)讀
OCR(Optical Character Recognition,光學(xué)字符識別)技術(shù)已廣泛應(yīng)用于日常的文字識別、圖像識別、身份認(rèn)證等場景當(dāng)中。在面對海量的需要進(jìn)行加工處理的信息數(shù)據(jù)時(shí),傳統(tǒng)的人工識別工作量大且繁瑣,而且由于大部分工作都是機(jī)械重復(fù)性勞動,對于工作人員來說可能顯得枯燥。從圖像中獲取有用信息,考慮使用識別技術(shù),實(shí)現(xiàn)文字識別自動化,提升工作效率。
Part 01● 圖片預(yù)處理 ●
完整的一張游戲運(yùn)行截圖中除了我們所需要的時(shí)延值外,還會有上下行數(shù)據(jù)、位置坐標(biāo)、生存人數(shù)等數(shù)據(jù)(不同游戲的數(shù)據(jù)存在差異),考慮到OCR識別會把圖片上的所有值都解析出來,我們需要進(jìn)一步對多個(gè)數(shù)據(jù)進(jìn)行分析篩選,在一定程度上加大獲取時(shí)延值的難度,因此先把圖片進(jìn)行預(yù)處理,只截取有用的時(shí)延部分。同一款游戲的時(shí)延值在畫面上的位置一定,針對不同游戲只要改變截取位置。
Part 02● OCR識別分析 ●
拿到截取的游戲圖片后,接下來就要對其進(jìn)行識別,獲取其中的時(shí)延數(shù)據(jù),這里將運(yùn)用到OCR識別技術(shù)。它是利用光學(xué)技術(shù)和計(jì)算機(jī)技術(shù)把紙上或圖片中的文字讀取出來,轉(zhuǎn)換成計(jì)算機(jī)能夠接受的格式,加工處理識別出其中有用的信息。OCR的識別過程一般包括圖像處理(二值化、降噪、校正等)、特征提取、對比檢測、內(nèi)容識別。而近年來隨著人工智能的不斷發(fā)展,基于深度學(xué)習(xí)的OCR表現(xiàn)相較于傳統(tǒng)方法在識別率和效率上更加出色。目前百度、騰訊、華為等公司都提供了OCR服務(wù),不需要了解具體的識別技術(shù)細(xì)節(jié),通過調(diào)用API接口即可完成圖片文字的識別。我們選擇使用百度的OCR文字識別接口服務(wù),根據(jù)官方提供的API文檔完成方法的調(diào)用。具體使用方法如下:
1.安裝aip識別包,引入相應(yīng)的lib
- pip install baidu aip
- from aip import AipOcr
2.初始化OCR
- def initOcr(ocrAuth):
- client = AipOcr(ocrAuth['appid'],
- ocrAuth['appkey'], ocrAuth['secretkey'])
- return client
這里需要使用百度賬號申請appkid、appkey和secretkey信息。
3.調(diào)用具體識別方法
- result = client.webImage(image)
接口服務(wù)返回?cái)?shù)據(jù):
- [{‘words’: ’ping: 77ms’}]
通過查看不同游戲我們發(fā)現(xiàn),部分游戲的時(shí)延值前面帶有“Ping”,有些是直接一個(gè)數(shù)值,還有的則是中文的“延遲”,因此需要對返回的識別結(jié)果做進(jìn)一步的處理,用于區(qū)分不同游戲。最后通過正則表達(dá)獲取到其中的時(shí)延值。
- re_obj = re.compile(r"\d+\.?\d*")
- res_list = re_obj.findall(words)
Part 03● 工具實(shí)現(xiàn) ●
完成了圖片的處理和識別,接下來就是把結(jié)果友好地進(jìn)行展示,我們實(shí)現(xiàn)一個(gè)簡單的可執(zhí)行界面工具,將識別流程串聯(lián)起來。整體的流程:
工具內(nèi)容主要包括游戲選擇、圖片路徑選擇、游戲截圖。為了減少識別調(diào)用次數(shù),提高識別效率,可以將圖片合并處理。
最終的工具界面長這樣:
Part 04● 游戲圖片識別 ●
接下來就是具體的使用了,首先需要選擇具體的游戲,獲取游戲圖片的保存路徑用于讀取,然后針對游戲圖片進(jìn)行截圖獲取坐標(biāo)。將圖片經(jīng)過OCR識別顯示結(jié)果,并根據(jù)識別的結(jié)果和圖片時(shí)間畫出曲線圖。我們使用一款游戲圖片進(jìn)行測試:
識別結(jié)果如下,5個(gè)數(shù)據(jù)為1組,55張圖片一共耗時(shí)9.28s。曲線圖直觀地展示了游戲時(shí)延值隨時(shí)間的變化情況。
通過人工查看圖片與識別結(jié)果進(jìn)行對比,兩者的時(shí)延值一致。針對不同游戲,只要改變圖片的讀取路徑以及截取坐標(biāo)位置即可。
Part 05● 結(jié)語 ●
結(jié)合OCR技術(shù),可以對不同類型的圖片信息進(jìn)行快速有效地識別,減少人工的工作量,滿足項(xiàng)目測試及數(shù)據(jù)比對的需求。隨著信息技術(shù)的不斷發(fā)展,各式各樣的OCR技術(shù)也將會更多地應(yīng)用在日常生活中,給人們帶來高效和便利。
作者:馮旭超,單位:中國移動智慧家庭運(yùn)營中心
【本文為51CTO專欄作者“移動Labs”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】