文章目錄
1 比賽說明
- 比賽鏈接:https://tianchi.aliyun.com/competition/entrance/531795/introduction
- 比賽任務:以計算機視覺中字符識別爲背景,要求參賽者預測真實場景下的字符識別,這是一個典型的字符識別問題——零基礎入門CV賽事之街景字符識別。
2 數據說明
2.1 數據來源
來源於http://ufldl.stanford.edu/housenumbers/的公開數據集。
2.2 數據集
- 訓練集:3W張照片
- 驗證集:1W張照片
- 測試集A:4W張照片
- 測試集B:4W張照片
- 每張照片包括顏色圖像和對應的編碼類別和具體位置,如下圖所示:
2.3 數據標註信息(json文件)
用記事本或Notepad++打開數據的json文件,部分數據如下所示:
{"000000.png": {"height": [219, 219], "label": [1, 9], "left": [246, 323], "top": [77, 81], "width": [81, 96]},
"000001.png": {"height": [32, 32], "label": [2, 3], "left": [77, 98], "top": [29, 25], "width": [23, 26]},
"000002.png": {"height": [15, 15], "label": [2, 5], "left": [17, 25], "top": [5, 5], "width": [8, 9]},
"000003.png": {"height": [34, 34], "label": [9, 3], "left": [57, 72], "top": [13, 13], "width": [15, 13]},
"000004.png": {"height": [46, 46], "label": [3, 1], "left": [52, 74], "top": [7, 10], "width": [21, 15]},
"000005.png": {"height": [21, 21], "label": [3, 3], "left": [28, 38], "top": [6, 8], "width": [10, 11]},
"000006.png": {"height": [32, 32], "label": [2, 8], "left": [35, 47], "top": [10, 11], "width": [13, 13]},
"000007.png": {"height": [15, 15, 15], "label": [7, 4, 4], "left": [17, 25, 31], "top": [4, 4, 3], "width": [7, 6, 7]},
"000008.png": {"height": [24, 24, 24], "label": [1, 2, 8], "left": [19, 29, 38], "top": [4, 4, 5], "width": [14, 13, 17]},
將其數據結構理解成”嵌套的字典“,那麼每一張圖片有height、label、left、top、width
五種信息,其分別代表:top:左上角座標X ; height:字符高度; left:左上角最表Y; width:字符寬度; label:字符編碼
。另外label
表示該圖片含有的數字(字符)。
字符的座標具體如下所示:
3 評價標準
評價標準爲準確率,選手提交結果與實際圖片的編碼進行對比,以編碼整體識別準確率爲評價指標,結果越大越好,具體計算公式如下:
要注意:任何一個字符錯誤都爲錯誤。
4 提交的結果形式
提交前請確保預測結果的格式與sample_submit.csv中的格式一致,以及提交文件後綴名爲csv。
file_name, file_code
0010000.jpg,451
0010001.jpg,232
0010002.jpg,45
0010003.jpg,67
0010004.jpg,191
0010005.jpg,892
5 解題思路(重點)
賽題本質是分類問題,需要對圖片的字符進行識別。但賽題給定的數據圖片中不同圖片中包含的字符數量不等。圖片的字符個數爲從2個到6個不等。因此本次賽題的難點是需要對不定長的字符進行識別,與傳統的圖像分類任務有所不同。
5.1 簡單入門思路:定長字符識別
定長文字的識別相對簡單,應用場景也比較侷限,最典型的場景就是驗證碼的識別、機動車車牌的識別。由於字符數量是已知的、固定的,因此,網絡結構比較簡單,一般構建3層卷積層,2層全連接層便能滿足“定長文字”的識別。
將賽題抽象爲一個定長字符識別問題,在賽題數據集中大部分圖像中字符個數爲2-4個,最多的字符 個數爲6個。因此可以對於所有的圖像都抽象爲6個字符的識別問題,字符23填充爲23XXXX,字符231填充爲231XXX。
經過填充之後,原始的賽題可以簡化了6個字符的分類問題。在每個字符的分類中會進行11個類別的分類,假如分類爲填充字符,則表明該字符爲空。
一些定長字符識別的例子:
5.2 專業字符識別思路:不定長字符識別
不定長文字在現實中大量存在,例如印刷文字、廣告牌文字等,由於字符數量不固定、不可預知,因此,識別的難度也較大,這也是目前研究文字識別的主要方向。下面介紹不定長文字識別的常用方法:LSTM+CTC、CRNN、chinsesocr。
在字符識別研究中,有特定的方法來解決此種不定長的字符識別問題,比較典型的有CRNN字符識別模型。在本次賽題中給定的圖像數據都比較規整,可以視爲一個單詞或者一個句子。
一些不定長字符識別的例子:
- https://my.oschina.net/u/876354/blog/3070699/print
- https://zhuanlan.zhihu.com/p/29954560
- 【OCR技術系列之七】端到端不定長文字識別CRNN算法詳解
5.3 專業分類思路:檢測再識別
在賽題數據中已經給出了訓練集、驗證集中所有圖片中字符的位置,因此可以首先將字符的位置進行識別,利用物體檢測的思路完成。此種思路需要參賽者構建字符檢測模型,對測試集中的字符進行識別。參賽者可以參考物體檢測模型SSD或者YOLO來完成。