孫凱明,劉彤軍,郝 明,王 剛
(黑龍江省科學(xué)院智能制造研究所,黑龍江 哈爾濱 150090)
在智能制造和中國制造2025 的背景下,煉鋼企業(yè)紛紛利用機(jī)器視覺技術(shù)、工業(yè)互聯(lián)網(wǎng)技術(shù)和信息處理技術(shù)等來提高其智能制造水平[1]。但由于煉鋼廠車間環(huán)境復(fù)雜,鋼包號的識(shí)別難度大,制約了煉鋼工藝中的智能化水平。
OCR 識(shí)別流程中最關(guān)鍵的三個(gè)步驟為字符定位、字符分割和字符識(shí)別[2-4]。
文獻(xiàn)[5]中采用了在原來鋼包上加裝藍(lán)底白字后,再借鑒車牌識(shí)別相關(guān)技術(shù)的基礎(chǔ)上設(shè)計(jì)了基于HSV顏色空間的鋼包號定位方法;文獻(xiàn)[6]將字符融合特征和SVM 相結(jié)合的方法分割點(diǎn)陣字符;文獻(xiàn)[7]采用卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了點(diǎn)陣字符的識(shí)別。
鋼包通常都帶有凹陷字符,這些字符在環(huán)境中一般為黑色,而鋼包本身是灰色的,在復(fù)雜的環(huán)境中很難定位和識(shí)別。本文通過模板匹配和輪廓篩選,實(shí)現(xiàn)了一種鋼包凹陷字符分割方法,進(jìn)而利用Tesseract OCR實(shí)現(xiàn)了字符識(shí)別。
本文方法主要分4部分:圖像預(yù)處理、號碼區(qū)域定位、字符分割、模型訓(xùn)練及字符識(shí)別。這個(gè)方法框架如圖1所示。
圖1 本文方法框架
圖1中各部分的功能如下:
(1)圖像預(yù)處理:在保持邊緣信息的同時(shí)濾除噪聲影響。
(2)號碼區(qū)域定位:通過模板匹配實(shí)現(xiàn)鋼包號碼區(qū)域的定位。
(3)字符分割:通過輪廓篩選獲取單個(gè)字符圖像。
(4)模型訓(xùn)練和字符識(shí)別:利用tesseract OCR 實(shí)現(xiàn)鋼包號0-9十個(gè)阿拉伯?dāng)?shù)字字符的識(shí)別。
雙邊濾波(Bilateral Filter)是非線性濾波中的一種。這是一種結(jié)合圖像的空間鄰近度與像素值相似度的處理辦法。在濾波時(shí),該濾波方法同時(shí)考慮空間臨近信息與顏色相似信息,在濾除噪聲、平滑圖像的同時(shí),又做到邊緣保存。OpenCV中的函數(shù)[9]如下:
void bilateralFilter(InputArray src,OutputArray dst,int d,double sigmaColor,double sigmaSpace,int borderType=BORDER_DEFAULT);
第三個(gè)參數(shù),int 類型的d,表示在過濾過程中每個(gè)像素鄰域的直徑。如果這個(gè)值我們設(shè)其為非正數(shù),那么OpenCV會(huì)從第五個(gè)參數(shù)sigmaSpace 來計(jì)算出它來。第四個(gè)參數(shù),double類型的sigmaColor,顏色空間濾波器的sigma值。這個(gè)參數(shù)的值越大,就表明該像素鄰域內(nèi)有更寬廣的顏色會(huì)被混合到一起,產(chǎn)生較大的半相等顏色區(qū)域。第五個(gè)參數(shù),double 類型的sigmaSpace 坐標(biāo)空間中濾波器的sigma 值,坐標(biāo)空間的標(biāo)注方差。他的數(shù)值越大,意味著越遠(yuǎn)的像素會(huì)相互影響,從而使更大的區(qū)域足夠相似的顏色獲取相同的顏色。當(dāng)d>0,d 指定了鄰域大小且與sigmaSpace 無關(guān)。否則,d正比于sigmaSpace。
在本方法中,參數(shù)d=10,sigmaColor=20,sigmaSpace=5。
圖2 雙邊濾波結(jié)果
鋼包號是黑色凹陷的,很難從周圍環(huán)境中區(qū)別開。因此,本文方法選擇鋼包上信息豐富的部位為模板,采用模板匹配技術(shù)[10-11]先定位鋼包,再根據(jù)鋼包號區(qū)域與模板區(qū)域的位置關(guān)系定位到鋼包號碼區(qū)。本文選取的模板如圖3所示。
圖3 定位匹配模板
在OpenCV 中提供了平方差匹配(TM_SQDIFF)、相關(guān)性匹配(TM_CCORRD)和相關(guān)系數(shù)匹配(TM_CCOEFF)3種基本匹配方法,每個(gè)方法還提供了結(jié)果歸一化(TM_SQDIFF_NORMED,TM_CCORR_NORMED,TM_CCOEFF_NORMED),共6 種匹配方法。本文對三種歸一化匹配方法進(jìn)行了比較,其結(jié)果如表1所示。
表1 模板匹配三種歸一化方法結(jié)果比較
從對比結(jié)果可以看出,數(shù)值越大表示匹配程度越高,相關(guān)匹配方法匹配度最高,并且匹配度波動(dòng)較小,所以本文中選擇相關(guān)匹配歸一化方法,即TM_CCORR_NORMED,其公式為:
即模板與圖像間作乘法操作。
基于模板匹配獲取鋼包號碼區(qū)域的過程如表2所示。
表2 獲取號碼區(qū)域過程
基于模板匹配獲取鋼包號碼區(qū)域的結(jié)果如圖4所示。
圖4 基于模板匹配獲取鋼包號碼區(qū)域的結(jié)果
本文首先對號碼區(qū)域利用OTSU方法二值化,然后通過形態(tài)學(xué)處理,消除筆畫斷裂和小塊噪聲影響,最后利用輪廓篩選確定單個(gè)字符區(qū)域,完成字符分割。字符分割過程如表3所示。
表3 字符分割過程
字符分割結(jié)果如圖5所示。
圖5 字符分割過程及結(jié)果
本文利用谷歌開源Tesseract OCR 引擎[12]對鋼包號識(shí)別。對于特定的識(shí)別,引擎自帶的字庫的字符識(shí)別率不高,需要在其自帶的eng.trainedtata 字庫基礎(chǔ)上追加自己的字符訓(xùn)練。為此,從實(shí)際獲取的鋼包號字符中,對其進(jìn)行仿射變換、縮放、形態(tài)學(xué)處理,曾廣字符的數(shù)據(jù)集[13],以提高Tesseract OCR識(shí)別的準(zhǔn)確率。表4為一組圖像及其曾廣結(jié)果。
表4 曾廣數(shù)據(jù)集示例
本方法中,字符識(shí)別階段通過OpenCV處理分割的圖片作為tesseract OCR 的輸入來進(jìn)行。首先聲明tesseract::TessBaseAPI 對象并對其初始化,代碼中的MyModel 為自己訓(xùn)練的字庫名;然后設(shè)置識(shí)別模式為單詞模式,即tesseract ocr 認(rèn)為輸入的圖片中只有一個(gè)字符;調(diào)用SetImage 設(shè)置輸入的圖片wordImg,wordImg是cv::Mat類型,需要按照tesseract OCR 要求類型輸入;最后調(diào)用GetUTF8Text獲取識(shí)別結(jié)果。對其實(shí)現(xiàn)代碼如下:
tesseract::TessBaseAPI*tess=new tesseract::Tess-BaseAPI();
tess->Init(NULL,"MyModel",tesseract::OEM_DEFAULT);
tess->SetPageSegMode(tesseract::PSM_SINGLE_WORD);
tess->SetImage((uchar*)wordImg.data,wordImg.cols,wordImg.rows,1,wordImg.cols);
char*out=tess->GetUTF8Text();
本設(shè)計(jì)運(yùn)行CPU i7,Win10 操作系統(tǒng),以VS2019 為開發(fā)環(huán)境,利用OpenCV4.5機(jī)器視覺算法庫和Tesseract OCR 4.0文字識(shí)別引擎實(shí)現(xiàn)。
如表5所示為鋼包號區(qū)域定位及字符分割結(jié)果。從圖中可以看出,本方法能克服現(xiàn)場光線環(huán)境變化影響,號碼區(qū)域定位穩(wěn)定,字符分割準(zhǔn)確。
表5 鋼包號區(qū)域定位及字符分割結(jié)果
本文分別用數(shù)據(jù)曾廣前后的數(shù)據(jù)集訓(xùn)練了2個(gè)字庫,并統(tǒng)計(jì)了它們的錯(cuò)誤率。所得結(jié)果如表6所示。從表6可以看出,采用曾廣數(shù)據(jù)集的方法能極大地提高字符識(shí)別的準(zhǔn)確率。
本文鋼包號識(shí)別方法包括圖像預(yù)處理、號碼區(qū)域定位、字符分割、模型訓(xùn)練及字符識(shí)別幾部分組成。比較OpenCV中提供的6種模板匹配方法后選擇相關(guān)性匹配,利用模板匹配技術(shù)實(shí)現(xiàn)鋼包號區(qū)域定位,在定位區(qū)域內(nèi)通過OTSU進(jìn)行二值化處理,并利用形態(tài)學(xué)方法實(shí)現(xiàn)號碼字符分割。在字符識(shí)別方面,通過數(shù)據(jù)曾廣方法增加訓(xùn)練數(shù)據(jù)集,提高Tesseract OCR的識(shí)別率。從實(shí)驗(yàn)結(jié)果看,本文方法能穩(wěn)定定位鋼包號碼區(qū)域,號碼識(shí)別率達(dá)98.30%。
表6 鋼包字符識(shí)別實(shí)驗(yàn)結(jié)果
本文方法雖然不具通用性,但對提高鋼鐵企業(yè)的生產(chǎn)安全和智能制造水平起到一定的積極作用,對于其他類似場合也具有一定的參考價(jià)值。