零基礎入門CV之街道字元識別(一)

2021-10-06 08:19:18 字數 1282 閱讀 6393

我感覺比較費時間的是pytorch的安裝,由於在網上找不到乙個合適的教程,安裝pytorch花了很長時間,主要是網上的教程大多和我的情況不一樣。

賽題理解

在這之前還沒有接觸過cv這一方向。所以第一眼看到賽題是一種很茫然的感覺。之後看了講解學到了乙個大概的思路。不過資料處理部分也是很重要的。

這次的cv比賽是對svhn街道字元的識別。並且給了資料的字元位置框。

資料標籤

資料標籤中有字元的長,寬,字元的編碼和左上角座標x和左上角的座標y。

然後就可以通過給出的資料標籤資訊進行標籤的識別。

評測指標

這次的評測指標是整體識別率,就是編碼正確的數量和整體編碼值得比值。

讀取資料

json格式標籤資料的讀取方式。這裡是用到了乙個python處理json的包。

下面給出**

import json

# train_json字典格式

train_json = json.load(open('../input/train.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()

解題思路

這次的比賽實際上就是乙個分類問題。但是資料上字元的數量都是不一樣的,這是比賽的乙個難點。

其實主要有三種思路吧

零基礎入門CV之街道字元識別(五)

模型整合其實就是整合學習。整合學習方法 在機器學習中的整合學習可以在一定程度上提高 精度,常見的整合學習方法有stacking bagging和boosting,同時這些整合學習方法與具體驗證集劃分聯絡緊密。由於深度學習模型一般需要較長的訓練週期,如果硬體裝置不允許建議選取留出法,如果需要追求精度可...

學習筆記 零基礎入門CV之街道字元識別 賽題理解

學習主題 零基礎入門cv之街道字元識別。學習目標 通過賽題引導競賽選手入門計算機視覺,提高對資料建模。2.1 賽題目標 本次賽題的目標是識別出類似下圖中的字元,例如下圖中的數字 68 圖12.2 賽題資料圖2 訓練資料集示例 訓練集資料報括3w張 驗證集資料報括1w張 每張 包括顏色影象和對應的編碼...

零基礎入門CV賽事 Task3 字元識別模型

卷積神經網路 簡稱cnn 是一類特殊的人工神經網路,是深度學習中重要的乙個分支。cnn在很多領域都表現優異,精度和速度比傳統計算學習演算法高很多。特別是在計算機視覺領域,cnn是解決影象分類 影象檢索 物體檢測和語義分割的主流模型。cnn每一層由眾多的卷積核組成,每個卷積核對輸入的畫素進行卷積操作,...