[OpenR8 解決方案] Image_OCR_Caffe_FC (使用 Caffe 進行光學字元辨識手寫數字)

一、Image_OCR_FC_Caffe_FC 介紹

 

 Image_OCR_FC_Caffe_FC 是使用 Caffe 的 MNIST 手寫數字辨識,辨識圖片中數字為何,如圖 1

首先,本文件會介紹如何訓練,以及選擇測試圖片看其結果,如圖 2

 

圖 1.解決方案的目標 .png

圖 1.解決方案的目標 。

 

圖 2.解決方案的流程 .png

圖 2.解決方案的流程 。

 

※對深度學習有興趣者,可參考【開源大補帖】中其他深度學習文件。

 

 

二、Image_OCR_FC_Caffe_FC 資料夾介紹

 

 Image_OCR_FC_Caffe_FC 位於 OpenR8 的 solution 資料夾內,如圖 3,內有一個資料夾及兩個 flow 檔案,如圖 4

 

  1. 資料夾:【data 資料夾】存放 Caffe 會用到的檔案。
  2. flow 檔案:【1_train.flow】、【2_inference.flow】,訓練用以及測試圖片用。

 

圖 3. Image_OCR_FC_Caffe_FC位置 .png

圖 3. Image_OCR_FC_Caffe_FC 位置 。

 

圖 4. Image_OCR_FC_Caffe_FC資料夾 .png

圖 4. Image_OCR_FC_Caffe_FC 資料夾 。

 

【data 資料夾】的內容如下表。

data 資料夾內容

用途

資料夾 內容

test_lmdb 資料夾

放置測試樣本數據庫的資料夾。

data.mdb lock.mdb

trainval_lmdb 資料夾

放置訓練樣本數據庫的資料夾。

data.mdb lock.mdb

image 資料夾

存放測試用圖片。

各種測試圖檔。

deploy.prototxt

讀取神經網路結構模型。

 

label.txt

標示數字0~9的檔案。

 

solver.prototxt

Caffe 的參數設定。

 

train.prototxt

讀取訓練的神經網路結構模型。

 

FC_28x28_iter_10000.caffemodel

訓練出來的 caffe model。

 

FC_28x28_iter_10000.solverstate

訓練出來的檔案。

 

 

※初次使用 caffe、對 caffe 一些相關設定不熟悉者,建議別自行更動檔案位置、名稱。

 

 

三、進行 Caffe 訓練

 

請點選【檔案】=>【開啟】=>【進入到 OpenR8 底下的 solution 資料夾】=>【選擇 Image_OCR_FC_Caffe_FC 資料夾】=>【選擇 1_train.flow 開啟】,如圖 5圖 6

 

圖 5.選擇1_train.flow .png

圖 5.選擇 1_train.flow 。

 

圖 6.開啟1_train.flow .png

圖 6.開啟 1_train.flow 。

 

即可按下執行,便開始訓練。

 

圖 7.執行ImageFindRotateVerticalAngle.flow解決方案 .png

圖 7.執行1_train.flow 解決方案 。

 

訓練完畢,進入下個章節介紹如何選擇圖片看結果。

 

※由於 Image_OCR_FC_Caffe_FC 的數據庫已事先產生,若需要增加訓練樣本,請自行生成數據庫。

 

 

 

 

 

四、選擇圖片看結果

 

請點選【檔案】=>【開啟】=>【進入到 OpenR8 底下的 solution 資料夾】=>【選擇 Image_OCR_FC_Caffe_FC 資料夾】=>【選擇 2_inference.flow 開啟】,如圖 8圖 9

 

圖 8.選擇2_inference.flow .png

圖 8.選擇 2_inference.flow 。

 

圖 9.開啟2_inference.flow .png

圖 9.開啟 2_inference.flow 。

 

選擇一張圖片來做測試。

 

圖 10.選擇測試樣本 .png

圖 10.選擇測試樣本 

 

即可按下執行,即可觀看結果。

 

圖 11.執行2_inference.flow解決方案 .png

圖 11.執行 2_inference.flow 解決方案 

 

圖 12.執行結果說明 .png

圖 12.執行結果說明 。

 

圖 13.手寫一張作測試之結果 .png

圖 13.手寫一張作測試之結果 。

 

※太大的圖會喪失一定的準確度,若要自行測試,圖可能不要弄太大

 

 

五、1_train.flow 的流程

 

  1. Caffe_ 初始化:

一開始會將 Caffe 初始化。

 

圖 14.1_train.flow的Caffe_初始化 .png

圖 14.1_train.flow 的 Caffe_ 初始化 。

 

  1. Caffe_ 訓練:

讀入 solver.prototxt 檔案(內含 caffe 用的一些參數設定),設定是否有無 GPU 後,即可開始執行,如圖 15

 

圖 15.1_train.flow的Caffe_訓練 .png

圖 15.1_train.flow 的 Caffe_ 訓練 。

 

 

六、2_inference.flow 的流程

 

圖 16.2_inference.flow的流程 .png

圖 16.2_inference.flow 的流程 。

 

  1. 影像_開啟:

開啟想測試的圖片。

影像檔案名稱:透過圖17綠框選擇圖片。

影像:輸出讀入的影像。

 

圖 17. 2_inference.flow的影像_開啟 .png

圖 17. 2_inference.flow 的影像_開啟 。

 

  1. Caffe_ 初始化:

將 Caffe 初始化。

 

圖 18. 2_inference.flow的Caffe_初始化 .png

圖 18. 2_inference.flow 的 Caffe_ 初始化 。

 

  1. Caffe_ 讀取模型:

CaffeObject:選擇【Caffe_ 初始化】同一個的物件。

enableGPU:選擇是否具有 GPU 功能。

deployPath:讀取【deploy.prototxt】檔案(在 data 資料夾內)。

caffeModePath:讀取【FC_28x28_iter_10000.caffemodel】檔案(在 data 資料夾內),此檔案為執行 1_train.flow 所產生。

labelPath:讀取【label.txt】檔案(在 data 資料夾內),此檔案存放所有類別之名稱。

meanFilePath:計算圖片均值的檔案路徑。

 

圖 19.2_inference.flow的Caffe_讀取模型 .png

圖 19.2_inference.flow 的 Caffe_ 讀取模型 。

 

  1. Caffe_ 影像推論:

將【影像_開啟】輸出的影像餵入 Caffe 來判斷是否有所屬類別。

CaffeObject:第選擇【Caffe_ 初始化】同一個的物件。

inferenceLabel:輸出所屬類別(這裡的類別指0~9)。

inferenceProbabilty:輸出相似程度的分數。

enableGPU:是否具有 GPU 功能。

影像:【影像_開啟】所輸出的影像。

 

圖 20.2_inference.flow的Caffe_影像推論 .png

圖 20.2_inference.flow 的 Caffe_ 影像推論 。

 

  1. 影像_顯示:

顯示【影像_開啟】讀入的圖片。

影像:選擇【影像_開啟】所輸出的影像。

縮放百分比:顯示的影像縮放比例,不填時預設為100(=100%正常大小)。

視窗標題:顯示的視窗名稱,不填時則不顯示名稱。

 

圖 21. 2_inference.flow的影像_顯示 .png

圖 21. 2_inference.flow 的影像_顯示 。

 

  1. 列印:

在 DOS 視窗印出 “InferenceString =”。

 

圖 22. 2_inference.flow的列印 .png

圖 22. 2_inference.flow 的列印 。

 

  1. 列印單行:

在 DOS 視窗印出所屬類別後換行。

 

圖 23. 2_inference.flow的列印單行 .png

圖 23. 2_inference.flow 的列印單行 。

 

  1. 列印:

在 DOS 視窗印出 “InferenceProbability =”。

 

圖 24. 2_inference.flow的列印 .png

圖 24. 2_inference.flow 的列印 。

 

  1. 列印單行:

在 DOS 視窗印出相似程度分數後換行。

 

圖 25. 2_inference.flow的列印單行 .png

圖 25. 2_inference.flow 的列印單行 。

 

  1. 等待:

在【影像_顯示】後一定要加【等待】才能看到影像,影像停留多少微秒之設定。

鍵值:輸出的訊號。

微秒:想讓影像直到按下任意鍵才關閉時,請設0;想讓影像顯示1秒後關閉,請設1000;想設置n秒後關閉,請設1000 * n。

※1秒鐘 = 1000微秒。

 

圖 26. 2_inference.flow的等待函式 .png

圖 26. 2_inference.flow 的等待函式 。

 

  1. 影像_關閉所有視窗:

將所有【影像_顯示】所顯示的影像視窗關閉。

 

圖 27. 2_inference.flow的影像_關閉所有視窗 .png

圖 27. 2_inference.flow 的影像_關閉所有視窗 


延伸閱讀

1.
OpenR8 - 人人都會用的 AI 軟體 (下載)

[CP 值最好的 AI 人工智慧電腦熱賣中]
硬體採用最新最快的 Titan RTX, RTX-2080Ti-11G, 及 TESLA V100!
視窗圖控介面,易學易用。
硬體優勢:針對深度學習最佳化設計,且經過客戶端 24H 運作驗證。
軟體優勢:事先安裝人工智慧軟體及優化設定,每週提供最新 AI 演算法下載。
公司優勢:專業人工智慧機器人設計公司,資本額一億。
歡迎企業、學校、及公家機關大量採購。
可租用,歡迎來信或來電洽詢。
詳細資料請參閱以下網址: https://tw.leaderg.com/ai_computer