parameters.yml檔案的內容:
%yaml:1.0
parameters:
min_win: 15
patch_size: 15
ncc_thesame: 0.95
valid: 0.5
num_trees: 10
num_features: 13
thr_fern: 0.6
thr_nn: 0.65
thr_nn_valid: 0.7
num_closest_init:10
num_warps_init: 20
noise_init: 5
angle_init: 20
shift_init: 0.02
scale_init: 0.02
num_closest_update:10
num_warps_update:10
noise_update: 5
angle_update: 10
shift_update: 0.02
scale_update: 0.02
overlap: 0.2
num_patches: 100
bb_x: 288
bb_y: 36
bb_w: 25
bb_h: 42
min_win:設定最小的框框大小,1.我們的目標框必須比這個大,2.生成grid時所有比這個值小的都排除。所以如果這個太小了,可能導致,grid的數量增多,導致程式變慢。
模版設定大小,程式中設定patch_size=15*15,越大可能會越慢
thp=nstructs*thr_fern=10*0.6,detection的隨機森林分類器過濾使用的閾值,加大可減少第三步模版匹配的個數,減少時間。
此外thp還在trainff對good_box的measure值標準用,小於6則要更新分類器。
thrn=0.5*nstructs=5,update隨機森林分類器用的,對bad_box的measure分類,大於5則必須更新。
ncc_thesame:nnconf裡用來判斷待匹配模版是否和正模版中中最相似的那個的相似度是否大於ncc_thesame還是和負模版中
那個的相似度是否大於ncc_thesame。尤其如果和負模版的中最大相似度大於thesame,則認為該影象塊在負模版庫中。則輸出printf("patchin negative data..not traing");不進行學習。
關於**nnconf中,計算csconf和rsconf的原理,他判斷正相似度(和正模板庫中最相似的值)的模版是否在正模版庫的前半段。來計算csconf。原理得看**。
引數中的valid就用在這裡,
int
validatedpart = ceil(pex.size()*valid);
num_trees:設定nstructs即ferns陣列的大小為10,即有10組,相當於取10次樣本(而每次樣本包含13個點對),這也導致,posteriors的行數是10
nstructs = (int)file["num_trees"]=10;
num_features:設定每組由幾個點對組成,由13個點對組成,也即有2^13種可能性。所以posteriors每一行的列數為2^13.
structsize = (int)file["num_features"]=13;
thr_nn=0.65:trainnn裡更新模版庫用的閾值,如果某個good_box的相似度小於0.65,則說明該影象塊和模板庫差別大,但是他又是good_box裡的,應該作為我們的模版庫,所以加入正模板庫。負模版庫的更新閾值是0.5,它沒有作為乙個引數,而是直接寫在程式裡。
thr_nn_valid=0.7,evaluate裡用了,,main沒有呼叫這個函式,還有地方用了,見**
classifier.nnconf(pattern,isin,dummy,tconf); //conservativesimilarity
tvalid = lastvalid;
if (tconf>classifier.thr_nn_valid)
num_closest_init=10,goodbox的大小。
num_closest_init = (int)file["num_closest_init"];
num_warps_init=20,對每個goodbox,都進行20次幾何變形,這樣我們可以由10個good_box產生200個px,**見px.push_back(make_pair(fern,1));1代表是good_box,然後用來更新隨機森林分類器。
num_warps_init = (int)file["num_warps_init"];
noise_init: 5
angle_init: 20
shift_init: 0.02
scale_init: 0.02
這幾個程式裡未見使用。
num_closest_update = (int)file["num_closest_update"];
num_warps_update=10,不是20了?這很奇怪,同理這是
即跟蹤到當前幀的目標的位置後,重新生成good_box後。要重新對那些good_box幾何變形,生成pex,和px**見
if(good_boxes.size()>0)
generatepositivedata(img,num_warps_update);
generatepositivedata(img,num_warps_update);
noise_update: 5
angle_update: 10
shift_update: 0.02
scale_update: 0.02
程式未見使用。
bad_overlap = (float)file["overlap"];
bad_patches =100,只是init裡用,用來生成nex,即初始時(trainff)用來訓練的負樣本,限制nex的數量為100,之後不再使用,之後trainff用的負樣本是,所有bad_box且在前面detection的隨機森林分類器裡measure_forest值大於1的,**見
for (int i=0;iidx=bad_boxes[i];
if (tmp.conf[idx]>=1)
**見generatenegativedata裡
nex=vector(bad_patches);
for (int i=0;iidx=bad_boxes[i];
patch = frame(grid[idx]);
getpattern(patch,nex[i],dum1,dum2);}
printf("nn: %d\n",(int)nex.size());
bad_patches = (int)file["num_patches"];
bb_x: 288
bb_y: 36
bb_w: 25
bb_h: 42
raid 陣列卡說明
進入資訊時代,各種行業對資料的安全和技術要求也越來越高,同時也遇到了各種各樣的伺服器故障問題,雖然能夠接到伺服器廠商的支援,但是往往耗時耗工 特別是有些不能夠立即判斷和解決的問題 造成了企業不必要的損失,近日壹基比小喻將針對一些客戶專門問的的的資料做raid的問題做了一些分類,那麼他們到底有何不同呢...
exp引數feedback exp引數說明 doc
exp引數說明 exp備份學習 exp簡要介紹 3 命令基本格式為 命令列格式 3 一 資料庫匯出驗證3 userid3 二 資料庫匯出方式4 direct4 query4 buffer4 recordlength4 三 資料庫匯出範圍6 full6 tablespace6 tables6 owne...
Cache control引數說明
header中的cache control引數說明 php編碼 網頁的快取是由http訊息頭中的 cache control 來控制的,常見的取值有private no cache max age must revalidate等,預設為private。其作用根據不同的重新瀏覽方式分為以下幾種情況 ...