인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

kik_kim님의 프로필 이미지
kik_kim

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

OpenCV DNN으로 Faster RCNN Object Detection 실습 02

cv_net.forward() 함수의 리턴값 질문입니다.

작성

·

265

1

샘플코드에서

cv_out = cv_net.forward()

print(cv_out.shape)

(결과) (1,1,100,7)

이 부분 질문인데요

1. 3행의 100은 (1,1,100,7) 바운딩 박스의 개수가 100개인데 앞의 1,1은(1,1,100,7) 무엇을 의미하나요? 

제 생각에는 네트워크에 이미지 1장 넣어서 1,1이 나온거라고 추측하는데 맞는건가요?

2. 4행의 7부분(1,1,100,7)에서 6개는 강의를 통해서 알았는데 나머지 1개요소가 무엇인지 궁금합니다(6개 요소 : class_id, score, left, top, right, bottom)

마지막으로 좋은 강의 제공 해주셔서 감사합니다.

답변 1

3

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

cv_net.forward()의 반환 값이 (1,1,100,7) 와 같은 4차원의 값을 반환하는데, 맨 앞 2개 차원 1, 1이 의미하는 것은 아래와 같습니다.

1. 맨 첫번째 차원값 1은 output layer의 갯수 입니다.  나중에 YOLO V3 에 가시면 Feature Pyramid 기법으로 Object Detection 최종 output layer가 3개가 있는것을 말씀드릴 것입니다. 이처럼 output layer가 여러개가 있을 수 있으며, 이를 위한 차원값입니다. Faster RCNN은 1개 OUTPUT Layer만 있습니다.

2. 두번째 차원값 1은 말씀하셨다시피 이미지 갯수 차원값입니다. 여기서는 하나의 이미지만 inference 하기때문에 1이 되지만 여러개의 이미지를 batch로 inference 실행을 요청할 수 있습니다. 이러한 경우를 위한 차원 값입니다.

마지막으로 질문하신 (100, 7)에서 6개의 요소외에 한개의 요소는 저도 정확히 모르겠습니다만 언제나 0 값으로 반환합니다. 아마도 reserve값으로 추정됩니다.

감사합니다.

kik_kim님의 프로필 이미지
kik_kim

작성한 질문수

질문하기