• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

inference된 이미지에서 마스크 영역의 x,y 좌표 추출 재질문

22.03.16 12:27 작성 조회수 628

0

안녕하세요 선생님,

풍선 가지고 테스팅 중인데요,

말씀하신대로 했는데... 에러가 났습니다.

풍선에서는 Class가 하나뿐이어서 result[1][0][0]로  인덱스를 조절했더니 이렇게 나옵니다.

풍선처럼 단일 Class일 경우에는 이렇게 하는게 맞는지요?

여기서 x,y 좌표만 추출하려고 하면 어떻게 해야 하는지 재문의 드립니다.

x좌표는 328, 328, 328, ... 760,  y좌표는 718, 719, 720, ... 796 가 맞는지요? 아니면

y좌표는 328, 328, 328, ... 760,  x좌표는 718, 719, 720, ... 796 가 맞는지요?

 

한가지만 더 여쭙니다.

여기서 바운딩 박스 좌표 4개만 추출 하려고 한느데요, 선생님 강의대로 해봤습니다.

아래에서 0.9932는 confidence 이고, 580.5786부터가 좌표 맞는거죠?

맞다면 4개 값들이 각각 (x1,y1), (x2,y2)로 어떻게 매핑되는지 문의드립니다.

 

Inference 한 이미지 는 이것입니다.

감사합니다.

답변 1

답변을 작성해보세요.

0

1. 풍선에서는 Class가 하나뿐이어서 result[1][0][0]로  인덱스를 조절했더니 이렇게 나옵니다.

풍선처럼 단일 Class일 경우에는 이렇게 하는게 맞는지요?

=> 전달해 드린 방식은 COCO 와 같이 여러 가지 Object를 Detect했을 때의 예시 입니다. 단일 클래스라기 보다는 1개만 detect가 되는 이미지(즉 풍선이 하나만 있는)라면 result[1][0][0] 으로 하면 됩니다. 

2. x좌표는 328, 328, 328, ... 760,  y좌표는 718, 719, 720, ... 796 가 맞는지요? 아니면

y좌표는 328, 328, 328, ... 760,  x좌표는 718, 719, 720, ... 796 가 맞는지요?

=> x좌표는 328, 328, 328, ... 760,  y좌표는 718, 719, 720, ... 796 가 맞습니다.

3. 강의를 좀 더 보시면 get_detected_img( ) 함수에서 bounding box 를 그리는 방법을 말씀 드립니다.

아래와 같이 좌상단, 우하단 좌표를 구해서 cv2.rectangle( ) 함수로 bounding box를 그립니다.

left = int(bbox_result[i, 0])
top = int(bbox_result[i, 1])
right = int(bbox_result[i, 2])
bottom = int(bbox_result[i, 3])
caption = "{}: {:.4f}".format(labels_to_names_seq[result_ind], bbox_result[i, 4])
if draw_box:
cv2.rectangle(draw_img, (left, top), (right, bottom), color=bbox_color, thickness=2)