亚洲精品美女久久久久久久-四川少妇搡bbw搡bbbb-精品免费国产一区二区三区四区,差差差很疼30分钟的视频,蜜桃成人无码区免费视频网站,免费人成视频x8x8

18600329666

咨詢技術專家

掃一掃
與技術專家在線溝通

Menu
圖片字母,數字識別技術
         圖片字母,數字識別技術,本文主要講解圖片中字母以及數字的識別技術,主要應用有車牌號識別軟件,鈔票編碼識別,稅號識別等應用系統中,圖片文字識別技術應用在很多重要的工業領域不僅能夠節省重復的人力成而且能夠增加識別歸檔的準確率
       一、主要思路
     
 將降噪后的圖片切成單個的字母或文字,同svm技術訓練機器的識別能力,逐漸提高準確率
       二、使用技術

  • python3.5

    python SDK版本

  • PIL

    圖片處理庫

  • libsvm

    開源的svm機器學習庫
    三、基本流程

    1. 準備原始圖片素材
    2. 圖片預處理
    3. 圖片字符切割
    4. 圖片尺寸歸一化
    5. 圖片字符標記
    6. 字符圖片特征提取
    7. 生成特征和標記對應的訓練數據集
    8. 訓練特征標記數據生成識別模型
    9. 使用識別模型預測新的未知圖片集
    10. 達到根據“圖片”就能返回識別正確的字符集的目標
    四、圖片字母,數字識別的實現
       圖片預處理

    雖然目前的機器學習算法已經相當先進了,但是為了減少后面訓練時的復雜度,同時增加識別率,很有必要對圖片進行預處理,使其對機器識別更友好。

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

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

    主要步驟如下:

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

    上面引用到的二值函數的定義如下:

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

到這個階段后,由于本文直接使用的是開源的 libSVM 方案,屬于應用了,所以此處內容就比較簡單的。只需要輸入特征文件,然后輸出模型文件即可。

可以搜索到很多相關中文資料

主要代碼如下:

復制代碼
def train_svm_model():
    """
    訓練并生成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是一個機器學習的框架,需要查閱官方文檔完成集成工作,主要是python與libsvm的集成