這算是我的第一篇的cv筆記,cv方面了解的不多,這次的街道字元識別算是乙個正式的入門吧,下面簡要介紹一下我對本次賽題的一些個人理解。
賽題以街道字元為賽題資料,**於svhn街道字元(the street view house numbers (svhn) dataset),訓練集資料報括3w張**,驗證集資料報括1w張**,每張**包括顏色影象和對應的編碼類別和具體位置;測試集a包括4w張**,測試集b包括4w張**。
如上圖所示,都是原始資料。在解析度和顏色上存在差異性的,在字元級別上帶有邊界框。(藍色的邊框只是起說明作用,邊框並不是直接畫在上,而是儲存在digitstruct.mat檔案中)
注:資料集**自svhn,網頁鏈結並進行匿名取樣處理
訓練的編碼標籤和具體的字元框的位置(訓練集、驗證集都給出字元位置):
score=編碼識別正確的數量/測試集數量
json中標籤的讀取方式:
import json
train_json = json.load(
open
('../input/train.json'))
# 資料標註處理
defparse_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(
)
問題本質是分類問題,需對字元進行識別。
定長字元識別:
大多影象中字元個數為2-4個,最多為6個。故我們可以將此不定長字元識別問題轉化為定長字元識別問題,先將每個字元都擴充套件成6位******,例如字元14填充為14***x,字元123填充為123***。這樣就成了6個字元的分類問題,每個字元的分類中會進行11個類別(0-9,x)的分類,若分類為填充字元,則表明該字元為空。
不定長字元識別:
現今基於深度學習的端到端ocr技術有兩大主流技術:crnn ocr和attention ocr。crnn字元識別模型應用的更加廣泛。
網路結構包含三部分,從下到上依次為:
卷積層,使用cnn,作用是從輸入影象中提取特徵序列;
迴圈層,使用rnn,作用是**從卷積層獲取的特徵序列的標籤(真實值)分布;
轉錄層,使用ctc,作用是把從迴圈層獲取的標籤分布通過去重整合等操作轉換成最終的識別結果;
題中給定的影象資料都比較規整,可以視為乙個單詞或者乙個句子。
檢測再識別:
首先構建字元檢測模型,對測試集中的字元進行識別。
可利用ssd、yolo等常見目標檢測演算法先檢測出字元的邊界框,再通過模型識別字元所表示的數字。
題目本身是簡單的字元識別問題,解決過程中可以使用到多個cv中的模型演算法,通過後續學習,可以逐漸加深對計算機視覺的理解和掌握。
學習筆記 零基礎入門CV之街道字元識別 賽題理解
學習主題 零基礎入門cv之街道字元識別。學習目標 通過賽題引導競賽選手入門計算機視覺,提高對資料建模。2.1 賽題目標 本次賽題的目標是識別出類似下圖中的字元,例如下圖中的數字 68 圖12.2 賽題資料圖2 訓練資料集示例 訓練集資料報括3w張 驗證集資料報括1w張 每張 包括顏色影象和對應的編碼...
學習記錄 街景字元識別 TASK 1 賽題理解
本文內容將對街景字元識別賽題的理解做相應記錄,同時作為乙個cv初學者,我也想藉此練習一下撰寫部落格的能力,感謝批評指正。本題以計算機視覺中字元識別為背景,要 街道字元編碼,採用svhn資料集做乙個簡單的字元識別問題。賽題用的是比賽給定的svhn街道字元資料集,已進行匿名取樣。訓練集資料報括3w張 驗...
零基礎入門CV之街道字元識別(一)
我感覺比較費時間的是pytorch的安裝,由於在網上找不到乙個合適的教程,安裝pytorch花了很長時間,主要是網上的教程大多和我的情況不一樣。賽題理解 在這之前還沒有接觸過cv這一方向。所以第一眼看到賽題是一種很茫然的感覺。之後看了講解學到了乙個大概的思路。不過資料處理部分也是很重要的。這次的cv...