• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于OpenCV 和Tesseract-OCR 的表帶字符識(shí)別算法研究

      2022-05-16 10:17:18陽(yáng)
      科海故事博覽 2022年13期
      關(guān)鍵詞:字符識(shí)別表帶字符

      徐 陽(yáng)

      (安徽理工大學(xué),安徽 淮南 232000)

      1 研究背景及理論基礎(chǔ)

      當(dāng)下智能穿戴在人群中非常流行,專屬化以及個(gè)性化的服務(wù)讓人們有著滿滿的時(shí)尚感、科技感。人們?cè)谧非蟾咂焚|(zhì)生活的同時(shí),對(duì)穿戴樣式及美觀需求更高,作為可更換的配件手表表帶,除了對(duì)材質(zhì)要求外,對(duì)圖案樣貌以及一些專屬字符等也有需求。在生產(chǎn)車間里,用傳統(tǒng)方式面對(duì)字符檢測(cè),耗時(shí)、耗力、效率低。所以為了更加簡(jiǎn)潔快速地識(shí)別表帶字符,剔除劣質(zhì)品,快速找到合格品[1],本文著重研究基于OpenCV和Tesseract-OCR 的表帶字符識(shí)別算法的實(shí)現(xiàn)。

      OpenCV 創(chuàng)建之初,是為了提供來(lái)源優(yōu)化過(guò)的基礎(chǔ)代碼,可以實(shí)現(xiàn)許多圖像處理的基礎(chǔ)算法,具有更強(qiáng)的可讀性、移植性且免費(fèi),支持C++,Python 等語(yǔ)言。二十世紀(jì)八十年代初開(kāi)發(fā)的一個(gè)開(kāi)源OCR 引擎在測(cè)試中精準(zhǔn)度很高,經(jīng)過(guò)不斷地改進(jìn)后,結(jié)合Python 語(yǔ)言逐漸發(fā)展為Pytesseract 的模塊。它支持PIL 庫(kù)中各式各樣的圖片文件,也可以靈活地處理OpenCV 圖像,和NumPy 數(shù)組相互轉(zhuǎn)化,同時(shí)為了提高圖像轉(zhuǎn)對(duì)文本的處理能力,可以訓(xùn)練自己的庫(kù)[2-3]。

      2 表帶字符識(shí)別流程

      本文將采集到的表帶圖像進(jìn)行預(yù)處理,包括圖像灰度化、二值化,再進(jìn)行定位,包括尋找字符輪廓、繪制輪廓等操作,將所需檢測(cè)部分進(jìn)行截取,最后OCR 字符識(shí)別輸出結(jié)果。

      1.獲取圖像。

      2.預(yù)處理。

      3.字符定位。

      4.字符圖像提取。

      5.OCR 字符識(shí)別。

      3 表帶圖像預(yù)處理

      3.1 圖像顏色空間轉(zhuǎn)換

      在顏色空間轉(zhuǎn)換中,灰度圖像經(jīng)過(guò)轉(zhuǎn)換后,彩色圖像中的所有通道都相同,其中CV_8U 類型圖像范圍在0 到255 之間,CV_16U 類型圖像范圍在0 到6535之間,CV_32F 類型圖像范圍在0 到1 之間。與之相反,彩色圖像轉(zhuǎn)換為灰色圖像,就要使用加權(quán)公式,如下:

      其中,R 代表彩色圖像中紅色部分(Red)的像素值,G 代表彩色圖像中綠色部分(Green)的像素值,B則代表彩色圖像中藍(lán)色部分(Blue)的像素值,加權(quán)的最終結(jié)果Y 代表灰度的像素值。

      其中g(shù)ray 代表處理之后圖像,COLOR_BGR2GRAY代表BGR 格式圖像轉(zhuǎn)化為GRAY 格式圖像。以下是得到的灰度圖像(見(jiàn)圖1):

      圖1 字符灰度圖像

      3.2 高斯濾波降噪

      我們經(jīng)常使用的圖像濾波算法包括:中值濾波、均值濾波、高斯濾波。中值濾波特點(diǎn)是計(jì)算模板內(nèi)所有像素的中值,然后用計(jì)算出來(lái)的值分別代替該像素點(diǎn)的灰度值,這種方法能很好地保護(hù)邊緣信息,但是花費(fèi)時(shí)間較長(zhǎng)。均值濾波的特點(diǎn)是計(jì)算模板內(nèi)所有像素的平均值,然后用計(jì)算出來(lái)的值分別代替該像素點(diǎn)的灰度值,對(duì)于目標(biāo)圖像只能相對(duì)減弱噪聲,無(wú)法克服邊緣像素信息丟失部分。結(jié)合前兩種方法不同的優(yōu)缺點(diǎn),本文采用高斯濾波的方法去除噪聲,因?yàn)樗鼘?duì)圖像鄰域內(nèi)像素進(jìn)行平滑時(shí),不同位置的鄰域像素有著不同的權(quán)值,能夠更多地保留圖像總體灰度分布特征。一維零均值高斯函數(shù):

      其中x2和y2分別表示的是鄰域內(nèi)其他像素與鄰域內(nèi)中心像素的距離,σ是標(biāo)準(zhǔn)差。σ值越大,函數(shù)圖形越寬,圖形越平坦,類似于平均模板。

      σ值越小,分布越集中,圖形寬度越窄。

      表帶圖像經(jīng)過(guò)高斯濾波降噪處理后,如圖2 所示:

      圖2 高斯濾波處理后

      4 表帶字符定位

      為了使圖像定位更加準(zhǔn)確,首先需要將圖像的輪廓清晰地表現(xiàn)出來(lái),可以選用閾值分割法或者邊緣檢測(cè)的方法。

      4.1 閾值分割法

      簡(jiǎn)單的圖像分割方法可以利用閾值來(lái)處理,圖像閾值化適用于背景和目標(biāo)占據(jù)不同灰度級(jí)范圍的圖像,因?yàn)樗?jì)算量小,性能穩(wěn)定,成為最廣泛的圖像分割技術(shù)。我們可以給出一個(gè)數(shù)組以及一個(gè)閾值,然后根據(jù)每個(gè)數(shù)組中的值與閾值進(jìn)行比對(duì),不管是高了還是低了分別進(jìn)行相應(yīng)的處理。給定原始圖像f(x,y),T 為閾值,則g(x,y)滿足下式:

      使用全局閾值方法進(jìn)行閾值圖像處理:

      其中閾值類型THRESH_BINARY 中,可以將超過(guò)閾值部分取最大值,反之取0。THRESH_OSTH 遍歷所有可能的閾值,然后對(duì)每個(gè)閾值結(jié)果的兩類像素計(jì)算方差。OTSU 算法計(jì)算方差使下列表達(dá)式最?。?/p>

      其中的W1(t)和W2(t)是根據(jù)兩種類型像素的數(shù)量計(jì)算的權(quán)重,表示兩類像素的方差。圖3 是經(jīng)過(guò)全局閾值處理后的表帶圖像:

      圖3 閾值化后的圖像

      4.2 邊緣檢測(cè)

      這些輪廓是通過(guò)將滯后閾值應(yīng)用于像素而形成的,并且采用了兩個(gè)閾值。兩個(gè)閾值中分為較大的數(shù)值a和較小的數(shù)值b,像素的梯度被計(jì)算出后大于a 就接受,反之小于b 則舍棄,但如果介于a 與b 之間,那么接受它的方式只有它連接到一個(gè)高于閾值的像素時(shí)[4-5]。Canny 內(nèi)部調(diào)用Sobel 算子,不但用了高斯平滑還有微分導(dǎo)數(shù),來(lái)計(jì)算該圖像灰度函數(shù)的近似梯度[6]。

      得到x 和y 方向的梯度后,對(duì)圖像進(jìn)行Canny(xgrad,ygrad,50,150)操作后得到圖像(見(jiàn)圖4):

      圖4 邊緣檢測(cè)后的圖像

      4.3 兩種定位方法的比較

      閾值分割是用于強(qiáng)調(diào)圖像中感興趣的部分的方法,經(jīng)過(guò)二值化處理后,顯示出該目標(biāo)的灰度值,強(qiáng)調(diào)主體本身具有灰度特性,使用閾值分割來(lái)表現(xiàn)。與之相似的,邊緣檢測(cè)重點(diǎn)在于利用算法表現(xiàn)邊緣的灰度特性,常用于發(fā)現(xiàn)物體的邊緣,特征更加明顯,方便后續(xù)操作[7-8]。

      5 表帶字符圖像提取

      將表帶中需要提取的部分定位好后,準(zhǔn)備進(jìn)行字符圖像提取,需要尋找輪廓并繪制輪廓:

      其中cv.RETR_EXTERNAL 表示只檢測(cè)最外層的輪廓,cv.CHAIN_APPROX_SIMPLE 表示水平、垂直、對(duì)角線方向的元素被壓縮,只保留該方向的最終坐標(biāo)位置。表帶字符的矩形外框只需4 個(gè)點(diǎn)來(lái)保存輪廓信息。執(zhí)行結(jié)束后得到的圖像為(見(jiàn)圖5):

      圖5 字符 圖像提取

      6 表帶字符識(shí)別

      6.1 預(yù)處理

      由于使用Tesseract-OCR 有字符識(shí)別方面的要求,所以在字符背景和像素方面要進(jìn)行一些處理。首先進(jìn)行圖像預(yù)處理,去除干擾線與點(diǎn),防止識(shí)別過(guò)程中出現(xiàn)錯(cuò)誤[9]。

      開(kāi)操作是先腐蝕后膨脹的過(guò)程,它相當(dāng)于一個(gè)幾何運(yùn)算的濾波器[10]。

      作為形態(tài)學(xué)中核心的API 函數(shù)morphologyEx(),cv.M ORPH_OPEN 可以代表開(kāi)運(yùn)算,kernel 是其中的內(nèi)核,可以通過(guò)cv.getStructuringElement(cv.MORPH_RECT,(3,3))返回具有特定形狀和大小的結(jié)構(gòu)元素。得到開(kāi)操作后的圖像為(見(jiàn)圖6):

      圖6 開(kāi)操作后的圖像

      6.2 Tesseract-OCR 字符識(shí)別

      Tesseract 是一種開(kāi)源OCR(光學(xué)字符識(shí)別),可以識(shí)別不同格式的圖像文件并將其轉(zhuǎn)換為文本。首先我們需要下載windows 下相應(yīng)的安裝文件,Pytesseract是由Python 封裝,支持PIL 圖像或者NumPy 圖像,使用Image.fromarray(open_out)函數(shù)實(shí)現(xiàn)數(shù)組array 到image的轉(zhuǎn)換,使用OCR 模塊的API 的方法:

      最后以字符串的形式返回結(jié)果(見(jiàn)圖7):

      圖7 識(shí)別結(jié)果

      7 結(jié)語(yǔ)

      本文利用一些傳統(tǒng)的Opencv 圖像處理方式和目前較為流行的OCR 方法,主要是使用Python 語(yǔ)言,對(duì)表帶識(shí)別進(jìn)行了初步的研究。對(duì)于一些簡(jiǎn)單的圖像,處理迅速、識(shí)別準(zhǔn)確。但是關(guān)于如何應(yīng)對(duì)復(fù)雜場(chǎng)景下的字符識(shí)別、能否進(jìn)行算法的擴(kuò)充以達(dá)到提高識(shí)別準(zhǔn)確率的效果,還需要更進(jìn)一步的分析研究。

      猜你喜歡
      字符識(shí)別表帶字符
      尋找更強(qiáng)的字符映射管理器
      字符代表幾
      一種USB接口字符液晶控制器設(shè)計(jì)
      電子制作(2019年19期)2019-11-23 08:41:50
      寶珀:腕表顏值的關(guān)鍵,不只表盤(pán),還有表帶
      鐘表(2019年5期)2019-10-22 05:28:02
      “絲滑”表帶
      消失的殖民村莊和神秘字符
      Nike全新配色Apple Watch運(yùn)動(dòng)表帶已正式開(kāi)售
      流行色(2017年6期)2018-02-26 16:28:31
      一種改進(jìn)深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)的英文字符識(shí)別
      儀表字符識(shí)別中的圖像處理算法研究
      基于CUDA和深度置信網(wǎng)絡(luò)的手寫(xiě)字符識(shí)別
      勃利县| 景宁| 吉水县| 惠来县| 五台县| 尼玛县| 皮山县| 黎平县| 黄大仙区| 桂阳县| 华安县| 正安县| 武定县| 巩义市| 尼玛县| 巴楚县| 青田县| 彭山县| 江门市| 朝阳市| 五寨县| 万盛区| 伊金霍洛旗| 嵩明县| 剑河县| 五原县| 富宁县| 河西区| 汶上县| 洛扎县| 会宁县| 长丰县| 百色市| 赤壁市| 潍坊市| 邳州市| 高阳县| 沂水县| 北流市| 兰坪| 晋中市|