RM新时代足球交易平台

18600329666

咨詢(xún)技術(shù)專(zhuān)家

掃一掃
與技術(shù)專(zhuān)家在線溝通

Menu
圖片字母,數(shù)字識(shí)別技術(shù)
         圖片字母,數(shù)字識(shí)別技術(shù),本文主要講解圖片中字母以及數(shù)字的識(shí)別技術(shù),主要應(yīng)用有車(chē)牌號(hào)識(shí)別軟件,鈔票編碼識(shí)別,稅號(hào)識(shí)別等應(yīng)用系統(tǒng)中,圖片文字識(shí)別技術(shù)應(yīng)用在很多重要的工業(yè)領(lǐng)域不僅能夠節(jié)省重復(fù)的人力成而且能夠增加識(shí)別歸檔的準(zhǔn)確率
       一、主要思路
     
 將降噪后的圖片切成單個(gè)的字母或文字,同svm技術(shù)訓(xùn)練機(jī)器的識(shí)別能力,逐漸提高準(zhǔn)確率
       二、使用技術(shù)

  • python3.5

    python SDK版本

  • PIL

    圖片處理庫(kù)

  • libsvm

    開(kāi)源的svm機(jī)器學(xué)習(xí)庫(kù)
    三、基本流程

    1. 準(zhǔn)備原始圖片素材
    2. 圖片預(yù)處理
    3. 圖片字符切割
    4. 圖片尺寸歸一化
    5. 圖片字符標(biāo)記
    6. 字符圖片特征提取
    7. 生成特征和標(biāo)記對(duì)應(yīng)的訓(xùn)練數(shù)據(jù)集
    8. 訓(xùn)練特征標(biāo)記數(shù)據(jù)生成識(shí)別模型
    9. 使用識(shí)別模型預(yù)測(cè)新的未知圖片集
    10. 達(dá)到根據(jù)“圖片”就能返回識(shí)別正確的字符集的目標(biāo)
    四、圖片字母,數(shù)字識(shí)別的實(shí)現(xiàn)
       圖片預(yù)處理

    雖然目前的機(jī)器學(xué)習(xí)算法已經(jīng)相當(dāng)先進(jìn)了,但是為了減少后面訓(xùn)練時(shí)的復(fù)雜度,同時(shí)增加識(shí)別率,很有必要對(duì)圖片進(jìn)行預(yù)處理,使其對(duì)機(jī)器識(shí)別更友好。

    針對(duì)以上原始素材的處理步驟如下:

    1. 讀取原始圖片素材
    2. 將彩色圖片二值化為黑白圖片
    3. 去除背景噪點(diǎn)
      二值化圖片

    主要步驟如下:

    1. 將RGB彩圖轉(zhuǎn)為灰度圖
    2. 將灰度圖按照設(shè)定閾值轉(zhuǎn)化為二值圖
    image = Image.open(img_path)
    imgry = image.convert('L')  # 轉(zhuǎn)化為灰度圖
    
    table = get_bin_table()
    out = imgry.point(table, '1')

    上面引用到的二值函數(shù)的定義如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    def get_bin_table(threshold=140):
        """
        獲取灰度轉(zhuǎn)二值的映射table
        :param threshold:
        :return:
        """
        table = []
        for i in range(256):
            if i < threshold:
                table.append(0)
            else:
                table.append(1)
     
        return table
       圖片 去除噪點(diǎn)
  • 1對(duì)某個(gè) 黑點(diǎn) 周邊的九宮格里面的黑色點(diǎn)計(jì)數(shù)
  • 2如果黑色點(diǎn)少于2個(gè)則證明此點(diǎn)為孤立點(diǎn),然后得到所有的孤立點(diǎn)
  • 3對(duì)所有孤立點(diǎn)一次批量移除。
      模型訓(xùn)練

到這個(gè)階段后,由于本文直接使用的是開(kāi)源的 libSVM 方案,屬于應(yīng)用了,所以此處內(nèi)容就比較簡(jiǎn)單的。只需要輸入特征文件,然后輸出模型文件即可。

可以搜索到很多相關(guān)中文資料

主要代碼如下:

復(fù)制代碼
def train_svm_model():
    """
    訓(xùn)練并生成model文件
    :return:
    """
    y, x = svm_read_problem(svm_root + '/train_pix_feature_xy.txt')
    model = svm_train(y, x)
    svm_save_model(model_path, model)
 libSVM是一個(gè)機(jī)器學(xué)習(xí)的框架,需要查閱官方文檔完成集成工作,主要是python與libsvm的集成
RM新时代足球交易平台