關於SSD的資料增強

2021-08-15 08:58:28 字數 2748 閱讀 1199

annotateddatum是存放和bbox的類

1

2

3

4

5

6

7

8

9

10

11

12

// 估計是一張就對應於乙個annotateddatum

message annotateddatum

// 儲存的資料,需要imdecode

optional datum datum = 1;

// if there are "rich" annotations, specify the type of annotation.

// currently it only supports bounding box.

// if there are no "rich" annotations, use label in datum instead.

optional annotationtype type = 2;

// each group contains annotation for a particular class.

// 每一類都會有乙個annotation_group儲存屬於改類的bbox

repeated annotationgroup annotation_group = 3;

}

資料增強效果圖

假設原圖輸入是一張640*480的,這裡由於版面問題我放縮了尺寸並且沒做mean subtract,由於最後會有resize引數導致輸出的都會resize到300x300,但是主要看的是增強的效果,ssd中的資料增強的順序是:

distortimage: 這個主要是修改的brightness,contrast,saturation,hue,reordering channels,並沒改變標籤bbox

expandimage: 這個主要是將distortimage的用畫素0進行擴充套件,標籤bbox此時肯定會改變,就重新以黑邊的左上角為原點計算[0,1]的bbox的左上角和右下角兩個點座標。

batchsampler: 由於這裡選錯圖了,batchsampler必須要有gt的存在才會生效,由於我做的是人的檢測所以圖中沒人就不會生成sampled_bboxes,後面修改例子。sampled_bboxes的值是隨機在[0, 1]上生成的bbox,並且和某個gt_bboxes的iou在[min, max]之間。由於proto中配的max_sample都是為1,所以每個batch_sampler可能會有1個sampled_bbox,隨機取乙個sampled bbox並且裁剪和標籤。標籤裁剪也很好理解首先要通過projectbbox將原座標系標籤投影到裁剪後的新座標系的座標,然後再clipbbox到[0,1]之間。

crop:原本data_transformer還會crop的,這個引數是配在prototxt中,預設是原圖 所以就和沒crop一樣。如果要crop的話標籤也是會和之前batchsampler那樣處理。

其在train.prototxt中的位置:

layer 

transform_param

emit_constraint

distort_param

expand_param

} data_param

annotated_data_param

batch_sampler

sample_constraint

max_sample: 1

max_trials: 50

}batch_sampler

sample_constraint

max_sample: 1

max_trials: 50

}batch_sampler

sample_constraint

max_sample: 1

max_trials: 50

}batch_sampler

sample_constraint

max_sample: 1

max_trials: 50

}batch_sampler

sample_constraint

max_sample: 1

max_trials: 50

}batch_sampler

sample_constraint

max_sample: 1

max_trials: 50

}

擦除 SSD 的資料

故障情形 有一塊ssd不能寫入資料。windows 每次往裡面寫入,看起來是寫進去了,安全退出這塊 ssd,在另一台電腦開啟,發現ssd裡面的資料沒有任何變化。使用 windows 磁碟管理,刪除分割槽後,原分割槽的空間沒有釋放,也不能建立新的分割槽。因此,我認為這塊ssd有故障,不能寫入任何資料。...

擦除 SSD 的資料

故障情形 有一塊ssd不能寫入資料。windows 每次往裡面寫入,看起來是寫進去了,安全退出這塊 ssd,在另一台電腦開啟,發現ssd裡面的資料沒有任何變化。使用 windows 磁碟管理,刪除分割槽後,原分割槽的空間沒有釋放,也不能建立新的分割槽。因此,我認為這塊ssd有故障,不能寫入任何資料。...

擦除 SSD 的資料

故障情形 有一塊ssd不能寫入資料。windows 每次往裡面寫入,看起來是寫進去了,安全退出這塊 ssd,在另一台電腦開啟,發現ssd裡面的資料沒有任何變化。使用 windows 磁碟管理,刪除分割槽後,原分割槽的空間沒有釋放,也不能建立新的分割槽。因此,我認為這塊ssd有故障,不能寫入任何資料。...