今天看r-cnn的**,演算法的第一步是提取2000個region proposal,然後根據提取的目標影象進行crop/warp處理後,再用alexnet(vgg)提取特徵,得到固定維度的輸出(4096),經過svm分類識別,再用bounding box regressing精確候選框位置。而生成候選區域的方法就是用selective search。
一、目標檢測 vs 目標識別
目標識別(objec recognition)是指明一幅輸入影象中包含那類目標。其輸入為一幅影象,輸出是該影象中的目標屬於哪個類別(class probability)。而目標檢測(object detection)除了要告訴輸入影象中包含了哪類目前外,還要框出該目標的具體位置(bounding boxes)。
二、整體思路
窮舉計算量太大,不如根據顏色、紋理等方面去劃分區域。精度低一點,但是大大減少計算量。
三、實現
作者的實現思路是,首先通過簡單的區域劃分演算法(《efficient graph-based image segmentation》),將劃分成很多小區域,再通過相似度和區域大小(小的區域先聚合,這樣是防止大的區域不斷的聚合小區域,導致層次關係不完全)不斷的聚合相鄰小區域,類似於聚類的思路。這樣就能解決object層次問題,實際上也是非常成熟的技術。
其次,作者為了保證能夠劃分的完全,對於相似度,作者提出了可以多樣化的思路,不但使用多樣的顏色空間(rgb,lab,hsv等等),還有很多不同的相似度計算方法。
最後對於計算速度來說,只能說這個思路在相對窮舉,大大減少了後期分類過程中的計算量,但是本身的計算量還是有很大的優化空間,後來很多人在這個思路上改進,得到了效能好的多的演算法。
四、selective search演算法流程
輸入:輸出:物體所有可能的候選框
step0:生成區域集r,具體參見**《efficient graph-based image segmentation》
step1:計算區域集r裡每個相鄰區域的相似度s=
step2:找出相似度最高的兩個區域,將其合併為新集,新增進r
step3:從s中移除所有與step2中有關的子集
step4:計算新集與所有子集的相似度
step5:跳至step2,直至s為空
其中相似度的計算,**考慮了顏色、紋理、尺寸和空間交疊這4個引數。
4.1、顏色相似度(color similarity)
將色彩空間轉為hsv,每個通道下以bins=25計算直方圖,這樣每個區域的顏色直方圖有25*3=75個區間。 對直方圖除以區域尺寸做歸一化後使用下式計算相似度:
4.2、紋理相似度(texture similarity)
**採用方差為1的高斯分布在8個方向做梯度統計,然後將統計結果(尺寸與區域大小一致)以bins=10計算直方圖。直方圖區間數為8*3*10=240(使用rgb色彩空間)。
其中,4.3、尺寸相似度(size similarity)
保證合併操作的尺度較為均勻,避免乙個大區域陸續「吃掉」其他小區域。
例:設有區域a-b-c-d-e-f-g-h。較好的合併方式是:ab-cd-ef-gh -> abcd-efgh -> abcdefgh。 不好的合併方法是:ab-c-d-e-f-g-h ->abcd-e-f-g-h ->abcdef-gh -> abcdefgh。
4.4、交疊相似度(shape compatibility measure)
4.5、最終的相似度
選擇性搜尋(selective search)
該文翻譯整理自 selective search for object detection c python 一 目標檢測 vs 目標識別 目標識別 objec recognition 是指明一幅輸入影象中包含那類目標。其輸入為一幅影象,輸出是該影象中的目標屬於哪個類別 class probabil...
mysql選擇性 Mysql索引的選擇性
對於索引的使用,mysql並不一直都是用採用正確的決定的。參考乙個簡單的表 create table r2 id int 11 default null,id1 int 11 default null,cname varchar 32 default null,key id1 id1 engine ...
索引 選擇性
索引的選擇性是指索引列中不同值的數目與表中記錄數的比。如果乙個表中有2000條記 錄,表索引列有1980個不同的值,那麼這個索引的選擇性就是1980 2000 0.99。乙個索引的選擇性越接近於1,這個索引的效率就越高。如果是使用基於cost的最優化,優化器不應該使用選擇性不好的索引。如果是使用基於...