天天看點

python+flask搭建CNN線上識别手寫中文網站

使用

python+flask

搭建的一個網站,然後從網頁的寫字闆上擷取滑鼠手寫的漢字經過轉碼後傳回背景,并經過圖檔裁剪處理之後傳入

CNN

手寫中文識别的模型中進行識别,最後通過

PIL

将識别結果生成圖檔,最後異步回傳給web端進行識别結果展示。中文總共

50,000

多漢字,常用的有

3,755

個。這裡主要對常見的

3755

個漢字進行識别。
python+flask搭建CNN線上識别手寫中文網站

一、資料集

目前國内有很多優秀的中文手寫識别資料集。例如:北京郵電大學模式識别實驗室釋出的資料

(HCL2000)

,它是目前最大的脫機手寫漢字庫,共有

1,000

個人書寫,除了漢字樣本庫外,還有一個對應的書寫者資訊庫,記錄了書寫者的年齡、職業、教育程度等資訊,用于研究相關影響因素。目前此資料庫免費向研究者公開。本文使用的是中科院自動研究所的分享的中文手寫資料集

CASIA-HWDB

(下載下傳位址http://www.nlpr.ia.ac.cn/databases/handwriting/Home.html ),由187個人通過

Wacom

筆線上輸入的手寫漢字。

二、CNN結構:

tensorflow

庫來實作【三個卷積層+三個池化層+兩個全連接配接層】的卷積神經網絡,結構如下圖所示:

python+flask搭建CNN線上識别手寫中文網站

訓練圖檔都修整成64x64大小,這裡我隻訓練常見的3755個漢字,在CNN識别數字的模型結構上再添加了一個卷積層和池化層,其他結構差不多。

将下載下傳好的HWDB資料集解壓處理好開始訓練,這個訓練過程比較長,我最終在

GPU:GTX1050Ti

上疊代了12,000次花費幾個小時,最終取最可能的前三個預測值

三、加載模型

我訓練模型疊代了12,000次之後,将訓練參數儲存在

checkpoint

檔案夾中,不過因為單個檔案大小的限制,訓練好的模型檔案從百度雲上下載下傳:

連結: https://pan.baidu.com/s/1eSWBIyI

密碼: kv2r

下載下傳之後直接覆寫

checkpoint

檔案夾。

四、環境

 ●  python 3.6.1;

 ●  flask 0.12.2;

 ●  tensorflow 1.3.0;

 ●  pillow 4.2.1;

 ●  pickleshare 0.7.4;

 ●  numpy 1.13.1;

五、運作

1、克隆項目,然後按照環境要求安裝好相應的庫(使用

pip

安裝);

2、從百度雲下載下傳訓練好的模型檔案,放到相應的

checkpoint

檔案夾下;

3、使用

python run.py

運作;

4、打開本地浏覽器輸入

localhost:5000

進行檢視;

原文釋出時間為:2018-10-14

本文來自雲栖社群合作夥伴“

大資料挖掘DT機器學習 

”,了解相關資訊可以關注“

”。