728x90
반응형
mmdetection 모듈 쓰다가 mlvl 의 의미가 궁금해서 알아보았다.
class mmdet.core.anchor.MlvlPointGenerator(strides, offset=0.5)
multi-level (Mlvl) 이였다....
주로 2D Points 기반 검출기의 Multi-level(Mlvl) Feature Map 을 위한 point 를 생성할 때 사용하며,
Object Detection 분야에서 Anchor Free 스타일의 헤더(Header) 에서 주로 사용된다.
def get_points(self, featmap_sizes, dtype, device, flatten=False):
"""Get points according to feature map sizes.
Args:
featmap_sizes (list[tuple]): Multi-level feature map sizes.
dtype (torch.dtype): Type of points.
device (torch.device): Device of points.
Returns:
tuple: points of each image.
"""
mlvl_points = []
for i in range(len(featmap_sizes)):
mlvl_points.append(
self._get_points_single(featmap_sizes[i], self.strides[i],
dtype, device, flatten))
return mlvl_points
def _get_points_single(self,
featmap_size,
stride,
dtype,
device,
flatten=False):
"""Get points of a single scale level."""
h, w = featmap_size
# First create Range with the default dtype, than convert to
# target `dtype` for onnx exporting.
x_range = torch.arange(w, device=device).to(dtype)
y_range = torch.arange(h, device=device).to(dtype)
y, x = torch.meshgrid(y_range, x_range)
if flatten:
y = y.flatten()
x = x.flatten()
return y, x
728x90
반응형
'AI Research Topic > Object Detection' 카테고리의 다른 글
[Paper Review] The PASCAL Visual Object Classes (VOC) Challenge (0) | 2022.02.21 |
---|---|
[Object Detection] Object Detection 분야에서 신경망의 입력 해상도 값을 제한하는 이유 (e.g. ~ [1333,800] or ~ [1000, 600]) (3) | 2021.08.13 |
[Object Detection] 객체 탐지 정확도 평가 지표 mAP(mean Average Precision) (3) | 2021.04.14 |
[Object Detction] 3D Object Detection, Google Objectron (3) | 2020.05.27 |
[Object Detection] Soft NMS (0) | 2020.03.08 |