python處理車牌字元資料

來源:互聯網
上載者:User

為了用深度學習來訓練一個車牌識別的字元識別模型,首先需要解決的問題是處理資料的問題,為了能夠把資料傳入到網路裡進行訓練,我這裡使用的one_hot編碼,具體的細節如下:

首先準備資料集: 一部分自己的資料集,一部分是 Easypr的資料集(後500張圖片作為測試集,其他的作為訓練集)67617張
類別:65類
0-9共十個類,A-Z共二十四個類(除了O,I),

中文漢字共三十一個類( '鄂','贛','甘','貴','桂','黑','滬','冀','吉','津','晉','京','遼','魯','蒙','閩','寧','青','瓊','陝','蘇','皖','湘','新','豫', '渝','粵','雲','藏','浙')

歸一化:
將每張輸入字元圖片大小歸一化為20X20,並轉成灰階;
圖片的命名格式:
將資料集中的圖片命名為label.num.jpg(比如:0.0.jpg),目的是在於更方便的取得圖片的標籤與圖片;
省份使用拼音字串儲存:
chuan.0.jpg
標籤使用one-hot編碼:
得到圖片類別標籤後,將其轉成one-hot編碼;
處理成.npy的資料格式:
將之前處理好的圖片資料與標籤,使用numpy函數形成資料檔案.npy。

顯示處理過的部分資料:

圖1為車牌字元的圖片

圖2為車牌字元圖片相對應的標籤即類別

核心代碼如下:

def label_img(img):

label = np.eye(65, dtype=int)
    word_lable = img

label = np.eye(65, dtype=int)
    word_lable = img

def create_train_data():
    training_data = []
    for fpathe, dirs, fs in tqdm(os.walk(train_dir)):
        for f in fs:
            img = cv2.imread(os.path.join(fpathe, f),cv2.IMREAD_GRAYSCALE)
            image_name = os.path.join(fpathe, f).split('\\')[2]
            image=image_name.split('.')[0]
            label = label_img(image)
            img = cv2.resize(img, (IMG_SIZE, IMG_SIZE))
            training_data.append([np.array(img), np.array(label)])
    shuffle(training_data)
    np.save('路徑,training_data)
    return training_data



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.