官术网_书友最值得收藏!

第1章 雙階段檢測

1.3.2 數據準備

Fast R-CNN也是通過選擇性搜索選取的候選區域。Fast R-CNN的論文指出,隨著候選區域的增多,mAP(平均精度均值)呈先上升后下降的趨勢,所以候選區域的個數不宜太多,更不宜太少,Fast R-CNN則選取了2000個候選區域。

self.config = {'cleanup' : True,
???????????????'use_salt' : True,
???????????????'top_k' : 2000}
1.輸入圖像尺度

通過對比多尺度{480, 576, 688, 864, 1200}和單尺度的精度,可以發現Fast R-CNN的單尺度和多尺度的精度差距并不明顯。這也從另一個角度證明了深度卷積神經網絡有能力直接學習到輸入圖像的尺寸不變性。但Fast R-CNN依舊保留了多尺度這個功能,尺度選項可以在lib/fast-rcnn/config.py文件里設計,如下面的代碼,其中SCALES可以為單個值(單尺度)或多個值(多尺度)。

# 訓練期間使用的尺度(可以列出多個尺度)
# 每個尺度中的值指的是圖像最短邊的大小
_ _C.TRAIN.SCALES = (600,)

Fast R-CNN的源碼在實驗中使用了最小邊長600、最大邊長不超過1000的縮放圖像方法,該方法通過下面的函數實現。

def prep_im_for_blob(im, pixel_means, target_size, max_size):
????im = im.astype(np.float32, copy=False)
????im -= pixel_means
????im_shape = im.shape
????im_size_min = np.min(im_shape[0:2])
????im_size_max = np.max(im_shape[0:2])
????im_scale = float(target_size) / float(im_size_min)
????# 防止最大邊超過 max_size
????if np.round(im_scale * im_size_max) > max_size:
????????im_scale = float(max_size) / float(im_size_max)
????im = cv2.resize(im, None, None, fx=im_scale, fy=im_scale, interpolation=cv2.INTER_LINEAR)
????return im, im_scale
2.數據擴充

在深度學習任務中,當我們的樣本量不足以支撐模型的訓練時,通常采用數據擴充的方法來增加樣本量。數據擴充對增加模型的泛化能力,減輕過擬合的問題是非常有效的。在實驗中,Fast R-CNN僅使用了最常見的翻轉圖片這一擴充方式。

主站蜘蛛池模板: 郧西县| 和龙市| 嫩江县| 大连市| 东莞市| 伽师县| 兴海县| 肇东市| 松溪县| 方城县| 县级市| 南溪县| 崇信县| 中西区| 霍林郭勒市| 冷水江市| 鲁甸县| 南开区| 深州市| 开化县| 洮南市| 甘德县| 扎囊县| 当雄县| 陇西县| 邓州市| 昭苏县| 察隅县| 平原县| 基隆市| 信丰县| 吉林省| 祁连县| 莒南县| 娱乐| 蒲城县| 阜城县| 合川市| 抚州市| 屯昌县| 西贡区|