• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

Mask R-CNN 관련

22.03.04 11:39 작성 조회수 422

0

안녕하세요 강사님 항상 좋은강의 잘 듣고있습니다. 

학습하던 도중 mask R-CNN 관련해서 질문드립니다. 

 

1. Mask R-CNN 모델의 inference결과로 나오는 bbox의 좌표 results[0] 의 값이 

[186.00633       203.48474      256.05243       253.83623        0.9983015] 

위 5개 값중에 마지막 값은 confidence score 인것을 알겠는데 앞에 4개의 값이 각각 무엇을 뜻하는지 헷갈립니다 ㅠㅠ

처음부터 bbox의 xmin,ymin, width,height 라고 생각하는게 맞을까요?

(Mask-RCNN 모델은 coco dataset format으로 학습)

 

2. segmentation이 진행되면 아래처럼 True , False 로 이루어진 array형태로 얻어지던데

 object의 bbox정보와 segmentation정보를 매칭할 수 있는 방법이 있을까요? 

(최종적으로 각각의 바운딩박스 위에 class name이 아니라 픽셀 True 개수를 plot하는게 목표입니다.)

 

3. 영상 내에서 bbox를 추론은 하지만 시각화하지 않는 방법이 있을까요? 

(제가 사용하는 영상 데이터에 object들이 평균 3~400개가 detect 되어서 bounding box로 영상이 새까맣게 됩니다 ㅠㅠ )

 

감사합니다.

 

답변 1

답변을 작성해보세요.

0

안녕하십니까, 

잘 듣고 계시다니 저도 기분이 좋군요. 1

1. 앞의 4개는 좌상단(xmin, ymin), 우하단(xmax, ymax)  좌표 입니다. 

2. object의 bbox정보와 segmentation정보를 매칭할 수 있는 방법이 있을까요? 

(최종적으로 각각의 바운딩박스 위에 class name이 아니라 픽셀 True 개수를 plot하는게 목표입니다.)

=> 정확히 원하시는 게 segmentation 된 object의 픽셀 True인 개수를 세는 건지요? 

어떤 소스 코드를 말하시는지 잘 모르겠지만, mm_mask_rcnn_inference.ipynb 라고 가정하고

강의를 들어 보시면 제가 아래와 같은 부분을 설명하는 부분입니다. 

mask_imsi = results[1][0][0]
print(mask_imsi)
print(mask_imsi[mask_imsi > 0], mask_imsi[mask_imsi == 0])
 

여기서 개별적으로 구한 mask 정보에서 true인 것만 numpy의 boolean indexing으로 가져오면 됩니다. 

가령 예를 들어 위의 mask_imsi의 true인 것의 건수를 가져오려면  mask_imsi[mask_imsi > 0].shape 와 같이 하시면 됩니다.

3. mm_mask_rcnn_inference.ipynb 에서

get_detected_img() 함수에 보시면 아래 부분을 주석 처리하시면 됩니다.
 
draw_img[class_mask_array] = ([0.3*color[0], 0.3*color[1], 0.3*color[2]] + 0.6 * masked_roi).astype(np.uint8)