文/劉麗媛 劉宏展 郝源 吳一
(華南師范大學(xué)信息光電子科技學(xué)院 廣東省廣州市 510006)
在工業(yè)和檢測(cè)領(lǐng)域,數(shù)字儀表因具有精度高、讀取方便、易設(shè)置等優(yōu)點(diǎn)而被廣泛的應(yīng)用。但是在復(fù)雜工業(yè)環(huán)境下,部分儀器儀表并沒(méi)有提供與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信的接口,需要人工讀數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)分析[1],這極大增加了作業(yè)負(fù)擔(dān)且存在讀數(shù)誤差[2]。在科技發(fā)展迅速、智能化程度極高的今天,使用智能化技術(shù)代替人工讀數(shù)的工作十分必要。
因此,本文提出了一種新的儀表信息識(shí)別技術(shù),運(yùn)用Python語(yǔ)言編程實(shí)現(xiàn)儀表信息的獲取。Python語(yǔ)言[3]是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,也是當(dāng)下非常熱門(mén)的一種編程語(yǔ)言,主要具有簡(jiǎn)單易學(xué)、可移植性較好、擴(kuò)展性較強(qiáng)、資源免費(fèi)等優(yōu)點(diǎn)[4]?;赑ython和OCR的儀表信息識(shí)別技術(shù)的主要過(guò)程是對(duì)儀表圖進(jìn)行圖像預(yù)處理,繼而請(qǐng)求調(diào)用文字識(shí)別接口進(jìn)行OCR識(shí)別。同時(shí)利用此技術(shù)對(duì)預(yù)處理方法和識(shí)別接口這兩個(gè)影響因素進(jìn)行了實(shí)驗(yàn)對(duì)比和分析。
在復(fù)雜的工業(yè)工程環(huán)境中,通常通過(guò)圖像信息處理系統(tǒng)提取出儀器儀表的有用信息,但獲取儀表信息面臨著圖像背景復(fù)雜、拍攝角度和光線強(qiáng)弱等眾多因素造成的分辨率低、對(duì)比度和亮度不均勻等多種問(wèn)題[5]。
針對(duì)獲取復(fù)雜環(huán)境下儀器儀表中彩色圖像信息困難的問(wèn)題,本文提出并完成了一種基于Python和百度OCR的儀表信息識(shí)別技術(shù),主要研究過(guò)程可分為兩大部分:圖像預(yù)處理和圖像識(shí)別。研究對(duì)象是使用相機(jī)采集儀器儀表被測(cè)目標(biāo)所得到的彩色儀表原圖。此技術(shù)的具體流程如圖1所示。主要是先對(duì)彩色儀表原圖進(jìn)行儀表圖像的預(yù)處理,包括加權(quán)平均法的灰度化和大律法的二值化,得到待識(shí)別圖,繼而請(qǐng)求調(diào)用百度的文字識(shí)別API接口對(duì)待識(shí)別樣本圖進(jìn)行OCR識(shí)別,最后輸出識(shí)別結(jié)果。
在復(fù)雜機(jī)械工業(yè)環(huán)境下,由相機(jī)所拍攝得到的儀表圖片的質(zhì)量必然會(huì)受到光線明暗,是否聚焦,拍攝角度是否適當(dāng)?shù)韧獠凯h(huán)境的影響,而導(dǎo)致圖像出現(xiàn)陰暗,模糊,傾斜等問(wèn)題,這些關(guān)系到識(shí)別的準(zhǔn)確性。因此,首先需要對(duì)所拍攝的儀表圖像進(jìn)行預(yù)處理,再識(shí)別,盡可能地降低這些不好的影響,以提高后續(xù)信息識(shí)別的準(zhǔn)確率[6]。
預(yù)處理部分是對(duì)儀表圖片進(jìn)行灰度化,通過(guò)相機(jī)所采集的儀器儀表圖像都是彩色的,對(duì)彩色圖像進(jìn)行灰度化處理能夠極大減少圖像信息。因?yàn)楹筒噬珗D像相比,灰度圖中沒(méi)有色度,同時(shí)也大大減少了信息計(jì)算量,并且有利于后續(xù)的操作處理和計(jì)算[7]。所以使用YUV顏色空間編碼方法來(lái)實(shí)現(xiàn)圖像灰度化,YUV是一種像素格式,其中Y為亮度信號(hào),U和V為色度信號(hào)。它將亮度參量和色度參量分開(kāi)表示,可以避免相互干擾,保證了在提取圖像亮度信息、獲得需要的灰度圖像時(shí)可以不受色度參量的干擾。我們?cè)诓噬珒x表圖像中提取了每個(gè)像素的顏色信息,即R、G、B值,然后將每個(gè)像素的R、G、B值通過(guò)公式轉(zhuǎn)換為相應(yīng)的亮度信息,從而得到灰度圖像。三個(gè)顏色分量R、G、B與灰度值Y的關(guān)系為[8]:
圖1:流程框圖
對(duì)儀器儀表圖像進(jìn)行灰度化的數(shù)字圖像處理時(shí),采用的灰度化方法如公式1所示[9]。將實(shí)驗(yàn)中儀表原圖經(jīng)灰度化預(yù)處理后得到待識(shí)別圖。以下是在Python下使用Opencv[10]庫(kù)進(jìn)行灰度化操作時(shí)的部分代碼:
對(duì)彩色儀表原圖進(jìn)行上述灰度化方法的預(yù)處理后,得到了待識(shí)別樣本圖,接下來(lái)最關(guān)鍵的是請(qǐng)求百度文字識(shí)別API接口,對(duì)待識(shí)別樣本圖進(jìn)行OCR識(shí)別。
目前傳統(tǒng)的圖像文字識(shí)別技術(shù)大多采用傳統(tǒng)光學(xué)字符識(shí)別(Optical Character Recognition,OCR)[11],光學(xué)字符識(shí)別在金融、醫(yī)療以及海關(guān)等眾多領(lǐng)域中得到越來(lái)越廣泛的應(yīng)用,有良好的發(fā)展前景。同時(shí),百度智能云是面向Cloud2.0的云計(jì)算服務(wù)商,其中人工智能的圖像技術(shù)應(yīng)用包含多個(gè)文字識(shí)別的API接口可進(jìn)行通用場(chǎng)景文字識(shí)別。百度OCR能夠適應(yīng)不同業(yè)務(wù)場(chǎng)景對(duì)識(shí)別精度、識(shí)別速度的需求,針對(duì)圖片模糊、傾斜、翻轉(zhuǎn)等情況進(jìn)行了優(yōu)化,魯棒性強(qiáng),識(shí)別速度快,且支持2W+大字庫(kù),準(zhǔn)確率高。百度智能云開(kāi)放了API、SDK等調(diào)用方式,可以體驗(yàn)不同應(yīng)用的實(shí)際效果[12]。
圖2:基于Python和百度OCR的儀表信息識(shí)別過(guò)程圖
識(shí)別部分首先是環(huán)境準(zhǔn)備,需要登錄百度云的控制臺(tái)界面,創(chuàng)建通用文字識(shí)別的應(yīng)用來(lái)獲取密鑰;然后在Python中創(chuàng)建Client實(shí)例來(lái)獲取Region ID、AccessKey ID和AccessKey Secret;最后在Python中通過(guò)輸入密鑰來(lái)請(qǐng)求調(diào)用文字識(shí)別API接口,將經(jīng)上述灰度化預(yù)處理后的待識(shí)別樣本圖作為圖片參數(shù),完成API請(qǐng)求的創(chuàng)建和參數(shù)設(shè)置,并發(fā)起請(qǐng)求、處理應(yīng)答或異常。最終將圖像信息還原成文本信息實(shí)現(xiàn)OCR識(shí)別,得到識(shí)別結(jié)果。
利用上述技術(shù)分別對(duì)單張彩色儀表原圖、多張彩色儀表原圖進(jìn)行儀表信息識(shí)別實(shí)驗(yàn)。實(shí)驗(yàn)對(duì)象是使用相機(jī)采集儀器儀表被測(cè)目標(biāo)所得到的彩色儀表原圖。同時(shí)為進(jìn)一步研究此技術(shù),結(jié)合研究過(guò)程和實(shí)驗(yàn)來(lái)討論圖像灰度化、不同二值化預(yù)處理方法,以及采用不同版本的百度OCR接口API對(duì)圖像識(shí)別結(jié)果的影響,對(duì)其各自的識(shí)別效果進(jìn)行實(shí)驗(yàn)對(duì)比與分析。
采用上述研究技術(shù)對(duì)單張儀表圖像進(jìn)行識(shí)別實(shí)驗(yàn),圖2為基于Python和百度OCR的儀表信息識(shí)別過(guò)程示意圖,其中圖2(a)為彩色儀表原圖,圖2(b)是經(jīng)上述預(yù)處理后得到的待識(shí)別圖,識(shí)別結(jié)果如圖2(c)所示,其識(shí)別準(zhǔn)確率為90.8%。
通過(guò)上述實(shí)驗(yàn)表明,本技術(shù)對(duì)單張彩色儀表圖像的識(shí)別準(zhǔn)確率為90.8%??紤]到復(fù)雜環(huán)境下相機(jī)所采集的彩色儀表圖像的差異性會(huì)影響其識(shí)別準(zhǔn)確率,因此,加大儀表測(cè)試樣本圖的數(shù)量盡可能來(lái)減小誤差,用此技術(shù)對(duì)50張不同復(fù)雜環(huán)境下所獲取的彩色儀表圖像進(jìn)行相同的預(yù)處理和圖像識(shí)別,對(duì)識(shí)別準(zhǔn)確率進(jìn)行平均值統(tǒng)計(jì),如表1所示。
如表1所示,將50張彩色儀表圖像的識(shí)別準(zhǔn)確率進(jìn)行平均值統(tǒng)計(jì),平均識(shí)別率為90.7%。
在上述圖2的識(shí)別過(guò)程中,待識(shí)別的測(cè)試樣本圖是彩色儀表圖像經(jīng)灰度化的圖像預(yù)處理后得到的。然而通過(guò)對(duì)本技術(shù)的原理進(jìn)行綜合考慮可知,經(jīng)不同的預(yù)處理方法后得到的不同的待識(shí)別樣本圖,對(duì)后續(xù)的圖像識(shí)別有一定的影響。
灰度化是其他預(yù)處理操作的基礎(chǔ)。灰度化后的儀表圖像仍可以選擇繼續(xù)進(jìn)行二值化的預(yù)處理,可使圖像包含更少的信息量,更簡(jiǎn)單[13],但它也會(huì)影響后面字符識(shí)別的準(zhǔn)確率。二值化是在圖像處理中的一種經(jīng)典的圖像分割技術(shù),能夠迅速區(qū)分圖像的前景與背景,凸顯出目標(biāo)的輪廓,獲取有效信息。二值化方法主要有全局迭代算法、大律法(OTSU算法)、最大熵方法等[14]。由于大律法具有特點(diǎn)明顯、處理快速、效果較好等優(yōu)點(diǎn),所以本文采用全局閾值法中的大律法進(jìn)行二值化處理。該方法的基本原理是,設(shè)一個(gè)閾值將圖像分成目標(biāo)部分和背景部分兩類(lèi),如果該閾值使得類(lèi)內(nèi)方差最小且類(lèi)間方差最大,則此閾值為最佳閾值[9]。OTSU算法的實(shí)質(zhì)是自動(dòng)找出圖像灰度直方圖中波谷對(duì)應(yīng)的灰度值,然后將其作為閾值[15]。本實(shí)驗(yàn)是在 Python 環(huán)境下實(shí)現(xiàn)OTSU二值化算法,采用Opencv[10]庫(kù)中的cv.threshold()函數(shù),傳入cv.THRESH_OTSU參數(shù)。因此,實(shí)驗(yàn)中使用OTSU算法來(lái)完成二值化的圖像預(yù)處理,核心代碼如下所示:
因此,在圖像預(yù)處理過(guò)程中,把儀表測(cè)試樣本圖經(jīng)三種不同的圖像預(yù)處理后可得到三種待識(shí)別樣本圖,分別為儀表圖像的原圖、灰度化后圖、二值化后圖,本實(shí)驗(yàn)由10張儀表測(cè)試樣本圖分別依次得到各自對(duì)應(yīng)的三種待識(shí)別樣本圖,并用同樣的通用文字識(shí)別API接口對(duì)其進(jìn)行了OCR識(shí)別。對(duì)比研究不同預(yù)處理方法對(duì)識(shí)別準(zhǔn)確率影響的實(shí)驗(yàn)結(jié)果如表2所示。
由表2可知,由10張測(cè)試樣本圖分別經(jīng)三種不同的預(yù)處理后得到各樣本對(duì)應(yīng)的原圖、灰度化后圖、二值化后圖,對(duì)這些待識(shí)別樣本圖進(jìn)行識(shí)別,平均識(shí)別率分別為86.80%,90.64%,85.63%。由此可見(jiàn),在保證其他實(shí)驗(yàn)條件相同的情況下,圖像的預(yù)處理方法對(duì)后續(xù)的OCR文字識(shí)別是有影響的。由實(shí)驗(yàn)結(jié)果可知,在保持識(shí)別部分一致的實(shí)驗(yàn)前提下,經(jīng)灰度化預(yù)處理后樣本圖的平均識(shí)別率最高,原圖和二值化后圖的識(shí)別率相差不大。
對(duì)于復(fù)雜環(huán)境下的儀器儀表來(lái)說(shuō),所采集到的儀表圖像是彩色的,包含信息量大,在處理時(shí)會(huì)需要很大的存儲(chǔ)空間和很長(zhǎng)的運(yùn)算時(shí)間。然而在實(shí)際工程應(yīng)用中,儀表圖像的處理需要小的存儲(chǔ)空間和快速的操作?;叶葓D沒(méi)有顏色信息,只有圖像亮度信息,并且每個(gè)灰度圖像僅需要一個(gè)像素,與彩色儀表原圖相比,它具有存儲(chǔ)空間小,處理速度快的優(yōu)點(diǎn)。因此256級(jí)灰度圖像用于圖像預(yù)處理的顏色處理,表示效果是最好的。此外,在類(lèi)似工廠的實(shí)際應(yīng)用場(chǎng)合中,儀表圖像采集的環(huán)境很差,采集到的圖像會(huì)因?yàn)楣饩€、角度等原因偏暗和模糊,而灰度化后清除了原圖的無(wú)關(guān)信息,增強(qiáng)了有用信息的可檢測(cè)性和簡(jiǎn)化性,因此,灰度化圖的識(shí)別準(zhǔn)確率比原圖稍高。
圖像在拍攝采集時(shí)因外部環(huán)境的影響導(dǎo)致其包含了一定前景與背景,在獲取有效信息的特征區(qū)域、抓取目標(biāo)的時(shí)候,二值化算法需要根據(jù)灰度特性上的均勻性找到最佳閾值T對(duì)圖像的目標(biāo)和背景像素來(lái)進(jìn)行判別區(qū)分,如果某一像素點(diǎn)的灰度值大T則將其重置為255,反之將其灰度值重置為0,所以閾值的設(shè)定直接決定二值化的效果[16]。如果閾值過(guò)大,則造成圖片噪音過(guò)多和目標(biāo)不明顯;若閾值過(guò)小,則會(huì)導(dǎo)致特征區(qū)域信息大量丟失,不能真實(shí)反映原圖片特征信息。這些情況都會(huì)影響后續(xù)儀表圖像識(shí)別的準(zhǔn)確性。在本實(shí)驗(yàn)中,由于儀表彩色圖像的復(fù)雜性需要進(jìn)行多次二值化才能得到最佳閾值,其直接影響了目標(biāo)和背景的區(qū)分,因此,與灰度化圖相比,二值化不僅增加了復(fù)雜度,而且因?yàn)閮x表圖像的復(fù)雜性較難找到最佳閾值來(lái)準(zhǔn)確的區(qū)分背景和目標(biāo),從而使部分有用信息可能被誤判為背景,或者無(wú)關(guān)信息被誤判為目標(biāo),所以灰度化圖的識(shí)別率比二值化圖稍高。
對(duì)上述實(shí)驗(yàn)結(jié)果進(jìn)行分析與總結(jié),圖像預(yù)處理的方法對(duì)儀表圖像的識(shí)別準(zhǔn)確率是有影響的。將實(shí)驗(yàn)數(shù)據(jù)對(duì)比可知,經(jīng)灰度化的預(yù)處理后得到待識(shí)別樣本圖,其識(shí)別準(zhǔn)確率最高。
實(shí)現(xiàn)基于Python和百度OCR的儀表信息識(shí)別技術(shù)的關(guān)鍵是調(diào)用百度OCR的通用文字識(shí)別接口實(shí)現(xiàn)文字識(shí)別。在識(shí)別部分,百度智能云的人工智能圖像技術(shù)應(yīng)用中包含多個(gè)API接口可進(jìn)行通用場(chǎng)景文字識(shí)別,圖像識(shí)別的API接口提供了通用文字識(shí)別、高精度版、含位置信息版、高精度含位置版、含生僻字版五種版本。在前面的方法中調(diào)用的API接口是通用文字識(shí)別版。而高精度版在通用文字識(shí)別的基礎(chǔ)上,提供更高精度的識(shí)別服務(wù),并將字庫(kù)從1w+擴(kuò)展到2w+,能識(shí)別所有常用字和大部分生僻字。由于在儀器儀表的信息獲取中不需要位置信息,因此在保證圖像預(yù)處理部分和其他實(shí)驗(yàn)條件相同的情況下,調(diào)用通用文字識(shí)別和高精度版這兩個(gè)API接口進(jìn)行識(shí)別,來(lái)研究不同接口對(duì)儀表信息識(shí)別的影響。用基于Python和百度OCR的儀表信息識(shí)別方法對(duì)20張經(jīng)相同灰度化預(yù)處理后的待識(shí)別樣本圖分別進(jìn)行兩種接口的OCR識(shí)別,識(shí)別準(zhǔn)確率如表3所示。
表1:50張儀表測(cè)試樣本圖的識(shí)別準(zhǔn)確率
表2:三種不同預(yù)處理后待識(shí)別樣本圖的識(shí)別率
表3:兩種接口的儀表測(cè)試樣本圖的識(shí)別準(zhǔn)確率
對(duì)經(jīng)相同灰度化預(yù)處理后的待識(shí)別樣本圖分別進(jìn)行通用文字識(shí)別和高精度版這兩個(gè)API接口的OCR識(shí)別,由表3可知,對(duì)兩種接口的識(shí)別準(zhǔn)確率進(jìn)行平均值統(tǒng)計(jì),平均識(shí)別率分別為90.64%,92.56%。由實(shí)驗(yàn)結(jié)果可以得到高精度版識(shí)別接口的識(shí)別準(zhǔn)確率是比通用文字識(shí)別接口的稍高的,因?yàn)楦呔劝嬖谕ㄓ梦淖肿R(shí)別的基礎(chǔ)上,提供更高精度的識(shí)別服務(wù),并增加了字庫(kù)。
綜合上述對(duì)預(yù)處理方法和識(shí)別接口的實(shí)驗(yàn)研究與分析,兩者對(duì)儀表圖像的識(shí)別結(jié)果都是有一定影響的。最后綜合考慮兩個(gè)影響因素,本方法最佳的識(shí)別過(guò)程是對(duì)復(fù)雜環(huán)境下彩色儀表圖像進(jìn)行灰度化的圖像預(yù)處理,繼而調(diào)用百度OCR的高精度版通用文字識(shí)別API接口進(jìn)行識(shí)別,其準(zhǔn)確率可達(dá)92.56%,識(shí)別效果更佳。
本文提出并實(shí)現(xiàn)了一種基于Python和百度OCR的儀表信息識(shí)別技術(shù),主要過(guò)程是對(duì)儀表圖像進(jìn)行灰度化的圖像預(yù)處理得到待識(shí)別樣本圖,從而調(diào)用百度OCR通用文字識(shí)別的高精度版接口來(lái)獲取儀表信息,其識(shí)別準(zhǔn)確率可達(dá)92%以上,而且識(shí)別復(fù)雜度低。此外,還討論了圖像灰度化、不同二值化預(yù)處理方法,以及采用不同版本的百度OCR接口API對(duì)圖像識(shí)別結(jié)果的影響。因此,本文對(duì)儀器儀表的圖像信息處理有一定參考意義。但在復(fù)雜工業(yè)工程環(huán)境下,相機(jī)所采集的儀表圖像質(zhì)量很差,導(dǎo)致本方法離百分之百的識(shí)別率仍有一定差距,需進(jìn)一步提升。