零基礎入門CV賽事-Task1 賽題理解

Datawhale 零基礎入門CV賽事-Task1 賽題理解
本章內容將會對街景字符識別賽題進行賽題背景講解,對賽題數據的讀取進行說明,並給出集中解題思路。
1 賽題理解
賽題名稱:零基礎入門CV之街道字符識別
賽題目標:通過這道賽題可以引導大家走入計算機視覺的世界,主要針對競賽選手上手視覺賽題,提高對數據建模能力。
賽題任務:賽題以計算機視覺中字符識別爲背景,要求選手預測街道字符編碼,這是一個典型的字符識別問題。
爲了簡化賽題難度,賽題數據採用公開數據集SVHN,因此大家可以選擇很多相應的paper作爲思路參考。
1.1 學習目標
理解賽題背景和賽題數據
完成賽題報名和數據下載,理解賽題的解題思路
1.2 賽題數據
賽題以街道字符爲爲賽題數據,數據集報名後可見並可下載,該數據來自收集的SVHN街道字符,並進行了匿名採樣處理。

注意: 按照比賽規則,所有的參賽選手只能使用比賽給定的數據集完成訓練,不能使用SVHN原始數據集進行訓練。比賽結束後將會對Top選手進行代碼審覈,違規的選手將清除排行榜成績。
訓練集數據包括3W張照片,驗證集數據包括1W張照片,每張照片包括顏色圖像和對應的編碼類別和具體位置;爲了保證比賽的公平性,測試集A包括4W張照片,測試集B包括4W張照片。
需要注意的是本賽題需要選手識別圖片中所有的字符,爲了降低比賽難度,我們提供了訓練集、驗證集和測試集中所有字符的位置框。
1.3 數據標籤
對於訓練數據每張圖片將給出對於的編碼標籤,和具體的字符框的位置(訓練集、測試集和驗證集都給出字符位置),可用於模型訓練: Field | Description| --------- | --------| top | 左上角座標X | height | 字符高度 | left | 左上角最表Y | width | 字符寬度 | label | 字符編碼 |
字符的座標具體如下所示:

在比賽數據(訓練集、測試集和驗證集)中,同一張圖片中可能包括一個或者多個字符,因此在比賽數據的JSON標註中,會有兩個字符的邊框信息:
|原始圖片|圖片JSON標註| |----|-----|  |  |

1.4 評測指標

選手提交結果與實際圖片的編碼進行對比,以編碼整體識別準確率爲評價指標。任何一個字符錯誤都爲錯誤,最終評測指標結果越大越好,具體計算公式如下:
Score=編碼識別正確的數量/測試集圖片數量

1.5 讀取數據

爲了方便大家進行數據讀取,在此我們給出JSON中標籤的讀取方式:

數據標註處理
def parse_json(d): arr = np.array([ d['top'], d['height'], d['left'], d['width'], d['label'] ]) arr = arr.astype(int) return arr
img = cv2.imread('../input/train/000000.png') arr = parse_json(train_json['000000.png'])
plt.figure(figsize=(10, 10)) plt.subplot(1, arr.shape[1]+1, 1) plt.imshow(img) plt.xticks([]); plt.yticks([])
for idx in range(arr.shape[1]): plt.subplot(1, arr.shape[1]+1, idx+2) plt.imshow(img[arr[0, idx]:arr[0, idx]+arr[1, idx],arr[2, idx]:arr[2, idx]+arr[3, idx]]) plt.title(arr[4, idx]) plt.xticks([]); plt.yticks([]) ```
 
1.6 解題思路
賽題思路分析:賽題本質是分類問題,需要對圖片的字符進行識別。但賽題給定的數據圖片中不同圖片中包含的字符數量不等,如下圖所示。有的圖片的字符個數爲2,有的圖片字符個數爲3,有的圖片字符個數爲4。 
字符屬性
圖片
字符:42 字符個數:2

字符:241 字符個數:3

字符:7358 字符個數:4


因此本次賽題的難點是需要對不定長的字符進行識別,與傳統的圖像分類任務有所不同。爲了降低參賽難度,我們提供了一些解題思路供大家參考: 
簡單入門思路:定長字符識別 
可以將賽題抽象爲一個定長字符識別問題,在賽題數據集中大部分圖像中字符個數爲2-4個,最多的字符 個數爲6個。 
因此可以對於所有的圖像都抽象爲6個字符的識別問題,字符23填充爲23XXXX,字符231填充爲231XXX。 
 
經過填充之後,原始的賽題可以簡化了6個字符的分類問題。在每個字符的分類中會進行11個類別的分類,假如分類爲填充字符,則表明該字符爲空。 
- 專業字符識別思路:不定長字符識別 
 
在字符識別研究中,有特定的方法來解決此種不定長的字符識別問題,比較典型的有CRNN字符識別模型。 
在本次賽題中給定的圖像數據都比較規整,可以視爲一個單詞或者一個句子。 
專業分類思路:檢測再識別 
在賽題數據中已經給出了訓練集、驗證集中所有圖片中字符的位置,因此可以首先將字符的位置進行識別,利用物體檢測的思路完成。 
 
此種思路需要參賽選手構建字符檢測模型,對測試集中的字符進行識別。選手可以參考物體檢測模型SSD或者YOLO來完成。 
1.7 本章小節
綜上所示,本次賽題雖然是一個簡單的字符識別問題,但有多種解法可以使用到計算機視覺領域中的各個模型,是非常適合大家入門學習的。 
三種解決思路的難度從低到高,因此建議入門學習的同學可以先學習定長字符識別的思路。在文檔之後的內容中我們也會以定長字符識別爲例,讓大家逐漸入門計算機視覺。 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章