1 作業要求
輸入圖像為:
普通 A4紙,上有手寫的如下信息:
- 學號
- 手機號
- 身份證號
所有輸入格式一致,數字不粘連,但是拍照時角度可能不正。
輸出:
- 每個主要步驟的輸出結果,包括對 A4紙的矯正結果,行的切割,以及單個字符的切割結果。
- 對 A4紙上信息進行識別,以 xlsx 格式保存。
2 程序主要流程
提交的程序包含 C和 Python 編寫的兩個部分。C程序包含了 A4紙的矯正、A4紙行信息的識別、數字的切割以及使用 Adaboost 對數字信息的識別。Python 部分則使用 TensorFlow庫通過卷積神經網絡對數字信息進行識別,與 Adaboost 相比識別效果有較大的改進。對於每個給出的測試數據集都根據目錄結構給出了 SHELL 腳本。腳本將自動調用Python 與 C++程序,程序執行中將所有數字圖像分到識別出的對應的文件目錄下,然後生成一個記錄每個圖片的信息的 csv 文件,最後腳本將調用一個 Python 程序將 csv 文件轉為 xlsx 文件。
1.3 程序各個主要步驟簡述
紙矯正:
紙的識別與矯正部分由第七次作業的代碼修改而來,主要的流程如下:
- 使用K-means算法根據圖像像素值分為兩個聚類,輸出圖像的高灰度聚類置為255,地灰度聚類置為0.
- 使用區域生長去除圖像中除中心部分的紙張之外的其他紙張及亮度較高的部分。
- 遍歷圖像,將所有8鄰域均為255的點去除,輸出圖像僅保留 A4紙的邊緣
- 使用霍夫變換求出 A4紙的四條邊,獲取4個角點座標
- 根據4個角點座標計算從原圖到矯正後圖像的單應性矩陣,對生成圖像的每個座標值使用單應性矩陣計算原圖中的座標,使用雙線性插值計算出矯正後的像素值。
程序將把對每一張圖片矯正後的 a4紙圖像保存在執行目錄的 a4文件夾下。
自適應二值化處理
在第7次作業中 Adaboost 識別圖像前會先將 A4紙圖像進行全局固定閾值二值化處理,由於當時測試數據較少,可以找出一個適合所有測試數據的閾值;但在本次作業中測試數據較多,而且很多圖片有陰影區域造成影響,無法找出一個適合所有的全局閾值,因此改用了局部的自適應閾值二值化處理。其原理是對每一個像素點計算以其為中心的一定範圍內的像素點平均值,若該像素點值大於平均值的一定閾值比例,則認為將該點置為255,否則置0,在本次因為使用了 MNIST 數據集訓練,一樣地將高於閾值的點置0,其餘置255.
自適應二值化的處理結果將保存在程序執行目錄下的thresh 文件夾中。
圖像分割
對圖像的分割方法為首先對圖像沿着邊緣去除灰度值為255的區域,這一步的目的是去除在 A4矯正過程中可能將一部分背景包括在了圖像邊緣對圖像分割所造成的影響。對處理後的圖片,使用投影法進行分割,首先求出垂直方向下每一行的有效像素個數,根據獲得的數據即可求出圖像中數字的行數以及每行的位置。然後,對每行像素作水平方向上每一列的有效像素數求和,即可求得每行上數字的個數和位置。然而上述過程僅在理想狀態下有較好的效果,測試數據中卻有許多字跡歪斜或者粘連的情況,當這種情況出現時分割效果變差,因此對於分出的每一個數字還要再次嘗試進行分割獲取實際的單個數字,然而這種做法的缺點是最終獲得的每行的數字可能順序不準確,而且因為不能識別每行中到底有多少個數字,最終生成的結果中對應行的數字是不正確的。
圖像分割的結果將以“圖片序號-行數-行中位置.jpg”的格式 存入segmentations文件夾中。
Adaboost進行數字識別
Adaboost 通過將多個將多個稍微好於隨機的弱分類器進行組合獲得一個強分類器,在作業7中已經進行了使用,此次僅包括了 Adaboost 的預測部分的代碼,使用的數據為作業7中訓練獲得的數據。
Adaboost 獲得的結果將會把識別的圖像根據識別出的數字放入AdaboostResult文件夾中對應數字的目錄,若無法識別則放入-1目錄。同時會在 AdaboostResult/xlsx目錄下對每個圖片生成一個 csv 文件,包含了對應圖像中每一行識別出的數據。在執行目錄下還會生成一個 Adaboost-result.csv文件,以給出的例子格式保存每張圖的前三行數據。
卷積神經網絡進行數字識別
在本次程序中另外使用了TensorFlow來訓練卷積神經網絡對數字進行識別。卷積神經網絡的主要組成部分包括卷積層,池化層和密集層。相對於傳統的BP神經網絡,卷積神經網絡同樣使用反向傳播的方法進行訓練,但是僅有密集層為全連接。卷積神經網絡中的卷積層作用為對圖像中的每個子區域應用卷積核,從而輸出圖像特徵。池化層一般跟在卷積層後,作用為降低卷積層輸出的特徵圖維度,減少神經網絡的處理時間,處理方法有取區域的最大值或平均值進行池化。
在本次代碼實現中主要參考了 TensorFlow 官方教程進行 CNN 的構建,通過對 MNIST 數據集進行訓練後獲得的結果對MNIST 測試集準確率達到97.87%,但是對於作業中的數據實際的準確率目測僅有30%左右。因此,在代碼下 CNN 文件夾中還包含了從給出的圖片中經過圖片分割後選出的部分數字作為訓練集進行訓練,以及560個數字作為測試集,經過訓練後對MNIST 測試集準確率為39%,對自制的測試集準確率為99.8%,對作業中圖片數據的識別效果遠好於此前使用 MNIST 數據集時的效果。
4 文件結構
提交的文件根目錄下中包含三個文件夾:ImageData 文件夾包含了作業第一部分的10張測試圖片和測試結果,part2Data文件夾包含了第二部分的各個文件夾的原圖片與測試結果,project文件夾中包含 C++與 Python 的代碼文件。
AdaboostPredict 文件夾中包含了 A4紙矯正,圖像分割以及 Adaboost 進行識別的代碼,使用 cmake 構建,要求系統具有 OpenCV 環境。編譯指令如下:
# Linux, Mac
cmake .
make -j 4
# Windows (Visual Studio Command Line Prompt)
cmake -G "NMake Makefiles" .
nmake
C++代碼中各個部分作用如下:
- utils.h與utils.cpp文件包含多個類進行圖像處理時都可能用到的函數
- OpenCV_utils包含 CImg 到 OpenCV 的 Mat 的轉換方法以及對測試數字圖像數據的預處理
- Adaboost 文件夾中包含於 adaboost 有關的代碼,執行時從執行目錄下的 mnist 文件夾中讀取訓練好的 Adaboost 數據。
- a4文件夾下包含 a4紙矯正相關的代碼文件
- segmentation 文件夾下包含與數字的分割相關的代碼文件。
- 主程序的使用方法如下:
- ./recognition lower higher [skipA4] [skipAdaboost]
- 其中 lower 代表文件的起始序號,higher 代表最後一個文件的序號-1,程序將從執行目錄下的testcases文件夾讀取圖片並輸出結果至對應文件夾。若指定skipA4參數,則程序直接從 a4文件夾讀取已矯正的輸入,不進行矯正操作,若指定skipAdaboost,則程序不會進行 Adaboost 識別數字的操作。
CNN 目錄下包含了使用卷積神經網絡的 Python 代碼,各個文件作用如下:
- tf_cnn_mnist_test.py,
tf_cnn_mnist_train.py
以上2個文件分別對MNIST 數據集進行測試與訓練,訓練結果保存在mnist 文件夾下。 - tf_cnn_mySet_test.py,
tf_cnn_mySet_train.py
以上2個文件分別對自制的數據集進行測試與訓練,訓練結果保存在myTrainSet 文件夾下。 - tf_cnn_mnist_predict.py
tf_cnn_mySet_predict.py
以上兩個文件提供對傳入的數字使用 MNIST 訓練的模型以及自制數據集訓練的模型進行數字識別的函數,若直接運行則從命令行讀取文件名列表並返回所有接受的文件名對應的圖片所識別的數字。 - tf_cnn_mnist_run.py
tf_cnn_mySet_run.py
以上兩個文件使用方法為./py lower higher,lower 和 higher 參數意義為文件序號的範圍,程序將讀取上面 C++程序分割完後的數字文件進行識別並將圖片放入結果中對應的文件夾中,最後生成 csv 文件。
此外,在每個測試數據下都放置了5個 SHELL 腳本文件,作用如下:
- clean.sh: 清理運行程序所生成的所有文件
- init.sh: 運行程序前需先運行此腳本生成所有文件夾,否則運行過程中會出錯。
- adaboost.sh執行完整的 adaboost 識別數字程序,並自動將生成的 csv 轉為 xlsx,需在運行參數中指定圖片文件序號範圍。
- CNN_mnist.sh:執行 C++代碼中除 Adaboost 以外的部分,並調用 Python 使用 MNIST 數據集訓練的模型進行識別輸出結果,需在運行參數中指定圖片文件序號範圍,若已生成過 A4矯正則可通過 skipA4參數跳過 A4矯正。
- CNN_mnist.sh:執行 C++代碼中除 Adaboost 以外的部分,並調用 Python 使用 自制的數據集訓練的模型進行識別輸出結果,
5 程序運行結果
CNN 訓練的結果如下:
在搭載 GTX 965M的 Windows 筆記本下進行MNIST數據集訓練結果,準確率為97.87%:
在阿里雲 GPU實例下進行自制的數據集的訓練,對訓練集自身進行測試準確率為99.87%:
對自制的測試集進行訓練,準確率為99.82%:
對給出的10張圖片測試獲得的xlxs文件如下:
Adaboost(X代表無法識別的數字):
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
17717791 |
1X7577X7X11 |
47X57X1773XX17111777 |
|
1.jpg |
15771117 |
171X41557X3 |
XXX515171177256775 |
|
2.jpg |
17X71777 |
17775115777 |
571711111517X77717 |
|
3.jpg |
17771777 |
17991115X75 |
975179177137977771 |
|
4.jpg |
15X71X71 |
1X1X7X77111 |
7713X73XX777517115 |
|
5.jpg |
75XX7105 |
1X61766X171 |
8451X117711736113X |
|
6.jpg |
51151575 |
51757757777 |
XX7777777771717557 |
|
7.jpg |
17X717X1 |
17167X7771X |
1X5155117117251571 |
|
8.jpg |
15X91377 |
1X17X7XX37X70177X517X1177XX7757X7777X |
15776X11X15 |
|
9.jpg |
17771577 |
15777137777 |
7771771751567X9719 |
可以看到 Adaboost 經常出現無法識別數字的情況,而且識別到的數字準確率非常低。
CNN(MNIST訓練):
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
13331333 |
35211153951 |
45823713324810331318 |
|
1.jpg |
15351180 |
15282851081 |
882313177843263351 |
|
2.jpg |
15331327 |
13811818371 |
241121183612233312 |
|
3.jpg |
13331344 |
13311115818 |
533132177532277321 |
|
4.jpg |
15331367 |
13633753831 |
971281237333313835 |
|
5.jpg |
15371366 |
15617154121 |
886101171810252138 |
|
6.jpg |
13331351 |
33117315355 |
445233300051510258 |
|
7.jpg |
15351052 |
15550553783 |
550925177112221012 |
|
8.jpg |
15331348 |
1415456033320152341841188431180022218 |
15526411418 |
|
9.jpg |
15331391 |
18733181323 |
350105174105092319 |
可看到識別準確率已高了許多,把4識別為9,把9識別為7,把5識別為3的情況在錯誤中比較多。
CNN(自制訓練集):
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
15331333 |
93777132461 |
45675713744616331378 |
|
1.jpg |
15331180 |
13260831041 |
442313199803273059 |
|
2.jpg |
15331029 |
13827418392 |
441721199612273012 |
|
3.jpg |
15331344 |
15521145678 |
350102199602294321 |
|
4.jpg |
15331364 |
13632552831 |
441281234503093435 |
|
5.jpg |
15331646 |
13619154721 |
445301199810252734 |
|
6.jpg |
13331351 |
13719274306 |
445202200001010058 |
|
7.jpg |
15331052 |
15560563983 |
350426199712221012 |
|
8.jpg |
15331348 |
1415456033320162341941198461180022218 |
15626411418 |
|
9.jpg |
15331347 |
18950182323 |
350106199705042314 |
可以看到使用自制的數據集訓練的 CNN 可以達到較高的識別率。
另外可以看到的一個問題是在第9張圖中,由於其第2,3,4行的字跡歪斜:
從而導致程序在進行投影法分割時會將其錯誤地識別為一行,從而導致了錯誤的長輸出。
識別前的各個步驟的輸出圖像結果也已保存在壓縮包中。
計算機視覺Final Project 報告-Part 2
Part 2給出的圖片共有4個文件夾,對於每個文件夾的內容將其改為Part 1時測試圖片文件夾的結構,並將圖片重新命名為從0開始的序號後運行腳本進行測試。
1. Bad Samples
1.1 Adaboost結果
sh adaboost.sh 0 13
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
2 |
21 |
72 |
|
1.jpg |
2 |
1131X057 |
791X71171703050015 |
|
2.jpg |
171177X79 |
177X1767177 |
1X7777177X17X71717 |
|
3.jpg |
11X37702 |
117X7727757 |
3771XX177111111771 |
|
4.jpg |
1X77958 |
113X7844 |
1315X53X700 |
|
5.jpg |
5574777X |
17972XX711 |
XX117717X573171575 |
|
6.jpg |
7X757577 |
7177775X1671 |
5176515771X177X777 |
|
7.jpg |
16391142 |
180XX5816XX |
XXX8091X371X76833X |
|
8.jpg |
7X775179 |
1X5XX773X5X7 |
77X1711777717X7177 |
|
9.jpg |
51771X11 |
174177X71173 |
X7X57917161X19171 |
|
10.jpg |
76XX77X7 |
11171275661 |
6X1X071X42172X1167 |
|
11.jpg |
163X6760 |
157X6XX2176 |
XX6XX1XX70X30863X |
|
12.jpg |
27X17801X8X3 |
X7216X11771 |
7901X1156X57X113X |
1.2 CNN(MNIST訓練)結果
sh CNN_mnist.sh 0 13 skipA4
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
2 |
27 |
72 |
|
1.jpg |
7 |
15352081 |
881426177883010016 |
|
2.jpg |
153353023 |
15331336318 |
143101117012011211 |
|
3.jpg |
16343522 |
13363523337 |
445102177311111331 |
|
4.jpg |
8838388 |
15340547 |
13322032320 |
|
5.jpg |
18340030 |
1342213611 |
991002111603183554 |
|
6.jpg |
16340010 |
135010382218 |
440681111808032011 |
|
7.jpg |
16340148 |
18022581548 |
945202177312068337 |
|
8.jpg |
16573178 |
155625163327 |
322121177801155111 |
|
9.jpg |
16370113 |
154110809173 |
94080211161012151 |
|
10.jpg |
18360223 |
13127227668 |
441202194310281083 |
|
11.jpg |
16340260 |
15738982156 |
45038199802308633 |
|
12.jpg |
521168018883 |
30815341024 |
13087815538284024 |
1.3 CNN(自制數據集)結果
sh CNN_mnist.sh 0 13 skipA4
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
4 |
44 |
04 |
|
1.jpg |
4 |
15352057 |
441426199893010016 |
|
2.jpg |
153543002 |
15531336318 |
143701199012011319 |
|
3.jpg |
16340022 |
13060520009 |
445102199811111001 |
|
4.jpg |
9834484 |
16340044 |
13322632720 |
|
5.jpg |
16340050 |
1342273619 |
441002197603183659 |
|
6.jpg |
16390090 |
135090582299 |
440661199608032019 |
|
7.jpg |
16340144 |
18022581694 |
445202199712068339 |
|
8.jpg |
16340178 |
154626166529 |
522101199801155711 |
|
9.jpg |
16390219 |
154920804195 |
44080219961012151 |
|
10.jpg |
76340228 |
13129229664 |
441202194710281065 |
|
11.jpg |
16340260 |
15976482106 |
45078199802306633 |
|
12.jpg |
424142048495 |
40516341024 |
73044115626264024 |
在第一張圖中數字是橫向寫的,其他圖片中有的包含了中文,程序無法識別,因此部分輸出數據不正確。
2. Good-samples
2.1 Adaboost
sh adaboost.sh 0 25
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
77737771 |
77711651771 |
X71117117X77157X1X |
|
1.jpg |
15591797 |
1X7X117761X |
77177977XX7XX777991 |
|
2.jpg |
1X75711X |
177XX11X777 |
1111737771071X7X71 |
|
3.jpg |
1X7X1771 |
1X51XXX7751 |
7177711111777277177 |
|
4.jpg |
77717159 |
1XXX16X57X1 |
71117X1X7777716171 |
|
5.jpg |
15717777 |
1XX77777X17 |
1111751771X7X71777 |
|
6.jpg |
11717711 |
1X117X51751 |
XXX777117X11111X1X |
|
7.jpg |
1X157777 |
1X777715711 |
XX77911111717X7775 |
|
8.jpg |
11755777 |
17XX7171577 |
1177571X5717711171 |
|
9.jpg |
117X77XX |
17XX9111777 |
X27177151157177317 |
|
10.jpg |
177177X1 |
171X5777777 |
5717X7175777177177 |
|
11.jpg |
1XXX1145 |
175X7X7711X |
7X7X77177977077157 |
|
12.jpg |
1XXXX11X |
171979X7367 |
99XX1517477XX17XX5 |
|
13.jpg |
17751175 |
1177711XX57 |
1X71711XX77711X115 |
|
14.jpg |
1773X111 |
11177X15711 |
111711171111771117 |
|
15.jpg |
117X1117 |
1X5177X1771 |
5X51X7117577771171 |
|
16.jpg |
1X3X71X5 |
1377X771X11 |
11XX671157175X7X71 |
|
17.jpg |
167X1751 |
17X95X71771 |
7675X1111X11771777 |
|
18.jpg |
1971X155 |
15711XXX96X |
717X111X1X7X717711 |
|
19.jpg |
7X31X757 |
157X1X77X7X |
XX71X11XX15X175X7X |
|
20.jpg |
17715157 |
17517777177 |
X5175111X77517171X |
|
21.jpg |
1717X777 |
15X71X91197 |
1X731111X771711337 |
|
22.jpg |
11X57751 |
177X7551571 |
XXX777117771775717 |
|
23.jpg |
1575X757 |
17X777X1575 |
X771771X5577117717 |
|
24.jpg |
12X70311 |
17575717X11 |
11017313775X7X7754 |
2.2 CNN(MNIST數據集)
sh CNN_mnist.sh 0 25 skipA4
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
15313144 |
15018151334 |
440113137102185518 |
|
1.jpg |
15331335 |
13431153615 |
5315728177366388828 |
|
2.jpg |
15352037 |
13577065328 |
480103200103165331 |
|
3.jpg |
15340011 |
13572855323 |
9805011731055231254 |
|
4.jpg |
16380091 |
18631165581 |
881117188810286928 |
|
5.jpg |
16380355 |
18920033513 |
381911177802081025 |
|
6.jpg |
16390068 |
18811881381 |
480101111311181812 |
|
7.jpg |
15743711 |
18815386311 |
840181177105145135 |
|
8.jpg |
16370584 |
13160301431 |
210581134803116111 |
|
9.jpg |
16343584 |
13824111338 |
443101177803155310 |
|
10.jpg |
15380079 |
15320121802 |
454241171802307825 |
|
11.jpg |
15340107 |
15877822175 |
440802111808050731 |
|
12.jpg |
16370116 |
13128367363 |
474888174004012365 |
|
13.jpg |
18330124 |
13731818583 |
440811174103118111 |
|
14.jpg |
15380131 |
16333825213 |
098341851111131131 |
|
15.jpg |
15390133 |
13585095305 |
440102117802113111 |
|
16.jpg |
18340195 |
13013353833 |
440382134180299833 |
|
17.jpg |
18380181 |
15120821531 |
350181117811051213 |
|
18.jpg |
15340150 |
18200553318 |
942000147803255511 |
|
19.jpg |
18380170 |
15521433406 |
440481174805128853 |
|
20.jpg |
15350133 |
15108058800 |
350581143804131311 |
|
21.jpg |
16340203 |
12124231350 |
745381144701011333 |
|
22.jpg |
18340246 |
15387551238 |
440185177331015213 |
|
23.jpg |
10440135 |
15626138365 |
740222137131110810 |
|
24.jpg |
16340311 |
11121315661 |
110108133804111823 |
2.3 CNN(自制數據集)
sh CNN_mySet.sh 0 25 skipA4
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
15322244 |
15018751234 |
440112199702185678 |
|
1.jpg |
15331035 |
13981153616 |
4510724199766780826 |
|
2.jpg |
15350039 |
13599063728 |
440103200103165501 |
|
3.jpg |
16340017 |
13592833323 |
4405091997054201234 |
|
4.jpg |
16340042 |
18637665541 |
441129199810246429 |
|
5.jpg |
16340055 |
18420053672 |
441427199802081020 |
|
6.jpg |
16340064 |
18819861381 |
440902199811161612 |
|
7.jpg |
16340072 |
18825086611 |
440181199705245130 |
|
8.jpg |
16340085 |
13700401982 |
440582199803216174 |
|
9.jpg |
16340089 |
13424111354 |
440107199803150310 |
|
10.jpg |
16340094 |
15920227802 |
454242199802303826 |
|
11.jpg |
16340109 |
15899822193 |
440602199808050931 |
|
12.jpg |
16340116 |
13128567363 |
444888199004012345 |
|
13.jpg |
16340129 |
13902878689 |
440421199703118117 |
|
14.jpg |
16340131 |
16777826213 |
448771669111221132 |
|
15.jpg |
16340133 |
18565043306 |
440102199802173111 |
|
16.jpg |
16340145 |
13073059897 |
440582199710244597 |
|
17.jpg |
16340147 |
15920821537 |
360781199811057293 |
|
18.jpg |
16340150 |
18200653378 |
442000199803265511 |
|
19.jpg |
16340190 |
15521477906 |
440981199805126853 |
|
20.jpg |
16340193 |
15106058800 |
350581199804121217 |
|
21.jpg |
16340203 |
17724221560 |
445381199901011333 |
|
22.jpg |
16340246 |
15989001234 |
440785199701016213 |
|
23.jpg |
16340285 |
15626298865 |
440222199702110810 |
|
24.jpg |
16340311 |
19927575667 |
110108199804161823 |
3. 先身份證後手機
3.1 Adaboost
sh adaboost.sh 0 8
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
1X7X8717 |
7X1X5117X5117X7777 |
179727XXX41 |
|
1.jpg |
11117717 |
2177311XX177X37676 |
1XX17721X79 |
|
2.jpg |
76X7XX77 |
X17177757671117X73 |
77771X7977X |
|
3.jpg |
1XXX7577 |
XX377717717717XX25 |
13115771777 |
|
4.jpg |
1X797117 |
751771157577777774 |
1X717777175 |
|
5.jpg |
1XXX7117 |
77717111771715755X |
177717151171 |
|
6.jpg |
161X72XX |
51372717X1X11X7517 |
157XX6X77XX |
|
7.jpg |
161X07X5 |
7X1XX11XXX010111X1 |
13X73XX455X |
3.2 CNN(MNIST)
sh CNN_mnist.sh 0 8 skipA4
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
18383323 |
441381177811233732 |
13432257341 |
|
1.jpg |
18340025 |
412331144802330838 |
13333211433 |
|
2.jpg |
16380087 |
415127117657115743 |
15313154385 |
|
3.jpg |
15380111 |
442166177820162225 |
13513161771 |
|
4.jpg |
18343182 |
342501177110280124 |
18365357821 |
|
5.jpg |
18370210 |
500101177310121588 |
153211358871 |
|
6.jpg |
16340282 |
513028113808140013 |
15783904228 |
|
7.jpg |
18340842 |
941881139301011121 |
13233234853 |
3.3 CNN(自制數據集)
sh CNN_mySet.sh 0 8 skipA4
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
16340023 |
441581199811275972 |
13432769341 |
|
1.jpg |
16340025 |
412731199802230678 |
13823241935 |
|
2.jpg |
16340049 |
470129199609175943 |
15077704386 |
|
3.jpg |
16340177 |
442766199820162220 |
18575761997 |
|
4.jpg |
16340182 |
342501199710280924 |
18365359627 |
|
5.jpg |
16340210 |
500101199710129544 |
145213554471 |
|
6.jpg |
16340282 |
513028199808140013 |
15989004228 |
|
7.jpg |
16340292 |
441441199901011121 |
13277774859 |
4. Others
4.1 Adaboost
sh adaboost.sh 0 35
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
17X1X0X1 |
1X71119617X |
37XX3X177171X12211 |
|
1.jpg |
11775715 |
11X5175X511 |
71117111111715171X |
|
2.jpg |
1X571915 |
11X11X711X7 |
711XX1176752X1X711 |
|
3.jpg |
17771777 |
175X1571711 |
7111X71XXX1175X711 |
|
4.jpg |
1533141X |
1X1X7200703 |
27062X1XX77XX8717 |
|
5.jpg |
1574311XX |
1X1X7275717 |
4X1171117701757615 |
|
6.jpg |
17571175 |
117171XX771 |
717X77111X17776X71 |
|
7.jpg |
715X65XX |
157XX707111 |
XX711517177X6X61X1 |
|
8.jpg |
12347739 |
171X0177277 |
X61XXX577771775151 |
|
9.jpg |
11117577 |
115X77X1755 |
757X57X71771117175 |
|
10.jpg |
163X7X51 |
13X5X3XX128 |
1X12X31X1X17767X21 |
|
11.jpg |
755XX67X |
17X7X775615 |
XX775771717777XXXX |
|
12.jpg |
757X7711 |
111157X5X17 |
171X751111X1557711 |
|
13.jpg |
71XX3587 |
1X677X51XX7 |
447555177113515XX3 |
|
14.jpg |
16X777XX |
17576667XX1 |
9716XX144717131X67 |
|
15.jpg |
51177117 |
77777777777 |
7175757X7X7X717777 |
|
16.jpg |
16741171 |
1X177751X75 |
517777177217175377 |
|
17.jpg |
1X575737 |
11727725677 |
7177XX777706X3157X |
|
18.jpg |
16117171 |
111X71771171X177X7X116X175711 |
111X71771171X177X7X116X175711 |
|
19.jpg |
1X377117 |
1777XX71774 |
3X6X316177X631001X |
|
20.jpg |
1111X175 |
17X7111757X |
XXX17711X7X767X112 |
|
21.jpg |
1X121171 |
17X75219737 |
X7XX751X1X1771115X |
|
22.jpg |
15777775 |
17771757X71 |
5X1779577767177715 |
|
23.jpg |
173X2771 |
19156777711 |
71163X11X701X5XX19 |
|
24.jpg |
111X031X |
132XX157715 |
7101X7115X07772277 |
|
25.jpg |
167X5777 |
7176772777X6 |
9XX771716711577777 |
|
26.jpg |
75X1073X |
15177X777X7 |
1X1X011XX77125101X |
|
27.jpg |
763X7157 |
15370371516 |
XX650X1375576X71XX |
|
28.jpg |
11767X7517X165X11X77111171X1X717176X77 |
11767X7517X165X11X77111171X1X717176X77 |
11767X7517X165X11X77111171X1X717176X77 |
|
29.jpg |
113X7717 |
110716721XX |
19X1X6171711XX5677 |
|
30.jpg |
167XXX71 |
17X256X7X16 |
4X79761X74X78767X9 |
|
31.jpg |
715X73X1 |
135177574777 |
171772757511XX13X5 |
|
32.jpg |
76711177 |
1921111X777 |
1X7197145X16X1X077 |
|
33.jpg |
1X3X1076 |
XX557X76770 |
37737X7X7777XX7677 |
|
34.jpg |
1XX9XXX7 |
1XX1X611170 |
XX01XX1X1XXX01X0X0 |
4.2 CNN(MNIST)
sh CNN_mnist.sh 0 35 skipA4
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
12330023 |
18530124417 |
340826177501048610 |
|
1.jpg |
12353085 |
13571255111 |
111102111705151315 |
|
2.jpg |
13531111 |
18811981138 |
413051176012334731 |
|
3.jpg |
15331223 |
15521220011 |
513102177611218111 |
|
4.jpg |
15331817 |
18842200741 |
22062514730604317 |
|
5.jpg |
153530043 |
15810230101 |
440103171301110618 |
|
6.jpg |
16370005 |
13307088211 |
510822177812228881 |
|
7.jpg |
18384728 |
18888800111 |
440114881239551885 |
|
8.jpg |
16340032 |
15180112270 |
241440803181806148 |
|
9.jpg |
16387346 |
13726683228 |
221351177711110116 |
|
10.jpg |
18380359 |
13358323523 |
881883188811352421 |
|
11.jpg |
16340016 |
18426377823 |
441371187111234316 |
|
12.jpg |
16390011 |
18118723548 |
891224111131310311 |
|
13.jpg |
15343324 |
13424531237 |
442555187812515155 |
|
14.jpg |
16370088 |
15626283331 |
381602144310131350 |
|
15.jpg |
15395117 |
17812385818 |
440838588604145123 |
|
16.jpg |
16340121 |
13020551614 |
312125181611123310 |
|
17.jpg |
11330121 |
11120823518 |
510108111806223111 |
|
18.jpg |
16370128 |
17840134985121333388809235088 |
17840134985121333388809235088 |
|
19.jpg |
15340135 |
15120807717 |
350133141108210038 |
|
20.jpg |
16970173 |
13813083115 |
973111137303033112 |
|
21.jpg |
15340141 |
15825212730 |
450005177712018180 |
|
22.jpg |
16340116 |
13026261624 |
193202118101123116 |
|
23.jpg |
18348206 |
13628120708 |
111622137701010018 |
|
24.jpg |
16580215 |
13247618865 |
810135117808232211 |
|
25.jpg |
16340120 |
113628240586 |
370385144803280038 |
|
26.jpg |
16540224 |
15720822583 |
841301149011201012 |
|
27.jpg |
16340225 |
15420821586 |
440503177808150888 |
|
28.jpg |
11963832188962081875281331888011126438 |
11963832188962081875281331888011126438 |
11963832188962081875281331888011126438 |
|
29.jpg |
18380180 |
18018622388 |
940106178111255613 |
|
30.jpg |
15340250 |
13335802886 |
430426147408058148 |
|
31.jpg |
18340361 |
132130215770 |
330206177111061321 |
|
32.jpg |
16581007 |
13231113077 |
140183148306230088 |
|
33.jpg |
15341006 |
18520578170 |
330324114803240437 |
|
34.jpg |
15388080 |
15303011190 |
460105148003014020 |
4.3 CNN(自制數據集)
sh CNN_mySet.sh 0 35 skipA
|
filename |
studentID |
phone |
citizenID |
|
0.jpg |
12330029 |
18520124374 |
340826199501046610 |
|
1.jpg |
12353045 |
13631256719 |
211102191405151515 |
|
2.jpg |
13331217 |
18819481138 |
419001996072734451 |
|
3.jpg |
15331220 |
15521220011 |
513102199611276111 |
|
4.jpg |
15331419 |
18902200701 |
22062519970604717 |
|
5.jpg |
153450043 |
15820250709 |
440107199701270618 |
|
6.jpg |
16340006 |
13309088299 |
510522199812226441 |
|
7.jpg |
16340024 |
18988800111 |
440119981234567890 |
|
8.jpg |
16340032 |
15980192290 |
241440803199806148 |
|
9.jpg |
16340046 |
13725583658 |
461301199711110711 |
|
10.jpg |
16340054 |
13354325528 |
441883199811050421 |
|
11.jpg |
16340056 |
18026599823 |
441301199711290666 |
|
12.jpg |
16340071 |
18718023344 |
441224199701010011 |
|
13.jpg |
16340084 |
13424501234 |
442000199812310760 |
|
14.jpg |
16340088 |
15626287371 |
441602199710131750 |
|
15.jpg |
16340113 |
13822385829 |
440808088604190723 |
|
16.jpg |
16340121 |
15020557674 |
372925199611123310 |
|
17.jpg |
11340121 |
15120823518 |
510106199806223516 |
|
18.jpg |
16340128 |
14840124485171393988809235084 |
14840124485171393988809235084 |
|
19.jpg |
16340135 |
15920809974 |
360739199906210038 |
|
20.jpg |
16340139 |
15625085724 |
445222199709053912 |
|
21.jpg |
16340141 |
15626212930 |
460006199912018760 |
|
22.jpg |
16340186 |
15626267424 |
445202199707123175 |
|
23.jpg |
16340206 |
15626120907 |
511622199901070018 |
|
24.jpg |
16340216 |
13247655463 |
610125199808222217 |
|
25.jpg |
16340220 |
112626290586 |
370285199805280038 |
|
26.jpg |
16340224 |
15920822568 |
441301199811207012 |
|
27.jpg |
16340225 |
15920821586 |
440507199805150828 |
|
28.jpg |
11463432184462081490291379849011126958 |
11463432184462081490291379849011126958 |
11463432184462081490291379849011126958 |
|
29.jpg |
16340240 |
18028622384 |
440106199711255613 |
|
30.jpg |
16340250 |
17775602846 |
430426199906056198 |
|
31.jpg |
16340269 |
132150254990 |
350206199711061327 |
|
32.jpg |
16341005 |
13231112094 |
140183199706230049 |
|
33.jpg |
16341006 |
18520576970 |
330324199803240439 |
|
34.jpg |
16348080 |
15902011130 |
440106199603014020 |
可觀察到在自制訓練集下訓練的 CNN 的識別效果最好,然而當圖片中存在數字字跡歪斜時圖像分割仍會將多行數字切割為一行數字,從而使獲得的結果出現問題。
使用MNIST訓練的 CNN 模型與使用自制的數據集訓練的模型對560張圖片測試數據集的準確率對比如下:
MNIST 訓練的正確率為67.1%,自制訓練集的準確率為99.8%。
在自制訓練集下訓練效果較高,對每個圖片生成的 xlsx 文件效果如下。