重磅干貨,第一時間送達 字符識別: 字符識別程序有助于準(zhǔn)確的從文本中識別出每個文本元素。 通過應(yīng)用深度學(xué)習(xí)算法,可以準(zhǔn)確的識別圖像中字符或文本元素的并對其進行分類。這些字符一般有很大區(qū)別。 當(dāng)我們使用普通技術(shù)來識別字符時,可能會在特定點上出現(xiàn)一些錯誤。如果我們使用基于深度學(xué)習(xí)的OpenCV算法將給出有效的輸出。 對于運行模型的必須安裝由Google作為光學(xué)字符識別引擎開發(fā)的tesseract。 pip install pytesseract OpenCV: OpenCV是一種一項基本技術(shù),我們主要利用他來消除的噪聲以便進一步執(zhí)行數(shù)據(jù)操作。 Open CV是深度學(xué)習(xí)技術(shù)領(lǐng)域中使用最廣泛的算法。 它極大地依賴于受過訓(xùn)練的數(shù)據(jù),并有助于識別圖像中存在的文本。開放式簡歷使算法丟失的準(zhǔn)確性變成一幅圖畫?;叶鹊燃壴谧址R別領(lǐng)域提供了有效的分類。因此,我們特此導(dǎo)入所有必要的軟件包,以使我們的模型可以正常使用。 為了在您的本地計算機上安裝OpenCV,請使用以下命令... pip install opencv-python 圖像可以直接讀取到代碼中嗎? · 讓我們討論影響識別字符的因素: · 圖像中的噪聲會導(dǎo)致許多錯誤識別字符的因素。為了確保無噪音,我們在代碼中消除了識別。 · 當(dāng)圖像不是高分辨率時,識別將失敗。因此,為了獲得準(zhǔn)確的結(jié)果,最好拍攝高分辨率的圖像。 · 有時圖像的角度也會出現(xiàn)缺陷。 · 在假定文本時,圖像的反射會導(dǎo)致錯誤。如此多的字母“ F”被識別為“ P”。 · 如果代碼無法訓(xùn)練字體,字體也會改變結(jié)果。 · 各種圖像具有本領(lǐng)域的各種表示風(fēng)格,因此,當(dāng)存在更多膚色或多種顏色時,會對圖像中的識別文本做出不正確的假設(shè)。 考慮到以上所有因素,必須在所有測試用例通過的地方相應(yīng)地構(gòu)建代碼。 使用OpenCV識別字符的Python代碼: #import all the packages import cv2 import numpy as np import pytesseract from PIL import Image # path of pytesseract execution folder pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files\Tesseract-OCR\tesseract.exe'# Path of image main_path = r'qu12.png' def get_string(pic_path): # Reading picture with opencv pic = cv2.imread(pic_path)# grey-scale the picture pic = cv2.cvtColor(pic, cv2.COLOR_BGR2GRAY)# Do dilation and erosion to eliminate unwanted noises kernel = np.ones((1, 1), np.uint8) pic = cv2.dilate(pic, kernel, iterations=20) pic = cv2.erode(pic, kernel, iterations=20)# Write image after removed noise cv2.imwrite(main_path + "no_noise.png", pic)# threshold applying to get only black and white picture pic = cv2.adaptiveThreshold(pic, 300, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 31, 2)# Write the image for later recognition process cv2.imwrite(main_path + "threshold.png", pic)# Character recognition with tesseract final = pytesseract.image_to_string(Image.open(main_path + "threshold.png"))return final 顯示最終輸出: print(get_string(src_path)) 輸入和輸出: 在這里,我們給出輸入到代碼中的輸入和輸出,以便稍后執(zhí)行代碼。 輸入: 從互聯(lián)網(wǎng)上獲取樣本識別 輸出: 執(zhí)行代碼后的屏幕截圖 代碼鏈接:https : //github.com/eazyciphers/deep-learning-tutors 參考文獻: https://www./profile/Andrew_Agbemenu/publication/325223548_An_Automatic_Number_Plate_Recognition_System_using_OpenCV_and_Tesseract_OCR_Engine/links/5c87e7ea299bf14e7e781750/An-Automatic-Number-Plate-Recognition-System-using-OpenCV-and-Tesseract-OCR-Engine.pdf https://en./wiki/Tesseract_(software) 交流群 |
|
來自: 小白學(xué)視覺 > 《待分類》