작성
·
299
0
답변 1
1
안녕하십니까,
오, 대단하시군요. 환경 세팅을 오브젝트 크기에 맞춰서 하시다니요,
1)
먼저, 수행하시는게 Segmentation 맞는지요? 지금 config가 mask-rcnn인가요? faster-rcnn인가요?
그리고 확인해보니, scales가 8로 기본값이 되어 있군요. 여기서 scale은 anchor 크기의 척도를 의미합니다. 단일 scale의 anchor가 ratio별로 크기 8로 feature map의 stride별로 3개가 만들어지는 군요. 원래 faster rcnn은 개별 stride별로 9개의 anchor를 만들어야 하는데, scales를 [1, 2, 4]로 하면 단일 크기보다 8보다는 작지만, 개별 크기 [1, 2, 4]로 rations [0.5, 1.0, 2.0] 으로 9개의 anchor를 만듭니다.
그리고 mmdetection은 faster-rcnn, mask-rcnn 둘다 fpn기반으로 모델을 만드는데, 아래와 같이 strides를 설정하면 fpn 층별로 서로 다른 anchor scale(크기)값을 가지게 됩니다. 그래서 아래와 같이 strides를 만들어 주면 개별 fpn별로 서로 다른 anchor 크기를 가지게 됩니다. 크기는 개별 fpn층 별로 다르지만 개별 feature map의 stride별로는 3개의 anchor를 만듭니다.
anchor_generator=dict(
type='AnchorGenerator',
scales=[8],
ratios=[0.5, 1.0, 2.0],
strides=[4, 8, 16, 32, 64])
요약하자면 scales를 [1, 2, 4]와 같이 할당하면 크기가 서로 다른 anchor 3개를 만듭니다. strides는 fpn 층별로 만들어지는 anchor의 크기를 재 설정하는데, fpn 층별로 [8*4, 8*8, 8*16, 8*32, 8*64] 로 scale값을 재 설정합니다.
2) 이건 저도 어렵군요. 일단 [1, 2, 4] 가 아니라 [2, 4, 8] 로 scale 설정을 바꿔 보시면 어떨까 싶습니다.
감사합니다.
감사합니다!! Mask rcnn입니다!!
쉽지않더라구요ㅠ 그래도 코멘트주신대로 시도해보도록하겠습니다!!