目標檢測關注影象中特定的物體目標,要求同時獲得這一目標的類別資訊和位置資訊。檢測給出的是對前景和背景的理解,需要從背景中分離出感興趣的目標,並確定這一目標的描述(類別和位置,常用檢測框表示)
與影象分類的區別,目標檢測更具難度:
影象分類只需要判斷輸入的影象中是否包含感興趣物體,而不需要定位具體位置
如果知道了圖中某個位置存在物體,再將對應的區域性區域送入到分類網路中去進行判別,就可以知道影象中每個物體的位置和類別。
要想知道每個物體的位置,要使用「猜」的方式,也就是通過滑窗羅列圖中可能區域,乙個個去試,分別送入到分類網路進行分類得到其類別,同時我們會對當前的邊界框進行微調,這樣對於影象中每個區域都能得到(class,x1,y1,x2,y2)五個屬性,彙總後最終就得到了圖中物體的類別和座標資訊。
總結:先確立眾多候選框,再對候選框進行分類和微調。
圖中的兩種格式在不同場景下更加便於計算
def
xy_to_cxcy
(xy)
:"""
convert bounding boxes from boundary coordinates (x_min, y_min, x_max, y_max) to center-size coordinates (c_x, c_y, w, h).
:param xy: bounding boxes in boundary coordinates, a tensor of size (n_boxes, 4)
:return: bounding boxes in center-size coordinates, a tensor of size (n_boxes, 4)
"""return torch.cat(
[(xy[:,
2:]+ xy[:,
:2])
/2,# c_x, c_y
xy[:,
2:]- xy[:,
:2]]
,1)# w, h
defcxcy_to_xy
(cxcy)
:"""
convert bounding boxes from center-size coordinates (c_x, c_y, w, h) to boundary coordinates (x_min, y_min, x_max, y_max).
:param cxcy: bounding boxes in center-size coordinates, a tensor of size (n_boxes, 4)
:return: bounding boxes in boundary coordinates, a tensor of size (n_boxes, 4)
"""return torch.cat(
[cxcy[:,
:2]-
(cxcy[:,
2:]/
2),# x_min, y_min
cxcy[:,
:2]+
(cxcy[:,
2:]/
2)],
1)# x_max, y_max
在目標檢測任務中,關於iou的計算貫穿整個模型的訓練測試和評價過程,是非常非常重要的乙個概念,其目的是用來衡量兩個目標框的重疊程度。
計算流程:
1.首先獲取兩個框的座標,紅框座標: 左上(red_x1, red_y1), 右下(red_x2, red_y2),綠框座標: 左上(green_x1, green_y1),右下(green_x2, green_y2)
2.計算兩個框左上點的座標最大值:(max(red_x1, green_x1), max(red_y1, green_y1)), 和右下點座標最小值:(min(red_x2, green_x2), min(red_y2, green_y2))
3.利用2算出的資訊計算黃框面積:yellow_area
4.計算紅綠框的面積:red_area 和 green_area
5.iou = yellow_area / (red_area + green_area - yellow_area)
動手學cv-pytor 目標檢測入門
檢測任務需要同時 物體的類別和位置,因此需要引入一些跟位置相關的概念。通常使用邊界框 bounding box,bbox 來表示物體的位置,邊界框是正好能包含物體的矩形框,如圖所示,圖中3個人分別對應3個邊界框。通常有兩種格式來表示邊界框的位置 xyxy,即 x1,y1,x2,y2 其中 x1,y1...
目標檢測 mAP的概念
5 什麼是ap 6 什麼是map 在github上我們可以看到許多模型,他們都有map值的評價指標 這到底是個啥呢?要了解它必須要先了解以下幾個概念 tp true positives 意思就是被分為了正樣本,而且分對了。tn true negatives 意思就是被分為了負樣本,而且分對了,fp ...
目標檢測 目標檢測通用框架總結
目標檢測框架個人總結 以下是筆記中包含的內容 目標檢測網路框架總結 yolov4中有圖 從最開始的神經網路到現在深度更深,模組更多的目標檢測深度學習神經網路,如今大致可以分為two stage detector 典型的為rcnn系列 和 one stage detector 典型為yolo系列 每個...