반응형

Bounding box 이란?

Bounding box는 이미지 안에서 박스 형태로 위치를 표시해주는 것을 말합니다.

Coordinates 이란?

Coordinates는 좌표라는 뜻을 가지고 있고, 딥러닝에서도 좌표라는 의미로 사용됩니다.

 

Bounding box Coordinates

Bounding box에서 사용되는 coordinate는 보통 center coordinatescorner coordinates입니다. 

기본적으로 center coordinates은 주로 IoU를 계산할 때 사용됩니다. corner coordinates는 anchor나 MSELoss를 계산할 때 사용합니다.

 

 

cx = (x1 + x2) / 2

cy = (y1 + y2) / 2

w = x2 -x1

h = y2 -y1

 

 

 

 

 

 

코드

def corner_to_center(corner_boxes):
    """
    input
    corner_boxes: corner coordinates boxes : [N, 4] (x1, y1, x2, y2)
    output
    center_boxes: center coordinates boxes : [N, 4] (cx, cy, w, h)
    """
    cxcy = (corner_boxes[..., :2] + corner_boxes[..., 2:4]) / 2
    wh = corner_boxes[..., 2:4] - corner_boxes[..., :2]
    centor_boxes = torch.cat([cxcy, wh], dim=-1)
    return centor_boxes
    
    
def center_to_corner(center_boxes):
    """
    input
    center_boxes : center coordinates boxes : [N, 4] (cx, cy, w, h)
    output
    corner_boxes : corner coordinates boxes : [N, 4] (x1, y1, x2, y2)
    """
    x1y1 = center_boxes[..., :2] - (center_boxes[..., 2:4])/2
    x2y2 = center_boxes[..., :2] + (center_boxes[..., 2:4])/2
    corner_boxes = torch.cat([x1y1, x2y2], dim=-1)
    return corner_boxes

 

 

 

 

 

 

반응형

'머신러닝 & 딥러닝 > 용어' 카테고리의 다른 글

[용어]mini batch  (0) 2023.05.14

+ Recent posts